First, you must put a Summon Night Swordcraft Story 3: Stone of Beginnings (サモンナイト クラフトソード物語 はじまりの石) ROM (with SHA1: 3f5253fcf57e07ce52472bd29a61d16b98a12376
) in the root directory of the repository and name it baserom.gba
.
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
To set up the repository:
git clone https://github.com/jiangzhengwenjz/csm3
git clone https://github.com/jiangzhengwenjz/agbcc -b new_newlib_pret
cd ./agbcc
sh build.sh
sh install.sh ../csm3
cd ../csm3
To build csm3.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
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
.
Finally, use gmake
instead of make
to compile the ROM(s).