Skip to content

Latest commit

 

History

History
77 lines (47 loc) · 3.57 KB

INSTALL.md

File metadata and controls

77 lines (47 loc) · 3.57 KB

Prerequisites

Linux macOS Windows 10 (build 18917+) Windows 10 (1709+) Windows 8, 8.1, and 10 (1507, 1511, 1607, 1703)
none Xcode Command Line Tools package Windows Subsystem for Linux 2 Windows Subsystem for Linux Cygwin

The prerelease version of the Linux subsystem available in the 1607 and 1703 releases of Windows 10 is obsolete so consider uninstalling it.

Make sure that the build-essential, git, and libpng-dev packages are installed. The build-essential package includes the make, gcc-core, and g++ packages so they do not have to be obtained separately.

In the case of Cygwin, include the make, git, gcc-core, gcc-g++, and libpng-devel packages.

Install the devkitARM toolchain of devkitPro and add its environment variables. For Windows versions without the Linux subsystem, the devkitPro graphical installer includes a preconfigured MSYS2 environment, thus the steps below are not required.

sudo (dkp-)pacman -S gba-dev
export DEVKITPRO=/opt/devkitpro
echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc
export DEVKITARM=$DEVKITPRO/devkitARM
echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc

Installation

To set up the repository:

git clone https://github.com/pret/pokefirered
git clone https://github.com/pret/agbcc

cd ./agbcc
sh build.sh
sh install.sh ../pokefirered

cd ../pokefirered

To build pokefirered.gba:

make -j$(nproc)

To confirm it matches the official ROM image while building, do this instead:

make compare -j$(nproc)

If only .c or .s files were changed, turn off the dependency scanning temporarily. Changes to any other files will be ignored and the build will either fail or not reflect those changes.

make -j$(nproc) NODEP=1

Convenient targets have been defined to build Pokémon LeafGreen and the 1.1 revisions of both games:

# LeafGreen 1.0
make -j$(nproc) leafgreen
# FireRed 1.1
make -j$(nproc) firered_rev1
# LeafGreen 1.1
make -j$(nproc) leafgreen_rev1

To confirm these match the respective official ROM images, prefix compare_ to each target name. For example:

make -j$(nproc) compare_leafgreen

Note: If the build command is not recognized on Linux, including the Linux environment used within Windows, run nproc and replace $(nproc) with the returned value (e.g.: make -j4). Because nproc is not available on macOS, the alternative is sysctl -n hw.ncpu.

Note for Mac users

The BSD make that comes with Mac XCode can be buggy, so obtain GNU make and sed using Homebrew:

brew install make gnu-sed

When compiling agbcc, substitute the build.sh line for

gsed 's/^make/gmake/g' build.sh | sh

Finally, use gmake instead of make to compile the ROM(s).