- Installation Instructions
This document details the steps necessary to build a copy of Pokémon Platinum (EN-US) using this repository.
-
Download the MSYS2 installer from the official website and install it on your system.
-
Once the installation is complete, a terminal should automatically pop up. To update your package registry, enter the following command:
pacman -Syu
Press 'Y' when prompted to confirm the update. This process may take a few minutes. Once completed, the terminal will automatically close.
-
Re-open an MSYS terminal (the pink icon) from your Start Menu, then enter the following commands to install necessary build dependencies:
echo 'export PATH=${PATH}:/mingw64/bin' >> ~/.bashrc source ~/.bashrc pacman -S git meson gcc flex bison mingw-w64-x86_64-arm-none-eabi-{binutils,gcc}
Press 'Y' when prompted to confirm the installation.
Important
If you intend to store your project on the Windows file system (or do not know what that means), then use these instructions, which will guide you through installing WSL version 1. If you intend to use WSL version 2, then instead follow the instructions for Linux.
Follow these instructions if you do not have an existing install of WSL.
-
Open Windows PowerShell as Administrator. Paste (Right Click or Shift+Insert) the following command:
wsl --install -d Ubuntu
-
Once the process finishes, you will be prompted to restart your machine. Accept.
-
After rebooting, reopen PowerShell and run the following command to downgrade WSL to version 1:
wsl --set-version Ubuntu 1
WSL version 1 is preferred for most WSL users due to its increased performance when accessing files in the Windows file system.
-
Open
Ubuntu
from your Start menu. -
Ubuntu
will set up its own installation when it runs for the first time. Once finished, it will ask for a username and password as input.[!NOTE] When typing the password, there will be no visible response; this is normal, and the terminal is still reading your input.
-
Update
Ubuntu
's package registry:sudo apt update && sudo apt upgrade
Follow these instructions if you have an existing install of WSL, specifically
Ubuntu
.
Older versions of Ubuntu
(e.g., 20.04
) ship with an outdated version of
Python, which is not supported. To remedy this, you can upgrade your existing
install to a more recent version of Ubuntu
:
-
Run the following inside
Ubuntu
:sudo apt upgrade && sudo apt full-upgrade
-
Open PowerShell and run the following commands to restart
Ubuntu
:wsl -t Ubuntu wsl -d Ubuntu
-
Re-open
Ubuntu
and run the following to start a system upgrade:sudo do-release-upgrade
This process may take a long time.
-
Once
Ubuntu
is done upgrading, updateUbuntu
's package registry:sudo apt update && sudo apt upgrade
-
Run the following to install build dependencies from the
Ubuntu
package registry:sudo apt install git flex bison build-essential binutils-arm-none-eabi gcc-arm-none-eabi ninja-build
-
Run the following to install additional dependencies via
pip
:sudo apt install pip pip install --user meson
You may see
pip
respond with a warning saying"The script meson is installed in '/home/<YOUR_USER>/.local/bin', which is not on PATH.
To resolve this issue, run the following commands, filling<path/to/install/directory>
with the path reported bypip
above:echo 'export PATH="<path/to/install/directory>:$PATH"' >> ~/.bashrc source ~/.bashrc
-
Apple bundles a number of the requisite utilities into Xcode Command Line Tools; to install these, run:
xcode-select --install
-
Additional packages can be installed using Homebrew; if you do not already have Homebrew installed, do so. Once Homebrew is installed, run the following commands:
brew update brew install gcc@14 meson libpng pkg-config arm-none-eabi-binutils arm-none-eabi-gcc brew install --cask wine-stable
-
If your MacOS installation is Monterey (12) or earlier, then you may also need GNU
coreutils
installed to run the build scripts:brew install coreutils
Note
Precise packages to be installed will vary by Linux distribution and package registry. A handful of common distributions are listed below for convenience.
[!IMPORTANT]
This project requires meson
version 1.3.0
or higher. If the version of
meson
provided by your package manager is out of date, then follow
these instructions to get the
most recent version.
Once you have installed all the above dependencies, proceed to downloading the repository.
-
Install
wine
:sudo dpkg --add-architecture i386 sudo mkdir -pm755 /etc/apt/keyrings sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key sudo apt update sudo apt install --install-recommends winehq-stable
-
Install the following packages via
apt
:sudo apt install git flex bison ninja-build build-essential binutils-arm-none-eabi gcc-arm-none-eabi pkg-config
-
Install
meson
viapip
:pip3 install --user meson echo "export PATH=~/.local/bin:$PATH" >> ~/.bashrc source ~/.bashrc
Install dependencies via pacman
:
sudo pacman -S git flex bison build-essentials arm-none-eabi-binutils arm-none-eabi-gcc pkg-config wine meson
sudo yum install git flex bison gcc make arm-none-eabi-bintuils-cs arm-none-eabi-gcc-cs pkg-config wine meson ninja-build
A Dockerfile
is provided with the repository should you choose to build the
project as a container. If you do not have docker
installed on your machine
and wish to make use of this feature, follow the instructions here.
Once docker
is installed, to the build environment, run:
make clean # only if you have an existing development environment
docker build . -t pret/pokeplatinum
Then, run the following to build the ROM:
docker run -u $USER -w /rom -v .:/rom pret/pokeplatinum make
If you wish to stop using the docker
build feature and switch back to a native
build environment, then run the following:
docker run -u $USER -w /rom -v .:/rom pret/pokeplatinum make clean
From your terminal, navigate to the path in which you will store the repository. Users of WSL 1 should ensure that their target is on the Windows file drive.
git clone https://github.com/pret/pokeplatinum
cd pokeplatinum
Before building the repository, some final setup is required for the compiler.
Create an environment variable called LM_LICENSE_FILE
with its value as the
path to which you cloned the repository, plus /tools/cw/license.dat
. For
example, if you cloned your repository to C:\Users\myuser\Desktop\pokeplatinum
,
then the value would be C:\Users\myuser\Desktop\pokeplatinum\tools\cw\license.dat
.
-
Search for "environment variables" in the Start menu. Click the option which says "Edit the system environment variables".
-
In the window that opens, click the button that says "Environment Variables..." in the lower right corner.
-
In the window that opens, click "New..." in the lower right corner.
-
Input the environment variable name and value as above, then click "OK".
-
Restart your computer.
Export the environment variable as above to your terminal profile:
echo 'export LM_LICENSE_FILE="/path/to/pokeplatinum/tools/cw/license.dat"' >> ~/.bashrc
source ~/.bashrc
Users of MacOS should replace ~/.bashrc
above with ~/.zshrc
.
To build the ROM, run:
make
If everything works, then the following ROM should be built:
- build/pokeplatinum.us.nds
sha1: ce81046eda7d232513069519cb2085349896dec7
If you need further assistance, feel free to ask a question in the #pokeplatinum
channel of the pret
Discord (see README.md
for contact information) or open
an issue.
This step is optional, but useful. pokeplatinum
ships with support for GDB
debugging and a target to build a debug-enabled ROM:
make debug
For convenience, a template launch.json
configuration for VS Code is provided
in the .vscode
folder of the repository.
Due to the nature of the Nintendo DS, use of standard builds of GDB for debugging
is insufficient. A fork of binutils-gdb
which supports the overlay system
employed by the console is available here.
For installation instructions, refer to the README.md
.
It is likely that your subprojects are out of date; update them with the following command:
make update
And then try rebuilding.