Setting Up ExLaunch
Introduction
ExLaunch is a modding template that allows us to inject new C/C++ code into the ExeFS with minimal knowledge of ARM OpCodes. So far, building has only been tested with Linux and WSL. If you get it working on native windows feel free to update this. This guide assumes you're using Windows Subsystem for Linux. The setup is pretty straightforward, if you can use a Linux operating system you can probably work out how to get it going on your own.
Requirements
- Windows Subsystem for Linux (WSL/WSL2)
- A Linux build in WSL
- I recommend Windows Terminal too (This is installed by default in Windows 11)
- devkitPro
- Python
- The Keystone-Engine Python Module
- CMake
- Either the ExLaunch Template repo or the Luminescent fork of it
Setting Up the Enviroment
Install/Enable WSL. It is enabled by default on newer builds of windows but if not simply run this command in Powershell as an administrator.
wsl --install
I also recommend using WSL2 as it has some extra features. New installs should use this by default but if you're still on WSL1 use this command to upgrade.
wsl --set-default-version 2
See This Microsoft Article for more info
Install a Linux build. I prefer Ubuntu as it has a lot of community support.
You can either install it from the Microsoft Store Page or install it with a Powershell command.
wsl --install -d Ubuntu
Once Installed, Open/Run it from the start menu, the store page, or from within Terminal and set up your account.
Install devkitPro tools and libraries in Ubuntu.
Follow the instructions on this page to install devkitPro Pacman
wget https://apt.devkitpro.org/install-devkitpro-pacman
chmod +x ./install-devkitpro-pacman
sudo ./install-devkitpro-pacmanInstall the
switch-dev
andswitch-portlibs
package groups using devkitPro Pacman. (While all the packages in these groups are not necessary, they are handy to have anyway)```bash
sudo dkp-pacman -Sy
sudo dkp-pacman -S switch-dev
sudo dkp-pacman -S switch-portlibs
```Once you have installed devkitPro you will need to log out and back in to Ubuntu to get it working. or run this command to make it work immediately.
source /etc/profile.d/devkit-env.sh
Install Python, either on Ubuntu or Windows. Ubuntu should have
python3
installed by default but notpip
.python-is-python3
is also handy to have.For Ubuntu:
sudo apt update
sudo apt install python-is-python3 pipFor Windows, you can get the installer from python.org.
Install The Keystone-Engine Python Module.
pip install keystone-engine
Install the latest version of
CMake
on Ubuntu. The latest version is available from the kitware APT repo.sudo apt update
sudo apt install -y software-properties-common lsb-release gpg wget apt-transport-https
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
sudo apt update
sudo rm /usr/share/keyrings/kitware-archive-keyring.gpg
sudo apt-get install kitware-archive-keyring
sudo apt install cmakeClone the ExLaunch repo either to Ubuntu or Windows. Ubuntu should come with git for it already. For Windows you can download it from the Git website if you don't have it already.
// If you want to start from the ROM Base
git clone https://github.com/Martmists-GH/BDSP_rombase.git
// If you want to start from Luminescent
git clone https://github.com/TeamLumi/Luminescent_ExLaunch.git