diff --git a/.gitattributes b/.gitattributes
index 3d5d2bc7a1..8949d71eaf 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,22 +1,27 @@
-*.sh text eol=lf
-*.s text eol=lf
-Makefile text eol=lf
-*.mk text eol=lf
*.c text eol=lf
*.h text eol=lf
-*.inc text eol=lf
-*.sha1 text eol=lf
-*.json text eol=lf
*.cpp text eol=lf
*.hpp text eol=lf
+*.s text eol=lf
+*.inc text eol=lf
+*.sh text eol=lf
+*.py text eol=lf
+*.sha1 text eol=lf
+*.json text eol=lf
+meson.build text eol=lf
+
.gitattributes text eol=lf
.gitignore text eol=lf
+
*.md text eol=lf
*.lsf text eol=lf
*.yml text eol=lf
+*.ini text eol=lf
+
lib/msl/include/MSL_C/* text eol=lf
*.bin binary
*.h linguist-language=C
*.inc linguist-language=Assembly
+*.py linguist-language=Python
diff --git a/.gitignore b/.gitignore
index c64de3e170..91f4f9188a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,26 +1,13 @@
-# Object files
-*.nds
-
-# Compilers
-tools/mwccarm/**
-
-# SDK
-tools/bin/**
-
-# Build folder
-build/**
-sub/build/**
+# Meson files
+/build/
+/tools/cw/build/
+/tools/cw/mwrap
+/tools/cw/mwrap.exe
# CLion folders
.idea/
cmake-build-debug/
-# ROM
-*.srl
-
-# Tool executables
-*.exe
-
# Generated files
*.4bpp
*.lz
@@ -33,17 +20,11 @@ cmake-build-debug/
# For decomp.me
ctx.c
-*.lcf.template
-*.lcf
-*.response.template
-*.response
-
# Working files
overlays/*/module_*.s
overlays/*/module_*.sbin
overlays/*/module_*.cfg
-*.sbin
*.bnr
*.nbfp
*.nbfc
@@ -56,12 +37,8 @@ asmdiff.sh
symbols.csv
# NARCs
-*.narc
-*.arc
-files/**/*.c
+res/**/*.c
*.o
-*.naix
-*.a
# Utilities
ntruncompbw
@@ -85,9 +62,7 @@ diff.txt
temp_asm/
asm_old/
-!platinum.us/rom_header_template.sbin
!platinum.us/banner.bnr
-!sub/*.sbin
uncrustify.cfg
compare.sh
@@ -96,3 +71,4 @@ diff/
sdk/
!tools/asmdiff/asmdiff.sh
+
diff --git a/INSTALL.md b/INSTALL.md
index 8a38ee1fd9..0b8e8ff6c1 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,3 +1,6 @@
+This doc details the steps necessary to build a copy of Pokemon Platinum (EN-US) from the sources contained in this repository.
+
+# 1. Setting up a dev environment
## Windows
@@ -11,99 +14,121 @@ To add an environment variable:
You will need to restart your computer for the changes to take effect, but if you plan to use Windows Subsystem for Linux (WSL), then you can restart later as part of the required restart when installing WSL, if you choose so.
+You now have the choice between two different environments to use to build the project.
-### Windows 10 (Windows Subsystem for Linux)
+### MSYS2 (Recommended)
-Currently WSL2 has an issue with mwldarm not being able to locate it's executable. Please use WSL1 or another build environment to mitigate this issue until a solution is found.
+1. Download the MSYS2 installer from the official website: https://www.msys2.org/ and install it on your system.
+
+2. Once the installation is complete, a terminal should automatically pop up. To update the package registry, type the following command:
+
+ ```
+ pacman -Syu
+ ```
+
+ Press 'Y' when prompted to confirm the update. The update process may take a few minutes. Once completed, the terminal will automatically close.
+
+3. Reopen an MSYS terminal (pink icon) and enter the following command to install the necessary packages:
+
+ ```
+ pacman -S git meson gcc
+ ```
+
+ Press 'Y' when prompted to confirm the installation.
+
+4. Continue with the [building instructions](#Downloading_the_repository). Make sure to always use the plain MSYS environment, other environments will not work.
+
+### Windows Subsystem for Linux
1. Open [Windows Powershell **as Administrator**](https://i.imgur.com/QKmVbP9.png), and run the following command (Right Click or Shift+Insert is paste in the Powershell).
```powershell
- dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
+ wsl --install -d Ubuntu
```
-2. Once the process finishes, restart your machine.
+2. Once the process finishes, you will be prompted to restart your machine. Accept.
-3. The next step is to choose and install a Linux distribution from the Microsoft Store. The following instructions will assume Ubuntu as the Linux distribution of choice.
+3. After rebooting, reopen PowerShell and run the following commmand to downgrade to WSL1
-4. Open the [Microsoft Store Linux Selection](https://aka.ms/wslstore), click Ubuntu, then click Get, which will install the Ubuntu distribution.
-
- Notes...
+ ```powershell
+ wsl --set-version Ubuntu 1
+ ```
- > Note 1: If a dialog pops up asking for you to sign into a Microsoft Account, then just close the dialog.
- > Note 2: If the link does not work, then open the Microsoft Store manually, and search for the Ubuntu app (choose the one with no version number).
-
+ This is necessary because WSL2 has very slow access to the Windows file drive, which is where we need to store the repository.
-### Setting up WSL1
-Some tips before proceeding:
-- In WSL, Copy and Paste is either done via
- - **right-click** (selection + right click to Copy, right click with no selection to Paste)
- - **Ctrl+Shift+C/Ctrl+Shift+V** (enabled by right-clicking the title bar, going to Properties, then checking the checkbox next to "Use Ctrl+Shift+C/V as Copy/Paste").
-- Some of the commands that you'll run will ask for your WSL password and/or confirmation to perform the stated action. This is to be expected, just enter your WSL password and/or the yes action when necessary.
+4. Open **Ubuntu** (e.g. using Search).
-1. Open **Ubuntu** (e.g. using Search).
-2. WSL/Ubuntu will set up its own installation when it runs for the first time. Once WSL/Ubuntu finishes installing, it will ask for a username and password (to be input in).
+5. WSL/Ubuntu will set up its own installation when it runs for the first time. Once WSL/Ubuntu finishes installing, it will ask for a username and password (to be input in).
Note...
> When typing in the password, there will be no visible response, but the terminal will still read in input.
-3. Update WSL/Ubuntu before continuing. Do this by running the following command. These commands will likely take a long time to finish:
+6. Update WSL/Ubuntu before continuing. Do this by running the following command. These commands will likely take a long time to finish:
```bash
sudo apt update && sudo apt upgrade
```
-4. Certain packages are required to build the repository. Install these packages by running the following command:
+7. Certain packages are required to build the repository. Install these packages by running the following command:
```bash
- sudo apt install git build-essential binutils-arm-none-eabi python3 libpng-devel pugixml
+ sudo apt install git build-essential
```
-5. Change to a directory accessible from Windows where you'll store the files, for example:
+ We are not done yet, the 'meson' package is also necessary, but the version provided by apt is too outdated. To get the most recent meson version, run:
+
+ ```
+ sudo apt-get install pip
+ pip install --user meson
+ ```
+
+8. Change to a directory accessible from Windows where you'll store the files, for example:
```bash
cd /mnt/c/Users/$USER/Desktop
```
-Continue with the [building instructions](#Building)
+Continue with the [building instructions](#Downloading_the_repository)
## Linux
Building the ROM requires the following packages. If you cannot find one or more of these using your package distribution, it may be under a different name.
-* make
* git
+* meson (>= 1.2.0)
* build-essentials (build-essential on Ubuntu)
-* binutils-arm-none-eabi
* wine (to run the mwcc executables)
-* python3 (for asm preprocessor)
-* libpng-devel (libpng-dev on Ubuntu)
* pkg-config
-* pugixml (libpugixml-dev on Ubuntu)
-NOTE: If you are using Arch/Manjaro or Void you will only need base-devel instead of build-essentials or make or git. You will still need wine.
+NOTE: On some distros, the meson package provided by the package manager will be out of date. To check your meson version, run:
-## Installing
+```
+meson --version
+```
-Clone the repository:
+If your mesion version is older than 1.2.0, follow the instructions at: https://mesonbuild.com/Getting-meson.html to get the most recent version of Meson
+
+# 2. Downloading the repository
+
+In your terminal of choice, navigate to the path you would like to store the repository in. If you are using WSL, make sure to clone the repo under the Windows file drive. Clone the repository with:
```
git clone https://github.com/pret/pokeplatinum
cd pokeplatinum
```
-The build system requires the use of the Metrowerks C Compiler versions 2.0/sp2p2 to compile matching files. Download the zip [here](https://cdn.discordapp.com/attachments/698589325620936736/845499146982129684/mwccarm.zip) and extract it to tools/. At the end of this operation, you should have i.e. the file `tools/mwccarm/2.0/sp2p2/mwccarm.exe`.
-
-In the future, a GCC option will be available so MWCC is not required to build, however it is required for a matching ROM.
-
-Download the `NitroSDK-4_2-071210-jp.7z` [here](https://cdn.discordapp.com/attachments/855279572651868170/875195363261292604/NitroSDK-4_2-071210-jp.7z) and extract and copy the folder `tools/bin` from the Nitro SDK into the folder `tools` in your pokeplatinum clone. At the end of this operation, you should have the file `tools/bin/makelcf.exe` inside your pokeplatinum clone. Finally, copy `include/nitro/specfiles/ARM7-TS.lcf.template` into the subdirectory `sub`, and `include/nitro/specfiles/ARM9-TS.lcf.template` and `include/nitro/specfiles/mwldarm.response.template` into the project root.
-
-To build everything:
+# 3. Building
+To set up the build system, run:
```
-make -j$(nproc)
+./config.sh
+```
+
+This is only required once. If the process is successful, you will see a new 'build' folder in the repository.
+
+To build the rom, run:
+```
+./build.sh
```
If everything works, then the following ROM should be built:
- [build/platinum.us/pokeplatinum.us.nds](https://datomatic.no-intro.org/index.php?page=show_record&s=28&n=3541) `sha1: ce81046eda7d232513069519cb2085349896dec7`
-
-**Note for Windows users**: Consider disabling real-time protection using [these instructions](https://support.microsoft.com/en-us/windows/turn-off-defender-antivirus-protection-in-windows-security-99e6004f-c54c-8509-773c-a4d776b77960) to speed up builds. [Adding an exception](https://support.microsoft.com/help/4028485) for the repository folder does not seem to help as much; one hypothesis is that the exceptions do not affect how various files are accessed via Windows (not WSL1) absolute paths.
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 2a639e3d3e..0000000000
--- a/Makefile
+++ /dev/null
@@ -1,92 +0,0 @@
-
-infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
-
-ifeq (,$(filter-out all,$(MAKECMDGOALS)))
-$(call infoshell, $(MAKE) -f make_tools.mk)
-endif
-
-MWCCVER := 2.0/sp2p2
-PROC := arm946e
-PROC_S := arm5te
-PROC_LD := v5te
-LCF_TEMPLATE := ARM9-TS.lcf.template
-LIBS := -Llib -lsyscall -nostdlib
-OPTFLAGS := -O4,p
-
-# Config
-BUILD_DIR := build/platinum.us
-NEFNAME := main
-buildname := platinum.us
-TITLE_NAME := POKEMON PL
-GAME_CODE := CPUE
-GAME_VERSION := PLATINUM
-GAME_LANGUAGE := ENGLISH
-SECURE_CRC := 0xF8B8
-GF_DEFINES := -DGAME_VERSION=$(GAME_VERSION) -DGAME_LANGUAGE=$(GAME_LANGUAGE)
-GF_DEFINES += -DPM_KEEP_ASSERTS
-GLB_DEFINES := -DSDK_CW_FORCE_EXPORT_SUPPORT -DSDK_TS -DSDK_4M -DSDK_ARM9 -DSDK_CW -DSDK_FINALROM -DSDK_LINK_ISD -DNNS_FINALROM -D_NITRO -DSDK_CODE_ARM
-DEFINES = $(GF_DEFINES) $(GLB_DEFINES)
-
-ALL_BUILDDIRS := $(BUILD_DIR)/lib
-include common.mk
-include filesystem.mk
-
-ROM := $(BUILD_DIR)/poke$(buildname).nds
-#BANNER := $(ROM:%.nds=%.bnr)
-#BANNER_SPEC := $(buildname)/banner.bsf
-#ICON_PNG := $(buildname)/icon.png
-BANNER := $(buildname)/banner.bnr
-HEADER_TEMPLATE := $(buildname)/rom_header_template.sbin
-
-.PHONY: main libsyscall sdk sdk9 sdk7
-.PRECIOUS: $(ROM)
-
-MAKEFLAGS += --no-print-directory
-
-all: $(ROM)
-
-tidy:
- $(RM) -r $(BUILD_DIR)
- $(RM) -r $(PROJECT_CLEAN_TARGETS)
- $(RM) $(ROM)
-
-clean: tidy clean-tools
- @$(MAKE) -C lib/syscall clean
-
-sdk9 sdk7: sdk
-main filesystem: | sdk9
-
-main: $(SBIN) $(ELF)
-
-ROMSPEC := rom.rsf
-MAKEROM_FLAGS := $(DEFINES)
-
-$(NEF): libsyscall
-
-libsyscall:
- $(MAKE) -C lib/syscall all install INSTALL_PREFIX=$(abspath $(WORK_DIR)/$(BUILD_DIR)) GAME_CODE=$(GAME_CODE)
-
-$(BUILD_DIR)/component.files: main ;
-
-$(HEADER_TEMPLATE): ;
-
-#$(ROM): $(ROMSPEC) filesystem $(BANNER)
-$(ROM): $(ROMSPEC) main
- $(WINE) $(MAKEROM) $(MAKEROM_FLAGS) -DBUILD_DIR=$(BUILD_DIR) -DNITROFS_FILES="$(NITROFS_FILES:files/%=%)" -DTITLE_NAME="$(TITLE_NAME)" -DBNR="$(BANNER)" -DHEADER_TEMPLATE="$(HEADER_TEMPLATE)" $< $@
- $(FIXROM) $@ --secure-crc $(SECURE_CRC) --game-code $(GAME_CODE)
-ifeq ($(COMPARE),1)
- $(SHA1SUM) -c $(buildname)/rom.sha1
-endif
-
-#$(BANNER): $(BANNER_SPEC) $(ICON_PNG:%.png=%.nbfp) $(ICON_PNG:%.png=%.nbfc)
-# $(WINE) $(MAKEBNR) $< $@
-
-# TODO: move to NitroSDK makefile
-FX_CONST_H := $(WORK_DIR)/lib/NitroSDK/include/nitro/fx/fx_const.h
-PROJECT_CLEAN_TARGETS += $(FX_CONST_H)
-$(FX_CONST_H): $(TOOLSDIR)/gen_fx_consts/fx_const.csv
- $(MKFXCONST) $@
-sdk: $(FX_CONST_H)
-$(WORK_DIR)/include/global.h: $(FX_CONST_H) ;
-
-.PHONY:
diff --git a/asm/main_etable.s b/asm/main_etable.s
deleted file mode 100644
index c0c5577e76..0000000000
--- a/asm/main_etable.s
+++ /dev/null
@@ -1,68 +0,0 @@
- .include "macros/function.inc"
-
- .extern Unk_020E4558
- .extern Unk_020E4560
- .extern Unk_020E4568
- .extern Unk_020E4570
- .extern Unk_020E4578
- .extern Unk_020E4580
- .extern Unk_020E4588
- .extern Unk_020E4590
- .extern Unk_020E45A0
- .extern Unk_020E45B4
- .extern Unk_020E45CC
- .extern Unk_020E45D4
- .extern Unk_020E45E4
- .extern Unk_020E45EC
- .extern Unk_020E4600
- .extern Unk_020E4608
- .extern Unk_020E4610
- .extern Unk_020E4628
- .extern Unk_020E4644
- .extern Unk_020E465C
-
- .section .exception, 4
-
- .global Exception_Table_Index
-Exception_Table_Index: ; 0x020E4670
- .incbin "incbin/main_etable.bin", 0x118, 0x164
- .word Unk_020E4558
- .incbin "incbin/main_etable.bin",0x280,0x68
- .word Unk_020E4560
- .incbin "incbin/main_etable.bin",0x2EC,0x2C
- .word Unk_020E4568
- .incbin "incbin/main_etable.bin",0x31C,0x8C
- .word Unk_020E4570
- .incbin "incbin/main_etable.bin",0x3AC,0x8
- .word Unk_020E4578
- .incbin "incbin/main_etable.bin",0x3B8,0x2C
- .word Unk_020E4580
- .incbin "incbin/main_etable.bin",0x3E8,0x80
- .word Unk_020E4588
- .incbin "incbin/main_etable.bin",0x46C,0x2C
- .word Unk_020E4590
- .incbin "incbin/main_etable.bin",0x49C,0x2C
- .word Unk_020E45A0
- .incbin "incbin/main_etable.bin",0x4CC,0x68
- .word Unk_020E45B4
- .incbin "incbin/main_etable.bin",0x538,0x2C
- .word Unk_020E45CC
- .incbin "incbin/main_etable.bin",0x568,0x8
- .word Unk_020E45D4
- .incbin "incbin/main_etable.bin",0x574,0x8
- .word Unk_020E45E4
- .incbin "incbin/main_etable.bin",0x580,0x14
- .word Unk_020E45EC
- .incbin "incbin/main_etable.bin",0x598,0x8
- .word Unk_020E4600
- .incbin "incbin/main_etable.bin",0x5A4,0x8
- .word Unk_020E4608
- .incbin "incbin/main_etable.bin",0x5B0,0x38
- .word Unk_020E4610
- .incbin "incbin/main_etable.bin",0x5EC,0x8
- .word Unk_020E4628
- .incbin "incbin/main_etable.bin",0x5F8,0x14
- .word Unk_020E4644
- .incbin "incbin/main_etable.bin",0x610,0x8
- .word Unk_020E465C
- .incbin "incbin/main_etable.bin",0x61C,0xCC
\ No newline at end of file
diff --git a/asm/meson.build b/asm/meson.build
new file mode 100644
index 0000000000..49053a3eab
--- /dev/null
+++ b/asm/meson.build
@@ -0,0 +1,4 @@
+pokeplatinum_asm = files(
+ 'overlay014/ov14_022248A4.s',
+ 'dtcm.s'
+)
diff --git a/asm/overlay097/ov97_02239420.inc b/asm/overlay097/ov97_02239420.inc
deleted file mode 100644
index 5e257dec59..0000000000
--- a/asm/overlay097/ov97_02239420.inc
+++ /dev/null
@@ -1,71 +0,0 @@
-.public OS_AllocFromHeap
-.public OS_FreeToHeap
-.public MI_CpuFill8
-.public MI_CpuCopy8
-.public MATH_CalcSHA1
-.public _s32_div_f
-.public _u32_div_f
-.public ov97_022394DC
-.public ov97_022395DC
-.public ov97_02239780
-.public ov97_02239844
-.public ov97_02239918
-.public ov97_02239A74
-.public ov97_0223A278
-.public ov97_0223A60C
-.public ov97_0223A74C
-.public ov97_0223A7C8
-.public ov97_0223AA44
-.public ov97_0223AAF0
-.public ov97_0223AB34
-.public ov97_0223AB68
-.public ov97_0223AB90
-.public ov97_0223ABD0
-.public ov97_0223AC0C
-.public ov97_0223AC40
-.public ov97_0223ADFC
-.public ov97_0223AFD4
-.public ov97_0223B148
-.public ov97_0223B1DC
-.public ov97_0223B31C
-.public ov97_0223B408
-.public ov97_0223B564
-.public ov97_0223B5C0
-.public ov97_0223B5F4
-.public ov97_0223BB94
-.public ov97_0223BCB8
-.public ov97_0223BDB8
-.public ov97_0223BEFC
-.public ov97_0223C060
-.public ov97_0223C17C
-.public ov97_0223C258
-.public ov97_0223C3B8
-.public ov97_0223C4E0
-.public ov97_0223C5FC
-.public ov97_0223C700
-.public ov97_0223C814
-.public ov97_0223C964
-.public ov97_0223CAB8
-.public ov97_0223CC58
-.public ov97_0223CE38
-.public ov97_0223CEA8
-.public ov97_0223CF44
-.public ov97_0223CF98
-.public ov97_0223D014
-.public ov97_0223D128
-.public ov97_0223D198
-.public ov97_0223D1D0
-.public ov97_0223D268
-.public ov97_0223D2E8
-.public ov97_0223D330
-.public ov97_0223D358
-.public ov97_0223D38C
-.public ov97_0223D3D8
-.public ov97_0223D3EC
-.public ov97_0223D438
-.public ov97_0223D4B8
-.public ov97_0223D510
-.public ov97_0223D534
-.public ov97_0223D568
-.public ov97_0223D5E4
-.public ov97_0223D62C
diff --git a/binutils.mk b/binutils.mk
deleted file mode 100644
index 2c8dea8134..0000000000
--- a/binutils.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# Supply a GNU ARM Embedded toolchain for objcopy, ar, etc.
-
-ifdef DEVKITARM
-TOOLCHAIN := $(DEVKITARM)
-endif
-
-ifdef TOOLCHAIN
-export PATH := $(TOOLCHAIN)/bin:$(PATH)
-endif
-
-PREFIX := arm-none-eabi-
-
-OBJCOPY := $(PREFIX)objcopy
-AR := $(PREFIX)ar
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000000..7906ccd9bc
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+target="test"
+if [ "$#" -ge 1 ]; then
+ target="$1"
+ shift
+fi
+
+# Set up env variable to show % of completion during ninja build
+export NINJA_STATUS="[%p %f/%t] "
+
+ninja -C build "$target" "$@"
diff --git a/clean.sh b/clean.sh
new file mode 100755
index 0000000000..f7fa3d96b5
--- /dev/null
+++ b/clean.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+ninja -C build clean
diff --git a/common.mk b/common.mk
deleted file mode 100644
index f761c04bd3..0000000000
--- a/common.mk
+++ /dev/null
@@ -1,263 +0,0 @@
-## Common defines for ARM9 and ARM7 Makefiles ##
-
-COMPARE ?= 1
-
-default: all
-
-PROJECT_ROOT := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
-
-# Because mwldarm expects absolute paths to be WIN32 paths,
-# all paths referring up from BUILD_DIR must be relative.
-WORK_DIR := $(shell realpath --relative-to $(CURDIR) $(PROJECT_ROOT))
-$(shell mkdir -p $(BUILD_DIR))
-BACK_REL := $(shell realpath --relative-to $(BUILD_DIR) $(CURDIR))
-
-TOOLSDIR := $(WORK_DIR)/tools
-
-include $(WORK_DIR)/platform.mk
-include $(WORK_DIR)/binutils.mk
-
-# NitroSDK tools
-MWCC = $(TOOLSDIR)/mwccarm/$(MWCCVER)/mwccarm.exe
-MWAS = $(TOOLSDIR)/mwccarm/$(MWCCVER)/mwasmarm.exe
-MWLD = $(BACK_REL)/$(TOOLSDIR)/mwccarm/$(MWCCVER)/mwldarm.exe
-MAKEROM := $(TOOLSDIR)/bin/makerom.exe
-MAKELCF := $(TOOLSDIR)/bin/makelcf.exe
-MAKEBNR := $(TOOLSDIR)/bin/makebanner.exe
-
-export LM_LICENSE_FILE := $(TOOLSDIR)/mwccarm/license.dat
-
-# Native tools
-FIXROM := $(TOOLSDIR)/fixrom/fixrom$(EXE)
-ASPATCH := $(TOOLSDIR)/mwasmarm_patcher/mwasmarm_patcher$(EXE)
-MKFXCONST := $(TOOLSDIR)/gen_fx_consts/gen_fx_consts$(EXE)
-
-# Other tools
-NTRMERGE := $(TOOLSDIR)/ntr_merge_elf/ntr_merge_elf.sh
-ASM_PROCESSOR := $(TOOLSDIR)/asm_processor/compile.sh
-
-NATIVE_TOOLS := \
- $(FIXROM) \
- $(ASPATCH) \
- $(MKFXCONST)
-
-TOOLDIRS := $(foreach tool,$(NATIVE_TOOLS),$(dir $(tool)))
-
-PRECOMPILE_SRC := include/global/global.pch
-PRECOMPILE_OBJ := $(BUILD_DIR)/precompile/global.mch
-PRECOMPILE_OBJ_BASENAME := global.mch
-PRECOMPILE_OBJ_DIR := $(dir $(PRECOMPILE_OBJ))
-PRECOMPILE_DEPFILE := $(BUILD_DIR)/precompile/global.d
-
-NITRO_PRECOMPILE_SRC := lib/NitroSDK/include/nitro.pch
-NITRO_PRECOMPILE_OBJ := $(BUILD_DIR)/precompile/nitro.mch
-NITRO_PRECOMPILE_OBJ_BASENAME := nitro.mch
-NITRO_PRECOMPILE_OBJ_DIR := $(dir $(PRECOMPILE_OBJ))
-NITRO_PRECOMPILE_DEPFILE := $(BUILD_DIR)/precompile/nitro.d
-
-# Directories
-
-LIB_SUBDIRS := NitroSDK NitroSystem NitroDWC NitroWiFi libVCT gamespy msl
-
-SRC_SUBDIR := src
-ASM_SUBDIR := asm
-LIB_SRC_SUBDIR := lib/src $(LIB_SUBDIRS:%=lib/%/src)
-LIB_ASM_SUBDIR := lib/asm $(LIB_SUBDIRS:%=lib/%/asm)
-ALL_SUBDIRS := $(SRC_SUBDIR) $(ASM_SUBDIR) $(LIB_SRC_SUBDIR) $(LIB_ASM_SUBDIR)
-
-SRC_BUILDDIR := $(addprefix $(BUILD_DIR)/,$(SRC_SUBDIR))
-ASM_BUILDDIR := $(addprefix $(BUILD_DIR)/,$(ASM_SUBDIR))
-LIB_SRC_BUILDDIR := $(addprefix $(BUILD_DIR)/,$(LIB_SRC_SUBDIR))
-LIB_ASM_BUILDDIR := $(addprefix $(BUILD_DIR)/,$(LIB_ASM_SUBDIR))
-
-C_SRCS := $(foreach dname,$(SRC_SUBDIR),$(wildcard $(dname)/*.c $(dname)/*/*.c))
-ASM_SRCS := $(foreach dname,$(ASM_SUBDIR),$(wildcard $(dname)/*.s $(dname)/*/*.s))
-
-# asm processor should only be necessary for libcrypto
-GLOBAL_ASM_SRCS :=
-LIB_C_SRCS := $(foreach dname,$(LIB_SRC_SUBDIR),$(wildcard $(dname)/*.c $(dname)/*/*.c $(dname)/*/*/*.c))
-LIB_ASM_SRCS := $(foreach dname,$(LIB_ASM_SUBDIR),$(wildcard $(dname)/*.s $(dname)/*/*.s $(dname)/*/*/*.s))
-ALL_SRCS := $(C_SRCS) $(ASM_SRCS) $(LIB_C_SRCS) $(LIB_ASM_SRCS)
-
-C_OBJS = $(C_SRCS:%.c=$(BUILD_DIR)/%.o)
-ASM_OBJS = $(ASM_SRCS:%.s=$(BUILD_DIR)/%.o)
-GLOBAL_ASM_OBJS = $(GLOBAL_ASM_SRCS:%.c=$(BUILD_DIR)/%.o)
-LIB_C_OBJS = $(LIB_C_SRCS:%.c=$(BUILD_DIR)/%.o)
-LIB_ASM_OBJS = $(LIB_ASM_SRCS:%.s=$(BUILD_DIR)/%.o)
-ALL_GAME_OBJS = $(C_OBJS) $(ASM_OBJS)
-ALL_LIB_OBJS = $(LIB_C_OBJS) $(LIB_ASM_OBJS)
-ALL_OBJS = $(ALL_GAME_OBJS) $(ALL_LIB_OBJS)
-
-$(ALL_LIB_OBJS): DEFINES = $(GLB_DEFINES)
-
-ALL_BUILDDIRS := $(sort $(ALL_BUILDDIRS) $(foreach obj,$(ALL_OBJS),$(dir $(obj))))
-
-NEF := $(BUILD_DIR)/$(NEFNAME).nef
-ELF := $(NEF:%.nef=%.elf)
-LCF := $(NEF:%.nef=%.lcf)
-RESPONSE := $(NEF:%.nef=%.response)
-SBIN := $(NEF:%.nef=%.sbin)
-XMAP := $(NEF).xMAP
-
-EXCCFLAGS := -Cpp_exceptions off
-
-include $(WORK_DIR)/force_active.mk
-
-MWCFLAGS = $(DEFINES) $(OPTFLAGS) -enum int -lang c99 $(EXCCFLAGS) -gccext,on -proc $(PROC) -msgstyle gcc -gccinc -ipa file -interworking -inline on,noauto -char signed
-MWASFLAGS = $(DEFINES) -proc $(PROC_S) -gccinc -i . -i ./include -i ./asm -i $(WORK_DIR)/files -I$(WORK_DIR)/lib/msl/include/MSL_C -DSDK_ASM
-MWLDFLAGS := -w on -proc $(PROC) -nopic -nopid -interworking -map closure,unused -symtab sort -m _start -msgstyle gcc -force_active $(FORCE_ACTIVE_SYMBOLS)
-ARFLAGS := rcS
-
-# The foreach iterates through all library folders defined in LIB_SUBDIRS
-# and generates the relevant includes
-# e.g. -I$(WORK_DIR)/lib/NitroSDK/include -I$(WORK_DIR)/lib/NitroSystem/include
-LIBRARY_INCLUDE_FLAGS := -I$(WORK_DIR)/lib/msl/include/MSL_C $(foreach dname,$(LIB_SUBDIRS),-I$(WORK_DIR)/lib/$(dname)/include)
-
-SRC_INCLUDE_FLAGS := -i ./include -i ./include/library -i $(WORK_DIR)/files $(LIBRARY_INCLUDE_FLAGS)
-SDK_INCLUDE_FLAGS := $(LIBRARY_INCLUDE_FLAGS)
-
-#$(C_OBJS): MWCFLAGS += -include global/thumb.h -prefix $(PRECOMPILE_OBJ)
-
-MW_COMPILE_SRC = $(WINE) $(MWCC) $(MWCFLAGS) $(SRC_INCLUDE_FLAGS) -i $(PRECOMPILE_OBJ_DIR) -include global/thumb.h -prefix $(PRECOMPILE_OBJ_BASENAME)
-MW_COMPILE_SRC_PRECOMPILE = $(WINE) $(MWCC) $(MWCFLAGS) $(SRC_INCLUDE_FLAGS)
-MW_COMPILE_LIB = $(WINE) $(MWCC) $(MWCFLAGS) $(SDK_INCLUDE_FLAGS) -i $(NITRO_PRECOMPILE_OBJ_DIR) -prefix $(NITRO_PRECOMPILE_OBJ_BASENAME)
-MW_COMPILE_LIB_PRECOMPILE = $(WINE) $(MWCC) $(MWCFLAGS) $(SDK_INCLUDE_FLAGS)
-
-MW_ASSEMBLE = $(WINE) $(MWAS) $(MWASFLAGS)
-
-export MWCIncludes := lib/msl/include/MSL_C
-
-LSF := $(addsuffix .lsf,$(NEFNAME))
-ifneq ($(LSF),)
-OVERLAYS := $(shell $(GREP) -o "^Overlay \w+" $(LSF) | cut -d' ' -f2)
-else
-OVERLAYS :=
-endif
-
-# Make sure build directories exist before compiling anything
-DUMMY := $(shell mkdir -p $(ALL_BUILDDIRS) $(PRECOMPILE_OBJ_DIR))
-
-.SECONDARY:
-.SECONDEXPANSION:
-.DELETE_ON_ERROR:
-.PHONY: all tidy clean clean-tools
-.PRECIOUS: $(SBIN)
-
-all: $(MWAS)
-
-.PHONY: $(MWAS)
-$(MWAS):
- $(ASPATCH) -q $@
-
-ifeq ($(NODEP),)
- ifneq ($(WINPATH),)
- PROJECT_ROOT_NT := $(shell $(WINPATH) -w $(PROJECT_ROOT) | $(SED) 's/\\/\//g')
- define fixdep
- $(SED) -i 's/\r//g; s/\\/\//g; s/\/$$/\\/g; s#$(PROJECT_ROOT_NT)#$(PROJECT_ROOT)#g' $(1)
- touch -r $(1:%.d=%.o) $(1)
- endef
- define fixdep_precompile
- $(SED) -i 's/\r//g; s/\\/\//g; s/\/$$/\\/g; s#$(PROJECT_ROOT_NT)#$(PROJECT_ROOT)#g' $(1)
- touch -r $(1:%.d=%.mch) $(1)
- endef
- else
- define fixdep
- $(SED) -i 's/\r//g; s/\\/\//g; s/\/$$/\\/g' $(1)
- touch -r $(1:%.d=%.o) $(1)
- endef
- define fixdep_precompile
- $(SED) -i 's/\r//g; s/\\/\//g; s/\/$$/\\/g' $(1)
- touch -r $(1:%.d=%.mch) $(1)
- endef
- endif
- DEPFLAGS := -gccdep -MD
- DEPFILES := $(ALL_OBJS:%.o=%.d)
- MW_COMPILE_SRC += $(DEPFLAGS)
- MW_COMPILE_SRC_PRECOMPILE += $(DEPFLAGS)
- MW_COMPILE_LIB += $(DEPFLAGS)
- MW_COMPILE_LIB_PRECOMPILE += $(DEPFLAGS)
- $(GLOBAL_ASM_OBJS): BUILD_C_SRC := $(ASM_PROCESSOR) "$(MW_COMPILE_SRC)" "$(MW_ASSEMBLE)"
- BUILD_C_SRC ?= $(MW_COMPILE_SRC) -c -o
- BUILD_C_LIB := $(MW_COMPILE_LIB) -c -o
-
-# STILL IN NODEP=FALSE
-$(PRECOMPILE_DEPFILE):
-$(DEPFILES):
-
-# TODO: figure out exact compiler versions for each SDK component
-$(BUILD_DIR)/lib/NitroSDK/%.o: MWCCVER := 2.0/sp2
-
-$(PRECOMPILE_OBJ): $(PRECOMPILE_SRC)
- $(MW_COMPILE_SRC_PRECOMPILE) $(PRECOMPILE_SRC) -precompile $(PRECOMPILE_OBJ)
- @$(call fixdep_precompile,$(PRECOMPILE_DEPFILE))
-
-$(BUILD_DIR)/src/%.o: src/%.c $(PRECOMPILE_OBJ)
-$(BUILD_DIR)/src/%.o: src/%.c $(BUILD_DIR)/src/%.d $(PRECOMPILE_OBJ)
- $(BUILD_C_SRC) $@ $<
- @$(call fixdep,$(BUILD_DIR)/src/$*.d)
-
-$(NITRO_PRECOMPILE_OBJ): $(NITRO_PRECOMPILE_SRC)
- $(MW_COMPILE_LIB_PRECOMPILE) $(NITRO_PRECOMPILE_SRC) -precompile $(NITRO_PRECOMPILE_OBJ)
- @$(call fixdep_precompile,$(NITRO_PRECOMPILE_DEPFILE))
-
-$(BUILD_DIR)/lib/%.o: lib/%.c $(NITRO_PRECOMPILE_OBJ)
-$(BUILD_DIR)/lib/%.o: lib/%.c $(BUILD_DIR)/lib/%.d $(NITRO_PRECOMPILE_OBJ)
- $(MW_COMPILE_LIB) -I$(dir $<) -c -o $@ $<
- @$(call fixdep,$(BUILD_DIR)/lib/$*.d)
-
-$(BUILD_DIR)/%.o: %.s
-$(BUILD_DIR)/%.o: %.s $(BUILD_DIR)/%.d
- $(WINE) $(MWAS) $(MWASFLAGS) -I$(dir $<) $(DEPFLAGS) -o $@ $<
- @$(call fixdep,$(BUILD_DIR)/$*.d)
-
-include $(wildcard $(DEPFILES))
--include $(PRECOMPILE_DEPFILE)
--include $(NITRO_PRECOMPILE_DEPFILE)
-
-# END NODEP=FALSE
-else
-$(error NODEP not fully implemented)
-$(GLOBAL_ASM_OBJS): BUILD_C_SRC := $(ASM_PROCESSOR) "$(MW_COMPILE_SRC)" "$(MW_ASSEMBLE)"
-BUILD_C_SRC ?= $(MW_COMPILE_SRC) -c -o
-
-$(BUILD_DIR)/%.o: %.c
- $(BUILD_C_SRC) $@ $<
-
-$(BUILD_DIR)/%.o: %.s
- $(WINE) $(MWAS) $(MWASFLAGS) -o $@ $<
-endif
-
-clean-tools:
- $(foreach tool,$(TOOLDIRS),$(MAKE) -C $(tool) clean;)
-
-$(LCF): $(LSF) $(LCF_TEMPLATE)
- $(WINE) $(MAKELCF) $(MAKELCF_FLAGS) $^ $@
-ifeq ($(PROC),arm946e)
- $(SED) -i '1i KEEP_SECTION\n{\n\t.exceptix\n}' $@
-else
- $(SED) -i '/\} > check\.WORKRAM/a SDK_SUBPRIV_ARENA_LO = SDK_SUBPRIV_ARENA_LO + SDK_AUTOLOAD.EXT_WRAM.SIZE + SDK_AUTOLOAD.EXT_WRAM.BSS_SIZE;' $@
-endif
-
-RESPONSE_TEMPLATE := $(PROJECT_ROOT)/mwldarm.response.template
-RESPONSE_TEMPLATE_NT := $(PROJECT_ROOT_NT)/mwldarm.response.template
-
-$(RESPONSE): $(LSF) $(RESPONSE_TEMPLATE)
- $(WINE) $(MAKELCF) $(MAKELCF_FLAGS) $< $(RESPONSE_TEMPLATE_NT) $@
-
-# Locate crt0.o
-CRT0_OBJ := lib/NitroSDK/src/init/crt0.o
-
-$(NEF): $(LCF) $(RESPONSE) $(ALL_OBJS)
- cd $(BUILD_DIR) && LM_LICENSE_FILE=$(BACK_REL)/$(LM_LICENSE_FILE) $(WINE) $(MWLD) $(MWLDFLAGS) $(LIBS) -o $(BACK_REL)/$(NEF) $(LCF:$(BUILD_DIR)/%=%) @$(RESPONSE:$(BUILD_DIR)/%=%) $(CRT0_OBJ)
-
-.INTERMEDIATE: $(BUILD_DIR)/obj.list
-
-$(SBIN): build/%.sbin: build/%.nef
-ifeq ($(COMPARE),1)
- -$(SHA1SUM) --quiet -c $*.sha1
-endif
-
-$(ELF): %.elf: %.nef
- $(NTRMERGE) $*
-
-print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
diff --git a/config.sh b/config.sh
new file mode 100755
index 0000000000..ff9b0c6eb4
--- /dev/null
+++ b/config.sh
@@ -0,0 +1,72 @@
+#!/bin/sh
+set -e
+
+build="build"
+if [ "$#" -ge 1 ]; then
+ build="$1"
+ shift
+fi
+
+wrap=tools/cw
+
+# Build the wrapper
+if ! "$wrap/mwrap" -test 2> /dev/null; then
+ rm -rf "$wrap/mwrap" "$wrap/build"
+ "${MESON:-meson}" setup "$wrap/build" "$wrap"
+ "${MESON:-meson}" compile -C "$wrap/build"
+ install -m755 "$wrap/build/mwrap" "$wrap/mwrap"
+ rm -rf "$wrap/build"
+fi
+
+is_wsl_accessing_windows() {
+ kernel=$(uname -r)
+ script_path=$(realpath "$0")
+ if echo "$kernel" | grep -q Microsoft && echo "$script_path" | grep -qE '^/mnt/'; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+mkdir -p "$build"
+
+root="$PWD"
+if [ -n "$MSYSTEM" -a "$MSYSTEM" != MSYS ]; then
+ root="$(cygpath -w "$root")"
+fi
+
+# Bootstrap machine file pointing to the repo
+echo "[constants]" > "$build/root.ini"
+echo "root = '$root'" >> "$build/root.ini"
+
+# Select toolchain
+if [ "$(uname -s)" = "Linux" ]; then
+ if is_wsl_accessing_windows; then
+ native_file="native.ini"
+ cross_file="cross_unix.ini"
+ else
+ native_file="native_unix.ini"
+ cross_file="cross_unix.ini"
+ fi
+else
+ native_file="native.ini"
+ cross_file="cross.ini"
+fi
+
+export MWCONFIG="$(realpath "$build/.mwconfig")"
+
+if [ "$native_file" = "native_unix.ini" ]; then
+ wrap_wine="$(command -v "${WINELOADER:-wine}")"
+ wrap_path_unx="$PWD"
+ wrap_path_win="$("$wrap_wine" winepath -w "$wrap_path_unx")"
+ "$wrap/mwrap" -conf -wine "$wrap_wine" \
+ -path_unx "$wrap_path_unx" -path_win "$wrap_path_win"
+elif is_wsl_accessing_windows; then
+ wrap_path_unx="$PWD"
+ wrap_path_win="$(wslpath -w "$wrap_path_unx")"
+ "$wrap/mwrap" -conf \
+ -path_unx "$wrap_path_unx" -path_win "$wrap_path_win"
+fi
+
+# Launch meson
+"${MESON:-meson}" setup "$build" --native-file=meson/"$native_file" --native-file="$build/root.ini" --cross-file=meson/"$cross_file" --cross-file="$build/root.ini" "$@"
diff --git a/files/.gitattributes b/files/.gitattributes
deleted file mode 100644
index 625449502b..0000000000
--- a/files/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-* -text
diff --git a/filesystem.mk b/filesystem.mk
deleted file mode 100644
index 5718ba64c2..0000000000
--- a/filesystem.mk
+++ /dev/null
@@ -1,341 +0,0 @@
-NITROFS_FILES := \
- ./data/UTF16.dat \
- ./data/arealight.narc \
- ./data/battle_win.NSCR \
- ./data/btower_canm.resdat \
- ./data/btower_celact.cldat \
- ./data/btower_cell.resdat \
- ./data/btower_chr.resdat \
- ./data/btower_pal.resdat \
- ./data/cell0.NCGR \
- ./data/cell0.NCLR \
- ./data/clact_default.NANR \
- ./data/crystal.nsbmd \
- ./data/demo_climax.narc \
- ./data/dp_areawindow.NCGR \
- ./data/dp_areawindow.NCLR \
- ./data/dt_test_celact.txt \
- ./data/dt_test_res_cell.txt \
- ./data/dt_test_res_cellanm.txt \
- ./data/dt_test_res_char.txt \
- ./data/dt_test_res_multi.txt \
- ./data/dt_test_res_multianm.txt \
- ./data/dt_test_res_pltt.txt \
- ./data/dun_sea.nsbtx \
- ./data/eoo.dat \
- ./data/exdata.dat \
- ./data/field_cutin.narc \
- ./data/fld_anime0.bin \
- ./data/fld_anime1.bin \
- ./data/fld_anime10.bin \
- ./data/fld_anime2.bin \
- ./data/fld_anime3.bin \
- ./data/fld_anime4.bin \
- ./data/fld_anime5.bin \
- ./data/fld_anime6.bin \
- ./data/fld_anime7.bin \
- ./data/fld_anime8.bin \
- ./data/fld_anime9.bin \
- ./data/fldtanime.narc \
- ./data/fs_kanban.nsbca \
- ./data/ground0.NCGR \
- ./data/ground0.NCLR \
- ./data/ground0.NSCR \
- ./data/guru2.narc \
- ./data/kemu_itpconv.dat \
- ./data/lake_anim.nsbtx \
- ./data/miniasahamabe.nsbtx \
- ./data/miniasasea.nsbtx \
- ./data/minihamabe.nsbtx \
- ./data/minimum.nsbtx \
- ./data/minirhana.nsbtx \
- ./data/namein.narc \
- ./data/nfont.NCGR \
- ./data/nfont.NCLR \
- ./data/pc.nsbca \
- ./data/pl_wifi.ncgr \
- ./data/pl_wm.ncgr \
- ./data/pl_wm.nclr \
- ./data/plbr.dat \
- ./data/plist_canm.resdat \
- ./data/plist_cell.resdat \
- ./data/plist_chr.resdat \
- ./data/plist_h.cldat \
- ./data/plist_pal.resdat \
- ./data/porucase_canm.resdat \
- ./data/porucase_celact.cldat \
- ./data/porucase_cell.resdat \
- ./data/porucase_chr.resdat \
- ./data/porucase_pal.resdat \
- ./data/pst_canm.resdat \
- ./data/pst_cell.resdat \
- ./data/pst_chr.resdat \
- ./data/pst_h.cldat \
- ./data/pst_pal.resdat \
- ./data/shop_canm.resdat \
- ./data/shop_cell.resdat \
- ./data/shop_chr.resdat \
- ./data/shop_h.cldat \
- ./data/shop_pal.resdat \
- ./data/slot.narc \
- ./data/smptm_koori.NANR \
- ./data/smptm_koori.NCER \
- ./data/smptm_koori.NCGR \
- ./data/smptm_koori.NCLR \
- ./data/smptm_nemuri.NANR \
- ./data/smptm_nemuri.NCER \
- ./data/smptm_nemuri.NCGR \
- ./data/smptm_nemuri.NCLR \
- ./data/str2uni.bin \
- ./data/t3_fl_b.nsbtx \
- ./data/t3_fl_p.nsbtx \
- ./data/t3_fl_r.nsbtx \
- ./data/t3_fl_y.nsbtx \
- ./data/test.atr \
- ./data/tmap_block.dat \
- ./data/tmap_flags.dat \
- ./data/tmapn_canm.resdat \
- ./data/tmapn_celact.cldat \
- ./data/tmapn_celact.txt \
- ./data/tmapn_cell.resdat \
- ./data/tmapn_chr.resdat \
- ./data/tmapn_pal.resdat \
- ./data/tmapn_res_canm.txt \
- ./data/tmapn_res_cell.txt \
- ./data/tmapn_res_chr.txt \
- ./data/tmapn_res_pal.txt \
- ./data/tradelist.narc \
- ./data/trapmark.narc \
- ./data/tw_arc_etc.naix \
- ./data/tw_arc_etc.narc \
- ./data/ug_anim.narc \
- ./data/ug_base_cur.nsbmd \
- ./data/ug_boygirl.NCGR \
- ./data/ug_boygirl.NCLR \
- ./data/ug_fossil.narc \
- ./data/ug_hero.NANR \
- ./data/ug_hero.NCER \
- ./data/ug_hole.NANR \
- ./data/ug_hole.NCER \
- ./data/ug_hole.NCGR \
- ./data/ug_parts.narc \
- ./data/ug_radar.narc \
- ./data/ug_trap.narc \
- ./data/ugeffect_obj_graphic.narc \
- ./data/uground_cell.resdat \
- ./data/uground_cellanm.resdat \
- ./data/uground_char.resdat \
- ./data/uground_char2.resdat \
- ./data/uground_clact.cldat \
- ./data/uground_pltt.resdat \
- ./data/uground_pltt2.resdat \
- ./data/ugroundeffect.naix \
- ./data/ugroundeffect.narc \
- ./data/underg_radar.narc \
- ./data/utility.bin \
- ./data/weather_sys.narc \
- ./data/wifi.ncgr \
- ./data/wifip2pmatch.narc \
- ./data/wm.ncgr \
- ./data/wm.nclr \
- ./data/sound/sound_data.sdat \
- ./data/sound/pl_sound_data.sdat \
- ./msgdata/pl_msg.narc \
- ./msgdata/msg.narc \
- ./msgdata/scenario/scr_msg.narc \
- ./poketool/pokegra/dp_height.narc \
- ./poketool/pokegra/dp_height_o.narc \
- ./poketool/pokegra/height.narc \
- ./poketool/pokegra/height_o.narc \
- ./poketool/pokegra/otherpoke.narc \
- ./poketool/pokegra/pl_otherpoke.narc \
- ./poketool/pokegra/pl_pokegra.narc \
- ./poketool/pokegra/poke_shadow.narc \
- ./poketool/pokegra/poke_shadow_ofx.narc \
- ./poketool/pokegra/poke_yofs.narc \
- ./poketool/pokegra/pokegra.narc \
- ./poketool/trgra/trbgra.narc \
- ./poketool/trgra/trfgra.narc \
- ./poketool/personal/personal.narc \
- ./poketool/personal/pl_personal.narc \
- ./poketool/personal/evo.narc \
- ./poketool/personal/growtbl.narc \
- ./poketool/personal/pl_growtbl.narc \
- ./poketool/personal/pms.narc \
- ./poketool/personal/wotbl.narc \
- ./poketool/trainer/trdata.narc \
- ./poketool/trainer/trpoke.narc \
- ./poketool/trmsg/trtbl.narc \
- ./poketool/trmsg/trtblofs.narc \
- ./battle/graphic/b_bag_gra.narc \
- ./battle/graphic/b_plist_gra.narc \
- ./battle/graphic/batt_bg.narc \
- ./battle/graphic/batt_obj.narc \
- ./battle/graphic/pl_b_plist_gra.narc \
- ./battle/graphic/pl_batt_bg.narc \
- ./battle/graphic/pl_batt_obj.narc \
- ./battle/graphic/vs_demo_gra.narc \
- ./wazaeffect/we.arc \
- ./wazaeffect/we_sub.narc \
- ./battle/skill/be_seq.narc \
- ./battle/skill/sub_seq.narc \
- ./battle/skill/waza_seq.narc \
- ./wazaeffect/effectclact/wecell.narc \
- ./wazaeffect/effectclact/wecellanm.narc \
- ./wazaeffect/effectclact/wechar.narc \
- ./wazaeffect/effectclact/wepltt.narc \
- ./poketool/waza/pl_waza_tbl.narc \
- ./poketool/waza/waza_tbl.narc \
- ./fielddata/script/scr_seq.narc \
- ./graphic/bag_gra.narc \
- ./graphic/box.narc \
- ./graphic/btower.narc \
- ./graphic/bucket.narc \
- ./graphic/config_gra.narc \
- ./graphic/demo_trade.narc \
- ./graphic/dendou_demo.narc \
- ./graphic/dendou_pc.narc \
- ./graphic/ending.narc \
- ./graphic/ev_pokeselect.narc \
- ./graphic/f_note_gra.narc \
- ./graphic/field_board.narc \
- ./graphic/field_encounteffect.narc \
- ./graphic/fld_comact.narc \
- ./graphic/font.narc \
- ./graphic/fontoam.narc \
- ./graphic/footprint_board.narc \
- ./graphic/hiden_effect.narc \
- ./graphic/imageclip.narc \
- ./graphic/library_tv.narc \
- ./graphic/lobby_news.narc \
- ./graphic/mail_gra.narc \
- ./graphic/menu_gra.narc \
- ./graphic/mysign.narc \
- ./graphic/mystery.narc \
- ./graphic/ntag_gra.narc \
- ./graphic/nutmixer.narc \
- ./graphic/oekaki.narc \
- ./graphic/opening.narc \
- ./graphic/pl_bag_gra.narc \
- ./graphic/pl_font.narc \
- ./graphic/pl_plist_gra.narc \
- ./graphic/pl_pst_gra.narc \
- ./graphic/pl_wifinote.narc \
- ./graphic/pl_winframe.narc \
- ./graphic/plist_gra.narc \
- ./graphic/pmsi.narc \
- ./graphic/poketch.narc \
- ./graphic/poru_gra.narc \
- ./graphic/poruact.narc \
- ./graphic/porudemo.narc \
- ./graphic/pst_gra.narc \
- ./graphic/ranking.narc \
- ./graphic/record.narc \
- ./graphic/shop_gra.narc \
- ./graphic/tmap_gra.narc \
- ./graphic/touch_subwindow.narc \
- ./graphic/trainer_case.narc \
- ./graphic/unionobj2d_onlyfront.narc \
- ./graphic/unionroom.narc \
- ./graphic/waza_oshie_gra.narc \
- ./graphic/wifi2dchar.narc \
- ./graphic/wifi_lobby.narc \
- ./graphic/wifi_lobby_other.narc \
- ./graphic/wifi_unionobj.narc \
- ./graphic/winframe.narc \
- ./graphic/worldtimer.narc \
- ./graphic/worldtrade.narc \
- ./itemtool/itemdata/item_data.narc \
- ./itemtool/itemdata/item_icon.narc \
- ./itemtool/itemdata/nuts_data.narc \
- ./itemtool/itemdata/pl_item_data.narc \
- ./poketool/icongra/pl_poke_icon.narc \
- ./poketool/icongra/poke_icon.narc \
- ./poketool/pokefoot/pokefoot.narc \
- ./data/mmodel/mmodel.narc \
- ./data/mmodel/fldeff.narc \
- ./wazaeffect/effectdata/ball_particle.narc \
- ./wazaeffect/effectdata/waza_particle.narc \
- ./fielddata/eventdata/zone_event.narc \
- ./fielddata/encountdata/d_enc_data.narc \
- ./fielddata/encountdata/p_enc_data.narc \
- ./fielddata/encountdata/pl_enc_data.narc \
- ./fielddata/build_model/build_model.narc \
- ./fielddata/build_model/build_model_matshp.dat \
- ./fielddata/mapmatrix/map_matrix.narc \
- ./fielddata/areadata/area_data.narc \
- ./fielddata/areadata/area_build_model/area_build.narc \
- ./fielddata/areadata/area_build_model/areabm_texset.narc \
- ./fielddata/areadata/area_map_tex/map_tex_set.narc \
- ./fielddata/areadata/area_move_model/move_model_list.narc \
- ./fielddata/land_data/land_data.narc \
- ./contest/data/contest_data.narc \
- ./particledata/particledata.narc \
- ./application/zukanlist/zkn_data/zukan_data.narc \
- ./application/zukanlist/zkn_data/zukan_data_gira.narc \
- ./application/wifi_earth/wifi_earth.narc \
- ./application/wifi_earth/wifi_earth_place.narc \
- ./application/custom_ball/data/cb_data.narc \
- ./demo/egg/data/egg_data.narc \
- ./demo/egg/data/particle/egg_demo_particle.narc \
- ./fielddata/mm_list/move_model_list.narc \
- ./pokeanime/poke_anm.narc \
- ./pokeanime/pl_poke_anm.narc \
- ./battle/tr_ai/tr_ai_seq.narc \
- ./arc/area_win_gra.narc \
- ./arc/balance_ball_gra.narc \
- ./arc/bm_anime.narc \
- ./arc/bm_anime_list.narc \
- ./arc/codein_gra.narc \
- ./arc/demo_tengan_gra.narc \
- ./arc/email_gra.narc \
- ./arc/encdata_ex.narc \
- ./arc/manene.narc \
- ./arc/plgym_ghost.narc \
- ./arc/ppark.narc \
- ./arc/ship_demo.narc \
- ./arc/ship_demo_pl.narc \
- ./arc/tv.narc \
- ./fielddata/maptable/mapname.bin \
- ./poketool/pokezukan.narc \
- ./poketool/pl_pokezukan.narc \
- ./poketool/shinzukan.narc \
- ./poketool/pokeanm/pokeanm.narc \
- ./poketool/pokeanm/pl_pokeanm.narc \
- ./demo/shinka/data/particle/shinka_demo_particle.narc \
- ./demo/intro/intro.narc \
- ./demo/intro/intro_tv.narc \
- ./demo/syoujyou/syoujyou.narc \
- ./battle/b_tower/btdpm.narc \
- ./battle/b_tower/btdtr.narc \
- ./application/zukanlist/zkn_data/zukan_enc_diamond.narc \
- ./application/zukanlist/zkn_data/zukan_enc_pearl.narc \
- ./application/zukanlist/zkn_data/zukan_enc_platinum.narc \
- ./poketool/poke_edit/pl_poke_data.narc \
- ./debug/cb_edit/d_test.narc \
- ./application/custom_ball/edit/pl_cb_data.narc \
- ./frontier/script/fr_script.narc \
- ./particledata/pl_frontier/frontier_particle.narc \
- ./application/balloon/graphic/balloon_gra.narc \
- ./application/wifi_lobby/map_conv/wflby_map.narc \
- ./fielddata/tornworld/tw_arc.narc \
- ./fielddata/tornworld/tw_arc_attr.narc \
- ./particledata/pl_pokelist/pokelist_particle.narc \
- ./battle/b_pl_stage/pl_bsdpm.narc \
- ./battle/b_pl_tower/pl_btdpm.narc \
- ./battle/b_pl_tower/pl_btdtr.narc \
- ./application/bucket/ballslow_data.narc \
- ./particledata/pl_etc/pl_etc_particle.narc \
- ./contest/graphic/contest_bg.narc \
- ./contest/graphic/contest_obj.narc \
- ./demo/title/op_demo.narc \
- ./demo/title/titledemo.narc \
- ./fielddata/pokemon_trade/fld_trade.narc \
- ./resource/eng/zukan/zukan.narc \
- ./resource/eng/batt_rec/batt_rec_gra.narc \
- ./resource/eng/wifi_lobby_minigame/wlmngm_tool.narc \
- ./resource/eng/frontier_graphic/frontier_bg.narc \
- ./resource/eng/frontier_graphic/frontier_obj.narc \
- ./resource/eng/scratch/scratch.narc \
- ./resource/eng/pms_aikotoba/pms_aikotoba.narc \
- ./dwc/utility.bin
\ No newline at end of file
diff --git a/force_active.mk b/force_active.mk
deleted file mode 100644
index e92ccfe534..0000000000
--- a/force_active.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-FORCE_ACTIVE_SYMBOLS := \
- DGTi_hash2_arm4_small, \
- Exception_Table_Index, \
- Unk_02101B00, \
- Unk_02101CE4
diff --git a/include/functypes/funcptr_020146F4.h b/include/functypes/funcptr_020146F4.h
index 824af453a9..a7c5482a3b 100644
--- a/include/functypes/funcptr_020146F4.h
+++ b/include/functypes/funcptr_020146F4.h
@@ -2,7 +2,7 @@
#define POKEPLATINUM_FUNCPTR_020146F4_H
-#include "library/spl.h"
+#include "spl.h"
typedef void (* UnkFuncPtr_020146F4)(UnkSPLStruct6 *);
diff --git a/include/global/thumb.h b/include/global/thumb.h
deleted file mode 100644
index d1ee53e252..0000000000
--- a/include/global/thumb.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef POKEPLATINUM_THUMB_H
-#define POKEPLATINUM_THUMB_H
-
-// doesn't work for asm functions if included in a precompiled header for some reason
-#pragma thumb on
-
-#endif // POKEPLATINUM_THUMB_H
diff --git a/include/overlay012/ov12_0221FC20.h b/include/overlay012/ov12_0221FC20.h
index d9734d2f3f..16c420706a 100644
--- a/include/overlay012/ov12_0221FC20.h
+++ b/include/overlay012/ov12_0221FC20.h
@@ -20,7 +20,7 @@
#include "overlay016/struct_ov16_02265BBC.h"
#include "overlay104/struct_ov104_0223F9E0.h"
-#include "library/spl.h"
+#include "spl.h"
UnkStruct_ov12_0221FCDC * ov12_0221FCDC(int param0);
void ov12_0221FDC0(UnkStruct_ov12_0221FCDC * param0, BOOL param1);
diff --git a/include/overlay012/ov12_022237EC.h b/include/overlay012/ov12_022237EC.h
index 3f6649c57c..b071f560b6 100644
--- a/include/overlay012/ov12_022237EC.h
+++ b/include/overlay012/ov12_022237EC.h
@@ -4,7 +4,7 @@
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_decls/struct_02014014_decl.h"
-#include "library/spl.h"
+#include "spl.h"
UnkStruct_02014014 * ov12_022237F0(int param0, int param1, int param2);
UnkStruct_02014014 * ov12_02223818(int param0, int param1, int param2, int param3);
diff --git a/include/overlay012/ov12_0222389C.h b/include/overlay012/ov12_0222389C.h
index 2de9ab9725..e393907514 100644
--- a/include/overlay012/ov12_0222389C.h
+++ b/include/overlay012/ov12_0222389C.h
@@ -2,7 +2,7 @@
#define POKEPLATINUM_OV12_0222389C_H
-#include "library/spl.h"
+#include "spl.h"
void ov12_022238DC(UnkSPLStruct6 * param0);
void ov12_022238E0(UnkSPLStruct6 * param0);
diff --git a/include/overlay012/ov12_0222421C.h b/include/overlay012/ov12_0222421C.h
index b066a9f25f..d6f6e6c661 100644
--- a/include/overlay012/ov12_0222421C.h
+++ b/include/overlay012/ov12_0222421C.h
@@ -3,7 +3,7 @@
#include "overlay012/struct_ov12_02225640.h"
-#include "library/spl.h"
+#include "spl.h"
void ov12_02224F14(UnkSPLStruct6 * param0);
s8 ov12_02224FC4(UnkStruct_ov12_02225640 * param0);
diff --git a/include/overlay012/ov12_02225104.h b/include/overlay012/ov12_02225104.h
index 3fc50b83b3..3bb6bb22b2 100644
--- a/include/overlay012/ov12_02225104.h
+++ b/include/overlay012/ov12_02225104.h
@@ -3,7 +3,7 @@
#include "overlay012/struct_ov12_02225640.h"
-#include "library/spl.h"
+#include "spl.h"
void ov12_022255D4(int param0, UnkSPLStruct6 * param1, UnkStruct_ov12_02225640 * param2);
int ov12_022255EC(int param0);
diff --git a/include/overlay012/ov12_02225640.h b/include/overlay012/ov12_02225640.h
index 0050402752..6d54a80465 100644
--- a/include/overlay012/ov12_02225640.h
+++ b/include/overlay012/ov12_02225640.h
@@ -3,7 +3,7 @@
#include "overlay012/struct_ov12_02225640.h"
-#include "library/spl.h"
+#include "spl.h"
void ov12_0222584C(int param0, UnkSPLStruct6 * param1, UnkStruct_ov12_02225640 * param2);
diff --git a/include/overlay077/ov77_021D6C70.h b/include/overlay077/ov77_021D6C70.h
index 7b0bfe1881..ae4e308ba3 100644
--- a/include/overlay077/ov77_021D6C70.h
+++ b/include/overlay077/ov77_021D6C70.h
@@ -4,7 +4,7 @@
#include "struct_decls/struct_02014014_decl.h"
#include "overlay077/struct_ov77_021D6CFC_decl.h"
-#include "library/spl.h"
+#include "spl.h"
const int ov77_021D6CB8(void);
UnkStruct_02014014 * ov77_021D6CBC(UnkStruct_ov77_021D6CFC * param0);
diff --git a/include/overlay119/struct_ov119_021D14DC.h b/include/overlay119/struct_ov119_021D14DC.h
index 4d99ca8733..7dfa13ce25 100644
--- a/include/overlay119/struct_ov119_021D14DC.h
+++ b/include/overlay119/struct_ov119_021D14DC.h
@@ -4,7 +4,7 @@
#include "struct_decls/struct_02014014_decl.h"
#include "overlay119/struct_ov119_021D1930.h"
-#include "library/spl.h"
+#include "spl.h"
typedef struct {
UnkStruct_ov119_021D1930 unk_00;
diff --git a/include/global/global.pch b/include/pch/global_pch.h
similarity index 94%
rename from include/global/global.pch
rename to include/pch/global_pch.h
index 48bf1207f2..25be7574f2 100644
--- a/include/global/global.pch
+++ b/include/pch/global_pch.h
@@ -9,7 +9,6 @@
#include
#include "global/config.h" // MUST COME BEFORE ANY OTHER GAMEFREAK HEADERS
-//#include "constants/global.h"
#include "global/pm_version.h"
#include "global/assert.h"
#include "constants/pokemon.h"
diff --git a/include/struct_defs/struct_0207C8C4.h b/include/struct_defs/struct_0207C8C4.h
index 85e4899ac0..2a71e00c74 100644
--- a/include/struct_defs/struct_0207C8C4.h
+++ b/include/struct_defs/struct_0207C8C4.h
@@ -4,7 +4,7 @@
#include "struct_decls/struct_02014014_decl.h"
#include "struct_defs/struct_0207C894.h"
-#include "library/spl.h"
+#include "spl.h"
typedef struct {
UnkStruct_0207C894 unk_00;
diff --git a/include/unk_02014000.h b/include/unk_02014000.h
index 7c39a256a6..b1f13c7104 100644
--- a/include/unk_02014000.h
+++ b/include/unk_02014000.h
@@ -6,7 +6,7 @@
#include "functypes/funcptr_020146F4.h"
#include "struct_decls/struct_020203AC_decl.h"
-#include "library/spl.h"
+#include "spl.h"
#include
#include
diff --git a/lib/NitroSDK/asm/os/include/os_irqhandler.inc b/lib/NitroSDK/asm/os/include/os_irqhandler.inc
deleted file mode 100644
index c3cd311048..0000000000
--- a/lib/NitroSDK/asm/os/include/os_irqhandler.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-.public OS_SleepThread
-.public OS_DisableInterrupts
-.public OS_RestoreInterrupts
diff --git a/lib/NitroSDK/asm/os/os_irqhandler.s b/lib/NitroSDK/asm/os/os_irqhandler.s
deleted file mode 100644
index 0f305d56b5..0000000000
--- a/lib/NitroSDK/asm/os/os_irqhandler.s
+++ /dev/null
@@ -1,44 +0,0 @@
- .include "macros/function.inc"
- .include "include/os_irqhandler.inc"
-
- .extern OS_IRQTable
- .extern OSi_IrqThreadQueue
-
- .text
-
-
- arm_func_start OS_WaitIrq
-OS_WaitIrq: ; 0x020C12B4
- stmfd sp!, {r4, r5, r6, lr}
- mov r5, r0
- mov r4, r1
- bl OS_DisableInterrupts
- cmp r5, #0
- beq _020C12E4
- ldr r1, _020C1320 ; =0x027E0000
- mvn r2, r4
- add r1, r1, #0x3000
- ldr r3, [r1, #0xff8]
- and r2, r3, r2
- str r2, [r1, #0xff8]
-_020C12E4:
- bl OS_RestoreInterrupts
- ldr r1, _020C1320 ; =0x027E0000
- add r0, r1, #0x3000
- ldr r0, [r0, #0xff8]
- tst r4, r0
- ldmneia sp!, {r4, r5, r6, pc}
- add r0, r1, #0x3f8
- ldr r5, _020C1324 ; =0x027E0060
- add r6, r0, #0x3c00
-_020C1308:
- mov r0, r5
- bl OS_SleepThread
- ldr r0, [r6, #0]
- tst r4, r0
- beq _020C1308
- ldmia sp!, {r4, r5, r6, pc}
- ; .align 2, 0
-_020C1320: .word OS_IRQTable
-_020C1324: .word OSi_IrqThreadQueue
- arm_func_end OS_WaitIrq
\ No newline at end of file
diff --git a/lib/NitroDWC/include/ac/dwc_ac.h b/lib/external/NitroDWC/include/ac/dwc_ac.h
similarity index 100%
rename from lib/NitroDWC/include/ac/dwc_ac.h
rename to lib/external/NitroDWC/include/ac/dwc_ac.h
diff --git a/lib/NitroDWC/include/auth/dwc_auth.h b/lib/external/NitroDWC/include/auth/dwc_auth.h
similarity index 100%
rename from lib/NitroDWC/include/auth/dwc_auth.h
rename to lib/external/NitroDWC/include/auth/dwc_auth.h
diff --git a/lib/NitroDWC/include/auth/dwc_http.h b/lib/external/NitroDWC/include/auth/dwc_http.h
similarity index 100%
rename from lib/NitroDWC/include/auth/dwc_http.h
rename to lib/external/NitroDWC/include/auth/dwc_http.h
diff --git a/lib/NitroDWC/include/auth/dwc_netcheck.h b/lib/external/NitroDWC/include/auth/dwc_netcheck.h
similarity index 100%
rename from lib/NitroDWC/include/auth/dwc_netcheck.h
rename to lib/external/NitroDWC/include/auth/dwc_netcheck.h
diff --git a/lib/NitroDWC/include/auth/dwc_prof.h b/lib/external/NitroDWC/include/auth/dwc_prof.h
similarity index 100%
rename from lib/NitroDWC/include/auth/dwc_prof.h
rename to lib/external/NitroDWC/include/auth/dwc_prof.h
diff --git a/lib/NitroDWC/include/auth/dwc_svl.h b/lib/external/NitroDWC/include/auth/dwc_svl.h
similarity index 100%
rename from lib/NitroDWC/include/auth/dwc_svl.h
rename to lib/external/NitroDWC/include/auth/dwc_svl.h
diff --git a/lib/NitroDWC/include/auth/util_alloc.h b/lib/external/NitroDWC/include/auth/util_alloc.h
similarity index 100%
rename from lib/NitroDWC/include/auth/util_alloc.h
rename to lib/external/NitroDWC/include/auth/util_alloc.h
diff --git a/lib/NitroDWC/include/auth/util_base64.h b/lib/external/NitroDWC/include/auth/util_base64.h
similarity index 100%
rename from lib/NitroDWC/include/auth/util_base64.h
rename to lib/external/NitroDWC/include/auth/util_base64.h
diff --git a/lib/NitroDWC/include/base/dwc_account.h b/lib/external/NitroDWC/include/base/dwc_account.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_account.h
rename to lib/external/NitroDWC/include/base/dwc_account.h
diff --git a/lib/NitroDWC/include/base/dwc_base_gamespy.h b/lib/external/NitroDWC/include/base/dwc_base_gamespy.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_base_gamespy.h
rename to lib/external/NitroDWC/include/base/dwc_base_gamespy.h
diff --git a/lib/NitroDWC/include/base/dwc_common.h b/lib/external/NitroDWC/include/base/dwc_common.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_common.h
rename to lib/external/NitroDWC/include/base/dwc_common.h
diff --git a/lib/NitroDWC/include/base/dwc_connectinet.h b/lib/external/NitroDWC/include/base/dwc_connectinet.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_connectinet.h
rename to lib/external/NitroDWC/include/base/dwc_connectinet.h
diff --git a/lib/NitroDWC/include/base/dwc_core.h b/lib/external/NitroDWC/include/base/dwc_core.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_core.h
rename to lib/external/NitroDWC/include/base/dwc_core.h
diff --git a/lib/NitroDWC/include/base/dwc_error.h b/lib/external/NitroDWC/include/base/dwc_error.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_error.h
rename to lib/external/NitroDWC/include/base/dwc_error.h
diff --git a/lib/NitroDWC/include/base/dwc_friend.h b/lib/external/NitroDWC/include/base/dwc_friend.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_friend.h
rename to lib/external/NitroDWC/include/base/dwc_friend.h
diff --git a/lib/NitroDWC/include/base/dwc_ghttp.h b/lib/external/NitroDWC/include/base/dwc_ghttp.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_ghttp.h
rename to lib/external/NitroDWC/include/base/dwc_ghttp.h
diff --git a/lib/NitroDWC/include/base/dwc_init.h b/lib/external/NitroDWC/include/base/dwc_init.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_init.h
rename to lib/external/NitroDWC/include/base/dwc_init.h
diff --git a/lib/NitroDWC/include/base/dwc_login.h b/lib/external/NitroDWC/include/base/dwc_login.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_login.h
rename to lib/external/NitroDWC/include/base/dwc_login.h
diff --git a/lib/NitroDWC/include/base/dwc_main.h b/lib/external/NitroDWC/include/base/dwc_main.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_main.h
rename to lib/external/NitroDWC/include/base/dwc_main.h
diff --git a/lib/NitroDWC/include/base/dwc_match.h b/lib/external/NitroDWC/include/base/dwc_match.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_match.h
rename to lib/external/NitroDWC/include/base/dwc_match.h
diff --git a/lib/NitroDWC/include/base/dwc_memfunc.h b/lib/external/NitroDWC/include/base/dwc_memfunc.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_memfunc.h
rename to lib/external/NitroDWC/include/base/dwc_memfunc.h
diff --git a/lib/NitroDWC/include/base/dwc_nasfunc.h b/lib/external/NitroDWC/include/base/dwc_nasfunc.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_nasfunc.h
rename to lib/external/NitroDWC/include/base/dwc_nasfunc.h
diff --git a/lib/NitroDWC/include/base/dwc_nd.h b/lib/external/NitroDWC/include/base/dwc_nd.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_nd.h
rename to lib/external/NitroDWC/include/base/dwc_nd.h
diff --git a/lib/NitroDWC/include/base/dwc_ranking.h b/lib/external/NitroDWC/include/base/dwc_ranking.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_ranking.h
rename to lib/external/NitroDWC/include/base/dwc_ranking.h
diff --git a/lib/NitroDWC/include/base/dwc_report.h b/lib/external/NitroDWC/include/base/dwc_report.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_report.h
rename to lib/external/NitroDWC/include/base/dwc_report.h
diff --git a/lib/NitroDWC/include/base/dwc_transport.h b/lib/external/NitroDWC/include/base/dwc_transport.h
similarity index 100%
rename from lib/NitroDWC/include/base/dwc_transport.h
rename to lib/external/NitroDWC/include/base/dwc_transport.h
diff --git a/lib/NitroDWC/include/bm/dwc_bm_init.h b/lib/external/NitroDWC/include/bm/dwc_bm_init.h
similarity index 100%
rename from lib/NitroDWC/include/bm/dwc_bm_init.h
rename to lib/external/NitroDWC/include/bm/dwc_bm_init.h
diff --git a/lib/NitroDWC/include/bm/util_wifiidtool.h b/lib/external/NitroDWC/include/bm/util_wifiidtool.h
similarity index 100%
rename from lib/NitroDWC/include/bm/util_wifiidtool.h
rename to lib/external/NitroDWC/include/bm/util_wifiidtool.h
diff --git a/lib/NitroDWC/include/dwc.h b/lib/external/NitroDWC/include/dwc.h
similarity index 100%
rename from lib/NitroDWC/include/dwc.h
rename to lib/external/NitroDWC/include/dwc.h
diff --git a/lib/NitroDWC/include/dwc_version.h b/lib/external/NitroDWC/include/dwc_version.h
similarity index 100%
rename from lib/NitroDWC/include/dwc_version.h
rename to lib/external/NitroDWC/include/dwc_version.h
diff --git a/lib/NitroDWC/include/enc/dwci_encsession.h b/lib/external/NitroDWC/include/enc/dwci_encsession.h
similarity index 100%
rename from lib/NitroDWC/include/enc/dwci_encsession.h
rename to lib/external/NitroDWC/include/enc/dwci_encsession.h
diff --git a/lib/NitroDWC/include/lobby/dwc_lobby.h b/lib/external/NitroDWC/include/lobby/dwc_lobby.h
similarity index 100%
rename from lib/NitroDWC/include/lobby/dwc_lobby.h
rename to lib/external/NitroDWC/include/lobby/dwc_lobby.h
diff --git a/lib/NitroDWC/include/lobby/dwci_lobby.h b/lib/external/NitroDWC/include/lobby/dwci_lobby.h
similarity index 100%
rename from lib/NitroDWC/include/lobby/dwci_lobby.h
rename to lib/external/NitroDWC/include/lobby/dwci_lobby.h
diff --git a/lib/NitroDWC/include/nd/DWCi_Nd.h b/lib/external/NitroDWC/include/nd/DWCi_Nd.h
similarity index 100%
rename from lib/NitroDWC/include/nd/DWCi_Nd.h
rename to lib/external/NitroDWC/include/nd/DWCi_Nd.h
diff --git a/lib/NitroDWC/include/nhttp/NHTTP.h b/lib/external/NitroDWC/include/nhttp/NHTTP.h
similarity index 100%
rename from lib/NitroDWC/include/nhttp/NHTTP.h
rename to lib/external/NitroDWC/include/nhttp/NHTTP.h
diff --git a/lib/NitroDWC/include/ppwlobby/ppw_lobby.h b/lib/external/NitroDWC/include/ppwlobby/ppw_lobby.h
similarity index 100%
rename from lib/NitroDWC/include/ppwlobby/ppw_lobby.h
rename to lib/external/NitroDWC/include/ppwlobby/ppw_lobby.h
diff --git a/lib/NitroDWC/include/ranking/dwc_ranksession.h b/lib/external/NitroDWC/include/ranking/dwc_ranksession.h
similarity index 100%
rename from lib/NitroDWC/include/ranking/dwc_ranksession.h
rename to lib/external/NitroDWC/include/ranking/dwc_ranksession.h
diff --git a/lib/NitroDWC/include/util/dwc_utility.h b/lib/external/NitroDWC/include/util/dwc_utility.h
similarity index 100%
rename from lib/NitroDWC/include/util/dwc_utility.h
rename to lib/external/NitroDWC/include/util/dwc_utility.h
diff --git a/lib/NitroDWC/asm/ac/beacon.s b/lib/external/NitroDWC/libraries/ac/asm/beacon.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/beacon.s
rename to lib/external/NitroDWC/libraries/ac/asm/beacon.s
diff --git a/lib/NitroDWC/asm/ac/callback.s b/lib/external/NitroDWC/libraries/ac/asm/callback.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/callback.s
rename to lib/external/NitroDWC/libraries/ac/asm/callback.s
diff --git a/lib/NitroDWC/asm/ac/close.s b/lib/external/NitroDWC/libraries/ac/asm/close.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/close.s
rename to lib/external/NitroDWC/libraries/ac/asm/close.s
diff --git a/lib/NitroDWC/asm/ac/connect.s b/lib/external/NitroDWC/libraries/ac/asm/connect.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/connect.s
rename to lib/external/NitroDWC/libraries/ac/asm/connect.s
diff --git a/lib/NitroDWC/asm/ac/dwc_ac.s b/lib/external/NitroDWC/libraries/ac/asm/dwc_ac.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/dwc_ac.s
rename to lib/external/NitroDWC/libraries/ac/asm/dwc_ac.s
diff --git a/lib/NitroDWC/asm/ac/error.s b/lib/external/NitroDWC/libraries/ac/asm/error.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/error.s
rename to lib/external/NitroDWC/libraries/ac/asm/error.s
diff --git a/lib/NitroDWC/asm/ac/incbin/search_dwcac.bin b/lib/external/NitroDWC/libraries/ac/asm/incbin/search_dwcac.bin
similarity index 100%
rename from lib/NitroDWC/asm/ac/incbin/search_dwcac.bin
rename to lib/external/NitroDWC/libraries/ac/asm/incbin/search_dwcac.bin
diff --git a/lib/NitroDWC/asm/ac/incbin/shop_usb.bin b/lib/external/NitroDWC/libraries/ac/asm/incbin/shop_usb.bin
similarity index 100%
rename from lib/NitroDWC/asm/ac/incbin/shop_usb.bin
rename to lib/external/NitroDWC/libraries/ac/asm/incbin/shop_usb.bin
diff --git a/lib/NitroDWC/asm/ac/incbin/test.bin b/lib/external/NitroDWC/libraries/ac/asm/incbin/test.bin
similarity index 100%
rename from lib/NitroDWC/asm/ac/incbin/test.bin
rename to lib/external/NitroDWC/libraries/ac/asm/incbin/test.bin
diff --git a/lib/NitroDWC/asm/ac/include/beacon.inc b/lib/external/NitroDWC/libraries/ac/asm/include/beacon.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/beacon.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/beacon.inc
diff --git a/lib/NitroDWC/asm/ac/include/callback.inc b/lib/external/NitroDWC/libraries/ac/asm/include/callback.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/callback.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/callback.inc
diff --git a/lib/NitroDWC/asm/ac/include/close.inc b/lib/external/NitroDWC/libraries/ac/asm/include/close.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/close.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/close.inc
diff --git a/lib/NitroDWC/asm/ac/include/connect.inc b/lib/external/NitroDWC/libraries/ac/asm/include/connect.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/connect.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/connect.inc
diff --git a/lib/NitroDWC/asm/ac/include/dwc_ac.inc b/lib/external/NitroDWC/libraries/ac/asm/include/dwc_ac.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/dwc_ac.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/dwc_ac.inc
diff --git a/lib/NitroDWC/asm/ac/include/error.inc b/lib/external/NitroDWC/libraries/ac/asm/include/error.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/error.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/error.inc
diff --git a/lib/NitroDWC/asm/ac/include/makelist.inc b/lib/external/NitroDWC/libraries/ac/asm/include/makelist.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/makelist.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/makelist.inc
diff --git a/lib/NitroDWC/asm/ac/include/nintendospot.inc b/lib/external/NitroDWC/libraries/ac/asm/include/nintendospot.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/nintendospot.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/nintendospot.inc
diff --git a/lib/NitroDWC/asm/ac/include/retry.inc b/lib/external/NitroDWC/libraries/ac/asm/include/retry.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/retry.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/retry.inc
diff --git a/lib/NitroDWC/asm/ac/include/search_dwcac.inc b/lib/external/NitroDWC/libraries/ac/asm/include/search_dwcac.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/search_dwcac.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/search_dwcac.inc
diff --git a/lib/NitroDWC/asm/ac/include/shop_usb.inc b/lib/external/NitroDWC/libraries/ac/asm/include/shop_usb.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/shop_usb.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/shop_usb.inc
diff --git a/lib/NitroDWC/asm/ac/include/start.inc b/lib/external/NitroDWC/libraries/ac/asm/include/start.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/start.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/start.inc
diff --git a/lib/NitroDWC/asm/ac/include/test.inc b/lib/external/NitroDWC/libraries/ac/asm/include/test.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/test.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/test.inc
diff --git a/lib/NitroDWC/asm/ac/include/wds.inc b/lib/external/NitroDWC/libraries/ac/asm/include/wds.inc
similarity index 100%
rename from lib/NitroDWC/asm/ac/include/wds.inc
rename to lib/external/NitroDWC/libraries/ac/asm/include/wds.inc
diff --git a/lib/external/NitroDWC/libraries/ac/asm/macros/function.inc b/lib/external/NitroDWC/libraries/ac/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/ac/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/NitroDWC/asm/ac/makelist.s b/lib/external/NitroDWC/libraries/ac/asm/makelist.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/makelist.s
rename to lib/external/NitroDWC/libraries/ac/asm/makelist.s
diff --git a/lib/NitroDWC/asm/ac/nintendospot.s b/lib/external/NitroDWC/libraries/ac/asm/nintendospot.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/nintendospot.s
rename to lib/external/NitroDWC/libraries/ac/asm/nintendospot.s
diff --git a/lib/NitroDWC/asm/ac/retry.s b/lib/external/NitroDWC/libraries/ac/asm/retry.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/retry.s
rename to lib/external/NitroDWC/libraries/ac/asm/retry.s
diff --git a/lib/NitroDWC/asm/ac/search_dwcac.s b/lib/external/NitroDWC/libraries/ac/asm/search_dwcac.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/search_dwcac.s
rename to lib/external/NitroDWC/libraries/ac/asm/search_dwcac.s
diff --git a/lib/NitroDWC/asm/ac/shop_usb.s b/lib/external/NitroDWC/libraries/ac/asm/shop_usb.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/shop_usb.s
rename to lib/external/NitroDWC/libraries/ac/asm/shop_usb.s
diff --git a/lib/NitroDWC/asm/ac/start.s b/lib/external/NitroDWC/libraries/ac/asm/start.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/start.s
rename to lib/external/NitroDWC/libraries/ac/asm/start.s
diff --git a/lib/NitroDWC/asm/ac/test.s b/lib/external/NitroDWC/libraries/ac/asm/test.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/test.s
rename to lib/external/NitroDWC/libraries/ac/asm/test.s
diff --git a/lib/NitroDWC/asm/ac/wds.s b/lib/external/NitroDWC/libraries/ac/asm/wds.s
similarity index 100%
rename from lib/NitroDWC/asm/ac/wds.s
rename to lib/external/NitroDWC/libraries/ac/asm/wds.s
diff --git a/lib/external/NitroDWC/libraries/ac/meson.build b/lib/external/NitroDWC/libraries/ac/meson.build
new file mode 100644
index 0000000000..f824cebc1e
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/ac/meson.build
@@ -0,0 +1,25 @@
+libdwcac_srcs = files(
+ 'asm/dwc_ac.s',
+ 'asm/beacon.s',
+ 'asm/callback.s',
+ 'asm/connect.s',
+ 'asm/close.s',
+ 'asm/error.s',
+ 'asm/makelist.s',
+ 'asm/retry.s',
+ 'asm/search_dwcac.s',
+ 'asm/start.s',
+ 'asm/test.s',
+ 'asm/shop_usb.s',
+ 'asm/wds.s',
+ 'asm/nintendospot.s'
+)
+
+libdwcac = static_library('dwcac',
+ sources: libdwcac_srcs,
+ nasm_args: asm_args,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrodwc_libs += libdwcac
diff --git a/lib/external/NitroDWC/libraries/account/meson.build b/lib/external/NitroDWC/libraries/account/meson.build
new file mode 100644
index 0000000000..3c4a555cde
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/account/meson.build
@@ -0,0 +1,21 @@
+libdwcaccount_srcs = files(
+ 'src/dwc_init.c',
+ 'src/dwc_account.c'
+)
+
+libdwcaccount = static_library('dwcaccount',
+ sources: [libdwcaccount_srcs],
+ c_args: [c_args, sdk_args],
+ dependencies: [
+ msl_dep,
+ gamespy_dep,
+ nitrosdk_dep,
+ nitrosystem_dep,
+ nitrowifi_dep
+ ],
+ include_directories: [public_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrodwc_libs += libdwcaccount
diff --git a/lib/NitroDWC/src/account/dwc_account.c b/lib/external/NitroDWC/libraries/account/src/dwc_account.c
similarity index 100%
rename from lib/NitroDWC/src/account/dwc_account.c
rename to lib/external/NitroDWC/libraries/account/src/dwc_account.c
diff --git a/lib/NitroDWC/src/account/dwc_init.c b/lib/external/NitroDWC/libraries/account/src/dwc_init.c
similarity index 100%
rename from lib/NitroDWC/src/account/dwc_init.c
rename to lib/external/NitroDWC/libraries/account/src/dwc_init.c
diff --git a/lib/external/NitroDWC/libraries/account/src/meson.build b/lib/external/NitroDWC/libraries/account/src/meson.build
new file mode 100644
index 0000000000..a0fa8ff017
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/account/src/meson.build
@@ -0,0 +1,4 @@
+libdwcaccount_srcs = files(
+ 'dwc_init.c',
+ 'dwc_account.c'
+)
\ No newline at end of file
diff --git a/lib/NitroDWC/asm/auth/dwc_auth.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_auth.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_auth.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_auth.s
diff --git a/lib/NitroDWC/asm/auth/dwc_ca_cybertrust.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_ca_cybertrust.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_ca_cybertrust.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_ca_cybertrust.s
diff --git a/lib/NitroDWC/asm/auth/dwc_ca_globalsign.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_ca_globalsign.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_ca_globalsign.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_ca_globalsign.s
diff --git a/lib/NitroDWC/asm/auth/dwc_ca_nas_self.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_ca_nas_self.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_ca_nas_self.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_ca_nas_self.s
diff --git a/lib/NitroDWC/asm/auth/dwc_ca_thawte_premiumserver.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_ca_thawte_premiumserver.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_ca_thawte_premiumserver.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_ca_thawte_premiumserver.s
diff --git a/lib/NitroDWC/asm/auth/dwc_ca_thawte_server.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_ca_thawte_server.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_ca_thawte_server.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_ca_thawte_server.s
diff --git a/lib/NitroDWC/asm/auth/dwc_ca_verisign.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_ca_verisign.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_ca_verisign.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_ca_verisign.s
diff --git a/lib/NitroDWC/asm/auth/dwc_cal.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_cal.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_cal.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_cal.s
diff --git a/lib/NitroDWC/asm/auth/dwc_http.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_http.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_http.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_http.s
diff --git a/lib/NitroDWC/asm/auth/dwc_nastime.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_nastime.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_nastime.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_nastime.s
diff --git a/lib/NitroDWC/asm/auth/dwc_netcheck.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_netcheck.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_netcheck.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_netcheck.s
diff --git a/lib/NitroDWC/asm/auth/dwc_svl.s b/lib/external/NitroDWC/libraries/auth/asm/dwc_svl.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/dwc_svl.s
rename to lib/external/NitroDWC/libraries/auth/asm/dwc_svl.s
diff --git a/lib/NitroDWC/asm/auth/incbin/dwc_ca_cybertrust.bin b/lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_cybertrust.bin
similarity index 100%
rename from lib/NitroDWC/asm/auth/incbin/dwc_ca_cybertrust.bin
rename to lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_cybertrust.bin
diff --git a/lib/NitroDWC/asm/auth/incbin/dwc_ca_globalsign.bin b/lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_globalsign.bin
similarity index 100%
rename from lib/NitroDWC/asm/auth/incbin/dwc_ca_globalsign.bin
rename to lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_globalsign.bin
diff --git a/lib/NitroDWC/asm/auth/incbin/dwc_ca_nas_self.bin b/lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_nas_self.bin
similarity index 100%
rename from lib/NitroDWC/asm/auth/incbin/dwc_ca_nas_self.bin
rename to lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_nas_self.bin
diff --git a/lib/NitroDWC/asm/auth/incbin/dwc_ca_thawte_premiumserver.bin b/lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_thawte_premiumserver.bin
similarity index 100%
rename from lib/NitroDWC/asm/auth/incbin/dwc_ca_thawte_premiumserver.bin
rename to lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_thawte_premiumserver.bin
diff --git a/lib/NitroDWC/asm/auth/incbin/dwc_ca_thawte_server.bin b/lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_thawte_server.bin
similarity index 100%
rename from lib/NitroDWC/asm/auth/incbin/dwc_ca_thawte_server.bin
rename to lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_thawte_server.bin
diff --git a/lib/NitroDWC/asm/auth/incbin/dwc_ca_verisign.bin b/lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_verisign.bin
similarity index 100%
rename from lib/NitroDWC/asm/auth/incbin/dwc_ca_verisign.bin
rename to lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_ca_verisign.bin
diff --git a/lib/NitroDWC/asm/auth/incbin/dwc_nastime.bin b/lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_nastime.bin
similarity index 100%
rename from lib/NitroDWC/asm/auth/incbin/dwc_nastime.bin
rename to lib/external/NitroDWC/libraries/auth/asm/incbin/dwc_nastime.bin
diff --git a/lib/NitroDWC/asm/auth/include/dwc_auth.inc b/lib/external/NitroDWC/libraries/auth/asm/include/dwc_auth.inc
similarity index 100%
rename from lib/NitroDWC/asm/auth/include/dwc_auth.inc
rename to lib/external/NitroDWC/libraries/auth/asm/include/dwc_auth.inc
diff --git a/lib/NitroDWC/asm/auth/include/dwc_cal.inc b/lib/external/NitroDWC/libraries/auth/asm/include/dwc_cal.inc
similarity index 100%
rename from lib/NitroDWC/asm/auth/include/dwc_cal.inc
rename to lib/external/NitroDWC/libraries/auth/asm/include/dwc_cal.inc
diff --git a/lib/NitroDWC/asm/auth/include/dwc_http.inc b/lib/external/NitroDWC/libraries/auth/asm/include/dwc_http.inc
similarity index 100%
rename from lib/NitroDWC/asm/auth/include/dwc_http.inc
rename to lib/external/NitroDWC/libraries/auth/asm/include/dwc_http.inc
diff --git a/lib/NitroDWC/asm/auth/include/dwc_nastime.inc b/lib/external/NitroDWC/libraries/auth/asm/include/dwc_nastime.inc
similarity index 100%
rename from lib/NitroDWC/asm/auth/include/dwc_nastime.inc
rename to lib/external/NitroDWC/libraries/auth/asm/include/dwc_nastime.inc
diff --git a/lib/NitroDWC/asm/auth/include/dwc_netcheck.inc b/lib/external/NitroDWC/libraries/auth/asm/include/dwc_netcheck.inc
similarity index 100%
rename from lib/NitroDWC/asm/auth/include/dwc_netcheck.inc
rename to lib/external/NitroDWC/libraries/auth/asm/include/dwc_netcheck.inc
diff --git a/lib/NitroDWC/asm/auth/include/dwc_svl.inc b/lib/external/NitroDWC/libraries/auth/asm/include/dwc_svl.inc
similarity index 100%
rename from lib/NitroDWC/asm/auth/include/dwc_svl.inc
rename to lib/external/NitroDWC/libraries/auth/asm/include/dwc_svl.inc
diff --git a/lib/NitroDWC/asm/auth/include/util_base64.inc b/lib/external/NitroDWC/libraries/auth/asm/include/util_base64.inc
similarity index 100%
rename from lib/NitroDWC/asm/auth/include/util_base64.inc
rename to lib/external/NitroDWC/libraries/auth/asm/include/util_base64.inc
diff --git a/lib/external/NitroDWC/libraries/auth/asm/macros/function.inc b/lib/external/NitroDWC/libraries/auth/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/auth/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/NitroDWC/asm/auth/util_base64.s b/lib/external/NitroDWC/libraries/auth/asm/util_base64.s
similarity index 100%
rename from lib/NitroDWC/asm/auth/util_base64.s
rename to lib/external/NitroDWC/libraries/auth/asm/util_base64.s
diff --git a/lib/external/NitroDWC/libraries/auth/meson.build b/lib/external/NitroDWC/libraries/auth/meson.build
new file mode 100644
index 0000000000..3f159395f1
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/auth/meson.build
@@ -0,0 +1,24 @@
+libdwcauth_srcs = files(
+ 'asm/dwc_auth.s',
+ 'asm/dwc_cal.s',
+ 'asm/dwc_http.s',
+ 'asm/dwc_netcheck.s',
+ 'asm/dwc_nastime.s',
+ 'asm/dwc_svl.s',
+ 'asm/util_base64.s',
+ 'asm/dwc_ca_cybertrust.s',
+ 'asm/dwc_ca_nas_self.s',
+ 'asm/dwc_ca_thawte_premiumserver.s',
+ 'asm/dwc_ca_thawte_server.s',
+ 'asm/dwc_ca_verisign.s',
+ 'asm/dwc_ca_globalsign.s'
+)
+
+libdwcauth = static_library('dwcauth',
+ sources: libdwcauth_srcs,
+ nasm_args: asm_args,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrodwc_libs += libdwcauth
diff --git a/lib/NitroDWC/asm/base/dwc_common.s b/lib/external/NitroDWC/libraries/base/asm/dwc_common.s
similarity index 100%
rename from lib/NitroDWC/asm/base/dwc_common.s
rename to lib/external/NitroDWC/libraries/base/asm/dwc_common.s
diff --git a/lib/NitroDWC/asm/base/include/dwc_common.inc b/lib/external/NitroDWC/libraries/base/asm/include/dwc_common.inc
similarity index 100%
rename from lib/NitroDWC/asm/base/include/dwc_common.inc
rename to lib/external/NitroDWC/libraries/base/asm/include/dwc_common.inc
diff --git a/lib/external/NitroDWC/libraries/base/asm/macros/function.inc b/lib/external/NitroDWC/libraries/base/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/base/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/external/NitroDWC/libraries/base/meson.build b/lib/external/NitroDWC/libraries/base/meson.build
new file mode 100644
index 0000000000..de8c450494
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/base/meson.build
@@ -0,0 +1,32 @@
+libdwcbase_srcs = files(
+ 'src/dwc_error.c',
+ 'src/dwc_memfunc.c',
+ 'src/dwc_connectinet.c',
+ 'src/dwc_nasfunc.c',
+ 'src/dwc_nd.c',
+ 'asm/dwc_common.s',
+ 'src/dwc_main.c',
+ 'src/dwc_login.c',
+ 'src/dwc_friend.c',
+ 'src/dwc_match.c',
+ 'src/dwc_transport.c',
+ 'src/dwc_ghttp.c'
+)
+
+libdwcbase = static_library('dwcbase',
+ sources: libdwcbase_srcs,
+ c_args: [c_args, sdk_args],
+ nasm_args: asm_args,
+ dependencies: [
+ msl_dep,
+ gamespy_dep,
+ nitrosdk_dep,
+ nitrosystem_dep,
+ nitrowifi_dep
+ ],
+ c_pch: nitro_pch,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrodwc_libs += libdwcbase
\ No newline at end of file
diff --git a/lib/NitroDWC/src/base/dwc_connectinet.c b/lib/external/NitroDWC/libraries/base/src/dwc_connectinet.c
similarity index 100%
rename from lib/NitroDWC/src/base/dwc_connectinet.c
rename to lib/external/NitroDWC/libraries/base/src/dwc_connectinet.c
diff --git a/lib/NitroDWC/src/base/dwc_error.c b/lib/external/NitroDWC/libraries/base/src/dwc_error.c
similarity index 100%
rename from lib/NitroDWC/src/base/dwc_error.c
rename to lib/external/NitroDWC/libraries/base/src/dwc_error.c
diff --git a/lib/NitroDWC/src/base/dwc_friend.c b/lib/external/NitroDWC/libraries/base/src/dwc_friend.c
similarity index 100%
rename from lib/NitroDWC/src/base/dwc_friend.c
rename to lib/external/NitroDWC/libraries/base/src/dwc_friend.c
diff --git a/lib/NitroDWC/src/base/dwc_ghttp.c b/lib/external/NitroDWC/libraries/base/src/dwc_ghttp.c
similarity index 100%
rename from lib/NitroDWC/src/base/dwc_ghttp.c
rename to lib/external/NitroDWC/libraries/base/src/dwc_ghttp.c
diff --git a/lib/NitroDWC/src/base/dwc_login.c b/lib/external/NitroDWC/libraries/base/src/dwc_login.c
similarity index 100%
rename from lib/NitroDWC/src/base/dwc_login.c
rename to lib/external/NitroDWC/libraries/base/src/dwc_login.c
diff --git a/lib/NitroDWC/src/base/dwc_main.c b/lib/external/NitroDWC/libraries/base/src/dwc_main.c
similarity index 100%
rename from lib/NitroDWC/src/base/dwc_main.c
rename to lib/external/NitroDWC/libraries/base/src/dwc_main.c
diff --git a/lib/NitroDWC/src/base/dwc_match.c b/lib/external/NitroDWC/libraries/base/src/dwc_match.c
similarity index 100%
rename from lib/NitroDWC/src/base/dwc_match.c
rename to lib/external/NitroDWC/libraries/base/src/dwc_match.c
diff --git a/lib/NitroDWC/src/base/dwc_memfunc.c b/lib/external/NitroDWC/libraries/base/src/dwc_memfunc.c
similarity index 100%
rename from lib/NitroDWC/src/base/dwc_memfunc.c
rename to lib/external/NitroDWC/libraries/base/src/dwc_memfunc.c
diff --git a/lib/NitroDWC/src/base/dwc_nasfunc.c b/lib/external/NitroDWC/libraries/base/src/dwc_nasfunc.c
similarity index 100%
rename from lib/NitroDWC/src/base/dwc_nasfunc.c
rename to lib/external/NitroDWC/libraries/base/src/dwc_nasfunc.c
diff --git a/lib/NitroDWC/src/base/dwc_nd.c b/lib/external/NitroDWC/libraries/base/src/dwc_nd.c
similarity index 100%
rename from lib/NitroDWC/src/base/dwc_nd.c
rename to lib/external/NitroDWC/libraries/base/src/dwc_nd.c
diff --git a/lib/NitroDWC/src/base/dwc_transport.c b/lib/external/NitroDWC/libraries/base/src/dwc_transport.c
similarity index 100%
rename from lib/NitroDWC/src/base/dwc_transport.c
rename to lib/external/NitroDWC/libraries/base/src/dwc_transport.c
diff --git a/lib/NitroDWC/asm/bm/dwc_backup.s b/lib/external/NitroDWC/libraries/bm/asm/dwc_backup.s
similarity index 100%
rename from lib/NitroDWC/asm/bm/dwc_backup.s
rename to lib/external/NitroDWC/libraries/bm/asm/dwc_backup.s
diff --git a/lib/NitroDWC/asm/bm/dwc_bm_init.s b/lib/external/NitroDWC/libraries/bm/asm/dwc_bm_init.s
similarity index 100%
rename from lib/NitroDWC/asm/bm/dwc_bm_init.s
rename to lib/external/NitroDWC/libraries/bm/asm/dwc_bm_init.s
diff --git a/lib/NitroDWC/asm/bm/include/dwc_backup.inc b/lib/external/NitroDWC/libraries/bm/asm/include/dwc_backup.inc
similarity index 100%
rename from lib/NitroDWC/asm/bm/include/dwc_backup.inc
rename to lib/external/NitroDWC/libraries/bm/asm/include/dwc_backup.inc
diff --git a/lib/NitroDWC/asm/bm/include/dwc_bm_init.inc b/lib/external/NitroDWC/libraries/bm/asm/include/dwc_bm_init.inc
similarity index 100%
rename from lib/NitroDWC/asm/bm/include/dwc_bm_init.inc
rename to lib/external/NitroDWC/libraries/bm/asm/include/dwc_bm_init.inc
diff --git a/lib/NitroDWC/asm/bm/include/util_wifiidtool.inc b/lib/external/NitroDWC/libraries/bm/asm/include/util_wifiidtool.inc
similarity index 100%
rename from lib/NitroDWC/asm/bm/include/util_wifiidtool.inc
rename to lib/external/NitroDWC/libraries/bm/asm/include/util_wifiidtool.inc
diff --git a/lib/external/NitroDWC/libraries/bm/asm/macros/function.inc b/lib/external/NitroDWC/libraries/bm/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/bm/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/NitroDWC/asm/bm/util_wifiidtool.s b/lib/external/NitroDWC/libraries/bm/asm/util_wifiidtool.s
similarity index 100%
rename from lib/NitroDWC/asm/bm/util_wifiidtool.s
rename to lib/external/NitroDWC/libraries/bm/asm/util_wifiidtool.s
diff --git a/lib/external/NitroDWC/libraries/bm/meson.build b/lib/external/NitroDWC/libraries/bm/meson.build
new file mode 100644
index 0000000000..9a5872de88
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/bm/meson.build
@@ -0,0 +1,14 @@
+libdwcbm_srcs = files(
+ 'asm/dwc_backup.s',
+ 'asm/dwc_bm_init.s',
+ 'asm/util_wifiidtool.s'
+)
+
+libdwcbm = static_library('dwcbm',
+ sources: libdwcbm_srcs,
+ nasm_args: asm_args,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrodwc_libs += libdwcbm
diff --git a/lib/NitroDWC/asm/enc/dwc_encsession.s b/lib/external/NitroDWC/libraries/enc/asm/dwc_encsession.s
similarity index 100%
rename from lib/NitroDWC/asm/enc/dwc_encsession.s
rename to lib/external/NitroDWC/libraries/enc/asm/dwc_encsession.s
diff --git a/lib/NitroDWC/asm/enc/include/dwc_encsession.inc b/lib/external/NitroDWC/libraries/enc/asm/include/dwc_encsession.inc
similarity index 100%
rename from lib/NitroDWC/asm/enc/include/dwc_encsession.inc
rename to lib/external/NitroDWC/libraries/enc/asm/include/dwc_encsession.inc
diff --git a/lib/external/NitroDWC/libraries/enc/asm/macros/function.inc b/lib/external/NitroDWC/libraries/enc/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/enc/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/external/NitroDWC/libraries/enc/meson.build b/lib/external/NitroDWC/libraries/enc/meson.build
new file mode 100644
index 0000000000..4808df9dea
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/enc/meson.build
@@ -0,0 +1,10 @@
+libdwcenc_srcs = files('asm/dwc_encsession.s')
+
+libdwcenc = static_library('dwcenc',
+ sources: libdwcenc_srcs,
+ nasm_args: asm_args,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrodwc_libs += libdwcenc
diff --git a/lib/NitroDWC/asm/ilobby/dwci_lobbybase.s b/lib/external/NitroDWC/libraries/ilobby/asm/dwci_lobbybase.s
similarity index 100%
rename from lib/NitroDWC/asm/ilobby/dwci_lobbybase.s
rename to lib/external/NitroDWC/libraries/ilobby/asm/dwci_lobbybase.s
diff --git a/lib/NitroDWC/asm/ilobby/dwci_lobbycallback.s b/lib/external/NitroDWC/libraries/ilobby/asm/dwci_lobbycallback.s
similarity index 100%
rename from lib/NitroDWC/asm/ilobby/dwci_lobbycallback.s
rename to lib/external/NitroDWC/libraries/ilobby/asm/dwci_lobbycallback.s
diff --git a/lib/NitroDWC/asm/ilobby/dwci_lobbydata.s b/lib/external/NitroDWC/libraries/ilobby/asm/dwci_lobbydata.s
similarity index 100%
rename from lib/NitroDWC/asm/ilobby/dwci_lobbydata.s
rename to lib/external/NitroDWC/libraries/ilobby/asm/dwci_lobbydata.s
diff --git a/lib/NitroDWC/asm/ilobby/dwci_lobbynewhandler.s b/lib/external/NitroDWC/libraries/ilobby/asm/dwci_lobbynewhandler.s
similarity index 100%
rename from lib/NitroDWC/asm/ilobby/dwci_lobbynewhandler.s
rename to lib/external/NitroDWC/libraries/ilobby/asm/dwci_lobbynewhandler.s
diff --git a/lib/NitroDWC/asm/ilobby/include/dwci_lobbybase.inc b/lib/external/NitroDWC/libraries/ilobby/asm/include/dwci_lobbybase.inc
similarity index 100%
rename from lib/NitroDWC/asm/ilobby/include/dwci_lobbybase.inc
rename to lib/external/NitroDWC/libraries/ilobby/asm/include/dwci_lobbybase.inc
diff --git a/lib/NitroDWC/asm/ilobby/include/dwci_lobbycallb.inc b/lib/external/NitroDWC/libraries/ilobby/asm/include/dwci_lobbycallb.inc
similarity index 100%
rename from lib/NitroDWC/asm/ilobby/include/dwci_lobbycallb.inc
rename to lib/external/NitroDWC/libraries/ilobby/asm/include/dwci_lobbycallb.inc
diff --git a/lib/NitroDWC/asm/ilobby/include/dwci_lobbydata.inc b/lib/external/NitroDWC/libraries/ilobby/asm/include/dwci_lobbydata.inc
similarity index 100%
rename from lib/NitroDWC/asm/ilobby/include/dwci_lobbydata.inc
rename to lib/external/NitroDWC/libraries/ilobby/asm/include/dwci_lobbydata.inc
diff --git a/lib/NitroDWC/asm/ilobby/include/dwci_lobbynewha.inc b/lib/external/NitroDWC/libraries/ilobby/asm/include/dwci_lobbynewha.inc
similarity index 100%
rename from lib/NitroDWC/asm/ilobby/include/dwci_lobbynewha.inc
rename to lib/external/NitroDWC/libraries/ilobby/asm/include/dwci_lobbynewha.inc
diff --git a/lib/external/NitroDWC/libraries/ilobby/asm/macros/function.inc b/lib/external/NitroDWC/libraries/ilobby/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/ilobby/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/external/NitroDWC/libraries/ilobby/asm/meson.build b/lib/external/NitroDWC/libraries/ilobby/asm/meson.build
new file mode 100644
index 0000000000..5643d2a844
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/ilobby/asm/meson.build
@@ -0,0 +1,8 @@
+libdwcilobby_asm = files(
+ 'dwci_lobbybase.s',
+ 'dwci_lobbynewhandler.s',
+ 'dwci_lobbycallback.s',
+ 'dwci_lobbydata.s'
+)
+
+libdwcilobby_asm_includes = meson.current_source_dir()
diff --git a/lib/external/NitroDWC/libraries/ilobby/meson.build b/lib/external/NitroDWC/libraries/ilobby/meson.build
new file mode 100644
index 0000000000..ae8067a503
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/ilobby/meson.build
@@ -0,0 +1,15 @@
+libdwcilobby_srcs = files(
+ 'asm/dwci_lobbybase.s',
+ 'asm/dwci_lobbynewhandler.s',
+ 'asm/dwci_lobbycallback.s',
+ 'asm/dwci_lobbydata.s'
+)
+
+libdwcilobby = static_library('dwcilobby',
+ sources: libdwcilobby_srcs,
+ nasm_args: asm_args,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrodwc_libs += libdwcilobby
diff --git a/lib/external/NitroDWC/libraries/meson.build b/lib/external/NitroDWC/libraries/meson.build
new file mode 100644
index 0000000000..2cfc7e4df3
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/meson.build
@@ -0,0 +1,11 @@
+subdir('ac')
+subdir('account')
+subdir('auth')
+subdir('base')
+subdir('bm')
+subdir('enc')
+subdir('ilobby')
+subdir('nd')
+subdir('nhttp')
+subdir('ppwlobby')
+subdir('util')
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_attr.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_attr.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_attr.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_attr.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_base64.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_base64.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_base64.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_base64.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_bgnend.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_bgnend.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_bgnend.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_bgnend.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_ca_nasself.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_ca_nasself.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_ca_nasself.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_ca_nasself.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_cancel.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_cancel.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_cancel.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_cancel.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_dwc_nitro.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_dwc_nitro.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_dwc_nitro.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_dwc_nitro.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_fileapi.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_fileapi.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_fileapi.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_fileapi.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_filecount.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_filecount.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_filecount.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_filecount.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_fileget.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_fileget.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_fileget.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_fileget.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_filelist.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_filelist.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_filelist.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_filelist.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_os_nitro.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_os_nitro.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_os_nitro.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_os_nitro.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_stdlib_nitro.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_stdlib_nitro.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_stdlib_nitro.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_stdlib_nitro.s
diff --git a/lib/NitroDWC/asm/nd/dwci_nd_string.s b/lib/external/NitroDWC/libraries/nd/asm/dwci_nd_string.s
similarity index 100%
rename from lib/NitroDWC/asm/nd/dwci_nd_string.s
rename to lib/external/NitroDWC/libraries/nd/asm/dwci_nd_string.s
diff --git a/lib/NitroDWC/asm/nd/incbin/dwci_nd_ca_nasself.bin b/lib/external/NitroDWC/libraries/nd/asm/incbin/dwci_nd_ca_nasself.bin
similarity index 100%
rename from lib/NitroDWC/asm/nd/incbin/dwci_nd_ca_nasself.bin
rename to lib/external/NitroDWC/libraries/nd/asm/incbin/dwci_nd_ca_nasself.bin
diff --git a/lib/NitroDWC/asm/nd/incbin/dwci_nd_string.bin b/lib/external/NitroDWC/libraries/nd/asm/incbin/dwci_nd_string.bin
similarity index 100%
rename from lib/NitroDWC/asm/nd/incbin/dwci_nd_string.bin
rename to lib/external/NitroDWC/libraries/nd/asm/incbin/dwci_nd_string.bin
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_attr.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_attr.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_attr.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_attr.inc
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_base64.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_base64.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_base64.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_base64.inc
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_bgnend.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_bgnend.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_bgnend.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_bgnend.inc
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_cancel.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_cancel.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_cancel.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_cancel.inc
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_dwc_nit.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_dwc_nit.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_dwc_nit.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_dwc_nit.inc
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_fileapi.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_fileapi.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_fileapi.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_fileapi.inc
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_filecou.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_filecou.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_filecou.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_filecou.inc
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_fileget.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_fileget.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_fileget.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_fileget.inc
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_filelis.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_filelis.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_filelis.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_filelis.inc
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_os_nitr.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_os_nitr.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_os_nitr.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_os_nitr.inc
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_stdlib_.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_stdlib_.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_stdlib_.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_stdlib_.inc
diff --git a/lib/NitroDWC/asm/nd/include/dwci_nd_string.inc b/lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_string.inc
similarity index 100%
rename from lib/NitroDWC/asm/nd/include/dwci_nd_string.inc
rename to lib/external/NitroDWC/libraries/nd/asm/include/dwci_nd_string.inc
diff --git a/lib/external/NitroDWC/libraries/nd/asm/macros/function.inc b/lib/external/NitroDWC/libraries/nd/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/nd/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/external/NitroDWC/libraries/nd/meson.build b/lib/external/NitroDWC/libraries/nd/meson.build
new file mode 100644
index 0000000000..1dbad0d494
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/nd/meson.build
@@ -0,0 +1,24 @@
+libdwcnd_srcs = files(
+ 'asm/dwci_nd_ca_nasself.s',
+ 'asm/dwci_nd_attr.s',
+ 'asm/dwci_nd_base64.s',
+ 'asm/dwci_nd_bgnend.s',
+ 'asm/dwci_nd_cancel.s',
+ 'asm/dwci_nd_dwc_nitro.s',
+ 'asm/dwci_nd_fileapi.s',
+ 'asm/dwci_nd_filecount.s',
+ 'asm/dwci_nd_fileget.s',
+ 'asm/dwci_nd_filelist.s',
+ 'asm/dwci_nd_os_nitro.s',
+ 'asm/dwci_nd_stdlib_nitro.s',
+ 'asm/dwci_nd_string.s'
+)
+
+libdwcnd = static_library('dwcnd',
+ sources: libdwcnd_srcs,
+ nasm_args: asm_args,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrodwc_libs += libdwcnd
diff --git a/lib/NitroDWC/asm/nhttp/incbin/nhttp_token.bin b/lib/external/NitroDWC/libraries/nhttp/asm/incbin/nhttp_token.bin
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/incbin/nhttp_token.bin
rename to lib/external/NitroDWC/libraries/nhttp/asm/incbin/nhttp_token.bin
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_bgnend.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_bgnend.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_bgnend.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_bgnend.inc
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_control.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_control.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_control.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_control.inc
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_list.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_list.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_list.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_list.inc
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_os_nitro.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_os_nitro.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_os_nitro.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_os_nitro.inc
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_recvbuf.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_recvbuf.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_recvbuf.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_recvbuf.inc
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_request.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_request.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_request.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_request.inc
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_resolve_n.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_resolve_n.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_resolve_n.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_resolve_n.inc
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_response.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_response.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_response.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_response.inc
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_socket_ni.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_socket_ni.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_socket_ni.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_socket_ni.inc
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_stdlib_ni.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_stdlib_ni.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_stdlib_ni.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_stdlib_ni.inc
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_thread.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_thread.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_thread.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_thread.inc
diff --git a/lib/NitroDWC/asm/nhttp/include/nhttp_token.inc b/lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_token.inc
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/include/nhttp_token.inc
rename to lib/external/NitroDWC/libraries/nhttp/asm/include/nhttp_token.inc
diff --git a/lib/external/NitroDWC/libraries/nhttp/asm/macros/function.inc b/lib/external/NitroDWC/libraries/nhttp/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/nhttp/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_bgnend.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_bgnend.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_bgnend.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_bgnend.s
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_control.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_control.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_control.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_control.s
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_list.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_list.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_list.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_list.s
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_os_nitro.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_os_nitro.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_os_nitro.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_os_nitro.s
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_recvbuf.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_recvbuf.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_recvbuf.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_recvbuf.s
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_request.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_request.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_request.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_request.s
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_resolve_nitro.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_resolve_nitro.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_resolve_nitro.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_resolve_nitro.s
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_response.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_response.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_response.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_response.s
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_socket_nitro.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_socket_nitro.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_socket_nitro.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_socket_nitro.s
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_stdlib_nitro.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_stdlib_nitro.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_stdlib_nitro.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_stdlib_nitro.s
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_thread.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_thread.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_thread.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_thread.s
diff --git a/lib/NitroDWC/asm/nhttp/nhttp_token.s b/lib/external/NitroDWC/libraries/nhttp/asm/nhttp_token.s
similarity index 100%
rename from lib/NitroDWC/asm/nhttp/nhttp_token.s
rename to lib/external/NitroDWC/libraries/nhttp/asm/nhttp_token.s
diff --git a/lib/external/NitroDWC/libraries/nhttp/meson.build b/lib/external/NitroDWC/libraries/nhttp/meson.build
new file mode 100644
index 0000000000..9bb020b6b5
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/nhttp/meson.build
@@ -0,0 +1,23 @@
+libdwcnhttp_srcs = files(
+ 'asm/nhttp_bgnend.s',
+ 'asm/nhttp_control.s',
+ 'asm/nhttp_list.s',
+ 'asm/nhttp_os_nitro.s',
+ 'asm/nhttp_recvbuf.s',
+ 'asm/nhttp_request.s',
+ 'asm/nhttp_resolve_nitro.s',
+ 'asm/nhttp_response.s',
+ 'asm/nhttp_socket_nitro.s',
+ 'asm/nhttp_stdlib_nitro.s',
+ 'asm/nhttp_thread.s',
+ 'asm/nhttp_token.s'
+)
+
+libdwcnhttp = static_library('dwcnhttp',
+ sources: libdwcnhttp_srcs,
+ nasm_args: asm_args,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrodwc_libs += libdwcnhttp
diff --git a/lib/NitroDWC/asm/ppwlobby/dwci_encsession.s b/lib/external/NitroDWC/libraries/ppwlobby/asm/dwci_encsession.s
similarity index 100%
rename from lib/NitroDWC/asm/ppwlobby/dwci_encsession.s
rename to lib/external/NitroDWC/libraries/ppwlobby/asm/dwci_encsession.s
diff --git a/lib/NitroDWC/asm/ppwlobby/dwci_lobby.s b/lib/external/NitroDWC/libraries/ppwlobby/asm/dwci_lobby.s
similarity index 100%
rename from lib/NitroDWC/asm/ppwlobby/dwci_lobby.s
rename to lib/external/NitroDWC/libraries/ppwlobby/asm/dwci_lobby.s
diff --git a/lib/NitroDWC/asm/ppwlobby/include/dwci_lobby.inc b/lib/external/NitroDWC/libraries/ppwlobby/asm/include/dwci_lobby.inc
similarity index 100%
rename from lib/NitroDWC/asm/ppwlobby/include/dwci_lobby.inc
rename to lib/external/NitroDWC/libraries/ppwlobby/asm/include/dwci_lobby.inc
diff --git a/lib/NitroDWC/asm/ppwlobby/include/ppw_innerinfo.inc b/lib/external/NitroDWC/libraries/ppwlobby/asm/include/ppw_innerinfo.inc
similarity index 100%
rename from lib/NitroDWC/asm/ppwlobby/include/ppw_innerinfo.inc
rename to lib/external/NitroDWC/libraries/ppwlobby/asm/include/ppw_innerinfo.inc
diff --git a/lib/NitroDWC/asm/ppwlobby/include/ppw_lobby.inc b/lib/external/NitroDWC/libraries/ppwlobby/asm/include/ppw_lobby.inc
similarity index 100%
rename from lib/NitroDWC/asm/ppwlobby/include/ppw_lobby.inc
rename to lib/external/NitroDWC/libraries/ppwlobby/asm/include/ppw_lobby.inc
diff --git a/lib/NitroDWC/asm/ppwlobby/include/ppw_parser.inc b/lib/external/NitroDWC/libraries/ppwlobby/asm/include/ppw_parser.inc
similarity index 100%
rename from lib/NitroDWC/asm/ppwlobby/include/ppw_parser.inc
rename to lib/external/NitroDWC/libraries/ppwlobby/asm/include/ppw_parser.inc
diff --git a/lib/NitroDWC/asm/ppwlobby/include/ppw_profile.inc b/lib/external/NitroDWC/libraries/ppwlobby/asm/include/ppw_profile.inc
similarity index 100%
rename from lib/NitroDWC/asm/ppwlobby/include/ppw_profile.inc
rename to lib/external/NitroDWC/libraries/ppwlobby/asm/include/ppw_profile.inc
diff --git a/lib/external/NitroDWC/libraries/ppwlobby/asm/macros/function.inc b/lib/external/NitroDWC/libraries/ppwlobby/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/ppwlobby/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/external/NitroDWC/libraries/ppwlobby/asm/meson.build b/lib/external/NitroDWC/libraries/ppwlobby/asm/meson.build
new file mode 100644
index 0000000000..a488bca5fd
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/ppwlobby/asm/meson.build
@@ -0,0 +1,10 @@
+libdwcppwlobby_asm = files(
+ 'ppw_lobby.s',
+ 'ppw_innerinfo.s',
+ 'dwci_encsession.s',
+ 'ppw_parser.s',
+ 'ppw_profile.s',
+ 'dwci_lobby.s'
+)
+
+libdwcppwlobby_asm_includes = meson.current_source_dir()
diff --git a/lib/NitroDWC/asm/ppwlobby/ppw_innerinfo.s b/lib/external/NitroDWC/libraries/ppwlobby/asm/ppw_innerinfo.s
similarity index 100%
rename from lib/NitroDWC/asm/ppwlobby/ppw_innerinfo.s
rename to lib/external/NitroDWC/libraries/ppwlobby/asm/ppw_innerinfo.s
diff --git a/lib/NitroDWC/asm/ppwlobby/ppw_lobby.s b/lib/external/NitroDWC/libraries/ppwlobby/asm/ppw_lobby.s
similarity index 100%
rename from lib/NitroDWC/asm/ppwlobby/ppw_lobby.s
rename to lib/external/NitroDWC/libraries/ppwlobby/asm/ppw_lobby.s
diff --git a/lib/NitroDWC/asm/ppwlobby/ppw_parser.s b/lib/external/NitroDWC/libraries/ppwlobby/asm/ppw_parser.s
similarity index 100%
rename from lib/NitroDWC/asm/ppwlobby/ppw_parser.s
rename to lib/external/NitroDWC/libraries/ppwlobby/asm/ppw_parser.s
diff --git a/lib/NitroDWC/asm/ppwlobby/ppw_profile.s b/lib/external/NitroDWC/libraries/ppwlobby/asm/ppw_profile.s
similarity index 100%
rename from lib/NitroDWC/asm/ppwlobby/ppw_profile.s
rename to lib/external/NitroDWC/libraries/ppwlobby/asm/ppw_profile.s
diff --git a/lib/external/NitroDWC/libraries/ppwlobby/meson.build b/lib/external/NitroDWC/libraries/ppwlobby/meson.build
new file mode 100644
index 0000000000..62b007ecf3
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/ppwlobby/meson.build
@@ -0,0 +1,17 @@
+libdwcppwlobby_srcs = files(
+ 'asm/ppw_lobby.s',
+ 'asm/ppw_innerinfo.s',
+ 'asm/dwci_encsession.s',
+ 'asm/ppw_parser.s',
+ 'asm/ppw_profile.s',
+ 'asm/dwci_lobby.s'
+)
+
+libdwcppwlobby = static_library('dwcppwlobby',
+ sources: libdwcppwlobby_srcs,
+ nasm_args: asm_args,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrodwc_libs += libdwcppwlobby
diff --git a/lib/NitroDWC/asm/util/anime.s b/lib/external/NitroDWC/libraries/util/asm/anime.s
similarity index 100%
rename from lib/NitroDWC/asm/util/anime.s
rename to lib/external/NitroDWC/libraries/util/asm/anime.s
diff --git a/lib/NitroDWC/asm/util/aoss.s b/lib/external/NitroDWC/libraries/util/asm/aoss.s
similarity index 100%
rename from lib/NitroDWC/asm/util/aoss.s
rename to lib/external/NitroDWC/libraries/util/asm/aoss.s
diff --git a/lib/NitroDWC/asm/util/aosslink.s b/lib/external/NitroDWC/libraries/util/asm/aosslink.s
similarity index 100%
rename from lib/NitroDWC/asm/util/aosslink.s
rename to lib/external/NitroDWC/libraries/util/asm/aosslink.s
diff --git a/lib/NitroDWC/asm/util/apc.s b/lib/external/NitroDWC/libraries/util/asm/apc.s
similarity index 100%
rename from lib/NitroDWC/asm/util/apc.s
rename to lib/external/NitroDWC/libraries/util/asm/apc.s
diff --git a/lib/NitroDWC/asm/util/archive.s b/lib/external/NitroDWC/libraries/util/asm/archive.s
similarity index 100%
rename from lib/NitroDWC/asm/util/archive.s
rename to lib/external/NitroDWC/libraries/util/asm/archive.s
diff --git a/lib/NitroDWC/asm/util/atermset.s b/lib/external/NitroDWC/libraries/util/asm/atermset.s
similarity index 100%
rename from lib/NitroDWC/asm/util/atermset.s
rename to lib/external/NitroDWC/libraries/util/asm/atermset.s
diff --git a/lib/NitroDWC/asm/util/button.s b/lib/external/NitroDWC/libraries/util/asm/button.s
similarity index 100%
rename from lib/NitroDWC/asm/util/button.s
rename to lib/external/NitroDWC/libraries/util/asm/button.s
diff --git a/lib/NitroDWC/asm/util/cell.s b/lib/external/NitroDWC/libraries/util/asm/cell.s
similarity index 100%
rename from lib/NitroDWC/asm/util/cell.s
rename to lib/external/NitroDWC/libraries/util/asm/cell.s
diff --git a/lib/NitroDWC/asm/util/cellinfo.s b/lib/external/NitroDWC/libraries/util/asm/cellinfo.s
similarity index 100%
rename from lib/NitroDWC/asm/util/cellinfo.s
rename to lib/external/NitroDWC/libraries/util/asm/cellinfo.s
diff --git a/lib/NitroDWC/asm/util/comment.s b/lib/external/NitroDWC/libraries/util/asm/comment.s
similarity index 100%
rename from lib/NitroDWC/asm/util/comment.s
rename to lib/external/NitroDWC/libraries/util/asm/comment.s
diff --git a/lib/NitroDWC/asm/util/common.s b/lib/external/NitroDWC/libraries/util/asm/common.s
similarity index 100%
rename from lib/NitroDWC/asm/util/common.s
rename to lib/external/NitroDWC/libraries/util/asm/common.s
diff --git a/lib/NitroDWC/asm/util/deque.s b/lib/external/NitroDWC/libraries/util/asm/deque.s
similarity index 100%
rename from lib/NitroDWC/asm/util/deque.s
rename to lib/external/NitroDWC/libraries/util/asm/deque.s
diff --git a/lib/NitroDWC/asm/util/dwc_mov_mbp.s b/lib/external/NitroDWC/libraries/util/asm/dwc_mov_mbp.s
similarity index 100%
rename from lib/NitroDWC/asm/util/dwc_mov_mbp.s
rename to lib/external/NitroDWC/libraries/util/asm/dwc_mov_mbp.s
diff --git a/lib/NitroDWC/asm/util/dwc_mov_wh.s b/lib/external/NitroDWC/libraries/util/asm/dwc_mov_wh.s
similarity index 100%
rename from lib/NitroDWC/asm/util/dwc_mov_wh.s
rename to lib/external/NitroDWC/libraries/util/asm/dwc_mov_wh.s
diff --git a/lib/NitroDWC/asm/util/dwc_moveid.s b/lib/external/NitroDWC/libraries/util/asm/dwc_moveid.s
similarity index 100%
rename from lib/NitroDWC/asm/util/dwc_moveid.s
rename to lib/external/NitroDWC/libraries/util/asm/dwc_moveid.s
diff --git a/lib/NitroDWC/asm/util/effect.s b/lib/external/NitroDWC/libraries/util/asm/effect.s
similarity index 100%
rename from lib/NitroDWC/asm/util/effect.s
rename to lib/external/NitroDWC/libraries/util/asm/effect.s
diff --git a/lib/NitroDWC/asm/util/focus.s b/lib/external/NitroDWC/libraries/util/asm/focus.s
similarity index 100%
rename from lib/NitroDWC/asm/util/focus.s
rename to lib/external/NitroDWC/libraries/util/asm/focus.s
diff --git a/lib/NitroDWC/asm/util/font.s b/lib/external/NitroDWC/libraries/util/asm/font.s
similarity index 100%
rename from lib/NitroDWC/asm/util/font.s
rename to lib/external/NitroDWC/libraries/util/asm/font.s
diff --git a/lib/NitroDWC/asm/util/foundation.s b/lib/external/NitroDWC/libraries/util/asm/foundation.s
similarity index 100%
rename from lib/NitroDWC/asm/util/foundation.s
rename to lib/external/NitroDWC/libraries/util/asm/foundation.s
diff --git a/lib/NitroDWC/asm/util/graphics.s b/lib/external/NitroDWC/libraries/util/asm/graphics.s
similarity index 100%
rename from lib/NitroDWC/asm/util/graphics.s
rename to lib/external/NitroDWC/libraries/util/asm/graphics.s
diff --git a/lib/NitroDWC/asm/util/headline.s b/lib/external/NitroDWC/libraries/util/asm/headline.s
similarity index 100%
rename from lib/NitroDWC/asm/util/headline.s
rename to lib/external/NitroDWC/libraries/util/asm/headline.s
diff --git a/lib/NitroDWC/asm/util/heap_dwcutil.s b/lib/external/NitroDWC/libraries/util/asm/heap_dwcutil.s
similarity index 100%
rename from lib/NitroDWC/asm/util/heap_dwcutil.s
rename to lib/external/NitroDWC/libraries/util/asm/heap_dwcutil.s
diff --git a/lib/NitroDWC/asm/util/icon.s b/lib/external/NitroDWC/libraries/util/asm/icon.s
similarity index 100%
rename from lib/NitroDWC/asm/util/icon.s
rename to lib/external/NitroDWC/libraries/util/asm/icon.s
diff --git a/lib/NitroDWC/asm/util/incbin/atermset.bin b/lib/external/NitroDWC/libraries/util/asm/incbin/atermset.bin
similarity index 100%
rename from lib/NitroDWC/asm/util/incbin/atermset.bin
rename to lib/external/NitroDWC/libraries/util/asm/incbin/atermset.bin
diff --git a/lib/NitroDWC/asm/util/incbin/button.bin b/lib/external/NitroDWC/libraries/util/asm/incbin/button.bin
similarity index 100%
rename from lib/NitroDWC/asm/util/incbin/button.bin
rename to lib/external/NitroDWC/libraries/util/asm/incbin/button.bin
diff --git a/lib/NitroDWC/asm/util/incbin/common.bin b/lib/external/NitroDWC/libraries/util/asm/incbin/common.bin
similarity index 100%
rename from lib/NitroDWC/asm/util/incbin/common.bin
rename to lib/external/NitroDWC/libraries/util/asm/incbin/common.bin
diff --git a/lib/NitroDWC/asm/util/incbin/keyboard.bin b/lib/external/NitroDWC/libraries/util/asm/incbin/keyboard.bin
similarity index 100%
rename from lib/NitroDWC/asm/util/incbin/keyboard.bin
rename to lib/external/NitroDWC/libraries/util/asm/incbin/keyboard.bin
diff --git a/lib/NitroDWC/asm/util/incbin/keyboard10.bin b/lib/external/NitroDWC/libraries/util/asm/incbin/keyboard10.bin
similarity index 100%
rename from lib/NitroDWC/asm/util/incbin/keyboard10.bin
rename to lib/external/NitroDWC/libraries/util/asm/incbin/keyboard10.bin
diff --git a/lib/NitroDWC/asm/util/include/anime.inc b/lib/external/NitroDWC/libraries/util/asm/include/anime.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/anime.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/anime.inc
diff --git a/lib/NitroDWC/asm/util/include/aoss.inc b/lib/external/NitroDWC/libraries/util/asm/include/aoss.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/aoss.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/aoss.inc
diff --git a/lib/NitroDWC/asm/util/include/aosslink.inc b/lib/external/NitroDWC/libraries/util/asm/include/aosslink.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/aosslink.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/aosslink.inc
diff --git a/lib/NitroDWC/asm/util/include/apc.inc b/lib/external/NitroDWC/libraries/util/asm/include/apc.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/apc.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/apc.inc
diff --git a/lib/NitroDWC/asm/util/include/archive.inc b/lib/external/NitroDWC/libraries/util/asm/include/archive.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/archive.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/archive.inc
diff --git a/lib/NitroDWC/asm/util/include/atermset.inc b/lib/external/NitroDWC/libraries/util/asm/include/atermset.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/atermset.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/atermset.inc
diff --git a/lib/NitroDWC/asm/util/include/button.inc b/lib/external/NitroDWC/libraries/util/asm/include/button.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/button.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/button.inc
diff --git a/lib/NitroDWC/asm/util/include/cell.inc b/lib/external/NitroDWC/libraries/util/asm/include/cell.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/cell.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/cell.inc
diff --git a/lib/NitroDWC/asm/util/include/cellinfo.inc b/lib/external/NitroDWC/libraries/util/asm/include/cellinfo.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/cellinfo.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/cellinfo.inc
diff --git a/lib/NitroDWC/asm/util/include/comment.inc b/lib/external/NitroDWC/libraries/util/asm/include/comment.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/comment.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/comment.inc
diff --git a/lib/NitroDWC/asm/util/include/common.inc b/lib/external/NitroDWC/libraries/util/asm/include/common.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/common.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/common.inc
diff --git a/lib/NitroDWC/asm/util/include/deque.inc b/lib/external/NitroDWC/libraries/util/asm/include/deque.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/deque.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/deque.inc
diff --git a/lib/NitroDWC/asm/util/include/dwc_mov_mbp.inc b/lib/external/NitroDWC/libraries/util/asm/include/dwc_mov_mbp.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/dwc_mov_mbp.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/dwc_mov_mbp.inc
diff --git a/lib/NitroDWC/asm/util/include/dwc_mov_wh.inc b/lib/external/NitroDWC/libraries/util/asm/include/dwc_mov_wh.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/dwc_mov_wh.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/dwc_mov_wh.inc
diff --git a/lib/NitroDWC/asm/util/include/dwc_moveid.inc b/lib/external/NitroDWC/libraries/util/asm/include/dwc_moveid.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/dwc_moveid.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/dwc_moveid.inc
diff --git a/lib/NitroDWC/asm/util/include/effect.inc b/lib/external/NitroDWC/libraries/util/asm/include/effect.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/effect.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/effect.inc
diff --git a/lib/NitroDWC/asm/util/include/focus.inc b/lib/external/NitroDWC/libraries/util/asm/include/focus.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/focus.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/focus.inc
diff --git a/lib/NitroDWC/asm/util/include/font.inc b/lib/external/NitroDWC/libraries/util/asm/include/font.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/font.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/font.inc
diff --git a/lib/NitroDWC/asm/util/include/headline.inc b/lib/external/NitroDWC/libraries/util/asm/include/headline.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/headline.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/headline.inc
diff --git a/lib/NitroDWC/asm/util/include/heap_dwcutil.inc b/lib/external/NitroDWC/libraries/util/asm/include/heap_dwcutil.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/heap_dwcutil.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/heap_dwcutil.inc
diff --git a/lib/NitroDWC/asm/util/include/icon.inc b/lib/external/NitroDWC/libraries/util/asm/include/icon.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/icon.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/icon.inc
diff --git a/lib/NitroDWC/asm/util/include/input.inc b/lib/external/NitroDWC/libraries/util/asm/include/input.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/input.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/input.inc
diff --git a/lib/NitroDWC/asm/util/include/interrupt.inc b/lib/external/NitroDWC/libraries/util/asm/include/interrupt.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/interrupt.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/interrupt.inc
diff --git a/lib/NitroDWC/asm/util/include/keyboard.inc b/lib/external/NitroDWC/libraries/util/asm/include/keyboard.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/keyboard.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/keyboard.inc
diff --git a/lib/NitroDWC/asm/util/include/keyboard10.inc b/lib/external/NitroDWC/libraries/util/asm/include/keyboard10.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/keyboard10.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/keyboard10.inc
diff --git a/lib/NitroDWC/asm/util/include/libaoss.inc b/lib/external/NitroDWC/libraries/util/asm/include/libaoss.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/libaoss.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/libaoss.inc
diff --git a/lib/NitroDWC/asm/util/include/list_dwcutil.inc b/lib/external/NitroDWC/libraries/util/asm/include/list_dwcutil.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/list_dwcutil.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/list_dwcutil.inc
diff --git a/lib/NitroDWC/asm/util/include/main_dwcutil.inc b/lib/external/NitroDWC/libraries/util/asm/include/main_dwcutil.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/main_dwcutil.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/main_dwcutil.inc
diff --git a/lib/NitroDWC/asm/util/include/message.inc b/lib/external/NitroDWC/libraries/util/asm/include/message.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/message.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/message.inc
diff --git a/lib/NitroDWC/asm/util/include/move.inc b/lib/external/NitroDWC/libraries/util/asm/include/move.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/move.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/move.inc
diff --git a/lib/NitroDWC/asm/util/include/obj.inc b/lib/external/NitroDWC/libraries/util/asm/include/obj.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/obj.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/obj.inc
diff --git a/lib/NitroDWC/asm/util/include/objvram.inc b/lib/external/NitroDWC/libraries/util/asm/include/objvram.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/objvram.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/objvram.inc
diff --git a/lib/NitroDWC/asm/util/include/rakuraku.inc b/lib/external/NitroDWC/libraries/util/asm/include/rakuraku.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/rakuraku.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/rakuraku.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneend.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneend.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneend.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneend.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneinit.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneinit.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneinit.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneinit.inc
diff --git a/lib/NitroDWC/asm/util/include/scenemenu.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenemenu.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenemenu.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenemenu.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneopterase.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneopterase.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneopterase.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneopterase.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneopterase1.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneopterase1.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneopterase1.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneopterase1.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneoptinfo.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneoptinfo.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneoptinfo.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneoptinfo.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneoptmenu.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneoptmenu.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneoptmenu.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneoptmenu.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneoptmovcomm.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovcomm.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneoptmovcomm.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovcomm.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneoptmovcomplete.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovcomplete.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneoptmovcomplete.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovcomplete.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneoptmovconfirm.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovconfirm.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneoptmovconfirm.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovconfirm.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneoptmovdisconnect.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovdisconnect.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneoptmovdisconnect.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovdisconnect.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneoptmovfailure.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovfailure.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneoptmovfailure.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovfailure.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneoptmovuser.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovuser.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneoptmovuser.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovuser.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneoptmovwait.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovwait.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneoptmovwait.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneoptmovwait.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetaossbutton.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetaossbutton.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetaossbutton.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetaossbutton.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetaosscomplete.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetaosscomplete.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetaosscomplete.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetaosscomplete.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetaplist.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetaplist.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetaplist.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetaplist.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetedit32.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetedit32.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetedit32.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetedit32.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneseteditaddress.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneseteditaddress.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneseteditaddress.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneseteditaddress.inc
diff --git a/lib/NitroDWC/asm/util/include/sceneseterror.inc b/lib/external/NitroDWC/libraries/util/asm/include/sceneseterror.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sceneseterror.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sceneseterror.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetlist.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetlist.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetlist.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetlist.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetlistsave.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetlistsave.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetlistsave.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetlistsave.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetrakubutton.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetrakubutton.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetrakubutton.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetrakubutton.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetrakucomplete.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetrakucomplete.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetrakucomplete.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetrakucomplete.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetrakuready.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetrakuready.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetrakuready.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetrakuready.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetsearch.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetsearch.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetsearch.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetsearch.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetselectap.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetselectap.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetselectap.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetselectap.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetselectway.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetselectway.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetselectway.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetselectway.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesettest.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesettest.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesettest.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesettest.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesettestcomplete.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesettestcomplete.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesettestcomplete.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesettestcomplete.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesettestconfirm.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesettestconfirm.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesettestconfirm.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesettestconfirm.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetusbcomplete.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetusbcomplete.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetusbcomplete.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetusbcomplete.inc
diff --git a/lib/NitroDWC/asm/util/include/scenesetusbready.inc b/lib/external/NitroDWC/libraries/util/asm/include/scenesetusbready.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scenesetusbready.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scenesetusbready.inc
diff --git a/lib/NitroDWC/asm/util/include/screen.inc b/lib/external/NitroDWC/libraries/util/asm/include/screen.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/screen.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/screen.inc
diff --git a/lib/NitroDWC/asm/util/include/scrollbar.inc b/lib/external/NitroDWC/libraries/util/asm/include/scrollbar.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/scrollbar.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/scrollbar.inc
diff --git a/lib/NitroDWC/asm/util/include/search_dwcutil.inc b/lib/external/NitroDWC/libraries/util/asm/include/search_dwcutil.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/search_dwcutil.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/search_dwcutil.inc
diff --git a/lib/NitroDWC/asm/util/include/setting.inc b/lib/external/NitroDWC/libraries/util/asm/include/setting.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/setting.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/setting.inc
diff --git a/lib/NitroDWC/asm/util/include/sound.inc b/lib/external/NitroDWC/libraries/util/asm/include/sound.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sound.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sound.inc
diff --git a/lib/NitroDWC/asm/util/include/step.inc b/lib/external/NitroDWC/libraries/util/asm/include/step.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/step.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/step.inc
diff --git a/lib/NitroDWC/asm/util/include/sub.inc b/lib/external/NitroDWC/libraries/util/asm/include/sub.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/sub.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/sub.inc
diff --git a/lib/NitroDWC/asm/util/include/task.inc b/lib/external/NitroDWC/libraries/util/asm/include/task.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/task.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/task.inc
diff --git a/lib/NitroDWC/asm/util/include/usbap.inc b/lib/external/NitroDWC/libraries/util/asm/include/usbap.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/usbap.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/usbap.inc
diff --git a/lib/NitroDWC/asm/util/include/window.inc b/lib/external/NitroDWC/libraries/util/asm/include/window.inc
similarity index 100%
rename from lib/NitroDWC/asm/util/include/window.inc
rename to lib/external/NitroDWC/libraries/util/asm/include/window.inc
diff --git a/lib/NitroDWC/asm/util/input.s b/lib/external/NitroDWC/libraries/util/asm/input.s
similarity index 100%
rename from lib/NitroDWC/asm/util/input.s
rename to lib/external/NitroDWC/libraries/util/asm/input.s
diff --git a/lib/NitroDWC/asm/util/interrupt.s b/lib/external/NitroDWC/libraries/util/asm/interrupt.s
similarity index 100%
rename from lib/NitroDWC/asm/util/interrupt.s
rename to lib/external/NitroDWC/libraries/util/asm/interrupt.s
diff --git a/lib/NitroDWC/asm/util/keyboard.s b/lib/external/NitroDWC/libraries/util/asm/keyboard.s
similarity index 100%
rename from lib/NitroDWC/asm/util/keyboard.s
rename to lib/external/NitroDWC/libraries/util/asm/keyboard.s
diff --git a/lib/NitroDWC/asm/util/keyboard10.s b/lib/external/NitroDWC/libraries/util/asm/keyboard10.s
similarity index 100%
rename from lib/NitroDWC/asm/util/keyboard10.s
rename to lib/external/NitroDWC/libraries/util/asm/keyboard10.s
diff --git a/lib/NitroDWC/asm/util/libaoss.s b/lib/external/NitroDWC/libraries/util/asm/libaoss.s
similarity index 100%
rename from lib/NitroDWC/asm/util/libaoss.s
rename to lib/external/NitroDWC/libraries/util/asm/libaoss.s
diff --git a/lib/NitroDWC/asm/util/list_dwcutil.s b/lib/external/NitroDWC/libraries/util/asm/list_dwcutil.s
similarity index 100%
rename from lib/NitroDWC/asm/util/list_dwcutil.s
rename to lib/external/NitroDWC/libraries/util/asm/list_dwcutil.s
diff --git a/lib/external/NitroDWC/libraries/util/asm/macros/function.inc b/lib/external/NitroDWC/libraries/util/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/util/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/NitroDWC/asm/util/main_dwcutil.s b/lib/external/NitroDWC/libraries/util/asm/main_dwcutil.s
similarity index 100%
rename from lib/NitroDWC/asm/util/main_dwcutil.s
rename to lib/external/NitroDWC/libraries/util/asm/main_dwcutil.s
diff --git a/lib/NitroDWC/asm/util/message.s b/lib/external/NitroDWC/libraries/util/asm/message.s
similarity index 100%
rename from lib/NitroDWC/asm/util/message.s
rename to lib/external/NitroDWC/libraries/util/asm/message.s
diff --git a/lib/NitroDWC/asm/util/move.s b/lib/external/NitroDWC/libraries/util/asm/move.s
similarity index 100%
rename from lib/NitroDWC/asm/util/move.s
rename to lib/external/NitroDWC/libraries/util/asm/move.s
diff --git a/lib/NitroDWC/asm/util/obj.s b/lib/external/NitroDWC/libraries/util/asm/obj.s
similarity index 100%
rename from lib/NitroDWC/asm/util/obj.s
rename to lib/external/NitroDWC/libraries/util/asm/obj.s
diff --git a/lib/NitroDWC/asm/util/objvram.s b/lib/external/NitroDWC/libraries/util/asm/objvram.s
similarity index 100%
rename from lib/NitroDWC/asm/util/objvram.s
rename to lib/external/NitroDWC/libraries/util/asm/objvram.s
diff --git a/lib/NitroDWC/asm/util/rakuraku.s b/lib/external/NitroDWC/libraries/util/asm/rakuraku.s
similarity index 100%
rename from lib/NitroDWC/asm/util/rakuraku.s
rename to lib/external/NitroDWC/libraries/util/asm/rakuraku.s
diff --git a/lib/NitroDWC/asm/util/sceneend.s b/lib/external/NitroDWC/libraries/util/asm/sceneend.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneend.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneend.s
diff --git a/lib/NitroDWC/asm/util/sceneinit.s b/lib/external/NitroDWC/libraries/util/asm/sceneinit.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneinit.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneinit.s
diff --git a/lib/NitroDWC/asm/util/scenemenu.s b/lib/external/NitroDWC/libraries/util/asm/scenemenu.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenemenu.s
rename to lib/external/NitroDWC/libraries/util/asm/scenemenu.s
diff --git a/lib/NitroDWC/asm/util/sceneopterase.s b/lib/external/NitroDWC/libraries/util/asm/sceneopterase.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneopterase.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneopterase.s
diff --git a/lib/NitroDWC/asm/util/sceneopterase1.s b/lib/external/NitroDWC/libraries/util/asm/sceneopterase1.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneopterase1.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneopterase1.s
diff --git a/lib/NitroDWC/asm/util/sceneoptinfo.s b/lib/external/NitroDWC/libraries/util/asm/sceneoptinfo.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneoptinfo.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneoptinfo.s
diff --git a/lib/NitroDWC/asm/util/sceneoptmenu.s b/lib/external/NitroDWC/libraries/util/asm/sceneoptmenu.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneoptmenu.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneoptmenu.s
diff --git a/lib/NitroDWC/asm/util/sceneoptmovcomm.s b/lib/external/NitroDWC/libraries/util/asm/sceneoptmovcomm.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneoptmovcomm.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneoptmovcomm.s
diff --git a/lib/NitroDWC/asm/util/sceneoptmovcomplete.s b/lib/external/NitroDWC/libraries/util/asm/sceneoptmovcomplete.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneoptmovcomplete.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneoptmovcomplete.s
diff --git a/lib/NitroDWC/asm/util/sceneoptmovconfirm.s b/lib/external/NitroDWC/libraries/util/asm/sceneoptmovconfirm.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneoptmovconfirm.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneoptmovconfirm.s
diff --git a/lib/NitroDWC/asm/util/sceneoptmovdisconnect.s b/lib/external/NitroDWC/libraries/util/asm/sceneoptmovdisconnect.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneoptmovdisconnect.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneoptmovdisconnect.s
diff --git a/lib/NitroDWC/asm/util/sceneoptmovfailure.s b/lib/external/NitroDWC/libraries/util/asm/sceneoptmovfailure.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneoptmovfailure.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneoptmovfailure.s
diff --git a/lib/NitroDWC/asm/util/sceneoptmovuser.s b/lib/external/NitroDWC/libraries/util/asm/sceneoptmovuser.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneoptmovuser.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneoptmovuser.s
diff --git a/lib/NitroDWC/asm/util/sceneoptmovwait.s b/lib/external/NitroDWC/libraries/util/asm/sceneoptmovwait.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneoptmovwait.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneoptmovwait.s
diff --git a/lib/NitroDWC/asm/util/scenesetaossbutton.s b/lib/external/NitroDWC/libraries/util/asm/scenesetaossbutton.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetaossbutton.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetaossbutton.s
diff --git a/lib/NitroDWC/asm/util/scenesetaosscomplete.s b/lib/external/NitroDWC/libraries/util/asm/scenesetaosscomplete.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetaosscomplete.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetaosscomplete.s
diff --git a/lib/NitroDWC/asm/util/scenesetaplist.s b/lib/external/NitroDWC/libraries/util/asm/scenesetaplist.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetaplist.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetaplist.s
diff --git a/lib/NitroDWC/asm/util/scenesetedit32.s b/lib/external/NitroDWC/libraries/util/asm/scenesetedit32.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetedit32.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetedit32.s
diff --git a/lib/NitroDWC/asm/util/sceneseteditaddress.s b/lib/external/NitroDWC/libraries/util/asm/sceneseteditaddress.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneseteditaddress.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneseteditaddress.s
diff --git a/lib/NitroDWC/asm/util/sceneseterror.s b/lib/external/NitroDWC/libraries/util/asm/sceneseterror.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sceneseterror.s
rename to lib/external/NitroDWC/libraries/util/asm/sceneseterror.s
diff --git a/lib/NitroDWC/asm/util/scenesetlist.s b/lib/external/NitroDWC/libraries/util/asm/scenesetlist.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetlist.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetlist.s
diff --git a/lib/NitroDWC/asm/util/scenesetlistsave.s b/lib/external/NitroDWC/libraries/util/asm/scenesetlistsave.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetlistsave.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetlistsave.s
diff --git a/lib/NitroDWC/asm/util/scenesetrakubutton.s b/lib/external/NitroDWC/libraries/util/asm/scenesetrakubutton.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetrakubutton.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetrakubutton.s
diff --git a/lib/NitroDWC/asm/util/scenesetrakucomplete.s b/lib/external/NitroDWC/libraries/util/asm/scenesetrakucomplete.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetrakucomplete.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetrakucomplete.s
diff --git a/lib/NitroDWC/asm/util/scenesetrakuready.s b/lib/external/NitroDWC/libraries/util/asm/scenesetrakuready.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetrakuready.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetrakuready.s
diff --git a/lib/NitroDWC/asm/util/scenesetsearch.s b/lib/external/NitroDWC/libraries/util/asm/scenesetsearch.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetsearch.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetsearch.s
diff --git a/lib/NitroDWC/asm/util/scenesetselectap.s b/lib/external/NitroDWC/libraries/util/asm/scenesetselectap.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetselectap.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetselectap.s
diff --git a/lib/NitroDWC/asm/util/scenesetselectway.s b/lib/external/NitroDWC/libraries/util/asm/scenesetselectway.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetselectway.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetselectway.s
diff --git a/lib/NitroDWC/asm/util/scenesettest.s b/lib/external/NitroDWC/libraries/util/asm/scenesettest.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesettest.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesettest.s
diff --git a/lib/NitroDWC/asm/util/scenesettestcomplete.s b/lib/external/NitroDWC/libraries/util/asm/scenesettestcomplete.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesettestcomplete.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesettestcomplete.s
diff --git a/lib/NitroDWC/asm/util/scenesettestconfirm.s b/lib/external/NitroDWC/libraries/util/asm/scenesettestconfirm.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesettestconfirm.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesettestconfirm.s
diff --git a/lib/NitroDWC/asm/util/scenesetusbcomplete.s b/lib/external/NitroDWC/libraries/util/asm/scenesetusbcomplete.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetusbcomplete.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetusbcomplete.s
diff --git a/lib/NitroDWC/asm/util/scenesetusbready.s b/lib/external/NitroDWC/libraries/util/asm/scenesetusbready.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scenesetusbready.s
rename to lib/external/NitroDWC/libraries/util/asm/scenesetusbready.s
diff --git a/lib/NitroDWC/asm/util/screen.s b/lib/external/NitroDWC/libraries/util/asm/screen.s
similarity index 100%
rename from lib/NitroDWC/asm/util/screen.s
rename to lib/external/NitroDWC/libraries/util/asm/screen.s
diff --git a/lib/NitroDWC/asm/util/scrollbar.s b/lib/external/NitroDWC/libraries/util/asm/scrollbar.s
similarity index 100%
rename from lib/NitroDWC/asm/util/scrollbar.s
rename to lib/external/NitroDWC/libraries/util/asm/scrollbar.s
diff --git a/lib/NitroDWC/asm/util/search_dwcutil.s b/lib/external/NitroDWC/libraries/util/asm/search_dwcutil.s
similarity index 100%
rename from lib/NitroDWC/asm/util/search_dwcutil.s
rename to lib/external/NitroDWC/libraries/util/asm/search_dwcutil.s
diff --git a/lib/NitroDWC/asm/util/setting.s b/lib/external/NitroDWC/libraries/util/asm/setting.s
similarity index 100%
rename from lib/NitroDWC/asm/util/setting.s
rename to lib/external/NitroDWC/libraries/util/asm/setting.s
diff --git a/lib/NitroDWC/asm/util/sound.s b/lib/external/NitroDWC/libraries/util/asm/sound.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sound.s
rename to lib/external/NitroDWC/libraries/util/asm/sound.s
diff --git a/lib/NitroDWC/asm/util/step.s b/lib/external/NitroDWC/libraries/util/asm/step.s
similarity index 100%
rename from lib/NitroDWC/asm/util/step.s
rename to lib/external/NitroDWC/libraries/util/asm/step.s
diff --git a/lib/NitroDWC/asm/util/str.s b/lib/external/NitroDWC/libraries/util/asm/str.s
similarity index 100%
rename from lib/NitroDWC/asm/util/str.s
rename to lib/external/NitroDWC/libraries/util/asm/str.s
diff --git a/lib/NitroDWC/asm/util/sub.s b/lib/external/NitroDWC/libraries/util/asm/sub.s
similarity index 100%
rename from lib/NitroDWC/asm/util/sub.s
rename to lib/external/NitroDWC/libraries/util/asm/sub.s
diff --git a/lib/NitroDWC/asm/util/task.s b/lib/external/NitroDWC/libraries/util/asm/task.s
similarity index 100%
rename from lib/NitroDWC/asm/util/task.s
rename to lib/external/NitroDWC/libraries/util/asm/task.s
diff --git a/lib/NitroDWC/asm/util/usbap.s b/lib/external/NitroDWC/libraries/util/asm/usbap.s
similarity index 100%
rename from lib/NitroDWC/asm/util/usbap.s
rename to lib/external/NitroDWC/libraries/util/asm/usbap.s
diff --git a/lib/NitroDWC/asm/util/window.s b/lib/external/NitroDWC/libraries/util/asm/window.s
similarity index 100%
rename from lib/NitroDWC/asm/util/window.s
rename to lib/external/NitroDWC/libraries/util/asm/window.s
diff --git a/lib/external/NitroDWC/libraries/util/meson.build b/lib/external/NitroDWC/libraries/util/meson.build
new file mode 100644
index 0000000000..e9d4ba41b6
--- /dev/null
+++ b/lib/external/NitroDWC/libraries/util/meson.build
@@ -0,0 +1,90 @@
+libdwcutil_srcs = files(
+ 'asm/aoss.s',
+ 'asm/aosslink.s',
+ 'asm/apc.s',
+ 'asm/atermset.s',
+ 'asm/anime.s',
+ 'asm/button.s',
+ 'asm/comment.s',
+ 'asm/common.s',
+ 'asm/focus.s',
+ 'asm/headline.s',
+ 'asm/icon.s',
+ 'asm/keyboard.s',
+ 'asm/keyboard10.s',
+ 'asm/libaoss.s',
+ 'asm/main_dwcutil.s',
+ 'asm/message.s',
+ 'asm/move.s',
+ 'asm/rakuraku.s',
+ 'asm/sceneend.s',
+ 'asm/sceneinit.s',
+ 'asm/scenemenu.s',
+ 'asm/sceneopterase.s',
+ 'asm/sceneopterase1.s',
+ 'asm/sceneoptinfo.s',
+ 'asm/sceneoptmenu.s',
+ 'asm/sceneoptmovcomm.s',
+ 'asm/sceneoptmovcomplete.s',
+ 'asm/sceneoptmovconfirm.s',
+ 'asm/sceneoptmovdisconnect.s',
+ 'asm/sceneoptmovfailure.s',
+ 'asm/sceneoptmovuser.s',
+ 'asm/sceneoptmovwait.s',
+ 'asm/scenesetaossbutton.s',
+ 'asm/scenesetaosscomplete.s',
+ 'asm/scenesetaplist.s',
+ 'asm/scenesetedit32.s',
+ 'asm/sceneseteditaddress.s',
+ 'asm/sceneseterror.s',
+ 'asm/scenesetlist.s',
+ 'asm/scenesetlistsave.s',
+ 'asm/scenesetrakubutton.s',
+ 'asm/scenesetrakucomplete.s',
+ 'asm/scenesetrakuready.s',
+ 'asm/scenesetsearch.s',
+ 'asm/scenesetselectap.s',
+ 'asm/scenesetselectway.s',
+ 'asm/scenesettest.s',
+ 'asm/scenesettestcomplete.s',
+ 'asm/scenesettestconfirm.s',
+ 'asm/scenesetusbcomplete.s',
+ 'asm/scenesetusbready.s',
+ 'asm/screen.s',
+ 'asm/scrollbar.s',
+ 'asm/search_dwcutil.s',
+ 'asm/setting.s',
+ 'asm/sound.s',
+ 'asm/step.s',
+ 'asm/usbap.s',
+ 'asm/window.s',
+ 'asm/dwc_mov_mbp.s',
+ 'asm/dwc_mov_wh.s',
+ 'asm/dwc_moveid.s',
+ 'asm/archive.s',
+ 'asm/cell.s',
+ 'asm/cellinfo.s',
+ 'asm/deque.s',
+ 'asm/effect.s',
+ 'asm/font.s',
+ 'asm/foundation.s',
+ 'asm/graphics.s',
+ 'asm/heap_dwcutil.s',
+ 'asm/input.s',
+ 'asm/interrupt.s',
+ 'asm/list_dwcutil.s',
+ 'asm/obj.s',
+ 'asm/objvram.s',
+ 'asm/str.s',
+ 'asm/sub.s',
+ 'asm/task.s'
+)
+
+libdwcutil = static_library('dwcutil',
+ sources: libdwcutil_srcs,
+ nasm_args: asm_args,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrodwc_libs += libdwcutil
diff --git a/lib/external/NitroDWC/meson.build b/lib/external/NitroDWC/meson.build
new file mode 100644
index 0000000000..8a0bdda499
--- /dev/null
+++ b/lib/external/NitroDWC/meson.build
@@ -0,0 +1,63 @@
+project('NitroDWC', ['c', 'nasm'])
+
+# Compiler flags
+c_args = [
+ '-O4,p',
+ '-proc', 'arm946e',
+ '-enum', 'int',
+ '-lang', 'c99',
+ '-Cpp_exceptions', 'off',
+ '-gccext,on',
+ '-msgstyle', 'gcc',
+ '-ipa', 'file',
+ '-interworking',
+ '-inline', 'on,noauto',
+ '-char', 'signed',
+ '-nosyspath',
+ '-nostdinc'
+]
+
+asm_args = [
+ '-proc', 'arm5TE',
+ '-gccinc'
+]
+
+sdk_args = [
+ '-DSDK_CW_FORCE_EXPORT_SUPPORT',
+ '-DSDK_TS',
+ '-DSDK_4M',
+ '-DSDK_ARM9',
+ '-DSDK_CW',
+ '-DSDK_FINALROM',
+ '-DSDK_CODE_ARM',
+ '-DNNS_FINALROM'
+]
+
+# Dependencies
+msl_dep = dependency('msl', fallback: ['msl', 'msl_dep'])
+gamespy_dep = dependency('gamespy', fallback : ['gamespy', 'gamespy_dep'])
+nitrosdk_dep = dependency('NitroSDK', fallback : ['NitroSDK', 'nitrosdk_dep'])
+nitrosystem_dep = dependency('NitroSystem', fallback : ['NitroSystem', 'nitrosystem_dep'])
+nitrowifi_dep = dependency('NitroWiFi', fallback : ['NitroWiFi', 'nitrowifi_dep'])
+
+# Public includes
+public_includes = include_directories('include')
+nitro_pch = subproject('NitroSDK').get_variable('nitro_pch')
+
+# Libraries
+nitrodwc_libs = []
+subdir('libraries')
+
+# Own dependency for consumers
+nitrodwc_dep = declare_dependency(
+ compile_args: sdk_args,
+ dependencies: [
+ msl_dep,
+ gamespy_dep,
+ nitrosdk_dep,
+ nitrosystem_dep,
+ nitrowifi_dep
+ ],
+ include_directories: public_includes,
+ link_with: nitrodwc_libs
+)
\ No newline at end of file
diff --git a/lib/external/NitroSDK/autogen/meson.build b/lib/external/NitroSDK/autogen/meson.build
new file mode 100644
index 0000000000..104afbdf60
--- /dev/null
+++ b/lib/external/NitroSDK/autogen/meson.build
@@ -0,0 +1 @@
+subdir('nitro/fx')
diff --git a/tools/gen_fx_consts/fx_const.csv b/lib/external/NitroSDK/autogen/nitro/fx/fx_const.csv
similarity index 100%
rename from tools/gen_fx_consts/fx_const.csv
rename to lib/external/NitroSDK/autogen/nitro/fx/fx_const.csv
diff --git a/lib/external/NitroSDK/autogen/nitro/fx/gen_fx_const.py b/lib/external/NitroSDK/autogen/nitro/fx/gen_fx_const.py
new file mode 100644
index 0000000000..832ce99e41
--- /dev/null
+++ b/lib/external/NitroSDK/autogen/nitro/fx/gen_fx_const.py
@@ -0,0 +1,138 @@
+#!/usr/bin/env python3
+
+import argparse
+import csv
+import math
+
+
+class FxSpec:
+ intpart_dict = {
+ 'fx32': 19,
+ 'fx64': 51,
+ 'fx64c': 31,
+ 'fx16': 3
+ }
+
+ fracpart_dict = {
+ 'fx32': 12,
+ 'fx64': 12,
+ 'fx64c': 32,
+ 'fx16': 12
+ }
+
+ l_suffix_dict = {
+ 'fx32': 'L',
+ 'fx64': 'LL',
+ 'fx64c': 'LL',
+ 'fx16': ''
+ }
+
+ def __init__(self, name: str) -> 'FxSpec':
+ self.name = name
+
+ @property
+ def intpart(self):
+ return self._intpart
+
+ @intpart.getter
+ def intpart(self):
+ return self.intpart_dict[self.name]
+
+ @property
+ def fracpart(self):
+ return self._fracpart
+
+ @fracpart.getter
+ def fracpart(self):
+ return self.fracpart_dict[self.name]
+
+ @property
+ def l_suffix(self):
+ return self._l_suffix
+
+ @l_suffix.getter
+ def l_suffix(self):
+ return self.l_suffix_dict[self.name]
+
+
+class FxConst:
+ def __init__(self, name: str, fxtype: FxSpec, value: float) -> 'FxConst':
+ self.fxtype = fxtype
+ self.name = name
+ self.value = value
+
+ @property
+ def name(self):
+ return self._name
+
+ @name.setter
+ def name(self, value: str):
+ self._name = f'{self.fxtype.name.upper()}_{value}'
+
+ def encode(self) -> int:
+ if self.value == 0:
+ return 0
+
+ ret_di = 0.0
+ ret_df = 0.0
+ value_abs = 0.0
+ ret_ii = 0
+ ret_if = 0
+ ret_val = 0
+
+ value_abs = abs(self.value)
+ ret_di = math.floor(value_abs)
+ ret_df = value_abs - ret_di
+ ret_ii = int(value_abs * (1 << self.fxtype.fracpart))
+ ret_if = int(ret_df * (1 << self.fxtype.fracpart) + 0.5)
+ ret_ii &= ~((1 << self.fxtype.fracpart) - 1)
+ ret_if &= (1 << self.fxtype.fracpart) - 1
+ ret_val = ret_ii + ret_if
+
+ if self.value < 0:
+ ret_val = -ret_val
+
+ return ret_val
+
+
+def generate_define(c: FxConst) -> str:
+ hex_value = f'(({c.fxtype.name}) 0x{hex(c.encode())[2:].zfill(16)}{c.fxtype.l_suffix})'
+ comment = f'// {c.value:.12f}'
+
+ return f'#define {c.name: <20} {hex_value: ^20} {comment: >25}'
+
+
+def generate_header(constants: list[FxConst]) -> str:
+ guard_top = '\n'.join(['#ifndef FX_CONST_H', '#define FX_CONST_H', str()])
+ body = '\n'.join(generate_define(c) for c in constants)
+ guard_bottom = '\n'.join(['', '#endif // FX_CONST_H', ''])
+
+ return '\n'.join([guard_top, body, guard_bottom])
+
+
+def main():
+ args = parse_args()
+ constants = parse_csv(args.input)
+ header = generate_header(constants)
+ with open(args.output, 'w') as out:
+ out.write(header)
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(description='fx_const.h header generator')
+ parser.add_argument('input', type=str)
+ parser.add_argument('output', type=str)
+ return parser.parse_args()
+
+
+def parse_csv(path: str) -> list[FxConst]:
+ with open(path, newline='') as file:
+ reader = csv.reader(file)
+ return list(
+ FxConst(
+ row[0], FxSpec(row[1]), float(row[2]))
+ for row in reader if not row[0].startswith('#'))
+
+
+if __name__ == '__main__':
+ main()
diff --git a/lib/external/NitroSDK/autogen/nitro/fx/meson.build b/lib/external/NitroSDK/autogen/nitro/fx/meson.build
new file mode 100644
index 0000000000..1e102d6411
--- /dev/null
+++ b/lib/external/NitroSDK/autogen/nitro/fx/meson.build
@@ -0,0 +1,9 @@
+fx_const_csv = files('fx_const.csv')
+gen_fx_const_py = find_program('gen_fx_const.py', native: true)
+
+fx_const_h = custom_target('fx_const.h',
+ input: fx_const_csv,
+ output: 'fx_const.h',
+ command: [gen_fx_const_py, '@INPUT@', '@OUTPUT@'],
+ build_by_default: true
+)
\ No newline at end of file
diff --git a/sub/ichneumon_sub.sbin b/lib/external/NitroSDK/components/ichneumon_sub.sbin
similarity index 100%
rename from sub/ichneumon_sub.sbin
rename to lib/external/NitroSDK/components/ichneumon_sub.sbin
diff --git a/sub/ichneumon_sub_defs.sbin b/lib/external/NitroSDK/components/ichneumon_sub_defs.sbin
similarity index 100%
rename from sub/ichneumon_sub_defs.sbin
rename to lib/external/NitroSDK/components/ichneumon_sub_defs.sbin
diff --git a/lib/external/NitroSDK/components/meson.build b/lib/external/NitroSDK/components/meson.build
new file mode 100644
index 0000000000..de3e23a815
--- /dev/null
+++ b/lib/external/NitroSDK/components/meson.build
@@ -0,0 +1,2 @@
+ichneumon_sub = files('ichneumon_sub.sbin')
+ichneumon_sub_defs = files('ichneumon_sub_defs.sbin')
\ No newline at end of file
diff --git a/lib/NitroSDK/include/nitro.h b/lib/external/NitroSDK/include/nitro.h
similarity index 100%
rename from lib/NitroSDK/include/nitro.h
rename to lib/external/NitroSDK/include/nitro.h
diff --git a/lib/NitroSDK/include/nitro/card.h b/lib/external/NitroSDK/include/nitro/card.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/card.h
rename to lib/external/NitroSDK/include/nitro/card.h
diff --git a/lib/NitroSDK/include/nitro/card/backup.h b/lib/external/NitroSDK/include/nitro/card/backup.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/card/backup.h
rename to lib/external/NitroSDK/include/nitro/card/backup.h
diff --git a/lib/NitroSDK/include/nitro/card/common.h b/lib/external/NitroSDK/include/nitro/card/common.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/card/common.h
rename to lib/external/NitroSDK/include/nitro/card/common.h
diff --git a/lib/NitroSDK/include/nitro/card/eeprom.h b/lib/external/NitroSDK/include/nitro/card/eeprom.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/card/eeprom.h
rename to lib/external/NitroSDK/include/nitro/card/eeprom.h
diff --git a/lib/NitroSDK/include/nitro/card/flash.h b/lib/external/NitroSDK/include/nitro/card/flash.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/card/flash.h
rename to lib/external/NitroSDK/include/nitro/card/flash.h
diff --git a/lib/NitroSDK/include/nitro/card/fram.h b/lib/external/NitroSDK/include/nitro/card/fram.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/card/fram.h
rename to lib/external/NitroSDK/include/nitro/card/fram.h
diff --git a/lib/NitroSDK/include/nitro/card/pullOut.h b/lib/external/NitroSDK/include/nitro/card/pullOut.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/card/pullOut.h
rename to lib/external/NitroSDK/include/nitro/card/pullOut.h
diff --git a/lib/NitroSDK/include/nitro/card/rom.h b/lib/external/NitroSDK/include/nitro/card/rom.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/card/rom.h
rename to lib/external/NitroSDK/include/nitro/card/rom.h
diff --git a/lib/NitroSDK/include/nitro/cht.h b/lib/external/NitroSDK/include/nitro/cht.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/cht.h
rename to lib/external/NitroSDK/include/nitro/cht.h
diff --git a/lib/NitroSDK/include/nitro/cht/ARM9/pictocatch.h b/lib/external/NitroSDK/include/nitro/cht/ARM9/pictocatch.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/cht/ARM9/pictocatch.h
rename to lib/external/NitroSDK/include/nitro/cht/ARM9/pictocatch.h
diff --git a/lib/NitroSDK/include/nitro/code16.h b/lib/external/NitroSDK/include/nitro/code16.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/code16.h
rename to lib/external/NitroSDK/include/nitro/code16.h
diff --git a/lib/NitroSDK/include/nitro/code32.h b/lib/external/NitroSDK/include/nitro/code32.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/code32.h
rename to lib/external/NitroSDK/include/nitro/code32.h
diff --git a/lib/NitroSDK/include/nitro/codereset.h b/lib/external/NitroSDK/include/nitro/codereset.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/codereset.h
rename to lib/external/NitroSDK/include/nitro/codereset.h
diff --git a/lib/NitroSDK/include/nitro/cp.h b/lib/external/NitroSDK/include/nitro/cp.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/cp.h
rename to lib/external/NitroSDK/include/nitro/cp.h
diff --git a/lib/NitroSDK/include/nitro/cp/context.h b/lib/external/NitroSDK/include/nitro/cp/context.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/cp/context.h
rename to lib/external/NitroSDK/include/nitro/cp/context.h
diff --git a/lib/NitroSDK/include/nitro/cp/divider.h b/lib/external/NitroSDK/include/nitro/cp/divider.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/cp/divider.h
rename to lib/external/NitroSDK/include/nitro/cp/divider.h
diff --git a/lib/NitroSDK/include/nitro/cp/sqrt.h b/lib/external/NitroSDK/include/nitro/cp/sqrt.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/cp/sqrt.h
rename to lib/external/NitroSDK/include/nitro/cp/sqrt.h
diff --git a/lib/NitroSDK/include/nitro/ctrdg.h b/lib/external/NitroSDK/include/nitro/ctrdg.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/ctrdg.h
rename to lib/external/NitroSDK/include/nitro/ctrdg.h
diff --git a/lib/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_backup.h b/lib/external/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_backup.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_backup.h
rename to lib/external/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_backup.h
diff --git a/lib/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_flash.h b/lib/external/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_flash.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_flash.h
rename to lib/external/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_flash.h
diff --git a/lib/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_sram.h b/lib/external/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_sram.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_sram.h
rename to lib/external/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_sram.h
diff --git a/lib/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_task.h b/lib/external/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_task.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_task.h
rename to lib/external/NitroSDK/include/nitro/ctrdg/ARM9/ctrdg_task.h
diff --git a/lib/NitroSDK/include/nitro/ctrdg/common/ctrdg_common.h b/lib/external/NitroSDK/include/nitro/ctrdg/common/ctrdg_common.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/ctrdg/common/ctrdg_common.h
rename to lib/external/NitroSDK/include/nitro/ctrdg/common/ctrdg_common.h
diff --git a/lib/NitroSDK/include/nitro/dgt/common.h b/lib/external/NitroSDK/include/nitro/dgt/common.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/dgt/common.h
rename to lib/external/NitroSDK/include/nitro/dgt/common.h
diff --git a/lib/NitroSDK/include/nitro/dgt/dgt.h b/lib/external/NitroSDK/include/nitro/dgt/dgt.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/dgt/dgt.h
rename to lib/external/NitroSDK/include/nitro/dgt/dgt.h
diff --git a/lib/NitroSDK/include/nitro/dtcm_begin.h b/lib/external/NitroSDK/include/nitro/dtcm_begin.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/dtcm_begin.h
rename to lib/external/NitroSDK/include/nitro/dtcm_begin.h
diff --git a/lib/NitroSDK/include/nitro/dtcm_end.h b/lib/external/NitroSDK/include/nitro/dtcm_end.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/dtcm_end.h
rename to lib/external/NitroSDK/include/nitro/dtcm_end.h
diff --git a/lib/NitroSDK/include/nitro/env.h b/lib/external/NitroSDK/include/nitro/env.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/env.h
rename to lib/external/NitroSDK/include/nitro/env.h
diff --git a/lib/NitroSDK/include/nitro/env/env_system.h b/lib/external/NitroSDK/include/nitro/env/env_system.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/env/env_system.h
rename to lib/external/NitroSDK/include/nitro/env/env_system.h
diff --git a/lib/NitroSDK/include/nitro/exi.h b/lib/external/NitroSDK/include/nitro/exi.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/exi.h
rename to lib/external/NitroSDK/include/nitro/exi.h
diff --git a/lib/NitroSDK/include/nitro/exi/ARM7/genPort.h b/lib/external/NitroSDK/include/nitro/exi/ARM7/genPort.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/exi/ARM7/genPort.h
rename to lib/external/NitroSDK/include/nitro/exi/ARM7/genPort.h
diff --git a/lib/NitroSDK/include/nitro/ext.h b/lib/external/NitroSDK/include/nitro/ext.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/ext.h
rename to lib/external/NitroSDK/include/nitro/ext.h
diff --git a/lib/NitroSDK/include/nitro/ext/ext_keycontrol.h b/lib/external/NitroSDK/include/nitro/ext/ext_keycontrol.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/ext/ext_keycontrol.h
rename to lib/external/NitroSDK/include/nitro/ext/ext_keycontrol.h
diff --git a/lib/NitroSDK/include/nitro/ext/ext_scrntest.h b/lib/external/NitroSDK/include/nitro/ext/ext_scrntest.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/ext/ext_scrntest.h
rename to lib/external/NitroSDK/include/nitro/ext/ext_scrntest.h
diff --git a/lib/NitroSDK/include/nitro/fs.h b/lib/external/NitroSDK/include/nitro/fs.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fs.h
rename to lib/external/NitroSDK/include/nitro/fs.h
diff --git a/lib/NitroSDK/include/nitro/fs/archive.h b/lib/external/NitroSDK/include/nitro/fs/archive.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fs/archive.h
rename to lib/external/NitroSDK/include/nitro/fs/archive.h
diff --git a/lib/NitroSDK/include/nitro/fs/file.h b/lib/external/NitroSDK/include/nitro/fs/file.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fs/file.h
rename to lib/external/NitroSDK/include/nitro/fs/file.h
diff --git a/lib/NitroSDK/include/nitro/fs/overlay.h b/lib/external/NitroSDK/include/nitro/fs/overlay.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fs/overlay.h
rename to lib/external/NitroSDK/include/nitro/fs/overlay.h
diff --git a/lib/NitroSDK/include/nitro/fx/.gitignore b/lib/external/NitroSDK/include/nitro/fx/.gitignore
similarity index 100%
rename from lib/NitroSDK/include/nitro/fx/.gitignore
rename to lib/external/NitroSDK/include/nitro/fx/.gitignore
diff --git a/lib/NitroSDK/include/nitro/fx/fx.h b/lib/external/NitroSDK/include/nitro/fx/fx.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fx/fx.h
rename to lib/external/NitroSDK/include/nitro/fx/fx.h
diff --git a/lib/NitroSDK/include/nitro/fx/fx_cp.h b/lib/external/NitroSDK/include/nitro/fx/fx_cp.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fx/fx_cp.h
rename to lib/external/NitroSDK/include/nitro/fx/fx_cp.h
diff --git a/lib/NitroSDK/include/nitro/fx/fx_mtx.h b/lib/external/NitroSDK/include/nitro/fx/fx_mtx.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fx/fx_mtx.h
rename to lib/external/NitroSDK/include/nitro/fx/fx_mtx.h
diff --git a/lib/NitroSDK/include/nitro/fx/fx_mtx22.h b/lib/external/NitroSDK/include/nitro/fx/fx_mtx22.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fx/fx_mtx22.h
rename to lib/external/NitroSDK/include/nitro/fx/fx_mtx22.h
diff --git a/lib/NitroSDK/include/nitro/fx/fx_mtx33.h b/lib/external/NitroSDK/include/nitro/fx/fx_mtx33.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fx/fx_mtx33.h
rename to lib/external/NitroSDK/include/nitro/fx/fx_mtx33.h
diff --git a/lib/NitroSDK/include/nitro/fx/fx_mtx43.h b/lib/external/NitroSDK/include/nitro/fx/fx_mtx43.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fx/fx_mtx43.h
rename to lib/external/NitroSDK/include/nitro/fx/fx_mtx43.h
diff --git a/lib/NitroSDK/include/nitro/fx/fx_mtx44.h b/lib/external/NitroSDK/include/nitro/fx/fx_mtx44.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fx/fx_mtx44.h
rename to lib/external/NitroSDK/include/nitro/fx/fx_mtx44.h
diff --git a/lib/NitroSDK/include/nitro/fx/fx_trig.h b/lib/external/NitroSDK/include/nitro/fx/fx_trig.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fx/fx_trig.h
rename to lib/external/NitroSDK/include/nitro/fx/fx_trig.h
diff --git a/lib/NitroSDK/include/nitro/fx/fx_vec.h b/lib/external/NitroSDK/include/nitro/fx/fx_vec.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/fx/fx_vec.h
rename to lib/external/NitroSDK/include/nitro/fx/fx_vec.h
diff --git a/lib/NitroSDK/include/nitro/gx.h b/lib/external/NitroSDK/include/nitro/gx.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx.h
rename to lib/external/NitroSDK/include/nitro/gx.h
diff --git a/lib/NitroSDK/include/nitro/gx/g2.h b/lib/external/NitroSDK/include/nitro/gx/g2.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/g2.h
rename to lib/external/NitroSDK/include/nitro/gx/g2.h
diff --git a/lib/NitroSDK/include/nitro/gx/g2_oam.h b/lib/external/NitroSDK/include/nitro/gx/g2_oam.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/g2_oam.h
rename to lib/external/NitroSDK/include/nitro/gx/g2_oam.h
diff --git a/lib/NitroSDK/include/nitro/gx/g3.h b/lib/external/NitroSDK/include/nitro/gx/g3.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/g3.h
rename to lib/external/NitroSDK/include/nitro/gx/g3.h
diff --git a/lib/NitroSDK/include/nitro/gx/g3_util.h b/lib/external/NitroSDK/include/nitro/gx/g3_util.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/g3_util.h
rename to lib/external/NitroSDK/include/nitro/gx/g3_util.h
diff --git a/lib/NitroSDK/include/nitro/gx/g3b.h b/lib/external/NitroSDK/include/nitro/gx/g3b.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/g3b.h
rename to lib/external/NitroSDK/include/nitro/gx/g3b.h
diff --git a/lib/NitroSDK/include/nitro/gx/g3c.h b/lib/external/NitroSDK/include/nitro/gx/g3c.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/g3c.h
rename to lib/external/NitroSDK/include/nitro/gx/g3c.h
diff --git a/lib/NitroSDK/include/nitro/gx/g3imm.h b/lib/external/NitroSDK/include/nitro/gx/g3imm.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/g3imm.h
rename to lib/external/NitroSDK/include/nitro/gx/g3imm.h
diff --git a/lib/NitroSDK/include/nitro/gx/g3x.h b/lib/external/NitroSDK/include/nitro/gx/g3x.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/g3x.h
rename to lib/external/NitroSDK/include/nitro/gx/g3x.h
diff --git a/lib/NitroSDK/include/nitro/gx/gx.h b/lib/external/NitroSDK/include/nitro/gx/gx.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/gx.h
rename to lib/external/NitroSDK/include/nitro/gx/gx.h
diff --git a/lib/NitroSDK/include/nitro/gx/gx_bgcnt.h b/lib/external/NitroSDK/include/nitro/gx/gx_bgcnt.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/gx_bgcnt.h
rename to lib/external/NitroSDK/include/nitro/gx/gx_bgcnt.h
diff --git a/lib/NitroSDK/include/nitro/gx/gx_capture.h b/lib/external/NitroSDK/include/nitro/gx/gx_capture.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/gx_capture.h
rename to lib/external/NitroSDK/include/nitro/gx/gx_capture.h
diff --git a/lib/NitroSDK/include/nitro/gx/gx_load.h b/lib/external/NitroSDK/include/nitro/gx/gx_load.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/gx_load.h
rename to lib/external/NitroSDK/include/nitro/gx/gx_load.h
diff --git a/lib/NitroSDK/include/nitro/gx/gx_sp.h b/lib/external/NitroSDK/include/nitro/gx/gx_sp.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/gx_sp.h
rename to lib/external/NitroSDK/include/nitro/gx/gx_sp.h
diff --git a/lib/NitroSDK/include/nitro/gx/gx_vramcnt.h b/lib/external/NitroSDK/include/nitro/gx/gx_vramcnt.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/gx_vramcnt.h
rename to lib/external/NitroSDK/include/nitro/gx/gx_vramcnt.h
diff --git a/lib/NitroSDK/include/nitro/gx/gxcommon.h b/lib/external/NitroSDK/include/nitro/gx/gxcommon.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/gxcommon.h
rename to lib/external/NitroSDK/include/nitro/gx/gxcommon.h
diff --git a/lib/NitroSDK/include/nitro/gx/struct_2d.h b/lib/external/NitroSDK/include/nitro/gx/struct_2d.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/gx/struct_2d.h
rename to lib/external/NitroSDK/include/nitro/gx/struct_2d.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/ioreg.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/ioreg.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/ioreg_EXI.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_EXI.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/ioreg_EXI.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_EXI.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/ioreg_GX.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_GX.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/ioreg_GX.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_GX.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/ioreg_MI.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_MI.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/ioreg_MI.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_MI.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/ioreg_OS.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_OS.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/ioreg_OS.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_OS.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/ioreg_PAD.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_PAD.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/ioreg_PAD.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_PAD.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/ioreg_PXI.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_PXI.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/ioreg_PXI.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_PXI.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/ioreg_SND.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_SND.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/ioreg_SND.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_SND.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/ioreg_SPI.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_SPI.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/ioreg_SPI.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/ioreg_SPI.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/mmap_global.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/mmap_global.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/mmap_global.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/mmap_global.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/mmap_main.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/mmap_main.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/mmap_main.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/mmap_main.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM7/mmap_wram.h b/lib/external/NitroSDK/include/nitro/hw/ARM7/mmap_wram.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM7/mmap_wram.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM7/mmap_wram.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_CP.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_CP.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_CP.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_CP.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_EXI.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_EXI.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_EXI.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_EXI.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_G2.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_G2.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_G2.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_G2.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_G2S.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_G2S.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_G2S.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_G2S.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_G3.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_G3.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_G3.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_G3.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_G3X.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_G3X.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_G3X.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_G3X.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_GX.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_GX.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_GX.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_GX.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_GXS.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_GXS.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_GXS.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_GXS.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_MI.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_MI.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_MI.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_MI.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_OS.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_OS.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_OS.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_OS.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_PAD.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_PAD.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_PAD.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_PAD.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/ioreg_PXI.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_PXI.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/ioreg_PXI.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/ioreg_PXI.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/mmap_global.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/mmap_global.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/mmap_global.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/mmap_global.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/mmap_main.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/mmap_main.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/mmap_main.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/mmap_main.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/mmap_tcm.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/mmap_tcm.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/mmap_tcm.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/mmap_tcm.h
diff --git a/lib/NitroSDK/include/nitro/hw/ARM9/mmap_vram.h b/lib/external/NitroSDK/include/nitro/hw/ARM9/mmap_vram.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/ARM9/mmap_vram.h
rename to lib/external/NitroSDK/include/nitro/hw/ARM9/mmap_vram.h
diff --git a/lib/NitroSDK/include/nitro/hw/common/armArch.h b/lib/external/NitroSDK/include/nitro/hw/common/armArch.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/common/armArch.h
rename to lib/external/NitroSDK/include/nitro/hw/common/armArch.h
diff --git a/lib/NitroSDK/include/nitro/hw/common/lcd.h b/lib/external/NitroSDK/include/nitro/hw/common/lcd.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/common/lcd.h
rename to lib/external/NitroSDK/include/nitro/hw/common/lcd.h
diff --git a/lib/NitroSDK/include/nitro/hw/common/mmap_shared.h b/lib/external/NitroSDK/include/nitro/hw/common/mmap_shared.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/hw/common/mmap_shared.h
rename to lib/external/NitroSDK/include/nitro/hw/common/mmap_shared.h
diff --git a/lib/NitroSDK/include/nitro/init/crt0.h b/lib/external/NitroSDK/include/nitro/init/crt0.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/init/crt0.h
rename to lib/external/NitroSDK/include/nitro/init/crt0.h
diff --git a/lib/NitroSDK/include/nitro/ioreg.h b/lib/external/NitroSDK/include/nitro/ioreg.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/ioreg.h
rename to lib/external/NitroSDK/include/nitro/ioreg.h
diff --git a/lib/NitroSDK/include/nitro/itcm_begin.h b/lib/external/NitroSDK/include/nitro/itcm_begin.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/itcm_begin.h
rename to lib/external/NitroSDK/include/nitro/itcm_begin.h
diff --git a/lib/NitroSDK/include/nitro/itcm_end.h b/lib/external/NitroSDK/include/nitro/itcm_end.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/itcm_end.h
rename to lib/external/NitroSDK/include/nitro/itcm_end.h
diff --git a/lib/NitroSDK/include/nitro/math.h b/lib/external/NitroSDK/include/nitro/math.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/math.h
rename to lib/external/NitroSDK/include/nitro/math.h
diff --git a/lib/NitroSDK/include/nitro/math/checksum.h b/lib/external/NitroSDK/include/nitro/math/checksum.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/math/checksum.h
rename to lib/external/NitroSDK/include/nitro/math/checksum.h
diff --git a/lib/NitroSDK/include/nitro/math/crc.h b/lib/external/NitroSDK/include/nitro/math/crc.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/math/crc.h
rename to lib/external/NitroSDK/include/nitro/math/crc.h
diff --git a/lib/NitroSDK/include/nitro/math/dgt.h b/lib/external/NitroSDK/include/nitro/math/dgt.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/math/dgt.h
rename to lib/external/NitroSDK/include/nitro/math/dgt.h
diff --git a/lib/NitroSDK/include/nitro/math/fft.h b/lib/external/NitroSDK/include/nitro/math/fft.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/math/fft.h
rename to lib/external/NitroSDK/include/nitro/math/fft.h
diff --git a/lib/NitroSDK/include/nitro/math/math.h b/lib/external/NitroSDK/include/nitro/math/math.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/math/math.h
rename to lib/external/NitroSDK/include/nitro/math/math.h
diff --git a/lib/NitroSDK/include/nitro/math/qsort.h b/lib/external/NitroSDK/include/nitro/math/qsort.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/math/qsort.h
rename to lib/external/NitroSDK/include/nitro/math/qsort.h
diff --git a/lib/NitroSDK/include/nitro/math/rand.h b/lib/external/NitroSDK/include/nitro/math/rand.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/math/rand.h
rename to lib/external/NitroSDK/include/nitro/math/rand.h
diff --git a/lib/NitroSDK/include/nitro/mb.h b/lib/external/NitroSDK/include/nitro/mb.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mb.h
rename to lib/external/NitroSDK/include/nitro/mb.h
diff --git a/lib/NitroSDK/include/nitro/mb/mb.h b/lib/external/NitroSDK/include/nitro/mb/mb.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mb/mb.h
rename to lib/external/NitroSDK/include/nitro/mb/mb.h
diff --git a/lib/NitroSDK/include/nitro/mb/mb_child.h b/lib/external/NitroSDK/include/nitro/mb/mb_child.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mb/mb_child.h
rename to lib/external/NitroSDK/include/nitro/mb/mb_child.h
diff --git a/lib/NitroSDK/include/nitro/mb/mb_fake_child.h b/lib/external/NitroSDK/include/nitro/mb/mb_fake_child.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mb/mb_fake_child.h
rename to lib/external/NitroSDK/include/nitro/mb/mb_fake_child.h
diff --git a/lib/NitroSDK/include/nitro/mb/mb_gameinfo.h b/lib/external/NitroSDK/include/nitro/mb/mb_gameinfo.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mb/mb_gameinfo.h
rename to lib/external/NitroSDK/include/nitro/mb/mb_gameinfo.h
diff --git a/lib/NitroSDK/include/nitro/memorymap.h b/lib/external/NitroSDK/include/nitro/memorymap.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/memorymap.h
rename to lib/external/NitroSDK/include/nitro/memorymap.h
diff --git a/lib/NitroSDK/include/nitro/memorymap_sp.h b/lib/external/NitroSDK/include/nitro/memorymap_sp.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/memorymap_sp.h
rename to lib/external/NitroSDK/include/nitro/memorymap_sp.h
diff --git a/lib/NitroSDK/include/nitro/mi.h b/lib/external/NitroSDK/include/nitro/mi.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi.h
rename to lib/external/NitroSDK/include/nitro/mi.h
diff --git a/lib/NitroSDK/include/nitro/mi/allocator.h b/lib/external/NitroSDK/include/nitro/mi/allocator.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/allocator.h
rename to lib/external/NitroSDK/include/nitro/mi/allocator.h
diff --git a/lib/NitroSDK/include/nitro/mi/byteAccess.h b/lib/external/NitroSDK/include/nitro/mi/byteAccess.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/byteAccess.h
rename to lib/external/NitroSDK/include/nitro/mi/byteAccess.h
diff --git a/lib/NitroSDK/include/nitro/mi/cache.h b/lib/external/NitroSDK/include/nitro/mi/cache.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/cache.h
rename to lib/external/NitroSDK/include/nitro/mi/cache.h
diff --git a/lib/NitroSDK/include/nitro/mi/card.h b/lib/external/NitroSDK/include/nitro/mi/card.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/card.h
rename to lib/external/NitroSDK/include/nitro/mi/card.h
diff --git a/lib/NitroSDK/include/nitro/mi/compress.h b/lib/external/NitroSDK/include/nitro/mi/compress.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/compress.h
rename to lib/external/NitroSDK/include/nitro/mi/compress.h
diff --git a/lib/NitroSDK/include/nitro/mi/device.h b/lib/external/NitroSDK/include/nitro/mi/device.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/device.h
rename to lib/external/NitroSDK/include/nitro/mi/device.h
diff --git a/lib/NitroSDK/include/nitro/mi/dma.h b/lib/external/NitroSDK/include/nitro/mi/dma.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/dma.h
rename to lib/external/NitroSDK/include/nitro/mi/dma.h
diff --git a/lib/NitroSDK/include/nitro/mi/endian.h b/lib/external/NitroSDK/include/nitro/mi/endian.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/endian.h
rename to lib/external/NitroSDK/include/nitro/mi/endian.h
diff --git a/lib/NitroSDK/include/nitro/mi/exMemory.h b/lib/external/NitroSDK/include/nitro/mi/exMemory.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/exMemory.h
rename to lib/external/NitroSDK/include/nitro/mi/exMemory.h
diff --git a/lib/NitroSDK/include/nitro/mi/init.h b/lib/external/NitroSDK/include/nitro/mi/init.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/init.h
rename to lib/external/NitroSDK/include/nitro/mi/init.h
diff --git a/lib/NitroSDK/include/nitro/mi/memory.h b/lib/external/NitroSDK/include/nitro/mi/memory.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/memory.h
rename to lib/external/NitroSDK/include/nitro/mi/memory.h
diff --git a/lib/NitroSDK/include/nitro/mi/stream.h b/lib/external/NitroSDK/include/nitro/mi/stream.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/stream.h
rename to lib/external/NitroSDK/include/nitro/mi/stream.h
diff --git a/lib/NitroSDK/include/nitro/mi/swap.h b/lib/external/NitroSDK/include/nitro/mi/swap.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/swap.h
rename to lib/external/NitroSDK/include/nitro/mi/swap.h
diff --git a/lib/NitroSDK/include/nitro/mi/uncomp_stream.h b/lib/external/NitroSDK/include/nitro/mi/uncomp_stream.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/uncomp_stream.h
rename to lib/external/NitroSDK/include/nitro/mi/uncomp_stream.h
diff --git a/lib/NitroSDK/include/nitro/mi/uncompress.h b/lib/external/NitroSDK/include/nitro/mi/uncompress.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/uncompress.h
rename to lib/external/NitroSDK/include/nitro/mi/uncompress.h
diff --git a/lib/NitroSDK/include/nitro/mi/wram.h b/lib/external/NitroSDK/include/nitro/mi/wram.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/mi/wram.h
rename to lib/external/NitroSDK/include/nitro/mi/wram.h
diff --git a/lib/NitroSDK/include/nitro/misc.h b/lib/external/NitroSDK/include/nitro/misc.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/misc.h
rename to lib/external/NitroSDK/include/nitro/misc.h
diff --git a/lib/NitroSDK/include/nitro/os.h b/lib/external/NitroSDK/include/nitro/os.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os.h
rename to lib/external/NitroSDK/include/nitro/os.h
diff --git a/lib/NitroSDK/include/nitro/os/ARM9/argument.h b/lib/external/NitroSDK/include/nitro/os/ARM9/argument.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/ARM9/argument.h
rename to lib/external/NitroSDK/include/nitro/os/ARM9/argument.h
diff --git a/lib/NitroSDK/include/nitro/os/ARM9/cache.h b/lib/external/NitroSDK/include/nitro/os/ARM9/cache.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/ARM9/cache.h
rename to lib/external/NitroSDK/include/nitro/os/ARM9/cache.h
diff --git a/lib/NitroSDK/include/nitro/os/ARM9/china.h b/lib/external/NitroSDK/include/nitro/os/ARM9/china.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/ARM9/china.h
rename to lib/external/NitroSDK/include/nitro/os/ARM9/china.h
diff --git a/lib/NitroSDK/include/nitro/os/ARM9/protectionRegion.h b/lib/external/NitroSDK/include/nitro/os/ARM9/protectionRegion.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/ARM9/protectionRegion.h
rename to lib/external/NitroSDK/include/nitro/os/ARM9/protectionRegion.h
diff --git a/lib/NitroSDK/include/nitro/os/ARM9/protectionUnit.h b/lib/external/NitroSDK/include/nitro/os/ARM9/protectionUnit.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/ARM9/protectionUnit.h
rename to lib/external/NitroSDK/include/nitro/os/ARM9/protectionUnit.h
diff --git a/lib/NitroSDK/include/nitro/os/ARM9/tcm.h b/lib/external/NitroSDK/include/nitro/os/ARM9/tcm.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/ARM9/tcm.h
rename to lib/external/NitroSDK/include/nitro/os/ARM9/tcm.h
diff --git a/lib/NitroSDK/include/nitro/os/ARM9/vramExclusive.h b/lib/external/NitroSDK/include/nitro/os/ARM9/vramExclusive.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/ARM9/vramExclusive.h
rename to lib/external/NitroSDK/include/nitro/os/ARM9/vramExclusive.h
diff --git a/lib/NitroSDK/include/nitro/os/common/alarm.h b/lib/external/NitroSDK/include/nitro/os/common/alarm.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/alarm.h
rename to lib/external/NitroSDK/include/nitro/os/common/alarm.h
diff --git a/lib/NitroSDK/include/nitro/os/common/alloc.h b/lib/external/NitroSDK/include/nitro/os/common/alloc.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/alloc.h
rename to lib/external/NitroSDK/include/nitro/os/common/alloc.h
diff --git a/lib/NitroSDK/include/nitro/os/common/arena.h b/lib/external/NitroSDK/include/nitro/os/common/arena.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/arena.h
rename to lib/external/NitroSDK/include/nitro/os/common/arena.h
diff --git a/lib/NitroSDK/include/nitro/os/common/callTrace.h b/lib/external/NitroSDK/include/nitro/os/common/callTrace.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/callTrace.h
rename to lib/external/NitroSDK/include/nitro/os/common/callTrace.h
diff --git a/lib/NitroSDK/include/nitro/os/common/context.h b/lib/external/NitroSDK/include/nitro/os/common/context.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/context.h
rename to lib/external/NitroSDK/include/nitro/os/common/context.h
diff --git a/lib/NitroSDK/include/nitro/os/common/emulator.h b/lib/external/NitroSDK/include/nitro/os/common/emulator.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/emulator.h
rename to lib/external/NitroSDK/include/nitro/os/common/emulator.h
diff --git a/lib/NitroSDK/include/nitro/os/common/entropy.h b/lib/external/NitroSDK/include/nitro/os/common/entropy.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/entropy.h
rename to lib/external/NitroSDK/include/nitro/os/common/entropy.h
diff --git a/lib/NitroSDK/include/nitro/os/common/exception.h b/lib/external/NitroSDK/include/nitro/os/common/exception.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/exception.h
rename to lib/external/NitroSDK/include/nitro/os/common/exception.h
diff --git a/lib/NitroSDK/include/nitro/os/common/functionCost.h b/lib/external/NitroSDK/include/nitro/os/common/functionCost.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/functionCost.h
rename to lib/external/NitroSDK/include/nitro/os/common/functionCost.h
diff --git a/lib/NitroSDK/include/nitro/os/common/init.h b/lib/external/NitroSDK/include/nitro/os/common/init.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/init.h
rename to lib/external/NitroSDK/include/nitro/os/common/init.h
diff --git a/lib/NitroSDK/include/nitro/os/common/interrupt.h b/lib/external/NitroSDK/include/nitro/os/common/interrupt.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/interrupt.h
rename to lib/external/NitroSDK/include/nitro/os/common/interrupt.h
diff --git a/lib/NitroSDK/include/nitro/os/common/message.h b/lib/external/NitroSDK/include/nitro/os/common/message.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/message.h
rename to lib/external/NitroSDK/include/nitro/os/common/message.h
diff --git a/lib/NitroSDK/include/nitro/os/common/mutex.h b/lib/external/NitroSDK/include/nitro/os/common/mutex.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/mutex.h
rename to lib/external/NitroSDK/include/nitro/os/common/mutex.h
diff --git a/lib/NitroSDK/include/nitro/os/common/ownerInfo.h b/lib/external/NitroSDK/include/nitro/os/common/ownerInfo.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/ownerInfo.h
rename to lib/external/NitroSDK/include/nitro/os/common/ownerInfo.h
diff --git a/lib/NitroSDK/include/nitro/os/common/printf.h b/lib/external/NitroSDK/include/nitro/os/common/printf.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/printf.h
rename to lib/external/NitroSDK/include/nitro/os/common/printf.h
diff --git a/lib/NitroSDK/include/nitro/os/common/profile.h b/lib/external/NitroSDK/include/nitro/os/common/profile.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/profile.h
rename to lib/external/NitroSDK/include/nitro/os/common/profile.h
diff --git a/lib/NitroSDK/include/nitro/os/common/reset.h b/lib/external/NitroSDK/include/nitro/os/common/reset.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/reset.h
rename to lib/external/NitroSDK/include/nitro/os/common/reset.h
diff --git a/lib/NitroSDK/include/nitro/os/common/spinLock.h b/lib/external/NitroSDK/include/nitro/os/common/spinLock.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/spinLock.h
rename to lib/external/NitroSDK/include/nitro/os/common/spinLock.h
diff --git a/lib/NitroSDK/include/nitro/os/common/system.h b/lib/external/NitroSDK/include/nitro/os/common/system.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/system.h
rename to lib/external/NitroSDK/include/nitro/os/common/system.h
diff --git a/lib/NitroSDK/include/nitro/os/common/systemCall.h b/lib/external/NitroSDK/include/nitro/os/common/systemCall.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/systemCall.h
rename to lib/external/NitroSDK/include/nitro/os/common/systemCall.h
diff --git a/lib/NitroSDK/include/nitro/os/common/systemWork.h b/lib/external/NitroSDK/include/nitro/os/common/systemWork.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/systemWork.h
rename to lib/external/NitroSDK/include/nitro/os/common/systemWork.h
diff --git a/lib/NitroSDK/include/nitro/os/common/thread.h b/lib/external/NitroSDK/include/nitro/os/common/thread.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/thread.h
rename to lib/external/NitroSDK/include/nitro/os/common/thread.h
diff --git a/lib/NitroSDK/include/nitro/os/common/tick.h b/lib/external/NitroSDK/include/nitro/os/common/tick.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/tick.h
rename to lib/external/NitroSDK/include/nitro/os/common/tick.h
diff --git a/lib/NitroSDK/include/nitro/os/common/timer.h b/lib/external/NitroSDK/include/nitro/os/common/timer.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/timer.h
rename to lib/external/NitroSDK/include/nitro/os/common/timer.h
diff --git a/lib/NitroSDK/include/nitro/os/common/valarm.h b/lib/external/NitroSDK/include/nitro/os/common/valarm.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os/common/valarm.h
rename to lib/external/NitroSDK/include/nitro/os/common/valarm.h
diff --git a/lib/NitroSDK/include/nitro/os_sp.h b/lib/external/NitroSDK/include/nitro/os_sp.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/os_sp.h
rename to lib/external/NitroSDK/include/nitro/os_sp.h
diff --git a/lib/NitroSDK/include/nitro/pad.h b/lib/external/NitroSDK/include/nitro/pad.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/pad.h
rename to lib/external/NitroSDK/include/nitro/pad.h
diff --git a/lib/NitroSDK/include/nitro/pad/ARM7/xyButton.h b/lib/external/NitroSDK/include/nitro/pad/ARM7/xyButton.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/pad/ARM7/xyButton.h
rename to lib/external/NitroSDK/include/nitro/pad/ARM7/xyButton.h
diff --git a/lib/NitroSDK/include/nitro/pad/common/pad.h b/lib/external/NitroSDK/include/nitro/pad/common/pad.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/pad/common/pad.h
rename to lib/external/NitroSDK/include/nitro/pad/common/pad.h
diff --git a/lib/NitroSDK/include/nitro/parent_begin.h b/lib/external/NitroSDK/include/nitro/parent_begin.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/parent_begin.h
rename to lib/external/NitroSDK/include/nitro/parent_begin.h
diff --git a/lib/NitroSDK/include/nitro/parent_end.h b/lib/external/NitroSDK/include/nitro/parent_end.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/parent_end.h
rename to lib/external/NitroSDK/include/nitro/parent_end.h
diff --git a/lib/NitroSDK/include/nitro/platform.h b/lib/external/NitroSDK/include/nitro/platform.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/platform.h
rename to lib/external/NitroSDK/include/nitro/platform.h
diff --git a/lib/NitroSDK/include/nitro/prc.h b/lib/external/NitroSDK/include/nitro/prc.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/prc.h
rename to lib/external/NitroSDK/include/nitro/prc.h
diff --git a/lib/NitroSDK/include/nitro/prc/algo_common.h b/lib/external/NitroSDK/include/nitro/prc/algo_common.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/prc/algo_common.h
rename to lib/external/NitroSDK/include/nitro/prc/algo_common.h
diff --git a/lib/NitroSDK/include/nitro/prc/algo_fine.h b/lib/external/NitroSDK/include/nitro/prc/algo_fine.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/prc/algo_fine.h
rename to lib/external/NitroSDK/include/nitro/prc/algo_fine.h
diff --git a/lib/NitroSDK/include/nitro/prc/algo_light.h b/lib/external/NitroSDK/include/nitro/prc/algo_light.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/prc/algo_light.h
rename to lib/external/NitroSDK/include/nitro/prc/algo_light.h
diff --git a/lib/NitroSDK/include/nitro/prc/algo_standard.h b/lib/external/NitroSDK/include/nitro/prc/algo_standard.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/prc/algo_standard.h
rename to lib/external/NitroSDK/include/nitro/prc/algo_standard.h
diff --git a/lib/NitroSDK/include/nitro/prc/algo_superfine.h b/lib/external/NitroSDK/include/nitro/prc/algo_superfine.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/prc/algo_superfine.h
rename to lib/external/NitroSDK/include/nitro/prc/algo_superfine.h
diff --git a/lib/NitroSDK/include/nitro/prc/common.h b/lib/external/NitroSDK/include/nitro/prc/common.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/prc/common.h
rename to lib/external/NitroSDK/include/nitro/prc/common.h
diff --git a/lib/NitroSDK/include/nitro/prc/resample.h b/lib/external/NitroSDK/include/nitro/prc/resample.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/prc/resample.h
rename to lib/external/NitroSDK/include/nitro/prc/resample.h
diff --git a/lib/NitroSDK/include/nitro/prc/types.h b/lib/external/NitroSDK/include/nitro/prc/types.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/prc/types.h
rename to lib/external/NitroSDK/include/nitro/prc/types.h
diff --git a/lib/NitroSDK/include/nitro/pxi.h b/lib/external/NitroSDK/include/nitro/pxi.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/pxi.h
rename to lib/external/NitroSDK/include/nitro/pxi.h
diff --git a/lib/NitroSDK/include/nitro/pxi/common/compparam.h b/lib/external/NitroSDK/include/nitro/pxi/common/compparam.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/pxi/common/compparam.h
rename to lib/external/NitroSDK/include/nitro/pxi/common/compparam.h
diff --git a/lib/NitroSDK/include/nitro/pxi/common/fifo.h b/lib/external/NitroSDK/include/nitro/pxi/common/fifo.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/pxi/common/fifo.h
rename to lib/external/NitroSDK/include/nitro/pxi/common/fifo.h
diff --git a/lib/NitroSDK/include/nitro/pxi/common/init.h b/lib/external/NitroSDK/include/nitro/pxi/common/init.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/pxi/common/init.h
rename to lib/external/NitroSDK/include/nitro/pxi/common/init.h
diff --git a/lib/NitroSDK/include/nitro/pxi/common/regname.h b/lib/external/NitroSDK/include/nitro/pxi/common/regname.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/pxi/common/regname.h
rename to lib/external/NitroSDK/include/nitro/pxi/common/regname.h
diff --git a/lib/NitroSDK/include/nitro/rtc.h b/lib/external/NitroSDK/include/nitro/rtc.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/rtc.h
rename to lib/external/NitroSDK/include/nitro/rtc.h
diff --git a/lib/NitroSDK/include/nitro/rtc/ARM9/api.h b/lib/external/NitroSDK/include/nitro/rtc/ARM9/api.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/rtc/ARM9/api.h
rename to lib/external/NitroSDK/include/nitro/rtc/ARM9/api.h
diff --git a/lib/NitroSDK/include/nitro/rtc/ARM9/convert.h b/lib/external/NitroSDK/include/nitro/rtc/ARM9/convert.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/rtc/ARM9/convert.h
rename to lib/external/NitroSDK/include/nitro/rtc/ARM9/convert.h
diff --git a/lib/NitroSDK/include/nitro/rtc/common/fifo.h b/lib/external/NitroSDK/include/nitro/rtc/common/fifo.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/rtc/common/fifo.h
rename to lib/external/NitroSDK/include/nitro/rtc/common/fifo.h
diff --git a/lib/NitroSDK/include/nitro/rtc/common/type.h b/lib/external/NitroSDK/include/nitro/rtc/common/type.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/rtc/common/type.h
rename to lib/external/NitroSDK/include/nitro/rtc/common/type.h
diff --git a/lib/NitroSDK/include/nitro/section.h b/lib/external/NitroSDK/include/nitro/section.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/section.h
rename to lib/external/NitroSDK/include/nitro/section.h
diff --git a/lib/NitroSDK/include/nitro/sinit.h b/lib/external/NitroSDK/include/nitro/sinit.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/sinit.h
rename to lib/external/NitroSDK/include/nitro/sinit.h
diff --git a/lib/NitroSDK/include/nitro/snd.h b/lib/external/NitroSDK/include/nitro/snd.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd.h
rename to lib/external/NitroSDK/include/nitro/snd.h
diff --git a/lib/NitroSDK/include/nitro/snd/ARM9/interface.h b/lib/external/NitroSDK/include/nitro/snd/ARM9/interface.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/ARM9/interface.h
rename to lib/external/NitroSDK/include/nitro/snd/ARM9/interface.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/alarm.h b/lib/external/NitroSDK/include/nitro/snd/common/alarm.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/alarm.h
rename to lib/external/NitroSDK/include/nitro/snd/common/alarm.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/bank.h b/lib/external/NitroSDK/include/nitro/snd/common/bank.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/bank.h
rename to lib/external/NitroSDK/include/nitro/snd/common/bank.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/capture.h b/lib/external/NitroSDK/include/nitro/snd/common/capture.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/capture.h
rename to lib/external/NitroSDK/include/nitro/snd/common/capture.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/channel.h b/lib/external/NitroSDK/include/nitro/snd/common/channel.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/channel.h
rename to lib/external/NitroSDK/include/nitro/snd/common/channel.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/command.h b/lib/external/NitroSDK/include/nitro/snd/common/command.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/command.h
rename to lib/external/NitroSDK/include/nitro/snd/common/command.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/data.h b/lib/external/NitroSDK/include/nitro/snd/common/data.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/data.h
rename to lib/external/NitroSDK/include/nitro/snd/common/data.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/exchannel.h b/lib/external/NitroSDK/include/nitro/snd/common/exchannel.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/exchannel.h
rename to lib/external/NitroSDK/include/nitro/snd/common/exchannel.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/global.h b/lib/external/NitroSDK/include/nitro/snd/common/global.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/global.h
rename to lib/external/NitroSDK/include/nitro/snd/common/global.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/main.h b/lib/external/NitroSDK/include/nitro/snd/common/main.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/main.h
rename to lib/external/NitroSDK/include/nitro/snd/common/main.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/midiplayer.h b/lib/external/NitroSDK/include/nitro/snd/common/midiplayer.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/midiplayer.h
rename to lib/external/NitroSDK/include/nitro/snd/common/midiplayer.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/mml.h b/lib/external/NitroSDK/include/nitro/snd/common/mml.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/mml.h
rename to lib/external/NitroSDK/include/nitro/snd/common/mml.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/seq.h b/lib/external/NitroSDK/include/nitro/snd/common/seq.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/seq.h
rename to lib/external/NitroSDK/include/nitro/snd/common/seq.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/util.h b/lib/external/NitroSDK/include/nitro/snd/common/util.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/util.h
rename to lib/external/NitroSDK/include/nitro/snd/common/util.h
diff --git a/lib/NitroSDK/include/nitro/snd/common/work.h b/lib/external/NitroSDK/include/nitro/snd/common/work.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd/common/work.h
rename to lib/external/NitroSDK/include/nitro/snd/common/work.h
diff --git a/lib/NitroSDK/include/nitro/snd_sp.h b/lib/external/NitroSDK/include/nitro/snd_sp.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/snd_sp.h
rename to lib/external/NitroSDK/include/nitro/snd_sp.h
diff --git a/lib/NitroSDK/include/nitro/spec.h b/lib/external/NitroSDK/include/nitro/spec.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spec.h
rename to lib/external/NitroSDK/include/nitro/spec.h
diff --git a/lib/NitroSDK/include/nitro/spi.h b/lib/external/NitroSDK/include/nitro/spi.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi.h
rename to lib/external/NitroSDK/include/nitro/spi.h
diff --git a/lib/NitroSDK/include/nitro/spi/ARM7/pm.h b/lib/external/NitroSDK/include/nitro/spi/ARM7/pm.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/ARM7/pm.h
rename to lib/external/NitroSDK/include/nitro/spi/ARM7/pm.h
diff --git a/lib/NitroSDK/include/nitro/spi/ARM7/spi.h b/lib/external/NitroSDK/include/nitro/spi/ARM7/spi.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/ARM7/spi.h
rename to lib/external/NitroSDK/include/nitro/spi/ARM7/spi.h
diff --git a/lib/NitroSDK/include/nitro/spi/ARM9/mic.h b/lib/external/NitroSDK/include/nitro/spi/ARM9/mic.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/ARM9/mic.h
rename to lib/external/NitroSDK/include/nitro/spi/ARM9/mic.h
diff --git a/lib/NitroSDK/include/nitro/spi/ARM9/pm.h b/lib/external/NitroSDK/include/nitro/spi/ARM9/pm.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/ARM9/pm.h
rename to lib/external/NitroSDK/include/nitro/spi/ARM9/pm.h
diff --git a/lib/NitroSDK/include/nitro/spi/ARM9/tp.h b/lib/external/NitroSDK/include/nitro/spi/ARM9/tp.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/ARM9/tp.h
rename to lib/external/NitroSDK/include/nitro/spi/ARM9/tp.h
diff --git a/lib/NitroSDK/include/nitro/spi/common/config.h b/lib/external/NitroSDK/include/nitro/spi/common/config.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/common/config.h
rename to lib/external/NitroSDK/include/nitro/spi/common/config.h
diff --git a/lib/NitroSDK/include/nitro/spi/common/pm_common.h b/lib/external/NitroSDK/include/nitro/spi/common/pm_common.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/common/pm_common.h
rename to lib/external/NitroSDK/include/nitro/spi/common/pm_common.h
diff --git a/lib/NitroSDK/include/nitro/spi/common/type.h b/lib/external/NitroSDK/include/nitro/spi/common/type.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/common/type.h
rename to lib/external/NitroSDK/include/nitro/spi/common/type.h
diff --git a/lib/NitroSDK/include/nitro/spi/common/userInfo_teg.h b/lib/external/NitroSDK/include/nitro/spi/common/userInfo_teg.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/common/userInfo_teg.h
rename to lib/external/NitroSDK/include/nitro/spi/common/userInfo_teg.h
diff --git a/lib/NitroSDK/include/nitro/spi/common/userInfo_ts_0.h b/lib/external/NitroSDK/include/nitro/spi/common/userInfo_ts_0.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/common/userInfo_ts_0.h
rename to lib/external/NitroSDK/include/nitro/spi/common/userInfo_ts_0.h
diff --git a/lib/NitroSDK/include/nitro/spi/common/userInfo_ts_200.h b/lib/external/NitroSDK/include/nitro/spi/common/userInfo_ts_200.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/common/userInfo_ts_200.h
rename to lib/external/NitroSDK/include/nitro/spi/common/userInfo_ts_200.h
diff --git a/lib/NitroSDK/include/nitro/spi/common/userInfo_ts_300.h b/lib/external/NitroSDK/include/nitro/spi/common/userInfo_ts_300.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/spi/common/userInfo_ts_300.h
rename to lib/external/NitroSDK/include/nitro/spi/common/userInfo_ts_300.h
diff --git a/lib/NitroSDK/include/nitro/std.h b/lib/external/NitroSDK/include/nitro/std.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/std.h
rename to lib/external/NitroSDK/include/nitro/std.h
diff --git a/lib/NitroSDK/include/nitro/std/string.h b/lib/external/NitroSDK/include/nitro/std/string.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/std/string.h
rename to lib/external/NitroSDK/include/nitro/std/string.h
diff --git a/lib/NitroSDK/include/nitro/std/unicode.h b/lib/external/NitroSDK/include/nitro/std/unicode.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/std/unicode.h
rename to lib/external/NitroSDK/include/nitro/std/unicode.h
diff --git a/lib/NitroSDK/include/nitro/types.h b/lib/external/NitroSDK/include/nitro/types.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/types.h
rename to lib/external/NitroSDK/include/nitro/types.h
diff --git a/lib/NitroSDK/include/nitro/utest.h b/lib/external/NitroSDK/include/nitro/utest.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/utest.h
rename to lib/external/NitroSDK/include/nitro/utest.h
diff --git a/lib/NitroSDK/include/nitro/version.h b/lib/external/NitroSDK/include/nitro/version.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/version.h
rename to lib/external/NitroSDK/include/nitro/version.h
diff --git a/lib/NitroSDK/include/nitro/version_begin.h b/lib/external/NitroSDK/include/nitro/version_begin.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/version_begin.h
rename to lib/external/NitroSDK/include/nitro/version_begin.h
diff --git a/lib/NitroSDK/include/nitro/version_end.h b/lib/external/NitroSDK/include/nitro/version_end.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/version_end.h
rename to lib/external/NitroSDK/include/nitro/version_end.h
diff --git a/lib/NitroSDK/include/nitro/vib.h b/lib/external/NitroSDK/include/nitro/vib.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/vib.h
rename to lib/external/NitroSDK/include/nitro/vib.h
diff --git a/lib/NitroSDK/include/nitro/vib/vib_system.h b/lib/external/NitroSDK/include/nitro/vib/vib_system.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/vib/vib_system.h
rename to lib/external/NitroSDK/include/nitro/vib/vib_system.h
diff --git a/lib/NitroSDK/include/nitro/wbt.h b/lib/external/NitroSDK/include/nitro/wbt.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wbt.h
rename to lib/external/NitroSDK/include/nitro/wbt.h
diff --git a/lib/NitroSDK/include/nitro/wbt/context.h b/lib/external/NitroSDK/include/nitro/wbt/context.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wbt/context.h
rename to lib/external/NitroSDK/include/nitro/wbt/context.h
diff --git a/lib/NitroSDK/include/nitro/wfs.h b/lib/external/NitroSDK/include/nitro/wfs.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wfs.h
rename to lib/external/NitroSDK/include/nitro/wfs.h
diff --git a/lib/NitroSDK/include/nitro/wfs/client.h b/lib/external/NitroSDK/include/nitro/wfs/client.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wfs/client.h
rename to lib/external/NitroSDK/include/nitro/wfs/client.h
diff --git a/lib/NitroSDK/include/nitro/wfs/format.h b/lib/external/NitroSDK/include/nitro/wfs/format.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wfs/format.h
rename to lib/external/NitroSDK/include/nitro/wfs/format.h
diff --git a/lib/NitroSDK/include/nitro/wfs/server.h b/lib/external/NitroSDK/include/nitro/wfs/server.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wfs/server.h
rename to lib/external/NitroSDK/include/nitro/wfs/server.h
diff --git a/lib/NitroSDK/include/nitro/wm.h b/lib/external/NitroSDK/include/nitro/wm.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wm.h
rename to lib/external/NitroSDK/include/nitro/wm.h
diff --git a/lib/NitroSDK/include/nitro/wm/ARM9/wm_api.h b/lib/external/NitroSDK/include/nitro/wm/ARM9/wm_api.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wm/ARM9/wm_api.h
rename to lib/external/NitroSDK/include/nitro/wm/ARM9/wm_api.h
diff --git a/lib/NitroSDK/include/nitro/wm/common/wm.h b/lib/external/NitroSDK/include/nitro/wm/common/wm.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wm/common/wm.h
rename to lib/external/NitroSDK/include/nitro/wm/common/wm.h
diff --git a/lib/NitroSDK/include/nitro/wram_begin.h b/lib/external/NitroSDK/include/nitro/wram_begin.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wram_begin.h
rename to lib/external/NitroSDK/include/nitro/wram_begin.h
diff --git a/lib/NitroSDK/include/nitro/wram_end.h b/lib/external/NitroSDK/include/nitro/wram_end.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wram_end.h
rename to lib/external/NitroSDK/include/nitro/wram_end.h
diff --git a/lib/NitroSDK/include/nitro/wvr.h b/lib/external/NitroSDK/include/nitro/wvr.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wvr.h
rename to lib/external/NitroSDK/include/nitro/wvr.h
diff --git a/lib/NitroSDK/include/nitro/wvr/ARM9/wvr.h b/lib/external/NitroSDK/include/nitro/wvr/ARM9/wvr.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wvr/ARM9/wvr.h
rename to lib/external/NitroSDK/include/nitro/wvr/ARM9/wvr.h
diff --git a/lib/NitroSDK/include/nitro/wvr/common/wvr_common.h b/lib/external/NitroSDK/include/nitro/wvr/common/wvr_common.h
similarity index 100%
rename from lib/NitroSDK/include/nitro/wvr/common/wvr_common.h
rename to lib/external/NitroSDK/include/nitro/wvr/common/wvr_common.h
diff --git a/lib/NitroSDK/include/nitro_sp.h b/lib/external/NitroSDK/include/nitro_sp.h
similarity index 100%
rename from lib/NitroSDK/include/nitro_sp.h
rename to lib/external/NitroSDK/include/nitro_sp.h
diff --git a/lib/NitroSDK/include/nitro_win32.h b/lib/external/NitroSDK/include/nitro_win32.h
similarity index 100%
rename from lib/NitroSDK/include/nitro_win32.h
rename to lib/external/NitroSDK/include/nitro_win32.h
diff --git a/lib/NitroSDK/include/nitro_wl/common/version_wl.h b/lib/external/NitroSDK/include/nitro_wl/common/version_wl.h
similarity index 100%
rename from lib/NitroSDK/include/nitro_wl/common/version_wl.h
rename to lib/external/NitroSDK/include/nitro_wl/common/version_wl.h
diff --git a/lib/NitroSDK/include/nitro.pch b/lib/external/NitroSDK/include/pch/nitro_pch.h
similarity index 100%
rename from lib/NitroSDK/include/nitro.pch
rename to lib/external/NitroSDK/include/pch/nitro_pch.h
diff --git a/lib/NitroSDK/asm/card/card_pullout.s b/lib/external/NitroSDK/libraries/card/asm/card_pullout.s
similarity index 100%
rename from lib/NitroSDK/asm/card/card_pullout.s
rename to lib/external/NitroSDK/libraries/card/asm/card_pullout.s
diff --git a/lib/NitroSDK/asm/card/include/card_pullout.inc b/lib/external/NitroSDK/libraries/card/asm/include/card_pullout.inc
similarity index 100%
rename from lib/NitroSDK/asm/card/include/card_pullout.inc
rename to lib/external/NitroSDK/libraries/card/asm/include/card_pullout.inc
diff --git a/lib/external/NitroSDK/libraries/card/asm/macros/function.inc b/lib/external/NitroSDK/libraries/card/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/card/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/external/NitroSDK/libraries/card/meson.build b/lib/external/NitroSDK/libraries/card/meson.build
new file mode 100644
index 0000000000..9d21f5be38
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/card/meson.build
@@ -0,0 +1,22 @@
+libcard_srcs = files(
+ 'src/card_common.c',
+ 'src/card_spi.c',
+ 'src/card_backup.c',
+ 'src/card_rom.c',
+ 'src/card_request.c',
+ 'asm/card_pullout.s',
+)
+
+libcard_internal_includes = include_directories('src/include')
+
+libcard = static_library('card',
+ sources: [libcard_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ include_directories: [public_includes, libcard_internal_includes],
+ nasm_args: asm_args,
+ dependencies: msl_dep,
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libcard
diff --git a/lib/NitroSDK/src/card/card_backup.c b/lib/external/NitroSDK/libraries/card/src/card_backup.c
similarity index 100%
rename from lib/NitroSDK/src/card/card_backup.c
rename to lib/external/NitroSDK/libraries/card/src/card_backup.c
diff --git a/lib/NitroSDK/src/card/card_common.c b/lib/external/NitroSDK/libraries/card/src/card_common.c
similarity index 100%
rename from lib/NitroSDK/src/card/card_common.c
rename to lib/external/NitroSDK/libraries/card/src/card_common.c
diff --git a/lib/NitroSDK/src/card/card_request.c b/lib/external/NitroSDK/libraries/card/src/card_request.c
similarity index 100%
rename from lib/NitroSDK/src/card/card_request.c
rename to lib/external/NitroSDK/libraries/card/src/card_request.c
diff --git a/lib/NitroSDK/src/card/card_rom.c b/lib/external/NitroSDK/libraries/card/src/card_rom.c
similarity index 100%
rename from lib/NitroSDK/src/card/card_rom.c
rename to lib/external/NitroSDK/libraries/card/src/card_rom.c
diff --git a/lib/NitroSDK/src/card/card_spi.c b/lib/external/NitroSDK/libraries/card/src/card_spi.c
similarity index 100%
rename from lib/NitroSDK/src/card/card_spi.c
rename to lib/external/NitroSDK/libraries/card/src/card_spi.c
diff --git a/lib/NitroSDK/src/card/include/card_common.h b/lib/external/NitroSDK/libraries/card/src/include/card_common.h
similarity index 100%
rename from lib/NitroSDK/src/card/include/card_common.h
rename to lib/external/NitroSDK/libraries/card/src/include/card_common.h
diff --git a/lib/NitroSDK/src/card/include/card_rom.h b/lib/external/NitroSDK/libraries/card/src/include/card_rom.h
similarity index 100%
rename from lib/NitroSDK/src/card/include/card_rom.h
rename to lib/external/NitroSDK/libraries/card/src/include/card_rom.h
diff --git a/lib/NitroSDK/src/card/include/card_spi.h b/lib/external/NitroSDK/libraries/card/src/include/card_spi.h
similarity index 100%
rename from lib/NitroSDK/src/card/include/card_spi.h
rename to lib/external/NitroSDK/libraries/card/src/include/card_spi.h
diff --git a/lib/external/NitroSDK/libraries/cp/meson.build b/lib/external/NitroSDK/libraries/cp/meson.build
new file mode 100644
index 0000000000..df680e53a8
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/cp/meson.build
@@ -0,0 +1,12 @@
+libcp_srcs = files('src/cp_context.c')
+
+libcp = static_library('cp',
+ sources: [libcp_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: public_includes,
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libcp
diff --git a/lib/NitroSDK/src/cp/cp_context.c b/lib/external/NitroSDK/libraries/cp/src/cp_context.c
similarity index 100%
rename from lib/NitroSDK/src/cp/cp_context.c
rename to lib/external/NitroSDK/libraries/cp/src/cp_context.c
diff --git a/lib/external/NitroSDK/libraries/ctrdg/meson.build b/lib/external/NitroSDK/libraries/ctrdg/meson.build
new file mode 100644
index 0000000000..9a169ebd53
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/ctrdg/meson.build
@@ -0,0 +1,26 @@
+libctrdg_srcs = files(
+ 'src/ctrdg.c',
+ 'src/ctrdg_proc.c',
+ 'src/ctrdg_backup.c',
+ 'src/ctrdg_flash_common.c',
+ 'src/ctrdg_flash_AT29LV512.c',
+ 'src/ctrdg_flash_LE26FV10N1TS-10.c',
+ 'src/ctrdg_flash_LE39FW512.c',
+ 'src/ctrdg_flash_MX29L010.c',
+ 'src/ctrdg_flash_MX29L512.c',
+ 'src/ctrdg_sram.c',
+ 'src/ctrdg_task.c'
+)
+
+libctrdg_internal_includes = include_directories('src/include')
+
+libctrdg = static_library('ctrdg',
+ sources: [libctrdg_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes, libctrdg_internal_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libctrdg
diff --git a/lib/NitroSDK/src/ctrdg/ctrdg.c b/lib/external/NitroSDK/libraries/ctrdg/src/ctrdg.c
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/ctrdg.c
rename to lib/external/NitroSDK/libraries/ctrdg/src/ctrdg.c
diff --git a/lib/NitroSDK/src/ctrdg/ctrdg_backup.c b/lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_backup.c
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/ctrdg_backup.c
rename to lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_backup.c
diff --git a/lib/NitroSDK/src/ctrdg/ctrdg_flash_AT29LV512.c b/lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_AT29LV512.c
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/ctrdg_flash_AT29LV512.c
rename to lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_AT29LV512.c
diff --git a/lib/NitroSDK/src/ctrdg/ctrdg_flash_LE26FV10N1TS-10.c b/lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_LE26FV10N1TS-10.c
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/ctrdg_flash_LE26FV10N1TS-10.c
rename to lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_LE26FV10N1TS-10.c
diff --git a/lib/NitroSDK/src/ctrdg/ctrdg_flash_LE39FW512.c b/lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_LE39FW512.c
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/ctrdg_flash_LE39FW512.c
rename to lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_LE39FW512.c
diff --git a/lib/NitroSDK/src/ctrdg/ctrdg_flash_MX29L010.c b/lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_MX29L010.c
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/ctrdg_flash_MX29L010.c
rename to lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_MX29L010.c
diff --git a/lib/NitroSDK/src/ctrdg/ctrdg_flash_MX29L512.c b/lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_MX29L512.c
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/ctrdg_flash_MX29L512.c
rename to lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_MX29L512.c
diff --git a/lib/NitroSDK/src/ctrdg/ctrdg_flash_common.c b/lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_common.c
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/ctrdg_flash_common.c
rename to lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_flash_common.c
diff --git a/lib/NitroSDK/src/ctrdg/ctrdg_proc.c b/lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_proc.c
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/ctrdg_proc.c
rename to lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_proc.c
diff --git a/lib/NitroSDK/src/ctrdg/ctrdg_sram.c b/lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_sram.c
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/ctrdg_sram.c
rename to lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_sram.c
diff --git a/lib/NitroSDK/src/ctrdg/ctrdg_task.c b/lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_task.c
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/ctrdg_task.c
rename to lib/external/NitroSDK/libraries/ctrdg/src/ctrdg_task.c
diff --git a/lib/NitroSDK/src/ctrdg/include/ctrdg_work.h b/lib/external/NitroSDK/libraries/ctrdg/src/include/ctrdg_work.h
similarity index 100%
rename from lib/NitroSDK/src/ctrdg/include/ctrdg_work.h
rename to lib/external/NitroSDK/libraries/ctrdg/src/include/ctrdg_work.h
diff --git a/lib/NitroSDK/asm/dgt/hash1.s b/lib/external/NitroSDK/libraries/dgt/asm/hash1.s
similarity index 100%
rename from lib/NitroSDK/asm/dgt/hash1.s
rename to lib/external/NitroSDK/libraries/dgt/asm/hash1.s
diff --git a/lib/NitroSDK/asm/dgt/hash2.s b/lib/external/NitroSDK/libraries/dgt/asm/hash2.s
similarity index 100%
rename from lib/NitroSDK/asm/dgt/hash2.s
rename to lib/external/NitroSDK/libraries/dgt/asm/hash2.s
diff --git a/lib/NitroSDK/asm/dgt/hmac.s b/lib/external/NitroSDK/libraries/dgt/asm/hmac.s
similarity index 100%
rename from lib/NitroSDK/asm/dgt/hmac.s
rename to lib/external/NitroSDK/libraries/dgt/asm/hmac.s
diff --git a/lib/NitroSDK/asm/dgt/incbin/hash1.bin b/lib/external/NitroSDK/libraries/dgt/asm/incbin/hash1.bin
similarity index 100%
rename from lib/NitroSDK/asm/dgt/incbin/hash1.bin
rename to lib/external/NitroSDK/libraries/dgt/asm/incbin/hash1.bin
diff --git a/lib/NitroSDK/asm/dgt/incbin/hash2.bin b/lib/external/NitroSDK/libraries/dgt/asm/incbin/hash2.bin
similarity index 100%
rename from lib/NitroSDK/asm/dgt/incbin/hash2.bin
rename to lib/external/NitroSDK/libraries/dgt/asm/incbin/hash2.bin
diff --git a/lib/NitroSDK/asm/dgt/include/hash1.inc b/lib/external/NitroSDK/libraries/dgt/asm/include/hash1.inc
similarity index 100%
rename from lib/NitroSDK/asm/dgt/include/hash1.inc
rename to lib/external/NitroSDK/libraries/dgt/asm/include/hash1.inc
diff --git a/lib/NitroSDK/asm/dgt/include/hash2.inc b/lib/external/NitroSDK/libraries/dgt/asm/include/hash2.inc
similarity index 100%
rename from lib/NitroSDK/asm/dgt/include/hash2.inc
rename to lib/external/NitroSDK/libraries/dgt/asm/include/hash2.inc
diff --git a/lib/external/NitroSDK/libraries/dgt/asm/macros/function.inc b/lib/external/NitroSDK/libraries/dgt/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/dgt/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/NitroSDK/asm/dgt/sha1s-arm4cw.s b/lib/external/NitroSDK/libraries/dgt/asm/sha1s-arm4cw.s
similarity index 100%
rename from lib/NitroSDK/asm/dgt/sha1s-arm4cw.s
rename to lib/external/NitroSDK/libraries/dgt/asm/sha1s-arm4cw.s
diff --git a/lib/external/NitroSDK/libraries/dgt/meson.build b/lib/external/NitroSDK/libraries/dgt/meson.build
new file mode 100644
index 0000000000..f1df5904f0
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/dgt/meson.build
@@ -0,0 +1,16 @@
+libdgt_srcs = files(
+ 'asm/hash1.s',
+ 'asm/hash2.s',
+ 'asm/hmac.s',
+ 'asm/sha1s-arm4cw.s'
+)
+
+libdgt = static_library('dgt',
+ sources: libdgt_srcs,
+ c_args: [c_args, sdk_args],
+ nasm_args: asm_args,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrosdk_libs += libdgt
diff --git a/lib/external/NitroSDK/libraries/fs/meson.build b/lib/external/NitroSDK/libraries/fs/meson.build
new file mode 100644
index 0000000000..0691dcadd2
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/fs/meson.build
@@ -0,0 +1,21 @@
+libfs_srcs = files(
+ 'src/fs_command.c',
+ 'src/fs_command_default.c',
+ 'src/fs_archive.c',
+ 'src/fs_file.c',
+ 'src/fs_rom.c',
+ 'src/fs_overlay.c'
+)
+
+libfs_internal_includes = include_directories('src/include')
+
+libfs = static_library('fs',
+ sources: [libfs_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes, libfs_internal_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libfs
diff --git a/lib/NitroSDK/src/fs/fs_archive.c b/lib/external/NitroSDK/libraries/fs/src/fs_archive.c
similarity index 100%
rename from lib/NitroSDK/src/fs/fs_archive.c
rename to lib/external/NitroSDK/libraries/fs/src/fs_archive.c
diff --git a/lib/NitroSDK/src/fs/fs_command.c b/lib/external/NitroSDK/libraries/fs/src/fs_command.c
similarity index 100%
rename from lib/NitroSDK/src/fs/fs_command.c
rename to lib/external/NitroSDK/libraries/fs/src/fs_command.c
diff --git a/lib/NitroSDK/src/fs/fs_command_default.c b/lib/external/NitroSDK/libraries/fs/src/fs_command_default.c
similarity index 100%
rename from lib/NitroSDK/src/fs/fs_command_default.c
rename to lib/external/NitroSDK/libraries/fs/src/fs_command_default.c
diff --git a/lib/NitroSDK/src/fs/fs_file.c b/lib/external/NitroSDK/libraries/fs/src/fs_file.c
similarity index 100%
rename from lib/NitroSDK/src/fs/fs_file.c
rename to lib/external/NitroSDK/libraries/fs/src/fs_file.c
diff --git a/lib/NitroSDK/src/fs/fs_overlay.c b/lib/external/NitroSDK/libraries/fs/src/fs_overlay.c
similarity index 100%
rename from lib/NitroSDK/src/fs/fs_overlay.c
rename to lib/external/NitroSDK/libraries/fs/src/fs_overlay.c
diff --git a/lib/NitroSDK/src/fs/fs_rom.c b/lib/external/NitroSDK/libraries/fs/src/fs_rom.c
similarity index 100%
rename from lib/NitroSDK/src/fs/fs_rom.c
rename to lib/external/NitroSDK/libraries/fs/src/fs_rom.c
diff --git a/lib/NitroSDK/src/fs/include/command.h b/lib/external/NitroSDK/libraries/fs/src/include/command.h
similarity index 100%
rename from lib/NitroSDK/src/fs/include/command.h
rename to lib/external/NitroSDK/libraries/fs/src/include/command.h
diff --git a/lib/NitroSDK/src/fs/include/mw_dtor.h b/lib/external/NitroSDK/libraries/fs/src/include/mw_dtor.h
similarity index 100%
rename from lib/NitroSDK/src/fs/include/mw_dtor.h
rename to lib/external/NitroSDK/libraries/fs/src/include/mw_dtor.h
diff --git a/lib/NitroSDK/src/fs/include/rom.h b/lib/external/NitroSDK/libraries/fs/src/include/rom.h
similarity index 100%
rename from lib/NitroSDK/src/fs/include/rom.h
rename to lib/external/NitroSDK/libraries/fs/src/include/rom.h
diff --git a/lib/NitroSDK/src/fs/include/util.h b/lib/external/NitroSDK/libraries/fs/src/include/util.h
similarity index 100%
rename from lib/NitroSDK/src/fs/include/util.h
rename to lib/external/NitroSDK/libraries/fs/src/include/util.h
diff --git a/lib/external/NitroSDK/libraries/fx/meson.build b/lib/external/NitroSDK/libraries/fx/meson.build
new file mode 100644
index 0000000000..9adece69e7
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/fx/meson.build
@@ -0,0 +1,23 @@
+libfx_srcs = files(
+ 'src/fx_sincos.c',
+ 'src/fx_mtx22.c',
+ 'src/fx_mtx33.c',
+ 'src/fx_mtx43.c',
+ 'src/fx_mtx44.c',
+ 'src/fx_cp.c',
+ 'src/fx_vec.c',
+ 'src/fx_trig.c',
+ 'src/fx_atanidx.c',
+ 'src/fx.c'
+)
+
+libfx = static_library('fx',
+ sources: [libfx_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libfx
diff --git a/lib/NitroSDK/src/fx/fx.c b/lib/external/NitroSDK/libraries/fx/src/fx.c
similarity index 100%
rename from lib/NitroSDK/src/fx/fx.c
rename to lib/external/NitroSDK/libraries/fx/src/fx.c
diff --git a/lib/NitroSDK/src/fx/fx_atanidx.c b/lib/external/NitroSDK/libraries/fx/src/fx_atanidx.c
similarity index 100%
rename from lib/NitroSDK/src/fx/fx_atanidx.c
rename to lib/external/NitroSDK/libraries/fx/src/fx_atanidx.c
diff --git a/lib/NitroSDK/src/fx/fx_cp.c b/lib/external/NitroSDK/libraries/fx/src/fx_cp.c
similarity index 100%
rename from lib/NitroSDK/src/fx/fx_cp.c
rename to lib/external/NitroSDK/libraries/fx/src/fx_cp.c
diff --git a/lib/NitroSDK/src/fx/fx_mtx22.c b/lib/external/NitroSDK/libraries/fx/src/fx_mtx22.c
similarity index 100%
rename from lib/NitroSDK/src/fx/fx_mtx22.c
rename to lib/external/NitroSDK/libraries/fx/src/fx_mtx22.c
diff --git a/lib/NitroSDK/src/fx/fx_mtx33.c b/lib/external/NitroSDK/libraries/fx/src/fx_mtx33.c
similarity index 100%
rename from lib/NitroSDK/src/fx/fx_mtx33.c
rename to lib/external/NitroSDK/libraries/fx/src/fx_mtx33.c
diff --git a/lib/NitroSDK/src/fx/fx_mtx43.c b/lib/external/NitroSDK/libraries/fx/src/fx_mtx43.c
similarity index 100%
rename from lib/NitroSDK/src/fx/fx_mtx43.c
rename to lib/external/NitroSDK/libraries/fx/src/fx_mtx43.c
diff --git a/lib/NitroSDK/src/fx/fx_mtx44.c b/lib/external/NitroSDK/libraries/fx/src/fx_mtx44.c
similarity index 100%
rename from lib/NitroSDK/src/fx/fx_mtx44.c
rename to lib/external/NitroSDK/libraries/fx/src/fx_mtx44.c
diff --git a/lib/NitroSDK/src/fx/fx_sincos.c b/lib/external/NitroSDK/libraries/fx/src/fx_sincos.c
similarity index 100%
rename from lib/NitroSDK/src/fx/fx_sincos.c
rename to lib/external/NitroSDK/libraries/fx/src/fx_sincos.c
diff --git a/lib/NitroSDK/src/fx/fx_trig.c b/lib/external/NitroSDK/libraries/fx/src/fx_trig.c
similarity index 100%
rename from lib/NitroSDK/src/fx/fx_trig.c
rename to lib/external/NitroSDK/libraries/fx/src/fx_trig.c
diff --git a/lib/NitroSDK/src/fx/fx_vec.c b/lib/external/NitroSDK/libraries/fx/src/fx_vec.c
similarity index 100%
rename from lib/NitroSDK/src/fx/fx_vec.c
rename to lib/external/NitroSDK/libraries/fx/src/fx_vec.c
diff --git a/lib/external/NitroSDK/libraries/gx/meson.build b/lib/external/NitroSDK/libraries/gx/meson.build
new file mode 100644
index 0000000000..3e3c1b5124
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/gx/meson.build
@@ -0,0 +1,28 @@
+libgx_srcs = files(
+ 'src/gx.c',
+ 'src/gxstate.c',
+ 'src/gx_vramcnt.c',
+ 'src/gx_bgcnt.c',
+ 'src/g2.c',
+ 'src/g3b.c',
+ 'src/g3imm.c',
+ 'src/g3x.c',
+ 'src/g3_util.c',
+ 'src/gx_load2d.c',
+ 'src/gx_load3d.c',
+ 'src/g3.c',
+ 'src/gxasm.c'
+)
+
+libgx_internal_includes = include_directories('src/include')
+
+libgx = static_library('gx',
+ sources: [libgx_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes, libgx_internal_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libgx
diff --git a/lib/NitroSDK/src/gx/g2.c b/lib/external/NitroSDK/libraries/gx/src/g2.c
similarity index 100%
rename from lib/NitroSDK/src/gx/g2.c
rename to lib/external/NitroSDK/libraries/gx/src/g2.c
diff --git a/lib/NitroSDK/src/gx/g3.c b/lib/external/NitroSDK/libraries/gx/src/g3.c
similarity index 100%
rename from lib/NitroSDK/src/gx/g3.c
rename to lib/external/NitroSDK/libraries/gx/src/g3.c
diff --git a/lib/NitroSDK/src/gx/g3_util.c b/lib/external/NitroSDK/libraries/gx/src/g3_util.c
similarity index 100%
rename from lib/NitroSDK/src/gx/g3_util.c
rename to lib/external/NitroSDK/libraries/gx/src/g3_util.c
diff --git a/lib/NitroSDK/src/gx/g3b.c b/lib/external/NitroSDK/libraries/gx/src/g3b.c
similarity index 100%
rename from lib/NitroSDK/src/gx/g3b.c
rename to lib/external/NitroSDK/libraries/gx/src/g3b.c
diff --git a/lib/NitroSDK/src/gx/g3imm.c b/lib/external/NitroSDK/libraries/gx/src/g3imm.c
similarity index 100%
rename from lib/NitroSDK/src/gx/g3imm.c
rename to lib/external/NitroSDK/libraries/gx/src/g3imm.c
diff --git a/lib/NitroSDK/src/gx/g3x.c b/lib/external/NitroSDK/libraries/gx/src/g3x.c
similarity index 100%
rename from lib/NitroSDK/src/gx/g3x.c
rename to lib/external/NitroSDK/libraries/gx/src/g3x.c
diff --git a/lib/NitroSDK/src/gx/gx.c b/lib/external/NitroSDK/libraries/gx/src/gx.c
similarity index 100%
rename from lib/NitroSDK/src/gx/gx.c
rename to lib/external/NitroSDK/libraries/gx/src/gx.c
diff --git a/lib/NitroSDK/src/gx/gx_bgcnt.c b/lib/external/NitroSDK/libraries/gx/src/gx_bgcnt.c
similarity index 100%
rename from lib/NitroSDK/src/gx/gx_bgcnt.c
rename to lib/external/NitroSDK/libraries/gx/src/gx_bgcnt.c
diff --git a/lib/NitroSDK/src/gx/gx_load2d.c b/lib/external/NitroSDK/libraries/gx/src/gx_load2d.c
similarity index 100%
rename from lib/NitroSDK/src/gx/gx_load2d.c
rename to lib/external/NitroSDK/libraries/gx/src/gx_load2d.c
diff --git a/lib/NitroSDK/src/gx/gx_load3d.c b/lib/external/NitroSDK/libraries/gx/src/gx_load3d.c
similarity index 100%
rename from lib/NitroSDK/src/gx/gx_load3d.c
rename to lib/external/NitroSDK/libraries/gx/src/gx_load3d.c
diff --git a/lib/NitroSDK/src/gx/gx_vramcnt.c b/lib/external/NitroSDK/libraries/gx/src/gx_vramcnt.c
similarity index 100%
rename from lib/NitroSDK/src/gx/gx_vramcnt.c
rename to lib/external/NitroSDK/libraries/gx/src/gx_vramcnt.c
diff --git a/lib/NitroSDK/src/gx/gxasm.c b/lib/external/NitroSDK/libraries/gx/src/gxasm.c
similarity index 100%
rename from lib/NitroSDK/src/gx/gxasm.c
rename to lib/external/NitroSDK/libraries/gx/src/gxasm.c
diff --git a/lib/NitroSDK/src/gx/gxstate.c b/lib/external/NitroSDK/libraries/gx/src/gxstate.c
similarity index 100%
rename from lib/NitroSDK/src/gx/gxstate.c
rename to lib/external/NitroSDK/libraries/gx/src/gxstate.c
diff --git a/lib/NitroSDK/src/gx/include/gxasm.h b/lib/external/NitroSDK/libraries/gx/src/include/gxasm.h
similarity index 100%
rename from lib/NitroSDK/src/gx/include/gxasm.h
rename to lib/external/NitroSDK/libraries/gx/src/include/gxasm.h
diff --git a/lib/NitroSDK/src/gx/include/gxdma.h b/lib/external/NitroSDK/libraries/gx/src/include/gxdma.h
similarity index 100%
rename from lib/NitroSDK/src/gx/include/gxdma.h
rename to lib/external/NitroSDK/libraries/gx/src/include/gxdma.h
diff --git a/lib/NitroSDK/src/gx/include/gxstate.h b/lib/external/NitroSDK/libraries/gx/src/include/gxstate.h
similarity index 100%
rename from lib/NitroSDK/src/gx/include/gxstate.h
rename to lib/external/NitroSDK/libraries/gx/src/include/gxstate.h
diff --git a/lib/external/NitroSDK/libraries/init/meson.build b/lib/external/NitroSDK/libraries/init/meson.build
new file mode 100644
index 0000000000..ae94ef2ac9
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/init/meson.build
@@ -0,0 +1,14 @@
+crt0_src = files('src/crt0.c')
+
+# Build dummy lib so that we can compile crt0.c
+dummy_crt0 = static_library('dummycrt0',
+ sources: [crt0_src, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+# Extract crt0.o
+crt0_obj = dummy_crt0.extract_all_objects(recursive: true)
\ No newline at end of file
diff --git a/lib/NitroSDK/src/init/crt0.c b/lib/external/NitroSDK/libraries/init/src/crt0.c
similarity index 99%
rename from lib/NitroSDK/src/init/crt0.c
rename to lib/external/NitroSDK/libraries/init/src/crt0.c
index 0f9c2a59dc..7c5fb73295 100644
--- a/lib/NitroSDK/src/init/crt0.c
+++ b/lib/external/NitroSDK/libraries/init/src/crt0.c
@@ -175,7 +175,7 @@ asm void MIi_UncompressBackward (register void * bottom) {
bne @blockcopy
@bytecopy:
ldrb data, [inp, #- 1] !
-#ifdef SDK_TEG
+#ifdef SDK_TEG
sub outp, outp, #1
swpb data, data, [outp]
#else
@@ -191,7 +191,7 @@ asm void MIi_UncompressBackward (register void * bottom) {
add len, len, #0x0020
@patterncopy:
ldrb data, [outp, index]
-#ifdef SDK_TEG
+#ifdef SDK_TEG
sub outp, outp, #1
swpb data, data, [outp]
#else
diff --git a/lib/external/NitroSDK/libraries/math/meson.build b/lib/external/NitroSDK/libraries/math/meson.build
new file mode 100644
index 0000000000..6d1d8ec958
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/math/meson.build
@@ -0,0 +1,16 @@
+libmath_srcs = files(
+ 'src/math.c',
+ 'src/dgt.c',
+ 'src/crc.c'
+)
+
+libmath = static_library('math',
+ sources: [libmath_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libmath
diff --git a/lib/NitroSDK/src/math/crc.c b/lib/external/NitroSDK/libraries/math/src/crc.c
similarity index 100%
rename from lib/NitroSDK/src/math/crc.c
rename to lib/external/NitroSDK/libraries/math/src/crc.c
diff --git a/lib/NitroSDK/src/math/dgt.c b/lib/external/NitroSDK/libraries/math/src/dgt.c
similarity index 100%
rename from lib/NitroSDK/src/math/dgt.c
rename to lib/external/NitroSDK/libraries/math/src/dgt.c
diff --git a/lib/NitroSDK/src/math/math.c b/lib/external/NitroSDK/libraries/math/src/math.c
similarity index 100%
rename from lib/NitroSDK/src/math/math.c
rename to lib/external/NitroSDK/libraries/math/src/math.c
diff --git a/lib/external/NitroSDK/libraries/mb/meson.build b/lib/external/NitroSDK/libraries/mb/meson.build
new file mode 100644
index 0000000000..e1bbab5952
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/mb/meson.build
@@ -0,0 +1,23 @@
+libmb_srcs = files(
+ 'src/mb_parent.c',
+ 'src/mb_fileinfo.c',
+ 'src/mb_common.c',
+ 'src/mb_gameinfo.c',
+ 'src/mb_wm_base.c',
+ 'src/mb_cache.c',
+ 'src/mb_task.c',
+ 'src/mb_block.c'
+)
+
+libmb_internal_includes = include_directories('src/include')
+
+libmb = static_library('mb',
+ sources: [libmb_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes, libmb_internal_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libmb
diff --git a/lib/NitroSDK/src/mb/include/mb_block.h b/lib/external/NitroSDK/libraries/mb/src/include/mb_block.h
similarity index 97%
rename from lib/NitroSDK/src/mb/include/mb_block.h
rename to lib/external/NitroSDK/libraries/mb/src/include/mb_block.h
index 9407edb918..7d068e89f7 100644
--- a/lib/NitroSDK/src/mb/include/mb_block.h
+++ b/lib/external/NitroSDK/libraries/mb/src/include/mb_block.h
@@ -9,7 +9,7 @@ extern "C" {
#include
#include
-#include "include/mb_common.h"
+#include "mb_common.h"
typedef struct {
u8 type;
diff --git a/lib/NitroSDK/src/mb/include/mb_cache.h b/lib/external/NitroSDK/libraries/mb/src/include/mb_cache.h
similarity index 100%
rename from lib/NitroSDK/src/mb/include/mb_cache.h
rename to lib/external/NitroSDK/libraries/mb/src/include/mb_cache.h
diff --git a/lib/NitroSDK/src/mb/include/mb_child.h b/lib/external/NitroSDK/libraries/mb/src/include/mb_child.h
similarity index 100%
rename from lib/NitroSDK/src/mb/include/mb_child.h
rename to lib/external/NitroSDK/libraries/mb/src/include/mb_child.h
diff --git a/lib/NitroSDK/src/mb/include/mb_common.h b/lib/external/NitroSDK/libraries/mb/src/include/mb_common.h
similarity index 100%
rename from lib/NitroSDK/src/mb/include/mb_common.h
rename to lib/external/NitroSDK/libraries/mb/src/include/mb_common.h
diff --git a/lib/NitroSDK/src/mb/include/mb_fileinfo.h b/lib/external/NitroSDK/libraries/mb/src/include/mb_fileinfo.h
similarity index 100%
rename from lib/NitroSDK/src/mb/include/mb_fileinfo.h
rename to lib/external/NitroSDK/libraries/mb/src/include/mb_fileinfo.h
diff --git a/lib/NitroSDK/src/mb/include/mb_gameinfo.h b/lib/external/NitroSDK/libraries/mb/src/include/mb_gameinfo.h
similarity index 100%
rename from lib/NitroSDK/src/mb/include/mb_gameinfo.h
rename to lib/external/NitroSDK/libraries/mb/src/include/mb_gameinfo.h
diff --git a/lib/NitroSDK/src/mb/include/mb_private.h b/lib/external/NitroSDK/libraries/mb/src/include/mb_private.h
similarity index 100%
rename from lib/NitroSDK/src/mb/include/mb_private.h
rename to lib/external/NitroSDK/libraries/mb/src/include/mb_private.h
diff --git a/lib/NitroSDK/src/mb/include/mb_rom_header.h b/lib/external/NitroSDK/libraries/mb/src/include/mb_rom_header.h
similarity index 100%
rename from lib/NitroSDK/src/mb/include/mb_rom_header.h
rename to lib/external/NitroSDK/libraries/mb/src/include/mb_rom_header.h
diff --git a/lib/NitroSDK/src/mb/include/mb_task.h b/lib/external/NitroSDK/libraries/mb/src/include/mb_task.h
similarity index 100%
rename from lib/NitroSDK/src/mb/include/mb_task.h
rename to lib/external/NitroSDK/libraries/mb/src/include/mb_task.h
diff --git a/lib/NitroSDK/src/mb/include/mb_wm_base.h b/lib/external/NitroSDK/libraries/mb/src/include/mb_wm_base.h
similarity index 100%
rename from lib/NitroSDK/src/mb/include/mb_wm_base.h
rename to lib/external/NitroSDK/libraries/mb/src/include/mb_wm_base.h
diff --git a/lib/NitroSDK/src/mb/mb_block.c b/lib/external/NitroSDK/libraries/mb/src/mb_block.c
similarity index 98%
rename from lib/NitroSDK/src/mb/mb_block.c
rename to lib/external/NitroSDK/libraries/mb/src/mb_block.c
index a6a198dfc3..c6fef555e2 100644
--- a/lib/NitroSDK/src/mb/mb_block.c
+++ b/lib/external/NitroSDK/libraries/mb/src/mb_block.c
@@ -1,9 +1,9 @@
#include
-#include "include/mb_common.h"
-#include "include/mb_block.h"
-#include "include/mb_private.h"
+#include "mb_common.h"
+#include "mb_block.h"
+#include "mb_private.h"
static u8 * MBi_ReceiveRequestDataPiece(const MBCommChildBlockHeader * hdr, u16 child);
static BOOL IsGetAllRequestData(u16 child);
diff --git a/lib/NitroSDK/src/mb/mb_cache.c b/lib/external/NitroSDK/libraries/mb/src/mb_cache.c
similarity index 98%
rename from lib/NitroSDK/src/mb/mb_cache.c
rename to lib/external/NitroSDK/libraries/mb/src/mb_cache.c
index 33a6c6ea9b..9b96a76236 100644
--- a/lib/NitroSDK/src/mb/mb_cache.c
+++ b/lib/external/NitroSDK/libraries/mb/src/mb_cache.c
@@ -1,6 +1,6 @@
#include
-#include "include/mb_cache.h"
+#include "mb_cache.h"
void MBi_InitCache (MBiCacheList * pl) {
MI_CpuClear8(pl, sizeof(*pl));
diff --git a/lib/NitroSDK/src/mb/mb_common.c b/lib/external/NitroSDK/libraries/mb/src/mb_common.c
similarity index 99%
rename from lib/NitroSDK/src/mb/mb_common.c
rename to lib/external/NitroSDK/libraries/mb/src/mb_common.c
index e8d2b680f6..e251413f0a 100644
--- a/lib/NitroSDK/src/mb/mb_common.c
+++ b/lib/external/NitroSDK/libraries/mb/src/mb_common.c
@@ -1,4 +1,4 @@
-#include "include/mb_private.h"
+#include "mb_private.h"
#define MY_ROUND(n, a) (((u32)(n) + (a) - 1) & ~((a) - 1))
diff --git a/lib/NitroSDK/src/mb/mb_fileinfo.c b/lib/external/NitroSDK/libraries/mb/src/mb_fileinfo.c
similarity index 99%
rename from lib/NitroSDK/src/mb/mb_fileinfo.c
rename to lib/external/NitroSDK/libraries/mb/src/mb_fileinfo.c
index ccf97e236f..43fc6fb02f 100644
--- a/lib/NitroSDK/src/mb/mb_fileinfo.c
+++ b/lib/external/NitroSDK/libraries/mb/src/mb_fileinfo.c
@@ -1,4 +1,4 @@
-#include "include/mb_private.h"
+#include "mb_private.h"
#define MB_CACHE_PAGE_SIZE (17 * 1024)
diff --git a/lib/NitroSDK/src/mb/mb_gameinfo.c b/lib/external/NitroSDK/libraries/mb/src/mb_gameinfo.c
similarity index 99%
rename from lib/NitroSDK/src/mb/mb_gameinfo.c
rename to lib/external/NitroSDK/libraries/mb/src/mb_gameinfo.c
index 8de6da2e07..51901c0616 100644
--- a/lib/NitroSDK/src/mb/mb_gameinfo.c
+++ b/lib/external/NitroSDK/libraries/mb/src/mb_gameinfo.c
@@ -1,8 +1,8 @@
#include
-#include "include/mb_gameinfo.h"
-#include "include/mb_common.h"
-#include "include/mb_private.h"
+#include "mb_gameinfo.h"
+#include "mb_common.h"
+#include "mb_private.h"
#define MB_GAME_INFO_LIFETIME_SEC 60
#define MB_SCAN_LOCK_SEC 8
diff --git a/lib/NitroSDK/src/mb/mb_parent.c b/lib/external/NitroSDK/libraries/mb/src/mb_parent.c
similarity index 99%
rename from lib/NitroSDK/src/mb/mb_parent.c
rename to lib/external/NitroSDK/libraries/mb/src/mb_parent.c
index 5c8b8d0770..ad37ea9009 100644
--- a/lib/NitroSDK/src/mb/mb_parent.c
+++ b/lib/external/NitroSDK/libraries/mb/src/mb_parent.c
@@ -1,4 +1,4 @@
-#include "include/mb_private.h"
+#include "mb_private.h"
#define MB_SEND_THRESHOLD 2
diff --git a/lib/NitroSDK/src/mb/mb_task.c b/lib/external/NitroSDK/libraries/mb/src/mb_task.c
similarity index 99%
rename from lib/NitroSDK/src/mb/mb_task.c
rename to lib/external/NitroSDK/libraries/mb/src/mb_task.c
index 1674ce35ed..ed8767329f 100644
--- a/lib/NitroSDK/src/mb/mb_task.c
+++ b/lib/external/NitroSDK/libraries/mb/src/mb_task.c
@@ -1,6 +1,6 @@
#include
-#include "include/mb_task.h"
+#include "mb_task.h"
typedef struct {
OSThread th[1];
diff --git a/lib/NitroSDK/src/mb/mb_wm_base.c b/lib/external/NitroSDK/libraries/mb/src/mb_wm_base.c
similarity index 99%
rename from lib/NitroSDK/src/mb/mb_wm_base.c
rename to lib/external/NitroSDK/libraries/mb/src/mb_wm_base.c
index 13ff0fe9be..23ed136044 100644
--- a/lib/NitroSDK/src/mb/mb_wm_base.c
+++ b/lib/external/NitroSDK/libraries/mb/src/mb_wm_base.c
@@ -1,4 +1,4 @@
-#include "include/mb_private.h"
+#include "mb_private.h"
SDK_COMPILER_ASSERT(
32 + sizeof(MBiParam) + 32 + sizeof(MB_CommPWork) + 32 + WM_SYSTEM_BUF_SIZE <=
diff --git a/lib/external/NitroSDK/libraries/mb/src/meson.build b/lib/external/NitroSDK/libraries/mb/src/meson.build
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/mb/src/meson.build
@@ -0,0 +1 @@
+
diff --git a/lib/external/NitroSDK/libraries/meson.build b/lib/external/NitroSDK/libraries/meson.build
new file mode 100644
index 0000000000..ae032b3ba0
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/meson.build
@@ -0,0 +1,19 @@
+subdir('card')
+subdir('cp')
+subdir('ctrdg')
+subdir('dgt')
+subdir('fs')
+subdir('fx')
+subdir('gx')
+subdir('init')
+subdir('math')
+subdir('mb')
+subdir('mi')
+subdir('os')
+subdir('pxi')
+subdir('rtc')
+subdir('snd')
+subdir('spi')
+subdir('std')
+subdir('wm')
+subdir('wvr')
diff --git a/lib/external/NitroSDK/libraries/mi/meson.build b/lib/external/NitroSDK/libraries/mi/meson.build
new file mode 100644
index 0000000000..e0b1dd69fc
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/mi/meson.build
@@ -0,0 +1,24 @@
+libmi_srcs = files(
+ 'src/mi_wram.c',
+ 'src/mi_dma.c',
+ 'src/mi_dma_hblank.c',
+ 'src/mi_dma_gxcommand.c',
+ 'src/mi_memory.c',
+ 'src/mi_swap.c',
+ 'src/mi_uncompress.c',
+ 'src/mi_dma_card.c',
+ 'src/mi_init.c'
+)
+
+libmi_internal_includes = include_directories('src/include')
+
+libmi = static_library('mi',
+ sources: [libmi_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes, libmi_internal_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libmi
diff --git a/lib/NitroSDK/src/mi/include/mi_dma.h b/lib/external/NitroSDK/libraries/mi/src/include/mi_dma.h
similarity index 100%
rename from lib/NitroSDK/src/mi/include/mi_dma.h
rename to lib/external/NitroSDK/libraries/mi/src/include/mi_dma.h
diff --git a/lib/NitroSDK/src/mi/mi_dma.c b/lib/external/NitroSDK/libraries/mi/src/mi_dma.c
similarity index 100%
rename from lib/NitroSDK/src/mi/mi_dma.c
rename to lib/external/NitroSDK/libraries/mi/src/mi_dma.c
diff --git a/lib/NitroSDK/src/mi/mi_dma_card.c b/lib/external/NitroSDK/libraries/mi/src/mi_dma_card.c
similarity index 100%
rename from lib/NitroSDK/src/mi/mi_dma_card.c
rename to lib/external/NitroSDK/libraries/mi/src/mi_dma_card.c
diff --git a/lib/NitroSDK/src/mi/mi_dma_gxcommand.c b/lib/external/NitroSDK/libraries/mi/src/mi_dma_gxcommand.c
similarity index 100%
rename from lib/NitroSDK/src/mi/mi_dma_gxcommand.c
rename to lib/external/NitroSDK/libraries/mi/src/mi_dma_gxcommand.c
diff --git a/lib/NitroSDK/src/mi/mi_dma_hblank.c b/lib/external/NitroSDK/libraries/mi/src/mi_dma_hblank.c
similarity index 100%
rename from lib/NitroSDK/src/mi/mi_dma_hblank.c
rename to lib/external/NitroSDK/libraries/mi/src/mi_dma_hblank.c
diff --git a/lib/NitroSDK/src/mi/mi_init.c b/lib/external/NitroSDK/libraries/mi/src/mi_init.c
similarity index 100%
rename from lib/NitroSDK/src/mi/mi_init.c
rename to lib/external/NitroSDK/libraries/mi/src/mi_init.c
diff --git a/lib/NitroSDK/src/mi/mi_memory.c b/lib/external/NitroSDK/libraries/mi/src/mi_memory.c
similarity index 100%
rename from lib/NitroSDK/src/mi/mi_memory.c
rename to lib/external/NitroSDK/libraries/mi/src/mi_memory.c
diff --git a/lib/NitroSDK/src/mi/mi_swap.c b/lib/external/NitroSDK/libraries/mi/src/mi_swap.c
similarity index 100%
rename from lib/NitroSDK/src/mi/mi_swap.c
rename to lib/external/NitroSDK/libraries/mi/src/mi_swap.c
diff --git a/lib/NitroSDK/src/mi/mi_uncompress.c b/lib/external/NitroSDK/libraries/mi/src/mi_uncompress.c
similarity index 100%
rename from lib/NitroSDK/src/mi/mi_uncompress.c
rename to lib/external/NitroSDK/libraries/mi/src/mi_uncompress.c
diff --git a/lib/NitroSDK/src/mi/mi_wram.c b/lib/external/NitroSDK/libraries/mi/src/mi_wram.c
similarity index 100%
rename from lib/NitroSDK/src/mi/mi_wram.c
rename to lib/external/NitroSDK/libraries/mi/src/mi_wram.c
diff --git a/lib/NitroSDK/asm/os/include/os_alarm.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_alarm.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_alarm.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_alarm.inc
diff --git a/lib/NitroSDK/asm/os/include/os_alloc.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_alloc.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_alloc.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_alloc.inc
diff --git a/lib/NitroSDK/asm/os/include/os_arena.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_arena.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_arena.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_arena.inc
diff --git a/lib/NitroSDK/asm/os/include/os_context.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_context.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_context.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_context.inc
diff --git a/lib/NitroSDK/asm/os/include/os_entropy.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_entropy.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_entropy.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_entropy.inc
diff --git a/lib/NitroSDK/asm/os/include/os_exception.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_exception.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_exception.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_exception.inc
diff --git a/lib/NitroSDK/asm/os/include/os_init.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_init.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_init.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_init.inc
diff --git a/lib/NitroSDK/asm/os/include/os_interrupt.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_interrupt.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_interrupt.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_interrupt.inc
diff --git a/lib/external/NitroSDK/libraries/os/asm/include/os_irqhandler.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_irqhandler.inc
new file mode 100644
index 0000000000..cffdfbc430
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/os/asm/include/os_irqhandler.inc
@@ -0,0 +1,14 @@
+.public OS_IrqHandler_ThreadSwitch
+.public OSi_DoBoot
+.public OSi_CpuClear32
+.public OSi_ReloadRomData
+.public OSi_ReadCardRom32
+.public MIi_DmaSetParams
+.public DC_InvalidateAll
+.public DC_StoreAll
+.public DC_WaitWriteBufferEmpty
+.public IC_InvalidateAll
+.public OS_DisableInterrupts
+.public OS_RestoreInterrupts
+.public OS_SleepThread
+.public MIi_CheckDma0SourceAddress
diff --git a/lib/NitroSDK/asm/os/include/os_irqtable.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_irqtable.inc
similarity index 51%
rename from lib/NitroSDK/asm/os/include/os_irqtable.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_irqtable.inc
index 02cda5196d..0ae6cd1469 100644
--- a/lib/NitroSDK/asm/os/include/os_irqtable.inc
+++ b/lib/external/NitroSDK/libraries/os/asm/include/os_irqtable.inc
@@ -1,2 +1,4 @@
.public OSi_IrqCallback
.public OS_DisableIrqMask
+.public OS_IRQTable
+.public OSi_IrqThreadQueue
diff --git a/lib/NitroSDK/asm/os/include/os_message.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_message.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_message.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_message.inc
diff --git a/lib/NitroSDK/asm/os/include/os_mutex.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_mutex.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_mutex.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_mutex.inc
diff --git a/lib/NitroSDK/asm/os/include/os_ownerinfo.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_ownerinfo.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_ownerinfo.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_ownerinfo.inc
diff --git a/lib/NitroSDK/asm/os/include/os_printf.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_printf.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_printf.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_printf.inc
diff --git a/lib/NitroSDK/asm/os/include/os_reset.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_reset.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_reset.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_reset.inc
diff --git a/lib/NitroSDK/asm/os/include/os_spinlock.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_spinlock.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_spinlock.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_spinlock.inc
diff --git a/lib/NitroSDK/asm/os/include/os_system.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_system.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_system.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_system.inc
diff --git a/lib/NitroSDK/asm/os/include/os_terminate_proc.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_terminate_proc.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_terminate_proc.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_terminate_proc.inc
diff --git a/lib/NitroSDK/asm/os/include/os_thread.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_thread.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_thread.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_thread.inc
diff --git a/lib/NitroSDK/asm/os/include/os_tick.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_tick.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_tick.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_tick.inc
diff --git a/lib/NitroSDK/asm/os/include/os_valarm.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_valarm.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_valarm.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_valarm.inc
diff --git a/lib/NitroSDK/asm/os/include/os_vramexclusive.inc b/lib/external/NitroSDK/libraries/os/asm/include/os_vramexclusive.inc
similarity index 100%
rename from lib/NitroSDK/asm/os/include/os_vramexclusive.inc
rename to lib/external/NitroSDK/libraries/os/asm/include/os_vramexclusive.inc
diff --git a/lib/external/NitroSDK/libraries/os/asm/macros/function.inc b/lib/external/NitroSDK/libraries/os/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/os/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/NitroSDK/asm/os/os_alarm.s b/lib/external/NitroSDK/libraries/os/asm/os_alarm.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_alarm.s
rename to lib/external/NitroSDK/libraries/os/asm/os_alarm.s
diff --git a/lib/NitroSDK/asm/os/os_alloc.s b/lib/external/NitroSDK/libraries/os/asm/os_alloc.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_alloc.s
rename to lib/external/NitroSDK/libraries/os/asm/os_alloc.s
diff --git a/lib/NitroSDK/asm/os/os_arena.s b/lib/external/NitroSDK/libraries/os/asm/os_arena.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_arena.s
rename to lib/external/NitroSDK/libraries/os/asm/os_arena.s
diff --git a/lib/NitroSDK/asm/os/os_cache.s b/lib/external/NitroSDK/libraries/os/asm/os_cache.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_cache.s
rename to lib/external/NitroSDK/libraries/os/asm/os_cache.s
diff --git a/lib/NitroSDK/asm/os/os_context.s b/lib/external/NitroSDK/libraries/os/asm/os_context.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_context.s
rename to lib/external/NitroSDK/libraries/os/asm/os_context.s
diff --git a/lib/NitroSDK/asm/os/os_emulator.s b/lib/external/NitroSDK/libraries/os/asm/os_emulator.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_emulator.s
rename to lib/external/NitroSDK/libraries/os/asm/os_emulator.s
diff --git a/lib/NitroSDK/asm/os/os_entropy.s b/lib/external/NitroSDK/libraries/os/asm/os_entropy.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_entropy.s
rename to lib/external/NitroSDK/libraries/os/asm/os_entropy.s
diff --git a/lib/NitroSDK/asm/os/os_exception.s b/lib/external/NitroSDK/libraries/os/asm/os_exception.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_exception.s
rename to lib/external/NitroSDK/libraries/os/asm/os_exception.s
diff --git a/lib/NitroSDK/asm/os/os_init.s b/lib/external/NitroSDK/libraries/os/asm/os_init.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_init.s
rename to lib/external/NitroSDK/libraries/os/asm/os_init.s
diff --git a/lib/NitroSDK/asm/os/os_interrupt.s b/lib/external/NitroSDK/libraries/os/asm/os_interrupt.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_interrupt.s
rename to lib/external/NitroSDK/libraries/os/asm/os_interrupt.s
diff --git a/asm/itcm.s b/lib/external/NitroSDK/libraries/os/asm/os_irqhandler.s
similarity index 90%
rename from asm/itcm.s
rename to lib/external/NitroSDK/libraries/os/asm/os_irqhandler.s
index ddb2ba9241..9998143487 100644
--- a/asm/itcm.s
+++ b/lib/external/NitroSDK/libraries/os/asm/os_irqhandler.s
@@ -1,11 +1,50 @@
.include "macros/function.inc"
- .include "include/itcm.inc"
+ .include "include/os_irqhandler.inc"
.extern OSi_ThreadInfo
.extern Unk_021CCFE4
.extern OS_IRQTable
.extern OSi_IrqThreadQueue
+ .text
+
+ arm_func_start OS_WaitIrq
+OS_WaitIrq: ; 0x020C12B4
+ stmfd sp!, {r4, r5, r6, lr}
+ mov r5, r0
+ mov r4, r1
+ bl OS_DisableInterrupts
+ cmp r5, #0
+ beq _020C12E4
+ ldr r1, _020C1320 ; =0x027E0000
+ mvn r2, r4
+ add r1, r1, #0x3000
+ ldr r3, [r1, #0xff8]
+ and r2, r3, r2
+ str r2, [r1, #0xff8]
+_020C12E4:
+ bl OS_RestoreInterrupts
+ ldr r1, _020C1320 ; =0x027E0000
+ add r0, r1, #0x3000
+ ldr r0, [r0, #0xff8]
+ tst r4, r0
+ ldmneia sp!, {r4, r5, r6, pc}
+ add r0, r1, #0x3f8
+ ldr r5, _020C1324 ; =0x027E0060
+ add r6, r0, #0x3c00
+_020C1308:
+ mov r0, r5
+ bl OS_SleepThread
+ ldr r0, [r6, #0]
+ tst r4, r0
+ beq _020C1308
+ ldmia sp!, {r4, r5, r6, pc}
+ ; .align 2, 0
+_020C1320: .word OS_IRQTable
+_020C1324: .word OSi_IrqThreadQueue
+ arm_func_end OS_WaitIrq
+
+
.section .itcm,4,1,4
arm_func_start OS_IrqHandler
diff --git a/lib/NitroSDK/asm/os/os_irqtable.s b/lib/external/NitroSDK/libraries/os/asm/os_irqtable.s
similarity index 99%
rename from lib/NitroSDK/asm/os/os_irqtable.s
rename to lib/external/NitroSDK/libraries/os/asm/os_irqtable.s
index 22b8bf77e8..a5f7ae2b32 100644
--- a/lib/NitroSDK/asm/os/os_irqtable.s
+++ b/lib/external/NitroSDK/libraries/os/asm/os_irqtable.s
@@ -1,8 +1,6 @@
.include "macros/function.inc"
.include "include/os_irqtable.inc"
- .extern OS_IRQTable
-
.text
@@ -124,6 +122,7 @@ OSi_IrqTimer3: ; 0x020C1424
_020C1430: .word OSi_IrqCallback
arm_func_end OSi_IrqTimer3
+
.data
@@ -132,7 +131,6 @@ Unk_0210114C: ; 0x0210114C
.short 0x8, 0x9, 0xA, 0xB, 0x3, 0x4, 0x5, 0x6
-
.bss
diff --git a/lib/NitroSDK/asm/os/os_message.s b/lib/external/NitroSDK/libraries/os/asm/os_message.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_message.s
rename to lib/external/NitroSDK/libraries/os/asm/os_message.s
diff --git a/lib/NitroSDK/asm/os/os_mutex.s b/lib/external/NitroSDK/libraries/os/asm/os_mutex.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_mutex.s
rename to lib/external/NitroSDK/libraries/os/asm/os_mutex.s
diff --git a/lib/NitroSDK/asm/os/os_ownerinfo.s b/lib/external/NitroSDK/libraries/os/asm/os_ownerinfo.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_ownerinfo.s
rename to lib/external/NitroSDK/libraries/os/asm/os_ownerinfo.s
diff --git a/lib/NitroSDK/asm/os/os_printf.s b/lib/external/NitroSDK/libraries/os/asm/os_printf.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_printf.s
rename to lib/external/NitroSDK/libraries/os/asm/os_printf.s
diff --git a/lib/NitroSDK/asm/os/os_protectionregion.s b/lib/external/NitroSDK/libraries/os/asm/os_protectionregion.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_protectionregion.s
rename to lib/external/NitroSDK/libraries/os/asm/os_protectionregion.s
diff --git a/lib/NitroSDK/asm/os/os_protectionunit.s b/lib/external/NitroSDK/libraries/os/asm/os_protectionunit.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_protectionunit.s
rename to lib/external/NitroSDK/libraries/os/asm/os_protectionunit.s
diff --git a/lib/NitroSDK/asm/os/os_reset.s b/lib/external/NitroSDK/libraries/os/asm/os_reset.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_reset.s
rename to lib/external/NitroSDK/libraries/os/asm/os_reset.s
diff --git a/lib/NitroSDK/asm/os/os_spinlock.s b/lib/external/NitroSDK/libraries/os/asm/os_spinlock.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_spinlock.s
rename to lib/external/NitroSDK/libraries/os/asm/os_spinlock.s
diff --git a/lib/NitroSDK/asm/os/os_system.s b/lib/external/NitroSDK/libraries/os/asm/os_system.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_system.s
rename to lib/external/NitroSDK/libraries/os/asm/os_system.s
diff --git a/lib/NitroSDK/asm/os/os_tcm.s b/lib/external/NitroSDK/libraries/os/asm/os_tcm.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_tcm.s
rename to lib/external/NitroSDK/libraries/os/asm/os_tcm.s
diff --git a/lib/NitroSDK/asm/os/os_terminate_proc.s b/lib/external/NitroSDK/libraries/os/asm/os_terminate_proc.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_terminate_proc.s
rename to lib/external/NitroSDK/libraries/os/asm/os_terminate_proc.s
diff --git a/lib/NitroSDK/asm/os/os_thread.s b/lib/external/NitroSDK/libraries/os/asm/os_thread.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_thread.s
rename to lib/external/NitroSDK/libraries/os/asm/os_thread.s
diff --git a/lib/NitroSDK/asm/os/os_tick.s b/lib/external/NitroSDK/libraries/os/asm/os_tick.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_tick.s
rename to lib/external/NitroSDK/libraries/os/asm/os_tick.s
diff --git a/lib/NitroSDK/asm/os/os_timer.s b/lib/external/NitroSDK/libraries/os/asm/os_timer.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_timer.s
rename to lib/external/NitroSDK/libraries/os/asm/os_timer.s
diff --git a/lib/NitroSDK/asm/os/os_valarm.s b/lib/external/NitroSDK/libraries/os/asm/os_valarm.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_valarm.s
rename to lib/external/NitroSDK/libraries/os/asm/os_valarm.s
diff --git a/lib/NitroSDK/asm/os/os_vramexclusive.s b/lib/external/NitroSDK/libraries/os/asm/os_vramexclusive.s
similarity index 100%
rename from lib/NitroSDK/asm/os/os_vramexclusive.s
rename to lib/external/NitroSDK/libraries/os/asm/os_vramexclusive.s
diff --git a/lib/external/NitroSDK/libraries/os/meson.build b/lib/external/NitroSDK/libraries/os/meson.build
new file mode 100644
index 0000000000..74b8e523b1
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/os/meson.build
@@ -0,0 +1,40 @@
+libos_srcs = files(
+ 'asm/os_irqhandler.s',
+ 'asm/os_irqtable.s',
+ 'asm/os_interrupt.s',
+ 'asm/os_spinlock.s',
+ 'asm/os_printf.s',
+ 'asm/os_thread.s',
+ 'asm/os_context.s',
+ 'asm/os_emulator.s',
+ 'asm/os_message.s',
+ 'asm/os_mutex.s',
+ 'asm/os_cache.s',
+ 'asm/os_init.s',
+ 'asm/os_arena.s',
+ 'asm/os_alloc.s',
+ 'asm/os_tcm.s',
+ 'asm/os_protectionunit.s',
+ 'asm/os_protectionregion.s',
+ 'asm/os_exception.s',
+ 'asm/os_timer.s',
+ 'asm/os_tick.s',
+ 'asm/os_alarm.s',
+ 'asm/os_valarm.s',
+ 'asm/os_system.s',
+ 'asm/os_reset.s',
+ 'asm/os_ownerinfo.s',
+ 'asm/os_vramexclusive.s',
+ 'asm/os_entropy.s',
+ 'asm/os_terminate_proc.s'
+)
+
+libos = static_library('os',
+ sources: libos_srcs,
+ c_args: [c_args, sdk_args],
+ nasm_args: asm_args,
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrosdk_libs += libos
diff --git a/lib/external/NitroSDK/libraries/pxi/meson.build b/lib/external/NitroSDK/libraries/pxi/meson.build
new file mode 100644
index 0000000000..6a8c7cb458
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/pxi/meson.build
@@ -0,0 +1,15 @@
+libpxi_srcs = files(
+ 'src/pxi_init.c',
+ 'src/pxi_fifo.c'
+)
+
+libpxi = static_library('pxi',
+ sources: [libpxi_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libpxi
diff --git a/lib/NitroSDK/src/pxi/pxi_fifo.c b/lib/external/NitroSDK/libraries/pxi/src/pxi_fifo.c
similarity index 100%
rename from lib/NitroSDK/src/pxi/pxi_fifo.c
rename to lib/external/NitroSDK/libraries/pxi/src/pxi_fifo.c
diff --git a/lib/NitroSDK/src/pxi/pxi_init.c b/lib/external/NitroSDK/libraries/pxi/src/pxi_init.c
similarity index 100%
rename from lib/NitroSDK/src/pxi/pxi_init.c
rename to lib/external/NitroSDK/libraries/pxi/src/pxi_init.c
diff --git a/lib/external/NitroSDK/libraries/rtc/meson.build b/lib/external/NitroSDK/libraries/rtc/meson.build
new file mode 100644
index 0000000000..535fee0f1a
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/rtc/meson.build
@@ -0,0 +1,16 @@
+librtc_srcs = files(
+ 'src/external.c',
+ 'src/internal.c',
+ 'src/convert.c',
+)
+
+librtc = static_library('rtc',
+ sources: [librtc_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += librtc
diff --git a/lib/NitroSDK/src/rtc/convert.c b/lib/external/NitroSDK/libraries/rtc/src/convert.c
similarity index 100%
rename from lib/NitroSDK/src/rtc/convert.c
rename to lib/external/NitroSDK/libraries/rtc/src/convert.c
diff --git a/lib/NitroSDK/src/rtc/external.c b/lib/external/NitroSDK/libraries/rtc/src/external.c
similarity index 100%
rename from lib/NitroSDK/src/rtc/external.c
rename to lib/external/NitroSDK/libraries/rtc/src/external.c
diff --git a/lib/NitroSDK/src/rtc/internal.c b/lib/external/NitroSDK/libraries/rtc/src/internal.c
similarity index 100%
rename from lib/NitroSDK/src/rtc/internal.c
rename to lib/external/NitroSDK/libraries/rtc/src/internal.c
diff --git a/lib/external/NitroSDK/libraries/snd/meson.build b/lib/external/NitroSDK/libraries/snd/meson.build
new file mode 100644
index 0000000000..eeb1d68074
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/snd/meson.build
@@ -0,0 +1,20 @@
+libsnd_srcs = files(
+ 'src/snd_interface.c',
+ 'src/snd_main.c',
+ 'src/snd_command.c',
+ 'src/snd_alarm.c',
+ 'src/snd_work.c',
+ 'src/snd_util.c',
+ 'src/snd_bank.c'
+)
+
+libsnd = static_library('snd',
+ sources: [libsnd_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libsnd
diff --git a/lib/NitroSDK/src/snd/snd_alarm.c b/lib/external/NitroSDK/libraries/snd/src/snd_alarm.c
similarity index 100%
rename from lib/NitroSDK/src/snd/snd_alarm.c
rename to lib/external/NitroSDK/libraries/snd/src/snd_alarm.c
diff --git a/lib/NitroSDK/src/snd/snd_bank.c b/lib/external/NitroSDK/libraries/snd/src/snd_bank.c
similarity index 100%
rename from lib/NitroSDK/src/snd/snd_bank.c
rename to lib/external/NitroSDK/libraries/snd/src/snd_bank.c
diff --git a/lib/NitroSDK/src/snd/snd_command.c b/lib/external/NitroSDK/libraries/snd/src/snd_command.c
similarity index 100%
rename from lib/NitroSDK/src/snd/snd_command.c
rename to lib/external/NitroSDK/libraries/snd/src/snd_command.c
diff --git a/lib/NitroSDK/src/snd/snd_interface.c b/lib/external/NitroSDK/libraries/snd/src/snd_interface.c
similarity index 100%
rename from lib/NitroSDK/src/snd/snd_interface.c
rename to lib/external/NitroSDK/libraries/snd/src/snd_interface.c
diff --git a/lib/NitroSDK/src/snd/snd_main.c b/lib/external/NitroSDK/libraries/snd/src/snd_main.c
similarity index 100%
rename from lib/NitroSDK/src/snd/snd_main.c
rename to lib/external/NitroSDK/libraries/snd/src/snd_main.c
diff --git a/lib/NitroSDK/src/snd/snd_util.c b/lib/external/NitroSDK/libraries/snd/src/snd_util.c
similarity index 100%
rename from lib/NitroSDK/src/snd/snd_util.c
rename to lib/external/NitroSDK/libraries/snd/src/snd_util.c
diff --git a/lib/NitroSDK/src/snd/snd_work.c b/lib/external/NitroSDK/libraries/snd/src/snd_work.c
similarity index 100%
rename from lib/NitroSDK/src/snd/snd_work.c
rename to lib/external/NitroSDK/libraries/snd/src/snd_work.c
diff --git a/lib/external/NitroSDK/libraries/spi/meson.build b/lib/external/NitroSDK/libraries/spi/meson.build
new file mode 100644
index 0000000000..a319160b66
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/spi/meson.build
@@ -0,0 +1,18 @@
+libspi_srcs = files(
+ 'src/tp.c',
+ 'src/mic.c',
+ 'src/pm.c'
+)
+
+libspi_internal_includes = include_directories('src/include')
+
+libspi = static_library('spi',
+ sources: [libspi_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes, libspi_internal_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libspi
diff --git a/lib/NitroSDK/src/spi/include/spi.h b/lib/external/NitroSDK/libraries/spi/src/include/spi.h
similarity index 100%
rename from lib/NitroSDK/src/spi/include/spi.h
rename to lib/external/NitroSDK/libraries/spi/src/include/spi.h
diff --git a/lib/NitroSDK/src/spi/mic.c b/lib/external/NitroSDK/libraries/spi/src/mic.c
similarity index 100%
rename from lib/NitroSDK/src/spi/mic.c
rename to lib/external/NitroSDK/libraries/spi/src/mic.c
diff --git a/lib/NitroSDK/src/spi/pm.c b/lib/external/NitroSDK/libraries/spi/src/pm.c
similarity index 100%
rename from lib/NitroSDK/src/spi/pm.c
rename to lib/external/NitroSDK/libraries/spi/src/pm.c
diff --git a/lib/NitroSDK/src/spi/tp.c b/lib/external/NitroSDK/libraries/spi/src/tp.c
similarity index 100%
rename from lib/NitroSDK/src/spi/tp.c
rename to lib/external/NitroSDK/libraries/spi/src/tp.c
diff --git a/lib/NitroSDK/asm/std/include/std_sprintf.inc b/lib/external/NitroSDK/libraries/std/asm/include/std_sprintf.inc
similarity index 100%
rename from lib/NitroSDK/asm/std/include/std_sprintf.inc
rename to lib/external/NitroSDK/libraries/std/asm/include/std_sprintf.inc
diff --git a/lib/NitroSDK/asm/std/include/std_string.inc b/lib/external/NitroSDK/libraries/std/asm/include/std_string.inc
similarity index 100%
rename from lib/NitroSDK/asm/std/include/std_string.inc
rename to lib/external/NitroSDK/libraries/std/asm/include/std_string.inc
diff --git a/lib/external/NitroSDK/libraries/std/asm/macros/function.inc b/lib/external/NitroSDK/libraries/std/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/std/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/NitroSDK/asm/std/std_sprintf.s b/lib/external/NitroSDK/libraries/std/asm/std_sprintf.s
similarity index 100%
rename from lib/NitroSDK/asm/std/std_sprintf.s
rename to lib/external/NitroSDK/libraries/std/asm/std_sprintf.s
diff --git a/lib/NitroSDK/asm/std/std_string.s b/lib/external/NitroSDK/libraries/std/asm/std_string.s
similarity index 100%
rename from lib/NitroSDK/asm/std/std_string.s
rename to lib/external/NitroSDK/libraries/std/asm/std_string.s
diff --git a/lib/external/NitroSDK/libraries/std/meson.build b/lib/external/NitroSDK/libraries/std/meson.build
new file mode 100644
index 0000000000..0929c35329
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/std/meson.build
@@ -0,0 +1,13 @@
+libstd_srcs = files(
+ 'asm/std_string.s',
+ 'asm/std_sprintf.s'
+)
+
+libstd = static_library('std',
+ sources: libstd_srcs,
+ c_args: [c_args, sdk_args],
+ include_directories: public_includes,
+ pic: false
+)
+
+nitrosdk_libs += libstd
diff --git a/lib/NitroSDK/asm/wm/include/wm_system.inc b/lib/external/NitroSDK/libraries/wm/asm/include/wm_system.inc
similarity index 100%
rename from lib/NitroSDK/asm/wm/include/wm_system.inc
rename to lib/external/NitroSDK/libraries/wm/asm/include/wm_system.inc
diff --git a/lib/external/NitroSDK/libraries/wm/asm/macros/function.inc b/lib/external/NitroSDK/libraries/wm/asm/macros/function.inc
new file mode 100644
index 0000000000..f71cc4ccae
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/wm/asm/macros/function.inc
@@ -0,0 +1,29 @@
+#pragma once
+
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .type \name, @function
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
\ No newline at end of file
diff --git a/lib/NitroSDK/asm/wm/wm_system.s b/lib/external/NitroSDK/libraries/wm/asm/wm_system.s
similarity index 100%
rename from lib/NitroSDK/asm/wm/wm_system.s
rename to lib/external/NitroSDK/libraries/wm/asm/wm_system.s
diff --git a/lib/external/NitroSDK/libraries/wm/meson.build b/lib/external/NitroSDK/libraries/wm/meson.build
new file mode 100644
index 0000000000..d52c70b037
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/wm/meson.build
@@ -0,0 +1,24 @@
+libwm_srcs = files(
+ 'asm/wm_system.s',
+ 'src/wm_sync.c',
+ 'src/wm_standard.c',
+ 'src/wm_mp.c',
+ 'src/wm_dcf.c',
+ 'src/wm_ds.c',
+ 'src/wm_ks.c',
+ 'src/wm_etc.c'
+)
+
+libwm_internal_includes = include_directories('src/include')
+
+libwm = static_library('wm',
+ sources: [libwm_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ nasm_args: asm_args,
+ dependencies: msl_dep,
+ include_directories: [public_includes, libwm_internal_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libwm
diff --git a/lib/NitroSDK/src/wm/include/wm_arm9_private.h b/lib/external/NitroSDK/libraries/wm/src/include/wm_arm9_private.h
similarity index 98%
rename from lib/NitroSDK/src/wm/include/wm_arm9_private.h
rename to lib/external/NitroSDK/libraries/wm/src/include/wm_arm9_private.h
index bab695efa4..ee41301af3 100644
--- a/lib/NitroSDK/src/wm/include/wm_arm9_private.h
+++ b/lib/external/NitroSDK/libraries/wm/src/include/wm_arm9_private.h
@@ -5,7 +5,7 @@
extern "C" {
#endif
-#include "include/wm_private.h"
+#include "wm_private.h"
#define WM_GET_ALLOWED_CHANNEL_BEFORE_INIT 0x8000
diff --git a/lib/NitroSDK/src/wm/include/wm_private.h b/lib/external/NitroSDK/libraries/wm/src/include/wm_private.h
similarity index 100%
rename from lib/NitroSDK/src/wm/include/wm_private.h
rename to lib/external/NitroSDK/libraries/wm/src/include/wm_private.h
diff --git a/lib/NitroSDK/src/wm/wm_dcf.c b/lib/external/NitroSDK/libraries/wm/src/wm_dcf.c
similarity index 98%
rename from lib/NitroSDK/src/wm/wm_dcf.c
rename to lib/external/NitroSDK/libraries/wm/src/wm_dcf.c
index 8477ffdcaf..2e1f4444f4 100644
--- a/lib/NitroSDK/src/wm/wm_dcf.c
+++ b/lib/external/NitroSDK/libraries/wm/src/wm_dcf.c
@@ -1,6 +1,6 @@
#include
-#include "include/wm_arm9_private.h"
+#include "wm_arm9_private.h"
WMErrCode WM_StartDCF (WMCallbackFunc callback, WMDcfRecvBuf * recvBuf, u16 recvBufSize) {
WMErrCode result;
diff --git a/lib/NitroSDK/src/wm/wm_ds.c b/lib/external/NitroSDK/libraries/wm/src/wm_ds.c
similarity index 99%
rename from lib/NitroSDK/src/wm/wm_ds.c
rename to lib/external/NitroSDK/libraries/wm/src/wm_ds.c
index 51e6cb5274..e596208938 100644
--- a/lib/NitroSDK/src/wm/wm_ds.c
+++ b/lib/external/NitroSDK/libraries/wm/src/wm_ds.c
@@ -1,6 +1,6 @@
#include
-#include "include/wm_arm9_private.h"
+#include "wm_arm9_private.h"
static void WmDataSharingSetDataCallback(void * callback);
static void WmDataSharingReceiveCallback_Parent(void * callback);
diff --git a/lib/NitroSDK/src/wm/wm_etc.c b/lib/external/NitroSDK/libraries/wm/src/wm_etc.c
similarity index 99%
rename from lib/NitroSDK/src/wm/wm_etc.c
rename to lib/external/NitroSDK/libraries/wm/src/wm_etc.c
index a3037411d6..272274ffda 100644
--- a/lib/NitroSDK/src/wm/wm_etc.c
+++ b/lib/external/NitroSDK/libraries/wm/src/wm_etc.c
@@ -1,6 +1,6 @@
#include
-#include "include/wm_arm9_private.h"
+#include "wm_arm9_private.h"
#define WM_SIZE_TEMP_USR_GAME_INFO_BUF 128
diff --git a/lib/NitroSDK/src/wm/wm_ks.c b/lib/external/NitroSDK/libraries/wm/src/wm_ks.c
similarity index 96%
rename from lib/NitroSDK/src/wm/wm_ks.c
rename to lib/external/NitroSDK/libraries/wm/src/wm_ks.c
index bc29f1e66e..65eaff092d 100644
--- a/lib/NitroSDK/src/wm/wm_ks.c
+++ b/lib/external/NitroSDK/libraries/wm/src/wm_ks.c
@@ -1,6 +1,6 @@
#include
-#include "include/wm_arm9_private.h"
+#include "wm_arm9_private.h"
WMErrCode WM_StartKeySharing (WMKeySetBuf * buf, u16 port) {
return WM_StartDataSharing(buf, port, 0xffff, WM_KEYDATA_SIZE, TRUE);
diff --git a/lib/NitroSDK/src/wm/wm_mp.c b/lib/external/NitroSDK/libraries/wm/src/wm_mp.c
similarity index 99%
rename from lib/NitroSDK/src/wm/wm_mp.c
rename to lib/external/NitroSDK/libraries/wm/src/wm_mp.c
index 22763fb54f..b5203a9f31 100644
--- a/lib/NitroSDK/src/wm/wm_mp.c
+++ b/lib/external/NitroSDK/libraries/wm/src/wm_mp.c
@@ -1,6 +1,6 @@
#include
-#include "include/wm_arm9_private.h"
+#include "wm_arm9_private.h"
WMErrCode WMi_StartMP (WMCallbackFunc callback, u16 * recvBuf, u16 recvBufSize, u16 * sendBuf, u16 sendBufSize, WMMPTmpParam * tmpParam) {
WMErrCode result;
diff --git a/lib/NitroSDK/src/wm/wm_standard.c b/lib/external/NitroSDK/libraries/wm/src/wm_standard.c
similarity index 99%
rename from lib/NitroSDK/src/wm/wm_standard.c
rename to lib/external/NitroSDK/libraries/wm/src/wm_standard.c
index ced88dae77..2dbc2c5396 100644
--- a/lib/NitroSDK/src/wm/wm_standard.c
+++ b/lib/external/NitroSDK/libraries/wm/src/wm_standard.c
@@ -1,6 +1,6 @@
#include
-#include "include/wm_arm9_private.h"
+#include "wm_arm9_private.h"
static BOOL WmCheckParentParameter(const WMParentParam * param);
diff --git a/lib/NitroSDK/src/wm/wm_sync.c b/lib/external/NitroSDK/libraries/wm/src/wm_sync.c
similarity index 99%
rename from lib/NitroSDK/src/wm/wm_sync.c
rename to lib/external/NitroSDK/libraries/wm/src/wm_sync.c
index 46ae68da5f..f27942f422 100644
--- a/lib/NitroSDK/src/wm/wm_sync.c
+++ b/lib/external/NitroSDK/libraries/wm/src/wm_sync.c
@@ -1,6 +1,6 @@
#include
-#include "include/wm_arm9_private.h"
+#include "wm_arm9_private.h"
WMErrCode WM_SetIndCallback (WMCallbackFunc callback) {
WMErrCode result;
diff --git a/lib/external/NitroSDK/libraries/wvr/meson.build b/lib/external/NitroSDK/libraries/wvr/meson.build
new file mode 100644
index 0000000000..bbe11d0d12
--- /dev/null
+++ b/lib/external/NitroSDK/libraries/wvr/meson.build
@@ -0,0 +1,12 @@
+libwvr_srcs = files('src/wvr.c')
+
+libwvr = static_library('wvr',
+ sources: [libwvr_srcs, fx_const_h],
+ c_args: [c_args, sdk_args],
+ dependencies: msl_dep,
+ include_directories: [public_includes],
+ c_pch: nitro_pch,
+ pic: false
+)
+
+nitrosdk_libs += libwvr
diff --git a/lib/NitroSDK/src/wvr/wvr.c b/lib/external/NitroSDK/libraries/wvr/src/wvr.c
similarity index 100%
rename from lib/NitroSDK/src/wvr/wvr.c
rename to lib/external/NitroSDK/libraries/wvr/src/wvr.c
diff --git a/lib/external/NitroSDK/meson.build b/lib/external/NitroSDK/meson.build
new file mode 100644
index 0000000000..990a8b1188
--- /dev/null
+++ b/lib/external/NitroSDK/meson.build
@@ -0,0 +1,65 @@
+project('NitroSDK', ['c', 'nasm'])
+
+# Compiler flags
+c_args = [
+ '-wrap:ver', '2.0/sp2',
+ '-O4,p',
+ '-proc', 'arm946e',
+ '-enum', 'int',
+ '-lang', 'c99',
+ '-Cpp_exceptions', 'off',
+ '-gccext,on',
+ '-msgstyle', 'gcc',
+ '-ipa', 'file',
+ '-interworking',
+ '-inline', 'on,noauto',
+ '-char', 'signed',
+ '-nosyspath',
+ '-nostdinc'
+]
+
+asm_args = [
+ '-proc', 'arm5TE',
+ '-gccinc'
+]
+
+sdk_args = [
+ '-DSDK_CW_FORCE_EXPORT_SUPPORT',
+ '-DSDK_TS',
+ '-DSDK_4M',
+ '-DSDK_ARM9',
+ '-DSDK_CW',
+ '-DSDK_FINALROM',
+ '-DSDK_CODE_ARM',
+ '-DNNS_FINALROM'
+]
+
+# Public includes
+public_includes = [include_directories('include')]
+nitro_pch = meson.current_source_dir() / 'include/pch/nitro_pch.h'
+
+# Dependencies
+msl_dep = dependency('msl', fallback: ['msl', 'msl_dep'])
+
+# arm7 components
+subdir('components')
+
+# spec files
+subdir('specfiles')
+
+# Generated headers
+subdir('autogen')
+public_includes += include_directories('autogen')
+
+# Libraries
+nitrosdk_libs = []
+subdir('libraries')
+
+# Own dependency for consumers
+nitrosdk_dep = declare_dependency(
+ compile_args: sdk_args,
+ include_directories: public_includes,
+ link_with: nitrosdk_libs,
+ objects: crt0_obj,
+ sources: fx_const_h
+)
\ No newline at end of file
diff --git a/lib/external/NitroSDK/specfiles/ARM9-TS.lcf.template b/lib/external/NitroSDK/specfiles/ARM9-TS.lcf.template
new file mode 100644
index 0000000000..37d6336f79
--- /dev/null
+++ b/lib/external/NitroSDK/specfiles/ARM9-TS.lcf.template
@@ -0,0 +1,596 @@
+MEMORY
+{
+ (RWX) : ORIGIN = , LENGTH = 0x0 >
+
+ (RWX) : ORIGIN = , LENGTH = 0x0 >>
+
+ binary.AUTOLOAD_INFO (RWX) : ORIGIN = 0, LENGTH = 0x0 >>
+ binary.STATIC_FOOTER (RWX) : ORIGIN = 0, LENGTH = 0x0 >>
+
+ (RW) : ORIGIN = AFTER(), LENGTH = 0x0 >
+ (RW) : ORIGIN = AFTER(), LENGTH = 0x0 >
+
+ (RWXO): ORIGIN = , LENGTH = 0x0 >
+
+ dummy.MAIN_EX (RW) : ORIGIN = 0x023e0000, LENGTH = 0x0
+ arena.MAIN (RW) : ORIGIN = AFTER(,), LENGTH = 0x0
+ arena.MAIN_EX (RW) : ORIGIN = AFTER(dummy.MAIN_EX,), LENGTH = 0x0
+ arena.ITCM (RW) : ORIGIN = AFTER(ITCM,), LENGTH = 0x0
+ arena.DTCM (RW) : ORIGIN = AFTER(DTCM,), LENGTH = 0x0
+ binary.MODULE_FILES (RW) : ORIGIN = 0x0, LENGTH = 0x0 > component.files
+ check.ITCM (RWX) : ORIGIN = 0x0, LENGTH = 0x08000 > itcm.check
+ check.DTCM (RW) : ORIGIN = 0x0, LENGTH = 0x04000 > dtcm.check
+}
+
+FORCE_ACTIVE
+{
+ SVC_SoftReset
+}
+
+KEEP_SECTION
+{
+ .sinit
+}
+
+KEEP_SECTION
+{
+ .exception
+}
+
+SECTIONS
+{
+ ############################ STATIC #################################
+ .:
+ {
+ ALIGNALL(4); . = ALIGN(32); # Fit to cache line
+
+
+
+ #
+ # TEXT BLOCK: READ ONLY
+ #
+ SDK_STATIC_START =.;
+ SDK_STATIC_TEXT_START =.;
+ #:::::::::: text/rodata
+ libsyscall.a (.text)
+ src_crt0.c.o (.text)
+ src_crt0.c.o (.rodata)
+
+
+
+
+ OBJECT(NitroMain,*)
+
+
+
+
+
+
+ . = ALIGN(4);
+ * (.exception)
+ . = ALIGN(4);
+ SDK_STATIC_ETABLE_START =.;
+ EXCEPTION
+ SDK_STATIC_ETABLE_END =.;
+ . = ALIGN(4);
+
+
+
+
+
+
+ . = ALIGN(4);
+
+
+
+
+
+
+ . = ALIGN(4);
+
+ SDK_STATIC_SINIT_START =.;
+ #:::::::::: ctor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WRITEW 0;
+ #:::::::::: ctor
+ SDK_STATIC_SINIT_END =.;
+
+ #:::::::::: text/rodata
+ . = ALIGN(32);
+ SDK_STATIC_TEXT_END =.;
+
+ #
+ # DATA BLOCK: READ WRITE
+ #
+ SDK_STATIC_DATA_START =.;
+ #:::::::::: data
+
+
+
+
+
+
+ . = ALIGN(4);
+
+
+
+
+
+
+ . = ALIGN(4);
+ SDK_OVERLAY_DIGEST =.;
+ # NO DIGEST
+ SDK_OVERLAY_DIGEST_END =.;
+ #:::::::::: data
+ . = ALIGN(32);
+ 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; # for static initializer
+ __exception_table_start__ = SDK_STATIC_ETABLE_START; # for exception table
+ __exception_table_end__ = SDK_STATIC_ETABLE_END; # for exception table
+ } >
+
+ ..bss:
+ {
+ ALIGNALL(4); . = ALIGN(32);
+
+
+
+ #
+ # BSS BLOCK
+ #
+ SDK_STATIC_BSS_START =.;
+ #:::::::::: bss
+
+
+
+
+
+
+ . = ALIGN(4);
+
+
+
+
+
+
+ . = ALIGN(4);
+ #:::::::::: bss
+ . = ALIGN(32);
+ SDK_STATIC_BSS_END = .;
+ SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
+
+ } >>
+
+
+ ############################ AUTOLOADS ##############################
+ SDK_AUTOLOAD.ITCM.START = 0x01ff8000;
+ SDK_AUTOLOAD.ITCM.END = SDK_AUTOLOAD.ITCM.START;
+ SDK_AUTOLOAD.ITCM.BSS_END = SDK_AUTOLOAD.ITCM.START;
+ SDK_AUTOLOAD.ITCM.SIZE = 0;
+ SDK_AUTOLOAD.ITCM.BSS_SIZE = 0;
+ SDK_AUTOLOAD.DTCM.START = 0x027e0000;
+ SDK_AUTOLOAD.DTCM.END = SDK_AUTOLOAD.DTCM.START;
+ SDK_AUTOLOAD.DTCM.BSS_END = SDK_AUTOLOAD.DTCM.START;
+ SDK_AUTOLOAD.DTCM.SIZE = 0;
+ SDK_AUTOLOAD.DTCM.BSS_SIZE = 0;
+ SDK_AUTOLOAD_START = SDK_STATIC_END;
+ SDK_AUTOLOAD_SIZE = 0;
+ SDK_AUTOLOAD_NUMBER = ;
+
+
+ .:
+ {
+ ALIGNALL(4); . = ALIGN(32);
+
+
+
+ #
+ # TEXT BLOCK: READ ONLY
+ #
+ SDK_AUTOLOAD__ID =;
+ SDK_AUTOLOAD..ID =;
+ SDK_AUTOLOAD..START =.;
+ SDK_AUTOLOAD..TEXT_START =.;
+ #:::::::::: text/rodata
+
+
+
+
+
+
+ . = ALIGN(4);
+
+
+
+
+
+
+ . = ALIGN(4);
+
+
+
+
+
+
+ . = ALIGN(4);
+
+
+
+
+
+
+ . = ALIGN(4);
+ #:::::::::: text/rodata
+ SDK_AUTOLOAD..TEXT_END =.;
+
+ #
+ # DATA BLOCK: READ WRITE BLOCK
+ #
+ SDK_AUTOLOAD..DATA_START =.;
+ #:::::::::: data
+
+
+
+
+
+
+ . = ALIGN(4);
+
+
+
+
+
+
+ . = ALIGN(4);
+
+
+
+
+
+
+ . = ALIGN(4);
+ #:::::::::: data
+ . = ALIGN(32);
+ SDK_AUTOLOAD..DATA_END =.;
+ SDK_AUTOLOAD..END =.;
+
+ SDK_AUTOLOAD..TEXT_SIZE = SDK_AUTOLOAD..TEXT_END - SDK_AUTOLOAD..TEXT_START;
+ SDK_AUTOLOAD..DATA_SIZE = SDK_AUTOLOAD..DATA_END - SDK_AUTOLOAD..DATA_START;
+ SDK_AUTOLOAD..SIZE = SDK_AUTOLOAD..END - SDK_AUTOLOAD..START;
+ SDK_AUTOLOAD_SIZE = SDK_AUTOLOAD_SIZE + SDK_AUTOLOAD..SIZE;
+
+ } >
+
+ ..bss:
+ {
+ ALIGNALL(4); . = ALIGN(32);
+
+
+
+ #
+ # BSS BLOCK
+ #
+ SDK_AUTOLOAD..BSS_START = .;
+ #:::::::::: bss
+
+
+
+
+
+
+ . = ALIGN(4);
+
+
+
+
+
+
+ . = ALIGN(4);
+
+
+
+
+
+
+ . = ALIGN(4);
+
+
+
+