merge with pret

This commit is contained in:
ghoulslash 2021-06-11 12:23:16 -06:00
commit bf4b5a926d
501 changed files with 20636 additions and 18830 deletions

View File

@ -1,96 +1,570 @@
# Prerequisites
# Instructions
| Linux | macOS | Windows 10
| - | - | -
| none | [Xcode Command Line Tools Package][xcode] | [Windows Terminal][terminal] and [Windows Subsystem for Linux (WSL)][wsl]
These instructions explain how to set up the tools required to build **pokeemerald**, which assembles the source files into a ROM.
[xcode]: https://developer.apple.com/library/archive/technotes/tn2339/_index.html
[terminal]: https://docs.microsoft.com/windows/terminal/get-started
[wsl]: https://docs.microsoft.com/windows/wsl/install-win10
These instructions come with notes which can be expanded by clicking the "<i>Note...</i>" text.
In general, you should not need to open these unless if you get an error or if you need additional clarification.
Independently from the specific OS, make sure that the `gcc`, `g++`, `make`, `git`, and `libpng-dev` packages or their equivalents are installed and accessible to the development tools that are used by the project (this means that, for example, on Windows, the packages have to be installed in the WSL environment). The package names and installation methods may vary with each OS.
If you run into trouble, ask for help on Discord or IRC (see [README.md](README.md)).
Install the devkitARM toolchain of devkitPro as per [the instructions on their wiki](https://devkitpro.org/wiki/devkitPro_pacman). On Windows, follow the Linux instructions inside WSL as any steps about the Windows installer do not apply.
## Windows
Windows has instructions for building with three possible terminals, providing 3 different options in case the user stumbles upon unexpected errors.
- [Windows 10 (WSL1)](#windows-10-wsl1) (**Fastest, highly recommended**, Windows 10 only)
- [Windows (msys2)](#windows-msys2) (Second fastest)
- [Windows (Cygwin)](#windows-cygwin) (Slowest)
**Debian-based distro users:** This applies to Debian, Ubuntu, and similar distros, including in WSL. If necessary, install the `libarchive13`, `pkg-config`, and `gdebi-core` packages to be able to install devkitPro.
Unscientific benchmarks suggest **msys2 is 2x slower** than WSL1, and **Cygwin is 5-6x slower** than WSL1.
<details>
<summary><i>Note for advanced users: <b>WSL2</b>...</i></summary>
**Windows 10 users:** WSL 2 is available in the 1903 release (build 18362) and later, therefore existing WSL 1 and [prerelease WSL](https://docs.microsoft.com/windows/wsl/install-legacy) users are recommended to update. Right-click the Start button or press `Win`+`X`, choose Run, and run `ms-settings:about` to determine the Windows version. Also check Windows Update to make sure your installation is up-to-date.
> <b>WSL2</b> is an option and is even faster than <b>WSL1</b> if files are stored on the WSL2 file system, but some tools may have trouble interacting
> with the WSL2 file system over the network drive. For example, tools which use Qt versions before 5.15.2 such as <a href="https://github.com/huderlem/porymap">porymap</a>
> may <a href="https://bugreports.qt.io/browse/QTBUG-86277">have problems with parsing the <code>\\wsl$</code> network drive path</a>.
</details>
**Windows 7 and 8.1 users:** pret is no longer focusing on support in pokeemerald for [old versions of Windows](https://support.microsoft.com/help/13853) so consider upgrading to a current release of Windows 10 or try a third-party guide like [this one](https://www.pokecommunity.com/showthread.php?t=425246) instead.
All of the Windows instructions assume that the default drive is C:\\. If this differs to your actual drive letter, then replace C with the correct drive letter when reading the instructions.
**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.
# Installation
## Windows 10 (WSL1)
WSL1 is the preferred terminal to build **pokeemerald**. 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).
To set up the repository:
### 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).
git clone https://github.com/pret/pokeemerald
git clone https://github.com/pret/agbcc
```powershell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```
cd ./agbcc
./build.sh
./install.sh ../pokeemerald
2. Once the process finishes, restart your machine.
cd ../pokeemerald
3. The next step is to choose and install a Linux distribution from the Microsoft Store. The following instructions will assume Ubuntu as the Linux distribution of choice.
<details>
<summary><i>Note for advanced users...</i></summary>
> You can pick a preferred Linux distribution, but setup instructions may differ. Debian should work with the given instructions, but has not been tested.
</details>
To build **pokeemerald.gba** for the first time and confirm it matches the official ROM image:
4. Open the [Microsoft Store Linux Selection](https://aka.ms/wslstore), click Ubuntu, then click Get, which will install the Ubuntu distribution.
<details>
<summary><i>Notes...</i></summary>
make compare
> Note 1: If a dialog pops up asking for you to sign into a Microsoft Account, then just close the dialog.
> Note 2: If the link does not work, then open the Microsoft Store manually, and search for the Ubuntu app (choose the one with no version number).
</details>
### Setting up WSL1
Some tips before proceeding:
- In WSL, Copy and Paste is either done via
- **right-click** (selection + right click to Copy, right click with no selection to Paste)
- **Ctrl+Shift+C/Ctrl+Shift+V** (enabled by right-clicking the title bar, going to Properties, then checking the checkbox next to "Use Ctrl+Shift+C/V as Copy/Paste").
- Some of the commands that you'll run will ask for your WSL password and/or confirmation to perform the stated action. This is to be expected, just enter your WSL password and/or the yes action when necessary.
1. Open **Ubuntu** (e.g. using Search).
2. WSL/Ubuntu will set up its own installation when it runs for the first time. Once WSL/Ubuntu finishes installing, it will ask for a username and password (to be input in).
<details>
<summary><i>Note...</i></summary>
> When typing in the password, there will be no visible response, but the terminal will still read in input.
</details>
3. Update WSL/Ubuntu before continuing. Do this by running the following command. These commands will likely take a long time to finish:
```bash
sudo apt update && sudo apt upgrade
```
> 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:
```bash
sudo apt install build-essential binutils-arm-none-eabi git libpng-dev
```
<details>
<summary><i>Note...</i></summary>
> If the above command does not work, try the above command but replacing `apt` with `apt-get`.
</details>
### 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.
For example, say you want to store pokeemerald (and agbcc) in **C:\Users\\_\<user>_\Desktop\decomps**. First, ensure that the folder already exists. Then, enter this command to **change directory** to said folder, where *\<user>* is your **Windows** username:
```bash
cd /mnt/c/Users/<user>/Desktop/decomps
```
<details>
<summary><i>Notes...</i></summary>
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Desktop/decomp folder"`.
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
</details>
If this works, then proceed to [Installation](#installation).
Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or continue reading below for [Windows instructions using msys2](#windows-msys2).
## Windows (msys2)
- 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).
### Installing devkitARM
1. Download the devkitPro installer [here](https://github.com/devkitPro/installer/releases).
2. Run the devkitPro installer. In the "Choose Components" screen, uncheck everything except GBA Development unless if you plan to install other devkitPro components for other purposes. Keep the install location as C:\devkitPro and leave the Start Menu option unchanged.
### Setting up msys2
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 command:
```bash
pacman -S make gcc zlib-devel git
```
<details>
<summary><i>Note...</i></summary>
> This command will ask for confirmation, just enter the yes action when prompted.
</details>
3. Download [libpng](https://sourceforge.net/projects/libpng/files/libpng16/1.6.37/libpng-1.6.37.tar.xz/download).
4. Change directory to where libpng was downloaded. By default, msys2 will start in the current user's profile folder, located at **C:\Users\\&#8288;_\<user>_**, where *\<user>* is your Windows username. In most cases, libpng should be saved within a subfolder of the profile folder. For example, if libpng was saved to **C:\Users\\_\<user>_\Downloads** (the Downloads location for most users), enter this command:
```bash
cd Downloads
```
<details>
<summary><i>Notes...</i></summary>
> Note 1: While not shown, msys uses forward slashes `/` instead of backwards slashes `\` as the directory separator.
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Downloads/My Downloads"`.
> Note 3: Windows path names are case-insensitive so adhering to capitalization isnt needed.
> Note 4: If libpng was saved elsewhere, you will need to specify the full path to where libpng was downloaded, e.g. `cd c:/devkitpro/msys2` if it was saved there.
</details>
5. Run the following commands to uncompress and install libpng.
```bash
tar xf libpng-1.6.37.tar.xz
cd libpng-1.6.37
./configure --prefix=/usr
make check
make install
```
6. Then finally, run the following command to change back to the user profile folder.
```bash
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.
For example, if you want to store pokeemerald (and agbcc) in **C:\Users\\_\<user>_\Desktop\decomps** (where *\<user>* is your **Windows** username), enter this command:
```bash
cd Desktop/decomps
```
If this works, then proceed to [Installation](#installation).
Otherwise, ask for help on Discord or IRC (see [README.md](README.md)), or continue reading below for [Windows instructions using Cygwin](#windows-cygwin).
## Windows (Cygwin)
1. If devkitARM is **not installed**, then follow the instructions used to [install devkitARM](#installing-devkitarm) for the msys2 setup before continuing. *Remember to not continue following the msys2 instructions by mistake!*
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)
### Installing Cygwin
1. Download [Cygwin](https://cygwin.com/install.html): setup-x86_64.exe for 64-bit Windows, setup-x86.exe for 32-bit.
2. Run the Cygwin setup. Within the Cygwin setup, leave the default settings until the "Choose A Download Site" screen.
3. At "Choose a Download Site", select any mirror within the Available Download Sites.
4. At "Select Packages", set the view to "Full" (top left) and search for the following packages:
- `make`
- `git`
- `gcc-core`
- `gcc-g++`
- `libpng-devel`
To quickly find these, use the search bar and type the name of each package. Ensure that the selected package name is the **exact** same as the one you're trying to download, e.g. `cmake` is **NOT** the same as `make`.
5. For each package, double click on the text that says "**Skip**" next to each package to select the most recent version to install. If the text says anything other than "**Skip**", (e.g. Keep or a version number), then the package is or will be installed and you don't need to do anything.
6. Once all required packages have been selected, finish the installation.
### Configuring devkitARM for Cygwin
Note that in Cygwin, Copy is Ctrl+Insert and Paste is Shift+Insert.
1. Open **Cygwin**.
2. Run the following commands to configure devkitPro to work with Cygwin.
```bash
export DEVKITPRO=/cygdrive/c/devkitpro
echo export DEVKITPRO=$DEVKITPRO >> ~/.bashrc
export DEVKITARM=$DEVKITPRO/devkitARM
echo export DEVKITARM=$DEVKITARM >> ~/.bashrc
```
<details>
<summary><i>Note...</i></summary>
> Replace the drive letter c with the actual drive letter if it is not c.
</details>
### Choosing where to store pokeemerald (Cygwin)
Cygwin has its own file system that's within Windows, at **C:\cygwin64\home\\_\<user>_**. 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.
For example, if you want to store pokeemerald (and agbcc) in **C:\Users\\_\<user>_\Desktop\decomps**, enter this command, where *\<user>* is your **Windows** username:
```bash
cd c:/Users/<user>/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.
<details>
<summary><i>Notes...</i></summary>
> Note 1: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "c:/users/<user>/Desktop/decomp folder"`.
> Note 2: Windows path names are case-insensitive so adhering to capitalization isn't needed
</details>
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
## macOS
1. If the Xcode Command Line Tools are not installed, download the tools [here](https://developer.apple.com/xcode/resources/), open your Terminal, and run the following command:
```bash
xcode-select --install
```
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)
### Installing libpng (macOS)
<details>
<summary><i>Note for advanced users...</i></summary>
> This guide installs libpng via Homebrew as it is the easiest method, however advanced users can install libpng through other means if they so desire.
</details>
1. Open the Terminal.
2. If Homebrew is not installed, then install [Homebrew](https://brew.sh/) by following the instructions on the website.
3. Run the following command to install libpng.
```bash
brew install libpng
```
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).
### Installing devkitARM (macOS)
1. Download the `devkitpro-pacman-installer.pkg` package from [here](https://github.com/devkitPro/pacman/releases).
2. Open the package to install devkitPro pacman.
3. In the Terminal, run the following commands to install devkitARM:
```bash
sudo dkp-pacman -Sy
sudo dkp-pacman -S gba-dev
sudo dkp-pacman -S devkitarm-rules
```
The command with gba-dev 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. After the tools are installed, devkitARM must now be made accessible from anywhere by the system. To do so, run the following commands:
```bash
export DEVKITPRO=/opt/devkitpro
echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc
export DEVKITARM=$DEVKITPRO/devkitARM
echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc
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.
For example, if you want to store pokeemerald (and agbcc) 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.
<details>
<summary><i>Note..</i>.</summary>
> Note: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Desktop/decomp folder"`
</details>
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
## Linux
Open Terminal and enter the following commands, depending on which distro you're using.
### Debian/Ubuntu-based distributions
Run the following command to install the necessary packages:
```bash
sudo apt install build-essential binutils-arm-none-eabi git libpng-dev
```
Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to-store-pokeemerald-linux).
<details>
<summary><i>Note for legacy repos...</i></summary>
> 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 binutils-arm-none-eabi, and follow the instructions to
> [install devkitARM on Debian/Ubuntu-based distributions](#installing-devkitarm-on-debianubuntu-based-distributions).
</details>
### Other distributions
_(Specific instructions for other distributions would be greatly appreciated!)_
1. Try to find the required software in its repositories:
- `gcc`
- `g++`
- `make`
- `git`
- `libpng-dev`
2. Follow the instructions [here](https://devkitpro.org/wiki/devkitPro_pacman) to install devkitPro pacman. As a reminder, the goal is to configure an existing pacman installation to recognize devkitPro's repositories.
3. Once devkitPro pacman is configured, run the following commands:
```bash
sudo pacman -Sy
sudo 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.
### 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.
If this works, then proceed to [Installation](#installation). Otherwise, ask for help on Discord or IRC (see [README.md](README.md)).
## Installation
<details>
<summary><i>Note for Windows users...</i></summary>
> Consider adding an exception for the `pokeemerald` 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.
</details>
1. If pokeemerald is not already downloaded (some users may prefer to download pokeemerald via a git client like GitHub Desktop), run:
```bash
git clone https://github.com/pret/pokeemerald
```
<details>
<summary><i>Note for WSL1...</i></summary>
> If you get an error stating `fatal: could not set 'core.filemode' to 'false'`, then run the following commands:
> ```bash
> cd
> sudo umount /mnt/c
> sudo mount -t drvfs C: /mnt/c -o metadata,noatime
> cd <folder where pokeemerald is to be stored>
> ```
> Where *\<folder where pokeemerald is to be stored>* 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.
</details>
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
```
<details>
<summary><i>Note...</i></summary>
> 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.
</details>
3. Once agbcc is installed, change directory back to the base directory where pokeemerald and agbcc are stored:
```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:
```bash
cd pokeemerald
```
To build **pokeemerald.gba** for the first time and confirm it matches the official ROM image (Note: to speed up builds, see [Parallel builds](#parallel-builds)):
```bash
make compare
```
If an OK is returned, then the installation went smoothly.
**Windows users:** Consider adding exceptions for the `pokeemerald` and `agbcc` folders 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.
# Start
<details>
<summary>Note for Windows...</summary>
> If you switched terminals since the last build (e.g. from msys2 to WSL1), you must run `make clean-tools` once before any subsequent `make` commands.
</details>
To build **pokeemerald.gba** with your changes:
make
**macOS users:** If the base tools are not found in new Terminal sessions after the first successful build, run `echo "if [ -f ~/.bashrc ]; then . ~/.bashrc; fi" >> ~/.bash_profile` once to prevent the issue from occurring again. Verify that the `devkitarm-rules` package is installed as well; if not, install it by running `sudo dkp-pacman -S devkitarm-rules`.
```bash
make
```
# Building guidance
## Parallel builds
See [the GNU docs](https://www.gnu.org/software/make/manual/html_node/Parallel.html) and [this Stack Exchange thread](https://unix.stackexchange.com/questions/208568) for more information.
To speed up building, run:
make -j$(nproc)
To speed up building, first get the value of `nproc` by running the following command:
```bash
nproc
```
Builds can then be sped up by running the following command:
```bash
make -j<output of nproc>
```
Replace `<output of nproc>` 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)).
## Debug info
To build **pokeemerald.elf** with enhanced debug info:
make DINFO=1
```bash
make DINFO=1
```
## devkitARM's C compiler
This project supports the `arm-none-eabi-gcc` compiler included with devkitARM r52. To build this target, simply run:
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:
```bash
make modern
```
Otherwise, follow the instructions below to install devkitARM.
### Installing devkitARM on WSL1
make modern
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:
```bash
sudo apt install gdebi-core
```
<details>
<summary><i>Note...</i></summary>
> If the above command does not work, try the above command but replacing `apt` with `apt-get`.
</details>
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\\_\<user>_\Downloads** (the Downloads location for most users), enter this command, where *\<user> is your **Windows** username:
```bash
cd /mnt/c/Users/<user>/Downloads
```
4. Once the directory has been changed to the folder containing the devkitPro pacman package, 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.
<details>
<summary><i>Note...</i></summary>
> 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.
</details>
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.
## 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`.
make TOOLCHAIN="/path/to/toolchain/here"
```bash
make TOOLCHAIN="/path/to/toolchain/here"
```
The following is an example:
make TOOLCHAIN="/usr/local/arm-none-eabi"
```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.
# Useful additional tools
* [porymap](https://github.com/huderlem/porymap) for viewing and editing maps

122
Makefile
View File

@ -1,29 +1,28 @@
TOOLCHAIN := $(DEVKITARM)
COMPARE ?= 0
ifeq ($(CC),)
HOSTCC := gcc
else
HOSTCC := $(CC)
endif
# don't use dkP's base_tools anymore
# because the redefinition of $(CC) conflicts
# with when we want to use $(CC) to preprocess files
# thus, manually create the variables for the bin
# files, or use arm-none-eabi binaries on the system
# if dkP is not installed on this system
ifeq ($(CXX),)
HOSTCXX := g++
else
HOSTCXX := $(CXX)
endif
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
else
ifneq (,$(TOOLCHAIN))
ifneq ($(wildcard $(TOOLCHAIN)/bin),)
export PATH := $(TOOLCHAIN)/bin:$(PATH)
endif
endif
PREFIX := arm-none-eabi-
OBJCOPY := $(PREFIX)objcopy
export CC := $(PREFIX)gcc
export AS := $(PREFIX)as
endif
export CPP := $(PREFIX)cpp
export LD := $(PREFIX)ld
AS := $(PREFIX)as
LD := $(PREFIX)ld
# note: the makefile must be set up so MODERNCC is never called
# if MODERN=0
MODERNCC := $(PREFIX)gcc
ifeq ($(OS),Windows_NT)
EXE := .exe
@ -37,6 +36,33 @@ MAKER_CODE := 01
REVISION := 0
MODERN ?= 0
# use arm-none-eabi-cpp for macOS
# as macOS's default compiler is clang
# and clang's preprocessor will warn on \u
# when preprocessing asm files, expecting a unicode literal
# we can't unconditionally use arm-none-eabi-cpp
# as installations which install binutils-arm-none-eabi
# don't come with it
ifneq ($(MODERN),1)
ifeq ($(shell uname -s),Darwin)
CPP := $(PREFIX)cpp
else
CPP := $(CC) -E
endif
else
CPP := $(PREFIX)cpp
endif
ROM_NAME := pokeemerald.gba
ELF_NAME := $(ROM_NAME:.gba=.elf)
MAP_NAME := $(ROM_NAME:.gba=.map)
OBJ_DIR_NAME := build/emerald
MODERN_ROM_NAME := pokeemerald_modern.gba
MODERN_ELF_NAME := $(MODERN_ROM_NAME:.gba=.elf)
MODERN_MAP_NAME := $(MODERN_ROM_NAME:.gba=.map)
MODERN_OBJ_DIR_NAME := build/modern
SHELL := /bin/bash -o pipefail
ELF = $(ROM:.gba=.elf)
@ -64,26 +90,26 @@ ASFLAGS := -mcpu=arm7tdmi --defsym MODERN=$(MODERN)
ifeq ($(MODERN),0)
CC1 := tools/agbcc/bin/agbcc$(EXE)
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm -g
ROM := pokeemerald.gba
OBJ_DIR := build/emerald
ROM := $(ROM_NAME)
OBJ_DIR := $(OBJ_DIR_NAME)
LIBPATH := -L ../../tools/agbcc/lib
LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall
else
CC1 = $(shell $(CC) --print-prog-name=cc1) -quiet
CC1 = $(shell $(MODERNCC) --print-prog-name=cc1) -quiet
override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -g
ROM := pokeemerald_modern.gba
OBJ_DIR := build/modern
LIBPATH := -L "$(dir $(shell $(CC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(CC) -mthumb -print-file-name=libc.a))"
ROM := $(MODERN_ROM_NAME)
OBJ_DIR := $(MODERN_OBJ_DIR_NAME)
LIBPATH := -L "$(dir $(shell $(MODERNCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(MODERNCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(MODERNCC) -mthumb -print-file-name=libc.a))"
LIB := $(LIBPATH) -lc -lnosys -lgcc -L../../libagbsyscall -lagbsyscall
endif
CPPFLAGS := -iquote include -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -DMODERN=$(MODERN)
ifeq ($(MODERN),0)
CPPFLAGS += -I tools/agbcc/include -I tools/agbcc
ifneq ($(MODERN),1)
CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef
endif
LDFLAGS = -Map ../../$(MAP)
LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
GFX := tools/gbagfx/gbagfx$(EXE)
AIF := tools/aif2pcm/aif2pcm$(EXE)
@ -111,7 +137,7 @@ MAKEFLAGS += --no-print-directory
# Secondary expansion is required for dependency variables in object rules.
.SECONDEXPANSION:
.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) berry_fix libagbsyscall modern
.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) berry_fix libagbsyscall modern tidymodern tidynonmodern
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
@ -162,7 +188,7 @@ all: rom
tools: $(TOOLDIRS)
$(TOOLDIRS):
@$(MAKE) -C $@ CC=$(HOSTCC) CXX=$(HOSTCXX)
@$(MAKE) -C $@
rom: $(ROM)
ifeq ($(COMPARE),1)
@ -177,7 +203,7 @@ clean: mostlyclean clean-tools
clean-tools:
@$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);)
mostlyclean: tidy
mostlyclean: tidynonmodern tidymodern
rm -f $(SAMPLE_SUBDIR)/*.bin
rm -f $(CRY_SUBDIR)/*.bin
rm -f $(MID_SUBDIR)/*.s
@ -189,13 +215,16 @@ mostlyclean: tidy
@$(MAKE) clean -C berry_fix
@$(MAKE) clean -C libagbsyscall
tidy:
rm -f $(ROM) $(ELF) $(MAP)
rm -r $(OBJ_DIR)
ifeq ($(MODERN),0)
@$(MAKE) tidy MODERN=1
endif
tidy: tidynonmodern tidymodern
tidynonmodern:
rm -f $(ROM_NAME) $(ELF_NAME) $(MAP_NAME)
rm -rf $(OBJ_DIR_NAME)
tidymodern:
rm -f $(MODERN_ROM_NAME) $(MODERN_ELF_NAME) $(MODERN_MAP_NAME)
rm -rf $(MODERN_OBJ_DIR_NAME)
ifneq ($(MODERN),0)
$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member
endif
@ -223,7 +252,7 @@ sound/%.bin: sound/%.aif ; $(AIF) $< $@
ifeq ($(MODERN),0)
$(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc
$(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE)
$(C_BUILDDIR)/libc.o: CFLAGS := -O2
$(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork
@ -232,10 +261,10 @@ $(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc
$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE)
$(C_BUILDDIR)/record_mixing.o: CFLAGS += -ffreestanding
$(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm
$(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm$(EXE)
$(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet
else
$(C_BUILDDIR)/librfu_intr.o: CFLAGS := -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast
@ -296,11 +325,11 @@ endif
ifeq ($(NODEP),1)
$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s
$(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@
$(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@
else
define DATA_ASM_DEP
$1: $2 $$(shell $(SCANINC) -I include -I "" $2)
$$(PREPROC) $$< charmap.txt | $$(CPP) -I include | $$(AS) $$(ASFLAGS) -o $$@
$$(PREPROC) $$< charmap.txt | $$(CPP) -I include - | $$(AS) $$(ASFLAGS) -o $$@
endef
$(foreach src, $(REGULAR_DATA_ASM_SRCS), $(eval $(call DATA_ASM_DEP,$(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o, $(src)),$(src))))
$(foreach src, $(C_ASM_SRCS), $(eval $(call DATA_ASM_DEP,$(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o, $(src)),$(src))))
@ -330,7 +359,8 @@ $(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) berry_fix libagbsyscall
cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
@echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ <objects> <lib>"
@cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
$(ROM): $(ELF)
@ -342,7 +372,7 @@ modern: ; @$(MAKE) MODERN=1
berry_fix/berry_fix.gba: berry_fix
berry_fix:
@$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN)
@$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)
libagbsyscall:
@$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN)
@$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)

View File

@ -1,10 +1,5 @@
# Pokémon Emerald
[![Build Status][travis-badge]][travis]
[travis]: https://travis-ci.org/pret/pokeemerald
[travis-badge]: https://travis-ci.org/pret/pokeemerald.svg?branch=master
This is a decompilation of Pokémon Emerald.
It builds the following ROM:

View File

@ -1311,7 +1311,7 @@
various \battler, 15
.endm
.macro arenajudmengtstring id:req
.macro arenajudgmentstring id:req
various \id, VARIOUS_ARENA_JUDGMENT_STRING
.endm

View File

@ -345,11 +345,12 @@
.byte 0x32
.endm
@ Plays the specified (song_number) song. The byte is apparently supposed to be 0x00.
.macro playbgm song_number:req, unknown:req
@ Plays the specified (song_number) song. If save_song is TRUE, the
@ specified (song_number) will be saved as if savebgm was called with it.
.macro playbgm song_number:req, save_song:req
.byte 0x33
.2byte \song_number
.byte \unknown
.byte \save_song
.endm
@ Saves the specified (song_number) song to be played later.
@ -918,10 +919,10 @@
.byte 0x76
.endm
@ Draws an image of the winner of the contest. In FireRed, this command is a nop. (The argument is discarded.)
.macro showcontestwinner a:req
@ Draws an image of the winner of the contest. winnerId is any CONTEST_WINNER_* constant.
.macro showcontestpainting winnerId:req
.byte 0x77
.byte \a
.byte \winnerId
.endm
@ Displays the string at pointer as braille text in a standard message box. The string must be formatted to use braille

View File

@ -1,11 +1,19 @@
#!/bin/bash
OBJDUMP="$DEVKITARM/bin/arm-none-eabi-objdump -D -bbinary -marmv4t -Mforce-thumb"
if [[ -d "$DEVKITARM/bin/" ]]; then
OBJDUMP_BIN="$DEVKITARM/bin/arm-none-eabi-objdump"
else
OBJDUMP_BIN="arm-none-eabi-objdump"
fi
OBJDUMP="$OBJDUMP_BIN -D -bbinary -marmv4t -Mforce-thumb"
if [ $(($1)) -ge $((0x8000000)) ]; then
OPTIONS="--adjust-vma=0x8000000 --start-address=$(($1)) --stop-address=$(($1 + $2))"
else
OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))"
fi
$OBJDUMP $OPTIONS baserom.gba > baserom.dump
$OBJDUMP $OPTIONS pokeemerald.gba > pokeemerald.dump
diff -u baserom.dump pokeemerald.dump

View File

@ -1,29 +1,27 @@
TOOLCHAIN := $(DEVKITARM)
COMPARE ?= 0
ifeq ($(CC),)
HOSTCC := gcc
else
HOSTCC := $(CC)
endif
# don't use dkP's base_tools anymore
# because the redefinition of $(CC) conflicts
# with when we want to use $(CC) to preprocess files
# thus, manually create the variables for the bin
# files, or use arm-none-eabi binaries on the system
# if dkP is not installed on this system
ifeq ($(CXX),)
HOSTCXX := g++
else
HOSTCXX := $(CXX)
endif
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
else
ifneq (,$(TOOLCHAIN))
ifneq ($(wildcard $(TOOLCHAIN)/bin),)
export PATH := $(TOOLCHAIN)/bin:$(PATH)
endif
endif
PREFIX := arm-none-eabi-
OBJCOPY := $(PREFIX)objcopy
export CC := $(PREFIX)gcc
export AS := $(PREFIX)as
endif
export CPP := $(PREFIX)cpp
export LD := $(PREFIX)ld
AS := $(PREFIX)as
LD := $(PREFIX)ld
# note: the makefile must be set up so MODERNCC is never called
# if MODERN=0
MODERNCC := $(PREFIX)gcc
ifeq ($(OS),Windows_NT)
EXE := .exe
@ -31,6 +29,23 @@ else
EXE :=
endif
# use arm-none-eabi-cpp for macOS
# as macOS's default compiler is clang
# and clang's preprocessor will warn on \u
# when preprocessing asm files, expecting a unicode literal
# we can't unconditionally use arm-none-eabi-cpp
# as installations which install binutils-arm-none-eabi
# don't come with it
ifneq ($(MODERN),1)
ifeq ($(shell uname -s),Darwin)
CPP := $(PREFIX)cpp
else
CPP := $(CC) -E
endif
else
CPP := $(PREFIX)cpp
endif
GAME_CODE := AGBJ
MAKER_CODE := 01
REVISION := 0
@ -166,7 +181,7 @@ $(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s)
endif
payload:
@$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN)
@$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)
payload/payload.gba: payload

View File

@ -434,8 +434,8 @@ RESUME_MUSIC = FC 18
TRANSPARENT = 00
WHITE = 01
DARK_GREY = 02
LIGHT_GREY = 03
DARK_GRAY = 02
LIGHT_GRAY = 03
RED = 04
LIGHT_RED = 05
GREEN = 06

View File

@ -1,29 +1,27 @@
TOOLCHAIN := $(DEVKITARM)
COMPARE ?= 0
ifeq ($(CC),)
HOSTCC := gcc
else
HOSTCC := $(CC)
endif
# don't use dkP's base_tools anymore
# because the redefinition of $(CC) conflicts
# with when we want to use $(CC) to preprocess files
# thus, manually create the variables for the bin
# files, or use arm-none-eabi binaries on the system
# if dkP is not installed on this system
ifeq ($(CXX),)
HOSTCXX := g++
else
HOSTCXX := $(CXX)
endif
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
else
ifneq (,$(TOOLCHAIN))
ifneq ($(wildcard $(TOOLCHAIN)/bin),)
export PATH := $(TOOLCHAIN)/bin:$(PATH)
endif
endif
PREFIX := arm-none-eabi-
OBJCOPY := $(PREFIX)objcopy
export CC := $(PREFIX)gcc
export AS := $(PREFIX)as
endif
export CPP := $(PREFIX)cpp
export LD := $(PREFIX)ld
AS := $(PREFIX)as
LD := $(PREFIX)ld
# note: the makefile must be set up so MODERNCC is never called
# if MODERN=0
MODERNCC := $(PREFIX)gcc
ifeq ($(OS),Windows_NT)
EXE := .exe
@ -31,6 +29,23 @@ else
EXE :=
endif
# use arm-none-eabi-cpp for macOS
# as macOS's default compiler is clang
# and clang's preprocessor will warn on \u
# when preprocessing asm files, expecting a unicode literal
# we can't unconditionally use arm-none-eabi-cpp
# as installations which install binutils-arm-none-eabi
# don't come with it
ifneq ($(MODERN),1)
ifeq ($(shell uname -s),Darwin)
CPP := $(PREFIX)cpp
else
CPP := $(CC) -E
endif
else
CPP := $(PREFIX)cpp
endif
SHELL := /bin/bash -o pipefail
CPPFLAGS := -I ../../tools/agbcc/include -I ../../tools/agbcc -iquote include -nostdinc -undef

View File

@ -434,8 +434,8 @@ RESUME_MUSIC = FC 18
TRANSPARENT = 00
WHITE = 01
DARK_GREY = 02
LIGHT_GREY = 03
DARK_GRAY = 02
LIGHT_GRAY = 03
RED = 04
LIGHT_RED = 05
GREEN = 06

View File

@ -1,5 +1,5 @@
#ifndef GUARD_GBA_DEFINES
#define GUARD_GBA_DEFINES
#ifndef GUARD_GBA_DEFINES_H
#define GUARD_GBA_DEFINES_H
#include <stddef.h>
@ -84,4 +84,4 @@
#define RGB_CYAN RGB(0, 31, 31)
#define RGB_WHITEALPHA (RGB_WHITE | 0x8000)
#endif // GUARD_GBA_DEFINES
#endif // GUARD_GBA_DEFINES_H

View File

@ -419,7 +419,7 @@ void SetPokemonCryPitch(s16 val);
void SetPokemonCryLength(u16 val);
void SetPokemonCryRelease(u8 val);
void SetPokemonCryProgress(u32 val);
int IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo);
bool32 IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo);
void SetPokemonCryChorus(s8 val);
void SetPokemonCryStereo(u32 val);
void SetPokemonCryPriority(u8 val);

View File

@ -438,8 +438,8 @@ RESUME_MUSIC = FC 18
TRANSPARENT = 00
WHITE = 01
DARK_GREY = 02
LIGHT_GREY = 03
DARK_GRAY = 02
LIGHT_GRAY = 03
RED = 04
LIGHT_RED = 05
GREEN = 06

View File

@ -1656,12 +1656,12 @@ Explosion1:
Move_DEFENSE_CURL:
loadspritegfx ANIM_TAG_ECLIPSING_ORB
loopsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, 18, 3
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 0
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 0
createvisualtask AnimTask_DefenseCurlDeformMon, 5
waitforvisualfinish
createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1
waitforvisualfinish
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1
waitforvisualfinish
end
@ -7254,7 +7254,7 @@ Move_IRON_TAIL:
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1
playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET
waitforvisualfinish
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1
clearmonbg ANIM_TARGET
blendoff
waitforvisualfinish
@ -7274,7 +7274,7 @@ Move_POISON_TAIL:
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1
playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET
waitforvisualfinish
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_ATTACKER, 1
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1
clearmonbg ANIM_TARGET
blendoff
call PoisonBubblesEffect
@ -7551,7 +7551,7 @@ Move_DISABLE:
playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER
createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 24, -16
waitforvisualfinish
createvisualtask AnimTask_GrowAndGreyscale, 5
createvisualtask AnimTask_GrowAndGrayscale, 5
loopsewithpan SE_M_BIND, SOUND_PAN_TARGET, 15, 4
waitforvisualfinish
delay 1
@ -7946,16 +7946,16 @@ Move_PERISH_SONG:
panse_1B SE_M_PERISH_SONG, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0
delay 80
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_BLACK
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 0
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 5, 0
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 6, 0
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 7, 0
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 0
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 0
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 0
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 0
delay 100
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_BLACK
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 1
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 5, 1
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 6, 1
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 7, 1
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 1
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 1
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 1
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 1
waitforvisualfinish
end
@ -9573,7 +9573,7 @@ Move_DOOM_DESIRE:
createvisualtask GetIsDoomDesireHitTurn, 2
delay 1
monbg ANIM_ATK_PARTNER
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_TARGET, FALSE
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, FALSE
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, RGB_BLACK
waitforvisualfinish
setalpha 8, 8
@ -9581,7 +9581,7 @@ Move_DOOM_DESIRE:
createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1
waitforvisualfinish
delay 20
createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, ANIM_TARGET, TRUE
createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, TRUE
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, RGB_BLACK
waitforvisualfinish
clearmonbg ANIM_ATK_PARTNER

File diff suppressed because it is too large Load Diff

View File

@ -34,7 +34,7 @@ gBattlescriptsForUsingItem:: @ 82DBD3C
.4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_HEAL_HP
.4byte BattleScript_OpponentUsesStatusCureItem @ AI_ITEM_CURE_CONDITION
.4byte BattleScript_OpponentUsesXItem @ AI_ITEM_X_STAT
.4byte BattleScript_OpponentUsesGuardSpecs @ AI_ITEM_GUARD_SPECS
.4byte BattleScript_OpponentUsesGuardSpec @ AI_ITEM_GUARD_SPEC
.align 2
gBattlescriptsForRunningByItem:: @ 82DBD54
@ -69,16 +69,16 @@ BattleScript_PrintCaughtMonInfo::
trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon
printstring STRINGID_PKMNDATAADDEDTODEX
waitstate
setbyte gBattleCommunication, 0x0
setbyte gBattleCommunication, 0
displaydexinfo
BattleScript_TryNicknameCaughtMon::
printstring STRINGID_GIVENICKNAMECAPTURED
waitstate
setbyte gBattleCommunication, 0x0
setbyte gBattleCommunication, 0
trygivecaughtmonnick BattleScript_GiveCaughtMonEnd
givecaughtmon
printfromtable gCaughtMonStringIds
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
goto BattleScript_SuccessBallThrowEnd
BattleScript_GiveCaughtMonEnd::
givecaughtmon
@ -93,83 +93,78 @@ BattleScript_WallyBallThrow::
BattleScript_ShakeBallThrow::
printfromtable gBallEscapeStringIds
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_ShakeBallThrowEnd
jumpifbyte CMP_NOT_EQUAL, gNumSafariBalls, 0x0, BattleScript_ShakeBallThrowEnd
jumpifbyte CMP_NOT_EQUAL, gNumSafariBalls, 0, BattleScript_ShakeBallThrowEnd
printstring STRINGID_OUTOFSAFARIBALLS
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
setbyte gBattleOutcome, B_OUTCOME_NO_SAFARI_BALLS
BattleScript_ShakeBallThrowEnd::
finishaction
BattleScript_TrainerBallBlock::
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
printstring STRINGID_TRAINERBLOCKEDBALL
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
printstring STRINGID_DONTBEATHIEF
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
finishaction
BattleScript_PlayerUsesItem::
setbyte sMOVEEND_STATE, 0xF
moveend 0x1, 0x0
moveendcase MOVEEND_MIRROR_MOVE
end
BattleScript_OpponentUsesHealItem::
printstring STRINGID_EMPTYSTRING3
pause 0x30
pause B_WAIT_TIME_MED
playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
useitemonopponent
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
updatestatusicon BS_ATTACKER
setbyte sMOVEEND_STATE, 0xF
moveend 0x1, 0x0
moveendcase MOVEEND_MIRROR_MOVE
finishaction
BattleScript_OpponentUsesStatusCureItem::
printstring STRINGID_EMPTYSTRING3
pause 0x30
pause B_WAIT_TIME_MED
playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
useitemonopponent
printfromtable gTrainerItemCuredStatusStringIds
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
updatestatusicon BS_ATTACKER
setbyte sMOVEEND_STATE, 0xF
moveend 0x1, 0x0
moveendcase MOVEEND_MIRROR_MOVE
finishaction
BattleScript_OpponentUsesXItem::
printstring STRINGID_EMPTYSTRING3
pause 0x30
pause B_WAIT_TIME_MED
playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
useitemonopponent
printfromtable gStatUpStringIds
waitmessage 0x40
setbyte sMOVEEND_STATE, 0xF
moveend 0x1, 0x0
waitmessage B_WAIT_TIME_LONG
moveendcase MOVEEND_MIRROR_MOVE
finishaction
BattleScript_OpponentUsesGuardSpecs::
BattleScript_OpponentUsesGuardSpec::
printstring STRINGID_EMPTYSTRING3
pause 0x30
pause B_WAIT_TIME_MED
playse SE_USE_ITEM
printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
useitemonopponent
printfromtable gMistUsedStringIds
waitmessage 0x40
setbyte sMOVEEND_STATE, 0xF
moveend 0x1, 0x0
waitmessage B_WAIT_TIME_LONG
moveendcase MOVEEND_MIRROR_MOVE
finishaction
BattleScript_RunByUsingItem::
@ -179,29 +174,29 @@ BattleScript_RunByUsingItem::
BattleScript_ActionWatchesCarefully:
printstring STRINGID_PKMNWATCHINGCAREFULLY
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_ActionGetNear:
printfromtable gSafariGetNearStringIds
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_ActionThrowPokeblock:
printstring STRINGID_THREWPOKEBLOCKATPKMN
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
playanimation BS_ATTACKER, B_ANIM_POKEBLOCK_THROW, NULL
printfromtable gSafariPokeblockResultStringIds
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
end2
BattleScript_ActionWallyThrow:
printstring STRINGID_RETURNMON
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
returnatktoball
waitstate
trainerslidein BS_TARGET
waitstate
printstring STRINGID_YOUTHROWABALLNOWRIGHT
waitmessage 0x40
waitmessage B_WAIT_TIME_LONG
end2

View File

@ -736,7 +736,7 @@ EventScript_RegionMap:: @ 827208F
Common_EventScript_PlayBrineysBoatMusic:: @ 82720A0
setflag FLAG_DONT_TRANSITION_MUSIC
playbgm MUS_SAILING, 0
playbgm MUS_SAILING, FALSE
return
Common_EventScript_StopBrineysBoatMusic:: @ 82720A8

View File

@ -33,7 +33,7 @@ BattleFrontier_BattlePyramidFloor_EventScript_ShowMapName:: @ 8252A8F
end
BattleFrontier_BattlePyramidFloor_EventScript_PlayPyramidMusic:: @ 8252A98
playbgm MUS_B_PYRAMID, 0
playbgm MUS_B_PYRAMID, FALSE
setvar VAR_TEMP_E, 1
end

View File

@ -53,7 +53,7 @@ BattleFrontier_BattlePyramidTop_OnFrame: @ 825516E
.2byte 0
BattleFrontier_BattlePyramidTop_EventScript_PlayPyramidMusic:: @ 8255180
playbgm MUS_B_PYRAMID_TOP, 0
playbgm MUS_B_PYRAMID_TOP, FALSE
setvar VAR_TEMP_E, 1
end
@ -136,7 +136,7 @@ BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardSilverSpeech:: @ 82552D0
BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonSilver:: @ 82552DA
msgbox BattleFrontier_BattlePyramidTop_Text_BringCourageToOurBattle, MSGBOX_DEFAULT
call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle
playbgm MUS_B_PYRAMID_TOP, 0
playbgm MUS_B_PYRAMID_TOP, FALSE
compare VAR_RESULT, 1
goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonSilver
goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost
@ -176,7 +176,7 @@ BattleFrontier_BattlePyramidTop_EventScript_BrandonHeardGoldSpeech:: @ 8255388
BattleFrontier_BattlePyramidTop_EventScript_BattleBrandonGold:: @ 8255392
msgbox BattleFrontier_BattlePyramidTop_Text_EverythingYouHave, MSGBOX_DEFAULT
call BattleFrontier_BattlePyramidTop_EventScript_DoBrandonBattle
playbgm MUS_B_PYRAMID_TOP, 0
playbgm MUS_B_PYRAMID_TOP, FALSE
compare VAR_RESULT, 1
goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_DefeatedBrandonGold
goto BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost

View File

@ -72,7 +72,7 @@ BirthIsland_Exterior_EventScript_Deoxys:: @ 8267FC1
setfieldeffectargument 1, 58
setfieldeffectargument 2, 26
dofieldeffect FLDEFF_DESTROY_DEOXYS_ROCK
playbgm MUS_RG_ENCOUNTER_DEOXYS, 0
playbgm MUS_RG_ENCOUNTER_DEOXYS, FALSE
waitfieldeffect FLDEFF_DESTROY_DEOXYS_ROCK
addobject LOCALID_DEOXYS
applymovement LOCALID_DEOXYS, BirthIsland_Exterior_Movement_DeoxysApproach

View File

@ -42,7 +42,7 @@ EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace: @ 8228A42
step_end
EverGrandeCity_ChampionsRoom_EventScript_Wallace:: @ 8228A45
playbgm MUS_ENCOUNTER_CHAMPION, 0
playbgm MUS_ENCOUNTER_CHAMPION, FALSE
msgbox EverGrandeCity_ChampionsRoom_Text_IntroSpeech, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_WALLACE, EverGrandeCity_ChampionsRoom_Text_Defeat
goto EverGrandeCity_ChampionsRoom_EventScript_Defeated
@ -71,11 +71,11 @@ EverGrandeCity_ChampionsRoom_EventScript_Defeated:: @ 8228A61
end
EverGrandeCity_ChampionsRoom_EventScript_PlayMayMusic:: @ 8228ABC
playbgm MUS_ENCOUNTER_MAY, 0
playbgm MUS_ENCOUNTER_MAY, FALSE
return
EverGrandeCity_ChampionsRoom_EventScript_PlayBrendanMusic:: @ 8228AC1
playbgm MUS_ENCOUNTER_BRENDAN, 0
playbgm MUS_ENCOUNTER_BRENDAN, FALSE
return
EverGrandeCity_ChampionsRoom_EventScript_MayAdvice:: @ 8228AC6

View File

@ -42,7 +42,7 @@ EverGrandeCity_DrakesRoom_EventScript_Drake:: @ 82286F3
lock
faceplayer
goto_if_set FLAG_DEFEATED_ELITE_4_DRAKE, EverGrandeCity_DrakesRoom_EventScript_PostBattleSpeech
playbgm MUS_ENCOUNTER_ELITE_FOUR, 0
playbgm MUS_ENCOUNTER_ELITE_FOUR, FALSE
msgbox EverGrandeCity_DrakesRoom_Text_IntroSpeech, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_DRAKE, EverGrandeCity_DrakesRoom_Text_Defeat
goto EverGrandeCity_DrakesRoom_EventScript_Defeated

View File

@ -41,7 +41,7 @@ EverGrandeCity_GlaciasRoom_EventScript_Glacia:: @ 8228469
lock
faceplayer
goto_if_set FLAG_DEFEATED_ELITE_4_GLACIA, EverGrandeCity_GlaciasRoom_EventScript_PostBattleSpeech
playbgm MUS_ENCOUNTER_ELITE_FOUR, 0
playbgm MUS_ENCOUNTER_ELITE_FOUR, FALSE
msgbox EverGrandeCity_GlaciasRoom_Text_IntroSpeech, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_GLACIA, EverGrandeCity_GlaciasRoom_Text_Defeat
goto EverGrandeCity_GlaciasRoom_EventScript_Defeated

View File

@ -41,7 +41,7 @@ EverGrandeCity_PhoebesRoom_EventScript_Phoebe:: @ 82281CB
lock
faceplayer
goto_if_set FLAG_DEFEATED_ELITE_4_PHOEBE, EverGrandeCity_PhoebesRoom_EventScript_PostBattleSpeech
playbgm MUS_ENCOUNTER_ELITE_FOUR, 0
playbgm MUS_ENCOUNTER_ELITE_FOUR, FALSE
msgbox EverGrandeCity_PhoebesRoom_Text_IntroSpeech, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_PHOEBE, EverGrandeCity_PhoebesRoom_Text_Defeat
goto EverGrandeCity_PhoebesRoom_EventScript_Defeated

View File

@ -47,7 +47,7 @@ EverGrandeCity_SidneysRoom_EventScript_Sidney:: @ 8227F64
lock
faceplayer
goto_if_set FLAG_DEFEATED_ELITE_4_SIDNEY, EverGrandeCity_SidneysRoom_EventScript_PostBattleSpeech
playbgm MUS_ENCOUNTER_ELITE_FOUR, 0
playbgm MUS_ENCOUNTER_ELITE_FOUR, FALSE
msgbox EverGrandeCity_SidneysRoom_Text_IntroSpeech, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_SIDNEY, EverGrandeCity_SidneysRoom_Text_Defeat
goto EverGrandeCity_SidneysRoom_EventScript_Defeated

View File

@ -105,11 +105,11 @@ LavaridgeTown_EventScript_RivalExit:: @ 81EA5FF
end
LavaridgeTown_EventScript_PlayMayMusic:: @ 81EA630
playbgm MUS_ENCOUNTER_MAY, 1
playbgm MUS_ENCOUNTER_MAY, TRUE
return
LavaridgeTown_EventScript_PlayBrendanMusic:: @ 81EA635
playbgm MUS_ENCOUNTER_BRENDAN, 1
playbgm MUS_ENCOUNTER_BRENDAN, TRUE
return
LavaridgeTown_EventScript_RivalNoticePlayer:: @ 81EA63A

View File

@ -160,7 +160,7 @@ LilycoveCity_EventScript_MotelSign:: @ 81E2D11
LilycoveCity_EventScript_MuseumSign:: @ 81E2D1A
lockall
specialvar VAR_0x8004, CountPlayerContestPaintings
specialvar VAR_0x8004, CountPlayerMuseumPaintings
switch VAR_0x8004
case 0, LilycoveCity_EventScript_MuseumSignNoPaintings
msgbox LilycoveCity_Text_MuseumSignPlayersExhibit, MSGBOX_DEFAULT
@ -241,7 +241,7 @@ LilycoveCity_EventScript_Rival:: @ 81E2DDE
end
LilycoveCity_EventScript_May:: @ 81E2DF8
playbgm MUS_ENCOUNTER_MAY, 1
playbgm MUS_ENCOUNTER_MAY, TRUE
call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_MayAskToBattleAgain
call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_MayAskToBattle
compare VAR_RESULT, NO
@ -270,7 +270,7 @@ LilycoveCity_EventScript_DeclineMayBattle:: @ 81E2E5A
end
LilycoveCity_EventScript_Brendan:: @ 81E2E6B
playbgm MUS_ENCOUNTER_BRENDAN, 1
playbgm MUS_ENCOUNTER_BRENDAN, TRUE
call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_BrendanAskToBattleAgain
call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_BrendanAskToBattle
compare VAR_RESULT, NO

View File

@ -49,7 +49,7 @@ LilycoveCity_ContestLobby_EventScript_ContestArtist:: @ 821A264
msgbox LilycoveCity_ContestLobby_Text_YourPokemonSpurredMeToPaint, MSGBOX_DEFAULT
lockall
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_ARTIST
showcontestpainting CONTEST_WINNER_ARTIST
lockall
msgbox LilycoveCity_ContestLobby_Text_ShouldITakePaintingToMuseum, MSGBOX_YESNO
compare VAR_RESULT, YES
@ -108,7 +108,7 @@ LilycoveCity_ContestLobby_EventScript_ReceivedArtistRibbon:: @ 821A314
return
LilycoveCity_ContestLobby_EventScript_UpdateMuseumPatrons:: @ 821A360
specialvar VAR_0x8004, CountPlayerContestPaintings
specialvar VAR_0x8004, CountPlayerMuseumPaintings
switch VAR_0x8004
case 1, LilycoveCity_ContestLobby_EventScript_ShowPatron1
case 2, LilycoveCity_ContestLobby_EventScript_ShowPatron2
@ -223,7 +223,7 @@ LilycoveCity_ContestLobby_EventScript_LinkContestArtist:: @ 821A436
msgbox LilycoveCity_ContestLobby_Text_YourPokemonSpurredMeToPaint, MSGBOX_DEFAULT
lockall
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_ARTIST
showcontestpainting CONTEST_WINNER_ARTIST
msgbox LilycoveCity_ContestLobby_Text_ShouldITakePaintingToMuseum, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq LilycoveCity_ContestLobby_EventScript_TakePaintingToMuseumLink
@ -511,42 +511,42 @@ LilycoveCity_ContestLobby_EventScript_NinjaBoy:: @ 821A735
LilycoveCity_ContestLobby_EventScript_ContestWinner1:: @ 821A73E
lockall
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_HALL_1
showcontestpainting CONTEST_WINNER_HALL_1
releaseall
end
LilycoveCity_ContestLobby_EventScript_ContestWinner2:: @ 821A745
lockall
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_HALL_2
showcontestpainting CONTEST_WINNER_HALL_2
releaseall
end
LilycoveCity_ContestLobby_EventScript_ContestWinner3:: @ 821A74C
lockall
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_HALL_3
showcontestpainting CONTEST_WINNER_HALL_3
releaseall
end
LilycoveCity_ContestLobby_EventScript_ContestWinner4:: @ 821A753
lockall
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_HALL_4
showcontestpainting CONTEST_WINNER_HALL_4
releaseall
end
LilycoveCity_ContestLobby_EventScript_ContestWinner5:: @ 821A75A
lockall
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_HALL_5
showcontestpainting CONTEST_WINNER_HALL_5
releaseall
end
LilycoveCity_ContestLobby_EventScript_ContestWinner6:: @ 821A761
lockall
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_HALL_6
showcontestpainting CONTEST_WINNER_HALL_6
releaseall
end

View File

@ -94,7 +94,7 @@ LilycoveCity_LilycoveMuseum_2F_Movement_FaceExhibitHall: @ 8219863
LilycoveCity_LilycoveMuseum_2F_EventScript_Curator:: @ 8219866
lockall
goto_if_set FLAG_RECEIVED_GLASS_ORNAMENT, LilycoveCity_LilycoveMuseum_2F_EventScript_ReceivedGlassOrnament
specialvar VAR_0x8004, CountPlayerContestPaintings
specialvar VAR_0x8004, CountPlayerMuseumPaintings
switch VAR_0x8004
case 1, LilycoveCity_LilycoveMuseum_2F_EventScript_AddedPainting
case 2, LilycoveCity_LilycoveMuseum_2F_EventScript_AddedPainting
@ -185,35 +185,35 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_RichBoy:: @ 821999C
LilycoveCity_LilycoveMuseum_2F_EventScript_ShowCoolPainting:: @ 82199A5
msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_MUSEUM_COOL
showcontestpainting CONTEST_WINNER_MUSEUM_COOL
releaseall
end
LilycoveCity_LilycoveMuseum_2F_EventScript_ShowBeautyPainting:: @ 82199B3
msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_MUSEUM_BEAUTY
showcontestpainting CONTEST_WINNER_MUSEUM_BEAUTY
releaseall
end
LilycoveCity_LilycoveMuseum_2F_EventScript_ShowCutePainting:: @ 82199C1
msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_MUSEUM_CUTE
showcontestpainting CONTEST_WINNER_MUSEUM_CUTE
releaseall
end
LilycoveCity_LilycoveMuseum_2F_EventScript_ShowSmartPainting:: @ 82199CF
msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_MUSEUM_SMART
showcontestpainting CONTEST_WINNER_MUSEUM_SMART
releaseall
end
LilycoveCity_LilycoveMuseum_2F_EventScript_ShowToughPainting:: @ 82199DD
msgbox LilycoveCity_LilycoveMuseum_2F_Text_ItsPaintingOfPokemon, MSGBOX_SIGN
fadescreen FADE_TO_BLACK
showcontestwinner CONTEST_WINNER_MUSEUM_TOUGH
showcontestpainting CONTEST_WINNER_MUSEUM_TOUGH
releaseall
end

View File

@ -173,7 +173,7 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_CountNotPlayersFan:: @ 821C9AE
return
LilycoveCity_PokemonTrainerFanClub_EventScript_TrySetUpTVShow:: @ 821C9B4
special TrySetUpTrainerFanClubSpecial
special TryPutTrainerFanClubOnAir
return
LilycoveCity_PokemonTrainerFanClub_EventScript_MoveMember1ToFarTable:: @ 821C9B8

View File

@ -158,7 +158,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_MeetRival:: @ 81F78E2
waitmovement 0
compare VAR_0x8008, 1
call_if_ne LittlerootTown_BrendansHouse_1F_EventScript_PlayerFaceBrendan
playbgm MUS_ENCOUNTER_BRENDAN, 1
playbgm MUS_ENCOUNTER_BRENDAN, TRUE
compare VAR_0x8008, 0
call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_BrendanApproachPlayer0
compare VAR_0x8008, 1

View File

@ -74,7 +74,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendan:: @ 81F8497
applymovement LOCALID_RIVAL, Common_Movement_Delay48
waitmovement 0
delay 10
playbgm MUS_ENCOUNTER_BRENDAN, 1
playbgm MUS_ENCOUNTER_BRENDAN, TRUE
compare VAR_FACING, DIR_NORTH
call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_MeetBrendanNorth
compare VAR_FACING, DIR_SOUTH

View File

@ -192,7 +192,7 @@ LittlerootTown_MaysHouse_1F_EventScript_MeetRival:: @ 81F8A8B
waitmovement 0
compare VAR_0x8008, 1
call_if_ne LittlerootTown_MaysHouse_1F_EventScript_PlayerFaceMay
playbgm MUS_ENCOUNTER_MAY, 1
playbgm MUS_ENCOUNTER_MAY, TRUE
compare VAR_0x8008, 0
call_if_eq LittlerootTown_MaysHouse_1F_EventScript_MayApproachPlayer0
compare VAR_0x8008, 1

View File

@ -74,7 +74,7 @@ LittlerootTown_MaysHouse_2F_EventScript_MeetMay:: @ 81F934A
applymovement LOCALID_RIVAL, Common_Movement_Delay48
waitmovement 0
delay 10
playbgm MUS_ENCOUNTER_MAY, 1
playbgm MUS_ENCOUNTER_MAY, TRUE
compare VAR_FACING, DIR_NORTH
call_if_eq LittlerootTown_MaysHouse_2F_EventScript_MeetMayNorth
compare VAR_FACING, DIR_SOUTH

View File

@ -15,7 +15,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_GROUDON_1",
"graphics_id": "OBJ_EVENT_GFX_GROUDON_FRONT",
"x": 16,
"y": 17,
"elevation": 0,
@ -25,7 +25,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "0x0",
"flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_1"
"flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON"
},
{
"graphics_id": "OBJ_EVENT_GFX_MAGMA_MEMBER_M",
@ -93,7 +93,7 @@
"flag": "FLAG_HIDE_MAGMA_HIDEOUT_GRUNTS"
},
{
"graphics_id": "OBJ_EVENT_GFX_GROUDON_2",
"graphics_id": "OBJ_EVENT_GFX_GROUDON_ASLEEP",
"x": 16,
"y": 17,
"elevation": 3,
@ -103,7 +103,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "0x0",
"flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_2"
"flag": "FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_ASLEEP"
},
{
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",

View File

@ -11,7 +11,7 @@ MagmaHideout_4F_MapScripts:: @ 823A55F
MagmaHideout_4F_EventScript_Maxie:: @ 823A560
lockall
playbgm MUS_ENCOUNTER_MAGMA, 0
playbgm MUS_ENCOUNTER_MAGMA, FALSE
msgbox MagmaHideout_4F_Text_MaxieAwakenGroudon, MSGBOX_DEFAULT
closemessage
delay 20

View File

@ -15,7 +15,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_1",
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_FRONT",
"x": 9,
"y": 22,
"elevation": 1,

View File

@ -21,7 +21,7 @@ MeteorFalls_1F_1R_EventScript_OpenStevensCave:: @ 822BD3A
MeteorFalls_1F_1R_EventScript_MagmaStealsMeteoriteScene:: @ 822BD5F
lockall
playbgm MUS_ENCOUNTER_MAGMA, 0
playbgm MUS_ENCOUNTER_MAGMA, FALSE
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceDown
waitmovement 0
delay 30
@ -50,7 +50,7 @@ MeteorFalls_1F_1R_EventScript_MagmaStealsMeteoriteScene:: @ 822BD5F
addobject LOCALID_ARCHIE
addobject LOCALID_AQUA_GRUNT_1
addobject LOCALID_AQUA_GRUNT_2
playbgm MUS_ENCOUNTER_AQUA, 0
playbgm MUS_ENCOUNTER_AQUA, FALSE
applymovement LOCALID_ARCHIE, MeteorFalls_1F_1R_Movement_ArchieArrive
applymovement LOCALID_AQUA_GRUNT_1, MeteorFalls_1F_1R_Movement_AquaGrunt1Arrive
applymovement LOCALID_AQUA_GRUNT_2, MeteorFalls_1F_1R_Movement_AquaGrunt2Arrive

View File

@ -40,7 +40,7 @@ MtChimney_EventScript_ArchieBusyFighting:: @ 822EE02
MtChimney_EventScript_Maxie:: @ 822EE0B
lockall
playbgm MUS_ENCOUNTER_MAGMA, 0
playbgm MUS_ENCOUNTER_MAGMA, FALSE
msgbox MtChimney_Text_MeteoriteWillActivateVolcano, MSGBOX_DEFAULT
applymovement LOCALID_MAXIE, Common_Movement_FacePlayer
waitmovement 0

View File

@ -39,7 +39,7 @@ MtPyre_Summit_EventScript_TeamAquaTrigger2:: @ 8232030
end
MtPyre_Summit_EventScript_TeamAquaExits:: @ 823203C
playbgm MUS_ENCOUNTER_AQUA, 0
playbgm MUS_ENCOUNTER_AQUA, FALSE
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_FaceUp
waitmovement 0
applymovement LOCALID_ARCHIE, Common_Movement_WalkInPlaceFastestDown

View File

@ -43,7 +43,7 @@ OldaleTown_EventScript_MartEmployee:: @ 81E8EFC
goto_if_set FLAG_RECEIVED_POTION_OLDALE, OldaleTown_EventScript_ExplainPotion
goto_if_set FLAG_TEMP_1, OldaleTown_EventScript_ExplainPotion
setflag FLAG_TEMP_1
playbgm MUS_FOLLOW_ME, 0
playbgm MUS_FOLLOW_ME, FALSE
msgbox OldaleTown_Text_IWorkAtPokemonMart, MSGBOX_DEFAULT
closemessage
switch VAR_FACING

View File

@ -271,7 +271,7 @@ PetalburgCity_EventScript_ShowGymToPlayer3:: @ 81DC4BE
PetalburgCity_EventScript_ShowGymToPlayer:: @ 81DC4CA
applymovement LOCALID_GYM_BOY, Common_Movement_FacePlayer
waitmovement 0
playbgm MUS_FOLLOW_ME, 0
playbgm MUS_FOLLOW_ME, FALSE
playse SE_PIN
applymovement LOCALID_GYM_BOY, Common_Movement_ExclamationMark
waitmovement 0

View File

@ -203,7 +203,7 @@ PetalburgCity_Gym_EventScript_BeginWallyTutorial:: @ 8204AAC
msgbox PetalburgCity_Gym_Text_WouldYouReallyComeWithMe, MSGBOX_DEFAULT
closemessage
setflag FLAG_DONT_TRANSITION_MUSIC
playbgm MUS_FOLLOW_ME, 0
playbgm MUS_FOLLOW_ME, FALSE
compare VAR_0x8008, 0
call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallySouth
compare VAR_0x8008, 1
@ -487,7 +487,7 @@ PetalburgCity_Gym_EventScript_WallysDadArrives:: @ 8204F13
msgbox PetalburgCity_Gym_Text_LetMeBorrowPlayer, MSGBOX_DEFAULT
closemessage
setflag FLAG_DONT_TRANSITION_MUSIC
playbgm MUS_FOLLOW_ME, 0
playbgm MUS_FOLLOW_ME, FALSE
compare VAR_0x8008, 1
call_if_eq PetalburgCity_Gym_EventScript_ExitGymWithWallysDadNorth
compare VAR_0x8008, 2

View File

@ -11,7 +11,7 @@ PetalburgWoods_EventScript_DevonResearcherLeft:: @ 822DFD7
waitmovement 0
msgbox PetalburgWoods_Text_HaveYouSeenShroomish, MSGBOX_DEFAULT
closemessage
playbgm MUS_ENCOUNTER_AQUA, 0
playbgm MUS_ENCOUNTER_AQUA, FALSE
applymovement LOCALID_GRUNT, PetalburgWoods_Movement_AquaEntrance
waitmovement 0
msgbox PetalburgWoods_Text_IWasGoingToAmbushYou, MSGBOX_DEFAULT
@ -48,7 +48,7 @@ PetalburgWoods_EventScript_DevonResearcherRight:: @ 822E079
waitmovement 0
msgbox PetalburgWoods_Text_HaveYouSeenShroomish, MSGBOX_DEFAULT
closemessage
playbgm MUS_ENCOUNTER_AQUA, 0
playbgm MUS_ENCOUNTER_AQUA, FALSE
applymovement LOCALID_GRUNT, PetalburgWoods_Movement_AquaEntrance
waitmovement 0
msgbox PetalburgWoods_Text_IWasGoingToAmbushYou, MSGBOX_DEFAULT

View File

@ -21,7 +21,7 @@ Route101_EventScript_HideMapNamePopup:: @ 81EBCD5
Route101_EventScript_StartBirchRescue:: @ 81EBCDE
lockall
playbgm MUS_HELP, 1
playbgm MUS_HELP, TRUE
msgbox Route101_Text_HelpMe, MSGBOX_DEFAULT
closemessage
setobjectxy LOCALID_BIRCH, 0, 15

View File

@ -31,7 +31,7 @@ Route103_EventScript_Rival:: @ 81EC3C1
Route103_EventScript_RivalMay:: @ 81EC3DA
msgbox Route103_Text_MayRoute103Pokemon, MSGBOX_DEFAULT
closemessage
playbgm MUS_ENCOUNTER_MAY, 1
playbgm MUS_ENCOUNTER_MAY, TRUE
applymovement LOCALID_RIVAL, Common_Movement_FacePlayer
waitmovement 0
applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark
@ -48,7 +48,7 @@ Route103_EventScript_RivalMay:: @ 81EC3DA
Route103_EventScript_RivalBrendan:: @ 81EC434
msgbox Route103_Text_BrendanRoute103Pokemon, MSGBOX_DEFAULT
closemessage
playbgm MUS_ENCOUNTER_BRENDAN, 1
playbgm MUS_ENCOUNTER_BRENDAN, TRUE
applymovement LOCALID_RIVAL, Common_Movement_FacePlayer
waitmovement 0
applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark

View File

@ -84,11 +84,11 @@ Route104_EventScript_PlayRivalMusic:: @ 81ECD11
return
Route104_EventScript_PlayMayMusic:: @ 81ECD29
playbgm MUS_ENCOUNTER_MAY, 1
playbgm MUS_ENCOUNTER_MAY, TRUE
return
Route104_EventScript_PlayBrendanMusic:: @ 81ECD2E
playbgm MUS_ENCOUNTER_BRENDAN, 1
playbgm MUS_ENCOUNTER_BRENDAN, TRUE
return
Route104_EventScript_RivalEncounter:: @ 81ECD33

View File

@ -410,11 +410,11 @@ Route110_EventScript_RivalScene:: @ 81EF76E
end
Route110_EventScript_PlayMayMusic:: @ 81EF7E1
playbgm MUS_ENCOUNTER_MAY, 1
playbgm MUS_ENCOUNTER_MAY, TRUE
return
Route110_EventScript_PlayBrendanMusic:: @ 81EF7E6
playbgm MUS_ENCOUNTER_BRENDAN, 1
playbgm MUS_ENCOUNTER_BRENDAN, TRUE
return
Route110_EventScript_MayBattle:: @ 81EF7EB

View File

@ -74,11 +74,11 @@ Route119_EventScript_RivalEncounter:: @ 81F4488
end
Route119_EventScript_PlayMayMusic:: @ 81F4501
playbgm MUS_ENCOUNTER_MAY, 1
playbgm MUS_ENCOUNTER_MAY, TRUE
return
Route119_EventScript_PlayBrendanMusic:: @ 81F4506
playbgm MUS_ENCOUNTER_BRENDAN, 1
playbgm MUS_ENCOUNTER_BRENDAN, TRUE
return
Route119_EventScript_BattleMay:: @ 81F450B

View File

@ -19,7 +19,7 @@ Route121_EventScript_SafariZoneSign:: @ 81F5E0F
Route121_EventScript_AquaGruntsMoveOut:: @ 81F5E18
lockall
playbgm MUS_ENCOUNTER_AQUA, 0
playbgm MUS_ENCOUNTER_AQUA, FALSE
applymovement LOCALID_GRUNT_2, Common_Movement_WalkInPlaceRight
waitmovement 0
msgbox Route121_Text_OkayMoveOutToMtPyre, MSGBOX_DEFAULT

View File

@ -294,7 +294,7 @@ RustboroCity_EventScript_StolenGoodsTrigger4:: @ 81E09B6
RustboroCity_EventScript_StolenGoodsScene:: @ 81E09CD
msgbox RustboroCity_Text_OutOfTheWay, MSGBOX_DEFAULT
closemessage
playbgm MUS_ENCOUNTER_AQUA, 0
playbgm MUS_ENCOUNTER_AQUA, FALSE
addobject LOCALID_GRUNT
addobject LOCALID_DEVON_EMPLOYEE
applymovement LOCALID_GRUNT, RustboroCity_Movement_GruntEscape
@ -706,11 +706,11 @@ RustboroCity_EventScript_PlayRivalMusic:: @ 81E0DD1
return
RustboroCity_EventScript_PlayMayMusic:: @ 81E0DE9
playbgm MUS_ENCOUNTER_MAY, 1
playbgm MUS_ENCOUNTER_MAY, TRUE
return
RustboroCity_EventScript_PlayBrendanMusic:: @ 81E0DEE
playbgm MUS_ENCOUNTER_BRENDAN, 1
playbgm MUS_ENCOUNTER_BRENDAN, TRUE
return
RustboroCity_EventScript_RivalTrigger0:: @ 81E0DF3

View File

@ -39,7 +39,7 @@ RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E
waitmovement 0
msgbox RustboroCity_DevonCorp_3F_Text_WordWithPresidentComeWithMe, MSGBOX_DEFAULT
closemessage
playbgm MUS_FOLLOW_ME, 0
playbgm MUS_FOLLOW_ME, FALSE
applymovement LOCALID_DEVON_EMPLOYEE, RustboroCity_DevonCorp_3F_Movement_LeadPlayerToPresident
applymovement OBJ_EVENT_ID_PLAYER, RustboroCity_DevonCorp_3F_Movement_PlayerFollowToPresident
waitmovement 0

View File

@ -316,7 +316,7 @@ RusturfTunnel_EventScript_Peeko:: @ 822D0AF
RusturfTunnel_EventScript_Grunt:: @ 822D0C2
lock
faceplayer
playbgm MUS_ENCOUNTER_AQUA, 0
playbgm MUS_ENCOUNTER_AQUA, FALSE
msgbox RusturfTunnel_Text_GruntIntro, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_GRUNT_RUSTURF_TUNNEL, RusturfTunnel_Text_GruntDefeat
msgbox RusturfTunnel_Text_GruntTakePackage, MSGBOX_DEFAULT

View File

@ -15,7 +15,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_1",
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_FRONT",
"x": 17,
"y": 38,
"elevation": 3,
@ -25,7 +25,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "0x0",
"flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1"
"flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE"
},
{
"graphics_id": "OBJ_EVENT_GFX_ARCHIE",
@ -93,7 +93,7 @@
"flag": "FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM_26"
},
{
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_2",
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_ASLEEP",
"x": 17,
"y": 38,
"elevation": 3,
@ -103,7 +103,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "0x0",
"flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_2"
"flag": "FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_ASLEEP"
}
],
"warp_events": [

View File

@ -18,7 +18,7 @@ SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: @ 8234DC9
waitmovement 0
applymovement OBJ_EVENT_ID_PLAYER, SeafloorCavern_Room9_Movement_Delay32
waitmovement 0
playbgm MUS_ENCOUNTER_AQUA, 0
playbgm MUS_ENCOUNTER_AQUA, FALSE
msgbox SeafloorCavern_Room9_Text_ArchieHoldItRightThere, MSGBOX_DEFAULT
closemessage
addobject VAR_0x8004
@ -142,7 +142,7 @@ SeafloorCavern_Room9_EventScript_ArchieAwakenKyogre:: @ 8234DC9
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_AQUA_GRUNTS
setflag FLAG_HIDE_MAP_NAME_POPUP
warp MAP_ROUTE128, 255, 38, 22

View File

@ -15,7 +15,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_2",
"graphics_id": "OBJ_EVENT_GFX_RAYQUAZA",
"x": 14,
"y": 7,
"elevation": 3,
@ -25,10 +25,10 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "0x0",
"flag": "FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_2"
"flag": "FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA"
},
{
"graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_1",
"graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_STILL",
"x": 14,
"y": 6,
"elevation": 3,
@ -38,7 +38,7 @@
"trainer_type": "TRAINER_TYPE_NONE",
"trainer_sight_or_berry_tree_id": "0",
"script": "SkyPillar_Top_EventScript_Rayquaza",
"flag": "FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT"
"flag": "FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL"
}
],
"warp_events": [

View File

@ -34,7 +34,7 @@ SkyPillar_Top_EventScript_TryShowRayquaza:: @ 8239705
return
SkyPillar_Top_EventScript_ShowRayquaza:: @ 823970F
clearflag FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT
clearflag FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL
return
SkyPillar_Top_OnWarp: @ 8239713
@ -138,17 +138,19 @@ SkyPillar_Top_EventScript_AwakenRayquaza:: @ 823979A
releaseall
end
@ Rayquaza has unusual movement frames
@ See comments, or sAnimTable_Rayquaza
SkyPillar_Top_Movement_RayquazaStir: @ 823983A
delay_16
walk_in_place_fast_left
walk_in_place_fast_left @ Coiled, awake
delay_16
delay_16
delay_16
delay_16
delay_16
walk_in_place_left
walk_in_place_left @ Coiled, mouth open
delay_16
walk_in_place_right
walk_in_place_right @ Normal, awake
delay_16
delay_16
delay_16
@ -159,11 +161,11 @@ SkyPillar_Top_Movement_RayquazaStir: @ 823983A
SkyPillar_Top_Movement_RayquazaFlyOff: @ 823984B
delay_16
walk_in_place_down
walk_in_place_down @ Coiled, asleep
delay_8
walk_in_place_right
walk_in_place_right @ Normal, awake
delay_8
walk_fastest_up
walk_fastest_up @ Fly up
slide_up
slide_up
slide_up

View File

@ -603,7 +603,7 @@ SlateportCity_EventScript_CaptStern:: @ 81DD1F8
applymovement LOCALID_CAPT_STERN, Common_Movement_WalkInPlaceFastestUp
waitmovement 0
msgbox SlateportCity_Text_OhPlayerWeMadeDiscovery, MSGBOX_DEFAULT
playbgm MUS_ENCOUNTER_AQUA, 0
playbgm MUS_ENCOUNTER_AQUA, FALSE
msgbox SlateportCity_Text_AquaWillAssumeControlOfSubmarine, MSGBOX_DEFAULT
applymovement LOCALID_COOK, Common_Movement_WalkInPlaceFastestLeft
applymovement LOCALID_FAT_MAN, Common_Movement_WalkInPlaceFastestLeft

View File

@ -11,7 +11,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern:: @ 820BB00
faceplayer
msgbox SlateportCity_OceanicMuseum_2F_Text_ThankYouForTheParts, MSGBOX_DEFAULT
closemessage
playbgm MUS_ENCOUNTER_AQUA, 1
playbgm MUS_ENCOUNTER_AQUA, TRUE
addobject LOCALID_GRUNT_1
applymovement LOCALID_GRUNT_1, SlateportCity_OceanicMuseum_2F_Movement_FirstGruntEnter
waitmovement 0

View File

@ -119,7 +119,7 @@
"flag": "0"
},
{
"graphics_id": "OBJ_EVENT_GFX_GROUDON_3",
"graphics_id": "OBJ_EVENT_GFX_GROUDON_SIDE",
"x": 28,
"y": 44,
"elevation": 0,
@ -132,7 +132,7 @@
"flag": "FLAG_HIDE_SOOTOPOLIS_CITY_GROUDON"
},
{
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_3",
"graphics_id": "OBJ_EVENT_GFX_KYOGRE_SIDE",
"x": 34,
"y": 44,
"elevation": 1,
@ -145,7 +145,7 @@
"flag": "FLAG_HIDE_SOOTOPOLIS_CITY_KYOGRE"
},
{
"graphics_id": "OBJ_EVENT_GFX_RAYQUAZA_2",
"graphics_id": "OBJ_EVENT_GFX_RAYQUAZA",
"x": 31,
"y": 41,
"elevation": 1,

View File

@ -258,8 +258,8 @@ SootopolisCity_EventScript_LegendariesSceneFromPokeCenter:: @ 81E5946
waitmovement 0
waitse
playmoncry SPECIES_GROUDON, 2
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_GroudonAttack
applymovement LOCALID_GROUDON, SootopolisCity_Movement_KyogreDefend
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreDefend
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonAttack
waitmovement 0
setvar VAR_0x8004, 1 @ vertical pan
setvar VAR_0x8005, 1 @ horizontal pan
@ -358,8 +358,8 @@ SootopolisCity_EventScript_LegendariesSceneFromDive:: @ 81E5A82
waitmovement 0
waitse
playmoncry SPECIES_GROUDON, 2
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_GroudonAttack
applymovement LOCALID_GROUDON, SootopolisCity_Movement_KyogreDefend
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreDefend
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonAttack
waitmovement 0
setvar VAR_0x8004, 1 @ vertical pan
setvar VAR_0x8005, 1 @ horizontal pan
@ -431,7 +431,7 @@ SootopolisCity_Movement_KyogreAttack: @ 81E5BB8
clear_affine_anim
step_end
SootopolisCity_Movement_GroudonAttack: @ 81E5BC2
SootopolisCity_Movement_KyogreDefend: @ 81E5BC2
delay_16
delay_16
delay_16
@ -464,7 +464,7 @@ SootopolisCity_Movement_KyogreIdle: @ 81E5BD6
walk_in_place_slow_left
step_end
SootopolisCity_Movement_KyogreDefend: @ 81E5BDD
SootopolisCity_Movement_GroudonAttack: @ 81E5BDD
walk_in_place_slow_right
walk_in_place_slow_right
walk_in_place_slow_right

View File

@ -15,7 +15,7 @@
"connections": null,
"object_events": [
{
"graphics_id": "OBJ_EVENT_GFX_GROUDON_1",
"graphics_id": "OBJ_EVENT_GFX_GROUDON_FRONT",
"x": 17,
"y": 22,
"elevation": 1,

View File

@ -1,41 +1,41 @@
{
"group_order": [
"gMapGroup0",
"gMapGroup1",
"gMapGroup2",
"gMapGroup3",
"gMapGroup4",
"gMapGroup5",
"gMapGroup6",
"gMapGroup7",
"gMapGroup8",
"gMapGroup9",
"gMapGroup10",
"gMapGroup11",
"gMapGroup12",
"gMapGroup13",
"gMapGroup14",
"gMapGroup15",
"gMapGroup16",
"gMapGroup17",
"gMapGroup18",
"gMapGroup19",
"gMapGroup20",
"gMapGroup21",
"gMapGroup22",
"gMapGroup23",
"gMapGroup24",
"gMapGroup25",
"gMapGroup26",
"gMapGroup27",
"gMapGroup28",
"gMapGroup29",
"gMapGroup30",
"gMapGroup31",
"gMapGroup32",
"gMapGroup33"
"gMapGroup_TownsAndRoutes",
"gMapGroup_IndoorLittleroot",
"gMapGroup_IndoorOldale",
"gMapGroup_IndoorDewford",
"gMapGroup_IndoorLavaridge",
"gMapGroup_IndoorFallarbor",
"gMapGroup_IndoorVerdanturf",
"gMapGroup_IndoorPacifidlog",
"gMapGroup_IndoorPetalburg",
"gMapGroup_IndoorSlateport",
"gMapGroup_IndoorMauville",
"gMapGroup_IndoorRustboro",
"gMapGroup_IndoorFortree",
"gMapGroup_IndoorLilycove",
"gMapGroup_IndoorMossdeep",
"gMapGroup_IndoorSootopolis",
"gMapGroup_IndoorEverGrande",
"gMapGroup_IndoorRoute104",
"gMapGroup_IndoorRoute111",
"gMapGroup_IndoorRoute112",
"gMapGroup_IndoorRoute114",
"gMapGroup_IndoorRoute116",
"gMapGroup_IndoorRoute117",
"gMapGroup_IndoorRoute121",
"gMapGroup_Dungeons",
"gMapGroup_IndoorDynamic",
"gMapGroup_SpecialArea",
"gMapGroup_IndoorRoute104Prototype",
"gMapGroup_IndoorRoute109",
"gMapGroup_IndoorRoute110",
"gMapGroup_IndoorRoute113",
"gMapGroup_IndoorRoute123",
"gMapGroup_IndoorRoute119",
"gMapGroup_IndoorRoute124"
],
"gMapGroup0": [
"gMapGroup_TownsAndRoutes": [
"PetalburgCity",
"SlateportCity",
"MauvilleCity",
@ -94,21 +94,21 @@
"Underwater_Route105",
"Underwater_Route125"
],
"gMapGroup1": [
"gMapGroup_IndoorLittleroot": [
"LittlerootTown_BrendansHouse_1F",
"LittlerootTown_BrendansHouse_2F",
"LittlerootTown_MaysHouse_1F",
"LittlerootTown_MaysHouse_2F",
"LittlerootTown_ProfessorBirchsLab"
],
"gMapGroup2": [
"gMapGroup_IndoorOldale": [
"OldaleTown_House1",
"OldaleTown_House2",
"OldaleTown_PokemonCenter_1F",
"OldaleTown_PokemonCenter_2F",
"OldaleTown_Mart"
],
"gMapGroup3": [
"gMapGroup_IndoorDewford": [
"DewfordTown_House1",
"DewfordTown_PokemonCenter_1F",
"DewfordTown_PokemonCenter_2F",
@ -116,7 +116,7 @@
"DewfordTown_Hall",
"DewfordTown_House2"
],
"gMapGroup4": [
"gMapGroup_IndoorLavaridge": [
"LavaridgeTown_HerbShop",
"LavaridgeTown_Gym_1F",
"LavaridgeTown_Gym_B1F",
@ -125,7 +125,7 @@
"LavaridgeTown_PokemonCenter_1F",
"LavaridgeTown_PokemonCenter_2F"
],
"gMapGroup5": [
"gMapGroup_IndoorFallarbor": [
"FallarborTown_Mart",
"FallarborTown_BattleTentLobby",
"FallarborTown_BattleTentCorridor",
@ -135,7 +135,7 @@
"FallarborTown_CozmosHouse",
"FallarborTown_MoveRelearnersHouse"
],
"gMapGroup6": [
"gMapGroup_IndoorVerdanturf": [
"VerdanturfTown_BattleTentLobby",
"VerdanturfTown_BattleTentCorridor",
"VerdanturfTown_BattleTentBattleRoom",
@ -146,7 +146,7 @@
"VerdanturfTown_FriendshipRatersHouse",
"VerdanturfTown_House"
],
"gMapGroup7": [
"gMapGroup_IndoorPacifidlog": [
"PacifidlogTown_PokemonCenter_1F",
"PacifidlogTown_PokemonCenter_2F",
"PacifidlogTown_House1",
@ -155,7 +155,7 @@
"PacifidlogTown_House4",
"PacifidlogTown_House5"
],
"gMapGroup8": [
"gMapGroup_IndoorPetalburg": [
"PetalburgCity_WallysHouse",
"PetalburgCity_Gym",
"PetalburgCity_House1",
@ -164,7 +164,7 @@
"PetalburgCity_PokemonCenter_2F",
"PetalburgCity_Mart"
],
"gMapGroup9": [
"gMapGroup_IndoorSlateport": [
"SlateportCity_SternsShipyard_1F",
"SlateportCity_SternsShipyard_2F",
"SlateportCity_BattleTentLobby",
@ -180,7 +180,7 @@
"SlateportCity_PokemonCenter_2F",
"SlateportCity_Mart"
],
"gMapGroup10": [
"gMapGroup_IndoorMauville": [
"MauvilleCity_Gym",
"MauvilleCity_BikeShop",
"MauvilleCity_House1",
@ -190,7 +190,7 @@
"MauvilleCity_PokemonCenter_2F",
"MauvilleCity_Mart"
],
"gMapGroup11": [
"gMapGroup_IndoorRustboro": [
"RustboroCity_DevonCorp_1F",
"RustboroCity_DevonCorp_2F",
"RustboroCity_DevonCorp_3F",
@ -209,7 +209,7 @@
"RustboroCity_Flat2_3F",
"RustboroCity_House3"
],
"gMapGroup12": [
"gMapGroup_IndoorFortree": [
"FortreeCity_House1",
"FortreeCity_Gym",
"FortreeCity_PokemonCenter_1F",
@ -221,7 +221,7 @@
"FortreeCity_House5",
"FortreeCity_DecorationShop"
],
"gMapGroup13": [
"gMapGroup_IndoorLilycove": [
"LilycoveCity_CoveLilyMotel_1F",
"LilycoveCity_CoveLilyMotel_2F",
"LilycoveCity_LilycoveMuseum_1F",
@ -246,7 +246,7 @@
"LilycoveCity_DepartmentStoreRooftop",
"LilycoveCity_DepartmentStoreElevator"
],
"gMapGroup14": [
"gMapGroup_IndoorMossdeep": [
"MossdeepCity_Gym",
"MossdeepCity_House1",
"MossdeepCity_House2",
@ -261,7 +261,7 @@
"MossdeepCity_GameCorner_1F",
"MossdeepCity_GameCorner_B1F"
],
"gMapGroup15": [
"gMapGroup_IndoorSootopolis": [
"SootopolisCity_Gym_1F",
"SootopolisCity_Gym_B1F",
"SootopolisCity_PokemonCenter_1F",
@ -278,7 +278,7 @@
"SootopolisCity_MysteryEventsHouse_1F",
"SootopolisCity_MysteryEventsHouse_B1F"
],
"gMapGroup16": [
"gMapGroup_IndoorEverGrande": [
"EverGrandeCity_SidneysRoom",
"EverGrandeCity_PhoebesRoom",
"EverGrandeCity_GlaciasRoom",
@ -295,33 +295,33 @@
"EverGrandeCity_PokemonCenter_2F",
"EverGrandeCity_PokemonLeague_2F"
],
"gMapGroup17": [
"gMapGroup_IndoorRoute104": [
"Route104_MrBrineysHouse",
"Route104_PrettyPetalFlowerShop"
],
"gMapGroup18": [
"gMapGroup_IndoorRoute111": [
"Route111_WinstrateFamilysHouse",
"Route111_OldLadysRestStop"
],
"gMapGroup19": [
"gMapGroup_IndoorRoute112": [
"Route112_CableCarStation",
"MtChimney_CableCarStation"
],
"gMapGroup20": [
"gMapGroup_IndoorRoute114": [
"Route114_FossilManiacsHouse",
"Route114_FossilManiacsTunnel",
"Route114_LanettesHouse"
],
"gMapGroup21": [
"gMapGroup_IndoorRoute116": [
"Route116_TunnelersRestHouse"
],
"gMapGroup22": [
"gMapGroup_IndoorRoute117": [
"Route117_PokemonDayCare"
],
"gMapGroup23": [
"gMapGroup_IndoorRoute121": [
"Route121_SafariZoneEntrance"
],
"gMapGroup24": [
"gMapGroup_Dungeons": [
"MeteorFalls_1F_1R",
"MeteorFalls_1F_2R",
"MeteorFalls_B1F_1R",
@ -431,7 +431,7 @@
"AlteringCave",
"MeteorFalls_StevensCave"
],
"gMapGroup25": [
"gMapGroup_IndoorDynamic": [
"SecretBase_RedCave1",
"SecretBase_BrownCave1",
"SecretBase_BlueCave1",
@ -494,7 +494,7 @@
"BattlePyramidSquare16",
"UnionRoom"
],
"gMapGroup26": [
"gMapGroup_SpecialArea": [
"SafariZone_Northwest",
"SafariZone_North",
"SafariZone_Southwest",
@ -585,14 +585,14 @@
"NavelRock_Bottom",
"TrainerHill_Elevator"
],
"gMapGroup27": [
"gMapGroup_IndoorRoute104Prototype": [
"Route104_Prototype",
"Route104_PrototypePrettyPetalFlowerShop"
],
"gMapGroup28": [
"gMapGroup_IndoorRoute109": [
"Route109_SeashoreHouse"
],
"gMapGroup29": [
"gMapGroup_IndoorRoute110": [
"Route110_TrickHouseEntrance",
"Route110_TrickHouseEnd",
"Route110_TrickHouseCorridor",
@ -607,18 +607,18 @@
"Route110_SeasideCyclingRoadNorthEntrance",
"Route110_SeasideCyclingRoadSouthEntrance"
],
"gMapGroup30": [
"gMapGroup_IndoorRoute113": [
"Route113_GlassWorkshop"
],
"gMapGroup31": [
"gMapGroup_IndoorRoute123": [
"Route123_BerryMastersHouse"
],
"gMapGroup32": [
"gMapGroup_IndoorRoute119": [
"Route119_WeatherInstitute_1F",
"Route119_WeatherInstitute_2F",
"Route119_House"
],
"gMapGroup33": [
"gMapGroup_IndoorRoute124": [
"Route124_DivingTreasureHuntersHouse"
],
"connections_include_order": [

View File

@ -119,7 +119,7 @@ gScriptCmdTable:: @ 81DB67C
.4byte ScrCmd_drawboxtext @ 0x74
.4byte ScrCmd_showmonpic @ 0x75
.4byte ScrCmd_hidemonpic @ 0x76
.4byte ScrCmd_showcontestwinner @ 0x77
.4byte ScrCmd_showcontestpainting @ 0x77
.4byte ScrCmd_braillemessage @ 0x78
.4byte ScrCmd_givemon @ 0x79
.4byte ScrCmd_giveegg @ 0x7a

View File

@ -889,7 +889,7 @@ RecordCorner_EventScript_AlreadyMixed:: @ 82774E0
closemessage
end
EventScript_ConfirmLeaveTradeRoom:: @ 82774EF
EventScript_ConfirmLeaveCableClubRoom:: @ 82774EF
msgbox Text_TerminateLinkConfirmation, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq EventScript_TerminateLink

View File

@ -916,7 +916,7 @@ ContestHall_EventScript_ContestResults:: @ 827A8A5
setvar VAR_TEMP_9, 1
showcontestresults
setvar VAR_TEMP_9, 0
playbgm MUS_CONTEST_WINNER, 0
playbgm MUS_CONTEST_WINNER, FALSE
return
ContestHall_EventScript_ThatsItForJudging:: @ 827A8FB

View File

@ -1,6 +1,6 @@
@ Gabby and Ty always move to the same spots for the first 5 battles
@ From the 6th battle onwards, they move randomly between locations 6-8
@ Note: The local IDs of Gabby and Ty are hard-coded in GabbyAndTySetScriptVarsToObjectEventLocalIds
@ Note: The local IDs of Gabby and Ty are hard-coded in GetGabbyAndTyLocalIds
GabbyAndTy_EventScript_UpdateLocation:: @ 828CCC7
cleartrainerflag TRAINER_GABBY_AND_TY_6
specialvar VAR_RESULT, GabbyAndTyGetBattleNum
@ -198,7 +198,7 @@ GabbyAndTy_EventScript_TyBattle6:: @ 828CF36
GabbyAndTy_EventScript_FirstInterview:: @ 828CF56
special GabbyAndTyBeforeInterview
special GabbyAndTySetScriptVarsToObjectEventLocalIds
special GetGabbyAndTyLocalIds
compare VAR_FACING, DIR_NORTH
call_if_eq GabbyAndTy_EventScript_FacePlayerNorth
compare VAR_FACING, DIR_SOUTH
@ -229,7 +229,7 @@ GabbyAndTy_EventScript_FacePlayerEast:: @ 828CFB1
GabbyAndTy_EventScript_RequestInterview:: @ 828CFC3
special GabbyAndTyBeforeInterview
special GabbyAndTySetScriptVarsToObjectEventLocalIds
special GetGabbyAndTyLocalIds
compare VAR_FACING, DIR_NORTH
call_if_eq GabbyAndTy_EventScript_FacePlayerNorth
compare VAR_FACING, DIR_SOUTH

View File

@ -179,8 +179,8 @@ EventScript_ResetAllMapFlags:: @ 82715DE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_1
setflag FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_1
setflag FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE
setflag FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON
setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_CAPTAIN_STERN
setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_AQUA_GRUNT
setflag FLAG_HIDE_SLATEPORT_CITY_HARBOR_ARCHIE
@ -271,6 +271,6 @@ EventScript_ResetAllMapFlags:: @ 82715DE
setflag FLAG_HIDE_FALLARBOR_TOWN_BATTLE_TENT_SCOTT
setflag FLAG_HIDE_EVER_GRANDE_POKEMON_CENTER_1F_SCOTT
setflag FLAG_HIDE_SKY_PILLAR_WALLACE
setflag FLAG_HIDE_RAYQUAZA_SKY_TOWER_SUMMIT
setflag FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL
call EventScript_ResetAllBerries
end

View File

@ -159,7 +159,7 @@ PlayersHouse_1F_EventScript_PetalburgGymReportMale:: @ 829286D
call PlayersHouse_1F_EventScript_MomNoticeGymBroadcast
applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerApproachTVForGymMale
waitmovement 0
playbgm MUS_ENCOUNTER_INTERVIEWER, 0
playbgm MUS_ENCOUNTER_INTERVIEWER, FALSE
msgbox PlayersHouse_1F_Text_MaybeDadWillBeOn, MSGBOX_DEFAULT
closemessage
applymovement VAR_0x8005, PlayersHouse_1F_Movement_MomMakeRoomToSeeTVMale
@ -184,7 +184,7 @@ PlayersHouse_1F_EventScript_PetalburgGymReportFemale:: @ 82928DC
call PlayersHouse_1F_EventScript_MomNoticeGymBroadcast
applymovement OBJ_EVENT_ID_PLAYER, PlayersHouse_1F_Movement_PlayerApproachTVForGymFemale
waitmovement 0
playbgm MUS_ENCOUNTER_INTERVIEWER, 0
playbgm MUS_ENCOUNTER_INTERVIEWER, FALSE
msgbox PlayersHouse_1F_Text_MaybeDadWillBeOn, MSGBOX_DEFAULT
closemessage
applymovement VAR_0x8005, PlayersHouse_1F_Movement_MomMakeRoomToSeeTVFemale

View File

@ -2,14 +2,14 @@ EventScript_TV:: @ 827EE0B
lockall
incrementgamestat GAME_STAT_WATCHED_TV
special ResetTVShowState
specialvar VAR_RESULT, CheckForBigMovieOrEmergencyNewsOnTV
compare VAR_RESULT, 2
specialvar VAR_RESULT, CheckForPlayersHouseNews
compare VAR_RESULT, PLAYERS_HOUSE_TV_MOVIE
goto_if_eq EventScript_PlayersHouseMovie
compare VAR_RESULT, 1
compare VAR_RESULT, PLAYERS_HOUSE_TV_LATI
goto_if_eq EventScript_PlayersHouseLatiNewsFlash
goto_if_unset FLAG_SYS_TV_START, EventScript_MomDadMightLikeThis1
goto_if_set FLAG_SYS_TV_WATCH, EventScript_MomDadMightLikeThis1
specialvar VAR_RESULT, IsTVShowInSearchOfTrainersAiring
specialvar VAR_RESULT, IsGabbyAndTyShowOnTheAir
compare VAR_RESULT, TRUE
goto_if_eq EventScript_DoInSearchOfTrainers
goto EventScript_TryDoPokeNews

View File

@ -83,20 +83,20 @@ gSpecials:: @ 81DBA64
def_special IsLeadMonNicknamedOrNotEnglish
def_special SetContestCategoryStringVarForInterview
def_special GetNextActiveShowIfMassOutbreak
def_special TV_IsScriptShowKindAlreadyInQueue
def_special CheckForBigMovieOrEmergencyNewsOnTV
def_special IsTVShowAlreadyInQueue
def_special CheckForPlayersHouseNews
def_special GetMomOrDadStringForTVMessage
def_special ResetTVShowState
def_special GetContestWinnerId
def_special GetContestPlayerId
def_special sub_80F8814
def_special GetNpcContestantLocalId
def_special BufferContestWinnerTrainerName
def_special BufferContestWinnerMonName
def_special BufferContestTrainerAndMonNames
def_special GetContestMonConditionRanking
def_special SetContestTrainerGfxIds
def_special TryEnterContestMon
def_special sub_80F8970
def_special GetContestantNamesAtRank
def_special SetLinkContestPlayerGfx
def_special GetContestMonCondition
def_special HasMonWonThisContestBefore
@ -147,9 +147,9 @@ gSpecials:: @ 81DBA64
def_special CountPartyAliveNonEggMons_IgnoreVar0x8004Slot
def_special ShouldReadyContestArtist
def_special SaveMuseumContestPainting
def_special DoesContestCategoryHaveWinner
def_special CountPlayerContestPaintings
def_special ShowContestWinnerPainting
def_special DoesContestCategoryHaveMuseumPainting
def_special CountPlayerMuseumPaintings
def_special ShowContestPainting @ Unused, redundant with showcontestpainting command
def_special MauvilleGymSetDefaultBarriers
def_special MauvilleGymPressSwitch
def_special ShowFieldMessageStringVar4
@ -187,10 +187,10 @@ gSpecials:: @ 81DBA64
def_special GabbyAndTyAfterInterview
def_special GabbyAndTyBeforeInterview
def_special DoTVShowInSearchOfTrainers
def_special IsTVShowInSearchOfTrainersAiring
def_special IsGabbyAndTyShowOnTheAir
def_special GabbyAndTyGetLastQuote
def_special GabbyAndTyGetLastBattleTrivia
def_special GabbyAndTySetScriptVarsToObjectEventLocalIds
def_special GetGabbyAndTyLocalIds
def_special GetBattleOutcome
def_special GetDaycareMonNicknames
def_special GetDaycareState
@ -354,7 +354,7 @@ gSpecials:: @ 81DBA64
def_special SetChampionSaveWarp
def_special TryPutTreasureInvestigatorsOnAir
def_special TryPutLotteryWinnerReportOnAir
def_special TrySetUpTrainerFanClubSpecial
def_special TryPutTrainerFanClubOnAir
def_special ShouldHideFanClubInterviewer
def_special ShowGlassWorkshopMenu
def_special PutFanClubSpecialOnTheAir

View File

@ -1,258 +0,0 @@
gBerryDescriptionPart1_Cheri:: @ 8589AE4
.string "Blooms with delicate pretty flowers.$"
gBerryDescriptionPart2_Cheri:: @ 8589B09
.string "The bright red BERRY is very spicy.$"
gBerryDescriptionPart1_Chesto:: @ 8589B2D
.string "The BERRY's thick skin and fruit are$"
gBerryDescriptionPart2_Chesto:: @ 8589B52
.string "very tough. It is dry-tasting all over.$"
gBerryDescriptionPart1_Pecha:: @ 8589B7A
.string "Very sweet and delicious.$"
gBerryDescriptionPart2_Pecha:: @ 8589B94
.string "Also very tender - handle with care.$"
gBerryDescriptionPart1_Rawst:: @ 8589BB9
.string "If the leaves grow long and curly,$"
gBerryDescriptionPart2_Rawst:: @ 8589BDC
.string "the BERRY seems to grow very bitter.$"
gBerryDescriptionPart1_Aspear:: @ 8589C01
.string "The hard BERRY is dense with a rich$"
gBerryDescriptionPart2_Aspear:: @ 8589C25
.string "juice. It is quite sour.$"
gBerryDescriptionPart1_Leppa:: @ 8589C3E
.string "Grows slower than CHERI and others.$"
gBerryDescriptionPart2_Leppa:: @ 8589C62
.string "The smaller the BERRY, the tastier.$"
gBerryDescriptionPart1_Oran:: @ 8589C86
.string "A peculiar BERRY with a mix of flavors.$"
gBerryDescriptionPart2_Oran:: @ 8589CAE
.string "BERRIES grow in half a day.$"
gBerryDescriptionPart1_Persim:: @ 8589CCA
.string "Loves sunlight. The BERRY's color$"
gBerryDescriptionPart2_Persim:: @ 8589CEC
.string "grows vivid when exposed to the sun.$"
gBerryDescriptionPart1_Lum:: @ 8589D11
.string "Slow to grow. If raised with loving$"
gBerryDescriptionPart2_Lum:: @ 8589D35
.string "care, it may grow two BERRIES.$"
gBerryDescriptionPart1_Sitrus:: @ 8589D54
.string "Closely related to ORAN. The large$"
gBerryDescriptionPart2_Sitrus:: @ 8589D77
.string "BERRY has a well-rounded flavor.$"
gBerryDescriptionPart1_Figy:: @ 8589D98
.string "The BERRY, which looks chewed up,$"
gBerryDescriptionPart2_Figy:: @ 8589DBA
.string "brims with spicy substances.$"
gBerryDescriptionPart1_Wiki:: @ 8589DD7
.string "The BERRY is said to have grown lumpy$"
gBerryDescriptionPart2_Wiki:: @ 8589DFD
.string "to help POKéMON grip it.$"
gBerryDescriptionPart1_Mago:: @ 8589E16
.string "The BERRY turns curvy as it grows.$"
gBerryDescriptionPart2_Mago:: @ 8589E39
.string "The curvier, the sweeter and tastier.$"
gBerryDescriptionPart1_Aguav:: @ 8589E5F
.string "The flower is dainty. It is rare in its$"
gBerryDescriptionPart2_Aguav:: @ 8589E87
.string "ability to grow without light.$"
gBerryDescriptionPart1_Iapapa:: @ 8589EA6
.string "The BERRY is very big and sour.$"
gBerryDescriptionPart2_Iapapa:: @ 8589EC6
.string "It takes at least a day to grow.$"
gBerryDescriptionPart1_Razz:: @ 8589EE7
.string "The red BERRY tastes slightly spicy.$"
gBerryDescriptionPart2_Razz:: @ 8589F0C
.string "It grows quickly in just four hours.$"
gBerryDescriptionPart1_Bluk:: @ 8589F31
.string "The BERRY is blue on the outside, but$"
gBerryDescriptionPart2_Bluk:: @ 8589F57
.string "it blackens the mouth when eaten.$"
gBerryDescriptionPart1_Nanab:: @ 8589F79
.string "This BERRY was the seventh$"
gBerryDescriptionPart2_Nanab:: @ 8589F94
.string "discovered in the world. It is sweet.$"
gBerryDescriptionPart1_Wepear:: @ 8589FBA
.string "The flower is small and white. It has a$"
gBerryDescriptionPart2_Wepear:: @ 8589FE2
.string "delicate balance of bitter and sour.$"
gBerryDescriptionPart1_Pinap:: @ 858A007
.string "Weak against wind and cold.$"
gBerryDescriptionPart2_Pinap:: @ 858A023
.string "The fruit is spicy and the skin, sour.$"
gBerryDescriptionPart1_Pomeg:: @ 858A04A
.string "However much it is watered,$"
gBerryDescriptionPart2_Pomeg:: @ 858A066
.string "it only grows up to six BERRIES.$"
gBerryDescriptionPart1_Kelpsy:: @ 858A087
.string "A rare variety shaped like a root.$"
gBerryDescriptionPart2_Kelpsy:: @ 858A0AA
.string "Grows a very large flower.$"
gBerryDescriptionPart1_Qualot:: @ 858A0C5
.string "Loves water. Grows strong even in$"
gBerryDescriptionPart2_Qualot:: @ 858A0E7
.string "locations with constant rainfall.$"
gBerryDescriptionPart1_Hondew:: @ 858A109
.string "A BERRY that is very valuable and$"
gBerryDescriptionPart2_Hondew:: @ 858A12B
.string "rarely seen. It is very delicious.$"
gBerryDescriptionPart1_Grepa:: @ 858A14E
.string "Despite its tenderness and round$"
gBerryDescriptionPart2_Grepa:: @ 858A16F
.string "shape, the BERRY is unimaginably sour.$"
gBerryDescriptionPart1_Tamato:: @ 858A196
.string "The BERRY is lip-bendingly spicy.$"
gBerryDescriptionPart2_Tamato:: @ 858A1B8
.string "It takes time to grow.$"
gBerryDescriptionPart1_Cornn:: @ 858A1CF
.string "A BERRY from an ancient era. May not$"
gBerryDescriptionPart2_Cornn:: @ 858A1F4
.string "grow unless planted in quantity.$"
gBerryDescriptionPart1_Magost:: @ 858A215
.string "A BERRY that is widely said to have$"
gBerryDescriptionPart2_Magost:: @ 858A239
.string "a finely balanced flavor.$"
gBerryDescriptionPart1_Rabuta:: @ 858A253
.string "A rare variety that is overgrown with$"
gBerryDescriptionPart2_Rabuta:: @ 858A279
.string "hair. It is quite bitter.$"
gBerryDescriptionPart1_Nomel:: @ 858A293
.string "Quite sour. Just one bite makes it$"
gBerryDescriptionPart2_Nomel:: @ 858A2B6
.string "impossible to taste for three days.$"
gBerryDescriptionPart1_Spelon:: @ 858A2DA
.string "The vividly red BERRY is very spicy.$"
gBerryDescriptionPart2_Spelon:: @ 858A2FF
.string "Its warts secrete a spicy substance.$"
gBerryDescriptionPart1_Pamtre:: @ 858A324
.string "Drifts on the sea from somewhere.$"
gBerryDescriptionPart2_Pamtre:: @ 858A346
.string "It is thought to grow elsewhere.$"
gBerryDescriptionPart1_Watmel:: @ 858A367
.string "A huge BERRY, with some over 20$"
gBerryDescriptionPart2_Watmel:: @ 858A387
.string "inches discovered. Exceedingly sweet.$"
gBerryDescriptionPart1_Durin:: @ 858A3AD
.string "Bitter to even look at. It is so$"
gBerryDescriptionPart2_Durin:: @ 858A3CE
.string "bitter, no one has ever eaten it as is.$"
gBerryDescriptionPart1_Belue:: @ 858A3F6
.string "It is glossy and looks delicious, but$"
gBerryDescriptionPart2_Belue:: @ 858A41C
.string "it is awfully sour. Takes time to grow.$"
gBerryDescriptionPart1_Liechi:: @ 858A444
.string "A mysterious BERRY. It is rumored to$"
gBerryDescriptionPart2_Liechi:: @ 858A469
.string "contain the power of the sea.$"
gBerryDescriptionPart1_Ganlon:: @ 858A487
.string "A mysterious BERRY. It is rumored to$"
gBerryDescriptionPart2_Ganlon:: @ 858A4AC
.string "contain the power of the land.$"
gBerryDescriptionPart1_Salac:: @ 858A4CB
.string "A mysterious BERRY. It is rumored to$"
gBerryDescriptionPart2_Salac:: @ 858A4F0
.string "contain the power of the sky.$"
gBerryDescriptionPart1_Petaya:: @ 858A50E
.string "A mysterious BERRY. It is rumored to$"
gBerryDescriptionPart2_Petaya:: @ 858A533
.string "contain the power of all living things.$"
gBerryDescriptionPart1_Apicot:: @ 858A55B
.string "A very mystifying BERRY. No telling$"
gBerryDescriptionPart2_Apicot:: @ 858A57F
.string "what may happen or how it can be used.$"
gBerryDescriptionPart1_Lansat:: @ 858A5A6
.string "Said to be a legendary BERRY.$"
gBerryDescriptionPart2_Lansat:: @ 858A5C4
.string "Holding it supposedly brings joy.$"
gBerryDescriptionPart1_Starf:: @ 858A5E6
.string "So strong, it was abandoned at the$"
gBerryDescriptionPart2_Starf:: @ 858A609
.string "world's edge. Considered a mirage.$"
gBerryDescriptionPart1_Enigma:: @ 858A62C
.string "A completely enigmatic BERRY.$"
gBerryDescriptionPart2_Enigma:: @ 858A64A
.string "Appears to have the power of stars.$"

View File

@ -1,4 +1,4 @@
gContestPaintingCaption:: @ 827EA0C
gContestHallPaintingCaption:: @ 827EA0C
.string "{STR_VAR_1}\n"
.string "{STR_VAR_2}'s {STR_VAR_3}$"

View File

@ -2925,7 +2925,7 @@ gTVInSearchOfTrainersText08:: @ 0828C011
.string "That's all for today!\n"
.string "See you again on our next broadcast!$"
gTVPokemonContestLiveUpdates2Text00:: @ 0828C137
ContestLadyShow_Text_Intro:: @ 0828C137
.string "“POKéMON CONTEST LIVE UPDATES!”\p"
.string "MC: Sorry to interrupt the regular\n"
.string "programming, and thanks for joining us!\p"
@ -2940,7 +2940,7 @@ gTVPokemonContestLiveUpdates2Text00:: @ 0828C137
.string "Spectators: ?!!!!\n"
.string "?!!!!$"
gTVPokemonContestLiveUpdates2Text01:: @ 0828C28C
ContestLadyShow_Text_Won:: @ 0828C28C
.string "MC: Excuse me!\n"
.string "Thanks for joining us on live TV!\p"
.string "May I congratulate you on your win?\p"
@ -2959,7 +2959,7 @@ gTVPokemonContestLiveUpdates2Text01:: @ 0828C28C
.string "We did it!\l"
.string "Thank you!$"
gTVPokemonContestLiveUpdates2Text02:: @ 0828C45B
ContestLadyShow_Text_Lost:: @ 0828C45B
.string "MC: Excuse me!\n"
.string "Thanks for joining us on live TV!\p"
.string "You must be disappointed by that turn\n"
@ -2979,7 +2979,7 @@ gTVPokemonContestLiveUpdates2Text02:: @ 0828C45B
.string "Uh… That's all the time we have today!\n"
.string "Thanks for tuning in!$"
gTVPokemonContestLiveUpdates2Text03:: @ 0828C662
ContestLadyShow_Text_LostBadly:: @ 0828C662
.string "MC: Excuse me!\n"
.string "Thanks for joining us on live TV!\p"
.string "How did your CONTEST appearance go?\p"

View File

@ -0,0 +1,41 @@
### Setting up WSL1 (Legacy Portion)
1. Certain packages are required to build pokeemerald. Install these packages by running the following command:
```bash
sudo apt install build-essential git libpng-dev gdebi-core
```
> Note: If the above command does not work, try the above command but replacing `apt` with `apt-get`.
2. Once the packages have finished installing, download the devkitPro pacman package [here](https://github.com/devkitPro/pacman/releases). The file to download is `devkitpro-pacman.amd64.deb`.
3. WSL has its own file system that's not accessible from Windows, but Windows files *are* accessible from WSL. To install the devkitPro package, you'll need to change to the **current working directory** where the package file was saved.
For example, if the package file was saved to **C:\Users\\_\<user>_\Downloads** (the Downloads location for most users), enter this command, where *\<user>* is your **Windows** username:
```bash
cd /mnt/c/Users/<user>/Downloads
```
> Note 1: The Windows C:\ drive is called /mnt/c/ in WSL.
> Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "/mnt/c/users/<user>/Downloads folder"`.
> Note 3: Windows path names are case-insensitive so adhering to capitalization isn't needed
4. Once the directory has been changed to the folder containing the devkitPro pacman package, 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.
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
```
Proceed to [Choosing where to store pokeemerald (WSL1) of the current INSTALL.md](/INSTALL.md#choosing-where-to-store-pokeemerald-WSL1).

View File

@ -55,7 +55,7 @@ void ResetBgs(void)
static void SetBgModeInternal(u8 bgMode)
{
sGpuBgConfigs.bgVisibilityAndMode &= 0xFFF8;
sGpuBgConfigs.bgVisibilityAndMode &= ~0x7;
sGpuBgConfigs.bgVisibilityAndMode |= bgMode;
}
@ -66,13 +66,11 @@ u8 GetBgMode(void)
void ResetBgControlStructs(void)
{
struct BgConfig* bgConfigs = &sGpuBgConfigs.configs[0];
struct BgConfig zeroedConfig = sZeroedBgControlStruct;
int i;
for (i = 0; i < NUM_BACKGROUNDS; i++)
{
bgConfigs[i] = zeroedConfig;
sGpuBgConfigs.configs[i] = sZeroedBgControlStruct;
}
}
@ -175,36 +173,30 @@ u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode)
u16 offset;
s8 cursor;
if (!IsInvalidBg(bg) && sGpuBgConfigs.configs[bg].visible)
{
switch (mode)
{
case 0x1:
offset = sGpuBgConfigs.configs[bg].charBaseIndex * BG_CHAR_SIZE;
break;
case 0x2:
offset = sGpuBgConfigs.configs[bg].mapBaseIndex * BG_SCREEN_SIZE;
break;
default:
cursor = -1;
goto end;
}
if (IsInvalidBg(bg) || !sGpuBgConfigs.configs[bg].visible)
return -1;
switch (mode)
{
case 0x1:
offset = sGpuBgConfigs.configs[bg].charBaseIndex * BG_CHAR_SIZE;
offset = destOffset + offset;
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0);
if (cursor == -1)
{
return -1;
}
}
else
{
return -1;
break;
case 0x2:
offset = sGpuBgConfigs.configs[bg].mapBaseIndex * BG_SCREEN_SIZE;
offset = destOffset + offset;
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0);
if (cursor == -1)
return -1;
break;
default:
cursor = -1;
break;
}
end:
return cursor;
}
@ -254,17 +246,17 @@ static void SetBgAffineInternal(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispC
switch (sGpuBgConfigs.bgVisibilityAndMode & 0x7)
{
default:
case 0:
return;
case 1:
if (bg != 2)
return;
break;
case 2:
if (bg < 2 || bg >= NUM_BACKGROUNDS)
if (bg != 2 && bg != 3)
return;
break;
case 0:
default:
return;
}
src.texX = srcCenterX;
@ -697,7 +689,7 @@ s32 ChangeBgY(u8 bg, s32 value, u8 op)
return sGpuBgConfigs2[bg].bg_y;
}
s32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op)
s32 ChangeBgY_ScreenOff(u8 bg, s32 value, u8 op)
{
u8 mode;
u16 temp1;

View File

@ -59,7 +59,7 @@ u16 GetBgAttribute(u8 bg, u8 attributeId);
s32 ChangeBgX(u8 bg, s32 value, u8 op);
s32 GetBgX(u8 bg);
s32 ChangeBgY(u8 bg, s32 value, u8 op);
s32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op);
s32 ChangeBgY_ScreenOff(u8 bg, s32 value, u8 op);
s32 GetBgY(u8 bg);
void SetBgAffine(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
u8 Unused_AdjustBgMosaic(u8 a1, u8 a2);

View File

@ -452,6 +452,10 @@ void SortSprites(void)
// Although this doesn't result in a bug in the ROM,
// the behavior is undefined.
j--;
#ifdef UBFIX
if (j == 0)
break;
#endif
sprite1 = &gSprites[sSpriteOrder[j - 1]];
sprite2 = &gSprites[sSpriteOrder[j]];
@ -661,8 +665,7 @@ void ResetOamRange(u8 a, u8 b)
for (i = a; i < b; i++)
{
struct OamData *oamBuffer = gMain.oamBuffer;
oamBuffer[i] = *(struct OamData *)&gDummyOamData;
gMain.oamBuffer[i] = *(struct OamData *)&gDummyOamData;
}
}

View File

@ -1416,9 +1416,9 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str)
fgColor = TEXT_COLOR_WHITE;
bgColor = TEXT_COLOR_TRANSPARENT;
shadowColor = TEXT_COLOR_LIGHT_GREY;
shadowColor = TEXT_COLOR_LIGHT_GRAY;
GenerateFontHalfRowLookupTable(TEXT_COLOR_WHITE, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY);
GenerateFontHalfRowLookupTable(TEXT_COLOR_WHITE, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY);
strLocal = str;
strPos = 0;
@ -1632,8 +1632,7 @@ void DecompressGlyphFont7(u16 glyphId, bool32 isJapanese)
if (isJapanese == TRUE)
{
int eff;
glyphs = gFont1JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId & (eff = 0xF))); // shh, no questions, only matching now
glyphs = gFont1JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId % 0x10));
DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop);
DecompressGlyphTile(glyphs + 0x80, gCurGlyph.gfxBufferBottom);
gCurGlyph.width = 8;
@ -1761,8 +1760,7 @@ void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese)
if (isJapanese == TRUE)
{
int eff;
glyphs = gFont1JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId & (eff = 0xF))); // shh, no questions, only matching now
glyphs = gFont1JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId % 0x10));
DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop);
DecompressGlyphTile(glyphs + 0x80, gCurGlyph.gfxBufferBottom);
gCurGlyph.width = 8;

View File

@ -71,7 +71,7 @@
//
#define CHAR_i_ACUTE 0x6F
//
#define CHAR_UNK_SPACER 0x77
#define CHAR_GENDERLESS 0x77 // Empty space for lack of gender icon
//
#define CHAR_UP_ARROW 0x79
#define CHAR_DOWN_ARROW 0x7A
@ -233,8 +233,8 @@
#define TEXT_COLOR_TRANSPARENT 0x0
#define TEXT_COLOR_WHITE 0x1
#define TEXT_COLOR_DARK_GREY 0x2
#define TEXT_COLOR_LIGHT_GREY 0x3
#define TEXT_COLOR_DARK_GRAY 0x2
#define TEXT_COLOR_LIGHT_GRAY 0x3
#define TEXT_COLOR_RED 0x4
#define TEXT_COLOR_LIGHT_RED 0x5
#define TEXT_COLOR_GREEN 0x6

View File

Before

Width:  |  Height:  |  Size: 223 B

After

Width:  |  Height:  |  Size: 223 B

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Some files were not shown because too many files have changed in this diff Show More