9.2 KiB
Installation Instructions
This document details the steps necessary to build a copy of Pokémon Platinum (EN-US) using this repository.
Table of Contents
- 1. Setting Up Your Development Environment
- 2. Downloading the Repository
- 3. Building the Repository
- 4. Debugger Support
- Troubleshooting FAQ
1. Setting Up Your Development Environment
Windows Subsystem for Linux
[!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.
New Installs
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 1WSL version 1 is preferred for most WSL users due to its increased performance when accessing files in the Windows file system.
-
Open
Ubuntufrom your Start menu. -
Ubuntuwill 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
Existing Installs
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
Ubuntuand run the following to start a system upgrade:sudo do-release-upgradeThis process may take a long time.
-
Once
Ubuntuis done upgrading, updateUbuntu's package registry:sudo apt update && sudo apt upgrade
Install Build Dependencies
-
Run the following to install build dependencies from the
Ubuntupackage registry:sudo apt install bison flex g++ gcc-arm-none-eabi git lib32zl make ninja-build pkg-config python3 p7zip
Windows with MSYS2
If you are unable to run Windows Subsystem for Linux due to performance reasons or lacking virtualization requirements, then MSYS2 may be an option for you.
-
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 -SyuPress '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 bison flex gcc git make ninja python mingw-w64-x86_64-arm-none-eabi-gcc p7zipPress 'Y' when prompted to confirm the installation.
MacOS
-
Apple bundles a number of the requisite utilities into Xcode Command Line Tools; to install these, run:
xcode-select --install -
Install Homebrew.
-
Run the following commands to install additional dependencies:
brew update brew install gcc@14 ninja libpng pkg-config arm-none-eabi-gcc xz brew install --cask wine-stable -
You may need to authorize the Wine installation to satisfy MacOS security requirements. To do this, open the Applications folder in Finder and locate the Wine Stable application. Control-Click on this icon to open the context menu, then Control-Click on Open and grant the requested permissions.
-
If your MacOS installation is Monterey (12) or earlier, then you may also need GNU
coreutilsinstalled to run the build scripts:brew install coreutils
Linux
[!NOTE] Precise packages to be installed will vary by Linux distribution and package registry. A handful of common distributions are listed below for convenience.
Once you have installed all of the listed dependencies, proceed to downloading the repository.
Debian (and derivatives, e.g., Ubuntu, Mint)
-
Enable 32-bit installations using
dpkg:sudo dpkg --add-architecture i386 -
Install the following packages via
apt:sudo apt install bison flex g++ gcc-arm-none-eabi git make ninja-build pkg-config wget python3 xz-utils nasm libc6:i386
Arch Linux (and derivatives, e.g., Manjaro, Endeavour)
-
Enable the multilib repository.
-
Install dependencies via
pacman:sudo pacman -S arm-none-eabi-gcc bison flex gcc git make ninja python wget xz lib32-glibc
Fedora (and derivatives, e.g., AlmaLinux, Red Hat Enterprise Linux)
sudo dnf install arm-none-eabi-gcc-cs bison flex gcc-c++ git make ninja-build python3 wget2 xz glibc32
2. Downloading the Repository
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
3. Building the Repository
To build the ROM, run:
make
If everything works, then the following ROM should be built:
- build/pokeplatinum.us.nds
sha1: 0862ec35b24de5c7e2dcb88c9eea0873110d755c
Optionally, the repository can be configured to build a "revision 0"
ROM
(sha1: ce81046eda7d232513069519cb2085349896dec7). This revision matches the
original retail version that was shipped in North America; it contains an error
in the GTS code where the game will not display the level range of a wanted
Pokémon. This error was patched as part of a second shipment of cartridges for
the North American release; it is not present in any other localization.
To build this revision, instead of the above command, run the following:
ROM_REVISION=0 make
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.
4. Debugger Support
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.
Troubleshooting FAQ
My Build is Failing After Merging from Main
It is likely that your subprojects are out of date; update them with the following command:
make update
And then try rebuilding.