From f9fcc589d0cc96a9ac6016a706154d7ad9eb87b5 Mon Sep 17 00:00:00 2001 From: Henny022p Date: Sun, 26 Feb 2023 14:21:17 +0100 Subject: [PATCH] update information in INSTALL --- INSTALL.md | 86 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 50 insertions(+), 36 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index a9cedf71..398d07f0 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,14 +1,22 @@ # Install -First, you must put a The Legend of Zelda: The Minish Cap (U) ROM (with SHA1: `b4bd50e4131b027c334547b4524e2dbbd4227130`) in the root directory of the repository and name it `baserom.gba`. +This repository does not include any of the games assets. +To build the game using the decomp you need an original baserom for each version you want to build. +Put them with the appropriate filename into the repository root directory. +The supported versions are: -## Building other variants -To build other variants, you need to place the corresponding baserom before building, e.g. `baserom_jp.gba` for JP. +| Version | Filename | SHA1 | +|-----------------------|------------------------|--------------------------------------------| +| USA (project default) | `baserom.gba` | `b4bd50e4131b027c334547b4524e2dbbd4227130` | +| EU | `baserom_eu.gba` | `cff199b36ff173fb6faf152653d1bccf87c26fb7` | +| JP | `baserom_jp.gba` | `6c5404a1effb17f481f352181d0f1c61a2765c5d` | +| USA (Demo) | `baserom_demo_usa.gba` | `63fcad218f9047b6a9edbb68c98bd0dec322d7a1` | +| JP (Demo) | `baserom_demo_jp.gba` | `9cdb56fa79bba13158b81925c1f3641251326412` | ## 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][xcode] | [Windows Subsystem for Linux 2][wsl2] | [Windows Subsystem for Linux][wsl] | [Cygwin][cygwin] +| 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][xcode] | [Windows Subsystem for Linux 2][wsl2] | [Windows Subsystem for Linux][wsl] | [Cygwin][cygwin] | [xcode]: https://developer.apple.com/library/archive/technotes/tn2339/_index.html#//apple_ref/doc/uid/DTS40014588-CH1-DOWNLOADING_COMMAND_LINE_TOOLS_IS_NOT_AVAILABLE_IN_XCODE_FOR_MACOS_10_9__HOW_CAN_I_INSTALL_THEM_ON_MY_MACHINE_ [wsl2]: https://docs.microsoft.com/windows/wsl/wsl2-install @@ -17,53 +25,59 @@ To build other variants, you need to place the corresponding baserom before buil The [prerelease version of the Linux subsystem](https://docs.microsoft.com/windows/wsl/install-legacy) available in the 1607 and 1703 releases of Windows 10 is obsolete so consider uninstalling it. -Make sure that the `build-essential`, `git`, `python3`, `python3-pip`, `cmake` 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. +Make sure that the `build-essential`, `git`, `python3`, `python3-pip`, `cmake` 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](https://cygwin.com/cygwin-ug-net/setup-net.html#setup-packages) the `make`, `git`, `gcc-core`, `gcc-g++`, and `libpng-devel` packages. -Install the **devkitARM** toolchain of [devkitPro](https://devkitpro.org/wiki/Getting_Started) and add its environment variables. For Windows versions without the Linux subsystem, the devkitPro [graphical installer](https://github.com/devkitPro/installer/releases) includes a preconfigured MSYS2 environment, thus the steps below are not required. +To build the games code, the `arm-none-eabi-gcc` compiler is required. +Both a standalone installation and [devkitPro](https://devkitpro.org/wiki/Getting_Started) are supported. +For devkitPro, install the `gba-dev` package. - sudo (dkp-)pacman -S gba-dev - export DEVKITPRO=/opt/devkitpro - echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc - export DEVKITARM=$DEVKITPRO/devkitARM - echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc +If `arm-none-eabi-gcc` is not available through `PATH` use `TOOLCHAIN_PATH=` to indicate its location. +This is not required for devkitPro, the `DEVKITARM` environment variable is used for auto-detection. -Install the pycparser python package: - pip3 install pycparser +Install `python3` and the `pycparser` python package: +`pip3 install pycparser` ## Installation To set up the repository: +```shell +git clone https://github.com/zeldaret/tmc +git clone https://github.com/pret/agbcc - git clone https://github.com/zeldaret/tmc - git clone https://github.com/pret/agbcc +cd ./agbcc +sh build.sh +sh install.sh ../tmc - cd ./agbcc - sh build.sh - sh install.sh ../tmc +cd ../tmc +make tools +``` +To build `tmc.gba`: +```shell +make -j$(nproc) +``` +>**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`. - cd ../tmc - make setup +You can configure the game version built by using the `GAME_VERSION` variable (ie. `make GAME_VERSION=EU`). +Convenience targets for all 5 versions exist (`make usa eu jp demo_usa demo_jp`). +`make all` builds all 5 versions. -To build **tmc.gba**: +If you modify the game you need to do a custom build. +Use `CUSTOM=1` for that (any nonempty value will enable it, so `CUSTOM=0` will NOT disable it). +There is a convenience target `make custom` that does a custom USA build. - make -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`. +The `COMPARE` variable controls the SHA1 verification check. +It is enabled (`1`) for normal builds and disabled (`0`) for custom builds by default. ### Note for Mac users The BSD make that comes with Mac XCode can be buggy, so obtain GNU make and sed using [Homebrew](https://brew.sh): - - brew install make gnu-sed - +```shell +brew install make gnu-sed +``` When compiling agbcc, substitute the `build.sh` line for - - gsed 's/^make/gmake/g' build.sh | sh - +```shell +gsed 's/^make/gmake/g' build.sh | sh +``` Finally, use `gmake` instead of `make` to compile the ROM(s).