From 95a81badb056675129ff6288435f91f4114f48d9 Mon Sep 17 00:00:00 2001 From: ravepossum <145081120+ravepossum@users.noreply.github.com> Date: Mon, 15 Jan 2024 15:07:43 -0500 Subject: [PATCH 1/6] Updates to INSTALL.MD for 1.7.0+ and misc clarifications (#3983) * Updates to install doc for versions >1.7.0 and other clarifications * add section about specifying make agbcc to compile with agbcc --------- Co-authored-by: ravepossum --- INSTALL.md | 318 +++++++++++++++++++++++------------------------------ 1 file changed, 138 insertions(+), 180 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 0498b468ea48..ba621fb9d416 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,6 +1,6 @@ # Instructions -These instructions explain how to set up the tools required to build **pokeemerald**, which assembles the source files into a ROM. +These instructions explain how to set up the tools required to build **pokeemerald Expansion**, which assembles the source files into a ROM (pokeemerald.gba). These instructions come with notes which can be expanded by clicking the "Note..." text. In general, you should not need to open these unless if you get an error or if you need additional clarification. @@ -27,10 +27,10 @@ All of the Windows instructions assume that the default drive is C:\\. If this d **A note of caution**: As Windows 7 is officially unsupported by Microsoft and Windows 8 has very little usage, some maintainers are unwilling to maintain the Windows 7/8 instructions. Thus, these instructions may break in the future with fixes taking longer than fixes to the Windows 10 instructions. ## Windows 10/11 (WSL1) -WSL1 is the preferred terminal to build **pokeemerald**. The following instructions will explain how to install WSL1 (referred to interchangeably as WSL). +WSL1 is the preferred terminal to build **pokeemerald Expansion**. The following instructions will explain how to install WSL1 (referred to interchangeably as WSL). - If WSL (Debian or Ubuntu) is **not installed**, then go to [Installing WSL1](#Installing-WSL1). - Otherwise, if WSL is installed, but it **hasn't previously been set up for another decompilation project**, then go to [Setting up WSL1](#Setting-up-WSL1). -- Otherwise, **open WSL** and go to [Choosing where to store pokeemerald (WSL1)](#Choosing-where-to-store-pokeemerald-WSL1). +- Otherwise, **open WSL** and go to [Choosing where to store pokeemerald Expansion (WSL1)](#Choosing-where-to-store-pokeemerald-expansion-WSL1). ### Installing WSL1 1. Open [Windows Powershell **as Administrator**](https://i.imgur.com/QKmVbP9.png), and run the following command (Right Click or Shift+Insert is paste in the Powershell). @@ -79,7 +79,7 @@ Some tips before proceeding: > Note: If the repository you plan to build has an **[older revision of the INSTALL.md](https://github.com/pret/pokeemerald/blob/571c598/INSTALL.md)**, then follow the [legacy WSL1 instructions](docs/legacy_WSL1_INSTALL.md) from here. -4. Certain packages are required to build pokeemerald. Install these packages by running the following command: +4. Certain packages are required to build pokeemerald Expansion. Install these packages by running the following command: ```bash sudo apt install build-essential binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi git libpng-dev @@ -89,12 +89,39 @@ Some tips before proceeding: > If the above command does not work, try the above command but replacing `apt` with `apt-get`. - This will install GCC v10 on Ubuntu 22.04. pokeemerald-expansion works with GCC v10, but remote repositories and the RHH Team use GCC v13 for stricter error-checking. If you want to upgrade from v10 to v13, also follow the devkitpro install instructions. + This will install GCC v10 on Ubuntu 22.04. pokeemerald Expansion works with GCC v10, but remote repositories and the RHH Team use GCC v13 for stricter error-checking. If you want to upgrade from v10 to v13, also follow the devkitpro install instructions. -### Choosing where to store pokeemerald (WSL1) -WSL has its own file system that's not natively accessible from Windows, but Windows files *are* accessible from WSL. So you're going to want to store pokeemerald within Windows. +### Installing devkitARM on WSL1 + +1. Change directory to somewhere you can download a package, such as **C:\Users\\_\_\Downloads** (the Downloads location for most users). To do so, enter this command, where *\ is your **Windows** username: + + ```bash + cd /mnt/c/Users//Downloads + ``` + +2. Once the directory has been changed, run the following commands to install devkitARM. + + ```bash + sudo apt install wget + wget https://apt.devkitpro.org/install-devkitpro-pacman + chmod +x ./install-devkitpro-pacman + sudo ./install-devkitpro-pacman + sudo dkp-pacman -S gba-dev + ``` + The last command will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. -For example, say you want to store pokeemerald (and agbcc) in **C:\Users\\_\_\Desktop\decomps**. First, ensure that the folder already exists. Then, enter this command to **change directory** to said folder, where *\* is your **Windows** username: +3. Run the following command to set devkitPro related environment variables (alternatively, close and re-open WSL): + + ```bash + source /etc/profile.d/devkit-env.sh + ``` + +devkitARM is now installed. + +### Choosing where to store pokeemerald Expansion (WSL1) +WSL has its own file system that's not natively accessible from Windows, but Windows files *are* accessible from WSL. So you're going to want to store pokeemerald Expansion within Windows. + +For example, say you want to store pokeemerald Expansion in **C:\Users\\_\_\Desktop\decomps**. First, ensure that the folder already exists. Then, enter this command to **change directory** to said folder, where *\* is your **Windows** username: ```bash cd /mnt/c/Users//Desktop/decomps @@ -116,7 +143,7 @@ Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or conti - If devkitARM is **not installed**, then go to [Installing devkitARM](#installing-devkitarm). - If devkitARM is installed, but msys2 **hasn't previously been set up for another decompilation project**, then go to [Setting up msys2](#setting-up-msys2). -- Otherwise, **open msys2** and go to [Choosing where to store pokeemerald (msys2)](#choosing-where-to-store-pokeemerald-msys2). +- Otherwise, **open msys2** and go to [Choosing where to store pokeemerald Expansion (msys2)](#choosing-where-to-store-pokeemerald-expansion-msys2). ### Installing devkitARM 1. Download the devkitPro installer [here](https://github.com/devkitPro/installer/releases). @@ -128,7 +155,7 @@ Note that in msys2, Copy is Ctrl+Insert and Paste is Shift+Insert. 1. Open msys2 at C:\devkitPro\msys2\msys2_shell.bat. -2. Certain packages are required to build pokeemerald. Install these by running the following two commands: +2. Certain packages are required to build pokeemerald Expansion. Install these by running the following two commands: ```bash pacman -Sy msys2-keyring @@ -173,10 +200,10 @@ Note that in msys2, Copy is Ctrl+Insert and Paste is Shift+Insert. cd ``` -### Choosing where to store pokeemerald (msys2) -At this point, you can choose a folder to store pokeemerald into. If you're okay with storing pokeemerald in the user profile folder, then proceed to [Installation](#installation). Otherwise, you'll need to account for where pokeemerald is stored when changing directory to the pokeemerald folder. +### Choosing where to store pokeemerald Expansion (msys2) +At this point, you can choose a folder to store pokeemerald Expansion into. If you're okay with storing pokeemerald Expansion in the user profile folder, then proceed to [Installation](#installation). Otherwise, you'll need to account for where pokeemerald Expansion is stored when changing directory to the pokeemerald-expansion folder. -For example, if you want to store pokeemerald (and agbcc) in **C:\Users\\_\_\Desktop\decomps** (where *\* is your **Windows** username), enter this command: +For example, if you want to store pokeemerald Expansion in **C:\Users\\_\_\Desktop\decomps** (where *\* is your **Windows** username), enter this command: ```bash cd Desktop/decomps @@ -192,7 +219,7 @@ Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or conti 2. - If Cygwin is **not installed**, or does not have all of the required packages installed, then go to [Installing Cygwin](#installing-cygwin). - If Cygwin is installed, but **is not configured to work with devkitARM**, then go to [Configuring devkitARM for Cygwin](#configuring-devkitarm-for-cygwin). - - Otherwise, **open Cygwin** and go to [Choosing where to store pokeemerald (Cygwin)](#choosing-where-to-store-pokeemerald-cygwin) + - Otherwise, **open Cygwin** and go to [Choosing where to store pokeemerald Expansion (Cygwin)](#choosing-where-to-store-pokeemerald-expansion-cygwin) ### Installing Cygwin 1. Download [Cygwin](https://cygwin.com/install.html): setup-x86_64.exe for 64-bit Windows, setup-x86.exe for 32-bit. @@ -235,15 +262,15 @@ Note that in Cygwin, Copy is Ctrl+Insert and Paste is Shift+Insert. > Replace the drive letter c with the actual drive letter if it is not c. -### Choosing where to store pokeemerald (Cygwin) +### Choosing where to store pokeemerald Expansion (Cygwin) -Cygwin has its own file system that's within Windows, at **C:\cygwin64\home\\_\_**. If you don't want to store pokeemerald there, you'll need to account for where pokeemerald is stored when **changing directory** to the pokeemerald folder. +Cygwin has its own file system that's within Windows, at **C:\cygwin64\home\\_\_**. If you don't want to store pokeemerald Expansion there, you'll need to account for where ppokeemerald Expansion is stored when **changing directory** to the pokeemerald-expansion folder. -For example, if you want to store pokeemerald (and agbcc) in **C:\Users\\_\_\Desktop\decomps**, enter this command, where *\* is your **Windows** username: +For example, if you want to store pokeemerald Expansion in **C:\Users\\_\_\Desktop\decomps**, enter this command, where *\* is your **Windows** username: ```bash cd c:/Users//Desktop/decomps ``` -Note that the directory **must exist** in Windows. If you want to store pokeemerald in a dedicated folder that doesn't exist (e.g. the example provided above), then create the folder (e.g. using Windows Explorer) before executing the `cd` command. +Note that the directory **must exist** in Windows. If you want to store pokeemerald Expansion in a dedicated folder that doesn't exist (e.g. the example provided above), then create the folder (e.g. using Windows Explorer) before executing the `cd` command.
Notes... @@ -263,7 +290,7 @@ If this works, then proceed to [Installation](#installation). Otherwise, ask for 2. - If libpng is **not installed**, then go to [Installing libpng (macOS)](#installing-libpng-macos). - If devkitARM is **not installed**, then go to [Installing devkitARM (macOS)](#installing-devkitarm-macos). - - Otherwise, **open the Terminal** and go to [Choosing where to store pokeemerald (macOS)](#choosing-where-to-store-pokeemerald-macos) + - Otherwise, **open the Terminal** and go to [Choosing where to store pokeemerald Expansion (macOS)](#choosing-where-to-store-pokeemerald-expansion-macos) ### Installing libpng (macOS)
@@ -281,7 +308,7 @@ If this works, then proceed to [Installation](#installation). Otherwise, ask for ``` libpng is now installed. - Continue to [Installing devkitARM (macOS)](#installing-devkitarm-macos) if **devkitARM is not installed**, otherwise, go to [Choosing where to store pokeemerald (macOS)](#choosing-where-to-store-pokeemerald-macos). + Continue to [Installing devkitARM (macOS)](#installing-devkitarm-macos) if **devkitARM is not installed**, otherwise, go to [Choosing where to store pokeemerald Expansion (macOS)](#choosing-where-to-store-pokeemerald-expansion-macos). ### Installing devkitARM (macOS) 1. Download the `devkitpro-pacman-installer.pkg` package from [here](https://github.com/devkitPro/pacman/releases). @@ -307,14 +334,14 @@ If this works, then proceed to [Installation](#installation). Otherwise, ask for echo "if [ -f ~/.bashrc ]; then . ~/.bashrc; fi" >> ~/.bash_profile ``` -### Choosing where to store pokeemerald (macOS) -At this point, you can choose a folder to store pokeemerald into. If you're okay with storing pokeemerald in the user folder, then proceed to [Installation](#installation). Otherwise, you'll need to account for where pokeemerald is stored when changing directory to the pokeemerald folder. +### Choosing where to store pokeemerald Expansion (macOS) +At this point, you can choose a folder to store pokeemerald Expansion into. If you're okay with storing pokeemerald Expansion in the user folder, then proceed to [Installation](#installation). Otherwise, you'll need to account for where pokeemerald Expansion is stored when changing directory to the pokeemerald-expansion folder. -For example, if you want to store pokeemerald (and agbcc) in **~/Desktop/decomps**, enter this command to **change directory** to the desired folder: +For example, if you want to store pokeemerald Expansion in **~/Desktop/decomps**, enter this command to **change directory** to the desired folder: ```bash cd Desktop/decomps ``` -Note that the directory **must exist** in the folder system. If you want to store pokeemerald in a dedicated folder that doesn't exist (e.g. the example provided above), then create the folder (e.g. using Finder) before executing the `cd` command. +Note that the directory **must exist** in the folder system. If you want to store pokeemerald Expansion in a dedicated folder that doesn't exist (e.g. the example provided above), then create the folder (e.g. using Finder) before executing the `cd` command.
Note... @@ -332,7 +359,7 @@ Run the following command to install the necessary packages: ```bash sudo apt install build-essential binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi git libpng-dev ``` -Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to-store-pokeemerald-linux). +Then proceed to [Choosing where to store pokeemerald Expansion (Linux)](#choosing-where-to-store-pokeemerald-expansion-linux).
Note for legacy repos... @@ -341,19 +368,51 @@ Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to > [install devkitARM on Debian/Ubuntu-based distributions](#installing-devkitarm-on-debianubuntu-based-distributions).
+### Installing devkitARM on Debian/Ubuntu-based distributions + +1. Change directory to somewhere you can download a packages, like a Downloads folder. Then, run the following commands to install devkitARM: + + ```bash + wget https://apt.devkitpro.org/install-devkitpro-pacman + chmod +x ./install-devkitpro-pacman + sudo ./install-devkitpro-pacman + sudo dkp-pacman -S gba-dev + ``` + The last command will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. + +4. Run the following command to set devkitPro related environment variables (alternatively, close and re-open the Terminal): + + ```bash + source /etc/profile.d/devkit-env.sh + ``` + +devkitARM is now installed. + ### Arch Linux Run this command as root to install the necessary packages: ```bash pacman -S base-devel arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-newlib git libpng ``` -Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to-store-pokeemerald-linux). -
- Note for legacy repos... -> If the repository you plan to build has an **[older revision of the INSTALL.md](https://github.com/pret/pokeemerald/blob/571c598/INSTALL.md)**, -> then you will have to install devkitARM. Install all the above packages except for the arm-none-eabi packages, and follow the instructions to -> [install devkitARM on Arch Linux](#installing-devkitarm-on-arch-linux). -
+### Installing devkitARM on Arch Linux + +1. Follow [devkitPro's instructions](https://devkitpro.org/wiki/devkitPro_pacman#Customising_Existing_Pacman_Install) to configure `pacman` to download devkitPro packages. +2. Install `gba-dev`: run the following command as root. + + ```console + pacman -S gba-dev + ``` + This will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. + +3. Run the following command to set devkitPro related environment variables (alternatively, close and re-open the Terminal): + + ```bash + source /etc/profile.d/devkit-env.sh + ``` + +devkitARM is now installed. + +Then proceed to [Choosing where to store pokeemerald Expansion (Linux)](#choosing-where-to-store-pokeemerald-expansion-linux). ### Other distributions _(Specific instructions for other distributions would be greatly appreciated!)_ @@ -375,8 +434,8 @@ _(Specific instructions for other distributions would be greatly appreciated!)_ The last command will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. -### Choosing where to store pokeemerald (Linux) -At this point, you can choose a folder to store pokeemerald (and agbcc) into. If so, you'll have to account for the modified folder path when changing directory to the pokeemerald folder. +### Choosing where to store pokeemerald Expansion (Linux) +At this point, you can choose a folder to store pokeemerald Expansion into. If so, you'll have to account for the modified folder path when changing directory to the pokeemerald-expansion folder. If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)). @@ -385,12 +444,12 @@ If this works, then proceed to [Installation](#installation). Otherwise, ask for
Note for Windows users... -> Consider adding an exception for the `pokeemerald` and/or `decomps` folder in Windows Security using +> Consider adding an exception for the `pokeemerald-expansion` and/or `decomps` folder in Windows Security using > [these instructions](https://support.microsoft.com/help/4028485). This prevents Microsoft Defender from > scanning them which might improve performance while building.
-1. If pokeemerald is not already downloaded (some users may prefer to download pokeemerald via a git client like GitHub Desktop), run: +1. If pokeemerald Expansion is not already downloaded (some users may prefer to download pokeemerald Expansion via a git client like GitHub Desktop), run: ```bash git clone https://github.com/rh-hideout/pokeemerald-expansion @@ -404,57 +463,18 @@ If this works, then proceed to [Installation](#installation). Otherwise, ask for > cd > sudo umount /mnt/c > sudo mount -t drvfs C: /mnt/c -o metadata,noatime - > cd + > cd > ``` - > Where *\* is the path of the folder [where you chose to store pokeemerald](#Choosing-where-to-store-pokeemerald-WSL1). Then run the `git clone` command again. -
- -
- Depreciated; installing agbcc is optional since 1.7.0. -2. Install agbcc into pokeemerald. The commands to run depend on certain conditions. **You should only follow one of the listed instructions**: -- If agbcc has **not been built before** in the folder where you chose to store pokeemerald, run the following commands to build and install it into pokeemerald: - - ```bash - git clone https://github.com/pret/agbcc - cd agbcc - ./build.sh - ./install.sh ../pokeemerald - ``` - -- **Otherwise**, if agbcc has been built before (e.g. if the git clone above fails), but was **last built on a different terminal** than the one currently used (only relevant to Windows, e.g. switching from msys2 to WSL1), then run the following commands to build and install it into pokeemerald: - - ```bash - cd agbcc - git clean -fX - ./build.sh - ./install.sh ../pokeemerald - ``` - -- **Otherwise**, if agbcc has been built before on the same terminal, run the following commands to install agbcc into pokeemerald: - - ```bash - cd agbcc - ./install.sh ../pokeemerald - ``` - -
- Note... - - > If building agbcc or pokeemerald results in an error, try deleting the agbcc folder and re-installing agbcc as if it has not been built before. + > Where *\* is the path of the folder [where you chose to store pokeemerald Expansion](#Choosing-where-to-store-pokeemerald-expansion-WSL1). Then run the `git clone` command again.
+ +Now you're ready to build pokeemerald Expansion. -3. Once agbcc is installed, change directory back to the base directory where pokeemerald and agbcc are stored: +## Build pokeemerald Expansion - ```bash - cd .. - ``` -
- -Now you're ready to [build **pokeemerald**](#build-pokeemerald) -## Build pokeemerald -If you aren't in the pokeemerald directory already, then **change directory** to the pokeemerald folder: +If you aren't in the pokeemerald-expansion directory already, then **change directory** to the pokeemerald-expansion folder: ```bash -cd pokeemerald +cd pokeemerald-expansion ``` To build **pokeemerald.gba** (Note: to speed up builds, see [Parallel builds](#parallel-builds)): ```bash @@ -484,138 +504,76 @@ Replace `` with the number that the `nproc` command returned. `nproc` is not available on macOS. The alternative is `sysctl -n hw.ncpu` ([relevant Stack Overflow thread](https://stackoverflow.com/questions/1715580)). -## Compare ROM to the original +### Other toolchains -For contributing, or if you'd simply like to verify that your ROM is identical to the original game, run: -```bash -make compare -``` -If it matches, you will see the following at the end of the output: +To build using a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain, which must contain the subdirectory `bin`. ```bash -pokeemerald.gba: OK +make TOOLCHAIN="/path/to/toolchain/here" ``` -If there are any changes from the original game, you will instead see: +The following is an example: ```bash -pokeemerald.gba: FAILED -shasum: WARNING: 1 computed checksum did NOT match +make TOOLCHAIN="/usr/local/arm-none-eabi" ``` +To compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present. -## devkitARM's C compiler +### Building with debug info -This project supports the `arm-none-eabi-gcc` compiler included with devkitARM. If devkitARM (a.k.a. gba-dev) has already been installed as part of the platform-specific instructions, simply run: +To build **pokeemerald.elf** with debug symbols under a modern toolchain: ```bash -make modern +make DINFO=1 ``` -Otherwise, follow the instructions below to install devkitARM. -### Installing devkitARM on WSL1 +Note that this is not necessary for a non-modern (agbcc) build since those are built with debug symbols by default. -1. `gdebi-core` must be installed beforehand in order to install devkitPro pacman (which facilitates the installation of devkitARM). Install this with the following command: +### agbcc + +
+ Deprecated; installing agbcc is optional since 1.7.0. +2. Install agbcc into pokeemerald-expansion. The commands to run depend on certain conditions. **You should only follow one of the listed instructions**: +- If agbcc has **not been built before** in the folder where you chose to store pokeemerald Expansion, run the following commands to build and install it into pokeemerald-expansion: ```bash - sudo apt install gdebi-core + git clone https://github.com/pret/agbcc + cd agbcc + ./build.sh + ./install.sh ../pokeemerald-expansion ``` -
- Note... - > If the above command does not work, try the above command but replacing `apt` with `apt-get`. -
- -2. Once `gdebi-core` is done installing, download the devkitPro pacman package [here](https://github.com/devkitPro/pacman/releases). The file to download is `devkitpro-pacman.amd64.deb`. -3. Change directory to where the package was downloaded. For example, if the package file was saved to **C:\Users\\_\_\Downloads** (the Downloads location for most users), enter this command, where *\ is your **Windows** username: +- **Otherwise**, if agbcc has been built before (e.g. if the git clone above fails), but was **last built on a different terminal** than the one currently used (only relevant to Windows, e.g. switching from msys2 to WSL1), then run the following commands to build and install it into pokeemerald-expansion: ```bash - cd /mnt/c/Users//Downloads + cd agbcc + git clean -fX + ./build.sh + ./install.sh ../pokeemerald-expansion ``` -4. Once the directory has been changed to the folder containing the devkitPro pacman package, run the following commands to install devkitARM. +- **Otherwise**, if agbcc has been built before on the same terminal, run the following commands to install agbcc into pokeemerald-expansion: ```bash - sudo gdebi devkitpro-pacman.amd64.deb - sudo dkp-pacman -Sy - sudo dkp-pacman -S gba-dev + cd agbcc + ./install.sh ../pokeemerald-expansion ``` - The last command will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation.
Note... - > Note: `devkitpro-pacman.amd64.deb` is the expected filename of the devkitPro package downloaded (for the first command). If the downloaded package filename differs, then use that filename instead. + > If building agbcc or pokeemerald results in an error, try deleting the agbcc folder and re-installing agbcc as if it has not been built before.
-5. Run the following command to set devkitPro related environment variables (alternatively, close and re-open WSL): - - ```bash - source /etc/profile.d/devkit-env.sh - ``` - -devkitARM is now installed. - -### Installing devkitARM on Debian/Ubuntu-based distributions -1. If `gdebi-core` is not installed, run the following command: - - ```bash - sudo apt install gdebi-core - ``` -2. Download the devkitPro pacman package [here](https://github.com/devkitPro/pacman/releases). The file to download is `devkitpro-pacman.amd64.deb`. -3. Change directory to where the package was downloaded. Then, run the following commands to install devkitARM: - - ```bash - sudo gdebi devkitpro-pacman.amd64.deb - sudo dkp-pacman -Sy - sudo dkp-pacman -S gba-dev - ``` - The last command will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. - - > Note: `devkitpro-pacman.amd64.deb` is the expected filename of the devkitPro package downloaded (for the first command). If the downloaded package filename differs, then use that filename instead. - -4. Run the following command to set devkitPro related environment variables (alternatively, close and re-open the Terminal): - - ```bash - source /etc/profile.d/devkit-env.sh - ``` - -devkitARM is now installed. - -### Installing devkitARM on Arch Linux - -1. Follow [devkitPro's instructions](https://devkitpro.org/wiki/devkitPro_pacman#Customising_Existing_Pacman_Install) to configure `pacman` to download devkitPro packages. -2. Install `gba-dev`: run the following command as root. - - ```console - pacman -S gba-dev - ``` - This will ask for the selection of packages to install. Just press Enter to install all of them, followed by entering Y to proceed with the installation. - -3. Run the following command to set devkitPro related environment variables (alternatively, close and re-open the Terminal): +3. Once agbcc is installed, change directory back to the base directory where pokeemerald-expansion and agbcc are stored: ```bash - source /etc/profile.d/devkit-env.sh + cd .. ``` + +4. To compile with agbcc: -devkitARM is now installed. - -### Other toolchains - -To build using a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain, which must contain the subdirectory `bin`. -```bash -make TOOLCHAIN="/path/to/toolchain/here" -``` -The following is an example: -```bash -make TOOLCHAIN="/usr/local/arm-none-eabi" -``` -To compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present. - -### Building with debug info under a modern toolchain + ```make agbcc``` -To build **pokeemerald.elf** with debug symbols under a modern toolchain: -```bash -make modern DINFO=1 -``` -Note that this is not necessary for a non-modern build since those are built with debug symbols by default. +
# Useful additional tools * [porymap](https://github.com/huderlem/porymap) for viewing and editing maps * [poryscript](https://github.com/huderlem/poryscript) for scripting ([VS Code extension](https://marketplace.visualstudio.com/items?itemName=karathan.poryscript)) -* [Tilemap Studio](https://github.com/Rangi42/tilemap-studio) for viewing and editing tilemaps +* [Tilemap Studio](https://github.com/Rangi42/tilemap-studio) for viewing and editing tilemaps \ No newline at end of file From f6c08c08b6cbd0640551a4cc8825ec6e86daaa77 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Mon, 15 Jan 2024 21:55:35 +0100 Subject: [PATCH 2/6] Fix item usage in double battles (#3977) * Fix item usage in double battles * fix failing tests --------- Co-authored-by: Eduardo Quezada D'Ottone --- data/battle_scripts_2.s | 20 +++++++++++++------- include/battle_scripts.h | 1 + include/pokemon.h | 2 +- src/battle_script_commands.c | 30 ++++++++++++++++++------------ src/pokemon.c | 18 +++++++++--------- 5 files changed, 42 insertions(+), 29 deletions(-) diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 46d4d195ea61..78e077fbd524 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -49,11 +49,17 @@ BattleScript_UseItemMessage: BattleScript_ItemRestoreHP:: call BattleScript_UseItemMessage itemrestorehp - jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_ItemRestoreHP_SendOutRevivedBattler bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - healthbarupdate BS_ATTACKER - datahpupdate BS_ATTACKER + healthbarupdate BS_SCRIPTING + datahpupdate BS_SCRIPTING + printstring STRINGID_ITEMRESTOREDSPECIESHEALTH + waitmessage B_WAIT_TIME_LONG + end + +BattleScript_ItemRestoreHP_Party:: + jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_ItemRestoreHP_SendOutRevivedBattler + bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT printstring STRINGID_ITEMRESTOREDSPECIESHEALTH waitmessage B_WAIT_TIME_LONG end @@ -67,7 +73,7 @@ BattleScript_ItemRestoreHP_SendOutRevivedBattler: BattleScript_ItemCureStatus:: call BattleScript_UseItemMessage itemcurestatus - updatestatusicon BS_ATTACKER + updatestatusicon BS_SCRIPTING printstring STRINGID_ITEMCUREDSPECIESSTATUS waitmessage B_WAIT_TIME_LONG end @@ -80,9 +86,9 @@ BattleScript_ItemHealAndCureStatus:: waitmessage B_WAIT_TIME_LONG bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE - healthbarupdate BS_ATTACKER - datahpupdate BS_ATTACKER - updatestatusicon BS_ATTACKER + healthbarupdate BS_SCRIPTING + datahpupdate BS_SCRIPTING + updatestatusicon BS_SCRIPTING printstring STRINGID_ITEMRESTOREDSPECIESHEALTH waitmessage B_WAIT_TIME_LONG end diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 4790998cc49d..c2d7e74e48a3 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -490,6 +490,7 @@ extern const u8 BattleScript_TheRainbowDisappeared[]; extern const u8 BattleScript_HurtByTheSeaOfFire[]; extern const u8 BattleScript_TheSeaOfFireDisappeared[]; extern const u8 BattleScript_TheSwampDisappeared[]; +extern const u8 BattleScript_ItemRestoreHP_Party[]; // zmoves extern const u8 BattleScript_ZMoveActivateDamaging[]; diff --git a/include/pokemon.h b/include/pokemon.h index e86d710b37dd..5071a77a942b 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -627,7 +627,7 @@ void PokemonToBattleMon(struct Pokemon *src, struct BattlePokemon *dst); void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex); bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex); bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e); -bool8 HealStatusConditions(struct Pokemon *mon, u32 battlePartyId, u32 healMask, u8 battlerId); +bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battlerId); u8 GetItemEffectParamOffset(u32 battler, u16 itemId, u8 effectByte, u8 effectBit); u8 *UseStatIncreaseItem(u16 itemId); u8 GetNature(struct Pokemon *mon); diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index a509a4c8cbf7..5f946a258896 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -14985,7 +14985,7 @@ static void Cmd_handleballthrow(void) if (gLastUsedItem == ITEM_HEAL_BALL) { MonRestorePP(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]); - HealStatusConditions(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], gBattlerPartyIndexes[gBattlerTarget], STATUS1_ANY, gBattlerTarget); + HealStatusConditions(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], STATUS1_ANY, gBattlerTarget); gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP; SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_HP, &gBattleMons[gBattlerTarget].hp); } @@ -15039,7 +15039,7 @@ static void Cmd_handleballthrow(void) if (gLastUsedItem == ITEM_HEAL_BALL) { MonRestorePP(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]); - HealStatusConditions(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], gBattlerPartyIndexes[gBattlerTarget], STATUS1_ANY, gBattlerTarget); + HealStatusConditions(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], STATUS1_ANY, gBattlerTarget); gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP; SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_HP, &gBattleMons[gBattlerTarget].hp); } @@ -15866,10 +15866,14 @@ void BS_ItemRestoreHP(void) if (hp + healAmount > maxHP) healAmount = maxHP - hp; + gBattleScripting.battler = battler; + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, GetMonData(&party[gBattleStruct->itemPartyIndex[gBattlerAttacker]], MON_DATA_SPECIES)); + // Heal is applied as move damage if battler is active. if (battler != MAX_BATTLERS_COUNT && hp != 0) { gBattleMoveDamage = -healAmount; + gBattlescriptCurrInstr = cmd->nextInstr; } else { @@ -15880,21 +15884,18 @@ void BS_ItemRestoreHP(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && battler != MAX_BATTLERS_COUNT) { gAbsentBattlerFlags &= ~gBitTable[battler]; - gBattleScripting.battler = battler; gBattleCommunication[MULTIUSE_STATE] = TRUE; } + gBattlescriptCurrInstr = BattleScript_ItemRestoreHP_Party; } - PREPARE_SPECIES_BUFFER(gBattleTextBuff1, GetMonData(&party[gBattleStruct->itemPartyIndex[gBattlerAttacker]], MON_DATA_SPECIES)); - gBattlescriptCurrInstr = cmd->nextInstr; } void BS_ItemCureStatus(void) { NATIVE_ARGS(); - struct Pokemon *party = GetBattlerParty(gBattlerAttacker); - - // Heal Status1 conditions. - HealStatusConditions(&party[gBattleStruct->itemPartyIndex[gBattlerAttacker]], gBattleStruct->itemPartyIndex[gBattlerAttacker], GetItemStatus1Mask(gLastUsedItem), gBattlerAttacker); + u32 battler = gBattlerAttacker; + u32 side = GetBattlerSide(gBattlerAttacker); + struct Pokemon *party = GetSideParty(side); // Heal Status2 conditions if battler is active. if (gBattleStruct->itemPartyIndex[gBattlerAttacker] == gBattlerPartyIndexes[gBattlerAttacker]) @@ -15905,14 +15906,18 @@ void BS_ItemCureStatus(void) && gBattleStruct->itemPartyIndex[gBattlerAttacker] == gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerAttacker)]) { gBattleMons[gBattlerAttacker].status2 &= ~GetItemStatus2Mask(gLastUsedItem); - gBattlerTarget = BATTLE_PARTNER(gBattlerAttacker); + battler = BATTLE_PARTNER(gBattlerAttacker); } + // Heal Status1 conditions. + HealStatusConditions(&party[gBattleStruct->itemPartyIndex[gBattlerAttacker]], GetItemStatus1Mask(gLastUsedItem), battler); + if (GetItemStatus1Mask(gLastUsedItem) & STATUS1_SLEEP) - gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_NIGHTMARE; + gBattleMons[battler].status2 &= ~STATUS2_NIGHTMARE; if (GetItemStatus2Mask(gLastUsedItem) & STATUS2_CONFUSION) - gStatuses4[gBattlerAttacker] &= ~STATUS4_INFINITE_CONFUSION; + gStatuses4[battler] &= ~STATUS4_INFINITE_CONFUSION; + gBattleScripting.battler = battler; PREPARE_SPECIES_BUFFER(gBattleTextBuff1, GetMonData(&party[gBattleStruct->itemPartyIndex[gBattlerAttacker]], MON_DATA_SPECIES)); gBattlescriptCurrInstr = cmd->nextInstr; } @@ -15975,6 +15980,7 @@ void BS_ItemRestorePP(void) } } } + gBattleScripting.battler = battler; PREPARE_SPECIES_BUFFER(gBattleTextBuff1, GetMonData(mon, MON_DATA_SPECIES)); gBattlescriptCurrInstr = cmd->nextInstr; } diff --git a/src/pokemon.c b/src/pokemon.c index f46a443389eb..050e5e14d8af 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -858,7 +858,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv); SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv); } - else if (P_LEGENDARY_PERFECT_IVS >= GEN_6 + else if (P_LEGENDARY_PERFECT_IVS >= GEN_6 && (gSpeciesInfo[species].isLegendary || gSpeciesInfo[species].isMythical || gSpeciesInfo[species].isUltraBeast)) @@ -1824,11 +1824,11 @@ void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition) gMultiuseSpriteTemplate.paletteTag = speciesTag; if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) gMultiuseSpriteTemplate.anims = gAnims_MonPic; - else + else { if (speciesTag > SPECIES_SHINY_TAG) speciesTag = speciesTag - SPECIES_SHINY_TAG; - + speciesTag = SanitizeSpeciesId(speciesTag); if (gSpeciesInfo[speciesTag].frontAnimFrames != NULL) gMultiuseSpriteTemplate.anims = gSpeciesInfo[speciesTag].frontAnimFrames; @@ -3206,15 +3206,15 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov } // Cure status - if ((itemEffect[i] & ITEM3_SLEEP) && HealStatusConditions(mon, partyIndex, STATUS1_SLEEP, battlerId) == 0) + if ((itemEffect[i] & ITEM3_SLEEP) && HealStatusConditions(mon, STATUS1_SLEEP, battlerId) == 0) retVal = FALSE; - if ((itemEffect[i] & ITEM3_POISON) && HealStatusConditions(mon, partyIndex, STATUS1_PSN_ANY | STATUS1_TOXIC_COUNTER, battlerId) == 0) + if ((itemEffect[i] & ITEM3_POISON) && HealStatusConditions(mon, STATUS1_PSN_ANY | STATUS1_TOXIC_COUNTER, battlerId) == 0) retVal = FALSE; - if ((itemEffect[i] & ITEM3_BURN) && HealStatusConditions(mon, partyIndex, STATUS1_BURN, battlerId) == 0) + if ((itemEffect[i] & ITEM3_BURN) && HealStatusConditions(mon, STATUS1_BURN, battlerId) == 0) retVal = FALSE; - if ((itemEffect[i] & ITEM3_FREEZE) && HealStatusConditions(mon, partyIndex, STATUS1_FREEZE | STATUS1_FROSTBITE, battlerId) == 0) + if ((itemEffect[i] & ITEM3_FREEZE) && HealStatusConditions(mon, STATUS1_FREEZE | STATUS1_FROSTBITE, battlerId) == 0) retVal = FALSE; - if ((itemEffect[i] & ITEM3_PARALYSIS) && HealStatusConditions(mon, partyIndex, STATUS1_PARALYSIS, battlerId) == 0) + if ((itemEffect[i] & ITEM3_PARALYSIS) && HealStatusConditions(mon, STATUS1_PARALYSIS, battlerId) == 0) retVal = FALSE; break; @@ -3550,7 +3550,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov return retVal; } -bool8 HealStatusConditions(struct Pokemon *mon, u32 battlePartyId, u32 healMask, u8 battlerId) +bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battlerId) { u32 status = GetMonData(mon, MON_DATA_STATUS, 0); From 1182368330da53b55796fd2c7717a6138d071796 Mon Sep 17 00:00:00 2001 From: Bassoonian Date: Mon, 15 Jan 2024 22:07:27 +0100 Subject: [PATCH 3/6] Fix battle frontier random loss (#3990) Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com> --- src/battle_script_commands.c | 57 +++++++----------------------------- 1 file changed, 11 insertions(+), 46 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 5f946a258896..e9fd422e20a6 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4363,50 +4363,22 @@ static void Cmd_getexp(void) } } -static bool32 NoAliveMonsForPlayerAndPartner(void) -{ - u32 i; - u32 HP_count = 0; - - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && (gPartnerTrainerId == TRAINER_STEVEN_PARTNER || gPartnerTrainerId >= TRAINER_CUSTOM_PARTNER)) - { - for (i = 0; i < PARTY_SIZE; i++) - { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) - && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->arenaLostPlayerMons & gBitTable[i]))) - { - HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); - } - } - } - - return (HP_count == 0); -} - bool32 NoAliveMonsForPlayer(void) { u32 i; + u32 maxI = PARTY_SIZE; u32 HP_count = 0; + if (B_MULTI_BATTLE_WHITEOUT < GEN_4 && gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_INGAME_PARTNER)) + maxI = MULTI_PARTY_SIZE; + // Get total HP for the player's party to determine if the player has lost - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && (gPartnerTrainerId == TRAINER_STEVEN_PARTNER || gPartnerTrainerId >= TRAINER_CUSTOM_PARTNER)) + for (i = 0; i < maxI; i++) { - // In multi battle with Steven, skip his Pokémon - for (i = 0; i < MULTI_PARTY_SIZE; i++) + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) + && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->arenaLostPlayerMons & gBitTable[i]))) { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) - HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); - } - } - else - { - for (i = 0; i < PARTY_SIZE; i++) - { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) - && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->arenaLostPlayerMons & gBitTable[i]))) - { - HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); - } + HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); } } @@ -4446,16 +4418,9 @@ static void Cmd_checkteamslost(void) if (gBattleControllerExecFlags) return; - if (B_MULTI_BATTLE_WHITEOUT >= GEN_4 && gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_INGAME_PARTNER)) - { - if (NoAliveMonsForPlayerAndPartner()) - gBattleOutcome |= B_OUTCOME_LOST; - } - else - { - if (NoAliveMonsForPlayer()) - gBattleOutcome |= B_OUTCOME_LOST; - } + if (NoAliveMonsForPlayer()) + gBattleOutcome |= B_OUTCOME_LOST; + if (NoAliveMonsForOpponent()) gBattleOutcome |= B_OUTCOME_WON; From af2762157931026cd7b1e984a60b59121212da03 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Wed, 17 Jan 2024 13:44:15 +0100 Subject: [PATCH 4/6] Fixes effect field on Dragon Darts (#4014) --- src/data/battle_moves.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index d33469a9fa55..005415a956bb 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -12153,7 +12153,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_DRAGON_DARTS] = { - .effect = EFFECT_MULTI_HIT, //TODO + .effect = EFFECT_HIT, // TODO: EFFECT_DRAGON_DARTS .power = 50, .type = TYPE_DRAGON, .accuracy = 100, From 3636ff6d6951126c949d4f51679576657ddab374 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Wed, 17 Jan 2024 11:51:00 -0300 Subject: [PATCH 5/6] Version 1.7.2 (#4013) * Version 1.7.2 * I got one more in me, couch --- .../ISSUE_TEMPLATE/01_battle_engine_bugs.yaml | 8 +- .../ISSUE_TEMPLATE/02_battle_ai_issues.yaml | 8 +- .github/ISSUE_TEMPLATE/04_other_errors.yaml | 8 +- CHANGELOG.md | 2 + README.md | 4 +- docs/changelogs/1.7.2.md | 103 ++++++++++++++++++ docs/changelogs/template.md | 93 ++++++++++++++++ include/constants/expansion.h | 4 +- 8 files changed, 217 insertions(+), 13 deletions(-) create mode 100644 docs/changelogs/1.7.2.md create mode 100644 docs/changelogs/template.md diff --git a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml index bc9b624f1d43..44cc8c2891cb 100644 --- a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml +++ b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml @@ -23,8 +23,10 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.7.1 (Default) + - 1.7.2 (Latest release) + - master (default when pulling, unreleased bugfixes) - upcoming (Edge) + - 1.7.1 - 1.7.0 - 1.6.2 - 1.6.1 @@ -35,8 +37,8 @@ body: - type: input id: upcomingversion attributes: - label: Upcoming Version - description: If you're using the upcoming branch, please specify what was the commit hash you pulled from. + label: Upcoming/master Version + description: If you're using the upcoming or master branches directly, please specify what was the commit hash you pulled from. validations: required: false - type: input diff --git a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml index 512a433eff48..3fa2d2dfd575 100644 --- a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml +++ b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml @@ -23,8 +23,10 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.7.1 (Default) + - 1.7.2 (Latest release) + - master (default when pulling, unreleased bugfixes) - upcoming (Edge) + - 1.7.1 - 1.7.0 - 1.6.2 - 1.6.1 @@ -35,8 +37,8 @@ body: - type: input id: upcomingversion attributes: - label: Upcoming Version - description: If you're using the upcoming branch, please specify what was the commit hash you pulled from. + label: Upcoming/master Version + description: If you're using the upcoming or master branches directly, please specify what was the commit hash you pulled from. validations: required: false - type: input diff --git a/.github/ISSUE_TEMPLATE/04_other_errors.yaml b/.github/ISSUE_TEMPLATE/04_other_errors.yaml index 77d9a217de08..41d5c30eff96 100644 --- a/.github/ISSUE_TEMPLATE/04_other_errors.yaml +++ b/.github/ISSUE_TEMPLATE/04_other_errors.yaml @@ -23,8 +23,10 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.7.1 (Default) + - 1.7.2 (Latest release) + - master (default when pulling, unreleased bugfixes) - upcoming (Edge) + - 1.7.1 - 1.7.0 - 1.6.2 - 1.6.1 @@ -35,8 +37,8 @@ body: - type: input id: upcomingversion attributes: - label: Upcoming Version - description: If you're using the upcoming branch, please specify what was the commit hash you pulled from. + label: Upcoming/master Version + description: If you're using the upcoming or master branches directly, please specify what was the commit hash you pulled from. validations: required: false - type: input diff --git a/CHANGELOG.md b/CHANGELOG.md index c18fb7de37e4..7fba967c8a49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Pokeemerald-Expansion Changelogs +## [Version 1.7.2](docs/changelogs/1.7.2.md) - Bugfix Release + ## [Version 1.7.1](docs/changelogs/1.7.1.md) - Bugfix Release ## [Version 1.7.0](docs/changelogs/1.7.0.md) - Feature Release diff --git a/README.md b/README.md index 6e3f2e1d333e..53dc2ab6ed32 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ pokeemerald-expansion is a decomp hack base project based off pret's [pokeemeral If you use pokeemerald-expansion in your hack, please add RHH (Rom Hacking Hideout) to your credits list. Optionally, you can list the version used, so it can help players know what features to expect. You can phrase it as the following: ``` -Based off RHH's pokeemerald-expansion v1.7.1 https://github.com/rh-hideout/pokeemerald-expansion/ +Based off RHH's pokeemerald-expansion v1.7.2 https://github.com/rh-hideout/pokeemerald-expansion/ ``` ## What features are included? @@ -166,7 +166,7 @@ With this, you'll get the latest version of pokeemerald-expansion, plus a couple ## **How do I update my version of pokeemerald-expansion?** - If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`. -- Once you have your remote set up, run the command `git pull RHH expansion/1.7.1`. +- Once you have your remote set up, run the command `git pull RHH expansion/1.7.2`. ### Please consider crediting the entire [list of contributors](https://github.com/rh-hideout/pokeemerald-expansion/wiki/Credits) in your project, as they have all worked hard to develop this project :) diff --git a/docs/changelogs/1.7.2.md b/docs/changelogs/1.7.2.md new file mode 100644 index 000000000000..8fc0d60565af --- /dev/null +++ b/docs/changelogs/1.7.2.md @@ -0,0 +1,103 @@ +# Template + +```md +## How to update +- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`. +- Once you have your remote set up, run the command `git pull RHH expansion/1.7.2`. +``` + +## 🧬 General 🧬 +### Changed +* Pokédex Ratings now dynamically adapt to the size of the regional dex, instead of being harcoded at set intervals of 10 up to 200 by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3900 + * Mythical Pokémon are skipped from the rating unless they have the `dexForceRequired` flag by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3937 +* Updates to INSTALL.MD for 1.7.0+ and misc clarifications by @ravepossum in https://github.com/rh-hideout/pokeemerald-expansion/pull/3983 +### Fixed +* Fixed HGSS Pokédex showing incorrect preevolutions by @kaisermg5 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3894 +* Fixed typo in HGSS Pokédex by @Ninjdai1 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3958 +* Fixed Hall of Fame not showing proper 4-digit dex numbers by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3901 +* Fixed debug menu flags not redrawing correctly by @ravepossum in https://github.com/rh-hideout/pokeemerald-expansion/pull/3916 +* Fixed issue when trying to add new party menu field moves by @johannakullmann in https://github.com/rh-hideout/pokeemerald-expansion/pull/3933 +* Fixed RHH Rom Header shifting addresses by @Ninjdai1 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3980 + +## 🐉 Pokémon 🐉 +### Added +* Added missing form dex entries by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3972 + * Meloetta Pirouette + * Mega Diancie + * Hoopa Unbound + * Gigantamax Sandaconda +### Changed +* Multiple Pokémon graphical improvements by @katykat5099 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3805 + * Improved Tyrantrum's back sprite. + * Improved Zigzagoon and Linoone's palette + * Updated Gen 9 Pokémon icons to @CyanSMP64's improvements + * Annihilape + * Arctibax and Baxcalibur + * Bellibolt + * Bramblin and Brambleghast + * Cetoddle and Cetitan + * Charcadet, Armarouge and Ceruledge. + * Chi-Yu and Chien-Pao + * Clodsire + * Crocalor + * Dolliv + * Dudunsparce + * Esparthra +### Fixed +* Multiple Pokémon graphical fixes by @katykat5099 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3805 + * Fixed Togepi having a missing pixel on its icon's first frame. + * Fixed Litwick having a missing pixel on its front sprite. + * Fixed Krookodile having a stray pixel on its front sprite. + * Fixed Duraludon's palette. +* Fixed Egg graphical data not being properly read by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3879 +* Fixed Dugtrio's missing footprint and forms not appearing in the HGSS dex by @kaisermg5 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3897 +* Fixed Paldean Tauros having the base stats of Kantonian Tauros by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3970 +* Fixed Hisuian Electrode having the wrong evolution method (evolving "at level 214" instead of via Leaf Stone) by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3970 + +## ⚔️ Battle General ⚔️ ## +### Changed +* Re-enabled Z-Move Usage in Battle Frontier by @damon-murdoch in https://github.com/rh-hideout/pokeemerald-expansion/pull/3883 +### Fixed +* Fixed weird stat drop animation by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3870 +* Fixed Battle Frontier Multi Battles randomly ending in loss by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3990 + +## 🤹 Moves 🤹 +### Fixed +* Fixed Bleakwind Storm, Wildbolt Storm and Sandsear Storm not targetting both foes and not skipping accuracy check under rain by @damon-murdoch in https://github.com/rh-hideout/pokeemerald-expansion/pull/3884 + * Updated move animations to account for this target change by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/3895 +* Fixed Inner Focus breaking when `B_WAIT_TIME_MULTIPLIER` config was being set to any value other than 16. +* Fixed Collision Course's and Electro Drift's PP being 10 instead of 5 by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3890 +* Fixed "Sea of Fire" Pledge effect damaging fainted PokémonSome pledge combo fixes by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/3934 +* Fixed Syrup Bomb's effect not being cleared when the user leaves the field by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3948 +* Fixed Dragon Darts hitting 3 times instead of 2 (full effect still not done) by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4014 + +## 🧶 Items 🧶 +### Fixed +* Fixed Unremarkable Teacup, Masterpiece Teacup and Syrupy Apple's effects by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3858 +* Fixed Poké Balls getting 100% catch rate by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3955 +* Fixed item usage in double battles by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3977 + +## 🤖 Battle AI 🤖 +### Fixed +* Fixed small AI bulldoze effect bug by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3872 + +## 🧹 Other Cleanup 🧹 +### Fixed +* Fixed Quick/Wide Guard config comments by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3857 + +## 🧪 Test Runner 🧪 +### Added +* Added missing Strength Sap tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3860 +* Added Clanging Scales test by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3973 +* Added 5 Parental Bond tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3973 +### Changed +* Consistent `BENCHMARK` timing by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3867 + +## New Contributors +* @damon-murdoch made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3883 +* @lordraindance2 made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3885 +* @johannakullmann made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3933 + +**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.7.1...expansion/1.7.2 + + diff --git a/docs/changelogs/template.md b/docs/changelogs/template.md new file mode 100644 index 000000000000..607d69592add --- /dev/null +++ b/docs/changelogs/template.md @@ -0,0 +1,93 @@ +# Template + +```md +## How to update +- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`. +- Once you have your remote set up, run the command `git pull RHH expansion/1.7.2`. +``` + +## 🌋 *IMPORTANT CHANGES* 🌋 +* We deleted the whole repo LOL by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3367 + +## 🧬 General 🧬 +### Added +* N/A +### Changed +* N/A +### Fixed +* N/A + +## 🐉 Pokémon 🐉 +### Added +* N/A +### Changed +* N/A +### Fixed +* N/A + +## ⚔️ Battle General ⚔️ ## +### Added +* N/A +### Changed +* N/A +### Fixed +* N/A + +## 🤹 Moves 🤹 +### Added +* N/A +### Changed +* N/A +### Fixed +* N/A + +## 🎭 Abilities 🎭 +### Added +* N/A +### Changed +* N/A +### Fixed +* N/A + +## 🧶 Items 🧶 +### Added +* N/A +### Changed +* N/A +### Fixed +* N/A + +## 🤖 Battle AI 🤖 +### Added +* N/A +### Changed +* N/A +### Fixed +* N/A + +## 🧹 Other Cleanup 🧹 +### Added +* N/A +### Changed +* N/A +### Fixed +* N/A + +## 🧪 Test Runner 🧪 +### Added +* N/A +### Changed +* N/A +### Fixed +* N/A + +## 📦 Pret merges 📦 +* N/A + + +## New Contributors +* Tony + +**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.7.1...expansion/1.7.2 + + diff --git a/include/constants/expansion.h b/include/constants/expansion.h index 020a76664c31..ff027221dd0c 100644 --- a/include/constants/expansion.h +++ b/include/constants/expansion.h @@ -3,10 +3,10 @@ #define EXPANSION_VERSION_MAJOR 1 #define EXPANSION_VERSION_MINOR 7 -#define EXPANSION_VERSION_PATCH 1 +#define EXPANSION_VERSION_PATCH 2 // FALSE if this this version of Expansion is not a tagged commit, i.e. // it contains unreleased changes. -#define EXPANSION_TAGGED_RELEASE FALSE +#define EXPANSION_TAGGED_RELEASE TRUE #endif From cadaeb70749ab1bb57c2eea9a88a709c0882dab9 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Wed, 17 Jan 2024 11:52:04 -0300 Subject: [PATCH 6/6] Non-tagged --- include/constants/expansion.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/constants/expansion.h b/include/constants/expansion.h index ff027221dd0c..84a14db36bae 100644 --- a/include/constants/expansion.h +++ b/include/constants/expansion.h @@ -7,6 +7,6 @@ // FALSE if this this version of Expansion is not a tagged commit, i.e. // it contains unreleased changes. -#define EXPANSION_TAGGED_RELEASE TRUE +#define EXPANSION_TAGGED_RELEASE FALSE #endif