Merge branch 'master' of https://github.com/pret/pokeemerald into tx_debug_system
This commit is contained in:
commit
2f8896f2f0
8
.gitattributes
vendored
8
.gitattributes
vendored
@ -10,6 +10,14 @@ Makefile text eol=lf
|
||||
*.inc text eol=lf
|
||||
*.sha1 text eol=lf
|
||||
*.json text eol=lf
|
||||
*.sed text eol=lf
|
||||
*.cpp text eol=lf
|
||||
.gitattributes text eol=lf
|
||||
.gitignore text eol=lf
|
||||
*.hpp text eol=lf
|
||||
*.md text eol=lf
|
||||
*.ps1 text eol=crlf
|
||||
*.yml text eol=lf
|
||||
|
||||
*.png binary
|
||||
*.bin binary
|
||||
|
||||
@ -1,9 +1,15 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use IPC::Cmd qw[ run ];
|
||||
use Getopt::Long;
|
||||
|
||||
my $usage = "Usage: calcrom.pl file.map [--data]\n";
|
||||
|
||||
my $showData;
|
||||
GetOptions("data" => \$showData) or die $usage;
|
||||
|
||||
(@ARGV == 1)
|
||||
or die "ERROR: no map file specified.\n";
|
||||
or die $usage;
|
||||
open(my $file, $ARGV[0])
|
||||
or die "ERROR: could not open file '$ARGV[0]'.\n";
|
||||
|
||||
@ -57,14 +63,14 @@ while (my $line = <$file>)
|
||||
# though. Uniq is pretty fast!
|
||||
my $base_cmd = "nm $elffname | awk '{print \$3}' | grep '^[^_].\\{4\\}' | uniq";
|
||||
|
||||
# This looks for Unknown_, Unknown_, or sub_, followed by just numbers. Note that
|
||||
# This looks for Unknown_, Unknown_, or sub_, followed by an address. Note that
|
||||
# it matches even if stuff precedes the unknown, like sUnknown/gUnknown.
|
||||
my $undoc_cmd = "grep '[Uu]nknown_[0-9a-fA-F]*\\|sub_[0-9a-fA-F]*'";
|
||||
my $undoc_cmd = "grep '[Uu]nknown_[0-9a-fA-F]\\{5,7\\}\\|sub_[0-9a-fA-F]\\{5,7\\}'";
|
||||
|
||||
# This looks for every symbol with an address at the end of it. Some things are
|
||||
# given a name based on their type / location, but still have an unknown purpose.
|
||||
# For example, FooMap_EventScript_FFFFFFF.
|
||||
my $partial_doc_cmd = "grep '_[0-28][0-9a-fA-F]\\{5,6\\}'";
|
||||
my $partial_doc_cmd = "grep '_[0-28][0-9a-fA-F]\\{5,7\\}'";
|
||||
|
||||
my $count_cmd = "wc -l";
|
||||
|
||||
@ -98,16 +104,19 @@ my $partial_documented_as_string;
|
||||
# Performing addition on a string converts it to a number. Any string that fails
|
||||
# to convert to a number becomes 0. So if our converted number is 0, but our string
|
||||
# is nonzero, then the conversion was an error.
|
||||
$undocumented_as_string =~ s/^\s+|\s+$//g;
|
||||
my $undocumented = $undocumented_as_string + 0;
|
||||
(($undocumented != 0) and ($undocumented_as_string ne "0"))
|
||||
(($undocumented != 0) or (($undocumented == 0) and ($undocumented_as_string eq "0")))
|
||||
or die "ERROR: Cannot convert string to num: '$undocumented_as_string'";
|
||||
|
||||
$partial_documented_as_string =~ s/^\s+|\s+$//g;
|
||||
my $partial_documented = $partial_documented_as_string + 0;
|
||||
(($partial_documented != 0) and ($partial_documented_as_string ne "0"))
|
||||
(($partial_documented != 0) or (($partial_documented == 0) and ($partial_documented_as_string eq "0")))
|
||||
or die "ERROR: Cannot convert string to num: '$partial_documented_as_string'";
|
||||
|
||||
$total_syms_as_string =~ s/^\s+|\s+$//g;
|
||||
my $total_syms = $total_syms_as_string + 0;
|
||||
(($total_syms != 0) and ($total_syms_as_string ne "0"))
|
||||
(($total_syms != 0) or (($total_syms == 0) and ($total_syms_as_string eq "0")))
|
||||
or die "ERROR: Cannot convert string to num: '$total_syms_as_string'";
|
||||
|
||||
($total_syms != 0)
|
||||
@ -149,17 +158,13 @@ else
|
||||
print "$undocumented symbols undocumented ($undocPct%)\n";
|
||||
}
|
||||
|
||||
print "\n";
|
||||
my $dataTotal = $srcdata + $data;
|
||||
my $srcDataPct = sprintf("%.4f", 100 * $srcdata / $dataTotal);
|
||||
my $dataPct = sprintf("%.4f", 100 * $data / $dataTotal);
|
||||
if ($showData)
|
||||
{
|
||||
print "\n";
|
||||
my $dataTotal = $srcdata + $data;
|
||||
my $srcDataPct = sprintf("%.4f", 100 * $srcdata / $dataTotal);
|
||||
my $dataPct = sprintf("%.4f", 100 * $data / $dataTotal);
|
||||
|
||||
if ($data == 0)
|
||||
{
|
||||
print "Data porting to C is 100% complete\n"
|
||||
}
|
||||
else
|
||||
{
|
||||
print "$dataTotal total bytes of data\n";
|
||||
print "$srcdata bytes of data in src ($srcDataPct%)\n";
|
||||
print "$data bytes of data in data ($dataPct%)\n";
|
||||
@ -1,10 +1,5 @@
|
||||
#!/bin/bash -ex
|
||||
|
||||
# Only run this script if it's the master branch build.
|
||||
if [[ "$TRAVIS_BRANCH" != "master" || "$TRAVIS_PULL_REQUEST" != "false" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
build_name=$1
|
||||
map_file=$build_name.map
|
||||
if [ ! -f $map_file ]; then
|
||||
@ -13,4 +8,4 @@ if [ ! -f $map_file ]; then
|
||||
fi
|
||||
|
||||
output=$(perl $(dirname "$0")/calcrom.pl $build_name.map | sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g')
|
||||
curl -d "{\"username\": \"$CALCROM_DISCORD_WEBHOOK_USERNAME\", \"avatar_url\": \"$CALCROM_DISCORD_WEBHOOK_AVATAR_URL\", \"content\":\"\`\`\`$build_name progress:\\n$output\`\`\`\"}" -H "Content-Type: application/json" -X POST $CALCROM_DISCORD_WEBHOOK_URL
|
||||
curl -d "{\"username\": \"$CALCROM_DISCORD_WEBHOOK_USERNAME\", \"avatar_url\": \"$CALCROM_DISCORD_WEBHOOK_AVATAR_URL\", \"content\":\"\`\`\`\\n$build_name progress:\\n$output\\n\`\`\`\"}" -H "Content-Type: application/json" -X POST "$CALCROM_DISCORD_WEBHOOK_URL"
|
||||
16
.github/pull_request_template.md
vendored
16
.github/pull_request_template.md
vendored
@ -3,20 +3,6 @@
|
||||
## Description
|
||||
<!--- Describe your changes in detail -->
|
||||
|
||||
## Type of changes
|
||||
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
|
||||
- [ ] Decompilation (matching, fixing nonmatching, fakematching, etc.)
|
||||
- [ ] Documentation (naming symbols, commenting, etc.)
|
||||
- [ ] Style (code style refactors, typo, etc.)
|
||||
- [ ] Other: <!--- replace this comment with your type of change -->
|
||||
|
||||
## Checklist
|
||||
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
||||
- [ ] I am a member of the [pret Discord server](https://discord.gg/d5dubZ3).
|
||||
- [ ] `make compare` and `make compare modern` on my local machine outputs .
|
||||
- [ ] My code follows the code style of this project.
|
||||
- [ ] If I am fixing a bug or undefined behavior in the modern build, I have documented the bug and tested the fix locally.
|
||||
- [ ] All my usage, if any, of the leaked source code has been disclosed in pret's server.
|
||||
|
||||
## **Discord contact info**
|
||||
<!--- formatted as name#numbers, e.g. PikalaxALT#5823 -->
|
||||
<!--- Contributors must join https://discord.gg/d5dubZ3 -->
|
||||
76
.github/workflows/build.yml
vendored
Normal file
76
.github/workflows/build.yml
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GAME_VERSION: EMERALD
|
||||
GAME_REVISION: 0
|
||||
GAME_LANGUAGE: ENGLISH
|
||||
MODERN: 0
|
||||
COMPARE: 1
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Checkout syms
|
||||
if: ${{ github.event_name == 'push' }}
|
||||
uses: actions/checkout@master
|
||||
with:
|
||||
path: symbols
|
||||
ref: symbols
|
||||
|
||||
- name: Checkout agbcc
|
||||
uses: actions/checkout@master
|
||||
with:
|
||||
path: agbcc
|
||||
repository: pret/agbcc
|
||||
|
||||
- name: Install binutils
|
||||
run: sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi
|
||||
# build-essential, git, and libpng-dev are already installed
|
||||
# gcc-arm-none-eabi is only needed for the modern build
|
||||
# as an alternative to dkP
|
||||
|
||||
- name: Install agbcc
|
||||
run: |
|
||||
./build.sh
|
||||
./install.sh ../
|
||||
working-directory: agbcc
|
||||
|
||||
- name: Compare
|
||||
run: make -j${nproc} all syms
|
||||
|
||||
- name: Modern
|
||||
env:
|
||||
MODERN: 1
|
||||
COMPARE: 0
|
||||
run: make -j${nproc} all
|
||||
|
||||
- name: Webhook
|
||||
if: ${{ github.event_name == 'push' && github.repository_owner == 'pret' }}
|
||||
env:
|
||||
CALCROM_DISCORD_WEBHOOK_USERNAME: OK
|
||||
CALCROM_DISCORD_WEBHOOK_AVATAR_URL: https://i.imgur.com/38BQHdd.png
|
||||
CALCROM_DISCORD_WEBHOOK_URL: ${{ secrets.CALCROM_DISCORD_WEBHOOK_URL }}
|
||||
run: sh .github/calcrom/webhook.sh pokeemerald
|
||||
|
||||
- name: Move symfiles
|
||||
if: ${{ github.event_name == 'push' }}
|
||||
run: |
|
||||
cp -v *.sym symbols/
|
||||
echo "SYMBOLS_COMMIT_MSG=$( git log --format=%s ${GITHUB_SHA} )" >> $GITHUB_ENV
|
||||
|
||||
- name: Update symfiles
|
||||
if: ${{ github.event_name == 'push' }}
|
||||
uses: EndBug/add-and-commit@v7
|
||||
with:
|
||||
branch: symbols
|
||||
cwd: "./symbols"
|
||||
add: "*.sym"
|
||||
message: ${{ env.SYMBOLS_COMMIT_MSG }}
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@ -33,4 +33,6 @@ porymap.project.cfg
|
||||
.vscode/
|
||||
*.a
|
||||
.fuse_hidden*
|
||||
mgba.sh
|
||||
*.sna
|
||||
*.diff
|
||||
*.sym
|
||||
|
||||
39
.travis.yml
39
.travis.yml
@ -1,39 +0,0 @@
|
||||
language: generic
|
||||
dist: bionic
|
||||
sudo: false
|
||||
env:
|
||||
global:
|
||||
- DEVKITPRO=$HOME
|
||||
- DEVKITARM=$DEVKITPRO/devkitARM
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- gcc-multilib
|
||||
- linux-libc-dev
|
||||
cache:
|
||||
apt: true
|
||||
install:
|
||||
- pushd $HOME
|
||||
- travis_retry wget https://github.com/devkitPro/buildscripts/releases/download/devkitARM_r52/devkitARM_r52-linux.tar.xz
|
||||
- tar xJf devkitARM*.tar.xz
|
||||
- travis_retry wget https://github.com/devkitPro/devkitarm-rules/releases/download/v1.0.0/devkitarm-rules-1.0.0.tar.xz
|
||||
- tar xJf devkitarm-rules-*.tar.xz -C $DEVKITARM
|
||||
- travis_retry git clone https://github.com/pret/agbcc.git
|
||||
- cd agbcc && ./build.sh && ./install.sh $TRAVIS_BUILD_DIR
|
||||
- popd
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-7
|
||||
env: _="Build"
|
||||
script:
|
||||
- make -j2 tools CXX=g++-7
|
||||
- make -j2 compare
|
||||
- make -j2 modern
|
||||
after_success:
|
||||
- .travis/calcrom/webhook.sh pokeemerald
|
||||
572
INSTALL.md
572
INSTALL.md
@ -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\\⁠_\<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 isn’t 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
|
||||
|
||||
271
Makefile
271
Makefile
@ -1,29 +1,34 @@
|
||||
TOOLCHAIN := $(DEVKITARM)
|
||||
COMPARE ?= 0
|
||||
|
||||
ifeq ($(CC),)
|
||||
HOSTCC := gcc
|
||||
else
|
||||
HOSTCC := $(CC)
|
||||
ifeq (compare,$(MAKECMDGOALS))
|
||||
COMPARE := 1
|
||||
endif
|
||||
|
||||
ifeq ($(CXX),)
|
||||
HOSTCXX := g++
|
||||
else
|
||||
HOSTCXX := $(CXX)
|
||||
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
|
||||
|
||||
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
|
||||
OBJDUMP := $(PREFIX)objdump
|
||||
AS := $(PREFIX)as
|
||||
|
||||
LD := $(PREFIX)ld
|
||||
|
||||
# note: the makefile must be set up so MODERNCC is never called
|
||||
# if MODERN=0
|
||||
MODERNCC := $(PREFIX)gcc
|
||||
PATH_MODERNCC := PATH=$(TOOLCHAIN)/bin:PATH $(MODERNCC)
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
EXE := .exe
|
||||
@ -37,10 +42,42 @@ MAKER_CODE := 01
|
||||
REVISION := 0
|
||||
MODERN ?= 0
|
||||
|
||||
ifeq (modern,$(MAKECMDGOALS))
|
||||
MODERN := 1
|
||||
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
|
||||
|
||||
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)
|
||||
MAP = $(ROM:.gba=.map)
|
||||
SYM = $(ROM:.gba=.sym)
|
||||
|
||||
C_SUBDIR = src
|
||||
GFLIB_SUBDIR = gflib
|
||||
@ -63,27 +100,27 @@ 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
|
||||
ROM := pokeemerald.gba
|
||||
OBJ_DIR := build/emerald
|
||||
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm -g
|
||||
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
|
||||
override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mcpu=arm7tdmi -fno-toplevel-reorder -Wno-pointer-to-int-cast
|
||||
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))"
|
||||
CC1 = $(shell $(PATH_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 := $(MODERN_ROM_NAME)
|
||||
OBJ_DIR := $(MODERN_OBJ_DIR_NAME)
|
||||
LIBPATH := -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(PATH_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)
|
||||
@ -95,6 +132,8 @@ FIX := tools/gbafix/gbafix$(EXE)
|
||||
MAPJSON := tools/mapjson/mapjson$(EXE)
|
||||
JSONPROC := tools/jsonproc/jsonproc$(EXE)
|
||||
|
||||
PERL := perl
|
||||
|
||||
TOOLDIRS := $(filter-out tools/agbcc tools/binutils,$(wildcard tools/*))
|
||||
TOOLBASE = $(TOOLDIRS:tools/%=%)
|
||||
TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE))
|
||||
@ -111,18 +150,34 @@ 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))))
|
||||
|
||||
# Build tools when building the rom
|
||||
# Disable dependency scanning for clean/tidy/tools
|
||||
ifeq (,$(filter-out all rom compare modern berry_fix libagbsyscall,$(MAKECMDGOALS)))
|
||||
$(call infoshell, $(MAKE) tools)
|
||||
# Use a separate minimal makefile for speed
|
||||
# Since we don't need to reload most of this makefile
|
||||
ifeq (,$(filter-out all rom compare modern berry_fix libagbsyscall syms,$(MAKECMDGOALS)))
|
||||
$(call infoshell, $(MAKE) -f make_tools.mk)
|
||||
else
|
||||
NODEP := 1
|
||||
NODEP ?= 1
|
||||
endif
|
||||
|
||||
# check if we need to scan dependencies based on the rule
|
||||
ifeq (,$(MAKECMDGOALS))
|
||||
SCAN_DEPS ?= 1
|
||||
else
|
||||
# clean, tidy, tools, mostlyclean, clean-tools, $(TOOLDIRS), tidymodern, tidynonmodern don't even build the ROM
|
||||
# berry_fix and libagbsyscall do their own thing
|
||||
ifeq (,$(filter-out clean tidy tools mostlyclean clean-tools $(TOOLDIRS) tidymodern tidynonmodern berry_fix libagbsyscall,$(MAKECMDGOALS)))
|
||||
SCAN_DEPS ?= 0
|
||||
else
|
||||
SCAN_DEPS ?= 1
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(SCAN_DEPS),1)
|
||||
C_SRCS_IN := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c $(C_SUBDIR)/*/*/*.c)
|
||||
C_SRCS := $(foreach src,$(C_SRCS_IN),$(if $(findstring .inc.c,$(src)),,$(src)))
|
||||
C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
|
||||
@ -136,6 +191,9 @@ C_ASM_OBJS := $(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o,$(C_ASM_SRCS))
|
||||
ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s)
|
||||
ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS))
|
||||
|
||||
# get all the data/*.s files EXCEPT the ones with specific rules
|
||||
REGULAR_DATA_ASM_SRCS := $(filter-out $(DATA_ASM_SUBDIR)/maps.s $(DATA_ASM_SUBDIR)/map_events.s, $(wildcard $(DATA_ASM_SUBDIR)/*.s))
|
||||
|
||||
DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s)
|
||||
DATA_ASM_OBJS := $(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o,$(DATA_ASM_SRCS))
|
||||
|
||||
@ -149,17 +207,19 @@ OBJS := $(C_OBJS) $(GFLIB_OBJS) $(C_ASM_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $
|
||||
OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS))
|
||||
|
||||
SUBDIRS := $(sort $(dir $(OBJS)))
|
||||
$(shell mkdir -p $(SUBDIRS))
|
||||
endif
|
||||
|
||||
AUTO_GEN_TARGETS :=
|
||||
|
||||
$(shell mkdir -p $(SUBDIRS))
|
||||
|
||||
all: rom
|
||||
|
||||
tools: $(TOOLDIRS)
|
||||
|
||||
syms: $(SYM)
|
||||
|
||||
$(TOOLDIRS):
|
||||
@$(MAKE) -C $@ CC=$(HOSTCC) CXX=$(HOSTCXX)
|
||||
@$(MAKE) -C $@
|
||||
|
||||
rom: $(ROM)
|
||||
ifeq ($(COMPARE),1)
|
||||
@ -167,18 +227,18 @@ ifeq ($(COMPARE),1)
|
||||
endif
|
||||
|
||||
# For contributors to make sure a change didn't affect the contents of the ROM.
|
||||
compare: ; @$(MAKE) COMPARE=1
|
||||
compare: all
|
||||
|
||||
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
|
||||
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} +
|
||||
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} +
|
||||
rm -f $(DATA_ASM_SUBDIR)/layouts/layouts.inc $(DATA_ASM_SUBDIR)/layouts/layouts_table.inc
|
||||
rm -f $(DATA_ASM_SUBDIR)/maps/connections.inc $(DATA_ASM_SUBDIR)/maps/events.inc $(DATA_ASM_SUBDIR)/maps/groups.inc $(DATA_ASM_SUBDIR)/maps/headers.inc
|
||||
find $(DATA_ASM_SUBDIR)/maps \( -iname 'connections.inc' -o -iname 'events.inc' -o -iname 'header.inc' \) -exec rm {} +
|
||||
@ -186,13 +246,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
|
||||
@ -220,7 +283,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
|
||||
@ -229,69 +292,107 @@ $(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
|
||||
endif
|
||||
|
||||
ifeq ($(NODEP),1)
|
||||
$(C_BUILDDIR)/%.o: c_dep :=
|
||||
else
|
||||
$(C_BUILDDIR)/%.o: c_dep = $(shell [[ -f $(C_SUBDIR)/$*.c ]] && $(SCANINC) -I include -I tools/agbcc/include -I gflib $(C_SUBDIR)/$*.c)
|
||||
endif
|
||||
|
||||
ifeq ($(DINFO),1)
|
||||
override CFLAGS += -g
|
||||
endif
|
||||
|
||||
$(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep)
|
||||
# The dep rules have to be explicit or else missing files won't be reported.
|
||||
# As a side effect, they're evaluated immediately instead of when the rule is invoked.
|
||||
# It doesn't look like $(shell) can be deferred so there might not be a better way.
|
||||
|
||||
ifeq ($(SCAN_DEPS),1)
|
||||
ifeq ($(NODEP),1)
|
||||
$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.c
|
||||
ifeq (,$(KEEP_TEMPS))
|
||||
@echo "$(CC1) <flags> -o $@ $<"
|
||||
@$(CPP) $(CPPFLAGS) $< | $(PREPROC) $< charmap.txt -i | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ -
|
||||
else
|
||||
@$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i
|
||||
@$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(C_BUILDDIR)/$*.s
|
||||
@echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s
|
||||
$(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s
|
||||
|
||||
ifeq ($(NODEP),1)
|
||||
$(GFLIB_BUILDDIR)/%.o: c_dep :=
|
||||
endif
|
||||
else
|
||||
$(GFLIB_BUILDDIR)/%.o: c_dep = $(shell [[ -f $(GFLIB_SUBDIR)/$*.c ]] && $(SCANINC) -I include -I tools/agbcc/include -I gflib $(GFLIB_SUBDIR)/$*.c)
|
||||
define C_DEP
|
||||
$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2)
|
||||
ifeq (,$$(KEEP_TEMPS))
|
||||
@echo "$$(CC1) <flags> -o $$@ $$<"
|
||||
@$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ -
|
||||
else
|
||||
@$$(CPP) $$(CPPFLAGS) $$< -o $$(C_BUILDDIR)/$3.i
|
||||
@$$(PREPROC) $$(C_BUILDDIR)/$3.i charmap.txt | $$(CC1) $$(CFLAGS) -o $$(C_BUILDDIR)/$3.s
|
||||
@echo -e ".text\n\t.align\t2, 0\n" >> $$(C_BUILDDIR)/$3.s
|
||||
$$(AS) $$(ASFLAGS) -o $$@ $$(C_BUILDDIR)/$3.s
|
||||
endif
|
||||
endef
|
||||
$(foreach src, $(C_SRCS), $(eval $(call C_DEP,$(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(src)),$(src),$(patsubst $(C_SUBDIR)/%.c,%,$(src)))))
|
||||
endif
|
||||
|
||||
$(GFLIB_BUILDDIR)/%.o : $(GFLIB_SUBDIR)/%.c $$(c_dep)
|
||||
ifeq ($(NODEP),1)
|
||||
$(GFLIB_BUILDDIR)/%.o: $(GFLIB_SUBDIR)/%.c $$(c_dep)
|
||||
ifeq (,$(KEEP_TEMPS))
|
||||
@echo "$(CC1) <flags> -o $@ $<"
|
||||
@$(CPP) $(CPPFLAGS) $< | $(PREPROC) $< charmap.txt -i | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ -
|
||||
else
|
||||
@$(CPP) $(CPPFLAGS) $< -o $(GFLIB_BUILDDIR)/$*.i
|
||||
@$(PREPROC) $(GFLIB_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(GFLIB_BUILDDIR)/$*.s
|
||||
@echo -e ".text\n\t.align\t2, 0\n" >> $(GFLIB_BUILDDIR)/$*.s
|
||||
$(AS) $(ASFLAGS) -o $@ $(GFLIB_BUILDDIR)/$*.s
|
||||
|
||||
ifeq ($(NODEP),1)
|
||||
$(C_BUILDDIR)/%.o: c_asm_dep :=
|
||||
endif
|
||||
else
|
||||
$(C_BUILDDIR)/%.o: c_asm_dep = $(shell [[ -f $(C_SUBDIR)/$*.s ]] && $(SCANINC) -I "" $(C_SUBDIR)/$*.s)
|
||||
define GFLIB_DEP
|
||||
$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2)
|
||||
ifeq (,$$(KEEP_TEMPS))
|
||||
@echo "$$(CC1) <flags> -o $$@ $$<"
|
||||
@$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ -
|
||||
else
|
||||
@$$(CPP) $$(CPPFLAGS) $$< -o $$(GFLIB_BUILDDIR)/$3.i
|
||||
@$$(PREPROC) $$(GFLIB_BUILDDIR)/$3.i charmap.txt | $$(CC1) $$(CFLAGS) -o $$(GFLIB_BUILDDIR)/$3.s
|
||||
@echo -e ".text\n\t.align\t2, 0\n" >> $$(GFLIB_BUILDDIR)/$3.s
|
||||
$$(AS) $$(ASFLAGS) -o $$@ $$(GFLIB_BUILDDIR)/$3.s
|
||||
endif
|
||||
endef
|
||||
$(foreach src, $(GFLIB_SRCS), $(eval $(call GFLIB_DEP,$(patsubst $(GFLIB_SUBDIR)/%.c,$(GFLIB_BUILDDIR)/%.o, $(src)),$(src),$(patsubst $(GFLIB_SUBDIR)/%.c,%, $(src)))))
|
||||
endif
|
||||
|
||||
$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.s $$(c_asm_dep)
|
||||
ifeq ($(NODEP),1)
|
||||
$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.s
|
||||
$(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@
|
||||
else
|
||||
define SRC_ASM_DATA_DEP
|
||||
$1: $2 $$(shell $(SCANINC) -I include -I "" $2)
|
||||
$$(PREPROC) $$< charmap.txt | $$(CPP) -I include - | $$(AS) $$(ASFLAGS) -o $$@
|
||||
endef
|
||||
$(foreach src, $(C_ASM_SRCS), $(eval $(call SRC_ASM_DATA_DEP,$(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o, $(src)),$(src))))
|
||||
endif
|
||||
|
||||
ifeq ($(NODEP),1)
|
||||
$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s
|
||||
$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
||||
ifeq ($(NODEP),1)
|
||||
$(ASM_BUILDDIR)/%.o: asm_dep :=
|
||||
else
|
||||
$(ASM_BUILDDIR)/%.o: asm_dep = $(shell $(SCANINC) -I "" $(ASM_SUBDIR)/$*.s)
|
||||
define ASM_DEP
|
||||
$1: $2 $$(shell $(SCANINC) -I include -I "" $2)
|
||||
$$(AS) $$(ASFLAGS) -o $$@ $$<
|
||||
endef
|
||||
$(foreach src, $(ASM_SRCS), $(eval $(call ASM_DEP,$(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o, $(src)),$(src))))
|
||||
endif
|
||||
|
||||
$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep)
|
||||
$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
||||
ifeq ($(NODEP),1)
|
||||
$(DATA_ASM_BUILDDIR)/%.o: data_dep :=
|
||||
$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s
|
||||
$(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@
|
||||
else
|
||||
$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) -I include -I "" $(DATA_ASM_SUBDIR)/$*.s)
|
||||
$(foreach src, $(REGULAR_DATA_ASM_SRCS), $(eval $(call SRC_ASM_DATA_DEP,$(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o, $(src)),$(src))))
|
||||
endif
|
||||
endif
|
||||
|
||||
$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep)
|
||||
$(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@
|
||||
|
||||
$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s
|
||||
$(AS) $(ASFLAGS) -I sound -o $@ $<
|
||||
@ -317,19 +418,27 @@ $(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)
|
||||
$(OBJCOPY) -O binary $< $@
|
||||
$(FIX) $@ -p --silent
|
||||
|
||||
modern: ; @$(MAKE) MODERN=1
|
||||
modern: all
|
||||
|
||||
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)
|
||||
|
||||
###################
|
||||
### Symbol file ###
|
||||
###################
|
||||
|
||||
$(SYM): $(ELF)
|
||||
$(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" | $(PERL) -p -e 's/^(\w{8}) (\w).{6} \S+\t(\w{8}) (\S+)$$/\1 \2 \3 \4/g' > $@
|
||||
|
||||
@ -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:
|
||||
@ -33,4 +28,4 @@ Other disassembly and/or decompilation projects:
|
||||
|
||||
## Contacts
|
||||
|
||||
You can find us on [Discord](https://discord.gg/d5dubZ3) and [IRC](https://kiwiirc.com/client/irc.freenode.net/?#pret).
|
||||
You can find us on [Discord](https://discord.gg/d5dubZ3) and [IRC](https://web.libera.chat/?#pret).
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
.include "asm/macros/movement.inc"
|
||||
.include "asm/macros/window.inc"
|
||||
.include "asm/macros/pokemon_data.inc"
|
||||
.include "asm/macros/ec.inc"
|
||||
.include "asm/macros/map.inc"
|
||||
.include "asm/macros/field_effect_script.inc"
|
||||
.include "asm/macros/trainer_hill.inc"
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
.byte 0x02
|
||||
.4byte \template
|
||||
.if \anim_battler == ANIM_TARGET
|
||||
.byte 0x80 | (\subpriority_offset & 0x7F)
|
||||
.byte ANIMSPRITE_IS_TARGET | (\subpriority_offset & 0x7F)
|
||||
.else
|
||||
.byte (\subpriority_offset & 0x7F)
|
||||
.endif
|
||||
@ -34,20 +34,20 @@
|
||||
.Lcreatetask_\@_2:
|
||||
.endm
|
||||
|
||||
.macro delay param0:req
|
||||
.macro delay frames:req
|
||||
.byte 0x4
|
||||
.byte \param0
|
||||
.byte \frames
|
||||
.endm
|
||||
|
||||
.macro waitforvisualfinish
|
||||
.byte 0x5
|
||||
.endm
|
||||
|
||||
.macro hang1
|
||||
.macro nop
|
||||
.byte 0x6
|
||||
.endm
|
||||
|
||||
.macro hang2
|
||||
.macro nop2
|
||||
.byte 0x7
|
||||
.endm
|
||||
|
||||
@ -79,30 +79,30 @@
|
||||
.byte 0xd
|
||||
.endm
|
||||
|
||||
.macro call param0:req
|
||||
.macro call ptr:req
|
||||
.byte 0xe
|
||||
.4byte \param0
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro return
|
||||
.byte 0xf
|
||||
.endm
|
||||
|
||||
.macro setarg param0:req, param1:req
|
||||
.macro setarg argId:req, value:req
|
||||
.byte 0x10
|
||||
.byte \param0
|
||||
.2byte \param1
|
||||
.byte \argId
|
||||
.2byte \value
|
||||
.endm
|
||||
|
||||
.macro choosetwoturnanim param0:req, param1:req
|
||||
.macro choosetwoturnanim ptr1:req, ptr2:req
|
||||
.byte 0x11
|
||||
.4byte \param0
|
||||
.4byte \param1
|
||||
.4byte \ptr1
|
||||
.4byte \ptr2
|
||||
.endm
|
||||
|
||||
.macro jumpifmoveturn param0:req, ptr:req
|
||||
.macro jumpifmoveturn value:req, ptr:req
|
||||
.byte 0x12
|
||||
.byte \param0
|
||||
.byte \value
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
@ -144,13 +144,13 @@
|
||||
.byte \pan
|
||||
.endm
|
||||
|
||||
.macro panse_1B se:req, param1:req, param2:req, param3:req, param4:req
|
||||
.macro panse se:req, currentPan:req, targetPan:req, incrementPan:req, delay:req
|
||||
.byte 0x1b
|
||||
.2byte \se
|
||||
.byte \param1
|
||||
.byte \param2
|
||||
.byte \param3
|
||||
.byte \param4
|
||||
.byte \currentPan
|
||||
.byte \targetPan
|
||||
.byte \incrementPan
|
||||
.byte \delay
|
||||
.endm
|
||||
|
||||
.macro loopsewithpan se:req, pan:req, wait:req, times:req
|
||||
@ -168,9 +168,9 @@
|
||||
.byte \wait
|
||||
.endm
|
||||
|
||||
.macro setbldcnt param0:req
|
||||
.macro setbldcnt bldcnt:req
|
||||
.byte 0x1e
|
||||
.2byte \param0
|
||||
.2byte \bldcnt
|
||||
.endm
|
||||
|
||||
.macro createsoundtask addr:req, argv:vararg
|
||||
@ -186,19 +186,19 @@
|
||||
.byte 0x20
|
||||
.endm
|
||||
|
||||
.macro jumpargeq param0:req, param1:req, ptr:req
|
||||
.macro jumpargeq argId:req, value:req, ptr:req
|
||||
.byte 0x21
|
||||
.byte \param0
|
||||
.2byte \param1
|
||||
.byte \argId
|
||||
.2byte \value
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro monbg_22 battler:req
|
||||
.macro monbg_static battler:req
|
||||
.byte 0x22
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro clearmonbg_23 battler:req
|
||||
.macro clearmonbg_static battler:req
|
||||
.byte 0x23
|
||||
.byte \battler
|
||||
.endm
|
||||
@ -208,41 +208,41 @@
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro fadetobgfromset param0:req, param1:req, param2:req
|
||||
.macro fadetobgfromset bgOpponent:req, bgPlayer:req, bgContest:req
|
||||
.byte 0x25
|
||||
.byte \param0
|
||||
.byte \param1
|
||||
.byte \param2
|
||||
.byte \bgOpponent
|
||||
.byte \bgPlayer
|
||||
.byte \bgContest
|
||||
.endm
|
||||
|
||||
.macro panse_26 se:req, param1:req, param2:req, param3:req, param4:req
|
||||
.macro panse_adjustnone se:req, currentPan:req, targetPan:req, incrementPan:req, delay:req
|
||||
.byte 0x26
|
||||
.2byte \se
|
||||
.byte \param1
|
||||
.byte \param2
|
||||
.byte \param3
|
||||
.byte \param4
|
||||
.byte \currentPan
|
||||
.byte \targetPan
|
||||
.byte \incrementPan
|
||||
.byte \delay
|
||||
.endm
|
||||
|
||||
.macro panse_27 se:req, param1:req, param2:req, param3:req, param4:req
|
||||
.macro panse_adjustall se:req, currentPan:req, targetPan:req, incrementPan:req, delay:req
|
||||
.byte 0x27
|
||||
.2byte \se
|
||||
.byte \param1
|
||||
.byte \param2
|
||||
.byte \param3
|
||||
.byte \param4
|
||||
.byte \currentPan
|
||||
.byte \targetPan
|
||||
.byte \incrementPan
|
||||
.byte \delay
|
||||
.endm
|
||||
|
||||
.macro monbgprio_28 battler:req
|
||||
.macro splitbgprio battler:req
|
||||
.byte 0x28
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro monbgprio_29
|
||||
.macro splitbgprio_all
|
||||
.byte 0x29
|
||||
.endm
|
||||
|
||||
.macro monbgprio_2A battler:req
|
||||
.macro splitbgprio_foes battler:req
|
||||
.byte 0x2a
|
||||
.byte \battler
|
||||
.endm
|
||||
@ -257,12 +257,12 @@
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro doublebattle_2D battler:req
|
||||
.macro teamattack_moveback battler:req
|
||||
.byte 0x2d
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
.macro doublebattle_2E battler:req
|
||||
.macro teamattack_movefwd battler:req
|
||||
.byte 0x2e
|
||||
.byte \battler
|
||||
.endm
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
special CallApprenticeFunction
|
||||
.endm
|
||||
|
||||
@ Always returns TRUE. No side effect. May have been for debug or dummied for some other reason
|
||||
@ Always returns TRUE. No side effect. May have been for debug or dummied for some other reason
|
||||
.macro apprentice_shouldcheckgone
|
||||
setvar VAR_0x8004, APPRENTICE_FUNC_CHECK_GONE
|
||||
special CallApprenticeFunction
|
||||
@ -109,7 +109,7 @@
|
||||
special CallApprenticeFunction
|
||||
.endm
|
||||
|
||||
@ Set which mon the Apprentice should lead with
|
||||
@ Set which mon the Apprentice should lead with
|
||||
.macro apprentice_setleadmon monId:req
|
||||
copyvar VAR_0x8005, \monId
|
||||
setvar VAR_0x8004, APPRENTICE_FUNC_SET_LEAD_MON
|
||||
@ -141,7 +141,7 @@
|
||||
special CallApprenticeFunction
|
||||
.endm
|
||||
|
||||
@ Always returns TRUE. No side effect. May have been for debug or dummied for some other reason
|
||||
@ Always returns TRUE. No side effect. May have been for debug or dummied for some other reason
|
||||
.macro apprentice_shouldleave
|
||||
setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE
|
||||
special CallApprenticeFunction
|
||||
|
||||
@ -88,7 +88,7 @@
|
||||
.endm
|
||||
|
||||
@ Return the FACTORY_STYLE_* dependent on what types of moves the opponents team has, or FACTORY_NUM_STYLES if multiple styles tie for the same amount of moves
|
||||
.macro factory_getopponentstyle
|
||||
.macro factory_getopponentstyle
|
||||
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GET_OPPONENT_STYLE
|
||||
special CallBattleFactoryFunction
|
||||
.endm
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
special CallBattlePalaceFunction
|
||||
.endm
|
||||
|
||||
@ Buffer the opponents intro speech to gStringVar4. Also used by Battle Arena and Factory
|
||||
@ Buffer the opponents intro speech to gStringVar4. Also used by Battle Arena and Factory
|
||||
.macro palace_getopponentintro
|
||||
setvar VAR_0x8004, BATTLE_PALACE_FUNC_GET_OPPONENT_INTRO
|
||||
special CallBattlePalaceFunction
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
@ Initialize the Battle Pyramid challenge
|
||||
.macro pyramid_init
|
||||
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT
|
||||
special CallBattlePyramidFunction
|
||||
special CallBattlePyramidFunction
|
||||
.endm
|
||||
|
||||
@ Get the value of some PYRAMID_DATA_*. See GetBattlePyramidData for the data types that can be retrieved
|
||||
@ -59,7 +59,7 @@
|
||||
@ Set the facility trainers to gBattleFrontierTrainers
|
||||
.macro pyramid_settrainers
|
||||
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_TRAINERS
|
||||
special CallBattlePyramidFunction
|
||||
special CallBattlePyramidFunction
|
||||
.endm
|
||||
|
||||
@ Show the post-battle hint text
|
||||
@ -68,11 +68,11 @@
|
||||
special CallBattlePyramidFunction
|
||||
.endm
|
||||
|
||||
@ VAR_RESULT is 1 if player is on a Pyramid floor, 2 if on the Pyramid peak, 0 otherwise
|
||||
@ VAR_RESULT is 1 if player is on a Pyramid floor, 2 if on the Pyramid peak, 0 otherwise
|
||||
.macro pyramid_inchallenge
|
||||
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_IS_IN
|
||||
special CallBattlePyramidFunction
|
||||
.endm
|
||||
.endm
|
||||
|
||||
@ Update the light around the player. 2 different modes, for setting or incrementing light. See PYRAMID_LIGHT_*
|
||||
.macro pyramid_updatelight radius:req, mode:req, sound=0xFFFF
|
||||
@ -83,7 +83,7 @@
|
||||
setvar VAR_0x8007, \sound
|
||||
.endif
|
||||
special CallBattlePyramidFunction
|
||||
.endm
|
||||
.endm
|
||||
|
||||
@ Reset the held items to what they were at the start of the challenge
|
||||
.macro pyramid_clearhelditems
|
||||
@ -100,5 +100,5 @@
|
||||
@ Reset sketched moves and update the party order in the saveblock
|
||||
.macro pyramid_resetparty
|
||||
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_RESTORE_PARTY
|
||||
special CallBattlePyramidFunction
|
||||
special CallBattlePyramidFunction
|
||||
.endm
|
||||
|
||||
@ -72,9 +72,9 @@
|
||||
special CallBattleTowerFunc
|
||||
.endm
|
||||
|
||||
@ Unknown. Destroys some link task if using wireless link. Wait for link?
|
||||
.macro tower_unklink
|
||||
setvar VAR_0x8004, BATTLE_TOWER_FUNC_13
|
||||
@ Attempts to close link connection. Used when finishing a link multi challenge.
|
||||
.macro tower_closelink
|
||||
setvar VAR_0x8004, BATTLE_TOWER_FUNC_TRY_CLOSE_LINK
|
||||
special CallBattleTowerFunc
|
||||
.endm
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -26,7 +26,7 @@
|
||||
special CallVerdanturfTentFunction
|
||||
.endm
|
||||
|
||||
@ Buffers the opponents intro speech to STR_VAR_4. Despite being a Verdanturf Tent function, it serves the same purpose for all 3 tents.
|
||||
@ Buffers the opponents intro speech to STR_VAR_4. Despite being a Verdanturf Tent function, it serves the same purpose for all 3 tents.
|
||||
.macro battletent_getopponentintro
|
||||
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_GET_OPPONENT_INTRO
|
||||
special CallVerdanturfTentFunction
|
||||
@ -36,7 +36,7 @@
|
||||
.macro verdanturftent_save challengeStatus:req
|
||||
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SAVE
|
||||
setvar VAR_0x8005, \challengeStatus
|
||||
special CallVerdanturfTentFunction
|
||||
special CallVerdanturfTentFunction
|
||||
.endm
|
||||
|
||||
@ Set the prize item as randomly selected from a list. Randomness unnecessary, as the list is only 1 item
|
||||
@ -49,7 +49,7 @@
|
||||
.macro verdanturftent_giveprize
|
||||
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_GIVE_PRIZE
|
||||
special CallVerdanturfTentFunction
|
||||
.endm
|
||||
.endm
|
||||
|
||||
|
||||
@ Fallarbor Tent
|
||||
@ -79,7 +79,7 @@
|
||||
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_SAVE
|
||||
setvar VAR_0x8005, \challengeStatus
|
||||
special CallFallarborTentFunction
|
||||
.endm
|
||||
.endm
|
||||
|
||||
@ Set the prize item as randomly selected from a list. Randomness unnecessary, as the list is only 1 item
|
||||
.macro fallarbortent_setrandomprize
|
||||
@ -97,7 +97,7 @@
|
||||
.macro fallarbortent_getopponentname
|
||||
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_GET_OPPONENT_NAME
|
||||
special CallFallarborTentFunction
|
||||
.endm
|
||||
.endm
|
||||
|
||||
|
||||
@ Slateport Tent
|
||||
@ -127,15 +127,15 @@
|
||||
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SAVE
|
||||
setvar VAR_0x8005, \challengeStatus
|
||||
special CallSlateportTentFunction
|
||||
.endm
|
||||
.endm
|
||||
|
||||
@ Set the prize item as randomly selected from a list. Randomness unnecessary, as the list is only 1 item
|
||||
@ Set the prize item as randomly selected from a list. Randomness unnecessary, as the list is only 1 item
|
||||
.macro slateporttent_setrandomprize
|
||||
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SET_RANDOM_PRIZE
|
||||
special CallSlateportTentFunction
|
||||
.endm
|
||||
|
||||
@ Give the current prize item. FALSE if no room for prize
|
||||
@ Give the current prize item. FALSE if no room for prize
|
||||
.macro slateporttent_giveprize
|
||||
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GIVE_PRIZE
|
||||
special CallSlateportTentFunction
|
||||
@ -157,7 +157,7 @@
|
||||
.macro slateporttent_generateopponentmons
|
||||
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GENERATE_OPPONENT_MONS
|
||||
special CallSlateportTentFunction
|
||||
.endm
|
||||
.endm
|
||||
|
||||
@ Slateport Tent's version of factory_generaterentalmons
|
||||
.macro slateporttent_generaterentalmons
|
||||
|
||||
@ -1,19 +0,0 @@
|
||||
.macro ec_word word
|
||||
.2byte EC_WORD_\word
|
||||
.endm
|
||||
|
||||
.macro ec_move1 name
|
||||
.2byte (EC_GROUP_MOVE_1 << 9) | MOVE_\name
|
||||
.endm
|
||||
|
||||
.macro ec_move2 name
|
||||
.2byte (EC_GROUP_MOVE_2 << 9) | MOVE_\name
|
||||
.endm
|
||||
|
||||
.macro ec_pokemon1 name
|
||||
.2byte (EC_GROUP_POKEMON << 9) | SPECIES_\name
|
||||
.endm
|
||||
|
||||
.macro ec_pokemon2 name
|
||||
.2byte (EC_GROUP_POKEMON2 << 9) | SPECIES_\name
|
||||
.endm
|
||||
@ -274,8 +274,8 @@
|
||||
.2byte \functionId
|
||||
.endm
|
||||
|
||||
@ Blocks script execution until a command or ASM code manually unblocks it. Generally used with specific
|
||||
@ commands and specials. If this command runs, and a subsequent command or piece of ASM does not unblock
|
||||
@ Blocks script execution until a command or ASM code manually unblocks it. Generally used with specific
|
||||
@ commands and specials. If this command runs, and a subsequent command or piece of ASM does not unblock
|
||||
@ state, the script will remain blocked indefinitely (essentially a hang).
|
||||
.macro waitstate
|
||||
.byte 0x27
|
||||
@ -317,7 +317,7 @@
|
||||
.byte 0x2d
|
||||
.endm
|
||||
|
||||
@ Sets the values of variables 0x8000, 0x8001, and 0x8002 to the current hour, minute, and second. In FRLG,
|
||||
@ Sets the values of variables 0x8000, 0x8001, and 0x8002 to the current hour, minute, and second. In FRLG,
|
||||
@ this command sets those variables to zero.
|
||||
.macro gettime
|
||||
.byte 0x2e
|
||||
@ -334,10 +334,10 @@
|
||||
.byte 0x30
|
||||
.endm
|
||||
|
||||
@ Plays the specified (fanfare_number) fanfare.
|
||||
.macro playfanfare fanfare_number:req
|
||||
@ Plays the fanfare specified by the song number. If the specified song is not a fanfare it will instead play the first song in sFanfares.
|
||||
.macro playfanfare songNumber:req
|
||||
.byte 0x31
|
||||
.2byte \fanfare_number
|
||||
.2byte \songNumber
|
||||
.endm
|
||||
|
||||
@ Blocks script execution until all currently-playing fanfares finish.
|
||||
@ -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.
|
||||
@ -381,7 +382,7 @@
|
||||
.byte \speed
|
||||
.endm
|
||||
|
||||
@ Sends the player to Warp warp on Map bank.map. If the specified warp is 0xFF,
|
||||
@ Sends the player to Warp warp on Map bank.map. If the specified warp is 0xFF,
|
||||
@ then the player will instead be sent to (X, Y) on the map.
|
||||
.macro warp map:req, warp:req, X:req, Y:req
|
||||
.byte 0x39
|
||||
@ -433,7 +434,7 @@
|
||||
.2byte \Y
|
||||
.endm
|
||||
|
||||
@ Sets the warp destination that a warp to Warp 127 on Map 127.127 will connect to.
|
||||
@ Sets the warp destination that a warp to Warp 127 on Map 127.127 will connect to.
|
||||
@ Useful when a map has warps that need to go to script-controlled locations (i.e. elevators).
|
||||
.macro setdynamicwarp map:req, warp:req, X:req, Y:req
|
||||
.byte 0x3f
|
||||
@ -473,7 +474,7 @@
|
||||
.byte 0x43
|
||||
.endm
|
||||
|
||||
@ Attempts to add quantity of item index to the player's Bag. If the player has enough room, the item will be added and
|
||||
@ Attempts to add quantity of item index to the player's Bag. If the player has enough room, the item will be added and
|
||||
@ VAR_RESULT will be set to TRUE; otherwise, VAR_RESULT is set to FALSE.
|
||||
.macro additem index:req, quantity=1
|
||||
.byte 0x44
|
||||
@ -488,7 +489,7 @@
|
||||
.2byte \quantity
|
||||
.endm
|
||||
|
||||
@ Checks if the player has enough space in their Bag to hold quantity more of item index. Sets VAR_RESULT to
|
||||
@ Checks if the player has enough space in their Bag to hold quantity more of item index. Sets VAR_RESULT to
|
||||
@ TRUE if there is room, or FALSE is there is no room.
|
||||
.macro checkitemspace index:req, quantity:req
|
||||
.byte 0x46
|
||||
@ -504,7 +505,7 @@
|
||||
.2byte \quantity
|
||||
.endm
|
||||
|
||||
@ Checks which Bag pocket the specified item belongs in, and writes the pocket value (POCKET_*) to VAR_RESULT.
|
||||
@ Checks which Bag pocket the specified item belongs in, and writes the pocket value (POCKET_*) to VAR_RESULT.
|
||||
@ This script is used to show the name of the proper Bag pocket when the player receives an item via callstd (simplified to giveitem in XSE).
|
||||
.macro checkitemtype index:req
|
||||
.byte 0x48
|
||||
@ -543,7 +544,7 @@
|
||||
.2byte \decoration
|
||||
.endm
|
||||
|
||||
@ Checks if the player has enough space in their PC to hold decoration. Sets VAR_RESULT to TRUE if there is room, or
|
||||
@ Checks if the player has enough space in their PC to hold decoration. Sets VAR_RESULT to TRUE if there is room, or
|
||||
@ FALSE is there is no room. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
|
||||
.macro checkdecorspace decoration:req
|
||||
.byte 0x4e
|
||||
@ -566,9 +567,9 @@
|
||||
.endif
|
||||
.endm
|
||||
|
||||
@ Blocks script execution until the movements being applied to the specified (index) Object finish.
|
||||
@ If the specified Object is 0x0000, then the command will block script execution until all Objects
|
||||
@ affected by applymovement finish their movements. If the specified Object is not currently being
|
||||
@ Blocks script execution until the movements being applied to the specified (index) Object finish.
|
||||
@ If the specified Object is 0x0000, then the command will block script execution until all Objects
|
||||
@ affected by applymovement finish their movements. If the specified Object is not currently being
|
||||
@ manipulated with applymovement, then this command does nothing.
|
||||
@ If no map is specified, then the current map is used.
|
||||
.macro waitmovement index:req, map
|
||||
@ -582,8 +583,8 @@
|
||||
.endif
|
||||
.endm
|
||||
|
||||
@ Attempts to hide the specified (index) Object on the specified (map_group, map_num) map,
|
||||
@ by setting its visibility flag if it has a valid one. If the Object does not have a valid
|
||||
@ Attempts to hide the specified (index) Object on the specified (map_group, map_num) map,
|
||||
@ by setting its visibility flag if it has a valid one. If the Object does not have a valid
|
||||
@ visibility flag, this command does nothing.
|
||||
@ If no map is specified, then the current map is used.
|
||||
.macro removeobject index:req, map
|
||||
@ -597,7 +598,7 @@
|
||||
.endif
|
||||
.endm
|
||||
|
||||
@ Unsets the specified (index) Object's visibility flag on the specified (map_group, map_num) map if it has a valid one.
|
||||
@ Unsets the specified (index) Object's visibility flag on the specified (map_group, map_num) map if it has a valid one.
|
||||
@ If the Object does not have a valid visibility flag, this command does nothing.
|
||||
@ If no map is specified, then the current map is used.
|
||||
.macro addobject index:req, map
|
||||
@ -739,7 +740,7 @@
|
||||
.endm
|
||||
|
||||
|
||||
@ Starts a trainer battle using the battle information stored in RAM (usually by trainerbattle, which actually calls this
|
||||
@ Starts a trainer battle using the battle information stored in RAM (usually by trainerbattle, which actually calls this
|
||||
@ command behind-the-scenes), and blocks script execution until the battle finishes.
|
||||
.macro trainerbattlebegin
|
||||
.byte 0x5d
|
||||
@ -780,7 +781,7 @@
|
||||
.2byte \y
|
||||
.endm
|
||||
|
||||
@ Copies a live object event's xy position to its template, so that if the sprite goes off screen,
|
||||
@ Copies a live object event's xy position to its template, so that if the sprite goes off screen,
|
||||
@ it'll still be there when it comes back on screen.
|
||||
.macro copyobjectxytoperm index:req
|
||||
.byte 0x64
|
||||
@ -793,14 +794,14 @@
|
||||
.byte \byte
|
||||
.endm
|
||||
|
||||
@ If a standard message box (or its text) is being drawn on-screen, this command blocks script execution until the
|
||||
@ If a standard message box (or its text) is being drawn on-screen, this command blocks script execution until the
|
||||
@ box and its text have been fully drawn.
|
||||
.macro waitmessage
|
||||
.byte 0x66
|
||||
.endm
|
||||
|
||||
@ Starts displaying a standard message box containing the specified text. If text is a pointer, then the string at
|
||||
@ that offset will be loaded and used. If text is script bank 0, then the value of script bank 0 will be treated as
|
||||
@ Starts displaying a standard message box containing the specified text. If text is a pointer, then the string at
|
||||
@ that offset will be loaded and used. If text is script bank 0, then the value of script bank 0 will be treated as
|
||||
@ a pointer to the text. (You can use loadpointer to place a string pointer in a script bank.)
|
||||
.macro message text:req
|
||||
.byte 0x67
|
||||
@ -812,12 +813,12 @@
|
||||
.byte 0x68
|
||||
.endm
|
||||
|
||||
@ Ceases movement for all Objects on-screen.
|
||||
@ Freezes all objects immediately except the player. The player is frozen once their movement is finished.
|
||||
.macro lockall
|
||||
.byte 0x69
|
||||
.endm
|
||||
|
||||
@ If the script was called by an Object, then that Object's movement will cease.
|
||||
@ Freezes all objects immediately except the player and the selected object. The player and selected object are frozen once their movement is finished.
|
||||
.macro lock
|
||||
.byte 0x6a
|
||||
.endm
|
||||
@ -845,39 +846,41 @@
|
||||
.byte \y
|
||||
.endm
|
||||
|
||||
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made.
|
||||
@ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
|
||||
.macro multichoice x:req, y:req, list:req, b:req
|
||||
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made.
|
||||
@ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with multichoiceId.
|
||||
@ If ignoreBPress is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
|
||||
.macro multichoice x:req, y:req, multichoiceId:req, ignoreBPress:req
|
||||
.byte 0x6f
|
||||
.byte \x
|
||||
.byte \y
|
||||
.byte \list
|
||||
.byte \b
|
||||
.byte \multichoiceId
|
||||
.byte \ignoreBPress
|
||||
.endm
|
||||
|
||||
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made.
|
||||
@ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with list. The default argument determines
|
||||
@ the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00.
|
||||
@ If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
|
||||
.macro multichoicedefault x:req, y:req, list:req, default:req, b:req
|
||||
@ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with multichoiceId.
|
||||
@ The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00.
|
||||
@ If ignoreBPress is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
|
||||
.macro multichoicedefault x:req, y:req, multichoiceId:req, default:req, ignoreBPress:req
|
||||
.byte 0x70
|
||||
.byte \x
|
||||
.byte \y
|
||||
.byte \list
|
||||
.byte \multichoiceId
|
||||
.byte \default
|
||||
.byte \b
|
||||
.byte \ignoreBPress
|
||||
.endm
|
||||
|
||||
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made.
|
||||
@ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with list.
|
||||
@ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with multichoiceId.
|
||||
@ The per_row argument determines how many list items will be shown on a single row of the box.
|
||||
.macro multichoicegrid x:req, y:req, list:req, per_row:req, B:req
|
||||
@ If ignoreBPress is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
|
||||
.macro multichoicegrid x:req, y:req, multichoiceId:req, per_row:req, ignoreBPress:req
|
||||
.byte 0x71
|
||||
.byte \x
|
||||
.byte \y
|
||||
.byte \list
|
||||
.byte \multichoiceId
|
||||
.byte \per_row
|
||||
.byte \B
|
||||
.byte \ignoreBPress
|
||||
.endm
|
||||
|
||||
@ Nopped in Emerald.
|
||||
@ -886,21 +889,21 @@
|
||||
.endm
|
||||
|
||||
@ Nopped in Emerald, but still consumes parameters.
|
||||
.macro erasebox byte1:req, byte2:req, byte3:req, byte4:req
|
||||
.macro erasebox left:req, top:req, right:req, bottom:req
|
||||
.byte 0x73
|
||||
.byte \byte1
|
||||
.byte \byte2
|
||||
.byte \byte3
|
||||
.byte \byte4
|
||||
.byte \left
|
||||
.byte \top
|
||||
.byte \right
|
||||
.byte \bottom
|
||||
.endm
|
||||
|
||||
@ Nopped in Emerald, but still consumes parameters.
|
||||
.macro drawboxtext byte1:req, byte2:req, byte3:req, byte4:req
|
||||
.macro drawboxtext left:req, top:req, multichoiceId:req, ignoreBPress:req
|
||||
.byte 0x74
|
||||
.byte \byte1
|
||||
.byte \byte2
|
||||
.byte \byte3
|
||||
.byte \byte4
|
||||
.byte \left
|
||||
.byte \top
|
||||
.byte \multichoiceId
|
||||
.byte \ignoreBPress
|
||||
.endm
|
||||
|
||||
@ Displays a box containing the front sprite for the specified (species) Pokemon species.
|
||||
@ -916,20 +919,31 @@
|
||||
.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
|
||||
@ characters and needs to provide six extra starting characters that are skipped (in RS, these characters determined the
|
||||
@ Displays the string at pointer as braille text in a standard message box. The string must be formatted to use braille
|
||||
@ characters and needs to provide six extra starting characters that are skipped (in RS, these characters determined the
|
||||
@ box's size and position, but in Emerald these are calculated automatically).
|
||||
.macro braillemessage text:req
|
||||
.byte 0x78
|
||||
.4byte \text
|
||||
.endm
|
||||
|
||||
@ Formatting for the braille window, to be put at the start of a pointer used by braillemessage.
|
||||
@ These are from RS and are ignored in Emerald (see ScrCmd_braillemessage, and comment above)
|
||||
.macro brailleformat winLeft:req, winTop:req, winRight:req, winBottom:req, textLeft:req, textTop:req
|
||||
.byte \winLeft
|
||||
.byte \winTop
|
||||
.byte \winRight
|
||||
.byte \winBottom
|
||||
.byte \textLeft
|
||||
.byte \textTop
|
||||
.endm
|
||||
|
||||
@ Gives the player one of the specified (species) Pokemon at level level holding item. The trailing 0s are unused parameters
|
||||
.macro givemon species:req, level:req, item:req
|
||||
.byte 0x79
|
||||
@ -982,7 +996,7 @@
|
||||
.2byte \slot
|
||||
.endm
|
||||
|
||||
@ Writes the name of the item at index item to the specified buffer. If the specified index is larger than
|
||||
@ Writes the name of the item at index item to the specified buffer. If the specified index is larger than
|
||||
@ the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead.
|
||||
.macro bufferitemname out:req, item:req
|
||||
.byte 0x80
|
||||
@ -1098,7 +1112,7 @@
|
||||
.byte \check
|
||||
.endm
|
||||
|
||||
@ If check is 0x00, this command will check if the player has money >= value; VAR_RESULT is set to TRUE if the player
|
||||
@ If check is 0x00, this command will check if the player has money >= value; VAR_RESULT is set to TRUE if the player
|
||||
@ has enough money, or FALSE if they do not.
|
||||
.macro checkmoney value:req, check:req
|
||||
.byte 0x92
|
||||
@ -1194,10 +1208,10 @@
|
||||
.endm
|
||||
|
||||
@ Plays the specified (species) Pokemon's cry. You can use waitcry to block script execution until the sound finishes.
|
||||
.macro playmoncry species:req, effect:req
|
||||
.macro playmoncry species:req, mode:req
|
||||
.byte 0xa1
|
||||
.2byte \species
|
||||
.2byte \effect
|
||||
.2byte \mode
|
||||
.endm
|
||||
|
||||
@ Changes the metatile at (x, y) on the current map.
|
||||
@ -1432,7 +1446,7 @@
|
||||
.2byte \box
|
||||
.endm
|
||||
|
||||
@ Sets the color of the text in standard message boxes. 0x00 produces blue (male) text, 0x01 produces red (female) text,
|
||||
@ Sets the color of the text in standard message boxes. 0x00 produces blue (male) text, 0x01 produces red (female) text,
|
||||
@ 0xFF resets the color to the default for the current OW's gender, and all other values produce black text.
|
||||
@ Used only in FireRed/LeafGreen, does nothing in Emerald.
|
||||
.macro textcolor color:req
|
||||
@ -1440,7 +1454,7 @@
|
||||
.byte \color
|
||||
.endm
|
||||
|
||||
@ The exact purpose of this command is unknown, but it is related to the blue help-text box that appears on the bottom
|
||||
@ The exact purpose of this command is unknown, but it is related to the blue help-text box that appears on the bottom
|
||||
@ of the screen when the Main Menu is opened.
|
||||
@ Used only in FireRed/LeafGreen, does nothing in Emerald.
|
||||
.macro loadhelp pointer:req
|
||||
@ -1475,15 +1489,15 @@
|
||||
.4byte \value
|
||||
.endm
|
||||
|
||||
@ Makes the Pokemon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle.
|
||||
.macro setmonobedient slot:req
|
||||
@ Sets the Pokemon in the specified slot of the player party's eventLegal bit.
|
||||
.macro setmoneventlegal slot:req
|
||||
.byte 0xcd
|
||||
.2byte \slot
|
||||
.endm
|
||||
|
||||
@ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient,
|
||||
@ VAR_RESULT is TRUE. If the Pokemon is obedient (or if the specified slot is empty or invalid), VAR_RESULT is FALSE.
|
||||
.macro checkmonobedience slot:req
|
||||
@ Checks if the Pokemon in the specified slot of the player's party has its eventLegal bit set. If it isn't set,
|
||||
@ VAR_RESULT is TRUE. If the bit is set (or if the specified slot is empty or invalid), VAR_RESULT is FALSE.
|
||||
.macro checkmoneventlegal slot:req
|
||||
.byte 0xce
|
||||
.2byte \slot
|
||||
.endm
|
||||
@ -1550,11 +1564,11 @@
|
||||
.2byte \y
|
||||
.endm
|
||||
|
||||
.macro cmdD8
|
||||
.macro selectapproachingtrainer
|
||||
.byte 0xd8
|
||||
.endm
|
||||
|
||||
.macro cmdD9
|
||||
.macro lockfortrainer
|
||||
.byte 0xd9
|
||||
.endm
|
||||
|
||||
@ -1562,7 +1576,7 @@
|
||||
.byte 0xda
|
||||
.endm
|
||||
|
||||
.macro message3 pointer:req
|
||||
.macro messageinstant pointer:req
|
||||
.byte 0xdb
|
||||
.4byte \pointer
|
||||
.endm
|
||||
@ -1629,7 +1643,7 @@
|
||||
|
||||
.macro goto_if_lt dest:req @ LESS THAN
|
||||
goto_if 0, \dest
|
||||
.endm
|
||||
.endm
|
||||
|
||||
.macro goto_if_eq dest:req @ EQUAL
|
||||
goto_if 1, \dest
|
||||
@ -1663,7 +1677,7 @@
|
||||
|
||||
.macro call_if_lt dest:req @ LESS THAN
|
||||
call_if 0, \dest
|
||||
.endm
|
||||
.endm
|
||||
|
||||
.macro call_if_eq dest:req @ EQUAL
|
||||
call_if 1, \dest
|
||||
@ -1778,3 +1792,9 @@
|
||||
setfieldeffectargument 2, \priority
|
||||
dofieldeffect FLDEFF_SPARKLE
|
||||
.endm
|
||||
|
||||
.macro braillemsgbox text:req
|
||||
braillemessage \text
|
||||
waitbuttonpress
|
||||
closebraillemessage
|
||||
.endm
|
||||
|
||||
@ -51,25 +51,25 @@
|
||||
inc _num_traps
|
||||
.endm
|
||||
|
||||
.macro bg_event x, y, elevation, kind, arg6, arg7, arg8
|
||||
.macro bg_event x, y, elevation, kind, arg6, arg7
|
||||
.2byte \x, \y
|
||||
.byte \elevation, \kind
|
||||
.2byte 0
|
||||
.if \kind < 5
|
||||
.if \kind != BG_EVENT_HIDDEN_ITEM
|
||||
.4byte \arg6
|
||||
.else
|
||||
.2byte \arg6
|
||||
.byte \arg7, \arg8
|
||||
.2byte \arg7
|
||||
.endif
|
||||
inc _num_signs
|
||||
.endm
|
||||
|
||||
.macro bg_hidden_item_event x, y, height, item, flag
|
||||
bg_event \x, \y, \height, 7, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START), 0
|
||||
bg_event \x, \y, \height, BG_EVENT_HIDDEN_ITEM, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START)
|
||||
.endm
|
||||
|
||||
.macro bg_secret_base_event x, y, height, secret_base_id
|
||||
bg_event \x, \y, \height, 8, \secret_base_id, 0, 0
|
||||
bg_event \x, \y, \height, BG_EVENT_SECRET_BASE, \secret_base_id
|
||||
.endm
|
||||
|
||||
.macro map_events npcs, warps, traps, signs
|
||||
|
||||
@ -1,131 +1,166 @@
|
||||
.macro create_movement_action name
|
||||
enum _\name
|
||||
.macro create_movement_action name:req, value:req
|
||||
.macro \name
|
||||
.byte _\name
|
||||
.byte \value
|
||||
.endm
|
||||
.endm
|
||||
|
||||
enum_start
|
||||
create_movement_action face_down
|
||||
create_movement_action face_up
|
||||
create_movement_action face_left
|
||||
create_movement_action face_right
|
||||
create_movement_action walk_slow_down
|
||||
create_movement_action walk_slow_up
|
||||
create_movement_action walk_slow_left
|
||||
create_movement_action walk_slow_right
|
||||
create_movement_action walk_down
|
||||
create_movement_action walk_up
|
||||
create_movement_action walk_left
|
||||
create_movement_action walk_right
|
||||
create_movement_action jump_2_down
|
||||
create_movement_action jump_2_up
|
||||
create_movement_action jump_2_left
|
||||
create_movement_action jump_2_right
|
||||
create_movement_action delay_1
|
||||
create_movement_action delay_2
|
||||
create_movement_action delay_4
|
||||
create_movement_action delay_8
|
||||
create_movement_action delay_16
|
||||
create_movement_action walk_fast_down
|
||||
create_movement_action walk_fast_up
|
||||
create_movement_action walk_fast_left
|
||||
create_movement_action walk_fast_right
|
||||
create_movement_action walk_in_place_slow_down
|
||||
create_movement_action walk_in_place_slow_up
|
||||
create_movement_action walk_in_place_slow_left
|
||||
create_movement_action walk_in_place_slow_right
|
||||
create_movement_action walk_in_place_down
|
||||
create_movement_action walk_in_place_up
|
||||
create_movement_action walk_in_place_left
|
||||
create_movement_action walk_in_place_right
|
||||
create_movement_action walk_in_place_fast_down
|
||||
create_movement_action walk_in_place_fast_up
|
||||
create_movement_action walk_in_place_fast_left
|
||||
create_movement_action walk_in_place_fast_right
|
||||
create_movement_action walk_in_place_fastest_down
|
||||
create_movement_action walk_in_place_fastest_up
|
||||
create_movement_action walk_in_place_fastest_left
|
||||
create_movement_action walk_in_place_fastest_right
|
||||
create_movement_action ride_water_current_down
|
||||
create_movement_action ride_water_current_up
|
||||
create_movement_action ride_water_current_left
|
||||
create_movement_action ride_water_current_right
|
||||
create_movement_action walk_fastest_down
|
||||
create_movement_action walk_fastest_up
|
||||
create_movement_action walk_fastest_left
|
||||
create_movement_action walk_fastest_right
|
||||
create_movement_action slide_down
|
||||
create_movement_action slide_up
|
||||
create_movement_action slide_left
|
||||
create_movement_action slide_right
|
||||
create_movement_action player_run_down
|
||||
create_movement_action player_run_up
|
||||
create_movement_action player_run_left
|
||||
create_movement_action player_run_right
|
||||
create_movement_action start_anim_in_direction
|
||||
create_movement_action jump_special_down
|
||||
create_movement_action jump_special_up
|
||||
create_movement_action jump_special_left
|
||||
create_movement_action jump_special_right
|
||||
create_movement_action face_player
|
||||
create_movement_action face_away_player
|
||||
create_movement_action lock_facing_direction
|
||||
create_movement_action unlock_facing_direction
|
||||
create_movement_action jump_down
|
||||
create_movement_action jump_up
|
||||
create_movement_action jump_left
|
||||
create_movement_action jump_right
|
||||
create_movement_action jump_in_place_down
|
||||
create_movement_action jump_in_place_up
|
||||
create_movement_action jump_in_place_left
|
||||
create_movement_action jump_in_place_right
|
||||
create_movement_action jump_in_place_down_up
|
||||
create_movement_action jump_in_place_up_down
|
||||
create_movement_action jump_in_place_left_right
|
||||
create_movement_action jump_in_place_right_left
|
||||
create_movement_action face_original_direction
|
||||
create_movement_action nurse_joy_bow
|
||||
create_movement_action enable_jump_landing_ground_effect
|
||||
create_movement_action disable_jump_landing_ground_effect
|
||||
create_movement_action disable_anim
|
||||
create_movement_action restore_anim
|
||||
create_movement_action set_invisible
|
||||
create_movement_action set_visible
|
||||
create_movement_action emote_exclamation_mark
|
||||
create_movement_action emote_question_mark
|
||||
create_movement_action emote_heart
|
||||
create_movement_action reveal_trainer
|
||||
create_movement_action rock_smash_break
|
||||
create_movement_action cut_tree
|
||||
create_movement_action set_fixed_priority
|
||||
create_movement_action clear_fixed_priority
|
||||
create_movement_action init_affine_anim
|
||||
create_movement_action clear_affine_anim
|
||||
create_movement_action hide_reflection
|
||||
create_movement_action show_reflection
|
||||
create_movement_action walk_down_start_affine
|
||||
create_movement_action walk_down_affine
|
||||
create_movement_action face_down, MOVEMENT_ACTION_FACE_DOWN
|
||||
create_movement_action face_up, MOVEMENT_ACTION_FACE_UP
|
||||
create_movement_action face_left, MOVEMENT_ACTION_FACE_LEFT
|
||||
create_movement_action face_right, MOVEMENT_ACTION_FACE_RIGHT
|
||||
create_movement_action walk_slow_down, MOVEMENT_ACTION_WALK_SLOW_DOWN
|
||||
create_movement_action walk_slow_up, MOVEMENT_ACTION_WALK_SLOW_UP
|
||||
create_movement_action walk_slow_left, MOVEMENT_ACTION_WALK_SLOW_LEFT
|
||||
create_movement_action walk_slow_right, MOVEMENT_ACTION_WALK_SLOW_RIGHT
|
||||
create_movement_action walk_down, MOVEMENT_ACTION_WALK_NORMAL_DOWN
|
||||
create_movement_action walk_up, MOVEMENT_ACTION_WALK_NORMAL_UP
|
||||
create_movement_action walk_left, MOVEMENT_ACTION_WALK_NORMAL_LEFT
|
||||
create_movement_action walk_right, MOVEMENT_ACTION_WALK_NORMAL_RIGHT
|
||||
create_movement_action jump_2_down, MOVEMENT_ACTION_JUMP_2_DOWN
|
||||
create_movement_action jump_2_up, MOVEMENT_ACTION_JUMP_2_UP
|
||||
create_movement_action jump_2_left, MOVEMENT_ACTION_JUMP_2_LEFT
|
||||
create_movement_action jump_2_right, MOVEMENT_ACTION_JUMP_2_RIGHT
|
||||
create_movement_action delay_1, MOVEMENT_ACTION_DELAY_1
|
||||
create_movement_action delay_2, MOVEMENT_ACTION_DELAY_2
|
||||
create_movement_action delay_4, MOVEMENT_ACTION_DELAY_4
|
||||
create_movement_action delay_8, MOVEMENT_ACTION_DELAY_8
|
||||
create_movement_action delay_16, MOVEMENT_ACTION_DELAY_16
|
||||
create_movement_action walk_fast_down, MOVEMENT_ACTION_WALK_FAST_DOWN
|
||||
create_movement_action walk_fast_up, MOVEMENT_ACTION_WALK_FAST_UP
|
||||
create_movement_action walk_fast_left, MOVEMENT_ACTION_WALK_FAST_LEFT
|
||||
create_movement_action walk_fast_right, MOVEMENT_ACTION_WALK_FAST_RIGHT
|
||||
create_movement_action walk_in_place_slow_down, MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN
|
||||
create_movement_action walk_in_place_slow_up, MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP
|
||||
create_movement_action walk_in_place_slow_left, MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT
|
||||
create_movement_action walk_in_place_slow_right, MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT
|
||||
create_movement_action walk_in_place_down, MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN
|
||||
create_movement_action walk_in_place_up, MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP
|
||||
create_movement_action walk_in_place_left, MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT
|
||||
create_movement_action walk_in_place_right, MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT
|
||||
create_movement_action walk_in_place_fast_down, MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN
|
||||
create_movement_action walk_in_place_fast_up, MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP
|
||||
create_movement_action walk_in_place_fast_left, MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT
|
||||
create_movement_action walk_in_place_fast_right, MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT
|
||||
create_movement_action walk_in_place_faster_down, MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN
|
||||
create_movement_action walk_in_place_faster_up, MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP
|
||||
create_movement_action walk_in_place_faster_left, MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_LEFT
|
||||
create_movement_action walk_in_place_faster_right, MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT
|
||||
create_movement_action ride_water_current_down, MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN
|
||||
create_movement_action ride_water_current_up, MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP
|
||||
create_movement_action ride_water_current_left, MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT
|
||||
create_movement_action ride_water_current_right, MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT
|
||||
create_movement_action walk_faster_down, MOVEMENT_ACTION_WALK_FASTER_DOWN
|
||||
create_movement_action walk_faster_up, MOVEMENT_ACTION_WALK_FASTER_UP
|
||||
create_movement_action walk_faster_left, MOVEMENT_ACTION_WALK_FASTER_LEFT
|
||||
create_movement_action walk_faster_right, MOVEMENT_ACTION_WALK_FASTER_RIGHT
|
||||
create_movement_action slide_down, MOVEMENT_ACTION_SLIDE_DOWN
|
||||
create_movement_action slide_up, MOVEMENT_ACTION_SLIDE_UP
|
||||
create_movement_action slide_left, MOVEMENT_ACTION_SLIDE_LEFT
|
||||
create_movement_action slide_right, MOVEMENT_ACTION_SLIDE_RIGHT
|
||||
create_movement_action player_run_down, MOVEMENT_ACTION_PLAYER_RUN_DOWN
|
||||
create_movement_action player_run_up, MOVEMENT_ACTION_PLAYER_RUN_UP
|
||||
create_movement_action player_run_left, MOVEMENT_ACTION_PLAYER_RUN_LEFT
|
||||
create_movement_action player_run_right, MOVEMENT_ACTION_PLAYER_RUN_RIGHT
|
||||
create_movement_action start_anim_in_direction, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION
|
||||
create_movement_action jump_special_down, MOVEMENT_ACTION_JUMP_SPECIAL_DOWN
|
||||
create_movement_action jump_special_up, MOVEMENT_ACTION_JUMP_SPECIAL_UP
|
||||
create_movement_action jump_special_left, MOVEMENT_ACTION_JUMP_SPECIAL_LEFT
|
||||
create_movement_action jump_special_right, MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT
|
||||
create_movement_action face_player, MOVEMENT_ACTION_FACE_PLAYER
|
||||
create_movement_action face_away_player, MOVEMENT_ACTION_FACE_AWAY_PLAYER
|
||||
create_movement_action lock_facing_direction, MOVEMENT_ACTION_LOCK_FACING_DIRECTION
|
||||
create_movement_action unlock_facing_direction, MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION
|
||||
create_movement_action jump_down, MOVEMENT_ACTION_JUMP_DOWN
|
||||
create_movement_action jump_up, MOVEMENT_ACTION_JUMP_UP
|
||||
create_movement_action jump_left, MOVEMENT_ACTION_JUMP_LEFT
|
||||
create_movement_action jump_right, MOVEMENT_ACTION_JUMP_RIGHT
|
||||
create_movement_action jump_in_place_down, MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN
|
||||
create_movement_action jump_in_place_up, MOVEMENT_ACTION_JUMP_IN_PLACE_UP
|
||||
create_movement_action jump_in_place_left, MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT
|
||||
create_movement_action jump_in_place_right, MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT
|
||||
create_movement_action jump_in_place_down_up, MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP
|
||||
create_movement_action jump_in_place_up_down, MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN
|
||||
create_movement_action jump_in_place_left_right, MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT
|
||||
create_movement_action jump_in_place_right_left, MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT
|
||||
create_movement_action face_original_direction, MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION
|
||||
create_movement_action nurse_joy_bow, MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN
|
||||
create_movement_action enable_jump_landing_ground_effect, MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT
|
||||
create_movement_action disable_jump_landing_ground_effect, MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT
|
||||
create_movement_action disable_anim, MOVEMENT_ACTION_DISABLE_ANIMATION
|
||||
create_movement_action restore_anim, MOVEMENT_ACTION_RESTORE_ANIMATION
|
||||
create_movement_action set_invisible, MOVEMENT_ACTION_SET_INVISIBLE
|
||||
create_movement_action set_visible, MOVEMENT_ACTION_SET_VISIBLE
|
||||
create_movement_action emote_exclamation_mark, MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK
|
||||
create_movement_action emote_question_mark, MOVEMENT_ACTION_EMOTE_QUESTION_MARK
|
||||
create_movement_action emote_heart, MOVEMENT_ACTION_EMOTE_HEART
|
||||
create_movement_action reveal_trainer, MOVEMENT_ACTION_REVEAL_TRAINER
|
||||
create_movement_action rock_smash_break, MOVEMENT_ACTION_ROCK_SMASH_BREAK
|
||||
create_movement_action cut_tree, MOVEMENT_ACTION_CUT_TREE
|
||||
create_movement_action set_fixed_priority, MOVEMENT_ACTION_SET_FIXED_PRIORITY
|
||||
create_movement_action clear_fixed_priority, MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY
|
||||
create_movement_action init_affine_anim, MOVEMENT_ACTION_INIT_AFFINE_ANIM
|
||||
create_movement_action clear_affine_anim, MOVEMENT_ACTION_CLEAR_AFFINE_ANIM
|
||||
create_movement_action hide_reflection, MOVEMENT_ACTION_HIDE_REFLECTION
|
||||
create_movement_action show_reflection, MOVEMENT_ACTION_SHOW_REFLECTION
|
||||
create_movement_action walk_down_start_affine, MOVEMENT_ACTION_WALK_DOWN_START_AFFINE
|
||||
create_movement_action walk_down_affine, MOVEMENT_ACTION_WALK_DOWN_AFFINE
|
||||
create_movement_action acro_wheelie_face_down, MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN
|
||||
create_movement_action acro_wheelie_face_up, MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP
|
||||
create_movement_action acro_wheelie_face_left, MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT
|
||||
create_movement_action acro_wheelie_face_right, MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT
|
||||
create_movement_action acro_pop_wheelie_down, MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN
|
||||
create_movement_action acro_pop_wheelie_up, MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP
|
||||
create_movement_action acro_pop_wheelie_left, MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT
|
||||
create_movement_action acro_pop_wheelie_right, MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT
|
||||
create_movement_action acro_end_wheelie_face_down, MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN
|
||||
create_movement_action acro_end_wheelie_face_up, MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP
|
||||
create_movement_action acro_end_wheelie_face_left, MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT
|
||||
create_movement_action acro_end_wheelie_face_right, MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT
|
||||
create_movement_action acro_wheelie_hop_face_down, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN
|
||||
create_movement_action acro_wheelie_hop_face_up, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP
|
||||
create_movement_action acro_wheelie_hop_face_left, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT
|
||||
create_movement_action acro_wheelie_hop_face_right, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT
|
||||
create_movement_action acro_wheelie_hop_down, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN
|
||||
create_movement_action acro_wheelie_hop_up, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP
|
||||
create_movement_action acro_wheelie_hop_left, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT
|
||||
create_movement_action acro_wheelie_hop_right, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT
|
||||
create_movement_action acro_wheelie_jump_down, MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN
|
||||
create_movement_action acro_wheelie_jump_up, MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP
|
||||
create_movement_action acro_wheelie_jump_left, MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT
|
||||
create_movement_action acro_wheelie_jump_right, MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT
|
||||
create_movement_action acro_wheelie_in_place_down, MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN
|
||||
create_movement_action acro_wheelie_in_place_up, MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP
|
||||
create_movement_action acro_wheelie_in_place_left, MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT
|
||||
create_movement_action acro_wheelie_in_place_right, MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT
|
||||
create_movement_action acro_pop_wheelie_move_down, MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN
|
||||
create_movement_action acro_pop_wheelie_move_up, MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP
|
||||
create_movement_action acro_pop_wheelie_move_left, MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT
|
||||
create_movement_action acro_pop_wheelie_move_right, MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT
|
||||
create_movement_action acro_wheelie_move_down, MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN
|
||||
create_movement_action acro_wheelie_move_up, MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP
|
||||
create_movement_action acro_wheelie_move_left, MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT
|
||||
create_movement_action acro_wheelie_move_right, MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT
|
||||
create_movement_action acro_end_wheelie_move_down, MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN
|
||||
create_movement_action acro_end_wheelie_move_up, MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP
|
||||
create_movement_action acro_end_wheelie_move_left, MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT
|
||||
create_movement_action acro_end_wheelie_move_right, MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT
|
||||
create_movement_action walk_diag_northwest, MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_LEFT
|
||||
create_movement_action walk_diag_northeast, MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_RIGHT
|
||||
create_movement_action walk_diag_southwest, MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_LEFT
|
||||
create_movement_action walk_diag_southeast, MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_RIGHT
|
||||
create_movement_action walk_slow_diag_northwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_LEFT
|
||||
create_movement_action walk_slow_diag_northeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT
|
||||
create_movement_action walk_slow_diag_southwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT
|
||||
create_movement_action walk_slow_diag_southeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT
|
||||
create_movement_action store_lock_anim, MOVEMENT_ACTION_STORE_AND_LOCK_ANIM
|
||||
create_movement_action free_unlock_anim, MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM
|
||||
create_movement_action walk_left_affine, MOVEMENT_ACTION_WALK_LEFT_AFFINE
|
||||
create_movement_action walk_right_affine, MOVEMENT_ACTION_WALK_RIGHT_AFFINE
|
||||
create_movement_action levitate, MOVEMENT_ACTION_LEVITATE
|
||||
create_movement_action stop_levitate, MOVEMENT_ACTION_STOP_LEVITATE
|
||||
create_movement_action destroy_extra_task, MOVEMENT_ACTION_STOP_LEVITATE_AT_TOP
|
||||
create_movement_action figure_8, MOVEMENT_ACTION_FIGURE_8
|
||||
create_movement_action fly_up, MOVEMENT_ACTION_FLY_UP
|
||||
create_movement_action fly_down, MOVEMENT_ACTION_FLY_DOWN
|
||||
|
||||
enum_start 0x8C
|
||||
create_movement_action walk_diag_northwest
|
||||
create_movement_action walk_diag_northeast
|
||||
create_movement_action walk_diag_southwest
|
||||
create_movement_action walk_diag_southeast
|
||||
create_movement_action walk_slow_diag_northwest
|
||||
create_movement_action walk_slow_diag_northeast
|
||||
create_movement_action walk_slow_diag_southwest
|
||||
create_movement_action walk_slow_diag_southeast
|
||||
create_movement_action store_lock_anim
|
||||
create_movement_action free_unlock_anim
|
||||
create_movement_action walk_left_affine
|
||||
create_movement_action walk_right_affine
|
||||
create_movement_action levitate
|
||||
create_movement_action stop_levitate
|
||||
create_movement_action destroy_extra_task
|
||||
create_movement_action figure_8
|
||||
create_movement_action fly_up
|
||||
create_movement_action fly_down
|
||||
|
||||
enum_start 0xfe
|
||||
create_movement_action step_end
|
||||
create_movement_action step_end, MOVEMENT_ACTION_STEP_END
|
||||
|
||||
@ -145,7 +145,7 @@
|
||||
.byte 0xff, 0, 0xff, 0
|
||||
.endm
|
||||
|
||||
.macro cry2 sample:req
|
||||
.macro cry_reverse sample:req
|
||||
.byte 0x30, 60, 0, 0
|
||||
.4byte \sample
|
||||
.byte 0xff, 0, 0xff, 0
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
.global RomHeaderNintendoLogo
|
||||
RomHeaderNintendoLogo:
|
||||
.space 156
|
||||
|
||||
RomHeaderGameTitle:
|
||||
.space 12
|
||||
|
||||
.global RomHeaderGameCode
|
||||
RomHeaderGameCode:
|
||||
.space 4
|
||||
|
||||
RomHeaderMakerCode:
|
||||
.space 2
|
||||
|
||||
RomHeaderMagic:
|
||||
.byte 0
|
||||
|
||||
RomHeaderMainUnitCode:
|
||||
.byte 0
|
||||
|
||||
RomHeaderDeviceType:
|
||||
.byte 0
|
||||
|
||||
RomHeaderReserved1:
|
||||
.space 7
|
||||
|
||||
.global RomHeaderSoftwareVersion
|
||||
RomHeaderSoftwareVersion:
|
||||
.byte 0
|
||||
|
||||
RomHeaderChecksum:
|
||||
.byte 0
|
||||
|
||||
RomHeaderReserved2:
|
||||
.space 2
|
||||
16
asmdiff.sh
16
asmdiff.sh
@ -1,7 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
OBJDUMP="$DEVKITARM/bin/arm-none-eabi-objdump -D -bbinary -marmv4t -Mforce-thumb"
|
||||
OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))"
|
||||
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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -109,7 +109,7 @@ _1a0:
|
||||
strh r1, [r0, 0xa] @ SIOMLT_SEND
|
||||
ldr r0, =_data_2f0
|
||||
ldr r1, =gCode
|
||||
svc 0x11 << 16
|
||||
swi 0x11 << 16
|
||||
ldr lr, =gCode
|
||||
bx lr
|
||||
.pool
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -100,12 +100,12 @@ struct CgbChannel
|
||||
u8 le;
|
||||
u8 sw;
|
||||
u32 fr;
|
||||
u32 *wp;
|
||||
u32 *cp;
|
||||
void *tp;
|
||||
void *pp;
|
||||
void *np;
|
||||
u32 d4[2];
|
||||
u32 wp;
|
||||
u32 cp;
|
||||
u32 tp;
|
||||
u32 pp;
|
||||
u32 np;
|
||||
u8 d4[8];
|
||||
};
|
||||
|
||||
struct MusicPlayerTrack;
|
||||
@ -138,10 +138,10 @@ struct SoundChannel
|
||||
u32 fw;
|
||||
u32 freq;
|
||||
struct WaveData *wav;
|
||||
s8 *cp;
|
||||
u32 cp;
|
||||
struct MusicPlayerTrack *track;
|
||||
void *pp;
|
||||
void *np;
|
||||
u32 pp;
|
||||
u32 np;
|
||||
u32 d4;
|
||||
u16 xpi;
|
||||
u16 xpc;
|
||||
@ -172,11 +172,11 @@ struct SoundInfo
|
||||
u8 pcmDmaPeriod; // number of V-blanks per PCM DMA
|
||||
u8 maxLines;
|
||||
u8 gap[3];
|
||||
u32 pcmSamplesPerVBlank;
|
||||
u32 pcmFreq;
|
||||
u32 divFreq;
|
||||
s32 pcmSamplesPerVBlank;
|
||||
s32 pcmFreq;
|
||||
s32 divFreq;
|
||||
struct CgbChannel *cgbChans;
|
||||
void (*func)();
|
||||
u32 func;
|
||||
u32 intp;
|
||||
void (*CgbSound)(void);
|
||||
void (*CgbOscOff)(u8);
|
||||
@ -184,7 +184,7 @@ struct SoundInfo
|
||||
u32 MPlayJumpTable;
|
||||
u32 plynote;
|
||||
u32 ExtVolPit;
|
||||
u32 gap2[4];
|
||||
u8 gap2[16];
|
||||
struct SoundChannel chans[MAX_DIRECTSOUND_CHANNELS];
|
||||
s8 pcmBuffer[PCM_DMA_BUF_SIZE * 2];
|
||||
};
|
||||
@ -248,7 +248,7 @@ struct MusicPlayerTrack
|
||||
u8 key;
|
||||
u8 velocity;
|
||||
u8 runningStatus;
|
||||
s8 keyM;
|
||||
u8 keyM;
|
||||
u8 pitM;
|
||||
s8 keyShift;
|
||||
s8 keyShiftX;
|
||||
@ -312,7 +312,7 @@ struct MusicPlayerInfo
|
||||
struct MusicPlayerTrack *tracks;
|
||||
struct ToneData *tone;
|
||||
u32 ident;
|
||||
void (*func)();
|
||||
u32 func;
|
||||
u32 intp;
|
||||
};
|
||||
|
||||
@ -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);
|
||||
@ -447,7 +447,7 @@ void ply_tune(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||
void ply_port(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||
void ply_xcmd(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||
void ply_endtie(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||
void ply_note(u8, struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||
void ply_note(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||
|
||||
// extended sound command handler functions
|
||||
void ply_xxx(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
|
||||
|
||||
@ -79,23 +79,16 @@ struct CoordEvent
|
||||
|
||||
struct BgEvent
|
||||
{
|
||||
/*0x00*/u16 x;
|
||||
/*0x02*/u16 y;
|
||||
/*0x04*/u8 elevation;
|
||||
/*0x05*/u8 kind;
|
||||
/*0x08*/union { // carried over from diego's FR/LG work, seems to be the same struct
|
||||
// in gen 3, "kind" (0x3 in BgEvent struct) determines the method to read the union.
|
||||
u16 x, y;
|
||||
u8 elevation;
|
||||
u8 kind; // The "kind" field determines how to access bgUnion union below.
|
||||
union {
|
||||
u8 *script;
|
||||
|
||||
// hidden item type
|
||||
struct {
|
||||
u16 item;
|
||||
u16 hiddenItemId; // flag offset to determine flag lookup
|
||||
u16 hiddenItemId;
|
||||
} hiddenItem;
|
||||
|
||||
// secret base type
|
||||
u32 secretBaseId;
|
||||
|
||||
} bgUnion;
|
||||
};
|
||||
|
||||
@ -226,14 +219,14 @@ struct EventObjectGraphicsInfo
|
||||
/*0x20*/ const union AffineAnimCmd *const *affineAnims;
|
||||
};
|
||||
|
||||
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
|
||||
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
|
||||
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
|
||||
#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
|
||||
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4)
|
||||
#define PLAYER_AVATAR_FLAG_5 (1 << 5)
|
||||
#define PLAYER_AVATAR_FLAG_6 (1 << 6)
|
||||
#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
|
||||
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
|
||||
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
|
||||
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
|
||||
#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
|
||||
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4)
|
||||
#define PLAYER_AVATAR_FLAG_CONTROLLABLE (1 << 5)
|
||||
#define PLAYER_AVATAR_FLAG_FORCED_MOVE (1 << 6)
|
||||
#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
|
||||
|
||||
enum
|
||||
{
|
||||
|
||||
@ -6,17 +6,18 @@
|
||||
// global.h from pokemon ruby
|
||||
|
||||
// IDE support
|
||||
#if defined(__APPLE__) || defined(__CYGWIN__)
|
||||
#define _(x) x
|
||||
#define __(x) x
|
||||
#define INCBIN(x) {0}
|
||||
#define INCBIN_U8 INCBIN
|
||||
#define INCBIN_U16 INCBIN
|
||||
#define INCBIN_U32 INCBIN
|
||||
#define INCBIN_S8 INCBIN
|
||||
#define INCBIN_S16 INCBIN
|
||||
#define INCBIN_S32 INCBIN
|
||||
#endif
|
||||
#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__INTELLISENSE__)
|
||||
// We define these when using certain IDEs to fool preproc
|
||||
#define _(x) (x)
|
||||
#define __(x) (x)
|
||||
#define INCBIN(...) {0}
|
||||
#define INCBIN_U8 INCBIN
|
||||
#define INCBIN_U16 INCBIN
|
||||
#define INCBIN_U32 INCBIN
|
||||
#define INCBIN_S8 INCBIN
|
||||
#define INCBIN_S16 INCBIN
|
||||
#define INCBIN_S32 INCBIN
|
||||
#endif // IDE support
|
||||
|
||||
// Prevent cross-jump optimization.
|
||||
#define BLOCK_CROSS_JUMP asm("");
|
||||
|
||||
@ -296,7 +296,7 @@ u8 HandleWriteSectorNBytes(u8 sectorNum, u8 *data, u16 size)
|
||||
|
||||
u8 TryWriteSector(u8 sectorNum, u8 *data)
|
||||
{
|
||||
if (ProgramFlashSectorAndVerify(sectorNum, data)) // is damaged?
|
||||
if (ProgramFlashSectorAndVerify(sectorNum, data) != 0) // is damaged?
|
||||
{
|
||||
SetSectorDamagedStatus(SECTOR_DAMAGED, sectorNum); // set damaged sector bits.
|
||||
return SAVE_STATUS_ERROR;
|
||||
|
||||
14
charmap.txt
14
charmap.txt
@ -414,7 +414,7 @@ HIGHLIGHT = FC 02 @ same as fc 01
|
||||
SHADOW = FC 03 @ same as fc 01
|
||||
COLOR_HIGHLIGHT_SHADOW = FC 04 @ takes 3 bytes
|
||||
PALETTE = FC 05 @ used in credits
|
||||
SIZE = FC 06 @ note that anything other than "SMALL" is invalid
|
||||
FONT = FC 06 @ Given a font id, or use font constants below instead
|
||||
RESET_SIZE = FC 07
|
||||
PAUSE = FC 08 @ manually print the wait byte after this, havent mapped them
|
||||
PAUSE_UNTIL_PRESS = FC 09
|
||||
@ -434,12 +434,20 @@ ENG = FC 16
|
||||
PAUSE_MUSIC = FC 17
|
||||
RESUME_MUSIC = FC 18
|
||||
|
||||
@ fonts
|
||||
|
||||
FONT_SMALL = FC 06 00
|
||||
FONT_NORMAL = FC 06 01
|
||||
FONT_SHORT = FC 06 02
|
||||
FONT_NARROW = FC 06 07
|
||||
FONT_SMALL_NARROW = FC 06 08
|
||||
|
||||
@ colors
|
||||
|
||||
TRANSPARENT = 00
|
||||
WHITE = 01
|
||||
DARK_GREY = 02
|
||||
LIGHT_GREY = 03
|
||||
DARK_GRAY = 02
|
||||
LIGHT_GRAY = 03
|
||||
RED = 04
|
||||
LIGHT_RED = 05
|
||||
GREEN = 06
|
||||
|
||||
@ -1 +1 @@
|
||||
gUnknown_030062E8
|
||||
gFactorySelect_CurrentOptionFunc
|
||||
|
||||
@ -6,4 +6,4 @@ gBattlerControllerFuncs
|
||||
gHealthboxSpriteIds
|
||||
gMultiUsePlayerCursor
|
||||
gNumberOfMovesToChoose
|
||||
gUnknown_03005D7C
|
||||
gBattleControllerData
|
||||
|
||||
@ -1 +1 @@
|
||||
gUnknown_03006298
|
||||
gFrontierTempParty
|
||||
|
||||
@ -1 +1 @@
|
||||
gUnneededFireRedVariable
|
||||
gWindowTileAutoAllocEnabled
|
||||
|
||||
@ -1 +1 @@
|
||||
gUnknown_03006370
|
||||
gEReaderData
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
gf_rfu_REQ_api
|
||||
Rfu
|
||||
gRfuAPIBuffer
|
||||
gRfu
|
||||
|
||||
@ -3,11 +3,11 @@ gLastSaveCounter
|
||||
gLastKnownGoodSector
|
||||
gDamagedSaveSectors
|
||||
gSaveCounter
|
||||
gFastSaveSection
|
||||
gUnknown_03006208
|
||||
gReadWriteSector
|
||||
gIncrementalSectorId
|
||||
gSaveUnusedVar
|
||||
gSaveFileStatus
|
||||
gGameContinueCallback
|
||||
gRamSaveSectionLocations
|
||||
gRamSaveSectorLocations
|
||||
gSaveUnusedVar2
|
||||
gSaveAttemptStatus
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
gFonts
|
||||
gUnknown_03002F84
|
||||
gUnknown_03002F90
|
||||
gDisableTextPrinters
|
||||
gCurGlyph
|
||||
gTextFlags
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
filler_03002F58
|
||||
filler_03002F5C
|
||||
gUnusedWindowVar1
|
||||
gUnusedWindowVar2
|
||||
gTransparentTileNumber
|
||||
filler_03002F64
|
||||
gUnknown_03002F70
|
||||
gUnusedWindowVar3
|
||||
gWindowBgTilemapBuffers
|
||||
|
||||
@ -26,9 +26,9 @@
|
||||
|
||||
.set OAM, 0x7000000
|
||||
|
||||
.set SOUND_INFO_PTR, IWRAM_END - 0x10
|
||||
.set INTR_CHECK, IWRAM_END - 0x8
|
||||
.set INTR_VECTOR, IWRAM_END - 0x4
|
||||
.set SOUND_INFO_PTR, 0x3007FF0
|
||||
.set INTR_CHECK, 0x3007FF8
|
||||
.set INTR_VECTOR, 0x3007FFC
|
||||
|
||||
.set INTR_FLAG_VBLANK, 1 << 0
|
||||
.set INTR_FLAG_HBLANK, 1 << 1
|
||||
|
||||
@ -1,12 +1,43 @@
|
||||
.equiv ID_NUMBER, 0x68736d53
|
||||
|
||||
.equiv PCM_DMA_BUF_SIZE, 1584
|
||||
.equiv MAX_DIRECTSOUND_CHANNELS, 12
|
||||
|
||||
.equiv C_V, 0x40
|
||||
|
||||
.equiv TONEDATA_TYPE_CGB, 0x07
|
||||
.equiv TONEDATA_TYPE_FIX, 0x08
|
||||
.equiv TONEDATA_TYPE_REV, 0x10
|
||||
.equiv TONEDATA_TYPE_CMP, 0x20
|
||||
.equiv TONEDATA_TYPE_SPL, 0x40 @ key split
|
||||
.equiv TONEDATA_TYPE_RHY, 0x80 @ rhythm
|
||||
|
||||
.equiv TONEDATA_P_S_PAN, 0xc0
|
||||
|
||||
.equiv SOUND_CHANNEL_SF_START, 0x80
|
||||
.equiv SOUND_CHANNEL_SF_STOP, 0x40
|
||||
.equiv SOUND_CHANNEL_SF_SPECIAL, 0x20
|
||||
.equiv SOUND_CHANNEL_SF_LOOP, 0x10
|
||||
.equiv SOUND_CHANNEL_SF_IEC, 0x04
|
||||
.equiv SOUND_CHANNEL_SF_ENV, 0x03
|
||||
.equiv SOUND_CHANNEL_SF_ENV_ATTACK, 0x03
|
||||
.equiv SOUND_CHANNEL_SF_ENV_DECAY, 0x02
|
||||
.equiv SOUND_CHANNEL_SF_ENV_SUSTAIN, 0x01
|
||||
.equiv SOUND_CHANNEL_SF_ENV_RELEASE, 0x00
|
||||
.equiv SOUND_CHANNEL_SF_ON, (SOUND_CHANNEL_SF_START | SOUND_CHANNEL_SF_STOP | SOUND_CHANNEL_SF_IEC | SOUND_CHANNEL_SF_ENV)
|
||||
|
||||
.equiv CGB_CHANNEL_MO_PIT, 0x02
|
||||
.equiv CGB_CHANNEL_MO_VOL, 0x01
|
||||
|
||||
.equiv WAVE_DATA_FLAG_LOOP, 0xC0
|
||||
|
||||
.equiv MPT_FLG_VOLSET, 0x01
|
||||
.equiv MPT_FLG_VOLCHG, 0x03
|
||||
.equiv MPT_FLG_PITSET, 0x04
|
||||
.equiv MPT_FLG_PITCHG, 0x0C
|
||||
.equiv MPT_FLG_START, 0x40
|
||||
.equiv MPT_FLG_EXIST, 0x80
|
||||
|
||||
.macro struct_begin
|
||||
.struct 0
|
||||
.endm
|
||||
@ -16,6 +47,28 @@
|
||||
.struct \name + \size
|
||||
.endm
|
||||
|
||||
struct_begin
|
||||
struct_field o_WaveData_type, 2
|
||||
struct_field o_WaveData_d1, 1
|
||||
struct_field o_WaveData_flags, 1
|
||||
struct_field o_WaveData_freq, 4
|
||||
struct_field o_WaveData_loopStart, 4
|
||||
struct_field o_WaveData_size, 4
|
||||
struct_field o_WaveData_data, 0
|
||||
struct_field WaveData_size, 0
|
||||
|
||||
struct_begin
|
||||
struct_field o_ToneData_type, 1
|
||||
struct_field o_ToneData_key, 1
|
||||
struct_field o_ToneData_length, 1
|
||||
struct_field o_ToneData_pan_sweep, 1
|
||||
struct_field o_ToneData_wav, 4
|
||||
struct_field o_ToneData_attack, 1
|
||||
struct_field o_ToneData_decay, 1
|
||||
struct_field o_ToneData_sustain, 1
|
||||
struct_field o_ToneData_release, 1
|
||||
struct_field ToneData_size, 0
|
||||
|
||||
struct_begin
|
||||
struct_field o_SoundInfo_ident, 4
|
||||
struct_field o_SoundInfo_pcmDmaCounter, 1
|
||||
@ -32,8 +85,8 @@
|
||||
struct_field o_SoundInfo_pcmFreq, 4
|
||||
struct_field o_SoundInfo_divFreq, 4
|
||||
struct_field o_SoundInfo_cgbChans, 4
|
||||
struct_field o_SoundInfo_func, 4
|
||||
struct_field o_SoundInfo_intp, 4
|
||||
struct_field o_SoundInfo_MPlayMainHead, 4
|
||||
struct_field o_SoundInfo_musicPlayerHead, 4
|
||||
struct_field o_SoundInfo_CgbSound, 4
|
||||
struct_field o_SoundInfo_CgbOscOff, 4
|
||||
struct_field o_SoundInfo_MidiKeyToCgbFreq, 4
|
||||
@ -41,12 +94,12 @@
|
||||
struct_field o_SoundInfo_plynote, 4
|
||||
struct_field o_SoundInfo_ExtVolPit, 4
|
||||
struct_field o_SoundInfo_gap2, 16
|
||||
struct_field o_SoundInfo_chans, 768
|
||||
struct_field o_SoundInfo_chans, MAX_DIRECTSOUND_CHANNELS * 64
|
||||
struct_field o_SoundInfo_pcmBuffer, PCM_DMA_BUF_SIZE * 2
|
||||
struct_field SoundInfo_size, 0
|
||||
|
||||
struct_begin
|
||||
struct_field o_SoundChannel_status, 1
|
||||
struct_field o_SoundChannel_statusFlags, 1
|
||||
struct_field o_SoundChannel_type, 1
|
||||
struct_field o_SoundChannel_rightVolume, 1
|
||||
struct_field o_SoundChannel_leftVolume, 1
|
||||
@ -54,29 +107,29 @@
|
||||
struct_field o_SoundChannel_decay, 1
|
||||
struct_field o_SoundChannel_sustain, 1
|
||||
struct_field o_SoundChannel_release, 1
|
||||
struct_field o_SoundChannel_ky, 1
|
||||
struct_field o_SoundChannel_ev, 1
|
||||
struct_field o_SoundChannel_er, 1
|
||||
struct_field o_SoundChannel_el, 1
|
||||
struct_field o_SoundChannel_iev, 1
|
||||
struct_field o_SoundChannel_iel, 1
|
||||
struct_field o_SoundChannel_d1, 1
|
||||
struct_field o_SoundChannel_d2, 1
|
||||
struct_field o_SoundChannel_gt, 1
|
||||
struct_field o_SoundChannel_mk, 1
|
||||
struct_field o_SoundChannel_ve, 1
|
||||
struct_field o_SoundChannel_pr, 1
|
||||
struct_field o_SoundChannel_rp, 1
|
||||
struct_field o_SoundChannel_d3, 3
|
||||
struct_field o_SoundChannel_ct, 4
|
||||
struct_field o_SoundChannel_key, 1
|
||||
struct_field o_SoundChannel_envelopeVolume, 1
|
||||
struct_field o_SoundChannel_envelopeVolumeRight, 1
|
||||
struct_field o_SoundChannel_envelopeVolumeLeft, 1
|
||||
struct_field o_SoundChannel_pseudoEchoVolume, 1
|
||||
struct_field o_SoundChannel_pseudoEchoLength, 1
|
||||
struct_field o_SoundChannel_dummy1, 1
|
||||
struct_field o_SoundChannel_dummy2, 1
|
||||
struct_field o_SoundChannel_gateTime, 1
|
||||
struct_field o_SoundChannel_midiKey, 1
|
||||
struct_field o_SoundChannel_velocity, 1
|
||||
struct_field o_SoundChannel_priority, 1
|
||||
struct_field o_SoundChannel_rhythmPan, 1
|
||||
struct_field o_SoundChannel_dummy3, 3
|
||||
struct_field o_SoundChannel_count, 4
|
||||
struct_field o_SoundChannel_fw, 4
|
||||
struct_field o_SoundChannel_freq, 4
|
||||
struct_field o_SoundChannel_frequency, 4
|
||||
struct_field o_SoundChannel_wav, 4
|
||||
struct_field o_SoundChannel_cp, 4
|
||||
struct_field o_SoundChannel_currentPointer, 4
|
||||
struct_field o_SoundChannel_track, 4
|
||||
struct_field o_SoundChannel_pp, 4
|
||||
struct_field o_SoundChannel_np, 4
|
||||
struct_field o_SoundChannel_d4, 4
|
||||
struct_field o_SoundChannel_prevChannelPointer, 4
|
||||
struct_field o_SoundChannel_nextChannelPointer, 4
|
||||
struct_field o_SoundChannel_dummy4, 4
|
||||
struct_field o_SoundChannel_xpi, 2
|
||||
struct_field o_SoundChannel_xpc, 2
|
||||
struct_field SoundChannel_size, 0
|
||||
@ -112,8 +165,8 @@
|
||||
struct_field o_MusicPlayerTrack_lfoDelay, 1
|
||||
struct_field o_MusicPlayerTrack_lfoDelayC, 1
|
||||
struct_field o_MusicPlayerTrack_priority, 1
|
||||
struct_field o_MusicPlayerTrack_echoVolume, 1
|
||||
struct_field o_MusicPlayerTrack_echoLength, 1
|
||||
struct_field o_MusicPlayerTrack_pseudoEchoVolume, 1
|
||||
struct_field o_MusicPlayerTrack_pseudoEchoLength, 1
|
||||
struct_field o_MusicPlayerTrack_chan, 4
|
||||
struct_field o_MusicPlayerTrack_ToneData_type, 1
|
||||
struct_field o_MusicPlayerTrack_ToneData_key, 1
|
||||
@ -159,41 +212,41 @@
|
||||
struct_field MusicPlayerInfo_size, 0
|
||||
|
||||
struct_begin
|
||||
struct_field o_CgbChannel_sf, 1
|
||||
struct_field o_CgbChannel_ty, 1
|
||||
struct_field o_CgbChannel_statusFlags, 1
|
||||
struct_field o_CgbChannel_type, 1
|
||||
struct_field o_CgbChannel_rightVolume, 1
|
||||
struct_field o_CgbChannel_leftVolume, 1
|
||||
struct_field o_CgbChannel_at, 1
|
||||
struct_field o_CgbChannel_de, 1
|
||||
struct_field o_CgbChannel_su, 1
|
||||
struct_field o_CgbChannel_re, 1
|
||||
struct_field o_CgbChannel_ky, 1
|
||||
struct_field o_CgbChannel_ev, 1
|
||||
struct_field o_CgbChannel_eg, 1
|
||||
struct_field o_CgbChannel_ec, 1
|
||||
struct_field o_CgbChannel_echoVolume, 1
|
||||
struct_field o_CgbChannel_echoLength, 1
|
||||
struct_field o_CgbChannel_d1, 1
|
||||
struct_field o_CgbChannel_d2, 1
|
||||
struct_field o_CgbChannel_gt, 1
|
||||
struct_field o_CgbChannel_mk, 1
|
||||
struct_field o_CgbChannel_ve, 1
|
||||
struct_field o_CgbChannel_pr, 1
|
||||
struct_field o_CgbChannel_rp, 1
|
||||
struct_field o_CgbChannel_d3, 3
|
||||
struct_field o_CgbChannel_d5, 1
|
||||
struct_field o_CgbChannel_sg, 1
|
||||
struct_field o_CgbChannel_attack, 1
|
||||
struct_field o_CgbChannel_decay, 1
|
||||
struct_field o_CgbChannel_sustain, 1
|
||||
struct_field o_CgbChannel_release, 1
|
||||
struct_field o_CgbChannel_key, 1
|
||||
struct_field o_CgbChannel_envelopeVolume, 1
|
||||
struct_field o_CgbChannel_envelopeGoal, 1
|
||||
struct_field o_CgbChannel_envelopeCounter, 1
|
||||
struct_field o_CgbChannel_pseudoEchoVolume, 1
|
||||
struct_field o_CgbChannel_pseudoEchoLength, 1
|
||||
struct_field o_CgbChannel_dummy1, 1
|
||||
struct_field o_CgbChannel_dummy2, 1
|
||||
struct_field o_CgbChannel_gateTime, 1
|
||||
struct_field o_CgbChannel_midiKey, 1
|
||||
struct_field o_CgbChannel_velocity, 1
|
||||
struct_field o_CgbChannel_priority, 1
|
||||
struct_field o_CgbChannel_rhythmPan, 1
|
||||
struct_field o_CgbChannel_dummy3, 3
|
||||
struct_field o_CgbChannel_dummy5, 1
|
||||
struct_field o_CgbChannel_sustainGoal, 1
|
||||
struct_field o_CgbChannel_n4, 1
|
||||
struct_field o_CgbChannel_pan, 1
|
||||
struct_field o_CgbChannel_panMask, 1
|
||||
struct_field o_CgbChannel_mo, 1
|
||||
struct_field o_CgbChannel_le, 1
|
||||
struct_field o_CgbChannel_sw, 1
|
||||
struct_field o_CgbChannel_fr, 4
|
||||
struct_field o_CgbChannel_wp, 4
|
||||
struct_field o_CgbChannel_cp, 4
|
||||
struct_field o_CgbChannel_tp, 4
|
||||
struct_field o_CgbChannel_pp, 4
|
||||
struct_field o_CgbChannel_np, 4
|
||||
struct_field o_CgbChannel_d4, 8
|
||||
struct_field o_CgbChannel_modify, 1
|
||||
struct_field o_CgbChannel_length, 1
|
||||
struct_field o_CgbChannel_sweep, 1
|
||||
struct_field o_CgbChannel_frequency, 4
|
||||
struct_field o_CgbChannel_wavePointer, 4
|
||||
struct_field o_CgbChannel_currentPointer, 4
|
||||
struct_field o_CgbChannel_track, 4
|
||||
struct_field o_CgbChannel_prevChannelPointer, 4
|
||||
struct_field o_CgbChannel_nextChannelPointer, 4
|
||||
struct_field o_CgbChannel_dummy4, 8
|
||||
struct_field CgbChannel_size, 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -12,7 +12,7 @@
|
||||
.section script_data, "aw", %progbits
|
||||
|
||||
.align 2
|
||||
gBattlescriptsForBallThrow:: @ 82DBD08
|
||||
gBattlescriptsForBallThrow::
|
||||
.4byte BattleScript_BallThrow @ ITEM_NONE
|
||||
.4byte BattleScript_BallThrow @ ITEM_MASTER_BALL
|
||||
.4byte BattleScript_BallThrow @ ITEM_ULTRA_BALL
|
||||
@ -28,20 +28,20 @@ gBattlescriptsForBallThrow:: @ 82DBD08
|
||||
.4byte BattleScript_BallThrow @ ITEM_PREMIER_BALL
|
||||
|
||||
.align 2
|
||||
gBattlescriptsForUsingItem:: @ 82DBD3C
|
||||
gBattlescriptsForUsingItem::
|
||||
.4byte BattleScript_PlayerUsesItem
|
||||
.4byte BattleScript_OpponentUsesHealItem @ AI_ITEM_FULL_RESTORE
|
||||
.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
|
||||
gBattlescriptsForRunningByItem::
|
||||
.4byte BattleScript_RunByUsingItem
|
||||
|
||||
.align 2
|
||||
gBattlescriptsForSafariActions:: @ 82DBD58
|
||||
gBattlescriptsForSafariActions::
|
||||
.4byte BattleScript_ActionWatchesCarefully
|
||||
.4byte BattleScript_ActionGetNear
|
||||
.4byte BattleScript_ActionThrowPokeblock
|
||||
@ -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
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
enum MON_4
|
||||
|
||||
.align 2
|
||||
gContestAI_ScriptsTable:: @ 82DE350
|
||||
gContestAI_ScriptsTable::
|
||||
.4byte AI_CheckBadMove @ CONTEST_AI_CHECK_BAD_MOVE
|
||||
.4byte AI_CheckCombo @ CONTEST_AI_CHECK_COMBO
|
||||
.4byte AI_CheckBoring @ CONTEST_AI_CHECK_BORING
|
||||
@ -48,7 +48,7 @@ gContestAI_ScriptsTable:: @ 82DE350
|
||||
.4byte AI_Nothing @ CONTEST_AI_DUMMY_25
|
||||
|
||||
|
||||
@ Unused. Encourages improving condition on the 1st appeal, or startling mons if the users turn is later
|
||||
@ Unused. Encourages improving condition on the 1st appeal, or startling mons if the users turn is later
|
||||
AI_CheckTiming:
|
||||
if_appeal_num_not_eq 0, AI_CheckTiming_SkipCondition
|
||||
if_effect_not_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, AI_CheckTiming_SkipCondition
|
||||
@ -388,7 +388,7 @@ AI_CGM_AppealAsGoodAsPrevOnes_Last:
|
||||
score +20
|
||||
end
|
||||
|
||||
@ Encourages move more for each opponent who will have a turn before the user
|
||||
@ Encourages move more for each opponent who will have a turn before the user
|
||||
AI_CGM_AppealAsGoodAsPrevOne:
|
||||
if_user_order_eq MON_1, AI_CGM_AppealAsGoodAsPrevOne_1stUp
|
||||
if_user_order_eq MON_2, AI_CGM_AppealAsGoodAsPrevOne_2ndUp
|
||||
@ -456,7 +456,7 @@ AI_CGM_BetterWhenAudienceExcited_Not1stUp:
|
||||
score +10
|
||||
end
|
||||
|
||||
@ Encourage move more for each condition star the prev mons have
|
||||
@ Encourage move more for each condition star the prev mons have
|
||||
AI_CGM_WorsenConditionOfPrevMons:
|
||||
if_user_order_eq MON_1, AI_CGM_End
|
||||
goto AI_CGM_WorsenConditionOfPrevMons_CheckMon1
|
||||
|
||||
6
data/ereader_link_data.s
Normal file
6
data/ereader_link_data.s
Normal file
@ -0,0 +1,6 @@
|
||||
.section .rodata
|
||||
|
||||
.align 2
|
||||
gEReaderLinkData_Start::
|
||||
.incbin "data/ereader_link_data.bin"
|
||||
gEReaderLinkData_End::
|
||||
@ -44,6 +44,7 @@
|
||||
#include "constants/script_menu.h"
|
||||
#include "constants/secret_bases.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/sound.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/trade.h"
|
||||
#include "constants/trainer_hill.h"
|
||||
@ -61,7 +62,7 @@
|
||||
@ 81DB67C
|
||||
.include "data/script_cmd_table.inc"
|
||||
|
||||
gSpecialVars:: @ 81DBA0C
|
||||
gSpecialVars::
|
||||
.4byte gSpecialVar_0x8000
|
||||
.4byte gSpecialVar_0x8001
|
||||
.4byte gSpecialVar_0x8002
|
||||
@ -87,7 +88,7 @@ gSpecialVars:: @ 81DBA0C
|
||||
|
||||
.include "data/specials.inc"
|
||||
|
||||
gStdScripts:: @ 81DC2A0
|
||||
gStdScripts::
|
||||
.4byte Std_ObtainItem @ STD_OBTAIN_ITEM
|
||||
.4byte Std_FindItem @ STD_FIND_ITEM
|
||||
.4byte Std_MsgboxNPC @ MSGBOX_NPC
|
||||
@ -99,7 +100,7 @@ gStdScripts:: @ 81DC2A0
|
||||
.4byte Std_RegisteredInMatchCall @ STD_REGISTER_MATCH_CALL
|
||||
.4byte Std_MsgboxGetPoints @ MSGBOX_GETPOINTS
|
||||
.4byte Std_10
|
||||
gStdScripts_End:: @ 81DC2CC
|
||||
gStdScripts_End::
|
||||
|
||||
.include "data/maps/PetalburgCity/scripts.inc"
|
||||
.include "data/maps/SlateportCity/scripts.inc"
|
||||
@ -578,12 +579,12 @@ gStdScripts_End:: @ 81DC2CC
|
||||
|
||||
.include "data/scripts/debug.inc"
|
||||
|
||||
EventScript_WhiteOut:: @ 8271857
|
||||
EventScript_WhiteOut::
|
||||
call EverGrandeCity_HallOfFame_EventScript_ResetEliteFour
|
||||
goto EventScript_ResetMrBriney
|
||||
end
|
||||
|
||||
EventScript_ResetMrBriney:: @ 8271862
|
||||
EventScript_ResetMrBriney::
|
||||
compare VAR_BRINEY_LOCATION, 1
|
||||
goto_if_eq EventScript_MoveMrBrineyToHouse
|
||||
compare VAR_BRINEY_LOCATION, 2
|
||||
@ -592,7 +593,7 @@ EventScript_ResetMrBriney:: @ 8271862
|
||||
goto_if_eq EventScript_MoveMrBrineyToRoute109
|
||||
end
|
||||
|
||||
EventScript_MoveMrBrineyToHouse:: @ 8271884
|
||||
EventScript_MoveMrBrineyToHouse::
|
||||
setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
|
||||
setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN
|
||||
setflag FLAG_HIDE_ROUTE_109_MR_BRINEY
|
||||
@ -602,7 +603,7 @@ EventScript_MoveMrBrineyToHouse:: @ 8271884
|
||||
clearflag FLAG_HIDE_BRINEYS_HOUSE_PEEKO
|
||||
end
|
||||
|
||||
EventScript_MoveMrBrineyToDewford:: @ 827189A
|
||||
EventScript_MoveMrBrineyToDewford::
|
||||
setflag FLAG_HIDE_ROUTE_109_MR_BRINEY
|
||||
setflag FLAG_HIDE_ROUTE_109_MR_BRINEY_BOAT
|
||||
setflag FLAG_HIDE_ROUTE_104_MR_BRINEY
|
||||
@ -613,7 +614,7 @@ EventScript_MoveMrBrineyToDewford:: @ 827189A
|
||||
clearflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN
|
||||
end
|
||||
|
||||
EventScript_MoveMrBrineyToRoute109:: @ 82718B3
|
||||
EventScript_MoveMrBrineyToRoute109::
|
||||
setflag FLAG_HIDE_ROUTE_104_MR_BRINEY
|
||||
setflag FLAG_HIDE_ROUTE_104_MR_BRINEY_BOAT
|
||||
setflag FLAG_HIDE_BRINEYS_HOUSE_MR_BRINEY
|
||||
@ -624,7 +625,7 @@ EventScript_MoveMrBrineyToRoute109:: @ 82718B3
|
||||
clearflag FLAG_HIDE_ROUTE_109_MR_BRINEY_BOAT
|
||||
end
|
||||
|
||||
EverGrandeCity_HallOfFame_EventScript_ResetEliteFour:: @ 82718CC
|
||||
EverGrandeCity_HallOfFame_EventScript_ResetEliteFour::
|
||||
clearflag FLAG_DEFEATED_ELITE_4_SIDNEY
|
||||
clearflag FLAG_DEFEATED_ELITE_4_PHOEBE
|
||||
clearflag FLAG_DEFEATED_ELITE_4_GLACIA
|
||||
@ -632,7 +633,7 @@ EverGrandeCity_HallOfFame_EventScript_ResetEliteFour:: @ 82718CC
|
||||
setvar VAR_ELITE_4_STATE, 0
|
||||
return
|
||||
|
||||
Common_EventScript_UpdateBrineyLocation:: @ 82718DE
|
||||
Common_EventScript_UpdateBrineyLocation::
|
||||
goto_if_unset FLAG_RECEIVED_POKENAV, Common_EventScript_NopReturn
|
||||
goto_if_set FLAG_DEFEATED_PETALBURG_GYM, Common_EventScript_NopReturn
|
||||
goto_if_unset FLAG_HIDE_ROUTE_104_MR_BRINEY_BOAT, EventScript_SetBrineyLocation_House
|
||||
@ -640,15 +641,15 @@ Common_EventScript_UpdateBrineyLocation:: @ 82718DE
|
||||
goto_if_unset FLAG_HIDE_ROUTE_109_MR_BRINEY, EventScript_SetBrineyLocation_Route109
|
||||
return
|
||||
|
||||
EventScript_SetBrineyLocation_House:: @ 827190C
|
||||
EventScript_SetBrineyLocation_House::
|
||||
setvar VAR_BRINEY_LOCATION, 1
|
||||
return
|
||||
|
||||
EventScript_SetBrineyLocation_Dewford:: @ 8271912
|
||||
EventScript_SetBrineyLocation_Dewford::
|
||||
setvar VAR_BRINEY_LOCATION, 2
|
||||
return
|
||||
|
||||
EventScript_SetBrineyLocation_Route109:: @ 8271918
|
||||
EventScript_SetBrineyLocation_Route109::
|
||||
setvar VAR_BRINEY_LOCATION, 3
|
||||
return
|
||||
|
||||
@ -658,32 +659,32 @@ EventScript_SetBrineyLocation_Route109:: @ 8271918
|
||||
.include "data/scripts/pc.inc"
|
||||
|
||||
@ scripts/notices.inc? signs.inc? See comment about text/notices.inc
|
||||
Common_EventScript_ShowPokemartSign:: @ 8271E6A
|
||||
Common_EventScript_ShowPokemartSign::
|
||||
msgbox gText_PokemartSign, MSGBOX_SIGN
|
||||
end
|
||||
|
||||
Common_EventScript_ShowPokemonCenterSign:: @ 8271E73
|
||||
Common_EventScript_ShowPokemonCenterSign::
|
||||
msgbox gText_PokemonCenterSign, MSGBOX_SIGN
|
||||
end
|
||||
|
||||
Common_ShowEasyChatScreen:: @ 8271E7C
|
||||
Common_ShowEasyChatScreen::
|
||||
fadescreen FADE_TO_BLACK
|
||||
special ShowEasyChatScreen
|
||||
fadescreen FADE_FROM_BLACK
|
||||
return
|
||||
|
||||
Common_EventScript_ReadyPetalburgGymForBattle:: @ 8271E84
|
||||
Common_EventScript_ReadyPetalburgGymForBattle::
|
||||
clearflag FLAG_HIDE_PETALBURG_GYM_GREETER
|
||||
setflag FLAG_PETALBURG_MART_EXPANDED_ITEMS
|
||||
return
|
||||
|
||||
Common_EventScript_BufferTrendyPhrase:: @ 8271E8B
|
||||
Common_EventScript_BufferTrendyPhrase::
|
||||
dotimebasedevents
|
||||
setvar VAR_0x8004, 0
|
||||
special BufferTrendyPhraseString
|
||||
return
|
||||
|
||||
EventScript_BackupMrBrineyLocation:: @ 8271E95
|
||||
EventScript_BackupMrBrineyLocation::
|
||||
copyvar VAR_0x8008, VAR_BRINEY_LOCATION
|
||||
setvar VAR_BRINEY_LOCATION, 0
|
||||
return
|
||||
@ -692,34 +693,34 @@ EventScript_BackupMrBrineyLocation:: @ 8271E95
|
||||
.include "data/scripts/rival_graphics.inc"
|
||||
.include "data/scripts/set_gym_trainers.inc"
|
||||
|
||||
Common_EventScript_ShowBagIsFull:: @ 8272054
|
||||
Common_EventScript_ShowBagIsFull::
|
||||
msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
|
||||
Common_EventScript_BagIsFull:: @ 827205E
|
||||
Common_EventScript_BagIsFull::
|
||||
msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT
|
||||
return
|
||||
|
||||
Common_EventScript_ShowNoRoomForDecor:: @ 8272067
|
||||
Common_EventScript_ShowNoRoomForDecor::
|
||||
msgbox gText_NoRoomLeftForAnother, MSGBOX_DEFAULT
|
||||
release
|
||||
end
|
||||
|
||||
Common_EventScript_NoRoomForDecor:: @ 8272071
|
||||
Common_EventScript_NoRoomForDecor::
|
||||
msgbox gText_NoRoomLeftForAnother, MSGBOX_DEFAULT
|
||||
return
|
||||
|
||||
Common_EventScript_SetAbnormalWeather:: @ 827207A
|
||||
Common_EventScript_SetAbnormalWeather::
|
||||
setweather WEATHER_ABNORMAL
|
||||
return
|
||||
|
||||
Common_EventScript_PlayGymBadgeFanfare:: @ 827207E
|
||||
Common_EventScript_PlayGymBadgeFanfare::
|
||||
playfanfare MUS_OBTAIN_BADGE
|
||||
waitfanfare
|
||||
return
|
||||
|
||||
Common_EventScript_OutOfCenterPartyHeal:: @ 8272083
|
||||
Common_EventScript_OutOfCenterPartyHeal::
|
||||
fadescreen FADE_TO_BLACK
|
||||
playfanfare MUS_HEAL
|
||||
waitfanfare
|
||||
@ -727,7 +728,7 @@ Common_EventScript_OutOfCenterPartyHeal:: @ 8272083
|
||||
fadescreen FADE_FROM_BLACK
|
||||
return
|
||||
|
||||
EventScript_RegionMap:: @ 827208F
|
||||
EventScript_RegionMap::
|
||||
lockall
|
||||
msgbox Common_Text_LookCloserAtMap, MSGBOX_DEFAULT
|
||||
fadescreen FADE_TO_BLACK
|
||||
@ -736,12 +737,12 @@ EventScript_RegionMap:: @ 827208F
|
||||
releaseall
|
||||
end
|
||||
|
||||
Common_EventScript_PlayBrineysBoatMusic:: @ 82720A0
|
||||
Common_EventScript_PlayBrineysBoatMusic::
|
||||
setflag FLAG_DONT_TRANSITION_MUSIC
|
||||
playbgm MUS_SAILING, 0
|
||||
playbgm MUS_SAILING, FALSE
|
||||
return
|
||||
|
||||
Common_EventScript_StopBrineysBoatMusic:: @ 82720A8
|
||||
Common_EventScript_StopBrineysBoatMusic::
|
||||
clearflag FLAG_DONT_TRANSITION_MUSIC
|
||||
fadedefaultbgm
|
||||
return
|
||||
@ -749,13 +750,13 @@ Common_EventScript_StopBrineysBoatMusic:: @ 82720A8
|
||||
.include "data/scripts/prof_birch.inc"
|
||||
|
||||
@ Below could be split as ferry.inc aside from the Rusturf tunnel script
|
||||
Common_EventScript_FerryDepart:: @ 82721E2
|
||||
Common_EventScript_FerryDepart::
|
||||
delay 60
|
||||
applymovement VAR_0x8004, Movement_FerryDepart
|
||||
waitmovement 0
|
||||
return
|
||||
|
||||
Movement_FerryDepart: @ 82721F0
|
||||
Movement_FerryDepart:
|
||||
walk_slow_right
|
||||
walk_slow_right
|
||||
walk_slow_right
|
||||
@ -765,7 +766,7 @@ Movement_FerryDepart: @ 82721F0
|
||||
walk_right
|
||||
step_end
|
||||
|
||||
EventScript_HideMrBriney:: @ 82721F8
|
||||
EventScript_HideMrBriney::
|
||||
setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
|
||||
setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN
|
||||
setflag FLAG_HIDE_ROUTE_109_MR_BRINEY
|
||||
@ -777,7 +778,7 @@ EventScript_HideMrBriney:: @ 82721F8
|
||||
setvar VAR_BRINEY_LOCATION, 0
|
||||
return
|
||||
|
||||
RusturfTunnel_EventScript_SetRusturfTunnelOpen:: @ 8272216
|
||||
RusturfTunnel_EventScript_SetRusturfTunnelOpen::
|
||||
removeobject LOCALID_WANDAS_BF
|
||||
removeobject LOCALID_WANDA
|
||||
clearflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WANDAS_BOYFRIEND
|
||||
@ -786,9 +787,9 @@ RusturfTunnel_EventScript_SetRusturfTunnelOpen:: @ 8272216
|
||||
setflag FLAG_RUSTURF_TUNNEL_OPENED
|
||||
return
|
||||
|
||||
EventScript_UnusedBoardFerry:: @ 827222B
|
||||
EventScript_UnusedBoardFerry::
|
||||
delay 30
|
||||
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp
|
||||
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp
|
||||
waitmovement 0
|
||||
showobjectat OBJ_EVENT_ID_PLAYER, 0
|
||||
delay 30
|
||||
@ -797,11 +798,11 @@ EventScript_UnusedBoardFerry:: @ 827222B
|
||||
delay 30
|
||||
return
|
||||
|
||||
Movement_UnusedBoardFerry: @ 827224E
|
||||
Movement_UnusedBoardFerry:
|
||||
walk_up
|
||||
step_end
|
||||
|
||||
Common_EventScript_FerryDepartIsland:: @ 8272250
|
||||
Common_EventScript_FerryDepartIsland::
|
||||
compare VAR_FACING, DIR_SOUTH
|
||||
call_if_eq Ferry_EventScript_DepartIslandSouth
|
||||
compare VAR_FACING, DIR_WEST
|
||||
@ -814,13 +815,13 @@ Common_EventScript_FerryDepartIsland:: @ 8272250
|
||||
.include "data/scripts/cave_of_origin.inc"
|
||||
.include "data/scripts/kecleon.inc"
|
||||
|
||||
Common_EventScript_NameReceivedPartyMon:: @ 82723DD
|
||||
Common_EventScript_NameReceivedPartyMon::
|
||||
fadescreen FADE_TO_BLACK
|
||||
special ChangePokemonNickname
|
||||
waitstate
|
||||
return
|
||||
|
||||
Common_EventScript_PlayerHandedOverTheItem:: @ 82723E4
|
||||
Common_EventScript_PlayerHandedOverTheItem::
|
||||
bufferitemname 0, VAR_0x8004
|
||||
playfanfare MUS_OBTAIN_TMHM
|
||||
message gText_PlayerHandedOverTheItem
|
||||
@ -839,32 +840,32 @@ Common_EventScript_PlayerHandedOverTheItem:: @ 82723E4
|
||||
.include "data/text/obtain_item.inc"
|
||||
|
||||
@ The below and surf.inc could be split into some text/notices.inc
|
||||
gText_PokemartSign:: @ 8272B6A
|
||||
gText_PokemartSign::
|
||||
.string "“Selected items for your convenience!”\n"
|
||||
.string "POKéMON MART$"
|
||||
|
||||
gText_PokemonCenterSign:: @ 8272B9E
|
||||
gText_PokemonCenterSign::
|
||||
.string "“Rejuvenate your tired partners!”\n"
|
||||
.string "POKéMON CENTER$"
|
||||
|
||||
gText_MomOrDadMightLikeThisProgram:: @ 8272BCF
|
||||
gText_MomOrDadMightLikeThisProgram::
|
||||
.string "{STR_VAR_1} might like this program.\n"
|
||||
.string "… … … … … … … … … … … … … … … …\p"
|
||||
.string "Better get going!$"
|
||||
|
||||
gText_WhichFloorWouldYouLike:: @ 8272C1D
|
||||
gText_WhichFloorWouldYouLike::
|
||||
.string "Welcome to LILYCOVE DEPARTMENT STORE.\p"
|
||||
.string "Which floor would you like?$"
|
||||
|
||||
gText_SandstormIsVicious:: @ 8272C5F
|
||||
gText_SandstormIsVicious::
|
||||
.string "The sandstorm is vicious.\n"
|
||||
.string "It's impossible to keep going.$"
|
||||
|
||||
gText_SelectWithoutRegisteredItem:: @ 8272C98
|
||||
gText_SelectWithoutRegisteredItem::
|
||||
.string "An item in the BAG can be\n"
|
||||
.string "registered to SELECT for easy use.$"
|
||||
|
||||
gText_PokemonTrainerSchoolEmail:: @ 8272CD5
|
||||
gText_PokemonTrainerSchoolEmail::
|
||||
.string "There's an e-mail from POKéMON TRAINER\n"
|
||||
.string "SCHOOL.\p"
|
||||
.string "… … … … … …\p"
|
||||
@ -873,25 +874,25 @@ gText_PokemonTrainerSchoolEmail:: @ 8272CD5
|
||||
.string "move sets chosen for POKéMON.\p"
|
||||
.string "… … … … … …$"
|
||||
|
||||
gText_PlayerHouseBootPC:: @ 8272D87
|
||||
gText_PlayerHouseBootPC::
|
||||
.string "{PLAYER} booted up the PC.$"
|
||||
|
||||
gText_PokeblockLinkCanceled:: @ 8272D9C
|
||||
gText_PokeblockLinkCanceled::
|
||||
.string "The link was canceled.$"
|
||||
|
||||
gText_UnusedNicknameReceivedPokemon:: @ 8272DB3
|
||||
gText_UnusedNicknameReceivedPokemon::
|
||||
.string "Want to give a nickname to\n"
|
||||
.string "the {STR_VAR_2} you received?$"
|
||||
|
||||
gText_PlayerWhitedOut:: @ 8272DE3
|
||||
gText_PlayerWhitedOut::
|
||||
.string "{PLAYER} is out of usable\n"
|
||||
.string "POKéMON!\p{PLAYER} whited out!$"
|
||||
|
||||
gText_RegisteredTrainerinPokeNav:: @ 8272E0F
|
||||
gText_RegisteredTrainerinPokeNav::
|
||||
.string "Registered {STR_VAR_1} {STR_VAR_2}\n"
|
||||
.string "in the POKéNAV.$"
|
||||
|
||||
gText_ComeBackWithSecretPower:: @ 8272E30
|
||||
gText_ComeBackWithSecretPower::
|
||||
.string "Do you know the TM SECRET POWER?\p"
|
||||
.string "Our group, we love the TM SECRET\n"
|
||||
.string "POWER.\p"
|
||||
@ -900,7 +901,7 @@ gText_ComeBackWithSecretPower:: @ 8272E30
|
||||
.string "We'll accept you as a member and sell\n"
|
||||
.string "you good stuff in secrecy.$"
|
||||
|
||||
gText_PokerusExplanation:: @ 8272F07
|
||||
gText_PokerusExplanation::
|
||||
.string "Your POKéMON may be infected with\n"
|
||||
.string "POKéRUS.\p"
|
||||
.string "Little is known about the POKéRUS\n"
|
||||
@ -911,94 +912,94 @@ gText_PokerusExplanation:: @ 8272F07
|
||||
|
||||
.include "data/text/surf.inc"
|
||||
|
||||
gText_DoorOpenedFarAway:: @ 827301B
|
||||
gText_DoorOpenedFarAway::
|
||||
.string "It sounded as if a door opened\n"
|
||||
.string "somewhere far away.$"
|
||||
|
||||
gText_BigHoleInTheWall:: @ 827304E
|
||||
gText_BigHoleInTheWall::
|
||||
.string "There is a big hole in the wall.$"
|
||||
|
||||
gText_SorryWirelessClubAdjustments:: @ 827306F
|
||||
gText_SorryWirelessClubAdjustments::
|
||||
.string "I'm terribly sorry.\n"
|
||||
.string "The POKéMON WIRELESS CLUB is\l"
|
||||
.string "undergoing adjustments now.$"
|
||||
|
||||
gText_UndergoingAdjustments:: @ 82730BC
|
||||
gText_UndergoingAdjustments::
|
||||
.string "It appears to be undergoing\n"
|
||||
.string "adjustments…$"
|
||||
|
||||
@ Unused
|
||||
gText_SorryTradeCenterInspections:: @ 82730E5
|
||||
gText_SorryTradeCenterInspections::
|
||||
.string "I'm terribly sorry. The TRADE CENTER\n"
|
||||
.string "is undergoing inspections.$"
|
||||
|
||||
@ Unused
|
||||
gText_SorryRecordCornerPreparation:: @ 8273125
|
||||
gText_SorryRecordCornerPreparation::
|
||||
.string "I'm terribly sorry. The RECORD CORNER\n"
|
||||
.string "is under preparation.$"
|
||||
|
||||
gText_PlayerHandedOverTheItem:: @ 8273161
|
||||
gText_PlayerHandedOverTheItem::
|
||||
.string "{PLAYER} handed over the\n"
|
||||
.string "{STR_VAR_1}.$"
|
||||
|
||||
gText_ThankYouForAccessingMysteryGift:: @ 8273178
|
||||
gText_ThankYouForAccessingMysteryGift::
|
||||
.string "Thank you for accessing the\n"
|
||||
.string "MYSTERY GIFT System.$"
|
||||
|
||||
gText_PlayerFoundOneTMHM:: @ 82731A9
|
||||
gText_PlayerFoundOneTMHM::
|
||||
.string "{PLAYER} found one {STR_VAR_1}\n"
|
||||
.string "{STR_VAR_2}!$"
|
||||
|
||||
gText_Sudowoodo_Attacked:: @ 82731BD
|
||||
gText_Sudowoodo_Attacked::
|
||||
.string "The weird tree doesn't like the\n"
|
||||
.string "WAILMER PAIL!\p"
|
||||
.string "The weird tree attacked!$"
|
||||
|
||||
gText_LegendaryFlewAway:: @ 8273204
|
||||
gText_LegendaryFlewAway::
|
||||
.string "The {STR_VAR_1} flew away!$"
|
||||
|
||||
.include "data/text/pc_transfer.inc"
|
||||
.include "data/text/mevent.inc"
|
||||
.include "data/text/questionnaire.inc"
|
||||
.include "data/text/abnormal_weather.inc"
|
||||
|
||||
EventScript_SelectWithoutRegisteredItem:: @ 82736B3
|
||||
EventScript_SelectWithoutRegisteredItem::
|
||||
msgbox gText_SelectWithoutRegisteredItem, MSGBOX_SIGN
|
||||
end
|
||||
|
||||
.include "data/scripts/field_poison.inc"
|
||||
|
||||
Common_EventScript_NopReturn:: @ 827374E
|
||||
Common_EventScript_NopReturn::
|
||||
return
|
||||
|
||||
@ Unused
|
||||
EventScript_CableClub_SetVarResult1:: @ 827374F
|
||||
EventScript_CableClub_SetVarResult1::
|
||||
setvar VAR_RESULT, 1
|
||||
return
|
||||
|
||||
EventScript_CableClub_SetVarResult0:: @ 8273755
|
||||
EventScript_CableClub_SetVarResult0::
|
||||
setvar VAR_RESULT, 0
|
||||
return
|
||||
|
||||
Common_EventScript_UnionRoomAttendant:: @ 827375B
|
||||
Common_EventScript_UnionRoomAttendant::
|
||||
call CableClub_EventScript_UnionRoomAttendant
|
||||
end
|
||||
|
||||
Common_EventScript_WirelessClubAttendant:: @ 8273761
|
||||
Common_EventScript_WirelessClubAttendant::
|
||||
call CableClub_EventScript_WirelessClubAttendant
|
||||
end
|
||||
|
||||
Common_EventScript_DirectCornerAttendant:: @ 8273767
|
||||
Common_EventScript_DirectCornerAttendant::
|
||||
call CableClub_EventScript_DirectCornerAttendant
|
||||
end
|
||||
|
||||
Common_EventScript_RemoveStaticPokemon:: @ 827376D
|
||||
Common_EventScript_RemoveStaticPokemon::
|
||||
fadescreenswapbuffers FADE_TO_BLACK
|
||||
removeobject VAR_LAST_TALKED
|
||||
fadescreenswapbuffers FADE_FROM_BLACK
|
||||
release
|
||||
end
|
||||
|
||||
Common_EventScript_LegendaryFlewAway:: @ 8273776
|
||||
Common_EventScript_LegendaryFlewAway::
|
||||
fadescreenswapbuffers FADE_TO_BLACK
|
||||
removeobject VAR_LAST_TALKED
|
||||
fadescreenswapbuffers FADE_FROM_BLACK
|
||||
@ -1008,7 +1009,7 @@ Common_EventScript_LegendaryFlewAway:: @ 8273776
|
||||
end
|
||||
|
||||
.include "data/scripts/pc_transfer.inc"
|
||||
.include "data/scripts/mevent.inc"
|
||||
.include "data/scripts/questionnaire.inc"
|
||||
.include "data/scripts/abnormal_weather.inc"
|
||||
.include "data/scripts/trainer_script.inc"
|
||||
.include "data/scripts/berry_tree.inc"
|
||||
@ -1028,7 +1029,7 @@ Common_EventScript_LegendaryFlewAway:: @ 8273776
|
||||
.include "data/scripts/mauville_man.inc"
|
||||
.include "data/scripts/field_move_scripts.inc"
|
||||
.include "data/scripts/item_ball_scripts.inc"
|
||||
.include "data/scripts/mystery_event_club.inc"
|
||||
.include "data/scripts/profile_man.inc"
|
||||
.include "data/scripts/day_care.inc"
|
||||
.include "data/scripts/flash.inc"
|
||||
.include "data/scripts/players_house.inc"
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
.section script_data, "aw", %progbits
|
||||
|
||||
.align 2
|
||||
gFieldEffectScriptPointers:: @ 82DB9D4
|
||||
gFieldEffectScriptPointers::
|
||||
.4byte gFieldEffectScript_ExclamationMarkIcon1 @ FLDEFF_EXCLAMATION_MARK_ICON
|
||||
.4byte gFieldEffectScript_UseCutOnTallGrass @ FLDEFF_USE_CUT_ON_GRASS
|
||||
.4byte gFieldEffectScript_UseCutOnTree @ FLDEFF_USE_CUT_ON_TREE
|
||||
@ -50,7 +50,7 @@ gFieldEffectScriptPointers:: @ 82DB9D4
|
||||
.4byte gFieldEffectScript_HotSpringsWater @ FLDEFF_HOT_SPRINGS_WATER
|
||||
.4byte gFieldEffectScript_UseWaterfall @ FLDEFF_USE_WATERFALL
|
||||
.4byte gFieldEffectScript_UseDive @ FLDEFF_USE_DIVE
|
||||
.4byte gFieldEffectScript_Pokeball @ FLDEFF_POKEBALL
|
||||
.4byte gFieldEffectScript_PokeballTrail @ FLDEFF_POKEBALL_TRAIL
|
||||
.4byte gFieldEffectScript_HeartIcon @ FLDEFF_HEART_ICON
|
||||
.4byte gFieldEffectScript_Nop47 @ FLDEFF_NOP_47
|
||||
.4byte gFieldEffectScript_Nop48 @ FLDEFF_NOP_48
|
||||
@ -73,273 +73,273 @@ gFieldEffectScriptPointers:: @ 82DB9D4
|
||||
.4byte gFieldEffectScript_DestroyDeoxysRock @ FLDEFF_DESTROY_DEOXYS_ROCK
|
||||
.4byte gFieldEffectScript_MoveDeoxysRock @ FLDEFF_MOVE_DEOXYS_ROCK
|
||||
|
||||
gFieldEffectScript_ExclamationMarkIcon1:: @ 82DBAE0
|
||||
gFieldEffectScript_ExclamationMarkIcon1::
|
||||
field_eff_callnative FldEff_ExclamationMarkIcon
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseCutOnTallGrass:: @ 82DBAE6
|
||||
gFieldEffectScript_UseCutOnTallGrass::
|
||||
field_eff_callnative FldEff_UseCutOnGrass
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseCutOnTree:: @ 82DBAEC
|
||||
gFieldEffectScript_UseCutOnTree::
|
||||
field_eff_callnative FldEff_UseCutOnTree
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_Shadow:: @ 82DBAF2
|
||||
gFieldEffectScript_Shadow::
|
||||
field_eff_callnative FldEff_Shadow
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_TallGrass:: @ 82DBAF8
|
||||
gFieldEffectScript_TallGrass::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_TallGrass
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_Ripple:: @ 82DBB02
|
||||
gFieldEffectScript_Ripple::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ripple
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_FieldMoveShowMon:: @ 82DBB0C
|
||||
gFieldEffectScript_FieldMoveShowMon::
|
||||
field_eff_callnative FldEff_FieldMoveShowMon
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_Ash:: @ 82DBB12
|
||||
gFieldEffectScript_Ash::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_Ash
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_SurfBlob:: @ 82DBB1C
|
||||
gFieldEffectScript_SurfBlob::
|
||||
field_eff_callnative FldEff_SurfBlob
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseSurf:: @ 82DBB22
|
||||
gFieldEffectScript_UseSurf::
|
||||
field_eff_callnative FldEff_UseSurf
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_GroundImpactDust:: @ 82DBB28
|
||||
gFieldEffectScript_GroundImpactDust::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Dust
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseSecretPowerCave:: @ 82DBB32
|
||||
gFieldEffectScript_UseSecretPowerCave::
|
||||
field_eff_callnative FldEff_UseSecretPowerCave
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_JumpTallGrass:: @ 82DBB38
|
||||
gFieldEffectScript_JumpTallGrass::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpTallGrass
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_SandFootprints:: @ 82DBB42
|
||||
gFieldEffectScript_SandFootprints::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandFootprints
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_JumpBigSplash:: @ 82DBB4C
|
||||
gFieldEffectScript_JumpBigSplash::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpBigSplash
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_Splash:: @ 82DBB56
|
||||
gFieldEffectScript_Splash::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Splash
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_JumpSmallSplash:: @ 82DBB60
|
||||
gFieldEffectScript_JumpSmallSplash::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_JumpSmallSplash
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_LongGrass:: @ 82DBB6A
|
||||
gFieldEffectScript_LongGrass::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_LongGrass
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_JumpLongGrass:: @ 82DBB74
|
||||
gFieldEffectScript_JumpLongGrass::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_JumpLongGrass
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UnusedGrass:: @ 82DBB7E
|
||||
gFieldEffectScript_UnusedGrass::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UnusedGrass2:: @ 82DBB88
|
||||
gFieldEffectScript_UnusedGrass2::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_UnusedGrass2
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UnusedSand:: @ 82DBB92
|
||||
gFieldEffectScript_UnusedSand::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_UnusedSand
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_WaterSurfacing:: @ 82DBB9C
|
||||
gFieldEffectScript_WaterSurfacing::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_WaterSurfacing
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_BerryTreeGrowthSparkle:: @ 82DBBA6
|
||||
gFieldEffectScript_BerryTreeGrowthSparkle::
|
||||
field_eff_callnative FldEff_BerryTreeGrowthSparkle
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_DeepSandFootprints:: @ 82DBBAC
|
||||
gFieldEffectScript_DeepSandFootprints::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_DeepSandFootprints
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_PokeCenterHeal:: @ 82DBBB6
|
||||
gFieldEffectScript_PokeCenterHeal::
|
||||
field_eff_loadfadedpal gSpritePalette_PokeballGlow
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_PokecenterHeal
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseSecretPowerTree:: @ 82DBBC5
|
||||
gFieldEffectScript_UseSecretPowerTree::
|
||||
field_eff_callnative FldEff_UseSecretPowerTree
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseSecretPowerShrub:: @ 82DBBCB
|
||||
gFieldEffectScript_UseSecretPowerShrub::
|
||||
field_eff_callnative FldEff_UseSecretPowerShrub
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_TreeDisguise:: @ 82DBBD1
|
||||
gFieldEffectScript_TreeDisguise::
|
||||
field_eff_callnative ShowTreeDisguiseFieldEffect
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_MountainDisguise:: @ 82DBBD7
|
||||
gFieldEffectScript_MountainDisguise::
|
||||
field_eff_callnative ShowMountainDisguiseFieldEffect
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_NPCUseFly:: @ 82DBBDD
|
||||
gFieldEffectScript_NPCUseFly::
|
||||
field_eff_callnative FldEff_NPCFlyOut
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseFly:: @ 82DBBE3
|
||||
gFieldEffectScript_UseFly::
|
||||
field_eff_callnative FldEff_UseFly
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_FlyIn:: @ 82DBBE9
|
||||
gFieldEffectScript_FlyIn::
|
||||
field_eff_callnative FldEff_FlyIn
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_QuestionMarkIcon:: @ 82DBBEF
|
||||
gFieldEffectScript_QuestionMarkIcon::
|
||||
field_eff_callnative FldEff_QuestionMarkIcon
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_FeetInFlowingWater:: @ 82DBBF5
|
||||
gFieldEffectScript_FeetInFlowingWater::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_FeetInFlowingWater
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_BikeTireTracks:: @ 82DBBFF
|
||||
gFieldEffectScript_BikeTireTracks::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_BikeTireTracks
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_SandDisguisePlaceholder:: @ 82DBC09
|
||||
gFieldEffectScript_SandDisguisePlaceholder::
|
||||
field_eff_callnative ShowSandDisguiseFieldEffect
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseRockSmash:: @ 82DBC0F
|
||||
gFieldEffectScript_UseRockSmash::
|
||||
field_eff_callnative FldEff_UseRockSmash
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseStrength:: @ 82DBC15
|
||||
gFieldEffectScript_UseStrength::
|
||||
field_eff_callnative FldEff_UseStrength
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseDig:: @ 82DBC1B
|
||||
gFieldEffectScript_UseDig::
|
||||
field_eff_callnative FldEff_UseDig
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_SandPile:: @ 82DBC21
|
||||
gFieldEffectScript_SandPile::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_SandPile
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_ShortGrass:: @ 82DBC2B
|
||||
gFieldEffectScript_ShortGrass::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_ShortGrass
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_HotSpringsWater:: @ 82DBC35
|
||||
gFieldEffectScript_HotSpringsWater::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect1, FldEff_HotSpringsWater
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseWaterfall:: @ 82DBC3F
|
||||
gFieldEffectScript_UseWaterfall::
|
||||
field_eff_callnative FldEff_UseWaterfall
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseDive:: @ 82DBC45
|
||||
gFieldEffectScript_UseDive::
|
||||
field_eff_callnative FldEff_UseDive
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_Pokeball:: @ 82DBC4B
|
||||
gFieldEffectScript_PokeballTrail::
|
||||
field_eff_loadpal gSpritePalette_Pokeball
|
||||
field_eff_callnative FldEff_Pokeball
|
||||
field_eff_callnative FldEff_PokeballTrail
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_HeartIcon:: @ 82DBC56
|
||||
gFieldEffectScript_HeartIcon::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_HeartIcon
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_Nop47:: @ 82DBC60
|
||||
gFieldEffectScript_Nop47::
|
||||
field_eff_callnative FldEff_Nop47
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_Nop48:: @ 82DBC66
|
||||
gFieldEffectScript_Nop48::
|
||||
field_eff_callnative FldEff_Nop48
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_AshPuff:: @ 82DBC6C
|
||||
gFieldEffectScript_AshPuff::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshPuff
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_AshLaunch:: @ 82DBC76
|
||||
gFieldEffectScript_AshLaunch::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_Ash, FldEff_AshLaunch
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_SweetScent:: @ 82DBC80
|
||||
gFieldEffectScript_SweetScent::
|
||||
field_eff_callnative FldEff_SweetScent
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_SandPillar:: @ 82DBC86
|
||||
gFieldEffectScript_SandPillar::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_SandPillar, FldEff_SandPillar
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_Bubbles:: @ 82DBC90
|
||||
gFieldEffectScript_Bubbles::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_GeneralFieldEffect0, FldEff_Bubbles
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_Sparkle:: @ 82DBC9A
|
||||
gFieldEffectScript_Sparkle::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_SmallSparkle, FldEff_Sparkle
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_ShowSecretPowerCave:: @ 82DBCA4
|
||||
gFieldEffectScript_ShowSecretPowerCave::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Cave, FldEff_SecretPowerCave
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_ShowSecretPowerTree:: @ 82DBCAE
|
||||
gFieldEffectScript_ShowSecretPowerTree::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerTree
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_ShowSecretPowerShrub:: @ 82DBCB8
|
||||
gFieldEffectScript_ShowSecretPowerShrub::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_SecretPower_Plant, FldEff_SecretPowerShrub
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_ShowCutGrass:: @ 82DBCC2
|
||||
gFieldEffectScript_ShowCutGrass::
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_CutGrass, FldEff_CutGrass
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_FieldMoveShowMonInit:: @ 82DBCCC
|
||||
gFieldEffectScript_FieldMoveShowMonInit::
|
||||
field_eff_callnative FldEff_FieldMoveShowMonInit
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UsePuzzleEffect:: @ 82DBCD2
|
||||
gFieldEffectScript_UsePuzzleEffect::
|
||||
field_eff_callnative FldEff_UsePuzzleEffect
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_SecretBaseBootPC:: @ 82DBCD8
|
||||
gFieldEffectScript_SecretBaseBootPC::
|
||||
field_eff_callnative FldEff_SecretBasePCTurnOn
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_HallOfFameRecord:: @ 82DBCDE
|
||||
gFieldEffectScript_HallOfFameRecord::
|
||||
field_eff_loadfadedpal gSpritePalette_PokeballGlow
|
||||
field_eff_loadfadedpal_callnative gSpritePalette_HofMonitor, FldEff_HallOfFameRecord
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_UseTeleport:: @ 82DBCED
|
||||
gFieldEffectScript_UseTeleport::
|
||||
field_eff_callnative FldEff_UseTeleport
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_RayquazaSpotlight:: @ 82DBCF3
|
||||
gFieldEffectScript_RayquazaSpotlight::
|
||||
field_eff_callnative FldEff_RayquazaSpotlight
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_DestroyDeoxysRock:: @ 82DBCF9
|
||||
gFieldEffectScript_DestroyDeoxysRock::
|
||||
field_eff_callnative FldEff_DestroyDeoxysRock
|
||||
field_eff_end
|
||||
|
||||
gFieldEffectScript_MoveDeoxysRock:: @ 82DBCFF
|
||||
gFieldEffectScript_MoveDeoxysRock::
|
||||
field_eff_callnative FldEff_MoveDeoxysRock
|
||||
field_eff_end
|
||||
|
||||
76
data/fonts.s
76
data/fonts.s
@ -1,76 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
.align 2
|
||||
gFont8LatinGlyphs:: @ 862BAE4
|
||||
.incbin "graphics/fonts/font8.latfont"
|
||||
|
||||
.align 2
|
||||
gFont8LatinGlyphWidths:: @ 8633AE4
|
||||
.include "graphics/fonts/font8_latin_widths.inc"
|
||||
|
||||
.align 2
|
||||
gFont0LatinGlyphs:: @ 8633CE4
|
||||
.incbin "graphics/fonts/font0.latfont"
|
||||
|
||||
.align 2
|
||||
gFont0LatinGlyphWidths:: @ 863BCE4
|
||||
.include "graphics/fonts/font0_latin_widths.inc"
|
||||
|
||||
.align 2
|
||||
gFont7LatinGlyphs:: @ 863BEE4
|
||||
.incbin "graphics/fonts/font7.latfont"
|
||||
|
||||
.align 2
|
||||
gFont7LatinGlyphWidths:: @ 8643EE4
|
||||
.include "graphics/fonts/font7_latin_widths.inc"
|
||||
|
||||
.align 2
|
||||
gFont2LatinGlyphs:: @ 86440E4
|
||||
.incbin "graphics/fonts/font2.latfont"
|
||||
|
||||
.align 2
|
||||
gFont2LatinGlyphWidths:: @ 864C0E4
|
||||
.include "graphics/fonts/font2_latin_widths.inc"
|
||||
|
||||
.align 2
|
||||
gFont1LatinGlyphs:: @ 864C2E4
|
||||
.incbin "graphics/fonts/font1.latfont"
|
||||
|
||||
.align 2
|
||||
gFont1LatinGlyphWidths:: @ 86542E4
|
||||
.include "graphics/fonts/font1_latin_widths.inc"
|
||||
|
||||
.align 2
|
||||
gFont0JapaneseGlyphs:: @ 86544E4
|
||||
.incbin "graphics/fonts/font0.hwjpnfont"
|
||||
|
||||
.align 2
|
||||
gFont1JapaneseGlyphs:: @ 86584E4
|
||||
.incbin "graphics/fonts/font1.hwjpnfont"
|
||||
|
||||
.align 2
|
||||
gUnusedJapaneseFireRedLeafGreenMaleFontGlyphs:: @ 865C4E4
|
||||
.incbin "graphics/fonts/unused_frlg_male.fwjpnfont"
|
||||
|
||||
.align 2
|
||||
gUnusedJapaneseFireRedLeafGreenMaleFontGlyphWidths:: @ 86644E4
|
||||
.include "graphics/fonts/unused_japanese_frlg_male_font_widths.inc"
|
||||
|
||||
.align 2
|
||||
gUnusedJapaneseFireRedLeafGreenFemaleFontGlyphs:: @ 86646E4
|
||||
.incbin "graphics/fonts/unused_frlg_female.fwjpnfont"
|
||||
|
||||
.align 2
|
||||
gUnusedJapaneseFireRedLeafGreenFemaleFontGlyphWidths:: @ 866C6E4
|
||||
.include "graphics/fonts/unused_japanese_frlg_female_font_widths.inc"
|
||||
|
||||
.align 2
|
||||
gFont2JapaneseGlyphs:: @ 866C8E4
|
||||
.incbin "graphics/fonts/font2.fwjpnfont"
|
||||
|
||||
.align 2
|
||||
gFont2JapaneseGlyphWidths:: @ 86748E4
|
||||
.include "graphics/fonts/font2_japanese_widths.inc"
|
||||
@ -1,308 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2, 0
|
||||
|
||||
gPointillismPoints:: @ 85A1F94
|
||||
.byte 0x00, 0x1d, 0x1c, 0x0e, 0x1e, 0x1b, 0x00, 0x01, 0x32, 0x2e, 0x1e, 0x37, 0x0a, 0x22, 0x1f, 0x05, 0x26, 0x2e, 0x12, 0x17, 0x1e, 0x1a, 0x03, 0x11, 0x05, 0x11, 0x18, 0x05, 0x27, 0x2f, 0x1a, 0x3f
|
||||
.byte 0x12, 0x22, 0x3f, 0x16, 0x2b, 0x2f, 0x2e, 0x11, 0x02, 0x2d, 0x23, 0x0d, 0x28, 0x17, 0x0c, 0x19, 0x2f, 0x0e, 0x13, 0x30, 0x18, 0x20, 0x2d, 0x28, 0x22, 0x01, 0x03, 0x19, 0x0e, 0x2a, 0x2b, 0x22
|
||||
.byte 0x15, 0x25, 0x22, 0x0a, 0x26, 0x39, 0x06, 0x23, 0x16, 0x07, 0x2f, 0x22, 0x3a, 0x1b, 0x3b, 0x36, 0x35, 0x0a, 0x2b, 0x24, 0x36, 0x09, 0x12, 0x1c, 0x2f, 0x23, 0x2e, 0x38, 0x2c, 0x05, 0x2a, 0x20
|
||||
.byte 0x07, 0x14, 0x32, 0x31, 0x08, 0x17, 0x1a, 0x24, 0x2d, 0x22, 0x0a, 0x16, 0x1b, 0x26, 0x2b, 0x29, 0x16, 0x11, 0x35, 0x08, 0x14, 0x1e, 0x08, 0x14, 0x05, 0x31, 0x14, 0x38, 0x31, 0x17, 0x34, 0x33
|
||||
.byte 0x12, 0x11, 0x09, 0x1f, 0x28, 0x3d, 0x32, 0x35, 0x03, 0x1e, 0x3c, 0x2b, 0x2e, 0x10, 0x01, 0x17, 0x03, 0x3e, 0x22, 0x17, 0x18, 0x34, 0x08, 0x29, 0x19, 0x03, 0x24, 0x28, 0x3d, 0x33, 0x2f, 0x31
|
||||
.byte 0x24, 0x19, 0x1b, 0x18, 0x26, 0x07, 0x0d, 0x25, 0x2d, 0x3f, 0x12, 0x2f, 0x15, 0x25, 0x29, 0x0f, 0x12, 0x07, 0x2c, 0x12, 0x2c, 0x0b, 0x26, 0x12, 0x1a, 0x16, 0x00, 0x0b, 0x2f, 0x16, 0x35, 0x24
|
||||
.byte 0x1f, 0x1c, 0x22, 0x29, 0x33, 0x27, 0x3b, 0x30, 0x17, 0x11, 0x06, 0x35, 0x3e, 0x31, 0x2f, 0x11, 0x3a, 0x25, 0x2a, 0x02, 0x19, 0x33, 0x18, 0x35, 0x2a, 0x20, 0x21, 0x2e, 0x32, 0x1b, 0x3b, 0x1f
|
||||
.byte 0x23, 0x39, 0x29, 0x2a, 0x2e, 0x31, 0x29, 0x2a, 0x0e, 0x2d, 0x2d, 0x00, 0x1f, 0x38, 0x28, 0x1b, 0x14, 0x3b, 0x2b, 0x2e, 0x04, 0x26, 0x36, 0x30, 0x11, 0x3b, 0x21, 0x2d, 0x2b, 0x3f, 0x1b, 0x20
|
||||
.byte 0x13, 0x31, 0x33, 0x0c, 0x30, 0x22, 0x2b, 0x2b, 0x16, 0x02, 0x1e, 0x1c, 0x12, 0x1c, 0x0f, 0x3c, 0x36, 0x38, 0x10, 0x2d, 0x18, 0x2f, 0x2d, 0x35, 0x3b, 0x11, 0x37, 0x31, 0x13, 0x13, 0x3d, 0x2f
|
||||
.byte 0x1e, 0x2c, 0x33, 0x2e, 0x37, 0x12, 0x3c, 0x1f, 0x33, 0x32, 0x2a, 0x27, 0x0d, 0x3b, 0x1c, 0x35, 0x2a, 0x27, 0x09, 0x3d, 0x27, 0x12, 0x0b, 0x18, 0x0c, 0x15, 0x1d, 0x20, 0x01, 0x1c, 0x08, 0x3b
|
||||
.byte 0x1c, 0x12, 0x37, 0x33, 0x15, 0x03, 0x2c, 0x2a, 0x3b, 0x31, 0x0f, 0x04, 0x35, 0x08, 0x17, 0x33, 0x38, 0x3d, 0x2a, 0x2f, 0x35, 0x16, 0x10, 0x35, 0x16, 0x23, 0x13, 0x2c, 0x2f, 0x06, 0x20, 0x27
|
||||
.byte 0x3a, 0x24, 0x00, 0x1c, 0x2a, 0x03, 0x39, 0x1d, 0x28, 0x07, 0x1a, 0x20, 0x0a, 0x37, 0x07, 0x35, 0x2d, 0x15, 0x2f, 0x2c, 0x10, 0x2c, 0x23, 0x3f, 0x29, 0x14, 0x2a, 0x21, 0x36, 0x34, 0x1a, 0x2c
|
||||
.byte 0x1c, 0x3d, 0x33, 0x38, 0x2b, 0x22, 0x35, 0x28, 0x1f, 0x3d, 0x0f, 0x1c, 0x1e, 0x3e, 0x1b, 0x0c, 0x3e, 0x1f, 0x2b, 0x31, 0x2c, 0x32, 0x39, 0x11, 0x05, 0x09, 0x11, 0x04, 0x38, 0x2a, 0x32, 0x00
|
||||
.byte 0x16, 0x13, 0x0b, 0x31, 0x34, 0x2a, 0x13, 0x2c, 0x22, 0x21, 0x39, 0x2f, 0x15, 0x37, 0x28, 0x1e, 0x07, 0x3b, 0x2d, 0x11, 0x03, 0x28, 0x2d, 0x30, 0x1e, 0x31, 0x11, 0x11, 0x23, 0x01, 0x1e, 0x3d
|
||||
.byte 0x31, 0x34, 0x1c, 0x02, 0x34, 0x21, 0x0e, 0x25, 0x3d, 0x07, 0x17, 0x33, 0x15, 0x10, 0x29, 0x32, 0x32, 0x18, 0x1f, 0x30, 0x2d, 0x3b, 0x30, 0x27, 0x3e, 0x16, 0x31, 0x15, 0x12, 0x30, 0x25, 0x17
|
||||
.byte 0x33, 0x06, 0x34, 0x00, 0x29, 0x18, 0x3c, 0x03, 0x12, 0x2c, 0x0c, 0x11, 0x09, 0x30, 0x30, 0x10, 0x0e, 0x11, 0x27, 0x16, 0x1b, 0x0c, 0x3b, 0x2e, 0x2b, 0x33, 0x1e, 0x13, 0x2d, 0x2d, 0x11, 0x24
|
||||
.byte 0x29, 0x34, 0x3e, 0x2b, 0x24, 0x1e, 0x21, 0x27, 0x1a, 0x2d, 0x04, 0x39, 0x16, 0x3e, 0x33, 0x26, 0x1b, 0x2e, 0x25, 0x0c, 0x06, 0x19, 0x25, 0x19, 0x18, 0x1d, 0x33, 0x33, 0x1d, 0x28, 0x2d, 0x1c
|
||||
.byte 0x10, 0x2a, 0x1f, 0x35, 0x1e, 0x34, 0x02, 0x10, 0x2b, 0x3a, 0x14, 0x0d, 0x0b, 0x15, 0x0c, 0x2c, 0x10, 0x37, 0x3a, 0x19, 0x06, 0x13, 0x17, 0x24, 0x10, 0x25, 0x24, 0x04, 0x1e, 0x00, 0x35, 0x34
|
||||
.byte 0x3a, 0x00, 0x37, 0x3c, 0x07, 0x1a, 0x2b, 0x28, 0x36, 0x34, 0x39, 0x2f, 0x28, 0x09, 0x1f, 0x38, 0x31, 0x30, 0x16, 0x25, 0x31, 0x18, 0x28, 0x31, 0x18, 0x0c, 0x22, 0x06, 0x39, 0x2d, 0x3d, 0x20
|
||||
.byte 0x24, 0x2e, 0x27, 0x21, 0x3e, 0x18, 0x18, 0x15, 0x3c, 0x24, 0x06, 0x1b, 0x26, 0x15, 0x0e, 0x22, 0x0a, 0x0d, 0x1f, 0x18, 0x16, 0x34, 0x10, 0x28, 0x21, 0x20, 0x11, 0x11, 0x36, 0x32, 0x15, 0x3b
|
||||
.byte 0x2e, 0x24, 0x1f, 0x2d, 0x12, 0x36, 0x2e, 0x20, 0x0b, 0x17, 0x33, 0x26, 0x03, 0x1f, 0x08, 0x19, 0x31, 0x2a, 0x18, 0x25, 0x35, 0x2d, 0x2d, 0x30, 0x38, 0x18, 0x1c, 0x25, 0x14, 0x1c, 0x22, 0x28
|
||||
.byte 0x08, 0x23, 0x21, 0x26, 0x1e, 0x30, 0x19, 0x0f, 0x15, 0x10, 0x2f, 0x22, 0x12, 0x02, 0x25, 0x3c, 0x01, 0x1d, 0x0e, 0x14, 0x18, 0x0d, 0x18, 0x17, 0x22, 0x0b, 0x31, 0x13, 0x34, 0x21, 0x0f, 0x2d
|
||||
.byte 0x36, 0x39, 0x1f, 0x25, 0x18, 0x10, 0x1f, 0x2d, 0x20, 0x20, 0x19, 0x0b, 0x31, 0x33, 0x13, 0x14, 0x2e, 0x11, 0x21, 0x2d, 0x0a, 0x37, 0x07, 0x15, 0x1b, 0x32, 0x04, 0x32, 0x06, 0x18, 0x1b, 0x13
|
||||
.byte 0x24, 0x12, 0x36, 0x22, 0x16, 0x1d, 0x29, 0x1c, 0x35, 0x17, 0x21, 0x36, 0x17, 0x2b, 0x35, 0x32, 0x19, 0x2a, 0x0f, 0x2e, 0x10, 0x00, 0x34, 0x02, 0x0e, 0x28, 0x31, 0x32, 0x32, 0x3b, 0x05, 0x20
|
||||
.byte 0x36, 0x26, 0x12, 0x34, 0x06, 0x34, 0x1e, 0x31, 0x32, 0x35, 0x05, 0x34, 0x1e, 0x13, 0x15, 0x15, 0x14, 0x2c, 0x29, 0x1c, 0x18, 0x24, 0x24, 0x12, 0x22, 0x29, 0x18, 0x34, 0x36, 0x30, 0x1e, 0x01
|
||||
.byte 0x23, 0x0c, 0x3c, 0x24, 0x0a, 0x3d, 0x16, 0x27, 0x1e, 0x23, 0x15, 0x02, 0x12, 0x11, 0x19, 0x2a, 0x1d, 0x31, 0x15, 0x03, 0x3b, 0x2a, 0x21, 0x19, 0x2c, 0x0a, 0x23, 0x11, 0x25, 0x11, 0x1a, 0x1a
|
||||
.byte 0x0a, 0x34, 0x3b, 0x0b, 0x33, 0x21, 0x0b, 0x37, 0x01, 0x31, 0x28, 0x35, 0x1d, 0x27, 0x2c, 0x30, 0x31, 0x2e, 0x39, 0x2d, 0x30, 0x05, 0x2c, 0x12, 0x2a, 0x2b, 0x39, 0x22, 0x20, 0x15, 0x34, 0x1c
|
||||
.byte 0x1c, 0x01, 0x15, 0x20, 0x16, 0x22, 0x13, 0x04, 0x18, 0x1e, 0x13, 0x10, 0x25, 0x33, 0x15, 0x39, 0x03, 0x31, 0x3f, 0x36, 0x18, 0x14, 0x23, 0x10, 0x2f, 0x1e, 0x1f, 0x1f, 0x17, 0x2c, 0x02, 0x16
|
||||
.byte 0x31, 0x20, 0x18, 0x30, 0x2e, 0x18, 0x37, 0x3b, 0x0e, 0x30, 0x10, 0x39, 0x24, 0x26, 0x39, 0x1e, 0x30, 0x26, 0x2e, 0x12, 0x01, 0x14, 0x37, 0x2a, 0x2e, 0x21, 0x06, 0x1d, 0x2a, 0x16, 0x32, 0x09
|
||||
.byte 0x38, 0x1c, 0x07, 0x22, 0x17, 0x3b, 0x2d, 0x15, 0x07, 0x1e, 0x2e, 0x1b, 0x2e, 0x1d, 0x04, 0x09, 0x30, 0x30, 0x2d, 0x37, 0x2d, 0x34, 0x24, 0x18, 0x24, 0x25, 0x0e, 0x2d, 0x26, 0x23, 0x0a, 0x16
|
||||
.byte 0x12, 0x2d, 0x11, 0x21, 0x28, 0x2e, 0x0f, 0x01, 0x21, 0x01, 0x31, 0x12, 0x3f, 0x1b, 0x1e, 0x21, 0x25, 0x2b, 0x26, 0x18, 0x13, 0x15, 0x2d, 0x34, 0x23, 0x21, 0x36, 0x0e, 0x2e, 0x1c, 0x14, 0x22
|
||||
.byte 0x1c, 0x2c, 0x0b, 0x28, 0x1a, 0x18, 0x21, 0x21, 0x07, 0x1a, 0x24, 0x26, 0x29, 0x2b, 0x0a, 0x34, 0x3e, 0x27, 0x33, 0x12, 0x34, 0x1b, 0x1f, 0x01, 0x2a, 0x2e, 0x06, 0x23, 0x2f, 0x1f, 0x14, 0x18
|
||||
.byte 0x06, 0x26, 0x31, 0x1f, 0x2b, 0x22, 0x26, 0x2e, 0x1e, 0x15, 0x16, 0x20, 0x22, 0x28, 0x15, 0x37, 0x12, 0x25, 0x04, 0x2c, 0x1f, 0x04, 0x2e, 0x0c, 0x13, 0x18, 0x07, 0x0b, 0x36, 0x1d, 0x1c, 0x2a
|
||||
.byte 0x30, 0x22, 0x1c, 0x2e, 0x12, 0x2f, 0x2b, 0x21, 0x1e, 0x16, 0x38, 0x30, 0x04, 0x02, 0x16, 0x05, 0x14, 0x20, 0x38, 0x3c, 0x33, 0x21, 0x1b, 0x2f, 0x14, 0x2a, 0x27, 0x38, 0x14, 0x1b, 0x2b, 0x1f
|
||||
.byte 0x2b, 0x29, 0x2b, 0x25, 0x27, 0x36, 0x21, 0x11, 0x22, 0x1b, 0x29, 0x03, 0x1b, 0x18, 0x24, 0x28, 0x21, 0x2d, 0x36, 0x3c, 0x2c, 0x24, 0x33, 0x17, 0x1f, 0x2a, 0x3a, 0x21, 0x0a, 0x23, 0x37, 0x00
|
||||
.byte 0x0b, 0x21, 0x11, 0x38, 0x19, 0x0f, 0x0e, 0x1c, 0x1f, 0x0f, 0x37, 0x3c, 0x10, 0x37, 0x38, 0x31, 0x35, 0x07, 0x15, 0x28, 0x1e, 0x2e, 0x19, 0x26, 0x10, 0x33, 0x3d, 0x35, 0x2f, 0x3a, 0x04, 0x34
|
||||
.byte 0x0d, 0x18, 0x1a, 0x01, 0x2d, 0x15, 0x3d, 0x1a, 0x17, 0x17, 0x3f, 0x32, 0x0b, 0x21, 0x11, 0x1e, 0x26, 0x2b, 0x0d, 0x19, 0x24, 0x2e, 0x04, 0x1b, 0x1b, 0x33, 0x20, 0x15, 0x21, 0x1d, 0x1f, 0x04
|
||||
.byte 0x21, 0x0f, 0x12, 0x1f, 0x2d, 0x2a, 0x32, 0x03, 0x37, 0x1f, 0x35, 0x07, 0x27, 0x24, 0x1f, 0x31, 0x2f, 0x30, 0x15, 0x06, 0x00, 0x24, 0x0b, 0x22, 0x1a, 0x0c, 0x3b, 0x29, 0x14, 0x1a, 0x17, 0x37
|
||||
.byte 0x20, 0x25, 0x3f, 0x26, 0x37, 0x3a, 0x3e, 0x10, 0x22, 0x04, 0x11, 0x28, 0x12, 0x1c, 0x03, 0x2e, 0x2e, 0x0e, 0x38, 0x28, 0x01, 0x29, 0x22, 0x1e, 0x33, 0x19, 0x06, 0x21, 0x27, 0x33, 0x19, 0x1a
|
||||
.byte 0x02, 0x05, 0x17, 0x11, 0x11, 0x2c, 0x1f, 0x26, 0x1e, 0x39, 0x1f, 0x28, 0x2e, 0x2f, 0x12, 0x22, 0x34, 0x13, 0x3b, 0x26, 0x2f, 0x34, 0x00, 0x14, 0x10, 0x31, 0x11, 0x1d, 0x2d, 0x2a, 0x08, 0x08
|
||||
.byte 0x37, 0x15, 0x18, 0x34, 0x04, 0x2b, 0x24, 0x2f, 0x1e, 0x27, 0x22, 0x2a, 0x24, 0x07, 0x14, 0x25, 0x01, 0x27, 0x19, 0x29, 0x0a, 0x29, 0x3d, 0x1c, 0x2f, 0x0d, 0x1f, 0x1c, 0x24, 0x3d, 0x32, 0x36
|
||||
.byte 0x1d, 0x24, 0x14, 0x21, 0x16, 0x1a, 0x0d, 0x29, 0x3f, 0x2b, 0x2a, 0x1a, 0x3e, 0x35, 0x11, 0x28, 0x18, 0x32, 0x05, 0x15, 0x21, 0x2e, 0x34, 0x2d, 0x14, 0x2a, 0x3c, 0x08, 0x37, 0x3f, 0x34, 0x1e
|
||||
.byte 0x27, 0x24, 0x1c, 0x16, 0x16, 0x33, 0x29, 0x3b, 0x19, 0x36, 0x2f, 0x1c, 0x03, 0x25, 0x2c, 0x0b, 0x16, 0x36, 0x1c, 0x1d, 0x1b, 0x2c, 0x27, 0x1b, 0x0b, 0x1f, 0x2b, 0x08, 0x10, 0x27, 0x3f, 0x25
|
||||
.byte 0x2f, 0x33, 0x13, 0x1f, 0x04, 0x31, 0x37, 0x0e, 0x2f, 0x12, 0x08, 0x23, 0x20, 0x3a, 0x1a, 0x1e, 0x2f, 0x0b, 0x1f, 0x1e, 0x20, 0x19, 0x23, 0x3b, 0x14, 0x25, 0x00, 0x27, 0x14, 0x04, 0x25, 0x36
|
||||
.byte 0x1a, 0x2b, 0x27, 0x21, 0x15, 0x28, 0x13, 0x2c, 0x0e, 0x3c, 0x35, 0x0c, 0x2d, 0x2b, 0x37, 0x16, 0x15, 0x29, 0x15, 0x1d, 0x17, 0x34, 0x36, 0x09, 0x0a, 0x31, 0x37, 0x22, 0x28, 0x17, 0x2b, 0x35
|
||||
.byte 0x14, 0x2b, 0x12, 0x08, 0x13, 0x1f, 0x31, 0x13, 0x28, 0x06, 0x07, 0x35, 0x23, 0x3a, 0x29, 0x0f, 0x24, 0x2e, 0x07, 0x35, 0x26, 0x0e, 0x12, 0x15, 0x23, 0x33, 0x2c, 0x0e, 0x21, 0x26, 0x1c, 0x12
|
||||
.byte 0x25, 0x23, 0x1d, 0x2f, 0x04, 0x35, 0x33, 0x16, 0x01, 0x24, 0x3d, 0x2c, 0x2e, 0x35, 0x0a, 0x25, 0x11, 0x13, 0x25, 0x1b, 0x1b, 0x15, 0x15, 0x39, 0x10, 0x0b, 0x35, 0x24, 0x3a, 0x27, 0x30, 0x2e
|
||||
.byte 0x2f, 0x15, 0x10, 0x1f, 0x35, 0x1b, 0x28, 0x35, 0x26, 0x30, 0x37, 0x34, 0x37, 0x2b, 0x0f, 0x30, 0x29, 0x2e, 0x3f, 0x2b, 0x38, 0x34, 0x2b, 0x2b, 0x2f, 0x25, 0x0d, 0x28, 0x2a, 0x33, 0x18, 0x10
|
||||
.byte 0x21, 0x12, 0x11, 0x1f, 0x22, 0x34, 0x11, 0x25, 0x23, 0x21, 0x3f, 0x11, 0x26, 0x27, 0x25, 0x28, 0x36, 0x12, 0x15, 0x26, 0x32, 0x11, 0x18, 0x24, 0x32, 0x25, 0x37, 0x27, 0x3a, 0x33, 0x35, 0x07
|
||||
.byte 0x1c, 0x1a, 0x0e, 0x2a, 0x1e, 0x2f, 0x1f, 0x00, 0x2e, 0x21, 0x1b, 0x3c, 0x14, 0x2f, 0x3a, 0x2f, 0x3e, 0x38, 0x15, 0x1a, 0x13, 0x2f, 0x29, 0x0d, 0x2f, 0x37, 0x17, 0x18, 0x30, 0x1c, 0x35, 0x15
|
||||
.byte 0x34, 0x14, 0x28, 0x11, 0x2c, 0x2c, 0x25, 0x2a, 0x20, 0x3f, 0x28, 0x0c, 0x34, 0x1b, 0x30, 0x2e, 0x25, 0x37, 0x1c, 0x24, 0x1f, 0x25, 0x26, 0x0c, 0x19, 0x34, 0x18, 0x10, 0x35, 0x0a, 0x13, 0x11
|
||||
.byte 0x25, 0x13, 0x20, 0x13, 0x19, 0x11, 0x20, 0x28, 0x1d, 0x3e, 0x30, 0x1b, 0x23, 0x24, 0x21, 0x0d, 0x23, 0x23, 0x1d, 0x28, 0x2e, 0x2d, 0x12, 0x1f, 0x0e, 0x2e, 0x2b, 0x0b, 0x31, 0x32, 0x24, 0x3c
|
||||
.byte 0x2c, 0x13, 0x3c, 0x12, 0x28, 0x16, 0x2a, 0x05, 0x0c, 0x32, 0x39, 0x0b, 0x32, 0x21, 0x04, 0x14, 0x10, 0x31, 0x32, 0x12, 0x1f, 0x23, 0x39, 0x2e, 0x2e, 0x22, 0x3d, 0x27, 0x0c, 0x1e, 0x18, 0x25
|
||||
.byte 0x00, 0x17, 0x06, 0x31, 0x14, 0x13, 0x21, 0x1a, 0x14, 0x20, 0x35, 0x0a, 0x3b, 0x25, 0x33, 0x08, 0x28, 0x3d, 0x02, 0x33, 0x23, 0x00, 0x13, 0x22, 0x21, 0x28, 0x30, 0x14, 0x2e, 0x14, 0x32, 0x36
|
||||
.byte 0x39, 0x23, 0x1e, 0x1c, 0x11, 0x30, 0x37, 0x16, 0x30, 0x15, 0x31, 0x1f, 0x34, 0x28, 0x2c, 0x35, 0x05, 0x29, 0x37, 0x33, 0x2a, 0x1c, 0x17, 0x2e, 0x10, 0x06, 0x16, 0x32, 0x1f, 0x2f, 0x00, 0x29
|
||||
.byte 0x1e, 0x04, 0x01, 0x16, 0x3b, 0x23, 0x1e, 0x1b, 0x34, 0x2a, 0x30, 0x11, 0x2b, 0x03, 0x00, 0x1f, 0x1d, 0x37, 0x1a, 0x3a, 0x18, 0x25, 0x1c, 0x16, 0x2c, 0x04, 0x3f, 0x33, 0x26, 0x23, 0x2d, 0x15
|
||||
.byte 0x2c, 0x27, 0x02, 0x35, 0x27, 0x07, 0x35, 0x33, 0x1a, 0x0c, 0x10, 0x28, 0x26, 0x2c, 0x2f, 0x36, 0x16, 0x37, 0x0b, 0x27, 0x1b, 0x3d, 0x18, 0x27, 0x1f, 0x20, 0x2b, 0x2a, 0x33, 0x0b, 0x0f, 0x20
|
||||
.byte 0x35, 0x3c, 0x2f, 0x33, 0x21, 0x15, 0x2d, 0x26, 0x34, 0x1f, 0x1a, 0x21, 0x2f, 0x2c, 0x2a, 0x1a, 0x32, 0x1a, 0x3b, 0x3f, 0x21, 0x13, 0x3f, 0x13, 0x0f, 0x24, 0x22, 0x14, 0x1b, 0x10, 0x21, 0x06
|
||||
.byte 0x28, 0x25, 0x34, 0x10, 0x2e, 0x0e, 0x14, 0x3c, 0x3e, 0x25, 0x16, 0x06, 0x30, 0x0b, 0x04, 0x1f, 0x3e, 0x02, 0x24, 0x0c, 0x17, 0x25, 0x2b, 0x3c, 0x2d, 0x15, 0x36, 0x33, 0x18, 0x23, 0x2a, 0x1d
|
||||
.byte 0x10, 0x2a, 0x35, 0x17, 0x28, 0x00, 0x37, 0x24, 0x0a, 0x3b, 0x15, 0x1d, 0x0b, 0x1f, 0x3c, 0x31, 0x25, 0x1d, 0x0f, 0x1d, 0x20, 0x13, 0x34, 0x11, 0x2b, 0x2e, 0x23, 0x0c, 0x2e, 0x24, 0x02, 0x14
|
||||
.byte 0x31, 0x16, 0x19, 0x0e, 0x23, 0x35, 0x1a, 0x10, 0x16, 0x14, 0x04, 0x19, 0x2d, 0x27, 0x37, 0x33, 0x02, 0x31, 0x02, 0x04, 0x16, 0x0d, 0x22, 0x25, 0x25, 0x00, 0x16, 0x2a, 0x3f, 0x26, 0x20, 0x0c
|
||||
.byte 0x12, 0x2f, 0x2e, 0x35, 0x1b, 0x0d, 0x22, 0x1e, 0x01, 0x34, 0x05, 0x22, 0x21, 0x34, 0x2a, 0x32, 0x0b, 0x09, 0x1d, 0x3f, 0x32, 0x2f, 0x3d, 0x18, 0x2d, 0x0b, 0x38, 0x36, 0x39, 0x17, 0x28, 0x34
|
||||
.byte 0x04, 0x24, 0x36, 0x0e, 0x2a, 0x38, 0x01, 0x14, 0x3c, 0x24, 0x22, 0x21, 0x03, 0x18, 0x32, 0x2f, 0x12, 0x29, 0x24, 0x31, 0x0a, 0x3b, 0x12, 0x1a, 0x1c, 0x20, 0x30, 0x31, 0x1b, 0x1a, 0x21, 0x10
|
||||
.byte 0x05, 0x29, 0x10, 0x26, 0x2d, 0x13, 0x16, 0x0c, 0x1d, 0x2b, 0x06, 0x1b, 0x06, 0x12, 0x14, 0x38, 0x0f, 0x35, 0x23, 0x3a, 0x2c, 0x00, 0x19, 0x33, 0x29, 0x14, 0x2d, 0x2a, 0x21, 0x29, 0x14, 0x31
|
||||
.byte 0x14, 0x1a, 0x06, 0x1e, 0x18, 0x1b, 0x28, 0x3b, 0x16, 0x29, 0x15, 0x1e, 0x12, 0x34, 0x0a, 0x14, 0x1b, 0x05, 0x27, 0x0b, 0x01, 0x26, 0x2a, 0x22, 0x35, 0x21, 0x20, 0x18, 0x20, 0x37, 0x17, 0x14
|
||||
.byte 0x1f, 0x11, 0x1d, 0x11, 0x25, 0x24, 0x2b, 0x2f, 0x07, 0x3f, 0x1f, 0x2c, 0x25, 0x25, 0x2a, 0x29, 0x18, 0x11, 0x24, 0x28, 0x31, 0x2c, 0x2a, 0x39, 0x0b, 0x26, 0x28, 0x10, 0x26, 0x22, 0x06, 0x16
|
||||
.byte 0x09, 0x2c, 0x13, 0x34, 0x19, 0x15, 0x3a, 0x12, 0x21, 0x1d, 0x38, 0x23, 0x12, 0x25, 0x24, 0x21, 0x30, 0x12, 0x37, 0x1a, 0x12, 0x24, 0x3b, 0x25, 0x32, 0x15, 0x23, 0x0d, 0x1a, 0x10, 0x16, 0x2e
|
||||
.byte 0x26, 0x1d, 0x14, 0x16, 0x3e, 0x2e, 0x1f, 0x0a, 0x16, 0x10, 0x1d, 0x30, 0x2b, 0x04, 0x3a, 0x19, 0x08, 0x2d, 0x2e, 0x28, 0x1e, 0x33, 0x0a, 0x12, 0x2e, 0x0d, 0x03, 0x2f, 0x26, 0x3a, 0x1e, 0x35
|
||||
.byte 0x3b, 0x2a, 0x03, 0x1a, 0x18, 0x3f, 0x0b, 0x27, 0x04, 0x05, 0x34, 0x36, 0x0b, 0x27, 0x3b, 0x17, 0x11, 0x0d, 0x27, 0x26, 0x2c, 0x1f, 0x20, 0x26, 0x10, 0x20, 0x25, 0x23, 0x2d, 0x37, 0x09, 0x13
|
||||
.byte 0x14, 0x17, 0x2d, 0x2e, 0x3d, 0x23, 0x1d, 0x1a, 0x1f, 0x21, 0x33, 0x2e, 0x28, 0x17, 0x13, 0x26, 0x3c, 0x36, 0x14, 0x1a, 0x33, 0x32, 0x20, 0x2b, 0x19, 0x3e, 0x20, 0x0c, 0x02, 0x2d, 0x3c, 0x3c
|
||||
.byte 0x2a, 0x30, 0x30, 0x28, 0x25, 0x3f, 0x1e, 0x03, 0x17, 0x1e, 0x35, 0x11, 0x1c, 0x1b, 0x14, 0x2a, 0x28, 0x3a, 0x23, 0x0e, 0x1f, 0x12, 0x36, 0x21, 0x20, 0x07, 0x3b, 0x10, 0x23, 0x19, 0x34, 0x0d
|
||||
.byte 0x2e, 0x18, 0x3f, 0x20, 0x25, 0x3e, 0x3b, 0x15, 0x0b, 0x2e, 0x12, 0x37, 0x0b, 0x23, 0x3d, 0x32, 0x1f, 0x16, 0x03, 0x27, 0x14, 0x0c, 0x21, 0x18, 0x03, 0x30, 0x3e, 0x21, 0x13, 0x0f, 0x00, 0x32
|
||||
.byte 0x3f, 0x23, 0x16, 0x0e, 0x31, 0x1d, 0x18, 0x1c, 0x1d, 0x30, 0x0e, 0x1e, 0x21, 0x20, 0x23, 0x3f, 0x0c, 0x1e, 0x14, 0x33, 0x22, 0x22, 0x21, 0x15, 0x36, 0x05, 0x1e, 0x1d, 0x31, 0x14, 0x20, 0x11
|
||||
.byte 0x37, 0x0d, 0x33, 0x19, 0x25, 0x05, 0x36, 0x1e, 0x31, 0x20, 0x35, 0x3a, 0x2f, 0x32, 0x2f, 0x30, 0x14, 0x23, 0x2d, 0x35, 0x1e, 0x29, 0x05, 0x05, 0x1b, 0x09, 0x1f, 0x26, 0x2f, 0x0b, 0x15, 0x15
|
||||
.byte 0x11, 0x13, 0x29, 0x1b, 0x18, 0x1c, 0x13, 0x35, 0x34, 0x31, 0x23, 0x27, 0x3f, 0x2f, 0x09, 0x30, 0x19, 0x23, 0x12, 0x34, 0x02, 0x2a, 0x21, 0x09, 0x3c, 0x1d, 0x0c, 0x02, 0x10, 0x22, 0x05, 0x17
|
||||
.byte 0x22, 0x08, 0x1b, 0x0a, 0x0f, 0x15, 0x02, 0x11, 0x13, 0x01, 0x21, 0x22, 0x16, 0x39, 0x33, 0x24, 0x38, 0x34, 0x0f, 0x1e, 0x2b, 0x2b, 0x15, 0x15, 0x20, 0x22, 0x2e, 0x3a, 0x3f, 0x31, 0x1a, 0x27
|
||||
.byte 0x2b, 0x29, 0x34, 0x14, 0x16, 0x39, 0x2f, 0x13, 0x3e, 0x16, 0x36, 0x21, 0x30, 0x00, 0x24, 0x2b, 0x24, 0x21, 0x30, 0x15, 0x31, 0x13, 0x10, 0x37, 0x24, 0x08, 0x07, 0x23, 0x21, 0x09, 0x25, 0x05
|
||||
.byte 0x3c, 0x32, 0x19, 0x03, 0x25, 0x0f, 0x29, 0x2b, 0x16, 0x07, 0x13, 0x3e, 0x3d, 0x25, 0x36, 0x0b, 0x28, 0x2e, 0x2b, 0x16, 0x0c, 0x31, 0x11, 0x30, 0x13, 0x2d, 0x26, 0x3e, 0x37, 0x29, 0x2f, 0x2e
|
||||
.byte 0x15, 0x3d, 0x17, 0x1c, 0x2e, 0x21, 0x33, 0x2f, 0x10, 0x0d, 0x05, 0x1d, 0x1c, 0x1a, 0x12, 0x0e, 0x18, 0x37, 0x1b, 0x11, 0x14, 0x06, 0x14, 0x21, 0x31, 0x0e, 0x27, 0x1a, 0x03, 0x10, 0x00, 0x34
|
||||
.byte 0x31, 0x3f, 0x0b, 0x1d, 0x0f, 0x12, 0x1f, 0x1a, 0x15, 0x10, 0x0f, 0x00, 0x24, 0x3e, 0x0a, 0x2a, 0x30, 0x2b, 0x24, 0x26, 0x31, 0x10, 0x2d, 0x2f, 0x2f, 0x3f, 0x0c, 0x13, 0x12, 0x0b, 0x16, 0x15
|
||||
.byte 0x07, 0x1f, 0x28, 0x10, 0x32, 0x0f, 0x17, 0x15, 0x0b, 0x27, 0x33, 0x34, 0x1d, 0x10, 0x1c, 0x3a, 0x12, 0x2c, 0x27, 0x37, 0x0a, 0x1a, 0x32, 0x05, 0x1f, 0x21, 0x24, 0x0d, 0x1f, 0x1c, 0x17, 0x24
|
||||
.byte 0x2f, 0x3b, 0x32, 0x3b, 0x25, 0x10, 0x03, 0x2f, 0x21, 0x0c, 0x10, 0x23, 0x0e, 0x3a, 0x2c, 0x33, 0x03, 0x2c, 0x12, 0x06, 0x1c, 0x2a, 0x37, 0x30, 0x3f, 0x01, 0x1e, 0x35, 0x16, 0x37, 0x2c, 0x32
|
||||
.byte 0x35, 0x05, 0x11, 0x22, 0x29, 0x09, 0x20, 0x2b, 0x0d, 0x1f, 0x18, 0x0d, 0x20, 0x23, 0x39, 0x16, 0x0f, 0x3a, 0x18, 0x21, 0x35, 0x2b, 0x36, 0x26, 0x2b, 0x23, 0x05, 0x2f, 0x1b, 0x08, 0x17, 0x3e
|
||||
.byte 0x09, 0x16, 0x2d, 0x3a, 0x37, 0x15, 0x35, 0x35, 0x29, 0x0a, 0x12, 0x02, 0x39, 0x1f, 0x14, 0x34, 0x33, 0x17, 0x1d, 0x18, 0x16, 0x1d, 0x1a, 0x01, 0x39, 0x22, 0x1e, 0x27, 0x36, 0x32, 0x14, 0x26
|
||||
.byte 0x0a, 0x39, 0x36, 0x1f, 0x0d, 0x1e, 0x0b, 0x0a, 0x19, 0x35, 0x1d, 0x34, 0x03, 0x12, 0x16, 0x0c, 0x13, 0x2e, 0x0c, 0x34, 0x1e, 0x10, 0x14, 0x1e, 0x23, 0x32, 0x27, 0x02, 0x10, 0x29, 0x35, 0x18
|
||||
.byte 0x33, 0x33, 0x1d, 0x1a, 0x3c, 0x15, 0x23, 0x3e, 0x3f, 0x22, 0x2a, 0x02, 0x2c, 0x28, 0x0a, 0x2f, 0x1a, 0x06, 0x35, 0x3c, 0x17, 0x2b, 0x03, 0x12, 0x17, 0x2f, 0x0a, 0x26, 0x12, 0x38, 0x11, 0x36
|
||||
.byte 0x1b, 0x23, 0x01, 0x39, 0x35, 0x19, 0x19, 0x17, 0x09, 0x28, 0x22, 0x1e, 0x27, 0x2c, 0x35, 0x33, 0x2c, 0x27, 0x25, 0x31, 0x06, 0x31, 0x2d, 0x1a, 0x39, 0x28, 0x2d, 0x04, 0x1e, 0x24, 0x3e, 0x1c
|
||||
.byte 0x3c, 0x30, 0x1b, 0x3f, 0x3e, 0x37, 0x22, 0x36, 0x11, 0x00, 0x01, 0x1c, 0x12, 0x1a, 0x10, 0x12, 0x1e, 0x2c, 0x1f, 0x12, 0x2a, 0x2f, 0x06, 0x19, 0x35, 0x1a, 0x18, 0x3b, 0x09, 0x36, 0x34, 0x1d
|
||||
.byte 0x13, 0x02, 0x07, 0x10, 0x20, 0x2f, 0x1d, 0x0b, 0x03, 0x33, 0x1c, 0x16, 0x31, 0x05, 0x13, 0x1b, 0x29, 0x06, 0x13, 0x30, 0x2d, 0x36, 0x2a, 0x2d, 0x2c, 0x19, 0x34, 0x1c, 0x0f, 0x15, 0x12, 0x36
|
||||
.byte 0x15, 0x2c, 0x3a, 0x06, 0x1c, 0x12, 0x1d, 0x26, 0x03, 0x38, 0x1d, 0x01, 0x01, 0x2d, 0x17, 0x2e, 0x10, 0x14, 0x17, 0x1c, 0x34, 0x0f, 0x28, 0x09, 0x37, 0x1b, 0x28, 0x1d, 0x26, 0x29, 0x2d, 0x36
|
||||
.byte 0x1e, 0x17, 0x28, 0x15, 0x0f, 0x1c, 0x20, 0x2d, 0x10, 0x27, 0x16, 0x2e, 0x14, 0x09, 0x12, 0x3b, 0x3d, 0x21, 0x25, 0x1a, 0x2c, 0x00, 0x22, 0x36, 0x0d, 0x30, 0x10, 0x17, 0x19, 0x1b, 0x00, 0x3b
|
||||
.byte 0x21, 0x2a, 0x28, 0x34, 0x2d, 0x0f, 0x16, 0x0a, 0x30, 0x28, 0x06, 0x00, 0x25, 0x31, 0x2e, 0x2a, 0x14, 0x33, 0x28, 0x36, 0x10, 0x2e, 0x05, 0x2e, 0x19, 0x19, 0x1a, 0x15, 0x2c, 0x14, 0x17, 0x37
|
||||
.byte 0x0f, 0x13, 0x32, 0x17, 0x1b, 0x39, 0x18, 0x32, 0x2e, 0x32, 0x1e, 0x24, 0x1d, 0x31, 0x12, 0x1d, 0x2b, 0x14, 0x0c, 0x27, 0x36, 0x2e, 0x32, 0x06, 0x0a, 0x1a, 0x28, 0x28, 0x20, 0x3a, 0x3a, 0x17
|
||||
.byte 0x08, 0x27, 0x36, 0x18, 0x1a, 0x10, 0x1e, 0x26, 0x1b, 0x1f, 0x33, 0x1f, 0x21, 0x17, 0x2f, 0x01, 0x08, 0x20, 0x35, 0x03, 0x19, 0x3b, 0x02, 0x20, 0x02, 0x2d, 0x23, 0x0e, 0x17, 0x32, 0x31, 0x29
|
||||
.byte 0x11, 0x22, 0x17, 0x22, 0x3a, 0x2c, 0x23, 0x34, 0x20, 0x18, 0x00, 0x3a, 0x22, 0x25, 0x33, 0x21, 0x33, 0x04, 0x27, 0x04, 0x18, 0x32, 0x2c, 0x0c, 0x2f, 0x28, 0x14, 0x2c, 0x3f, 0x30, 0x2b, 0x30
|
||||
.byte 0x21, 0x1d, 0x01, 0x25, 0x32, 0x05, 0x23, 0x34, 0x24, 0x10, 0x30, 0x3d, 0x14, 0x1b, 0x3f, 0x38, 0x2f, 0x22, 0x1b, 0x32, 0x25, 0x07, 0x37, 0x0a, 0x0c, 0x1d, 0x03, 0x1e, 0x1a, 0x0f, 0x3c, 0x12
|
||||
.byte 0x11, 0x18, 0x1d, 0x00, 0x35, 0x2f, 0x32, 0x18, 0x14, 0x23, 0x30, 0x1b, 0x11, 0x3d, 0x12, 0x1a, 0x16, 0x35, 0x28, 0x05, 0x24, 0x17, 0x3d, 0x37, 0x2e, 0x09, 0x2e, 0x18, 0x1d, 0x17, 0x20, 0x1f
|
||||
.byte 0x18, 0x23, 0x2c, 0x2f, 0x20, 0x3f, 0x16, 0x3f, 0x29, 0x2e, 0x23, 0x3b, 0x29, 0x18, 0x39, 0x13, 0x1e, 0x32, 0x35, 0x14, 0x1d, 0x2a, 0x35, 0x01, 0x1d, 0x3e, 0x3b, 0x1e, 0x22, 0x1e, 0x16, 0x18
|
||||
.byte 0x22, 0x12, 0x3e, 0x29, 0x33, 0x2f, 0x14, 0x19, 0x3b, 0x07, 0x15, 0x06, 0x3d, 0x29, 0x35, 0x37, 0x23, 0x34, 0x1d, 0x2d, 0x18, 0x12, 0x1b, 0x0b, 0x13, 0x24, 0x13, 0x38, 0x1c, 0x1f, 0x0b, 0x1b
|
||||
.byte 0x13, 0x21, 0x1c, 0x06, 0x39, 0x32, 0x37, 0x3d, 0x26, 0x29, 0x26, 0x15, 0x3c, 0x33, 0x27, 0x00, 0x01, 0x2e, 0x15, 0x18, 0x31, 0x0d, 0x2c, 0x13, 0x27, 0x3b, 0x20, 0x2d, 0x01, 0x26, 0x23, 0x15
|
||||
.byte 0x30, 0x24, 0x00, 0x17, 0x37, 0x3f, 0x33, 0x25, 0x24, 0x31, 0x06, 0x3b, 0x37, 0x03, 0x18, 0x1a, 0x2c, 0x34, 0x14, 0x1d, 0x36, 0x18, 0x3a, 0x04, 0x23, 0x12, 0x26, 0x15, 0x2b, 0x19, 0x1a, 0x29
|
||||
.byte 0x2c, 0x36, 0x01, 0x19, 0x1d, 0x2f, 0x06, 0x2b, 0x0c, 0x12, 0x26, 0x36, 0x32, 0x1d, 0x0d, 0x12, 0x28, 0x03, 0x28, 0x13, 0x29, 0x06, 0x17, 0x03, 0x38, 0x21, 0x30, 0x2c, 0x10, 0x22, 0x00, 0x28
|
||||
.byte 0x24, 0x3b, 0x1c, 0x20, 0x3e, 0x13, 0x02, 0x0c, 0x19, 0x29, 0x2c, 0x1a, 0x39, 0x30, 0x22, 0x2a, 0x1f, 0x22, 0x14, 0x34, 0x2c, 0x14, 0x25, 0x1b, 0x06, 0x3b, 0x15, 0x06, 0x1c, 0x13, 0x15, 0x03
|
||||
.byte 0x18, 0x1e, 0x2a, 0x1b, 0x17, 0x25, 0x2f, 0x1c, 0x29, 0x2e, 0x02, 0x32, 0x1e, 0x1d, 0x28, 0x35, 0x36, 0x03, 0x34, 0x16, 0x3d, 0x2a, 0x12, 0x0d, 0x13, 0x1d, 0x2d, 0x21, 0x32, 0x17, 0x2e, 0x1a
|
||||
.byte 0x15, 0x26, 0x22, 0x2f, 0x15, 0x3c, 0x0e, 0x20, 0x2f, 0x27, 0x13, 0x04, 0x09, 0x32, 0x1e, 0x01, 0x34, 0x06, 0x16, 0x1e, 0x2e, 0x1b, 0x1c, 0x28, 0x13, 0x2a, 0x30, 0x34, 0x12, 0x12, 0x32, 0x18
|
||||
.byte 0x1d, 0x1d, 0x35, 0x07, 0x1c, 0x16, 0x2d, 0x3d, 0x35, 0x1c, 0x1b, 0x24, 0x21, 0x2d, 0x1e, 0x10, 0x09, 0x14, 0x3d, 0x11, 0x12, 0x25, 0x02, 0x26, 0x23, 0x02, 0x19, 0x19, 0x05, 0x14, 0x0b, 0x21
|
||||
.byte 0x1a, 0x09, 0x02, 0x2c, 0x18, 0x28, 0x2d, 0x1e, 0x10, 0x12, 0x2e, 0x18, 0x2e, 0x1f, 0x02, 0x2c, 0x14, 0x17, 0x24, 0x39, 0x08, 0x32, 0x16, 0x14, 0x22, 0x16, 0x28, 0x21, 0x11, 0x10, 0x2c, 0x23
|
||||
.byte 0x36, 0x2b, 0x39, 0x21, 0x26, 0x0e, 0x06, 0x2d, 0x3c, 0x3e, 0x26, 0x2a, 0x1b, 0x1f, 0x00, 0x3c, 0x33, 0x35, 0x3f, 0x14, 0x00, 0x0b, 0x10, 0x34, 0x3c, 0x17, 0x2d, 0x07, 0x1f, 0x24, 0x39, 0x27
|
||||
.byte 0x16, 0x00, 0x1d, 0x33, 0x2b, 0x1e, 0x0f, 0x08, 0x31, 0x3a, 0x09, 0x13, 0x0c, 0x21, 0x1c, 0x2a, 0x17, 0x34, 0x29, 0x27, 0x10, 0x37, 0x1b, 0x18, 0x15, 0x08, 0x2f, 0x1f, 0x16, 0x12, 0x1f, 0x28
|
||||
.byte 0x34, 0x1c, 0x20, 0x22, 0x12, 0x01, 0x12, 0x21, 0x31, 0x10, 0x22, 0x26, 0x1e, 0x01, 0x3d, 0x11, 0x1e, 0x27, 0x25, 0x3d, 0x30, 0x24, 0x1d, 0x11, 0x22, 0x36, 0x30, 0x16, 0x1f, 0x3e, 0x2a, 0x3c
|
||||
.byte 0x27, 0x1b, 0x1f, 0x29, 0x10, 0x1e, 0x05, 0x2a, 0x0a, 0x10, 0x14, 0x1f, 0x00, 0x2e, 0x0b, 0x3b, 0x18, 0x0a, 0x39, 0x30, 0x37, 0x0b, 0x1f, 0x1d, 0x0a, 0x29, 0x3e, 0x1c, 0x33, 0x13, 0x2e, 0x28
|
||||
.byte 0x27, 0x1b, 0x1e, 0x1d, 0x02, 0x1c, 0x01, 0x25, 0x14, 0x3a, 0x10, 0x1c, 0x12, 0x05, 0x2a, 0x30, 0x20, 0x26, 0x2f, 0x2e, 0x2e, 0x03, 0x07, 0x24, 0x36, 0x04, 0x2b, 0x11, 0x25, 0x2d, 0x28, 0x0e
|
||||
.byte 0x2e, 0x0f, 0x1d, 0x15, 0x1c, 0x28, 0x30, 0x1f, 0x23, 0x26, 0x36, 0x12, 0x37, 0x3a, 0x31, 0x10, 0x2c, 0x2c, 0x2f, 0x1a, 0x0d, 0x15, 0x3f, 0x3c, 0x32, 0x35, 0x1c, 0x16, 0x33, 0x16, 0x28, 0x1d
|
||||
.byte 0x3f, 0x21, 0x2c, 0x3e, 0x2b, 0x24, 0x23, 0x2f, 0x32, 0x15, 0x2a, 0x1b, 0x10, 0x35, 0x18, 0x37, 0x10, 0x3b, 0x1e, 0x11, 0x2b, 0x16, 0x24, 0x1d, 0x16, 0x26, 0x3c, 0x2d, 0x11, 0x15, 0x28, 0x28
|
||||
.byte 0x27, 0x27, 0x27, 0x3b, 0x3a, 0x16, 0x1a, 0x0c, 0x1a, 0x15, 0x08, 0x25, 0x0b, 0x10, 0x22, 0x1a, 0x3e, 0x17, 0x28, 0x1f, 0x1e, 0x01, 0x1e, 0x1e, 0x1c, 0x2f, 0x10, 0x25, 0x0b, 0x34, 0x3e, 0x0c
|
||||
.byte 0x1a, 0x1b, 0x10, 0x2a, 0x0f, 0x14, 0x17, 0x0f, 0x3f, 0x17, 0x03, 0x15, 0x1f, 0x02, 0x36, 0x17, 0x15, 0x1d, 0x18, 0x08, 0x36, 0x10, 0x14, 0x0d, 0x2b, 0x0a, 0x05, 0x1d, 0x26, 0x12, 0x1e, 0x3e
|
||||
.byte 0x18, 0x19, 0x36, 0x18, 0x37, 0x17, 0x39, 0x2e, 0x0d, 0x04, 0x19, 0x16, 0x22, 0x15, 0x3e, 0x26, 0x1f, 0x00, 0x06, 0x17, 0x33, 0x22, 0x1d, 0x2b, 0x39, 0x2b, 0x3e, 0x31, 0x1c, 0x22, 0x3f, 0x13
|
||||
.byte 0x30, 0x1c, 0x31, 0x07, 0x2b, 0x14, 0x32, 0x35, 0x1e, 0x02, 0x07, 0x20, 0x0f, 0x3b, 0x11, 0x20, 0x07, 0x12, 0x2a, 0x30, 0x1d, 0x28, 0x38, 0x36, 0x20, 0x01, 0x17, 0x15, 0x20, 0x21, 0x3a, 0x1b
|
||||
.byte 0x1e, 0x38, 0x12, 0x24, 0x03, 0x3e, 0x1f, 0x29, 0x1d, 0x13, 0x20, 0x27, 0x19, 0x12, 0x25, 0x20, 0x32, 0x33, 0x2b, 0x3f, 0x05, 0x31, 0x35, 0x3c, 0x2d, 0x2d, 0x02, 0x2e, 0x10, 0x2a, 0x16, 0x17
|
||||
.byte 0x08, 0x31, 0x17, 0x2e, 0x2b, 0x30, 0x1e, 0x15, 0x31, 0x15, 0x26, 0x08, 0x10, 0x33, 0x15, 0x01, 0x27, 0x12, 0x07, 0x2f, 0x29, 0x27, 0x34, 0x3f, 0x08, 0x31, 0x1c, 0x20, 0x1a, 0x33, 0x0c, 0x13
|
||||
.byte 0x18, 0x31, 0x24, 0x37, 0x2d, 0x2e, 0x21, 0x18, 0x24, 0x3a, 0x27, 0x31, 0x35, 0x3e, 0x30, 0x3a, 0x14, 0x33, 0x0f, 0x1a, 0x2d, 0x30, 0x2e, 0x11, 0x1a, 0x31, 0x1d, 0x17, 0x3c, 0x18, 0x33, 0x31
|
||||
.byte 0x23, 0x1d, 0x39, 0x2d, 0x10, 0x1d, 0x2f, 0x24, 0x15, 0x1c, 0x25, 0x01, 0x2b, 0x22, 0x16, 0x2e, 0x1b, 0x25, 0x35, 0x37, 0x10, 0x26, 0x39, 0x01, 0x36, 0x17, 0x2b, 0x14, 0x09, 0x16, 0x17, 0x20
|
||||
.byte 0x28, 0x23, 0x26, 0x3a, 0x26, 0x27, 0x2a, 0x24, 0x36, 0x02, 0x2c, 0x29, 0x30, 0x35, 0x36, 0x01, 0x1f, 0x28, 0x3b, 0x1d, 0x23, 0x1e, 0x2d, 0x11, 0x1e, 0x2c, 0x2f, 0x32, 0x19, 0x3f, 0x26, 0x31
|
||||
.byte 0x38, 0x1e, 0x17, 0x05, 0x18, 0x2e, 0x00, 0x2e, 0x12, 0x34, 0x3f, 0x34, 0x16, 0x10, 0x29, 0x20, 0x3d, 0x36, 0x2f, 0x16, 0x25, 0x12, 0x17, 0x10, 0x21, 0x37, 0x35, 0x25, 0x37, 0x2d, 0x01, 0x08
|
||||
.byte 0x27, 0x03, 0x1f, 0x29, 0x0d, 0x2a, 0x16, 0x3a, 0x3f, 0x33, 0x2b, 0x19, 0x1d, 0x2a, 0x1f, 0x29, 0x28, 0x2c, 0x10, 0x28, 0x30, 0x10, 0x39, 0x14, 0x1b, 0x00, 0x18, 0x21, 0x28, 0x0c, 0x37, 0x11
|
||||
.byte 0x10, 0x11, 0x3c, 0x33, 0x32, 0x33, 0x36, 0x1a, 0x36, 0x00, 0x1c, 0x31, 0x1b, 0x1d, 0x38, 0x1d, 0x10, 0x3c, 0x39, 0x27, 0x3a, 0x3f, 0x14, 0x19, 0x12, 0x14, 0x0d, 0x1f, 0x18, 0x00, 0x25, 0x18
|
||||
.byte 0x28, 0x1c, 0x32, 0x27, 0x03, 0x1a, 0x26, 0x2d, 0x2a, 0x29, 0x28, 0x27, 0x0a, 0x2a, 0x18, 0x0a, 0x1a, 0x30, 0x20, 0x1a, 0x2e, 0x06, 0x0b, 0x1d, 0x0f, 0x0c, 0x1c, 0x35, 0x28, 0x1c, 0x3d, 0x16
|
||||
.byte 0x23, 0x21, 0x1c, 0x31, 0x14, 0x1c, 0x2e, 0x22, 0x32, 0x35, 0x09, 0x29, 0x30, 0x20, 0x1a, 0x10, 0x31, 0x3f, 0x2c, 0x0a, 0x3d, 0x37, 0x0b, 0x2e, 0x2d, 0x1f, 0x22, 0x31, 0x06, 0x07, 0x29, 0x22
|
||||
.byte 0x17, 0x2d, 0x30, 0x11, 0x18, 0x0c, 0x19, 0x15, 0x07, 0x0a, 0x34, 0x18, 0x29, 0x27, 0x33, 0x0c, 0x30, 0x03, 0x1a, 0x37, 0x06, 0x01, 0x2d, 0x0f, 0x3b, 0x2b, 0x11, 0x1f, 0x37, 0x2b, 0x21, 0x36
|
||||
.byte 0x3f, 0x23, 0x17, 0x17, 0x07, 0x2b, 0x2b, 0x0e, 0x30, 0x11, 0x39, 0x1d, 0x29, 0x03, 0x33, 0x30, 0x03, 0x2f, 0x3c, 0x20, 0x26, 0x03, 0x22, 0x14, 0x3a, 0x28, 0x35, 0x01, 0x28, 0x2b, 0x3e, 0x15
|
||||
.byte 0x18, 0x30, 0x07, 0x17, 0x3b, 0x2c, 0x30, 0x15, 0x07, 0x2c, 0x17, 0x27, 0x1d, 0x3f, 0x1e, 0x33, 0x0d, 0x17, 0x10, 0x15, 0x0e, 0x30, 0x09, 0x05, 0x30, 0x2d, 0x20, 0x15, 0x3c, 0x3d, 0x30, 0x0c
|
||||
.byte 0x17, 0x1c, 0x1a, 0x0d, 0x25, 0x2b, 0x2b, 0x2a, 0x02, 0x16, 0x2d, 0x17, 0x31, 0x17, 0x00, 0x08, 0x13, 0x37, 0x35, 0x21, 0x1e, 0x1c, 0x1f, 0x2b, 0x32, 0x1c, 0x10, 0x2a, 0x16, 0x3a, 0x33, 0x31
|
||||
.byte 0x17, 0x2b, 0x2a, 0x0c, 0x3d, 0x11, 0x28, 0x0a, 0x30, 0x23, 0x0a, 0x26, 0x0a, 0x14, 0x24, 0x0b, 0x0f, 0x30, 0x1b, 0x1e, 0x29, 0x02, 0x35, 0x28, 0x3b, 0x02, 0x14, 0x00, 0x0f, 0x35, 0x1c, 0x3c
|
||||
.byte 0x2e, 0x28, 0x38, 0x19, 0x1b, 0x11, 0x12, 0x09, 0x16, 0x10, 0x2e, 0x0d, 0x20, 0x3d, 0x04, 0x32, 0x16, 0x2c, 0x25, 0x02, 0x3d, 0x18, 0x0b, 0x13, 0x1c, 0x22, 0x2a, 0x1c, 0x20, 0x27, 0x22, 0x05
|
||||
.byte 0x26, 0x22, 0x12, 0x1d, 0x2c, 0x08, 0x05, 0x2e, 0x3f, 0x1c, 0x17, 0x24, 0x0d, 0x33, 0x36, 0x08, 0x24, 0x10, 0x22, 0x29, 0x1c, 0x0a, 0x11, 0x25, 0x0f, 0x10, 0x24, 0x38, 0x2f, 0x25, 0x32, 0x1e
|
||||
.byte 0x06, 0x2a, 0x29, 0x3e, 0x3a, 0x28, 0x34, 0x17, 0x33, 0x18, 0x33, 0x17, 0x07, 0x14, 0x1f, 0x11, 0x17, 0x20, 0x13, 0x0e, 0x14, 0x3b, 0x1c, 0x12, 0x2a, 0x13, 0x37, 0x2a, 0x35, 0x32, 0x30, 0x02
|
||||
.byte 0x25, 0x00, 0x07, 0x1f, 0x0c, 0x04, 0x2c, 0x37, 0x37, 0x30, 0x25, 0x12, 0x25, 0x12, 0x22, 0x21, 0x22, 0x35, 0x33, 0x07, 0x20, 0x2d, 0x27, 0x0e, 0x30, 0x34, 0x19, 0x1a, 0x0a, 0x3c, 0x25, 0x07
|
||||
.byte 0x1d, 0x2b, 0x31, 0x3a, 0x12, 0x1a, 0x3d, 0x37, 0x16, 0x15, 0x16, 0x39, 0x13, 0x15, 0x2d, 0x03, 0x2e, 0x06, 0x39, 0x2c, 0x16, 0x00, 0x13, 0x35, 0x2a, 0x35, 0x24, 0x01, 0x18, 0x24, 0x37, 0x28
|
||||
.byte 0x25, 0x1b, 0x34, 0x25, 0x19, 0x17, 0x27, 0x2f, 0x1b, 0x27, 0x0d, 0x10, 0x36, 0x3c, 0x30, 0x3c, 0x33, 0x23, 0x3e, 0x27, 0x1e, 0x25, 0x2d, 0x29, 0x1f, 0x12, 0x21, 0x37, 0x32, 0x1f, 0x11, 0x21
|
||||
.byte 0x35, 0x30, 0x0c, 0x19, 0x25, 0x3d, 0x26, 0x17, 0x02, 0x1d, 0x14, 0x2e, 0x11, 0x38, 0x13, 0x30, 0x0a, 0x2b, 0x20, 0x1e, 0x10, 0x15, 0x37, 0x30, 0x2e, 0x1e, 0x04, 0x2c, 0x14, 0x34, 0x19, 0x08
|
||||
.byte 0x14, 0x18, 0x0e, 0x1c, 0x30, 0x1a, 0x2e, 0x1b, 0x1f, 0x39, 0x31, 0x0c, 0x1c, 0x28, 0x3e, 0x33, 0x23, 0x0f, 0x13, 0x16, 0x25, 0x39, 0x2f, 0x14, 0x1b, 0x1a, 0x28, 0x3e, 0x21, 0x2d, 0x19, 0x11
|
||||
.byte 0x0c, 0x34, 0x32, 0x39, 0x31, 0x19, 0x1a, 0x08, 0x34, 0x09, 0x2f, 0x11, 0x30, 0x04, 0x1c, 0x02, 0x3b, 0x1b, 0x33, 0x21, 0x33, 0x38, 0x02, 0x1a, 0x31, 0x38, 0x32, 0x1f, 0x1d, 0x16, 0x17, 0x10
|
||||
.byte 0x1b, 0x32, 0x20, 0x17, 0x00, 0x33, 0x12, 0x21, 0x0f, 0x27, 0x14, 0x19, 0x27, 0x24, 0x2c, 0x37, 0x25, 0x05, 0x2f, 0x3d, 0x25, 0x11, 0x12, 0x30, 0x1a, 0x16, 0x03, 0x1a, 0x14, 0x09, 0x13, 0x02
|
||||
.byte 0x23, 0x22, 0x01, 0x3c, 0x10, 0x3f, 0x2d, 0x23, 0x31, 0x3f, 0x23, 0x17, 0x00, 0x33, 0x3f, 0x0f, 0x2f, 0x26, 0x07, 0x15, 0x21, 0x2b, 0x2a, 0x38, 0x39, 0x1e, 0x09, 0x25, 0x2b, 0x3b, 0x30, 0x25
|
||||
.byte 0x12, 0x2d, 0x13, 0x32, 0x19, 0x28, 0x24, 0x1c, 0x2d, 0x35, 0x32, 0x26, 0x0d, 0x23, 0x1e, 0x1d, 0x07, 0x21, 0x0b, 0x34, 0x17, 0x2d, 0x32, 0x32, 0x3a, 0x3c, 0x35, 0x1a, 0x10, 0x33, 0x1a, 0x07
|
||||
.byte 0x22, 0x3b, 0x1b, 0x2a, 0x33, 0x1f, 0x26, 0x0e, 0x35, 0x1a, 0x3b, 0x0a, 0x1c, 0x11, 0x07, 0x11, 0x0d, 0x3c, 0x2d, 0x1e, 0x37, 0x29, 0x11, 0x05, 0x12, 0x15, 0x2f, 0x1c, 0x24, 0x31, 0x16, 0x2b
|
||||
.byte 0x21, 0x1b, 0x23, 0x10, 0x31, 0x02, 0x14, 0x29, 0x26, 0x20, 0x16, 0x10, 0x17, 0x10, 0x0b, 0x0f, 0x33, 0x01, 0x2e, 0x14, 0x21, 0x0e, 0x37, 0x1a, 0x1d, 0x2f, 0x1e, 0x30, 0x24, 0x04, 0x14, 0x2d
|
||||
.byte 0x11, 0x00, 0x30, 0x08, 0x2a, 0x1d, 0x1d, 0x22, 0x21, 0x24, 0x2c, 0x37, 0x24, 0x11, 0x12, 0x04, 0x2e, 0x28, 0x1d, 0x18, 0x23, 0x3c, 0x16, 0x16, 0x10, 0x17, 0x31, 0x20, 0x21, 0x12, 0x33, 0x3e
|
||||
.byte 0x34, 0x06, 0x13, 0x13, 0x17, 0x38, 0x2b, 0x14, 0x0d, 0x15, 0x24, 0x3b, 0x2b, 0x34, 0x3b, 0x1e, 0x18, 0x07, 0x34, 0x37, 0x1d, 0x1f, 0x0b, 0x29, 0x20, 0x12, 0x1e, 0x1d, 0x1a, 0x24, 0x24, 0x3d
|
||||
.byte 0x28, 0x24, 0x0b, 0x12, 0x33, 0x1b, 0x3a, 0x22, 0x14, 0x13, 0x2a, 0x31, 0x38, 0x15, 0x37, 0x2b, 0x2e, 0x19, 0x1e, 0x2c, 0x3f, 0x1b, 0x2a, 0x33, 0x1f, 0x33, 0x3f, 0x15, 0x29, 0x01, 0x1e, 0x18
|
||||
.byte 0x1f, 0x22, 0x19, 0x33, 0x3c, 0x34, 0x1e, 0x12, 0x22, 0x0d, 0x37, 0x2c, 0x0f, 0x08, 0x31, 0x2e, 0x09, 0x36, 0x01, 0x05, 0x1e, 0x1c, 0x04, 0x1e, 0x0c, 0x01, 0x1c, 0x29, 0x28, 0x2f, 0x39, 0x2d
|
||||
.byte 0x14, 0x09, 0x22, 0x36, 0x04, 0x37, 0x37, 0x2d, 0x2f, 0x35, 0x24, 0x23, 0x1b, 0x08, 0x20, 0x32, 0x20, 0x1f, 0x34, 0x02, 0x31, 0x19, 0x18, 0x13, 0x36, 0x06, 0x2b, 0x1e, 0x0e, 0x1b, 0x10, 0x2f
|
||||
.byte 0x0e, 0x1c, 0x11, 0x38, 0x13, 0x01, 0x37, 0x19, 0x14, 0x11, 0x26, 0x31, 0x3d, 0x33, 0x1d, 0x1b, 0x34, 0x25, 0x31, 0x2f, 0x11, 0x0a, 0x2f, 0x39, 0x17, 0x1b, 0x05, 0x0e, 0x13, 0x29, 0x25, 0x22
|
||||
.byte 0x15, 0x0d, 0x20, 0x2b, 0x27, 0x21, 0x3e, 0x24, 0x27, 0x2a, 0x2b, 0x16, 0x24, 0x3d, 0x15, 0x15, 0x30, 0x31, 0x0f, 0x33, 0x24, 0x06, 0x16, 0x13, 0x06, 0x31, 0x10, 0x2e, 0x3f, 0x10, 0x05, 0x0d
|
||||
.byte 0x2f, 0x3c, 0x1f, 0x19, 0x12, 0x13, 0x24, 0x0f, 0x33, 0x36, 0x15, 0x3b, 0x33, 0x03, 0x0f, 0x2a, 0x3b, 0x3c, 0x2c, 0x36, 0x09, 0x29, 0x11, 0x3b, 0x27, 0x28, 0x2b, 0x31, 0x1a, 0x0e, 0x2f, 0x39
|
||||
.byte 0x2c, 0x31, 0x0e, 0x3c, 0x35, 0x2c, 0x24, 0x33, 0x3d, 0x11, 0x2b, 0x07, 0x3c, 0x37, 0x14, 0x18, 0x13, 0x1d, 0x3f, 0x2e, 0x30, 0x12, 0x25, 0x26, 0x1d, 0x11, 0x07, 0x11, 0x1e, 0x34, 0x01, 0x11
|
||||
.byte 0x0b, 0x39, 0x21, 0x29, 0x02, 0x29, 0x15, 0x10, 0x1a, 0x30, 0x1f, 0x35, 0x3c, 0x2b, 0x2a, 0x30, 0x3b, 0x36, 0x20, 0x1a, 0x23, 0x32, 0x24, 0x2b, 0x15, 0x20, 0x1c, 0x25, 0x3d, 0x36, 0x2d, 0x14
|
||||
.byte 0x31, 0x18, 0x23, 0x17, 0x18, 0x05, 0x13, 0x34, 0x30, 0x37, 0x0e, 0x39, 0x23, 0x1d, 0x1f, 0x17, 0x01, 0x15, 0x2f, 0x0b, 0x3e, 0x1b, 0x0d, 0x19, 0x2e, 0x31, 0x38, 0x1c, 0x15, 0x34, 0x15, 0x13
|
||||
.byte 0x19, 0x29, 0x19, 0x14, 0x27, 0x15, 0x18, 0x23, 0x29, 0x0c, 0x27, 0x2d, 0x0e, 0x17, 0x34, 0x18, 0x10, 0x3b, 0x1e, 0x29, 0x34, 0x2c, 0x22, 0x31, 0x08, 0x13, 0x1d, 0x18, 0x1a, 0x1c, 0x0b, 0x2a
|
||||
.byte 0x19, 0x1e, 0x1a, 0x23, 0x27, 0x17, 0x3b, 0x0e, 0x37, 0x19, 0x2b, 0x16, 0x2f, 0x08, 0x21, 0x37, 0x02, 0x20, 0x0b, 0x32, 0x30, 0x16, 0x05, 0x30, 0x13, 0x05, 0x1a, 0x07, 0x39, 0x19, 0x0c, 0x3b
|
||||
.byte 0x2a, 0x15, 0x05, 0x30, 0x30, 0x05, 0x19, 0x13, 0x00, 0x12, 0x27, 0x16, 0x2a, 0x0f, 0x28, 0x27, 0x0c, 0x23, 0x2f, 0x39, 0x28, 0x2a, 0x24, 0x25, 0x1f, 0x18, 0x29, 0x14, 0x16, 0x05, 0x1a, 0x35
|
||||
.byte 0x2f, 0x26, 0x0a, 0x3a, 0x29, 0x34, 0x2c, 0x36, 0x2e, 0x3a, 0x15, 0x1a, 0x0a, 0x2d, 0x16, 0x14, 0x2e, 0x35, 0x28, 0x2a, 0x35, 0x0f, 0x11, 0x11, 0x32, 0x19, 0x20, 0x1a, 0x28, 0x17, 0x1a, 0x28
|
||||
.byte 0x16, 0x33, 0x25, 0x13, 0x2c, 0x29, 0x09, 0x16, 0x33, 0x1d, 0x27, 0x26, 0x15, 0x0c, 0x2f, 0x22, 0x1c, 0x19, 0x29, 0x33, 0x10, 0x2d, 0x11, 0x1b, 0x16, 0x19, 0x2e, 0x0d, 0x0c, 0x28, 0x37, 0x3a
|
||||
.byte 0x34, 0x2a, 0x1d, 0x37, 0x30, 0x0a, 0x36, 0x24, 0x39, 0x1b, 0x39, 0x0a, 0x32, 0x11, 0x03, 0x2d, 0x32, 0x1d, 0x30, 0x38, 0x1e, 0x27, 0x2e, 0x17, 0x18, 0x16, 0x17, 0x2a, 0x36, 0x3b, 0x31, 0x17
|
||||
.byte 0x04, 0x19, 0x3a, 0x25, 0x2d, 0x00, 0x36, 0x27, 0x25, 0x12, 0x33, 0x06, 0x0a, 0x14, 0x11, 0x05, 0x2f, 0x03, 0x35, 0x2f, 0x0b, 0x34, 0x29, 0x00, 0x31, 0x13, 0x27, 0x0f, 0x1c, 0x1d, 0x06, 0x2d
|
||||
.byte 0x1c, 0x30, 0x27, 0x2f, 0x2a, 0x27, 0x16, 0x20, 0x31, 0x33, 0x2b, 0x2b, 0x05, 0x30, 0x36, 0x29, 0x23, 0x35, 0x10, 0x16, 0x2f, 0x2d, 0x20, 0x29, 0x37, 0x13, 0x24, 0x2d, 0x0e, 0x25, 0x08, 0x0a
|
||||
.byte 0x18, 0x0f, 0x03, 0x1b, 0x31, 0x0c, 0x37, 0x1e, 0x34, 0x31, 0x1b, 0x0e, 0x25, 0x1a, 0x07, 0x34, 0x0d, 0x3c, 0x33, 0x00, 0x3a, 0x36, 0x04, 0x27, 0x12, 0x23, 0x18, 0x24, 0x0d, 0x0b, 0x18, 0x31
|
||||
.byte 0x32, 0x37, 0x00, 0x0d, 0x21, 0x32, 0x10, 0x12, 0x26, 0x0d, 0x19, 0x29, 0x24, 0x2b, 0x3d, 0x21, 0x1f, 0x1e, 0x1b, 0x28, 0x0d, 0x12, 0x28, 0x35, 0x1e, 0x23, 0x0a, 0x2e, 0x22, 0x27, 0x27, 0x35
|
||||
.byte 0x01, 0x0e, 0x20, 0x31, 0x39, 0x29, 0x3b, 0x24, 0x36, 0x14, 0x10, 0x33, 0x18, 0x2c, 0x26, 0x04, 0x2d, 0x15, 0x1a, 0x11, 0x37, 0x0f, 0x0b, 0x14, 0x0e, 0x2c, 0x2c, 0x21, 0x17, 0x2c, 0x16, 0x21
|
||||
.byte 0x35, 0x3e, 0x10, 0x10, 0x0a, 0x05, 0x1e, 0x3b, 0x09, 0x13, 0x26, 0x18, 0x1e, 0x23, 0x0c, 0x1a, 0x33, 0x37, 0x1f, 0x09, 0x12, 0x35, 0x3d, 0x0d, 0x15, 0x36, 0x06, 0x24, 0x33, 0x30, 0x29, 0x3b
|
||||
.byte 0x0f, 0x28, 0x34, 0x2a, 0x2c, 0x02, 0x12, 0x35, 0x09, 0x22, 0x31, 0x3b, 0x31, 0x1c, 0x33, 0x22, 0x27, 0x3d, 0x34, 0x15, 0x14, 0x22, 0x28, 0x28, 0x10, 0x1e, 0x21, 0x31, 0x10, 0x2d, 0x16, 0x21
|
||||
.byte 0x1e, 0x05, 0x33, 0x0f, 0x30, 0x31, 0x0e, 0x1a, 0x35, 0x38, 0x2e, 0x28, 0x26, 0x37, 0x1e, 0x2b, 0x13, 0x33, 0x1f, 0x1e, 0x37, 0x0a, 0x28, 0x24, 0x32, 0x1c, 0x1a, 0x1f, 0x3f, 0x19, 0x39, 0x39
|
||||
.byte 0x29, 0x2c, 0x1b, 0x14, 0x15, 0x2a, 0x17, 0x32, 0x0f, 0x21, 0x30, 0x21, 0x18, 0x23, 0x2a, 0x27, 0x3d, 0x07, 0x10, 0x0b, 0x3f, 0x2f, 0x31, 0x02, 0x2e, 0x08, 0x39, 0x2f, 0x3f, 0x20, 0x18, 0x2d
|
||||
.byte 0x34, 0x11, 0x2e, 0x34, 0x10, 0x26, 0x12, 0x23, 0x25, 0x0a, 0x37, 0x34, 0x09, 0x25, 0x0a, 0x3e, 0x16, 0x1a, 0x17, 0x11, 0x38, 0x1c, 0x20, 0x11, 0x21, 0x26, 0x05, 0x0f, 0x18, 0x26, 0x2b, 0x32
|
||||
.byte 0x0a, 0x0c, 0x16, 0x03, 0x29, 0x1d, 0x29, 0x3b, 0x23, 0x16, 0x1b, 0x29, 0x07, 0x09, 0x17, 0x17, 0x2c, 0x1c, 0x35, 0x33, 0x30, 0x17, 0x12, 0x1e, 0x3d, 0x1a, 0x2b, 0x21, 0x1d, 0x10, 0x0a, 0x08
|
||||
.byte 0x17, 0x14, 0x3c, 0x36, 0x28, 0x36, 0x36, 0x3b, 0x20, 0x1b, 0x13, 0x22, 0x1d, 0x13, 0x3a, 0x15, 0x02, 0x23, 0x2c, 0x3e, 0x19, 0x14, 0x39, 0x3c, 0x1a, 0x10, 0x08, 0x1e, 0x0a, 0x13, 0x29, 0x3f
|
||||
.byte 0x38, 0x2c, 0x07, 0x23, 0x1f, 0x19, 0x2a, 0x24, 0x14, 0x3c, 0x1f, 0x0d, 0x04, 0x37, 0x1a, 0x2f, 0x28, 0x2a, 0x1d, 0x1e, 0x11, 0x37, 0x29, 0x28, 0x27, 0x12, 0x0d, 0x00, 0x26, 0x0a, 0x3c, 0x26
|
||||
.byte 0x1f, 0x1c, 0x33, 0x04, 0x3a, 0x2c, 0x24, 0x3d, 0x2b, 0x26, 0x31, 0x2f, 0x13, 0x1c, 0x21, 0x3e, 0x12, 0x23, 0x36, 0x0a, 0x1a, 0x2d, 0x1e, 0x19, 0x05, 0x1f, 0x1b, 0x1e, 0x0a, 0x1f, 0x20, 0x08
|
||||
.byte 0x24, 0x2c, 0x0c, 0x33, 0x1d, 0x1f, 0x11, 0x0e, 0x12, 0x10, 0x27, 0x12, 0x19, 0x2a, 0x13, 0x31, 0x1c, 0x04, 0x30, 0x1a, 0x38, 0x1f, 0x2c, 0x35, 0x25, 0x07, 0x0b, 0x33, 0x2d, 0x02, 0x1a, 0x2a
|
||||
.byte 0x35, 0x35, 0x16, 0x2f, 0x14, 0x11, 0x31, 0x33, 0x2c, 0x31, 0x1e, 0x3c, 0x3a, 0x27, 0x3c, 0x2b, 0x12, 0x27, 0x1d, 0x12, 0x36, 0x2c, 0x2b, 0x25, 0x3b, 0x35, 0x12, 0x3d, 0x27, 0x13, 0x23, 0x19
|
||||
.byte 0x33, 0x2c, 0x26, 0x09, 0x3c, 0x12, 0x15, 0x1a, 0x23, 0x21, 0x07, 0x1a, 0x22, 0x25, 0x20, 0x19, 0x1b, 0x2c, 0x3a, 0x19, 0x35, 0x05, 0x26, 0x1d, 0x23, 0x22, 0x25, 0x0e, 0x1e, 0x11, 0x13, 0x30
|
||||
.byte 0x12, 0x2c, 0x22, 0x25, 0x0a, 0x1d, 0x18, 0x23, 0x3e, 0x1d, 0x02, 0x28, 0x25, 0x21, 0x0e, 0x20, 0x21, 0x22, 0x37, 0x18, 0x33, 0x27, 0x23, 0x23, 0x31, 0x24, 0x1a, 0x1a, 0x3e, 0x25, 0x24, 0x24
|
||||
.byte 0x01, 0x18, 0x34, 0x10, 0x22, 0x07, 0x00, 0x37, 0x06, 0x20, 0x20, 0x3a, 0x02, 0x2b, 0x07, 0x2c, 0x2c, 0x09, 0x2f, 0x2a, 0x01, 0x32, 0x2c, 0x00, 0x35, 0x13, 0x2b, 0x3c, 0x1f, 0x36, 0x37, 0x1e
|
||||
.byte 0x20, 0x35, 0x1d, 0x0c, 0x07, 0x33, 0x16, 0x08, 0x12, 0x3f, 0x36, 0x11, 0x0b, 0x1f, 0x2d, 0x21, 0x20, 0x33, 0x17, 0x1a, 0x2e, 0x16, 0x01, 0x2f, 0x2f, 0x1c, 0x34, 0x29, 0x31, 0x2e, 0x3b, 0x38
|
||||
.byte 0x31, 0x0d, 0x16, 0x12, 0x07, 0x29, 0x24, 0x33, 0x3c, 0x34, 0x3e, 0x1e, 0x18, 0x30, 0x02, 0x34, 0x2a, 0x34, 0x1b, 0x2e, 0x23, 0x18, 0x34, 0x00, 0x1f, 0x20, 0x0e, 0x28, 0x15, 0x33, 0x37, 0x27
|
||||
.byte 0x35, 0x23, 0x37, 0x3e, 0x11, 0x32, 0x2e, 0x36, 0x3a, 0x02, 0x2b, 0x00, 0x36, 0x1d, 0x13, 0x29, 0x16, 0x08, 0x2b, 0x37, 0x08, 0x02, 0x27, 0x32, 0x2d, 0x34, 0x30, 0x36, 0x29, 0x2e, 0x10, 0x12
|
||||
.byte 0x3c, 0x2e, 0x2a, 0x04, 0x33, 0x30, 0x3f, 0x01, 0x22, 0x37, 0x14, 0x1d, 0x27, 0x00, 0x2f, 0x0c, 0x39, 0x26, 0x27, 0x04, 0x21, 0x19, 0x08, 0x1d, 0x01, 0x04, 0x1e, 0x27, 0x1b, 0x2b, 0x31, 0x17
|
||||
.byte 0x1f, 0x07, 0x01, 0x2d, 0x2e, 0x3b, 0x1f, 0x34, 0x24, 0x31, 0x32, 0x2b, 0x24, 0x0e, 0x07, 0x1e, 0x0f, 0x33, 0x10, 0x16, 0x21, 0x32, 0x39, 0x02, 0x1a, 0x33, 0x3d, 0x22, 0x0c, 0x25, 0x1a, 0x29
|
||||
.byte 0x29, 0x28, 0x3a, 0x32, 0x26, 0x0b, 0x13, 0x22, 0x1f, 0x0f, 0x1c, 0x04, 0x2c, 0x20, 0x39, 0x1a, 0x1b, 0x1a, 0x2a, 0x1f, 0x24, 0x13, 0x1a, 0x31, 0x3b, 0x33, 0x39, 0x23, 0x28, 0x31, 0x07, 0x31
|
||||
.byte 0x1f, 0x10, 0x20, 0x29, 0x17, 0x32, 0x26, 0x3b, 0x2d, 0x02, 0x3c, 0x1c, 0x0e, 0x00, 0x20, 0x14, 0x3e, 0x37, 0x01, 0x0f, 0x2d, 0x06, 0x12, 0x27, 0x30, 0x13, 0x19, 0x00, 0x33, 0x2a, 0x0c, 0x07
|
||||
.byte 0x27, 0x11, 0x3a, 0x1c, 0x15, 0x0a, 0x13, 0x1f, 0x0d, 0x2a, 0x37, 0x07, 0x2a, 0x34, 0x35, 0x34, 0x28, 0x16, 0x27, 0x06, 0x02, 0x36, 0x09, 0x23, 0x30, 0x14, 0x02, 0x28, 0x39, 0x32, 0x34, 0x24
|
||||
.byte 0x35, 0x12, 0x12, 0x22, 0x26, 0x09, 0x07, 0x33, 0x0f, 0x3e, 0x1e, 0x00, 0x3c, 0x33, 0x10, 0x37, 0x14, 0x3a, 0x03, 0x25, 0x2d, 0x1e, 0x24, 0x36, 0x36, 0x26, 0x1f, 0x3c, 0x1a, 0x37, 0x33, 0x25
|
||||
.byte 0x23, 0x13, 0x1f, 0x33, 0x0d, 0x13, 0x25, 0x30, 0x1e, 0x17, 0x03, 0x18, 0x18, 0x18, 0x14, 0x30, 0x07, 0x22, 0x3e, 0x33, 0x21, 0x14, 0x37, 0x16, 0x16, 0x00, 0x12, 0x2c, 0x12, 0x2f, 0x25, 0x3f
|
||||
.byte 0x1e, 0x24, 0x19, 0x16, 0x16, 0x0f, 0x35, 0x2d, 0x10, 0x11, 0x24, 0x2a, 0x28, 0x19, 0x25, 0x2e, 0x0c, 0x16, 0x1f, 0x38, 0x21, 0x36, 0x3d, 0x1a, 0x2f, 0x3b, 0x32, 0x12, 0x36, 0x13, 0x29, 0x0e
|
||||
.byte 0x30, 0x31, 0x19, 0x07, 0x2f, 0x25, 0x23, 0x28, 0x20, 0x08, 0x29, 0x2a, 0x00, 0x30, 0x30, 0x38, 0x23, 0x1e, 0x0f, 0x1f, 0x3b, 0x1b, 0x30, 0x3a, 0x37, 0x2f, 0x39, 0x37, 0x35, 0x39, 0x2d, 0x2f
|
||||
.byte 0x1f, 0x2e, 0x1e, 0x1a, 0x2b, 0x1e, 0x14, 0x17, 0x20, 0x2f, 0x03, 0x11, 0x1d, 0x00, 0x30, 0x17, 0x2b, 0x1d, 0x35, 0x28, 0x25, 0x3b, 0x0f, 0x11, 0x09, 0x04, 0x2e, 0x23, 0x11, 0x1e, 0x13, 0x37
|
||||
.byte 0x1e, 0x37, 0x37, 0x1e, 0x07, 0x01, 0x32, 0x14, 0x06, 0x32, 0x11, 0x0c, 0x2e, 0x36, 0x2e, 0x24, 0x15, 0x2a, 0x1c, 0x22, 0x15, 0x34, 0x2c, 0x1e, 0x35, 0x22, 0x27, 0x33, 0x19, 0x3f, 0x2d, 0x21
|
||||
.byte 0x33, 0x15, 0x26, 0x1a, 0x11, 0x16, 0x3e, 0x12, 0x2b, 0x24, 0x15, 0x3c, 0x0f, 0x2d, 0x31, 0x15, 0x36, 0x3f, 0x24, 0x1d, 0x25, 0x01, 0x37, 0x33, 0x16, 0x1a, 0x1f, 0x0e, 0x10, 0x2f, 0x0b, 0x12
|
||||
.byte 0x2a, 0x1a, 0x25, 0x17, 0x0a, 0x35, 0x09, 0x28, 0x35, 0x02, 0x13, 0x36, 0x34, 0x2f, 0x17, 0x03, 0x04, 0x31, 0x3e, 0x26, 0x11, 0x35, 0x33, 0x31, 0x22, 0x17, 0x23, 0x1d, 0x05, 0x2b, 0x2e, 0x27
|
||||
.byte 0x20, 0x03, 0x2b, 0x1d, 0x01, 0x19, 0x1e, 0x0e, 0x05, 0x18, 0x16, 0x25, 0x17, 0x02, 0x28, 0x18, 0x19, 0x0b, 0x24, 0x3e, 0x35, 0x16, 0x2e, 0x29, 0x25, 0x3e, 0x38, 0x1e, 0x3a, 0x2f, 0x12, 0x14
|
||||
.byte 0x17, 0x2d, 0x11, 0x12, 0x30, 0x15, 0x31, 0x18, 0x08, 0x0b, 0x29, 0x2d, 0x00, 0x33, 0x2c, 0x06, 0x1a, 0x14, 0x1c, 0x2e, 0x04, 0x08, 0x12, 0x1b, 0x2b, 0x2d, 0x2a, 0x37, 0x33, 0x10, 0x27, 0x2c
|
||||
.byte 0x1d, 0x0e, 0x34, 0x20, 0x02, 0x12, 0x1e, 0x1a, 0x2e, 0x07, 0x0b, 0x10, 0x36, 0x1e, 0x33, 0x2b, 0x28, 0x1b, 0x31, 0x25, 0x1f, 0x38, 0x3a, 0x2f, 0x39, 0x30, 0x2f, 0x12, 0x09, 0x14, 0x0e, 0x08
|
||||
.byte 0x19, 0x00, 0x0d, 0x2c, 0x1b, 0x0e, 0x34, 0x11, 0x25, 0x15, 0x0c, 0x2d, 0x26, 0x36, 0x2c, 0x16, 0x31, 0x31, 0x2c, 0x03, 0x1a, 0x16, 0x1c, 0x32, 0x14, 0x0a, 0x3e, 0x36, 0x33, 0x1b, 0x27, 0x1f
|
||||
.byte 0x32, 0x18, 0x33, 0x26, 0x33, 0x1a, 0x13, 0x1a, 0x0f, 0x34, 0x1c, 0x35, 0x2c, 0x2f, 0x38, 0x03, 0x18, 0x15, 0x0f, 0x27, 0x31, 0x29, 0x20, 0x28, 0x0e, 0x28, 0x31, 0x2c, 0x2e, 0x15, 0x19, 0x1b
|
||||
.byte 0x10, 0x03, 0x2f, 0x2e, 0x2a, 0x32, 0x2a, 0x27, 0x1b, 0x36, 0x04, 0x1e, 0x3b, 0x04, 0x21, 0x07, 0x2f, 0x19, 0x27, 0x1d, 0x1d, 0x3c, 0x3d, 0x2e, 0x25, 0x08, 0x32, 0x3b, 0x34, 0x2a, 0x0c, 0x10
|
||||
.byte 0x13, 0x25, 0x35, 0x1a, 0x2f, 0x19, 0x28, 0x17, 0x00, 0x2b, 0x0a, 0x1c, 0x17, 0x0a, 0x11, 0x1b, 0x35, 0x13, 0x37, 0x29, 0x1c, 0x28, 0x0c, 0x31, 0x35, 0x3c, 0x10, 0x1a, 0x1b, 0x3a, 0x2d, 0x3a
|
||||
.byte 0x1c, 0x18, 0x22, 0x10, 0x2d, 0x1c, 0x3c, 0x12, 0x17, 0x18, 0x2a, 0x0b, 0x2b, 0x2f, 0x2d, 0x04, 0x2e, 0x3c, 0x13, 0x23, 0x01, 0x1c, 0x2e, 0x14, 0x16, 0x22, 0x0c, 0x24, 0x13, 0x35, 0x37, 0x34
|
||||
.byte 0x1b, 0x30, 0x1e, 0x3a, 0x1c, 0x20, 0x06, 0x06, 0x36, 0x09, 0x15, 0x1a, 0x1b, 0x1a, 0x27, 0x0f, 0x33, 0x35, 0x37, 0x06, 0x23, 0x3a, 0x12, 0x1d, 0x00, 0x16, 0x29, 0x0e, 0x1d, 0x35, 0x3f, 0x38
|
||||
.byte 0x16, 0x2a, 0x3c, 0x34, 0x13, 0x32, 0x10, 0x17, 0x2c, 0x37, 0x29, 0x2a, 0x1e, 0x35, 0x2f, 0x2d, 0x3c, 0x2a, 0x11, 0x28, 0x13, 0x21, 0x19, 0x1e, 0x34, 0x0c, 0x06, 0x2d, 0x09, 0x04, 0x1c, 0x1d
|
||||
.byte 0x2f, 0x26, 0x39, 0x07, 0x16, 0x14, 0x04, 0x2d, 0x3a, 0x2f, 0x2e, 0x29, 0x15, 0x35, 0x24, 0x02, 0x36, 0x3f, 0x02, 0x1a, 0x0f, 0x18, 0x24, 0x16, 0x1d, 0x19, 0x14, 0x16, 0x10, 0x29, 0x1b, 0x13
|
||||
.byte 0x15, 0x0e, 0x19, 0x3a, 0x2e, 0x2b, 0x08, 0x30, 0x15, 0x35, 0x16, 0x30, 0x2e, 0x18, 0x35, 0x3b, 0x0b, 0x1c, 0x3a, 0x18, 0x13, 0x29, 0x13, 0x1e, 0x20, 0x13, 0x27, 0x04, 0x1d, 0x34, 0x00, 0x38
|
||||
.byte 0x19, 0x08, 0x39, 0x32, 0x20, 0x10, 0x26, 0x08, 0x02, 0x28, 0x3f, 0x0f, 0x16, 0x30, 0x1f, 0x19, 0x20, 0x2d, 0x10, 0x38, 0x17, 0x1c, 0x18, 0x31, 0x27, 0x33, 0x38, 0x30, 0x16, 0x33, 0x23, 0x00
|
||||
.byte 0x01, 0x36, 0x0d, 0x02, 0x23, 0x39, 0x04, 0x1f, 0x0e, 0x30, 0x24, 0x06, 0x01, 0x2c, 0x34, 0x33, 0x35, 0x16, 0x34, 0x2e, 0x32, 0x16, 0x24, 0x26, 0x39, 0x34, 0x1f, 0x3c, 0x1d, 0x28, 0x1d, 0x37
|
||||
.byte 0x17, 0x15, 0x2b, 0x27, 0x39, 0x30, 0x0b, 0x1b, 0x18, 0x35, 0x20, 0x2d, 0x0b, 0x35, 0x1c, 0x03, 0x0e, 0x21, 0x06, 0x0c, 0x20, 0x02, 0x18, 0x34, 0x1e, 0x36, 0x2d, 0x16, 0x0c, 0x19, 0x25, 0x09
|
||||
.byte 0x2c, 0x37, 0x05, 0x2e, 0x2e, 0x2b, 0x2c, 0x24, 0x1a, 0x14, 0x27, 0x04, 0x10, 0x32, 0x38, 0x33, 0x37, 0x15, 0x35, 0x11, 0x3f, 0x1d, 0x23, 0x23, 0x1f, 0x29, 0x3f, 0x1d, 0x1a, 0x3c, 0x2b, 0x1b
|
||||
.byte 0x2c, 0x2c, 0x38, 0x3b, 0x36, 0x04, 0x13, 0x33, 0x2c, 0x14, 0x12, 0x1a, 0x09, 0x1b, 0x36, 0x11, 0x24, 0x3a, 0x3f, 0x11, 0x01, 0x0e, 0x2b, 0x3b, 0x03, 0x2a, 0x08, 0x0d, 0x2b, 0x2b, 0x13, 0x27
|
||||
.byte 0x3a, 0x3c, 0x1c, 0x3a, 0x15, 0x2a, 0x24, 0x00, 0x17, 0x3e, 0x0a, 0x15, 0x0c, 0x29, 0x2d, 0x1f, 0x15, 0x30, 0x35, 0x18, 0x19, 0x3d, 0x37, 0x37, 0x12, 0x38, 0x1b, 0x3b, 0x02, 0x20, 0x08, 0x21
|
||||
.byte 0x19, 0x2e, 0x36, 0x1d, 0x15, 0x3d, 0x24, 0x22, 0x0c, 0x27, 0x36, 0x3f, 0x33, 0x33, 0x12, 0x11, 0x1a, 0x19, 0x1f, 0x2b, 0x24, 0x12, 0x11, 0x2a, 0x18, 0x25, 0x32, 0x2a, 0x2c, 0x1a, 0x12, 0x26
|
||||
.byte 0x06, 0x10, 0x11, 0x29, 0x33, 0x2c, 0x09, 0x14, 0x2b, 0x12, 0x2b, 0x1d, 0x03, 0x24, 0x00, 0x12, 0x15, 0x22, 0x3d, 0x26, 0x15, 0x37, 0x1a, 0x0f, 0x12, 0x37, 0x24, 0x01, 0x18, 0x2a, 0x17, 0x13
|
||||
.byte 0x14, 0x3b, 0x29, 0x2a, 0x19, 0x32, 0x2d, 0x17, 0x17, 0x0b, 0x2c, 0x33, 0x07, 0x2d, 0x34, 0x07, 0x38, 0x1d, 0x1f, 0x36, 0x22, 0x11, 0x0a, 0x17, 0x14, 0x11, 0x13, 0x2a, 0x17, 0x25, 0x01, 0x3a
|
||||
.byte 0x1c, 0x26, 0x27, 0x30, 0x2d, 0x3b, 0x35, 0x3a, 0x30, 0x34, 0x06, 0x3a, 0x1c, 0x2d, 0x05, 0x13, 0x21, 0x32, 0x12, 0x3e, 0x1e, 0x2c, 0x3a, 0x3f, 0x2d, 0x20, 0x2a, 0x34, 0x26, 0x03, 0x1a, 0x19
|
||||
.byte 0x27, 0x2e, 0x31, 0x04, 0x26, 0x2a, 0x3f, 0x30, 0x25, 0x23, 0x2a, 0x08, 0x08, 0x35, 0x2c, 0x30, 0x1e, 0x08, 0x05, 0x18, 0x06, 0x09, 0x2d, 0x19, 0x00, 0x27, 0x0d, 0x10, 0x19, 0x1c, 0x00, 0x13
|
||||
.byte 0x3d, 0x0b, 0x24, 0x2e, 0x1f, 0x16, 0x3d, 0x18, 0x34, 0x12, 0x1e, 0x15, 0x15, 0x39, 0x25, 0x33, 0x0f, 0x17, 0x1a, 0x1c, 0x1b, 0x37, 0x29, 0x1b, 0x3b, 0x38, 0x12, 0x1d, 0x22, 0x34, 0x26, 0x0a
|
||||
.byte 0x31, 0x16, 0x2d, 0x13, 0x0d, 0x20, 0x27, 0x24, 0x1d, 0x16, 0x2e, 0x2b, 0x18, 0x16, 0x2a, 0x1b, 0x24, 0x17, 0x36, 0x02, 0x05, 0x2b, 0x37, 0x1a, 0x17, 0x11, 0x3d, 0x2c, 0x1e, 0x2f, 0x22, 0x2c
|
||||
.byte 0x29, 0x1a, 0x2f, 0x04, 0x25, 0x36, 0x0c, 0x35, 0x30, 0x3e, 0x12, 0x11, 0x30, 0x37, 0x12, 0x21, 0x2e, 0x21, 0x30, 0x17, 0x2c, 0x3d, 0x24, 0x11, 0x23, 0x14, 0x1a, 0x32, 0x17, 0x39, 0x27, 0x18
|
||||
.byte 0x0f, 0x24, 0x19, 0x00, 0x3d, 0x37, 0x2c, 0x3c, 0x1c, 0x0b, 0x39, 0x23, 0x0e, 0x04, 0x1f, 0x1c, 0x31, 0x14, 0x00, 0x04, 0x15, 0x26, 0x2a, 0x2a, 0x20, 0x25, 0x2a, 0x0b, 0x3c, 0x33, 0x11, 0x0b
|
||||
.byte 0x2e, 0x37, 0x22, 0x2e, 0x0e, 0x22, 0x26, 0x18, 0x2d, 0x27, 0x06, 0x0c, 0x1c, 0x26, 0x18, 0x2f, 0x3a, 0x01, 0x2a, 0x2f, 0x31, 0x34, 0x1f, 0x34, 0x1a, 0x31, 0x05, 0x10, 0x2e, 0x17, 0x34, 0x18
|
||||
.byte 0x22, 0x23, 0x23, 0x21, 0x32, 0x07, 0x08, 0x22, 0x26, 0x1c, 0x22, 0x31, 0x12, 0x2f, 0x08, 0x1f, 0x10, 0x27, 0x15, 0x2a, 0x1f, 0x0b, 0x26, 0x2f, 0x14, 0x35, 0x24, 0x1f, 0x26, 0x3b, 0x23, 0x33
|
||||
.byte 0x20, 0x3e, 0x2d, 0x17, 0x0c, 0x15, 0x13, 0x39, 0x1a, 0x30, 0x14, 0x25, 0x09, 0x07, 0x17, 0x38, 0x38, 0x1f, 0x29, 0x24, 0x27, 0x17, 0x27, 0x28, 0x1b, 0x12, 0x2a, 0x2b, 0x3d, 0x2d, 0x19, 0x34
|
||||
.byte 0x1c, 0x01, 0x1d, 0x10, 0x08, 0x39, 0x11, 0x0e, 0x36, 0x1b, 0x26, 0x13, 0x10, 0x16, 0x28, 0x1e, 0x3c, 0x28, 0x17, 0x3e, 0x39, 0x34, 0x0a, 0x03, 0x2e, 0x37, 0x1a, 0x13, 0x2b, 0x33, 0x26, 0x13
|
||||
.byte 0x2c, 0x21, 0x25, 0x14, 0x10, 0x16, 0x0b, 0x35, 0x1d, 0x35, 0x33, 0x21, 0x08, 0x33, 0x28, 0x21, 0x1a, 0x12, 0x0c, 0x1b, 0x36, 0x2a, 0x19, 0x2c, 0x2b, 0x23, 0x01, 0x0f, 0x26, 0x17, 0x0c, 0x18
|
||||
.byte 0x09, 0x0f, 0x11, 0x2b, 0x24, 0x1c, 0x09, 0x09, 0x15, 0x36, 0x08, 0x13, 0x20, 0x39, 0x21, 0x00, 0x3a, 0x1f, 0x2b, 0x36, 0x31, 0x02, 0x37, 0x13, 0x04, 0x34, 0x35, 0x37, 0x3d, 0x1a, 0x17, 0x3d
|
||||
.byte 0x13, 0x2b, 0x36, 0x2f, 0x13, 0x1e, 0x13, 0x3e, 0x11, 0x33, 0x27, 0x3a, 0x2d, 0x1e, 0x31, 0x1a, 0x03, 0x03, 0x2d, 0x25, 0x37, 0x1f, 0x11, 0x01, 0x22, 0x1c, 0x12, 0x17, 0x30, 0x3a, 0x30, 0x17
|
||||
.byte 0x1d, 0x29, 0x0e, 0x13, 0x27, 0x1a, 0x2e, 0x24, 0x2d, 0x00, 0x1c, 0x17, 0x28, 0x1d, 0x09, 0x1f, 0x2e, 0x1a, 0x2d, 0x26, 0x0a, 0x13, 0x32, 0x3e, 0x00, 0x27, 0x0b, 0x3b, 0x30, 0x08, 0x3a, 0x2d
|
||||
.byte 0x22, 0x12, 0x1e, 0x34, 0x1d, 0x2b, 0x26, 0x22, 0x35, 0x17, 0x2c, 0x17, 0x29, 0x13, 0x2d, 0x2d, 0x10, 0x10, 0x20, 0x31, 0x23, 0x1e, 0x33, 0x18, 0x33, 0x06, 0x2d, 0x26, 0x14, 0x27, 0x22, 0x1d
|
||||
.byte 0x2a, 0x2d, 0x06, 0x18, 0x07, 0x09, 0x2e, 0x21, 0x15, 0x2e, 0x21, 0x38, 0x23, 0x35, 0x0b, 0x34, 0x24, 0x0b, 0x22, 0x1e, 0x01, 0x17, 0x0b, 0x24, 0x11, 0x17, 0x07, 0x20, 0x14, 0x25, 0x32, 0x1a
|
||||
.byte 0x0e, 0x2f, 0x35, 0x17, 0x1f, 0x0c, 0x08, 0x21, 0x30, 0x35, 0x1f, 0x0c, 0x0b, 0x20, 0x04, 0x10, 0x11, 0x35, 0x11, 0x1e, 0x33, 0x3d, 0x16, 0x1e, 0x2b, 0x1d, 0x1a, 0x19, 0x10, 0x04, 0x06, 0x22
|
||||
.byte 0x03, 0x3d, 0x24, 0x2a, 0x0e, 0x35, 0x03, 0x3e, 0x17, 0x0b, 0x18, 0x36, 0x3d, 0x0d, 0x26, 0x35, 0x12, 0x20, 0x1f, 0x0d, 0x16, 0x23, 0x32, 0x1a, 0x00, 0x3d, 0x26, 0x30, 0x19, 0x36, 0x12, 0x0e
|
||||
.byte 0x23, 0x01, 0x23, 0x28, 0x3b, 0x31, 0x11, 0x2d, 0x1c, 0x36, 0x2a, 0x05, 0x16, 0x14, 0x0e, 0x30, 0x3a, 0x37, 0x19, 0x1f, 0x30, 0x25, 0x10, 0x26, 0x2f, 0x22, 0x11, 0x1f, 0x2e, 0x2b, 0x1e, 0x16
|
||||
.byte 0x16, 0x21, 0x32, 0x18, 0x35, 0x23, 0x32, 0x1a, 0x3d, 0x0d, 0x19, 0x39, 0x09, 0x23, 0x30, 0x2e, 0x24, 0x1e, 0x0f, 0x24, 0x09, 0x21, 0x31, 0x05, 0x03, 0x11, 0x05, 0x22, 0x2a, 0x03, 0x07, 0x37
|
||||
.byte 0x04, 0x08, 0x13, 0x05, 0x10, 0x34, 0x37, 0x14, 0x29, 0x0a, 0x24, 0x32, 0x34, 0x1e, 0x1b, 0x12, 0x17, 0x2e, 0x01, 0x02, 0x13, 0x0a, 0x0c, 0x11, 0x02, 0x14, 0x13, 0x0d, 0x25, 0x23, 0x00, 0x07
|
||||
.byte 0x1a, 0x1c, 0x28, 0x35, 0x08, 0x0e, 0x2c, 0x1b, 0x3c, 0x15, 0x1c, 0x19, 0x1d, 0x32, 0x13, 0x1a, 0x1c, 0x00, 0x37, 0x22, 0x1b, 0x35, 0x39, 0x3e, 0x14, 0x32, 0x06, 0x31, 0x17, 0x05, 0x2b, 0x01
|
||||
.byte 0x0f, 0x20, 0x1e, 0x0f, 0x34, 0x18, 0x03, 0x1f, 0x2b, 0x00, 0x14, 0x15, 0x3a, 0x30, 0x25, 0x30, 0x21, 0x0b, 0x00, 0x37, 0x24, 0x37, 0x1d, 0x29, 0x21, 0x16, 0x24, 0x0f, 0x2c, 0x3e, 0x15, 0x36
|
||||
.byte 0x3c, 0x2d, 0x23, 0x3d, 0x3c, 0x17, 0x1a, 0x1c, 0x13, 0x0a, 0x29, 0x22, 0x25, 0x3f, 0x26, 0x3b, 0x39, 0x2f, 0x1d, 0x08, 0x16, 0x0b, 0x19, 0x14, 0x12, 0x01, 0x2c, 0x35, 0x11, 0x2a, 0x02, 0x00
|
||||
.byte 0x13, 0x39, 0x2a, 0x35, 0x07, 0x1a, 0x11, 0x24, 0x0e, 0x1e, 0x0e, 0x2c, 0x15, 0x08, 0x31, 0x1b, 0x21, 0x1d, 0x26, 0x1d, 0x1c, 0x2a, 0x1d, 0x24, 0x13, 0x01, 0x00, 0x18, 0x28, 0x2a, 0x37, 0x15
|
||||
.byte 0x0f, 0x13, 0x10, 0x32, 0x36, 0x22, 0x13, 0x31, 0x13, 0x05, 0x1e, 0x17, 0x35, 0x35, 0x3b, 0x0e, 0x24, 0x35, 0x3a, 0x1d, 0x1b, 0x36, 0x1b, 0x03, 0x1d, 0x24, 0x0f, 0x16, 0x30, 0x2d, 0x09, 0x25
|
||||
.byte 0x05, 0x21, 0x13, 0x0a, 0x27, 0x36, 0x04, 0x0d, 0x1c, 0x06, 0x3e, 0x21, 0x2a, 0x27, 0x33, 0x28, 0x0e, 0x15, 0x0b, 0x17, 0x1d, 0x1d, 0x32, 0x2d, 0x08, 0x3d, 0x29, 0x21, 0x32, 0x17, 0x33, 0x31
|
||||
.byte 0x22, 0x0e, 0x03, 0x21, 0x0d, 0x0b, 0x16, 0x3e, 0x2a, 0x2e, 0x19, 0x36, 0x2a, 0x0d, 0x00, 0x14, 0x22, 0x07, 0x36, 0x0a, 0x09, 0x15, 0x14, 0x10, 0x22, 0x07, 0x16, 0x2c, 0x36, 0x13, 0x15, 0x09
|
||||
.byte 0x2f, 0x1b, 0x20, 0x3b, 0x2e, 0x3a, 0x3a, 0x16, 0x0d, 0x15, 0x2a, 0x39, 0x13, 0x2b, 0x0b, 0x01, 0x2a, 0x13, 0x17, 0x1e, 0x08, 0x17, 0x1e, 0x0c, 0x0f, 0x34, 0x1f, 0x31, 0x12, 0x07, 0x3a, 0x1d
|
||||
.byte 0x35, 0x1e, 0x12, 0x24, 0x2c, 0x15, 0x0e, 0x21, 0x19, 0x34, 0x3b, 0x33, 0x19, 0x0f, 0x28, 0x10, 0x2f, 0x2e, 0x23, 0x27, 0x31, 0x39, 0x2e, 0x18, 0x3c, 0x3f, 0x24, 0x07, 0x23, 0x30, 0x28, 0x13
|
||||
.byte 0x35, 0x13, 0x0a, 0x10, 0x35, 0x19, 0x33, 0x23, 0x28, 0x29, 0x13, 0x2f, 0x1a, 0x3a, 0x19, 0x14, 0x37, 0x36, 0x26, 0x20, 0x3b, 0x15, 0x37, 0x39, 0x10, 0x3c, 0x21, 0x34, 0x1c, 0x38, 0x30, 0x15
|
||||
.byte 0x07, 0x26, 0x27, 0x21, 0x19, 0x18, 0x11, 0x23, 0x30, 0x28, 0x37, 0x32, 0x2d, 0x1f, 0x2c, 0x3f, 0x30, 0x1d, 0x2f, 0x26, 0x01, 0x11, 0x1c, 0x3b, 0x0f, 0x12, 0x2a, 0x17, 0x27, 0x05, 0x00, 0x1b
|
||||
.byte 0x25, 0x1c, 0x32, 0x04, 0x22, 0x2d, 0x10, 0x0f, 0x25, 0x0d, 0x39, 0x30, 0x0b, 0x2e, 0x27, 0x2d, 0x34, 0x15, 0x3e, 0x30, 0x36, 0x16, 0x26, 0x2a, 0x05, 0x3f, 0x2b, 0x20, 0x3b, 0x2e, 0x3b, 0x1c
|
||||
.byte 0x2f, 0x01, 0x18, 0x16, 0x16, 0x3d, 0x10, 0x0a, 0x1f, 0x18, 0x17, 0x0f, 0x22, 0x06, 0x13, 0x11, 0x38, 0x21, 0x17, 0x17, 0x0a, 0x37, 0x1c, 0x19, 0x30, 0x16, 0x38, 0x31, 0x30, 0x10, 0x36, 0x31
|
||||
.byte 0x2f, 0x26, 0x3c, 0x1b, 0x23, 0x33, 0x2f, 0x19, 0x16, 0x35, 0x25, 0x3a, 0x18, 0x1f, 0x37, 0x01, 0x1e, 0x0d, 0x18, 0x12, 0x1f, 0x1c, 0x1b, 0x07, 0x34, 0x2d, 0x0b, 0x3f, 0x33, 0x1e, 0x34, 0x1d
|
||||
.byte 0x2c, 0x13, 0x2c, 0x20, 0x20, 0x13, 0x20, 0x0f, 0x31, 0x08, 0x0f, 0x24, 0x18, 0x3d, 0x1c, 0x36, 0x34, 0x27, 0x33, 0x2a, 0x25, 0x2d, 0x30, 0x26, 0x3d, 0x37, 0x26, 0x25, 0x11, 0x11, 0x03, 0x05
|
||||
.byte 0x18, 0x10, 0x04, 0x29, 0x07, 0x2e, 0x36, 0x2a, 0x29, 0x15, 0x3a, 0x0e, 0x33, 0x2a, 0x06, 0x29, 0x3d, 0x01, 0x29, 0x27, 0x0e, 0x16, 0x1d, 0x28, 0x1b, 0x10, 0x33, 0x2b, 0x0c, 0x14, 0x1d, 0x15
|
||||
.byte 0x3f, 0x25, 0x37, 0x23, 0x1e, 0x04, 0x2c, 0x1c, 0x15, 0x34, 0x2a, 0x09, 0x2f, 0x15, 0x02, 0x3f, 0x14, 0x19, 0x2c, 0x33, 0x39, 0x32, 0x20, 0x2a, 0x18, 0x32, 0x17, 0x23, 0x21, 0x0b, 0x2d, 0x25
|
||||
.byte 0x24, 0x3a, 0x2d, 0x31, 0x3f, 0x34, 0x18, 0x19, 0x24, 0x1e, 0x15, 0x1a, 0x17, 0x33, 0x2b, 0x23, 0x09, 0x26, 0x1b, 0x0d, 0x15, 0x36, 0x26, 0x28, 0x3a, 0x1c, 0x14, 0x0c, 0x3e, 0x10, 0x18, 0x06
|
||||
.byte 0x35, 0x37, 0x26, 0x36, 0x21, 0x26, 0x17, 0x3d, 0x1c, 0x2c, 0x16, 0x25, 0x1d, 0x1e, 0x0b, 0x1e, 0x1d, 0x0d, 0x32, 0x08, 0x1f, 0x1b, 0x12, 0x1c, 0x12, 0x20, 0x2a, 0x28, 0x06, 0x3b, 0x35, 0x39
|
||||
.byte 0x0e, 0x1e, 0x31, 0x30, 0x28, 0x02, 0x21, 0x14, 0x06, 0x1e, 0x29, 0x16, 0x09, 0x1c, 0x27, 0x32, 0x2d, 0x39, 0x03, 0x27, 0x29, 0x09, 0x1e, 0x1b, 0x11, 0x1c, 0x28, 0x3a, 0x2c, 0x03, 0x03, 0x18
|
||||
.byte 0x23, 0x09, 0x2f, 0x30, 0x17, 0x23, 0x0f, 0x25, 0x33, 0x06, 0x24, 0x37, 0x22, 0x09, 0x33, 0x2c, 0x09, 0x2a, 0x0c, 0x12, 0x2a, 0x28, 0x20, 0x10, 0x15, 0x29, 0x33, 0x0f, 0x1a, 0x13, 0x13, 0x18
|
||||
.byte 0x36, 0x2e, 0x16, 0x13, 0x3c, 0x1a, 0x15, 0x3a, 0x11, 0x32, 0x02, 0x0a, 0x2c, 0x19, 0x39, 0x11, 0x31, 0x3e, 0x1d, 0x32, 0x14, 0x32, 0x12, 0x2e, 0x34, 0x3e, 0x36, 0x23, 0x37, 0x3e, 0x15, 0x15
|
||||
.byte 0x35, 0x34, 0x01, 0x3a, 0x2c, 0x26, 0x25, 0x22, 0x01, 0x2b, 0x37, 0x1c, 0x3d, 0x33, 0x3e, 0x10, 0x1c, 0x26, 0x33, 0x19, 0x05, 0x19, 0x17, 0x12, 0x38, 0x1c, 0x15, 0x3c, 0x32, 0x3f, 0x0f, 0x37
|
||||
.byte 0x02, 0x39, 0x32, 0x13, 0x00, 0x1d, 0x1d, 0x2c, 0x10, 0x39, 0x13, 0x31, 0x0f, 0x37, 0x19, 0x09, 0x0d, 0x2a, 0x20, 0x2f, 0x32, 0x3b, 0x34, 0x22, 0x26, 0x14, 0x10, 0x24, 0x3d, 0x22, 0x0b, 0x31
|
||||
.byte 0x23, 0x2f, 0x2d, 0x2a, 0x30, 0x04, 0x35, 0x19, 0x20, 0x2a, 0x16, 0x36, 0x37, 0x14, 0x28, 0x37, 0x11, 0x0b, 0x27, 0x1d, 0x06, 0x29, 0x35, 0x16, 0x2e, 0x24, 0x2e, 0x29, 0x36, 0x14, 0x2a, 0x21
|
||||
.byte 0x0c, 0x1f, 0x3f, 0x39, 0x19, 0x27, 0x10, 0x2a, 0x1e, 0x12, 0x34, 0x10, 0x24, 0x34, 0x1d, 0x13, 0x1d, 0x17, 0x16, 0x37, 0x27, 0x1b, 0x27, 0x07, 0x24, 0x21, 0x37, 0x21, 0x11, 0x37, 0x28, 0x24
|
||||
.byte 0x19, 0x02, 0x1c, 0x14, 0x12, 0x1d, 0x1b, 0x24, 0x2e, 0x2e, 0x3a, 0x15, 0x37, 0x34, 0x21, 0x33, 0x2d, 0x29, 0x2f, 0x1e, 0x34, 0x29, 0x3c, 0x12, 0x05, 0x15, 0x20, 0x05, 0x3e, 0x19, 0x18, 0x0b
|
||||
.byte 0x30, 0x2f, 0x02, 0x27, 0x14, 0x1c, 0x34, 0x12, 0x20, 0x30, 0x2b, 0x22, 0x1b, 0x06, 0x31, 0x28, 0x15, 0x2d, 0x12, 0x01, 0x0e, 0x13, 0x13, 0x0c, 0x28, 0x07, 0x2a, 0x14, 0x1d, 0x36, 0x14, 0x15
|
||||
.byte 0x2b, 0x26, 0x03, 0x25, 0x15, 0x3e, 0x3b, 0x20, 0x35, 0x0c, 0x25, 0x2b, 0x16, 0x35, 0x1e, 0x31, 0x2c, 0x06, 0x03, 0x29, 0x24, 0x07, 0x1f, 0x32, 0x2f, 0x19, 0x25, 0x21, 0x31, 0x22, 0x26, 0x1d
|
||||
.byte 0x00, 0x1b, 0x18, 0x2a, 0x24, 0x31, 0x20, 0x06, 0x2f, 0x1e, 0x32, 0x26, 0x32, 0x39, 0x12, 0x20, 0x01, 0x19, 0x0f, 0x15, 0x15, 0x27, 0x10, 0x2e, 0x09, 0x25, 0x19, 0x29, 0x37, 0x30, 0x13, 0x1c
|
||||
.byte 0x1d, 0x29, 0x2d, 0x26, 0x02, 0x1a, 0x16, 0x1d, 0x2b, 0x1c, 0x18, 0x04, 0x34, 0x28, 0x2a, 0x21, 0x15, 0x1b, 0x2e, 0x16, 0x01, 0x10, 0x05, 0x09, 0x14, 0x22, 0x03, 0x22, 0x02, 0x1b, 0x34, 0x29
|
||||
.byte 0x2a, 0x23, 0x26, 0x36, 0x13, 0x23, 0x3d, 0x1a, 0x1d, 0x10, 0x24, 0x25, 0x2b, 0x37, 0x19, 0x24, 0x26, 0x28, 0x13, 0x16, 0x17, 0x14, 0x19, 0x0b, 0x2f, 0x25, 0x37, 0x34, 0x37, 0x39, 0x21, 0x1b
|
||||
.byte 0x0f, 0x3d, 0x2d, 0x0d, 0x10, 0x20, 0x05, 0x0b, 0x2d, 0x01, 0x12, 0x24, 0x18, 0x3d, 0x32, 0x09, 0x21, 0x26, 0x1a, 0x0e, 0x1f, 0x30, 0x06, 0x1f, 0x0b, 0x3c, 0x29, 0x07, 0x3e, 0x27, 0x13, 0x1e
|
||||
.byte 0x1a, 0x13, 0x07, 0x23, 0x10, 0x34, 0x1e, 0x32, 0x17, 0x23, 0x35, 0x16, 0x31, 0x32, 0x2e, 0x1b, 0x28, 0x0e, 0x22, 0x14, 0x3a, 0x23, 0x22, 0x03, 0x29, 0x2a, 0x10, 0x20, 0x3e, 0x3c, 0x27, 0x16
|
||||
.byte 0x20, 0x12, 0x3f, 0x24, 0x31, 0x0d, 0x2e, 0x32, 0x2f, 0x17, 0x2d, 0x36, 0x3b, 0x17, 0x24, 0x23, 0x18, 0x37, 0x1d, 0x13, 0x17, 0x3a, 0x1a, 0x0a, 0x3d, 0x1e, 0x05, 0x12, 0x16, 0x33, 0x32, 0x25
|
||||
.byte 0x1d, 0x1f, 0x29, 0x34, 0x2c, 0x26, 0x20, 0x29, 0x35, 0x0e, 0x32, 0x17, 0x01, 0x39, 0x2d, 0x27, 0x24, 0x23, 0x28, 0x3f, 0x18, 0x39, 0x38, 0x25, 0x23, 0x11, 0x11, 0x19, 0x2c, 0x29, 0x30, 0x08
|
||||
.byte 0x28, 0x25, 0x27, 0x1d, 0x17, 0x25, 0x21, 0x09, 0x3d, 0x16, 0x1b, 0x0f, 0x2c, 0x1b, 0x12, 0x22, 0x28, 0x3e, 0x26, 0x34, 0x10, 0x1b, 0x02, 0x34, 0x15, 0x1a, 0x29, 0x19, 0x29, 0x11, 0x31, 0x12
|
||||
.byte 0x27, 0x17, 0x27, 0x27, 0x2f, 0x34, 0x27, 0x24, 0x03, 0x19, 0x36, 0x17, 0x1d, 0x33, 0x19, 0x25, 0x1a, 0x2b, 0x39, 0x13, 0x3b, 0x33, 0x1d, 0x27, 0x31, 0x34, 0x28, 0x33, 0x37, 0x09, 0x30, 0x1b
|
||||
.byte 0x03, 0x3a, 0x27, 0x19, 0x11, 0x1f, 0x0b, 0x1a, 0x34, 0x3d, 0x2a, 0x15, 0x04, 0x24, 0x36, 0x30, 0x23, 0x30, 0x0f, 0x22, 0x1b, 0x3d, 0x3d, 0x24, 0x29, 0x1d, 0x12, 0x16, 0x19, 0x2e, 0x03, 0x12
|
||||
.byte 0x17, 0x18, 0x25, 0x33, 0x2f, 0x23, 0x1a, 0x1a, 0x35, 0x27, 0x21, 0x26, 0x19, 0x1b, 0x30, 0x18, 0x2b, 0x22, 0x2d, 0x2c, 0x1a, 0x34, 0x3e, 0x12, 0x19, 0x28, 0x27, 0x15, 0x1b, 0x11, 0x12, 0x17
|
||||
.byte 0x15, 0x10, 0x34, 0x37, 0x25, 0x12, 0x3f, 0x15, 0x31, 0x0d, 0x37, 0x3e, 0x2a, 0x2d, 0x0f, 0x24, 0x24, 0x3c, 0x3f, 0x1f, 0x1d, 0x34, 0x17, 0x1a, 0x23, 0x1f, 0x37, 0x0f, 0x10, 0x32, 0x34, 0x35
|
||||
.byte 0x19, 0x05, 0x22, 0x33, 0x16, 0x34, 0x1e, 0x14, 0x1e, 0x08, 0x13, 0x29, 0x3a, 0x37, 0x30, 0x1d, 0x36, 0x15, 0x29, 0x2e, 0x1d, 0x32, 0x2e, 0x23, 0x35, 0x17, 0x1c, 0x36, 0x1d, 0x13, 0x23, 0x34
|
||||
.byte 0x34, 0x24, 0x1a, 0x37, 0x2f, 0x26, 0x2e, 0x1e, 0x17, 0x1a, 0x1f, 0x15, 0x1f, 0x2b, 0x1f, 0x19, 0x0a, 0x33, 0x1a, 0x35, 0x31, 0x24, 0x2d, 0x17, 0x2c, 0x0c, 0x21, 0x36, 0x2c, 0x35, 0x35, 0x1b
|
||||
.byte 0x03, 0x27, 0x01, 0x0d, 0x1d, 0x1c, 0x0e, 0x11, 0x11, 0x2b, 0x10, 0x25, 0x3b, 0x20, 0x1f, 0x17, 0x19, 0x20, 0x08, 0x36, 0x13, 0x38, 0x19, 0x1b, 0x2b, 0x24, 0x0b, 0x1f, 0x29, 0x27, 0x15, 0x2c
|
||||
.byte 0x37, 0x39, 0x10, 0x3a, 0x15, 0x2e, 0x2f, 0x11, 0x36, 0x24, 0x04, 0x20, 0x3b, 0x2a, 0x35, 0x27, 0x35, 0x34, 0x0d, 0x1b, 0x20, 0x10, 0x22, 0x37, 0x1f, 0x38, 0x27, 0x31, 0x0f, 0x28, 0x28, 0x25
|
||||
.byte 0x15, 0x00, 0x1d, 0x25, 0x31, 0x28, 0x28, 0x0b, 0x3a, 0x1d, 0x2d, 0x13, 0x1b, 0x03, 0x37, 0x2e, 0x1d, 0x28, 0x19, 0x08, 0x2d, 0x22, 0x27, 0x39, 0x32, 0x3f, 0x2f, 0x1d, 0x33, 0x34, 0x28, 0x18
|
||||
.byte 0x08, 0x31, 0x23, 0x1f, 0x13, 0x0d, 0x2c, 0x23, 0x3a, 0x2d, 0x1a, 0x02, 0x25, 0x13, 0x20, 0x36, 0x34, 0x12, 0x2b, 0x2d, 0x35, 0x35, 0x34, 0x23, 0x20, 0x21, 0x3a, 0x19, 0x1b, 0x1f, 0x2b, 0x19
|
||||
.byte 0x35, 0x0e, 0x19, 0x26, 0x24, 0x37, 0x18, 0x08, 0x10, 0x0c, 0x16, 0x2d, 0x1f, 0x34, 0x21, 0x05, 0x38, 0x19, 0x14, 0x21, 0x24, 0x11, 0x31, 0x14, 0x3e, 0x38, 0x29, 0x3f, 0x08, 0x25, 0x2a, 0x1f
|
||||
.byte 0x25, 0x25, 0x06, 0x28, 0x0b, 0x1e, 0x14, 0x1a, 0x38, 0x22, 0x24, 0x18, 0x29, 0x1a, 0x11, 0x20, 0x3b, 0x3a, 0x1e, 0x1c, 0x26, 0x1a, 0x05, 0x32, 0x19, 0x39, 0x2a, 0x31, 0x09, 0x07, 0x25, 0x05
|
||||
.byte 0x3e, 0x16, 0x34, 0x26, 0x14, 0x1b, 0x32, 0x26, 0x05, 0x08, 0x37, 0x0f, 0x03, 0x20, 0x2a, 0x39, 0x31, 0x08, 0x01, 0x1e, 0x1d, 0x23, 0x31, 0x28, 0x1b, 0x28, 0x1e, 0x37, 0x14, 0x13, 0x0e, 0x28
|
||||
.byte 0x2a, 0x3b, 0x37, 0x2f, 0x1c, 0x28, 0x30, 0x30, 0x1a, 0x36, 0x1f, 0x16, 0x3e, 0x0d, 0x15, 0x2e, 0x16, 0x18, 0x15, 0x37, 0x20, 0x2a, 0x33, 0x30, 0x2b, 0x0e, 0x25, 0x18, 0x20, 0x16, 0x02, 0x19
|
||||
.byte 0x25, 0x0a, 0x2e, 0x30, 0x16, 0x03, 0x11, 0x04, 0x27, 0x25, 0x1b, 0x1c, 0x21, 0x29, 0x04, 0x27, 0x3d, 0x20, 0x1e, 0x28, 0x33, 0x31, 0x1e, 0x39, 0x10, 0x31, 0x29, 0x1e, 0x06, 0x25, 0x28, 0x19
|
||||
.byte 0x3b, 0x12, 0x0b, 0x1b, 0x1c, 0x3e, 0x37, 0x20, 0x0a, 0x37, 0x33, 0x02, 0x2c, 0x25, 0x15, 0x18, 0x14, 0x3b, 0x20, 0x1c, 0x22, 0x3b, 0x1c, 0x24, 0x34, 0x35, 0x0f, 0x2f, 0x31, 0x3b, 0x17, 0x35
|
||||
.byte 0x30, 0x39, 0x37, 0x0d, 0x15, 0x11, 0x10, 0x03, 0x1e, 0x1a, 0x39, 0x33, 0x2f, 0x2e, 0x28, 0x1c, 0x28, 0x36, 0x28, 0x18, 0x1f, 0x15, 0x01, 0x30, 0x3e, 0x32, 0x28, 0x34, 0x2f, 0x23, 0x07, 0x0c
|
||||
.byte 0x36, 0x28, 0x2c, 0x34, 0x2a, 0x0c, 0x1f, 0x3f, 0x20, 0x13, 0x2b, 0x17, 0x27, 0x28, 0x29, 0x2a, 0x3c, 0x13, 0x36, 0x26, 0x2d, 0x2a, 0x0a, 0x06, 0x1e, 0x20, 0x04, 0x1a, 0x02, 0x07, 0x35, 0x0e
|
||||
.byte 0x18, 0x30, 0x00, 0x34, 0x34, 0x2f, 0x14, 0x37, 0x21, 0x30, 0x1f, 0x15, 0x37, 0x1b, 0x3a, 0x0b, 0x32, 0x22, 0x22, 0x21, 0x1b, 0x35, 0x23, 0x0d, 0x03, 0x1c, 0x23, 0x3b, 0x13, 0x0e, 0x1d, 0x1f
|
||||
.byte 0x1d, 0x3f, 0x2e, 0x39, 0x27, 0x2e, 0x0f, 0x38, 0x20, 0x31, 0x3c, 0x35, 0x0b, 0x0f, 0x2e, 0x06, 0x06, 0x28, 0x25, 0x39, 0x23, 0x0a, 0x32, 0x15, 0x0f, 0x1d, 0x25, 0x0c, 0x0d, 0x34, 0x12, 0x2e
|
||||
.byte 0x21, 0x36, 0x18, 0x1f, 0x1f, 0x34, 0x1b, 0x05, 0x3a, 0x36, 0x2b, 0x01, 0x17, 0x0e, 0x16, 0x2b, 0x0e, 0x0b, 0x26, 0x0d, 0x2d, 0x10, 0x21, 0x11, 0x27, 0x3d, 0x13, 0x32, 0x15, 0x25, 0x2a, 0x1b
|
||||
.byte 0x2d, 0x35, 0x2c, 0x2b, 0x26, 0x26, 0x1f, 0x20, 0x22, 0x2b, 0x12, 0x3f, 0x3d, 0x27, 0x30, 0x0a, 0x36, 0x35, 0x1f, 0x17, 0x21, 0x08, 0x29, 0x1d, 0x20, 0x33, 0x34, 0x11, 0x16, 0x05, 0x38, 0x2d
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user