NOTE: This repository is deprecated; I highly recommend not making use of it, as it breaks the evolution sequence for unknown reasons.
This repository contains a host of QOL features that can be applied to Pokemon Platinum via C injection. Code written herein is based on the US version of Pokemon Platinum, specifically Rev 1.
This repository is also structured to be extensible as a C injection template with the requisite infrastructure already set up for an aspiring hacker.
Each of these features is controlled by a flag defined in this file. If there is any feature you do not want to include, then modify that file to exclude it.
- Summary Screen with IVs, EVs, and Nature Highlighting
Press R to change to IVs, L to change to EVs, and SELECT to change to actual stats.
- HM Usage Based on Possession
Cut, Rock Smash, Strength, Surf, Rock Climb, and Waterfall are all usable via overworld interaction events.
Fly and Defog will appear on the move selection screen for any Pokemon that can learn them.
There are also a few bugfixes to vanilla Platinum included in this repo:
- Double-battle bosses now use the correct music
- Fire Fang no longer pierces Wonder Guard regardless of effectiveness
- Trainer Pokemon with different forms now use the correct base stats
- Trainer Pokemon can now have abilities other than slot 1 specified
Windows builds are based on WSL. If you do not have WSL set up (or do not know if you do), follow the instructions in Setting up WSL below.
If you already have a WSL environment set up, proceed to Further Instructions.
- Enable Windows Subsystem for Linux.
- Open your command prompt as Administrator.
- In the search bar in the Start Menu, search for "cmd".
- Right-click on Command Prompt.
- Click Run as Administrator.
- Run the following command:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all
. - After the process completes, you will be prompted to restart your PC. Type "Y" and press Enter to restart.
- During the reboot process, enable virtualization in your BIOS.
- The exact steps here will vary by system and the exact make/model of your PC's motherboard. You can find a general sketch of instructions here.
- Open your command prompt as Administrator.
- Install Ubuntu.
- In the search bar in the Start Menu, search for "store" and open Microsoft Store.
- In the search bar of the window that opens, search for "Ubuntu".
- Click the blue Get button.
- Once installation is complete, launch Ubuntu from its page in the Microsoft Store to finish setup.
- This will start a setup procedure that may take some time to complete.
- Once the setup procedure is complete, choose a username and password for the system.
- Open WSL.
- Open the Run window by pressing the Windows Key and R at the same time.
- Type
wsl
into the window and press Enter.
- Update WSL.
- In WSL, type
sudo apt update
and press Enter. - After the update process completes, type
sudo apt upgrade
and press Enter.- This process may take a long time.
- You may be prompted to confirm that WSL should restart automatically during package updates. Select Yes and press Enter.
- In WSL, type
- Download and install devkitPro-pacman.
- In WSL, run the following commands:
wget https://apt.devkitpro.org/install-devkitpro-pacman
chmod +x ./install-devkitpro-pacman
sudo ./install-devkitpro-pacman
- In WSL, run the following commands:
- Install necessary packages.
- In WSL, run the following commands:
sudo apt-get install build-essential git libpng-dev gdebi-core python3 python3-pip cmake automake
pip3 install ndspy
dkp-pacman -S gba-dev
- In WSL, run the following commands:
- Restart WSL, then run the following commands.
export DEVKITPRO=/opt/devkitpro
echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc
export DEVKITARM=$DEVKITPRO/devkitARM
echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc
cd Documents
git clone https://github.com/lhearachel/plat-qol.git
- This will create a new directory
plat-qol
, which will be short-handed as "the project directory" from hereon.
- This will create a new directory
TBD
- Download and install devkitPro-pacman.
- Follow the instructions listed here.
- Install necessary packages.
- In Terminal, run the following commands:
sudo apt install libpng-dev build-essential cmake python3-pip git automake
pip3 install ndspy
dkp-pacman -S gba-dev
- In Terminal, run the following commands:
- Import keys for devkitPro's repository.
- Follow the instructions listed here.
- Install necessary packages.
- In Terminal, run the following commands:
sudo pacman -S libpng base-devel cmake python-pip git automake gba-dev
pip3 install ndspy
- In Terminal, run the following commands:
- Restart Terminal, then run the following commands.
export DEVKITPRO=/opt/devkitpro
echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc
export DEVKITARM=$DEVKITPRO/devkitARM
echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc
cd Documents
git clone https://github.com/lhearachel/plat-qol.git
- This will create a new directory
plat-qol
, which will be short-handed as "the project directory" from hereon.
- This will create a new directory
- Setup your ROM.
- Your base ROM must be a verified dump of Pokemon Platinum (US).
- Perform any and all edits to scripts, maps, events, etc. to your ROM before you install this repository.
- Make an additional edit to the common scripts for the game:
- Open your ROM in DSPRE.
- Open the Script Editor and navigate to Script File 409.
- Click Import File.
- Choose the file
extra/Script File 409.scr
included in this project. - Save your ROM.
- Place your ROM.
- Place your finalized ROM into the project directory and rename it to
rom.nds
.
- Place your finalized ROM into the project directory and rename it to
- Navigate to the project directory in Terminal/WSL.
- Download and build necessary tools.
- Run
make build_tools -j$(nprocs)
. This process will download the source code for tools needed by the injection routine and compile them for you.
- Run
- Make your ROM.
- Run
make -j$(nprocs)
.
- Run
- Test your ROM.
- After the previous
make
process completes, a new file will appear in this folder namedtest.nds
. This ROM will contain all injected routines and modifications from this project. - The
test.nds
ROM should be judged as the final copy of your ROM for any patch-creation routines! Do not attempt to modify it!
- After the previous