From 42119b9e1b1113cc578363a8b7bf9eee60cc2a4d Mon Sep 17 00:00:00 2001 From: xenonnsmb Date: Sun, 3 Dec 2017 19:42:55 -0600 Subject: [PATCH 01/54] Create build_tools.sh --- build_tools.sh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 build_tools.sh diff --git a/build_tools.sh b/build_tools.sh new file mode 100644 index 0000000000..26f1f35b30 --- /dev/null +++ b/build_tools.sh @@ -0,0 +1,8 @@ +#!/bin/sh +make -C tools/gbagfx +make -C tools/scaninc +make -C tools/preproc +make -C tools/bin2c +make -C tools/rsfont +make -C tools/aif2pcm +make -C tools/ramscrgen From eeaa59d8376045ddf008276e6c13c860f23eedaa Mon Sep 17 00:00:00 2001 From: xenonnsmb Date: Sun, 3 Dec 2017 19:45:03 -0600 Subject: [PATCH 02/54] Add install info from pokeruby repo. --- INSTALL.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 64c35d5edd..75adc2ea11 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -2,12 +2,27 @@ First, you must put a Pokémon Emerald (US) ROM in the root directory of the rep # Linux -TBD +Install [**devkitARM**](http://devkitpro.org/wiki/Getting_Started/devkitARM). + +Make sure that there is an environment variable called DEVKITARM with the path of the directory before the "bin" directory containing "arm-none-eabi-as", "arm-none-eabi-cpp", "arm-none-eabi-ld" and "arm-none-eabi-objcopy". + +Then get the compiler from https://github.com/pret/agbcc and run the following commands. + + build.sh + install.sh PATH_OF_POKEEMERALD_DIRECTORY + +Then in the pokeemerald directory, build the tools. + + build_tools.sh + +Finally, build the rom. + + make # Windows Install [**devkitARM**](http://devkitpro.org/wiki/Getting_Started/devkitARM). -Then get the compiled tools from https://github.com/YamaArashi/pokeruby-tools. Copy the "tools" folder over the "tools" folder in your pokeemerald directory. +Then get the compiled tools from https://github.com/pret/pokeruby-tools. Copy the `tools/` folder over the `tools/` folder in your pokeemerald directory. -You can then build pokeemerald using "make" in the MSYS environment provided with devkitARM. +You can then build pokeemerald using `make` in the MSYS environment provided with devkitARM. From 077089f0e5bd90701fe7ba080e6b25bc67848aed Mon Sep 17 00:00:00 2001 From: EternalCode Date: Sun, 3 Dec 2017 20:46:56 -0500 Subject: [PATCH 03/54] fldeff_teleport file completed --- asm/fldeff_teleport.s | 84 ------------------------------------------- ld_script.txt | 2 +- src/fldeff_teleport.c | 54 ++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 85 deletions(-) delete mode 100644 asm/fldeff_teleport.s create mode 100644 src/fldeff_teleport.c diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s deleted file mode 100644 index 17bab14963..0000000000 --- a/asm/fldeff_teleport.s +++ /dev/null @@ -1,84 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start SetUpFieldMove_Teleport -SetUpFieldMove_Teleport: @ 817C8BC - push {lr} - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0817C8D8 - movs r0, 0 - b _0817C8E6 - .pool -_0817C8D8: - ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 - str r0, [r1] - ldr r1, =gUnknown_0203CEEC - ldr r0, =hm_teleport_run_dp02scr - str r0, [r1] - movs r0, 0x1 -_0817C8E6: - pop {r1} - bx r1 - .pool - thumb_func_end SetUpFieldMove_Teleport - - thumb_func_start hm_teleport_run_dp02scr -hm_teleport_run_dp02scr: @ 817C8FC - push {lr} - bl sub_808469C - movs r0, 0x3F - bl FieldEffectStart - bl GetCursorSelectionMonId - ldr r1, =gFieldEffectArguments - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end hm_teleport_run_dp02scr - - thumb_func_start FldEff_UseTeleport -FldEff_UseTeleport: @ 817C91C - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, =sub_817C94C - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end FldEff_UseTeleport - - thumb_func_start sub_817C94C -sub_817C94C: @ 817C94C - push {lr} - movs r0, 0x3F - bl FieldEffectActiveListRemove - bl sub_80B7FC8 - pop {r0} - bx r0 - thumb_func_end sub_817C94C - - .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index e71b63e6c8..a3c4b498e6 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -226,7 +226,7 @@ SECTIONS { asm/intro_credits_graphics.o(.text); src/evolution_graphics.o(.text); src/bard_music.o(.text); - asm/fldeff_teleport.o(.text); + src/fldeff_teleport.o(.text); asm/battle_link_817C95C.o(.text); asm/pokemon_animation.o(.text); src/recorded_battle.o(.text); diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c new file mode 100644 index 0000000000..3ca72d787c --- /dev/null +++ b/src/fldeff_teleport.c @@ -0,0 +1,54 @@ +#include "global.h" +#include "field_effect.h" +#include "task.h" + +extern bool8 is_light_level_1_2_3_or_6(u8 mapType); +extern void* hm_add_c3_launch_phase_2(void); +extern void hm_teleport_run_dp02scr(void); +extern void* gUnknown_0203CEEC; +extern void* gUnknown_03005DB0; +extern void sub_808469C(void); +extern u8 GetCursorSelectionMonId(void); +extern void sub_817C94C(void); +extern u8 oei_task_add(void); +extern void FieldEffectActiveListRemove(u8 id); +extern void sub_80B7FC8(void); + +// 817C8BC +bool8 SetUpFieldMove_Teleport() +{ + if (is_light_level_1_2_3_or_6(gMapHeader.mapType) == TRUE) + { + gUnknown_03005DB0 = hm_add_c3_launch_phase_2; + gUnknown_0203CEEC = hm_teleport_run_dp02scr; + return TRUE; + } + return FALSE; +} + +// 817C8FC +void hm_teleport_run_dp02scr() +{ + sub_808469C(); + FieldEffectStart(0x3F); + gFieldEffectArguments[0] = (u32)GetCursorSelectionMonId(); +} + +extern void SetPlayerAvatarTransitionFlags(u8); +// 817C91C +u8 FldEff_UseTeleport() +{ + u8 taskID = oei_task_add(); + gTasks[taskID].data[8] = (u32)sub_817C94C >> 16; + gTasks[taskID].data[9] = (u32)sub_817C94C; + SetPlayerAvatarTransitionFlags(1); + return 0; +} + +void sub_817C94C() +{ + FieldEffectActiveListRemove(0x3F); + sub_80B7FC8(); +} + + From d74c0d053ea4a3ba668f80c7140c8821e487707d Mon Sep 17 00:00:00 2001 From: EternalCode Date: Sun, 3 Dec 2017 20:48:08 -0500 Subject: [PATCH 04/54] missed moving an extern to top --- src/fldeff_teleport.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index 3ca72d787c..ea04f52dab 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -13,6 +13,8 @@ extern void sub_817C94C(void); extern u8 oei_task_add(void); extern void FieldEffectActiveListRemove(u8 id); extern void sub_80B7FC8(void); +extern void SetPlayerAvatarTransitionFlags(u8); + // 817C8BC bool8 SetUpFieldMove_Teleport() @@ -34,7 +36,6 @@ void hm_teleport_run_dp02scr() gFieldEffectArguments[0] = (u32)GetCursorSelectionMonId(); } -extern void SetPlayerAvatarTransitionFlags(u8); // 817C91C u8 FldEff_UseTeleport() { From e649e3d2481faef109006b9157eeb22e1bff9fe2 Mon Sep 17 00:00:00 2001 From: xenonnsmb Date: Sun, 3 Dec 2017 19:55:01 -0600 Subject: [PATCH 05/54] adding tools from pokeruby --- tools/aif2pcm/.gitignore | 2 + tools/aif2pcm/LICENSE | 20 + tools/aif2pcm/Makefile | 15 + tools/aif2pcm/extended.c | 172 ++++++ tools/aif2pcm/main.c | 830 ++++++++++++++++++++++++++++ tools/bin2c/.gitignore | 1 + tools/bin2c/LICENSE | 19 + tools/bin2c/Makefile | 13 + tools/bin2c/bin2c.c | 201 +++++++ tools/gbagfx/.gitignore | 1 + tools/gbagfx/LICENSE | 19 + tools/gbagfx/Makefile | 15 + tools/gbagfx/convert_png.c | 212 +++++++ tools/gbagfx/convert_png.h | 12 + tools/gbagfx/font.c | 326 +++++++++++ tools/gbagfx/font.h | 16 + tools/gbagfx/gfx.c | 329 +++++++++++ tools/gbagfx/gfx.h | 36 ++ tools/gbagfx/global.h | 31 ++ tools/gbagfx/jasc_pal.c | 172 ++++++ tools/gbagfx/jasc_pal.h | 9 + tools/gbagfx/lz.c | 155 ++++++ tools/gbagfx/lz.h | 9 + tools/gbagfx/main.c | 402 ++++++++++++++ tools/gbagfx/rl.c | 149 +++++ tools/gbagfx/rl.h | 9 + tools/gbagfx/util.c | 124 +++++ tools/gbagfx/util.h | 14 + tools/mid2agb/.gitignore | 1 + tools/mid2agb/LICENSE | 19 + tools/mid2agb/Makefile | 15 + tools/mid2agb/agb.cpp | 462 ++++++++++++++++ tools/mid2agb/agb.h | 33 ++ tools/mid2agb/error.cpp | 36 ++ tools/mid2agb/error.h | 26 + tools/mid2agb/main.cpp | 230 ++++++++ tools/mid2agb/main.h | 39 ++ tools/mid2agb/midi.cpp | 942 ++++++++++++++++++++++++++++++++ tools/mid2agb/midi.h | 87 +++ tools/mid2agb/tables.cpp | 286 ++++++++++ tools/mid2agb/tables.h | 29 + tools/preproc/.gitignore | 1 + tools/preproc/LICENSE | 19 + tools/preproc/Makefile | 17 + tools/preproc/asm_file.cpp | 529 ++++++++++++++++++ tools/preproc/asm_file.h | 72 +++ tools/preproc/c_file.cpp | 421 ++++++++++++++ tools/preproc/c_file.h | 58 ++ tools/preproc/char_util.h | 71 +++ tools/preproc/charmap.cpp | 408 ++++++++++++++ tools/preproc/charmap.h | 64 +++ tools/preproc/preproc.cpp | 156 ++++++ tools/preproc/preproc.h | 54 ++ tools/preproc/string_parser.cpp | 355 ++++++++++++ tools/preproc/string_parser.h | 55 ++ tools/preproc/utf8.cpp | 92 ++++ tools/preproc/utf8.h | 34 ++ tools/ramscrgen/.gitignore | 1 + tools/ramscrgen/LICENSE | 19 + tools/ramscrgen/Makefile | 15 + tools/ramscrgen/char_util.h | 71 +++ tools/ramscrgen/elf.cpp | 195 +++++++ tools/ramscrgen/elf.h | 30 + tools/ramscrgen/main.cpp | 173 ++++++ tools/ramscrgen/ramscrgen.h | 49 ++ tools/ramscrgen/sym_file.cpp | 492 +++++++++++++++++ tools/ramscrgen/sym_file.h | 71 +++ tools/rsfont/.gitignore | 1 + tools/rsfont/LICENSE | 19 + tools/rsfont/Makefile | 15 + tools/rsfont/convert_png.c | 169 ++++++ tools/rsfont/convert_png.h | 11 + tools/rsfont/font.c | 455 +++++++++++++++ tools/rsfont/font.h | 30 + tools/rsfont/gfx.h | 50 ++ tools/rsfont/global.h | 31 ++ tools/rsfont/main.c | 93 ++++ tools/rsfont/util.c | 124 +++++ tools/rsfont/util.h | 14 + tools/scaninc/.gitignore | 1 + tools/scaninc/LICENSE | 19 + tools/scaninc/Makefile | 15 + tools/scaninc/asm_file.cpp | 191 +++++++ tools/scaninc/asm_file.h | 119 ++++ tools/scaninc/c_file.cpp | 298 ++++++++++ tools/scaninc/c_file.h | 57 ++ tools/scaninc/scaninc.cpp | 165 ++++++ tools/scaninc/scaninc.h | 59 ++ 88 files changed, 10976 insertions(+) create mode 100644 tools/aif2pcm/.gitignore create mode 100644 tools/aif2pcm/LICENSE create mode 100644 tools/aif2pcm/Makefile create mode 100644 tools/aif2pcm/extended.c create mode 100644 tools/aif2pcm/main.c create mode 100644 tools/bin2c/.gitignore create mode 100644 tools/bin2c/LICENSE create mode 100644 tools/bin2c/Makefile create mode 100644 tools/bin2c/bin2c.c create mode 100644 tools/gbagfx/.gitignore create mode 100644 tools/gbagfx/LICENSE create mode 100644 tools/gbagfx/Makefile create mode 100644 tools/gbagfx/convert_png.c create mode 100644 tools/gbagfx/convert_png.h create mode 100644 tools/gbagfx/font.c create mode 100644 tools/gbagfx/font.h create mode 100644 tools/gbagfx/gfx.c create mode 100644 tools/gbagfx/gfx.h create mode 100644 tools/gbagfx/global.h create mode 100644 tools/gbagfx/jasc_pal.c create mode 100644 tools/gbagfx/jasc_pal.h create mode 100644 tools/gbagfx/lz.c create mode 100644 tools/gbagfx/lz.h create mode 100644 tools/gbagfx/main.c create mode 100644 tools/gbagfx/rl.c create mode 100644 tools/gbagfx/rl.h create mode 100644 tools/gbagfx/util.c create mode 100644 tools/gbagfx/util.h create mode 100644 tools/mid2agb/.gitignore create mode 100644 tools/mid2agb/LICENSE create mode 100644 tools/mid2agb/Makefile create mode 100644 tools/mid2agb/agb.cpp create mode 100644 tools/mid2agb/agb.h create mode 100644 tools/mid2agb/error.cpp create mode 100644 tools/mid2agb/error.h create mode 100644 tools/mid2agb/main.cpp create mode 100644 tools/mid2agb/main.h create mode 100644 tools/mid2agb/midi.cpp create mode 100644 tools/mid2agb/midi.h create mode 100644 tools/mid2agb/tables.cpp create mode 100644 tools/mid2agb/tables.h create mode 100644 tools/preproc/.gitignore create mode 100644 tools/preproc/LICENSE create mode 100644 tools/preproc/Makefile create mode 100644 tools/preproc/asm_file.cpp create mode 100644 tools/preproc/asm_file.h create mode 100644 tools/preproc/c_file.cpp create mode 100644 tools/preproc/c_file.h create mode 100644 tools/preproc/char_util.h create mode 100644 tools/preproc/charmap.cpp create mode 100644 tools/preproc/charmap.h create mode 100644 tools/preproc/preproc.cpp create mode 100644 tools/preproc/preproc.h create mode 100644 tools/preproc/string_parser.cpp create mode 100644 tools/preproc/string_parser.h create mode 100644 tools/preproc/utf8.cpp create mode 100644 tools/preproc/utf8.h create mode 100644 tools/ramscrgen/.gitignore create mode 100644 tools/ramscrgen/LICENSE create mode 100644 tools/ramscrgen/Makefile create mode 100644 tools/ramscrgen/char_util.h create mode 100644 tools/ramscrgen/elf.cpp create mode 100644 tools/ramscrgen/elf.h create mode 100644 tools/ramscrgen/main.cpp create mode 100644 tools/ramscrgen/ramscrgen.h create mode 100644 tools/ramscrgen/sym_file.cpp create mode 100644 tools/ramscrgen/sym_file.h create mode 100644 tools/rsfont/.gitignore create mode 100644 tools/rsfont/LICENSE create mode 100644 tools/rsfont/Makefile create mode 100644 tools/rsfont/convert_png.c create mode 100644 tools/rsfont/convert_png.h create mode 100644 tools/rsfont/font.c create mode 100644 tools/rsfont/font.h create mode 100644 tools/rsfont/gfx.h create mode 100644 tools/rsfont/global.h create mode 100644 tools/rsfont/main.c create mode 100644 tools/rsfont/util.c create mode 100644 tools/rsfont/util.h create mode 100644 tools/scaninc/.gitignore create mode 100644 tools/scaninc/LICENSE create mode 100644 tools/scaninc/Makefile create mode 100644 tools/scaninc/asm_file.cpp create mode 100644 tools/scaninc/asm_file.h create mode 100644 tools/scaninc/c_file.cpp create mode 100644 tools/scaninc/c_file.h create mode 100644 tools/scaninc/scaninc.cpp create mode 100644 tools/scaninc/scaninc.h diff --git a/tools/aif2pcm/.gitignore b/tools/aif2pcm/.gitignore new file mode 100644 index 0000000000..31531797e7 --- /dev/null +++ b/tools/aif2pcm/.gitignore @@ -0,0 +1,2 @@ +aif2pcm + diff --git a/tools/aif2pcm/LICENSE b/tools/aif2pcm/LICENSE new file mode 100644 index 0000000000..966b92bd69 --- /dev/null +++ b/tools/aif2pcm/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2016 huderlem +Copyright (c) 2005, 2006 by Marco Trillo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/aif2pcm/Makefile b/tools/aif2pcm/Makefile new file mode 100644 index 0000000000..967930c598 --- /dev/null +++ b/tools/aif2pcm/Makefile @@ -0,0 +1,15 @@ +CC = gcc + +CFLAGS = -Wall -Wextra -Wno-switch -Werror -std=c11 -O2 -s + +LIBS = -lm + +SRCS = main.c extended.c + +.PHONY: clean + +aif2pcm: $(SRCS) + $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS) + +clean: + $(RM) aif2pcm aif2pcm.exe diff --git a/tools/aif2pcm/extended.c b/tools/aif2pcm/extended.c new file mode 100644 index 0000000000..94449164bd --- /dev/null +++ b/tools/aif2pcm/extended.c @@ -0,0 +1,172 @@ +/* $Id: extended.c,v 1.8 2006/12/23 11:17:49 toad32767 Exp $ */ +/*- + * Copyright (c) 2005, 2006 by Marco Trillo + * + * Permission is hereby granted, free of charge, to any + * person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the + * Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice + * shall be included in all copies or substantial portions of + * the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY + * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS + * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include + +/* + * Infinite & NAN values + * for non-IEEE systems + */ +#ifndef HUGE_VAL +#ifdef HUGE +#define INFINITE_VALUE HUGE +#define NAN_VALUE HUGE +#endif +#else +#define INFINITE_VALUE HUGE_VAL +#define NAN_VALUE HUGE_VAL +#endif + +/* + * IEEE 754 Extended Precision + * + * Implementation here is the 80-bit extended precision + * format of Motorola 68881, Motorola 68882 and Motorola + * 68040 FPUs, as well as Intel 80x87 FPUs. + * + * See: + * http://www.freescale.com/files/32bit/doc/fact_sheet/BR509.pdf + */ +/* + * Exponent range: [-16383,16383] + * Precision for mantissa: 64 bits with no hidden bit + * Bias: 16383 + */ + +/* + * Write IEEE Extended Precision Numbers + */ +void +ieee754_write_extended(double in, uint8_t* out) +{ + int sgn, exp, shift; + double fraction, t; + unsigned int lexp, hexp; + unsigned long low, high; + + if (in == 0.0) { + memset(out, 0, 10); + return; + } + if (in < 0.0) { + in = fabs(in); + sgn = 1; + } else + sgn = 0; + + fraction = frexp(in, &exp); + + if (exp == 0 || exp > 16384) { + if (exp > 16384) /* infinite value */ + low = high = 0; + else { + low = 0x80000000; + high = 0; + } + exp = 32767; + goto done; + } + fraction = ldexp(fraction, 32); + t = floor(fraction); + low = (unsigned long) t; + fraction -= t; + t = floor(ldexp(fraction, 32)); + high = (unsigned long) t; + + /* Convert exponents < -16382 to -16382 (then they will be + * stored as -16383) */ + if (exp < -16382) { + shift = 0 - exp - 16382; + high >>= shift; + high |= (low << (32 - shift)); + low >>= shift; + exp = -16382; + } + exp += 16383 - 1; /* bias */ + +done: + lexp = ((unsigned int) exp) >> 8; + hexp = ((unsigned int) exp) & 0xFF; + + /* big endian */ + out[0] = ((uint8_t) sgn) << 7; + out[0] |= (uint8_t) lexp; + out[1] = (uint8_t) hexp; + out[2] = (uint8_t) (low >> 24); + out[3] = (uint8_t) ((low >> 16) & 0xFF); + out[4] = (uint8_t) ((low >> 8) & 0xFF); + out[5] = (uint8_t) (low & 0xFF); + out[6] = (uint8_t) (high >> 24); + out[7] = (uint8_t) ((high >> 16) & 0xFF); + out[8] = (uint8_t) ((high >> 8) & 0xFF); + out[9] = (uint8_t) (high & 0xFF); + + return; +} + + +/* + * Read IEEE Extended Precision Numbers + */ +double +ieee754_read_extended(uint8_t* in) +{ + int sgn, exp; + unsigned long low, high; + double out; + + /* Extract the components from the big endian buffer */ + sgn = (int) (in[0] >> 7); + exp = ((int) (in[0] & 0x7F) << 8) | ((int) in[1]); + low = (((unsigned long) in[2]) << 24) + | (((unsigned long) in[3]) << 16) + | (((unsigned long) in[4]) << 8) | (unsigned long) in[5]; + high = (((unsigned long) in[6]) << 24) + | (((unsigned long) in[7]) << 16) + | (((unsigned long) in[8]) << 8) | (unsigned long) in[9]; + + if (exp == 0 && low == 0 && high == 0) + return (sgn ? -0.0 : 0.0); + + switch (exp) { + case 32767: + if (low == 0 && high == 0) + return (sgn ? -INFINITE_VALUE : INFINITE_VALUE); + else + return (sgn ? -NAN_VALUE : NAN_VALUE); + default: + exp -= 16383; /* unbias exponent */ + + } + + out = ldexp((double) low, -31 + exp); + out += ldexp((double) high, -63 + exp); + + return (sgn ? -out : out); +} diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c new file mode 100644 index 0000000000..fbb024a1d4 --- /dev/null +++ b/tools/aif2pcm/main.c @@ -0,0 +1,830 @@ +// Copyright(c) 2016 huderlem +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include +#include +#include + +/* extended.c */ +void ieee754_write_extended (double, uint8_t*); +double ieee754_read_extended (uint8_t*); + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#else + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#endif // _MSC_VER + +typedef struct { + unsigned long num_samples; + uint8_t *samples; + uint8_t midi_note; + bool has_loop; + unsigned long loop_offset; + double sample_rate; + unsigned long real_num_samples; +} AifData; + +struct Bytes { + unsigned long length; + uint8_t *data; +}; + +struct Bytes *read_bytearray(const char *filename) +{ + struct Bytes *bytes = malloc(sizeof(struct Bytes)); + FILE *f = fopen(filename, "rb"); + if (!f) + { + FATAL_ERROR("Failed to open '%s' for reading!\n", filename); + } + fseek(f, 0, SEEK_END); + bytes->length = ftell(f); + fseek(f, 0, SEEK_SET); + bytes->data = malloc(bytes->length); + unsigned long read = fread(bytes->data, bytes->length, 1, f); + fclose(f); + if (read <= 0) + { + FATAL_ERROR("Failed to read data from '%s'!\n", filename); + } + return bytes; +} + +void write_bytearray(const char *filename, struct Bytes *bytes) +{ + FILE *f = fopen(filename, "wb"); + if (!f) + { + FATAL_ERROR("Failed to open '%s' for writing!\n", filename); + } + fwrite(bytes->data, bytes->length, 1, f); + fclose(f); +} + +void free_bytearray(struct Bytes *bytes) +{ + free(bytes->data); + free(bytes); +} + +char *get_file_extension(char *filename) +{ + char *index = strrchr(filename, '.'); + if (!index || index == filename) + { + return NULL; + } + return index + 1; +} + +char *new_file_extension(char *filename, char *ext) +{ + char *index = strrchr(filename, '.'); + if (!index || index == filename) + { + index = filename + strlen(filename); + } + int length = index - filename; + char *new_filename = malloc(length + 1 + strlen(ext) + 1); + if (new_filename) + { + strcpy(new_filename, filename); + new_filename[length] = '.'; + strcpy(new_filename + length + 1, ext); + } + return new_filename; +} + +void read_aif(struct Bytes *aif, AifData *aif_data) +{ + aif_data->has_loop = false; + aif_data->num_samples = 0; + + unsigned long pos = 0; + char chunk_name[5]; chunk_name[4] = '\0'; + char chunk_type[5]; chunk_type[4] = '\0'; + + // Check for FORM Chunk + memcpy(chunk_name, &aif->data[pos], 4); + pos += 4; + if (strcmp(chunk_name, "FORM") != 0) + { + FATAL_ERROR("Input .aif file has invalid header Chunk '%s'!\n", chunk_name); + } + + // Read size of whole file. + unsigned long whole_chunk_size = aif->data[pos++] << 24; + whole_chunk_size |= (aif->data[pos++] << 16); + whole_chunk_size |= (aif->data[pos++] << 8); + whole_chunk_size |= (uint8_t)aif->data[pos++]; + + unsigned long expected_whole_chunk_size = aif->length - 8; + if (whole_chunk_size != expected_whole_chunk_size) + { + FATAL_ERROR("FORM Chunk ckSize '%lu' doesn't match actual size '%lu'!\n", whole_chunk_size, expected_whole_chunk_size); + } + + // Check for AIFF Form Type + memcpy(chunk_type, &aif->data[pos], 4); + pos += 4; + if (strcmp(chunk_type, "AIFF") != 0) + { + FATAL_ERROR("FORM Type is '%s', but it must be AIFF!", chunk_type); + } + + unsigned long num_sample_frames = 0; + + // Read all the Chunks to populate the AifData struct. + while ((pos + 8) < aif->length) + { + // Read Chunk id + memcpy(chunk_name, &aif->data[pos], 4); + pos += 4; + + unsigned long chunk_size = (aif->data[pos++] << 24); + chunk_size |= (aif->data[pos++] << 16); + chunk_size |= (aif->data[pos++] << 8); + chunk_size |= aif->data[pos++]; + + if ((pos + chunk_size) > aif->length) + { + FATAL_ERROR("%s chunk at 0x%lx reached end of file before finishing\n", chunk_name, pos); + } + + if (strcmp(chunk_name, "COMM") == 0) + { + short num_channels = (aif->data[pos++] << 8); + num_channels |= (uint8_t)aif->data[pos++]; + if (num_channels != 1) + { + FATAL_ERROR("numChannels (%d) in the COMM Chunk must be 1!\n", num_channels); + } + + num_sample_frames = (aif->data[pos++] << 24); + num_sample_frames |= (aif->data[pos++] << 16); + num_sample_frames |= (aif->data[pos++] << 8); + num_sample_frames |= (uint8_t)aif->data[pos++]; + + short sample_size = (aif->data[pos++] << 8); + sample_size |= (uint8_t)aif->data[pos++]; + if (sample_size != 8) + { + FATAL_ERROR("sampleSize (%d) in the COMM Chunk must be 8!\n", sample_size); + } + + double sample_rate = ieee754_read_extended((uint8_t*)(aif->data + pos)); + pos += 10; + + aif_data->sample_rate = sample_rate; + + if (aif_data->num_samples == 0) + { + aif_data->num_samples = num_sample_frames; + } + } + else if (strcmp(chunk_name, "MARK") == 0) + { + unsigned short num_markers = (aif->data[pos++] << 8); + num_markers |= (uint8_t)aif->data[pos++]; + + // Read each marker and look for the "START" marker. + for (int i = 0; i < num_markers; i++) + { + unsigned short marker_id = (aif->data[pos++] << 8); + marker_id |= (uint8_t)aif->data[pos++]; + + unsigned long marker_position = (aif->data[pos++] << 24); + marker_position |= (aif->data[pos++] << 16); + marker_position |= (aif->data[pos++] << 8); + marker_position |= (uint8_t)aif->data[pos++]; + + // Marker id is a pascal-style string. + uint8_t marker_name_size = aif->data[pos++]; + char *marker_name = (char *)malloc((marker_name_size + 1) * sizeof(char)); + memcpy(marker_name, &aif->data[pos], marker_name_size); + marker_name[marker_name_size] = '\0'; + pos += marker_name_size; + + if (strcmp(marker_name, "START") == 0) + { + aif_data->loop_offset = marker_position; + aif_data->has_loop = true; + } + else if (strcmp(marker_name, "END") == 0) + { + if (!aif_data->has_loop) { + aif_data->loop_offset = marker_position; + aif_data->has_loop = true; + } + aif_data->num_samples = marker_position; + } + + free(marker_name); + } + } + else if (strcmp(chunk_name, "INST") == 0) + { + uint8_t midi_note = (uint8_t)aif->data[pos++]; + + aif_data->midi_note = midi_note; + + // Skip over data we don't need. + pos += 19; + } + else if (strcmp(chunk_name, "SSND") == 0) + { + // SKip offset and blockSize + pos += 8; + + unsigned long num_samples = chunk_size - 8; + uint8_t *sample_data = (uint8_t *)malloc(num_samples * sizeof(uint8_t)); + memcpy(sample_data, &aif->data[pos], num_samples); + + aif_data->samples = sample_data; + aif_data->real_num_samples = num_samples; + pos += chunk_size - 8; + } + else + { + // Skip over unsupported chunks. + pos += chunk_size; + } + } +} + +// This is a table of deltas between sample values in compressed PCM data. +const int gDeltaEncodingTable[] = { + 0, 1, 4, 9, 16, 25, 36, 49, + -64, -49, -36, -25, -16, -9, -4, -1, +}; + +struct Bytes *delta_decompress(struct Bytes *delta, unsigned int expected_length) +{ + struct Bytes *pcm = malloc(sizeof(struct Bytes)); + pcm->length = expected_length; + pcm->data = malloc(pcm->length + 0x40); + + uint8_t hi, lo; + unsigned int i = 0; + unsigned int j = 0; + int k; + int8_t base; + while (i < delta->length) + { + base = (int8_t)delta->data[i++]; + pcm->data[j++] = (uint8_t)base; + if (i >= delta->length) + { + break; + } + if (j >= pcm->length) + { + break; + } + lo = delta->data[i] & 0xf; + base += gDeltaEncodingTable[lo]; + pcm->data[j++] = base; + i++; + if (i >= delta->length) + { + break; + } + if (j >= pcm->length) + { + break; + } + for (k = 0; k < 31; k++) + { + hi = (delta->data[i] >> 4) & 0xf; + base += gDeltaEncodingTable[hi]; + pcm->data[j++] = base; + if (j >= pcm->length) + { + break; + } + lo = delta->data[i] & 0xf; + base += gDeltaEncodingTable[lo]; + pcm->data[j++] = base; + i++; + if (i >= delta->length) + { + break; + } + if (j >= pcm->length) + { + break; + } + } + if (j >= pcm->length) + { + break; + } + } + + pcm->length = j; + return pcm; +} + +int get_delta_index(uint8_t sample, uint8_t prev_sample) +{ + int best_error = INT_MAX; + int best_index = -1; + + for (int i = 0; i < 16; i++) + { + uint8_t new_sample = prev_sample + gDeltaEncodingTable[i]; + int error = sample > new_sample ? sample - new_sample : new_sample - sample; + + if (error < best_error) + { + best_error = error; + best_index = i; + } + } + + return best_index; +} + +struct Bytes *delta_compress(struct Bytes *pcm) +{ + struct Bytes *delta = malloc(sizeof(struct Bytes)); + // estimate the length so we can malloc + int num_blocks = pcm->length / 64; + delta->length = num_blocks * 33; + + int extra = pcm->length % 64; + if (extra) + { + delta->length += 1; + extra -= 1; + } + if (extra) + { + delta->length += 1; + extra -= 1; + } + if (extra) + { + delta->length += (extra + 1) / 2; + } + + delta->data = malloc(delta->length + 33); + + unsigned int i = 0; + unsigned int j = 0; + int k; + uint8_t base; + int delta_index; + + while (i < pcm->length) + { + base = pcm->data[i++]; + delta->data[j++] = base; + + if (i >= pcm->length) + { + break; + } + delta_index = get_delta_index(pcm->data[i++], base); + base += gDeltaEncodingTable[delta_index]; + delta->data[j++] = delta_index; + + for (k = 0; k < 31; k++) + { + if (i >= pcm->length) + { + break; + } + delta_index = get_delta_index(pcm->data[i++], base); + base += gDeltaEncodingTable[delta_index]; + delta->data[j] = (delta_index << 4); + + if (i >= pcm->length) + { + break; + } + delta_index = get_delta_index(pcm->data[i++], base); + base += gDeltaEncodingTable[delta_index]; + delta->data[j++] |= delta_index; + } + } + + delta->length = j; + + return delta; +} + +#define STORE_U32_LE(dest, value) \ +do { \ + *(dest) = (value) & 0xff; \ + *((dest) + 1) = ((value) >> 8) & 0xff; \ + *((dest) + 2) = ((value) >> 16) & 0xff; \ + *((dest) + 3) = ((value) >> 24) & 0xff; \ +} while (0) + +#define LOAD_U32_LE(var, src) \ +do { \ + (var) = *(src); \ + (var) |= (*((src) + 1) << 8); \ + (var) |= (*((src) + 2) << 16); \ + (var) |= (*((src) + 3) << 24); \ +} while (0) + +// Reads an .aif file and produces a .pcm file containing an array of 8-bit samples. +void aif2pcm(const char *aif_filename, const char *pcm_filename, bool compress) +{ + struct Bytes *aif = read_bytearray(aif_filename); + AifData aif_data = {0}; + read_aif(aif, &aif_data); + + int header_size = 0x10; + struct Bytes *pcm; + struct Bytes output = {0}; + + if (compress) + { + struct Bytes *input = malloc(sizeof(struct Bytes)); + input->data = aif_data.samples; + input->length = aif_data.real_num_samples; + pcm = delta_compress(input); + free(input); + } + else + { + pcm = malloc(sizeof(struct Bytes)); + pcm->data = aif_data.samples; + pcm->length = aif_data.real_num_samples; + } + output.length = header_size + pcm->length; + output.data = malloc(output.length); + + uint32_t pitch_adjust = (uint32_t)(aif_data.sample_rate * 1024); + uint32_t loop_offset = (uint32_t)(aif_data.loop_offset); + uint32_t adjusted_num_samples = (uint32_t)(aif_data.num_samples - 1); + uint32_t flags = 0; + if (aif_data.has_loop) flags |= 0x40000000; + if (compress) flags |= 1; + STORE_U32_LE(output.data + 0, flags); + STORE_U32_LE(output.data + 4, pitch_adjust); + STORE_U32_LE(output.data + 8, loop_offset); + STORE_U32_LE(output.data + 12, adjusted_num_samples); + memcpy(&output.data[header_size], pcm->data, pcm->length); + write_bytearray(pcm_filename, &output); + + free(aif->data); + free(aif); + free(pcm); + free(output.data); + free(aif_data.samples); +} + +// Reads a .pcm file containing an array of 8-bit samples and produces an .aif file. +// See http://www-mmsp.ece.mcgill.ca/documents/audioformats/aiff/Docs/AIFF-1.3.pdf for .aif file specification. +void pcm2aif(const char *pcm_filename, const char *aif_filename, uint32_t base_note) +{ + struct Bytes *pcm = read_bytearray(pcm_filename); + + AifData *aif_data = malloc(sizeof(AifData)); + + uint32_t flags; + LOAD_U32_LE(flags, pcm->data + 0); + aif_data->has_loop = flags & 0x40000000; + bool compressed = flags & 1; + + uint32_t pitch_adjust; + LOAD_U32_LE(pitch_adjust, pcm->data + 4); + aif_data->sample_rate = pitch_adjust / 1024.0; + + LOAD_U32_LE(aif_data->loop_offset, pcm->data + 8); + LOAD_U32_LE(aif_data->num_samples, pcm->data + 12); + aif_data->num_samples += 1; + + if (compressed) + { + struct Bytes *delta = pcm; + uint8_t *pcm_data = pcm->data; + delta->length -= 0x10; + delta->data += 0x10; + pcm = delta_decompress(delta, aif_data->num_samples); + free(pcm_data); + free(delta); + } + else + { + pcm->length -= 0x10; + pcm->data += 0x10; + } + + aif_data->samples = malloc(pcm->length); + memcpy(aif_data->samples, pcm->data, pcm->length); + + struct Bytes *aif = malloc(sizeof(struct Bytes)); + aif->length = 54 + 60 + pcm->length; + aif->data = malloc(aif->length); + + long pos = 0; + + // First, write the FORM header chunk. + // FORM Chunk ckID + aif->data[pos++] = 'F'; + aif->data[pos++] = 'O'; + aif->data[pos++] = 'R'; + aif->data[pos++] = 'M'; + + // FORM Chunk ckSize + unsigned long form_size = pos; + unsigned long data_size = aif->length - 8; + aif->data[pos++] = ((data_size >> 24) & 0xFF); + aif->data[pos++] = ((data_size >> 16) & 0xFF); + aif->data[pos++] = ((data_size >> 8) & 0xFF); + aif->data[pos++] = (data_size & 0xFF); + + // FORM Chunk formType + aif->data[pos++] = 'A'; + aif->data[pos++] = 'I'; + aif->data[pos++] = 'F'; + aif->data[pos++] = 'F'; + + // Next, write the Common Chunk + // Common Chunk ckID + aif->data[pos++] = 'C'; + aif->data[pos++] = 'O'; + aif->data[pos++] = 'M'; + aif->data[pos++] = 'M'; + + // Common Chunk ckSize + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 18; + + // Common Chunk numChannels + aif->data[pos++] = 0; + aif->data[pos++] = 1; // 1 channel + + // Common Chunk numSampleFrames + aif->data[pos++] = ((aif_data->num_samples >> 24) & 0xFF); + aif->data[pos++] = ((aif_data->num_samples >> 16) & 0xFF); + aif->data[pos++] = ((aif_data->num_samples >> 8) & 0xFF); + aif->data[pos++] = (aif_data->num_samples & 0xFF); + + // Common Chunk sampleSize + aif->data[pos++] = 0; + aif->data[pos++] = 8; // 8 bits per sample + + // Common Chunk sampleRate + //double sample_rate = pitch_adjust / 1024.0; + uint8_t sample_rate_buffer[10]; + ieee754_write_extended(aif_data->sample_rate, sample_rate_buffer); + for (int i = 0; i < 10; i++) + { + aif->data[pos++] = sample_rate_buffer[i]; + } + + if (aif_data->has_loop) + { + + // Marker Chunk ckID + aif->data[pos++] = 'M'; + aif->data[pos++] = 'A'; + aif->data[pos++] = 'R'; + aif->data[pos++] = 'K'; + + // Marker Chunk ckSize + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 12 + (aif_data->has_loop ? 12 : 0); + + // Marker Chunk numMarkers + aif->data[pos++] = 0; + aif->data[pos++] = (aif_data->has_loop ? 2 : 1); + + // Marker loop start + aif->data[pos++] = 0; + aif->data[pos++] = 1; // id = 1 + + long loop_start = aif_data->loop_offset; + aif->data[pos++] = ((loop_start >> 24) & 0xFF); + aif->data[pos++] = ((loop_start >> 16) & 0xFF); + aif->data[pos++] = ((loop_start >> 8) & 0xFF); + aif->data[pos++] = (loop_start & 0xFF); // position + + aif->data[pos++] = 5; // pascal-style string length + aif->data[pos++] = 'S'; + aif->data[pos++] = 'T'; + aif->data[pos++] = 'A'; + aif->data[pos++] = 'R'; + aif->data[pos++] = 'T'; // markerName + + // Marker loop end + aif->data[pos++] = 0; + aif->data[pos++] = (aif_data->has_loop ? 2 : 1); // id = 2 + + long loop_end = aif_data->num_samples; + aif->data[pos++] = ((loop_end >> 24) & 0xFF); + aif->data[pos++] = ((loop_end >> 16) & 0xFF); + aif->data[pos++] = ((loop_end >> 8) & 0xFF); + aif->data[pos++] = (loop_end & 0xFF); // position + + aif->data[pos++] = 3; // pascal-style string length + aif->data[pos++] = 'E'; + aif->data[pos++] = 'N'; + aif->data[pos++] = 'D'; + } + + // Instrument Chunk ckID + aif->data[pos++] = 'I'; + aif->data[pos++] = 'N'; + aif->data[pos++] = 'S'; + aif->data[pos++] = 'T'; + + // Instrument Chunk ckSize + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 20; + + aif->data[pos++] = base_note; // baseNote + aif->data[pos++] = 0; // detune + aif->data[pos++] = 0; // lowNote + aif->data[pos++] = 127; // highNote + aif->data[pos++] = 1; // lowVelocity + aif->data[pos++] = 127; // highVelocity + aif->data[pos++] = 0; // gain (hi) + aif->data[pos++] = 0; // gain (lo) + + // Instrument Chunk sustainLoop + aif->data[pos++] = 0; + aif->data[pos++] = 1; // playMode = ForwardLooping + + aif->data[pos++] = 0; + aif->data[pos++] = 1; // beginLoop marker id + + aif->data[pos++] = 0; + aif->data[pos++] = 2; // endLoop marker id + + // Instrument Chunk releaseLoop + aif->data[pos++] = 0; + aif->data[pos++] = 1; // playMode = ForwardLooping + + aif->data[pos++] = 0; + aif->data[pos++] = 1; // beginLoop marker id + + aif->data[pos++] = 0; + aif->data[pos++] = 2; // endLoop marker id + + // Finally, write the Sound Data Chunk + // Sound Data Chunk ckID + aif->data[pos++] = 'S'; + aif->data[pos++] = 'S'; + aif->data[pos++] = 'N'; + aif->data[pos++] = 'D'; + + // Sound Data Chunk ckSize + unsigned long sound_data_size = pcm->length + 8; + aif->data[pos++] = ((sound_data_size >> 24) & 0xFF); + aif->data[pos++] = ((sound_data_size >> 16) & 0xFF); + aif->data[pos++] = ((sound_data_size >> 8) & 0xFF); + aif->data[pos++] = (sound_data_size & 0xFF); + + // Sound Data Chunk offset + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + + // Sound Data Chunk blockSize + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + + // Sound Data Chunk soundData + for (unsigned int i = 0; i < aif_data->loop_offset; i++) + { + aif->data[pos++] = aif_data->samples[i]; + } + + int j = 0; + for (unsigned int i = aif_data->loop_offset; i < pcm->length; i++) + { + int pcm_index = aif_data->loop_offset + (j++ % (pcm->length - aif_data->loop_offset)); + aif->data[pos++] = aif_data->samples[pcm_index]; + } + + aif->length = pos; + + // Go back and rewrite ckSize + data_size = aif->length - 8; + aif->data[form_size + 0] = ((data_size >> 24) & 0xFF); + aif->data[form_size + 1] = ((data_size >> 16) & 0xFF); + aif->data[form_size + 2] = ((data_size >> 8) & 0xFF); + aif->data[form_size + 3] = (data_size & 0xFF); + + write_bytearray(aif_filename, aif); + + free(aif->data); + free(aif); +} + +void usage(void) +{ + fprintf(stderr, "Usage: aif2pcm bin_file [aif_file]\n"); + fprintf(stderr, " aif2pcm aif_file [bin_file] [--compress]\n"); +} + +int main(int argc, char **argv) +{ + if (argc < 2) + { + usage(); + exit(1); + } + + char *input_file = argv[1]; + char *extension = get_file_extension(input_file); + char *output_file; + bool compressed = false; + + if (argc > 3) + { + for (int i = 3; i < argc; i++) + { + if (strcmp(argv[i], "--compress") == 0) + { + compressed = true; + } + } + } + + if (strcmp(extension, "aif") == 0 || strcmp(extension, "aiff") == 0) + { + if (argc >= 3) + { + output_file = argv[2]; + aif2pcm(input_file, output_file, compressed); + } + else + { + output_file = new_file_extension(input_file, "bin"); + aif2pcm(input_file, output_file, compressed); + free(output_file); + } + } + else if (strcmp(extension, "bin") == 0) + { + if (argc >= 3) + { + output_file = argv[2]; + pcm2aif(input_file, output_file, 60); + } + else + { + output_file = new_file_extension(input_file, "aif"); + pcm2aif(input_file, output_file, 60); + free(output_file); + } + } + else + { + FATAL_ERROR("Input file must be .aif or .bin: '%s'\n", input_file); + } + + return 0; +} diff --git a/tools/bin2c/.gitignore b/tools/bin2c/.gitignore new file mode 100644 index 0000000000..366f3d3e9c --- /dev/null +++ b/tools/bin2c/.gitignore @@ -0,0 +1 @@ +bin2c diff --git a/tools/bin2c/LICENSE b/tools/bin2c/LICENSE new file mode 100644 index 0000000000..534d15349e --- /dev/null +++ b/tools/bin2c/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/bin2c/Makefile b/tools/bin2c/Makefile new file mode 100644 index 0000000000..4cc23a25a3 --- /dev/null +++ b/tools/bin2c/Makefile @@ -0,0 +1,13 @@ +CC = gcc + +CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s + +.PHONY: clean + +SRCS = bin2c.c + +bin2c: $(SRCS) + $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) bin2c bin2c.exe diff --git a/tools/bin2c/bin2c.c b/tools/bin2c/bin2c.c new file mode 100644 index 0000000000..b4bd437f05 --- /dev/null +++ b/tools/bin2c/bin2c.c @@ -0,0 +1,201 @@ +// Copyright(c) 2015-2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#else + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#endif // _MSC_VER + +unsigned char *ReadWholeFile(char *path, int *size) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + fseek(fp, 0, SEEK_END); + + *size = ftell(fp); + + unsigned char *buffer = malloc(*size); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for reading \"%s\".\n", path); + + rewind(fp); + + if (fread(buffer, *size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path); + + fclose(fp); + + return buffer; +} + +int ExtractData(unsigned char *buffer, int offset, int size) +{ + switch (size) + { + case 1: + return buffer[offset]; + case 2: + return (buffer[offset + 1] << 8) + | buffer[offset]; + case 4: + return (buffer[offset + 3] << 24) + | (buffer[offset + 2] << 16) + | (buffer[offset + 1] << 8) + | buffer[offset]; + default: + FATAL_ERROR("Invalid size passed to ExtractData.\n"); + } +} + +int main(int argc, char **argv) +{ + if (argc < 3) + FATAL_ERROR("Usage: bin2c INPUT_FILE VAR_NAME [OPTIONS...]\n"); + + int fileSize; + unsigned char *buffer = ReadWholeFile(argv[1], &fileSize); + char *var_name = argv[2]; + int col = 1; + int pad = 0; + int size = 1; + bool isSigned = false; + bool isStatic = false; + bool isDecimal = false; + + for (int i = 3; i < argc; i++) + { + if (!strcmp(argv[i], "-col")) + { + i++; + + if (i >= argc) + FATAL_ERROR("Missing argument after '-col'.\n"); + + col = atoi(argv[i]); + } + else if (!strcmp(argv[i], "-pad")) + { + i++; + + if (i >= argc) + FATAL_ERROR("Missing argument after '-pad'.\n"); + + pad = atoi(argv[i]); + } + else if (!strcmp(argv[i], "-size")) + { + i++; + + if (i >= argc) + FATAL_ERROR("Missing argument after '-size'.\n"); + + size = atoi(argv[i]); + + if (size != 1 && size != 2 && size != 4) + FATAL_ERROR("Size must be 1, 2, or 4.\n"); + } + else if (!strcmp(argv[i], "-signed")) + { + isSigned = true; + isDecimal = true; + } + else if (!strcmp(argv[i], "-static")) + { + isStatic = true; + } + else if (!strcmp(argv[i], "-decimal")) + { + isDecimal = true; + } + else + { + FATAL_ERROR("Unrecognized option '%s'.\n", argv[i]); + } + } + + if ((fileSize & (size - 1)) != 0) + FATAL_ERROR("Size %d doesn't evenly divide file size %d.\n", size, fileSize); + + printf("// Generated file. Do not edit.\n\n"); + + if (isStatic) + printf("static "); + + printf("const "); + + if (isSigned) + printf("s%d ", 8 * size); + else + printf("u%d ", 8 * size); + + printf("%s[] =\n{", var_name); + + int count = fileSize / size; + int offset = 0; + + for (int i = 0; i < count; i++) + { + if (i % col == 0) + printf("\n "); + + int data = ExtractData(buffer, offset, size); + offset += size; + + if (isDecimal) + { + if (isSigned) + printf("%*d, ", pad, data); + else + printf("%*uu, ", pad, data); + } + else + { + printf("%#*xu, ", pad, data); + } + } + + printf("\n};\n"); + + return 0; +} diff --git a/tools/gbagfx/.gitignore b/tools/gbagfx/.gitignore new file mode 100644 index 0000000000..dbbb3f04cb --- /dev/null +++ b/tools/gbagfx/.gitignore @@ -0,0 +1 @@ +gbagfx diff --git a/tools/gbagfx/LICENSE b/tools/gbagfx/LICENSE new file mode 100644 index 0000000000..b66bf81c0f --- /dev/null +++ b/tools/gbagfx/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/gbagfx/Makefile b/tools/gbagfx/Makefile new file mode 100644 index 0000000000..d791dabb55 --- /dev/null +++ b/tools/gbagfx/Makefile @@ -0,0 +1,15 @@ +CC = gcc + +CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK + +LIBS = -lpng -lz + +SRCS = main.c convert_png.c gfx.c jasc_pal.c lz.c rl.c util.c font.c + +.PHONY: clean + +gbagfx: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h + $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS) + +clean: + $(RM) gbagfx gbagfx.exe diff --git a/tools/gbagfx/convert_png.c b/tools/gbagfx/convert_png.c new file mode 100644 index 0000000000..37904318c1 --- /dev/null +++ b/tools/gbagfx/convert_png.c @@ -0,0 +1,212 @@ +// Copyright (c) 2015 YamaArashi + +#include +#include +#include +#include "global.h" +#include "convert_png.h" +#include "gfx.h" + +static FILE *PngReadOpen(char *path, png_structp *pngStruct, png_infop *pngInfo) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + unsigned char sig[8]; + + if (fread(sig, 8, 1, fp) != 1) + FATAL_ERROR("Failed to read PNG signature from \"%s\".\n", path); + + if (png_sig_cmp(sig, 0, 8)) + FATAL_ERROR("\"%s\" does not have a valid PNG signature.\n", path); + + png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if (!png_ptr) + FATAL_ERROR("Failed to create PNG read struct.\n"); + + png_infop info_ptr = png_create_info_struct(png_ptr); + + if (!info_ptr) + FATAL_ERROR("Failed to create PNG info struct.\n"); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Failed to init I/O for reading \"%s\".\n", path); + + png_init_io(png_ptr, fp); + png_set_sig_bytes(png_ptr, 8); + png_read_info(png_ptr, info_ptr); + + *pngStruct = png_ptr; + *pngInfo = info_ptr; + + return fp; +} + +void ReadPng(char *path, struct Image *image) +{ + png_structp png_ptr; + png_infop info_ptr; + + FILE *fp = PngReadOpen(path, &png_ptr, &info_ptr); + + int bit_depth = png_get_bit_depth(png_ptr, info_ptr); + + if (bit_depth != image->bitDepth) + FATAL_ERROR("\"%s\" has a bit depth of %d, but the expected bit depth is %d.\n", path, bit_depth, image->bitDepth); + + int color_type = png_get_color_type(png_ptr, info_ptr); + + if (color_type != PNG_COLOR_TYPE_GRAY && color_type != PNG_COLOR_TYPE_PALETTE) + FATAL_ERROR("\"%s\" has an unsupported color type.\n", path); + + // Check if the image has a palette so that we can tell if the colors need to be inverted later. + // Don't read the palette because it's not needed for now. + image->hasPalette = (color_type == PNG_COLOR_TYPE_PALETTE); + + image->width = png_get_image_width(png_ptr, info_ptr); + image->height = png_get_image_height(png_ptr, info_ptr); + + int rowbytes = png_get_rowbytes(png_ptr, info_ptr); + + image->pixels = malloc(image->height * rowbytes); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate pixel buffer.\n"); + + png_bytepp row_pointers = malloc(image->height * sizeof(png_bytep)); + + if (row_pointers == NULL) + FATAL_ERROR("Failed to allocate row pointers.\n"); + + for (int i = 0; i < image->height; i++) + row_pointers[i] = (png_bytep)(image->pixels + (i * rowbytes)); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error reading from \"%s\".\n", path); + + png_read_image(png_ptr, row_pointers); + + png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + + free(row_pointers); + fclose(fp); +} + +void ReadPngPalette(char *path, struct Palette *palette) +{ + png_structp png_ptr; + png_infop info_ptr; + png_colorp colors; + int numColors; + + FILE *fp = PngReadOpen(path, &png_ptr, &info_ptr); + + if (png_get_color_type(png_ptr, info_ptr) != PNG_COLOR_TYPE_PALETTE) + FATAL_ERROR("The image \"%s\" does not contain a palette.\n", path); + + if (png_get_PLTE(png_ptr, info_ptr, &colors, &numColors) != PNG_INFO_PLTE) + FATAL_ERROR("Failed to retrieve palette from \"%s\".\n", path); + + if (numColors > 256) + FATAL_ERROR("Images with more than 256 colors are not supported.\n"); + + palette->numColors = numColors; + for (int i = 0; i < numColors; i++) { + palette->colors[i].red = colors[i].red; + palette->colors[i].green = colors[i].green; + palette->colors[i].blue = colors[i].blue; + } + + png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + + fclose(fp); +} + +void SetPngPalette(png_structp png_ptr, png_infop info_ptr, struct Palette *palette) +{ + png_colorp colors = malloc(palette->numColors * sizeof(png_color)); + + if (colors == NULL) + FATAL_ERROR("Failed to allocate PNG palette.\n"); + + for (int i = 0; i < palette->numColors; i++) { + colors[i].red = palette->colors[i].red; + colors[i].green = palette->colors[i].green; + colors[i].blue = palette->colors[i].blue; + } + + png_set_PLTE(png_ptr, info_ptr, colors, palette->numColors); + + free(colors); +} + +void WritePng(char *path, struct Image *image) +{ + FILE *fp = fopen(path, "wb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); + + png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if (!png_ptr) + FATAL_ERROR("Failed to create PNG write struct.\n"); + + png_infop info_ptr = png_create_info_struct(png_ptr); + + if (!info_ptr) + FATAL_ERROR("Failed to create PNG info struct.\n"); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Failed to init I/O for writing \"%s\".\n", path); + + png_init_io(png_ptr, fp); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error writing header for \"%s\".\n", path); + + int color_type = image->hasPalette ? PNG_COLOR_TYPE_PALETTE : PNG_COLOR_TYPE_GRAY; + + png_set_IHDR(png_ptr, info_ptr, image->width, image->height, + image->bitDepth, color_type, PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); + + if (image->hasPalette) { + SetPngPalette(png_ptr, info_ptr, &image->palette); + + if (image->hasTransparency) { + png_byte trans = 0; + png_set_tRNS(png_ptr, info_ptr, &trans, 1, 0); + } + } + + png_write_info(png_ptr, info_ptr); + + png_bytepp row_pointers = malloc(image->height * sizeof(png_bytep)); + + if (row_pointers == NULL) + FATAL_ERROR("Failed to allocate row pointers.\n"); + + int rowbytes = png_get_rowbytes(png_ptr, info_ptr); + + for (int i = 0; i < image->height; i++) + row_pointers[i] = (png_bytep)(image->pixels + (i * rowbytes)); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error writing \"%s\".\n", path); + + png_write_image(png_ptr, row_pointers); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error ending write of \"%s\".\n", path); + + png_write_end(png_ptr, NULL); + + fclose(fp); + + png_destroy_write_struct(&png_ptr, &info_ptr); + free(row_pointers); +} diff --git a/tools/gbagfx/convert_png.h b/tools/gbagfx/convert_png.h new file mode 100644 index 0000000000..caf081b733 --- /dev/null +++ b/tools/gbagfx/convert_png.h @@ -0,0 +1,12 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef CONVERT_PNG_H +#define CONVERT_PNG_H + +#include "gfx.h" + +void ReadPng(char *path, struct Image *image); +void WritePng(char *path, struct Image *image); +void ReadPngPalette(char *path, struct Palette *palette); + +#endif // CONVERT_PNG_H diff --git a/tools/gbagfx/font.c b/tools/gbagfx/font.c new file mode 100644 index 0000000000..0dd6fbc3ee --- /dev/null +++ b/tools/gbagfx/font.c @@ -0,0 +1,326 @@ +// Copyright (c) 2015 YamaArashi + +#include +#include +#include +#include +#include "global.h" +#include "font.h" +#include "gfx.h" +#include "util.h" + +unsigned char gFontPalette[][3] = { + {0x90, 0xC8, 0xFF}, // bg (saturated blue that contrasts well with the shadow color) + {0x38, 0x38, 0x38}, // fg (dark grey) + {0xD8, 0xD8, 0xD8}, // shadow (light grey) + {0xFF, 0xFF, 0xFF} // box (white) +}; + +static void ConvertFromLatinFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + unsigned int srcPixelsOffset = 0; + + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int destPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + srcPixelsOffset += 2; + } + } + } + } +} + +static void ConvertToLatinFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + unsigned int destPixelsOffset = 0; + + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int srcPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + destPixelsOffset += 2; + } + } + } + } +} + +static void ConvertFromHalfwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 2; glyphTile++) { + unsigned int pixelsX = column * 8; + unsigned int srcPixelsOffset = 512 * (glyphIndex >> 4) + 16 * (glyphIndex & 0xF) + 256 * glyphTile; + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + (glyphTile * 8) + i; + unsigned int destPixelsOffset = (pixelsY * 32) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + srcPixelsOffset += 2; + } + } + } + } +} + +static void ConvertToHalfwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 2; glyphTile++) { + unsigned int pixelsX = column * 8; + unsigned int destPixelsOffset = 512 * (glyphIndex >> 4) + 16 * (glyphIndex & 0xF) + 256 * glyphTile; + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + (glyphTile * 8) + i; + unsigned int srcPixelsOffset = (pixelsY * 32) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + destPixelsOffset += 2; + } + } + } + } +} + +static void ConvertFromFullwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + unsigned int srcPixelsOffset = 512 * (glyphIndex >> 3) + 32 * (glyphIndex & 7) + 256 * (glyphTile >> 1) + 16 * (glyphTile & 1); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int destPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + srcPixelsOffset += 2; + } + } + } + } +} + +static void ConvertToFullwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + unsigned int destPixelsOffset = 512 * (glyphIndex >> 3) + 32 * (glyphIndex & 7) + 256 * (glyphTile >> 1) + 16 * (glyphTile & 1); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int srcPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + destPixelsOffset += 2; + } + } + } + } +} + +static void SetFontPalette(struct Image *image) +{ + image->hasPalette = true; + + image->palette.numColors = 4; + + for (int i = 0; i < image->palette.numColors; i++) { + image->palette.colors[i].red = gFontPalette[i][0]; + image->palette.colors[i].green = gFontPalette[i][1]; + image->palette.colors[i].blue = gFontPalette[i][2]; + } + + image->hasTransparency = false; +} + +void ReadLatinFont(char *path, struct Image *image) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int numGlyphs = fileSize / 64; + + if (numGlyphs % 16 != 0) + FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs); + + int numRows = numGlyphs / 16; + + image->width = 256; + image->height = numRows * 16; + image->bitDepth = 2; + image->pixels = malloc(fileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertFromLatinFont(buffer, image->pixels, numRows); + + free(buffer); + + SetFontPalette(image); +} + +void WriteLatinFont(char *path, struct Image *image) +{ + if (image->width != 256) + FATAL_ERROR("The width of the font image (%d) is not 256.\n", image->width); + + if (image->height % 16 != 0) + FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height); + + int numRows = image->height / 16; + int bufferSize = numRows * 16 * 64; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertToLatinFont(image->pixels, buffer, numRows); + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} + +void ReadHalfwidthJapaneseFont(char *path, struct Image *image) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int glyphSize = 32; + + if (fileSize % glyphSize != 0) + FATAL_ERROR("The file size (%d) is not a multiple of %d.\n", fileSize, glyphSize); + + int numGlyphs = fileSize / glyphSize; + + if (numGlyphs % 16 != 0) + FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs); + + int numRows = numGlyphs / 16; + + image->width = 128; + image->height = numRows * 16; + image->bitDepth = 2; + image->pixels = malloc(fileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertFromHalfwidthJapaneseFont(buffer, image->pixels, numRows); + + free(buffer); + + SetFontPalette(image); +} + +void WriteHalfwidthJapaneseFont(char *path, struct Image *image) +{ + if (image->width != 128) + FATAL_ERROR("The width of the font image (%d) is not 128.\n", image->width); + + if (image->height % 16 != 0) + FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height); + + int numRows = image->height / 16; + int bufferSize = numRows * 16 * 32; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertToHalfwidthJapaneseFont(image->pixels, buffer, numRows); + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} + +void ReadFullwidthJapaneseFont(char *path, struct Image *image) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int numGlyphs = fileSize / 64; + + if (numGlyphs % 16 != 0) + FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs); + + int numRows = numGlyphs / 16; + + image->width = 256; + image->height = numRows * 16; + image->bitDepth = 2; + image->pixels = malloc(fileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertFromFullwidthJapaneseFont(buffer, image->pixels, numRows); + + free(buffer); + + SetFontPalette(image); +} + +void WriteFullwidthJapaneseFont(char *path, struct Image *image) +{ + if (image->width != 256) + FATAL_ERROR("The width of the font image (%d) is not 256.\n", image->width); + + if (image->height % 16 != 0) + FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height); + + int numRows = image->height / 16; + int bufferSize = numRows * 16 * 64; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertToFullwidthJapaneseFont(image->pixels, buffer, numRows); + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} diff --git a/tools/gbagfx/font.h b/tools/gbagfx/font.h new file mode 100644 index 0000000000..45086d02ac --- /dev/null +++ b/tools/gbagfx/font.h @@ -0,0 +1,16 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef FONT_H +#define FONT_H + +#include +#include "gfx.h" + +void ReadLatinFont(char *path, struct Image *image); +void WriteLatinFont(char *path, struct Image *image); +void ReadHalfwidthJapaneseFont(char *path, struct Image *image); +void WriteHalfwidthJapaneseFont(char *path, struct Image *image); +void ReadFullwidthJapaneseFont(char *path, struct Image *image); +void WriteFullwidthJapaneseFont(char *path, struct Image *image); + +#endif // FONT_H diff --git a/tools/gbagfx/gfx.c b/tools/gbagfx/gfx.c new file mode 100644 index 0000000000..c0f7f492c3 --- /dev/null +++ b/tools/gbagfx/gfx.c @@ -0,0 +1,329 @@ +// Copyright (c) 2015 YamaArashi + +#include +#include +#include +#include +#include "global.h" +#include "gfx.h" +#include "util.h" + +#define GET_GBA_PAL_RED(x) (((x) >> 0) & 0x1F) +#define GET_GBA_PAL_GREEN(x) (((x) >> 5) & 0x1F) +#define GET_GBA_PAL_BLUE(x) (((x) >> 10) & 0x1F) + +#define SET_GBA_PAL(r, g, b) (((b) << 10) | ((g) << 5) | (r)) + +#define UPCONVERT_BIT_DEPTH(x) (((x) * 255) / 31) + +#define DOWNCONVERT_BIT_DEPTH(x) ((x) / 8) + +static void ConvertFromTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +{ + int tilesX = 0; + int tilesY = 0; + int pitch = tilesWidth; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int destY = tilesY * 8 + j; + int destX = tilesX; + unsigned char srcPixelOctet = *src++; + unsigned char *destPixelOctet = &dest[destY * pitch + destX]; + + for (int k = 0; k < 8; k++) { + *destPixelOctet <<= 1; + *destPixelOctet |= (srcPixelOctet & 1) ^ invertColors; + srcPixelOctet >>= 1; + } + } + + tilesX++; + + if (tilesX == tilesWidth) { + tilesX = 0; + tilesY++; + } + } +} + +static void ConvertFromTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +{ + int tilesX = 0; + int tilesY = 0; + int pitch = tilesWidth * 4; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int destY = tilesY * 8 + j; + + for (int k = 0; k < 4; k++) { + int destX = tilesX * 4 + k; + unsigned char srcPixelPair = *src++; + unsigned char leftPixel = srcPixelPair & 0xF; + unsigned char rightPixel = srcPixelPair >> 4; + + if (invertColors) { + leftPixel = 15 - leftPixel; + rightPixel = 15 - rightPixel; + } + + dest[destY * pitch + destX] = (leftPixel << 4) | rightPixel; + } + } + + tilesX++; + + if (tilesX == tilesWidth) { + tilesX = 0; + tilesY++; + } + } +} + +static void ConvertFromTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +{ + int tilesX = 0; + int tilesY = 0; + int pitch = tilesWidth * 8; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int destY = tilesY * 8 + j; + + for (int k = 0; k < 8; k++) { + int destX = tilesX * 8 + k; + unsigned char srcPixel = *src++; + + if (invertColors) + srcPixel = 255 - srcPixel; + + dest[destY * pitch + destX] = srcPixel; + } + } + + tilesX++; + + if (tilesX == tilesWidth) { + tilesX = 0; + tilesY++; + } + } +} + +static void ConvertToTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +{ + int tilesX = 0; + int tilesY = 0; + int pitch = tilesWidth; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int srcY = tilesY * 8 + j; + int srcX = tilesX; + unsigned char srcPixelOctet = src[srcY * pitch + srcX]; + unsigned char *destPixelOctet = dest++; + + for (int k = 0; k < 8; k++) { + *destPixelOctet <<= 1; + *destPixelOctet |= (srcPixelOctet & 1) ^ invertColors; + srcPixelOctet >>= 1; + } + } + + tilesX++; + + if (tilesX == tilesWidth) { + tilesX = 0; + tilesY++; + } + } +} + +static void ConvertToTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +{ + int tilesX = 0; + int tilesY = 0; + int pitch = tilesWidth * 4; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int srcY = tilesY * 8 + j; + + for (int k = 0; k < 4; k++) { + int srcX = tilesX * 4 + k; + unsigned char srcPixelPair = src[srcY * pitch + srcX]; + unsigned char leftPixel = srcPixelPair >> 4; + unsigned char rightPixel = srcPixelPair & 0xF; + + if (invertColors) { + leftPixel = 15 - leftPixel; + rightPixel = 15 - rightPixel; + } + + *dest++ = (rightPixel << 4) | leftPixel; + } + } + + tilesX++; + + if (tilesX == tilesWidth) { + tilesX = 0; + tilesY++; + } + } +} + +static void ConvertToTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int tilesWidth, bool invertColors) +{ + int tilesX = 0; + int tilesY = 0; + int pitch = tilesWidth * 8; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int srcY = tilesY * 8 + j; + + for (int k = 0; k < 8; k++) { + int srcX = tilesX * 8 + k; + unsigned char srcPixel = src[srcY * pitch + srcX]; + + if (invertColors) + srcPixel = 255 - srcPixel; + + *dest++ = srcPixel; + } + } + + tilesX++; + + if (tilesX == tilesWidth) { + tilesX = 0; + tilesY++; + } + } +} + +void ReadImage(char *path, int tilesWidth, int bitDepth, struct Image *image, bool invertColors) +{ + int tileSize = bitDepth * 8; + + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int numTiles = fileSize / tileSize; + + int tilesHeight = (numTiles + tilesWidth - 1) / tilesWidth; + + image->width = tilesWidth * 8; + image->height = tilesHeight * 8; + image->bitDepth = bitDepth; + image->pixels = calloc(tilesWidth * tilesHeight, tileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for pixels.\n"); + + switch (bitDepth) { + case 1: + ConvertFromTiles1Bpp(buffer, image->pixels, numTiles, tilesWidth, invertColors); + break; + case 4: + ConvertFromTiles4Bpp(buffer, image->pixels, numTiles, tilesWidth, invertColors); + break; + case 8: + ConvertFromTiles8Bpp(buffer, image->pixels, numTiles, tilesWidth, invertColors); + break; + } + + free(buffer); +} + +void WriteImage(char *path, int numTiles, int bitDepth, struct Image *image, bool invertColors) +{ + int tileSize = bitDepth * 8; + + if (image->width % 8 != 0) + FATAL_ERROR("The width in pixels (%d) isn't a multiple of 8.\n", image->width); + + if (image->height % 8 != 0) + FATAL_ERROR("The height in pixels (%d) isn't a multiple of 8.\n", image->height); + + int tilesWidth = image->width / 8; + int tilesHeight = image->height / 8; + + int maxNumTiles = tilesWidth * tilesHeight; + + if (numTiles == 0) + numTiles = maxNumTiles; + else if (numTiles > maxNumTiles) + FATAL_ERROR("The specified number of tiles (%d) is greater than the maximum possible value (%d).\n", numTiles, maxNumTiles); + + int bufferSize = numTiles * tileSize; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for pixels.\n"); + + switch (bitDepth) { + case 1: + ConvertToTiles1Bpp(image->pixels, buffer, numTiles, tilesWidth, invertColors); + break; + case 4: + ConvertToTiles4Bpp(image->pixels, buffer, numTiles, tilesWidth, invertColors); + break; + case 8: + ConvertToTiles8Bpp(image->pixels, buffer, numTiles, tilesWidth, invertColors); + break; + } + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} + +void FreeImage(struct Image *image) +{ + free(image->pixels); + image->pixels = NULL; +} + +void ReadGbaPalette(char *path, struct Palette *palette) +{ + int fileSize; + unsigned char *data = ReadWholeFile(path, &fileSize); + + if (fileSize % 2 != 0) + FATAL_ERROR("The file size (%d) is not a multiple of 2.\n", fileSize); + + palette->numColors = fileSize / 2; + + for (int i = 0; i < palette->numColors; i++) { + uint16_t paletteEntry = (data[i * 2 + 1] << 8) | data[i * 2]; + palette->colors[i].red = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_RED(paletteEntry)); + palette->colors[i].green = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_GREEN(paletteEntry)); + palette->colors[i].blue = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_BLUE(paletteEntry)); + } + + free(data); +} + +void WriteGbaPalette(char *path, struct Palette *palette) +{ + FILE *fp = fopen(path, "wb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); + + for (int i = 0; i < palette->numColors; i++) { + unsigned char red = DOWNCONVERT_BIT_DEPTH(palette->colors[i].red); + unsigned char green = DOWNCONVERT_BIT_DEPTH(palette->colors[i].green); + unsigned char blue = DOWNCONVERT_BIT_DEPTH(palette->colors[i].blue); + + uint16_t paletteEntry = SET_GBA_PAL(red, green, blue); + + fputc(paletteEntry & 0xFF, fp); + fputc(paletteEntry >> 8, fp); + } + + fclose(fp); +} diff --git a/tools/gbagfx/gfx.h b/tools/gbagfx/gfx.h new file mode 100644 index 0000000000..ecd436652e --- /dev/null +++ b/tools/gbagfx/gfx.h @@ -0,0 +1,36 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef GFX_H +#define GFX_H + +#include +#include + +struct Color { + unsigned char red; + unsigned char green; + unsigned char blue; +}; + +struct Palette { + struct Color colors[256]; + int numColors; +}; + +struct Image { + int width; + int height; + int bitDepth; + unsigned char *pixels; + bool hasPalette; + struct Palette palette; + bool hasTransparency; +}; + +void ReadImage(char *path, int tilesWidth, int bitDepth, struct Image *image, bool invertColors); +void WriteImage(char *path, int numTiles, int bitDepth, struct Image *image, bool invertColors); +void FreeImage(struct Image *image); +void ReadGbaPalette(char *path, struct Palette *palette); +void WriteGbaPalette(char *path, struct Palette *palette); + +#endif // GFX_H diff --git a/tools/gbagfx/global.h b/tools/gbagfx/global.h new file mode 100644 index 0000000000..65dd351d21 --- /dev/null +++ b/tools/gbagfx/global.h @@ -0,0 +1,31 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef GLOBAL_H +#define GLOBAL_H + +#include +#include + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#define UNUSED + +#else + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#define UNUSED __attribute__((__unused__)) + +#endif // _MSC_VER + +#endif // GLOBAL_H diff --git a/tools/gbagfx/jasc_pal.c b/tools/gbagfx/jasc_pal.c new file mode 100644 index 0000000000..e5ba9c3c2f --- /dev/null +++ b/tools/gbagfx/jasc_pal.c @@ -0,0 +1,172 @@ +// Copyright (c) 2015 YamaArashi + +#include +#include +#include "global.h" +#include "gfx.h" +#include "util.h" + +// Read/write Paint Shop Pro palette files. + +// Format of a Paint Shop Pro palette file, line by line: +// "JASC-PAL\r\n" (signature) +// "0100\r\n" (version; seems to always be "0100") +// "\r\n" (number of colors in decimal) +// +// times: +// " \r\n" (color entry) +// +// Each color component is a decimal number from 0 to 255. +// Examples: +// Black - "0 0 0\r\n" +// Blue - "0 0 255\r\n" +// Brown - "150 75 0\r\n" + +#define MAX_LINE_LENGTH 11 + +void ReadJascPaletteLine(FILE *fp, char *line) +{ + int c; + int length = 0; + + for (;;) + { + c = fgetc(fp); + + if (c == '\r') + { + c = fgetc(fp); + + if (c != '\n') + FATAL_ERROR("CR line endings aren't supported.\n"); + + line[length] = 0; + + return; + } + + if (c == '\n') + FATAL_ERROR("LF line endings aren't supported.\n"); + + if (c == EOF) + FATAL_ERROR("Unexpected EOF. No CRLF at end of file.\n"); + + if (c == 0) + FATAL_ERROR("NUL character in file.\n"); + + if (length == MAX_LINE_LENGTH) + { + line[length] = 0; + FATAL_ERROR("The line \"%s\" is too long.\n", line); + } + + line[length++] = c; + } +} + +void ReadJascPalette(char *path, struct Palette *palette) +{ + char line[MAX_LINE_LENGTH + 1]; + + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open JASC-PAL file \"%s\" for reading.\n", path); + + ReadJascPaletteLine(fp, line); + + if (strcmp(line, "JASC-PAL") != 0) + FATAL_ERROR("Invalid JASC-PAL signature.\n"); + + ReadJascPaletteLine(fp, line); + + if (strcmp(line, "0100") != 0) + FATAL_ERROR("Unsuported JASC-PAL version.\n"); + + ReadJascPaletteLine(fp, line); + + if (!ParseNumber(line, NULL, 10, &palette->numColors)) + FATAL_ERROR("Failed to parse number of colors.\n"); + + if (palette->numColors < 1 || palette->numColors > 256) + FATAL_ERROR("%d is an invalid number of colors. The number of colors must be in the range [1, 256].\n", palette->numColors); + + for (int i = 0; i < palette->numColors; i++) + { + ReadJascPaletteLine(fp, line); + + char *s = line; + char *end; + + int red; + int green; + int blue; + + if (!ParseNumber(s, &end, 10, &red)) + FATAL_ERROR("Failed to parse red color component.\n"); + + s = end; + + if (*s != ' ') + FATAL_ERROR("Expected a space after red color component.\n"); + + s++; + + if (*s < '0' || *s > '9') + FATAL_ERROR("Expected only a space between red and green color components.\n"); + + if (!ParseNumber(s, &end, 10, &green)) + FATAL_ERROR("Failed to parse green color component.\n"); + + s = end; + + if (*s != ' ') + FATAL_ERROR("Expected a space after green color component.\n"); + + s++; + + if (*s < '0' || *s > '9') + FATAL_ERROR("Expected only a space between green and blue color components.\n"); + + if (!ParseNumber(s, &end, 10, &blue)) + FATAL_ERROR("Failed to parse blue color component.\n"); + + if (*end != 0) + FATAL_ERROR("Garbage after blue color component.\n"); + + if (red < 0 || red > 255) + FATAL_ERROR("Red color component (%d) is outside the range [0, 255].\n", red); + + if (green < 0 || green > 255) + FATAL_ERROR("Green color component (%d) is outside the range [0, 255].\n", green); + + if (blue < 0 || blue > 255) + FATAL_ERROR("Blue color component (%d) is outside the range [0, 255].\n", blue); + + palette->colors[i].red = red; + palette->colors[i].green = green; + palette->colors[i].blue = blue; + } + + if (fgetc(fp) != EOF) + FATAL_ERROR("Garbage after color data.\n"); + + fclose(fp); +} + +void WriteJascPalette(char *path, struct Palette *palette) +{ + FILE *fp = fopen(path, "wb"); + + fputs("JASC-PAL\r\n", fp); + fputs("0100\r\n", fp); + fprintf(fp, "%d\r\n", palette->numColors); + + for (int i = 0; i < palette->numColors; i++) + { + struct Color *color = &palette->colors[i]; + fprintf(fp, "%d %d %d\r\n", color->red, color->green, color->blue); + } + + fclose(fp); +} diff --git a/tools/gbagfx/jasc_pal.h b/tools/gbagfx/jasc_pal.h new file mode 100644 index 0000000000..b60b31fc8d --- /dev/null +++ b/tools/gbagfx/jasc_pal.h @@ -0,0 +1,9 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef JASC_PAL_H +#define JASC_PAL_H + +void ReadJascPalette(char *path, struct Palette *palette); +void WriteJascPalette(char *path, struct Palette *palette); + +#endif // JASC_PAL_H diff --git a/tools/gbagfx/lz.c b/tools/gbagfx/lz.c new file mode 100644 index 0000000000..c2ba3e327b --- /dev/null +++ b/tools/gbagfx/lz.c @@ -0,0 +1,155 @@ +// Copyright (c) 2015 YamaArashi + +#include +#include +#include "global.h" +#include "lz.h" + +unsigned char *LZDecompress(unsigned char *src, int srcSize, int *uncompressedSize) +{ + if (srcSize < 4) + goto fail; + + int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; + + unsigned char *dest = malloc(destSize); + + if (dest == NULL) + goto fail; + + int srcPos = 4; + int destPos = 0; + + for (;;) { + if (srcPos >= srcSize) + goto fail; + + unsigned char flags = src[srcPos++]; + + for (int i = 0; i < 8; i++) { + if (flags & 0x80) { + if (srcPos + 1 >= srcSize) + goto fail; + + int blockSize = (src[srcPos] >> 4) + 3; + int blockDistance = (((src[srcPos] & 0xF) << 8) | src[srcPos + 1]) + 1; + + srcPos += 2; + + int blockPos = destPos - blockDistance; + + // Some Ruby/Sapphire tilesets overflow. + if (destPos + blockSize > destSize) { + blockSize = destSize - destPos; + fprintf(stderr, "Destination buffer overflow.\n"); + } + + if (blockPos < 0) + goto fail; + + for (int j = 0; j < blockSize; j++) + dest[destPos++] = dest[blockPos + j]; + } else { + if (srcPos >= srcSize || destPos >= destSize) + goto fail; + + dest[destPos++] = src[srcPos++]; + } + + if (destPos == destSize) { + *uncompressedSize = destSize; + return dest; + } + + flags <<= 1; + } + } + +fail: + FATAL_ERROR("Fatal error while decompressing LZ file.\n"); +} + +unsigned char *LZCompress(unsigned char *src, int srcSize, int *compressedSize) +{ + const int minDistance = 2; // for compatibility with LZ77UnCompVram() + + if (srcSize <= 0) + goto fail; + + int worstCaseDestSize = 4 + srcSize + ((srcSize + 7) / 8); + + // Round up to the next multiple of four. + worstCaseDestSize = (worstCaseDestSize + 3) & ~3; + + unsigned char *dest = malloc(worstCaseDestSize); + + if (dest == NULL) + goto fail; + + // header + dest[0] = 0x10; // LZ compression type + dest[1] = (unsigned char)srcSize; + dest[2] = (unsigned char)(srcSize >> 8); + dest[3] = (unsigned char)(srcSize >> 16); + + int srcPos = 0; + int destPos = 4; + + for (;;) { + unsigned char *flags = &dest[destPos++]; + *flags = 0; + + for (int i = 0; i < 8; i++) { + int bestBlockDistance = 0; + int bestBlockSize = 0; + int blockDistance = minDistance; + + while (blockDistance <= srcPos && blockDistance <= 0x1000) { + int blockStart = srcPos - blockDistance; + int blockSize = 0; + + while (blockSize < 18 + && srcPos + blockSize < srcSize + && src[blockStart + blockSize] == src[srcPos + blockSize]) + blockSize++; + + if (blockSize > bestBlockSize) { + bestBlockDistance = blockDistance; + bestBlockSize = blockSize; + + if (blockSize == 18) + break; + } + + blockDistance++; + } + + if (bestBlockSize >= 3) { + *flags |= (0x80 >> i); + srcPos += bestBlockSize; + bestBlockSize -= 3; + bestBlockDistance--; + dest[destPos++] = (bestBlockSize << 4) | ((unsigned int)bestBlockDistance >> 8); + dest[destPos++] = (unsigned char)bestBlockDistance; + } else { + dest[destPos++] = src[srcPos++]; + } + + if (srcPos == srcSize) { + // Pad to multiple of 4 bytes. + int remainder = destPos % 4; + + if (remainder != 0) { + for (int i = 0; i < 4 - remainder; i++) + dest[destPos++] = 0; + } + + *compressedSize = destPos; + return dest; + } + } + } + +fail: + FATAL_ERROR("Fatal error while compressing LZ file.\n"); +} diff --git a/tools/gbagfx/lz.h b/tools/gbagfx/lz.h new file mode 100644 index 0000000000..164d62279a --- /dev/null +++ b/tools/gbagfx/lz.h @@ -0,0 +1,9 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef LZ_H +#define LZ_H + +unsigned char *LZDecompress(unsigned char *src, int srcSize, int *uncompressedSize); +unsigned char *LZCompress(unsigned char *src, int srcSize, int *compressedSize); + +#endif // LZ_H diff --git a/tools/gbagfx/main.c b/tools/gbagfx/main.c new file mode 100644 index 0000000000..97db60e843 --- /dev/null +++ b/tools/gbagfx/main.c @@ -0,0 +1,402 @@ +// Copyright (c) 2015 YamaArashi + +#include +#include +#include +#include "global.h" +#include "util.h" +#include "gfx.h" +#include "convert_png.h" +#include "jasc_pal.h" +#include "lz.h" +#include "rl.h" +#include "font.h" + +struct CommandHandler +{ + const char *inputFileExtension; + const char *outputFileExtension; + void(*function)(char *inputPath, char *outputPath, int argc, char **argv); +}; + +void ConvertGbaToPng(char *inputPath, char *outputPath, int width, int bitDepth, char *paletteFilePath, bool hasTransparency) +{ + struct Image image; + + if (paletteFilePath != NULL) + { + ReadGbaPalette(paletteFilePath, &image.palette); + image.hasPalette = true; + } + else + { + image.hasPalette = false; + } + + ReadImage(inputPath, width, bitDepth, &image, !image.hasPalette); + + image.hasTransparency = hasTransparency; + + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void ConvertPngToGba(char *inputPath, char *outputPath, int numTiles, int bitDepth) +{ + struct Image image; + + image.bitDepth = bitDepth; + + ReadPng(inputPath, &image); + + WriteImage(outputPath, numTiles, bitDepth, &image, !image.hasPalette); + + FreeImage(&image); +} + +void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + char *inputFileExtension = GetFileExtension(inputPath); + int bitDepth = inputFileExtension[0] - '0'; + char *paletteFilePath = NULL; + bool hasTransparency = false; + int width = 1; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-palette") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No palette file path following \"-palette\".\n"); + + i++; + + paletteFilePath = argv[i]; + } + else if (strcmp(option, "-object") == 0) + { + hasTransparency = true; + } + else if (strcmp(option, "-width") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No width following \"-width\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &width)) + FATAL_ERROR("Failed to parse width.\n"); + + if (width < 1) + FATAL_ERROR("Width must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + ConvertGbaToPng(inputPath, outputPath, width, bitDepth, paletteFilePath, hasTransparency); +} + +void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + char *outputFileExtension = GetFileExtension(outputPath); + int bitDepth = outputFileExtension[0] - '0'; + int numTiles = 0; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-num_tiles") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No number of tiles following \"-num_tiles\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &numTiles)) + FATAL_ERROR("Failed to parse number of tiles.\n"); + + if (numTiles < 1) + FATAL_ERROR("Number of tiles must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + ConvertPngToGba(inputPath, outputPath, numTiles, bitDepth); +} + +void HandlePngToGbaPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Palette palette; + + ReadPngPalette(inputPath, &palette); + WriteGbaPalette(outputPath, &palette); +} + +void HandleGbaToJascPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Palette palette; + + ReadGbaPalette(inputPath, &palette); + WriteJascPalette(outputPath, &palette); +} + +void HandleJascToGbaPaletteCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + int numColors = 0; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-num_colors") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No number of colors following \"-num_colors\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &numColors)) + FATAL_ERROR("Failed to parse number of colors.\n"); + + if (numColors < 1) + FATAL_ERROR("Number of colors must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + struct Palette palette; + + ReadJascPalette(inputPath, &palette); + + if (numColors != 0) + palette.numColors = numColors; + + WriteGbaPalette(outputPath, &palette); +} + +void HandleLatinFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + ReadLatinFont(inputPath, &image); + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void HandlePngToLatinFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + image.bitDepth = 2; + + ReadPng(inputPath, &image); + WriteLatinFont(outputPath, &image); + + FreeImage(&image); +} + +void HandleHalfwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + ReadHalfwidthJapaneseFont(inputPath, &image); + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void HandlePngToHalfwidthJapaneseFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + image.bitDepth = 2; + + ReadPng(inputPath, &image); + WriteHalfwidthJapaneseFont(outputPath, &image); + + FreeImage(&image); +} + +void HandleFullwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + ReadFullwidthJapaneseFont(inputPath, &image); + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void HandlePngToFullwidthJapaneseFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + image.bitDepth = 2; + + ReadPng(inputPath, &image); + WriteFullwidthJapaneseFont(outputPath, &image); + + FreeImage(&image); +} + +void HandleLZCompressCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + int overflowSize = 0; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-overflow") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No size following \"-overflow\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &overflowSize)) + FATAL_ERROR("Failed to parse overflow size.\n"); + + if (overflowSize < 1) + FATAL_ERROR("Overflow size must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + // The overflow option allows a quirk in some of Ruby/Sapphire's tilesets + // to be reproduced. It works by appending a number of zeros to the data + // before compressing it and then amending the LZ header's size field to + // reflect the expected size. This will cause an overflow when decompressing + // the data. + + int fileSize; + unsigned char *buffer = ReadWholeFileZeroPadded(inputPath, &fileSize, overflowSize); + + int compressedSize; + unsigned char *compressedData = LZCompress(buffer, fileSize + overflowSize, &compressedSize); + + compressedData[1] = (unsigned char)fileSize; + compressedData[2] = (unsigned char)(fileSize >> 8); + compressedData[3] = (unsigned char)(fileSize >> 16); + + free(buffer); + + WriteWholeFile(outputPath, compressedData, compressedSize); + + free(compressedData); +} + +void HandleLZDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int uncompressedSize; + unsigned char *uncompressedData = LZDecompress(buffer, fileSize, &uncompressedSize); + + free(buffer); + + WriteWholeFile(outputPath, uncompressedData, uncompressedSize); + + free(uncompressedData); +} + +void HandleRLCompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int compressedSize; + unsigned char *compressedData = RLCompress(buffer, fileSize, &compressedSize); + + free(buffer); + + WriteWholeFile(outputPath, compressedData, compressedSize); + + free(compressedData); +} + +void HandleRLDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int uncompressedSize; + unsigned char *uncompressedData = RLDecompress(buffer, fileSize, &uncompressedSize); + + free(buffer); + + WriteWholeFile(outputPath, uncompressedData, uncompressedSize); + + free(uncompressedData); +} + +int main(int argc, char **argv) +{ + if (argc < 3) + FATAL_ERROR("Usage: gbagfx INPUT_PATH OUTPUT_PATH [options...]\n"); + + struct CommandHandler handlers[] = + { + { "1bpp", "png", HandleGbaToPngCommand }, + { "4bpp", "png", HandleGbaToPngCommand }, + { "8bpp", "png", HandleGbaToPngCommand }, + { "png", "1bpp", HandlePngToGbaCommand }, + { "png", "4bpp", HandlePngToGbaCommand }, + { "png", "8bpp", HandlePngToGbaCommand }, + { "png", "gbapal", HandlePngToGbaPaletteCommand }, + { "gbapal", "pal", HandleGbaToJascPaletteCommand }, + { "pal", "gbapal", HandleJascToGbaPaletteCommand }, + { "latfont", "png", HandleLatinFontToPngCommand }, + { "png", "latfont", HandlePngToLatinFontCommand }, + { "hwjpnfont", "png", HandleHalfwidthJapaneseFontToPngCommand }, + { "png", "hwjpnfont", HandlePngToHalfwidthJapaneseFontCommand }, + { "fwjpnfont", "png", HandleFullwidthJapaneseFontToPngCommand }, + { "png", "fwjpnfont", HandlePngToFullwidthJapaneseFontCommand }, + { NULL, "lz", HandleLZCompressCommand }, + { "lz", NULL, HandleLZDecompressCommand }, + { NULL, "rl", HandleRLCompressCommand }, + { "rl", NULL, HandleRLDecompressCommand }, + { NULL, NULL, NULL } + }; + + char *inputPath = argv[1]; + char *outputPath = argv[2]; + char *inputFileExtension = GetFileExtension(inputPath); + char *outputFileExtension = GetFileExtension(outputPath); + + if (inputFileExtension == NULL) + FATAL_ERROR("Input file \"%s\" has no extension.\n", inputPath); + + if (outputFileExtension == NULL) + FATAL_ERROR("Output file \"%s\" has no extension.\n", outputPath); + + for (int i = 0; handlers[i].function != NULL; i++) + { + if ((handlers[i].inputFileExtension == NULL || strcmp(handlers[i].inputFileExtension, inputFileExtension) == 0) + && (handlers[i].outputFileExtension == NULL || strcmp(handlers[i].outputFileExtension, outputFileExtension) == 0)) + { + handlers[i].function(inputPath, outputPath, argc, argv); + return 0; + } + } + + FATAL_ERROR("Don't know how to convert \"%s\" to \"%s\".\n", inputPath, outputPath); +} diff --git a/tools/gbagfx/rl.c b/tools/gbagfx/rl.c new file mode 100644 index 0000000000..968c9347eb --- /dev/null +++ b/tools/gbagfx/rl.c @@ -0,0 +1,149 @@ +// Copyright (c) 2016 YamaArashi + +#include +#include +#include "global.h" +#include "rl.h" + +unsigned char *RLDecompress(unsigned char *src, int srcSize, int *uncompressedSize) +{ + if (srcSize < 4) + goto fail; + + int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; + + unsigned char *dest = malloc(destSize); + + if (dest == NULL) + goto fail; + + int srcPos = 4; + int destPos = 0; + + for (;;) + { + if (srcPos >= srcSize) + goto fail; + + unsigned char flags = src[srcPos++]; + bool compressed = ((flags & 0x80) != 0); + + if (compressed) + { + int length = (flags & 0x7F) + 3; + unsigned char data = src[srcPos++]; + + if (destPos + length > destSize) + goto fail; + + for (int i = 0; i < length; i++) + dest[destPos++] = data; + } + else + { + int length = (flags & 0x7F) + 1; + + if (destPos + length > destSize) + goto fail; + + for (int i = 0; i < length; i++) + dest[destPos++] = src[srcPos++]; + } + + if (destPos == destSize) + { + *uncompressedSize = destSize; + return dest; + } + } + +fail: + FATAL_ERROR("Fatal error while decompressing RL file.\n"); +} + +unsigned char *RLCompress(unsigned char *src, int srcSize, int *compressedSize) +{ + if (srcSize <= 0) + goto fail; + + int worstCaseDestSize = 4 + srcSize * 2; + + // Round up to the next multiple of four. + worstCaseDestSize = (worstCaseDestSize + 3) & ~3; + + unsigned char *dest = malloc(worstCaseDestSize); + + if (dest == NULL) + goto fail; + + // header + dest[0] = 0x30; // RL compression type + dest[1] = (unsigned char)srcSize; + dest[2] = (unsigned char)(srcSize >> 8); + dest[3] = (unsigned char)(srcSize >> 16); + + int srcPos = 0; + int destPos = 4; + + for (;;) + { + bool compress = false; + int uncompressedStart = srcPos; + int uncompressedLength = 0; + + while (srcPos < srcSize && uncompressedLength < (0x7F + 1)) + { + compress = (srcPos + 2 < srcSize && src[srcPos] == src[srcPos + 1] && src[srcPos] == src[srcPos + 2]); + + if (compress) + break; + + srcPos++; + uncompressedLength++; + } + + if (uncompressedLength > 0) + { + dest[destPos++] = uncompressedLength - 1; + + for (int i = 0; i < uncompressedLength; i++) + dest[destPos++] = src[uncompressedStart + i]; + } + + if (compress) + { + unsigned char data = src[srcPos]; + int compressedLength = 0; + + while (compressedLength < (0x7F + 3) + && srcPos + compressedLength < srcSize + && src[srcPos + compressedLength] == data) + { + compressedLength++; + } + + dest[destPos++] = 0x80 | (compressedLength - 3); + dest[destPos++] = data; + + srcPos += compressedLength; + } + + if (srcPos == srcSize) + { + // Pad to multiple of 4 bytes. + int remainder = destPos % 4; + + if (remainder != 0) + { + for (int i = 0; i < 4 - remainder; i++) + dest[destPos++] = 0; + } + + *compressedSize = destPos; + return dest; + } + } + +fail: + FATAL_ERROR("Fatal error while compressing RL file.\n"); +} diff --git a/tools/gbagfx/rl.h b/tools/gbagfx/rl.h new file mode 100644 index 0000000000..02ad8d6d3b --- /dev/null +++ b/tools/gbagfx/rl.h @@ -0,0 +1,9 @@ +// Copyright (c) 2016 YamaArashi + +#ifndef RL_H +#define RL_H + +unsigned char *RLDecompress(unsigned char *src, int srcSize, int *uncompressedSize); +unsigned char *RLCompress(unsigned char *src, int srcSize, int *compressedSize); + +#endif // RL_H diff --git a/tools/gbagfx/util.c b/tools/gbagfx/util.c new file mode 100644 index 0000000000..87abeb31c4 --- /dev/null +++ b/tools/gbagfx/util.c @@ -0,0 +1,124 @@ +// Copyright (c) 2015 YamaArashi + +#include +#include +#include +#include +#include +#include +#include "global.h" +#include "util.h" + +bool ParseNumber(char *s, char **end, int radix, int *intValue) +{ + char *localEnd; + + if (end == NULL) + end = &localEnd; + + errno = 0; + + const long longValue = strtol(s, end, radix); + + if (*end == s) + return false; // not a number + + if ((longValue == LONG_MIN || longValue == LONG_MAX) && errno == ERANGE) + return false; + + if (longValue > INT_MAX) + return false; + + if (longValue < INT_MIN) + return false; + + *intValue = (int)longValue; + + return true; +} + +char *GetFileExtension(char *path) +{ + char *extension = path; + + while (*extension != 0) + extension++; + + while (extension > path && *extension != '.') + extension--; + + if (extension == path) + return NULL; + + extension++; + + if (*extension == 0) + return NULL; + + return extension; +} + +unsigned char *ReadWholeFile(char *path, int *size) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + fseek(fp, 0, SEEK_END); + + *size = ftell(fp); + + unsigned char *buffer = malloc(*size); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for reading \"%s\".\n", path); + + rewind(fp); + + if (fread(buffer, *size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path); + + fclose(fp); + + return buffer; +} + +unsigned char *ReadWholeFileZeroPadded(char *path, int *size, int padAmount) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + fseek(fp, 0, SEEK_END); + + *size = ftell(fp); + + unsigned char *buffer = calloc(*size + padAmount, 1); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for reading \"%s\".\n", path); + + rewind(fp); + + if (fread(buffer, *size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path); + + fclose(fp); + + return buffer; +} + +void WriteWholeFile(char *path, void *buffer, int bufferSize) +{ + FILE *fp = fopen(path, "wb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); + + if (fwrite(buffer, bufferSize, 1, fp) != 1) + FATAL_ERROR("Failed to write to \"%s\".\n", path); + + fclose(fp); +} diff --git a/tools/gbagfx/util.h b/tools/gbagfx/util.h new file mode 100644 index 0000000000..6d7a9c21eb --- /dev/null +++ b/tools/gbagfx/util.h @@ -0,0 +1,14 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef UTIL_H +#define UTIL_H + +#include + +bool ParseNumber(char *s, char **end, int radix, int *intValue); +char *GetFileExtension(char *path); +unsigned char *ReadWholeFile(char *path, int *size); +unsigned char *ReadWholeFileZeroPadded(char *path, int *size, int padAmount); +void WriteWholeFile(char *path, void *buffer, int bufferSize); + +#endif // UTIL_H diff --git a/tools/mid2agb/.gitignore b/tools/mid2agb/.gitignore new file mode 100644 index 0000000000..0e7264c86e --- /dev/null +++ b/tools/mid2agb/.gitignore @@ -0,0 +1 @@ +mid2agb diff --git a/tools/mid2agb/LICENSE b/tools/mid2agb/LICENSE new file mode 100644 index 0000000000..534d15349e --- /dev/null +++ b/tools/mid2agb/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/mid2agb/Makefile b/tools/mid2agb/Makefile new file mode 100644 index 0000000000..f27f2cad40 --- /dev/null +++ b/tools/mid2agb/Makefile @@ -0,0 +1,15 @@ +CXX := g++ + +CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror + +SRCS := agb.cpp error.cpp main.cpp midi.cpp tables.cpp + +HEADERS := agb.h error.h main.h midi.h tables.h + +.PHONY: clean + +mid2agb: $(SRCS) $(HEADERS) + $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) mid2agb mid2agb.exe diff --git a/tools/mid2agb/agb.cpp b/tools/mid2agb/agb.cpp new file mode 100644 index 0000000000..9ff1efa861 --- /dev/null +++ b/tools/mid2agb/agb.cpp @@ -0,0 +1,462 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include +#include "agb.h" +#include "main.h" +#include "midi.h" +#include "tables.h" + +int g_agbTrack; + +static std::string s_lastOpName; +static int s_blockNum; +static bool s_keepLastOpName; +static int s_lastNote; +static int s_lastVelocity; +static bool s_noteChanged; +static bool s_velocityChanged; +static bool s_inPattern; +static int s_extendedCommand; + +void PrintAgbHeader() +{ + std::fprintf(g_outputFile, "\t.include \"MPlayDef.s\"\n\n"); + std::fprintf(g_outputFile, "\t.equ\t%s_grp, voicegroup%03u\n", g_asmLabel.c_str(), g_voiceGroup); + std::fprintf(g_outputFile, "\t.equ\t%s_pri, %u\n", g_asmLabel.c_str(), g_priority); + + if (g_reverb >= 0) + std::fprintf(g_outputFile, "\t.equ\t%s_rev, reverb_set+%u\n", g_asmLabel.c_str(), g_reverb); + else + std::fprintf(g_outputFile, "\t.equ\t%s_rev, 0\n", g_asmLabel.c_str()); + + std::fprintf(g_outputFile, "\t.equ\t%s_mvl, %u\n", g_asmLabel.c_str(), g_masterVolume); + std::fprintf(g_outputFile, "\t.equ\t%s_key, %u\n", g_asmLabel.c_str(), 0); + std::fprintf(g_outputFile, "\t.equ\t%s_tbs, %u\n", g_asmLabel.c_str(), g_clocksPerBeat); + std::fprintf(g_outputFile, "\t.equ\t%s_exg, %u\n", g_asmLabel.c_str(), g_exactGateTime); + std::fprintf(g_outputFile, "\t.equ\t%s_cmp, %u\n", g_asmLabel.c_str(), g_compressionEnabled); + + std::fprintf(g_outputFile, "\n\t.section .rodata\n"); + std::fprintf(g_outputFile, "\t.global\t%s\n", g_asmLabel.c_str()); + + std::fprintf(g_outputFile, "\t.align\t2\n"); +} + +void ResetTrackVars() +{ + s_lastVelocity = -1; + s_lastNote = -1; + s_velocityChanged = false; + s_noteChanged = false; + s_keepLastOpName = false; + s_lastOpName = ""; + s_inPattern = false; +} + +void PrintWait(int wait) +{ + if (wait > 0) + { + std::fprintf(g_outputFile, "\t.byte\tW%02d\n", wait); + s_velocityChanged = true; + s_noteChanged = true; + s_keepLastOpName = true; + } +} + +void PrintOp(int wait, std::string name, const char *format, ...) +{ + std::va_list args; + va_start(args, format); + std::fprintf(g_outputFile, "\t.byte\t\t"); + + if (format != nullptr) + { + if (!g_compressionEnabled || s_lastOpName != name) + { + std::fprintf(g_outputFile, "%s, ", name.c_str()); + s_lastOpName = name; + } + else + { + std::fprintf(g_outputFile, " "); + } + std::vfprintf(g_outputFile, format, args); + } + else + { + std::fputs(name.c_str(), g_outputFile); + s_lastOpName = name; + } + + std::fprintf(g_outputFile, "\n"); + + va_end(args); + + PrintWait(wait); +} + +void PrintByte(const char *format, ...) +{ + std::va_list args; + va_start(args, format); + std::fprintf(g_outputFile, "\t.byte\t"); + std::vfprintf(g_outputFile, format, args); + std::fprintf(g_outputFile, "\n"); + s_velocityChanged = true; + s_noteChanged = true; + s_keepLastOpName = true; + va_end(args); +} + +void PrintWord(const char *format, ...) +{ + std::va_list args; + va_start(args, format); + std::fprintf(g_outputFile, "\t .word\t"); + std::vfprintf(g_outputFile, format, args); + std::fprintf(g_outputFile, "\n"); + va_end(args); +} + +void PrintNote(const Event& event) +{ + int note = event.note; + int velocity = g_noteVelocityLUT[event.param1]; + int duration = -1; + + if (event.param2 != -1) + duration = g_noteDurationLUT[event.param2]; + + int gateTimeParam = 0; + + if (g_exactGateTime && duration != -1) + gateTimeParam = event.param2 - duration; + + char gtpBuf[16]; + + if (gateTimeParam > 0) + std::snprintf(gtpBuf, sizeof(gtpBuf), ", gtp%u", gateTimeParam); + else + gtpBuf[0] = 0; + + char opName[16]; + + if (duration == -1) + std::strcpy(opName, "TIE "); + else + std::snprintf(opName, sizeof(opName), "N%02u ", duration); + + bool noteChanged = true; + bool velocityChanged = true; + + if (g_compressionEnabled) + { + noteChanged = (note != s_lastNote); + velocityChanged = (velocity != s_lastVelocity); + } + + if (s_keepLastOpName) + s_keepLastOpName = false; + else + s_lastOpName = ""; + + if (noteChanged || velocityChanged || (gateTimeParam > 0)) + { + s_lastNote = note; + + char noteBuf[16]; + + if (note >= 24) + std::snprintf(noteBuf, sizeof(noteBuf), g_noteTable[note % 12], note / 12 - 2); + else + std::snprintf(noteBuf, sizeof(noteBuf), g_minusNoteTable[note % 12], note / -12 + 2); + + char velocityBuf[16]; + + if (velocityChanged || (gateTimeParam > 0)) + { + s_lastVelocity = velocity; + std::snprintf(velocityBuf, sizeof(velocityBuf), ", v%03u", velocity); + } + else + { + velocityBuf[0] = 0; + } + + PrintOp(event.time, opName, "%s%s%s", noteBuf, velocityBuf, gtpBuf); + } + else + { + PrintOp(event.time, opName, 0); + } + + s_noteChanged = noteChanged; + s_velocityChanged = velocityChanged; +} + +void PrintEndOfTieOp(const Event& event) +{ + int note = event.note; + bool noteChanged = (note != s_lastNote); + + if (!noteChanged || !s_noteChanged) + s_lastOpName = ""; + + if (!noteChanged && g_compressionEnabled) + { + PrintOp(event.time, "EOT ", nullptr); + } + else + { + s_lastNote = note; + if (note >= 24) + PrintOp(event.time, "EOT ", g_noteTable[note % 12], note / 12 - 2); + else + PrintOp(event.time, "EOT ", g_minusNoteTable[note % 12], note / -12 + 2); + } + + s_noteChanged = noteChanged; +} + +void PrintSeqLoopLabel(const Event& event) +{ + s_blockNum = event.param1 + 1; + std::fprintf(g_outputFile, "%s_%u_B%u:\n", g_asmLabel.c_str(), g_agbTrack, s_blockNum); + PrintWait(event.time); + ResetTrackVars(); +} + +void PrintExtendedOp(const Event& event) +{ + // TODO: support for other extended commands + + switch (s_extendedCommand) + { + case 0x08: + PrintOp(event.time, "XCMD ", "xIECV , %u", event.param2); + break; + case 0x09: + PrintOp(event.time, "XCMD ", "xIECL , %u", event.param2); + break; + default: + PrintWait(event.time); + break; + } +} + +void PrintControllerOp(const Event& event) +{ + switch (event.param1) + { + case 0x01: + PrintOp(event.time, "MOD ", "%u", event.param2); + break; + case 0x07: + PrintOp(event.time, "VOL ", "%u*%s_mvl/mxv", event.param2, g_asmLabel.c_str()); + break; + case 0x0A: + PrintOp(event.time, "PAN ", "c_v%+d", event.param2 - 64); + break; + case 0x0C: + case 0x10: + // TODO: memacc + break; + case 0x0D: + // TODO: memacc var + break; + case 0x0E: + // TODO: memacc var + break; + case 0x0F: + // TODO: memacc var + break; + case 0x11: + std::fprintf(g_outputFile, "%s_%u_L%u:\n", g_asmLabel.c_str(), g_agbTrack, event.param2); + PrintWait(event.time); + ResetTrackVars(); + break; + case 0x14: + PrintOp(event.time, "BENDR ", "%u", event.param2); + break; + case 0x15: + PrintOp(event.time, "LFOS ", "%u", event.param2); + break; + case 0x16: + PrintOp(event.time, "MODT ", "%u", event.param2); + break; + case 0x18: + PrintOp(event.time, "TUNE ", "c_v%+d", event.param2 - 64); + break; + case 0x1A: + PrintOp(event.time, "LFODL ", "%u", event.param2); + break; + case 0x1D: + case 0x1F: + PrintExtendedOp(event); + break; + case 0x1E: + s_extendedCommand = event.param2; + // TODO: loop op + break; + case 0x21: + case 0x27: + PrintByte("PRIO , %u", event.param2); + PrintWait(event.time); + break; + default: + PrintWait(event.time); + break; + } +} + +void PrintAgbTrack(std::vector& events) +{ + std::fprintf(g_outputFile, "\n@**************** Track %u (Midi-Chn.%u) ****************@\n\n", g_agbTrack, g_midiChan + 1); + std::fprintf(g_outputFile, "%s_%u:\n", g_asmLabel.c_str(), g_agbTrack); + PrintWait(g_initialWait); + PrintByte("KEYSH , %s_key%+d", g_asmLabel.c_str(), 0); + + int wholeNoteCount = 0; + int loopEndBlockNum = 0; + + ResetTrackVars(); + + bool foundVolBeforeNote = false; + + for (const Event& event : events) + { + if (event.type == EventType::Note) + break; + + if (event.type == EventType::Controller && event.param1 == 0x07) + { + foundVolBeforeNote = true; + break; + } + } + + if (!foundVolBeforeNote) + PrintByte("\tVOL , 127*%s_mvl/mxv", g_asmLabel.c_str()); + + for (unsigned i = 0; events[i].type != EventType::EndOfTrack; i++) + { + const Event& event = events[i]; + + if (IsPatternBoundary(event.type)) + { + if (s_inPattern) + PrintByte("PEND"); + s_inPattern = false; + } + + if (event.type == EventType::WholeNoteMark || event.type == EventType::Pattern) + std::fprintf(g_outputFile, "@ %03d ----------------------------------------\n", wholeNoteCount++); + + switch (event.type) + { + case EventType::Note: + PrintNote(event); + break; + case EventType::EndOfTie: + PrintEndOfTieOp(event); + break; + case EventType::Label: + PrintSeqLoopLabel(event); + break; + case EventType::LoopEnd: + PrintByte("GOTO"); + PrintWord("%s_%u_B%u", g_asmLabel.c_str(), g_agbTrack, loopEndBlockNum); + PrintSeqLoopLabel(event); + break; + case EventType::LoopEndBegin: + PrintByte("GOTO"); + PrintWord("%s_%u_B%u", g_asmLabel.c_str(), g_agbTrack, loopEndBlockNum); + PrintSeqLoopLabel(event); + loopEndBlockNum = s_blockNum; + break; + case EventType::LoopBegin: + PrintSeqLoopLabel(event); + loopEndBlockNum = s_blockNum; + break; + case EventType::WholeNoteMark: + if (event.param2 & 0x80000000) + { + std::fprintf(g_outputFile, "%s_%u_%03lu:\n", g_asmLabel.c_str(), g_agbTrack, (unsigned long)(event.param2 & 0x7FFFFFFF)); + ResetTrackVars(); + s_inPattern = true; + } + PrintWait(event.time); + break; + case EventType::Pattern: + PrintByte("PATT"); + PrintWord("%s_%u_%03lu", g_asmLabel.c_str(), g_agbTrack, event.param2); + + while (!IsPatternBoundary(events[i + 1].type)) + i++; + + ResetTrackVars(); + break; + case EventType::Tempo: + PrintByte("TEMPO , %u*%s_tbs/2", 60000000 / event.param2, g_asmLabel.c_str()); + PrintWait(event.time); + break; + case EventType::InstrumentChange: + PrintOp(event.time, "VOICE ", "%u", event.param1); + break; + case EventType::PitchBend: + PrintOp(event.time, "BEND ", "c_v%+d", event.param2 - 64); + break; + case EventType::Controller: + PrintControllerOp(event); + break; + default: + PrintWait(event.time); + break; + } + } + + PrintByte("FINE"); +} + +void PrintAgbFooter() +{ + int trackCount = g_agbTrack - 1; + + std::fprintf(g_outputFile, "\n@******************************************************@\n"); + std::fprintf(g_outputFile, "\t.align\t2\n"); + std::fprintf(g_outputFile, "\n%s:\n", g_asmLabel.c_str()); + std::fprintf(g_outputFile, "\t.byte\t%u\t@ NumTrks\n", trackCount); + std::fprintf(g_outputFile, "\t.byte\t%u\t@ NumBlks\n", 0); + std::fprintf(g_outputFile, "\t.byte\t%s_pri\t@ Priority\n", g_asmLabel.c_str()); + std::fprintf(g_outputFile, "\t.byte\t%s_rev\t@ Reverb.\n", g_asmLabel.c_str()); + std::fprintf(g_outputFile, "\n"); + std::fprintf(g_outputFile, "\t.word\t%s_grp\n", g_asmLabel.c_str()); + std::fprintf(g_outputFile, "\n"); + + // track pointers + for (int i = 1; i <= trackCount; i++) + std::fprintf(g_outputFile, "\t.word\t%s_%u\n", g_asmLabel.c_str(), i); + + std::fprintf(g_outputFile, "\n\t.end\n"); +} diff --git a/tools/mid2agb/agb.h b/tools/mid2agb/agb.h new file mode 100644 index 0000000000..7eab3c1433 --- /dev/null +++ b/tools/mid2agb/agb.h @@ -0,0 +1,33 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef AGB_H +#define AGB_H + +#include +#include "midi.h" + +void PrintAgbHeader(); +void PrintAgbTrack(std::vector& events); +void PrintAgbFooter(); + +extern int g_agbTrack; + +#endif // AGB_H diff --git a/tools/mid2agb/error.cpp b/tools/mid2agb/error.cpp new file mode 100644 index 0000000000..13e38ffa81 --- /dev/null +++ b/tools/mid2agb/error.cpp @@ -0,0 +1,36 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include + +// Reports an error diagnostic and terminates the program. +[[noreturn]] void RaiseError(const char* format, ...) +{ + const int bufferSize = 1024; + char buffer[bufferSize]; + std::va_list args; + va_start(args, format); + std::vsnprintf(buffer, bufferSize, format, args); + std::fprintf(stderr, "error: %s\n", buffer); + va_end(args); + std::exit(1); +} diff --git a/tools/mid2agb/error.h b/tools/mid2agb/error.h new file mode 100644 index 0000000000..da4f011427 --- /dev/null +++ b/tools/mid2agb/error.h @@ -0,0 +1,26 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef ERROR_H +#define ERROR_H + +[[noreturn]] void RaiseError(const char* format, ...); + +#endif // ERROR_H diff --git a/tools/mid2agb/main.cpp b/tools/mid2agb/main.cpp new file mode 100644 index 0000000000..9b883fba5b --- /dev/null +++ b/tools/mid2agb/main.cpp @@ -0,0 +1,230 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include +#include +#include +#include +#include "main.h" +#include "error.h" +#include "midi.h" +#include "agb.h" + +FILE* g_inputFile = nullptr; +FILE* g_outputFile = nullptr; + +std::string g_asmLabel; +int g_masterVolume = 127; +int g_voiceGroup = 0; +int g_priority = 0; +int g_reverb = -1; +int g_clocksPerBeat = 1; +bool g_exactGateTime = false; +bool g_compressionEnabled = true; + +[[noreturn]] static void PrintUsage() +{ + std::printf( + "Usage: MID2AGB name [options]\n" + "\n" + " input_file filename(.mid) of MIDI file\n" + " output_file filename(.s) for AGB file (default:input_file)\n" + "\n" + "options -V??? master volume (default:127)\n" + " -G??? voice group number (default:0)\n" + " -P??? priority (default:0)\n" + " -R??? reverb (default:off)\n" + " -X 48 clocks/beat (default:24 clocks/beat)\n" + " -E exact gate-time\n" + " -N no compression\n" + ); + std::exit(1); +} + +static std::string StripExtension(std::string s) +{ + std::size_t pos = s.find_last_of('.'); + + if (pos > 0 && pos != std::string::npos) + { + s = s.substr(0, pos); + } + + return s; +} + +static std::string GetExtension(std::string s) +{ + std::size_t pos = s.find_last_of('.'); + + if (pos > 0 && pos != std::string::npos) + { + return s.substr(pos + 1); + } + + return ""; +} + +struct Option +{ + char letter = 0; + const char *arg = NULL; +}; + +static Option ParseOption(int& index, const int argc, char** argv) +{ + static std::set optionsWithArg = { 'L', 'V', 'G', 'P', 'R' }; + static std::set optionsWithoutArg = { 'X', 'E', 'N' }; + + assert(index >= 0 && index < argc); + + const char *opt = argv[index]; + + assert(opt[0] == '-'); + assert(std::strlen(opt) == 2); + + char letter = std::toupper(opt[1]); + + bool isOption = false; + bool hasArg = false; + + if (optionsWithArg.count(letter) != 0) + { + isOption = true; + hasArg = true; + } + else if (optionsWithoutArg.count(letter) != 0) + { + isOption = true; + } + + if (!isOption) + PrintUsage(); + + Option retVal; + + retVal.letter = letter; + + if (hasArg) + { + index++; + + if (index >= argc) + RaiseError("missing argument for \"-%c\"", letter); + + retVal.arg = argv[index]; + } + + return retVal; +} + +int main(int argc, char** argv) +{ + std::string inputFilename; + std::string outputFilename; + + for (int i = 1; i < argc; i++) + { + if (argv[i][0] == '-' && std::strlen(argv[i]) == 2) + { + Option option = ParseOption(i, argc, argv); + + switch (option.letter) + { + case 'E': + g_exactGateTime = true; + break; + case 'G': + g_voiceGroup = std::stoi(option.arg); + break; + case 'L': + g_asmLabel = option.arg; + break; + case 'N': + g_compressionEnabled = false; + break; + case 'P': + g_priority = std::stoi(option.arg); + break; + case 'R': + g_reverb = std::stoi(option.arg); + break; + case 'V': + g_masterVolume = std::stoi(option.arg); + break; + case 'X': + g_clocksPerBeat = 2; + break; + } + } + else + { + switch (i) + { + case 1: + inputFilename = argv[i]; + break; + case 2: + outputFilename = argv[i]; + break; + default: + PrintUsage(); + } + } + } + + if (inputFilename.empty()) + PrintUsage(); + + if (GetExtension(inputFilename) != "mid") + RaiseError("input filename extension is not \"mid\""); + + if (outputFilename.empty()) + outputFilename = StripExtension(inputFilename) + ".s"; + + if (GetExtension(outputFilename) != "s") + RaiseError("output filename extension is not \"s\""); + + if (g_asmLabel.empty()) + g_asmLabel = StripExtension(outputFilename); + + g_inputFile = std::fopen(inputFilename.c_str(), "rb"); + + if (g_inputFile == nullptr) + RaiseError("failed to open \"%s\" for reading", inputFilename.c_str()); + + g_outputFile = std::fopen(outputFilename.c_str(), "w"); + + if (g_outputFile == nullptr) + RaiseError("failed to open \"%s\" for writing", outputFilename.c_str()); + + ReadMidiFileHeader(); + PrintAgbHeader(); + ReadMidiTracks(); + PrintAgbFooter(); + + std::fclose(g_inputFile); + std::fclose(g_outputFile); + + return 0; +} diff --git a/tools/mid2agb/main.h b/tools/mid2agb/main.h new file mode 100644 index 0000000000..6e71e73fd4 --- /dev/null +++ b/tools/mid2agb/main.h @@ -0,0 +1,39 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef MAIN_H +#define MAIN_H + +#include +#include + +extern FILE* g_inputFile; +extern FILE* g_outputFile; + +extern std::string g_asmLabel; +extern int g_masterVolume; +extern int g_voiceGroup; +extern int g_priority; +extern int g_reverb; +extern int g_clocksPerBeat; +extern bool g_exactGateTime; +extern bool g_compressionEnabled; + +#endif // MAIN_H diff --git a/tools/mid2agb/midi.cpp b/tools/mid2agb/midi.cpp new file mode 100644 index 0000000000..ba5dd654ae --- /dev/null +++ b/tools/mid2agb/midi.cpp @@ -0,0 +1,942 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include +#include +#include +#include "midi.h" +#include "main.h" +#include "error.h" +#include "agb.h" +#include "tables.h" + +enum class MidiEventCategory +{ + Control, + SysEx, + Meta, + Invalid, +}; + +MidiFormat g_midiFormat; +std::int_fast32_t g_midiTrackCount; +std::int16_t g_midiTimeDiv; + +int g_midiChan; +std::int32_t g_initialWait; + +static long s_trackDataStart; +static std::vector s_seqEvents; +static std::vector s_trackEvents; +static std::int32_t s_absoluteTime; +static int s_blockCount = 0; +static int s_minNote; +static int s_maxNote; + +void Seek(long offset) +{ + if (std::fseek(g_inputFile, offset, SEEK_SET) != 0) + RaiseError("failed to seek to %l", offset); +} + +void Skip(long offset) +{ + if (std::fseek(g_inputFile, offset, SEEK_CUR) != 0) + RaiseError("failed to skip %l bytes", offset); +} + +std::string ReadSignature() +{ + char signature[4]; + + if (std::fread(signature, 4, 1, g_inputFile) != 1) + RaiseError("failed to read signature"); + + return std::string(signature, 4); +} + +std::uint32_t ReadInt8() +{ + int c = std::fgetc(g_inputFile); + + if (c < 0) + RaiseError("unexpected EOF"); + + return c; +} + +std::uint32_t ReadInt16() +{ + std::uint32_t val = 0; + val |= ReadInt8() << 8; + val |= ReadInt8(); + return val; +} + +std::uint32_t ReadInt24() +{ + std::uint32_t val = 0; + val |= ReadInt8() << 16; + val |= ReadInt8() << 8; + val |= ReadInt8(); + return val; +} + +std::uint32_t ReadInt32() +{ + std::uint32_t val = 0; + val |= ReadInt8() << 24; + val |= ReadInt8() << 16; + val |= ReadInt8() << 8; + val |= ReadInt8(); + return val; +} + +std::uint32_t ReadVLQ() +{ + std::uint32_t val = 0; + std::uint32_t c; + + do + { + c = ReadInt8(); + val <<= 7; + val |= (c & 0x7F); + } while (c & 0x80); + + return val; +} + +void ReadMidiFileHeader() +{ + Seek(0); + + if (ReadSignature() != "MThd") + RaiseError("MIDI file header signature didn't match \"MThd\""); + + std::uint32_t headerLength = ReadInt32(); + + if (headerLength != 6) + RaiseError("MIDI file header length isn't 6"); + + std::uint16_t midiFormat = ReadInt16(); + + if (midiFormat >= 2) + RaiseError("unsupported MIDI format (%u)", midiFormat); + + g_midiFormat = (MidiFormat)midiFormat; + g_midiTrackCount = ReadInt16(); + g_midiTimeDiv = ReadInt16(); + + if (g_midiTimeDiv < 0) + RaiseError("unsupported MIDI time division (%d)", g_midiTimeDiv); +} + +long ReadMidiTrackHeader(long offset) +{ + Seek(offset); + + if (ReadSignature() != "MTrk") + RaiseError("MIDI track header signature didn't match \"MTrk\""); + + long size = ReadInt32(); + + s_trackDataStart = std::ftell(g_inputFile); + + return size + 8; +} + +void StartTrack() +{ + Seek(s_trackDataStart); + s_absoluteTime = 0; +} + +void SkipEventData() +{ + Skip(ReadVLQ()); +} + +void DetermineEventCategory(MidiEventCategory& category, int& typeChan, int& size) +{ + typeChan = ReadInt8(); + + if (typeChan == 0xFF) + { + category = MidiEventCategory::Meta; + size = 0; + } + else if (typeChan >= 0xF0) + { + category = MidiEventCategory::SysEx; + size = 0; + } + else if (typeChan >= 0x80) + { + category = MidiEventCategory::Control; + + switch (typeChan >> 4) + { + case 0xC: + case 0xD: + size = 1; + break; + default: + size = 2; + break; + } + } + else + { + category = MidiEventCategory::Invalid; + } +} + +void MakeBlockEvent(Event& event, EventType type) +{ + event.type = type; + event.param1 = s_blockCount++; + event.param2 = 0; +} + +std::string ReadEventText() +{ + char buffer[2]; + std::uint32_t length = ReadVLQ(); + + if (length <= 2) + { + if (fread(buffer, length, 1, g_inputFile) != 1) + RaiseError("failed to read event text"); + } + else + { + Skip(length); + length = 0; + } + + return std::string(buffer, length); +} + +bool ReadSeqEvent(Event& event) +{ + s_absoluteTime += ReadVLQ(); + event.time = s_absoluteTime; + + MidiEventCategory category; + int typeChan; + int size; + + DetermineEventCategory(category, typeChan, size); + + if (category == MidiEventCategory::Control) + { + Skip(size); + return false; + } + + if (category == MidiEventCategory::SysEx) + { + SkipEventData(); + return false; + } + + if (category == MidiEventCategory::Invalid) + RaiseError("invalid event"); + + // meta event + int metaEventType = ReadInt8(); + + if (metaEventType >= 1 && metaEventType <= 7) + { + // text event + std::string text = ReadEventText(); + + if (text == "[") + MakeBlockEvent(event, EventType::LoopBegin); + else if (text == "][") + MakeBlockEvent(event, EventType::LoopEndBegin); + else if (text == "]") + MakeBlockEvent(event, EventType::LoopEnd); + else if (text == ":") + MakeBlockEvent(event, EventType::Label); + else + return false; + } + else + { + switch (metaEventType) + { + case 0x2F: // end of track + SkipEventData(); + event.type = EventType::EndOfTrack; + event.param1 = 0; + event.param2 = 0; + break; + case 0x51: // tempo + if (ReadVLQ() != 3) + RaiseError("invalid tempo size"); + + event.type = EventType::Tempo; + event.param1 = 0; + event.param2 = ReadInt24(); + break; + case 0x58: // time signature + { + if (ReadVLQ() != 4) + RaiseError("invalid time signature size"); + + int numerator = ReadInt8(); + int denominatorExponent = ReadInt8(); + + if (denominatorExponent >= 16) + RaiseError("invalid time signature denominator"); + + Skip(2); // ignore other values + + int clockTicks = 96 * numerator * g_clocksPerBeat; + int denominator = 1 << denominatorExponent; + int timeSig = clockTicks / denominator; + + if (timeSig <= 0 || timeSig >= 0x10000) + RaiseError("invalid time signature"); + + event.type = EventType::TimeSignature; + event.param1 = 0; + event.param2 = timeSig; + break; + } + default: + SkipEventData(); + return false; + } + } + + return true; +} + +void ReadSeqEvents() +{ + StartTrack(); + + for (;;) + { + Event event = {}; + + if (ReadSeqEvent(event)) + { + s_seqEvents.push_back(event); + + if (event.type == EventType::EndOfTrack) + return; + } + } +} + +bool CheckNoteEnd(Event& event) +{ + event.param2 += ReadVLQ(); + + MidiEventCategory category; + int typeChan; + int size; + + DetermineEventCategory(category, typeChan, size); + + if (category == MidiEventCategory::Control) + { + int chan = typeChan & 0xF; + + if (chan != g_midiChan) + { + Skip(size); + return false; + } + + switch (typeChan & 0xF0) + { + case 0x80: // note off + { + int note = ReadInt8(); + ReadInt8(); // ignore velocity + if (note == event.note) + return true; + break; + } + case 0x90: // note on + { + int note = ReadInt8(); + int velocity = ReadInt8(); + if (velocity == 0 && note == event.note) + return true; + break; + } + default: + Skip(size); + break; + } + + return false; + } + + if (category == MidiEventCategory::SysEx) + { + SkipEventData(); + return false; + } + + if (category == MidiEventCategory::Meta) + { + int metaEventType = ReadInt8(); + SkipEventData(); + + if (metaEventType == 0x2F) + RaiseError("note doesn't end"); + + return false; + } + + RaiseError("invalid event"); +} + +void FindNoteEnd(Event& event) +{ + long startPos = ftell(g_inputFile); + + event.param2 = 0; + + while (!CheckNoteEnd(event)) + ; + + Seek(startPos); +} + +bool ReadTrackEvent(Event& event) +{ + s_absoluteTime += ReadVLQ(); + event.time = s_absoluteTime; + + MidiEventCategory category; + int typeChan; + int size; + + DetermineEventCategory(category, typeChan, size); + + if (category == MidiEventCategory::Control) + { + int chan = typeChan & 0xF; + + if (chan != g_midiChan) + { + Skip(size); + return false; + } + + switch (typeChan & 0xF0) + { + case 0x90: // note on + { + int note = ReadInt8(); + int velocity = ReadInt8(); + + if (velocity != 0) + { + event.type = EventType::Note; + event.note = note; + event.param1 = velocity; + FindNoteEnd(event); + if (event.param2 > 0) + { + if (note < s_minNote) + s_minNote = note; + if (note > s_maxNote) + s_maxNote = note; + } + } + break; + } + case 0xB0: // controller event + event.type = EventType::Controller; + event.param1 = ReadInt8(); // controller index + event.param2 = ReadInt8(); // value + break; + case 0xC0: // instrument change + event.type = EventType::InstrumentChange; + event.param1 = ReadInt8(); // instrument + event.param2 = 0; + break; + case 0xE0: // pitch bend + event.type = EventType::PitchBend; + event.param1 = ReadInt8(); + event.param2 = ReadInt8(); + break; + default: + Skip(size); + return false; + } + + return true; + } + + if (category == MidiEventCategory::SysEx) + { + SkipEventData(); + return false; + } + + if (category == MidiEventCategory::Meta) + { + int metaEventType = ReadInt8(); + SkipEventData(); + + if (metaEventType == 0x2F) + { + event.type = EventType::EndOfTrack; + event.param1 = 0; + event.param2 = 0; + return true; + } + + return false; + } + + RaiseError("invalid event"); +} + +void ReadTrackEvents() +{ + StartTrack(); + + s_trackEvents.clear(); + + s_minNote = 0xFF; + s_maxNote = 0; + + for (;;) + { + Event event = {}; + + if (ReadTrackEvent(event)) + { + s_trackEvents.push_back(event); + + if (event.type == EventType::EndOfTrack) + return; + } + } +} + +bool EventCompare(const Event& event1, const Event& event2) +{ + if (event1.time < event2.time) + return true; + + if (event1.time > event2.time) + return false; + + unsigned event1Type = (unsigned)event1.type; + unsigned event2Type = (unsigned)event2.type; + + if (event1.type == EventType::Note) + event1Type += event1.note; + + if (event2.type == EventType::Note) + event2Type += event2.note; + + if (event1Type < event2Type) + return true; + + if (event1Type > event2Type) + return false; + + if (event1.type == EventType::EndOfTie) + { + if (event1.note < event2.note) + return true; + + if (event1.note > event2.note) + return false; + } + + return false; +} + +std::unique_ptr> MergeEvents() +{ + std::unique_ptr> events(new std::vector()); + + unsigned trackEventPos = 0; + unsigned seqEventPos = 0; + + while (s_trackEvents[trackEventPos].type != EventType::EndOfTrack + && s_seqEvents[seqEventPos].type != EventType::EndOfTrack) + { + if (EventCompare(s_trackEvents[trackEventPos], s_seqEvents[seqEventPos])) + events->push_back(s_trackEvents[trackEventPos++]); + else + events->push_back(s_seqEvents[seqEventPos++]); + } + + while (s_trackEvents[trackEventPos].type != EventType::EndOfTrack) + events->push_back(s_trackEvents[trackEventPos++]); + + while (s_seqEvents[seqEventPos].type != EventType::EndOfTrack) + events->push_back(s_seqEvents[seqEventPos++]); + + // Push the EndOfTrack event with the larger time. + if (EventCompare(s_trackEvents[trackEventPos], s_seqEvents[seqEventPos])) + events->push_back(s_seqEvents[seqEventPos]); + else + events->push_back(s_trackEvents[trackEventPos]); + + return events; +} + +void ConvertTimes(std::vector& events) +{ + for (Event& event : events) + { + event.time = (24 * g_clocksPerBeat * event.time) / g_midiTimeDiv; + + if (event.type == EventType::Note) + { + event.param1 = g_noteVelocityLUT[event.param1]; + + std::uint32_t duration = (24 * g_clocksPerBeat * event.param2) / g_midiTimeDiv; + + if (duration == 0) + duration = 1; + + if (!g_exactGateTime && duration < 96) + duration = g_noteDurationLUT[duration]; + + event.param2 = duration; + } + } +} + +std::unique_ptr> InsertTimingEvents(std::vector& inEvents) +{ + std::unique_ptr> outEvents(new std::vector()); + + Event timingEvent = {}; + timingEvent.time = 0; + timingEvent.type = EventType::TimeSignature; + timingEvent.param2 = 96 * g_clocksPerBeat; + + for (const Event& event : inEvents) + { + while (EventCompare(timingEvent, event)) + { + outEvents->push_back(timingEvent); + timingEvent.time += timingEvent.param2; + } + + if (event.type == EventType::TimeSignature) + { + if (g_agbTrack == 1 && event.param2 != timingEvent.param2) + { + Event originalTimingEvent = event; + originalTimingEvent.type = EventType::OriginalTimeSignature; + outEvents->push_back(originalTimingEvent); + } + timingEvent.param2 = event.param2; + timingEvent.time = event.time + timingEvent.param2; + } + + outEvents->push_back(event); + } + + return outEvents; +} + +std::unique_ptr> SplitTime(std::vector& inEvents) +{ + std::unique_ptr> outEvents(new std::vector()); + + std::int32_t time = 0; + + for (const Event& event : inEvents) + { + std::int32_t diff = event.time - time; + + if (diff > 96) + { + int wholeNoteCount = (diff - 1) / 96; + diff -= 96 * wholeNoteCount; + + for (int i = 0; i < wholeNoteCount; i++) + { + time += 96; + Event timeSplitEvent = {}; + timeSplitEvent.time = time; + timeSplitEvent.type = EventType::TimeSplit; + outEvents->push_back(timeSplitEvent); + } + } + + std::int32_t lutValue = g_noteDurationLUT[diff]; + + if (lutValue != diff) + { + Event timeSplitEvent = {}; + timeSplitEvent.time = time + lutValue; + timeSplitEvent.type = EventType::TimeSplit; + outEvents->push_back(timeSplitEvent); + } + + time = event.time; + + outEvents->push_back(event); + } + + return outEvents; +} + +std::unique_ptr> CreateTies(std::vector& inEvents) +{ + std::unique_ptr> outEvents(new std::vector()); + + for (const Event& event : inEvents) + { + if (event.type == EventType::Note && event.param2 > 96) + { + Event tieEvent = event; + tieEvent.param2 = -1; + outEvents->push_back(tieEvent); + + Event eotEvent = {}; + eotEvent.time = event.time + event.param2; + eotEvent.type = EventType::EndOfTie; + eotEvent.note = event.note; + outEvents->push_back(eotEvent); + } + else + { + outEvents->push_back(event); + } + } + + return outEvents; +} + +void CalculateWaits(std::vector& events) +{ + g_initialWait = events[0].time; + int wholeNoteCount = 0; + + for (unsigned i = 0; i < events.size() && events[i].type != EventType::EndOfTrack; i++) + { + events[i].time = events[i + 1].time - events[i].time; + + if (events[i].type == EventType::TimeSignature) + { + events[i].type = EventType::WholeNoteMark; + events[i].param2 = wholeNoteCount++; + } + } +} + +int CalculateCompressionScore(std::vector& events, int index) +{ + int score = 0; + std::uint8_t lastParam1 = events[index].param1; + std::uint8_t lastVelocity = 0x80u; + EventType lastType = events[index].type; + std::int32_t lastDuration = 0x80000000; + std::uint8_t lastNote = 0x80u; + + if (events[index].time > 0) + score++; + + for (int i = index + 1; !IsPatternBoundary(events[i].type); i++) + { + if (events[i].type == EventType::Note) + { + int val = 0; + + if (events[i].note != lastNote) + { + val++; + lastNote = events[i].note; + } + + if (events[i].param1 != lastVelocity) + { + val++; + lastVelocity = events[i].param1; + } + + std::int32_t duration = events[i].param2; + + if (g_noteDurationLUT[duration] != lastDuration) + { + val++; + lastDuration = g_noteDurationLUT[duration]; + } + + if (duration != lastDuration) + val++; + + if (val == 0) + val = 1; + + score += val; + } + else + { + lastDuration = 0x80000000; + + if (events[i].type == lastType) + { + if ((lastType != EventType::Controller && (int)lastType != 0x25 && lastType != EventType::EndOfTie) || events[i].param1 == lastParam1) + { + score++; + } + else + { + score += 2; + } + } + else + { + score += 2; + } + } + + lastParam1 = events[i].param1; + lastType = events[i].type; + + if (events[i].time) + ++score; + } + + return score; +} + +bool IsCompressionMatch(std::vector& events, int index1, int index2) +{ + index1++; + index2++; + + do + { + if (events[index1] != events[index2]) + return false; + + index1++; + index2++; + } while (!IsPatternBoundary(events[index1].type)); + + return IsPatternBoundary(events[index2].type); +} + +void CompressWholeNote(std::vector& events, int index) +{ + for (int j = index + 1; events[j].type != EventType::EndOfTrack; j++) + { + while (events[j].type != EventType::WholeNoteMark) + { + j++; + + if (events[j].type == EventType::EndOfTrack) + return; + } + + if (IsCompressionMatch(events, index, j)) + { + events[j].type = EventType::Pattern; + events[j].param2 = events[index].param2 & 0x7FFFFFFF; + events[index].param2 |= 0x80000000; + } + } +} + +void Compress(std::vector& events) +{ + for (int i = 0; events[i].type != EventType::EndOfTrack; i++) + { + while (events[i].type != EventType::WholeNoteMark) + { + i++; + + if (events[i].type == EventType::EndOfTrack) + return; + } + + if (CalculateCompressionScore(events, i) >= 6) + { + CompressWholeNote(events, i); + } + } +} + +void ReadMidiTracks() +{ + long trackHeaderStart = 14; + + ReadMidiTrackHeader(trackHeaderStart); + ReadSeqEvents(); + + g_agbTrack = 1; + + for (int midiTrack = 0; midiTrack < g_midiTrackCount; midiTrack++) + { + trackHeaderStart += ReadMidiTrackHeader(trackHeaderStart); + + for (g_midiChan = 0; g_midiChan < 16; g_midiChan++) + { + ReadTrackEvents(); + + if (s_minNote != 0xFF) + { +#ifdef DEBUG + printf("Track%d = Midi-Ch.%d\n", g_agbTrack, g_midiChan + 1); +#endif + + std::unique_ptr> events(MergeEvents()); + + // We don't need TEMPO in anything but track 1. + if (g_agbTrack == 1) + { + auto it = std::remove_if(s_seqEvents.begin(), s_seqEvents.end(), [](const Event& event) { return event.type == EventType::Tempo; }); + s_seqEvents.erase(it, s_seqEvents.end()); + } + + ConvertTimes(*events); + events = InsertTimingEvents(*events); + events = CreateTies(*events); + std::stable_sort(events->begin(), events->end(), EventCompare); + events = SplitTime(*events); + CalculateWaits(*events); + + if (g_compressionEnabled) + Compress(*events); + + PrintAgbTrack(*events); + + g_agbTrack++; + } + } + } +} diff --git a/tools/mid2agb/midi.h b/tools/mid2agb/midi.h new file mode 100644 index 0000000000..434c8e8e81 --- /dev/null +++ b/tools/mid2agb/midi.h @@ -0,0 +1,87 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef MIDI_H +#define MIDI_H + +#include + +enum class MidiFormat +{ + SingleTrack, + MultiTrack +}; + +enum class EventType +{ + EndOfTie = 0x01, + Label = 0x11, + LoopEnd = 0x12, + LoopEndBegin = 0x13, + LoopBegin = 0x14, + OriginalTimeSignature = 0x15, + WholeNoteMark = 0x16, + Pattern = 0x17, + TimeSignature = 0x18, + Tempo = 0x19, + InstrumentChange = 0x21, + Controller = 0x22, + PitchBend = 0x23, + KeyShift = 0x31, + Note = 0x40, + TimeSplit = 0xFE, + EndOfTrack = 0xFF, +}; + +struct Event +{ + std::int32_t time; + EventType type; + std::uint8_t note; + std::uint8_t param1; + std::int32_t param2; + + bool operator==(const Event& other) + { + return (time == other.time + && type == other.type + && note == other.note + && param1 == other.param1 + && param2 == other.param2); + } + + bool operator!=(const Event& other) + { + return !(*this == other); + } +}; + +void ReadMidiFileHeader(); +void ReadMidiTracks(); + +extern int g_midiChan; +extern std::int32_t g_initialWait; + +inline bool IsPatternBoundary(EventType type) +{ + return type == EventType::EndOfTrack || (int)type <= 0x17; +} + +#endif // MIDI_H diff --git a/tools/mid2agb/tables.cpp b/tools/mid2agb/tables.cpp new file mode 100644 index 0000000000..f254664a42 --- /dev/null +++ b/tools/mid2agb/tables.cpp @@ -0,0 +1,286 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include "tables.h" + +const int g_noteDurationLUT[] = +{ + 0, // 0 + 1, // 1 + 2, // 2 + 3, // 3 + 4, // 4 + 5, // 5 + 6, // 6 + 7, // 7 + 8, // 8 + 9, // 9 + 10, // 10 + 11, // 11 + 12, // 12 + 13, // 13 + 14, // 14 + 15, // 15 + 16, // 16 + 17, // 17 + 18, // 18 + 19, // 19 + 20, // 20 + 21, // 21 + 22, // 22 + 23, // 23 + 24, // 24 + 24, // 25 + 24, // 26 + 24, // 27 + 28, // 28 + 28, // 29 + 30, // 30 + 30, // 31 + 32, // 32 + 32, // 33 + 32, // 34 + 32, // 35 + 36, // 36 + 36, // 37 + 36, // 38 + 36, // 39 + 40, // 40 + 40, // 41 + 42, // 42 + 42, // 43 + 44, // 44 + 44, // 45 + 44, // 46 + 44, // 47 + 48, // 48 + 48, // 49 + 48, // 50 + 48, // 51 + 52, // 52 + 52, // 53 + 54, // 54 + 54, // 55 + 56, // 56 + 56, // 57 + 56, // 58 + 56, // 59 + 60, // 60 + 60, // 61 + 60, // 62 + 60, // 63 + 64, // 64 + 64, // 65 + 66, // 66 + 66, // 67 + 68, // 68 + 68, // 69 + 68, // 70 + 68, // 71 + 72, // 72 + 72, // 73 + 72, // 74 + 72, // 75 + 76, // 76 + 76, // 77 + 78, // 78 + 78, // 79 + 80, // 80 + 80, // 81 + 80, // 82 + 80, // 83 + 84, // 84 + 84, // 85 + 84, // 86 + 84, // 87 + 88, // 88 + 88, // 89 + 90, // 90 + 90, // 91 + 92, // 92 + 92, // 93 + 92, // 94 + 92, // 95 + 96, // 96 +}; + +const int g_noteVelocityLUT[] = +{ + 0, // 0 + 4, // 1 + 4, // 2 + 4, // 3 + 4, // 4 + 8, // 5 + 8, // 6 + 8, // 7 + 8, // 8 + 12, // 9 + 12, // 10 + 12, // 11 + 12, // 12 + 16, // 13 + 16, // 14 + 16, // 15 + 16, // 16 + 20, // 17 + 20, // 18 + 20, // 19 + 20, // 20 + 24, // 21 + 24, // 22 + 24, // 23 + 24, // 24 + 28, // 25 + 28, // 26 + 28, // 27 + 28, // 28 + 32, // 29 + 32, // 30 + 32, // 31 + 32, // 32 + 36, // 33 + 36, // 34 + 36, // 35 + 36, // 36 + 40, // 37 + 40, // 38 + 40, // 39 + 40, // 40 + 44, // 41 + 44, // 42 + 44, // 43 + 44, // 44 + 48, // 45 + 48, // 46 + 48, // 47 + 48, // 48 + 52, // 49 + 52, // 50 + 52, // 51 + 52, // 52 + 56, // 53 + 56, // 54 + 56, // 55 + 56, // 56 + 60, // 57 + 60, // 58 + 60, // 59 + 60, // 60 + 64, // 61 + 64, // 62 + 64, // 63 + 64, // 64 + 68, // 65 + 68, // 66 + 68, // 67 + 68, // 68 + 72, // 69 + 72, // 70 + 72, // 71 + 72, // 72 + 76, // 73 + 76, // 74 + 76, // 75 + 76, // 76 + 80, // 77 + 80, // 78 + 80, // 79 + 80, // 80 + 84, // 81 + 84, // 82 + 84, // 83 + 84, // 84 + 88, // 85 + 88, // 86 + 88, // 87 + 88, // 88 + 92, // 89 + 92, // 90 + 92, // 91 + 92, // 92 + 96, // 93 + 96, // 94 + 96, // 95 + 96, // 96 + 100, // 97 + 100, // 98 + 100, // 99 + 100, // 100 + 104, // 101 + 104, // 102 + 104, // 103 + 104, // 104 + 108, // 105 + 108, // 106 + 108, // 107 + 108, // 108 + 112, // 109 + 112, // 110 + 112, // 111 + 112, // 112 + 116, // 113 + 116, // 114 + 116, // 115 + 116, // 116 + 120, // 117 + 120, // 118 + 120, // 119 + 120, // 120 + 124, // 121 + 124, // 122 + 124, // 123 + 124, // 124 + 127, // 125 + 127, // 126 + 127, // 127 +}; + +const char* g_noteTable[] = +{ + "Cn%01u ", + "Cs%01u ", + "Dn%01u ", + "Ds%01u ", + "En%01u ", + "Fn%01u ", + "Fs%01u ", + "Gn%01u ", + "Gs%01u ", + "An%01u ", + "As%01u ", + "Bn%01u ", +}; + +const char* g_minusNoteTable[] = +{ + "CnM%01u", + "CsM%01u", + "DnM%01u", + "DsM%01u", + "EnM%01u", + "FnM%01u", + "FsM%01u", + "GnM%01u", + "GsM%01u", + "AnM%01u", + "AsM%01u", + "BnM%01u", +}; diff --git a/tools/mid2agb/tables.h b/tools/mid2agb/tables.h new file mode 100644 index 0000000000..da3c9072da --- /dev/null +++ b/tools/mid2agb/tables.h @@ -0,0 +1,29 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef TABLES_H +#define TABLES_H + +extern const int g_noteDurationLUT[]; +extern const int g_noteVelocityLUT[]; +extern const char* g_noteTable[]; +extern const char* g_minusNoteTable[]; + +#endif // TABLES_H diff --git a/tools/preproc/.gitignore b/tools/preproc/.gitignore new file mode 100644 index 0000000000..eb34708794 --- /dev/null +++ b/tools/preproc/.gitignore @@ -0,0 +1 @@ +preproc diff --git a/tools/preproc/LICENSE b/tools/preproc/LICENSE new file mode 100644 index 0000000000..534d15349e --- /dev/null +++ b/tools/preproc/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/preproc/Makefile b/tools/preproc/Makefile new file mode 100644 index 0000000000..ec4a5f365e --- /dev/null +++ b/tools/preproc/Makefile @@ -0,0 +1,17 @@ +CXX := g++ + +CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror + +SRCS := asm_file.cpp c_file.cpp charmap.cpp preproc.cpp string_parser.cpp \ + utf8.cpp + +HEADERS := asm_file.h c_file.h char_util.h charmap.h preproc.h string_parser.h \ + utf8.h + +.PHONY: clean + +preproc: $(SRCS) $(HEADERS) + $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) preproc preproc.exe diff --git a/tools/preproc/asm_file.cpp b/tools/preproc/asm_file.cpp new file mode 100644 index 0000000000..bb296b78b9 --- /dev/null +++ b/tools/preproc/asm_file.cpp @@ -0,0 +1,529 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include "preproc.h" +#include "asm_file.h" +#include "char_util.h" +#include "utf8.h" +#include "string_parser.h" + +AsmFile::AsmFile(std::string filename) : m_filename(filename) +{ + FILE *fp = std::fopen(filename.c_str(), "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", filename.c_str()); + + std::fseek(fp, 0, SEEK_END); + + m_size = std::ftell(fp); + + if (m_size < 0) + FATAL_ERROR("File size of \"%s\" is less than zero.\n", filename.c_str()); + + m_buffer = new char[m_size + 1]; + + std::rewind(fp); + + if (std::fread(m_buffer, m_size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", filename.c_str()); + + m_buffer[m_size] = 0; + + std::fclose(fp); + + m_pos = 0; + m_lineNum = 1; + m_lineStart = 0; + + RemoveComments(); +} + +AsmFile::AsmFile(AsmFile&& other) : m_filename(std::move(other.m_filename)) +{ + m_buffer = other.m_buffer; + m_pos = other.m_pos; + m_size = other.m_size; + m_lineNum = other.m_lineNum; + m_lineStart = other.m_lineStart; + + other.m_buffer = nullptr; +} + +AsmFile::~AsmFile() +{ + delete[] m_buffer; +} + +// Removes comments to simplify further processing. +// It stops upon encountering a null character, +// which may or may not be the end of file marker. +// If it's not, the error will be caught later. +void AsmFile::RemoveComments() +{ + long pos = 0; + char stringChar = 0; + + for (;;) + { + if (m_buffer[pos] == 0) + return; + + if (stringChar != 0) + { + if (m_buffer[pos] == '\\' && m_buffer[pos + 1] == stringChar) + { + pos += 2; + } + else + { + if (m_buffer[pos] == stringChar) + stringChar = 0; + pos++; + } + } + else if (m_buffer[pos] == '@' && (pos == 0 || m_buffer[pos - 1] != '\\')) + { + while (m_buffer[pos] != '\n' && m_buffer[pos] != 0) + m_buffer[pos++] = ' '; + } + else if (m_buffer[pos] == '/' && m_buffer[pos + 1] == '*') + { + m_buffer[pos++] = ' '; + m_buffer[pos++] = ' '; + + for (;;) + { + if (m_buffer[pos] == 0) + return; + + if (m_buffer[pos] == '*' && m_buffer[pos + 1] == '/') + { + m_buffer[pos++] = ' '; + m_buffer[pos++] = ' '; + break; + } + else + { + if (m_buffer[pos] != '\n') + m_buffer[pos] = ' '; + pos++; + } + } + } + else + { + if (m_buffer[pos] == '"' || m_buffer[pos] == '\'') + stringChar = m_buffer[pos]; + pos++; + } + } +} + +// Checks if we're at a particular directive and if so, consumes it. +// Returns whether the directive was found. +bool AsmFile::CheckForDirective(std::string name) +{ + long i; + long length = static_cast(name.length()); + + for (i = 0; i < length && m_pos + i < m_size; i++) + if (name[i] != m_buffer[m_pos + i]) + return false; + + if (i < length) + return false; + + m_pos += length; + + return true; +} + +// Checks if we're at a known directive and if so, consumes it. +// Returns which directive was found. +Directive AsmFile::GetDirective() +{ + SkipWhitespace(); + + if (CheckForDirective(".include")) + return Directive::Include; + else if (CheckForDirective(".string")) + return Directive::String; + else if (CheckForDirective(".braille")) + return Directive::Braille; + else + return Directive::Unknown; +} + +// Checks if we're at label that ends with '::'. +// Returns the name if so and an empty string if not. +std::string AsmFile::GetGlobalLabel() +{ + long start = m_pos; + long pos = m_pos; + + if (IsIdentifierStartingChar(m_buffer[pos])) + { + pos++; + + while (IsIdentifierChar(m_buffer[pos])) + pos++; + } + + if (m_buffer[pos] == ':' && m_buffer[pos + 1] == ':') + { + m_pos = pos + 2; + ExpectEmptyRestOfLine(); + return std::string(&m_buffer[start], pos - start); + } + + return std::string(); +} + +// Skips tabs and spaces. +void AsmFile::SkipWhitespace() +{ + while (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ') + m_pos++; +} + +// Reads include path. +std::string AsmFile::ReadPath() +{ + SkipWhitespace(); + + if (m_buffer[m_pos] != '"') + RaiseError("expected file path"); + + m_pos++; + + int length = 0; + long startPos = m_pos; + + while (m_buffer[m_pos] != '"') + { + unsigned char c = m_buffer[m_pos++]; + + if (c == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF in include string"); + else + RaiseError("unexpected null character in include string"); + } + + if (!IsAsciiPrintable(c)) + RaiseError("unexpected character '\\x%02X' in include string", c); + + // Don't bother allowing any escape sequences. + if (c == '\\') + { + c = m_buffer[m_pos]; + RaiseError("unexpected escape '\\%c' in include string", c); + } + + length++; + + if (length > kMaxPath) + RaiseError("path is too long"); + } + + m_pos++; // Go past the right quote. + + ExpectEmptyRestOfLine(); + + return std::string(&m_buffer[startPos], length); +} + +// Reads a charmap string. +int AsmFile::ReadString(unsigned char* s) +{ + SkipWhitespace(); + + int length; + StringParser stringParser(m_buffer, m_size); + + try + { + m_pos += stringParser.ParseString(m_pos, s, length); + } + catch (std::runtime_error e) + { + RaiseError(e.what()); + } + + SkipWhitespace(); + + if (ConsumeComma()) + { + SkipWhitespace(); + int padLength = ReadPadLength(); + + while (length < padLength) + { + s[length++] = 0; + } + } + + ExpectEmptyRestOfLine(); + + return length; +} + +int AsmFile::ReadBraille(unsigned char* s) +{ + static std::map encoding = + { + { 'A', 0x01 }, + { 'B', 0x05 }, + { 'C', 0x03 }, + { 'D', 0x0B }, + { 'E', 0x09 }, + { 'F', 0x07 }, + { 'G', 0x0F }, + { 'H', 0x0D }, + { 'I', 0x06 }, + { 'J', 0x0E }, + { 'K', 0x11 }, + { 'L', 0x15 }, + { 'M', 0x13 }, + { 'N', 0x1B }, + { 'O', 0x19 }, + { 'P', 0x17 }, + { 'Q', 0x1F }, + { 'R', 0x1D }, + { 'S', 0x16 }, + { 'T', 0x1E }, + { 'U', 0x31 }, + { 'V', 0x35 }, + { 'W', 0x2E }, + { 'X', 0x33 }, + { 'Y', 0x3B }, + { 'Z', 0x39 }, + { ' ', 0x00 }, + { ',', 0x04 }, + { '.', 0x2C }, + { '$', 0xFF }, + }; + + SkipWhitespace(); + + int length = 0; + + if (m_buffer[m_pos] != '"') + RaiseError("expected braille string literal"); + + m_pos++; + + while (m_buffer[m_pos] != '"') + { + if (length == kMaxStringLength) + RaiseError("mapped string longer than %d bytes", kMaxStringLength); + + if (m_buffer[m_pos] == '\\' && m_buffer[m_pos + 1] == 'n') + { + s[length++] = 0xFE; + m_pos += 2; + } + else + { + char c = m_buffer[m_pos]; + + if (encoding.count(c) == 0) + { + if (IsAsciiPrintable(c)) + RaiseError("character '%c' not valid in braille string", m_buffer[m_pos]); + else + RaiseError("character '\\x%02X' not valid in braille string", m_buffer[m_pos]); + } + + s[length++] = encoding[c]; + m_pos++; + } + } + + m_pos++; // Go past the right quote. + + ExpectEmptyRestOfLine(); + + return length; +} + +// If we're at a comma, consumes it. +// Returns whether a comma was found. +bool AsmFile::ConsumeComma() +{ + if (m_buffer[m_pos] == ',') + { + m_pos++; + return true; + } + + return false; +} + +// Converts digit character to numerical value. +static int ConvertDigit(char c, int radix) +{ + int digit; + + if (c >= '0' && c <= '9') + digit = c - '0'; + else if (c >= 'A' && c <= 'F') + digit = 10 + c - 'A'; + else if (c >= 'a' && c <= 'f') + digit = 10 + c - 'a'; + else + return -1; + + return (digit < radix) ? digit : -1; +} + +// Reads an integer. If the integer is greater than maxValue, it returns -1. +int AsmFile::ReadPadLength() +{ + if (!IsAsciiDigit(m_buffer[m_pos])) + RaiseError("expected integer"); + + int radix = 10; + + if (m_buffer[m_pos] == '0' && m_buffer[m_pos + 1] == 'x') + { + radix = 16; + m_pos += 2; + } + + unsigned n = 0; + int digit; + + while ((digit = ConvertDigit(m_buffer[m_pos], radix)) != -1) + { + n = n * radix + digit; + + if (n > kMaxStringLength) + RaiseError("pad length greater than maximum length (%d)", kMaxStringLength); + + m_pos++; + } + + return n; +} + +// Outputs the current line and moves to the next one. +void AsmFile::OutputLine() +{ + while (m_buffer[m_pos] != '\n' && m_buffer[m_pos] != 0) + m_pos++; + + if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + { + RaiseWarning("file doesn't end with newline"); + puts(&m_buffer[m_lineStart]); + } + else + { + RaiseError("unexpected null character"); + } + } + else + { + m_buffer[m_pos] = 0; + puts(&m_buffer[m_lineStart]); + m_buffer[m_pos] = '\n'; + m_pos++; + m_lineStart = m_pos; + m_lineNum++; + } +} + +// Asserts that the rest of the line is empty and moves to the next one. +void AsmFile::ExpectEmptyRestOfLine() +{ + SkipWhitespace(); + + if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + RaiseWarning("file doesn't end with newline"); + else + RaiseError("unexpected null character"); + } + else if (m_buffer[m_pos] == '\n') + { + m_pos++; + m_lineStart = m_pos; + m_lineNum++; + } + else if (m_buffer[m_pos] == '\r') + { + RaiseError("only Unix-style LF newlines are supported"); + } + else + { + RaiseError("junk at end of line"); + } +} + +// Checks if we're at the end of the file. +bool AsmFile::IsAtEnd() +{ + return (m_pos >= m_size); +} + +// Output the current location to set gas's logical file and line numbers. +void AsmFile::OutputLocation() +{ + std::printf("# %ld \"%s\"\n", m_lineNum, m_filename.c_str()); +} + +// Reports a diagnostic message. +void AsmFile::ReportDiagnostic(const char* type, const char* format, std::va_list args) +{ + const int bufferSize = 1024; + char buffer[bufferSize]; + std::vsnprintf(buffer, bufferSize, format, args); + std::fprintf(stderr, "%s:%ld: %s: %s\n", m_filename.c_str(), m_lineNum, type, buffer); +} + +#define DO_REPORT(type) \ +do \ +{ \ + std::va_list args; \ + va_start(args, format); \ + ReportDiagnostic(type, format, args); \ + va_end(args); \ +} while (0) + +// Reports an error diagnostic and terminates the program. +void AsmFile::RaiseError(const char* format, ...) +{ + DO_REPORT("error"); + std::exit(1); +} + +// Reports a warning diagnostic. +void AsmFile::RaiseWarning(const char* format, ...) +{ + DO_REPORT("warning"); +} diff --git a/tools/preproc/asm_file.h b/tools/preproc/asm_file.h new file mode 100644 index 0000000000..d73b36e90b --- /dev/null +++ b/tools/preproc/asm_file.h @@ -0,0 +1,72 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef ASM_FILE_H +#define ASM_FILE_H + +#include +#include +#include +#include "preproc.h" + +enum class Directive +{ + Include, + String, + Braille, + Unknown +}; + +class AsmFile +{ +public: + AsmFile(std::string filename); + AsmFile(AsmFile&& other); + AsmFile(const AsmFile&) = delete; + ~AsmFile(); + Directive GetDirective(); + std::string GetGlobalLabel(); + std::string ReadPath(); + int ReadString(unsigned char* s); + int ReadBraille(unsigned char* s); + bool IsAtEnd(); + void OutputLine(); + void OutputLocation(); + +private: + char* m_buffer; + long m_pos; + long m_size; + long m_lineNum; + long m_lineStart; + std::string m_filename; + + bool ConsumeComma(); + int ReadPadLength(); + void RemoveComments(); + bool CheckForDirective(std::string name); + void SkipWhitespace(); + void ExpectEmptyRestOfLine(); + void ReportDiagnostic(const char* type, const char* format, std::va_list args); + void RaiseError(const char* format, ...); + void RaiseWarning(const char* format, ...); +}; + +#endif // ASM_FILE_H diff --git a/tools/preproc/c_file.cpp b/tools/preproc/c_file.cpp new file mode 100644 index 0000000000..24b3453e80 --- /dev/null +++ b/tools/preproc/c_file.cpp @@ -0,0 +1,421 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include +#include "preproc.h" +#include "c_file.h" +#include "char_util.h" +#include "utf8.h" +#include "string_parser.h" + +CFile::CFile(std::string filename) : m_filename(filename) +{ + FILE *fp = std::fopen(filename.c_str(), "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", filename.c_str()); + + std::fseek(fp, 0, SEEK_END); + + m_size = std::ftell(fp); + + if (m_size < 0) + FATAL_ERROR("File size of \"%s\" is less than zero.\n", filename.c_str()); + + m_buffer = new char[m_size + 1]; + + std::rewind(fp); + + if (std::fread(m_buffer, m_size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", filename.c_str()); + + m_buffer[m_size] = 0; + + std::fclose(fp); + + m_pos = 0; + m_lineNum = 1; +} + +CFile::CFile(CFile&& other) : m_filename(std::move(other.m_filename)) +{ + m_buffer = other.m_buffer; + m_pos = other.m_pos; + m_size = other.m_size; + m_lineNum = other.m_lineNum; + + other.m_buffer = nullptr; +} + +CFile::~CFile() +{ + delete[] m_buffer; +} + +void CFile::Preproc() +{ + char stringChar = 0; + + while (m_pos < m_size) + { + if (stringChar) + { + if (m_buffer[m_pos] == stringChar) + { + std::putchar(stringChar); + m_pos++; + stringChar = 0; + } + else if (m_buffer[m_pos] == '\\' && m_buffer[m_pos + 1] == stringChar) + { + std::putchar('\\'); + std::putchar(stringChar); + m_pos += 2; + } + else + { + if (m_buffer[m_pos] == '\n') + m_lineNum++; + std::putchar(m_buffer[m_pos]); + m_pos++; + } + } + else + { + TryConvertString(); + TryConvertIncbin(); + + if (m_pos >= m_size) + break; + + char c = m_buffer[m_pos++]; + + std::putchar(c); + + if (c == '\n') + m_lineNum++; + else if (c == '"') + stringChar = '"'; + else if (c == '\'') + stringChar = '\''; + } + } +} + +bool CFile::ConsumeHorizontalWhitespace() +{ + if (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ') + { + m_pos++; + return true; + } + + return false; +} + +bool CFile::ConsumeNewline() +{ + if (m_buffer[m_pos] == '\r' && m_buffer[m_pos + 1] == '\n') + { + m_pos += 2; + m_lineNum++; + std::putchar('\n'); + return true; + } + + if (m_buffer[m_pos] == '\n') + { + m_pos++; + m_lineNum++; + std::putchar('\n'); + return true; + } + + return false; +} + +void CFile::SkipWhitespace() +{ + while (ConsumeHorizontalWhitespace() || ConsumeNewline()) + ; +} + +void CFile::TryConvertString() +{ + long oldPos = m_pos; + long oldLineNum = m_lineNum; + bool noTerminator = false; + + if (m_buffer[m_pos] != '_' || (m_pos > 0 && IsIdentifierChar(m_buffer[m_pos - 1]))) + return; + + m_pos++; + + if (m_buffer[m_pos] == '_') + { + noTerminator = true; + m_pos++; + } + + SkipWhitespace(); + + if (m_buffer[m_pos] != '(') + { + m_pos = oldPos; + m_lineNum = oldLineNum; + return; + } + + m_pos++; + + SkipWhitespace(); + + std::printf("{ "); + + while (1) + { + SkipWhitespace(); + + if (m_buffer[m_pos] == '"') + { + unsigned char s[kMaxStringLength]; + int length; + StringParser stringParser(m_buffer, m_size); + + try + { + m_pos += stringParser.ParseString(m_pos, s, length); + } + catch (std::runtime_error e) + { + RaiseError(e.what()); + } + + for (int i = 0; i < length; i++) + printf("0x%02X, ", s[i]); + } + else if (m_buffer[m_pos] == ')') + { + m_pos++; + break; + } + else + { + if (m_pos >= m_size) + RaiseError("unexpected EOF"); + if (IsAsciiPrintable(m_buffer[m_pos])) + RaiseError("unexpected character '%c'", m_buffer[m_pos]); + else + RaiseError("unexpected character '\\x%02X'", m_buffer[m_pos]); + } + } + + if (noTerminator) + std::printf(" }"); + else + std::printf("0xFF }"); +} + +bool CFile::CheckIdentifier(const std::string& ident) +{ + unsigned int i; + + for (i = 0; i < ident.length() && m_pos + i < (unsigned)m_size; i++) + if (ident[i] != m_buffer[m_pos + i]) + return false; + + return (i == ident.length()); +} + +std::unique_ptr CFile::ReadWholeFile(const std::string& path, int& size) +{ + FILE* fp = std::fopen(path.c_str(), "rb"); + + if (fp == nullptr) + RaiseError("Failed to open \"%s\" for reading.\n", path.c_str()); + + std::fseek(fp, 0, SEEK_END); + + size = std::ftell(fp); + + std::unique_ptr buffer = std::unique_ptr(new unsigned char[size]); + + std::rewind(fp); + + if (std::fread(buffer.get(), size, 1, fp) != 1) + RaiseError("Failed to read \"%s\".\n", path.c_str()); + + std::fclose(fp); + + return buffer; +} + +int ExtractData(const std::unique_ptr& buffer, int offset, int size) +{ + switch (size) + { + case 1: + return buffer[offset]; + case 2: + return (buffer[offset + 1] << 8) + | buffer[offset]; + case 4: + return (buffer[offset + 3] << 24) + | (buffer[offset + 2] << 16) + | (buffer[offset + 1] << 8) + | buffer[offset]; + default: + FATAL_ERROR("Invalid size passed to ExtractData.\n"); + } +} + +void CFile::TryConvertIncbin() +{ + std::string idents[6] = { "INCBIN_S8", "INCBIN_U8", "INCBIN_S16", "INCBIN_U16", "INCBIN_S32", "INCBIN_U32" }; + int incbinType = -1; + + for (int i = 0; i < 6; i++) + { + if (CheckIdentifier(idents[i])) + { + incbinType = i; + break; + } + } + + if (incbinType == -1) + return; + + int size = 1 << (incbinType / 2); + bool isSigned = ((incbinType % 2) == 0); + + long oldPos = m_pos; + long oldLineNum = m_lineNum; + + m_pos += idents[incbinType].length(); + + SkipWhitespace(); + + if (m_buffer[m_pos] != '(') + { + m_pos = oldPos; + m_lineNum = oldLineNum; + return; + } + + m_pos++; + + SkipWhitespace(); + + if (m_buffer[m_pos] != '"') + RaiseError("expected double quote"); + + m_pos++; + + int startPos = m_pos; + + while (m_buffer[m_pos] != '"') + { + if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF in path string"); + else + RaiseError("unexpected null character in path string"); + } + + if (m_buffer[m_pos] == '\r' || m_buffer[m_pos] == '\n') + RaiseError("unexpected end of line character in path string"); + + if (m_buffer[m_pos] == '\\') + RaiseError("unexpected escape in path string"); + + m_pos++; + } + + std::string path(&m_buffer[startPos], m_pos - startPos); + + m_pos++; + + SkipWhitespace(); + + if (m_buffer[m_pos] != ')') + RaiseError("expected ')'"); + + m_pos++; + + std::printf("{"); + + int fileSize; + std::unique_ptr buffer = ReadWholeFile(path, fileSize); + + if ((fileSize % size) != 0) + RaiseError("Size %d doesn't evenly divide file size %d.\n", size, fileSize); + + int count = fileSize / size; + int offset = 0; + + for (int i = 0; i < count; i++) + { + int data = ExtractData(buffer, offset, size); + offset += size; + + if (isSigned) + std::printf("%d,", data); + else + std::printf("%uu,", data); + } + + std::printf("}"); +} + +// Reports a diagnostic message. +void CFile::ReportDiagnostic(const char* type, const char* format, std::va_list args) +{ + const int bufferSize = 1024; + char buffer[bufferSize]; + std::vsnprintf(buffer, bufferSize, format, args); + std::fprintf(stderr, "%s:%ld: %s: %s\n", m_filename.c_str(), m_lineNum, type, buffer); +} + +#define DO_REPORT(type) \ +do \ +{ \ + std::va_list args; \ + va_start(args, format); \ + ReportDiagnostic(type, format, args); \ + va_end(args); \ +} while (0) + +// Reports an error diagnostic and terminates the program. +void CFile::RaiseError(const char* format, ...) +{ + DO_REPORT("error"); + std::exit(1); +} + +// Reports a warning diagnostic. +void CFile::RaiseWarning(const char* format, ...) +{ + DO_REPORT("warning"); +} diff --git a/tools/preproc/c_file.h b/tools/preproc/c_file.h new file mode 100644 index 0000000000..7369aba852 --- /dev/null +++ b/tools/preproc/c_file.h @@ -0,0 +1,58 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef C_FILE_H +#define C_FILE_H + +#include +#include +#include +#include +#include "preproc.h" + +class CFile +{ +public: + CFile(std::string filename); + CFile(CFile&& other); + CFile(const CFile&) = delete; + ~CFile(); + void Preproc(); + +private: + char* m_buffer; + long m_pos; + long m_size; + long m_lineNum; + std::string m_filename; + + bool ConsumeHorizontalWhitespace(); + bool ConsumeNewline(); + void SkipWhitespace(); + void TryConvertString(); + std::unique_ptr ReadWholeFile(const std::string& path, int& size); + bool CheckIdentifier(const std::string& ident); + void TryConvertIncbin(); + void ReportDiagnostic(const char* type, const char* format, std::va_list args); + void RaiseError(const char* format, ...); + void RaiseWarning(const char* format, ...); +}; + +#endif // C_FILE_H diff --git a/tools/preproc/char_util.h b/tools/preproc/char_util.h new file mode 100644 index 0000000000..02a6e1ceb2 --- /dev/null +++ b/tools/preproc/char_util.h @@ -0,0 +1,71 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef CHAR_UTIL_H +#define CHAR_UTIL_H + +#include +#include + +inline bool IsAscii(unsigned char c) +{ + return (c < 128); +} + +inline bool IsAsciiAlpha(unsigned char c) +{ + return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')); +} + +inline bool IsAsciiDigit(unsigned char c) +{ + return (c >= '0' && c <= '9'); +} + +inline bool IsAsciiHexDigit(unsigned char c) +{ + return ((c >= '0' && c <= '9') + || (c >= 'a' && c <= 'f') + || (c >= 'A' && c <= 'F')); +} + +inline bool IsAsciiAlphanum(unsigned char c) +{ + return (IsAsciiAlpha(c) || IsAsciiDigit(c)); +} + +inline bool IsAsciiPrintable(unsigned char c) +{ + return (c >= ' ' && c <= '~'); +} + +// Returns whether the character can start a C identifier or the identifier of a "{FOO}" constant in strings. +inline bool IsIdentifierStartingChar(unsigned char c) +{ + return IsAsciiAlpha(c) || c == '_'; +} + +// Returns whether the character can be used in a C identifier or the identifier of a "{FOO}" constant in strings. +inline bool IsIdentifierChar(unsigned char c) +{ + return IsAsciiAlphanum(c) || c == '_'; +} + +#endif // CHAR_UTIL_H diff --git a/tools/preproc/charmap.cpp b/tools/preproc/charmap.cpp new file mode 100644 index 0000000000..a7bedfe26f --- /dev/null +++ b/tools/preproc/charmap.cpp @@ -0,0 +1,408 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include "preproc.h" +#include "charmap.h" +#include "char_util.h" +#include "utf8.h" + +enum LhsType +{ + Char, + Escape, + Constant, + None +}; + +struct Lhs +{ + LhsType type; + std::string name; + std::int32_t code; +}; + +class CharmapReader +{ +public: + CharmapReader(std::string filename); + CharmapReader(const CharmapReader&) = delete; + ~CharmapReader(); + Lhs ReadLhs(); + void ExpectEqualsSign(); + std::string ReadSequence(); + void ExpectEmptyRestOfLine(); + void RaiseError(const char* format, ...); + +private: + char* m_buffer; + long m_pos; + long m_size; + long m_lineNum; + std::string m_filename; + + void RemoveComments(); + std::string ReadConstant(); + void SkipWhitespace(); +}; + +CharmapReader::CharmapReader(std::string filename) : m_filename(filename) +{ + FILE *fp = std::fopen(filename.c_str(), "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", filename.c_str()); + + std::fseek(fp, 0, SEEK_END); + + m_size = std::ftell(fp); + + if (m_size < 0) + FATAL_ERROR("File size of \"%s\" is less than zero.\n", filename.c_str()); + + m_buffer = new char[m_size + 1]; + + std::rewind(fp); + + if (std::fread(m_buffer, m_size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", filename.c_str()); + + m_buffer[m_size] = 0; + + std::fclose(fp); + + m_pos = 0; + m_lineNum = 1; + + RemoveComments(); +} + +CharmapReader::~CharmapReader() +{ + delete[] m_buffer; +} + +Lhs CharmapReader::ReadLhs() +{ + Lhs lhs; + + for (;;) + { + SkipWhitespace(); + + if (m_buffer[m_pos] == '\n') + { + m_pos++; + m_lineNum++; + } + else + { + break; + } + } + + if (m_buffer[m_pos] == '\'') + { + m_pos++; + + bool isEscape = (m_buffer[m_pos] == '\\'); + + if (isEscape) + { + m_pos++; + } + + unsigned char c = m_buffer[m_pos]; + + if (c == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF in UTF-8 character literal"); + else + RaiseError("unexpected null character in UTF-8 character literal"); + } + + if (IsAscii(c) && !IsAsciiPrintable(c)) + RaiseError("unexpected character U+%X in UTF-8 character literal", c); + + UnicodeChar unicodeChar = DecodeUtf8(&m_buffer[m_pos]); + std::int32_t code = unicodeChar.code; + + if (code == -1) + RaiseError("invalid encoding in UTF-8 character literal"); + + m_pos += unicodeChar.encodingLength; + + if (m_buffer[m_pos] != '\'') + RaiseError("unterminated character literal"); + + m_pos++; + + lhs.code = code; + + if (isEscape) + { + if (code >= 128) + RaiseError("escapes using non-ASCII characters are invalid"); + + switch (code) + { + case '\'': + lhs.type = LhsType::Char; + break; + case '\\': + lhs.type = LhsType::Char; + case '"': + RaiseError("cannot escape double quote"); + break; + default: + lhs.type = LhsType::Escape; + } + } + else + { + if (code == '\'') + RaiseError("empty character literal"); + + lhs.type = LhsType::Char; + } + } + else if (IsIdentifierStartingChar(m_buffer[m_pos])) + { + lhs.type = LhsType::Constant; + lhs.name = ReadConstant(); + } + else if (m_buffer[m_pos] == '\r') + { + RaiseError("only Unix-style LF newlines are supported"); + } + else if (m_buffer[m_pos] == 0) + { + if (m_pos < m_size) + RaiseError("unexpected null character"); + lhs.type = LhsType::None; + } + else + { + RaiseError("junk at start of line"); + } + + return lhs; +} + +void CharmapReader::ExpectEqualsSign() +{ + SkipWhitespace(); + + if (m_buffer[m_pos] != '=') + RaiseError("expected equals sign"); + + m_pos++; +} + +static unsigned int ConvertHexDigit(char c) +{ + unsigned int digit = 0; + + if (c >= '0' && c <= '9') + digit = c - '0'; + else if (c >= 'A' && c <= 'F') + digit = 10 + c - 'A'; + else if (c >= 'a' && c <= 'f') + digit = 10 + c - 'a'; + + return digit; +} + +std::string CharmapReader::ReadSequence() +{ + SkipWhitespace(); + + long startPos = m_pos; + + unsigned int length = 0; + + while (IsAsciiHexDigit(m_buffer[m_pos]) && IsAsciiHexDigit(m_buffer[m_pos + 1])) + { + m_pos += 2; + length++; + + if (length > kMaxCharmapSequenceLength) + RaiseError("byte sequence too long (max is %lu bytes)", kMaxCharmapSequenceLength); + + SkipWhitespace(); + } + + if (IsAsciiHexDigit(m_buffer[m_pos])) + RaiseError("each byte must have 2 hex digits"); + + if (length == 0) + RaiseError("expected byte sequence"); + + std::string sequence; + sequence.reserve(length); + + m_pos = startPos; + + for (unsigned int i = 0; i < length; i++) + { + unsigned int digit1 = ConvertHexDigit(m_buffer[m_pos]); + unsigned int digit2 = ConvertHexDigit(m_buffer[m_pos + 1]); + unsigned char byte = digit1 * 16 + digit2; + sequence += byte; + + m_pos += 2; + SkipWhitespace(); + } + + return sequence; +} + +void CharmapReader::ExpectEmptyRestOfLine() +{ + SkipWhitespace(); + + if (m_buffer[m_pos] == 0) + { + if (m_pos < m_size) + RaiseError("unexpected null character"); + } + else if (m_buffer[m_pos] == '\n') + { + m_pos++; + m_lineNum++; + } + else if (m_buffer[m_pos] == '\r') + { + RaiseError("only Unix-style LF newlines are supported"); + } + else + { + RaiseError("junk at end of line"); + } +} + +void CharmapReader::RaiseError(const char* format, ...) +{ + const int bufferSize = 1024; + char buffer[bufferSize]; + + std::va_list args; + va_start(args, format); + std::vsnprintf(buffer, bufferSize, format, args); + va_end(args); + + std::fprintf(stderr, "%s:%ld: error: %s\n", m_filename.c_str(), m_lineNum, buffer); + + std::exit(1); +} + +void CharmapReader::RemoveComments() +{ + long pos = 0; + bool inString = false; + + for (;;) + { + if (m_buffer[pos] == 0) + return; + + if (inString) + { + if (m_buffer[pos] == '\\' && m_buffer[pos + 1] == '\'') + { + pos += 2; + } + else + { + if (m_buffer[pos] == '\'') + inString = false; + pos++; + } + } + else if (m_buffer[pos] == '@') + { + while (m_buffer[pos] != '\n' && m_buffer[pos] != 0) + m_buffer[pos++] = ' '; + } + else + { + if (m_buffer[pos] == '\'') + inString = true; + pos++; + } + } +} + +std::string CharmapReader::ReadConstant() +{ + long startPos = m_pos; + + while (IsIdentifierChar(m_buffer[m_pos])) + m_pos++; + + return std::string(&m_buffer[startPos], m_pos - startPos); +} + +void CharmapReader::SkipWhitespace() +{ + while (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ') + m_pos++; +} + +Charmap::Charmap(std::string filename) +{ + CharmapReader reader(filename); + + for (;;) + { + Lhs lhs = reader.ReadLhs(); + + if (lhs.type == LhsType::None) + return; + + reader.ExpectEqualsSign(); + + std::string sequence = reader.ReadSequence(); + + switch (lhs.type) + { + case LhsType::Char: + if (m_chars.find(lhs.code) != m_chars.end()) + reader.RaiseError("redefining char"); + m_chars[lhs.code] = sequence; + break; + case LhsType::Escape: + if (m_escapes[lhs.code].length() != 0) + reader.RaiseError("redefining escape"); + m_escapes[lhs.code] = sequence; + break; + case LhsType::Constant: + if (m_constants.find(lhs.name) != m_constants.end()) + reader.RaiseError("redefining constant"); + m_constants[lhs.name] = sequence; + break; + } + + reader.ExpectEmptyRestOfLine(); + } +} diff --git a/tools/preproc/charmap.h b/tools/preproc/charmap.h new file mode 100644 index 0000000000..0d752ac99f --- /dev/null +++ b/tools/preproc/charmap.h @@ -0,0 +1,64 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef CHARMAP_H +#define CHARMAP_H + +#include +#include +#include +#include + +class Charmap +{ +public: + Charmap(std::string filename); + + std::string Char(std::int32_t code) + { + auto it = m_chars.find(code); + + if (it == m_chars.end()) + return std::string(); + + return it->second; + } + + std::string Escape(unsigned char code) + { + return m_escapes[code]; + } + + std::string Constant(std::string identifier) + { + auto it = m_constants.find(identifier); + + if (it == m_constants.end()) + return std::string(); + + return it->second; + } +private: + std::map m_chars; + std::string m_escapes[128]; + std::map m_constants; +}; + +#endif // CHARMAP_H diff --git a/tools/preproc/preproc.cpp b/tools/preproc/preproc.cpp new file mode 100644 index 0000000000..c9c6042df1 --- /dev/null +++ b/tools/preproc/preproc.cpp @@ -0,0 +1,156 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include "preproc.h" +#include "asm_file.h" +#include "c_file.h" +#include "charmap.h" + +Charmap* g_charmap; + +void PrintAsmBytes(unsigned char *s, int length) +{ + if (length > 0) + { + std::printf("\t.byte "); + for (int i = 0; i < length; i++) + { + std::printf("0x%02X", s[i]); + + if (i < length - 1) + std::printf(", "); + } + std::putchar('\n'); + } +} + +void PreprocAsmFile(std::string filename) +{ + std::stack stack; + + stack.push(AsmFile(filename)); + + for (;;) + { + while (stack.top().IsAtEnd()) + { + stack.pop(); + + if (stack.empty()) + return; + else + stack.top().OutputLocation(); + } + + Directive directive = stack.top().GetDirective(); + + switch (directive) + { + case Directive::Include: + stack.push(AsmFile(stack.top().ReadPath())); + stack.top().OutputLocation(); + break; + case Directive::String: + { + unsigned char s[kMaxStringLength]; + int length = stack.top().ReadString(s); + PrintAsmBytes(s, length); + break; + } + case Directive::Braille: + { + unsigned char s[kMaxStringLength]; + int length = stack.top().ReadBraille(s); + PrintAsmBytes(s, length); + break; + } + case Directive::Unknown: + { + std::string globalLabel = stack.top().GetGlobalLabel(); + + if (globalLabel.length() != 0) + { + const char *s = globalLabel.c_str(); + std::printf("%s: ; .global %s\n", s, s); + } + else + { + stack.top().OutputLine(); + } + + break; + } + } + } +} + +void PreprocCFile(std::string filename) +{ + CFile cFile(filename); + cFile.Preproc(); +} + +char* GetFileExtension(char* filename) +{ + char* extension = filename; + + while (*extension != 0) + extension++; + + while (extension > filename && *extension != '.') + extension--; + + if (extension == filename) + return nullptr; + + extension++; + + if (*extension == 0) + return nullptr; + + return extension; +} + +int main(int argc, char **argv) +{ + if (argc != 3) + { + std::fprintf(stderr, "Usage: %s SRC_FILE CHARMAP_FILE", argv[0]); + return 1; + } + + g_charmap = new Charmap(argv[2]); + + char* extension = GetFileExtension(argv[1]); + + if (!extension) + FATAL_ERROR("\"%s\" has no file extension.\n", argv[1]); + + if ((extension[0] == 's') && extension[1] == 0) + PreprocAsmFile(argv[1]); + else if ((extension[0] == 'c' || extension[0] == 'i') && extension[1] == 0) + PreprocCFile(argv[1]); + else + FATAL_ERROR("\"%s\" has an unknown file extension of \"%s\".\n", argv[1], extension); + + return 0; +} diff --git a/tools/preproc/preproc.h b/tools/preproc/preproc.h new file mode 100644 index 0000000000..515f64e079 --- /dev/null +++ b/tools/preproc/preproc.h @@ -0,0 +1,54 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef PREPROC_H +#define PREPROC_H + +#include +#include +#include "charmap.h" + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + std::fprintf(stderr, format, __VA_ARGS__); \ + std::exit(1); \ +} while (0) + +#else + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + std::fprintf(stderr, format, ##__VA_ARGS__); \ + std::exit(1); \ +} while (0) + +#endif // _MSC_VER + +const int kMaxPath = 256; +const int kMaxStringLength = 1024; +const unsigned long kMaxCharmapSequenceLength = 16; + +extern Charmap* g_charmap; + +#endif // PREPROC_H diff --git a/tools/preproc/string_parser.cpp b/tools/preproc/string_parser.cpp new file mode 100644 index 0000000000..dd5196a444 --- /dev/null +++ b/tools/preproc/string_parser.cpp @@ -0,0 +1,355 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include "preproc.h" +#include "string_parser.h" +#include "char_util.h" +#include "utf8.h" + +// Reads a charmap char or escape sequence. +std::string StringParser::ReadCharOrEscape() +{ + std::string sequence; + + bool isEscape = (m_buffer[m_pos] == '\\'); + + if (isEscape) + { + m_pos++; + + if (m_buffer[m_pos] == '"') + { + sequence = g_charmap->Char('"'); + + if (sequence.length() == 0) + RaiseError("no mapping exists for double quote"); + + return sequence; + } + else if (m_buffer[m_pos] == '\\') + { + sequence = g_charmap->Char('\\'); + + if (sequence.length() == 0) + RaiseError("no mapping exists for backslash"); + + return sequence; + } + } + + unsigned char c = m_buffer[m_pos]; + + if (c == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF in UTF-8 string"); + else + RaiseError("unexpected null character in UTF-8 string"); + } + + if (IsAscii(c) && !IsAsciiPrintable(c)) + RaiseError("unexpected character U+%X in UTF-8 string", c); + + UnicodeChar unicodeChar = DecodeUtf8(&m_buffer[m_pos]); + m_pos += unicodeChar.encodingLength; + std::int32_t code = unicodeChar.code; + + if (code == -1) + RaiseError("invalid encoding in UTF-8 string"); + + if (isEscape && code >= 128) + RaiseError("escapes using non-ASCII characters are invalid"); + + sequence = isEscape ? g_charmap->Escape(code) : g_charmap->Char(code); + + if (sequence.length() == 0) + { + if (isEscape) + RaiseError("unknown escape '\\%c'", code); + else + RaiseError("unknown character U+%X", code); + } + + return sequence; +} + +// Reads a charmap constant, i.e. "{FOO}". +std::string StringParser::ReadBracketedConstants() +{ + std::string totalSequence; + + m_pos++; // Assume we're on the left curly bracket. + + while (m_buffer[m_pos] != '}') + { + SkipWhitespace(); + + if (IsIdentifierStartingChar(m_buffer[m_pos])) + { + long startPos = m_pos; + + m_pos++; + + while (IsIdentifierChar(m_buffer[m_pos])) + m_pos++; + + std::string sequence = g_charmap->Constant(std::string(&m_buffer[startPos], m_pos - startPos)); + + if (sequence.length() == 0) + { + m_buffer[m_pos] = 0; + RaiseError("unknown constant '%s'", &m_buffer[startPos]); + } + + totalSequence += sequence; + } + else if (IsAsciiDigit(m_buffer[m_pos])) + { + Integer integer = ReadInteger(); + + switch (integer.size) + { + case 1: + totalSequence += (unsigned char)integer.value; + break; + case 2: + totalSequence += (unsigned char)integer.value; + totalSequence += (unsigned char)(integer.value >> 8); + break; + case 4: + totalSequence += (unsigned char)integer.value; + totalSequence += (unsigned char)(integer.value >> 8); + totalSequence += (unsigned char)(integer.value >> 16); + totalSequence += (unsigned char)(integer.value >> 24); + break; + } + } + else if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF after left curly bracket"); + else + RaiseError("unexpected null character within curly brackets"); + } + else + { + if (IsAsciiPrintable(m_buffer[m_pos])) + RaiseError("unexpected character '%c' within curly brackets", m_buffer[m_pos]); + else + RaiseError("unexpected character '\\x%02X' within curly brackets", m_buffer[m_pos]); + } + } + + m_pos++; // Go past the right curly bracket. + + return totalSequence; +} + +// Reads a charmap string. +int StringParser::ParseString(long srcPos, unsigned char* dest, int& destLength) +{ + m_pos = srcPos; + + if (m_buffer[m_pos] != '"') + RaiseError("expected UTF-8 string literal"); + + long start = m_pos; + + m_pos++; + + destLength = 0; + + while (m_buffer[m_pos] != '"') + { + std::string sequence = (m_buffer[m_pos] == '{') ? ReadBracketedConstants() : ReadCharOrEscape(); + + for (const char& c : sequence) + { + if (destLength == kMaxStringLength) + RaiseError("mapped string longer than %d bytes", kMaxStringLength); + + dest[destLength++] = c; + } + } + + m_pos++; // Go past the right quote. + + return m_pos - start; +} + +void StringParser::RaiseError(const char* format, ...) +{ + const int bufferSize = 1024; + char buffer[bufferSize]; + + std::va_list args; + va_start(args, format); + std::vsnprintf(buffer, bufferSize, format, args); + va_end(args); + + throw std::runtime_error(buffer); +} + +// Converts digit character to numerical value. +static int ConvertDigit(char c, int radix) +{ + int digit; + + if (c >= '0' && c <= '9') + digit = c - '0'; + else if (c >= 'A' && c <= 'F') + digit = 10 + c - 'A'; + else if (c >= 'a' && c <= 'f') + digit = 10 + c - 'a'; + else + return -1; + + return (digit < radix) ? digit : -1; +} + +void StringParser::SkipRestOfInteger(int radix) +{ + while (ConvertDigit(m_buffer[m_pos], radix) != -1) + m_pos++; +} + +StringParser::Integer StringParser::ReadDecimal() +{ + const int radix = 10; + std::uint64_t n = 0; + int digit; + std::uint64_t max = UINT32_MAX; + long startPos = m_pos; + + while ((digit = ConvertDigit(m_buffer[m_pos], radix)) != -1) + { + n = n * radix + digit; + + if (n >= max) + { + SkipRestOfInteger(radix); + + std::string intLiteral(m_buffer + startPos, m_pos - startPos); + RaiseError("integer literal \"%s\" is too large", intLiteral.c_str()); + } + + m_pos++; + } + + int size; + + if (m_buffer[m_pos] == 'H') + { + if (n >= 0x10000) + { + RaiseError("%lu is too large to be a halfword", (unsigned long)n); + } + + size = 2; + m_pos++; + } + else if (m_buffer[m_pos] == 'W') + { + size = 4; + m_pos++; + } + else + { + if (n >= 0x10000) + size = 4; + else if (n >= 0x100) + size = 2; + else + size = 1; + } + + return{ static_cast(n), size }; +} + +StringParser::Integer StringParser::ReadHex() +{ + const int radix = 16; + std::uint64_t n = 0; + int digit; + std::uint64_t max = UINT32_MAX; + long startPos = m_pos; + + while ((digit = ConvertDigit(m_buffer[m_pos], radix)) != -1) + { + n = n * radix + digit; + + if (n >= max) + { + SkipRestOfInteger(radix); + + std::string intLiteral(m_buffer + startPos, m_pos - startPos); + RaiseError("integer literal \"%s\" is too large", intLiteral.c_str()); + } + + m_pos++; + } + + int length = m_pos - startPos; + int size = 0; + + switch (length) + { + case 2: + size = 1; + break; + case 4: + size = 2; + break; + case 8: + size = 4; + break; + default: + { + std::string intLiteral(m_buffer + startPos, m_pos - startPos); + RaiseError("hex integer literal \"0x%s\" doesn't have length of 2, 4, or 8 digits", intLiteral.c_str()); + } + } + + return{ static_cast(n), size }; +} + +StringParser::Integer StringParser::ReadInteger() +{ + if (!IsAsciiDigit(m_buffer[m_pos])) + RaiseError("expected integer"); + + if (m_buffer[m_pos] == '0' && m_buffer[m_pos + 1] == 'x') + { + m_pos += 2; + return ReadHex(); + } + + return ReadDecimal(); +} + +// Skips tabs and spaces. +void StringParser::SkipWhitespace() +{ + while (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ') + m_pos++; +} diff --git a/tools/preproc/string_parser.h b/tools/preproc/string_parser.h new file mode 100644 index 0000000000..abd2bfe9a2 --- /dev/null +++ b/tools/preproc/string_parser.h @@ -0,0 +1,55 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef STRING_PARSER_H +#define STRING_PARSER_H + +#include +#include +#include "preproc.h" + +class StringParser +{ +public: + StringParser(char* buffer, long size) : m_buffer(buffer), m_size(size), m_pos(0) {} + int ParseString(long srcPos, unsigned char* dest, int &destLength); + +private: + struct Integer + { + std::uint32_t value; + int size; + }; + + char* m_buffer; + long m_size; + long m_pos; + + Integer ReadInteger(); + Integer ReadDecimal(); + Integer ReadHex(); + std::string ReadCharOrEscape(); + std::string ReadBracketedConstants(); + void SkipWhitespace(); + void SkipRestOfInteger(int radix); + void RaiseError(const char* format, ...); +}; + +#endif // STRING_PARSER_H diff --git a/tools/preproc/utf8.cpp b/tools/preproc/utf8.cpp new file mode 100644 index 0000000000..7facfd44ee --- /dev/null +++ b/tools/preproc/utf8.cpp @@ -0,0 +1,92 @@ +// Copyright (c) 2008-2009 Bjoern Hoehrmann +// See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details. +// +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include "utf8.h" + +static const unsigned char s_byteTypeTable[] = +{ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 00..1f + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 20..3f + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 40..5f + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 60..7f + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, // 80..9f + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, // a0..bf + 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, // c0..df + 0xa,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x4,0x3,0x3, // e0..ef + 0xb,0x6,0x6,0x6,0x5,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8, // f0..ff +}; + +const unsigned char s0 = 0 * 12; +const unsigned char s1 = 1 * 12; +const unsigned char s2 = 2 * 12; +const unsigned char s3 = 3 * 12; +const unsigned char s4 = 4 * 12; +const unsigned char s5 = 5 * 12; +const unsigned char s6 = 6 * 12; +const unsigned char s7 = 7 * 12; +const unsigned char s8 = 8 * 12; + +static const unsigned char s_transitionTable[] = +{ + s0,s1,s2,s3,s5,s8,s7,s1,s1,s1,s4,s6, // s0 + s1,s1,s1,s1,s1,s1,s1,s1,s1,s1,s1,s1, // s1 + s1,s0,s1,s1,s1,s1,s1,s0,s1,s0,s1,s1, // s2 + s1,s2,s1,s1,s1,s1,s1,s2,s1,s2,s1,s1, // s3 + s1,s1,s1,s1,s1,s1,s1,s2,s1,s1,s1,s1, // s4 + s1,s2,s1,s1,s1,s1,s1,s1,s1,s2,s1,s1, // s5 + s1,s1,s1,s1,s1,s1,s1,s3,s1,s3,s1,s1, // s6 + s1,s3,s1,s1,s1,s1,s1,s3,s1,s3,s1,s1, // s7 + s1,s3,s1,s1,s1,s1,s1,s1,s1,s1,s1,s1, // s8 +}; + +// Decodes UTF-8 encoded Unicode code point at "s". +UnicodeChar DecodeUtf8(const char* s) +{ + UnicodeChar unicodeChar; + int state = s0; + auto start = s; + + do + { + unsigned char byte = *s++; + int type = s_byteTypeTable[byte]; + + if (state == s0) + unicodeChar.code = (0xFF >> type) & byte; + else + unicodeChar.code = (unicodeChar.code << 6) | (byte & 0x3F); + + state = s_transitionTable[state + type]; + + if (state == s1) + { + unicodeChar.code = -1; + return unicodeChar; + } + } while (state != s0); + + unicodeChar.encodingLength = s - start; + + return unicodeChar; +} diff --git a/tools/preproc/utf8.h b/tools/preproc/utf8.h new file mode 100644 index 0000000000..259de67c57 --- /dev/null +++ b/tools/preproc/utf8.h @@ -0,0 +1,34 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef UTF8_H +#define UTF8_H + +#include + +struct UnicodeChar +{ + std::int32_t code; + int encodingLength; +}; + +UnicodeChar DecodeUtf8(const char* s); + +#endif // UTF8_H diff --git a/tools/ramscrgen/.gitignore b/tools/ramscrgen/.gitignore new file mode 100644 index 0000000000..4d0ae82c30 --- /dev/null +++ b/tools/ramscrgen/.gitignore @@ -0,0 +1 @@ +ramscrgen diff --git a/tools/ramscrgen/LICENSE b/tools/ramscrgen/LICENSE new file mode 100644 index 0000000000..534d15349e --- /dev/null +++ b/tools/ramscrgen/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/ramscrgen/Makefile b/tools/ramscrgen/Makefile new file mode 100644 index 0000000000..cc6d458ba1 --- /dev/null +++ b/tools/ramscrgen/Makefile @@ -0,0 +1,15 @@ +CXX := g++ + +CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror + +SRCS := main.cpp sym_file.cpp elf.cpp + +HEADERS := ramscrgen.h sym_file.h elf.h char_util.h + +.PHONY: clean + +ramscrgen: $(SRCS) $(HEADERS) + $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) ramscrgen ramscrgen.exe diff --git a/tools/ramscrgen/char_util.h b/tools/ramscrgen/char_util.h new file mode 100644 index 0000000000..ab20dbc535 --- /dev/null +++ b/tools/ramscrgen/char_util.h @@ -0,0 +1,71 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef CHAR_UTIL_H +#define CHAR_UTIL_H + +#include +#include + +inline bool IsAscii(unsigned char c) +{ + return (c < 128); +} + +inline bool IsAsciiAlpha(unsigned char c) +{ + return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')); +} + +inline bool IsAsciiDigit(unsigned char c) +{ + return (c >= '0' && c <= '9'); +} + +inline bool IsAsciiHexDigit(unsigned char c) +{ + return ((c >= '0' && c <= '9') + || (c >= 'a' && c <= 'f') + || (c >= 'A' && c <= 'F')); +} + +inline bool IsAsciiAlphanum(unsigned char c) +{ + return (IsAsciiAlpha(c) || IsAsciiDigit(c)); +} + +inline bool IsAsciiPrintable(unsigned char c) +{ + return (c >= ' ' && c <= '~'); +} + +// Returns whether the character can start the identifier of a "{FOO}" constant in strings. +inline bool IsIdentifierStartingChar(unsigned char c) +{ + return IsAsciiAlpha(c) || c == '_'; +} + +// Returns whether the character can be used in the identifier of a "{FOO}" constant in strings. +inline bool IsIdentifierChar(unsigned char c) +{ + return IsAsciiAlphanum(c) || c == '_'; +} + +#endif // CHAR_UTIL_H diff --git a/tools/ramscrgen/elf.cpp b/tools/ramscrgen/elf.cpp new file mode 100644 index 0000000000..7599fe0bbb --- /dev/null +++ b/tools/ramscrgen/elf.cpp @@ -0,0 +1,195 @@ +#include +#include +#include +#include +#include +#include +#include "ramscrgen.h" +#include "elf.h" + +#define SHN_COMMON 0xFFF2 + +static std::string s_elfPath; + +static FILE *s_file; + +static std::uint32_t s_sectionHeaderOffset; +static int s_sectionHeaderEntrySize; +static int s_sectionCount; +static int s_shstrtabIndex; + +static std::uint32_t s_symtabOffset; +static std::uint32_t s_strtabOffset; + +static std::uint32_t s_symbolCount; + +struct Symbol +{ + std::uint32_t nameOffset; + std::uint32_t size; +}; + +static void Seek(long offset) +{ + if (std::fseek(s_file, offset, SEEK_SET) != 0) + FATAL_ERROR("error: failed to seek to %ld in \"%s\"", offset, s_elfPath.c_str()); +} + +static void Skip(long offset) +{ + if (std::fseek(s_file, offset, SEEK_CUR) != 0) + FATAL_ERROR("error: failed to skip %ld bytes in \"%s\"", offset, s_elfPath.c_str()); +} + +static std::uint32_t ReadInt8() +{ + int c = std::fgetc(s_file); + + if (c < 0) + FATAL_ERROR("error: unexpected EOF when reading ELF file \"%s\"\n", s_elfPath.c_str()); + + return c; +} + +static std::uint32_t ReadInt16() +{ + std::uint32_t val = 0; + val |= ReadInt8(); + val |= ReadInt8() << 8; + return val; +} + +static std::uint32_t ReadInt32() +{ + std::uint32_t val = 0; + val |= ReadInt8(); + val |= ReadInt8() << 8; + val |= ReadInt8() << 16; + val |= ReadInt8() << 24; + return val; +} + +static std::string ReadString() +{ + std::string s; + char c; + + while ((c = ReadInt8()) != 0) + s += c; + + return s; +} + +static void VerifyElfIdent() +{ + char expectedMagic[4] = { 0x7F, 'E', 'L', 'F' }; + char magic[4]; + + if (std::fread(magic, 4, 1, s_file) != 1) + FATAL_ERROR("error: failed to read ELF magic from \"%s\"\n", s_elfPath.c_str()); + + if (std::memcmp(magic, expectedMagic, 4) != 0) + FATAL_ERROR("error: ELF magic did not match in \"%s\"\n", s_elfPath.c_str()); + + if (std::fgetc(s_file) != 1) + FATAL_ERROR("error: \"%s\" not 32-bit ELF\n", s_elfPath.c_str()); + + if (std::fgetc(s_file) != 1) + FATAL_ERROR("error: \"%s\" not little-endian ELF\n", s_elfPath.c_str()); +} + +static void ReadElfHeader() +{ + Seek(0x20); + s_sectionHeaderOffset = ReadInt32(); + Seek(0x2E); + s_sectionHeaderEntrySize = ReadInt16(); + s_sectionCount = ReadInt16(); + s_shstrtabIndex = ReadInt16(); +} + +static std::string GetSectionName(std::uint32_t shstrtabOffset, int index) +{ + Seek(s_sectionHeaderOffset + s_sectionHeaderEntrySize * index); + std::uint32_t nameOffset = ReadInt32(); + Seek(shstrtabOffset + nameOffset); + return ReadString(); +} + +static void FindTableOffsets() +{ + s_symtabOffset = 0; + s_strtabOffset = 0; + + Seek(s_sectionHeaderOffset + s_sectionHeaderEntrySize * s_shstrtabIndex + 0x10); + std::uint32_t shstrtabOffset = ReadInt32(); + + for (int i = 0; i < s_sectionCount; i++) + { + std::string name = GetSectionName(shstrtabOffset, i); + + if (name == ".symtab") + { + if (s_symtabOffset) + FATAL_ERROR("error: mutiple .symtab sections found in \"%s\"\n", s_elfPath.c_str()); + Seek(s_sectionHeaderOffset + s_sectionHeaderEntrySize * i + 0x10); + s_symtabOffset = ReadInt32(); + std::uint32_t size = ReadInt32(); + s_symbolCount = size / 16; + } + else if (name == ".strtab") + { + if (s_strtabOffset) + FATAL_ERROR("error: mutiple .strtab sections found in \"%s\"\n", s_elfPath.c_str()); + Seek(s_sectionHeaderOffset + s_sectionHeaderEntrySize * i + 0x10); + s_strtabOffset = ReadInt32(); + } + } + + if (!s_symtabOffset) + FATAL_ERROR("error: couldn't find .symtab section in \"%s\"\n", s_elfPath.c_str()); + + if (!s_strtabOffset) + FATAL_ERROR("error: couldn't find .strtab section in \"%s\"\n", s_elfPath.c_str()); +} + +std::map GetCommonSymbols(std::string path) +{ + s_elfPath = path; + + std::map commonSymbols; + + s_file = std::fopen(s_elfPath.c_str(), "rb"); + + if (s_file == NULL) + FATAL_ERROR("error: failed to open \"%s\" for reading\n", path.c_str()); + + VerifyElfIdent(); + ReadElfHeader(); + FindTableOffsets(); + + std::vector commonSymbolVec; + + Seek(s_symtabOffset); + + for (std::uint32_t i = 0; i < s_symbolCount; i++) + { + Symbol sym; + sym.nameOffset = ReadInt32(); + Skip(4); + sym.size = ReadInt32(); + Skip(2); + std::uint16_t sectionIndex = ReadInt16(); + if (sectionIndex == SHN_COMMON) + commonSymbolVec.push_back(sym); + } + + for (const Symbol& sym : commonSymbolVec) + { + Seek(s_strtabOffset + sym.nameOffset); + std::string name = ReadString(); + commonSymbols[name] = sym.size; + } + + return commonSymbols; +} diff --git a/tools/ramscrgen/elf.h b/tools/ramscrgen/elf.h new file mode 100644 index 0000000000..0bfdd696f6 --- /dev/null +++ b/tools/ramscrgen/elf.h @@ -0,0 +1,30 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef ELF_H +#define ELF_H + +#include +#include +#include + +std::map GetCommonSymbols(std::string path); + +#endif // ELF_H diff --git a/tools/ramscrgen/main.cpp b/tools/ramscrgen/main.cpp new file mode 100644 index 0000000000..6c4f4bbd70 --- /dev/null +++ b/tools/ramscrgen/main.cpp @@ -0,0 +1,173 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include "ramscrgen.h" +#include "sym_file.h" +#include "elf.h" + +void HandleCommonInclude(std::string filename, std::string sourcePath, std::string symOrderPath, std::string lang) +{ + auto commonSymbols = GetCommonSymbols(sourcePath + "/" + filename); + + std::size_t dotIndex = filename.find_last_of('.'); + + if (dotIndex == std::string::npos) + FATAL_ERROR("error: \"%s\" doesn't have a file extension\n", filename.c_str()); + + std::string symOrderFilename = filename.substr(0, dotIndex + 1) + "txt"; + + SymFile symFile(symOrderPath + "/" + symOrderFilename); + + while (!symFile.IsAtEnd()) + { + symFile.HandleLangConditional(lang); + + std::string label = symFile.GetLabel(false); + + if (label.length() == 0) + { + unsigned long length; + if (symFile.ReadInteger(length)) + { + if (length & 3) + symFile.RaiseWarning("gap length %d is not multiple of 4", length); + printf(". += 0x%lX;\n", length); + } + } + else + { + if (commonSymbols.count(label) == 0) + symFile.RaiseError("no common symbol named \"%s\"", label.c_str()); + unsigned long size = commonSymbols[label]; + int alignment = 4; + if (size > 4) + alignment = 8; + if (size > 8) + alignment = 16; + printf(". = ALIGN(%d);\n", alignment); + printf("%s = .;\n", label.c_str()); + printf(". += 0x%lX;\n", size); + } + + symFile.ExpectEmptyRestOfLine(); + } +} + +void ConvertSymFile(std::string filename, std::string sectionName, std::string lang, bool common, std::string sourcePath, std::string commonSymPath) +{ + SymFile symFile(filename); + + while (!symFile.IsAtEnd()) + { + symFile.HandleLangConditional(lang); + + Directive directive = symFile.GetDirective(); + + switch (directive) + { + case Directive::Include: + { + std::string incFilename = symFile.ReadPath(); + symFile.ExpectEmptyRestOfLine(); + printf(". = ALIGN(4);\n"); + if (common) + HandleCommonInclude(incFilename, sourcePath, commonSymPath, lang); + else + printf("%s(%s);\n", incFilename.c_str(), sectionName.c_str()); + break; + } + case Directive::Space: + { + unsigned long length; + if (!symFile.ReadInteger(length)) + symFile.RaiseError("expected integer after .space directive"); + symFile.ExpectEmptyRestOfLine(); + printf(". += 0x%lX;\n", length); + break; + } + case Directive::Align: + { + unsigned long amount; + if (!symFile.ReadInteger(amount)) + symFile.RaiseError("expected integer after .align directive"); + if (amount > 4) + symFile.RaiseError("max alignment amount is 4"); + amount = 1UL << amount; + symFile.ExpectEmptyRestOfLine(); + printf(". = ALIGN(%lu);\n", amount); + break; + } + case Directive::Unknown: + { + std::string label = symFile.GetLabel(); + + if (label.length() != 0) + { + printf("%s = .;\n", label.c_str()); + } + + symFile.ExpectEmptyRestOfLine(); + + break; + } + } + } +} + +int main(int argc, char **argv) +{ + if (argc < 4) + { + fprintf(stderr, "Usage: %s SECTION_NAME SYM_FILE LANG [-c SRC_PATH,COMMON_SYM_PATH]", argv[0]); + return 1; + } + + bool common = false; + std::string sectionName = std::string(argv[1]); + std::string symFileName = std::string(argv[2]); + std::string lang = std::string(argv[3]); + std::string sourcePath; + std::string commonSymPath; + + if (argc > 4) + { + if (std::strcmp(argv[4], "-c") != 0) + FATAL_ERROR("error: unrecognized argument \"%s\"\n", argv[4]); + + if (argc < 6) + FATAL_ERROR("error: missing SRC_PATH,COMMON_SYM_PATH after \"-c\"\n"); + + common = true; + std::string paths = std::string(argv[5]); + std::size_t commaPos = paths.find(','); + + if (commaPos == std::string::npos) + FATAL_ERROR("error: missing comma in argument after \"-c\"\n"); + + sourcePath = paths.substr(0, commaPos); + commonSymPath = paths.substr(commaPos + 1); + } + + ConvertSymFile(symFileName, sectionName, lang, common, sourcePath, commonSymPath); + return 0; +} diff --git a/tools/ramscrgen/ramscrgen.h b/tools/ramscrgen/ramscrgen.h new file mode 100644 index 0000000000..1aed1c05a4 --- /dev/null +++ b/tools/ramscrgen/ramscrgen.h @@ -0,0 +1,49 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef RAMSCRGEN_H +#define RAMSCRGEN_H + +#include +#include + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + std::fprintf(stderr, format, __VA_ARGS__); \ + std::exit(1); \ +} while (0) + +#else + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + std::fprintf(stderr, format, ##__VA_ARGS__); \ + std::exit(1); \ +} while (0) + +#endif // _MSC_VER + +const int kMaxPath = 256; + +#endif // RAMSCRGEN_H diff --git a/tools/ramscrgen/sym_file.cpp b/tools/ramscrgen/sym_file.cpp new file mode 100644 index 0000000000..5379bd93f8 --- /dev/null +++ b/tools/ramscrgen/sym_file.cpp @@ -0,0 +1,492 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include "ramscrgen.h" +#include "sym_file.h" +#include "char_util.h" + +SymFile::SymFile(std::string filename) : m_filename(filename) +{ + FILE *fp = std::fopen(filename.c_str(), "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", filename.c_str()); + + std::fseek(fp, 0, SEEK_END); + + m_size = std::ftell(fp); + + if (m_size < 0) + FATAL_ERROR("File size of \"%s\" is less than zero.\n", filename.c_str()); + + m_buffer = new char[m_size + 1]; + + std::rewind(fp); + + if (std::fread(m_buffer, m_size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", filename.c_str()); + + m_buffer[m_size] = 0; + + std::fclose(fp); + + m_pos = 0; + m_lineNum = 1; + m_lineStart = 0; + m_inLangConditional = false; + + RemoveComments(); +} + +SymFile::SymFile(SymFile&& other) : m_filename(std::move(other.m_filename)) +{ + m_buffer = other.m_buffer; + m_pos = other.m_pos; + m_size = other.m_size; + m_lineNum = other.m_lineNum; + m_lineStart = other.m_lineStart; + + other.m_buffer = nullptr; +} + +SymFile::~SymFile() +{ + delete[] m_buffer; +} + +// Removes comments to simplify further processing. +// It stops upon encountering a null character, +// which may or may not be the end of file marker. +// If it's not, the error will be caught later. +void SymFile::RemoveComments() +{ + long pos = 0; + char stringChar = 0; + + for (;;) + { + if (m_buffer[pos] == 0) + return; + + if (stringChar != 0) + { + if (m_buffer[pos] == '\\' && m_buffer[pos + 1] == stringChar) + { + pos += 2; + } + else + { + if (m_buffer[pos] == stringChar) + stringChar = 0; + pos++; + } + } + else if (m_buffer[pos] == '@' && (pos == 0 || m_buffer[pos - 1] != '\\')) + { + while (m_buffer[pos] != '\n' && m_buffer[pos] != 0) + m_buffer[pos++] = ' '; + } + else if (m_buffer[pos] == '/' && m_buffer[pos + 1] == '*') + { + m_buffer[pos++] = ' '; + m_buffer[pos++] = ' '; + + char commentStringChar = 0; + + for (;;) + { + if (m_buffer[pos] == 0) + return; + + if (commentStringChar != 0) + { + if (m_buffer[pos] == '\\' && m_buffer[pos + 1] == commentStringChar) + { + m_buffer[pos++] = ' '; + m_buffer[pos++] = ' '; + } + else + { + if (m_buffer[pos] == commentStringChar) + commentStringChar = 0; + if (m_buffer[pos] != '\n') + m_buffer[pos] = ' '; + pos++; + } + } + else + { + if (m_buffer[pos] == '*' && m_buffer[pos + 1] == '/') + { + m_buffer[pos++] = ' '; + m_buffer[pos++] = ' '; + break; + } + else + { + if (m_buffer[pos] == '"' || m_buffer[pos] == '\'') + commentStringChar = m_buffer[pos]; + if (m_buffer[pos] != '\n') + m_buffer[pos] = ' '; + pos++; + } + } + } + } + else + { + if (m_buffer[pos] == '"' || m_buffer[pos] == '\'') + stringChar = m_buffer[pos]; + pos++; + } + } +} + +// Checks if we're at a particular directive and if so, consumes it. +// Returns whether the directive was found. +bool SymFile::CheckForDirective(std::string name) +{ + long i; + long length = static_cast(name.length()); + + for (i = 0; i < length && m_pos + i < m_size; i++) + if (name[i] != m_buffer[m_pos + i]) + return false; + + if (i < length) + return false; + + m_pos += length; + + return true; +} + +// Checks if we're at a known directive and if so, consumes it. +// Returns which directive was found. +Directive SymFile::GetDirective() +{ + SkipWhitespace(); + + if (CheckForDirective(".include")) + return Directive::Include; + else if (CheckForDirective(".space")) + return Directive::Space; + else if (CheckForDirective(".align")) + return Directive::Align; + else + return Directive::Unknown; +} + +// Checks if we're at label. +// Returns the name if so and an empty string if not. +std::string SymFile::GetLabel(bool requireColon) +{ + long start = m_pos; + long pos = m_pos; + + if (IsIdentifierStartingChar(m_buffer[pos])) + { + pos++; + + while (IsIdentifierChar(m_buffer[pos])) + pos++; + } + + if (requireColon) + { + if (m_buffer[pos] == ':') + { + if (pos != start) + m_pos = pos + 1; + } + else + { + pos = start; + } + } + else + { + m_pos = pos; + } + + return std::string(&m_buffer[start], pos - start); +} + +// Skips tabs and spaces. +void SymFile::SkipWhitespace() +{ + while (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ') + m_pos++; +} + +// Reads include path. +std::string SymFile::ReadPath() +{ + SkipWhitespace(); + + if (m_buffer[m_pos] != '"') + RaiseError("expected file path"); + + m_pos++; + + int length = 0; + long startPos = m_pos; + + while (m_buffer[m_pos] != '"') + { + unsigned char c = m_buffer[m_pos++]; + + if (c == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF in include string"); + else + RaiseError("unexpected null character in include string"); + } + + if (!IsAsciiPrintable(c)) + RaiseError("unexpected character '\\x%02X' in include string", c); + + // Don't bother allowing any escape sequences. + if (c == '\\') + { + c = m_buffer[m_pos]; + RaiseError("unexpected escape '\\%c' in include string", c); + } + + length++; + + if (length > kMaxPath) + RaiseError("path is too long"); + } + + m_pos++; // Go past the right quote. + + return std::string(&m_buffer[startPos], length); +} + +// If we're at a comma, consumes it. +// Returns whether a comma was found. +bool SymFile::ConsumeComma() +{ + if (m_buffer[m_pos] == ',') + { + m_pos++; + return true; + } + + return false; +} + +// Converts digit character to numerical value. +static int ConvertDigit(char c, int radix) +{ + int digit; + + if (c >= '0' && c <= '9') + digit = c - '0'; + else if (c >= 'A' && c <= 'F') + digit = 10 + c - 'A'; + else if (c >= 'a' && c <= 'f') + digit = 10 + c - 'a'; + else + return -1; + + return (digit < radix) ? digit : -1; +} + +// Reads an integer. +bool SymFile::ReadInteger(unsigned long& n) +{ + SkipWhitespace(); + + if (!IsAsciiDigit(m_buffer[m_pos])) + return false; + + int startPos = m_pos; + int radix = 10; + + if (m_buffer[m_pos] == '0' && m_buffer[m_pos + 1] == 'x') + { + radix = 16; + m_pos += 2; + } + + unsigned long cutoff = ULONG_MAX / radix; + unsigned long cutoffRemainder = ULONG_MAX % radix; + int digit; + + n = 0; + + while ((digit = ConvertDigit(m_buffer[m_pos], radix)) != -1) + { + if (n < cutoff || (n == cutoff && (unsigned long)digit <= cutoffRemainder)) + { + n = n * radix + digit; + } + else + { + m_pos++; + + while (ConvertDigit(m_buffer[m_pos], radix) != -1) + m_pos++; + + RaiseError("integer is too large (%s)", std::string(&m_buffer[startPos], m_pos - startPos).c_str()); + } + + m_pos++; + } + + return true; +} + +// Asserts that the rest of the line is empty and moves to the next one. +void SymFile::ExpectEmptyRestOfLine() +{ + SkipWhitespace(); + + if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + RaiseWarning("file doesn't end with newline"); + else + RaiseError("unexpected null character"); + } + else if (m_buffer[m_pos] == '\n') + { + m_pos++; + m_lineStart = m_pos; + m_lineNum++; + } + else if (m_buffer[m_pos] == '\r') + { + RaiseError("only Unix-style LF newlines are supported"); + } + else + { + RaiseError("junk at end of line"); + } +} + + +void SymFile::SkipLine() +{ + while (m_buffer[m_pos] != 0 && m_buffer[m_pos] != '\n') + m_pos++; + + if (m_buffer[m_pos] == '\n') + m_pos++; +} + +// Checks if we're at the end of the file. +bool SymFile::IsAtEnd() +{ + return (m_pos >= m_size); +} + +void SymFile::HandleLangConditional(std::string lang) +{ + if (m_buffer[m_pos] != '#') + return; + + m_pos++; + + if (CheckForDirective("begin")) + { + if (m_inLangConditional) + RaiseError("already inside language conditional"); + + SkipWhitespace(); + + std::string label = GetLabel(false); + + if (label.length() == 0) + RaiseError("no language name after #begin"); + + ExpectEmptyRestOfLine(); + + if (lang == label) + { + m_inLangConditional = true; + } + else + { + while (!IsAtEnd() && m_buffer[m_pos] != '#') + SkipLine(); + + if (m_buffer[m_pos] != '#') + RaiseError("unterminated language conditional"); + + m_pos++; + + if (!CheckForDirective("end")) + RaiseError("expected #end"); + + ExpectEmptyRestOfLine(); + } + } + else if (CheckForDirective("end")) + { + if (!m_inLangConditional) + RaiseError("not inside language conditional"); + + m_inLangConditional = false; + + ExpectEmptyRestOfLine(); + } + else + { + RaiseError("unknown # directive"); + } +} + +// Reports a diagnostic message. +void SymFile::ReportDiagnostic(const char* type, const char* format, std::va_list args) +{ + const int bufferSize = 1024; + char buffer[bufferSize]; + std::vsnprintf(buffer, bufferSize, format, args); + std::fprintf(stderr, "%s:%ld: %s: %s\n", m_filename.c_str(), m_lineNum, type, buffer); +} + +#define DO_REPORT(type) \ +do \ +{ \ + std::va_list args; \ + va_start(args, format); \ + ReportDiagnostic(type, format, args); \ + va_end(args); \ +} while (0) + +// Reports an error diagnostic and terminates the program. +void SymFile::RaiseError(const char* format, ...) +{ + DO_REPORT("error"); + std::exit(1); +} + +// Reports a warning diagnostic. +void SymFile::RaiseWarning(const char* format, ...) +{ + DO_REPORT("warning"); +} diff --git a/tools/ramscrgen/sym_file.h b/tools/ramscrgen/sym_file.h new file mode 100644 index 0000000000..bb0c8038d9 --- /dev/null +++ b/tools/ramscrgen/sym_file.h @@ -0,0 +1,71 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef SYM_FILE_H +#define SYM_FILE_H + +#include +#include +#include +#include "ramscrgen.h" + +enum class Directive +{ + Include, + Space, + Align, + Unknown +}; + +class SymFile +{ +public: + SymFile(std::string filename); + SymFile(SymFile&& other); + SymFile(const SymFile&) = delete; + ~SymFile(); + Directive GetDirective(); + std::string GetLabel(bool requireColon = true); + std::string ReadPath(); + bool ReadInteger(unsigned long& value); + void ExpectEmptyRestOfLine(); + void SkipLine(); + bool IsAtEnd(); + void HandleLangConditional(std::string lang); + void RaiseError(const char* format, ...); + void RaiseWarning(const char* format, ...); + +private: + char* m_buffer; + long m_pos; + long m_size; + long m_lineNum; + long m_lineStart; + std::string m_filename; + bool m_inLangConditional; + + bool ConsumeComma(); + void RemoveComments(); + bool CheckForDirective(std::string name); + void SkipWhitespace(); + void ReportDiagnostic(const char* type, const char* format, std::va_list args); +}; + +#endif // SYM_FILE_H diff --git a/tools/rsfont/.gitignore b/tools/rsfont/.gitignore new file mode 100644 index 0000000000..3140ececc1 --- /dev/null +++ b/tools/rsfont/.gitignore @@ -0,0 +1 @@ +rsfont diff --git a/tools/rsfont/LICENSE b/tools/rsfont/LICENSE new file mode 100644 index 0000000000..b497950c1e --- /dev/null +++ b/tools/rsfont/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015-2016 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/rsfont/Makefile b/tools/rsfont/Makefile new file mode 100644 index 0000000000..a78beca505 --- /dev/null +++ b/tools/rsfont/Makefile @@ -0,0 +1,15 @@ +CC = gcc + +CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK + +LIBS = -lpng -lz + +SRCS = main.c convert_png.c util.c font.c + +.PHONY: clean + +rsfont: $(SRCS) convert_png.h gfx.h global.h util.h font.h + $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS) + +clean: + $(RM) rsfont rsfont.exe diff --git a/tools/rsfont/convert_png.c b/tools/rsfont/convert_png.c new file mode 100644 index 0000000000..f6a30804a9 --- /dev/null +++ b/tools/rsfont/convert_png.c @@ -0,0 +1,169 @@ +// Copyright (c) 2015 YamaArashi + +#include +#include +#include +#include "global.h" +#include "convert_png.h" +#include "gfx.h" + +void ReadPng(char *path, struct Image *image) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + unsigned char sig[8]; + + if (fread(sig, 8, 1, fp) != 1) + FATAL_ERROR("Failed to read PNG signature from \"%s\".\n", path); + + if (png_sig_cmp(sig, 0, 8)) + FATAL_ERROR("\"%s\" does not have a valid PNG signature.\n", path); + + png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if (!png_ptr) + FATAL_ERROR("Failed to create PNG read struct.\n"); + + png_infop info_ptr = png_create_info_struct(png_ptr); + + if (!info_ptr) + FATAL_ERROR("Failed to create PNG info struct.\n"); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Failed to init I/O for reading \"%s\".\n", path); + + png_init_io(png_ptr, fp); + png_set_sig_bytes(png_ptr, 8); + png_read_info(png_ptr, info_ptr); + + int bit_depth = png_get_bit_depth(png_ptr, info_ptr); + + if (bit_depth != image->bitDepth) + FATAL_ERROR("\"%s\" has a bit depth of %d, but the expected bit depth is %d.\n", path, bit_depth, image->bitDepth); + + int color_type = png_get_color_type(png_ptr, info_ptr); + + if (color_type != PNG_COLOR_TYPE_GRAY && color_type != PNG_COLOR_TYPE_PALETTE) + FATAL_ERROR("\"%s\" has an unsupported color type.\n", path); + + // Check if the image has a palette so that we can tell if the colors need to be inverted later. + // Don't read the palette because it's not needed for now. + image->hasPalette = (color_type == PNG_COLOR_TYPE_PALETTE); + + image->width = png_get_image_width(png_ptr, info_ptr); + image->height = png_get_image_height(png_ptr, info_ptr); + + int rowbytes = png_get_rowbytes(png_ptr, info_ptr); + + image->pixels = malloc(image->height * rowbytes); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate pixel buffer.\n"); + + png_bytepp row_pointers = malloc(image->height * sizeof(png_bytep)); + + if (row_pointers == NULL) + FATAL_ERROR("Failed to allocate row pointers.\n"); + + for (int i = 0; i < image->height; i++) + row_pointers[i] = (png_bytep)(image->pixels + (i * rowbytes)); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error reading from \"%s\".\n", path); + + png_read_image(png_ptr, row_pointers); + + png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + + free(row_pointers); + fclose(fp); +} + +void SetPngPalette(png_structp png_ptr, png_infop info_ptr, struct Palette *palette) +{ + png_colorp colors = malloc(palette->numColors * sizeof(png_color)); + + if (colors == NULL) + FATAL_ERROR("Failed to allocate PNG palette.\n"); + + for (int i = 0; i < palette->numColors; i++) { + colors[i].red = palette->colors[i].red; + colors[i].green = palette->colors[i].green; + colors[i].blue = palette->colors[i].blue; + } + + png_set_PLTE(png_ptr, info_ptr, colors, palette->numColors); + + free(colors); +} + +void WritePng(char *path, struct Image *image) +{ + FILE *fp = fopen(path, "wb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); + + png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if (!png_ptr) + FATAL_ERROR("Failed to create PNG write struct.\n"); + + png_infop info_ptr = png_create_info_struct(png_ptr); + + if (!info_ptr) + FATAL_ERROR("Failed to create PNG info struct.\n"); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Failed to init I/O for writing \"%s\".\n", path); + + png_init_io(png_ptr, fp); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error writing header for \"%s\".\n", path); + + int color_type = image->hasPalette ? PNG_COLOR_TYPE_PALETTE : PNG_COLOR_TYPE_GRAY; + + png_set_IHDR(png_ptr, info_ptr, image->width, image->height, + image->bitDepth, color_type, PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); + + if (image->hasPalette) { + SetPngPalette(png_ptr, info_ptr, &image->palette); + + if (image->hasTransparency) { + png_byte trans = 0; + png_set_tRNS(png_ptr, info_ptr, &trans, 1, 0); + } + } + + png_write_info(png_ptr, info_ptr); + + png_bytepp row_pointers = malloc(image->height * sizeof(png_bytep)); + + if (row_pointers == NULL) + FATAL_ERROR("Failed to allocate row pointers.\n"); + + int rowbytes = png_get_rowbytes(png_ptr, info_ptr); + + for (int i = 0; i < image->height; i++) + row_pointers[i] = (png_bytep)(image->pixels + (i * rowbytes)); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error writing \"%s\".\n", path); + + png_write_image(png_ptr, row_pointers); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error ending write of \"%s\".\n", path); + + png_write_end(png_ptr, NULL); + + fclose(fp); + + png_destroy_write_struct(&png_ptr, &info_ptr); + free(row_pointers); +} diff --git a/tools/rsfont/convert_png.h b/tools/rsfont/convert_png.h new file mode 100644 index 0000000000..55d3d69426 --- /dev/null +++ b/tools/rsfont/convert_png.h @@ -0,0 +1,11 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef CONVERT_PNG_H +#define CONVERT_PNG_H + +#include "gfx.h" + +void ReadPng(char *path, struct Image *image); +void WritePng(char *path, struct Image *image); + +#endif // CONVERT_PNG_H diff --git a/tools/rsfont/font.c b/tools/rsfont/font.c new file mode 100644 index 0000000000..ed48b31e6f --- /dev/null +++ b/tools/rsfont/font.c @@ -0,0 +1,455 @@ +// Copyright(c) 2015-2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include +#include "global.h" +#include "font.h" +#include "gfx.h" +#include "util.h" + +unsigned char gFontPalette[][3] = +{ + {0xFF, 0xFF, 0xFF}, // bg (white) + {0x38, 0x38, 0x38}, // fg (dark grey) + {0xD8, 0xD8, 0xD8}, // shadow (light grey) +}; + +void ConvertFromTiles1Bpp(unsigned char *src, unsigned char *dest, int numGlyphs, int layout) +{ + for (int glyph = 0; glyph < numGlyphs; glyph++) + { + if (layout == 0) + { + for (int i = 0; i < 8; i++) + { + uint8_t srcRow = src[(glyph * 8) + i]; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 8) + i; + dest[(y * 128) + x] = (srcRow >> (7 - j)) & 1; + } + } + } + else + { + // layout type 1 + + int tile1Offset = glyph * 16; + int tile2Offset = tile1Offset + 8; + + for (int i = 0; i < 8; i++) + { + uint8_t srcRow = src[tile1Offset + i]; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 16) + i; + dest[(y * 128) + x] = (srcRow >> (7 - j)) & 1; + } + } + + for (int i = 0; i < 8; i++) + { + uint8_t srcRow = src[tile2Offset + i]; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 16) + 8 + i; + dest[(y * 128) + x] = (srcRow >> (7 - j)) & 1; + } + } + } + } +} + +void ConvertToTiles1Bpp(unsigned char *src, unsigned char *dest, int numGlyphs, int layout) +{ + for (int glyph = 0; glyph < numGlyphs; glyph++) + { + if (layout == 0) + { + for (int i = 0; i < 8; i++) + { + uint8_t destRow = 0; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 8) + i; + unsigned char color = src[(y * 128) + x]; + + if (color > 1) + FATAL_ERROR("More than 2 colors in 1 BPP font.\n"); + + destRow <<= 1; + destRow |= color; + } + + dest[(glyph * 8) + i] = destRow; + } + } + else + { + // layout type 1 + + int tile1Offset = glyph * 16; + int tile2Offset = tile1Offset + 8; + + for (int i = 0; i < 8; i++) + { + uint8_t destRow = 0; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 16) + i; + unsigned char color = src[(y * 128) + x]; + + if (color > 1) + FATAL_ERROR("More than 2 colors in 1 BPP font.\n"); + + destRow <<= 1; + destRow |= color; + } + + dest[tile1Offset + i] = destRow; + } + + for (int i = 0; i < 8; i++) + { + uint8_t destRow = 0; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 16) + 8 + i; + unsigned char color = src[(y * 128) + x]; + + if (color > 1) + FATAL_ERROR("More than 2 colors in 1 BPP font.\n"); + + destRow <<= 1; + destRow |= color; + } + + dest[tile2Offset + i] = destRow; + } + } + } +} + +void ConvertFromTiles4Bpp(unsigned char *src, unsigned char *dest, int numGlyphs, int layout) +{ + static unsigned char table[16] = + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, + }; + + for (int glyph = 0; glyph < numGlyphs; glyph++) + { + if (layout == 0) + { + int offset = glyph * 32; + + for (int i = 0; i < 8; i++) + { + uint32_t srcRow = (src[offset + 3] << 24) + | (src[offset + 2] << 16) + | (src[offset + 1] << 8) + | src[offset]; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 8) + i; + dest[(y * 128) + x] = table[srcRow & 0xF]; + srcRow >>= 4; + } + + offset += 4; + } + } + else + { + int tile1Offset; + int tile2Offset; + + if (layout == 1) + { + tile1Offset = glyph * 64; + tile2Offset = tile1Offset + 32; + } + else + { + tile1Offset = ((glyph / 16) * 1024) + ((glyph % 16) * 32); + tile2Offset = tile1Offset + 512; + } + + for (int i = 0; i < 8; i++) + { + uint32_t srcRow = (src[tile1Offset + 3] << 24) + | (src[tile1Offset + 2] << 16) + | (src[tile1Offset + 1] << 8) + | src[tile1Offset]; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 16) + i; + dest[(y * 128) + x] = table[srcRow & 0xF]; + srcRow >>= 4; + } + + tile1Offset += 4; + } + + for (int i = 0; i < 8; i++) + { + uint32_t srcRow = (src[tile2Offset + 3] << 24) + | (src[tile2Offset + 2] << 16) + | (src[tile2Offset + 1] << 8) + | src[tile2Offset]; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 16) + 8 + i; + dest[(y * 128) + x] = table[srcRow & 0xF]; + srcRow >>= 4; + } + + tile2Offset += 4; + } + } + } +} + +void ConvertToTiles4Bpp(unsigned char *src, unsigned char *dest, int numGlyphs, int layout) +{ + static unsigned char table[3] = + { + 0, 15, 14, + }; + + for (int glyph = 0; glyph < numGlyphs; glyph++) + { + if (layout == 0) + { + int offset = glyph * 32; + + for (int i = 0; i < 8; i++) + { + uint32_t destRow = 0; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 8) + i; + unsigned char color = src[(y * 128) + x]; + + if (color > 2) + FATAL_ERROR("More than 3 colors in 4 BPP font.\n"); + + destRow >>= 4; + destRow |= (table[color] << 28); + } + + dest[offset] = destRow & 0xFF; + dest[offset + 1] = (destRow >> 8) & 0xFF; + dest[offset + 2] = (destRow >> 16) & 0xFF; + dest[offset + 3] = (destRow >> 24) & 0xFF; + + offset += 4; + } + } + else + { + int tile1Offset; + int tile2Offset; + + if (layout == 1) + { + tile1Offset = glyph * 64; + tile2Offset = tile1Offset + 32; + } + else + { + tile1Offset = ((glyph / 16) * 1024) + ((glyph % 16) * 32); + tile2Offset = tile1Offset + 512; + } + + for (int i = 0; i < 8; i++) + { + uint32_t destRow = 0; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 16) + i; + unsigned char color = src[(y * 128) + x]; + + if (color > 2) + FATAL_ERROR("More than 3 colors in 4 BPP font.\n"); + + destRow >>= 4; + destRow |= (table[color] << 28); + } + + dest[tile1Offset] = destRow & 0xFF; + dest[tile1Offset + 1] = (destRow >> 8) & 0xFF; + dest[tile1Offset + 2] = (destRow >> 16) & 0xFF; + dest[tile1Offset + 3] = (destRow >> 24) & 0xFF; + + tile1Offset += 4; + } + + for (int i = 0; i < 8; i++) + { + uint32_t destRow = 0; + + for (int j = 0; j < 8; j++) + { + int x = ((glyph % 16) * 8) + j; + int y = ((glyph / 16) * 16) + 8 + i; + unsigned char color = src[(y * 128) + x]; + + if (color > 2) + FATAL_ERROR("More than 3 colors in 4 BPP font.\n"); + + destRow >>= 4; + destRow |= (table[color] << 28); + } + + dest[tile2Offset] = destRow & 0xFF; + dest[tile2Offset + 1] = (destRow >> 8) & 0xFF; + dest[tile2Offset + 2] = (destRow >> 16) & 0xFF; + dest[tile2Offset + 3] = (destRow >> 24) & 0xFF; + + tile2Offset += 4; + } + } + } +} + +static void SetFontPalette(struct Image *image) +{ + image->hasPalette = true; + + image->palette.numColors = 3; + + for (int i = 0; i < image->palette.numColors; i++) + { + image->palette.colors[i].red = gFontPalette[i][0]; + image->palette.colors[i].green = gFontPalette[i][1]; + image->palette.colors[i].blue = gFontPalette[i][2]; + } + + image->hasTransparency = false; +} + +int CalcFileSize(int numGlyphs, int bpp, int layout) +{ + if (layout == 2) + { + // assume 4 BPP + int numFullRows = numGlyphs / 16; + int remainder = numGlyphs % 16; + int fullRowsSize = numFullRows * 1024; + int remainderSize = 0; + + if (remainder != 0) + remainderSize = 1024 - (16 - remainder) * 32; + + return fullRowsSize + remainderSize; + } + else + { + int tilesPerGlyph = layout > 0 ? 2 : 1; + int bytesPerTile = 8 * bpp; + return numGlyphs * tilesPerGlyph * bytesPerTile; + } +} + +void ReadFont(char *path, struct Image *image, int numGlyphs, int bpp, int layout) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int expectedFileSize = CalcFileSize(numGlyphs, bpp, layout); + + if (fileSize != expectedFileSize) + FATAL_ERROR("The file size is %d but should be %d.\n", fileSize, expectedFileSize); + + int numRows = (numGlyphs + 15) / 16; + int rowHeight = layout > 0 ? 16 : 8; + + image->width = 128; + image->height = numRows * rowHeight; + image->bitDepth = 8; + image->pixels = calloc(image->width * image->height, 1); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + if (bpp == 1) + ConvertFromTiles1Bpp(buffer, image->pixels, numGlyphs, layout); + else + ConvertFromTiles4Bpp(buffer, image->pixels, numGlyphs, layout); + + free(buffer); + + SetFontPalette(image); +} + +void WriteFont(char *path, struct Image *image, int numGlyphs, int bpp, int layout) +{ + if (image->width != 128) + FATAL_ERROR("The width of the font image (%d) is not 128.\n", image->width); + + int numRows = (numGlyphs + 15) / 16; + int rowHeight = layout > 0 ? 16 : 8; + int expectedHeight = numRows * rowHeight; + + if (image->height < expectedHeight) + FATAL_ERROR("The height of the font image (%d) is less than %d.\n", image->height, expectedHeight); + + int fileSize = CalcFileSize(numGlyphs, bpp, layout); + + unsigned char *buffer = calloc(fileSize, 1); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + if (bpp == 1) + ConvertToTiles1Bpp(image->pixels, buffer, numGlyphs, layout); + else + ConvertToTiles4Bpp(image->pixels, buffer, numGlyphs, layout); + + WriteWholeFile(path, buffer, fileSize); + + free(buffer); +} diff --git a/tools/rsfont/font.h b/tools/rsfont/font.h new file mode 100644 index 0000000000..1cd48757f1 --- /dev/null +++ b/tools/rsfont/font.h @@ -0,0 +1,30 @@ +// Copyright(c) 2015-2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FONT_H +#define FONT_H + +#include +#include "gfx.h" + +void ReadFont(char *path, struct Image *image, int numGlyphs, int bpp, int layout); +void WriteFont(char *path, struct Image *image, int numGlyphs, int bpp, int layout); + +#endif // FONT_H diff --git a/tools/rsfont/gfx.h b/tools/rsfont/gfx.h new file mode 100644 index 0000000000..04a3d80c7e --- /dev/null +++ b/tools/rsfont/gfx.h @@ -0,0 +1,50 @@ +// Copyright(c) 2015-2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef GFX_H +#define GFX_H + +#include +#include + +struct Color +{ + unsigned char red; + unsigned char green; + unsigned char blue; +}; + +struct Palette +{ + struct Color colors[256]; + int numColors; +}; + +struct Image { + int width; + int height; + int bitDepth; + unsigned char *pixels; + bool hasPalette; + struct Palette palette; + bool hasTransparency; +}; + +#endif // GFX_H diff --git a/tools/rsfont/global.h b/tools/rsfont/global.h new file mode 100644 index 0000000000..65dd351d21 --- /dev/null +++ b/tools/rsfont/global.h @@ -0,0 +1,31 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef GLOBAL_H +#define GLOBAL_H + +#include +#include + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#define UNUSED + +#else + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#define UNUSED __attribute__((__unused__)) + +#endif // _MSC_VER + +#endif // GLOBAL_H diff --git a/tools/rsfont/main.c b/tools/rsfont/main.c new file mode 100644 index 0000000000..2f5d9d971b --- /dev/null +++ b/tools/rsfont/main.c @@ -0,0 +1,93 @@ +// Copyright(c) 2015-2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include "global.h" +#include "util.h" +#include "gfx.h" +#include "convert_png.h" +#include "font.h" + +int ExtensionToBpp(const char *extension) +{ + if (!strcmp(extension, "1bpp")) + return 1; + else if (!strcmp(extension, "4bpp")) + return 4; + return 0; +} + +int main(int argc, char **argv) +{ + if (argc < 5) + FATAL_ERROR("Usage: rsfont INPUT_FILE OUTPUT_FILE NUM_GLYPHS LAYOUT_TYPE\n"); + + char *inputPath = argv[1]; + char *outputPath = argv[2]; + char *inputFileExtension = GetFileExtension(inputPath); + char *outputFileExtension = GetFileExtension(outputPath); + + if (inputFileExtension == NULL) + FATAL_ERROR("Input file \"%s\" has no extension.\n", inputPath); + + if (outputFileExtension == NULL) + FATAL_ERROR("Output file \"%s\" has no extension.\n", outputPath); + + int numGlyphs; + int bpp; + int layout; + + if (!ParseNumber(argv[3], NULL, 10, &numGlyphs)) + FATAL_ERROR("Failed to parse number of glyphs.\n"); + + if (!ParseNumber(argv[4], NULL, 10, &layout)) + FATAL_ERROR("Failed to parse layout type.\n"); + + if (layout < 0 || layout > 2) + FATAL_ERROR("Layout type %d is invalid. Layout type must be 0, 1, or 2.\n", layout); + + bool toPng; + + if (!strcmp(inputFileExtension, "png") && (bpp = ExtensionToBpp(outputFileExtension)) != 0) + toPng = false; + else if ((bpp = ExtensionToBpp(inputFileExtension)) != 0 && !strcmp(outputFileExtension, "png")) + toPng = true; + else + FATAL_ERROR("Don't know how to convert \"%s\" to \"%s\".\n", inputPath, outputPath); + + if (bpp == 1 && layout == 2) + FATAL_ERROR("Layout type 2 is not supported with 1 BPP fonts.\n"); + + struct Image image; + + if (toPng) + { + ReadFont(inputPath, &image, numGlyphs, bpp, layout); + WritePng(outputPath, &image); + } + else + { + image.bitDepth = 8; + ReadPng(inputPath, &image); + WriteFont(outputPath, &image, numGlyphs, bpp, layout); + } +} diff --git a/tools/rsfont/util.c b/tools/rsfont/util.c new file mode 100644 index 0000000000..87abeb31c4 --- /dev/null +++ b/tools/rsfont/util.c @@ -0,0 +1,124 @@ +// Copyright (c) 2015 YamaArashi + +#include +#include +#include +#include +#include +#include +#include "global.h" +#include "util.h" + +bool ParseNumber(char *s, char **end, int radix, int *intValue) +{ + char *localEnd; + + if (end == NULL) + end = &localEnd; + + errno = 0; + + const long longValue = strtol(s, end, radix); + + if (*end == s) + return false; // not a number + + if ((longValue == LONG_MIN || longValue == LONG_MAX) && errno == ERANGE) + return false; + + if (longValue > INT_MAX) + return false; + + if (longValue < INT_MIN) + return false; + + *intValue = (int)longValue; + + return true; +} + +char *GetFileExtension(char *path) +{ + char *extension = path; + + while (*extension != 0) + extension++; + + while (extension > path && *extension != '.') + extension--; + + if (extension == path) + return NULL; + + extension++; + + if (*extension == 0) + return NULL; + + return extension; +} + +unsigned char *ReadWholeFile(char *path, int *size) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + fseek(fp, 0, SEEK_END); + + *size = ftell(fp); + + unsigned char *buffer = malloc(*size); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for reading \"%s\".\n", path); + + rewind(fp); + + if (fread(buffer, *size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path); + + fclose(fp); + + return buffer; +} + +unsigned char *ReadWholeFileZeroPadded(char *path, int *size, int padAmount) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + fseek(fp, 0, SEEK_END); + + *size = ftell(fp); + + unsigned char *buffer = calloc(*size + padAmount, 1); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for reading \"%s\".\n", path); + + rewind(fp); + + if (fread(buffer, *size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path); + + fclose(fp); + + return buffer; +} + +void WriteWholeFile(char *path, void *buffer, int bufferSize) +{ + FILE *fp = fopen(path, "wb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); + + if (fwrite(buffer, bufferSize, 1, fp) != 1) + FATAL_ERROR("Failed to write to \"%s\".\n", path); + + fclose(fp); +} diff --git a/tools/rsfont/util.h b/tools/rsfont/util.h new file mode 100644 index 0000000000..6d7a9c21eb --- /dev/null +++ b/tools/rsfont/util.h @@ -0,0 +1,14 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef UTIL_H +#define UTIL_H + +#include + +bool ParseNumber(char *s, char **end, int radix, int *intValue); +char *GetFileExtension(char *path); +unsigned char *ReadWholeFile(char *path, int *size); +unsigned char *ReadWholeFileZeroPadded(char *path, int *size, int padAmount); +void WriteWholeFile(char *path, void *buffer, int bufferSize); + +#endif // UTIL_H diff --git a/tools/scaninc/.gitignore b/tools/scaninc/.gitignore new file mode 100644 index 0000000000..94bfbf989a --- /dev/null +++ b/tools/scaninc/.gitignore @@ -0,0 +1 @@ +scaninc diff --git a/tools/scaninc/LICENSE b/tools/scaninc/LICENSE new file mode 100644 index 0000000000..b66bf81c0f --- /dev/null +++ b/tools/scaninc/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/scaninc/Makefile b/tools/scaninc/Makefile new file mode 100644 index 0000000000..3e1c031a88 --- /dev/null +++ b/tools/scaninc/Makefile @@ -0,0 +1,15 @@ +CXX = g++ + +CXXFLAGS = -Wall -Werror -std=c++11 -O2 -s + +SRCS = scaninc.cpp c_file.cpp asm_file.cpp + +HEADERS := scaninc.h asm_file.h c_file.h + +.PHONY: clean + +scaninc: $(SRCS) $(HEADERS) + $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) scaninc scaninc.exe diff --git a/tools/scaninc/asm_file.cpp b/tools/scaninc/asm_file.cpp new file mode 100644 index 0000000000..6322749e20 --- /dev/null +++ b/tools/scaninc/asm_file.cpp @@ -0,0 +1,191 @@ +// Copyright(c) 2015-2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include "scaninc.h" +#include "asm_file.h" + +AsmFile::AsmFile(std::string path) +{ + m_path = path; + + FILE *fp = std::fopen(path.c_str(), "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path.c_str()); + + std::fseek(fp, 0, SEEK_END); + + m_size = std::ftell(fp); + + m_buffer = new char[m_size]; + + std::rewind(fp); + + if (std::fread(m_buffer, m_size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path.c_str()); + + std::fclose(fp); + + m_pos = 0; + m_lineNum = 1; +} + +AsmFile::~AsmFile() +{ + delete[] m_buffer; +} + +IncDirectiveType AsmFile::ReadUntilIncDirective(std::string &path) +{ + // At the beginning of each loop iteration, the current file position + // should be at the start of a line or at the end of the file. + for (;;) + { + SkipTabsAndSpaces(); + + IncDirectiveType incDirectiveType = IncDirectiveType::None; + + if (PeekChar() == '.') + { + m_pos++; + + if (MatchIncDirective("incbin", path)) + incDirectiveType = IncDirectiveType::Incbin; + else if (MatchIncDirective("include", path)) + incDirectiveType = IncDirectiveType::Include; + } + + for (;;) + { + int c = GetChar(); + + if (c == -1) + return incDirectiveType; + + if (c == ';') + { + SkipEndOfLineComment(); + break; + } + else if (c == '/' && PeekChar() == '*') + { + m_pos++; + SkipMultiLineComment(); + } + else if (c == '"') + { + SkipString(); + } + else if (c == '\n') + { + break; + } + } + + if (incDirectiveType != IncDirectiveType::None) + return incDirectiveType; + } +} + +std::string AsmFile::ReadPath() +{ + int length = 0; + int startPos = m_pos; + + for (;;) + { + int c = GetChar(); + + if (c == '"') + break; + + if (c == -1) + FATAL_INPUT_ERROR("unexpected EOF in include string\n"); + + if (c == 0) + FATAL_INPUT_ERROR("unexpected NUL character in include string\n"); + + if (c == '\n') + FATAL_INPUT_ERROR("unexpected end of line character in include string\n"); + + // Don't bother allowing any escape sequences. + if (c == '\\') + FATAL_INPUT_ERROR("unexpected escape in include string\n"); + + length++; + + if (length > SCANINC_MAX_PATH) + FATAL_INPUT_ERROR("path is too long"); + } + + return std::string(m_buffer + startPos, length); +} + +void AsmFile::SkipEndOfLineComment() +{ + int c; + + do + { + c = GetChar(); + } while (c != -1 && c != '\n'); +} + +void AsmFile::SkipMultiLineComment() +{ + for (;;) + { + int c = GetChar(); + + if (c == '*') + { + if (PeekChar() == '/') + { + m_pos++; + return; + } + } + else if (c == -1) + { + return; + } + } +} + +void AsmFile::SkipString() +{ + for (;;) + { + int c = GetChar(); + + if (c == '"') + break; + + if (c == -1) + FATAL_INPUT_ERROR("unexpected EOF in string\n"); + + if (c == '\\') + { + c = GetChar(); + } + } +} diff --git a/tools/scaninc/asm_file.h b/tools/scaninc/asm_file.h new file mode 100644 index 0000000000..ad99b757ee --- /dev/null +++ b/tools/scaninc/asm_file.h @@ -0,0 +1,119 @@ +// Copyright(c) 2015-2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef ASM_FILE_H +#define ASM_FILE_H + +#include +#include "scaninc.h" + +enum class IncDirectiveType +{ + None, + Include, + Incbin +}; + +class AsmFile +{ +public: + AsmFile(std::string path); + ~AsmFile(); + IncDirectiveType ReadUntilIncDirective(std::string& path); + +private: + char *m_buffer; + int m_pos; + int m_size; + int m_lineNum; + std::string m_path; + + int GetChar() + { + if (m_pos >= m_size) + return -1; + + int c = m_buffer[m_pos++]; + + if (c == '\r') + { + if (m_pos < m_size && m_buffer[m_pos++] == '\n') + { + m_lineNum++; + return '\n'; + } + else + { + FATAL_INPUT_ERROR("CR line endings are not supported\n"); + } + } + + if (c == '\n') + m_lineNum++; + + return c; + } + + // No newline translation because it's not needed for any use of this function. + int PeekChar() + { + if (m_pos >= m_size) + return -1; + + return m_buffer[m_pos]; + } + + void SkipTabsAndSpaces() + { + while (m_pos < m_size && (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ')) + m_pos++; + } + + bool MatchIncDirective(std::string directiveName, std::string& path) + { + int length = directiveName.length(); + int i; + + for (i = 0; i < length && m_pos + i < m_size; i++) + if (directiveName[i] != m_buffer[m_pos + i]) + return false; + + if (i < length) + return false; + + m_pos += length; + + SkipTabsAndSpaces(); + + if (GetChar() != '"') + FATAL_INPUT_ERROR("no path after \".%s\" directive\n", directiveName.c_str()); + + path = ReadPath(); + + return true; + } + + std::string ReadPath(); + void SkipEndOfLineComment(); + void SkipMultiLineComment(); + void SkipString(); +}; + +#endif // ASM_FILE_H diff --git a/tools/scaninc/c_file.cpp b/tools/scaninc/c_file.cpp new file mode 100644 index 0000000000..f7acc833fa --- /dev/null +++ b/tools/scaninc/c_file.cpp @@ -0,0 +1,298 @@ +// Copyright(c) 2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include "c_file.h" + +CFile::CFile(std::string path) +{ + m_path = path; + + FILE *fp = std::fopen(path.c_str(), "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path.c_str()); + + std::fseek(fp, 0, SEEK_END); + + m_size = std::ftell(fp); + + m_buffer = new char[m_size + 1]; + m_buffer[m_size] = 0; + + std::rewind(fp); + + if (std::fread(m_buffer, m_size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path.c_str()); + + std::fclose(fp); + + m_pos = 0; + m_lineNum = 1; +} + +CFile::~CFile() +{ + delete[] m_buffer; +} + +void CFile::FindIncbins() +{ + char stringChar = 0; + + while (m_pos < m_size) + { + if (stringChar) + { + if (m_buffer[m_pos] == stringChar) + { + m_pos++; + stringChar = 0; + } + else if (m_buffer[m_pos] == '\\' && m_buffer[m_pos + 1] == stringChar) + { + m_pos += 2; + } + else + { + if (m_buffer[m_pos] == '\n') + m_lineNum++; + m_pos++; + } + } + else + { + SkipWhitespace(); + CheckInclude(); + CheckIncbin(); + + if (m_pos >= m_size) + break; + + char c = m_buffer[m_pos++]; + + if (c == '\n') + m_lineNum++; + else if (c == '"') + stringChar = '"'; + else if (c == '\'') + stringChar = '\''; + else if (c == 0) + FATAL_INPUT_ERROR("unexpected null character"); + } + } +} + +bool CFile::ConsumeHorizontalWhitespace() +{ + if (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ') + { + m_pos++; + return true; + } + + return false; +} + +bool CFile::ConsumeNewline() +{ + if (m_buffer[m_pos] == '\n') + { + m_pos++; + m_lineNum++; + return true; + } + + if (m_buffer[m_pos] == '\r' && m_buffer[m_pos + 1] == '\n') + { + m_pos += 2; + m_lineNum++; + return true; + } + + return false; +} + +bool CFile::ConsumeComment() +{ + if (m_buffer[m_pos] == '/' && m_buffer[m_pos + 1] == '*') + { + m_pos += 2; + while (m_buffer[m_pos] != '*' && m_buffer[m_pos + 1] != '/') + { + if (m_buffer[m_pos] == 0) + return false; + if (!ConsumeNewline()) + m_pos++; + } + m_pos += 2; + return true; + } + else if (m_buffer[m_pos] == '/' && m_buffer[m_pos + 1] == '/') + { + m_pos += 2; + while (!ConsumeNewline()) + { + if (m_buffer[m_pos] == 0) + return false; + m_pos++; + } + return true; + } + + return false; +} + +void CFile::SkipWhitespace() +{ + while (ConsumeHorizontalWhitespace() || ConsumeNewline() || ConsumeComment()) + ; +} + +bool CFile::CheckIdentifier(const std::string& ident) +{ + unsigned int i; + + for (i = 0; i < ident.length() && m_pos + i < (unsigned)m_size; i++) + if (ident[i] != m_buffer[m_pos + i]) + return false; + + return (i == ident.length()); +} + +void CFile::CheckInclude() +{ + if (m_buffer[m_pos] != '#') + return; + + std::string ident = "#include"; + + if (!CheckIdentifier(ident)) + { + return; + } + + m_pos += ident.length(); + + ConsumeHorizontalWhitespace(); + + std::string path = ReadPath(); + + if (!path.empty()) { + m_includes.emplace(path); + } +} + +void CFile::CheckIncbin() +{ + // Optimization: assume most lines are not incbins + if (!(m_buffer[m_pos+0] == 'I' + && m_buffer[m_pos+1] == 'N' + && m_buffer[m_pos+2] == 'C' + && m_buffer[m_pos+3] == 'B' + && m_buffer[m_pos+4] == 'I' + && m_buffer[m_pos+5] == 'N' + && m_buffer[m_pos+6] == '_')) + { + return; + } + + std::string idents[6] = { "INCBIN_S8", "INCBIN_U8", "INCBIN_S16", "INCBIN_U16", "INCBIN_S32", "INCBIN_U32" }; + int incbinType = -1; + + for (int i = 0; i < 6; i++) + { + if (CheckIdentifier(idents[i])) + { + incbinType = i; + break; + } + } + + if (incbinType == -1) + return; + + long oldPos = m_pos; + long oldLineNum = m_lineNum; + + m_pos += idents[incbinType].length(); + + SkipWhitespace(); + + if (m_buffer[m_pos] != '(') + { + m_pos = oldPos; + m_lineNum = oldLineNum; + return; + } + + m_pos++; + + SkipWhitespace(); + + std::string path = ReadPath(); + + SkipWhitespace(); + + if (m_buffer[m_pos] != ')') + FATAL_INPUT_ERROR("expected ')'"); + + m_pos++; + + m_incbins.emplace(path); +} + +std::string CFile::ReadPath() +{ + if (m_buffer[m_pos] != '"') + { + if (m_buffer[m_pos] == '<') + { + return std::string(); + } + FATAL_INPUT_ERROR("expected '\"' or '<'"); + } + + m_pos++; + + int startPos = m_pos; + + while (m_buffer[m_pos] != '"') + { + if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + FATAL_INPUT_ERROR("unexpected EOF in path string"); + else + FATAL_INPUT_ERROR("unexpected null character in path string"); + } + + if (m_buffer[m_pos] == '\r' || m_buffer[m_pos] == '\n') + FATAL_INPUT_ERROR("unexpected end of line character in path string"); + + if (m_buffer[m_pos] == '\\') + FATAL_INPUT_ERROR("unexpected escape in path string"); + + m_pos++; + } + + m_pos++; + + return std::string(m_buffer + startPos, m_pos - 1 - startPos); +} diff --git a/tools/scaninc/c_file.h b/tools/scaninc/c_file.h new file mode 100644 index 0000000000..618901b855 --- /dev/null +++ b/tools/scaninc/c_file.h @@ -0,0 +1,57 @@ +// Copyright(c) 2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef C_FILE_H +#define C_FILE_H + +#include +#include +#include +#include "scaninc.h" + +class CFile +{ +public: + CFile(std::string path); + ~CFile(); + void FindIncbins(); + const std::set& GetIncbins() { return m_incbins; } + const std::set& GetIncludes() { return m_includes; } + +private: + char *m_buffer; + int m_pos; + int m_size; + int m_lineNum; + std::string m_path; + std::set m_incbins; + std::set m_includes; + + bool ConsumeHorizontalWhitespace(); + bool ConsumeNewline(); + bool ConsumeComment(); + void SkipWhitespace(); + bool CheckIdentifier(const std::string& ident); + void CheckInclude(); + void CheckIncbin(); + std::string ReadPath(); +}; + +#endif // C_FILE_H diff --git a/tools/scaninc/scaninc.cpp b/tools/scaninc/scaninc.cpp new file mode 100644 index 0000000000..3dc221479c --- /dev/null +++ b/tools/scaninc/scaninc.cpp @@ -0,0 +1,165 @@ +// Copyright(c) 2015-2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include +#include +#include +#include "scaninc.h" +#include "asm_file.h" +#include "c_file.h" + +bool CanOpenFile(std::string path) +{ + FILE *fp = std::fopen(path.c_str(), "rb"); + + if (fp == NULL) + return false; + + std::fclose(fp); + return true; +} + +const char *const USAGE = "Usage: scaninc [-I INCLUDE_PATH] FILE_PATH\n"; + +int main(int argc, char **argv) +{ + std::queue filesToProcess; + std::set dependencies; + + std::list includeDirs; + + argc--; + argv++; + + while (argc > 1) + { + std::string arg(argv[0]); + if (arg.substr(0, 2) == "-I") + { + std::string includeDir = arg.substr(2); + if (includeDir.empty()) + { + argc--; + argv++; + includeDir = std::string(argv[0]); + } + if (includeDir.back() != '/') + { + includeDir += '/'; + } + includeDirs.push_back(includeDir); + } + else + { + FATAL_ERROR(USAGE); + } + argc--; + argv++; + } + + if (argc != 1) { + FATAL_ERROR(USAGE); + } + + std::string initialPath(argv[0]); + + std::size_t pos = initialPath.find_last_of('.'); + + if (pos == std::string::npos) + FATAL_ERROR("no file extension in path \"%s\"\n", initialPath.c_str()); + + std::string extension = initialPath.substr(pos + 1); + + std::string srcDir(""); + std::size_t slash = initialPath.rfind('/'); + if (slash != std::string::npos) + { + srcDir = initialPath.substr(0, slash + 1); + } + includeDirs.push_back(srcDir); + + if (extension == "c" || extension == "h") + { + filesToProcess.push(initialPath); + + while (!filesToProcess.empty()) + { + CFile file(filesToProcess.front()); + filesToProcess.pop(); + + file.FindIncbins(); + for (auto incbin : file.GetIncbins()) + { + dependencies.insert(incbin); + } + for (auto include : file.GetIncludes()) + { + for (auto includeDir : includeDirs) + { + std::string path(includeDir + include); + if (CanOpenFile(path)) + { + bool inserted = dependencies.insert(path).second; + if (inserted) + { + filesToProcess.push(path); + } + break; + } + } + } + } + } + else if (extension == "s" || extension == "inc") + { + filesToProcess.push(initialPath); + + while (!filesToProcess.empty()) + { + AsmFile file(filesToProcess.front()); + + filesToProcess.pop(); + + IncDirectiveType incDirectiveType; + std::string path; + + while ((incDirectiveType = file.ReadUntilIncDirective(path)) != IncDirectiveType::None) + { + bool inserted = dependencies.insert(path).second; + if (inserted + && incDirectiveType == IncDirectiveType::Include + && CanOpenFile(path)) + filesToProcess.push(path); + } + } + } + else + { + FATAL_ERROR("unknown extension \"%s\"\n", extension.c_str()); + } + + for (const std::string &path : dependencies) + { + std::printf("%s\n", path.c_str()); + } +} diff --git a/tools/scaninc/scaninc.h b/tools/scaninc/scaninc.h new file mode 100644 index 0000000000..30cc9611c1 --- /dev/null +++ b/tools/scaninc/scaninc.h @@ -0,0 +1,59 @@ +// Copyright(c) 2015-2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef SCANINC_H +#define SCANINC_H + +#include +#include + +#ifdef _MSC_VER + +#define FATAL_INPUT_ERROR(format, ...) \ +do { \ + fprintf(stderr, "%s:%d " format, m_path.c_str(), m_lineNum, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#else + +#define FATAL_INPUT_ERROR(format, ...) \ +do { \ + fprintf(stderr, "%s:%d " format, m_path.c_str(), m_lineNum, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#endif // _MSC_VER + +#define SCANINC_MAX_PATH 255 + +#endif // SCANINC_H From 266dd492a772c6189eaf45a134592c3d319bf857 Mon Sep 17 00:00:00 2001 From: EternalCode Date: Mon, 4 Dec 2017 17:12:05 -0500 Subject: [PATCH 06/54] void parameter in function header --- src/fldeff_teleport.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index ea04f52dab..1730f83551 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -17,7 +17,7 @@ extern void SetPlayerAvatarTransitionFlags(u8); // 817C8BC -bool8 SetUpFieldMove_Teleport() +bool8 SetUpFieldMove_Teleport(void) { if (is_light_level_1_2_3_or_6(gMapHeader.mapType) == TRUE) { @@ -29,7 +29,7 @@ bool8 SetUpFieldMove_Teleport() } // 817C8FC -void hm_teleport_run_dp02scr() +void hm_teleport_run_dp02scr(void) { sub_808469C(); FieldEffectStart(0x3F); @@ -37,7 +37,7 @@ void hm_teleport_run_dp02scr() } // 817C91C -u8 FldEff_UseTeleport() +u8 FldEff_UseTeleport(void) { u8 taskID = oei_task_add(); gTasks[taskID].data[8] = (u32)sub_817C94C >> 16; @@ -46,7 +46,7 @@ u8 FldEff_UseTeleport() return 0; } -void sub_817C94C() +void sub_817C94C(void) { FieldEffectActiveListRemove(0x3F); sub_80B7FC8(); From 0c20cd699061de7eab02a226daee125dd7b165c0 Mon Sep 17 00:00:00 2001 From: Avara Date: Mon, 11 Dec 2017 14:37:13 +0000 Subject: [PATCH 07/54] Opponent Constants --- include/opponent_constants.h | 860 +++++++++++++++++++++++++++++++++++ 1 file changed, 860 insertions(+) create mode 100644 include/opponent_constants.h diff --git a/include/opponent_constants.h b/include/opponent_constants.h new file mode 100644 index 0000000000..b3e8cef038 --- /dev/null +++ b/include/opponent_constants.h @@ -0,0 +1,860 @@ +#ifndef GUARD_CONSTANTS_OPPONENTS_H +#define GUARD_CONSTANTS_OPPONENTS_H + +#define OPPONENT_NONE 0 +#define OPPONENT_SAWYER_1 1 +#define OPPONENT_GRUNT_1 2 +#define OPPONENT_GRUNT_2 3 +#define OPPONENT_GRUNT_3 4 +#define OPPONENT_GRUNT_4 5 +#define OPPONENT_GRUNT_5 6 +#define OPPONENT_GRUNT_6 7 +#define OPPONENT_GRUNT_7 8 +#define OPPONENT_GABRIELLE_1 9 +#define OPPONENT_GRUNT_8 10 +#define OPPONENT_MARCEL 11 +#define OPPONENT_ALBERTO 12 +#define OPPONENT_ED 13 +#define OPPONENT_GRUNT_9 14 +#define OPPONENT_DECLAN 15 +#define OPPONENT_GRUNT_10 16 +#define OPPONENT_GRUNT_11 17 +#define OPPONENT_GRUNT_12 18 +#define OPPONENT_GRUNT_13 19 +#define OPPONENT_GRUNT_14 20 +#define OPPONENT_GRUNT_15 21 +#define OPPONENT_GRUNT_16 22 +#define OPPONENT_GRUNT_17 23 +#define OPPONENT_GRUNT_18 24 +#define OPPONENT_GRUNT_19 25 +#define OPPONENT_GRUNT_20 26 +#define OPPONENT_GRUNT_21 27 +#define OPPONENT_GRUNT_22 28 +#define OPPONENT_FREDRICK 29 +#define OPPONENT_MATT_1 30 +#define OPPONENT_ZANDER 31 +#define OPPONENT_SHELLY_1 32 +#define OPPONENT_SHELLY_2 33 +#define OPPONENT_ARCHIE 34 +#define OPPONENT_LEAH 35 +#define OPPONENT_DAISY 36 +#define OPPONENT_ROSE_1 37 +#define OPPONENT_FELIX 38 +#define OPPONENT_VIOLET 39 +#define OPPONENT_ROSE_2 40 +#define OPPONENT_ROSE_3 41 +#define OPPONENT_ROSE_4 42 +#define OPPONENT_ROSE_5 43 +#define OPPONENT_DUSTY_1 44 +#define OPPONENT_CHIP 45 +#define OPPONENT_FOSTER 46 +#define OPPONENT_DUSTY_2 47 +#define OPPONENT_DUSTY_3 48 +#define OPPONENT_DUSTY_4 49 +#define OPPONENT_DUSTY_5 50 +#define OPPONENT_GABBY_AND_TY_1 51 +#define OPPONENT_GABBY_AND_TY_2 52 +#define OPPONENT_GABBY_AND_TY_3 53 +#define OPPONENT_GABBY_AND_TY_4 54 +#define OPPONENT_GABBY_AND_TY_5 55 +#define OPPONENT_GABBY_AND_TY_6 56 +#define OPPONENT_LOLA_1 57 +#define OPPONENT_AUSTINA 58 +#define OPPONENT_GWEN 59 +#define OPPONENT_LOLA_2 60 +#define OPPONENT_LOLA_3 61 +#define OPPONENT_LOLA_4 62 +#define OPPONENT_LOLA_5 63 +#define OPPONENT_RICKY_1 64 +#define OPPONENT_SIMON 65 +#define OPPONENT_CHARLIE 66 +#define OPPONENT_RICKY_2 67 +#define OPPONENT_RICKY_3 68 +#define OPPONENT_RICKY_4 69 +#define OPPONENT_RICKY_5 70 +#define OPPONENT_RANDALL 71 +#define OPPONENT_PARKER 72 +#define OPPONENT_GEORGE 73 +#define OPPONENT_BERKE 74 +#define OPPONENT_BRAXTON 75 +#define OPPONENT_VINCENT 76 +#define OPPONENT_LEROY 77 +#define OPPONENT_WILTON_1 78 +#define OPPONENT_EDGAR 79 +#define OPPONENT_ALBERT 80 +#define OPPONENT_SAMUEL 81 +#define OPPONENT_VITO 82 +#define OPPONENT_OWEN 83 +#define OPPONENT_WILTON_2 84 +#define OPPONENT_WILTON_3 85 +#define OPPONENT_WILTON_4 86 +#define OPPONENT_WILTON_5 87 +#define OPPONENT_WARREN 88 +#define OPPONENT_MARY 89 +#define OPPONENT_ALEXIA 90 +#define OPPONENT_JODY 91 +#define OPPONENT_WENDY 92 +#define OPPONENT_KEIRA 93 +#define OPPONENT_BROOKE_1 94 +#define OPPONENT_JENNIFER 95 +#define OPPONENT_HOPE 96 +#define OPPONENT_SHANNON 97 +#define OPPONENT_MICHELLE 98 +#define OPPONENT_CAROLINE 99 +#define OPPONENT_JULIE 100 +#define OPPONENT_BROOKE_2 101 +#define OPPONENT_BROOKE_3 102 +#define OPPONENT_BROOKE_4 103 +#define OPPONENT_BROOKE_5 104 +#define OPPONENT_PATRICIA 105 +#define OPPONENT_KINDRA 106 +#define OPPONENT_TAMMY 107 +#define OPPONENT_VALERIE_1 108 +#define OPPONENT_TASHA 109 +#define OPPONENT_VALERIE_2 110 +#define OPPONENT_VALERIE_3 111 +#define OPPONENT_VALERIE_4 112 +#define OPPONENT_VALERIE_5 113 +#define OPPONENT_CINDY_1 114 +#define OPPONENT_DAPHNE 115 +#define OPPONENT_GRUNT_23 116 +#define OPPONENT_CINDY_2 117 +#define OPPONENT_BRIANNA 118 +#define OPPONENT_NAOMI 119 +#define OPPONENT_CINDY_3 120 +#define OPPONENT_CINDY_4 121 +#define OPPONENT_CINDY_5 122 +#define OPPONENT_CINDY_6 123 +#define OPPONENT_MELISSA 124 +#define OPPONENT_SHEILA 125 +#define OPPONENT_SHIRLEY 126 +#define OPPONENT_JESSICA_1 127 +#define OPPONENT_CONNIE 128 +#define OPPONENT_BRIDGET 129 +#define OPPONENT_OLIVIA 130 +#define OPPONENT_TIFFANY 131 +#define OPPONENT_JESSICA_2 132 +#define OPPONENT_JESSICA_3 133 +#define OPPONENT_JESSICA_4 134 +#define OPPONENT_JESSICA_5 135 +#define OPPONENT_WINSTON_1 136 +#define OPPONENT_MOLLIE 137 +#define OPPONENT_GARRET 138 +#define OPPONENT_WINSTON_2 139 +#define OPPONENT_WINSTON_3 140 +#define OPPONENT_WINSTON_4 141 +#define OPPONENT_WINSTON_5 142 +#define OPPONENT_STEVE_1 143 +#define OPPONENT_THALIA_1 144 +#define OPPONENT_MARK 145 +#define OPPONENT_GRUNT_24 146 +#define OPPONENT_STEVE_2 147 +#define OPPONENT_STEVE_3 148 +#define OPPONENT_STEVE_4 149 +#define OPPONENT_STEVE_5 150 +#define OPPONENT_LUIS 151 +#define OPPONENT_DOMINIK 152 +#define OPPONENT_DOUGLAS 153 +#define OPPONENT_DARRIN 154 +#define OPPONENT_TONY_1 155 +#define OPPONENT_JEROME 156 +#define OPPONENT_MATTHEW 157 +#define OPPONENT_DAVID 158 +#define OPPONENT_SPENCER 159 +#define OPPONENT_ROLAND 160 +#define OPPONENT_NOLEN 161 +#define OPPONENT_STAN 162 +#define OPPONENT_BARRY 163 +#define OPPONENT_DEAN 164 +#define OPPONENT_RODNEY 165 +#define OPPONENT_RICHARD 166 +#define OPPONENT_HERMAN 167 +#define OPPONENT_SANTIAGO 168 +#define OPPONENT_GILBERT 169 +#define OPPONENT_FRANKLIN 170 +#define OPPONENT_KEVIN 171 +#define OPPONENT_JACK 172 +#define OPPONENT_DUDLEY 173 +#define OPPONENT_CHAD 174 +#define OPPONENT_TONY_2 175 +#define OPPONENT_TONY_3 176 +#define OPPONENT_TONY_4 177 +#define OPPONENT_TONY_5 178 +#define OPPONENT_TAKAO 179 +#define OPPONENT_HITOSHI 180 +#define OPPONENT_KIYO 181 +#define OPPONENT_KOICHI 182 +#define OPPONENT_NOB_1 183 +#define OPPONENT_NOB_2 184 +#define OPPONENT_NOB_3 185 +#define OPPONENT_NOB_4 186 +#define OPPONENT_NOB_5 187 +#define OPPONENT_YUJI 188 +#define OPPONENT_DAISUKE 189 +#define OPPONENT_ATSUSHI 190 +#define OPPONENT_KIRK 191 +#define OPPONENT_GRUNT_25 192 +#define OPPONENT_GRUNT_26 193 +#define OPPONENT_SHAWN 194 +#define OPPONENT_FERNANDO_1 195 +#define OPPONENT_DALTON_1 196 +#define OPPONENT_DALTON_2 197 +#define OPPONENT_DALTON_3 198 +#define OPPONENT_DALTON_4 199 +#define OPPONENT_DALTON_5 200 +#define OPPONENT_COLE 201 +#define OPPONENT_JEFF 202 +#define OPPONENT_AXLE 203 +#define OPPONENT_JACE 204 +#define OPPONENT_KEEGAN 205 +#define OPPONENT_BERNIE_1 206 +#define OPPONENT_BERNIE_2 207 +#define OPPONENT_BERNIE_3 208 +#define OPPONENT_BERNIE_4 209 +#define OPPONENT_BERNIE_5 210 +#define OPPONENT_DREW 211 +#define OPPONENT_BEAU 212 +#define OPPONENT_LARRY 213 +#define OPPONENT_SHANE 214 +#define OPPONENT_JUSTIN 215 +#define OPPONENT_ETHAN_1 216 +#define OPPONENT_AUTUMN 217 +#define OPPONENT_TRAVIS 218 +#define OPPONENT_ETHAN_2 219 +#define OPPONENT_ETHAN_3 220 +#define OPPONENT_ETHAN_4 221 +#define OPPONENT_ETHAN_5 222 +#define OPPONENT_BRENT 223 +#define OPPONENT_DONALD 224 +#define OPPONENT_TAYLOR 225 +#define OPPONENT_JEFFREY_1 226 +#define OPPONENT_DEREK 227 +#define OPPONENT_JEFFREY_2 228 +#define OPPONENT_JEFFREY_3 229 +#define OPPONENT_JEFFREY_4 230 +#define OPPONENT_JEFFREY_5 231 +#define OPPONENT_EDWARD 232 +#define OPPONENT_PRESTON 233 +#define OPPONENT_VIRGIL 234 +#define OPPONENT_BLAKE 235 +#define OPPONENT_WILLIAM 236 +#define OPPONENT_JOSHUA 237 +#define OPPONENT_CAMERON_1 238 +#define OPPONENT_CAMERON_2 239 +#define OPPONENT_CAMERON_3 240 +#define OPPONENT_CAMERON_4 241 +#define OPPONENT_CAMERON_5 242 +#define OPPONENT_JACLYN 243 +#define OPPONENT_HANNAH 244 +#define OPPONENT_SAMANTHA 245 +#define OPPONENT_MAURA 246 +#define OPPONENT_KAYLA 247 +#define OPPONENT_ALEXIS 248 +#define OPPONENT_JACKI_1 249 +#define OPPONENT_JACKI_2 250 +#define OPPONENT_JACKI_3 251 +#define OPPONENT_JACKI_4 252 +#define OPPONENT_JACKI_5 253 +#define OPPONENT_WALTER_1 254 +#define OPPONENT_MICAH 255 +#define OPPONENT_THOMAS 256 +#define OPPONENT_WALTER_2 257 +#define OPPONENT_WALTER_3 258 +#define OPPONENT_WALTER_4 259 +#define OPPONENT_WALTER_5 260 +#define OPPONENT_SIDNEY 261 +#define OPPONENT_PHOEBE 262 +#define OPPONENT_GLACIA 263 +#define OPPONENT_DRAKE 264 +#define OPPONENT_ROXANNE_1 265 +#define OPPONENT_BRAWLY_1 266 +#define OPPONENT_WATTSON_1 267 +#define OPPONENT_FLANNERY_1 268 +#define OPPONENT_NORMAN_1 269 +#define OPPONENT_WINONA_1 270 +#define OPPONENT_TATE_AND_LIZA_1 271 +#define OPPONENT_JUAN_1 272 +#define OPPONENT_JERRY_1 273 +#define OPPONENT_TED 274 +#define OPPONENT_PAUL 275 +#define OPPONENT_JERRY_2 276 +#define OPPONENT_JERRY_3 277 +#define OPPONENT_JERRY_4 278 +#define OPPONENT_JERRY_5 279 +#define OPPONENT_KAREN_1 280 +#define OPPONENT_GEORGIA 281 +#define OPPONENT_KAREN_2 282 +#define OPPONENT_KAREN_3 283 +#define OPPONENT_KAREN_4 284 +#define OPPONENT_KAREN_5 285 +#define OPPONENT_KATE_AND_JOY 286 +#define OPPONENT_ANNA_AND_MEG_1 287 +#define OPPONENT_ANNA_AND_MEG_2 288 +#define OPPONENT_ANNA_AND_MEG_3 289 +#define OPPONENT_ANNA_AND_MEG_4 290 +#define OPPONENT_ANNA_AND_MEG_5 291 +#define OPPONENT_VICTOR 292 +#define OPPONENT_MIGUEL_1 293 +#define OPPONENT_COLTON 294 +#define OPPONENT_MIGUEL_2 295 +#define OPPONENT_MIGUEL_3 296 +#define OPPONENT_MIGUEL_4 297 +#define OPPONENT_MIGUEL_5 298 +#define OPPONENT_VICTORIA 299 +#define OPPONENT_VANESSA 300 +#define OPPONENT_BETHANY 301 +#define OPPONENT_ISABEL_1 302 +#define OPPONENT_ISABEL_2 303 +#define OPPONENT_ISABEL_3 304 +#define OPPONENT_ISABEL_4 305 +#define OPPONENT_ISABEL_5 306 +#define OPPONENT_TIMOTHY_1 307 +#define OPPONENT_TIMOTHY_2 308 +#define OPPONENT_TIMOTHY_3 309 +#define OPPONENT_TIMOTHY_4 310 +#define OPPONENT_TIMOTHY_5 311 +#define OPPONENT_VICKY 312 +#define OPPONENT_SHELBY_1 313 +#define OPPONENT_SHELBY_2 314 +#define OPPONENT_SHELBY_3 315 +#define OPPONENT_SHELBY_4 316 +#define OPPONENT_SHELBY_5 317 +#define OPPONENT_CALVIN_1 318 +#define OPPONENT_BILLY 319 +#define OPPONENT_JOSH 320 +#define OPPONENT_TOMMY 321 +#define OPPONENT_JOEY 322 +#define OPPONENT_BEN 323 +#define OPPONENT_QUINCY 324 +#define OPPONENT_KATELYNN 325 +#define OPPONENT_JAYLEN 326 +#define OPPONENT_DILLON 327 +#define OPPONENT_CALVIN_2 328 +#define OPPONENT_CALVIN_3 329 +#define OPPONENT_CALVIN_4 330 +#define OPPONENT_CALVIN_5 331 +#define OPPONENT_EDDIE 332 +#define OPPONENT_ALLEN 333 +#define OPPONENT_TIMMY 334 +#define OPPONENT_WALLACE 335 +#define OPPONENT_ANDREW 336 +#define OPPONENT_IVAN 337 +#define OPPONENT_CLAUDE 338 +#define OPPONENT_ELLIOT_1 339 +#define OPPONENT_NED 340 +#define OPPONENT_DALE 341 +#define OPPONENT_NOLAN 342 +#define OPPONENT_BARNY 343 +#define OPPONENT_WADE 344 +#define OPPONENT_CARTER 345 +#define OPPONENT_ELLIOT_2 346 +#define OPPONENT_ELLIOT_3 347 +#define OPPONENT_ELLIOT_4 348 +#define OPPONENT_ELLIOT_5 349 +#define OPPONENT_RONALD 350 +#define OPPONENT_JACOB 351 +#define OPPONENT_ANTHONY 352 +#define OPPONENT_BENJAMIN_1 353 +#define OPPONENT_BENJAMIN_2 354 +#define OPPONENT_BENJAMIN_3 355 +#define OPPONENT_BENJAMIN_4 356 +#define OPPONENT_BENJAMIN_5 357 +#define OPPONENT_ABIGAIL_1 358 +#define OPPONENT_JASMINE 359 +#define OPPONENT_ABIGAIL_2 360 +#define OPPONENT_ABIGAIL_3 361 +#define OPPONENT_ABIGAIL_4 362 +#define OPPONENT_ABIGAIL_5 363 +#define OPPONENT_DYLAN_1 364 +#define OPPONENT_DYLAN_2 365 +#define OPPONENT_DYLAN_3 366 +#define OPPONENT_DYLAN_4 367 +#define OPPONENT_DYLAN_5 368 +#define OPPONENT_MARIA_1 369 +#define OPPONENT_MARIA_2 370 +#define OPPONENT_MARIA_3 371 +#define OPPONENT_MARIA_4 372 +#define OPPONENT_MARIA_5 373 +#define OPPONENT_CAMDEN 374 +#define OPPONENT_DEMETRIUS 375 +#define OPPONENT_ISAIAH_1 376 +#define OPPONENT_PABLO_1 377 +#define OPPONENT_CHASE 378 +#define OPPONENT_ISAIAH_2 379 +#define OPPONENT_ISAIAH_3 380 +#define OPPONENT_ISAIAH_4 381 +#define OPPONENT_ISAIAH_5 382 +#define OPPONENT_ISOBEL 383 +#define OPPONENT_DONNY 384 +#define OPPONENT_TALIA 385 +#define OPPONENT_KATELYN_1 386 +#define OPPONENT_ALLISON 387 +#define OPPONENT_KATELYN_2 388 +#define OPPONENT_KATELYN_3 389 +#define OPPONENT_KATELYN_4 390 +#define OPPONENT_KATELYN_5 391 +#define OPPONENT_NICOLAS_1 392 +#define OPPONENT_NICOLAS_2 393 +#define OPPONENT_NICOLAS_3 394 +#define OPPONENT_NICOLAS_4 395 +#define OPPONENT_NICOLAS_5 396 +#define OPPONENT_AARON 397 +#define OPPONENT_PERRY 398 +#define OPPONENT_HUGH 399 +#define OPPONENT_PHIL 400 +#define OPPONENT_JARED 401 +#define OPPONENT_HUMBERTO 402 +#define OPPONENT_PRESLEY 403 +#define OPPONENT_EDWARDO 404 +#define OPPONENT_COLIN 405 +#define OPPONENT_ROBERT_1 406 +#define OPPONENT_BENNY 407 +#define OPPONENT_CHESTER 408 +#define OPPONENT_ROBERT_2 409 +#define OPPONENT_ROBERT_3 410 +#define OPPONENT_ROBERT_4 411 +#define OPPONENT_ROBERT_5 412 +#define OPPONENT_ALEX 413 +#define OPPONENT_BECK 414 +#define OPPONENT_YASU 415 +#define OPPONENT_TAKASHI 416 +#define OPPONENT_DIANNE 417 +#define OPPONENT_JANI 418 +#define OPPONENT_LAO_1 419 +#define OPPONENT_LUNG 420 +#define OPPONENT_LAO_2 421 +#define OPPONENT_LAO_3 422 +#define OPPONENT_LAO_4 423 +#define OPPONENT_LAO_5 424 +#define OPPONENT_JOCELYN 425 +#define OPPONENT_LAURA 426 +#define OPPONENT_CYNDY_1 427 +#define OPPONENT_CORA 428 +#define OPPONENT_PAULA 429 +#define OPPONENT_CYNDY_2 430 +#define OPPONENT_CYNDY_3 431 +#define OPPONENT_CYNDY_4 432 +#define OPPONENT_CYNDY_5 433 +#define OPPONENT_MADELINE_1 434 +#define OPPONENT_CLARISSA 435 +#define OPPONENT_ANGELICA 436 +#define OPPONENT_MADELINE_2 437 +#define OPPONENT_MADELINE_3 438 +#define OPPONENT_MADELINE_4 439 +#define OPPONENT_MADELINE_5 440 +#define OPPONENT_BEVERLY 441 +#define OPPONENT_IMANI 442 +#define OPPONENT_KYLA 443 +#define OPPONENT_DENISE 444 +#define OPPONENT_BETH 445 +#define OPPONENT_TARA 446 +#define OPPONENT_MISSY 447 +#define OPPONENT_ALICE 448 +#define OPPONENT_JENNY_1 449 +#define OPPONENT_GRACE 450 +#define OPPONENT_TANYA 451 +#define OPPONENT_SHARON 452 +#define OPPONENT_NIKKI 453 +#define OPPONENT_BRENDA 454 +#define OPPONENT_KATIE 455 +#define OPPONENT_SUSIE 456 +#define OPPONENT_KARA 457 +#define OPPONENT_DANA 458 +#define OPPONENT_SIENNA 459 +#define OPPONENT_DEBRA 460 +#define OPPONENT_LINDA 461 +#define OPPONENT_KAYLEE 462 +#define OPPONENT_LAUREL 463 +#define OPPONENT_CARLEE 464 +#define OPPONENT_JENNY_2 465 +#define OPPONENT_JENNY_3 466 +#define OPPONENT_JENNY_4 467 +#define OPPONENT_JENNY_5 468 +#define OPPONENT_HEIDI 469 +#define OPPONENT_BECKY 470 +#define OPPONENT_CAROL 471 +#define OPPONENT_NANCY 472 +#define OPPONENT_MARTHA 473 +#define OPPONENT_DIANA_1 474 +#define OPPONENT_CEDRIC 475 +#define OPPONENT_IRENE 476 +#define OPPONENT_DIANA_2 477 +#define OPPONENT_DIANA_3 478 +#define OPPONENT_DIANA_4 479 +#define OPPONENT_DIANA_5 480 +#define OPPONENT_AMY_AND_LIV_1 481 +#define OPPONENT_AMY_AND_LIV_2 482 +#define OPPONENT_GINA_AND_MIA_1 483 +#define OPPONENT_MIU_AND_YUKI 484 +#define OPPONENT_AMY_AND_LIV_3 485 +#define OPPONENT_GINA_AND_MIA_2 486 +#define OPPONENT_AMY_AND_LIV_4 487 +#define OPPONENT_AMY_AND_LIV_5 488 +#define OPPONENT_AMY_AND_LIV_6 489 +#define OPPONENT_HUEY 490 +#define OPPONENT_EDMOND 491 +#define OPPONENT_ERNEST_1 492 +#define OPPONENT_DWAYNE 493 +#define OPPONENT_PHILLIP 494 +#define OPPONENT_LEONARD 495 +#define OPPONENT_DUNCAN 496 +#define OPPONENT_ERNEST_2 497 +#define OPPONENT_ERNEST_3 498 +#define OPPONENT_ERNEST_4 499 +#define OPPONENT_ERNEST_5 500 +#define OPPONENT_ELI 501 +#define OPPONENT_ANNIKA 502 +#define OPPONENT_JAZMYN 503 +#define OPPONENT_JONAS 504 +#define OPPONENT_KAYLEY 505 +#define OPPONENT_AURON 506 +#define OPPONENT_KELVIN 507 +#define OPPONENT_MARLEY 508 +#define OPPONENT_REYNA 509 +#define OPPONENT_HUDSON 510 +#define OPPONENT_CONOR 511 +#define OPPONENT_EDWIN_1 512 +#define OPPONENT_HECTOR 513 +#define OPPONENT_TABITHA_1 514 +#define OPPONENT_EDWIN_2 515 +#define OPPONENT_EDWIN_3 516 +#define OPPONENT_EDWIN_4 517 +#define OPPONENT_EDWIN_5 518 +#define OPPONENT_WALLY_1 519 +#define OPPONENT_BRENDAN_1 520 +#define OPPONENT_BRENDAN_2 521 +#define OPPONENT_BRENDAN_3 522 +#define OPPONENT_BRENDAN_4 523 +#define OPPONENT_BRENDAN_5 524 +#define OPPONENT_BRENDAN_6 525 +#define OPPONENT_BRENDAN_7 526 +#define OPPONENT_BRENDAN_8 527 +#define OPPONENT_BRENDAN_9 528 +#define OPPONENT_MAY_1 529 +#define OPPONENT_MAY_2 530 +#define OPPONENT_MAY_3 531 +#define OPPONENT_MAY_4 532 +#define OPPONENT_MAY_5 533 +#define OPPONENT_MAY_6 534 +#define OPPONENT_MAY_7 535 +#define OPPONENT_MAY_8 536 +#define OPPONENT_MAY_9 537 +#define OPPONENT_ISAAC_1 538 +#define OPPONENT_DAVIS 539 +#define OPPONENT_MITCHELL 540 +#define OPPONENT_ISAAC_2 541 +#define OPPONENT_ISAAC_3 542 +#define OPPONENT_ISAAC_4 543 +#define OPPONENT_ISAAC_5 544 +#define OPPONENT_LYDIA_1 545 +#define OPPONENT_HALLE 546 +#define OPPONENT_GARRISON 547 +#define OPPONENT_LYDIA_2 548 +#define OPPONENT_LYDIA_3 549 +#define OPPONENT_LYDIA_4 550 +#define OPPONENT_LYDIA_5 551 +#define OPPONENT_JACKSON_1 552 +#define OPPONENT_LORENZO 553 +#define OPPONENT_SEBASTIAN 554 +#define OPPONENT_JACKSON_2 555 +#define OPPONENT_JACKSON_3 556 +#define OPPONENT_JACKSON_4 557 +#define OPPONENT_JACKSON_5 558 +#define OPPONENT_CATHERINE_1 559 +#define OPPONENT_JENNA 560 +#define OPPONENT_SOPHIA 561 +#define OPPONENT_CATHERINE_2 562 +#define OPPONENT_CATHERINE_3 563 +#define OPPONENT_CATHERINE_4 564 +#define OPPONENT_CATHERINE_5 565 +#define OPPONENT_JULIO 566 +#define OPPONENT_GRUNT_27 567 +#define OPPONENT_GRUNT_28 568 +#define OPPONENT_GRUNT_29 569 +#define OPPONENT_GRUNT_30 570 +#define OPPONENT_MARC 571 +#define OPPONENT_BRENDEN 572 +#define OPPONENT_LILITH 573 +#define OPPONENT_CRISTIAN 574 +#define OPPONENT_SYLVIA 575 +#define OPPONENT_LEONARDO 576 +#define OPPONENT_ATHENA 577 +#define OPPONENT_HARRISON 578 +#define OPPONENT_GRUNT_31 579 +#define OPPONENT_CLARENCE 580 +#define OPPONENT_TERRY 581 +#define OPPONENT_NATE 582 +#define OPPONENT_KATHLEEN 583 +#define OPPONENT_CLIFFORD 584 +#define OPPONENT_NICHOLAS 585 +#define OPPONENT_GRUNT_32 586 +#define OPPONENT_GRUNT_33 587 +#define OPPONENT_GRUNT_34 588 +#define OPPONENT_GRUNT_35 589 +#define OPPONENT_GRUNT_36 590 +#define OPPONENT_MACEY 591 +#define OPPONENT_BRENDAN_10 592 +#define OPPONENT_BRENDAN_11 593 +#define OPPONENT_PAXTON 594 +#define OPPONENT_ISABELLA 595 +#define OPPONENT_GRUNT_37 596 +#define OPPONENT_TABITHA_2 597 +#define OPPONENT_JONATHAN 598 +#define OPPONENT_BRENDAN_12 599 +#define OPPONENT_MAY_10 600 +#define OPPONENT_MAXIE_1 601 +#define OPPONENT_MAXIE_2 602 +#define OPPONENT_TIANA 603 +#define OPPONENT_HALEY_1 604 +#define OPPONENT_JANICE 605 +#define OPPONENT_VIVI 606 +#define OPPONENT_HALEY_2 607 +#define OPPONENT_HALEY_3 608 +#define OPPONENT_HALEY_4 609 +#define OPPONENT_HALEY_5 610 +#define OPPONENT_SALLY 611 +#define OPPONENT_ROBIN 612 +#define OPPONENT_ANDREA 613 +#define OPPONENT_CRISSY 614 +#define OPPONENT_RICK 615 +#define OPPONENT_LYLE 616 +#define OPPONENT_JOSE 617 +#define OPPONENT_DOUG 618 +#define OPPONENT_GREG 619 +#define OPPONENT_KENT 620 +#define OPPONENT_JAMES_1 621 +#define OPPONENT_JAMES_2 622 +#define OPPONENT_JAMES_3 623 +#define OPPONENT_JAMES_4 624 +#define OPPONENT_JAMES_5 625 +#define OPPONENT_BRICE 626 +#define OPPONENT_TRENT_1 627 +#define OPPONENT_LENNY 628 +#define OPPONENT_LUCAS_1 629 +#define OPPONENT_ALAN 630 +#define OPPONENT_CLARK 631 +#define OPPONENT_ERIC 632 +#define OPPONENT_LUCAS_2 633 +#define OPPONENT_MIKE_1 634 +#define OPPONENT_MIKE_2 635 +#define OPPONENT_TRENT_2 636 +#define OPPONENT_TRENT_3 637 +#define OPPONENT_TRENT_4 638 +#define OPPONENT_TRENT_5 639 +#define OPPONENT_DEZ_AND_LUKE 640 +#define OPPONENT_LEA_AND_JED 641 +#define OPPONENT_KIRA_AND_DAN_1 642 +#define OPPONENT_KIRA_AND_DAN_2 643 +#define OPPONENT_KIRA_AND_DAN_3 644 +#define OPPONENT_KIRA_AND_DAN_4 645 +#define OPPONENT_KIRA_AND_DAN_5 646 +#define OPPONENT_JOHANNA 647 +#define OPPONENT_GERALD 648 +#define OPPONENT_VIVIAN 649 +#define OPPONENT_DANIELLE 650 +#define OPPONENT_HIDEO 651 +#define OPPONENT_KEIGO 652 +#define OPPONENT_RILEY 653 +#define OPPONENT_FLINT 654 +#define OPPONENT_ASHLEY 655 +#define OPPONENT_WALLY_2 656 +#define OPPONENT_WALLY_3 657 +#define OPPONENT_WALLY_4 658 +#define OPPONENT_WALLY_5 659 +#define OPPONENT_WALLY_6 660 +#define OPPONENT_BRENDAN_13 661 +#define OPPONENT_BRENDAN_14 662 +#define OPPONENT_BRENDAN_15 663 +#define OPPONENT_MAY_11 664 +#define OPPONENT_MAY_12 665 +#define OPPONENT_MAY_13 666 +#define OPPONENT_JONAH 667 +#define OPPONENT_HENRY 668 +#define OPPONENT_ROGER 669 +#define OPPONENT_ALEXA 670 +#define OPPONENT_RUBEN 671 +#define OPPONENT_KOJI_1 672 +#define OPPONENT_WAYNE 673 +#define OPPONENT_AIDAN 674 +#define OPPONENT_REED 675 +#define OPPONENT_TISHA 676 +#define OPPONENT_TORI_AND_TIA 677 +#define OPPONENT_KIM_AND_IRIS 678 +#define OPPONENT_TYRA_AND_IVY 679 +#define OPPONENT_MEL_AND_PAUL 680 +#define OPPONENT_JOHN_AND_JAY_1 681 +#define OPPONENT_JOHN_AND_JAY_2 682 +#define OPPONENT_JOHN_AND_JAY_3 683 +#define OPPONENT_JOHN_AND_JAY_4 684 +#define OPPONENT_JOHN_AND_JAY_5 685 +#define OPPONENT_RELI_AND_IAN 686 +#define OPPONENT_LILA_AND_ROY_1 687 +#define OPPONENT_LILA_AND_ROY_2 688 +#define OPPONENT_LILA_AND_ROY_3 689 +#define OPPONENT_LILA_AND_ROY_4 690 +#define OPPONENT_LILA_AND_ROY_5 691 +#define OPPONENT_LISA_AND_RAY 692 +#define OPPONENT_CHRIS 693 +#define OPPONENT_DAWSON 694 +#define OPPONENT_SARAH 695 +#define OPPONENT_DARIAN 696 +#define OPPONENT_HAILEY 697 +#define OPPONENT_CHANDLER 698 +#define OPPONENT_KALEB 699 +#define OPPONENT_JOSEPH 700 +#define OPPONENT_ALYSSA 701 +#define OPPONENT_MARCOS 702 +#define OPPONENT_RHETT 703 +#define OPPONENT_TYRON 704 +#define OPPONENT_CELINA 705 +#define OPPONENT_BIANCA 706 +#define OPPONENT_HAYDEN 707 +#define OPPONENT_SOPHIE 708 +#define OPPONENT_COBY 709 +#define OPPONENT_LAWRENCE 710 +#define OPPONENT_WYATT 711 +#define OPPONENT_ANGELINA 712 +#define OPPONENT_KAI 713 +#define OPPONENT_CHARLOTTE 714 +#define OPPONENT_DEANDRE 715 +#define OPPONENT_GRUNT_38 716 +#define OPPONENT_GRUNT_39 717 +#define OPPONENT_GRUNT_40 718 +#define OPPONENT_GRUNT_41 719 +#define OPPONENT_GRUNT_42 720 +#define OPPONENT_GRUNT_43 721 +#define OPPONENT_GRUNT_44 722 +#define OPPONENT_GRUNT_45 723 +#define OPPONENT_GRUNT_46 724 +#define OPPONENT_GRUNT_47 725 +#define OPPONENT_GRUNT_48 726 +#define OPPONENT_GRUNT_49 727 +#define OPPONENT_GRUNT_50 728 +#define OPPONENT_GRUNT_51 729 +#define OPPONENT_GRUNT_52 730 +#define OPPONENT_GRUNT_53 731 +#define OPPONENT_TABITHA_3 732 +#define OPPONENT_DARCY 733 +#define OPPONENT_MAXIE_3 734 +#define OPPONENT_PETE 735 +#define OPPONENT_ISABELLE 736 +#define OPPONENT_ANDRES_1 737 +#define OPPONENT_JOSUE 738 +#define OPPONENT_CAMRON 739 +#define OPPONENT_CORY_1 740 +#define OPPONENT_CAROLINA 741 +#define OPPONENT_ELIJAH 742 +#define OPPONENT_CELIA 743 +#define OPPONENT_BRYAN 744 +#define OPPONENT_BRANDEN 745 +#define OPPONENT_BRYANT 746 +#define OPPONENT_SHAYLA 747 +#define OPPONENT_KYRA 748 +#define OPPONENT_JAIDEN 749 +#define OPPONENT_ALIX 750 +#define OPPONENT_HELENE 751 +#define OPPONENT_MARLENE 752 +#define OPPONENT_DEVAN 753 +#define OPPONENT_JOHNSON 754 +#define OPPONENT_MELINA 755 +#define OPPONENT_BRANDI 756 +#define OPPONENT_AISHA 757 +#define OPPONENT_MAKAYLA 758 +#define OPPONENT_FABIAN 759 +#define OPPONENT_DAYTON 760 +#define OPPONENT_RACHEL 761 +#define OPPONENT_LEONEL 762 +#define OPPONENT_CALLIE 763 +#define OPPONENT_CALE 764 +#define OPPONENT_MYLES 765 +#define OPPONENT_PAT 766 +#define OPPONENT_CRISTIN_1 767 +#define OPPONENT_MAY_14 768 +#define OPPONENT_MAY_15 769 +#define OPPONENT_ROXANNE_2 770 +#define OPPONENT_ROXANNE_3 771 +#define OPPONENT_ROXANNE_4 772 +#define OPPONENT_ROXANNE_5 773 +#define OPPONENT_BRAWLY_2 774 +#define OPPONENT_BRAWLY_3 775 +#define OPPONENT_BRAWLY_4 776 +#define OPPONENT_BRAWLY_5 777 +#define OPPONENT_WATTSON_2 778 +#define OPPONENT_WATTSON_3 779 +#define OPPONENT_WATTSON_4 780 +#define OPPONENT_WATTSON_5 781 +#define OPPONENT_FLANNERY_2 782 +#define OPPONENT_FLANNERY_3 783 +#define OPPONENT_FLANNERY_4 784 +#define OPPONENT_FLANNERY_5 785 +#define OPPONENT_NORMAN_2 786 +#define OPPONENT_NORMAN_3 787 +#define OPPONENT_NORMAN_4 788 +#define OPPONENT_NORMAN_5 789 +#define OPPONENT_WINONA_2 790 +#define OPPONENT_WINONA_3 791 +#define OPPONENT_WINONA_4 792 +#define OPPONENT_WINONA_5 793 +#define OPPONENT_TATE_AND_LIZA_2 794 +#define OPPONENT_TATE_AND_LIZA_3 795 +#define OPPONENT_TATE_AND_LIZA_4 796 +#define OPPONENT_TATE_AND_LIZA_5 797 +#define OPPONENT_JUAN_2 798 +#define OPPONENT_JUAN_3 799 +#define OPPONENT_JUAN_4 800 +#define OPPONENT_JUAN_5 801 +#define OPPONENT_ANGELO 802 +#define OPPONENT_DARIUS 803 +#define OPPONENT_STEVEN 804 +#define OPPONENT_ANABEL 805 +#define OPPONENT_TUCKER 806 +#define OPPONENT_SPENSER 807 +#define OPPONENT_GRETA 808 +#define OPPONENT_NOLAND 809 +#define OPPONENT_LUCY 810 +#define OPPONENT_BRANDON 811 +#define OPPONENT_ANDRES_2 812 +#define OPPONENT_ANDRES_3 813 +#define OPPONENT_ANDRES_4 814 +#define OPPONENT_ANDRES_5 815 +#define OPPONENT_CORY_2 816 +#define OPPONENT_CORY_3 817 +#define OPPONENT_CORY_4 818 +#define OPPONENT_CORY_5 819 +#define OPPONENT_PABLO_2 820 +#define OPPONENT_PABLO_3 821 +#define OPPONENT_PABLO_4 822 +#define OPPONENT_PABLO_5 823 +#define OPPONENT_KOJI_2 824 +#define OPPONENT_KOJI_3 825 +#define OPPONENT_KOJI_4 826 +#define OPPONENT_KOJI_5 827 +#define OPPONENT_CRISTIN_2 828 +#define OPPONENT_CRISTIN_3 829 +#define OPPONENT_CRISTIN_4 830 +#define OPPONENT_CRISTIN_5 831 +#define OPPONENT_FERNANDO_2 832 +#define OPPONENT_FERNANDO_3 833 +#define OPPONENT_FERNANDO_4 834 +#define OPPONENT_FERNANDO_5 835 +#define OPPONENT_SAWYER_2 836 +#define OPPONENT_SAWYER_3 837 +#define OPPONENT_SAWYER_4 838 +#define OPPONENT_SAWYER_5 839 +#define OPPONENT_GABRIELLE_2 840 +#define OPPONENT_GABRIELLE_3 841 +#define OPPONENT_GABRIELLE_4 842 +#define OPPONENT_GABRIELLE_5 843 +#define OPPONENT_THALIA_2 844 +#define OPPONENT_THALIA_3 845 +#define OPPONENT_THALIA_4 846 +#define OPPONENT_THALIA_5 847 +#define OPPONENT_MARIELA 848 +#define OPPONENT_ALVARO 848 +#define OPPONENT_EVERETT 850 +#define OPPONENT_RED 851 +#define OPPONENT_LEAF 852 +#define OPPONENT_BRENDAN_16 853 +#define OPPONENT_MAY_16 854 + +#endif // GUARD_CONSTANTS_OPPONENTS_H \ No newline at end of file From c8ac4e8ce46175cb824afa4647a9ae060bca7813 Mon Sep 17 00:00:00 2001 From: Avara Date: Tue, 12 Dec 2017 02:58:57 +0000 Subject: [PATCH 08/54] Opponents fixed and moved~ --- include/constants/abilities.h | 83 ++ include/constants/battle_move_effects.h | 219 ++++ include/constants/decorations.h | 126 ++ include/constants/easy_chat.h | 1079 ++++++++++++++++ include/constants/flags.h | 1578 +++++++++++++++++++++++ include/constants/game_stat.h | 59 + include/constants/hold_effects.h | 72 ++ include/constants/items.h | 393 ++++++ include/constants/map_objects.h | 263 ++++ include/constants/maps.h | 595 +++++++++ include/constants/mauville_man.h | 10 + include/constants/moves.h | 362 ++++++ include/constants/opponent_constants.h | 860 ++++++++++++ include/constants/songs.h | 465 +++++++ include/constants/species.h | 450 +++++++ include/constants/vars.h | 285 ++++ 16 files changed, 6899 insertions(+) create mode 100644 include/constants/abilities.h create mode 100644 include/constants/battle_move_effects.h create mode 100644 include/constants/decorations.h create mode 100644 include/constants/easy_chat.h create mode 100644 include/constants/flags.h create mode 100644 include/constants/game_stat.h create mode 100644 include/constants/hold_effects.h create mode 100644 include/constants/items.h create mode 100644 include/constants/map_objects.h create mode 100644 include/constants/maps.h create mode 100644 include/constants/mauville_man.h create mode 100644 include/constants/moves.h create mode 100644 include/constants/opponent_constants.h create mode 100644 include/constants/songs.h create mode 100644 include/constants/species.h create mode 100644 include/constants/vars.h diff --git a/include/constants/abilities.h b/include/constants/abilities.h new file mode 100644 index 0000000000..4e2c4056c7 --- /dev/null +++ b/include/constants/abilities.h @@ -0,0 +1,83 @@ +#ifndef GUARD_CONSTANTS_ABILITIES_H +#define GUARD_CONSTANTS_ABILITIES_H + +#define ABILITY_NONE 0 +#define ABILITY_STENCH 1 +#define ABILITY_DRIZZLE 2 +#define ABILITY_SPEED_BOOST 3 +#define ABILITY_BATTLE_ARMOR 4 +#define ABILITY_STURDY 5 +#define ABILITY_DAMP 6 +#define ABILITY_LIMBER 7 +#define ABILITY_SAND_VEIL 8 +#define ABILITY_STATIC 9 +#define ABILITY_VOLT_ABSORB 10 +#define ABILITY_WATER_ABSORB 11 +#define ABILITY_OBLIVIOUS 12 +#define ABILITY_CLOUD_NINE 13 +#define ABILITY_COMPOUND_EYES 14 +#define ABILITY_INSOMNIA 15 +#define ABILITY_COLOR_CHANGE 16 +#define ABILITY_IMMUNITY 17 +#define ABILITY_FLASH_FIRE 18 +#define ABILITY_SHIELD_DUST 19 +#define ABILITY_OWN_TEMPO 20 +#define ABILITY_SUCTION_CUPS 21 +#define ABILITY_INTIMIDATE 22 +#define ABILITY_SHADOW_TAG 23 +#define ABILITY_ROUGH_SKIN 24 +#define ABILITY_WONDER_GUARD 25 +#define ABILITY_LEVITATE 26 +#define ABILITY_EFFECT_SPORE 27 +#define ABILITY_SYNCHRONIZE 28 +#define ABILITY_CLEAR_BODY 29 +#define ABILITY_NATURAL_CURE 30 +#define ABILITY_LIGHTNING_ROD 31 +#define ABILITY_SERENE_GRACE 32 +#define ABILITY_SWIFT_SWIM 33 +#define ABILITY_CHLOROPHYLL 34 +#define ABILITY_ILLUMINATE 35 +#define ABILITY_TRACE 36 +#define ABILITY_HUGE_POWER 37 +#define ABILITY_POISON_POINT 38 +#define ABILITY_INNER_FOCUS 39 +#define ABILITY_MAGMA_ARMOR 40 +#define ABILITY_WATER_VEIL 41 +#define ABILITY_MAGNET_PULL 42 +#define ABILITY_SOUNDPROOF 43 +#define ABILITY_RAIN_DISH 44 +#define ABILITY_SAND_STREAM 45 +#define ABILITY_PRESSURE 46 +#define ABILITY_THICK_FAT 47 +#define ABILITY_EARLY_BIRD 48 +#define ABILITY_FLAME_BODY 49 +#define ABILITY_RUN_AWAY 50 +#define ABILITY_KEEN_EYE 51 +#define ABILITY_HYPER_CUTTER 52 +#define ABILITY_PICKUP 53 +#define ABILITY_TRUANT 54 +#define ABILITY_HUSTLE 55 +#define ABILITY_CUTE_CHARM 56 +#define ABILITY_PLUS 57 +#define ABILITY_MINUS 58 +#define ABILITY_FORECAST 59 +#define ABILITY_STICKY_HOLD 60 +#define ABILITY_SHED_SKIN 61 +#define ABILITY_GUTS 62 +#define ABILITY_MARVEL_SCALE 63 +#define ABILITY_LIQUID_OOZE 64 +#define ABILITY_OVERGROW 65 +#define ABILITY_BLAZE 66 +#define ABILITY_TORRENT 67 +#define ABILITY_SWARM 68 +#define ABILITY_ROCK_HEAD 69 +#define ABILITY_DROUGHT 70 +#define ABILITY_ARENA_TRAP 71 +#define ABILITY_VITAL_SPIRIT 72 +#define ABILITY_WHITE_SMOKE 73 +#define ABILITY_PURE_POWER 74 +#define ABILITY_SHELL_ARMOR 75 +#define ABILITY_CACOPHONY 76 +#define ABILITY_AIR_LOCK 77 + +#endif // GUARD_CONSTANTS_ABILITIES_H diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h new file mode 100644 index 0000000000..1b59f2f64e --- /dev/null +++ b/include/constants/battle_move_effects.h @@ -0,0 +1,219 @@ +#ifndef GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H +#define GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H + +#define EFFECT_HIT 0 +#define EFFECT_SLEEP 1 +#define EFFECT_POISON_HIT 2 +#define EFFECT_ABSORB 3 +#define EFFECT_BURN_HIT 4 +#define EFFECT_FREEZE_HIT 5 +#define EFFECT_PARALYZE_HIT 6 +#define EFFECT_EXPLOSION 7 +#define EFFECT_DREAM_EATER 8 +#define EFFECT_MIRROR_MOVE 9 +#define EFFECT_ATTACK_UP 10 +#define EFFECT_DEFENSE_UP 11 +#define EFFECT_SPEED_UP 12 +#define EFFECT_SPECIAL_ATTACK_UP 13 +#define EFFECT_SPECIAL_DEFENSE_UP 14 +#define EFFECT_ACCURACY_UP 15 +#define EFFECT_EVASION_UP 16 +#define EFFECT_ALWAYS_HIT 17 +#define EFFECT_ATTACK_DOWN 18 +#define EFFECT_DEFENSE_DOWN 19 +#define EFFECT_SPEED_DOWN 20 +#define EFFECT_SPECIAL_ATTACK_DOWN 21 // unused +#define EFFECT_SPECIAL_DEFENSE_DOWN 22 // unused +#define EFFECT_ACCURACY_DOWN 23 +#define EFFECT_EVASION_DOWN 24 +#define EFFECT_HAZE 25 +#define EFFECT_BIDE 26 +#define EFFECT_RAMPAGE 27 +#define EFFECT_ROAR 28 +#define EFFECT_MULTI_HIT 29 +#define EFFECT_CONVERSION 30 +#define EFFECT_FLINCH_HIT 31 +#define EFFECT_RESTORE_HP 32 +#define EFFECT_TOXIC 33 +#define EFFECT_PAY_DAY 34 +#define EFFECT_LIGHT_SCREEN 35 +#define EFFECT_TRI_ATTACK 36 +#define EFFECT_REST 37 +#define EFFECT_OHKO 38 +#define EFFECT_RAZOR_WIND 39 +#define EFFECT_SUPER_FANG 40 +#define EFFECT_DRAGON_RAGE 41 +#define EFFECT_TRAP 42 +#define EFFECT_HIGH_CRITICAL 43 +#define EFFECT_DOUBLE_HIT 44 +#define EFFECT_RECOIL_IF_MISS 45 +#define EFFECT_MIST 46 +#define EFFECT_FOCUS_ENERGY 47 +#define EFFECT_RECOIL 48 +#define EFFECT_CONFUSE 49 +#define EFFECT_ATTACK_UP_2 50 +#define EFFECT_DEFENSE_UP_2 51 +#define EFFECT_SPEED_UP_2 52 +#define EFFECT_SPECIAL_ATTACK_UP_2 53 +#define EFFECT_SPECIAL_DEFENSE_UP_2 54 +#define EFFECT_ACCURACY_UP_2 55 +#define EFFECT_EVASION_UP_2 56 +#define EFFECT_TRANSFORM 57 +#define EFFECT_ATTACK_DOWN_2 58 +#define EFFECT_DEFENSE_DOWN_2 59 +#define EFFECT_SPEED_DOWN_2 60 +#define EFFECT_SPECIAL_ATTACK_DOWN_2 61 +#define EFFECT_SPECIAL_DEFENSE_DOWN_2 62 +#define EFFECT_ACCURACY_DOWN_2 63 +#define EFFECT_EVASION_DOWN_2 64 +#define EFFECT_REFLECT 65 +#define EFFECT_POISON 66 +#define EFFECT_PARALYZE 67 +#define EFFECT_ATTACK_DOWN_HIT 68 +#define EFFECT_DEFENSE_DOWN_HIT 69 +#define EFFECT_SPEED_DOWN_HIT 70 +#define EFFECT_SPECIAL_ATTACK_DOWN_HIT 71 +#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 72 +#define EFFECT_ACCURACY_DOWN_HIT 73 +#define EFFECT_EVASION_DOWN_HIT 74 +#define EFFECT_SKY_ATTACK 75 +#define EFFECT_CONFUSE_HIT 76 +#define EFFECT_TWINEEDLE 77 +#define EFFECT_VITAL_THROW 78 +#define EFFECT_SUBSTITUTE 79 +#define EFFECT_RECHARGE 80 +#define EFFECT_RAGE 81 +#define EFFECT_MIMIC 82 +#define EFFECT_METRONOME 83 +#define EFFECT_LEECH_SEED 84 +#define EFFECT_SPLASH 85 +#define EFFECT_DISABLE 86 +#define EFFECT_LEVEL_DAMAGE 87 +#define EFFECT_PSYWAVE 88 +#define EFFECT_COUNTER 89 +#define EFFECT_ENCORE 90 +#define EFFECT_PAIN_SPLIT 91 +#define EFFECT_SNORE 92 +#define EFFECT_CONVERSION_2 93 +#define EFFECT_LOCK_ON 94 +#define EFFECT_SKETCH 95 +#define EFFECT_UNUSED_60 96 // thaw +#define EFFECT_SLEEP_TALK 97 +#define EFFECT_DESTINY_BOND 98 +#define EFFECT_FLAIL 99 +#define EFFECT_SPITE 100 +#define EFFECT_FALSE_SWIPE 101 +#define EFFECT_HEAL_BELL 102 +#define EFFECT_QUICK_ATTACK 103 +#define EFFECT_TRIPLE_KICK 104 +#define EFFECT_THIEF 105 +#define EFFECT_MEAN_LOOK 106 +#define EFFECT_NIGHTMARE 107 +#define EFFECT_MINIMIZE 108 +#define EFFECT_CURSE 109 +#define EFFECT_UNUSED_6E 110 +#define EFFECT_PROTECT 111 +#define EFFECT_SPIKES 112 +#define EFFECT_FORESIGHT 113 +#define EFFECT_PERISH_SONG 114 +#define EFFECT_SANDSTORM 115 +#define EFFECT_ENDURE 116 +#define EFFECT_ROLLOUT 117 +#define EFFECT_SWAGGER 118 +#define EFFECT_FURY_CUTTER 119 +#define EFFECT_ATTRACT 120 +#define EFFECT_RETURN 121 +#define EFFECT_PRESENT 122 +#define EFFECT_FRUSTRATION 123 +#define EFFECT_SAFEGUARD 124 +#define EFFECT_THAW_HIT 125 +#define EFFECT_MAGNITUDE 126 +#define EFFECT_BATON_PASS 127 +#define EFFECT_PURSUIT 128 +#define EFFECT_RAPID_SPIN 129 +#define EFFECT_SONICBOOM 130 +#define EFFECT_UNUSED_83 131 +#define EFFECT_MORNING_SUN 132 +#define EFFECT_SYNTHESIS 133 +#define EFFECT_MOONLIGHT 134 +#define EFFECT_HIDDEN_POWER 135 +#define EFFECT_RAIN_DANCE 136 +#define EFFECT_SUNNY_DAY 137 +#define EFFECT_DEFENSE_UP_HIT 138 +#define EFFECT_ATTACK_UP_HIT 139 +#define EFFECT_ALL_STATS_UP_HIT 140 +#define EFFECT_UNUSED_8D 141 // incomplete fake out in gen 2 +#define EFFECT_BELLY_DRUM 142 +#define EFFECT_PSYCH_UP 143 +#define EFFECT_MIRROR_COAT 144 +#define EFFECT_SKULL_BASH 145 +#define EFFECT_TWISTER 146 +#define EFFECT_EARTHQUAKE 147 +#define EFFECT_FUTURE_SIGHT 148 +#define EFFECT_GUST 149 +#define EFFECT_FLINCH_HIT_2 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM +#define EFFECT_SOLARBEAM 151 +#define EFFECT_THUNDER 152 +#define EFFECT_TELEPORT 153 +#define EFFECT_BEAT_UP 154 +#define EFFECT_SEMI_INVULNERABLE 155 +#define EFFECT_DEFENSE_CURL 156 +#define EFFECT_SOFTBOILED 157 +#define EFFECT_FAKE_OUT 158 +#define EFFECT_UPROAR 159 +#define EFFECT_STOCKPILE 160 +#define EFFECT_SPIT_UP 161 +#define EFFECT_SWALLOW 162 +#define EFFECT_UNUSED_A3 163 +#define EFFECT_HAIL 164 +#define EFFECT_TORMENT 165 +#define EFFECT_FLATTER 166 +#define EFFECT_WILL_O_WISP 167 +#define EFFECT_MEMENTO 168 +#define EFFECT_FACADE 169 +#define EFFECT_FOCUS_PUNCH 170 +#define EFFECT_SMELLINGSALT 171 +#define EFFECT_FOLLOW_ME 172 +#define EFFECT_NATURE_POWER 173 +#define EFFECT_CHARGE 174 +#define EFFECT_TAUNT 175 +#define EFFECT_HELPING_HAND 176 +#define EFFECT_TRICK 177 +#define EFFECT_ROLE_PLAY 178 +#define EFFECT_WISH 179 +#define EFFECT_ASSIST 180 +#define EFFECT_INGRAIN 181 +#define EFFECT_SUPERPOWER 182 +#define EFFECT_MAGIC_COAT 183 +#define EFFECT_RECYCLE 184 +#define EFFECT_REVENGE 185 +#define EFFECT_BRICK_BREAK 186 +#define EFFECT_YAWN 187 +#define EFFECT_KNOCK_OFF 188 +#define EFFECT_ENDEAVOR 189 +#define EFFECT_ERUPTION 190 +#define EFFECT_SKILL_SWAP 191 +#define EFFECT_IMPRISON 192 +#define EFFECT_REFRESH 193 +#define EFFECT_GRUDGE 194 +#define EFFECT_SNATCH 195 +#define EFFECT_LOW_KICK 196 +#define EFFECT_SECRET_POWER 197 +#define EFFECT_DOUBLE_EDGE 198 +#define EFFECT_TEETER_DANCE 199 +#define EFFECT_BLAZE_KICK 200 +#define EFFECT_MUD_SPORT 201 +#define EFFECT_POISON_FANG 202 +#define EFFECT_WEATHER_BALL 203 +#define EFFECT_OVERHEAT 204 +#define EFFECT_TICKLE 205 +#define EFFECT_COSMIC_POWER 206 +#define EFFECT_SKY_UPPERCUT 207 +#define EFFECT_BULK_UP 208 +#define EFFECT_POISON_TAIL 209 +#define EFFECT_WATER_SPORT 210 +#define EFFECT_CALM_MIND 211 +#define EFFECT_DRAGON_DANCE 212 +#define EFFECT_CAMOUFLAGE 213 + +#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/decorations.h b/include/constants/decorations.h new file mode 100644 index 0000000000..2e35587216 --- /dev/null +++ b/include/constants/decorations.h @@ -0,0 +1,126 @@ +#ifndef GUARD_CONSTANTS_DECORATIONS_H +#define GUARD_CONSTANTS_DECORATIONS_H + +#define DECOR_NONE 0 +#define DECOR_SMALL_DESK 1 +#define DECOR_POKEMON_DESK 2 +#define DECOR_HEAVY_DESK 3 +#define DECOR_RAGGED_DESK 4 +#define DECOR_COMFORT_DESK 5 +#define DECOR_PRETTY_DESK 6 +#define DECOR_BRICK_DESK 7 +#define DECOR_CAMP_DESK 8 +#define DECOR_HARD_DESK 9 +#define DECOR_SMALL_CHAIR 10 +#define DECOR_POKEMON_CHAIR 11 +#define DECOR_HEAVY_CHAIR 12 +#define DECOR_PRETTY_CHAIR 13 +#define DECOR_COMFORT_CHAIR 14 +#define DECOR_RAGGED_CHAIR 15 +#define DECOR_BRICK_CHAIR 16 +#define DECOR_CAMP_CHAIR 17 +#define DECOR_HARD_CHAIR 18 +#define DECOR_RED_PLANT 19 +#define DECOR_TROPICAL_PLANT 20 +#define DECOR_PRETTY_FLOWERS 21 +#define DECOR_COLORFUL_PLANT 22 +#define DECOR_BIG_PLANT 23 +#define DECOR_GORGEOUS_PLANT 24 +#define DECOR_RED_BRICK 25 +#define DECOR_YELLOW_BRICK 26 +#define DECOR_BLUE_BRICK 27 +#define DECOR_RED_BALLOON 28 +#define DECOR_BLUE_BALLOON 29 +#define DECOR_YELLOW_BALLOON 30 +#define DECOR_RED_TENT 31 +#define DECOR_BLUE_TENT 32 +#define DECOR_SOLID_BOARD 33 +#define DECOR_SLIDE 34 +#define DECOR_FENCE_LENGTH 35 +#define DECOR_FENCE_WIDTH 36 +#define DECOR_TIRE 37 +#define DECOR_STAND 38 +#define DECOR_MUD_BALL 39 +#define DECOR_BREAKABLE_DOOR 40 +#define DECOR_SAND_ORNAMENT 41 +#define DECOR_SILVER_SHIELD 42 +#define DECOR_GOLD_SHIELD 43 +#define DECOR_GLASS_ORNAMENT 44 +#define DECOR_TV 45 +#define DECOR_ROUND_TV 46 +#define DECOR_CUTE_TV 47 +#define DECOR_GLITTER_MAT 48 +#define DECOR_JUMP_MAT 49 +#define DECOR_SPIN_MAT 50 +#define DECOR_C_LOW_NOTE_MAT 51 +#define DECOR_D_NOTE_MAT 52 +#define DECOR_E_NOTE_MAT 53 +#define DECOR_F_NOTE_MAT 54 +#define DECOR_G_NOTE_MAT 55 +#define DECOR_A_NOTE_MAT 56 +#define DECOR_B_NOTE_MAT 57 +#define DECOR_C_HIGH_NOTE_MAT 58 +#define DECOR_SURF_MAT 59 +#define DECOR_THUNDER_MAT 60 +#define DECOR_FIRE_BLAST_MAT 61 +#define DECOR_POWDER_SNOW_MAT 62 +#define DECOR_ATTRACT_MAT 63 +#define DECOR_FISSURE_MAT 64 +#define DECOR_SPIKES_MAT 65 +#define DECOR_BALL_POSTER 66 +#define DECOR_GREEN_POSTER 67 +#define DECOR_RED_POSTER 68 +#define DECOR_BLUE_POSTER 69 +#define DECOR_CUTE_POSTER 70 +#define DECOR_PIKA_POSTER 71 +#define DECOR_LONG_POSTER 72 +#define DECOR_SEA_POSTER 73 +#define DECOR_SKY_POSTER 74 +#define DECOR_KISS_POSTER 75 +#define DECOR_PICHU_DOLL 76 +#define DECOR_PIKACHU_DOLL 77 +#define DECOR_MARILL_DOLL 78 +#define DECOR_TOGEPI_DOLL 79 +#define DECOR_CYNDAQUIL_DOLL 80 +#define DECOR_CHIKORITA_DOLL 81 +#define DECOR_TOTODILE_DOLL 82 +#define DECOR_JIGGLYPUFF_DOLL 83 +#define DECOR_MEOWTH_DOLL 84 +#define DECOR_CLEFAIRY_DOLL 85 +#define DECOR_DITTO_DOLL 86 +#define DECOR_SMOOCHUM_DOLL 87 +#define DECOR_TREECKO_DOLL 88 +#define DECOR_TORCHIC_DOLL 89 +#define DECOR_MUDKIP_DOLL 90 +#define DECOR_DUSKULL_DOLL 91 +#define DECOR_WYNAUT_DOLL 92 +#define DECOR_BALTOY_DOLL 93 +#define DECOR_KECLEON_DOLL 94 +#define DECOR_AZURILL_DOLL 95 +#define DECOR_SKITTY_DOLL 96 +#define DECOR_SWABLU_DOLL 97 +#define DECOR_GULPIN_DOLL 98 +#define DECOR_LOTAD_DOLL 99 +#define DECOR_SEEDOT_DOLL 100 +#define DECOR_PIKA_CUSHION 101 +#define DECOR_ROUND_CUSHION 102 +#define DECOR_KISS_CUSHION 103 +#define DECOR_ZIGZAG_CUSHION 104 +#define DECOR_SPIN_CUSHION 105 +#define DECOR_DIAMOND_CUSHION 106 +#define DECOR_BALL_CUSHION 107 +#define DECOR_GRASS_CUSHION 108 +#define DECOR_FIRE_CUSHION 109 +#define DECOR_WATER_CUSHION 110 +#define DECOR_SNORLAX_DOLL 111 +#define DECOR_RHYDON_DOLL 112 +#define DECOR_LAPRAS_DOLL 113 +#define DECOR_VENUSAUR_DOLL 114 +#define DECOR_CHARIZARD_DOLL 115 +#define DECOR_BLASTOISE_DOLL 116 +#define DECOR_WAILMER_DOLL 117 +#define DECOR_REGIROCK_DOLL 118 +#define DECOR_REGICE_DOLL 119 +#define DECOR_REGISTEEL_DOLL 120 + +#endif // GUARD_CONSTANTS_DECORATIONS_H diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h new file mode 100644 index 0000000000..2c437c88e7 --- /dev/null +++ b/include/constants/easy_chat.h @@ -0,0 +1,1079 @@ +#ifndef GUARD_CONSTANTS_EASY_CHAT_H +#define GUARD_CONSTANTS_EASY_CHAT_H + +#define EC_GROUP_POKEMON 0x0 +#define EC_GROUP_TRAINER 0x1 +#define EC_GROUP_STATUS 0x2 +#define EC_GROUP_BATTLE 0x3 +#define EC_GROUP_GREETINGS 0x4 +#define EC_GROUP_PEOPLE 0x5 +#define EC_GROUP_VOICES 0x6 +#define EC_GROUP_SPEECH 0x7 +#define EC_GROUP_ENDINGS 0x8 +#define EC_GROUP_FEELINGS 0x9 +#define EC_GROUP_CONDITIONS 0xa +#define EC_GROUP_ACTIONS 0xb +#define EC_GROUP_LIFESTYLE 0xc +#define EC_GROUP_HOBBIES 0xd +#define EC_GROUP_TIME 0xe +#define EC_GROUP_MISC 0xf +#define EC_GROUP_ADJECTIVES 0x10 +#define EC_GROUP_EVENTS 0x11 +#define EC_GROUP_MOVE_1 0x12 +#define EC_GROUP_MOVE_2 0x13 +#define EC_GROUP_TRENDY_SAYING 0x14 +#define EC_GROUP_POKEMON_2 0x15 + +// TRAINER +#define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0 +#define EC_WORD_GOTCHA (EC_GROUP_TRAINER << 9) | 0x1 +#define EC_WORD_TRADE (EC_GROUP_TRAINER << 9) | 0x2 +#define EC_WORD_SAPPHIRE (EC_GROUP_TRAINER << 9) | 0x3 +#define EC_WORD_EVOLVE (EC_GROUP_TRAINER << 9) | 0x4 +#define EC_WORD_ENCYCLOPEDIA (EC_GROUP_TRAINER << 9) | 0x5 +#define EC_WORD_NATURE (EC_GROUP_TRAINER << 9) | 0x6 +#define EC_WORD_CENTER (EC_GROUP_TRAINER << 9) | 0x7 +#define EC_WORD_EGG (EC_GROUP_TRAINER << 9) | 0x8 +#define EC_WORD_LINK (EC_GROUP_TRAINER << 9) | 0x9 +#define EC_WORD_SP_ABILITY (EC_GROUP_TRAINER << 9) | 0xa +#define EC_WORD_TRAINER (EC_GROUP_TRAINER << 9) | 0xb +#define EC_WORD_VERSION (EC_GROUP_TRAINER << 9) | 0xc +#define EC_WORD_POKENAV (EC_GROUP_TRAINER << 9) | 0xd +#define EC_WORD_POKEMON (EC_GROUP_TRAINER << 9) | 0xe +#define EC_WORD_GET (EC_GROUP_TRAINER << 9) | 0xf +#define EC_WORD_POKEDEX (EC_GROUP_TRAINER << 9) | 0x10 +#define EC_WORD_RUBY (EC_GROUP_TRAINER << 9) | 0x11 +#define EC_WORD_LEVEL (EC_GROUP_TRAINER << 9) | 0x12 +#define EC_WORD_RED (EC_GROUP_TRAINER << 9) | 0x13 +#define EC_WORD_GREEN (EC_GROUP_TRAINER << 9) | 0x14 +#define EC_WORD_BAG (EC_GROUP_TRAINER << 9) | 0x15 +#define EC_WORD_FLAME (EC_GROUP_TRAINER << 9) | 0x16 +#define EC_WORD_GOLD (EC_GROUP_TRAINER << 9) | 0x17 +#define EC_WORD_LEAF (EC_GROUP_TRAINER << 9) | 0x18 +#define EC_WORD_SILVER (EC_GROUP_TRAINER << 9) | 0x19 +#define EC_WORD_EMERALD (EC_GROUP_TRAINER << 9) | 0x1a + +// STATUS +#define EC_WORD_DARK (EC_GROUP_STATUS << 9) | 0x0 +#define EC_WORD_STENCH (EC_GROUP_STATUS << 9) | 0x1 +#define EC_WORD_THICK_FAT (EC_GROUP_STATUS << 9) | 0x2 +#define EC_WORD_RAIN_DISH (EC_GROUP_STATUS << 9) | 0x3 +#define EC_WORD_DRIZZLE (EC_GROUP_STATUS << 9) | 0x4 +#define EC_WORD_ARENA_TRAP (EC_GROUP_STATUS << 9) | 0x5 +#define EC_WORD_INTIMIDATE (EC_GROUP_STATUS << 9) | 0x6 +#define EC_WORD_ROCK_HEAD (EC_GROUP_STATUS << 9) | 0x7 +#define EC_WORD_COLOR (EC_GROUP_STATUS << 9) | 0x8 +#define EC_WORD_ALT_COLOR (EC_GROUP_STATUS << 9) | 0x9 +#define EC_WORD_ROCK (EC_GROUP_STATUS << 9) | 0xa +#define EC_WORD_BEAUTIFUL (EC_GROUP_STATUS << 9) | 0xb +#define EC_WORD_BEAUTY (EC_GROUP_STATUS << 9) | 0xc +#define EC_WORD_AIR_LOCK (EC_GROUP_STATUS << 9) | 0xd +#define EC_WORD_PSYCHIC (EC_GROUP_STATUS << 9) | 0xe +#define EC_WORD_HYPER_CUTTER (EC_GROUP_STATUS << 9) | 0xf +#define EC_WORD_FIGHTING (EC_GROUP_STATUS << 9) | 0x10 +#define EC_WORD_SHADOW_TAG (EC_GROUP_STATUS << 9) | 0x11 +#define EC_WORD_SMART (EC_GROUP_STATUS << 9) | 0x12 +#define EC_WORD_SMARTNESS (EC_GROUP_STATUS << 9) | 0x13 +#define EC_WORD_SPEED_BOOST (EC_GROUP_STATUS << 9) | 0x14 +#define EC_WORD_COOL (EC_GROUP_STATUS << 9) | 0x15 +#define EC_WORD_COOLNESS (EC_GROUP_STATUS << 9) | 0x16 +#define EC_WORD_BATTLE_ARMOR (EC_GROUP_STATUS << 9) | 0x17 +#define EC_WORD_CUTE (EC_GROUP_STATUS << 9) | 0x18 +#define EC_WORD_CUTENESS (EC_GROUP_STATUS << 9) | 0x19 +#define EC_WORD_STURDY (EC_GROUP_STATUS << 9) | 0x1a +#define EC_WORD_SUCTION_CUPS (EC_GROUP_STATUS << 9) | 0x1b +#define EC_WORD_GRASS (EC_GROUP_STATUS << 9) | 0x1c +#define EC_WORD_CLEAR_BODY (EC_GROUP_STATUS << 9) | 0x1d +#define EC_WORD_TORRENT (EC_GROUP_STATUS << 9) | 0x1e +#define EC_WORD_GHOST (EC_GROUP_STATUS << 9) | 0x1f +#define EC_WORD_ICE (EC_GROUP_STATUS << 9) | 0x20 +#define EC_WORD_GUTS (EC_GROUP_STATUS << 9) | 0x21 +#define EC_WORD_ROUGH_SKIN (EC_GROUP_STATUS << 9) | 0x22 +#define EC_WORD_SHELL_ARMOR (EC_GROUP_STATUS << 9) | 0x23 +#define EC_WORD_NATURAL_CURE (EC_GROUP_STATUS << 9) | 0x24 +#define EC_WORD_DAMP (EC_GROUP_STATUS << 9) | 0x25 +#define EC_WORD_GROUND (EC_GROUP_STATUS << 9) | 0x26 +#define EC_WORD_LIMBER (EC_GROUP_STATUS << 9) | 0x27 +#define EC_WORD_MAGNET_PULL (EC_GROUP_STATUS << 9) | 0x28 +#define EC_WORD_WHITE_SMOKE (EC_GROUP_STATUS << 9) | 0x29 +#define EC_WORD_SYNCHRONIZE (EC_GROUP_STATUS << 9) | 0x2a +#define EC_WORD_OVERGROW (EC_GROUP_STATUS << 9) | 0x2b +#define EC_WORD_SWIFT_SWIM (EC_GROUP_STATUS << 9) | 0x2c +#define EC_WORD_SAND_STREAM (EC_GROUP_STATUS << 9) | 0x2d +#define EC_WORD_SAND_VEIL (EC_GROUP_STATUS << 9) | 0x2e +#define EC_WORD_KEEN_EYE (EC_GROUP_STATUS << 9) | 0x2f +#define EC_WORD_INNER_FOCUS (EC_GROUP_STATUS << 9) | 0x30 +#define EC_WORD_STATIC (EC_GROUP_STATUS << 9) | 0x31 +#define EC_WORD_TYPE (EC_GROUP_STATUS << 9) | 0x32 +#define EC_WORD_TOUGH (EC_GROUP_STATUS << 9) | 0x33 +#define EC_WORD_TOUGHNESS (EC_GROUP_STATUS << 9) | 0x34 +#define EC_WORD_SHED_SKIN (EC_GROUP_STATUS << 9) | 0x35 +#define EC_WORD_HUGE_POWER (EC_GROUP_STATUS << 9) | 0x36 +#define EC_WORD_VOLT_ABSORB (EC_GROUP_STATUS << 9) | 0x37 +#define EC_WORD_WATER_ABSORB (EC_GROUP_STATUS << 9) | 0x38 +#define EC_WORD_ELECTRIC (EC_GROUP_STATUS << 9) | 0x39 +#define EC_WORD_FORECAST (EC_GROUP_STATUS << 9) | 0x3a +#define EC_WORD_SERENE_GRACE (EC_GROUP_STATUS << 9) | 0x3b +#define EC_WORD_POISON (EC_GROUP_STATUS << 9) | 0x3c +#define EC_WORD_POISON_POINT (EC_GROUP_STATUS << 9) | 0x3d +#define EC_WORD_DRAGON (EC_GROUP_STATUS << 9) | 0x3e +#define EC_WORD_TRACE (EC_GROUP_STATUS << 9) | 0x3f +#define EC_WORD_OBLIVIOUS (EC_GROUP_STATUS << 9) | 0x40 +#define EC_WORD_TRUANT (EC_GROUP_STATUS << 9) | 0x41 +#define EC_WORD_RUN_AWAY (EC_GROUP_STATUS << 9) | 0x42 +#define EC_WORD_STICKY_HOLD (EC_GROUP_STATUS << 9) | 0x43 +#define EC_WORD_CLOUD_NINE (EC_GROUP_STATUS << 9) | 0x44 +#define EC_WORD_NORMAL (EC_GROUP_STATUS << 9) | 0x45 +#define EC_WORD_STEEL (EC_GROUP_STATUS << 9) | 0x46 +#define EC_WORD_ILLUMINATE (EC_GROUP_STATUS << 9) | 0x47 +#define EC_WORD_EARLY_BIRD (EC_GROUP_STATUS << 9) | 0x48 +#define EC_WORD_HUSTLE (EC_GROUP_STATUS << 9) | 0x49 +#define EC_WORD_SHINE (EC_GROUP_STATUS << 9) | 0x4a +#define EC_WORD_FLYING (EC_GROUP_STATUS << 9) | 0x4b +#define EC_WORD_DROUGHT (EC_GROUP_STATUS << 9) | 0x4c +#define EC_WORD_LIGHTNINGROD (EC_GROUP_STATUS << 9) | 0x4d +#define EC_WORD_COMPOUNDEYES (EC_GROUP_STATUS << 9) | 0x4e +#define EC_WORD_MARVEL_SCALE (EC_GROUP_STATUS << 9) | 0x4f +#define EC_WORD_WONDER_GUARD (EC_GROUP_STATUS << 9) | 0x50 +#define EC_WORD_INSOMNIA (EC_GROUP_STATUS << 9) | 0x51 +#define EC_WORD_LEVITATE (EC_GROUP_STATUS << 9) | 0x52 +#define EC_WORD_PLUS (EC_GROUP_STATUS << 9) | 0x53 +#define EC_WORD_PRESSURE (EC_GROUP_STATUS << 9) | 0x54 +#define EC_WORD_LIQUID_OOZE (EC_GROUP_STATUS << 9) | 0x55 +#define EC_WORD_COLOR_CHANGE (EC_GROUP_STATUS << 9) | 0x56 +#define EC_WORD_SOUNDPROOF (EC_GROUP_STATUS << 9) | 0x57 +#define EC_WORD_EFFECT_SPORE (EC_GROUP_STATUS << 9) | 0x58 +#define EC_WORD_PKRS (EC_GROUP_STATUS << 9) | 0x59 +#define EC_WORD_FIRE (EC_GROUP_STATUS << 9) | 0x5a +#define EC_WORD_FLAME_BODY (EC_GROUP_STATUS << 9) | 0x5b +#define EC_WORD_MINUS (EC_GROUP_STATUS << 9) | 0x5c +#define EC_WORD_OWN_TEMPO (EC_GROUP_STATUS << 9) | 0x5d +#define EC_WORD_MAGMA_ARMOR (EC_GROUP_STATUS << 9) | 0x5e +#define EC_WORD_WATER (EC_GROUP_STATUS << 9) | 0x5f +#define EC_WORD_WATER_VEIL (EC_GROUP_STATUS << 9) | 0x60 +#define EC_WORD_BUG (EC_GROUP_STATUS << 9) | 0x61 +#define EC_WORD_SWARM (EC_GROUP_STATUS << 9) | 0x62 +#define EC_WORD_CUTE_CHARM (EC_GROUP_STATUS << 9) | 0x63 +#define EC_WORD_IMMUNITY (EC_GROUP_STATUS << 9) | 0x64 +#define EC_WORD_BLAZE (EC_GROUP_STATUS << 9) | 0x65 +#define EC_WORD_PICKUP (EC_GROUP_STATUS << 9) | 0x66 +#define EC_WORD_PATTERN (EC_GROUP_STATUS << 9) | 0x67 +#define EC_WORD_FLASH_FIRE (EC_GROUP_STATUS << 9) | 0x68 +#define EC_WORD_VITAL_SPIRIT (EC_GROUP_STATUS << 9) | 0x69 +#define EC_WORD_CHLOROPHYLL (EC_GROUP_STATUS << 9) | 0x6a +#define EC_WORD_PURE_POWER (EC_GROUP_STATUS << 9) | 0x6b +#define EC_WORD_SHIELD_DUST (EC_GROUP_STATUS << 9) | 0x6c + +// BATTLE +#define EC_WORD_MATCH_UP (EC_GROUP_BATTLE << 9) | 0x0 +#define EC_WORD_GO (EC_GROUP_BATTLE << 9) | 0x1 +#define EC_WORD_NO_1 (EC_GROUP_BATTLE << 9) | 0x2 +#define EC_WORD_DECIDE (EC_GROUP_BATTLE << 9) | 0x3 +#define EC_WORD_LET_ME_WIN (EC_GROUP_BATTLE << 9) | 0x4 +#define EC_WORD_WINS (EC_GROUP_BATTLE << 9) | 0x5 +#define EC_WORD_WIN (EC_GROUP_BATTLE << 9) | 0x6 +#define EC_WORD_WON (EC_GROUP_BATTLE << 9) | 0x7 +#define EC_WORD_IF_I_WIN (EC_GROUP_BATTLE << 9) | 0x8 +#define EC_WORD_WHEN_I_WIN (EC_GROUP_BATTLE << 9) | 0x9 +#define EC_WORD_CAN_T_WIN (EC_GROUP_BATTLE << 9) | 0xa +#define EC_WORD_CAN_WIN (EC_GROUP_BATTLE << 9) | 0xb +#define EC_WORD_NO_MATCH (EC_GROUP_BATTLE << 9) | 0xc +#define EC_WORD_SPIRIT (EC_GROUP_BATTLE << 9) | 0xd +#define EC_WORD_DECIDED (EC_GROUP_BATTLE << 9) | 0xe +#define EC_WORD_TRUMP_CARD (EC_GROUP_BATTLE << 9) | 0xf +#define EC_WORD_TAKE_THAT (EC_GROUP_BATTLE << 9) | 0x10 +#define EC_WORD_COME_ON (EC_GROUP_BATTLE << 9) | 0x11 +#define EC_WORD_ATTACK (EC_GROUP_BATTLE << 9) | 0x12 +#define EC_WORD_SURRENDER (EC_GROUP_BATTLE << 9) | 0x13 +#define EC_WORD_GUTSY (EC_GROUP_BATTLE << 9) | 0x14 +#define EC_WORD_TALENT (EC_GROUP_BATTLE << 9) | 0x15 +#define EC_WORD_STRATEGY (EC_GROUP_BATTLE << 9) | 0x16 +#define EC_WORD_SMITE (EC_GROUP_BATTLE << 9) | 0x17 +#define EC_WORD_MATCH (EC_GROUP_BATTLE << 9) | 0x18 +#define EC_WORD_VICTORY (EC_GROUP_BATTLE << 9) | 0x19 +#define EC_WORD_OFFENSIVE (EC_GROUP_BATTLE << 9) | 0x1a +#define EC_WORD_SENSE (EC_GROUP_BATTLE << 9) | 0x1b +#define EC_WORD_VERSUS (EC_GROUP_BATTLE << 9) | 0x1c +#define EC_WORD_FIGHTS (EC_GROUP_BATTLE << 9) | 0x1d +#define EC_WORD_POWER (EC_GROUP_BATTLE << 9) | 0x1e +#define EC_WORD_CHALLENGE (EC_GROUP_BATTLE << 9) | 0x1f +#define EC_WORD_STRONG (EC_GROUP_BATTLE << 9) | 0x20 +#define EC_WORD_TOO_STRONG (EC_GROUP_BATTLE << 9) | 0x21 +#define EC_WORD_GO_EASY (EC_GROUP_BATTLE << 9) | 0x22 +#define EC_WORD_FOE (EC_GROUP_BATTLE << 9) | 0x23 +#define EC_WORD_GENIUS (EC_GROUP_BATTLE << 9) | 0x24 +#define EC_WORD_LEGEND (EC_GROUP_BATTLE << 9) | 0x25 +#define EC_WORD_ESCAPE (EC_GROUP_BATTLE << 9) | 0x26 +#define EC_WORD_AIM (EC_GROUP_BATTLE << 9) | 0x27 +#define EC_WORD_BATTLE (EC_GROUP_BATTLE << 9) | 0x28 +#define EC_WORD_FIGHT (EC_GROUP_BATTLE << 9) | 0x29 +#define EC_WORD_RESUSCITATE (EC_GROUP_BATTLE << 9) | 0x2a +#define EC_WORD_POINTS (EC_GROUP_BATTLE << 9) | 0x2b +#define EC_WORD_SERIOUS (EC_GROUP_BATTLE << 9) | 0x2c +#define EC_WORD_GIVE_UP (EC_GROUP_BATTLE << 9) | 0x2d +#define EC_WORD_LOSS (EC_GROUP_BATTLE << 9) | 0x2e +#define EC_WORD_IF_I_LOSE (EC_GROUP_BATTLE << 9) | 0x2f +#define EC_WORD_LOST (EC_GROUP_BATTLE << 9) | 0x30 +#define EC_WORD_LOSE (EC_GROUP_BATTLE << 9) | 0x31 +#define EC_WORD_GUARD (EC_GROUP_BATTLE << 9) | 0x32 +#define EC_WORD_PARTNER (EC_GROUP_BATTLE << 9) | 0x33 +#define EC_WORD_REJECT (EC_GROUP_BATTLE << 9) | 0x34 +#define EC_WORD_ACCEPT (EC_GROUP_BATTLE << 9) | 0x35 +#define EC_WORD_INVINCIBLE (EC_GROUP_BATTLE << 9) | 0x36 +#define EC_WORD_RECEIVED (EC_GROUP_BATTLE << 9) | 0x37 +#define EC_WORD_EASY (EC_GROUP_BATTLE << 9) | 0x38 +#define EC_WORD_WEAK (EC_GROUP_BATTLE << 9) | 0x39 +#define EC_WORD_TOO_WEAK (EC_GROUP_BATTLE << 9) | 0x3a +#define EC_WORD_PUSHOVER (EC_GROUP_BATTLE << 9) | 0x3b +#define EC_WORD_LEADER (EC_GROUP_BATTLE << 9) | 0x3c +#define EC_WORD_RULE (EC_GROUP_BATTLE << 9) | 0x3d +#define EC_WORD_MOVE (EC_GROUP_BATTLE << 9) | 0x3e + +// GREETINGS +#define EC_WORD_THANKS (EC_GROUP_GREETINGS << 9) | 0x0 +#define EC_WORD_YES (EC_GROUP_GREETINGS << 9) | 0x1 +#define EC_WORD_HERE_GOES (EC_GROUP_GREETINGS << 9) | 0x2 +#define EC_WORD_HERE_I_COME (EC_GROUP_GREETINGS << 9) | 0x3 +#define EC_WORD_HERE_IT_IS (EC_GROUP_GREETINGS << 9) | 0x4 +#define EC_WORD_YEAH (EC_GROUP_GREETINGS << 9) | 0x5 +#define EC_WORD_WELCOME (EC_GROUP_GREETINGS << 9) | 0x6 +#define EC_WORD_OI (EC_GROUP_GREETINGS << 9) | 0x7 +#define EC_WORD_HOW_DO (EC_GROUP_GREETINGS << 9) | 0x8 +#define EC_WORD_CONGRATS (EC_GROUP_GREETINGS << 9) | 0x9 +#define EC_WORD_GIVE_ME (EC_GROUP_GREETINGS << 9) | 0xa +#define EC_WORD_SORRY (EC_GROUP_GREETINGS << 9) | 0xb +#define EC_WORD_APOLOGIZE (EC_GROUP_GREETINGS << 9) | 0xc +#define EC_WORD_FORGIVE (EC_GROUP_GREETINGS << 9) | 0xd +#define EC_WORD_HEY_THERE (EC_GROUP_GREETINGS << 9) | 0xe +#define EC_WORD_HELLO (EC_GROUP_GREETINGS << 9) | 0xf +#define EC_WORD_GOOD_BYE (EC_GROUP_GREETINGS << 9) | 0x10 +#define EC_WORD_THANK_YOU (EC_GROUP_GREETINGS << 9) | 0x11 +#define EC_WORD_I_VE_ARRIVED (EC_GROUP_GREETINGS << 9) | 0x12 +#define EC_WORD_PARDON (EC_GROUP_GREETINGS << 9) | 0x13 +#define EC_WORD_EXCUSE (EC_GROUP_GREETINGS << 9) | 0x14 +#define EC_WORD_SEE_YA (EC_GROUP_GREETINGS << 9) | 0x15 +#define EC_WORD_EXCUSE_ME (EC_GROUP_GREETINGS << 9) | 0x16 +#define EC_WORD_WELL_THEN (EC_GROUP_GREETINGS << 9) | 0x17 +#define EC_WORD_GO_AHEAD (EC_GROUP_GREETINGS << 9) | 0x18 +#define EC_WORD_APPRECIATE (EC_GROUP_GREETINGS << 9) | 0x19 +#define EC_WORD_HEY_QUES (EC_GROUP_GREETINGS << 9) | 0x1a +#define EC_WORD_WHAT_S_UP_QUES (EC_GROUP_GREETINGS << 9) | 0x1b +#define EC_WORD_HUH_QUES (EC_GROUP_GREETINGS << 9) | 0x1c +#define EC_WORD_NO (EC_GROUP_GREETINGS << 9) | 0x1d +#define EC_WORD_HI (EC_GROUP_GREETINGS << 9) | 0x1e +#define EC_WORD_YEAH_YEAH (EC_GROUP_GREETINGS << 9) | 0x1f +#define EC_WORD_BYE_BYE (EC_GROUP_GREETINGS << 9) | 0x20 +#define EC_WORD_MEET_YOU (EC_GROUP_GREETINGS << 9) | 0x21 +#define EC_WORD_HEY (EC_GROUP_GREETINGS << 9) | 0x22 +#define EC_WORD_SMELL (EC_GROUP_GREETINGS << 9) | 0x23 +#define EC_WORD_LISTENING (EC_GROUP_GREETINGS << 9) | 0x24 +#define EC_WORD_HOO_HAH (EC_GROUP_GREETINGS << 9) | 0x25 +#define EC_WORD_YAHOO (EC_GROUP_GREETINGS << 9) | 0x26 +#define EC_WORD_YO (EC_GROUP_GREETINGS << 9) | 0x27 +#define EC_WORD_COME_OVER (EC_GROUP_GREETINGS << 9) | 0x28 +#define EC_WORD_COUNT_ON (EC_GROUP_GREETINGS << 9) | 0x29 + +// PEOPLE +#define EC_WORD_OPPONENT (EC_GROUP_PEOPLE << 9) | 0x0 +#define EC_WORD_I (EC_GROUP_PEOPLE << 9) | 0x1 +#define EC_WORD_YOU (EC_GROUP_PEOPLE << 9) | 0x2 +#define EC_WORD_YOURS (EC_GROUP_PEOPLE << 9) | 0x3 +#define EC_WORD_SON (EC_GROUP_PEOPLE << 9) | 0x4 +#define EC_WORD_YOUR (EC_GROUP_PEOPLE << 9) | 0x5 +#define EC_WORD_YOU_RE (EC_GROUP_PEOPLE << 9) | 0x6 +#define EC_WORD_YOU_VE (EC_GROUP_PEOPLE << 9) | 0x7 +#define EC_WORD_MOTHER (EC_GROUP_PEOPLE << 9) | 0x8 +#define EC_WORD_GRANDFATHER (EC_GROUP_PEOPLE << 9) | 0x9 +#define EC_WORD_UNCLE (EC_GROUP_PEOPLE << 9) | 0xa +#define EC_WORD_FATHER (EC_GROUP_PEOPLE << 9) | 0xb +#define EC_WORD_BOY (EC_GROUP_PEOPLE << 9) | 0xc +#define EC_WORD_ADULT (EC_GROUP_PEOPLE << 9) | 0xd +#define EC_WORD_BROTHER (EC_GROUP_PEOPLE << 9) | 0xe +#define EC_WORD_SISTER (EC_GROUP_PEOPLE << 9) | 0xf +#define EC_WORD_GRANDMOTHER (EC_GROUP_PEOPLE << 9) | 0x10 +#define EC_WORD_AUNT (EC_GROUP_PEOPLE << 9) | 0x11 +#define EC_WORD_PARENT (EC_GROUP_PEOPLE << 9) | 0x12 +#define EC_WORD_MAN (EC_GROUP_PEOPLE << 9) | 0x13 +#define EC_WORD_ME (EC_GROUP_PEOPLE << 9) | 0x14 +#define EC_WORD_GIRL (EC_GROUP_PEOPLE << 9) | 0x15 +#define EC_WORD_BABE (EC_GROUP_PEOPLE << 9) | 0x16 +#define EC_WORD_FAMILY (EC_GROUP_PEOPLE << 9) | 0x17 +#define EC_WORD_HER (EC_GROUP_PEOPLE << 9) | 0x18 +#define EC_WORD_HIM (EC_GROUP_PEOPLE << 9) | 0x19 +#define EC_WORD_HE (EC_GROUP_PEOPLE << 9) | 0x1a +#define EC_WORD_PLACE (EC_GROUP_PEOPLE << 9) | 0x1b +#define EC_WORD_DAUGHTER (EC_GROUP_PEOPLE << 9) | 0x1c +#define EC_WORD_HIS (EC_GROUP_PEOPLE << 9) | 0x1d +#define EC_WORD_HE_S (EC_GROUP_PEOPLE << 9) | 0x1e +#define EC_WORD_AREN_T (EC_GROUP_PEOPLE << 9) | 0x1f +#define EC_WORD_SIBLINGS (EC_GROUP_PEOPLE << 9) | 0x20 +#define EC_WORD_KID (EC_GROUP_PEOPLE << 9) | 0x21 +#define EC_WORD_CHILDREN (EC_GROUP_PEOPLE << 9) | 0x22 +#define EC_WORD_MR (EC_GROUP_PEOPLE << 9) | 0x23 +#define EC_WORD_MRS (EC_GROUP_PEOPLE << 9) | 0x24 +#define EC_WORD_MYSELF (EC_GROUP_PEOPLE << 9) | 0x25 +#define EC_WORD_I_WAS (EC_GROUP_PEOPLE << 9) | 0x26 +#define EC_WORD_TO_ME (EC_GROUP_PEOPLE << 9) | 0x27 +#define EC_WORD_MY (EC_GROUP_PEOPLE << 9) | 0x28 +#define EC_WORD_I_AM (EC_GROUP_PEOPLE << 9) | 0x29 +#define EC_WORD_I_VE (EC_GROUP_PEOPLE << 9) | 0x2a +#define EC_WORD_WHO (EC_GROUP_PEOPLE << 9) | 0x2b +#define EC_WORD_SOMEONE (EC_GROUP_PEOPLE << 9) | 0x2c +#define EC_WORD_WHO_WAS (EC_GROUP_PEOPLE << 9) | 0x2d +#define EC_WORD_TO_WHOM (EC_GROUP_PEOPLE << 9) | 0x2e +#define EC_WORD_WHOSE (EC_GROUP_PEOPLE << 9) | 0x2f +#define EC_WORD_WHO_IS (EC_GROUP_PEOPLE << 9) | 0x30 +#define EC_WORD_IT_S (EC_GROUP_PEOPLE << 9) | 0x31 +#define EC_WORD_LADY (EC_GROUP_PEOPLE << 9) | 0x32 +#define EC_WORD_FRIEND (EC_GROUP_PEOPLE << 9) | 0x33 +#define EC_WORD_ALLY (EC_GROUP_PEOPLE << 9) | 0x34 +#define EC_WORD_PERSON (EC_GROUP_PEOPLE << 9) | 0x35 +#define EC_WORD_DUDE (EC_GROUP_PEOPLE << 9) | 0x36 +#define EC_WORD_THEY (EC_GROUP_PEOPLE << 9) | 0x37 +#define EC_WORD_THEY_WERE (EC_GROUP_PEOPLE << 9) | 0x38 +#define EC_WORD_TO_THEM (EC_GROUP_PEOPLE << 9) | 0x39 +#define EC_WORD_THEIR (EC_GROUP_PEOPLE << 9) | 0x3a +#define EC_WORD_THEY_RE (EC_GROUP_PEOPLE << 9) | 0x3b +#define EC_WORD_THEY_VE (EC_GROUP_PEOPLE << 9) | 0x3c +#define EC_WORD_WE (EC_GROUP_PEOPLE << 9) | 0x3d +#define EC_WORD_BEEN (EC_GROUP_PEOPLE << 9) | 0x3e +#define EC_WORD_TO_US (EC_GROUP_PEOPLE << 9) | 0x3f +#define EC_WORD_OUR (EC_GROUP_PEOPLE << 9) | 0x40 +#define EC_WORD_WE_RE (EC_GROUP_PEOPLE << 9) | 0x41 +#define EC_WORD_RIVAL (EC_GROUP_PEOPLE << 9) | 0x42 +#define EC_WORD_WE_VE (EC_GROUP_PEOPLE << 9) | 0x43 +#define EC_WORD_WOMAN (EC_GROUP_PEOPLE << 9) | 0x44 +#define EC_WORD_SHE (EC_GROUP_PEOPLE << 9) | 0x45 +#define EC_WORD_SHE_WAS (EC_GROUP_PEOPLE << 9) | 0x46 +#define EC_WORD_TO_HER (EC_GROUP_PEOPLE << 9) | 0x47 +#define EC_WORD_HERS (EC_GROUP_PEOPLE << 9) | 0x48 +#define EC_WORD_SHE_IS (EC_GROUP_PEOPLE << 9) | 0x49 +#define EC_WORD_SOME (EC_GROUP_PEOPLE << 9) | 0x4a + +// VOICES +#define EC_WORD_EXCL (EC_GROUP_VOICES << 9) | 0x0 +#define EC_WORD_EXCL_EXCL (EC_GROUP_VOICES << 9) | 0x1 +#define EC_WORD_QUES_EXCL (EC_GROUP_VOICES << 9) | 0x2 +#define EC_WORD_QUES (EC_GROUP_VOICES << 9) | 0x3 +#define EC_WORD_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x4 +#define EC_WORD_ELLIPSIS_EXCL (EC_GROUP_VOICES << 9) | 0x5 +#define EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x6 +#define EC_WORD_DASH (EC_GROUP_VOICES << 9) | 0x7 +#define EC_WORD_DASH_DASH_DASH (EC_GROUP_VOICES << 9) | 0x8 +#define EC_WORD_UH_OH (EC_GROUP_VOICES << 9) | 0x9 +#define EC_WORD_WAAAH (EC_GROUP_VOICES << 9) | 0xa +#define EC_WORD_AHAHA (EC_GROUP_VOICES << 9) | 0xb +#define EC_WORD_OH_QUES (EC_GROUP_VOICES << 9) | 0xc +#define EC_WORD_NOPE (EC_GROUP_VOICES << 9) | 0xd +#define EC_WORD_URGH (EC_GROUP_VOICES << 9) | 0xe +#define EC_WORD_HMM (EC_GROUP_VOICES << 9) | 0xf +#define EC_WORD_WHOAH (EC_GROUP_VOICES << 9) | 0x10 +#define EC_WORD_WROOOAAR_EXCL (EC_GROUP_VOICES << 9) | 0x11 +#define EC_WORD_WOW (EC_GROUP_VOICES << 9) | 0x12 +#define EC_WORD_GIGGLE (EC_GROUP_VOICES << 9) | 0x13 +#define EC_WORD_SIGH (EC_GROUP_VOICES << 9) | 0x14 +#define EC_WORD_UNBELIEVABLE (EC_GROUP_VOICES << 9) | 0x15 +#define EC_WORD_CRIES (EC_GROUP_VOICES << 9) | 0x16 +#define EC_WORD_AGREE (EC_GROUP_VOICES << 9) | 0x17 +#define EC_WORD_EH_QUES (EC_GROUP_VOICES << 9) | 0x18 +#define EC_WORD_CRY (EC_GROUP_VOICES << 9) | 0x19 +#define EC_WORD_EHEHE (EC_GROUP_VOICES << 9) | 0x1a +#define EC_WORD_OI_OI_OI (EC_GROUP_VOICES << 9) | 0x1b +#define EC_WORD_OH_YEAH (EC_GROUP_VOICES << 9) | 0x1c +#define EC_WORD_OH (EC_GROUP_VOICES << 9) | 0x1d +#define EC_WORD_OOPS (EC_GROUP_VOICES << 9) | 0x1e +#define EC_WORD_SHOCKED (EC_GROUP_VOICES << 9) | 0x1f +#define EC_WORD_EEK (EC_GROUP_VOICES << 9) | 0x20 +#define EC_WORD_GRAAAH (EC_GROUP_VOICES << 9) | 0x21 +#define EC_WORD_GWAHAHAHA (EC_GROUP_VOICES << 9) | 0x22 +#define EC_WORD_WAY (EC_GROUP_VOICES << 9) | 0x23 +#define EC_WORD_TCH (EC_GROUP_VOICES << 9) | 0x24 +#define EC_WORD_HEHE (EC_GROUP_VOICES << 9) | 0x25 +#define EC_WORD_HAH (EC_GROUP_VOICES << 9) | 0x26 +#define EC_WORD_YUP (EC_GROUP_VOICES << 9) | 0x27 +#define EC_WORD_HAHAHA (EC_GROUP_VOICES << 9) | 0x28 +#define EC_WORD_AIYEEH (EC_GROUP_VOICES << 9) | 0x29 +#define EC_WORD_HIYAH (EC_GROUP_VOICES << 9) | 0x2a +#define EC_WORD_FUFUFU (EC_GROUP_VOICES << 9) | 0x2b +#define EC_WORD_LOL (EC_GROUP_VOICES << 9) | 0x2c +#define EC_WORD_SNORT (EC_GROUP_VOICES << 9) | 0x2d +#define EC_WORD_HUMPH (EC_GROUP_VOICES << 9) | 0x2e +#define EC_WORD_HEHEHE (EC_GROUP_VOICES << 9) | 0x2f +#define EC_WORD_HEH (EC_GROUP_VOICES << 9) | 0x30 +#define EC_WORD_HOHOHO (EC_GROUP_VOICES << 9) | 0x31 +#define EC_WORD_UH_HUH (EC_GROUP_VOICES << 9) | 0x32 +#define EC_WORD_OH_DEAR (EC_GROUP_VOICES << 9) | 0x33 +#define EC_WORD_ARRGH (EC_GROUP_VOICES << 9) | 0x34 +#define EC_WORD_MUFUFU (EC_GROUP_VOICES << 9) | 0x35 +#define EC_WORD_MMM (EC_GROUP_VOICES << 9) | 0x36 +#define EC_WORD_OH_KAY (EC_GROUP_VOICES << 9) | 0x37 +#define EC_WORD_OKAY (EC_GROUP_VOICES << 9) | 0x38 +#define EC_WORD_LALALA (EC_GROUP_VOICES << 9) | 0x39 +#define EC_WORD_YAY (EC_GROUP_VOICES << 9) | 0x3a +#define EC_WORD_AWW (EC_GROUP_VOICES << 9) | 0x3b +#define EC_WORD_WOWEE (EC_GROUP_VOICES << 9) | 0x3c +#define EC_WORD_GWAH (EC_GROUP_VOICES << 9) | 0x3d +#define EC_WORD_WAHAHAHA (EC_GROUP_VOICES << 9) | 0x3e + +// SPEECH +#define EC_WORD_LISTEN (EC_GROUP_SPEECH << 9) | 0x0 +#define EC_WORD_NOT_VERY (EC_GROUP_SPEECH << 9) | 0x1 +#define EC_WORD_MEAN (EC_GROUP_SPEECH << 9) | 0x2 +#define EC_WORD_LIE (EC_GROUP_SPEECH << 9) | 0x3 +#define EC_WORD_LAY (EC_GROUP_SPEECH << 9) | 0x4 +#define EC_WORD_RECOMMEND (EC_GROUP_SPEECH << 9) | 0x5 +#define EC_WORD_NITWIT (EC_GROUP_SPEECH << 9) | 0x6 +#define EC_WORD_QUITE (EC_GROUP_SPEECH << 9) | 0x7 +#define EC_WORD_FROM (EC_GROUP_SPEECH << 9) | 0x8 +#define EC_WORD_FEELING (EC_GROUP_SPEECH << 9) | 0x9 +#define EC_WORD_BUT (EC_GROUP_SPEECH << 9) | 0xa +#define EC_WORD_HOWEVER (EC_GROUP_SPEECH << 9) | 0xb +#define EC_WORD_CASE (EC_GROUP_SPEECH << 9) | 0xc +#define EC_WORD_THE (EC_GROUP_SPEECH << 9) | 0xd +#define EC_WORD_MISS (EC_GROUP_SPEECH << 9) | 0xe +#define EC_WORD_HOW (EC_GROUP_SPEECH << 9) | 0xf +#define EC_WORD_HIT (EC_GROUP_SPEECH << 9) | 0x10 +#define EC_WORD_ENOUGH (EC_GROUP_SPEECH << 9) | 0x11 +#define EC_WORD_A_LOT (EC_GROUP_SPEECH << 9) | 0x12 +#define EC_WORD_A_LITTLE (EC_GROUP_SPEECH << 9) | 0x13 +#define EC_WORD_ABSOLUTELY (EC_GROUP_SPEECH << 9) | 0x14 +#define EC_WORD_AND (EC_GROUP_SPEECH << 9) | 0x15 +#define EC_WORD_ONLY (EC_GROUP_SPEECH << 9) | 0x16 +#define EC_WORD_AROUND (EC_GROUP_SPEECH << 9) | 0x17 +#define EC_WORD_PROBABLY (EC_GROUP_SPEECH << 9) | 0x18 +#define EC_WORD_IF (EC_GROUP_SPEECH << 9) | 0x19 +#define EC_WORD_VERY (EC_GROUP_SPEECH << 9) | 0x1a +#define EC_WORD_A_TINY_BIT (EC_GROUP_SPEECH << 9) | 0x1b +#define EC_WORD_WILD (EC_GROUP_SPEECH << 9) | 0x1c +#define EC_WORD_THAT_S (EC_GROUP_SPEECH << 9) | 0x1d +#define EC_WORD_JUST (EC_GROUP_SPEECH << 9) | 0x1e +#define EC_WORD_EVEN_SO (EC_GROUP_SPEECH << 9) | 0x1f +#define EC_WORD_MUST_BE (EC_GROUP_SPEECH << 9) | 0x20 +#define EC_WORD_NATURALLY (EC_GROUP_SPEECH << 9) | 0x21 +#define EC_WORD_FOR_NOW (EC_GROUP_SPEECH << 9) | 0x22 +#define EC_WORD_UNDERSTOOD (EC_GROUP_SPEECH << 9) | 0x23 +#define EC_WORD_JOKING (EC_GROUP_SPEECH << 9) | 0x24 +#define EC_WORD_READY (EC_GROUP_SPEECH << 9) | 0x25 +#define EC_WORD_SOMETHING (EC_GROUP_SPEECH << 9) | 0x26 +#define EC_WORD_SOMEHOW (EC_GROUP_SPEECH << 9) | 0x27 +#define EC_WORD_ALTHOUGH (EC_GROUP_SPEECH << 9) | 0x28 +#define EC_WORD_ALSO (EC_GROUP_SPEECH << 9) | 0x29 +#define EC_WORD_PERFECT (EC_GROUP_SPEECH << 9) | 0x2a +#define EC_WORD_AS_MUCH_AS (EC_GROUP_SPEECH << 9) | 0x2b +#define EC_WORD_REALLY (EC_GROUP_SPEECH << 9) | 0x2c +#define EC_WORD_TRULY (EC_GROUP_SPEECH << 9) | 0x2d +#define EC_WORD_SERIOUSLY (EC_GROUP_SPEECH << 9) | 0x2e +#define EC_WORD_TOTALLY (EC_GROUP_SPEECH << 9) | 0x2f +#define EC_WORD_UNTIL (EC_GROUP_SPEECH << 9) | 0x30 +#define EC_WORD_AS_IF (EC_GROUP_SPEECH << 9) | 0x31 +#define EC_WORD_MOOD (EC_GROUP_SPEECH << 9) | 0x32 +#define EC_WORD_RATHER (EC_GROUP_SPEECH << 9) | 0x33 +#define EC_WORD_AWFULLY (EC_GROUP_SPEECH << 9) | 0x34 +#define EC_WORD_MODE (EC_GROUP_SPEECH << 9) | 0x35 +#define EC_WORD_MORE (EC_GROUP_SPEECH << 9) | 0x36 +#define EC_WORD_TOO_LATE (EC_GROUP_SPEECH << 9) | 0x37 +#define EC_WORD_FINALLY (EC_GROUP_SPEECH << 9) | 0x38 +#define EC_WORD_ANY (EC_GROUP_SPEECH << 9) | 0x39 +#define EC_WORD_INSTEAD (EC_GROUP_SPEECH << 9) | 0x3a +#define EC_WORD_FANTASTIC (EC_GROUP_SPEECH << 9) | 0x3b + +// ENDINGS +#define EC_WORD_WILL (EC_GROUP_ENDINGS << 9) | 0x0 +#define EC_WORD_WILL_BE_HERE (EC_GROUP_ENDINGS << 9) | 0x1 +#define EC_WORD_OR (EC_GROUP_ENDINGS << 9) | 0x2 +#define EC_WORD_TIMES (EC_GROUP_ENDINGS << 9) | 0x3 +#define EC_WORD_WONDER (EC_GROUP_ENDINGS << 9) | 0x4 +#define EC_WORD_IS_IT_QUES (EC_GROUP_ENDINGS << 9) | 0x5 +#define EC_WORD_BE (EC_GROUP_ENDINGS << 9) | 0x6 +#define EC_WORD_GIMME (EC_GROUP_ENDINGS << 9) | 0x7 +#define EC_WORD_COULD (EC_GROUP_ENDINGS << 9) | 0x8 +#define EC_WORD_LIKELY_TO (EC_GROUP_ENDINGS << 9) | 0x9 +#define EC_WORD_WOULD (EC_GROUP_ENDINGS << 9) | 0xa +#define EC_WORD_IS (EC_GROUP_ENDINGS << 9) | 0xb +#define EC_WORD_ISN_T_IT_QUES (EC_GROUP_ENDINGS << 9) | 0xc +#define EC_WORD_LET_S (EC_GROUP_ENDINGS << 9) | 0xd +#define EC_WORD_OTHER (EC_GROUP_ENDINGS << 9) | 0xe +#define EC_WORD_ARE (EC_GROUP_ENDINGS << 9) | 0xf +#define EC_WORD_WAS (EC_GROUP_ENDINGS << 9) | 0x10 +#define EC_WORD_WERE (EC_GROUP_ENDINGS << 9) | 0x11 +#define EC_WORD_THOSE (EC_GROUP_ENDINGS << 9) | 0x12 +#define EC_WORD_ISN_T (EC_GROUP_ENDINGS << 9) | 0x13 +#define EC_WORD_WON_T (EC_GROUP_ENDINGS << 9) | 0x14 +#define EC_WORD_CAN_T (EC_GROUP_ENDINGS << 9) | 0x15 +#define EC_WORD_CAN (EC_GROUP_ENDINGS << 9) | 0x16 +#define EC_WORD_DON_T (EC_GROUP_ENDINGS << 9) | 0x17 +#define EC_WORD_DO (EC_GROUP_ENDINGS << 9) | 0x18 +#define EC_WORD_DOES (EC_GROUP_ENDINGS << 9) | 0x19 +#define EC_WORD_WHOM (EC_GROUP_ENDINGS << 9) | 0x1a +#define EC_WORD_WHICH (EC_GROUP_ENDINGS << 9) | 0x1b +#define EC_WORD_WASN_T (EC_GROUP_ENDINGS << 9) | 0x1c +#define EC_WORD_WEREN_T (EC_GROUP_ENDINGS << 9) | 0x1d +#define EC_WORD_HAVE (EC_GROUP_ENDINGS << 9) | 0x1e +#define EC_WORD_HAVEN_T (EC_GROUP_ENDINGS << 9) | 0x1f +#define EC_WORD_A (EC_GROUP_ENDINGS << 9) | 0x20 +#define EC_WORD_AN (EC_GROUP_ENDINGS << 9) | 0x21 +#define EC_WORD_NOT (EC_GROUP_ENDINGS << 9) | 0x22 +#define EC_WORD_THERE (EC_GROUP_ENDINGS << 9) | 0x23 +#define EC_WORD_OK_QUES (EC_GROUP_ENDINGS << 9) | 0x24 +#define EC_WORD_SO (EC_GROUP_ENDINGS << 9) | 0x25 +#define EC_WORD_MAYBE (EC_GROUP_ENDINGS << 9) | 0x26 +#define EC_WORD_ABOUT (EC_GROUP_ENDINGS << 9) | 0x27 +#define EC_WORD_OVER (EC_GROUP_ENDINGS << 9) | 0x28 +#define EC_WORD_IT (EC_GROUP_ENDINGS << 9) | 0x29 +#define EC_WORD_ALL (EC_GROUP_ENDINGS << 9) | 0x2a +#define EC_WORD_FOR (EC_GROUP_ENDINGS << 9) | 0x2b +#define EC_WORD_ON (EC_GROUP_ENDINGS << 9) | 0x2c +#define EC_WORD_OFF (EC_GROUP_ENDINGS << 9) | 0x2d +#define EC_WORD_AS (EC_GROUP_ENDINGS << 9) | 0x2e +#define EC_WORD_TO (EC_GROUP_ENDINGS << 9) | 0x2f +#define EC_WORD_WITH (EC_GROUP_ENDINGS << 9) | 0x30 +#define EC_WORD_BETTER (EC_GROUP_ENDINGS << 9) | 0x31 +#define EC_WORD_EVER (EC_GROUP_ENDINGS << 9) | 0x32 +#define EC_WORD_SINCE (EC_GROUP_ENDINGS << 9) | 0x33 +#define EC_WORD_OF (EC_GROUP_ENDINGS << 9) | 0x34 +#define EC_WORD_BELONGS_TO (EC_GROUP_ENDINGS << 9) | 0x35 +#define EC_WORD_AT (EC_GROUP_ENDINGS << 9) | 0x36 +#define EC_WORD_IN (EC_GROUP_ENDINGS << 9) | 0x37 +#define EC_WORD_OUT (EC_GROUP_ENDINGS << 9) | 0x38 +#define EC_WORD_TOO (EC_GROUP_ENDINGS << 9) | 0x39 +#define EC_WORD_LIKE (EC_GROUP_ENDINGS << 9) | 0x3a +#define EC_WORD_DID (EC_GROUP_ENDINGS << 9) | 0x3b +#define EC_WORD_DIDN_T (EC_GROUP_ENDINGS << 9) | 0x3c +#define EC_WORD_DOESN_T (EC_GROUP_ENDINGS << 9) | 0x3d +#define EC_WORD_WITHOUT (EC_GROUP_ENDINGS << 9) | 0x3e +#define EC_WORD_AFTER (EC_GROUP_ENDINGS << 9) | 0x3f +#define EC_WORD_BEFORE (EC_GROUP_ENDINGS << 9) | 0x40 +#define EC_WORD_WHILE (EC_GROUP_ENDINGS << 9) | 0x41 +#define EC_WORD_THAN (EC_GROUP_ENDINGS << 9) | 0x42 +#define EC_WORD_ONCE (EC_GROUP_ENDINGS << 9) | 0x43 +#define EC_WORD_ANYWHERE (EC_GROUP_ENDINGS << 9) | 0x44 + +// FEELINGS +#define EC_WORD_MEET (EC_GROUP_FEELINGS << 9) | 0x0 +#define EC_WORD_PLAY (EC_GROUP_FEELINGS << 9) | 0x1 +#define EC_WORD_HURRIED (EC_GROUP_FEELINGS << 9) | 0x2 +#define EC_WORD_GOES (EC_GROUP_FEELINGS << 9) | 0x3 +#define EC_WORD_GIDDY (EC_GROUP_FEELINGS << 9) | 0x4 +#define EC_WORD_HAPPY (EC_GROUP_FEELINGS << 9) | 0x5 +#define EC_WORD_HAPPINESS (EC_GROUP_FEELINGS << 9) | 0x6 +#define EC_WORD_EXCITE (EC_GROUP_FEELINGS << 9) | 0x7 +#define EC_WORD_IMPORTANT (EC_GROUP_FEELINGS << 9) | 0x8 +#define EC_WORD_FUNNY (EC_GROUP_FEELINGS << 9) | 0x9 +#define EC_WORD_GOT (EC_GROUP_FEELINGS << 9) | 0xa +#define EC_WORD_GO_HOME (EC_GROUP_FEELINGS << 9) | 0xb +#define EC_WORD_DISAPPOINTED (EC_GROUP_FEELINGS << 9) | 0xc +#define EC_WORD_DISAPPOINTS (EC_GROUP_FEELINGS << 9) | 0xd +#define EC_WORD_SAD (EC_GROUP_FEELINGS << 9) | 0xe +#define EC_WORD_TRY (EC_GROUP_FEELINGS << 9) | 0xf +#define EC_WORD_TRIES (EC_GROUP_FEELINGS << 9) | 0x10 +#define EC_WORD_HEARS (EC_GROUP_FEELINGS << 9) | 0x11 +#define EC_WORD_THINK (EC_GROUP_FEELINGS << 9) | 0x12 +#define EC_WORD_HEAR (EC_GROUP_FEELINGS << 9) | 0x13 +#define EC_WORD_WANTS (EC_GROUP_FEELINGS << 9) | 0x14 +#define EC_WORD_MISHEARD (EC_GROUP_FEELINGS << 9) | 0x15 +#define EC_WORD_DISLIKE (EC_GROUP_FEELINGS << 9) | 0x16 +#define EC_WORD_ANGRY (EC_GROUP_FEELINGS << 9) | 0x17 +#define EC_WORD_ANGER (EC_GROUP_FEELINGS << 9) | 0x18 +#define EC_WORD_SCARY (EC_GROUP_FEELINGS << 9) | 0x19 +#define EC_WORD_LONESOME (EC_GROUP_FEELINGS << 9) | 0x1a +#define EC_WORD_DISAPPOINT (EC_GROUP_FEELINGS << 9) | 0x1b +#define EC_WORD_JOY (EC_GROUP_FEELINGS << 9) | 0x1c +#define EC_WORD_GETS (EC_GROUP_FEELINGS << 9) | 0x1d +#define EC_WORD_NEVER (EC_GROUP_FEELINGS << 9) | 0x1e +#define EC_WORD_DARN (EC_GROUP_FEELINGS << 9) | 0x1f +#define EC_WORD_DOWNCAST (EC_GROUP_FEELINGS << 9) | 0x20 +#define EC_WORD_INCREDIBLE (EC_GROUP_FEELINGS << 9) | 0x21 +#define EC_WORD_LIKES (EC_GROUP_FEELINGS << 9) | 0x22 +#define EC_WORD_DISLIKES (EC_GROUP_FEELINGS << 9) | 0x23 +#define EC_WORD_BORING (EC_GROUP_FEELINGS << 9) | 0x24 +#define EC_WORD_CARE (EC_GROUP_FEELINGS << 9) | 0x25 +#define EC_WORD_CARES (EC_GROUP_FEELINGS << 9) | 0x26 +#define EC_WORD_ALL_RIGHT (EC_GROUP_FEELINGS << 9) | 0x27 +#define EC_WORD_ADORE (EC_GROUP_FEELINGS << 9) | 0x28 +#define EC_WORD_DISASTER (EC_GROUP_FEELINGS << 9) | 0x29 +#define EC_WORD_ENJOY (EC_GROUP_FEELINGS << 9) | 0x2a +#define EC_WORD_ENJOYS (EC_GROUP_FEELINGS << 9) | 0x2b +#define EC_WORD_EAT (EC_GROUP_FEELINGS << 9) | 0x2c +#define EC_WORD_LACKING (EC_GROUP_FEELINGS << 9) | 0x2d +#define EC_WORD_BAD (EC_GROUP_FEELINGS << 9) | 0x2e +#define EC_WORD_HARD (EC_GROUP_FEELINGS << 9) | 0x2f +#define EC_WORD_TERRIBLE (EC_GROUP_FEELINGS << 9) | 0x30 +#define EC_WORD_SHOULD (EC_GROUP_FEELINGS << 9) | 0x31 +#define EC_WORD_NICE (EC_GROUP_FEELINGS << 9) | 0x32 +#define EC_WORD_DRINK (EC_GROUP_FEELINGS << 9) | 0x33 +#define EC_WORD_SURPRISE (EC_GROUP_FEELINGS << 9) | 0x34 +#define EC_WORD_FEAR (EC_GROUP_FEELINGS << 9) | 0x35 +#define EC_WORD_WANT (EC_GROUP_FEELINGS << 9) | 0x36 +#define EC_WORD_WAIT (EC_GROUP_FEELINGS << 9) | 0x37 +#define EC_WORD_SATISFIED (EC_GROUP_FEELINGS << 9) | 0x38 +#define EC_WORD_SEE (EC_GROUP_FEELINGS << 9) | 0x39 +#define EC_WORD_RARE (EC_GROUP_FEELINGS << 9) | 0x3a +#define EC_WORD_NEGATIVE (EC_GROUP_FEELINGS << 9) | 0x3b +#define EC_WORD_DONE (EC_GROUP_FEELINGS << 9) | 0x3c +#define EC_WORD_DANGER (EC_GROUP_FEELINGS << 9) | 0x3d +#define EC_WORD_DEFEATED (EC_GROUP_FEELINGS << 9) | 0x3e +#define EC_WORD_BEAT (EC_GROUP_FEELINGS << 9) | 0x3f +#define EC_WORD_GREAT (EC_GROUP_FEELINGS << 9) | 0x40 +#define EC_WORD_ROMANTIC (EC_GROUP_FEELINGS << 9) | 0x41 +#define EC_WORD_QUESTION (EC_GROUP_FEELINGS << 9) | 0x42 +#define EC_WORD_UNDERSTAND (EC_GROUP_FEELINGS << 9) | 0x43 +#define EC_WORD_UNDERSTANDS (EC_GROUP_FEELINGS << 9) | 0x44 + +// CONDITIONS +#define EC_WORD_HOT (EC_GROUP_CONDITIONS << 9) | 0x0 +#define EC_WORD_EXISTS (EC_GROUP_CONDITIONS << 9) | 0x1 +#define EC_WORD_EXCESS (EC_GROUP_CONDITIONS << 9) | 0x2 +#define EC_WORD_APPROVED (EC_GROUP_CONDITIONS << 9) | 0x3 +#define EC_WORD_HAS (EC_GROUP_CONDITIONS << 9) | 0x4 +#define EC_WORD_GOOD (EC_GROUP_CONDITIONS << 9) | 0x5 +#define EC_WORD_LESS (EC_GROUP_CONDITIONS << 9) | 0x6 +#define EC_WORD_MOMENTUM (EC_GROUP_CONDITIONS << 9) | 0x7 +#define EC_WORD_GOING (EC_GROUP_CONDITIONS << 9) | 0x8 +#define EC_WORD_WEIRD (EC_GROUP_CONDITIONS << 9) | 0x9 +#define EC_WORD_BUSY (EC_GROUP_CONDITIONS << 9) | 0xa +#define EC_WORD_TOGETHER (EC_GROUP_CONDITIONS << 9) | 0xb +#define EC_WORD_FULL (EC_GROUP_CONDITIONS << 9) | 0xc +#define EC_WORD_ABSENT (EC_GROUP_CONDITIONS << 9) | 0xd +#define EC_WORD_BEING (EC_GROUP_CONDITIONS << 9) | 0xe +#define EC_WORD_NEED (EC_GROUP_CONDITIONS << 9) | 0xf +#define EC_WORD_TASTY (EC_GROUP_CONDITIONS << 9) | 0x10 +#define EC_WORD_SKILLED (EC_GROUP_CONDITIONS << 9) | 0x11 +#define EC_WORD_NOISY (EC_GROUP_CONDITIONS << 9) | 0x12 +#define EC_WORD_BIG (EC_GROUP_CONDITIONS << 9) | 0x13 +#define EC_WORD_LATE (EC_GROUP_CONDITIONS << 9) | 0x14 +#define EC_WORD_CLOSE (EC_GROUP_CONDITIONS << 9) | 0x15 +#define EC_WORD_DOCILE (EC_GROUP_CONDITIONS << 9) | 0x16 +#define EC_WORD_AMUSING (EC_GROUP_CONDITIONS << 9) | 0x17 +#define EC_WORD_ENTERTAINING (EC_GROUP_CONDITIONS << 9) | 0x18 +#define EC_WORD_PERFECTION (EC_GROUP_CONDITIONS << 9) | 0x19 +#define EC_WORD_PRETTY (EC_GROUP_CONDITIONS << 9) | 0x1a +#define EC_WORD_HEALTHY (EC_GROUP_CONDITIONS << 9) | 0x1b +#define EC_WORD_EXCELLENT (EC_GROUP_CONDITIONS << 9) | 0x1c +#define EC_WORD_UPSIDE_DOWN (EC_GROUP_CONDITIONS << 9) | 0x1d +#define EC_WORD_COLD (EC_GROUP_CONDITIONS << 9) | 0x1e +#define EC_WORD_REFRESHING (EC_GROUP_CONDITIONS << 9) | 0x1f +#define EC_WORD_UNAVOIDABLE (EC_GROUP_CONDITIONS << 9) | 0x20 +#define EC_WORD_MUCH (EC_GROUP_CONDITIONS << 9) | 0x21 +#define EC_WORD_OVERWHELMING (EC_GROUP_CONDITIONS << 9) | 0x22 +#define EC_WORD_FABULOUS (EC_GROUP_CONDITIONS << 9) | 0x23 +#define EC_WORD_ELSE (EC_GROUP_CONDITIONS << 9) | 0x24 +#define EC_WORD_EXPENSIVE (EC_GROUP_CONDITIONS << 9) | 0x25 +#define EC_WORD_CORRECT (EC_GROUP_CONDITIONS << 9) | 0x26 +#define EC_WORD_IMPOSSIBLE (EC_GROUP_CONDITIONS << 9) | 0x27 +#define EC_WORD_SMALL (EC_GROUP_CONDITIONS << 9) | 0x28 +#define EC_WORD_DIFFERENT (EC_GROUP_CONDITIONS << 9) | 0x29 +#define EC_WORD_TIRED (EC_GROUP_CONDITIONS << 9) | 0x2a +#define EC_WORD_SKILL (EC_GROUP_CONDITIONS << 9) | 0x2b +#define EC_WORD_TOP (EC_GROUP_CONDITIONS << 9) | 0x2c +#define EC_WORD_NON_STOP (EC_GROUP_CONDITIONS << 9) | 0x2d +#define EC_WORD_PREPOSTEROUS (EC_GROUP_CONDITIONS << 9) | 0x2e +#define EC_WORD_NONE (EC_GROUP_CONDITIONS << 9) | 0x2f +#define EC_WORD_NOTHING (EC_GROUP_CONDITIONS << 9) | 0x30 +#define EC_WORD_NATURAL (EC_GROUP_CONDITIONS << 9) | 0x31 +#define EC_WORD_BECOMES (EC_GROUP_CONDITIONS << 9) | 0x32 +#define EC_WORD_LUKEWARM (EC_GROUP_CONDITIONS << 9) | 0x33 +#define EC_WORD_FAST (EC_GROUP_CONDITIONS << 9) | 0x34 +#define EC_WORD_LOW (EC_GROUP_CONDITIONS << 9) | 0x35 +#define EC_WORD_AWFUL (EC_GROUP_CONDITIONS << 9) | 0x36 +#define EC_WORD_ALONE (EC_GROUP_CONDITIONS << 9) | 0x37 +#define EC_WORD_BORED (EC_GROUP_CONDITIONS << 9) | 0x38 +#define EC_WORD_SECRET (EC_GROUP_CONDITIONS << 9) | 0x39 +#define EC_WORD_MYSTERY (EC_GROUP_CONDITIONS << 9) | 0x3a +#define EC_WORD_LACKS (EC_GROUP_CONDITIONS << 9) | 0x3b +#define EC_WORD_BEST (EC_GROUP_CONDITIONS << 9) | 0x3c +#define EC_WORD_LOUSY (EC_GROUP_CONDITIONS << 9) | 0x3d +#define EC_WORD_MISTAKE (EC_GROUP_CONDITIONS << 9) | 0x3e +#define EC_WORD_KIND (EC_GROUP_CONDITIONS << 9) | 0x3f +#define EC_WORD_WELL (EC_GROUP_CONDITIONS << 9) | 0x40 +#define EC_WORD_WEAKENED (EC_GROUP_CONDITIONS << 9) | 0x41 +#define EC_WORD_SIMPLE (EC_GROUP_CONDITIONS << 9) | 0x42 +#define EC_WORD_SEEMS (EC_GROUP_CONDITIONS << 9) | 0x43 +#define EC_WORD_BADLY (EC_GROUP_CONDITIONS << 9) | 0x44 + +// ACTIONS +#define EC_WORD_MEETS (EC_GROUP_ACTIONS << 9) | 0x0 +#define EC_WORD_CONCEDE (EC_GROUP_ACTIONS << 9) | 0x1 +#define EC_WORD_GIVE (EC_GROUP_ACTIONS << 9) | 0x2 +#define EC_WORD_GIVES (EC_GROUP_ACTIONS << 9) | 0x3 +#define EC_WORD_PLAYED (EC_GROUP_ACTIONS << 9) | 0x4 +#define EC_WORD_PLAYS (EC_GROUP_ACTIONS << 9) | 0x5 +#define EC_WORD_COLLECT (EC_GROUP_ACTIONS << 9) | 0x6 +#define EC_WORD_WALKING (EC_GROUP_ACTIONS << 9) | 0x7 +#define EC_WORD_WALKS (EC_GROUP_ACTIONS << 9) | 0x8 +#define EC_WORD_SAYS (EC_GROUP_ACTIONS << 9) | 0x9 +#define EC_WORD_WENT (EC_GROUP_ACTIONS << 9) | 0xa +#define EC_WORD_SAID (EC_GROUP_ACTIONS << 9) | 0xb +#define EC_WORD_WAKE_UP (EC_GROUP_ACTIONS << 9) | 0xc +#define EC_WORD_WAKES_UP (EC_GROUP_ACTIONS << 9) | 0xd +#define EC_WORD_ANGERS (EC_GROUP_ACTIONS << 9) | 0xe +#define EC_WORD_TEACH (EC_GROUP_ACTIONS << 9) | 0xf +#define EC_WORD_TEACHES (EC_GROUP_ACTIONS << 9) | 0x10 +#define EC_WORD_PLEASE (EC_GROUP_ACTIONS << 9) | 0x11 +#define EC_WORD_LEARN (EC_GROUP_ACTIONS << 9) | 0x12 +#define EC_WORD_CHANGE (EC_GROUP_ACTIONS << 9) | 0x13 +#define EC_WORD_STORY (EC_GROUP_ACTIONS << 9) | 0x14 +#define EC_WORD_TRUST (EC_GROUP_ACTIONS << 9) | 0x15 +#define EC_WORD_LAVISH (EC_GROUP_ACTIONS << 9) | 0x16 +#define EC_WORD_LISTENS (EC_GROUP_ACTIONS << 9) | 0x17 +#define EC_WORD_HEARING (EC_GROUP_ACTIONS << 9) | 0x18 +#define EC_WORD_TRAINS (EC_GROUP_ACTIONS << 9) | 0x19 +#define EC_WORD_CHOOSE (EC_GROUP_ACTIONS << 9) | 0x1a +#define EC_WORD_COME (EC_GROUP_ACTIONS << 9) | 0x1b +#define EC_WORD_CAME (EC_GROUP_ACTIONS << 9) | 0x1c +#define EC_WORD_SEARCH (EC_GROUP_ACTIONS << 9) | 0x1d +#define EC_WORD_MAKE (EC_GROUP_ACTIONS << 9) | 0x1e +#define EC_WORD_CAUSE (EC_GROUP_ACTIONS << 9) | 0x1f +#define EC_WORD_KNOW (EC_GROUP_ACTIONS << 9) | 0x20 +#define EC_WORD_KNOWS (EC_GROUP_ACTIONS << 9) | 0x21 +#define EC_WORD_REFUSE (EC_GROUP_ACTIONS << 9) | 0x22 +#define EC_WORD_STORES (EC_GROUP_ACTIONS << 9) | 0x23 +#define EC_WORD_BRAG (EC_GROUP_ACTIONS << 9) | 0x24 +#define EC_WORD_IGNORANT (EC_GROUP_ACTIONS << 9) | 0x25 +#define EC_WORD_THINKS (EC_GROUP_ACTIONS << 9) | 0x26 +#define EC_WORD_BELIEVE (EC_GROUP_ACTIONS << 9) | 0x27 +#define EC_WORD_SLIDE (EC_GROUP_ACTIONS << 9) | 0x28 +#define EC_WORD_EATS (EC_GROUP_ACTIONS << 9) | 0x29 +#define EC_WORD_USE (EC_GROUP_ACTIONS << 9) | 0x2a +#define EC_WORD_USES (EC_GROUP_ACTIONS << 9) | 0x2b +#define EC_WORD_USING (EC_GROUP_ACTIONS << 9) | 0x2c +#define EC_WORD_COULDN_T (EC_GROUP_ACTIONS << 9) | 0x2d +#define EC_WORD_CAPABLE (EC_GROUP_ACTIONS << 9) | 0x2e +#define EC_WORD_DISAPPEAR (EC_GROUP_ACTIONS << 9) | 0x2f +#define EC_WORD_APPEAR (EC_GROUP_ACTIONS << 9) | 0x30 +#define EC_WORD_THROW (EC_GROUP_ACTIONS << 9) | 0x31 +#define EC_WORD_WORRY (EC_GROUP_ACTIONS << 9) | 0x32 +#define EC_WORD_SLEPT (EC_GROUP_ACTIONS << 9) | 0x33 +#define EC_WORD_SLEEP (EC_GROUP_ACTIONS << 9) | 0x34 +#define EC_WORD_RELEASE (EC_GROUP_ACTIONS << 9) | 0x35 +#define EC_WORD_DRINKS (EC_GROUP_ACTIONS << 9) | 0x36 +#define EC_WORD_RUNS (EC_GROUP_ACTIONS << 9) | 0x37 +#define EC_WORD_RUN (EC_GROUP_ACTIONS << 9) | 0x38 +#define EC_WORD_WORKS (EC_GROUP_ACTIONS << 9) | 0x39 +#define EC_WORD_WORKING (EC_GROUP_ACTIONS << 9) | 0x3a +#define EC_WORD_TALKING (EC_GROUP_ACTIONS << 9) | 0x3b +#define EC_WORD_TALK (EC_GROUP_ACTIONS << 9) | 0x3c +#define EC_WORD_SINK (EC_GROUP_ACTIONS << 9) | 0x3d +#define EC_WORD_SMACK (EC_GROUP_ACTIONS << 9) | 0x3e +#define EC_WORD_PRETEND (EC_GROUP_ACTIONS << 9) | 0x3f +#define EC_WORD_PRAISE (EC_GROUP_ACTIONS << 9) | 0x40 +#define EC_WORD_OVERDO (EC_GROUP_ACTIONS << 9) | 0x41 +#define EC_WORD_SHOW (EC_GROUP_ACTIONS << 9) | 0x42 +#define EC_WORD_LOOKS (EC_GROUP_ACTIONS << 9) | 0x43 +#define EC_WORD_SEES (EC_GROUP_ACTIONS << 9) | 0x44 +#define EC_WORD_SEEK (EC_GROUP_ACTIONS << 9) | 0x45 +#define EC_WORD_OWN (EC_GROUP_ACTIONS << 9) | 0x46 +#define EC_WORD_TAKE (EC_GROUP_ACTIONS << 9) | 0x47 +#define EC_WORD_ALLOW (EC_GROUP_ACTIONS << 9) | 0x48 +#define EC_WORD_FORGET (EC_GROUP_ACTIONS << 9) | 0x49 +#define EC_WORD_FORGETS (EC_GROUP_ACTIONS << 9) | 0x4a +#define EC_WORD_APPEARS (EC_GROUP_ACTIONS << 9) | 0x4b +#define EC_WORD_FAINT (EC_GROUP_ACTIONS << 9) | 0x4c +#define EC_WORD_FAINTED (EC_GROUP_ACTIONS << 9) | 0x4d + +// LIFESTYLE +#define EC_WORD_CHORES (EC_GROUP_LIFESTYLE << 9) | 0x0 +#define EC_WORD_HOME (EC_GROUP_LIFESTYLE << 9) | 0x1 +#define EC_WORD_MONEY (EC_GROUP_LIFESTYLE << 9) | 0x2 +#define EC_WORD_ALLOWANCE (EC_GROUP_LIFESTYLE << 9) | 0x3 +#define EC_WORD_BATH (EC_GROUP_LIFESTYLE << 9) | 0x4 +#define EC_WORD_CONVERSATION (EC_GROUP_LIFESTYLE << 9) | 0x5 +#define EC_WORD_SCHOOL (EC_GROUP_LIFESTYLE << 9) | 0x6 +#define EC_WORD_COMMEMORATE (EC_GROUP_LIFESTYLE << 9) | 0x7 +#define EC_WORD_HABIT (EC_GROUP_LIFESTYLE << 9) | 0x8 +#define EC_WORD_GROUP (EC_GROUP_LIFESTYLE << 9) | 0x9 +#define EC_WORD_WORD (EC_GROUP_LIFESTYLE << 9) | 0xa +#define EC_WORD_STORE (EC_GROUP_LIFESTYLE << 9) | 0xb +#define EC_WORD_SERVICE (EC_GROUP_LIFESTYLE << 9) | 0xc +#define EC_WORD_WORK (EC_GROUP_LIFESTYLE << 9) | 0xd +#define EC_WORD_SYSTEM (EC_GROUP_LIFESTYLE << 9) | 0xe +#define EC_WORD_TRAIN (EC_GROUP_LIFESTYLE << 9) | 0xf +#define EC_WORD_CLASS (EC_GROUP_LIFESTYLE << 9) | 0x10 +#define EC_WORD_LESSONS (EC_GROUP_LIFESTYLE << 9) | 0x11 +#define EC_WORD_INFORMATION (EC_GROUP_LIFESTYLE << 9) | 0x12 +#define EC_WORD_LIVING (EC_GROUP_LIFESTYLE << 9) | 0x13 +#define EC_WORD_TEACHER (EC_GROUP_LIFESTYLE << 9) | 0x14 +#define EC_WORD_TOURNAMENT (EC_GROUP_LIFESTYLE << 9) | 0x15 +#define EC_WORD_LETTER (EC_GROUP_LIFESTYLE << 9) | 0x16 +#define EC_WORD_EVENT (EC_GROUP_LIFESTYLE << 9) | 0x17 +#define EC_WORD_DIGITAL (EC_GROUP_LIFESTYLE << 9) | 0x18 +#define EC_WORD_TEST (EC_GROUP_LIFESTYLE << 9) | 0x19 +#define EC_WORD_DEPT_STORE (EC_GROUP_LIFESTYLE << 9) | 0x1a +#define EC_WORD_TELEVISION (EC_GROUP_LIFESTYLE << 9) | 0x1b +#define EC_WORD_PHONE (EC_GROUP_LIFESTYLE << 9) | 0x1c +#define EC_WORD_ITEM (EC_GROUP_LIFESTYLE << 9) | 0x1d +#define EC_WORD_NAME (EC_GROUP_LIFESTYLE << 9) | 0x1e +#define EC_WORD_NEWS (EC_GROUP_LIFESTYLE << 9) | 0x1f +#define EC_WORD_POPULAR (EC_GROUP_LIFESTYLE << 9) | 0x20 +#define EC_WORD_PARTY (EC_GROUP_LIFESTYLE << 9) | 0x21 +#define EC_WORD_STUDY (EC_GROUP_LIFESTYLE << 9) | 0x22 +#define EC_WORD_MACHINE (EC_GROUP_LIFESTYLE << 9) | 0x23 +#define EC_WORD_MAIL (EC_GROUP_LIFESTYLE << 9) | 0x24 +#define EC_WORD_MESSAGE (EC_GROUP_LIFESTYLE << 9) | 0x25 +#define EC_WORD_PROMISE (EC_GROUP_LIFESTYLE << 9) | 0x26 +#define EC_WORD_DREAM (EC_GROUP_LIFESTYLE << 9) | 0x27 +#define EC_WORD_KINDERGARTEN (EC_GROUP_LIFESTYLE << 9) | 0x28 +#define EC_WORD_LIFE (EC_GROUP_LIFESTYLE << 9) | 0x29 +#define EC_WORD_RADIO (EC_GROUP_LIFESTYLE << 9) | 0x2a +#define EC_WORD_RENTAL (EC_GROUP_LIFESTYLE << 9) | 0x2b +#define EC_WORD_WORLD (EC_GROUP_LIFESTYLE << 9) | 0x2c + +// HOBBIES +#define EC_WORD_IDOL (EC_GROUP_HOBBIES << 9) | 0x0 +#define EC_WORD_ANIME (EC_GROUP_HOBBIES << 9) | 0x1 +#define EC_WORD_SONG (EC_GROUP_HOBBIES << 9) | 0x2 +#define EC_WORD_MOVIE (EC_GROUP_HOBBIES << 9) | 0x3 +#define EC_WORD_SWEETS (EC_GROUP_HOBBIES << 9) | 0x4 +#define EC_WORD_CHAT (EC_GROUP_HOBBIES << 9) | 0x5 +#define EC_WORD_CHILD_S_PLAY (EC_GROUP_HOBBIES << 9) | 0x6 +#define EC_WORD_TOYS (EC_GROUP_HOBBIES << 9) | 0x7 +#define EC_WORD_MUSIC (EC_GROUP_HOBBIES << 9) | 0x8 +#define EC_WORD_CARDS (EC_GROUP_HOBBIES << 9) | 0x9 +#define EC_WORD_SHOPPING (EC_GROUP_HOBBIES << 9) | 0xa +#define EC_WORD_CAMERA (EC_GROUP_HOBBIES << 9) | 0xb +#define EC_WORD_VIEWING (EC_GROUP_HOBBIES << 9) | 0xc +#define EC_WORD_SPECTATOR (EC_GROUP_HOBBIES << 9) | 0xd +#define EC_WORD_GOURMET (EC_GROUP_HOBBIES << 9) | 0xe +#define EC_WORD_GAME (EC_GROUP_HOBBIES << 9) | 0xf +#define EC_WORD_RPG (EC_GROUP_HOBBIES << 9) | 0x10 +#define EC_WORD_COLLECTION (EC_GROUP_HOBBIES << 9) | 0x11 +#define EC_WORD_COMPLETE (EC_GROUP_HOBBIES << 9) | 0x12 +#define EC_WORD_MAGAZINE (EC_GROUP_HOBBIES << 9) | 0x13 +#define EC_WORD_WALK (EC_GROUP_HOBBIES << 9) | 0x14 +#define EC_WORD_BIKE (EC_GROUP_HOBBIES << 9) | 0x15 +#define EC_WORD_HOBBY (EC_GROUP_HOBBIES << 9) | 0x16 +#define EC_WORD_SPORTS (EC_GROUP_HOBBIES << 9) | 0x17 +#define EC_WORD_SOFTWARE (EC_GROUP_HOBBIES << 9) | 0x18 +#define EC_WORD_SONGS (EC_GROUP_HOBBIES << 9) | 0x19 +#define EC_WORD_DIET (EC_GROUP_HOBBIES << 9) | 0x1a +#define EC_WORD_TREASURE (EC_GROUP_HOBBIES << 9) | 0x1b +#define EC_WORD_TRAVEL (EC_GROUP_HOBBIES << 9) | 0x1c +#define EC_WORD_DANCE (EC_GROUP_HOBBIES << 9) | 0x1d +#define EC_WORD_CHANNEL (EC_GROUP_HOBBIES << 9) | 0x1e +#define EC_WORD_MAKING (EC_GROUP_HOBBIES << 9) | 0x1f +#define EC_WORD_FISHING (EC_GROUP_HOBBIES << 9) | 0x20 +#define EC_WORD_DATE (EC_GROUP_HOBBIES << 9) | 0x21 +#define EC_WORD_DESIGN (EC_GROUP_HOBBIES << 9) | 0x22 +#define EC_WORD_LOCOMOTIVE (EC_GROUP_HOBBIES << 9) | 0x23 +#define EC_WORD_PLUSH_DOLL (EC_GROUP_HOBBIES << 9) | 0x24 +#define EC_WORD_PC (EC_GROUP_HOBBIES << 9) | 0x25 +#define EC_WORD_FLOWERS (EC_GROUP_HOBBIES << 9) | 0x26 +#define EC_WORD_HERO (EC_GROUP_HOBBIES << 9) | 0x27 +#define EC_WORD_NAP (EC_GROUP_HOBBIES << 9) | 0x28 +#define EC_WORD_HEROINE (EC_GROUP_HOBBIES << 9) | 0x29 +#define EC_WORD_FASHION (EC_GROUP_HOBBIES << 9) | 0x2a +#define EC_WORD_ADVENTURE (EC_GROUP_HOBBIES << 9) | 0x2b +#define EC_WORD_BOARD (EC_GROUP_HOBBIES << 9) | 0x2c +#define EC_WORD_BALL (EC_GROUP_HOBBIES << 9) | 0x2d +#define EC_WORD_BOOK (EC_GROUP_HOBBIES << 9) | 0x2e +#define EC_WORD_FESTIVAL (EC_GROUP_HOBBIES << 9) | 0x2f +#define EC_WORD_COMICS (EC_GROUP_HOBBIES << 9) | 0x30 +#define EC_WORD_HOLIDAY (EC_GROUP_HOBBIES << 9) | 0x31 +#define EC_WORD_PLANS (EC_GROUP_HOBBIES << 9) | 0x32 +#define EC_WORD_TRENDY (EC_GROUP_HOBBIES << 9) | 0x33 +#define EC_WORD_VACATION (EC_GROUP_HOBBIES << 9) | 0x34 +#define EC_WORD_LOOK (EC_GROUP_HOBBIES << 9) | 0x35 + +// TIME +#define EC_WORD_FALL (EC_GROUP_TIME << 9) | 0x0 +#define EC_WORD_MORNING (EC_GROUP_TIME << 9) | 0x1 +#define EC_WORD_TOMORROW (EC_GROUP_TIME << 9) | 0x2 +#define EC_WORD_LAST (EC_GROUP_TIME << 9) | 0x3 +#define EC_WORD_DAY (EC_GROUP_TIME << 9) | 0x4 +#define EC_WORD_SOMETIME (EC_GROUP_TIME << 9) | 0x5 +#define EC_WORD_ALWAYS (EC_GROUP_TIME << 9) | 0x6 +#define EC_WORD_CURRENT (EC_GROUP_TIME << 9) | 0x7 +#define EC_WORD_FOREVER (EC_GROUP_TIME << 9) | 0x8 +#define EC_WORD_DAYS (EC_GROUP_TIME << 9) | 0x9 +#define EC_WORD_END (EC_GROUP_TIME << 9) | 0xa +#define EC_WORD_TUESDAY (EC_GROUP_TIME << 9) | 0xb +#define EC_WORD_YESTERDAY (EC_GROUP_TIME << 9) | 0xc +#define EC_WORD_TODAY (EC_GROUP_TIME << 9) | 0xd +#define EC_WORD_FRIDAY (EC_GROUP_TIME << 9) | 0xe +#define EC_WORD_MONDAY (EC_GROUP_TIME << 9) | 0xf +#define EC_WORD_LATER (EC_GROUP_TIME << 9) | 0x10 +#define EC_WORD_EARLIER (EC_GROUP_TIME << 9) | 0x11 +#define EC_WORD_ANOTHER (EC_GROUP_TIME << 9) | 0x12 +#define EC_WORD_TIME (EC_GROUP_TIME << 9) | 0x13 +#define EC_WORD_FINISH (EC_GROUP_TIME << 9) | 0x14 +#define EC_WORD_WEDNESDAY (EC_GROUP_TIME << 9) | 0x15 +#define EC_WORD_SOON (EC_GROUP_TIME << 9) | 0x16 +#define EC_WORD_START (EC_GROUP_TIME << 9) | 0x17 +#define EC_WORD_MONTH (EC_GROUP_TIME << 9) | 0x18 +#define EC_WORD_STOP (EC_GROUP_TIME << 9) | 0x19 +#define EC_WORD_NOW (EC_GROUP_TIME << 9) | 0x1a +#define EC_WORD_FINAL (EC_GROUP_TIME << 9) | 0x1b +#define EC_WORD_NEXT (EC_GROUP_TIME << 9) | 0x1c +#define EC_WORD_AGE (EC_GROUP_TIME << 9) | 0x1d +#define EC_WORD_SATURDAY (EC_GROUP_TIME << 9) | 0x1e +#define EC_WORD_SUMMER (EC_GROUP_TIME << 9) | 0x1f +#define EC_WORD_SUNDAY (EC_GROUP_TIME << 9) | 0x20 +#define EC_WORD_BEGINNING (EC_GROUP_TIME << 9) | 0x21 +#define EC_WORD_SPRING (EC_GROUP_TIME << 9) | 0x22 +#define EC_WORD_DAYTIME (EC_GROUP_TIME << 9) | 0x23 +#define EC_WORD_WINTER (EC_GROUP_TIME << 9) | 0x24 +#define EC_WORD_DAILY (EC_GROUP_TIME << 9) | 0x25 +#define EC_WORD_OLDEN (EC_GROUP_TIME << 9) | 0x26 +#define EC_WORD_ALMOST (EC_GROUP_TIME << 9) | 0x27 +#define EC_WORD_NEARLY (EC_GROUP_TIME << 9) | 0x28 +#define EC_WORD_THURSDAY (EC_GROUP_TIME << 9) | 0x29 +#define EC_WORD_NIGHTTIME (EC_GROUP_TIME << 9) | 0x2a +#define EC_WORD_NIGHT (EC_GROUP_TIME << 9) | 0x2b +#define EC_WORD_WEEK (EC_GROUP_TIME << 9) | 0x2c + +// MISC +#define EC_WORD_HIGHS (EC_GROUP_MISC << 9) | 0x0 +#define EC_WORD_LOWS (EC_GROUP_MISC << 9) | 0x1 +#define EC_WORD_UM (EC_GROUP_MISC << 9) | 0x2 +#define EC_WORD_REAR (EC_GROUP_MISC << 9) | 0x3 +#define EC_WORD_THINGS (EC_GROUP_MISC << 9) | 0x4 +#define EC_WORD_THING (EC_GROUP_MISC << 9) | 0x5 +#define EC_WORD_BELOW (EC_GROUP_MISC << 9) | 0x6 +#define EC_WORD_ABOVE (EC_GROUP_MISC << 9) | 0x7 +#define EC_WORD_BACK (EC_GROUP_MISC << 9) | 0x8 +#define EC_WORD_HIGH (EC_GROUP_MISC << 9) | 0x9 +#define EC_WORD_HERE (EC_GROUP_MISC << 9) | 0xa +#define EC_WORD_INSIDE (EC_GROUP_MISC << 9) | 0xb +#define EC_WORD_OUTSIDE (EC_GROUP_MISC << 9) | 0xc +#define EC_WORD_BESIDE (EC_GROUP_MISC << 9) | 0xd +#define EC_WORD_THIS_IS_IT_EXCL (EC_GROUP_MISC << 9) | 0xe +#define EC_WORD_THIS (EC_GROUP_MISC << 9) | 0xf +#define EC_WORD_EVERY (EC_GROUP_MISC << 9) | 0x10 +#define EC_WORD_THESE (EC_GROUP_MISC << 9) | 0x11 +#define EC_WORD_THESE_WERE (EC_GROUP_MISC << 9) | 0x12 +#define EC_WORD_DOWN (EC_GROUP_MISC << 9) | 0x13 +#define EC_WORD_THAT (EC_GROUP_MISC << 9) | 0x14 +#define EC_WORD_THOSE_ARE (EC_GROUP_MISC << 9) | 0x15 +#define EC_WORD_THOSE_WERE (EC_GROUP_MISC << 9) | 0x16 +#define EC_WORD_THAT_S_IT_EXCL (EC_GROUP_MISC << 9) | 0x17 +#define EC_WORD_AM (EC_GROUP_MISC << 9) | 0x18 +#define EC_WORD_THAT_WAS (EC_GROUP_MISC << 9) | 0x19 +#define EC_WORD_FRONT (EC_GROUP_MISC << 9) | 0x1a +#define EC_WORD_UP (EC_GROUP_MISC << 9) | 0x1b +#define EC_WORD_CHOICE (EC_GROUP_MISC << 9) | 0x1c +#define EC_WORD_FAR (EC_GROUP_MISC << 9) | 0x1d +#define EC_WORD_AWAY (EC_GROUP_MISC << 9) | 0x1e +#define EC_WORD_NEAR (EC_GROUP_MISC << 9) | 0x1f +#define EC_WORD_WHERE (EC_GROUP_MISC << 9) | 0x20 +#define EC_WORD_WHEN (EC_GROUP_MISC << 9) | 0x21 +#define EC_WORD_WHAT (EC_GROUP_MISC << 9) | 0x22 +#define EC_WORD_DEEP (EC_GROUP_MISC << 9) | 0x23 +#define EC_WORD_SHALLOW (EC_GROUP_MISC << 9) | 0x24 +#define EC_WORD_WHY (EC_GROUP_MISC << 9) | 0x25 +#define EC_WORD_CONFUSED (EC_GROUP_MISC << 9) | 0x26 +#define EC_WORD_OPPOSITE (EC_GROUP_MISC << 9) | 0x27 +#define EC_WORD_LEFT (EC_GROUP_MISC << 9) | 0x28 +#define EC_WORD_RIGHT (EC_GROUP_MISC << 9) | 0x29 + +// ADJECTIVES +#define EC_WORD_WANDERING (EC_GROUP_ADJECTIVES << 9) | 0x0 +#define EC_WORD_RICKETY (EC_GROUP_ADJECTIVES << 9) | 0x1 +#define EC_WORD_ROCK_SOLID (EC_GROUP_ADJECTIVES << 9) | 0x2 +#define EC_WORD_HUNGRY (EC_GROUP_ADJECTIVES << 9) | 0x3 +#define EC_WORD_TIGHT (EC_GROUP_ADJECTIVES << 9) | 0x4 +#define EC_WORD_TICKLISH (EC_GROUP_ADJECTIVES << 9) | 0x5 +#define EC_WORD_TWIRLING (EC_GROUP_ADJECTIVES << 9) | 0x6 +#define EC_WORD_SPIRALING (EC_GROUP_ADJECTIVES << 9) | 0x7 +#define EC_WORD_THIRSTY (EC_GROUP_ADJECTIVES << 9) | 0x8 +#define EC_WORD_LOLLING (EC_GROUP_ADJECTIVES << 9) | 0x9 +#define EC_WORD_SILKY (EC_GROUP_ADJECTIVES << 9) | 0xa +#define EC_WORD_SADLY (EC_GROUP_ADJECTIVES << 9) | 0xb +#define EC_WORD_HOPELESS (EC_GROUP_ADJECTIVES << 9) | 0xc +#define EC_WORD_USELESS (EC_GROUP_ADJECTIVES << 9) | 0xd +#define EC_WORD_DROOLING (EC_GROUP_ADJECTIVES << 9) | 0xe +#define EC_WORD_EXCITING (EC_GROUP_ADJECTIVES << 9) | 0xf +#define EC_WORD_THICK (EC_GROUP_ADJECTIVES << 9) | 0x10 +#define EC_WORD_SMOOTH (EC_GROUP_ADJECTIVES << 9) | 0x11 +#define EC_WORD_SLIMY (EC_GROUP_ADJECTIVES << 9) | 0x12 +#define EC_WORD_THIN (EC_GROUP_ADJECTIVES << 9) | 0x13 +#define EC_WORD_BREAK (EC_GROUP_ADJECTIVES << 9) | 0x14 +#define EC_WORD_VORACIOUS (EC_GROUP_ADJECTIVES << 9) | 0x15 +#define EC_WORD_SCATTER (EC_GROUP_ADJECTIVES << 9) | 0x16 +#define EC_WORD_AWESOME (EC_GROUP_ADJECTIVES << 9) | 0x17 +#define EC_WORD_WIMPY (EC_GROUP_ADJECTIVES << 9) | 0x18 +#define EC_WORD_WOBBLY (EC_GROUP_ADJECTIVES << 9) | 0x19 +#define EC_WORD_SHAKY (EC_GROUP_ADJECTIVES << 9) | 0x1a +#define EC_WORD_RIPPED (EC_GROUP_ADJECTIVES << 9) | 0x1b +#define EC_WORD_SHREDDED (EC_GROUP_ADJECTIVES << 9) | 0x1c +#define EC_WORD_INCREASING (EC_GROUP_ADJECTIVES << 9) | 0x1d +#define EC_WORD_YET (EC_GROUP_ADJECTIVES << 9) | 0x1e +#define EC_WORD_DESTROYED (EC_GROUP_ADJECTIVES << 9) | 0x1f +#define EC_WORD_FIERY (EC_GROUP_ADJECTIVES << 9) | 0x20 +#define EC_WORD_LOVEY_DOVEY (EC_GROUP_ADJECTIVES << 9) | 0x21 +#define EC_WORD_HAPPILY (EC_GROUP_ADJECTIVES << 9) | 0x22 +#define EC_WORD_ANTICIPATION (EC_GROUP_ADJECTIVES << 9) | 0x23 + +// EVENTS +#define EC_WORD_APPEAL (EC_GROUP_EVENTS << 9) | 0x0 +#define EC_WORD_EVENTS (EC_GROUP_EVENTS << 9) | 0x1 +#define EC_WORD_STAY_AT_HOME (EC_GROUP_EVENTS << 9) | 0x2 +#define EC_WORD_BERRY (EC_GROUP_EVENTS << 9) | 0x3 +#define EC_WORD_CONTEST (EC_GROUP_EVENTS << 9) | 0x4 +#define EC_WORD_MC (EC_GROUP_EVENTS << 9) | 0x5 +#define EC_WORD_JUDGE (EC_GROUP_EVENTS << 9) | 0x6 +#define EC_WORD_SUPER (EC_GROUP_EVENTS << 9) | 0x7 +#define EC_WORD_STAGE (EC_GROUP_EVENTS << 9) | 0x8 +#define EC_WORD_HALL_OF_FAME (EC_GROUP_EVENTS << 9) | 0x9 +#define EC_WORD_EVOLUTION (EC_GROUP_EVENTS << 9) | 0xa +#define EC_WORD_HYPER (EC_GROUP_EVENTS << 9) | 0xb +#define EC_WORD_BATTLE_TOWER (EC_GROUP_EVENTS << 9) | 0xc +#define EC_WORD_LEADERS (EC_GROUP_EVENTS << 9) | 0xd +#define EC_WORD_BATTLE_ROOM (EC_GROUP_EVENTS << 9) | 0xe +#define EC_WORD_HIDDEN (EC_GROUP_EVENTS << 9) | 0xf +#define EC_WORD_SECRET_BASE (EC_GROUP_EVENTS << 9) | 0x10 +#define EC_WORD_BLEND (EC_GROUP_EVENTS << 9) | 0x11 +#define EC_WORD_POKEBLOCK (EC_GROUP_EVENTS << 9) | 0x12 +#define EC_WORD_MASTER (EC_GROUP_EVENTS << 9) | 0x13 +#define EC_WORD_RANK (EC_GROUP_EVENTS << 9) | 0x14 +#define EC_WORD_RIBBON (EC_GROUP_EVENTS << 9) | 0x15 +#define EC_WORD_CRUSH (EC_GROUP_EVENTS << 9) | 0x16 +#define EC_WORD_DIRECT (EC_GROUP_EVENTS << 9) | 0x17 +#define EC_WORD_TOWER (EC_GROUP_EVENTS << 9) | 0x18 +#define EC_WORD_UNION (EC_GROUP_EVENTS << 9) | 0x19 +#define EC_WORD_ROOM (EC_GROUP_EVENTS << 9) | 0x1a +#define EC_WORD_WIRELESS (EC_GROUP_EVENTS << 9) | 0x1b +#define EC_WORD_FRONTIER (EC_GROUP_EVENTS << 9) | 0x1c + +// TRENDY_SAYING +#define EC_WORD_KTHX_BYE (EC_GROUP_TRENDY_SAYING << 9) | 0x0 +#define EC_WORD_YES_SIR_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x1 +#define EC_WORD_AVANT_GARDE (EC_GROUP_TRENDY_SAYING << 9) | 0x2 +#define EC_WORD_COUPLE (EC_GROUP_TRENDY_SAYING << 9) | 0x3 +#define EC_WORD_MUCH_OBLIGED (EC_GROUP_TRENDY_SAYING << 9) | 0x4 +#define EC_WORD_YEEHAW_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x5 +#define EC_WORD_MEGA (EC_GROUP_TRENDY_SAYING << 9) | 0x6 +#define EC_WORD_1_HIT_KO_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x7 +#define EC_WORD_DESTINY (EC_GROUP_TRENDY_SAYING << 9) | 0x8 +#define EC_WORD_CANCEL (EC_GROUP_TRENDY_SAYING << 9) | 0x9 +#define EC_WORD_NEW (EC_GROUP_TRENDY_SAYING << 9) | 0xa +#define EC_WORD_FLATTEN (EC_GROUP_TRENDY_SAYING << 9) | 0xb +#define EC_WORD_KIDDING (EC_GROUP_TRENDY_SAYING << 9) | 0xc +#define EC_WORD_LOSER (EC_GROUP_TRENDY_SAYING << 9) | 0xd +#define EC_WORD_LOSING (EC_GROUP_TRENDY_SAYING << 9) | 0xe +#define EC_WORD_HAPPENING (EC_GROUP_TRENDY_SAYING << 9) | 0xf +#define EC_WORD_HIP_AND (EC_GROUP_TRENDY_SAYING << 9) | 0x10 +#define EC_WORD_SHAKE (EC_GROUP_TRENDY_SAYING << 9) | 0x11 +#define EC_WORD_SHADY (EC_GROUP_TRENDY_SAYING << 9) | 0x12 +#define EC_WORD_UPBEAT (EC_GROUP_TRENDY_SAYING << 9) | 0x13 +#define EC_WORD_MODERN (EC_GROUP_TRENDY_SAYING << 9) | 0x14 +#define EC_WORD_SMELL_YA (EC_GROUP_TRENDY_SAYING << 9) | 0x15 +#define EC_WORD_BANG (EC_GROUP_TRENDY_SAYING << 9) | 0x16 +#define EC_WORD_KNOCKOUT (EC_GROUP_TRENDY_SAYING << 9) | 0x17 +#define EC_WORD_HASSLE (EC_GROUP_TRENDY_SAYING << 9) | 0x18 +#define EC_WORD_WINNER (EC_GROUP_TRENDY_SAYING << 9) | 0x19 +#define EC_WORD_FEVER (EC_GROUP_TRENDY_SAYING << 9) | 0x1a +#define EC_WORD_WANNABE (EC_GROUP_TRENDY_SAYING << 9) | 0x1b +#define EC_WORD_BABY (EC_GROUP_TRENDY_SAYING << 9) | 0x1c +#define EC_WORD_HEART (EC_GROUP_TRENDY_SAYING << 9) | 0x1d +#define EC_WORD_OLD (EC_GROUP_TRENDY_SAYING << 9) | 0x1e +#define EC_WORD_YOUNG (EC_GROUP_TRENDY_SAYING << 9) | 0x1f +#define EC_WORD_UGLY (EC_GROUP_TRENDY_SAYING << 9) | 0x20 + +#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 9) | SPECIES_##mon) +#define EC_POKEMON2(mon) ((EC_GROUP_POKEMON_2 << 9) | SPECIES_##mon) +#define EC_MOVE(move) ((EC_GROUP_MOVE_1 << 9) | MOVE_##move) +#define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << 9) | MOVE_##move) + +#define EC_GROUP(word) ((word) >> 9) +#define EC_INDEX(word) ((word) & 0x1FF) + +#endif // GUARD_CONSTANTS_EASY_CHAT_H diff --git a/include/constants/flags.h b/include/constants/flags.h new file mode 100644 index 0000000000..e74ef1ef0b --- /dev/null +++ b/include/constants/flags.h @@ -0,0 +1,1578 @@ +#ifndef GUARD_CONSTANTS_FLAGS_H +#define GUARD_CONSTANTS_FLAGS_H + +#define FLAG_0x001 0x1 +#define FLAG_0x002 0x2 +#define FLAG_0x003 0x3 +#define FLAG_0x004 0x4 +#define FLAG_0x005 0x5 +#define FLAG_0x006 0x6 +#define FLAG_0x007 0x7 +#define FLAG_0x008 0x8 +#define FLAG_0x009 0x9 +#define FLAG_0x00A 0xA +#define FLAG_0x00B 0xB +#define FLAG_0x00C 0xC +#define FLAG_0x00D 0xD +#define FLAG_0x00E 0xE +#define FLAG_0x00F 0xF +#define FLAG_0x010 0x10 +#define FLAG_0x011 0x11 +#define FLAG_0x012 0x12 +#define FLAG_0x013 0x13 +#define FLAG_0x014 0x14 +#define FLAG_0x015 0x15 +#define FLAG_0x016 0x16 +#define FLAG_0x017 0x17 +#define FLAG_0x018 0x18 +#define FLAG_0x019 0x19 +#define FLAG_0x01A 0x1A +#define FLAG_0x01B 0x1B +#define FLAG_0x01C 0x1C +#define FLAG_0x01D 0x1D +#define FLAG_0x01E 0x1E +#define FLAG_0x01F 0x1F +#define FLAG_0x020 0x20 +#define FLAG_0x021 0x21 +#define FLAG_0x022 0x22 +#define FLAG_0x023 0x23 +#define FLAG_0x024 0x24 +#define FLAG_0x025 0x25 +#define FLAG_0x026 0x26 +#define FLAG_0x027 0x27 +#define FLAG_0x028 0x28 +#define FLAG_0x029 0x29 +#define FLAG_0x02A 0x2A +#define FLAG_0x02B 0x2B +#define FLAG_0x02C 0x2C +#define FLAG_0x02D 0x2D +#define FLAG_0x02E 0x2E +#define FLAG_0x02F 0x2F +#define FLAG_0x030 0x30 +#define FLAG_0x031 0x31 +#define FLAG_0x032 0x32 +#define FLAG_0x033 0x33 +#define FLAG_0x034 0x34 +#define FLAG_0x035 0x35 +#define FLAG_0x036 0x36 +#define FLAG_0x037 0x37 +#define FLAG_0x038 0x38 +#define FLAG_0x039 0x39 +#define FLAG_0x03A 0x3A +#define FLAG_0x03B 0x3B +#define FLAG_0x03C 0x3C +#define FLAG_0x03D 0x3D +#define FLAG_0x03E 0x3E +#define FLAG_0x03F 0x3F +#define FLAG_0x040 0x40 +#define FLAG_0x041 0x41 +#define FLAG_0x042 0x42 +#define FLAG_0x043 0x43 +#define FLAG_0x044 0x44 +#define FLAG_0x045 0x45 +#define FLAG_0x046 0x46 +#define FLAG_0x047 0x47 +#define FLAG_0x048 0x48 +#define FLAG_0x049 0x49 +#define FLAG_0x04A 0x4A +#define FLAG_0x04B 0x4B +#define FLAG_0x04C 0x4C +#define FLAG_0x04D 0x4D +#define FLAG_0x04E 0x4E +#define FLAG_0x04F 0x4F +#define FLAG_0x050 0x50 +#define FLAG_0x051 0x51 +#define FLAG_0x052 0x52 +#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53 +#define FLAG_0x054 0x54 +#define FLAG_0x055 0x55 +#define FLAG_0x056 0x56 +#define FLAG_0x057 0x57 +#define FLAG_0x058 0x58 +#define FLAG_0x059 0x59 +#define FLAG_0x05A 0x5A +#define FLAG_0x05B 0x5B +#define FLAG_0x05C 0x5C +#define FLAG_0x05D 0x5D +#define FLAG_0x05E 0x5E +#define FLAG_0x05F 0x5F +#define FLAG_0x060 0x60 +#define FLAG_0x061 0x61 +#define FLAG_0x062 0x62 +#define FLAG_0x063 0x63 +#define FLAG_0x064 0x64 +#define FLAG_0x065 0x65 +#define FLAG_0x066 0x66 +#define FLAG_0x067 0x67 +#define FLAG_0x068 0x68 +#define FLAG_0x069 0x69 +#define FLAG_0x06A 0x6A +#define FLAG_0x06B 0x6B +#define FLAG_0x06C 0x6C +#define FLAG_0x06D 0x6D +#define FLAG_0x06E 0x6E +#define FLAG_0x06F 0x6F +#define FLAG_0x070 0x70 +#define FLAG_0x071 0x71 +#define FLAG_0x072 0x72 +#define FLAG_0x073 0x73 +#define FLAG_0x074 0x74 +#define FLAG_0x075 0x75 +#define FLAG_0x076 0x76 +#define FLAG_0x077 0x77 +#define FLAG_0x078 0x78 +#define FLAG_0x079 0x79 +#define FLAG_0x07A 0x7A +#define FLAG_0x07B 0x7B +#define FLAG_0x07C 0x7C +#define FLAG_0x07D 0x7D +#define FLAG_0x07E 0x7E +#define FLAG_0x07F 0x7F +#define FLAG_0x080 0x80 +#define FLAG_0x081 0x81 +#define FLAG_0x082 0x82 +#define FLAG_0x083 0x83 +#define FLAG_0x084 0x84 +#define FLAG_0x085 0x85 +#define FLAG_PENDING_DAYCARE_EGG 0x86 +#define FLAG_0x087 0x87 +#define FLAG_0x088 0x88 +#define FLAG_0x089 0x89 +#define FLAG_0x08A 0x8A +#define FLAG_0x08B 0x8B +#define FLAG_0x08C 0x8C +#define FLAG_0x08D 0x8D +#define FLAG_0x08E 0x8E +#define FLAG_0x08F 0x8F +#define FLAG_0x090 0x90 +#define FLAG_0x091 0x91 +#define FLAG_0x092 0x92 +#define FLAG_0x093 0x93 +#define FLAG_0x094 0x94 +#define FLAG_0x095 0x95 +#define FLAG_0x096 0x96 +#define FLAG_0x097 0x97 +#define FLAG_0x098 0x98 +#define FLAG_0x099 0x99 +#define FLAG_0x09A 0x9A +#define FLAG_0x09B 0x9B +#define FLAG_0x09C 0x9C +#define FLAG_0x09D 0x9D +#define FLAG_0x09E 0x9E +#define FLAG_0x09F 0x9F +#define FLAG_0x0A0 0xA0 +#define FLAG_0x0A1 0xA1 +#define FLAG_0x0A2 0xA2 +#define FLAG_0x0A3 0xA3 +#define FLAG_0x0A4 0xA4 +#define FLAG_0x0A5 0xA5 +#define FLAG_0x0A6 0xA6 +#define FLAG_0x0A7 0xA7 +#define FLAG_0x0A8 0xA8 +#define FLAG_0x0A9 0xA9 +#define FLAG_0x0AA 0xAA +#define FLAG_0x0AB 0xAB +#define FLAG_0x0AC 0xAC +#define FLAG_0x0AD 0xAD +#define FLAG_0x0AE 0xAE +#define FLAG_0x0AF 0xAF +#define FLAG_0x0B0 0xB0 +#define FLAG_0x0B1 0xB1 +#define FLAG_0x0B2 0xB2 +#define FLAG_0x0B3 0xB3 +#define FLAG_0x0B4 0xB4 +#define FLAG_0x0B5 0xB5 +#define FLAG_0x0B6 0xB6 +#define FLAG_0x0B7 0xB7 +#define FLAG_0x0B8 0xB8 +#define FLAG_0x0B9 0xB9 +#define FLAG_0x0BA 0xBA +#define FLAG_0x0BB 0xBB +#define FLAG_0x0BC 0xBC +#define FLAG_0x0BD 0xBD +#define FLAG_0x0BE 0xBE +#define FLAG_0x0BF 0xBF +#define FLAG_0x0C0 0xC0 +#define FLAG_0x0C1 0xC1 +#define FLAG_0x0C2 0xC2 +#define FLAG_0x0C3 0xC3 +#define FLAG_0x0C4 0xC4 +#define FLAG_0x0C5 0xC5 +#define FLAG_0x0C6 0xC6 +#define FLAG_0x0C7 0xC7 +#define FLAG_0x0C8 0xC8 +#define FLAG_0x0C9 0xC9 +#define FLAG_0x0CA 0xCA +#define FLAG_0x0CB 0xCB +#define FLAG_0x0CC 0xCC +#define FLAG_0x0CD 0xCD +#define FLAG_0x0CE 0xCE +#define FLAG_0x0CF 0xCF +#define FLAG_0x0D0 0xD0 +#define FLAG_0x0D1 0xD1 +#define FLAG_0x0D2 0xD2 +#define FLAG_0x0D3 0xD3 +#define FLAG_0x0D4 0xD4 +#define FLAG_0x0D5 0xD5 +#define FLAG_0x0D6 0xD6 +#define FLAG_0x0D7 0xD7 +#define FLAG_0x0D8 0xD8 +#define FLAG_0x0D9 0xD9 +#define FLAG_0x0DA 0xDA +#define FLAG_0x0DB 0xDB +#define FLAG_0x0DC 0xDC +#define FLAG_0x0DD 0xDD +#define FLAG_0x0DE 0xDE +#define FLAG_0x0DF 0xDF +#define FLAG_0x0E0 0xE0 +#define FLAG_0x0E1 0xE1 +#define FLAG_0x0E2 0xE2 +#define FLAG_0x0E3 0xE3 +#define FLAG_0x0E4 0xE4 +#define FLAG_0x0E5 0xE5 +#define FLAG_0x0E6 0xE6 +#define FLAG_0x0E7 0xE7 +#define FLAG_0x0E8 0xE8 +#define FLAG_0x0E9 0xE9 +#define FLAG_0x0EA 0xEA +#define FLAG_0x0EB 0xEB +#define FLAG_0x0EC 0xEC +#define FLAG_0x0ED 0xED +#define FLAG_0x0EE 0xEE +#define FLAG_0x0EF 0xEF +#define FLAG_0x0F0 0xF0 +#define FLAG_0x0F1 0xF1 +#define FLAG_0x0F2 0xF2 +#define FLAG_0x0F3 0xF3 +#define FLAG_0x0F4 0xF4 +#define FLAG_0x0F5 0xF5 +#define FLAG_0x0F6 0xF6 +#define FLAG_0x0F7 0xF7 +#define FLAG_0x0F8 0xF8 +#define FLAG_0x0F9 0xF9 +#define FLAG_0x0FA 0xFA +#define FLAG_0x0FB 0xFB +#define FLAG_0x0FC 0xFC +#define FLAG_0x0FD 0xFD +#define FLAG_0x0FE 0xFE +#define FLAG_0x0FF 0xFF +#define FLAG_0x100 0x100 +#define FLAG_0x101 0x101 +#define FLAG_0x102 0x102 +#define FLAG_0x103 0x103 +#define FLAG_0x104 0x104 +#define FLAG_0x105 0x105 +#define FLAG_0x106 0x106 +#define FLAG_0x107 0x107 +#define FLAG_0x108 0x108 +#define FLAG_0x109 0x109 +#define FLAG_0x10A 0x10A +#define FLAG_0x10B 0x10B +#define FLAG_0x10C 0x10C +#define FLAG_0x10D 0x10D +#define FLAG_0x10E 0x10E +#define FLAG_0x10F 0x10F +#define FLAG_0x110 0x110 +#define FLAG_0x111 0x111 +#define FLAG_0x112 0x112 +#define FLAG_0x113 0x113 +#define FLAG_0x114 0x114 +#define FLAG_0x115 0x115 +#define FLAG_0x116 0x116 +#define FLAG_0x117 0x117 +#define FLAG_0x118 0x118 +#define FLAG_0x119 0x119 +#define FLAG_0x11A 0x11A +#define FLAG_0x11B 0x11B +#define FLAG_0x11C 0x11C +#define FLAG_0x11D 0x11D +#define FLAG_0x11E 0x11E +#define FLAG_0x11F 0x11F +#define FLAG_0x120 0x120 +#define FLAG_0x121 0x121 +#define FLAG_0x122 0x122 +#define FLAG_0x123 0x123 +#define FLAG_0x124 0x124 +#define FLAG_0x125 0x125 +#define FLAG_0x126 0x126 +#define FLAG_0x127 0x127 +#define FLAG_0x128 0x128 +#define FLAG_0x129 0x129 +#define FLAG_0x12A 0x12A +#define FLAG_0x12B 0x12B +#define FLAG_0x12C 0x12C +#define FLAG_0x12D 0x12D +#define FLAG_0x12E 0x12E +#define FLAG_0x12F 0x12F +#define FLAG_0x130 0x130 +#define FLAG_0x131 0x131 +#define FLAG_0x132 0x132 +#define FLAG_0x133 0x133 +#define FLAG_0x134 0x134 +#define FLAG_0x135 0x135 +#define FLAG_0x136 0x136 +#define FLAG_0x137 0x137 +#define FLAG_0x138 0x138 +#define FLAG_0x139 0x139 +#define FLAG_0x13A 0x13A +#define FLAG_0x13B 0x13B +#define FLAG_0x13C 0x13C +#define FLAG_0x13D 0x13D +#define FLAG_0x13E 0x13E +#define FLAG_0x13F 0x13F +#define FLAG_0x140 0x140 +#define FLAG_0x141 0x141 +#define FLAG_0x142 0x142 +#define FLAG_0x143 0x143 +#define FLAG_0x144 0x144 +#define FLAG_0x145 0x145 +#define FLAG_0x146 0x146 +#define FLAG_0x147 0x147 +#define FLAG_0x148 0x148 +#define FLAG_0x149 0x149 +#define FLAG_0x14A 0x14A +#define FLAG_0x14B 0x14B +#define FLAG_0x14C 0x14C +#define FLAG_0x14D 0x14D +#define FLAG_0x14E 0x14E +#define FLAG_0x14F 0x14F +#define FLAG_0x150 0x150 +#define FLAG_0x151 0x151 +#define FLAG_0x152 0x152 +#define FLAG_0x153 0x153 +#define FLAG_0x154 0x154 +#define FLAG_0x155 0x155 +#define FLAG_0x156 0x156 +#define FLAG_0x157 0x157 +#define FLAG_0x158 0x158 +#define FLAG_0x159 0x159 +#define FLAG_0x15A 0x15A +#define FLAG_0x15B 0x15B +#define FLAG_0x15C 0x15C +#define FLAG_0x15D 0x15D +#define FLAG_0x15E 0x15E +#define FLAG_0x15F 0x15F +#define FLAG_0x160 0x160 +#define FLAG_0x161 0x161 +#define FLAG_0x162 0x162 +#define FLAG_0x163 0x163 +#define FLAG_0x164 0x164 +#define FLAG_0x165 0x165 +#define FLAG_0x166 0x166 +#define FLAG_0x167 0x167 +#define FLAG_0x168 0x168 +#define FLAG_0x169 0x169 +#define FLAG_0x16A 0x16A +#define FLAG_0x16B 0x16B +#define FLAG_0x16C 0x16C +#define FLAG_0x16D 0x16D +#define FLAG_0x16E 0x16E +#define FLAG_0x16F 0x16F +#define FLAG_0x170 0x170 +#define FLAG_0x171 0x171 +#define FLAG_0x172 0x172 +#define FLAG_0x173 0x173 +#define FLAG_0x174 0x174 +#define FLAG_0x175 0x175 +#define FLAG_0x176 0x176 +#define FLAG_0x177 0x177 +#define FLAG_0x178 0x178 +#define FLAG_0x179 0x179 +#define FLAG_0x17A 0x17A +#define FLAG_0x17B 0x17B +#define FLAG_0x17C 0x17C +#define FLAG_0x17D 0x17D +#define FLAG_0x17E 0x17E +#define FLAG_0x17F 0x17F +#define FLAG_0x180 0x180 +#define FLAG_0x181 0x181 +#define FLAG_0x182 0x182 +#define FLAG_0x183 0x183 +#define FLAG_0x184 0x184 +#define FLAG_0x185 0x185 +#define FLAG_0x186 0x186 +#define FLAG_0x187 0x187 +#define FLAG_0x188 0x188 +#define FLAG_0x189 0x189 +#define FLAG_0x18A 0x18A +#define FLAG_0x18B 0x18B +#define FLAG_0x18C 0x18C +#define FLAG_0x18D 0x18D +#define FLAG_0x18E 0x18E +#define FLAG_0x18F 0x18F +#define FLAG_0x190 0x190 +#define FLAG_0x191 0x191 +#define FLAG_0x192 0x192 +#define FLAG_0x193 0x193 +#define FLAG_0x194 0x194 +#define FLAG_0x195 0x195 +#define FLAG_0x196 0x196 +#define FLAG_0x197 0x197 +#define FLAG_0x198 0x198 +#define FLAG_0x199 0x199 +#define FLAG_0x19A 0x19A +#define FLAG_0x19B 0x19B +#define FLAG_0x19C 0x19C +#define FLAG_0x19D 0x19D +#define FLAG_0x19E 0x19E +#define FLAG_0x19F 0x19F +#define FLAG_0x1A0 0x1A0 +#define FLAG_0x1A1 0x1A1 +#define FLAG_0x1A2 0x1A2 +#define FLAG_0x1A3 0x1A3 +#define FLAG_0x1A4 0x1A4 +#define FLAG_0x1A5 0x1A5 +#define FLAG_0x1A6 0x1A6 +#define FLAG_0x1A7 0x1A7 +#define FLAG_0x1A8 0x1A8 +#define FLAG_0x1A9 0x1A9 +#define FLAG_0x1AA 0x1AA +#define FLAG_0x1AB 0x1AB +#define FLAG_0x1AC 0x1AC +#define FLAG_0x1AD 0x1AD +#define FLAG_0x1AE 0x1AE +#define FLAG_0x1AF 0x1AF +#define FLAG_0x1B0 0x1B0 +#define FLAG_0x1B1 0x1B1 +#define FLAG_0x1B2 0x1B2 +#define FLAG_0x1B3 0x1B3 +#define FLAG_0x1B4 0x1B4 +#define FLAG_0x1B5 0x1B5 +#define FLAG_0x1B6 0x1B6 +#define FLAG_0x1B7 0x1B7 +#define FLAG_0x1B8 0x1B8 +#define FLAG_0x1B9 0x1B9 +#define FLAG_0x1BA 0x1BA +#define FLAG_0x1BB 0x1BB +#define FLAG_0x1BC 0x1BC +#define FLAG_0x1BD 0x1BD +#define FLAG_0x1BE 0x1BE +#define FLAG_0x1BF 0x1BF +#define FLAG_0x1C0 0x1C0 +#define FLAG_0x1C1 0x1C1 +#define FLAG_0x1C2 0x1C2 +#define FLAG_0x1C3 0x1C3 +#define FLAG_0x1C4 0x1C4 +#define FLAG_0x1C5 0x1C5 +#define FLAG_0x1C6 0x1C6 +#define FLAG_0x1C7 0x1C7 +#define FLAG_0x1C8 0x1C8 +#define FLAG_0x1C9 0x1C9 +#define FLAG_0x1CA 0x1CA +#define FLAG_0x1CB 0x1CB +#define FLAG_0x1CC 0x1CC +#define FLAG_0x1CD 0x1CD +#define FLAG_0x1CE 0x1CE +#define FLAG_0x1CF 0x1CF +#define FLAG_0x1D0 0x1D0 +#define FLAG_0x1D1 0x1D1 +#define FLAG_0x1D2 0x1D2 +#define FLAG_0x1D3 0x1D3 +#define FLAG_0x1D4 0x1D4 +#define FLAG_0x1D5 0x1D5 +#define FLAG_0x1D6 0x1D6 +#define FLAG_0x1D7 0x1D7 +#define FLAG_0x1D8 0x1D8 +#define FLAG_0x1D9 0x1D9 +#define FLAG_0x1DA 0x1DA +#define FLAG_0x1DB 0x1DB +#define FLAG_0x1DC 0x1DC +#define FLAG_0x1DD 0x1DD +#define FLAG_0x1DE 0x1DE +#define FLAG_0x1DF 0x1DF +#define FLAG_0x1E0 0x1E0 +#define FLAG_0x1E1 0x1E1 +#define FLAG_0x1E2 0x1E2 +#define FLAG_0x1E3 0x1E3 +#define FLAG_0x1E4 0x1E4 +#define FLAG_0x1E5 0x1E5 +#define FLAG_0x1E6 0x1E6 +#define FLAG_0x1E7 0x1E7 +#define FLAG_0x1E8 0x1E8 +#define FLAG_0x1E9 0x1E9 +#define FLAG_0x1EA 0x1EA +#define FLAG_0x1EB 0x1EB +#define FLAG_0x1EC 0x1EC +#define FLAG_0x1ED 0x1ED +#define FLAG_0x1EE 0x1EE +#define FLAG_0x1EF 0x1EF +#define FLAG_0x1F0 0x1F0 +#define FLAG_0x1F1 0x1F1 +#define FLAG_0x1F2 0x1F2 +#define FLAG_0x1F3 0x1F3 +#define FLAG_0x1F4 0x1F4 +#define FLAG_0x1F5 0x1F5 +#define FLAG_0x1F6 0x1F6 +#define FLAG_0x1F7 0x1F7 +#define FLAG_0x1F8 0x1F8 +#define FLAG_0x1F9 0x1F9 +#define FLAG_0x1FA 0x1FA +#define FLAG_0x1FB 0x1FB +#define FLAG_0x1FC 0x1FC +#define FLAG_0x1FD 0x1FD +#define FLAG_0x1FE 0x1FE +#define FLAG_0x1FF 0x1FF +#define FLAG_0x200 0x200 +#define FLAG_0x201 0x201 +#define FLAG_0x202 0x202 +#define FLAG_0x203 0x203 +#define FLAG_0x204 0x204 +#define FLAG_0x205 0x205 +#define FLAG_0x206 0x206 +#define FLAG_0x207 0x207 +#define FLAG_0x208 0x208 +#define FLAG_0x209 0x209 +#define FLAG_0x20A 0x20A +#define FLAG_0x20B 0x20B +#define FLAG_0x20C 0x20C +#define FLAG_0x20D 0x20D +#define FLAG_0x20E 0x20E +#define FLAG_0x20F 0x20F +#define FLAG_0x210 0x210 +#define FLAG_0x211 0x211 +#define FLAG_0x212 0x212 +#define FLAG_0x213 0x213 +#define FLAG_0x214 0x214 +#define FLAG_0x215 0x215 +#define FLAG_0x216 0x216 +#define FLAG_0x217 0x217 +#define FLAG_0x218 0x218 +#define FLAG_0x219 0x219 +#define FLAG_0x21A 0x21A +#define FLAG_0x21B 0x21B +#define FLAG_0x21C 0x21C +#define FLAG_0x21D 0x21D +#define FLAG_0x21E 0x21E +#define FLAG_0x21F 0x21F +#define FLAG_0x220 0x220 +#define FLAG_0x221 0x221 +#define FLAG_0x222 0x222 +#define FLAG_0x223 0x223 +#define FLAG_0x224 0x224 +#define FLAG_0x225 0x225 +#define FLAG_0x226 0x226 +#define FLAG_0x227 0x227 +#define FLAG_0x228 0x228 +#define FLAG_0x229 0x229 +#define FLAG_0x22A 0x22A +#define FLAG_0x22B 0x22B +#define FLAG_0x22C 0x22C +#define FLAG_0x22D 0x22D +#define FLAG_0x22E 0x22E +#define FLAG_0x22F 0x22F +#define FLAG_0x230 0x230 +#define FLAG_0x231 0x231 +#define FLAG_0x232 0x232 +#define FLAG_0x233 0x233 +#define FLAG_0x234 0x234 +#define FLAG_0x235 0x235 +#define FLAG_0x236 0x236 +#define FLAG_0x237 0x237 +#define FLAG_0x238 0x238 +#define FLAG_0x239 0x239 +#define FLAG_0x23A 0x23A +#define FLAG_0x23B 0x23B +#define FLAG_0x23C 0x23C +#define FLAG_0x23D 0x23D +#define FLAG_0x23E 0x23E +#define FLAG_0x23F 0x23F +#define FLAG_0x240 0x240 +#define FLAG_0x241 0x241 +#define FLAG_0x242 0x242 +#define FLAG_0x243 0x243 +#define FLAG_0x244 0x244 +#define FLAG_0x245 0x245 +#define FLAG_0x246 0x246 +#define FLAG_0x247 0x247 +#define FLAG_0x248 0x248 +#define FLAG_0x249 0x249 +#define FLAG_0x24A 0x24A +#define FLAG_0x24B 0x24B +#define FLAG_0x24C 0x24C +#define FLAG_0x24D 0x24D +#define FLAG_0x24E 0x24E +#define FLAG_0x24F 0x24F +#define FLAG_0x250 0x250 +#define FLAG_0x251 0x251 +#define FLAG_0x252 0x252 +#define FLAG_0x253 0x253 +#define FLAG_0x254 0x254 +#define FLAG_0x255 0x255 +#define FLAG_0x256 0x256 +#define FLAG_0x257 0x257 +#define FLAG_0x258 0x258 +#define FLAG_0x259 0x259 +#define FLAG_0x25A 0x25A +#define FLAG_0x25B 0x25B +#define FLAG_0x25C 0x25C +#define FLAG_0x25D 0x25D +#define FLAG_0x25E 0x25E +#define FLAG_0x25F 0x25F +#define FLAG_0x260 0x260 +#define FLAG_0x261 0x261 +#define FLAG_0x262 0x262 +#define FLAG_0x263 0x263 +#define FLAG_0x264 0x264 +#define FLAG_0x265 0x265 +#define FLAG_0x266 0x266 +#define FLAG_0x267 0x267 +#define FLAG_0x268 0x268 +#define FLAG_0x269 0x269 +#define FLAG_0x26A 0x26A +#define FLAG_0x26B 0x26B +#define FLAG_0x26C 0x26C +#define FLAG_0x26D 0x26D +#define FLAG_0x26E 0x26E +#define FLAG_0x26F 0x26F +#define FLAG_0x270 0x270 +#define FLAG_0x271 0x271 +#define FLAG_0x272 0x272 +#define FLAG_0x273 0x273 +#define FLAG_0x274 0x274 +#define FLAG_0x275 0x275 +#define FLAG_0x276 0x276 +#define FLAG_0x277 0x277 +#define FLAG_0x278 0x278 +#define FLAG_0x279 0x279 +#define FLAG_0x27A 0x27A +#define FLAG_0x27B 0x27B +#define FLAG_0x27C 0x27C +#define FLAG_0x27D 0x27D +#define FLAG_0x27E 0x27E +#define FLAG_0x27F 0x27F +#define FLAG_0x280 0x280 +#define FLAG_0x281 0x281 +#define FLAG_0x282 0x282 +#define FLAG_0x283 0x283 +#define FLAG_0x284 0x284 +#define FLAG_0x285 0x285 +#define FLAG_0x286 0x286 +#define FLAG_0x287 0x287 +#define FLAG_0x288 0x288 +#define FLAG_0x289 0x289 +#define FLAG_0x28A 0x28A +#define FLAG_0x28B 0x28B +#define FLAG_0x28C 0x28C +#define FLAG_0x28D 0x28D +#define FLAG_0x28E 0x28E +#define FLAG_0x28F 0x28F +#define FLAG_0x290 0x290 +#define FLAG_0x291 0x291 +#define FLAG_0x292 0x292 +#define FLAG_0x293 0x293 +#define FLAG_0x294 0x294 +#define FLAG_0x295 0x295 +#define FLAG_0x296 0x296 +#define FLAG_0x297 0x297 +#define FLAG_0x298 0x298 +#define FLAG_0x299 0x299 +#define FLAG_0x29A 0x29A +#define FLAG_0x29B 0x29B +#define FLAG_0x29C 0x29C +#define FLAG_0x29D 0x29D +#define FLAG_0x29E 0x29E +#define FLAG_0x29F 0x29F +#define FLAG_0x2A0 0x2A0 +#define FLAG_0x2A1 0x2A1 +#define FLAG_0x2A2 0x2A2 +#define FLAG_0x2A3 0x2A3 +#define FLAG_0x2A4 0x2A4 +#define FLAG_0x2A5 0x2A5 +#define FLAG_0x2A6 0x2A6 +#define FLAG_0x2A7 0x2A7 +#define FLAG_0x2A8 0x2A8 +#define FLAG_0x2A9 0x2A9 +#define FLAG_0x2AA 0x2AA +#define FLAG_0x2AB 0x2AB +#define FLAG_0x2AC 0x2AC +#define FLAG_0x2AD 0x2AD +#define FLAG_0x2AE 0x2AE +#define FLAG_0x2AF 0x2AF +#define FLAG_0x2B0 0x2B0 +#define FLAG_0x2B1 0x2B1 +#define FLAG_0x2B2 0x2B2 +#define FLAG_0x2B3 0x2B3 +#define FLAG_0x2B4 0x2B4 +#define FLAG_0x2B5 0x2B5 +#define FLAG_0x2B6 0x2B6 +#define FLAG_0x2B7 0x2B7 +#define FLAG_0x2B8 0x2B8 +#define FLAG_0x2B9 0x2B9 +#define FLAG_0x2BA 0x2BA +#define FLAG_0x2BB 0x2BB +#define FLAG_0x2BC 0x2BC +#define FLAG_0x2BD 0x2BD +#define FLAG_0x2BE 0x2BE +#define FLAG_0x2BF 0x2BF +#define FLAG_0x2C0 0x2C0 +#define FLAG_0x2C1 0x2C1 +#define FLAG_0x2C2 0x2C2 +#define FLAG_0x2C3 0x2C3 +#define FLAG_0x2C4 0x2C4 +#define FLAG_0x2C5 0x2C5 +#define FLAG_0x2C6 0x2C6 +#define FLAG_0x2C7 0x2C7 +#define FLAG_0x2C8 0x2C8 +#define FLAG_0x2C9 0x2C9 +#define FLAG_0x2CA 0x2CA +#define FLAG_0x2CB 0x2CB +#define FLAG_0x2CC 0x2CC +#define FLAG_0x2CD 0x2CD +#define FLAG_0x2CE 0x2CE +#define FLAG_0x2CF 0x2CF +#define FLAG_0x2D0 0x2D0 +#define FLAG_0x2D1 0x2D1 +#define FLAG_0x2D2 0x2D2 +#define FLAG_0x2D3 0x2D3 +#define FLAG_0x2D4 0x2D4 +#define FLAG_0x2D5 0x2D5 +#define FLAG_0x2D6 0x2D6 +#define FLAG_0x2D7 0x2D7 +#define FLAG_0x2D8 0x2D8 +#define FLAG_0x2D9 0x2D9 +#define FLAG_0x2DA 0x2DA +#define FLAG_0x2DB 0x2DB +#define FLAG_0x2DC 0x2DC +#define FLAG_0x2DD 0x2DD +#define FLAG_0x2DE 0x2DE +#define FLAG_0x2DF 0x2DF +#define FLAG_0x2E0 0x2E0 +#define FLAG_0x2E1 0x2E1 +#define FLAG_0x2E2 0x2E2 +#define FLAG_0x2E3 0x2E3 +#define FLAG_0x2E4 0x2E4 +#define FLAG_0x2E5 0x2E5 +#define FLAG_0x2E6 0x2E6 +#define FLAG_0x2E7 0x2E7 +#define FLAG_0x2E8 0x2E8 +#define FLAG_0x2E9 0x2E9 +#define FLAG_0x2EA 0x2EA +#define FLAG_0x2EB 0x2EB +#define FLAG_0x2EC 0x2EC +#define FLAG_0x2ED 0x2ED +#define FLAG_0x2EE 0x2EE +#define FLAG_0x2EF 0x2EF +#define FLAG_0x2F0 0x2F0 +#define FLAG_0x2F1 0x2F1 +#define FLAG_0x2F2 0x2F2 +#define FLAG_0x2F3 0x2F3 +#define FLAG_0x2F4 0x2F4 +#define FLAG_0x2F5 0x2F5 +#define FLAG_0x2F6 0x2F6 +#define FLAG_0x2F7 0x2F7 +#define FLAG_0x2F8 0x2F8 +#define FLAG_0x2F9 0x2F9 +#define FLAG_0x2FA 0x2FA +#define FLAG_0x2FB 0x2FB +#define FLAG_0x2FC 0x2FC +#define FLAG_0x2FD 0x2FD +#define FLAG_0x2FE 0x2FE +#define FLAG_0x2FF 0x2FF +#define FLAG_0x300 0x300 +#define FLAG_0x301 0x301 +#define FLAG_0x302 0x302 +#define FLAG_0x303 0x303 +#define FLAG_0x304 0x304 +#define FLAG_0x305 0x305 +#define FLAG_0x306 0x306 +#define FLAG_0x307 0x307 +#define FLAG_0x308 0x308 +#define FLAG_0x309 0x309 +#define FLAG_0x30A 0x30A +#define FLAG_0x30B 0x30B +#define FLAG_0x30C 0x30C +#define FLAG_0x30D 0x30D +#define FLAG_0x30E 0x30E +#define FLAG_0x30F 0x30F +#define FLAG_0x310 0x310 +#define FLAG_0x311 0x311 +#define FLAG_0x312 0x312 +#define FLAG_0x313 0x313 +#define FLAG_0x314 0x314 +#define FLAG_0x315 0x315 +#define FLAG_0x316 0x316 +#define FLAG_0x317 0x317 +#define FLAG_0x318 0x318 +#define FLAG_0x319 0x319 +#define FLAG_0x31A 0x31A +#define FLAG_0x31B 0x31B +#define FLAG_0x31C 0x31C +#define FLAG_0x31D 0x31D +#define FLAG_0x31E 0x31E +#define FLAG_0x31F 0x31F +#define FLAG_0x320 0x320 +#define FLAG_0x321 0x321 +#define FLAG_0x322 0x322 +#define FLAG_0x323 0x323 +#define FLAG_0x324 0x324 +#define FLAG_0x325 0x325 +#define FLAG_0x326 0x326 +#define FLAG_0x327 0x327 +#define FLAG_0x328 0x328 +#define FLAG_0x329 0x329 +#define FLAG_0x32A 0x32A +#define FLAG_0x32B 0x32B +#define FLAG_0x32C 0x32C +#define FLAG_0x32D 0x32D +#define FLAG_0x32E 0x32E +#define FLAG_0x32F 0x32F +#define FLAG_0x330 0x330 +#define FLAG_0x331 0x331 +#define FLAG_0x332 0x332 +#define FLAG_0x333 0x333 +#define FLAG_0x334 0x334 +#define FLAG_0x335 0x335 +#define FLAG_0x336 0x336 +#define FLAG_0x337 0x337 +#define FLAG_0x338 0x338 +#define FLAG_0x339 0x339 +#define FLAG_0x33A 0x33A +#define FLAG_0x33B 0x33B +#define FLAG_0x33C 0x33C +#define FLAG_0x33D 0x33D +#define FLAG_0x33E 0x33E +#define FLAG_0x33F 0x33F +#define FLAG_0x340 0x340 +#define FLAG_0x341 0x341 +#define FLAG_0x342 0x342 +#define FLAG_0x343 0x343 +#define FLAG_0x344 0x344 +#define FLAG_0x345 0x345 +#define FLAG_0x346 0x346 +#define FLAG_0x347 0x347 +#define FLAG_0x348 0x348 +#define FLAG_0x349 0x349 +#define FLAG_0x34A 0x34A +#define FLAG_0x34B 0x34B +#define FLAG_0x34C 0x34C +#define FLAG_0x34D 0x34D +#define FLAG_0x34E 0x34E +#define FLAG_0x34F 0x34F +#define FLAG_0x350 0x350 +#define FLAG_0x351 0x351 +#define FLAG_0x352 0x352 +#define FLAG_0x353 0x353 +#define FLAG_0x354 0x354 +#define FLAG_0x355 0x355 +#define FLAG_0x356 0x356 +#define FLAG_0x357 0x357 +#define FLAG_0x358 0x358 +#define FLAG_0x359 0x359 +#define FLAG_0x35A 0x35A +#define FLAG_0x35B 0x35B +#define FLAG_0x35C 0x35C +#define FLAG_0x35D 0x35D +#define FLAG_0x35E 0x35E +#define FLAG_0x35F 0x35F +#define FLAG_0x360 0x360 +#define FLAG_0x361 0x361 +#define FLAG_0x362 0x362 +#define FLAG_0x363 0x363 +#define FLAG_0x364 0x364 +#define FLAG_0x365 0x365 +#define FLAG_0x366 0x366 +#define FLAG_0x367 0x367 +#define FLAG_0x368 0x368 +#define FLAG_0x369 0x369 +#define FLAG_0x36A 0x36A +#define FLAG_0x36B 0x36B +#define FLAG_0x36C 0x36C +#define FLAG_0x36D 0x36D +#define FLAG_0x36E 0x36E +#define FLAG_0x36F 0x36F +#define FLAG_0x370 0x370 +#define FLAG_0x371 0x371 +#define FLAG_0x372 0x372 +#define FLAG_0x373 0x373 +#define FLAG_0x374 0x374 +#define FLAG_0x375 0x375 +#define FLAG_0x376 0x376 +#define FLAG_0x377 0x377 +#define FLAG_0x378 0x378 +#define FLAG_0x379 0x379 +#define FLAG_0x37A 0x37A +#define FLAG_0x37B 0x37B +#define FLAG_0x37C 0x37C +#define FLAG_0x37D 0x37D +#define FLAG_0x37E 0x37E +#define FLAG_0x37F 0x37F +#define FLAG_0x380 0x380 +#define FLAG_0x381 0x381 +#define FLAG_0x382 0x382 +#define FLAG_0x383 0x383 +#define FLAG_0x384 0x384 +#define FLAG_0x385 0x385 +#define FLAG_0x386 0x386 +#define FLAG_0x387 0x387 +#define FLAG_0x388 0x388 +#define FLAG_0x389 0x389 +#define FLAG_0x38A 0x38A +#define FLAG_0x38B 0x38B +#define FLAG_0x38C 0x38C +#define FLAG_0x38D 0x38D +#define FLAG_0x38E 0x38E +#define FLAG_0x38F 0x38F +#define FLAG_0x390 0x390 +#define FLAG_0x391 0x391 +#define FLAG_0x392 0x392 +#define FLAG_0x393 0x393 +#define FLAG_0x394 0x394 +#define FLAG_0x395 0x395 +#define FLAG_0x396 0x396 +#define FLAG_0x397 0x397 +#define FLAG_0x398 0x398 +#define FLAG_0x399 0x399 +#define FLAG_0x39A 0x39A +#define FLAG_0x39B 0x39B +#define FLAG_0x39C 0x39C +#define FLAG_0x39D 0x39D +#define FLAG_0x39E 0x39E +#define FLAG_0x39F 0x39F +#define FLAG_0x3A0 0x3A0 +#define FLAG_0x3A1 0x3A1 +#define FLAG_0x3A2 0x3A2 +#define FLAG_0x3A3 0x3A3 +#define FLAG_0x3A4 0x3A4 +#define FLAG_0x3A5 0x3A5 +#define FLAG_0x3A6 0x3A6 +#define FLAG_0x3A7 0x3A7 +#define FLAG_0x3A8 0x3A8 +#define FLAG_0x3A9 0x3A9 +#define FLAG_0x3AA 0x3AA +#define FLAG_0x3AB 0x3AB +#define FLAG_0x3AC 0x3AC +#define FLAG_0x3AD 0x3AD +#define FLAG_0x3AE 0x3AE +#define FLAG_0x3AF 0x3AF +#define FLAG_0x3B0 0x3B0 +#define FLAG_0x3B1 0x3B1 +#define FLAG_0x3B2 0x3B2 +#define FLAG_0x3B3 0x3B3 +#define FLAG_0x3B4 0x3B4 +#define FLAG_0x3B5 0x3B5 +#define FLAG_0x3B6 0x3B6 +#define FLAG_0x3B7 0x3B7 +#define FLAG_0x3B8 0x3B8 +#define FLAG_0x3B9 0x3B9 +#define FLAG_0x3BA 0x3BA +#define FLAG_0x3BB 0x3BB +#define FLAG_0x3BC 0x3BC +#define FLAG_0x3BD 0x3BD +#define FLAG_0x3BE 0x3BE +#define FLAG_0x3BF 0x3BF +#define FLAG_0x3C0 0x3C0 +#define FLAG_0x3C1 0x3C1 +#define FLAG_0x3C2 0x3C2 +#define FLAG_0x3C3 0x3C3 +#define FLAG_0x3C4 0x3C4 +#define FLAG_0x3C5 0x3C5 +#define FLAG_0x3C6 0x3C6 +#define FLAG_0x3C7 0x3C7 +#define FLAG_0x3C8 0x3C8 +#define FLAG_0x3C9 0x3C9 +#define FLAG_0x3CA 0x3CA +#define FLAG_0x3CB 0x3CB +#define FLAG_0x3CC 0x3CC +#define FLAG_0x3CD 0x3CD +#define FLAG_0x3CE 0x3CE +#define FLAG_0x3CF 0x3CF +#define FLAG_0x3D0 0x3D0 +#define FLAG_0x3D1 0x3D1 +#define FLAG_0x3D2 0x3D2 +#define FLAG_0x3D3 0x3D3 +#define FLAG_0x3D4 0x3D4 +#define FLAG_0x3D5 0x3D5 +#define FLAG_0x3D6 0x3D6 +#define FLAG_0x3D7 0x3D7 +#define FLAG_0x3D8 0x3D8 +#define FLAG_0x3D9 0x3D9 +#define FLAG_0x3DA 0x3DA +#define FLAG_0x3DB 0x3DB +#define FLAG_0x3DC 0x3DC +#define FLAG_0x3DD 0x3DD +#define FLAG_0x3DE 0x3DE +#define FLAG_0x3DF 0x3DF +#define FLAG_0x3E0 0x3E0 +#define FLAG_0x3E1 0x3E1 +#define FLAG_0x3E2 0x3E2 +#define FLAG_0x3E3 0x3E3 +#define FLAG_0x3E4 0x3E4 +#define FLAG_0x3E5 0x3E5 +#define FLAG_0x3E6 0x3E6 +#define FLAG_0x3E7 0x3E7 +#define FLAG_0x3E8 0x3E8 +#define FLAG_0x3E9 0x3E9 +#define FLAG_0x3EA 0x3EA +#define FLAG_0x3EB 0x3EB +#define FLAG_0x3EC 0x3EC +#define FLAG_0x3ED 0x3ED +#define FLAG_0x3EE 0x3EE +#define FLAG_0x3EF 0x3EF +#define FLAG_0x3F0 0x3F0 +#define FLAG_0x3F1 0x3F1 +#define FLAG_0x3F2 0x3F2 +#define FLAG_0x3F3 0x3F3 +#define FLAG_0x3F4 0x3F4 +#define FLAG_0x3F5 0x3F5 +#define FLAG_0x3F6 0x3F6 +#define FLAG_0x3F7 0x3F7 +#define FLAG_0x3F8 0x3F8 +#define FLAG_0x3F9 0x3F9 +#define FLAG_0x3FA 0x3FA +#define FLAG_0x3FB 0x3FB +#define FLAG_0x3FC 0x3FC +#define FLAG_0x3FD 0x3FD +#define FLAG_0x3FE 0x3FE +#define FLAG_0x3FF 0x3FF +#define FLAG_0x400 0x400 +#define FLAG_0x401 0x401 +#define FLAG_0x402 0x402 +#define FLAG_0x403 0x403 +#define FLAG_0x404 0x404 +#define FLAG_0x405 0x405 +#define FLAG_0x406 0x406 +#define FLAG_0x407 0x407 +#define FLAG_0x408 0x408 +#define FLAG_0x409 0x409 +#define FLAG_0x40A 0x40A +#define FLAG_0x40B 0x40B +#define FLAG_0x40C 0x40C +#define FLAG_0x40D 0x40D +#define FLAG_0x40E 0x40E +#define FLAG_0x40F 0x40F +#define FLAG_0x410 0x410 +#define FLAG_0x411 0x411 +#define FLAG_0x412 0x412 +#define FLAG_0x413 0x413 +#define FLAG_0x414 0x414 +#define FLAG_0x415 0x415 +#define FLAG_0x416 0x416 +#define FLAG_0x417 0x417 +#define FLAG_0x418 0x418 +#define FLAG_0x419 0x419 +#define FLAG_0x41A 0x41A +#define FLAG_0x41B 0x41B +#define FLAG_0x41C 0x41C +#define FLAG_0x41D 0x41D +#define FLAG_0x41E 0x41E +#define FLAG_0x41F 0x41F +#define FLAG_0x420 0x420 +#define FLAG_0x421 0x421 +#define FLAG_0x422 0x422 +#define FLAG_0x423 0x423 +#define FLAG_0x424 0x424 +#define FLAG_0x425 0x425 +#define FLAG_0x426 0x426 +#define FLAG_0x427 0x427 +#define FLAG_0x428 0x428 +#define FLAG_0x429 0x429 +#define FLAG_0x42A 0x42A +#define FLAG_0x42B 0x42B +#define FLAG_0x42C 0x42C +#define FLAG_0x42D 0x42D +#define FLAG_0x42E 0x42E +#define FLAG_0x42F 0x42F +#define FLAG_0x430 0x430 +#define FLAG_0x431 0x431 +#define FLAG_0x432 0x432 +#define FLAG_0x433 0x433 +#define FLAG_0x434 0x434 +#define FLAG_0x435 0x435 +#define FLAG_0x436 0x436 +#define FLAG_0x437 0x437 +#define FLAG_0x438 0x438 +#define FLAG_0x439 0x439 +#define FLAG_0x43A 0x43A +#define FLAG_0x43B 0x43B +#define FLAG_0x43C 0x43C +#define FLAG_0x43D 0x43D +#define FLAG_0x43E 0x43E +#define FLAG_0x43F 0x43F +#define FLAG_0x440 0x440 +#define FLAG_0x441 0x441 +#define FLAG_0x442 0x442 +#define FLAG_0x443 0x443 +#define FLAG_0x444 0x444 +#define FLAG_0x445 0x445 +#define FLAG_0x446 0x446 +#define FLAG_0x447 0x447 +#define FLAG_0x448 0x448 +#define FLAG_0x449 0x449 +#define FLAG_0x44A 0x44A +#define FLAG_0x44B 0x44B +#define FLAG_0x44C 0x44C +#define FLAG_0x44D 0x44D +#define FLAG_0x44E 0x44E +#define FLAG_0x44F 0x44F +#define FLAG_0x450 0x450 +#define FLAG_0x451 0x451 +#define FLAG_0x452 0x452 +#define FLAG_0x453 0x453 +#define FLAG_0x454 0x454 +#define FLAG_0x455 0x455 +#define FLAG_0x456 0x456 +#define FLAG_0x457 0x457 +#define FLAG_0x458 0x458 +#define FLAG_0x459 0x459 +#define FLAG_0x45A 0x45A +#define FLAG_0x45B 0x45B +#define FLAG_0x45C 0x45C +#define FLAG_0x45D 0x45D +#define FLAG_0x45E 0x45E +#define FLAG_0x45F 0x45F +#define FLAG_0x460 0x460 +#define FLAG_0x461 0x461 +#define FLAG_0x462 0x462 +#define FLAG_0x463 0x463 +#define FLAG_0x464 0x464 +#define FLAG_0x465 0x465 +#define FLAG_0x466 0x466 +#define FLAG_0x467 0x467 +#define FLAG_0x468 0x468 +#define FLAG_0x469 0x469 +#define FLAG_0x46A 0x46A +#define FLAG_0x46B 0x46B +#define FLAG_0x46C 0x46C +#define FLAG_0x46D 0x46D +#define FLAG_0x46E 0x46E +#define FLAG_0x46F 0x46F +#define FLAG_0x470 0x470 +#define FLAG_0x471 0x471 +#define FLAG_0x472 0x472 +#define FLAG_0x473 0x473 +#define FLAG_0x474 0x474 +#define FLAG_0x475 0x475 +#define FLAG_0x476 0x476 +#define FLAG_0x477 0x477 +#define FLAG_0x478 0x478 +#define FLAG_0x479 0x479 +#define FLAG_0x47A 0x47A +#define FLAG_0x47B 0x47B +#define FLAG_0x47C 0x47C +#define FLAG_0x47D 0x47D +#define FLAG_0x47E 0x47E +#define FLAG_0x47F 0x47F +#define FLAG_0x480 0x480 +#define FLAG_0x481 0x481 +#define FLAG_0x482 0x482 +#define FLAG_0x483 0x483 +#define FLAG_0x484 0x484 +#define FLAG_0x485 0x485 +#define FLAG_0x486 0x486 +#define FLAG_0x487 0x487 +#define FLAG_0x488 0x488 +#define FLAG_0x489 0x489 +#define FLAG_0x48A 0x48A +#define FLAG_0x48B 0x48B +#define FLAG_0x48C 0x48C +#define FLAG_0x48D 0x48D +#define FLAG_0x48E 0x48E +#define FLAG_0x48F 0x48F +#define FLAG_0x490 0x490 +#define FLAG_0x491 0x491 +#define FLAG_0x492 0x492 +#define FLAG_0x493 0x493 +#define FLAG_0x494 0x494 +#define FLAG_0x495 0x495 +#define FLAG_0x496 0x496 +#define FLAG_0x497 0x497 +#define FLAG_0x498 0x498 +#define FLAG_0x499 0x499 +#define FLAG_0x49A 0x49A +#define FLAG_0x49B 0x49B +#define FLAG_0x49C 0x49C +#define FLAG_0x49D 0x49D +#define FLAG_0x49E 0x49E +#define FLAG_0x49F 0x49F +#define FLAG_0x4A0 0x4A0 +#define FLAG_0x4A1 0x4A1 +#define FLAG_0x4A2 0x4A2 +#define FLAG_0x4A3 0x4A3 +#define FLAG_0x4A4 0x4A4 +#define FLAG_0x4A5 0x4A5 +#define FLAG_0x4A6 0x4A6 +#define FLAG_0x4A7 0x4A7 +#define FLAG_0x4A8 0x4A8 +#define FLAG_0x4A9 0x4A9 +#define FLAG_0x4AA 0x4AA +#define FLAG_0x4AB 0x4AB +#define FLAG_0x4AC 0x4AC +#define FLAG_0x4AD 0x4AD +#define FLAG_0x4AE 0x4AE +#define FLAG_0x4AF 0x4AF +#define FLAG_0x4B0 0x4B0 +#define FLAG_0x4B1 0x4B1 +#define FLAG_0x4B2 0x4B2 +#define FLAG_0x4B3 0x4B3 +#define FLAG_0x4B4 0x4B4 +#define FLAG_0x4B5 0x4B5 +#define FLAG_0x4B6 0x4B6 +#define FLAG_0x4B7 0x4B7 +#define FLAG_0x4B8 0x4B8 +#define FLAG_0x4B9 0x4B9 +#define FLAG_0x4BA 0x4BA +#define FLAG_0x4BB 0x4BB +#define FLAG_0x4BC 0x4BC +#define FLAG_0x4BD 0x4BD +#define FLAG_0x4BE 0x4BE +#define FLAG_0x4BF 0x4BF +#define FLAG_0x4C0 0x4C0 +#define FLAG_0x4C1 0x4C1 +#define FLAG_0x4C2 0x4C2 +#define FLAG_0x4C3 0x4C3 +#define FLAG_0x4C4 0x4C4 +#define FLAG_0x4C5 0x4C5 +#define FLAG_0x4C6 0x4C6 +#define FLAG_0x4C7 0x4C7 +#define FLAG_0x4C8 0x4C8 +#define FLAG_0x4C9 0x4C9 +#define FLAG_0x4CA 0x4CA +#define FLAG_0x4CB 0x4CB +#define FLAG_0x4CC 0x4CC +#define FLAG_0x4CD 0x4CD +#define FLAG_0x4CE 0x4CE +#define FLAG_0x4CF 0x4CF +#define FLAG_0x4D0 0x4D0 +#define FLAG_0x4D1 0x4D1 +#define FLAG_0x4D2 0x4D2 +#define FLAG_0x4D3 0x4D3 +#define FLAG_0x4D4 0x4D4 +#define FLAG_0x4D5 0x4D5 +#define FLAG_0x4D6 0x4D6 +#define FLAG_0x4D7 0x4D7 +#define FLAG_0x4D8 0x4D8 +#define FLAG_0x4D9 0x4D9 +#define FLAG_0x4DA 0x4DA +#define FLAG_0x4DB 0x4DB +#define FLAG_0x4DC 0x4DC +#define FLAG_0x4DD 0x4DD +#define FLAG_0x4DE 0x4DE +#define FLAG_0x4DF 0x4DF +#define FLAG_0x4E0 0x4E0 +#define FLAG_0x4E1 0x4E1 +#define FLAG_0x4E2 0x4E2 +#define FLAG_0x4E3 0x4E3 +#define FLAG_0x4E4 0x4E4 +#define FLAG_0x4E5 0x4E5 +#define FLAG_0x4E6 0x4E6 +#define FLAG_0x4E7 0x4E7 +#define FLAG_0x4E8 0x4E8 +#define FLAG_0x4E9 0x4E9 +#define FLAG_0x4EA 0x4EA +#define FLAG_0x4EB 0x4EB +#define FLAG_0x4EC 0x4EC +#define FLAG_0x4ED 0x4ED +#define FLAG_0x4EE 0x4EE +#define FLAG_0x4EF 0x4EF +#define FLAG_0x4F0 0x4F0 +#define FLAG_0x4F1 0x4F1 +#define FLAG_0x4F2 0x4F2 +#define FLAG_0x4F3 0x4F3 +#define FLAG_0x4F4 0x4F4 +#define FLAG_0x4F5 0x4F5 +#define FLAG_0x4F6 0x4F6 +#define FLAG_0x4F7 0x4F7 +#define FLAG_0x4F8 0x4F8 +#define FLAG_0x4F9 0x4F9 +#define FLAG_0x4FA 0x4FA +#define FLAG_0x4FB 0x4FB +#define FLAG_0x4FC 0x4FC +#define FLAG_0x4FD 0x4FD +#define FLAG_0x4FE 0x4FE +#define FLAG_0x4FF 0x4FF + +#define FLAG_TRAINER_FLAG_START 0x500 + +#define TRAINERS_FLAG_NO 0x356 +#define CODE_FLAGS (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860 + +// SYSTEM FLAGS + +// 0x860 +#define FLAG_SYS_POKEMON_GET (CODE_FLAGS + 0) +#define FLAG_SYS_POKEDEX_GET (CODE_FLAGS + 1) +#define FLAG_SYS_POKENAV_GET (CODE_FLAGS + 2) +// third one appears unused +#define FLAG_SYS_GAME_CLEAR (CODE_FLAGS + 4) +#define FLAG_SYS_CHAT_USED (CODE_FLAGS + 5) +#define FLAG_SYS_HIPSTER_MEET (CODE_FLAGS + 6) + +// badges +#define FLAG_BADGE01_GET (CODE_FLAGS + 7) +#define FLAG_BADGE02_GET (CODE_FLAGS + 8) +#define FLAG_BADGE03_GET (CODE_FLAGS + 9) +#define FLAG_BADGE04_GET (CODE_FLAGS + 0xA) +#define FLAG_BADGE05_GET (CODE_FLAGS + 0xB) +#define FLAG_BADGE06_GET (CODE_FLAGS + 0xC) +#define FLAG_BADGE07_GET (CODE_FLAGS + 0xD) +#define FLAG_BADGE08_GET (CODE_FLAGS + 0xE) + +// cities and towns +#define FLAG_VISITED_LITTLEROOT_TOWN (CODE_FLAGS + 0xF) +#define FLAG_VISITED_OLDALE_TOWN (CODE_FLAGS + 0x10) +#define FLAG_VISITED_DEWFORD_TOWN (CODE_FLAGS + 0x11) +#define FLAG_VISITED_LAVARIDGE_TOWN (CODE_FLAGS + 0x12) +#define FLAG_VISITED_FALLARBOR_TOWN (CODE_FLAGS + 0x13) +#define FLAG_VISITED_VERDANTURF_TOWN (CODE_FLAGS + 0x14) +#define FLAG_VISITED_PACIFIDLOG_TOWN (CODE_FLAGS + 0x15) +#define FLAG_VISITED_PETALBURG_CITY (CODE_FLAGS + 0x16) +#define FLAG_VISITED_SLATEPORT_CITY (CODE_FLAGS + 0x17) +#define FLAG_VISITED_MAUVILLE_CITY (CODE_FLAGS + 0x18) +#define FLAG_VISITED_RUSTBORO_CITY (CODE_FLAGS + 0x19) +#define FLAG_VISITED_FORTREE_CITY (CODE_FLAGS + 0x1A) +#define FLAG_VISITED_LILYCOVE_CITY (CODE_FLAGS + 0x1B) +#define FLAG_VISITED_MOSSDEEP_CITY (CODE_FLAGS + 0x1C) +#define FLAG_VISITED_SOOTOPOLIS_CITY (CODE_FLAGS + 0x1D) +#define FLAG_VISITED_EVER_GRANDE_CITY (CODE_FLAGS + 0x1E) + +#define FLAG_0x87F (CODE_FLAGS + 0x1F) +#define FLAG_0x880 (CODE_FLAGS + 0x20) +#define FLAG_0x881 (CODE_FLAGS + 0x21) +#define FLAG_0x882 (CODE_FLAGS + 0x22) +#define FLAG_0x883 (CODE_FLAGS + 0x23) +#define FLAG_0x884 (CODE_FLAGS + 0x24) +#define FLAG_0x885 (CODE_FLAGS + 0x25) +#define FLAG_0x886 (CODE_FLAGS + 0x26) +#define FLAG_0x887 (CODE_FLAGS + 0x27) + +#define FLAG_SYS_USE_FLASH (CODE_FLAGS + 0x28) +#define FLAG_SYS_USE_STRENGTH (CODE_FLAGS + 0x29) +#define FLAG_SYS_WEATHER_CTRL (CODE_FLAGS + 0x2A) +#define FLAG_SYS_CYCLING_ROAD (CODE_FLAGS + 0x2B) +#define FLAG_SYS_SAFARI_MODE (CODE_FLAGS + 0x2C) +#define FLAG_SYS_CRUISE_MODE (CODE_FLAGS + 0x2D) + +#define FLAG_0x88E (CODE_FLAGS + 0x2E) +#define FLAG_0x88F (CODE_FLAGS + 0x2F) + +#define FLAG_SYS_TV_HOME (CODE_FLAGS + 0x30) +#define FLAG_SYS_TV_WATCH (CODE_FLAGS + 0x31) +#define FLAG_SYS_TV_START (CODE_FLAGS + 0x32) +#define FLAG_SYS_POPWORD_INPUT (CODE_FLAGS + 0x33) +#define FLAG_SYS_MIX_RECORD (CODE_FLAGS + 0x34) +#define FLAG_SYS_CLOCK_SET (CODE_FLAGS + 0x35) +#define FLAG_SYS_NATIONAL_DEX (CODE_FLAGS + 0x36) +#define FLAG_SYS_CAVE_SHIP (CODE_FLAGS + 0x37) +#define FLAG_SYS_CAVE_WONDER (CODE_FLAGS + 0x38) +#define FLAG_SYS_CAVE_BATTLE (CODE_FLAGS + 0x39) +#define FLAG_SYS_SHOAL_TIDE (CODE_FLAGS + 0x3A) +#define FLAG_SYS_RIBBON_GET (CODE_FLAGS + 0x3B) + +#define FLAG_0x89C (CODE_FLAGS + 0x3C) +#define FLAG_0x89D (CODE_FLAGS + 0x3D) +#define FLAG_0x89E (CODE_FLAGS + 0x3E) +#define FLAG_0x89F (CODE_FLAGS + 0x3F) +#define FLAG_0x8A0 (CODE_FLAGS + 0x40) +#define FLAG_0x8A1 (CODE_FLAGS + 0x41) +#define FLAG_0x8A2 (CODE_FLAGS + 0x42) +#define FLAG_0x8A3 (CODE_FLAGS + 0x43) +#define FLAG_0x8A4 (CODE_FLAGS + 0x44) +#define FLAG_0x8A5 (CODE_FLAGS + 0x45) +#define FLAG_0x8A6 (CODE_FLAGS + 0x46) +#define FLAG_0x8A7 (CODE_FLAGS + 0x47) +#define FLAG_UNLOCK_BATTLE_FRONTIER (CODE_FLAGS + 0x48) +#define FLAG_UNLOCK_SOUTHERN_ISLAND (CODE_FLAGS + 0x49) +#define FLAG_0x8AA (CODE_FLAGS + 0x4A) + +#define FLAG_SYS_PC_LANETTE (CODE_FLAGS + 0x4B) +#define FLAG_SYS_MYSTERY_EVENT_ENABLE (CODE_FLAGS + 0x4C) +#define FLAG_SYS_ENC_UP_ITEM (CODE_FLAGS + 0x4D) +#define FLAG_SYS_ENC_DOWN_ITEM (CODE_FLAGS + 0x4E) +#define FLAG_SYS_BRAILLE_DIG (CODE_FLAGS + 0x4F) +#define FLAG_SYS_BRAILLE_STRENGTH (CODE_FLAGS + 0x50) +#define FLAG_SYS_BRAILLE_WAIT (CODE_FLAGS + 0x51) +#define FLAG_SYS_BRAILLE_FLY (CODE_FLAGS + 0x52) +#define FLAG_SYS_HAS_EON_TICKET (CODE_FLAGS + 0x53) + +#define FLAG_SYS_POKEMON_LEAGUE_FLY (CODE_FLAGS + 0x54) + +#define FLAG_0x8B5 (CODE_FLAGS + 0x55) +#define FLAG_0x8B6 (CODE_FLAGS + 0x56) +#define FLAG_0x8B7 (CODE_FLAGS + 0x57) +#define FLAG_0x8B8 (CODE_FLAGS + 0x58) +#define FLAG_0x8B9 (CODE_FLAGS + 0x59) +#define FLAG_0x8BA (CODE_FLAGS + 0x5A) +#define FLAG_0x8BB (CODE_FLAGS + 0x5B) +#define FLAG_0x8BC (CODE_FLAGS + 0x5C) + +#define FLAG_SYS_TV_LATI (CODE_FLAGS + 0x5D) + +#define FLAG_0x8BE (CODE_FLAGS + 0x5E) + +#define FLAG_SYS_SHOAL_ITEM (CODE_FLAGS + 0x5F) +#define FLAG_SYS_B_DASH (CODE_FLAGS + 0x60) // got Running Shoes +#define FLAG_SYS_CTRL_OBJ_DELETE (CODE_FLAGS + 0x61) +#define FLAG_SYS_RESET_RTC_ENABLE (CODE_FLAGS + 0x62) + +#define FLAG_0x8C3 (CODE_FLAGS + 0x63) + +#define FLAG_SYS_TOWER_SILVER (CODE_FLAGS + 0x64) +#define FLAG_SYS_TOWER_GOLD (CODE_FLAGS + 0x65) +#define FLAG_SYS_DOME_SILVER (CODE_FLAGS + 0x66) +#define FLAG_SYS_DOME_GOLD (CODE_FLAGS + 0x67) +#define FLAG_SYS_PALACE_SILVER (CODE_FLAGS + 0x68) +#define FLAG_SYS_PALACE_GOLD (CODE_FLAGS + 0x69) +#define FLAG_SYS_ARENA_SILVER (CODE_FLAGS + 0x6A) +#define FLAG_SYS_ARENA_GOLD (CODE_FLAGS + 0x6B) +#define FLAG_SYS_FACTORY_SILVER (CODE_FLAGS + 0x6C) +#define FLAG_SYS_FACTORY_GOLD (CODE_FLAGS + 0x6D) +#define FLAG_SYS_PIKE_SILVER (CODE_FLAGS + 0x6E) +#define FLAG_SYS_PIKE_GOLD (CODE_FLAGS + 0x6F) +#define FLAG_SYS_PYRAMID_SILVER (CODE_FLAGS + 0x70) +#define FLAG_SYS_PYRAMID_GOLD (CODE_FLAGS + 0x71) +#define FLAG_SYS_FRONTIER_PASS (CODE_FLAGS + 0x72) + +#define FLAG_0x8D3 (CODE_FLAGS + 0x73) +#define FLAG_0x8D4 (CODE_FLAGS + 0x74) +#define FLAG_0x8D5 (CODE_FLAGS + 0x75) +#define FLAG_0x8D6 (CODE_FLAGS + 0x76) + +#define FLAG_SYS_STORAGE_UNKNOWN_FLAG (CODE_FLAGS + 0x77) + +#define FLAG_0x8D8 (CODE_FLAGS + 0x78) +#define FLAG_0x8D9 (CODE_FLAGS + 0x79) +#define FLAG_0x8DA (CODE_FLAGS + 0x7A) + +#define FLAG_SYS_MYSTERY_GIFT_ENABLE (CODE_FLAGS + 0x7B) + +#define FLAG_0x8DC (CODE_FLAGS + 0x7C) +#define FLAG_0x8DD (CODE_FLAGS + 0x7D) +#define FLAG_0x8DE (CODE_FLAGS + 0x7E) +#define FLAG_0x8DF (CODE_FLAGS + 0x7F) +#define FLAG_0x8E0 (CODE_FLAGS + 0x80) +#define FLAG_0x8E1 (CODE_FLAGS + 0x81) +#define FLAG_0x8E2 (CODE_FLAGS + 0x82) +#define FLAG_0x8E3 (CODE_FLAGS + 0x83) +#define FLAG_0x8E4 (CODE_FLAGS + 0x84) +#define FLAG_0x8E5 (CODE_FLAGS + 0x85) +#define FLAG_0x8E6 (CODE_FLAGS + 0x86) +#define FLAG_0x8E7 (CODE_FLAGS + 0x87) +#define FLAG_0x8E8 (CODE_FLAGS + 0x88) +#define FLAG_0x8E9 (CODE_FLAGS + 0x89) +#define FLAG_0x8EA (CODE_FLAGS + 0x8A) +#define FLAG_0x8EB (CODE_FLAGS + 0x8B) +#define FLAG_0x8EC (CODE_FLAGS + 0x8C) +#define FLAG_0x8ED (CODE_FLAGS + 0x8D) +#define FLAG_0x8EE (CODE_FLAGS + 0x8E) +#define FLAG_0x8EF (CODE_FLAGS + 0x8F) +#define FLAG_0x8F0 (CODE_FLAGS + 0x90) +#define FLAG_0x8F1 (CODE_FLAGS + 0x91) +#define FLAG_0x8F2 (CODE_FLAGS + 0x92) +#define FLAG_0x8F3 (CODE_FLAGS + 0x93) +#define FLAG_0x8F4 (CODE_FLAGS + 0x94) +#define FLAG_0x8F5 (CODE_FLAGS + 0x95) +#define FLAG_0x8F6 (CODE_FLAGS + 0x96) +#define FLAG_0x8F7 (CODE_FLAGS + 0x97) +#define FLAG_0x8F8 (CODE_FLAGS + 0x98) +#define FLAG_0x8F9 (CODE_FLAGS + 0x99) +#define FLAG_0x8FA (CODE_FLAGS + 0x9A) +#define FLAG_0x8FB (CODE_FLAGS + 0x9B) +#define FLAG_0x8FC (CODE_FLAGS + 0x9C) +#define FLAG_0x8FD (CODE_FLAGS + 0x9D) +#define FLAG_0x8FE (CODE_FLAGS + 0x9E) +#define FLAG_0x8FF (CODE_FLAGS + 0x9F) +#define FLAG_0x900 (CODE_FLAGS + 0xA0) +#define FLAG_0x901 (CODE_FLAGS + 0xA1) +#define FLAG_0x902 (CODE_FLAGS + 0xA2) +#define FLAG_0x903 (CODE_FLAGS + 0xA3) +#define FLAG_0x904 (CODE_FLAGS + 0xA4) +#define FLAG_0x905 (CODE_FLAGS + 0xA5) +#define FLAG_0x906 (CODE_FLAGS + 0xA6) +#define FLAG_0x907 (CODE_FLAGS + 0xA7) +#define FLAG_0x908 (CODE_FLAGS + 0xA8) +#define FLAG_0x909 (CODE_FLAGS + 0xA9) +#define FLAG_0x90A (CODE_FLAGS + 0xAA) +#define FLAG_0x90B (CODE_FLAGS + 0xAB) +#define FLAG_0x90C (CODE_FLAGS + 0xAC) +#define FLAG_0x90D (CODE_FLAGS + 0xAD) +#define FLAG_0x90E (CODE_FLAGS + 0xAE) +#define FLAG_0x90F (CODE_FLAGS + 0xAF) +#define FLAG_0x910 (CODE_FLAGS + 0xB0) +#define FLAG_0x911 (CODE_FLAGS + 0xB1) +#define FLAG_0x912 (CODE_FLAGS + 0xB2) +#define FLAG_0x913 (CODE_FLAGS + 0xB3) +#define FLAG_0x914 (CODE_FLAGS + 0xB4) +#define FLAG_0x915 (CODE_FLAGS + 0xB5) +#define FLAG_0x916 (CODE_FLAGS + 0xB6) +#define FLAG_0x917 (CODE_FLAGS + 0xB7) +#define FLAG_0x918 (CODE_FLAGS + 0xB8) +#define FLAG_0x919 (CODE_FLAGS + 0xB9) +#define FLAG_0x91A (CODE_FLAGS + 0xBA) +#define FLAG_0x91B (CODE_FLAGS + 0xBB) +#define FLAG_0x91C (CODE_FLAGS + 0xBC) +#define FLAG_0x91D (CODE_FLAGS + 0xBD) +#define FLAG_0x91E (CODE_FLAGS + 0xBE) +#define FLAG_0x91F (CODE_FLAGS + 0xBF) +#define FLAG_0x920 (CODE_FLAGS + 0xC0) +#define FLAG_0x921 (CODE_FLAGS + 0xC1) +#define FLAG_0x922 (CODE_FLAGS + 0xC2) +#define FLAG_0x923 (CODE_FLAGS + 0xC3) +#define FLAG_0x924 (CODE_FLAGS + 0xC4) +#define FLAG_0x925 (CODE_FLAGS + 0xC5) +#define FLAG_0x926 (CODE_FLAGS + 0xC6) +#define FLAG_0x927 (CODE_FLAGS + 0xC7) +#define FLAG_0x928 (CODE_FLAGS + 0xC8) +#define FLAG_0x929 (CODE_FLAGS + 0xC9) +#define FLAG_0x92A (CODE_FLAGS + 0xCA) +#define FLAG_0x92B (CODE_FLAGS + 0xCB) +#define FLAG_0x92C (CODE_FLAGS + 0xCC) +#define FLAG_0x92D (CODE_FLAGS + 0xCD) +#define FLAG_0x92E (CODE_FLAGS + 0xCE) +#define FLAG_0x92F (CODE_FLAGS + 0xCF) +#define FLAG_0x930 (CODE_FLAGS + 0xD0) +#define FLAG_0x931 (CODE_FLAGS + 0xD1) +#define FLAG_0x932 (CODE_FLAGS + 0xD2) +#define FLAG_0x933 (CODE_FLAGS + 0xD3) +#define FLAG_0x934 (CODE_FLAGS + 0xD4) +#define FLAG_0x935 (CODE_FLAGS + 0xD5) +#define FLAG_0x936 (CODE_FLAGS + 0xD6) +#define FLAG_0x937 (CODE_FLAGS + 0xD7) +#define FLAG_0x938 (CODE_FLAGS + 0xD8) +#define FLAG_0x939 (CODE_FLAGS + 0xD9) +#define FLAG_0x93A (CODE_FLAGS + 0xDA) +#define FLAG_0x93B (CODE_FLAGS + 0xDB) +#define FLAG_0x93C (CODE_FLAGS + 0xDC) +#define FLAG_0x93D (CODE_FLAGS + 0xDD) +#define FLAG_0x93E (CODE_FLAGS + 0xDE) +#define FLAG_0x93F (CODE_FLAGS + 0xDF) +#define FLAG_0x940 (CODE_FLAGS + 0xE0) +#define FLAG_0x941 (CODE_FLAGS + 0xE1) +#define FLAG_0x942 (CODE_FLAGS + 0xE2) +#define FLAG_0x943 (CODE_FLAGS + 0xE3) +#define FLAG_0x944 (CODE_FLAGS + 0xE4) +#define FLAG_0x945 (CODE_FLAGS + 0xE5) +#define FLAG_0x946 (CODE_FLAGS + 0xE6) +#define FLAG_0x947 (CODE_FLAGS + 0xE7) +#define FLAG_0x948 (CODE_FLAGS + 0xE8) +#define FLAG_0x949 (CODE_FLAGS + 0xE9) +#define FLAG_0x94A (CODE_FLAGS + 0xEA) +#define FLAG_0x94B (CODE_FLAGS + 0xEB) +#define FLAG_0x94C (CODE_FLAGS + 0xEC) +#define FLAG_0x94D (CODE_FLAGS + 0xED) +#define FLAG_0x94E (CODE_FLAGS + 0xEE) +#define FLAG_0x94F (CODE_FLAGS + 0xEF) +#define FLAG_0x950 (CODE_FLAGS + 0xF0) +#define FLAG_0x951 (CODE_FLAGS + 0xF1) +#define FLAG_0x952 (CODE_FLAGS + 0xF2) +#define FLAG_0x953 (CODE_FLAGS + 0xF3) +#define FLAG_0x954 (CODE_FLAGS + 0xF4) +#define FLAG_0x955 (CODE_FLAGS + 0xF5) +#define FLAG_0x956 (CODE_FLAGS + 0xF6) +#define FLAG_0x957 (CODE_FLAGS + 0xF7) +#define FLAG_0x958 (CODE_FLAGS + 0xF8) +#define FLAG_0x959 (CODE_FLAGS + 0xF9) +#define FLAG_0x95A (CODE_FLAGS + 0xFA) +#define FLAG_0x95B (CODE_FLAGS + 0xFB) +#define FLAG_0x95C (CODE_FLAGS + 0xFC) +#define FLAG_0x95D (CODE_FLAGS + 0xFD) +#define FLAG_0x95E (CODE_FLAGS + 0xFE) +#define FLAG_0x95F (CODE_FLAGS + 0xFF) + +// SPECIAL FLAGS (unknown purpose) +#define FLAG_SPECIAL_FLAG_0x4000 0x4000 +#define FLAG_SPECIAL_FLAG_0x4001 0x4001 +#define FLAG_SPECIAL_FLAG_0x4002 0x4002 +#define FLAG_SPECIAL_FLAG_0x4003 0x4003 +#define FLAG_SPECIAL_FLAG_0x4004 0x4004 + +#endif // GUARD_CONSTANTS_FLAGS_H diff --git a/include/constants/game_stat.h b/include/constants/game_stat.h new file mode 100644 index 0000000000..b1f3d41970 --- /dev/null +++ b/include/constants/game_stat.h @@ -0,0 +1,59 @@ +#ifndef GUARD_CONSTANTS_GAME_STAT_H +#define GUARD_CONSTANTS_GAME_STAT_H + +#define GAME_STAT_SAVED_GAME 0 +#define GAME_STAT_FIRST_HOF_PLAY_TIME 1 +#define GAME_STAT_STARTED_TRENDS 2 +#define GAME_STAT_PLANTED_BERRIES 3 +#define GAME_STAT_TRADED_BIKES 4 +#define GAME_STAT_STEPS 5 +#define GAME_STAT_GOT_INTERVIEWED 6 +#define GAME_STAT_TOTAL_BATTLES 7 +#define GAME_STAT_WILD_BATTLES 8 +#define GAME_STAT_TRAINER_BATTLES 9 +#define GAME_STAT_ENTERED_HOF 10 +#define GAME_STAT_POKEMON_CAPTURES 11 +#define GAME_STAT_FISHING_CAPTURES 12 +#define GAME_STAT_HATCHED_EGGS 13 +#define GAME_STAT_EVOLVED_POKEMON 14 +#define GAME_STAT_USED_POKECENTER 15 +#define GAME_STAT_RESTED_AT_HOME 16 +#define GAME_STAT_ENTERED_SAFARI_ZONE 17 +#define GAME_STAT_USED_CUT 18 +#define GAME_STAT_USED_ROCK_SMASH 19 +#define GAME_STAT_MOVED_SECRET_BASE 20 +#define GAME_STAT_POKEMON_TRADES 21 +#define GAME_STAT_UNKNOWN_22 22 +#define GAME_STAT_LINK_BATTLE_WINS 23 +#define GAME_STAT_LINK_BATTLE_LOSSES 24 +#define GAME_STAT_LINK_BATTLE_DRAWS 25 +#define GAME_STAT_USED_SPLASH 26 +#define GAME_STAT_USED_STRUGGLE 27 +#define GAME_STAT_SLOT_JACKPOTS 28 +#define GAME_STAT_CONSECUTIVE_ROULETTE_WINS 29 +#define GAME_STAT_ENTERED_BATTLE_TOWER 30 +#define GAME_STAT_UNKNOWN_31 31 +#define GAME_STAT_BATTLE_TOWER_BEST_STREAK 32 +#define GAME_STAT_POKEBLOCKS 33 +#define GAME_STAT_POKEBLOCKS_WITH_FRIENDS 34 +#define GAME_STAT_WON_LINK_CONTEST 35 +#define GAME_STAT_ENTERED_CONTEST 36 +#define GAME_STAT_WON_CONTEST 37 +#define GAME_STAT_SHOPPED 38 +#define GAME_STAT_USED_ITEMFINDER 39 +#define GAME_STAT_GOT_RAINED_ON 40 +#define GAME_STAT_CHECKED_POKEDEX 41 +#define GAME_STAT_RECEIVED_RIBBONS 42 +#define GAME_STAT_JUMPED_DOWN_LEDGES 43 +#define GAME_STAT_WATCHED_TV 44 +#define GAME_STAT_CHECKED_CLOCK 45 +#define GAME_STAT_WON_POKEMON_LOTTERY 46 +#define GAME_STAT_USED_DAYCARE 47 +#define GAME_STAT_RODE_CABLE_CAR 48 +#define GAME_STAT_ENTERED_HOT_SPRINGS 49 + +/*TODO: add new stats added in Emerald*/ + +#define NUM_GAME_STATS 64 + +#endif // GUARD_CONSTANTS_GAME_STAT_H diff --git a/include/constants/hold_effects.h b/include/constants/hold_effects.h new file mode 100644 index 0000000000..b653f5a92f --- /dev/null +++ b/include/constants/hold_effects.h @@ -0,0 +1,72 @@ +#ifndef GUARD_HOLD_EFFECTS_H +#define GUARD_HOLD_EFFECTS_H + +#define HOLD_EFFECT_NONE 0 +#define HOLD_EFFECT_RESTORE_HP 1 +#define HOLD_EFFECT_CURE_PAR 2 +#define HOLD_EFFECT_CURE_SLP 3 +#define HOLD_EFFECT_CURE_PSN 4 +#define HOLD_EFFECT_CURE_BRN 5 +#define HOLD_EFFECT_CURE_FRZ 6 +#define HOLD_EFFECT_RESTORE_PP 7 +#define HOLD_EFFECT_CURE_CONFUSION 8 +#define HOLD_EFFECT_CURE_STATUS 9 +#define HOLD_EFFECT_CONFUSE_SPICY 10 +#define HOLD_EFFECT_CONFUSE_DRY 11 +#define HOLD_EFFECT_CONFUSE_SWEET 12 +#define HOLD_EFFECT_CONFUSE_BITTER 13 +#define HOLD_EFFECT_CONFUSE_SOUR 14 +#define HOLD_EFFECT_ATTACK_UP 15 +#define HOLD_EFFECT_DEFENSE_UP 16 +#define HOLD_EFFECT_SPEED_UP 17 +#define HOLD_EFFECT_SP_ATTACK_UP 18 +#define HOLD_EFFECT_SP_DEFENSE_UP 19 +#define HOLD_EFFECT_CRITICAL_UP 20 +#define HOLD_EFFECT_RANDOM_STAT_UP 21 +#define HOLD_EFFECT_EVASION_UP 22 +#define HOLD_EFFECT_RESTORE_STATS 23 +#define HOLD_EFFECT_MACHO_BRACE 24 +#define HOLD_EFFECT_EXP_SHARE 25 +#define HOLD_EFFECT_QUICK_CLAW 26 +#define HOLD_EFFECT_HAPPINESS_UP 27 +#define HOLD_EFFECT_CURE_ATTRACT 28 +#define HOLD_EFFECT_CHOICE_BAND 29 +#define HOLD_EFFECT_FLINCH 30 +#define HOLD_EFFECT_BUG_POWER 31 +#define HOLD_EFFECT_DOUBLE_PRIZE 32 +#define HOLD_EFFECT_REPEL 33 +#define HOLD_EFFECT_SOUL_DEW 34 +#define HOLD_EFFECT_DEEP_SEA_TOOTH 35 +#define HOLD_EFFECT_DEEP_SEA_SCALE 36 +#define HOLD_EFFECT_CAN_ALWAYS_RUN 37 +#define HOLD_EFFECT_PREVENT_EVOLVE 38 +#define HOLD_EFFECT_FOCUS_BAND 39 +#define HOLD_EFFECT_LUCKY_EGG 40 +#define HOLD_EFFECT_SCOPE_LENS 41 +#define HOLD_EFFECT_STEEL_POWER 42 +#define HOLD_EFFECT_LEFTOVERS 43 +#define HOLD_EFFECT_DRAGON_SCALE 44 +#define HOLD_EFFECT_LIGHT_BALL 45 +#define HOLD_EFFECT_GROUND_POWER 46 +#define HOLD_EFFECT_ROCK_POWER 47 +#define HOLD_EFFECT_GRASS_POWER 48 +#define HOLD_EFFECT_DARK_POWER 49 +#define HOLD_EFFECT_FIGHTING_POWER 50 +#define HOLD_EFFECT_ELECTRIC_POWER 51 +#define HOLD_EFFECT_WATER_POWER 52 +#define HOLD_EFFECT_FLYING_POWER 53 +#define HOLD_EFFECT_POISON_POWER 54 +#define HOLD_EFFECT_ICE_POWER 55 +#define HOLD_EFFECT_GHOST_POWER 56 +#define HOLD_EFFECT_PSYCHIC_POWER 57 +#define HOLD_EFFECT_FIRE_POWER 58 +#define HOLD_EFFECT_DRAGON_POWER 59 +#define HOLD_EFFECT_NORMAL_POWER 60 +#define HOLD_EFFECT_UP_GRADE 61 +#define HOLD_EFFECT_SHELL_BELL 62 +#define HOLD_EFFECT_LUCKY_PUNCH 63 +#define HOLD_EFFECT_METAL_POWDER 64 +#define HOLD_EFFECT_THICK_CLUB 65 +#define HOLD_EFFECT_STICK 66 + +#endif // GUARD_HOLD_EFFECTS_H diff --git a/include/constants/items.h b/include/constants/items.h new file mode 100644 index 0000000000..6135b8d6f7 --- /dev/null +++ b/include/constants/items.h @@ -0,0 +1,393 @@ +#ifndef GUARD_CONSTANTS_ITEMS_H +#define GUARD_CONSTANTS_ITEMS_H + +#define ITEM_NONE 0 +#define ITEM_MASTER_BALL 1 +#define ITEM_ULTRA_BALL 2 +#define ITEM_GREAT_BALL 3 +#define ITEM_POKE_BALL 4 +#define ITEM_SAFARI_BALL 5 +#define ITEM_NET_BALL 6 +#define ITEM_DIVE_BALL 7 +#define ITEM_NEST_BALL 8 +#define ITEM_REPEAT_BALL 9 +#define ITEM_TIMER_BALL 10 +#define ITEM_LUXURY_BALL 11 +#define ITEM_PREMIER_BALL 12 +#define ITEM_POTION 13 +#define ITEM_ANTIDOTE 14 +#define ITEM_BURN_HEAL 15 +#define ITEM_ICE_HEAL 16 +#define ITEM_AWAKENING 17 +#define ITEM_PARALYZE_HEAL 18 +#define ITEM_FULL_RESTORE 19 +#define ITEM_MAX_POTION 20 +#define ITEM_HYPER_POTION 21 +#define ITEM_SUPER_POTION 22 +#define ITEM_FULL_HEAL 23 +#define ITEM_REVIVE 24 +#define ITEM_MAX_REVIVE 25 +#define ITEM_FRESH_WATER 26 +#define ITEM_SODA_POP 27 +#define ITEM_LEMONADE 28 +#define ITEM_MOOMOO_MILK 29 +#define ITEM_ENERGY_POWDER 30 +#define ITEM_ENERGY_ROOT 31 +#define ITEM_HEAL_POWDER 32 +#define ITEM_REVIVAL_HERB 33 +#define ITEM_ETHER 34 +#define ITEM_MAX_ETHER 35 +#define ITEM_ELIXIR 36 +#define ITEM_MAX_ELIXIR 37 +#define ITEM_LAVA_COOKIE 38 +#define ITEM_BLUE_FLUTE 39 +#define ITEM_YELLOW_FLUTE 40 +#define ITEM_RED_FLUTE 41 +#define ITEM_BLACK_FLUTE 42 +#define ITEM_WHITE_FLUTE 43 +#define ITEM_BERRY_JUICE 44 +#define ITEM_SACRED_ASH 45 +#define ITEM_SHOAL_SALT 46 +#define ITEM_SHOAL_SHELL 47 +#define ITEM_RED_SHARD 48 +#define ITEM_BLUE_SHARD 49 +#define ITEM_YELLOW_SHARD 50 +#define ITEM_GREEN_SHARD 51 +#define ITEM_034 52 +#define ITEM_035 53 +#define ITEM_036 54 +#define ITEM_037 55 +#define ITEM_038 56 +#define ITEM_039 57 +#define ITEM_03A 58 +#define ITEM_03B 59 +#define ITEM_03C 60 +#define ITEM_03D 61 +#define ITEM_03E 62 +#define ITEM_HP_UP 63 +#define ITEM_PROTEIN 64 +#define ITEM_IRON 65 +#define ITEM_CARBOS 66 +#define ITEM_CALCIUM 67 +#define ITEM_RARE_CANDY 68 +#define ITEM_PP_UP 69 +#define ITEM_ZINC 70 +#define ITEM_PP_MAX 71 +#define ITEM_048 72 +#define ITEM_GUARD_SPEC 73 +#define ITEM_DIRE_HIT 74 +#define ITEM_X_ATTACK 75 +#define ITEM_X_DEFEND 76 +#define ITEM_X_SPEED 77 +#define ITEM_X_ACCURACY 78 +#define ITEM_X_SPECIAL 79 +#define ITEM_POKE_DOLL 80 +#define ITEM_FLUFFY_TAIL 81 +#define ITEM_052 82 +#define ITEM_SUPER_REPEL 83 +#define ITEM_MAX_REPEL 84 +#define ITEM_ESCAPE_ROPE 85 +#define ITEM_REPEL 86 +#define ITEM_057 87 +#define ITEM_058 88 +#define ITEM_059 89 +#define ITEM_05A 90 +#define ITEM_05B 91 +#define ITEM_05C 92 +#define ITEM_SUN_STONE 93 +#define ITEM_MOON_STONE 94 +#define ITEM_FIRE_STONE 95 +#define ITEM_THUNDER_STONE 96 +#define ITEM_WATER_STONE 97 +#define ITEM_LEAF_STONE 98 +#define ITEM_063 99 +#define ITEM_064 100 +#define ITEM_065 101 +#define ITEM_066 102 +#define ITEM_TINY_MUSHROOM 103 +#define ITEM_BIG_MUSHROOM 104 +#define ITEM_069 105 +#define ITEM_PEARL 106 +#define ITEM_BIG_PEARL 107 +#define ITEM_STARDUST 108 +#define ITEM_STAR_PIECE 109 +#define ITEM_NUGGET 110 +#define ITEM_HEART_SCALE 111 +#define ITEM_070 112 +#define ITEM_071 113 +#define ITEM_072 114 +#define ITEM_073 115 +#define ITEM_074 116 +#define ITEM_075 117 +#define ITEM_076 118 +#define ITEM_077 119 +#define ITEM_078 120 +#define ITEM_ORANGE_MAIL 121 +#define ITEM_HARBOR_MAIL 122 +#define ITEM_GLITTER_MAIL 123 +#define ITEM_MECH_MAIL 124 +#define ITEM_WOOD_MAIL 125 +#define ITEM_WAVE_MAIL 126 +#define ITEM_BEAD_MAIL 127 +#define ITEM_SHADOW_MAIL 128 +#define ITEM_TROPIC_MAIL 129 +#define ITEM_DREAM_MAIL 130 +#define ITEM_FAB_MAIL 131 +#define ITEM_RETRO_MAIL 132 +#define ITEM_CHERI_BERRY 133 +#define ITEM_CHESTO_BERRY 134 +#define ITEM_PECHA_BERRY 135 +#define ITEM_RAWST_BERRY 136 +#define ITEM_ASPEAR_BERRY 137 +#define ITEM_LEPPA_BERRY 138 +#define ITEM_ORAN_BERRY 139 +#define ITEM_PERSIM_BERRY 140 +#define ITEM_LUM_BERRY 141 +#define ITEM_SITRUS_BERRY 142 +#define ITEM_FIGY_BERRY 143 +#define ITEM_WIKI_BERRY 144 +#define ITEM_MAGO_BERRY 145 +#define ITEM_AGUAV_BERRY 146 +#define ITEM_IAPAPA_BERRY 147 +#define ITEM_RAZZ_BERRY 148 +#define ITEM_BLUK_BERRY 149 +#define ITEM_NANAB_BERRY 150 +#define ITEM_WEPEAR_BERRY 151 +#define ITEM_PINAP_BERRY 152 +#define ITEM_POMEG_BERRY 153 +#define ITEM_KELPSY_BERRY 154 +#define ITEM_QUALOT_BERRY 155 +#define ITEM_HONDEW_BERRY 156 +#define ITEM_GREPA_BERRY 157 +#define ITEM_TAMATO_BERRY 158 +#define ITEM_CORNN_BERRY 159 +#define ITEM_MAGOST_BERRY 160 +#define ITEM_RABUTA_BERRY 161 +#define ITEM_NOMEL_BERRY 162 +#define ITEM_SPELON_BERRY 163 +#define ITEM_PAMTRE_BERRY 164 +#define ITEM_WATMEL_BERRY 165 +#define ITEM_DURIN_BERRY 166 +#define ITEM_BELUE_BERRY 167 +#define ITEM_LIECHI_BERRY 168 +#define ITEM_GANLON_BERRY 169 +#define ITEM_SALAC_BERRY 170 +#define ITEM_PETAYA_BERRY 171 +#define ITEM_APICOT_BERRY 172 +#define ITEM_LANSAT_BERRY 173 +#define ITEM_STARF_BERRY 174 +#define ITEM_ENIGMA_BERRY 175 +#define ITEM_0B0 176 +#define ITEM_0B1 177 +#define ITEM_0B2 178 +#define ITEM_BRIGHT_POWDER 179 +#define ITEM_WHITE_HERB 180 +#define ITEM_MACHO_BRACE 181 +#define ITEM_EXP_SHARE 182 +#define ITEM_QUICK_CLAW 183 +#define ITEM_SOOTHE_BELL 184 +#define ITEM_MENTAL_HERB 185 +#define ITEM_CHOICE_BAND 186 +#define ITEM_KINGS_ROCK 187 +#define ITEM_SILVER_POWDER 188 +#define ITEM_AMULET_COIN 189 +#define ITEM_CLEANSE_TAG 190 +#define ITEM_SOUL_DEW 191 +#define ITEM_DEEP_SEA_TOOTH 192 +#define ITEM_DEEP_SEA_SCALE 193 +#define ITEM_SMOKE_BALL 194 +#define ITEM_EVERSTONE 195 +#define ITEM_FOCUS_BAND 196 +#define ITEM_LUCKY_EGG 197 +#define ITEM_SCOPE_LENS 198 +#define ITEM_METAL_COAT 199 +#define ITEM_LEFTOVERS 200 +#define ITEM_DRAGON_SCALE 201 +#define ITEM_LIGHT_BALL 202 +#define ITEM_SOFT_SAND 203 +#define ITEM_HARD_STONE 204 +#define ITEM_MIRACLE_SEED 205 +#define ITEM_BLACK_GLASSES 206 +#define ITEM_BLACK_BELT 207 +#define ITEM_MAGNET 208 +#define ITEM_MYSTIC_WATER 209 +#define ITEM_SHARP_BEAK 210 +#define ITEM_POISON_BARB 211 +#define ITEM_NEVER_MELT_ICE 212 +#define ITEM_SPELL_TAG 213 +#define ITEM_TWISTED_SPOON 214 +#define ITEM_CHARCOAL 215 +#define ITEM_DRAGON_FANG 216 +#define ITEM_SILK_SCARF 217 +#define ITEM_UP_GRADE 218 +#define ITEM_SHELL_BELL 219 +#define ITEM_SEA_INCENSE 220 +#define ITEM_LAX_INCENSE 221 +#define ITEM_LUCKY_PUNCH 222 +#define ITEM_METAL_POWDER 223 +#define ITEM_THICK_CLUB 224 +#define ITEM_STICK 225 +#define ITEM_0E2 226 +#define ITEM_0E3 227 +#define ITEM_0E4 228 +#define ITEM_0E5 229 +#define ITEM_0E6 230 +#define ITEM_0E7 231 +#define ITEM_0E8 232 +#define ITEM_0E9 233 +#define ITEM_0EA 234 +#define ITEM_0EB 235 +#define ITEM_0EC 236 +#define ITEM_0ED 237 +#define ITEM_0EE 238 +#define ITEM_0EF 239 +#define ITEM_0F0 240 +#define ITEM_0F1 241 +#define ITEM_0F2 242 +#define ITEM_0F3 243 +#define ITEM_0F4 244 +#define ITEM_0F5 245 +#define ITEM_0F6 246 +#define ITEM_0F7 247 +#define ITEM_0F8 248 +#define ITEM_0F9 249 +#define ITEM_0FA 250 +#define ITEM_0FB 251 +#define ITEM_0FC 252 +#define ITEM_0FD 253 +#define ITEM_RED_SCARF 254 +#define ITEM_BLUE_SCARF 255 +#define ITEM_PINK_SCARF 256 +#define ITEM_GREEN_SCARF 257 +#define ITEM_YELLOW_SCARF 258 +#define ITEM_MACH_BIKE 259 +#define ITEM_COIN_CASE 260 +#define ITEM_ITEMFINDER 261 +#define ITEM_OLD_ROD 262 +#define ITEM_GOOD_ROD 263 +#define ITEM_SUPER_ROD 264 +#define ITEM_SS_TICKET 265 +#define ITEM_CONTEST_PASS 266 +#define ITEM_10B 267 +#define ITEM_WAILMER_PAIL 268 +#define ITEM_DEVON_GOODS 269 +#define ITEM_SOOT_SACK 270 +#define ITEM_BASEMENT_KEY 271 +#define ITEM_ACRO_BIKE 272 +#define ITEM_POKEBLOCK_CASE 273 +#define ITEM_LETTER 274 +#define ITEM_EON_TICKET 275 +#define ITEM_RED_ORB 276 +#define ITEM_BLUE_ORB 277 +#define ITEM_SCANNER 278 +#define ITEM_GO_GOGGLES 279 +#define ITEM_METEORITE 280 +#define ITEM_ROOM_1_KEY 281 +#define ITEM_ROOM_2_KEY 282 +#define ITEM_ROOM_4_KEY 283 +#define ITEM_ROOM_6_KEY 284 +#define ITEM_STORAGE_KEY 285 +#define ITEM_ROOT_FOSSIL 286 +#define ITEM_CLAW_FOSSIL 287 +#define ITEM_DEVON_SCOPE 288 +#define ITEM_TM01 289 +#define ITEM_TM02 290 +#define ITEM_TM03 291 +#define ITEM_TM04 292 +#define ITEM_TM05 293 +#define ITEM_TM06 294 +#define ITEM_TM07 295 +#define ITEM_TM08 296 +#define ITEM_TM09 297 +#define ITEM_TM10 298 +#define ITEM_TM11 299 +#define ITEM_TM12 300 +#define ITEM_TM13 301 +#define ITEM_TM14 302 +#define ITEM_TM15 303 +#define ITEM_TM16 304 +#define ITEM_TM17 305 +#define ITEM_TM18 306 +#define ITEM_TM19 307 +#define ITEM_TM20 308 +#define ITEM_TM21 309 +#define ITEM_TM22 310 +#define ITEM_TM23 311 +#define ITEM_TM24 312 +#define ITEM_TM25 313 +#define ITEM_TM26 314 +#define ITEM_TM27 315 +#define ITEM_TM28 316 +#define ITEM_TM29 317 +#define ITEM_TM30 318 +#define ITEM_TM31 319 +#define ITEM_TM32 320 +#define ITEM_TM33 321 +#define ITEM_TM34 322 +#define ITEM_TM35 323 +#define ITEM_TM36 324 +#define ITEM_TM37 325 +#define ITEM_TM38 326 +#define ITEM_TM39 327 +#define ITEM_TM40 328 +#define ITEM_TM41 329 +#define ITEM_TM42 330 +#define ITEM_TM43 331 +#define ITEM_TM44 332 +#define ITEM_TM45 333 +#define ITEM_TM46 334 +#define ITEM_TM47 335 +#define ITEM_TM48 336 +#define ITEM_TM49 337 +#define ITEM_TM50 338 +#define ITEM_HM01 339 +#define ITEM_HM02 340 +#define ITEM_HM03 341 +#define ITEM_HM04 342 +#define ITEM_HM05 343 +#define ITEM_HM06 344 +#define ITEM_HM07 345 +#define ITEM_HM08 346 +#define ITEM_15B 347 +#define ITEM_15C 348 + +// FireRed/LeafGreen +#define ITEM_OAKS_PARCEL 349 +#define ITEM_POKE_FLUTE 350 +#define ITEM_SECRET_KEY 351 +#define ITEM_BIKE_VOUCHER 352 +#define ITEM_GOLD_TEETH 353 +#define ITEM_OLD_AMBER 354 +#define ITEM_CARD_KEY 355 +#define ITEM_LIFT_KEY 356 +#define ITEM_HELIX_FOSSIL 357 +#define ITEM_DOME_FOSSIL 358 +#define ITEM_SILPH_SCOPE 359 +#define ITEM_BICYCLE 360 +#define ITEM_TOWN_MAP 361 +#define ITEM_VS_SEEKER 362 +#define ITEM_FAME_CHECKER 363 +#define ITEM_TM_CASE 364 +#define ITEM_BERRY_POUCH 365 +#define ITEM_TEACHY_TV 366 +#define ITEM_TRI_PASS 367 +#define ITEM_RAINBOW_PASS 368 +#define ITEM_TEA 369 +#define ITEM_MYSTIC_TICKET 370 +#define ITEM_AURORA_TICKET 371 +#define ITEM_POWDER_JAR 372 +#define ITEM_RUBY 373 +#define ITEM_SAPPHIRE 374 + +// Emerald +#define ITEM_MAGMA_EMBLEM 375 +#define ITEM_OLD_SEA_MAP 376 + +#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY +#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY +#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1)) + +#define NUM_TECHNICAL_MACHINES 50 +#define NUM_HIDDEN_MACHINES 8 + +#endif // GUARD_CONSTANTS_ITEMS_H diff --git a/include/constants/map_objects.h b/include/constants/map_objects.h new file mode 100644 index 0000000000..d5b9830059 --- /dev/null +++ b/include/constants/map_objects.h @@ -0,0 +1,263 @@ +#ifndef GUARD_CONSTANTS_MAP_OBJECTS_H +#define GUARD_CONSTANTS_MAP_OBJECTS_H + +#define MAP_OBJ_GFX_BRENDAN_NORMAL 0 +#define MAP_OBJ_GFX_BRENDAN_MACH_BIKE 1 +#define MAP_OBJ_GFX_BRENDAN_SURFING 2 +#define MAP_OBJ_GFX_BRENDAN_FIELD_MOVE 3 +#define MAP_OBJ_GFX_QUINTY_PLUMP 4 +#define MAP_OBJ_GFX_LITTLE_BOY_1 5 +#define MAP_OBJ_GFX_LITTLE_GIRL_1 6 +#define MAP_OBJ_GFX_BOY_1 7 +#define MAP_OBJ_GFX_GIRL_1 8 +#define MAP_OBJ_GFX_BOY_2 9 +#define MAP_OBJ_GFX_GIRL_2 10 +#define MAP_OBJ_GFX_LITTLE_BOY_2 11 +#define MAP_OBJ_GFX_LITTLE_GIRL_2 12 +#define MAP_OBJ_GFX_BOY_3 13 +#define MAP_OBJ_GFX_GIRL_3 14 +#define MAP_OBJ_GFX_BOY_4 15 +#define MAP_OBJ_GFX_WOMAN_1 16 +#define MAP_OBJ_GFX_FAT_MAN 17 +#define MAP_OBJ_GFX_WOMAN_2 18 +#define MAP_OBJ_GFX_MAN_1 19 +#define MAP_OBJ_GFX_WOMAN_3 20 +#define MAP_OBJ_GFX_OLD_MAN_1 21 +#define MAP_OBJ_GFX_OLD_WOMAN_1 22 +#define MAP_OBJ_GFX_MAN_2 23 +#define MAP_OBJ_GFX_WOMAN_4 24 +#define MAP_OBJ_GFX_MAN_3 25 +#define MAP_OBJ_GFX_WOMAN_5 26 +#define MAP_OBJ_GFX_COOK 27 +#define MAP_OBJ_GFX_WOMAN_6 28 +#define MAP_OBJ_GFX_OLD_MAN_2 29 +#define MAP_OBJ_GFX_OLD_WOMAN_2 30 +#define MAP_OBJ_GFX_CAMPER 31 +#define MAP_OBJ_GFX_PICNICKER 32 +#define MAP_OBJ_GFX_MAN_4 33 +#define MAP_OBJ_GFX_WOMAN_7 34 +#define MAP_OBJ_GFX_YOUNGSTER 35 +#define MAP_OBJ_GFX_BUG_CATCHER 36 +#define MAP_OBJ_GFX_PSYCHIC_M 37 +#define MAP_OBJ_GFX_SCHOOL_KID_M 38 +#define MAP_OBJ_GFX_MANIAC 39 +#define MAP_OBJ_GFX_HEX_MANIAC 40 +#define MAP_OBJ_GFX_RAYQUAZA_1 41 +#define MAP_OBJ_GFX_SWIMMER_M 42 +#define MAP_OBJ_GFX_SWIMMER_F 43 +#define MAP_OBJ_GFX_BLACK_BELT 44 +#define MAP_OBJ_GFX_BEAUTY 45 +#define MAP_OBJ_GFX_SCIENTIST_1 46 +#define MAP_OBJ_GFX_LASS 47 +#define MAP_OBJ_GFX_GENTLEMAN 48 +#define MAP_OBJ_GFX_SAILOR 49 +#define MAP_OBJ_GFX_FISHERMAN 50 +#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_M 51 +#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_F 52 +#define MAP_OBJ_GFX_TUBER_F 53 +#define MAP_OBJ_GFX_TUBER_M 54 +#define MAP_OBJ_GFX_HIKER 55 +#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_M 56 +#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_F 57 +#define MAP_OBJ_GFX_NURSE 58 +#define MAP_OBJ_GFX_ITEM_BALL 59 +#define MAP_OBJ_GFX_BERRY_TREE 60 +#define MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES 61 +#define MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES 62 +#define MAP_OBJ_GFX_BRENDAN_ACRO_BIKE 63 +#define MAP_OBJ_GFX_PROF_BIRCH 64 +#define MAP_OBJ_GFX_MAN_5 65 +#define MAP_OBJ_GFX_MAN_6 66 +#define MAP_OBJ_GFX_REPORTER_M 67 +#define MAP_OBJ_GFX_REPORTER_F 68 +#define MAP_OBJ_GFX_BARD 69 +#define MAP_OBJ_GFX_ANABEL 70 +#define MAP_OBJ_GFX_TUCKER 71 +#define MAP_OBJ_GFX_GRETA 72 +#define MAP_OBJ_GFX_SPENSER 73 +#define MAP_OBJ_GFX_NOLAND 74 +#define MAP_OBJ_GFX_LUCY 75 +#define MAP_OBJ_GFX_UNUSED_NATU_DOLL 76 +#define MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL 77 +#define MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL 78 +#define MAP_OBJ_GFX_UNUSED_WOOPER_DOLL 79 +#define MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL 80 +#define MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL 81 +#define MAP_OBJ_GFX_CUTTABLE_TREE 82 +#define MAP_OBJ_GFX_MART_EMPLOYEE 83 +#define MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN 84 +#define MAP_OBJ_GFX_TEALA 85 +#define MAP_OBJ_GFX_BREAKABLE_ROCK 86 +#define MAP_OBJ_GFX_PUSHABLE_BOULDER 87 +#define MAP_OBJ_GFX_MR_BRINEYS_BOAT 88 +#define MAP_OBJ_GFX_MAY_NORMAL 89 +#define MAP_OBJ_GFX_MAY_MACH_BIKE 90 +#define MAP_OBJ_GFX_MAY_ACRO_BIKE 91 +#define MAP_OBJ_GFX_MAY_SURFING 92 +#define MAP_OBJ_GFX_MAY_FIELD_MOVE 93 +#define MAP_OBJ_GFX_TRUCK 94 +#define MAP_OBJ_GFX_VIGAROTH_CARRYING_BOX 95 +#define MAP_OBJ_GFX_VIGAROTH_FACING_AWAY 96 +#define MAP_OBJ_GFX_BIRCHS_BAG 97 +#define MAP_OBJ_GFX_ZIGZAGOON_1 98 +#define MAP_OBJ_GFX_ARTIST 99 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL 100 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE 101 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE 102 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING 103 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE 104 +#define MAP_OBJ_GFX_RIVAL_MAY_NORMAL 105 +#define MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE 106 +#define MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE 107 +#define MAP_OBJ_GFX_RIVAL_MAY_SURFING 108 +#define MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE 109 +#define MAP_OBJ_GFX_CAMERAMAN 110 +#define MAP_OBJ_GFX_BRENDAN_UNDERWATER 111 +#define MAP_OBJ_GFX_MAY_UNDERWATER 112 +#define MAP_OBJ_GFX_MOVING_BOX 113 +#define MAP_OBJ_GFX_CABLE_CAR 114 +#define MAP_OBJ_GFX_SCIENTIST_2 115 +#define MAP_OBJ_GFX_MAN_7 116 +#define MAP_OBJ_GFX_AQUA_MEMBER_M 117 +#define MAP_OBJ_GFX_AQUA_MEMBER_F 118 +#define MAP_OBJ_GFX_MAGMA_MEMBER_M 119 +#define MAP_OBJ_GFX_MAGMA_MEMBER_F 120 +#define MAP_OBJ_GFX_SIDNEY 121 +#define MAP_OBJ_GFX_PHOEBE 122 +#define MAP_OBJ_GFX_GLACIA 123 +#define MAP_OBJ_GFX_DRAKE 124 +#define MAP_OBJ_GFX_ROXANNE 125 +#define MAP_OBJ_GFX_BRAWLY 126 +#define MAP_OBJ_GFX_WATTSON 127 +#define MAP_OBJ_GFX_FLANNERY 128 +#define MAP_OBJ_GFX_NORMAN 129 +#define MAP_OBJ_GFX_WINONA 130 +#define MAP_OBJ_GFX_LIZA 131 +#define MAP_OBJ_GFX_TATE 132 +#define MAP_OBJ_GFX_WALLACE 133 +#define MAP_OBJ_GFX_STEVEN 134 +#define MAP_OBJ_GFX_WALLY 135 +#define MAP_OBJ_GFX_LITTLE_BOY_3 136 +#define MAP_OBJ_GFX_BRENDAN_FISHING 137 +#define MAP_OBJ_GFX_MAY_FISHING 138 +#define MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN 139 +#define MAP_OBJ_GFX_SS_TIDAL 140 +#define MAP_OBJ_GFX_SUBMARINE_SHADOW 141 +#define MAP_OBJ_GFX_PICHU_DOLL 142 +#define MAP_OBJ_GFX_PIKACHU_DOLL 143 +#define MAP_OBJ_GFX_MARILL_DOLL 144 +#define MAP_OBJ_GFX_TOGEPI_DOLL 145 +#define MAP_OBJ_GFX_CYNDAQUIL_DOLL 146 +#define MAP_OBJ_GFX_CHIKORITA_DOLL 147 +#define MAP_OBJ_GFX_TOTODILE_DOLL 148 +#define MAP_OBJ_GFX_JIGGLYPUFF_DOLL 149 +#define MAP_OBJ_GFX_MEOWTH_DOLL 150 +#define MAP_OBJ_GFX_CLEFAIRY_DOLL 151 +#define MAP_OBJ_GFX_DITTO_DOLL 152 +#define MAP_OBJ_GFX_SMOOCHUM_DOLL 153 +#define MAP_OBJ_GFX_TREECKO_DOLL 154 +#define MAP_OBJ_GFX_TORCHIC_DOLL 155 +#define MAP_OBJ_GFX_MUDKIP_DOLL 156 +#define MAP_OBJ_GFX_DUSKULL_DOLL 157 +#define MAP_OBJ_GFX_WYNAUT_DOLL 158 +#define MAP_OBJ_GFX_BALTOY_DOLL 159 +#define MAP_OBJ_GFX_KECLEON_DOLL 160 +#define MAP_OBJ_GFX_AZURILL_DOLL 161 +#define MAP_OBJ_GFX_SKITTY_DOLL 162 +#define MAP_OBJ_GFX_SWABLU_DOLL 163 +#define MAP_OBJ_GFX_GULPIN_DOLL 164 +#define MAP_OBJ_GFX_LOTAD_DOLL 165 +#define MAP_OBJ_GFX_SEEDOT_DOLL 166 +#define MAP_OBJ_GFX_PIKA_CUSHION 167 +#define MAP_OBJ_GFX_ROUND_CUSHION 168 +#define MAP_OBJ_GFX_KISS_CUSHION 169 +#define MAP_OBJ_GFX_ZIGZAG_CUSHION 170 +#define MAP_OBJ_GFX_SPIN_CUSHION 171 +#define MAP_OBJ_GFX_DIAMOND_CUSHION 172 +#define MAP_OBJ_GFX_BALL_CUSHION 173 +#define MAP_OBJ_GFX_GRASS_CUSHION 174 +#define MAP_OBJ_GFX_FIRE_CUSHION 175 +#define MAP_OBJ_GFX_WATER_CUSHION 176 +#define MAP_OBJ_GFX_BIG_SNORLAX_DOLL 177 +#define MAP_OBJ_GFX_BIG_RHYDON_DOLL 178 +#define MAP_OBJ_GFX_BIG_LAPRAS_DOLL 179 +#define MAP_OBJ_GFX_BIG_VENUSAUR_DOLL 180 +#define MAP_OBJ_GFX_BIG_CHARIZARD_DOLL 181 +#define MAP_OBJ_GFX_BIG_BLASTOISE_DOLL 182 +#define MAP_OBJ_GFX_BIG_WAILMER_DOLL 183 +#define MAP_OBJ_GFX_BIG_REGIROCK_DOLL 184 +#define MAP_OBJ_GFX_BIG_REGICE_DOLL 185 +#define MAP_OBJ_GFX_BIG_REGISTEEL_DOLL 186 +#define MAP_OBJ_GFX_LATIAS 187 +#define MAP_OBJ_GFX_LATIOS 188 +#define MAP_OBJ_GFX_BOY_5 189 +#define MAP_OBJ_GFX_CONTEST_JUDGE 190 +#define MAP_OBJ_GFX_BRENDAN_WATERING 191 +#define MAP_OBJ_GFX_MAY_WATERING 192 +#define MAP_OBJ_GFX_BRENDAN_DECORATING 193 +#define MAP_OBJ_GFX_MAY_DECORATING 194 +#define MAP_OBJ_GFX_ARCHIE 195 +#define MAP_OBJ_GFX_MAXIE 196 +#define MAP_OBJ_GFX_KYOGRE_1 197 +#define MAP_OBJ_GFX_GROUDON_1 198 +#define MAP_OBJ_GFX_FOSSIL 199 +#define MAP_OBJ_GFX_REGIROCK 200 +#define MAP_OBJ_GFX_REGICE 201 +#define MAP_OBJ_GFX_REGISTEEL 202 +#define MAP_OBJ_GFX_SKITTY 203 +#define MAP_OBJ_GFX_KECLEON_1 204 +#define MAP_OBJ_GFX_KYOGRE_2 205 +#define MAP_OBJ_GFX_GROUDON_2 206 +#define MAP_OBJ_GFX_RAYQUAZA_2 207 +#define MAP_OBJ_GFX_ZIGZAGOON_2 208 +#define MAP_OBJ_GFX_PIKACHU 209 +#define MAP_OBJ_GFX_AZUMARILL 210 +#define MAP_OBJ_GFX_WINGULL 211 +#define MAP_OBJ_GFX_KECLEON_2 212 +#define MAP_OBJ_GFX_TUBER_M_SWIMMING 213 +#define MAP_OBJ_GFX_AZURILL 214 +#define MAP_OBJ_GFX_MOM 215 +#define MAP_OBJ_GFX_LINK_BRENDAN 216 +#define MAP_OBJ_GFX_LINK_MAY 217 +#define MAP_OBJ_GFX_JUAN 218 +#define MAP_OBJ_GFX_SCOTT 219 +#define MAP_OBJ_GFX_POOCHYENA 220 +#define MAP_OBJ_GFX_KYOGRE_3 221 +#define MAP_OBJ_GFX_GROUDON_3 222 +#define MAP_OBJ_GFX_MYSTERY_GIFT_MAN 223 +#define MAP_OBJ_GFX_TRICK_HOUSE_STATUE 224 +#define MAP_OBJ_GFX_KIRLIA 225 +#define MAP_OBJ_GFX_DUSCLOPS 226 +#define MAP_OBJ_GFX_UNION_ROOM_NURSE 227 +#define MAP_OBJ_GFX_SUDOWOODO 228 +#define MAP_OBJ_GFX_MEW 229 +#define MAP_OBJ_GFX_RED 230 +#define MAP_OBJ_GFX_LEAF 231 +#define MAP_OBJ_GFX_DEOXYS 232 +#define MAP_OBJ_GFX_DEOXYS_TRIANGLE 233 +#define MAP_OBJ_GFX_BRANDON 234 +#define MAP_OBJ_GFX_LINK_RS_BRENDAN 235 +#define MAP_OBJ_GFX_LINK_RS_MAY 236 +#define MAP_OBJ_GFX_LUGIA 237 +#define MAP_OBJ_GFX_HOOH 238 +#define MAP_OBJ_GFX_BARD_2 239 +#define MAP_OBJ_GFX_HIPSTER 240 +#define MAP_OBJ_GFX_TRADER 241 +#define MAP_OBJ_GFX_STORYTELLER 242 +#define MAP_OBJ_GFX_GIDDY 243 +#define MAP_OBJ_GFX_PLACEHOLDER_1 244 +#define MAP_OBJ_GFX_PLACEHOLDER_2 245 + +#define SHADOW_SIZE_S 0 +#define SHADOW_SIZE_M 1 +#define SHADOW_SIZE_L 2 +#define SHADOW_SIZE_XL 3 + +#define F_INANIMATE (1 << 6) +#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7) + +#define TRACKS_NONE 0 +#define TRACKS_FOOT 1 +#define TRACKS_BIKE_TIRE 2 + +#endif // GUARD_CONSTANTS_MAP_OBJECTS_H diff --git a/include/constants/maps.h b/include/constants/maps.h new file mode 100644 index 0000000000..737edd7de4 --- /dev/null +++ b/include/constants/maps.h @@ -0,0 +1,595 @@ +#ifndef GUARD_CONSTANTS_MAPS_H +#define GUARD_CONSTANTS_MAPS_H + +// Map Group 0 +#define MAP_PETALBURG_CITY (0 | (0 << 8)) +#define MAP_SLATEPORT_CITY (1 | (0 << 8)) +#define MAP_MAUVILLE_CITY (2 | (0 << 8)) +#define MAP_RUSTBORO_CITY (3 | (0 << 8)) +#define MAP_FORTREE_CITY (4 | (0 << 8)) +#define MAP_LILYCOVE_CITY (5 | (0 << 8)) +#define MAP_MOSSDEEP_CITY (6 | (0 << 8)) +#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8)) +#define MAP_EVER_GRANDE_CITY (8 | (0 << 8)) +#define MAP_LITTLEROOT_TOWN (9 | (0 << 8)) +#define MAP_OLDALE_TOWN (10 | (0 << 8)) +#define MAP_DEWFORD_TOWN (11 | (0 << 8)) +#define MAP_LAVARIDGE_TOWN (12 | (0 << 8)) +#define MAP_FALLARBOR_TOWN (13 | (0 << 8)) +#define MAP_VERDANTURF_TOWN (14 | (0 << 8)) +#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8)) +#define MAP_ROUTE101 (16 | (0 << 8)) +#define MAP_ROUTE102 (17 | (0 << 8)) +#define MAP_ROUTE103 (18 | (0 << 8)) +#define MAP_ROUTE104 (19 | (0 << 8)) +#define MAP_ROUTE105 (20 | (0 << 8)) +#define MAP_ROUTE106 (21 | (0 << 8)) +#define MAP_ROUTE107 (22 | (0 << 8)) +#define MAP_ROUTE108 (23 | (0 << 8)) +#define MAP_ROUTE109 (24 | (0 << 8)) +#define MAP_ROUTE110 (25 | (0 << 8)) +#define MAP_ROUTE111 (26 | (0 << 8)) +#define MAP_ROUTE112 (27 | (0 << 8)) +#define MAP_ROUTE113 (28 | (0 << 8)) +#define MAP_ROUTE114 (29 | (0 << 8)) +#define MAP_ROUTE115 (30 | (0 << 8)) +#define MAP_ROUTE116 (31 | (0 << 8)) +#define MAP_ROUTE117 (32 | (0 << 8)) +#define MAP_ROUTE118 (33 | (0 << 8)) +#define MAP_ROUTE119 (34 | (0 << 8)) +#define MAP_ROUTE120 (35 | (0 << 8)) +#define MAP_ROUTE121 (36 | (0 << 8)) +#define MAP_ROUTE122 (37 | (0 << 8)) +#define MAP_ROUTE123 (38 | (0 << 8)) +#define MAP_ROUTE124 (39 | (0 << 8)) +#define MAP_ROUTE125 (40 | (0 << 8)) +#define MAP_ROUTE126 (41 | (0 << 8)) +#define MAP_ROUTE127 (42 | (0 << 8)) +#define MAP_ROUTE128 (43 | (0 << 8)) +#define MAP_ROUTE129 (44 | (0 << 8)) +#define MAP_ROUTE130 (45 | (0 << 8)) +#define MAP_ROUTE131 (46 | (0 << 8)) +#define MAP_ROUTE132 (47 | (0 << 8)) +#define MAP_ROUTE133 (48 | (0 << 8)) +#define MAP_ROUTE134 (49 | (0 << 8)) +#define MAP_UNDERWATER1 (50 | (0 << 8)) +#define MAP_UNDERWATER2 (51 | (0 << 8)) +#define MAP_UNDERWATER3 (52 | (0 << 8)) +#define MAP_UNDERWATER4 (53 | (0 << 8)) + +// Map Group 1 +#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8)) + +// Map Group 2 +#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8)) +#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8)) +#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8)) +#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8)) +#define MAP_OLDALE_TOWN_MART (4 | (2 << 8)) + +// Map Group 3 +#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8)) +#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8)) +#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8)) +#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8)) +#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8)) +#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8)) + +// Map Group 4 +#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8)) + +// Map Group 5 +#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_HOUSE1 (6 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_HOUSE2 (7 | (5 << 8)) + +// Map Group 6 +#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_MART (3 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (4 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (5 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (6 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8)) + +// Map Group 7 +#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8)) + +// Map Group 8 +#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8)) +#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8)) +#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8)) +#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8)) +#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8)) +#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8)) +#define MAP_PETALBURG_CITY_MART (6 | (8 << 8)) + +// Map Group 9 +#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8)) +#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8)) +#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8)) +#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8)) +#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HOUSE1 (5 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8)) +#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8)) +#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HOUSE2 (10 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8)) +#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8)) + +// Map Group 10 +#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8)) +#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8)) +#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8)) +#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8)) +#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8)) +#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8)) +#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8)) +#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8)) + +// Map Group 11 +#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8)) +#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8)) +#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8)) +#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8)) +#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8)) +#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8)) +#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8)) +#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8)) +#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8)) +#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8)) +#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8)) +#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8)) + +// Map Group 12 +#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8)) +#define MAP_FORTREE_CITY_GYM (1 | (12 << 8)) +#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8)) +#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8)) +#define MAP_FORTREE_CITY_MART (4 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8)) +#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8)) + +// Map Group 13 +#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8)) +#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8)) +#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8)) +#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8)) +#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8)) +#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8)) +#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8)) +#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8)) +#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8)) +#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8)) +#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (11 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE1 (12 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE2 (13 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE3 (14 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE4 (15 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (16 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (17 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (18 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (19 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (20 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8)) + +// Map Group 14 +#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8)) + +// Map Group 15 +#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE8 (12 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE9_1F (13 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE9_B1F (14 | (15 << 8)) + +// Map Group 16 +#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR1 (5 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR2 (6 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR3 (7 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR4 (8 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR5 (9 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8)) + +// Map Group 17 +#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8)) +#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8)) + +// Map Group 18 +#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8)) +#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8)) + +// Map Group 19 +#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8)) +#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8)) + +// Map Group 20 +#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8)) +#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8)) +#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8)) + +// Map Group 21 +#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8)) + +// Map Group 22 +#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8)) + +// Map Group 23 +#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8)) + +// Map Group 24 +#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8)) +#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8)) +#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8)) +#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8)) +#define MAP_RUSTURF_TUNNEL (4 | (24 << 8)) +#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8)) +#define MAP_DESERT_RUINS (6 | (24 << 8)) +#define MAP_GRANITE_CAVE_1F (7 | (24 << 8)) +#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8)) +#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8)) +#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8)) +#define MAP_PETALBURG_WOODS (11 | (24 << 8)) +#define MAP_MT_CHIMNEY (12 | (24 << 8)) +#define MAP_JAGGED_PASS (13 | (24 << 8)) +#define MAP_FIERY_PATH (14 | (24 << 8)) +#define MAP_MT_PYRE_1F (15 | (24 << 8)) +#define MAP_MT_PYRE_2F (16 | (24 << 8)) +#define MAP_MT_PYRE_3F (17 | (24 << 8)) +#define MAP_MT_PYRE_4F (18 | (24 << 8)) +#define MAP_MT_PYRE_5F (19 | (24 << 8)) +#define MAP_MT_PYRE_6F (20 | (24 << 8)) +#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8)) +#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8)) +#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B1F (39 | (24 << 8)) // +#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B2F (40 | (24 << 8)) // Ruby/Sapphire leftovers +#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B3F (41 | (24 << 8)) // +#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8)) +#define MAP_VICTORY_ROAD_1F (43 | (24 << 8)) +#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8)) +#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8)) +#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8)) +#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8)) +#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8)) +#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8)) +#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8)) +#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8)) +#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8)) +#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8)) +#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8)) +#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8)) +#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8)) +#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8)) +#define MAP_ISLAND_CAVE (67 | (24 << 8)) +#define MAP_ANCIENT_TOMB (68 | (24 << 8)) +#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8)) +#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8)) +#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8)) +#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8)) +#define MAP_SCORCHED_SLAB (73 | (24 << 8)) +#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_1F (74 | (24 << 8)) // +#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B1F (75 | (24 << 8)) // Ruby/Sapphire leftovers +#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B2F (76 | (24 << 8)) // +#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8)) +#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8)) +#define MAP_SKY_PILLAR_1F (79 | (24 << 8)) +#define MAP_SKY_PILLAR_2F (80 | (24 << 8)) +#define MAP_SKY_PILLAR_3F (81 | (24 << 8)) +#define MAP_SKY_PILLAR_4F (82 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8)) +#define MAP_SKY_PILLAR_5F (84 | (24 << 8)) +#define MAP_SKY_PILLAR_TOP (85 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_1F (86 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_2F_1R (87 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_2F_2R (88 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_3F_1R (89 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_3F_2R (90 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_4F (91 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_3F_3R (92 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_2F_3R (93 | (24 << 8)) +#define MAP_MIRAGE_TOWER_1F (94 | (24 << 8)) +#define MAP_MIRAGE_TOWER_2F (95 | (24 << 8)) +#define MAP_MIRAGE_TOWER_3F (96 | (24 << 8)) +#define MAP_MIRAGE_TOWER_4F (97 | (24 << 8)) +#define MAP_DESERT_UNDERPASS (98 | (24 << 8)) +#define MAP_ARTISAN_CAVE_B1F (99 | (24 << 8)) +#define MAP_ARTISAN_CAVE_1F (100 | (24 << 8)) +#define MAP_UNDERWATER_MARINE_CAVE (101 | (24 << 8)) +#define MAP_MARINE_CAVE_ENTRANCE (102 | (24 << 8)) +#define MAP_MARINE_CAVE_END (103 | (24 << 8)) +#define MAP_TERRA_CAVE_ENTRANCE (104 | (24 << 8)) +#define MAP_TERRA_CAVE_END (105 | (24 << 8)) +#define MAP_ALTERING_CAVE (106 | (24 << 8)) +#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8)) + +// Map Group 25 +#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) +#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) +#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) +#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) +#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) +#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8)) +#define MAP_TRADE_CENTER (25 | (25 << 8)) +#define MAP_RECORD_CORNER (26 | (25 << 8)) +#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8)) +#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) +#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) +#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) +#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_01 (44 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_02 (45 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_03 (46 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_04 (47 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_05 (48 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_06 (49 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_07 (50 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_08 (51 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_09 (52 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_10 (53 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_11 (54 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_12 (55 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_13 (56 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_14 (57 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_15 (58 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_16 (59 | (25 << 8)) +#define MAP_UNION_ROOM (60 | (25 << 8)) + +// Map Group 26 +#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8)) +#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8)) +#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8)) +#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8)) +#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8)) +#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8)) +#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8)) +#define MAP_SAFARI_ZONE_EM_1 (12 | (26 << 8)) +#define MAP_SAFARI_ZONE_EM_2 (13 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR_2 (16 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM_2 (17 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_1 (37 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_2 (38 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_3 (39 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_1 (41 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER (42 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_2 (43 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_3 (44 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_4 (45 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_5 (47 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_6 (48 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_7 (49 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_8 (51 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_9 (52 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8)) +#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8)) +#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8)) +#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8)) +#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8)) +#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8)) +#define MAP_TRAINER_HILL_1F (61 | (26 << 8)) +#define MAP_TRAINER_HILL_2F (62 | (26 << 8)) +#define MAP_TRAINER_HILL_3F (63 | (26 << 8)) +#define MAP_TRAINER_HILL_4F (64 | (26 << 8)) +#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8)) +#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8)) +#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8)) +#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8)) +#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8)) +#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP_1 (71 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP_2 (72 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP_3 (73 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP_4 (74 | (26 << 8)) +#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_01 (76 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_02 (77 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_03 (78 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_04 (79 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_05 (80 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_06 (81 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_07 (82 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_08 (83 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_09 (84 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_10 (85 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_11 (86 | (26 << 8)) +#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8)) +#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8)) + +// Map Group 27 +#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8)) +#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8)) + +// Map Group 28 +#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8)) + +// Map Group 29 +#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8)) +#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (11 | (29 << 8)) +#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (12 | (29 << 8)) + +// Map Group 30 +#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8)) + +// Map Group 31 +#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8)) + +// Map Group 32 +#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8)) +#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8)) +#define MAP_ROUTE119_HOUSE (2 | (32 << 8)) + +// Map Group 33 +#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8)) + + +#define MAP_NONE (0x7F | (0x7F << 8)) +#define MAP_UNDEFINED (0xFF | (0xFF << 8)) + + +#define MAP_GROUP(map) (MAP_##map >> 8) +#define MAP_NUM(map) (MAP_##map & 0xFF) + +#endif // GUARD_CONSTANTS_MAPS_H diff --git a/include/constants/mauville_man.h b/include/constants/mauville_man.h new file mode 100644 index 0000000000..b00e3a2919 --- /dev/null +++ b/include/constants/mauville_man.h @@ -0,0 +1,10 @@ +#ifndef GUARD_CONSTANTS_MAUVILLE_MAN_H +#define GUARD_CONSTANTS_MAUVILLE_MAN_H + +#define MAUVILLE_MAN_BARD 0 +#define MAUVILLE_MAN_HIPSTER 1 +#define MAUVILLE_MAN_TRADER 2 +#define MAUVILLE_MAN_STORYTELLER 3 +#define MAUVILLE_MAN_GIDDY 4 + +#endif // GUARD_CONSTANTS_MAUVILLE_MAN_H diff --git a/include/constants/moves.h b/include/constants/moves.h new file mode 100644 index 0000000000..f3a3acb902 --- /dev/null +++ b/include/constants/moves.h @@ -0,0 +1,362 @@ +#ifndef GUARD_CONSTANTS_MOVES_H +#define GUARD_CONSTANTS_MOVES_H + +#define MOVE_NONE 0 +#define MOVE_POUND 1 +#define MOVE_KARATE_CHOP 2 +#define MOVE_DOUBLE_SLAP 3 +#define MOVE_COMET_PUNCH 4 +#define MOVE_MEGA_PUNCH 5 +#define MOVE_PAY_DAY 6 +#define MOVE_FIRE_PUNCH 7 +#define MOVE_ICE_PUNCH 8 +#define MOVE_THUNDER_PUNCH 9 +#define MOVE_SCRATCH 10 +#define MOVE_VICE_GRIP 11 +#define MOVE_GUILLOTINE 12 +#define MOVE_RAZOR_WIND 13 +#define MOVE_SWORDS_DANCE 14 +#define MOVE_CUT 15 +#define MOVE_GUST 16 +#define MOVE_WING_ATTACK 17 +#define MOVE_WHIRLWIND 18 +#define MOVE_FLY 19 +#define MOVE_BIND 20 +#define MOVE_SLAM 21 +#define MOVE_VINE_WHIP 22 +#define MOVE_STOMP 23 +#define MOVE_DOUBLE_KICK 24 +#define MOVE_MEGA_KICK 25 +#define MOVE_JUMP_KICK 26 +#define MOVE_ROLLING_KICK 27 +#define MOVE_SAND_ATTACK 28 +#define MOVE_HEADBUTT 29 +#define MOVE_HORN_ATTACK 30 +#define MOVE_FURY_ATTACK 31 +#define MOVE_HORN_DRILL 32 +#define MOVE_TACKLE 33 +#define MOVE_BODY_SLAM 34 +#define MOVE_WRAP 35 +#define MOVE_TAKE_DOWN 36 +#define MOVE_THRASH 37 +#define MOVE_DOUBLE_EDGE 38 +#define MOVE_TAIL_WHIP 39 +#define MOVE_POISON_STING 40 +#define MOVE_TWINEEDLE 41 +#define MOVE_PIN_MISSILE 42 +#define MOVE_LEER 43 +#define MOVE_BITE 44 +#define MOVE_GROWL 45 +#define MOVE_ROAR 46 +#define MOVE_SING 47 +#define MOVE_SUPERSONIC 48 +#define MOVE_SONIC_BOOM 49 +#define MOVE_DISABLE 50 +#define MOVE_ACID 51 +#define MOVE_EMBER 52 +#define MOVE_FLAMETHROWER 53 +#define MOVE_MIST 54 +#define MOVE_WATER_GUN 55 +#define MOVE_HYDRO_PUMP 56 +#define MOVE_SURF 57 +#define MOVE_ICE_BEAM 58 +#define MOVE_BLIZZARD 59 +#define MOVE_PSYBEAM 60 +#define MOVE_BUBBLE_BEAM 61 +#define MOVE_AURORA_BEAM 62 +#define MOVE_HYPER_BEAM 63 +#define MOVE_PECK 64 +#define MOVE_DRILL_PECK 65 +#define MOVE_SUBMISSION 66 +#define MOVE_LOW_KICK 67 +#define MOVE_COUNTER 68 +#define MOVE_SEISMIC_TOSS 69 +#define MOVE_STRENGTH 70 +#define MOVE_ABSORB 71 +#define MOVE_MEGA_DRAIN 72 +#define MOVE_LEECH_SEED 73 +#define MOVE_GROWTH 74 +#define MOVE_RAZOR_LEAF 75 +#define MOVE_SOLAR_BEAM 76 +#define MOVE_POISON_POWDER 77 +#define MOVE_STUN_SPORE 78 +#define MOVE_SLEEP_POWDER 79 +#define MOVE_PETAL_DANCE 80 +#define MOVE_STRING_SHOT 81 +#define MOVE_DRAGON_RAGE 82 +#define MOVE_FIRE_SPIN 83 +#define MOVE_THUNDER_SHOCK 84 +#define MOVE_THUNDERBOLT 85 +#define MOVE_THUNDER_WAVE 86 +#define MOVE_THUNDER 87 +#define MOVE_ROCK_THROW 88 +#define MOVE_EARTHQUAKE 89 +#define MOVE_FISSURE 90 +#define MOVE_DIG 91 +#define MOVE_TOXIC 92 +#define MOVE_CONFUSION 93 +#define MOVE_PSYCHIC 94 +#define MOVE_HYPNOSIS 95 +#define MOVE_MEDITATE 96 +#define MOVE_AGILITY 97 +#define MOVE_QUICK_ATTACK 98 +#define MOVE_RAGE 99 +#define MOVE_TELEPORT 100 +#define MOVE_NIGHT_SHADE 101 +#define MOVE_MIMIC 102 +#define MOVE_SCREECH 103 +#define MOVE_DOUBLE_TEAM 104 +#define MOVE_RECOVER 105 +#define MOVE_HARDEN 106 +#define MOVE_MINIMIZE 107 +#define MOVE_SMOKESCREEN 108 +#define MOVE_CONFUSE_RAY 109 +#define MOVE_WITHDRAW 110 +#define MOVE_DEFENSE_CURL 111 +#define MOVE_BARRIER 112 +#define MOVE_LIGHT_SCREEN 113 +#define MOVE_HAZE 114 +#define MOVE_REFLECT 115 +#define MOVE_FOCUS_ENERGY 116 +#define MOVE_BIDE 117 +#define MOVE_METRONOME 118 +#define MOVE_MIRROR_MOVE 119 +#define MOVE_SELF_DESTRUCT 120 +#define MOVE_EGG_BOMB 121 +#define MOVE_LICK 122 +#define MOVE_SMOG 123 +#define MOVE_SLUDGE 124 +#define MOVE_BONE_CLUB 125 +#define MOVE_FIRE_BLAST 126 +#define MOVE_WATERFALL 127 +#define MOVE_CLAMP 128 +#define MOVE_SWIFT 129 +#define MOVE_SKULL_BASH 130 +#define MOVE_SPIKE_CANNON 131 +#define MOVE_CONSTRICT 132 +#define MOVE_AMNESIA 133 +#define MOVE_KINESIS 134 +#define MOVE_SOFT_BOILED 135 +#define MOVE_HI_JUMP_KICK 136 +#define MOVE_GLARE 137 +#define MOVE_DREAM_EATER 138 +#define MOVE_POISON_GAS 139 +#define MOVE_BARRAGE 140 +#define MOVE_LEECH_LIFE 141 +#define MOVE_LOVELY_KISS 142 +#define MOVE_SKY_ATTACK 143 +#define MOVE_TRANSFORM 144 +#define MOVE_BUBBLE 145 +#define MOVE_DIZZY_PUNCH 146 +#define MOVE_SPORE 147 +#define MOVE_FLASH 148 +#define MOVE_PSYWAVE 149 +#define MOVE_SPLASH 150 +#define MOVE_ACID_ARMOR 151 +#define MOVE_CRABHAMMER 152 +#define MOVE_EXPLOSION 153 +#define MOVE_FURY_SWIPES 154 +#define MOVE_BONEMERANG 155 +#define MOVE_REST 156 +#define MOVE_ROCK_SLIDE 157 +#define MOVE_HYPER_FANG 158 +#define MOVE_SHARPEN 159 +#define MOVE_CONVERSION 160 +#define MOVE_TRI_ATTACK 161 +#define MOVE_SUPER_FANG 162 +#define MOVE_SLASH 163 +#define MOVE_SUBSTITUTE 164 +#define MOVE_STRUGGLE 165 +#define MOVE_SKETCH 166 +#define MOVE_TRIPLE_KICK 167 +#define MOVE_THIEF 168 +#define MOVE_SPIDER_WEB 169 +#define MOVE_MIND_READER 170 +#define MOVE_NIGHTMARE 171 +#define MOVE_FLAME_WHEEL 172 +#define MOVE_SNORE 173 +#define MOVE_CURSE 174 +#define MOVE_FLAIL 175 +#define MOVE_CONVERSION_2 176 +#define MOVE_AEROBLAST 177 +#define MOVE_COTTON_SPORE 178 +#define MOVE_REVERSAL 179 +#define MOVE_SPITE 180 +#define MOVE_POWDER_SNOW 181 +#define MOVE_PROTECT 182 +#define MOVE_MACH_PUNCH 183 +#define MOVE_SCARY_FACE 184 +#define MOVE_FAINT_ATTACK 185 +#define MOVE_SWEET_KISS 186 +#define MOVE_BELLY_DRUM 187 +#define MOVE_SLUDGE_BOMB 188 +#define MOVE_MUD_SLAP 189 +#define MOVE_OCTAZOOKA 190 +#define MOVE_SPIKES 191 +#define MOVE_ZAP_CANNON 192 +#define MOVE_FORESIGHT 193 +#define MOVE_DESTINY_BOND 194 +#define MOVE_PERISH_SONG 195 +#define MOVE_ICY_WIND 196 +#define MOVE_DETECT 197 +#define MOVE_BONE_RUSH 198 +#define MOVE_LOCK_ON 199 +#define MOVE_OUTRAGE 200 +#define MOVE_SANDSTORM 201 +#define MOVE_GIGA_DRAIN 202 +#define MOVE_ENDURE 203 +#define MOVE_CHARM 204 +#define MOVE_ROLLOUT 205 +#define MOVE_FALSE_SWIPE 206 +#define MOVE_SWAGGER 207 +#define MOVE_MILK_DRINK 208 +#define MOVE_SPARK 209 +#define MOVE_FURY_CUTTER 210 +#define MOVE_STEEL_WING 211 +#define MOVE_MEAN_LOOK 212 +#define MOVE_ATTRACT 213 +#define MOVE_SLEEP_TALK 214 +#define MOVE_HEAL_BELL 215 +#define MOVE_RETURN 216 +#define MOVE_PRESENT 217 +#define MOVE_FRUSTRATION 218 +#define MOVE_SAFEGUARD 219 +#define MOVE_PAIN_SPLIT 220 +#define MOVE_SACRED_FIRE 221 +#define MOVE_MAGNITUDE 222 +#define MOVE_DYNAMIC_PUNCH 223 +#define MOVE_MEGAHORN 224 +#define MOVE_DRAGON_BREATH 225 +#define MOVE_BATON_PASS 226 +#define MOVE_ENCORE 227 +#define MOVE_PURSUIT 228 +#define MOVE_RAPID_SPIN 229 +#define MOVE_SWEET_SCENT 230 +#define MOVE_IRON_TAIL 231 +#define MOVE_METAL_CLAW 232 +#define MOVE_VITAL_THROW 233 +#define MOVE_MORNING_SUN 234 +#define MOVE_SYNTHESIS 235 +#define MOVE_MOONLIGHT 236 +#define MOVE_HIDDEN_POWER 237 +#define MOVE_CROSS_CHOP 238 +#define MOVE_TWISTER 239 +#define MOVE_RAIN_DANCE 240 +#define MOVE_SUNNY_DAY 241 +#define MOVE_CRUNCH 242 +#define MOVE_MIRROR_COAT 243 +#define MOVE_PSYCH_UP 244 +#define MOVE_EXTREME_SPEED 245 +#define MOVE_ANCIENT_POWER 246 +#define MOVE_SHADOW_BALL 247 +#define MOVE_FUTURE_SIGHT 248 +#define MOVE_ROCK_SMASH 249 +#define MOVE_WHIRLPOOL 250 +#define MOVE_BEAT_UP 251 +#define MOVE_FAKE_OUT 252 +#define MOVE_UPROAR 253 +#define MOVE_STOCKPILE 254 +#define MOVE_SPIT_UP 255 +#define MOVE_SWALLOW 256 +#define MOVE_HEAT_WAVE 257 +#define MOVE_HAIL 258 +#define MOVE_TORMENT 259 +#define MOVE_FLATTER 260 +#define MOVE_WILL_O_WISP 261 +#define MOVE_MEMENTO 262 +#define MOVE_FACADE 263 +#define MOVE_FOCUS_PUNCH 264 +#define MOVE_SMELLING_SALT 265 +#define MOVE_FOLLOW_ME 266 +#define MOVE_NATURE_POWER 267 +#define MOVE_CHARGE 268 +#define MOVE_TAUNT 269 +#define MOVE_HELPING_HAND 270 +#define MOVE_TRICK 271 +#define MOVE_ROLE_PLAY 272 +#define MOVE_WISH 273 +#define MOVE_ASSIST 274 +#define MOVE_INGRAIN 275 +#define MOVE_SUPERPOWER 276 +#define MOVE_MAGIC_COAT 277 +#define MOVE_RECYCLE 278 +#define MOVE_REVENGE 279 +#define MOVE_BRICK_BREAK 280 +#define MOVE_YAWN 281 +#define MOVE_KNOCK_OFF 282 +#define MOVE_ENDEAVOR 283 +#define MOVE_ERUPTION 284 +#define MOVE_SKILL_SWAP 285 +#define MOVE_IMPRISON 286 +#define MOVE_REFRESH 287 +#define MOVE_GRUDGE 288 +#define MOVE_SNATCH 289 +#define MOVE_SECRET_POWER 290 +#define MOVE_DIVE 291 +#define MOVE_ARM_THRUST 292 +#define MOVE_CAMOUFLAGE 293 +#define MOVE_TAIL_GLOW 294 +#define MOVE_LUSTER_PURGE 295 +#define MOVE_MIST_BALL 296 +#define MOVE_FEATHER_DANCE 297 +#define MOVE_TEETER_DANCE 298 +#define MOVE_BLAZE_KICK 299 +#define MOVE_MUD_SPORT 300 +#define MOVE_ICE_BALL 301 +#define MOVE_NEEDLE_ARM 302 +#define MOVE_SLACK_OFF 303 +#define MOVE_HYPER_VOICE 304 +#define MOVE_POISON_FANG 305 +#define MOVE_CRUSH_CLAW 306 +#define MOVE_BLAST_BURN 307 +#define MOVE_HYDRO_CANNON 308 +#define MOVE_METEOR_MASH 309 +#define MOVE_ASTONISH 310 +#define MOVE_WEATHER_BALL 311 +#define MOVE_AROMATHERAPY 312 +#define MOVE_FAKE_TEARS 313 +#define MOVE_AIR_CUTTER 314 +#define MOVE_OVERHEAT 315 +#define MOVE_ODOR_SLEUTH 316 +#define MOVE_ROCK_TOMB 317 +#define MOVE_SILVER_WIND 318 +#define MOVE_METAL_SOUND 319 +#define MOVE_GRASS_WHISTLE 320 +#define MOVE_TICKLE 321 +#define MOVE_COSMIC_POWER 322 +#define MOVE_WATER_SPOUT 323 +#define MOVE_SIGNAL_BEAM 324 +#define MOVE_SHADOW_PUNCH 325 +#define MOVE_EXTRASENSORY 326 +#define MOVE_SKY_UPPERCUT 327 +#define MOVE_SAND_TOMB 328 +#define MOVE_SHEER_COLD 329 +#define MOVE_MUDDY_WATER 330 +#define MOVE_BULLET_SEED 331 +#define MOVE_AERIAL_ACE 332 +#define MOVE_ICICLE_SPEAR 333 +#define MOVE_IRON_DEFENSE 334 +#define MOVE_BLOCK 335 +#define MOVE_HOWL 336 +#define MOVE_DRAGON_CLAW 337 +#define MOVE_FRENZY_PLANT 338 +#define MOVE_BULK_UP 339 +#define MOVE_BOUNCE 340 +#define MOVE_MUD_SHOT 341 +#define MOVE_POISON_TAIL 342 +#define MOVE_COVET 343 +#define MOVE_VOLT_TACKLE 344 +#define MOVE_MAGICAL_LEAF 345 +#define MOVE_WATER_SPORT 346 +#define MOVE_CALM_MIND 347 +#define MOVE_LEAF_BLADE 348 +#define MOVE_DRAGON_DANCE 349 +#define MOVE_ROCK_BLAST 350 +#define MOVE_SHOCK_WAVE 351 +#define MOVE_WATER_PULSE 352 +#define MOVE_DOOM_DESIRE 353 +#define MOVE_PSYCHO_BOOST 354 + +#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST + +#endif // GUARD_CONSTANTS_MOVES_H diff --git a/include/constants/opponent_constants.h b/include/constants/opponent_constants.h new file mode 100644 index 0000000000..680a637635 --- /dev/null +++ b/include/constants/opponent_constants.h @@ -0,0 +1,860 @@ +#ifndef GUARD_CONSTANTS_OPPONENTS_H +#define GUARD_CONSTANTS_OPPONENTS_H + +#define OPPONENT_NONE 0 +#define OPPONENT_SAWYER_1 1 +#define OPPONENT_GRUNT_1 2 +#define OPPONENT_GRUNT_2 3 +#define OPPONENT_GRUNT_3 4 +#define OPPONENT_GRUNT_4 5 +#define OPPONENT_GRUNT_5 6 +#define OPPONENT_GRUNT_6 7 +#define OPPONENT_GRUNT_7 8 +#define OPPONENT_GABRIELLE_1 9 +#define OPPONENT_GRUNT_8 10 +#define OPPONENT_MARCEL 11 +#define OPPONENT_ALBERTO 12 +#define OPPONENT_ED 13 +#define OPPONENT_GRUNT_9 14 +#define OPPONENT_DECLAN 15 +#define OPPONENT_GRUNT_10 16 +#define OPPONENT_GRUNT_11 17 +#define OPPONENT_GRUNT_12 18 +#define OPPONENT_GRUNT_13 19 +#define OPPONENT_GRUNT_14 20 +#define OPPONENT_GRUNT_15 21 +#define OPPONENT_GRUNT_16 22 +#define OPPONENT_GRUNT_17 23 +#define OPPONENT_GRUNT_18 24 +#define OPPONENT_GRUNT_19 25 +#define OPPONENT_GRUNT_20 26 +#define OPPONENT_GRUNT_21 27 +#define OPPONENT_GRUNT_22 28 +#define OPPONENT_FREDRICK 29 +#define OPPONENT_MATT_1 30 +#define OPPONENT_ZANDER 31 +#define OPPONENT_SHELLY_1 32 +#define OPPONENT_SHELLY_2 33 +#define OPPONENT_ARCHIE 34 +#define OPPONENT_LEAH 35 +#define OPPONENT_DAISY 36 +#define OPPONENT_ROSE_1 37 +#define OPPONENT_FELIX 38 +#define OPPONENT_VIOLET 39 +#define OPPONENT_ROSE_2 40 +#define OPPONENT_ROSE_3 41 +#define OPPONENT_ROSE_4 42 +#define OPPONENT_ROSE_5 43 +#define OPPONENT_DUSTY_1 44 +#define OPPONENT_CHIP 45 +#define OPPONENT_FOSTER 46 +#define OPPONENT_DUSTY_2 47 +#define OPPONENT_DUSTY_3 48 +#define OPPONENT_DUSTY_4 49 +#define OPPONENT_DUSTY_5 50 +#define OPPONENT_GABBY_AND_TY_1 51 +#define OPPONENT_GABBY_AND_TY_2 52 +#define OPPONENT_GABBY_AND_TY_3 53 +#define OPPONENT_GABBY_AND_TY_4 54 +#define OPPONENT_GABBY_AND_TY_5 55 +#define OPPONENT_GABBY_AND_TY_6 56 +#define OPPONENT_LOLA_1 57 +#define OPPONENT_AUSTINA 58 +#define OPPONENT_GWEN 59 +#define OPPONENT_LOLA_2 60 +#define OPPONENT_LOLA_3 61 +#define OPPONENT_LOLA_4 62 +#define OPPONENT_LOLA_5 63 +#define OPPONENT_RICKY_1 64 +#define OPPONENT_SIMON 65 +#define OPPONENT_CHARLIE 66 +#define OPPONENT_RICKY_2 67 +#define OPPONENT_RICKY_3 68 +#define OPPONENT_RICKY_4 69 +#define OPPONENT_RICKY_5 70 +#define OPPONENT_RANDALL 71 +#define OPPONENT_PARKER 72 +#define OPPONENT_GEORGE 73 +#define OPPONENT_BERKE 74 +#define OPPONENT_BRAXTON 75 +#define OPPONENT_VINCENT 76 +#define OPPONENT_LEROY 77 +#define OPPONENT_WILTON_1 78 +#define OPPONENT_EDGAR 79 +#define OPPONENT_ALBERT 80 +#define OPPONENT_SAMUEL 81 +#define OPPONENT_VITO 82 +#define OPPONENT_OWEN 83 +#define OPPONENT_WILTON_2 84 +#define OPPONENT_WILTON_3 85 +#define OPPONENT_WILTON_4 86 +#define OPPONENT_WILTON_5 87 +#define OPPONENT_WARREN 88 +#define OPPONENT_MARY 89 +#define OPPONENT_ALEXIA 90 +#define OPPONENT_JODY 91 +#define OPPONENT_WENDY 92 +#define OPPONENT_KEIRA 93 +#define OPPONENT_BROOKE_1 94 +#define OPPONENT_JENNIFER 95 +#define OPPONENT_HOPE 96 +#define OPPONENT_SHANNON 97 +#define OPPONENT_MICHELLE 98 +#define OPPONENT_CAROLINE 99 +#define OPPONENT_JULIE 100 +#define OPPONENT_BROOKE_2 101 +#define OPPONENT_BROOKE_3 102 +#define OPPONENT_BROOKE_4 103 +#define OPPONENT_BROOKE_5 104 +#define OPPONENT_PATRICIA 105 +#define OPPONENT_KINDRA 106 +#define OPPONENT_TAMMY 107 +#define OPPONENT_VALERIE_1 108 +#define OPPONENT_TASHA 109 +#define OPPONENT_VALERIE_2 110 +#define OPPONENT_VALERIE_3 111 +#define OPPONENT_VALERIE_4 112 +#define OPPONENT_VALERIE_5 113 +#define OPPONENT_CINDY_1 114 +#define OPPONENT_DAPHNE 115 +#define OPPONENT_GRUNT_23 116 +#define OPPONENT_CINDY_2 117 +#define OPPONENT_BRIANNA 118 +#define OPPONENT_NAOMI 119 +#define OPPONENT_CINDY_3 120 +#define OPPONENT_CINDY_4 121 +#define OPPONENT_CINDY_5 122 +#define OPPONENT_CINDY_6 123 +#define OPPONENT_MELISSA 124 +#define OPPONENT_SHEILA 125 +#define OPPONENT_SHIRLEY 126 +#define OPPONENT_JESSICA_1 127 +#define OPPONENT_CONNIE 128 +#define OPPONENT_BRIDGET 129 +#define OPPONENT_OLIVIA 130 +#define OPPONENT_TIFFANY 131 +#define OPPONENT_JESSICA_2 132 +#define OPPONENT_JESSICA_3 133 +#define OPPONENT_JESSICA_4 134 +#define OPPONENT_JESSICA_5 135 +#define OPPONENT_WINSTON_1 136 +#define OPPONENT_MOLLIE 137 +#define OPPONENT_GARRET 138 +#define OPPONENT_WINSTON_2 139 +#define OPPONENT_WINSTON_3 140 +#define OPPONENT_WINSTON_4 141 +#define OPPONENT_WINSTON_5 142 +#define OPPONENT_STEVE_1 143 +#define OPPONENT_THALIA_1 144 +#define OPPONENT_MARK 145 +#define OPPONENT_GRUNT_24 146 +#define OPPONENT_STEVE_2 147 +#define OPPONENT_STEVE_3 148 +#define OPPONENT_STEVE_4 149 +#define OPPONENT_STEVE_5 150 +#define OPPONENT_LUIS 151 +#define OPPONENT_DOMINIK 152 +#define OPPONENT_DOUGLAS 153 +#define OPPONENT_DARRIN 154 +#define OPPONENT_TONY_1 155 +#define OPPONENT_JEROME 156 +#define OPPONENT_MATTHEW 157 +#define OPPONENT_DAVID 158 +#define OPPONENT_SPENCER 159 +#define OPPONENT_ROLAND 160 +#define OPPONENT_NOLEN 161 +#define OPPONENT_STAN 162 +#define OPPONENT_BARRY 163 +#define OPPONENT_DEAN 164 +#define OPPONENT_RODNEY 165 +#define OPPONENT_RICHARD 166 +#define OPPONENT_HERMAN 167 +#define OPPONENT_SANTIAGO 168 +#define OPPONENT_GILBERT 169 +#define OPPONENT_FRANKLIN 170 +#define OPPONENT_KEVIN 171 +#define OPPONENT_JACK 172 +#define OPPONENT_DUDLEY 173 +#define OPPONENT_CHAD 174 +#define OPPONENT_TONY_2 175 +#define OPPONENT_TONY_3 176 +#define OPPONENT_TONY_4 177 +#define OPPONENT_TONY_5 178 +#define OPPONENT_TAKAO 179 +#define OPPONENT_HITOSHI 180 +#define OPPONENT_KIYO 181 +#define OPPONENT_KOICHI 182 +#define OPPONENT_NOB_1 183 +#define OPPONENT_NOB_2 184 +#define OPPONENT_NOB_3 185 +#define OPPONENT_NOB_4 186 +#define OPPONENT_NOB_5 187 +#define OPPONENT_YUJI 188 +#define OPPONENT_DAISUKE 189 +#define OPPONENT_ATSUSHI 190 +#define OPPONENT_KIRK 191 +#define OPPONENT_GRUNT_25 192 +#define OPPONENT_GRUNT_26 193 +#define OPPONENT_SHAWN 194 +#define OPPONENT_FERNANDO_1 195 +#define OPPONENT_DALTON_1 196 +#define OPPONENT_DALTON_2 197 +#define OPPONENT_DALTON_3 198 +#define OPPONENT_DALTON_4 199 +#define OPPONENT_DALTON_5 200 +#define OPPONENT_COLE 201 +#define OPPONENT_JEFF 202 +#define OPPONENT_AXLE 203 +#define OPPONENT_JACE 204 +#define OPPONENT_KEEGAN 205 +#define OPPONENT_BERNIE_1 206 +#define OPPONENT_BERNIE_2 207 +#define OPPONENT_BERNIE_3 208 +#define OPPONENT_BERNIE_4 209 +#define OPPONENT_BERNIE_5 210 +#define OPPONENT_DREW 211 +#define OPPONENT_BEAU 212 +#define OPPONENT_LARRY 213 +#define OPPONENT_SHANE 214 +#define OPPONENT_JUSTIN 215 +#define OPPONENT_ETHAN_1 216 +#define OPPONENT_AUTUMN 217 +#define OPPONENT_TRAVIS 218 +#define OPPONENT_ETHAN_2 219 +#define OPPONENT_ETHAN_3 220 +#define OPPONENT_ETHAN_4 221 +#define OPPONENT_ETHAN_5 222 +#define OPPONENT_BRENT 223 +#define OPPONENT_DONALD 224 +#define OPPONENT_TAYLOR 225 +#define OPPONENT_JEFFREY_1 226 +#define OPPONENT_DEREK 227 +#define OPPONENT_JEFFREY_2 228 +#define OPPONENT_JEFFREY_3 229 +#define OPPONENT_JEFFREY_4 230 +#define OPPONENT_JEFFREY_5 231 +#define OPPONENT_EDWARD 232 +#define OPPONENT_PRESTON 233 +#define OPPONENT_VIRGIL 234 +#define OPPONENT_BLAKE 235 +#define OPPONENT_WILLIAM 236 +#define OPPONENT_JOSHUA 237 +#define OPPONENT_CAMERON_1 238 +#define OPPONENT_CAMERON_2 239 +#define OPPONENT_CAMERON_3 240 +#define OPPONENT_CAMERON_4 241 +#define OPPONENT_CAMERON_5 242 +#define OPPONENT_JACLYN 243 +#define OPPONENT_HANNAH 244 +#define OPPONENT_SAMANTHA 245 +#define OPPONENT_MAURA 246 +#define OPPONENT_KAYLA 247 +#define OPPONENT_ALEXIS 248 +#define OPPONENT_JACKI_1 249 +#define OPPONENT_JACKI_2 250 +#define OPPONENT_JACKI_3 251 +#define OPPONENT_JACKI_4 252 +#define OPPONENT_JACKI_5 253 +#define OPPONENT_WALTER_1 254 +#define OPPONENT_MICAH 255 +#define OPPONENT_THOMAS 256 +#define OPPONENT_WALTER_2 257 +#define OPPONENT_WALTER_3 258 +#define OPPONENT_WALTER_4 259 +#define OPPONENT_WALTER_5 260 +#define OPPONENT_SIDNEY 261 +#define OPPONENT_PHOEBE 262 +#define OPPONENT_GLACIA 263 +#define OPPONENT_DRAKE 264 +#define OPPONENT_ROXANNE_1 265 +#define OPPONENT_BRAWLY_1 266 +#define OPPONENT_WATTSON_1 267 +#define OPPONENT_FLANNERY_1 268 +#define OPPONENT_NORMAN_1 269 +#define OPPONENT_WINONA_1 270 +#define OPPONENT_TATE_AND_LIZA_1 271 +#define OPPONENT_JUAN_1 272 +#define OPPONENT_JERRY_1 273 +#define OPPONENT_TED 274 +#define OPPONENT_PAUL 275 +#define OPPONENT_JERRY_2 276 +#define OPPONENT_JERRY_3 277 +#define OPPONENT_JERRY_4 278 +#define OPPONENT_JERRY_5 279 +#define OPPONENT_KAREN_1 280 +#define OPPONENT_GEORGIA 281 +#define OPPONENT_KAREN_2 282 +#define OPPONENT_KAREN_3 283 +#define OPPONENT_KAREN_4 284 +#define OPPONENT_KAREN_5 285 +#define OPPONENT_KATE_AND_JOY 286 +#define OPPONENT_ANNA_AND_MEG_1 287 +#define OPPONENT_ANNA_AND_MEG_2 288 +#define OPPONENT_ANNA_AND_MEG_3 289 +#define OPPONENT_ANNA_AND_MEG_4 290 +#define OPPONENT_ANNA_AND_MEG_5 291 +#define OPPONENT_VICTOR 292 +#define OPPONENT_MIGUEL_1 293 +#define OPPONENT_COLTON 294 +#define OPPONENT_MIGUEL_2 295 +#define OPPONENT_MIGUEL_3 296 +#define OPPONENT_MIGUEL_4 297 +#define OPPONENT_MIGUEL_5 298 +#define OPPONENT_VICTORIA 299 +#define OPPONENT_VANESSA 300 +#define OPPONENT_BETHANY 301 +#define OPPONENT_ISABEL_1 302 +#define OPPONENT_ISABEL_2 303 +#define OPPONENT_ISABEL_3 304 +#define OPPONENT_ISABEL_4 305 +#define OPPONENT_ISABEL_5 306 +#define OPPONENT_TIMOTHY_1 307 +#define OPPONENT_TIMOTHY_2 308 +#define OPPONENT_TIMOTHY_3 309 +#define OPPONENT_TIMOTHY_4 310 +#define OPPONENT_TIMOTHY_5 311 +#define OPPONENT_VICKY 312 +#define OPPONENT_SHELBY_1 313 +#define OPPONENT_SHELBY_2 314 +#define OPPONENT_SHELBY_3 315 +#define OPPONENT_SHELBY_4 316 +#define OPPONENT_SHELBY_5 317 +#define OPPONENT_CALVIN_1 318 +#define OPPONENT_BILLY 319 +#define OPPONENT_JOSH 320 +#define OPPONENT_TOMMY 321 +#define OPPONENT_JOEY 322 +#define OPPONENT_BEN 323 +#define OPPONENT_QUINCY 324 +#define OPPONENT_KATELYNN 325 +#define OPPONENT_JAYLEN 326 +#define OPPONENT_DILLON 327 +#define OPPONENT_CALVIN_2 328 +#define OPPONENT_CALVIN_3 329 +#define OPPONENT_CALVIN_4 330 +#define OPPONENT_CALVIN_5 331 +#define OPPONENT_EDDIE 332 +#define OPPONENT_ALLEN 333 +#define OPPONENT_TIMMY 334 +#define OPPONENT_WALLACE 335 +#define OPPONENT_ANDREW 336 +#define OPPONENT_IVAN 337 +#define OPPONENT_CLAUDE 338 +#define OPPONENT_ELLIOT_1 339 +#define OPPONENT_NED 340 +#define OPPONENT_DALE 341 +#define OPPONENT_NOLAN 342 +#define OPPONENT_BARNY 343 +#define OPPONENT_WADE 344 +#define OPPONENT_CARTER 345 +#define OPPONENT_ELLIOT_2 346 +#define OPPONENT_ELLIOT_3 347 +#define OPPONENT_ELLIOT_4 348 +#define OPPONENT_ELLIOT_5 349 +#define OPPONENT_RONALD 350 +#define OPPONENT_JACOB 351 +#define OPPONENT_ANTHONY 352 +#define OPPONENT_BENJAMIN_1 353 +#define OPPONENT_BENJAMIN_2 354 +#define OPPONENT_BENJAMIN_3 355 +#define OPPONENT_BENJAMIN_4 356 +#define OPPONENT_BENJAMIN_5 357 +#define OPPONENT_ABIGAIL_1 358 +#define OPPONENT_JASMINE 359 +#define OPPONENT_ABIGAIL_2 360 +#define OPPONENT_ABIGAIL_3 361 +#define OPPONENT_ABIGAIL_4 362 +#define OPPONENT_ABIGAIL_5 363 +#define OPPONENT_DYLAN_1 364 +#define OPPONENT_DYLAN_2 365 +#define OPPONENT_DYLAN_3 366 +#define OPPONENT_DYLAN_4 367 +#define OPPONENT_DYLAN_5 368 +#define OPPONENT_MARIA_1 369 +#define OPPONENT_MARIA_2 370 +#define OPPONENT_MARIA_3 371 +#define OPPONENT_MARIA_4 372 +#define OPPONENT_MARIA_5 373 +#define OPPONENT_CAMDEN 374 +#define OPPONENT_DEMETRIUS 375 +#define OPPONENT_ISAIAH_1 376 +#define OPPONENT_PABLO_1 377 +#define OPPONENT_CHASE 378 +#define OPPONENT_ISAIAH_2 379 +#define OPPONENT_ISAIAH_3 380 +#define OPPONENT_ISAIAH_4 381 +#define OPPONENT_ISAIAH_5 382 +#define OPPONENT_ISOBEL 383 +#define OPPONENT_DONNY 384 +#define OPPONENT_TALIA 385 +#define OPPONENT_KATELYN_1 386 +#define OPPONENT_ALLISON 387 +#define OPPONENT_KATELYN_2 388 +#define OPPONENT_KATELYN_3 389 +#define OPPONENT_KATELYN_4 390 +#define OPPONENT_KATELYN_5 391 +#define OPPONENT_NICOLAS_1 392 +#define OPPONENT_NICOLAS_2 393 +#define OPPONENT_NICOLAS_3 394 +#define OPPONENT_NICOLAS_4 395 +#define OPPONENT_NICOLAS_5 396 +#define OPPONENT_AARON 397 +#define OPPONENT_PERRY 398 +#define OPPONENT_HUGH 399 +#define OPPONENT_PHIL 400 +#define OPPONENT_JARED 401 +#define OPPONENT_HUMBERTO 402 +#define OPPONENT_PRESLEY 403 +#define OPPONENT_EDWARDO 404 +#define OPPONENT_COLIN 405 +#define OPPONENT_ROBERT_1 406 +#define OPPONENT_BENNY 407 +#define OPPONENT_CHESTER 408 +#define OPPONENT_ROBERT_2 409 +#define OPPONENT_ROBERT_3 410 +#define OPPONENT_ROBERT_4 411 +#define OPPONENT_ROBERT_5 412 +#define OPPONENT_ALEX 413 +#define OPPONENT_BECK 414 +#define OPPONENT_YASU 415 +#define OPPONENT_TAKASHI 416 +#define OPPONENT_DIANNE 417 +#define OPPONENT_JANI 418 +#define OPPONENT_LAO_1 419 +#define OPPONENT_LUNG 420 +#define OPPONENT_LAO_2 421 +#define OPPONENT_LAO_3 422 +#define OPPONENT_LAO_4 423 +#define OPPONENT_LAO_5 424 +#define OPPONENT_JOCELYN 425 +#define OPPONENT_LAURA 426 +#define OPPONENT_CYNDY_1 427 +#define OPPONENT_CORA 428 +#define OPPONENT_PAULA 429 +#define OPPONENT_CYNDY_2 430 +#define OPPONENT_CYNDY_3 431 +#define OPPONENT_CYNDY_4 432 +#define OPPONENT_CYNDY_5 433 +#define OPPONENT_MADELINE_1 434 +#define OPPONENT_CLARISSA 435 +#define OPPONENT_ANGELICA 436 +#define OPPONENT_MADELINE_2 437 +#define OPPONENT_MADELINE_3 438 +#define OPPONENT_MADELINE_4 439 +#define OPPONENT_MADELINE_5 440 +#define OPPONENT_BEVERLY 441 +#define OPPONENT_IMANI 442 +#define OPPONENT_KYLA 443 +#define OPPONENT_DENISE 444 +#define OPPONENT_BETH 445 +#define OPPONENT_TARA 446 +#define OPPONENT_MISSY 447 +#define OPPONENT_ALICE 448 +#define OPPONENT_JENNY_1 449 +#define OPPONENT_GRACE 450 +#define OPPONENT_TANYA 451 +#define OPPONENT_SHARON 452 +#define OPPONENT_NIKKI 453 +#define OPPONENT_BRENDA 454 +#define OPPONENT_KATIE 455 +#define OPPONENT_SUSIE 456 +#define OPPONENT_KARA 457 +#define OPPONENT_DANA 458 +#define OPPONENT_SIENNA 459 +#define OPPONENT_DEBRA 460 +#define OPPONENT_LINDA 461 +#define OPPONENT_KAYLEE 462 +#define OPPONENT_LAUREL 463 +#define OPPONENT_CARLEE 464 +#define OPPONENT_JENNY_2 465 +#define OPPONENT_JENNY_3 466 +#define OPPONENT_JENNY_4 467 +#define OPPONENT_JENNY_5 468 +#define OPPONENT_HEIDI 469 +#define OPPONENT_BECKY 470 +#define OPPONENT_CAROL 471 +#define OPPONENT_NANCY 472 +#define OPPONENT_MARTHA 473 +#define OPPONENT_DIANA_1 474 +#define OPPONENT_CEDRIC 475 +#define OPPONENT_IRENE 476 +#define OPPONENT_DIANA_2 477 +#define OPPONENT_DIANA_3 478 +#define OPPONENT_DIANA_4 479 +#define OPPONENT_DIANA_5 480 +#define OPPONENT_AMY_AND_LIV_1 481 +#define OPPONENT_AMY_AND_LIV_2 482 +#define OPPONENT_GINA_AND_MIA_1 483 +#define OPPONENT_MIU_AND_YUKI 484 +#define OPPONENT_AMY_AND_LIV_3 485 +#define OPPONENT_GINA_AND_MIA_2 486 +#define OPPONENT_AMY_AND_LIV_4 487 +#define OPPONENT_AMY_AND_LIV_5 488 +#define OPPONENT_AMY_AND_LIV_6 489 +#define OPPONENT_HUEY 490 +#define OPPONENT_EDMOND 491 +#define OPPONENT_ERNEST_1 492 +#define OPPONENT_DWAYNE 493 +#define OPPONENT_PHILLIP 494 +#define OPPONENT_LEONARD 495 +#define OPPONENT_DUNCAN 496 +#define OPPONENT_ERNEST_2 497 +#define OPPONENT_ERNEST_3 498 +#define OPPONENT_ERNEST_4 499 +#define OPPONENT_ERNEST_5 500 +#define OPPONENT_ELI 501 +#define OPPONENT_ANNIKA 502 +#define OPPONENT_JAZMYN 503 +#define OPPONENT_JONAS 504 +#define OPPONENT_KAYLEY 505 +#define OPPONENT_AURON 506 +#define OPPONENT_KELVIN 507 +#define OPPONENT_MARLEY 508 +#define OPPONENT_REYNA 509 +#define OPPONENT_HUDSON 510 +#define OPPONENT_CONOR 511 +#define OPPONENT_EDWIN_1 512 +#define OPPONENT_HECTOR 513 +#define OPPONENT_TABITHA_1 514 +#define OPPONENT_EDWIN_2 515 +#define OPPONENT_EDWIN_3 516 +#define OPPONENT_EDWIN_4 517 +#define OPPONENT_EDWIN_5 518 +#define OPPONENT_WALLY_1 519 +#define OPPONENT_BRENDAN_1 520 +#define OPPONENT_BRENDAN_2 521 +#define OPPONENT_BRENDAN_3 522 +#define OPPONENT_BRENDAN_4 523 +#define OPPONENT_BRENDAN_5 524 +#define OPPONENT_BRENDAN_6 525 +#define OPPONENT_BRENDAN_7 526 +#define OPPONENT_BRENDAN_8 527 +#define OPPONENT_BRENDAN_9 528 +#define OPPONENT_MAY_1 529 +#define OPPONENT_MAY_2 530 +#define OPPONENT_MAY_3 531 +#define OPPONENT_MAY_4 532 +#define OPPONENT_MAY_5 533 +#define OPPONENT_MAY_6 534 +#define OPPONENT_MAY_7 535 +#define OPPONENT_MAY_8 536 +#define OPPONENT_MAY_9 537 +#define OPPONENT_ISAAC_1 538 +#define OPPONENT_DAVIS 539 +#define OPPONENT_MITCHELL 540 +#define OPPONENT_ISAAC_2 541 +#define OPPONENT_ISAAC_3 542 +#define OPPONENT_ISAAC_4 543 +#define OPPONENT_ISAAC_5 544 +#define OPPONENT_LYDIA_1 545 +#define OPPONENT_HALLE 546 +#define OPPONENT_GARRISON 547 +#define OPPONENT_LYDIA_2 548 +#define OPPONENT_LYDIA_3 549 +#define OPPONENT_LYDIA_4 550 +#define OPPONENT_LYDIA_5 551 +#define OPPONENT_JACKSON_1 552 +#define OPPONENT_LORENZO 553 +#define OPPONENT_SEBASTIAN 554 +#define OPPONENT_JACKSON_2 555 +#define OPPONENT_JACKSON_3 556 +#define OPPONENT_JACKSON_4 557 +#define OPPONENT_JACKSON_5 558 +#define OPPONENT_CATHERINE_1 559 +#define OPPONENT_JENNA 560 +#define OPPONENT_SOPHIA 561 +#define OPPONENT_CATHERINE_2 562 +#define OPPONENT_CATHERINE_3 563 +#define OPPONENT_CATHERINE_4 564 +#define OPPONENT_CATHERINE_5 565 +#define OPPONENT_JULIO 566 +#define OPPONENT_GRUNT_27 567 +#define OPPONENT_GRUNT_28 568 +#define OPPONENT_GRUNT_29 569 +#define OPPONENT_GRUNT_30 570 +#define OPPONENT_MARC 571 +#define OPPONENT_BRENDEN 572 +#define OPPONENT_LILITH 573 +#define OPPONENT_CRISTIAN 574 +#define OPPONENT_SYLVIA 575 +#define OPPONENT_LEONARDO 576 +#define OPPONENT_ATHENA 577 +#define OPPONENT_HARRISON 578 +#define OPPONENT_GRUNT_31 579 +#define OPPONENT_CLARENCE 580 +#define OPPONENT_TERRY 581 +#define OPPONENT_NATE 582 +#define OPPONENT_KATHLEEN 583 +#define OPPONENT_CLIFFORD 584 +#define OPPONENT_NICHOLAS 585 +#define OPPONENT_GRUNT_32 586 +#define OPPONENT_GRUNT_33 587 +#define OPPONENT_GRUNT_34 588 +#define OPPONENT_GRUNT_35 589 +#define OPPONENT_GRUNT_36 590 +#define OPPONENT_MACEY 591 +#define OPPONENT_BRENDAN_10 592 +#define OPPONENT_BRENDAN_11 593 +#define OPPONENT_PAXTON 594 +#define OPPONENT_ISABELLA 595 +#define OPPONENT_GRUNT_37 596 +#define OPPONENT_TABITHA_2 597 +#define OPPONENT_JONATHAN 598 +#define OPPONENT_BRENDAN_12 599 +#define OPPONENT_MAY_10 600 +#define OPPONENT_MAXIE_1 601 +#define OPPONENT_MAXIE_2 602 +#define OPPONENT_TIANA 603 +#define OPPONENT_HALEY_1 604 +#define OPPONENT_JANICE 605 +#define OPPONENT_VIVI 606 +#define OPPONENT_HALEY_2 607 +#define OPPONENT_HALEY_3 608 +#define OPPONENT_HALEY_4 609 +#define OPPONENT_HALEY_5 610 +#define OPPONENT_SALLY 611 +#define OPPONENT_ROBIN 612 +#define OPPONENT_ANDREA 613 +#define OPPONENT_CRISSY 614 +#define OPPONENT_RICK 615 +#define OPPONENT_LYLE 616 +#define OPPONENT_JOSE 617 +#define OPPONENT_DOUG 618 +#define OPPONENT_GREG 619 +#define OPPONENT_KENT 620 +#define OPPONENT_JAMES_1 621 +#define OPPONENT_JAMES_2 622 +#define OPPONENT_JAMES_3 623 +#define OPPONENT_JAMES_4 624 +#define OPPONENT_JAMES_5 625 +#define OPPONENT_BRICE 626 +#define OPPONENT_TRENT_1 627 +#define OPPONENT_LENNY 628 +#define OPPONENT_LUCAS_1 629 +#define OPPONENT_ALAN 630 +#define OPPONENT_CLARK 631 +#define OPPONENT_ERIC 632 +#define OPPONENT_LUCAS_2 633 +#define OPPONENT_MIKE_1 634 +#define OPPONENT_MIKE_2 635 +#define OPPONENT_TRENT_2 636 +#define OPPONENT_TRENT_3 637 +#define OPPONENT_TRENT_4 638 +#define OPPONENT_TRENT_5 639 +#define OPPONENT_DEZ_AND_LUKE 640 +#define OPPONENT_LEA_AND_JED 641 +#define OPPONENT_KIRA_AND_DAN_1 642 +#define OPPONENT_KIRA_AND_DAN_2 643 +#define OPPONENT_KIRA_AND_DAN_3 644 +#define OPPONENT_KIRA_AND_DAN_4 645 +#define OPPONENT_KIRA_AND_DAN_5 646 +#define OPPONENT_JOHANNA 647 +#define OPPONENT_GERALD 648 +#define OPPONENT_VIVIAN 649 +#define OPPONENT_DANIELLE 650 +#define OPPONENT_HIDEO 651 +#define OPPONENT_KEIGO 652 +#define OPPONENT_RILEY 653 +#define OPPONENT_FLINT 654 +#define OPPONENT_ASHLEY 655 +#define OPPONENT_WALLY_2 656 +#define OPPONENT_WALLY_3 657 +#define OPPONENT_WALLY_4 658 +#define OPPONENT_WALLY_5 659 +#define OPPONENT_WALLY_6 660 +#define OPPONENT_BRENDAN_13 661 +#define OPPONENT_BRENDAN_14 662 +#define OPPONENT_BRENDAN_15 663 +#define OPPONENT_MAY_11 664 +#define OPPONENT_MAY_12 665 +#define OPPONENT_MAY_13 666 +#define OPPONENT_JONAH 667 +#define OPPONENT_HENRY 668 +#define OPPONENT_ROGER 669 +#define OPPONENT_ALEXA 670 +#define OPPONENT_RUBEN 671 +#define OPPONENT_KOJI_1 672 +#define OPPONENT_WAYNE 673 +#define OPPONENT_AIDAN 674 +#define OPPONENT_REED 675 +#define OPPONENT_TISHA 676 +#define OPPONENT_TORI_AND_TIA 677 +#define OPPONENT_KIM_AND_IRIS 678 +#define OPPONENT_TYRA_AND_IVY 679 +#define OPPONENT_MEL_AND_PAUL 680 +#define OPPONENT_JOHN_AND_JAY_1 681 +#define OPPONENT_JOHN_AND_JAY_2 682 +#define OPPONENT_JOHN_AND_JAY_3 683 +#define OPPONENT_JOHN_AND_JAY_4 684 +#define OPPONENT_JOHN_AND_JAY_5 685 +#define OPPONENT_RELI_AND_IAN 686 +#define OPPONENT_LILA_AND_ROY_1 687 +#define OPPONENT_LILA_AND_ROY_2 688 +#define OPPONENT_LILA_AND_ROY_3 689 +#define OPPONENT_LILA_AND_ROY_4 690 +#define OPPONENT_LILA_AND_ROY_5 691 +#define OPPONENT_LISA_AND_RAY 692 +#define OPPONENT_CHRIS 693 +#define OPPONENT_DAWSON 694 +#define OPPONENT_SARAH 695 +#define OPPONENT_DARIAN 696 +#define OPPONENT_HAILEY 697 +#define OPPONENT_CHANDLER 698 +#define OPPONENT_KALEB 699 +#define OPPONENT_JOSEPH 700 +#define OPPONENT_ALYSSA 701 +#define OPPONENT_MARCOS 702 +#define OPPONENT_RHETT 703 +#define OPPONENT_TYRON 704 +#define OPPONENT_CELINA 705 +#define OPPONENT_BIANCA 706 +#define OPPONENT_HAYDEN 707 +#define OPPONENT_SOPHIE 708 +#define OPPONENT_COBY 709 +#define OPPONENT_LAWRENCE 710 +#define OPPONENT_WYATT 711 +#define OPPONENT_ANGELINA 712 +#define OPPONENT_KAI 713 +#define OPPONENT_CHARLOTTE 714 +#define OPPONENT_DEANDRE 715 +#define OPPONENT_GRUNT_38 716 +#define OPPONENT_GRUNT_39 717 +#define OPPONENT_GRUNT_40 718 +#define OPPONENT_GRUNT_41 719 +#define OPPONENT_GRUNT_42 720 +#define OPPONENT_GRUNT_43 721 +#define OPPONENT_GRUNT_44 722 +#define OPPONENT_GRUNT_45 723 +#define OPPONENT_GRUNT_46 724 +#define OPPONENT_GRUNT_47 725 +#define OPPONENT_GRUNT_48 726 +#define OPPONENT_GRUNT_49 727 +#define OPPONENT_GRUNT_50 728 +#define OPPONENT_GRUNT_51 729 +#define OPPONENT_GRUNT_52 730 +#define OPPONENT_GRUNT_53 731 +#define OPPONENT_TABITHA_3 732 +#define OPPONENT_DARCY 733 +#define OPPONENT_MAXIE_3 734 +#define OPPONENT_PETE 735 +#define OPPONENT_ISABELLE 736 +#define OPPONENT_ANDRES_1 737 +#define OPPONENT_JOSUE 738 +#define OPPONENT_CAMRON 739 +#define OPPONENT_CORY_1 740 +#define OPPONENT_CAROLINA 741 +#define OPPONENT_ELIJAH 742 +#define OPPONENT_CELIA 743 +#define OPPONENT_BRYAN 744 +#define OPPONENT_BRANDEN 745 +#define OPPONENT_BRYANT 746 +#define OPPONENT_SHAYLA 747 +#define OPPONENT_KYRA 748 +#define OPPONENT_JAIDEN 749 +#define OPPONENT_ALIX 750 +#define OPPONENT_HELENE 751 +#define OPPONENT_MARLENE 752 +#define OPPONENT_DEVAN 753 +#define OPPONENT_JOHNSON 754 +#define OPPONENT_MELINA 755 +#define OPPONENT_BRANDI 756 +#define OPPONENT_AISHA 757 +#define OPPONENT_MAKAYLA 758 +#define OPPONENT_FABIAN 759 +#define OPPONENT_DAYTON 760 +#define OPPONENT_RACHEL 761 +#define OPPONENT_LEONEL 762 +#define OPPONENT_CALLIE 763 +#define OPPONENT_CALE 764 +#define OPPONENT_MYLES 765 +#define OPPONENT_PAT 766 +#define OPPONENT_CRISTIN_1 767 +#define OPPONENT_MAY_14 768 +#define OPPONENT_MAY_15 769 +#define OPPONENT_ROXANNE_2 770 +#define OPPONENT_ROXANNE_3 771 +#define OPPONENT_ROXANNE_4 772 +#define OPPONENT_ROXANNE_5 773 +#define OPPONENT_BRAWLY_2 774 +#define OPPONENT_BRAWLY_3 775 +#define OPPONENT_BRAWLY_4 776 +#define OPPONENT_BRAWLY_5 777 +#define OPPONENT_WATTSON_2 778 +#define OPPONENT_WATTSON_3 779 +#define OPPONENT_WATTSON_4 780 +#define OPPONENT_WATTSON_5 781 +#define OPPONENT_FLANNERY_2 782 +#define OPPONENT_FLANNERY_3 783 +#define OPPONENT_FLANNERY_4 784 +#define OPPONENT_FLANNERY_5 785 +#define OPPONENT_NORMAN_2 786 +#define OPPONENT_NORMAN_3 787 +#define OPPONENT_NORMAN_4 788 +#define OPPONENT_NORMAN_5 789 +#define OPPONENT_WINONA_2 790 +#define OPPONENT_WINONA_3 791 +#define OPPONENT_WINONA_4 792 +#define OPPONENT_WINONA_5 793 +#define OPPONENT_TATE_AND_LIZA_2 794 +#define OPPONENT_TATE_AND_LIZA_3 795 +#define OPPONENT_TATE_AND_LIZA_4 796 +#define OPPONENT_TATE_AND_LIZA_5 797 +#define OPPONENT_JUAN_2 798 +#define OPPONENT_JUAN_3 799 +#define OPPONENT_JUAN_4 800 +#define OPPONENT_JUAN_5 801 +#define OPPONENT_ANGELO 802 +#define OPPONENT_DARIUS 803 +#define OPPONENT_STEVEN 804 +#define OPPONENT_ANABEL 805 +#define OPPONENT_TUCKER 806 +#define OPPONENT_SPENSER 807 +#define OPPONENT_GRETA 808 +#define OPPONENT_NOLAND 809 +#define OPPONENT_LUCY 810 +#define OPPONENT_BRANDON 811 +#define OPPONENT_ANDRES_2 812 +#define OPPONENT_ANDRES_3 813 +#define OPPONENT_ANDRES_4 814 +#define OPPONENT_ANDRES_5 815 +#define OPPONENT_CORY_2 816 +#define OPPONENT_CORY_3 817 +#define OPPONENT_CORY_4 818 +#define OPPONENT_CORY_5 819 +#define OPPONENT_PABLO_2 820 +#define OPPONENT_PABLO_3 821 +#define OPPONENT_PABLO_4 822 +#define OPPONENT_PABLO_5 823 +#define OPPONENT_KOJI_2 824 +#define OPPONENT_KOJI_3 825 +#define OPPONENT_KOJI_4 826 +#define OPPONENT_KOJI_5 827 +#define OPPONENT_CRISTIN_2 828 +#define OPPONENT_CRISTIN_3 829 +#define OPPONENT_CRISTIN_4 830 +#define OPPONENT_CRISTIN_5 831 +#define OPPONENT_FERNANDO_2 832 +#define OPPONENT_FERNANDO_3 833 +#define OPPONENT_FERNANDO_4 834 +#define OPPONENT_FERNANDO_5 835 +#define OPPONENT_SAWYER_2 836 +#define OPPONENT_SAWYER_3 837 +#define OPPONENT_SAWYER_4 838 +#define OPPONENT_SAWYER_5 839 +#define OPPONENT_GABRIELLE_2 840 +#define OPPONENT_GABRIELLE_3 841 +#define OPPONENT_GABRIELLE_4 842 +#define OPPONENT_GABRIELLE_5 843 +#define OPPONENT_THALIA_2 844 +#define OPPONENT_THALIA_3 845 +#define OPPONENT_THALIA_4 846 +#define OPPONENT_THALIA_5 847 +#define OPPONENT_MARIELA 848 +#define OPPONENT_ALVARO 848 +#define OPPONENT_EVERETT 850 +#define OPPONENT_RED 851 +#define OPPONENT_LEAF 852 +#define OPPONENT_BRENDAN_16 853 +#define OPPONENT_MAY_16 854 + +#endif // GUARD_CONSTANTS_OPPONENTS_H diff --git a/include/constants/songs.h b/include/constants/songs.h new file mode 100644 index 0000000000..2e3adcbbf7 --- /dev/null +++ b/include/constants/songs.h @@ -0,0 +1,465 @@ +#ifndef GUARD_CONSTANTS_SONGS_H +#define GUARD_CONSTANTS_SONGS_H + +#define SE_STOP 0 +#define SE_KAIFUKU 1 +#define SE_PC_LOGON 2 +#define SE_PC_OFF 3 +#define SE_PC_ON 4 +#define SE_SELECT 5 +#define SE_WIN_OPEN 6 +#define SE_WALL_HIT 7 +#define SE_DOOR 8 +#define SE_KAIDAN 9 +#define SE_DANSA 10 +#define SE_JITENSYA 11 +#define SE_KOUKA_L 12 +#define SE_KOUKA_M 13 +#define SE_KOUKA_H 14 +#define SE_BOWA2 15 +#define SE_POKE_DEAD 16 +#define SE_NIGERU 17 +#define SE_JIDO_DOA 18 +#define SE_NAMINORI 19 +#define SE_BAN 20 +#define SE_PIN 21 +#define SE_BOO 22 +#define SE_BOWA 23 +#define SE_JYUNI 24 +#define SE_A 25 +#define SE_I 26 +#define SE_U 27 +#define SE_E 28 +#define SE_O 29 +#define SE_N 30 +#define SE_SEIKAI 31 +#define SE_HAZURE 32 +#define SE_EXP 33 +#define SE_JITE_PYOKO 34 +#define SE_MU_PACHI 35 +#define SE_TK_KASYA 36 +#define SE_FU_ZAKU 37 +#define SE_FU_ZAKU2 38 +#define SE_FU_ZUZUZU 39 +#define SE_RU_GASHIN 40 +#define SE_RU_GASYAN 41 +#define SE_RU_BARI 42 +#define SE_RU_HYUU 43 +#define SE_KI_GASYAN 44 +#define SE_TK_WARPIN 45 +#define SE_TK_WARPOUT 46 +#define SE_TU_SAA 47 +#define SE_HI_TURUN 48 +#define SE_TRACK_MOVE 49 +#define SE_TRACK_STOP 50 +#define SE_TRACK_HAIK 51 +#define SE_TRACK_DOOR 52 +#define SE_MOTER 53 +#define SE_CARD 54 +#define SE_SAVE 55 +#define SE_KON 56 +#define SE_KON2 57 +#define SE_KON3 58 +#define SE_KON4 59 +#define SE_SUIKOMU 60 +#define SE_NAGERU 61 +#define SE_TOY_C 62 +#define SE_TOY_D 63 +#define SE_TOY_E 64 +#define SE_TOY_F 65 +#define SE_TOY_G 66 +#define SE_TOY_A 67 +#define SE_TOY_B 68 +#define SE_TOY_C1 69 +#define SE_MIZU 70 +#define SE_HASHI 71 +#define SE_DAUGI 72 +#define SE_PINPON 73 +#define SE_FUUSEN1 74 +#define SE_FUUSEN2 75 +#define SE_FUUSEN3 76 +#define SE_TOY_KABE 77 +#define SE_TOY_DANGO 78 +#define SE_DOKU 79 +#define SE_ESUKA 80 +#define SE_T_AME 81 +#define SE_T_AME_E 82 +#define SE_T_OOAME 83 +#define SE_T_OOAME_E 84 +#define SE_T_KOAME 85 +#define SE_T_KOAME_E 86 +#define SE_T_KAMI 87 +#define SE_T_KAMI2 88 +#define SE_ELEBETA 89 +#define SE_HINSI 90 +#define SE_EXPMAX 91 +#define SE_TAMAKORO 92 +#define SE_TAMAKORO_E 93 +#define SE_BASABASA 94 +#define SE_REGI 95 +#define SE_C_GAJI 96 +#define SE_C_MAKU_U 97 +#define SE_C_MAKU_D 98 +#define SE_C_PASI 99 +#define SE_C_SYU 100 +#define SE_C_PIKON 101 +#define SE_REAPOKE 102 +#define SE_OP_BASYU 103 +#define SE_BT_START 104 +#define SE_DENDOU 105 +#define SE_JIHANKI 106 +#define SE_TAMA 107 +#define SE_Z_SCROLL 108 +#define SE_Z_PAGE 109 +#define SE_PN_ON 110 +#define SE_PN_OFF 111 +#define SE_Z_SEARCH 112 +#define SE_TAMAGO 113 +#define SE_TB_START 114 +#define SE_TB_KON 115 +#define SE_TB_KARA 116 +#define SE_BIDORO 117 +#define SE_W085 118 +#define SE_W085B 119 +#define SE_W231 120 +#define SE_W171 121 +#define SE_W233 122 +#define SE_W233B 123 +#define SE_W145 124 +#define SE_W145B 125 +#define SE_W145C 126 +#define SE_W240 127 +#define SE_W015 128 +#define SE_W081 129 +#define SE_W081B 130 +#define SE_W088 131 +#define SE_W016 132 +#define SE_W016B 133 +#define SE_W003 134 +#define SE_W104 135 +#define SE_W013 136 +#define SE_W196 137 +#define SE_W086 138 +#define SE_W004 139 +#define SE_W025 140 +#define SE_W025B 141 +#define SE_W152 142 +#define SE_W026 143 +#define SE_W172 144 +#define SE_W172B 145 +#define SE_W053 146 +#define SE_W007 147 +#define SE_W092 148 +#define SE_W221 149 +#define SE_W221B 150 +#define SE_W052 151 +#define SE_W036 152 +#define SE_W059 153 +#define SE_W059B 154 +#define SE_W010 155 +#define SE_W011 156 +#define SE_W017 157 +#define SE_W019 158 +#define SE_W028 159 +#define SE_W013B 160 +#define SE_W044 161 +#define SE_W029 162 +#define SE_W057 163 +#define SE_W056 164 +#define SE_W250 165 +#define SE_W030 166 +#define SE_W039 167 +#define SE_W054 168 +#define SE_W077 169 +#define SE_W020 170 +#define SE_W082 171 +#define SE_W047 172 +#define SE_W195 173 +#define SE_W006 174 +#define SE_W091 175 +#define SE_W146 176 +#define SE_W120 177 +#define SE_W153 178 +#define SE_W071B 179 +#define SE_W071 180 +#define SE_W103 181 +#define SE_W062 182 +#define SE_W062B 183 +#define SE_W048 184 +#define SE_W187 185 +#define SE_W118 186 +#define SE_W155 187 +#define SE_W122 188 +#define SE_W060 189 +#define SE_W185 190 +#define SE_W014 191 +#define SE_W043 192 +#define SE_W207 193 +#define SE_W207B 194 +#define SE_W215 195 +#define SE_W109 196 +#define SE_W173 197 +#define SE_W280 198 +#define SE_W202 199 +#define SE_W060B 200 +#define SE_W076 201 +#define SE_W080 202 +#define SE_W100 203 +#define SE_W107 204 +#define SE_W166 205 +#define SE_W129 206 +#define SE_W115 207 +#define SE_W112 208 +#define SE_W197 209 +#define SE_W199 210 +#define SE_W236 211 +#define SE_W204 212 +#define SE_W268 213 +#define SE_W070 214 +#define SE_W063 215 +#define SE_W127 216 +#define SE_W179 217 +#define SE_W151 218 +#define SE_W201 219 +#define SE_W161 220 +#define SE_W161B 221 +#define SE_W227 222 +#define SE_W227B 223 +#define SE_W226 224 +#define SE_W208 225 +#define SE_W213 226 +#define SE_W213B 227 +#define SE_W234 228 +#define SE_W260 229 +#define SE_W328 230 +#define SE_W320 231 +#define SE_W255 232 +#define SE_W291 233 +#define SE_W089 234 +#define SE_W239 235 +#define SE_W230 236 +#define SE_W281 237 +#define SE_W327 238 +#define SE_W287 239 +#define SE_W257 240 +#define SE_W253 241 +#define SE_W258 242 +#define SE_W322 243 +#define SE_W298 244 +#define SE_W287B 245 +#define SE_W114 246 +#define SE_W063B 247 +#define BGM_STOP 349 +#define BGM_TETSUJI 350 +#define BGM_FIELD13 351 +#define BGM_KACHI22 352 +#define BGM_KACHI2 353 +#define BGM_KACHI3 354 +#define BGM_KACHI5 355 +#define BGM_PCC 356 +#define BGM_NIBI 357 +#define BGM_SUIKUN 358 +#define BGM_DOORO1 359 +#define BGM_DOORO_X1 360 +#define BGM_DOORO_X3 361 +#define BGM_MACHI_S2 362 +#define BGM_MACHI_S4 363 +#define BGM_GIM 364 +#define BGM_NAMINORI 365 +#define BGM_DAN01 366 +#define BGM_FANFA1 367 +#define BGM_ME_ASA 368 +#define BGM_ME_BACHI 369 +#define BGM_FANFA4 370 +#define BGM_FANFA5 371 +#define BGM_ME_WAZA 372 +#define BGM_BIJYUTU 373 +#define BGM_DOORO_X4 374 +#define BGM_FUNE_KAN 375 +#define BGM_ME_SHINKA 376 +#define BGM_SHINKA 377 +#define BGM_ME_WASURE 378 +#define BGM_SYOUJOEYE 379 +#define BGM_BOYEYE 380 +#define BGM_DAN02 381 +#define BGM_MACHI_S3 382 +#define BGM_ODAMAKI 383 +#define BGM_B_TOWER 384 +#define BGM_SWIMEYE 385 +#define BGM_DAN03 386 +#define BGM_ME_KINOMI 387 +#define BGM_ME_TAMA 388 +#define BGM_ME_B_BIG 389 +#define BGM_ME_B_SMALL 390 +#define BGM_ME_ZANNEN 391 +#define BGM_BD_TIME 392 +#define BGM_TEST1 393 +#define BGM_TEST2 394 +#define BGM_TEST3 395 +#define BGM_TEST4 396 +#define BGM_TEST 397 +#define BGM_GOMACHI0 398 +#define BGM_GOTOWN 399 +#define BGM_POKECEN 400 +#define BGM_NEXTROAD 401 +#define BGM_GRANROAD 402 +#define BGM_CYCLING 403 +#define BGM_FRIENDLY 404 +#define BGM_MISHIRO 405 +#define BGM_TOZAN 406 +#define BGM_GIRLEYE 407 +#define BGM_MINAMO 408 +#define BGM_ASHROAD 409 +#define BGM_EVENT0 410 +#define BGM_DEEPDEEP 411 +#define BGM_KACHI1 412 +#define BGM_TITLE3 413 +#define BGM_DEMO1 414 +#define BGM_GIRL_SUP 415 +#define BGM_HAGESHII 416 +#define BGM_KAKKOII 417 +#define BGM_KAZANBAI 418 +#define BGM_AQA_0 419 +#define BGM_TSURETEK 420 +#define BGM_BOY_SUP 421 +#define BGM_RAINBOW 422 +#define BGM_AYASII 423 +#define BGM_KACHI4 424 +#define BGM_ROPEWAY 425 +#define BGM_CASINO 426 +#define BGM_HIGHTOWN 427 +#define BGM_SAFARI 428 +#define BGM_C_ROAD 429 +#define BGM_AJITO 430 +#define BGM_M_BOAT 431 +#define BGM_M_DUNGON 432 +#define BGM_FINECITY 433 +#define BGM_MACHUPI 434 +#define BGM_P_SCHOOL 435 +#define BGM_DENDOU 436 +#define BGM_TONEKUSA 437 +#define BGM_MABOROSI 438 +#define BGM_CON_FAN 439 +#define BGM_CONTEST0 440 +#define BGM_MGM0 441 +#define BGM_T_BATTLE 442 +#define BGM_OOAME 443 +#define BGM_HIDERI 444 +#define BGM_RUNECITY 445 +#define BGM_CON_K 446 +#define BGM_EIKOU_R 447 +#define BGM_KARAKURI 448 +#define BGM_HUTAGO 449 +#define BGM_SITENNOU 450 +#define BGM_YAMA_EYE 451 +#define BGM_CONLOBBY 452 +#define BGM_INTER_V 453 +#define BGM_DAIGO 454 +#define BGM_THANKFOR 455 +#define BGM_END 456 +#define BGM_BATTLE_FRONTIER 457 +#define BGM_BATTLE_ARENA 458 +#define BGM_ME_BATTLE_POINTS 459 +#define BGM_ME_MATCH_CALL 460 +#define BGM_BATTLE_PYRAMID 461 +#define BGM_BATTLE_PYRAMID_SUMMIT 462 +#define BGM_BATTLE_PALACE 463 +#define BGM_FANFA_RAYQUAZA 464 +#define BGM_BATTLE_TOWER 465 +#define BGM_ME_BATTLE_SYMBOL 466 +#define BGM_BATTLE_DOME_TOURNAMENT 467 +#define BGM_BATTLE_PIKE 468 +#define BGM_BATTLE_FACTORY 469 +#define BGM_BATTLE_LEGENDARY 470 +#define BGM_BATTLE_FRONTIER_BRAIN 471 +#define BGM_BATTLE_MEW 472 +#define BGM_BATTLE_DOME 473 +#define BGM_BATTLE27 474 +#define BGM_BATTLE31 475 +#define BGM_BATTLE20 476 +#define BGM_BATTLE32 477 +#define BGM_BATTLE33 478 +#define BGM_BATTLE36 479 +#define BGM_BATTLE34 480 +#define BGM_BATTLE35 481 +#define BGM_BATTLE38 482 +#define BGM_BATTLE30 483 +#define BGM_FRLG_FOLLOW_ME 484 +#define BGM_FRLG_GAMECORNER 485 +#define BGM_FRLG_ROCKET_HIDEOUT 486 +#define BGM_FRLG_GYM 487 +#define BGM_FRLG_JIGGLYPUFF 488 +#define BGM_FRLG_OPENING 489 +#define BGM_FRLG_TITLE 490 +#define BGM_FRLG_CINNABAR_ISLAND 491 +#define BGM_FRLG_LAVENDER_TOWN 492 +#define BGM_FRLG_HEALING_TEST 493 +#define BGM_FRLG_BICYCLE 494 +#define BGM_FRLG_SUSPICIOUS_EYE 495 +#define BGM_FRLG_GIRL_EYE 496 +#define BGM_FRLG_BOY_EYE 497 +#define BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME 498 +#define BGM_FRLG_VIRIDIAN_FOREST 499 +#define BGM_FRLG_MT_MOON 500 +#define BGM_FRLG_POKEMON_MANSION 501 +#define BGM_FRLG_CREDITS 502 +#define BGM_FRLG_ROUTE_1 503 +#define BGM_FRLG_ROUTE_24 504 +#define BGM_FRLG_ROUTE_3 505 +#define BGM_FRLG_ROUTE_11 506 +#define BGM_FRLG_INDIGO_PLATEAU 507 +#define BGM_FRLG_BATTLE_LEADER 508 +#define BGM_FRLG_BATTLE_TRAINER 509 +#define BGM_FRLG_BATTLE_WILD_POKEMON 510 +#define BGM_FRLG_BATTLE_CHAMPION 511 +#define BGM_FRLG_PALLET_TOWN 512 +#define BGM_FRLG_OAK_LAB 513 +#define BGM_FRLG_PROF_OAK 514 +#define BGM_FRLG_POKEMON_CENTER 515 +#define BGM_FRLG_SS_ANNE 516 +#define BGM_FRLG_SURF 517 +#define BGM_FRLG_POKEMON_TOWER 518 +#define BGM_FRLG_SILPH 519 +#define BGM_FRLG_CERULEAN_CITY 520 +#define BGM_FRLG_CELADON_CITY 521 +#define BGM_FRLG_KACHI_TRAINER 522 +#define BGM_FRLG_KACHI_WILD_POKEMON 523 +#define BGM_FRLG_KACHI_LEADER 524 +#define BGM_FRLG_VERMILION_CITY 525 +#define BGM_FRLG_VIRIDIAN_CITY 526 +#define BGM_FRLG_RIVAL 527 +#define BGM_FRLG_RIVAL_POSTBATTLE 528 +#define BGM_FRLG_ME_POKEDEX_EVAL 529 +#define BGM_FRLG_ME_KEYITEM 530 +#define BGM_FRLG_FANFA_POKEMON_CAUGHT 531 +#define BGM_FRLG_FANFA_TRAINERCARD_PHOTO 532 +#define BGM_FRLG_GAMEFREAK_LOGO 533 +#define BGM_FRLG_CAUGHT_POKEMON 534 +#define BGM_FRLG_GAME_EXPLANATION_START 535 +#define BGM_FRLG_GAME_EXPLANATION_MIDDLE 536 +#define BGM_FRLG_GAME_EXPLANATION_END 537 +#define BGM_FRLG_POKEMON_JUMP 538 +#define BGM_FRLG_UNION_ROOM 539 +#define BGM_FRLG_POKEMON_NETWORK_CENTER 540 +#define BGM_FRLG_MYSTERY_GIFT 541 +#define BGM_FRLG_DODRIO_BERRY_PICK 542 +#define BGM_FRLG_MT_EMBER 543 +#define BGM_FRLG_TEACHY_TV_EPISODE 544 +#define BGM_FRLG_SEVII_ISLANDS 545 +#define BGM_FRLG_TANOBY_RUINS 546 +#define BGM_FRLG_ISLAND_ONE 547 +#define BGM_FRLG_ISLAND_FOUR 548 +#define BGM_FRLG_ISLAND_SIX 549 +#define BGM_FRLG_FLUTE 550 +#define BGM_FRLG_BATTLE_DEOXYS 551 +#define BGM_FRLG_BATTLE_MEWTWO 552 +#define BGM_FRLG_BATTLE_LEGENDARY 553 +#define BGM_FRLG_LEADER_EYE 554 +#define BGM_FRLG_DEOXYS_EYE 555 +#define BGM_FRLG_TRAINER_TOWER 556 +#define BGM_FRLG_HALL_OF_FAME_PALLET_TOWN 557 +#define BGM_FRLG_TEACHY_TV 558 + +#define BGM_ROUTE_118 0x7FFF // What is this for? + +#endif // GUARD_CONSTANTS_SONGS_H diff --git a/include/constants/species.h b/include/constants/species.h new file mode 100644 index 0000000000..f698ada14a --- /dev/null +++ b/include/constants/species.h @@ -0,0 +1,450 @@ +#ifndef GUARD_CONSTANTS_SPECIES_H +#define GUARD_CONSTANTS_SPECIES_H + +#define SPECIES_NONE 0 +#define SPECIES_BULBASAUR 1 +#define SPECIES_IVYSAUR 2 +#define SPECIES_VENUSAUR 3 +#define SPECIES_CHARMANDER 4 +#define SPECIES_CHARMELEON 5 +#define SPECIES_CHARIZARD 6 +#define SPECIES_SQUIRTLE 7 +#define SPECIES_WARTORTLE 8 +#define SPECIES_BLASTOISE 9 +#define SPECIES_CATERPIE 10 +#define SPECIES_METAPOD 11 +#define SPECIES_BUTTERFREE 12 +#define SPECIES_WEEDLE 13 +#define SPECIES_KAKUNA 14 +#define SPECIES_BEEDRILL 15 +#define SPECIES_PIDGEY 16 +#define SPECIES_PIDGEOTTO 17 +#define SPECIES_PIDGEOT 18 +#define SPECIES_RATTATA 19 +#define SPECIES_RATICATE 20 +#define SPECIES_SPEAROW 21 +#define SPECIES_FEAROW 22 +#define SPECIES_EKANS 23 +#define SPECIES_ARBOK 24 +#define SPECIES_PIKACHU 25 +#define SPECIES_RAICHU 26 +#define SPECIES_SANDSHREW 27 +#define SPECIES_SANDSLASH 28 +#define SPECIES_NIDORAN_F 29 +#define SPECIES_NIDORINA 30 +#define SPECIES_NIDOQUEEN 31 +#define SPECIES_NIDORAN_M 32 +#define SPECIES_NIDORINO 33 +#define SPECIES_NIDOKING 34 +#define SPECIES_CLEFAIRY 35 +#define SPECIES_CLEFABLE 36 +#define SPECIES_VULPIX 37 +#define SPECIES_NINETALES 38 +#define SPECIES_JIGGLYPUFF 39 +#define SPECIES_WIGGLYTUFF 40 +#define SPECIES_ZUBAT 41 +#define SPECIES_GOLBAT 42 +#define SPECIES_ODDISH 43 +#define SPECIES_GLOOM 44 +#define SPECIES_VILEPLUME 45 +#define SPECIES_PARAS 46 +#define SPECIES_PARASECT 47 +#define SPECIES_VENONAT 48 +#define SPECIES_VENOMOTH 49 +#define SPECIES_DIGLETT 50 +#define SPECIES_DUGTRIO 51 +#define SPECIES_MEOWTH 52 +#define SPECIES_PERSIAN 53 +#define SPECIES_PSYDUCK 54 +#define SPECIES_GOLDUCK 55 +#define SPECIES_MANKEY 56 +#define SPECIES_PRIMEAPE 57 +#define SPECIES_GROWLITHE 58 +#define SPECIES_ARCANINE 59 +#define SPECIES_POLIWAG 60 +#define SPECIES_POLIWHIRL 61 +#define SPECIES_POLIWRATH 62 +#define SPECIES_ABRA 63 +#define SPECIES_KADABRA 64 +#define SPECIES_ALAKAZAM 65 +#define SPECIES_MACHOP 66 +#define SPECIES_MACHOKE 67 +#define SPECIES_MACHAMP 68 +#define SPECIES_BELLSPROUT 69 +#define SPECIES_WEEPINBELL 70 +#define SPECIES_VICTREEBEL 71 +#define SPECIES_TENTACOOL 72 +#define SPECIES_TENTACRUEL 73 +#define SPECIES_GEODUDE 74 +#define SPECIES_GRAVELER 75 +#define SPECIES_GOLEM 76 +#define SPECIES_PONYTA 77 +#define SPECIES_RAPIDASH 78 +#define SPECIES_SLOWPOKE 79 +#define SPECIES_SLOWBRO 80 +#define SPECIES_MAGNEMITE 81 +#define SPECIES_MAGNETON 82 +#define SPECIES_FARFETCHD 83 +#define SPECIES_DODUO 84 +#define SPECIES_DODRIO 85 +#define SPECIES_SEEL 86 +#define SPECIES_DEWGONG 87 +#define SPECIES_GRIMER 88 +#define SPECIES_MUK 89 +#define SPECIES_SHELLDER 90 +#define SPECIES_CLOYSTER 91 +#define SPECIES_GASTLY 92 +#define SPECIES_HAUNTER 93 +#define SPECIES_GENGAR 94 +#define SPECIES_ONIX 95 +#define SPECIES_DROWZEE 96 +#define SPECIES_HYPNO 97 +#define SPECIES_KRABBY 98 +#define SPECIES_KINGLER 99 +#define SPECIES_VOLTORB 100 +#define SPECIES_ELECTRODE 101 +#define SPECIES_EXEGGCUTE 102 +#define SPECIES_EXEGGUTOR 103 +#define SPECIES_CUBONE 104 +#define SPECIES_MAROWAK 105 +#define SPECIES_HITMONLEE 106 +#define SPECIES_HITMONCHAN 107 +#define SPECIES_LICKITUNG 108 +#define SPECIES_KOFFING 109 +#define SPECIES_WEEZING 110 +#define SPECIES_RHYHORN 111 +#define SPECIES_RHYDON 112 +#define SPECIES_CHANSEY 113 +#define SPECIES_TANGELA 114 +#define SPECIES_KANGASKHAN 115 +#define SPECIES_HORSEA 116 +#define SPECIES_SEADRA 117 +#define SPECIES_GOLDEEN 118 +#define SPECIES_SEAKING 119 +#define SPECIES_STARYU 120 +#define SPECIES_STARMIE 121 +#define SPECIES_MR_MIME 122 +#define SPECIES_SCYTHER 123 +#define SPECIES_JYNX 124 +#define SPECIES_ELECTABUZZ 125 +#define SPECIES_MAGMAR 126 +#define SPECIES_PINSIR 127 +#define SPECIES_TAUROS 128 +#define SPECIES_MAGIKARP 129 +#define SPECIES_GYARADOS 130 +#define SPECIES_LAPRAS 131 +#define SPECIES_DITTO 132 +#define SPECIES_EEVEE 133 +#define SPECIES_VAPOREON 134 +#define SPECIES_JOLTEON 135 +#define SPECIES_FLAREON 136 +#define SPECIES_PORYGON 137 +#define SPECIES_OMANYTE 138 +#define SPECIES_OMASTAR 139 +#define SPECIES_KABUTO 140 +#define SPECIES_KABUTOPS 141 +#define SPECIES_AERODACTYL 142 +#define SPECIES_SNORLAX 143 +#define SPECIES_ARTICUNO 144 +#define SPECIES_ZAPDOS 145 +#define SPECIES_MOLTRES 146 +#define SPECIES_DRATINI 147 +#define SPECIES_DRAGONAIR 148 +#define SPECIES_DRAGONITE 149 +#define SPECIES_MEWTWO 150 +#define SPECIES_MEW 151 +#define SPECIES_CHIKORITA 152 +#define SPECIES_BAYLEEF 153 +#define SPECIES_MEGANIUM 154 +#define SPECIES_CYNDAQUIL 155 +#define SPECIES_QUILAVA 156 +#define SPECIES_TYPHLOSION 157 +#define SPECIES_TOTODILE 158 +#define SPECIES_CROCONAW 159 +#define SPECIES_FERALIGATR 160 +#define SPECIES_SENTRET 161 +#define SPECIES_FURRET 162 +#define SPECIES_HOOTHOOT 163 +#define SPECIES_NOCTOWL 164 +#define SPECIES_LEDYBA 165 +#define SPECIES_LEDIAN 166 +#define SPECIES_SPINARAK 167 +#define SPECIES_ARIADOS 168 +#define SPECIES_CROBAT 169 +#define SPECIES_CHINCHOU 170 +#define SPECIES_LANTURN 171 +#define SPECIES_PICHU 172 +#define SPECIES_CLEFFA 173 +#define SPECIES_IGGLYBUFF 174 +#define SPECIES_TOGEPI 175 +#define SPECIES_TOGETIC 176 +#define SPECIES_NATU 177 +#define SPECIES_XATU 178 +#define SPECIES_MAREEP 179 +#define SPECIES_FLAAFFY 180 +#define SPECIES_AMPHAROS 181 +#define SPECIES_BELLOSSOM 182 +#define SPECIES_MARILL 183 +#define SPECIES_AZUMARILL 184 +#define SPECIES_SUDOWOODO 185 +#define SPECIES_POLITOED 186 +#define SPECIES_HOPPIP 187 +#define SPECIES_SKIPLOOM 188 +#define SPECIES_JUMPLUFF 189 +#define SPECIES_AIPOM 190 +#define SPECIES_SUNKERN 191 +#define SPECIES_SUNFLORA 192 +#define SPECIES_YANMA 193 +#define SPECIES_WOOPER 194 +#define SPECIES_QUAGSIRE 195 +#define SPECIES_ESPEON 196 +#define SPECIES_UMBREON 197 +#define SPECIES_MURKROW 198 +#define SPECIES_SLOWKING 199 +#define SPECIES_MISDREAVUS 200 +#define SPECIES_UNOWN 201 +#define SPECIES_WOBBUFFET 202 +#define SPECIES_GIRAFARIG 203 +#define SPECIES_PINECO 204 +#define SPECIES_FORRETRESS 205 +#define SPECIES_DUNSPARCE 206 +#define SPECIES_GLIGAR 207 +#define SPECIES_STEELIX 208 +#define SPECIES_SNUBBULL 209 +#define SPECIES_GRANBULL 210 +#define SPECIES_QWILFISH 211 +#define SPECIES_SCIZOR 212 +#define SPECIES_SHUCKLE 213 +#define SPECIES_HERACROSS 214 +#define SPECIES_SNEASEL 215 +#define SPECIES_TEDDIURSA 216 +#define SPECIES_URSARING 217 +#define SPECIES_SLUGMA 218 +#define SPECIES_MAGCARGO 219 +#define SPECIES_SWINUB 220 +#define SPECIES_PILOSWINE 221 +#define SPECIES_CORSOLA 222 +#define SPECIES_REMORAID 223 +#define SPECIES_OCTILLERY 224 +#define SPECIES_DELIBIRD 225 +#define SPECIES_MANTINE 226 +#define SPECIES_SKARMORY 227 +#define SPECIES_HOUNDOUR 228 +#define SPECIES_HOUNDOOM 229 +#define SPECIES_KINGDRA 230 +#define SPECIES_PHANPY 231 +#define SPECIES_DONPHAN 232 +#define SPECIES_PORYGON2 233 +#define SPECIES_STANTLER 234 +#define SPECIES_SMEARGLE 235 +#define SPECIES_TYROGUE 236 +#define SPECIES_HITMONTOP 237 +#define SPECIES_SMOOCHUM 238 +#define SPECIES_ELEKID 239 +#define SPECIES_MAGBY 240 +#define SPECIES_MILTANK 241 +#define SPECIES_BLISSEY 242 +#define SPECIES_RAIKOU 243 +#define SPECIES_ENTEI 244 +#define SPECIES_SUICUNE 245 +#define SPECIES_LARVITAR 246 +#define SPECIES_PUPITAR 247 +#define SPECIES_TYRANITAR 248 +#define SPECIES_LUGIA 249 +#define SPECIES_HO_OH 250 +#define SPECIES_CELEBI 251 + +#define SPECIES_OLD_UNOWN_B 252 +#define SPECIES_OLD_UNOWN_C 253 +#define SPECIES_OLD_UNOWN_D 254 +#define SPECIES_OLD_UNOWN_E 255 +#define SPECIES_OLD_UNOWN_F 256 +#define SPECIES_OLD_UNOWN_G 257 +#define SPECIES_OLD_UNOWN_H 258 +#define SPECIES_OLD_UNOWN_I 259 +#define SPECIES_OLD_UNOWN_J 260 +#define SPECIES_OLD_UNOWN_K 261 +#define SPECIES_OLD_UNOWN_L 262 +#define SPECIES_OLD_UNOWN_M 263 +#define SPECIES_OLD_UNOWN_N 264 +#define SPECIES_OLD_UNOWN_O 265 +#define SPECIES_OLD_UNOWN_P 266 +#define SPECIES_OLD_UNOWN_Q 267 +#define SPECIES_OLD_UNOWN_R 268 +#define SPECIES_OLD_UNOWN_S 269 +#define SPECIES_OLD_UNOWN_T 270 +#define SPECIES_OLD_UNOWN_U 271 +#define SPECIES_OLD_UNOWN_V 272 +#define SPECIES_OLD_UNOWN_W 273 +#define SPECIES_OLD_UNOWN_X 274 +#define SPECIES_OLD_UNOWN_Y 275 +#define SPECIES_OLD_UNOWN_Z 276 + +#define SPECIES_TREECKO 277 +#define SPECIES_GROVYLE 278 +#define SPECIES_SCEPTILE 279 +#define SPECIES_TORCHIC 280 +#define SPECIES_COMBUSKEN 281 +#define SPECIES_BLAZIKEN 282 +#define SPECIES_MUDKIP 283 +#define SPECIES_MARSHTOMP 284 +#define SPECIES_SWAMPERT 285 +#define SPECIES_POOCHYENA 286 +#define SPECIES_MIGHTYENA 287 +#define SPECIES_ZIGZAGOON 288 +#define SPECIES_LINOONE 289 +#define SPECIES_WURMPLE 290 +#define SPECIES_SILCOON 291 +#define SPECIES_BEAUTIFLY 292 +#define SPECIES_CASCOON 293 +#define SPECIES_DUSTOX 294 +#define SPECIES_LOTAD 295 +#define SPECIES_LOMBRE 296 +#define SPECIES_LUDICOLO 297 +#define SPECIES_SEEDOT 298 +#define SPECIES_NUZLEAF 299 +#define SPECIES_SHIFTRY 300 +#define SPECIES_NINCADA 301 +#define SPECIES_NINJASK 302 +#define SPECIES_SHEDINJA 303 +#define SPECIES_TAILLOW 304 +#define SPECIES_SWELLOW 305 +#define SPECIES_SHROOMISH 306 +#define SPECIES_BRELOOM 307 +#define SPECIES_SPINDA 308 +#define SPECIES_WINGULL 309 +#define SPECIES_PELIPPER 310 +#define SPECIES_SURSKIT 311 +#define SPECIES_MASQUERAIN 312 +#define SPECIES_WAILMER 313 +#define SPECIES_WAILORD 314 +#define SPECIES_SKITTY 315 +#define SPECIES_DELCATTY 316 +#define SPECIES_KECLEON 317 +#define SPECIES_BALTOY 318 +#define SPECIES_CLAYDOL 319 +#define SPECIES_NOSEPASS 320 +#define SPECIES_TORKOAL 321 +#define SPECIES_SABLEYE 322 +#define SPECIES_BARBOACH 323 +#define SPECIES_WHISCASH 324 +#define SPECIES_LUVDISC 325 +#define SPECIES_CORPHISH 326 +#define SPECIES_CRAWDAUNT 327 +#define SPECIES_FEEBAS 328 +#define SPECIES_MILOTIC 329 +#define SPECIES_CARVANHA 330 +#define SPECIES_SHARPEDO 331 +#define SPECIES_TRAPINCH 332 +#define SPECIES_VIBRAVA 333 +#define SPECIES_FLYGON 334 +#define SPECIES_MAKUHITA 335 +#define SPECIES_HARIYAMA 336 +#define SPECIES_ELECTRIKE 337 +#define SPECIES_MANECTRIC 338 +#define SPECIES_NUMEL 339 +#define SPECIES_CAMERUPT 340 +#define SPECIES_SPHEAL 341 +#define SPECIES_SEALEO 342 +#define SPECIES_WALREIN 343 +#define SPECIES_CACNEA 344 +#define SPECIES_CACTURNE 345 +#define SPECIES_SNORUNT 346 +#define SPECIES_GLALIE 347 +#define SPECIES_LUNATONE 348 +#define SPECIES_SOLROCK 349 +#define SPECIES_AZURILL 350 +#define SPECIES_SPOINK 351 +#define SPECIES_GRUMPIG 352 +#define SPECIES_PLUSLE 353 +#define SPECIES_MINUN 354 +#define SPECIES_MAWILE 355 +#define SPECIES_MEDITITE 356 +#define SPECIES_MEDICHAM 357 +#define SPECIES_SWABLU 358 +#define SPECIES_ALTARIA 359 +#define SPECIES_WYNAUT 360 +#define SPECIES_DUSKULL 361 +#define SPECIES_DUSCLOPS 362 +#define SPECIES_ROSELIA 363 +#define SPECIES_SLAKOTH 364 +#define SPECIES_VIGOROTH 365 +#define SPECIES_SLAKING 366 +#define SPECIES_GULPIN 367 +#define SPECIES_SWALOT 368 +#define SPECIES_TROPIUS 369 +#define SPECIES_WHISMUR 370 +#define SPECIES_LOUDRED 371 +#define SPECIES_EXPLOUD 372 +#define SPECIES_CLAMPERL 373 +#define SPECIES_HUNTAIL 374 +#define SPECIES_GOREBYSS 375 +#define SPECIES_ABSOL 376 +#define SPECIES_SHUPPET 377 +#define SPECIES_BANETTE 378 +#define SPECIES_SEVIPER 379 +#define SPECIES_ZANGOOSE 380 +#define SPECIES_RELICANTH 381 +#define SPECIES_ARON 382 +#define SPECIES_LAIRON 383 +#define SPECIES_AGGRON 384 +#define SPECIES_CASTFORM 385 +#define SPECIES_VOLBEAT 386 +#define SPECIES_ILLUMISE 387 +#define SPECIES_LILEEP 388 +#define SPECIES_CRADILY 389 +#define SPECIES_ANORITH 390 +#define SPECIES_ARMALDO 391 +#define SPECIES_RALTS 392 +#define SPECIES_KIRLIA 393 +#define SPECIES_GARDEVOIR 394 +#define SPECIES_BAGON 395 +#define SPECIES_SHELGON 396 +#define SPECIES_SALAMENCE 397 +#define SPECIES_BELDUM 398 +#define SPECIES_METANG 399 +#define SPECIES_METAGROSS 400 +#define SPECIES_REGIROCK 401 +#define SPECIES_REGICE 402 +#define SPECIES_REGISTEEL 403 +#define SPECIES_KYOGRE 404 +#define SPECIES_GROUDON 405 +#define SPECIES_RAYQUAZA 406 +#define SPECIES_LATIAS 407 +#define SPECIES_LATIOS 408 +#define SPECIES_JIRACHI 409 +#define SPECIES_DEOXYS 410 +#define SPECIES_CHIMECHO 411 +#define SPECIES_EGG 412 + +#define SPECIES_UNOWN_B 413 +#define SPECIES_UNOWN_C 414 +#define SPECIES_UNOWN_D 415 +#define SPECIES_UNOWN_E 416 +#define SPECIES_UNOWN_F 417 +#define SPECIES_UNOWN_G 418 +#define SPECIES_UNOWN_H 419 +#define SPECIES_UNOWN_I 420 +#define SPECIES_UNOWN_J 421 +#define SPECIES_UNOWN_K 422 +#define SPECIES_UNOWN_L 423 +#define SPECIES_UNOWN_M 424 +#define SPECIES_UNOWN_N 425 +#define SPECIES_UNOWN_O 426 +#define SPECIES_UNOWN_P 427 +#define SPECIES_UNOWN_Q 428 +#define SPECIES_UNOWN_R 429 +#define SPECIES_UNOWN_S 430 +#define SPECIES_UNOWN_T 431 +#define SPECIES_UNOWN_U 432 +#define SPECIES_UNOWN_V 433 +#define SPECIES_UNOWN_W 434 +#define SPECIES_UNOWN_X 435 +#define SPECIES_UNOWN_Y 436 +#define SPECIES_UNOWN_Z 437 +#define SPECIES_UNOWN_EMARK 438 +#define SPECIES_UNOWN_QMARK 439 + +#define NUM_SPECIES SPECIES_EGG + +#endif // GUARD_CONSTANTS_SPECIES_H diff --git a/include/constants/vars.h b/include/constants/vars.h new file mode 100644 index 0000000000..6828614bf5 --- /dev/null +++ b/include/constants/vars.h @@ -0,0 +1,285 @@ +#ifndef GUARD_CONSTANTS_VARS_H +#define GUARD_CONSTANTS_VARS_H + +#define VAR_0x3F20 0x3F20 + +#define VAR_0x4000 0x4000 +#define VAR_0x4001 0x4001 +#define VAR_0x4002 0x4002 +#define VAR_0x4003 0x4003 +#define VAR_0x4004 0x4004 +#define VAR_0x4005 0x4005 +#define VAR_0x4006 0x4006 +#define VAR_0x4007 0x4007 +#define VAR_0x4008 0x4008 +#define VAR_0x4009 0x4009 +#define VAR_0x400A 0x400A +#define VAR_0x400B 0x400B +#define VAR_0x400C 0x400C +#define VAR_0x400D 0x400D +#define VAR_0x400E 0x400E +#define VAR_0x400F 0x400F +#define VAR_0x4010 0x4010 +#define VAR_0x4011 0x4011 +#define VAR_0x4012 0x4012 +#define VAR_0x4013 0x4013 +#define VAR_0x4014 0x4014 +#define VAR_0x4015 0x4015 +#define VAR_0x4016 0x4016 +#define VAR_0x4017 0x4017 +#define VAR_0x4018 0x4018 +#define VAR_0x4019 0x4019 +#define VAR_0x401A 0x401A +#define VAR_0x401B 0x401B +#define VAR_0x401C 0x401C +#define VAR_0x401D 0x401D +#define VAR_0x401E 0x401E +#define VAR_0x401F 0x401F +#define VAR_RECYCLE_GOODS 0x4020 +#define VAR_REPEL_STEP_COUNT 0x4021 +#define VAR_ICE_STEP_COUNT 0x4022 +#define VAR_FIRST_POKE 0x4023 +#define VAR_MIRAGE_RND_H 0x4024 +#define VAR_MIRAGE_RND_L 0x4025 +#define VAR_SECRET_BASE_MAP 0x4026 +#define VAR_0x4027 0x4027 +#define VAR_0x4028 0x4028 +#define VAR_0x4029 0x4029 +#define VAR_HAPPINESS_STEP_COUNTER 0x402A +#define VAR_POISON_STEP_COUNTER 0x402B +#define VAR_RESET_RTC_ENABLE 0x402C +#define VAR_0x402D 0x402D +#define VAR_0x402E 0x402E +#define VAR_0x402F 0x402F +#define VAR_0x4030 0x4030 +#define VAR_0x4031 0x4031 +#define VAR_0x4032 0x4032 +#define VAR_0x4033 0x4033 +#define VAR_0x4034 0x4034 +#define VAR_0x4035 0x4035 +#define VAR_STORAGE_UNKNOWN 0x4036 +#define VAR_0x4037 0x4037 +#define VAR_0x4038 0x4038 +#define VAR_0x4039 0x4039 +#define VAR_0x403A 0x403A +#define VAR_0x403B 0x403B +#define VAR_0x403C 0x403C +#define VAR_0x403D 0x403D +#define VAR_ALTERING_CAVE_WILD_SET 0x403E +#define VAR_0x403F 0x403F +#define VAR_DAYS 0x4040 +#define VAR_0x4041 0x4041 +#define VAR_0x4042 0x4042 +#define VAR_DEPT_STORE_FLOOR 0x4043 +#define VAR_0x4044 0x4044 +#define VAR_POKELOT_PRIZE 0x4045 +#define VAR_NATIONAL_DEX 0x4046 +#define VAR_SEEDOT_SIZE_RECORD 0x4047 +#define VAR_ASH_GATHER_COUNT 0x4048 +#define VAR_BIRCH_STATE 0x4049 +#define VAR_CRUISE_STEP_COUNT 0x404A +#define VAR_POKELOT_RND1 0x404B +#define VAR_POKELOT_RND2 0x404C +#define VAR_0x404D 0x404D +#define VAR_0x404E 0x404E +#define VAR_LOTAD_SIZE_RECORD 0x404F +#define VAR_0x4050 0x4050 +#define VAR_0x4051 0x4051 +#define VAR_0x4052 0x4052 +#define VAR_0x4053 0x4053 +#define VAR_0x4054 0x4054 +#define VAR_0x4055 0x4055 +#define VAR_0x4056 0x4056 +#define VAR_0x4057 0x4057 +#define VAR_0x4058 0x4058 +#define VAR_0x4059 0x4059 +#define VAR_0x405A 0x405A +#define VAR_0x405B 0x405B +#define VAR_0x405C 0x405C +#define VAR_0x405D 0x405D +#define VAR_0x405E 0x405E +#define VAR_0x405F 0x405F +#define VAR_0x4060 0x4060 +#define VAR_0x4061 0x4061 +#define VAR_0x4062 0x4062 +#define VAR_0x4063 0x4063 +#define VAR_0x4064 0x4064 +#define VAR_0x4065 0x4065 +#define VAR_0x4066 0x4066 +#define VAR_0x4067 0x4067 +#define VAR_0x4068 0x4068 +#define VAR_0x4069 0x4069 +#define VAR_0x406A 0x406A +#define VAR_0x406B 0x406B +#define VAR_0x406C 0x406C +#define VAR_0x406D 0x406D +#define VAR_0x406E 0x406E +#define VAR_0x406F 0x406F +#define VAR_0x4070 0x4070 +#define VAR_0x4071 0x4071 +#define VAR_0x4072 0x4072 +#define VAR_0x4073 0x4073 +#define VAR_0x4074 0x4074 +#define VAR_0x4075 0x4075 +#define VAR_0x4076 0x4076 +#define VAR_0x4077 0x4077 +#define VAR_0x4078 0x4078 +#define VAR_0x4079 0x4079 +#define VAR_0x407A 0x407A +#define VAR_0x407B 0x407B +#define VAR_0x407C 0x407C +#define VAR_0x407D 0x407D +#define VAR_0x407E 0x407E +#define VAR_0x407F 0x407F +#define VAR_0x4080 0x4080 +#define VAR_0x4081 0x4081 +#define VAR_0x4082 0x4082 +#define VAR_0x4083 0x4083 +#define VAR_0x4084 0x4084 +#define VAR_0x4085 0x4085 +#define VAR_0x4086 0x4086 +#define VAR_0x4087 0x4087 +#define VAR_0x4088 0x4088 +#define VAR_0x4089 0x4089 +#define VAR_0x408A 0x408A +#define VAR_0x408B 0x408B +#define VAR_0x408C 0x408C +#define VAR_0x408D 0x408D +#define VAR_0x408E 0x408E +#define VAR_0x408F 0x408F +#define VAR_0x4090 0x4090 +#define VAR_0x4091 0x4091 +#define VAR_0x4092 0x4092 +#define VAR_0x4093 0x4093 +#define VAR_0x4094 0x4094 +#define VAR_0x4095 0x4095 +#define VAR_0x4096 0x4096 +#define VAR_0x4097 0x4097 +#define VAR_0x4098 0x4098 +#define VAR_0x4099 0x4099 +#define VAR_0x409A 0x409A +#define VAR_0x409B 0x409B +#define VAR_0x409C 0x409C +#define VAR_0x409D 0x409D +#define VAR_0x409E 0x409E +#define VAR_0x409F 0x409F +#define VAR_0x40A0 0x40A0 +#define VAR_0x40A1 0x40A1 +#define VAR_0x40A2 0x40A2 +#define VAR_0x40A3 0x40A3 +#define VAR_0x40A4 0x40A4 +#define VAR_0x40A5 0x40A5 +#define VAR_0x40A6 0x40A6 +#define VAR_0x40A7 0x40A7 +#define VAR_0x40A8 0x40A8 +#define VAR_0x40A9 0x40A9 +#define VAR_0x40AA 0x40AA +#define VAR_0x40AB 0x40AB +#define VAR_0x40AC 0x40AC +#define VAR_0x40AD 0x40AD +#define VAR_0x40AE 0x40AE +#define VAR_0x40AF 0x40AF +#define VAR_0x40B0 0x40B0 +#define VAR_0x40B1 0x40B1 +#define VAR_0x40B2 0x40B2 +#define VAR_0x40B3 0x40B3 +#define VAR_PORTHOLE 0x40B4 +#define VAR_0x40B5 0x40B5 +#define VAR_0x40B6 0x40B6 +#define VAR_0x40B7 0x40B7 +#define VAR_0x40B8 0x40B8 +#define VAR_0x40B9 0x40B9 +#define VAR_0x40BA 0x40BA +#define VAR_0x40BB 0x40BB +#define VAR_0x40BC 0x40BC +#define VAR_0x40BD 0x40BD +#define VAR_0x40BE 0x40BE +#define VAR_0x40BF 0x40BF +#define VAR_0x40C0 0x40C0 +#define VAR_0x40C1 0x40C1 +#define VAR_0x40C2 0x40C2 +#define VAR_0x40C3 0x40C3 +#define VAR_0x40C4 0x40C4 +#define VAR_0x40C5 0x40C5 +#define VAR_0x40C6 0x40C6 +#define VAR_0x40C7 0x40C7 +#define VAR_0x40C8 0x40C8 +#define VAR_0x40C9 0x40C9 +#define VAR_0x40CA 0x40CA +#define VAR_0x40CB 0x40CB +#define VAR_0x40CC 0x40CC +#define VAR_0x40CD 0x40CD +#define VAR_0x40CE 0x40CE +#define VAR_FRONTIER_FACILITY 0x40CF +#define VAR_0x40D0 0x40D0 +#define VAR_0x40D1 0x40D1 +#define VAR_0x40D2 0x40D2 +#define VAR_0x40D3 0x40D3 +#define VAR_0x40D4 0x40D4 +#define VAR_0x40D5 0x40D5 +#define VAR_0x40D6 0x40D6 +#define VAR_0x40D7 0x40D7 +#define VAR_0x40D8 0x40D8 +#define VAR_0x40D9 0x40D9 +#define VAR_0x40DA 0x40DA +#define VAR_0x40DB 0x40DB +#define VAR_0x40DC 0x40DC +#define VAR_0x40DD 0x40DD +#define VAR_0x40DE 0x40DE +#define VAR_0x40DF 0x40DF +#define VAR_0x40E0 0x40E0 +#define VAR_0x40E1 0x40E1 +#define VAR_0x40E2 0x40E2 +#define VAR_0x40E3 0x40E3 +#define VAR_0x40E4 0x40E4 +#define VAR_0x40E5 0x40E5 +#define VAR_DAILY_SLOTS 0x40E6 +#define VAR_DAILY_WILDS 0x40E7 +#define VAR_DAILY_BLENDER 0x40E8 +#define VAR_DAILY_PLANTED_BERRIES 0x40E9 +#define VAR_DAILY_PICKED_BERRIES 0x40EA +#define VAR_DAILY_ROULETTE 0x40EB +#define VAR_0x40EC 0x40EC +#define VAR_0x40ED 0x40ED +#define VAR_0x40EE 0x40EE +#define VAR_0x40EF 0x40EF +#define VAR_0x40F0 0x40F0 +#define VAR_DAILY_BP 0x40F1 +#define VAR_0x40F2 0x40F2 +#define VAR_0x40F3 0x40F3 +#define VAR_0x40F4 0x40F4 +#define VAR_0x40F5 0x40F5 +#define VAR_0x40F6 0x40F6 +#define VAR_0x40F7 0x40F7 +#define VAR_0x40F8 0x40F8 +#define VAR_0x40F9 0x40F9 +#define VAR_0x40FA 0x40FA +#define VAR_0x40FB 0x40FB +#define VAR_0x40FC 0x40FC +#define VAR_0x40FD 0x40FD +#define VAR_0x40FE 0x40FE +#define VAR_0x40FF 0x40FF + +#define VAR_0x8000 0x8000 +#define VAR_0x8001 0x8001 +#define VAR_0x8002 0x8002 +#define VAR_0x8003 0x8003 +#define VAR_0x8004 0x8004 +#define VAR_0x8005 0x8005 +#define VAR_0x8006 0x8006 +#define VAR_0x8007 0x8007 +#define VAR_0x8008 0x8008 +#define VAR_0x8009 0x8009 +#define VAR_0x800A 0x800A +#define VAR_0x800B 0x800B +#define VAR_FACING 0x800C +#define VAR_RESULT 0x800D +#define VAR_ITEM_ID 0x800E +#define VAR_LAST_TALKED 0x800F +#define VAR_CONTEST_RANK 0x8010 +#define VAR_CONTEST_CATEGORY 0x8011 +#define VAR_MON_BOX_ID 0x8012 +#define VAR_MON_BOX_POS 0x8013 +#define VAR_0x8014 0x8014 + +#endif // GUARD_CONSTANTS_VARS_H From 6b5157b2a3b2d81f83a910b211834cde5cd3a238 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 21 Dec 2017 17:46:03 +0100 Subject: [PATCH 09/54] decompile bike.s --- asm/bike.s | 2199 --------------------------------- asm/field_control_avatar.s | 2 +- asm/field_effect.s | 12 +- asm/field_player_avatar.s | 176 +-- asm/field_screen.s | 20 +- asm/field_tasks.s | 2 +- asm/item_use.s | 2 +- asm/overworld.s | 6 +- asm/rom6.s | 12 +- asm/rotating_gate.s | 4 +- asm/trainer_card.s | 2 +- data/bike.s | 58 - data/specials.inc | 2 +- include/bike.h | 78 ++ include/field_player_avatar.h | 21 + include/global.fieldmap.h | 45 +- ld_script.txt | 4 +- src/bike.c | 1078 ++++++++++++++++ src/evolution_scene.c | 6 +- sym_ewram.txt | 4 +- 20 files changed, 1335 insertions(+), 2398 deletions(-) delete mode 100644 asm/bike.s delete mode 100644 data/bike.s create mode 100644 include/bike.h create mode 100644 src/bike.c diff --git a/asm/bike.s b/asm/bike.s deleted file mode 100644 index 89791b987c..0000000000 --- a/asm/bike.s +++ /dev/null @@ -1,2199 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start MovePlayerOnBike -@ void MovePlayerOnBike(int dpad_direction, int buttons_new, int buttons_held) -MovePlayerOnBike: @ 8119164 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r0, =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0811918C - adds r0, r3, 0 - adds r1, r4, 0 - bl MovePlayerOnMachBike - b _08119194 - .pool -_0811918C: - adds r0, r3, 0 - adds r1, r4, 0 - bl MovePlayerOnAcroBike -_08119194: - pop {r4} - pop {r0} - bx r0 - thumb_func_end MovePlayerOnBike - - thumb_func_start MovePlayerOnMachBike -MovePlayerOnMachBike: @ 811919C - push {r4,lr} - sub sp, 0x4 - mov r1, sp - strb r0, [r1] - ldr r4, =gUnknown_0859744C - mov r0, sp - bl CheckMovementInputMachBike - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - mov r1, sp - ldrb r1, [r1] - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end MovePlayerOnMachBike - - thumb_func_start CheckMovementInputMachBike -CheckMovementInputMachBike: @ 81191CC - push {r4,lr} - adds r4, r0, 0 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - ldrb r1, [r4] - cmp r1, 0 - bne _081191F4 - strb r0, [r4] - ldr r2, =gPlayerAvatar - ldrb r0, [r2, 0xB] - cmp r0, 0 - bne _08119208 - strb r1, [r2, 0x2] - movs r0, 0 - b _0811921C - .pool -_081191F4: - ldr r2, =gPlayerAvatar - cmp r1, r3 - beq _08119218 - ldrb r0, [r2, 0x2] - cmp r0, 0x2 - beq _08119218 - ldrb r0, [r2, 0xB] - cmp r0, 0 - beq _08119214 - strb r3, [r4] -_08119208: - movs r0, 0x2 - strb r0, [r2, 0x2] - movs r0, 0x3 - b _0811921C - .pool -_08119214: - movs r0, 0x1 - b _0811921A -_08119218: - movs r0, 0x2 -_0811921A: - strb r0, [r2, 0x2] -_0811921C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputMachBike - - thumb_func_start sub_8119224 -sub_8119224: @ 8119224 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl PlayerFaceDirection - bl sub_811A128 - pop {r0} - bx r0 - thumb_func_end sub_8119224 - - thumb_func_start sub_8119238 -sub_8119238: @ 8119238 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - ldrb r1, [r4, 0x1E] - adds r0, r5, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - beq _08119270 - adds r0, r5, 0 - bl PlayerTurnInPlace - bl sub_811A128 - b _0811927A - .pool -_08119270: - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl sub_8119224 -_0811927A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8119238 - - thumb_func_start sub_8119280 -sub_8119280: @ 8119280 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - ldr r6, =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - ldrb r1, [r4, 0x1E] - adds r0, r5, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - bne _081192C6 - ldrb r0, [r6, 0xB] - cmp r0, 0 - beq _081192BC - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl sub_8119344 - b _0811933A - .pool -_081192BC: - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl sub_8119224 - b _0811933A -_081192C6: - adds r0, r5, 0 - bl sub_8119E38 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0xA - bhi _08119316 - cmp r4, 0x6 - bne _081192E8 - adds r0, r5, 0 - bl PlayerJumpLedge - b _0811933A -_081192E8: - bl sub_811A128 - cmp r4, 0x4 - bne _08119304 - adds r0, r5, 0 - bl IsPlayerCollidingWithFarawayIslandMew - lsls r0, 24 - cmp r0, 0 - beq _08119304 - adds r0, r5, 0 - bl PlayerOnBikeCollideWithFarawayIslandMew - b _0811933A -_08119304: - subs r0, r4, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _0811933A - adds r0, r7, 0 - bl PlayerOnBikeCollide - b _0811933A -_08119316: - ldr r1, =gUnknown_0859745C - ldrb r0, [r6, 0xA] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r7, 0 - bl _call_via_r1 - ldrb r2, [r6, 0xA] - lsls r0, r2, 24 - lsrs r1, r0, 24 - lsrs r0, 25 - adds r0, r2, r0 - strb r0, [r6, 0xB] - cmp r1, 0x1 - bhi _0811933A - adds r0, r2, 0x1 - strb r0, [r6, 0xA] -_0811933A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8119280 - - thumb_func_start sub_8119344 -sub_8119344: @ 8119344 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - ldr r6, =gPlayerAvatar - ldrb r0, [r6, 0xB] - cmp r0, 0 - beq _0811935A - subs r0, 0x1 - strb r0, [r6, 0xB] - strb r0, [r6, 0xA] -_0811935A: - adds r0, r5, 0 - bl sub_8119E38 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0xA - bhi _081193AE - cmp r4, 0x6 - bne _08119380 - adds r0, r5, 0 - bl PlayerJumpLedge - b _081193BE - .pool -_08119380: - bl sub_811A128 - cmp r4, 0x4 - bne _0811939C - adds r0, r5, 0 - bl IsPlayerCollidingWithFarawayIslandMew - lsls r0, 24 - cmp r0, 0 - beq _0811939C - adds r0, r5, 0 - bl PlayerOnBikeCollideWithFarawayIslandMew - b _081193BE -_0811939C: - subs r0, r4, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _081193BE - adds r0, r7, 0 - bl PlayerOnBikeCollide - b _081193BE -_081193AE: - ldr r0, =gUnknown_0859745C - ldrb r1, [r6, 0xA] - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r7, 0 - bl _call_via_r1 -_081193BE: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8119344 - - thumb_func_start MovePlayerOnAcroBike -@ void MovePlayerOnAcroBike(int dpad_direction, int buttons_new, int buttons_held) -MovePlayerOnAcroBike: @ 81193C8 - push {r4,lr} - sub sp, 0x4 - mov r3, sp - strb r0, [r3] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r4, =gUnknown_08597468 - mov r0, sp - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - mov r1, sp - ldrb r1, [r1] - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end MovePlayerOnAcroBike - - thumb_func_start CheckMovementInputAcroBike -CheckMovementInputAcroBike: @ 8119400 - push {r4,lr} - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r4, =gUnknown_0859749C - ldr r3, =gPlayerAvatar - ldrb r3, [r3, 0x8] - lsls r3, 2 - adds r3, r4 - ldr r3, [r3] - bl _call_via_r3 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end CheckMovementInputAcroBike - - thumb_func_start CheckMovementInputAcroBikeNormal -CheckMovementInputAcroBikeNormal: @ 811942C - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gPlayerAvatar - movs r0, 0 - strb r0, [r2, 0xA] - ldrb r1, [r4] - cmp r1, 0 - bne _0811946C - movs r0, 0x2 - ands r0, r6 - cmp r0, 0 - beq _08119464 - strb r3, [r4] - strb r1, [r2, 0x2] - movs r0, 0x2 - strb r0, [r2, 0x8] - movs r0, 0x3 - b _081194C0 - .pool -_08119464: - strb r3, [r4] - strb r1, [r2, 0x2] - movs r0, 0 - b _081194C0 -_0811946C: - cmp r1, r3 - bne _08119492 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _0811948A - ldrb r0, [r2, 0xB] - cmp r0, 0 - bne _0811948A - adds r0, 0x1 - strb r0, [r2, 0xB] - movs r0, 0x4 - strb r0, [r2, 0x8] - movs r0, 0xB - b _081194C0 -_0811948A: - ldrb r0, [r4] - ldr r2, =gPlayerAvatar - cmp r0, r3 - beq _081194BC -_08119492: - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x2] - adds r2, r0, 0 - cmp r1, 0x2 - beq _081194BC - movs r1, 0 - movs r0, 0x1 - strb r0, [r2, 0x8] - ldrb r0, [r4] - strb r0, [r2, 0x9] - strb r1, [r2, 0x2] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - b _081194C0 - .pool -_081194BC: - movs r0, 0x2 - strb r0, [r2, 0x2] -_081194C0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputAcroBikeNormal - - thumb_func_start CheckMovementInputAcroBikeChangingDirection -CheckMovementInputAcroBikeChangingDirection: @ 81194C8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, =gPlayerAvatar - ldrb r0, [r4, 0x9] - strb r0, [r5] - ldrb r0, [r4, 0xA] - adds r0, 0x1 - strb r0, [r4, 0xA] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bls _081194F4 - movs r0, 0x1 - strb r0, [r4, 0x2] - movs r0, 0 - strb r0, [r4, 0x8] - bl sub_811A128 - movs r0, 0x1 - b _0811953A - .pool -_081194F4: - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_8119D30 - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _08119536 - bl sub_811A128 - movs r0, 0x1 - strb r0, [r4, 0xB] - adds r0, r6, 0 - bl GetOppositeDirection - ldrb r1, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _0811952A - movs r0, 0x6 - strb r0, [r4, 0x8] - movs r0, 0x9 - b _0811953A -_0811952A: - movs r0, 0x2 - strb r0, [r4, 0x2] - movs r0, 0x5 - strb r0, [r4, 0x8] - movs r0, 0x8 - b _0811953A -_08119536: - strb r6, [r5] - movs r0, 0 -_0811953A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputAcroBikeChangingDirection - - thumb_func_start CheckMovementInputAcroBikeStandingWheelie -CheckMovementInputAcroBikeStandingWheelie: @ 8119540 - push {r4-r7,lr} - adds r7, r0, 0 - lsls r4, r2, 16 - lsrs r4, 16 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, =gPlayerAvatar - ldrb r1, [r5, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r1, r0, r1 - movs r0, 0 - strb r0, [r5, 0x2] - movs r0, 0x2 - ands r4, r0 - lsls r4, 16 - lsrs r4, 16 - cmp r4, 0 - bne _08119594 - strb r4, [r5, 0xA] - ldrb r0, [r1, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0811959A - strb r6, [r7] - strb r0, [r5, 0x8] - bl sub_811A128 - movs r0, 0x4 - b _081195D8 - .pool -_08119594: - ldrb r0, [r5, 0xA] - adds r0, 0x1 - strb r0, [r5, 0xA] -_0811959A: - ldr r1, =gPlayerAvatar - ldrb r0, [r1, 0xA] - cmp r0, 0x27 - bls _081195B4 - strb r6, [r7] - movs r0, 0x3 - strb r0, [r1, 0x8] - bl sub_811A128 - movs r0, 0x6 - b _081195D8 - .pool -_081195B4: - ldrb r0, [r7] - cmp r0, r6 - bne _081195CA - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0x4 - strb r0, [r1, 0x8] - bl sub_811A128 - movs r0, 0xA - b _081195D8 -_081195CA: - cmp r0, 0 - beq _081195D4 - movs r0, 0x1 - strb r0, [r1, 0x2] - b _081195D6 -_081195D4: - strb r6, [r7] -_081195D6: - movs r0, 0x5 -_081195D8: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CheckMovementInputAcroBikeStandingWheelie - - thumb_func_start CheckMovementInputAcroBikeBunnyHop -CheckMovementInputAcroBikeBunnyHop: @ 81195E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - ldr r4, =gPlayerAvatar - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r7, r0, r1 - movs r0, 0x2 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _08119652 - bl sub_811A128 - ldrb r0, [r7, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08119648 - movs r0, 0x2 - strb r0, [r4, 0x8] - adds r0, r6, 0 - mov r1, r9 - mov r2, r8 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - b _08119676 - .pool -_08119648: - strb r5, [r6] - strb r0, [r4, 0x2] - strb r0, [r4, 0x8] - movs r0, 0x4 - b _08119676 -_08119652: - ldrb r0, [r6] - cmp r0, 0 - bne _0811965C - strb r5, [r6] - b _08119668 -_0811965C: - cmp r0, r2 - beq _0811966E - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _0811966E - movs r0, 0x1 -_08119668: - strb r0, [r4, 0x2] - movs r0, 0x6 - b _08119676 -_0811966E: - ldr r1, =gPlayerAvatar - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0x7 -_08119676: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end CheckMovementInputAcroBikeBunnyHop - - thumb_func_start CheckMovementInputAcroBikeMovingWheelie -CheckMovementInputAcroBikeMovingWheelie: @ 8119688 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, r5, 0 - ldr r4, =gPlayerAvatar - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r7, r0, r1 - movs r0, 0x2 - mov r9, r0 - movs r0, 0x2 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _08119720 - bl sub_811A128 - ldrb r0, [r7, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0811970C - strb r1, [r4, 0x8] - ldrb r0, [r6] - cmp r0, 0 - bne _081196EC - strb r5, [r6] - b _081196F6 - .pool -_081196EC: - cmp r0, r5 - beq _081196FC - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _081196FC -_081196F6: - strb r1, [r4, 0x2] - movs r0, 0x4 - b _08119750 -_081196FC: - ldr r1, =gPlayerAvatar - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0xC - b _08119750 - .pool -_0811970C: - mov r0, r9 - strb r0, [r4, 0x8] - adds r0, r6, 0 - mov r1, r10 - mov r2, r8 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - b _08119750 -_08119720: - ldrb r0, [r6] - cmp r0, 0 - bne _08119736 - strb r5, [r6] - mov r1, r9 - strb r1, [r4, 0x8] - strb r0, [r4, 0x2] - bl sub_811A128 - movs r0, 0x5 - b _08119750 -_08119736: - cmp r2, r0 - beq _08119748 - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _08119748 - movs r0, 0 - strb r0, [r4, 0x2] - movs r0, 0x5 - b _08119750 -_08119748: - ldr r1, =gPlayerAvatar - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0xA -_08119750: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end CheckMovementInputAcroBikeMovingWheelie - - thumb_func_start CheckMovementInputAcroBikeUnknownMode5 -CheckMovementInputAcroBikeUnknownMode5: @ 8119764 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r6, =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - ldrb r2, [r0, 0x1] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x1] - ldrb r1, [r0, 0x18] - lsls r1, 28 - lsrs r1, 28 - bl FieldObjectSetDirection - movs r0, 0 - strb r0, [r6, 0x8] - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end CheckMovementInputAcroBikeUnknownMode5 - - thumb_func_start CheckMovementInputAcroBikeUnknownMode6 -CheckMovementInputAcroBikeUnknownMode6: @ 81197C0 - push {r4,lr} - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r4, =gPlayerAvatar - movs r3, 0 - strb r3, [r4, 0x8] - bl CheckMovementInputAcroBike - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end CheckMovementInputAcroBikeUnknownMode6 - - thumb_func_start sub_81197E4 -sub_81197E4: @ 81197E4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl PlayerFaceDirection - pop {r0} - bx r0 - thumb_func_end sub_81197E4 - - thumb_func_start sub_81197F4 -sub_81197F4: @ 81197F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - bne _0811981A - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_0811981A: - adds r0, r4, 0 - bl PlayerFaceDirection - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81197F4 - - thumb_func_start sub_8119830 -sub_8119830: @ 8119830 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r4, r0, r1 - ldrb r1, [r4, 0x1E] - adds r0, r5, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - bne _08119868 - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl sub_81197E4 - b _081198BA - .pool -_08119868: - adds r0, r5, 0 - bl sub_8119E38 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0xA - bhi _081198B4 - cmp r4, 0x6 - bne _0811988A - adds r0, r5, 0 - bl PlayerJumpLedge - b _081198BA -_0811988A: - cmp r4, 0x4 - bne _081198A2 - adds r0, r5, 0 - bl IsPlayerCollidingWithFarawayIslandMew - lsls r0, 24 - cmp r0, 0 - beq _081198A2 - adds r0, r5, 0 - bl PlayerOnBikeCollideWithFarawayIslandMew - b _081198BA -_081198A2: - subs r0, r4, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _081198BA - adds r0, r6, 0 - bl PlayerOnBikeCollide - b _081198BA -_081198B4: - adds r0, r6, 0 - bl PlayerGoSpeed2 -_081198BA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8119830 - - thumb_func_start sub_81198C0 -sub_81198C0: @ 81198C0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - bne _081198E6 - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_081198E6: - adds r0, r4, 0 - bl sub_808B8C0 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81198C0 - - thumb_func_start sub_81198FC -sub_81198FC: @ 81198FC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - bne _08119922 - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_08119922: - adds r0, r4, 0 - bl sub_808B8D8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81198FC - - thumb_func_start sub_8119938 -sub_8119938: @ 8119938 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - bne _0811995E - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_0811995E: - adds r0, r4, 0 - bl sub_808B8A8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8119938 - - thumb_func_start sub_8119974 -sub_8119974: @ 8119974 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - bne _0811999A - ldrb r0, [r5, 0x18] - lsrs r4, r0, 4 -_0811999A: - adds r0, r4, 0 - bl sub_808B8F0 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8119974 - - thumb_func_start sub_81199B0 -sub_81199B0: @ 81199B0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - bne _081199E4 - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_8119974 - b _08119A1E - .pool -_081199E4: - adds r0, r4, 0 - bl sub_8119E38 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08119A18 - cmp r1, 0x9 - beq _08119A18 - cmp r1, 0x6 - bne _08119A02 - adds r0, r4, 0 - bl sub_808B938 - b _08119A1E -_08119A02: - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _08119A1E - cmp r1, 0xB - bhi _08119A18 - adds r0, r4, 0 - bl sub_8119974 - b _08119A1E -_08119A18: - adds r0, r4, 0 - bl sub_808B914 -_08119A1E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81199B0 - - thumb_func_start sub_8119A24 -sub_8119A24: @ 8119A24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_8119E38 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0 - beq _08119A58 - cmp r0, 0x7 - beq _08119A84 - cmp r0, 0x9 - bls _08119A50 - adds r0, r1, 0 - adds r1, r5, 0 - bl sub_8119FC4 - lsls r0, 24 - cmp r0, 0 - bne _08119A58 -_08119A50: - adds r0, r5, 0 - bl sub_81197F4 - b _08119A84 -_08119A58: - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, =gMapObjects - adds r4, r0 - movs r0, 0x22 - bl PlaySE - ldrb r0, [r4, 0x1] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r5, 0 - bl sub_8093514 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl player_npc_set_state_and_x22_etc -_08119A84: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8119A24 - - thumb_func_start sub_8119A94 -sub_8119A94: @ 8119A94 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_808B95C - pop {r0} - bx r0 - thumb_func_end sub_8119A94 - - thumb_func_start sub_8119AA4 -sub_8119AA4: @ 8119AA4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r7, =gPlayerAvatar - ldrb r1, [r7, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - bne _08119ADC - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_808B8A8 - b _08119B2C - .pool -_08119ADC: - adds r0, r4, 0 - bl sub_8119E38 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xA - bhi _08119B22 - cmp r1, 0x6 - bne _08119AFE - adds r0, r4, 0 - bl sub_808B938 - b _08119B2C -_08119AFE: - cmp r1, 0x9 - beq _08119B12 - cmp r1, 0x4 - bhi _08119B2C - ldrb r0, [r5, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _08119B1A -_08119B12: - adds r0, r4, 0 - bl sub_808B8A8 - b _08119B2C -_08119B1A: - adds r0, r4, 0 - bl sub_808B980 - b _08119B2C -_08119B22: - adds r0, r6, 0 - bl sub_808B9BC - movs r0, 0x2 - strb r0, [r7, 0x2] -_08119B2C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8119AA4 - - thumb_func_start sub_8119B34 -sub_8119B34: @ 8119B34 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r7, =gPlayerAvatar - ldrb r1, [r7, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - bne _08119B6C - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_808B8C0 - b _08119BBC - .pool -_08119B6C: - adds r0, r4, 0 - bl sub_8119E38 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xA - bhi _08119BB2 - cmp r1, 0x6 - bne _08119B8E - adds r0, r4, 0 - bl sub_808B938 - b _08119BBC -_08119B8E: - cmp r1, 0x9 - beq _08119BA2 - cmp r1, 0x4 - bhi _08119BBC - ldrb r0, [r5, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _08119BAA -_08119BA2: - adds r0, r4, 0 - bl sub_808B8A8 - b _08119BBC -_08119BAA: - adds r0, r4, 0 - bl sub_808B980 - b _08119BBC -_08119BB2: - adds r0, r6, 0 - bl sub_808B9A4 - movs r0, 0x2 - strb r0, [r7, 0x2] -_08119BBC: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8119B34 - - thumb_func_start sub_8119BC4 -sub_8119BC4: @ 8119BC4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r5, r0, r1 - ldrb r1, [r5, 0x1E] - adds r0, r4, 0 - bl sub_8119F74 - lsls r0, 24 - cmp r0, 0 - bne _08119BFC - ldrb r0, [r5, 0x18] - lsrs r0, 4 - bl sub_808B8D8 - b _08119C36 - .pool -_08119BFC: - adds r0, r4, 0 - bl sub_8119E38 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0xA - bhi _08119C30 - cmp r1, 0x6 - bne _08119C1E - adds r0, r4, 0 - bl PlayerJumpLedge - b _08119C36 -_08119C1E: - subs r0, r1, 0x5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _08119C36 - adds r0, r4, 0 - bl sub_808B8D8 - b _08119C36 -_08119C30: - adds r0, r6, 0 - bl npc_use_some_d2s -_08119C36: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8119BC4 - - thumb_func_start sub_8119C3C -@ void sub_8119C3C(int buttons_new, int buttons_held) -sub_8119C3C: @ 8119C3C - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r2, r1, 16 - ldr r0, =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08119C5A - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_8119C64 -_08119C5A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8119C3C - - thumb_func_start sub_8119C64 -@ void sub_8119C64(int buttons_new, int buttons_held) -sub_8119C64: @ 8119C64 - push {r4,r5,lr} - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r5, 0 - bl sub_8119DF8 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r4, =gPlayerAvatar - ldr r0, [r4, 0xC] - movs r1, 0xF - ands r0, r1 - cmp r2, r0 - bne _08119C90 - ldrb r0, [r4, 0x14] - cmp r0, 0xFE - bhi _08119C9A - adds r0, 0x1 - strb r0, [r4, 0x14] - b _08119C9A - .pool -_08119C90: - adds r0, r2, 0 - bl sub_8119D80 - movs r0, 0 - strb r0, [r4, 0xB] -_08119C9A: - movs r0, 0xF - adds r2, r5, 0 - ands r2, r0 - ldr r4, =gPlayerAvatar - ldr r0, [r4, 0x10] - movs r1, 0xF - ands r0, r1 - cmp r2, r0 - bne _08119CBC - ldrb r0, [r4, 0x1C] - cmp r0, 0xFE - bhi _08119CC6 - adds r0, 0x1 - strb r0, [r4, 0x1C] - b _08119CC6 - .pool -_08119CBC: - adds r0, r2, 0 - bl sub_8119DBC - movs r0, 0 - strb r0, [r4, 0xB] -_08119CC6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8119C64 - - thumb_func_start sub_8119CCC -sub_8119CCC: @ 8119CCC - push {r4,r5,lr} - adds r3, r0, 0 - adds r4, r1, 0 - movs r2, 0 - ldrb r0, [r3] - cmp r0, 0 - beq _08119CF6 - ldr r5, =gUnknown_020375A4 -_08119CDC: - adds r0, r2, r5 - adds r1, r3, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhi _08119D0C - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _08119CDC -_08119CF6: - movs r2, 0 - ldrb r0, [r4] - cmp r0, 0 - beq _08119D26 - ldr r3, =gUnknown_020375AC -_08119D00: - adds r0, r2, r3 - adds r1, r4, r2 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _08119D18 -_08119D0C: - movs r0, 0 - b _08119D28 - .pool -_08119D18: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _08119D00 -_08119D26: - movs r0, 0x1 -_08119D28: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8119CCC - - thumb_func_start sub_8119D30 -sub_8119D30: @ 8119D30 - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 -_08119D36: - ldr r0, =gUnknown_085974C0 - adds r4, r5, r0 - ldr r0, =gPlayerAvatar - ldr r1, [r0, 0xC] - ldr r2, [r0, 0x10] - ldr r0, [r4, 0x8] - ands r1, r0 - ldr r0, [r4, 0xC] - ands r2, r0 - ldr r0, [r4] - cmp r1, r0 - bne _08119D70 - ldr r0, [r4, 0x4] - cmp r2, r0 - bne _08119D70 - ldr r0, [r4, 0x10] - ldr r1, [r4, 0x14] - bl sub_8119CCC - lsls r0, 24 - cmp r0, 0 - beq _08119D70 - ldrb r0, [r4, 0x18] - b _08119D7A - .pool -_08119D70: - adds r5, 0x1C - adds r6, 0x1 - cmp r6, 0x3 - bls _08119D36 - movs r0, 0 -_08119D7A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8119D30 - - thumb_func_start sub_8119D80 -sub_8119D80: @ 8119D80 - push {r4,lr} - lsls r0, 24 - ldr r3, =gPlayerAvatar - ldr r2, [r3, 0xC] - lsls r2, 4 - movs r1, 0xF0 - lsls r1, 20 - ands r1, r0 - lsrs r1, 24 - orrs r2, r1 - str r2, [r3, 0xC] - movs r1, 0x7 - adds r4, r3, 0 - adds r3, 0x14 -_08119D9C: - adds r2, r1, r3 - subs r1, 0x1 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - bne _08119D9C - movs r0, 0x1 - strb r0, [r4, 0x14] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8119D80 - - thumb_func_start sub_8119DBC -sub_8119DBC: @ 8119DBC - push {r4,lr} - lsls r0, 24 - ldr r3, =gPlayerAvatar - ldr r2, [r3, 0x10] - lsls r2, 4 - movs r1, 0xF0 - lsls r1, 20 - ands r1, r0 - lsrs r1, 24 - orrs r2, r1 - str r2, [r3, 0x10] - movs r1, 0x7 - adds r4, r3, 0 - adds r3, 0x1C -_08119DD8: - adds r2, r1, r3 - subs r1, 0x1 - adds r0, r1, r3 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - bne _08119DD8 - movs r0, 0x1 - strb r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8119DBC - - thumb_func_start sub_8119DF8 -sub_8119DF8: @ 8119DF8 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r1, 0 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08119E0C - movs r0, 0x2 - b _08119E32 -_08119E0C: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08119E18 - movs r0, 0x1 - b _08119E32 -_08119E18: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08119E24 - movs r0, 0x3 - b _08119E32 -_08119E24: - movs r0, 0x10 - ands r2, r0 - cmp r2, 0 - bne _08119E30 - movs r0, 0 - b _08119E32 -_08119E30: - movs r0, 0x4 -_08119E32: - pop {r1} - bx r1 - thumb_func_end sub_8119DF8 - - thumb_func_start sub_8119E38 -sub_8119E38: @ 8119E38 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, =gMapObjects - adds r4, r0 - ldrh r1, [r4, 0x10] - add r0, sp, 0x4 - strh r1, [r0] - ldrh r0, [r4, 0x12] - mov r5, sp - adds r5, 0x6 - strh r0, [r5] - adds r0, r6, 0 - add r1, sp, 0x4 - adds r2, r5, 0 - bl MoveCoords - add r0, sp, 0x4 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - add r1, sp, 0x4 - movs r3, 0 - ldrsh r1, [r1, r3] - movs r3, 0 - ldrsh r2, [r5, r3] - str r0, [sp] - adds r0, r4, 0 - adds r3, r6, 0 - bl sub_8119EA4 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8119E38 - - thumb_func_start sub_8119EA4 -sub_8119EA4: @ 8119EA4 - push {r4,r5,lr} - sub sp, 0x4 - ldr r4, [sp, 0x10] - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - adds r5, r4, 0 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - str r5, [sp] - bl CheckForFieldObjectCollision - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bhi _08119EE4 - cmp r4, 0 - bne _08119EE0 - adds r0, r5, 0 - bl IsRunningDisallowedByMetatile - lsls r0, 24 - cmp r0, 0 - beq _08119EDC - movs r4, 0x2 -_08119EDC: - cmp r4, 0 - beq _08119EE4 -_08119EE0: - bl sub_8119F50 -_08119EE4: - adds r0, r4, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8119EA4 - - thumb_func_start sub_8119EF0 -sub_8119EF0: @ 8119EF0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl IsRunningDisallowedByMetatile - lsls r0, 24 - cmp r0, 0 - bne _08119F08 - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x8 - bne _08119F10 -_08119F08: - movs r0, 0x1 - b _08119F12 - .pool -_08119F10: - movs r0, 0 -_08119F12: - pop {r1} - bx r1 - thumb_func_end sub_8119EF0 - - thumb_func_start IsRunningDisallowedByMetatile -@ bool8 IsRunningDisallowedByMetatile(u8 metatileBehavior) -IsRunningDisallowedByMetatile: @ 8119F18 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsRunningDisallowed - lsls r0, 24 - cmp r0, 0 - bne _08119F42 - adds r0, r4, 0 - bl MetatileBehavior_IsFortreeBridge - lsls r0, 24 - cmp r0, 0 - beq _08119F46 - bl PlayerGetZCoord - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _08119F46 -_08119F42: - movs r0, 0x1 - b _08119F48 -_08119F46: - movs r0, 0 -_08119F48: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsRunningDisallowedByMetatile - - thumb_func_start sub_8119F50 -sub_8119F50: @ 8119F50 - push {lr} - ldr r0, =gUnknown_0203AB54 - ldrb r0, [r0] - cmp r0, 0 - beq _08119F66 - ldr r1, =gUnknown_0203AB55 - ldrb r0, [r1] - cmp r0, 0x63 - bhi _08119F66 - adds r0, 0x1 - strb r0, [r1] -_08119F66: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8119F50 - - thumb_func_start sub_8119F74 -sub_8119F74: @ 8119F74 - push {r4,r5,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - adds r5, r4, 0 - movs r1, 0xFD - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08119F9E - adds r0, r4, 0 - bl MetatileBehavior_IsIsolatedVerticalRail - lsls r0, 24 - cmp r0, 0 - bne _08119FB6 - adds r0, r4, 0 - bl MetatileBehavior_IsVerticalRail - b _08119FB0 -_08119F9E: - adds r0, r5, 0 - bl MetatileBehavior_IsIsolatedHorizontalRail - lsls r0, 24 - cmp r0, 0 - bne _08119FB6 - adds r0, r5, 0 - bl MetatileBehavior_IsHorizontalRail -_08119FB0: - lsls r0, 24 - cmp r0, 0 - beq _08119FBA -_08119FB6: - movs r0, 0 - b _08119FBC -_08119FBA: - movs r0, 0x1 -_08119FBC: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8119F74 - - thumb_func_start sub_8119FC4 -sub_8119FC4: @ 8119FC4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 24 - movs r3, 0xFF - lsls r3, 24 - adds r1, r3 - lsrs r1, 24 - cmp r1, 0x1 - bhi _08119FE4 - cmp r0, 0xA - beq _08119FEC - cmp r0, 0xC - bne _08119FF0 - b _08119FEC -_08119FE4: - cmp r2, 0xB - beq _08119FEC - cmp r2, 0xD - bne _08119FF0 -_08119FEC: - movs r0, 0 - b _08119FF2 -_08119FF0: - movs r0, 0x1 -_08119FF2: - pop {r1} - bx r1 - thumb_func_end sub_8119FC4 - - thumb_func_start sub_8119FF8 -sub_8119FF8: @ 8119FF8 - push {r4,lr} - sub sp, 0x4 - ldr r0, =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - bne _0811A038 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl IsRunningDisallowedByMetatile - lsls r0, 24 - cmp r0, 0 - bne _0811A038 - movs r0, 0 - b _0811A03A - .pool -_0811A038: - movs r0, 0x1 -_0811A03A: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8119FF8 - - thumb_func_start player_should_look_direction_be_enforced_upon_movement -player_should_look_direction_be_enforced_upon_movement: @ 811A044 - push {lr} - movs r0, 0x4 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0811A078 - ldr r2, =gMapObjects - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1E] - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _0811A078 - movs r0, 0 - b _0811A07A - .pool -_0811A078: - movs r0, 0x1 -_0811A07A: - pop {r1} - bx r1 - thumb_func_end player_should_look_direction_be_enforced_upon_movement - - thumb_func_start GetOnOffBike -@ void GetOnOffBike(u8 transitionFlags) -GetOnOffBike: @ 811A080 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gUnknown_02037348 - movs r0, 0 - strb r0, [r1] - ldr r0, =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _0811A0B0 - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - bl Overworld_ClearSavedMusic - bl sub_8085784 - b _0811A0C4 - .pool -_0811A0B0: - adds r0, r2, 0 - bl SetPlayerAvatarTransitionFlags - ldr r4, =0x00000193 - adds r0, r4, 0 - bl Overworld_SetSavedMusic - adds r0, r4, 0 - bl Overworld_ChangeMusicTo -_0811A0C4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end GetOnOffBike - - thumb_func_start sub_811A0D0 -sub_811A0D0: @ 811A0D0 - push {lr} - ldr r2, =gPlayerAvatar - movs r3, 0 - strb r3, [r2, 0x8] - strb r3, [r2, 0x9] - strb r3, [r2, 0xA] - strb r3, [r2, 0xB] - str r0, [r2, 0xC] - str r1, [r2, 0x10] - movs r1, 0 - adds r2, 0x14 -_0811A0E6: - adds r0, r1, r2 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _0811A0E6 - movs r1, 0 - ldr r3, =gUnknown_020375AC - movs r2, 0 -_0811A0FA: - adds r0, r1, r3 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _0811A0FA - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A0D0 - - thumb_func_start sub_811A114 -sub_811A114: @ 811A114 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gPlayerAvatar - strb r0, [r2, 0xA] - lsrs r1, r0, 1 - adds r0, r1 - strb r0, [r2, 0xB] - bx lr - .pool - thumb_func_end sub_811A114 - - thumb_func_start sub_811A128 -sub_811A128: @ 811A128 - ldr r1, =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0xA] - strb r0, [r1, 0xB] - bx lr - .pool - thumb_func_end sub_811A128 - - thumb_func_start sub_811A138 -sub_811A138: @ 811A138 - push {lr} - sub sp, 0x8 - ldr r1, =gUnknown_085974B8 - mov r0, sp - movs r2, 0x6 - bl memcpy - ldr r2, =gPlayerAvatar - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0811A168 - ldrb r0, [r2, 0xA] - lsls r0, 1 - add r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - b _0811A182 - .pool -_0811A168: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0811A174 - movs r0, 0x3 - b _0811A182 -_0811A174: - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _0811A180 - movs r0, 0x1 - b _0811A182 -_0811A180: - movs r0, 0x2 -_0811A182: - add sp, 0x8 - pop {r1} - bx r1 - thumb_func_end sub_811A138 - - thumb_func_start sub_811A188 -sub_811A188: @ 811A188 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, =gPlayerAvatar - ldrb r1, [r5] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0811A1D0 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsBumpySlope - lsls r0, 24 - cmp r0, 0 - beq _0811A1D0 - movs r0, 0x2 - strb r0, [r5, 0x8] - bl player_get_direction_upper_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_808C1B4 -_0811A1D0: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_811A188 - - thumb_func_start IsRunningDisallowed -@ bool8 IsRunningDisallowed(u8 metatileBehavior) -IsRunningDisallowed: @ 811A1DC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gMapHeader - ldrb r1, [r0, 0x1A] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0811A1FC - adds r0, r2, 0 - bl IsRunningDisallowedByMetatile - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0811A204 -_0811A1FC: - movs r0, 0x1 - b _0811A206 - .pool -_0811A204: - movs r0, 0 -_0811A206: - pop {r1} - bx r1 - thumb_func_end IsRunningDisallowed - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 9252b79d26..e0e7b5efbb 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -62,7 +62,7 @@ _0809BF3C: cmp r6, 0 bne _0809BFA2 _0809BF40: - bl sub_811A138 + bl GetPlayerSpeed lsls r0, 16 asrs r0, 16 cmp r0, 0x4 diff --git a/asm/field_effect.s b/asm/field_effect.s index 170aa6a639..b6b4803d8d 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -2027,7 +2027,7 @@ _080B6A8A: thumb_func_start mapldr_08084390 mapldr_08084390: @ 80B6AA4 push {r4,lr} - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_black ldr r0, =c3_080843F8 movs r1, 0 @@ -2113,7 +2113,7 @@ _080B6B58: thumb_func_start sub_80B6B68 sub_80B6B68: @ 80B6B68 push {lr} - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl ScriptContext2_Enable bl FreezeMapObjects @@ -2780,7 +2780,7 @@ _080B709C: thumb_func_start sub_80B70B4 sub_80B70B4: @ 80B70B4 push {lr} - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl ScriptContext2_Enable ldr r0, =sub_80B70DC @@ -3747,7 +3747,7 @@ _080B784C: thumb_func_start mapldr_080851BC mapldr_080851BC: @ 80B7868 push {lr} - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl ScriptContext2_Enable ldr r0, =gFieldCallback @@ -4458,7 +4458,7 @@ _080B7E40: thumb_func_start mapldr_080859D4 mapldr_080859D4: @ 80B7E48 push {lr} - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl ScriptContext2_Enable bl FreezeMapObjects @@ -4903,7 +4903,7 @@ _080B81E6: thumb_func_start mapldr_08085D88 mapldr_08085D88: @ 80B8200 push {lr} - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl ScriptContext2_Enable bl FreezeMapObjects diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index 62681e7fb2..5385e2ebad 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -57,7 +57,7 @@ player_step: @ 808A9C0 bne _0808AA26 adds r0, r7, 0 adds r1, r6, 0 - bl sub_8119C3C + bl Bike_TryAcroBikeHistoryUpdate adds r0, r5, 0 mov r1, r8 bl TryInterruptFieldObjectSpecialAnim @@ -405,7 +405,7 @@ DoForcedMovementInCurrentDirection: @ 808AC58 thumb_func_start ForcedMovement_Slip ForcedMovement_Slip: @ 808AC8C push {lr} - ldr r0, =PlayerGoSpeed1 + ldr r0, =PlayerGoSpeed2 bl DoForcedMovementInCurrentDirection lsls r0, 24 lsrs r0, 24 @@ -417,7 +417,7 @@ ForcedMovement_Slip: @ 808AC8C thumb_func_start ForcedMovement_WalkSouth ForcedMovement_WalkSouth: @ 808ACA0 push {lr} - ldr r1, =PlayerGoSpeed0 + ldr r1, =PlayerGoSpeed1 movs r0, 0x1 bl DoForcedMovement lsls r0, 24 @@ -430,7 +430,7 @@ ForcedMovement_WalkSouth: @ 808ACA0 thumb_func_start ForcedMovement_WalkNorth ForcedMovement_WalkNorth: @ 808ACB8 push {lr} - ldr r1, =PlayerGoSpeed0 + ldr r1, =PlayerGoSpeed1 movs r0, 0x2 bl DoForcedMovement lsls r0, 24 @@ -443,7 +443,7 @@ ForcedMovement_WalkNorth: @ 808ACB8 thumb_func_start ForcedMovement_WalkWest ForcedMovement_WalkWest: @ 808ACD0 push {lr} - ldr r1, =PlayerGoSpeed0 + ldr r1, =PlayerGoSpeed1 movs r0, 0x3 bl DoForcedMovement lsls r0, 24 @@ -456,7 +456,7 @@ ForcedMovement_WalkWest: @ 808ACD0 thumb_func_start ForcedMovement_WalkEast ForcedMovement_WalkEast: @ 808ACE8 push {lr} - ldr r1, =PlayerGoSpeed0 + ldr r1, =PlayerGoSpeed1 movs r0, 0x4 bl DoForcedMovement lsls r0, 24 @@ -469,7 +469,7 @@ ForcedMovement_WalkEast: @ 808ACE8 thumb_func_start ForcedMovement_PushedSouthByCurrent ForcedMovement_PushedSouthByCurrent: @ 808AD00 push {lr} - ldr r1, =PlayerGoSpeed2 + ldr r1, =PlayerGoSpeed3 movs r0, 0x1 bl DoForcedMovement lsls r0, 24 @@ -482,7 +482,7 @@ ForcedMovement_PushedSouthByCurrent: @ 808AD00 thumb_func_start ForcedMovement_PushedNorthByCurrent ForcedMovement_PushedNorthByCurrent: @ 808AD18 push {lr} - ldr r1, =PlayerGoSpeed2 + ldr r1, =PlayerGoSpeed3 movs r0, 0x2 bl DoForcedMovement lsls r0, 24 @@ -495,7 +495,7 @@ ForcedMovement_PushedNorthByCurrent: @ 808AD18 thumb_func_start ForcedMovement_PushedWestByCurrent ForcedMovement_PushedWestByCurrent: @ 808AD30 push {lr} - ldr r1, =PlayerGoSpeed2 + ldr r1, =PlayerGoSpeed3 movs r0, 0x3 bl DoForcedMovement lsls r0, 24 @@ -508,7 +508,7 @@ ForcedMovement_PushedWestByCurrent: @ 808AD30 thumb_func_start ForcedMovement_PushedEastByCurrent ForcedMovement_PushedEastByCurrent: @ 808AD48 push {lr} - ldr r1, =PlayerGoSpeed2 + ldr r1, =PlayerGoSpeed3 movs r0, 0x4 bl DoForcedMovement lsls r0, 24 @@ -548,7 +548,7 @@ ForcedMovement_Slide: @ 808AD60 thumb_func_start ForcedMovement_SlideSouth ForcedMovement_SlideSouth: @ 808AD98 push {lr} - ldr r1, =PlayerGoSpeed1 + ldr r1, =PlayerGoSpeed2 movs r0, 0x1 bl ForcedMovement_Slide lsls r0, 24 @@ -561,7 +561,7 @@ ForcedMovement_SlideSouth: @ 808AD98 thumb_func_start ForcedMovement_SlideNorth ForcedMovement_SlideNorth: @ 808ADB0 push {lr} - ldr r1, =PlayerGoSpeed1 + ldr r1, =PlayerGoSpeed2 movs r0, 0x2 bl ForcedMovement_Slide lsls r0, 24 @@ -574,7 +574,7 @@ ForcedMovement_SlideNorth: @ 808ADB0 thumb_func_start ForcedMovement_SlideWest ForcedMovement_SlideWest: @ 808ADC8 push {lr} - ldr r1, =PlayerGoSpeed1 + ldr r1, =PlayerGoSpeed2 movs r0, 0x3 bl ForcedMovement_Slide lsls r0, 24 @@ -587,7 +587,7 @@ ForcedMovement_SlideWest: @ 808ADC8 thumb_func_start ForcedMovement_SlideEast ForcedMovement_SlideEast: @ 808ADE0 push {lr} - ldr r1, =PlayerGoSpeed1 + ldr r1, =PlayerGoSpeed2 movs r0, 0x4 bl ForcedMovement_Slide lsls r0, 24 @@ -630,19 +630,19 @@ ForcedMovement_MuddySlope: @ 808AE10 ands r0, r1 cmp r0, 0x20 bne _0808AE36 - bl sub_811A138 + bl GetPlayerSpeed lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bgt _0808AE60 _0808AE36: movs r0, 0 - bl sub_811A114 + bl Bike_UpdateBikeCounterSpeed ldrb r0, [r4, 0x1] movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x1] - ldr r1, =PlayerGoSpeed1 + ldr r1, =PlayerGoSpeed2 movs r0, 0x1 bl DoForcedMovement lsls r0, 24 @@ -791,7 +791,7 @@ _0808AF4E: cmp r0, 0 beq _0808AF68 adds r0, r5, 0 - bl PlayerGoSpeed1 + bl PlayerGoSpeed2 b _0808AFB6 .pool _0808AF68: @@ -829,7 +829,7 @@ _0808AF68: .pool _0808AFB0: adds r0, r5, 0 - bl PlayerGoSpeed0 + bl PlayerGoSpeed1 _0808AFB6: pop {r4-r6} pop {r0} @@ -1471,7 +1471,7 @@ PlayerAvatarTransition_MachBike: @ 808B46C bl SetPlayerAvatarStateMask movs r0, 0 movs r1, 0 - bl sub_811A0D0 + bl BikeClearState pop {r4} pop {r0} bx r0 @@ -1497,8 +1497,8 @@ PlayerAvatarTransition_AcroBike: @ 808B4A0 bl SetPlayerAvatarStateMask movs r0, 0 movs r1, 0 - bl sub_811A0D0 - bl sub_811A188 + bl BikeClearState + bl Bike_HandleBumpySlopeJump pop {r4} pop {r0} bx r0 @@ -1774,9 +1774,9 @@ sub_808B6BC: @ 808B6BC .pool thumb_func_end sub_808B6BC - thumb_func_start player_npc_set_state_and_x22_etc -@ void player_npc_set_state_and_x22_etc(u8 animState, u8 a2) -player_npc_set_state_and_x22_etc: @ 808B6E4 + thumb_func_start PlayerSetAnimId +@ void PlayerSetAnimId(u8 animState, u8 a2) +PlayerSetAnimId: @ 808B6E4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -1802,11 +1802,11 @@ _0808B712: pop {r0} bx r0 .pool - thumb_func_end player_npc_set_state_and_x22_etc + thumb_func_end PlayerSetAnimId - thumb_func_start PlayerGoSpeed0 -@ void PlayerGoSpeed0(u8 direction) -PlayerGoSpeed0: @ 808B720 + thumb_func_start PlayerGoSpeed1 +@ void PlayerGoSpeed1(u8 direction) +PlayerGoSpeed1: @ 808B720 push {lr} lsls r0, 24 lsrs r0, 24 @@ -1814,14 +1814,14 @@ PlayerGoSpeed0: @ 808B720 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 - thumb_func_end PlayerGoSpeed0 + thumb_func_end PlayerGoSpeed1 - thumb_func_start PlayerGoSpeed1 -@ void PlayerGoSpeed1(u8 direction) -PlayerGoSpeed1: @ 808B738 + thumb_func_start PlayerGoSpeed2 +@ void PlayerGoSpeed2(u8 direction) +PlayerGoSpeed2: @ 808B738 push {lr} lsls r0, 24 lsrs r0, 24 @@ -1829,14 +1829,14 @@ PlayerGoSpeed1: @ 808B738 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 - thumb_func_end PlayerGoSpeed1 + thumb_func_end PlayerGoSpeed2 - thumb_func_start PlayerGoSpeed2 -@ void PlayerGoSpeed2(u8 direction) -PlayerGoSpeed2: @ 808B750 + thumb_func_start PlayerGoSpeed3 +@ void PlayerGoSpeed3(u8 direction) +PlayerGoSpeed3: @ 808B750 push {lr} lsls r0, 24 lsrs r0, 24 @@ -1844,14 +1844,14 @@ PlayerGoSpeed2: @ 808B750 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 - thumb_func_end PlayerGoSpeed2 + thumb_func_end PlayerGoSpeed3 - thumb_func_start PlayerGoSpeed3 -@ void PlayerGoSpeed3(u8 direction) -PlayerGoSpeed3: @ 808B768 + thumb_func_start PlayerGoSpeed4 +@ void PlayerGoSpeed4(u8 direction) +PlayerGoSpeed4: @ 808B768 push {lr} lsls r0, 24 lsrs r0, 24 @@ -1859,10 +1859,10 @@ PlayerGoSpeed3: @ 808B768 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 - thumb_func_end PlayerGoSpeed3 + thumb_func_end PlayerGoSpeed4 thumb_func_start PlayerRun @ void PlayerRun(u8 direction) @@ -1874,7 +1874,7 @@ PlayerRun: @ 808B780 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 thumb_func_end PlayerRun @@ -1893,7 +1893,7 @@ PlayerOnBikeCollide: @ 808B798 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r4} pop {r0} bx r0 @@ -1909,7 +1909,7 @@ PlayerOnBikeCollideWithFarawayIslandMew: @ 808B7BC lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 thumb_func_end PlayerOnBikeCollideWithFarawayIslandMew @@ -1928,7 +1928,7 @@ PlayerNotOnBikeCollide: @ 808B7D4 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r4} pop {r0} bx r0 @@ -1944,7 +1944,7 @@ PlayerNotOnBikeCollideWithFarawayIslandMew: @ 808B7F8 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 thumb_func_end PlayerNotOnBikeCollideWithFarawayIslandMew @@ -1959,7 +1959,7 @@ PlayerFaceDirection: @ 808B810 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 thumb_func_end PlayerFaceDirection @@ -1974,7 +1974,7 @@ PlayerTurnInPlace: @ 808B828 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 thumb_func_end PlayerTurnInPlace @@ -1993,7 +1993,7 @@ PlayerJumpLedge: @ 808B840 lsls r0, 24 lsrs r0, 24 movs r1, 0x8 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r4} pop {r0} bx r0 @@ -2033,8 +2033,8 @@ _0808B89A: .pool thumb_func_end sub_808B864 - thumb_func_start sub_808B8A8 -sub_808B8A8: @ 808B8A8 + thumb_func_start PlayerIdleWheelie +PlayerIdleWheelie: @ 808B8A8 push {lr} lsls r0, 24 lsrs r0, 24 @@ -2042,13 +2042,13 @@ sub_808B8A8: @ 808B8A8 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 - thumb_func_end sub_808B8A8 + thumb_func_end PlayerIdleWheelie - thumb_func_start sub_808B8C0 -sub_808B8C0: @ 808B8C0 + thumb_func_start PlayerStartWheelie +PlayerStartWheelie: @ 808B8C0 push {lr} lsls r0, 24 lsrs r0, 24 @@ -2056,13 +2056,13 @@ sub_808B8C0: @ 808B8C0 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 - thumb_func_end sub_808B8C0 + thumb_func_end PlayerStartWheelie - thumb_func_start sub_808B8D8 -sub_808B8D8: @ 808B8D8 + thumb_func_start PlayerEndWheelie +PlayerEndWheelie: @ 808B8D8 push {lr} lsls r0, 24 lsrs r0, 24 @@ -2070,13 +2070,13 @@ sub_808B8D8: @ 808B8D8 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 - thumb_func_end sub_808B8D8 + thumb_func_end PlayerEndWheelie - thumb_func_start sub_808B8F0 -sub_808B8F0: @ 808B8F0 + thumb_func_start PlayerStandingHoppingWheelie +PlayerStandingHoppingWheelie: @ 808B8F0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -2088,14 +2088,14 @@ sub_808B8F0: @ 808B8F0 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r4} pop {r0} bx r0 - thumb_func_end sub_808B8F0 + thumb_func_end PlayerStandingHoppingWheelie - thumb_func_start sub_808B914 -sub_808B914: @ 808B914 + thumb_func_start PlayerMovingHoppingWheelie +PlayerMovingHoppingWheelie: @ 808B914 push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -2107,14 +2107,14 @@ sub_808B914: @ 808B914 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r4} pop {r0} bx r0 - thumb_func_end sub_808B914 + thumb_func_end PlayerMovingHoppingWheelie - thumb_func_start sub_808B938 -sub_808B938: @ 808B938 + thumb_func_start PlayerLedgeHoppingWheelie +PlayerLedgeHoppingWheelie: @ 808B938 push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -2126,14 +2126,14 @@ sub_808B938: @ 808B938 lsls r0, 24 lsrs r0, 24 movs r1, 0x8 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r4} pop {r0} bx r0 - thumb_func_end sub_808B938 + thumb_func_end PlayerLedgeHoppingWheelie - thumb_func_start sub_808B95C -sub_808B95C: @ 808B95C + thumb_func_start PlayerAcroTurnJump +PlayerAcroTurnJump: @ 808B95C push {r4,lr} adds r4, r0, 0 lsls r4, 24 @@ -2145,11 +2145,11 @@ sub_808B95C: @ 808B95C lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r4} pop {r0} bx r0 - thumb_func_end sub_808B95C + thumb_func_end PlayerAcroTurnJump thumb_func_start sub_808B980 sub_808B980: @ 808B980 @@ -2164,7 +2164,7 @@ sub_808B980: @ 808B980 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r4} pop {r0} bx r0 @@ -2179,7 +2179,7 @@ sub_808B9A4: @ 808B9A4 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 thumb_func_end sub_808B9A4 @@ -2193,7 +2193,7 @@ sub_808B9BC: @ 808B9BC lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 thumb_func_end sub_808B9BC @@ -2207,7 +2207,7 @@ npc_use_some_d2s: @ 808B9D4 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl player_npc_set_state_and_x22_etc + bl PlayerSetAnimId pop {r0} bx r0 thumb_func_end npc_use_some_d2s @@ -2592,9 +2592,9 @@ sub_808BCF4: @ 808BCF4 lsls r0, 24 cmp r0, 0 beq _0808BD2C - bl sub_811A188 + bl Bike_HandleBumpySlopeJump movs r0, 0 - bl sub_811A114 + bl Bike_UpdateBikeCounterSpeed _0808BD2C: pop {r4} pop {r0} diff --git a/asm/field_screen.s b/asm/field_screen.s index 408f131c7a..c16068a15b 100644 --- a/asm/field_screen.s +++ b/asm/field_screen.s @@ -7975,7 +7975,7 @@ _080AF120: sub_80AF128: @ 80AF128 push {lr} bl ScriptContext2_Enable - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_black ldr r0, =task0A_nop_for_a_while movs r1, 0xA @@ -8006,7 +8006,7 @@ _080AF160: sub_80AF168: @ 80AF168 push {lr} bl ScriptContext2_Enable - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_black ldr r0, =task0A_asap_script_env_2_enable_and_set_ctx_running movs r1, 0xA @@ -8092,7 +8092,7 @@ _080AF20E: sub_80AF214: @ 80AF214 push {lr} bl ScriptContext2_Enable - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl palette_bg_faded_fill_black ldr r0, =task_mpl_807DD60 movs r1, 0xA @@ -8220,7 +8220,7 @@ _080AF30C: sub_80AF314: @ 80AF314 push {lr} bl ScriptContext2_Enable - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl palette_bg_faded_fill_black ldr r0, =sub_80AF234 movs r1, 0xA @@ -8279,7 +8279,7 @@ _080AF37E: thumb_func_start mapldr_default mapldr_default: @ 80AF398 push {lr} - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl sub_80AF334 bl ScriptContext2_Enable @@ -8290,7 +8290,7 @@ mapldr_default: @ 80AF398 thumb_func_start sub_80AF3B0 sub_80AF3B0: @ 80AF3B0 push {lr} - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl sub_80AF08C bl sub_80AF334 bl ScriptContext2_Enable @@ -8304,7 +8304,7 @@ sub_80AF3C8: @ 80AF3C8 bl sub_81D6534 cmp r0, 0 bne _080AF3D6 - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic _080AF3D6: bl pal_fill_black bl sub_80AF334 @@ -8316,7 +8316,7 @@ _080AF3D6: thumb_func_start sub_80AF3E8 sub_80AF3E8: @ 80AF3E8 push {lr} - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights movs r0, 0x2E bl PlaySE @@ -8332,7 +8332,7 @@ sub_80AF3E8: @ 80AF3E8 thumb_func_start sub_80AF40C sub_80AF40C: @ 80AF40C push {lr} - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights movs r0, 0x2E bl PlaySE @@ -8680,7 +8680,7 @@ sub_80AF6D4: @ 80AF6D4 sub_80AF6F0: @ 80AF6F0 push {lr} bl ScriptContext2_Enable - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl pal_fill_black ldr r0, =task_mpl_807E3C8 movs r1, 0xA diff --git a/asm/field_tasks.s b/asm/field_tasks.s index 39bd3b5452..4befe0ca7a 100644 --- a/asm/field_tasks.s +++ b/asm/field_tasks.s @@ -1662,7 +1662,7 @@ _0809E572: lsls r0, 24 cmp r0, 0 beq _0809E5D2 - bl sub_811A138 + bl GetPlayerSpeed lsls r0, 16 asrs r0, 16 cmp r0, 0x4 diff --git a/asm/item_use.s b/asm/item_use.s index f732c34e93..567c52206b 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -354,7 +354,7 @@ _080FD320: bl sav1_map_is_biking_allowed cmp r0, 0x1 bne _080FD348 - bl sub_8119FF8 + bl IsBikingDisallowedByPlayer lsls r0, 24 cmp r0, 0 bne _080FD348 diff --git a/asm/overworld.s b/asm/overworld.s index fb3c023b1c..2d282fa9cd 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -2212,8 +2212,8 @@ call_ResetMapMusic: @ 8085778 bx r0 thumb_func_end call_ResetMapMusic - thumb_func_start sub_8085784 -sub_8085784: @ 8085784 + thumb_func_start Overworld_PlaySpecialMapMusic +Overworld_PlaySpecialMapMusic: @ 8085784 push {r4,lr} bl sav1_map_get_music lsls r0, 16 @@ -2261,7 +2261,7 @@ _080857E8: pop {r0} bx r0 .pool - thumb_func_end sub_8085784 + thumb_func_end Overworld_PlaySpecialMapMusic thumb_func_start Overworld_SetSavedMusic Overworld_SetSavedMusic: @ 80857F4 diff --git a/asm/rom6.s b/asm/rom6.s index f2fabec35b..091a69f60b 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -4668,7 +4668,7 @@ mapldr_080CA5C0: @ 8137C5C push {lr} sub sp, 0x4 bl ScriptContext2_Enable - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic bl sp109_CreatePCMenu bl sub_80E2514 movs r0, 0x1 @@ -4733,10 +4733,10 @@ Special_ViewWallClock: @ 8137CC8 thumb_func_start wild_pokemon_reroll wild_pokemon_reroll: @ 8137CEC - ldr r0, =gUnknown_0203AB54 + ldr r0, =gBikeCyclingChallenge movs r1, 0 strb r1, [r0] - ldr r0, =gUnknown_0203AB55 + ldr r0, =gBikeCollisions strb r1, [r0] ldr r1, =gUnknown_0203AB58 movs r0, 0 @@ -4747,10 +4747,10 @@ wild_pokemon_reroll: @ 8137CEC thumb_func_start sub_8137D0C sub_8137D0C: @ 8137D0C - ldr r1, =gUnknown_0203AB54 + ldr r1, =gBikeCyclingChallenge movs r0, 0x1 strb r0, [r1] - ldr r1, =gUnknown_0203AB55 + ldr r1, =gBikeCollisions movs r0, 0 strb r0, [r1] ldr r1, =gUnknown_0203AB58 @@ -4919,7 +4919,7 @@ sub_8137E6C: @ 8137E6C ldr r4, [r0, 0x20] ldr r0, [r1] subs r4, r0 - ldr r5, =gUnknown_0203AB55 + ldr r5, =gBikeCollisions ldrb r1, [r5] adds r0, r4, 0 bl sub_8137D5C diff --git a/asm/rotating_gate.s b/asm/rotating_gate.s index 5b7671bf89..da5e730348 100644 --- a/asm/rotating_gate.s +++ b/asm/rotating_gate.s @@ -410,7 +410,7 @@ sub_80FBAE4: @ 80FBAE4 adds r0, r4, 0x4 lsls r0, 24 lsrs r4, r0, 24 - bl sub_811A138 + bl GetPlayerSpeed lsls r0, 16 asrs r0, 16 cmp r0, 0x1 @@ -433,7 +433,7 @@ _080FBB2A: adds r0, 0x8 lsls r0, 24 lsrs r4, r0, 24 - bl sub_811A138 + bl GetPlayerSpeed lsls r0, 16 asrs r0, 16 cmp r0, 0x1 diff --git a/asm/trainer_card.s b/asm/trainer_card.s index 84d0cceab2..e5d21adb87 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -5766,7 +5766,7 @@ sub_80C58D4: @ 80C58D4 beq _080C5914 cmp r0, 0x2 beq _080C591C - bl sub_8085784 + bl Overworld_PlaySpecialMapMusic b _080C5924 .pool _080C5914: diff --git a/data/bike.s b/data/bike.s deleted file mode 100644 index ffb33e52b6..0000000000 --- a/data/bike.s +++ /dev/null @@ -1,58 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gUnknown_0859744C:: @ 859744C - .4byte sub_8119224 - .4byte sub_8119238 - .4byte sub_8119280 - .4byte sub_8119344 - - .align 2 -gUnknown_0859745C:: @ 859745C - .4byte PlayerGoSpeed0 - .4byte PlayerGoSpeed1 - .4byte PlayerGoSpeed3 - - .align 2 -gUnknown_08597468:: @ 8597468 - .4byte sub_81197E4 - .4byte sub_81197F4 - .4byte sub_8119830 - .4byte sub_81198C0 - .4byte sub_81198FC - .4byte sub_8119938 - .4byte sub_8119974 - .4byte sub_81199B0 - .4byte sub_8119A24 - .4byte sub_8119A94 - .4byte sub_8119AA4 - .4byte sub_8119B34 - .4byte sub_8119BC4 - - .align 2 -gUnknown_0859749C:: @ 859749C - .4byte CheckMovementInputAcroBikeNormal - .4byte CheckMovementInputAcroBikeChangingDirection - .4byte CheckMovementInputAcroBikeStandingWheelie - .4byte CheckMovementInputAcroBikeBunnyHop - .4byte CheckMovementInputAcroBikeMovingWheelie - .4byte CheckMovementInputAcroBikeUnknownMode5 - .4byte CheckMovementInputAcroBikeUnknownMode6 - - .align 2 -gUnknown_085974B8:: @ 85974B8 - .2byte 0x0001, 0x0002, 0x0004 - - .align 1 -gUnknown_085974BE:: @ 85974BE - .2byte 0x0004 - - .align 2 -gUnknown_085974C0:: @ 85974C0 - .4byte 0x00000001, 0x00000002, 0x0000000f, 0x0000000f, gUnknown_085974BE, gUnknown_085974BE, 0x00000001 - .4byte 0x00000002, 0x00000002, 0x0000000f, 0x0000000f, gUnknown_085974BE, gUnknown_085974BE, 0x00000002 - .4byte 0x00000003, 0x00000002, 0x0000000f, 0x0000000f, gUnknown_085974BE, gUnknown_085974BE, 0x00000003 - .4byte 0x00000004, 0x00000002, 0x0000000f, 0x0000000f, gUnknown_085974BE, gUnknown_085974BE, 0x00000004 diff --git a/data/specials.inc b/data/specials.inc index d159df31fe..e78c57d6ca 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -163,7 +163,7 @@ gSpecials:: @ 81DBA64 def_special sub_8138BC8 def_special sub_8138B8C def_special sub_814FC9C - def_special sub_8085784 + def_special Overworld_PlaySpecialMapMusic def_special StartWallClock def_special Special_ViewWallClock def_special ChooseStarter diff --git a/include/bike.h b/include/bike.h new file mode 100644 index 0000000000..e625ad4381 --- /dev/null +++ b/include/bike.h @@ -0,0 +1,78 @@ +#ifndef GUARD_BIKE_H +#define GUARD_BIKE_H + +// the struct below is used for checking button combinations of the last input so that the acro can potentially perform a side/turn jump. +// its possible that at some point Game Freak intended for the acro bike to have more complex tricks: but only the acro jump combinations can be seen in the final ROM. +struct BikeHistoryInputInfo +{ + u32 dirHistoryMatch; // the direction you need to press + u32 abStartSelectHistoryMatch; // the button you need to press + u32 dirHistoryMask; // mask applied so that way only the recent nybble (the recent input) is checked + u32 abStartSelectHistoryMask; // mask applied so that way only the recent nybble (the recent input) is checked + const u8 *dirTimerHistoryList; // list of timers to check for direction before the button+dir combination can be verified. + const u8 *abStartSelectHistoryList; // list of timers to check for buttons before the button+dir combination can be verified. + u32 direction; // direction to jump +}; + +// Player speeds +enum +{ + SPEED_STANDING, + SPEED_NORMAL, + SPEED_FAST, + SPEED_FASTER, + SPEED_FASTEST, +}; + +// mach bike transitions enum +enum +{ + MACH_TRANS_FACE_DIRECTION, + MACH_TRANS_TURN_DIRECTION, + MACH_TRANS_KEEP_MOVING, + MACH_TRANS_START_MOVING +}; + +// Acro bike states +enum +{ + ACRO_STATE_NORMAL, + ACRO_STATE_TURNING, + ACRO_STATE_WHEELIE_STANDING, + ACRO_STATE_BUNNY_HOP, + ACRO_STATE_WHEELIE_MOVING, + ACRO_STATE_SIDE_JUMP, + ACRO_STATE_TURN_JUMP, +}; + +// Acro bike transitions +enum +{ + ACRO_TRANS_FACE_DIRECTION, + ACRO_TRANS_TURN_DIRECTION, + ACRO_TRANS_MOVING, + ACRO_TRANS_NORMAL_TO_WHEELIE, + ACRO_TRANS_WHEELIE_TO_NORMAL, + ACRO_TRANS_WHEELIE_IDLE, + ACRO_TRANS_WHEELIE_HOPPING_STANDING, + ACRO_TRANS_WHEELIE_HOPPING_MOVING, + ACRO_TRANS_SIDE_JUMP, + ACRO_TRANS_TURN_JUMP, + ACRO_TRANS_WHEELIE_MOVING, + ACRO_TRANS_WHEELIE_RISING_MOVING, + ACRO_TRANS_WHEELIE_LOWERING_MOVING, +}; + +void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys); +void Bike_TryAcroBikeHistoryUpdate(u16 newKeys, u16 heldKeys); +bool8 RS_IsRunningDisallowed(u8 tile); +bool8 IsBikingDisallowedByPlayer(void); +bool8 player_should_look_direction_be_enforced_upon_movement(void); +void GetOnOffBike(u8 transitionFlags); +void BikeClearState(int newDirHistory, int newAbStartHistory); +void Bike_UpdateBikeCounterSpeed(u8 counter); +s16 GetPlayerSpeed(void); +void Bike_HandleBumpySlopeJump(void); +bool32 IsRunningDisallowed(u8 metatile); + +#endif // GUARD_BIKE_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 25b7f2d71b..40a1c1f3b5 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -9,6 +9,27 @@ void PlayerGetDestCoords(s16 *, s16 *); u8 player_get_direction_lower_nybble(void); u8 player_get_direction_upper_nybble(void); u8 player_get_x22(void); +void PlayerGoSpeed1(u8); +void PlayerGoSpeed2(u8); +void PlayerGoSpeed3(u8); +void PlayerGoSpeed4(u8); +void PlayerOnBikeCollide(u8); +void PlayerFaceDirection(u8 a); +void PlayerTurnInPlace(u8 a); +void PlayerJumpLedge(u8 a); +void PlayerIdleWheelie(u8 a); +void PlayerStartWheelie(u8 a); +void PlayerEndWheelie(u8 a); +void PlayerStandingHoppingWheelie(u8 a); +void PlayerMovingHoppingWheelie(u8 a); +void PlayerLedgeHoppingWheelie(u8 a); +void PlayerAcroTurnJump(u8 a); +void PlayerSetAnimId(u8 a, u8 b); +bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction); +void PlayerOnBikeCollideWithFarawayIslandMew(u8 direction); +u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e); +u8 PlayerGetZCoord(void); +void SetPlayerAvatarTransitionFlags(u16 a); void sub_808D074(u8); void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr); diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index abab1b5c4a..a0d16fc508 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -299,25 +299,42 @@ enum COLLISION_LEDGE_JUMP = 6 }; -struct PlayerAvatar /* 0x202E858 */ +// player running states +enum +{ + NOT_MOVING, + TURN_DIRECTION, // not the same as turning! turns your avatar without moving. also known as a turn frame in some circles + MOVING, +}; + +// player tile transition states +enum +{ + T_NOT_MOVING, + T_TILE_TRANSITION, + T_TILE_CENTER, // player is on a frame in which they are centered on a tile during which the player either stops or keeps their momentum and keeps going, changing direction if necessary. +}; + +struct PlayerAvatar { /*0x00*/ u8 flags; - /*0x01*/ u8 bike; - /*0x02*/ u8 running2; - /*0x03*/ u8 running1; + /*0x01*/ u8 unk1; // used to be named bike, but its definitely not that. seems to be some transition flags + /*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving. + /*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning. /*0x04*/ u8 spriteId; /*0x05*/ u8 mapObjectId; - /*0x06*/ u8 unk6; + /*0x06*/ bool8 preventStep; /*0x07*/ u8 gender; - u8 acroBikeState; - u8 unk9; - u8 bikeFrameCounter; - u8 unkB; - u32 unkC; - u32 unk10; - u8 unk14[8]; - u8 unk1C[8]; - // TODO: rest of struct + /*0x08*/ u8 acroBikeState; // 00 is normal, 01 is turning, 02 is standing wheelie, 03 is hopping wheelie + /*0x09*/ u8 newDirBackup; // during bike movement, the new direction as opposed to player's direction is backed up here. + /*0x0A*/ u8 bikeFrameCounter; // on the mach bike, when this value is 1, the bike is moving but not accelerating yet for 1 tile. on the acro bike, this acts as a timer for acro bike. + /*0x0B*/ u8 bikeSpeed; + // acro bike only + /*0x0C*/ u32 directionHistory; // up/down/left/right history is stored in each nybble, but using the field directions and not the io inputs. + /*0x10*/ u32 abStartSelectHistory; // same as above but for A + B + start + select only + // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update. + /*0x14*/ u8 dirTimerHistory[8]; + /*0x1C*/ u8 abStartSelectTimerHistory[8]; }; struct Camera diff --git a/ld_script.txt b/ld_script.txt index 7301ce357a..f711c9fa3d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -162,7 +162,7 @@ SECTIONS { asm/contest_link_80FC4F4.o(.text); asm/item_use.o(.text); asm/battle_anim_80FE840.o(.text); - asm/bike.o(.text); + src/bike.o(.text); asm/easy_chat.o(.text); asm/mon_markings.o(.text); asm/mauville_old_man.o(.text); @@ -409,7 +409,7 @@ SECTIONS { data/rotating_gate.o(.rodata); data/item_use.o(.rodata); data/battle_anim_80FE840.o(.rodata); - data/bike.o(.rodata); + src/bike.o(.rodata); data/easy_chat.o(.rodata); data/mon_markings.o(.rodata); data/mauville_old_man.o(.rodata); diff --git a/src/bike.c b/src/bike.c new file mode 100644 index 0000000000..b97a6dba6f --- /dev/null +++ b/src/bike.c @@ -0,0 +1,1078 @@ +#include "global.h" +#include "bike.h" +#include "field_map_obj.h" +#include "field_player_avatar.h" +#include "fieldmap.h" +#include "constants/flags.h" +#include "global.fieldmap.h" +#include "metatile_behavior.h" +#include "overworld.h" +#include "constants/songs.h" +#include "sound.h" + +extern bool8 gBikeCyclingChallenge; +extern u8 gBikeCollisions; +extern bool8 gUnknown_02037348; + +extern u8 sub_8093514(u8 direction); +extern u8 sub_808B980(u8 direction); +extern u8 sub_808B9BC(u8 direction); +extern u8 sub_808B9A4(u8 direction); +extern u8 sub_808C1B4(u8 direction); +extern u8 npc_use_some_d2s(u8 direction); +extern void Overworld_ClearSavedMusic(void); +extern void Overworld_PlaySpecialMapMusic(void); + +// this file's functions +static void MovePlayerOnMachBike(u8, u16, u16); +static u8 GetMachBikeTransition(u8 *); +static void MachBikeTransition_FaceDirection(u8); +static void MachBikeTransition_TurnDirection(u8); +static void MachBikeTransition_TrySpeedUp(u8); +static void MachBikeTransition_TrySlowDown(u8); +static void MovePlayerOnAcroBike(u8, u16, u16); +static u8 CheckMovementInputAcroBike(u8 *, u16, u16); +static u8 AcroBikeHandleInputNormal(u8 *, u16, u16); +static u8 AcroBikeHandleInputTurning(u8 *, u16, u16); +static u8 AcroBikeHandleInputWheelieStanding(u8 *, u16, u16); +static u8 AcroBikeHandleInputBunnyHop(u8 *, u16, u16); +static u8 AcroBikeHandleInputWheelieMoving(u8 *, u16, u16); +static u8 AcroBikeHandleInputSidewaysJump(u8 *, u16, u16); +static u8 AcroBikeHandleInputTurnJump(u8 *, u16, u16); +static void AcroBikeTransition_FaceDirection(u8); +static void AcroBikeTransition_TurnDirection(u8); +static void AcroBikeTransition_Moving(u8); +static void AcroBikeTransition_NormalToWheelie(u8); +static void AcroBikeTransition_WheelieToNormal(u8); +static void AcroBikeTransition_WheelieIdle(u8); +static void AcroBikeTransition_WheelieHoppingStanding(u8); +static void AcroBikeTransition_WheelieHoppingMoving(u8); +static void AcroBikeTransition_SideJump(u8); +static void AcroBikeTransition_TurnJump(u8); +static void AcroBikeTransition_WheelieMoving(u8); +static void AcroBikeTransition_WheelieRisingMoving(u8); +static void AcroBikeTransition_WheelieLoweringMoving(u8); +static void AcroBike_TryHistoryUpdate(u16, u16); +static u8 AcroBike_GetJumpDirection(void); +static void Bike_UpdateDirTimerHistory(u8); +static void Bike_UpdateABStartSelectHistory(u8); +static u8 Bike_DPadToDirection(u16); +static u8 get_some_collision(u8); +static u8 Bike_CheckCollisionTryAdvanceCollisionCount(struct MapObject *, s16, s16, u8, u8); +static bool8 IsRunningDisallowedByMetatile(u8); +static void Bike_TryAdvanceCyclingRoadCollisions(); +static u8 CanBikeFaceDirOnMetatile(u8, u8); +static bool8 WillPlayerCollideWithCollision(u8, u8); +static void Bike_SetBikeStill(void); + +// const rom data + +/* + A bike transition is a type of callback for the bike that actually + modifies the bicycle's direction or momentum or otherwise movement. + Alternatively, a bike may also have input handlers which process the + bike transition to call: the acro bike has input handlers while the mach + bike does not. This is because the Acro needs to know the button inputs + for its complex tricks and actions. +*/ + +static void (*const sMachBikeTransitions[])(u8) = +{ + MachBikeTransition_FaceDirection, // Face vs Turn: Face has no anim while Turn does. Turn checks for collision because if you turn right as opposed to face right, if there is a wall there, turn will make a bonk sound effect while face will not. + MachBikeTransition_TurnDirection, + MachBikeTransition_TrySpeedUp, + MachBikeTransition_TrySlowDown, +}; + +// bikeFrameCounter is input which is represented by sMachBikeSpeeds in order: 0 is normal speed (1 speed), 1 is fast speed (2 speed), 2 is fastest speed (4 speed) +static void (*const sMachBikeSpeedCallbacks[])(u8) = +{ + PlayerGoSpeed1, // normal speed (1 speed) + PlayerGoSpeed2, // fast speed (2 speed) + PlayerGoSpeed4, // fastest speed (4 speed) +}; + +static void (*const sAcroBikeTransitions[])(u8) = +{ + AcroBikeTransition_FaceDirection, + AcroBikeTransition_TurnDirection, + AcroBikeTransition_Moving, + AcroBikeTransition_NormalToWheelie, + AcroBikeTransition_WheelieToNormal, + AcroBikeTransition_WheelieIdle, + AcroBikeTransition_WheelieHoppingStanding, + AcroBikeTransition_WheelieHoppingMoving, + AcroBikeTransition_SideJump, + AcroBikeTransition_TurnJump, + AcroBikeTransition_WheelieMoving, + AcroBikeTransition_WheelieRisingMoving, + AcroBikeTransition_WheelieLoweringMoving, +}; + +static u8 (*const sAcroBikeInputHandlers[])(u8 *, u16, u16) = +{ + AcroBikeHandleInputNormal, + AcroBikeHandleInputTurning, + AcroBikeHandleInputWheelieStanding, + AcroBikeHandleInputBunnyHop, + AcroBikeHandleInputWheelieMoving, + AcroBikeHandleInputSidewaysJump, + AcroBikeHandleInputTurnJump, +}; + +// used with bikeFrameCounter from mach bike +static const u16 sMachBikeSpeeds[] = {SPEED_NORMAL, SPEED_FAST, SPEED_FASTEST}; + +// this is a list of timers to compare against later, terminated with 0. the only timer being compared against is 4 frames in this list. +static const u8 sAcroBikeJumpTimerList[] = {4, 0}; + +// this is a list of history inputs to do in order to do the check to retrieve a jump direction for acro bike. it seems to be an extensible list, so its possible that Game Freak may have intended for the Acro Bike to have more complex tricks at some point. The final list only has the acro jump. +static const struct BikeHistoryInputInfo sAcroBikeTricksList[] = +{ + // the 0xF is a mask performed with each byte of the array in order to perform the check on only the last entry of the history list, otherwise the check wouldn't work as there can be 0xF0 as opposed to 0x0F. + {DIR_SOUTH, B_BUTTON, 0xF, 0xF, sAcroBikeJumpTimerList, sAcroBikeJumpTimerList, DIR_SOUTH}, + {DIR_NORTH, B_BUTTON, 0xF, 0xF, sAcroBikeJumpTimerList, sAcroBikeJumpTimerList, DIR_NORTH}, + {DIR_WEST, B_BUTTON, 0xF, 0xF, sAcroBikeJumpTimerList, sAcroBikeJumpTimerList, DIR_WEST}, + {DIR_EAST, B_BUTTON, 0xF, 0xF, sAcroBikeJumpTimerList, sAcroBikeJumpTimerList, DIR_EAST}, +}; + +// code +void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys) +{ + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE) + MovePlayerOnMachBike(direction, newKeys, heldKeys); + else + MovePlayerOnAcroBike(direction, newKeys, heldKeys); +} + +static void MovePlayerOnMachBike(u8 direction, u16 newKeys, u16 heldKeys) +{ + sMachBikeTransitions[GetMachBikeTransition(&direction)](direction); +} + +// dirTraveling is a variable that is 0 when the player is standing still. +static u8 GetMachBikeTransition(u8 *dirTraveling) +{ + // if the dir updated before this function, get the relevent new direction to check later. + u8 direction = player_get_direction_upper_nybble(); + + // is the player standing still? + if (*dirTraveling == 0) + { + *dirTraveling = direction; // update the direction, since below we either faced a direction or we started moving. + if (gPlayerAvatar.bikeSpeed == SPEED_STANDING) + { + gPlayerAvatar.runningState = NOT_MOVING; + return MACH_TRANS_FACE_DIRECTION; + } + gPlayerAvatar.runningState = MOVING; + return MACH_TRANS_START_MOVING; + } + + // we need to check if the last traveled direction changed from the new direction as well as ensuring that we dont update the state while the player is moving: see the else check. + if (*dirTraveling != direction && gPlayerAvatar.runningState != MOVING) + { + if (gPlayerAvatar.bikeSpeed != SPEED_STANDING) + { + *dirTraveling = direction; // implement the new direction + gPlayerAvatar.runningState = MOVING; + return MACH_TRANS_START_MOVING; + } + // if you didnt start moving but your dir was different, do a turn direction instead. + gPlayerAvatar.runningState = TURN_DIRECTION; + return MACH_TRANS_TURN_DIRECTION; + } + else // the player is either going in the current direction and hasnt changed or their state is currently moving. + { + gPlayerAvatar.runningState = MOVING; + return MACH_TRANS_KEEP_MOVING; + } +} + +// the difference between face direction and turn direction is that one changes direction while the other does the animation of turning as well as changing direction. +static void MachBikeTransition_FaceDirection(u8 direction) +{ + PlayerFaceDirection(direction); + Bike_SetBikeStill(); +} + +static void MachBikeTransition_TurnDirection(u8 direction) +{ + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E)) + { + PlayerTurnInPlace(direction); + Bike_SetBikeStill(); + } + else + { + MachBikeTransition_FaceDirection(playerMapObj->mapobj_unk_18); + } +} + +static void MachBikeTransition_TrySpeedUp(u8 direction) +{ + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + u8 collision; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == FALSE) + { + // we cannot go forward, so either slow down or, if we are stopped, idle face direction. + if (gPlayerAvatar.bikeSpeed) + MachBikeTransition_TrySlowDown(playerMapObj->placeholder18); + else + MachBikeTransition_FaceDirection(playerMapObj->placeholder18); + } + else + { + collision = get_some_collision(direction); + if (collision > 0 && collision < 12) + { + // we hit a solid object, but check to see if its a ledge and then jump. + if (collision == COLLISION_LEDGE_JUMP) + { + PlayerJumpLedge(direction); + } + else + { + // we hit a solid object that is not a ledge, so perform the collision. + Bike_SetBikeStill(); + if (collision == 4 && IsPlayerCollidingWithFarawayIslandMew(direction)) + PlayerOnBikeCollideWithFarawayIslandMew(direction); + else if (collision < 5 || collision > 8) + PlayerOnBikeCollide(direction); + } + } + else + { + // we did not hit anything that can slow us down, so perform the advancement callback depending on the bikeFrameCounter and try to increase the mach bike's speed. + sMachBikeSpeedCallbacks[gPlayerAvatar.bikeFrameCounter](direction); + gPlayerAvatar.bikeSpeed = gPlayerAvatar.bikeFrameCounter + (gPlayerAvatar.bikeFrameCounter >> 1); // same as dividing by 2, but compiler is insistent on >> 1 + if (gPlayerAvatar.bikeFrameCounter < 2) // do not go faster than the last element in the mach bike array + gPlayerAvatar.bikeFrameCounter++; + } + } +} + +static void MachBikeTransition_TrySlowDown(u8 direction) +{ + u8 collision; + + if (gPlayerAvatar.bikeSpeed != SPEED_STANDING) + gPlayerAvatar.bikeFrameCounter = --gPlayerAvatar.bikeSpeed; + + collision = get_some_collision(direction); + + if (collision > 0 && collision < 12) + { + if (collision == COLLISION_LEDGE_JUMP) + { + PlayerJumpLedge(direction); + } + else + { + Bike_SetBikeStill(); + if (collision == 4 && IsPlayerCollidingWithFarawayIslandMew(direction)) + PlayerOnBikeCollideWithFarawayIslandMew(direction); + else if (collision < 5 || collision > 8) + PlayerOnBikeCollide(direction); + } + } + else + { + sMachBikeSpeedCallbacks[gPlayerAvatar.bikeFrameCounter](direction); + } +} + +// the acro bike requires the input handler to be executed before the transition can. +static void MovePlayerOnAcroBike(u8 newDirection, u16 newKeys, u16 heldKeys) +{ + sAcroBikeTransitions[CheckMovementInputAcroBike(&newDirection, newKeys, heldKeys)](newDirection); +} + +static u8 CheckMovementInputAcroBike(u8 *newDirection, u16 newKeys, u16 heldKeys) +{ + return sAcroBikeInputHandlers[gPlayerAvatar.acroBikeState](newDirection, newKeys, heldKeys); +} + +static u8 AcroBikeHandleInputNormal(u8 *newDirection, u16 newKeys, u16 heldKeys) +{ + u8 direction = player_get_direction_upper_nybble(); + + gPlayerAvatar.bikeFrameCounter = 0; + if (*newDirection == DIR_NONE) + { + if (newKeys & B_BUTTON) + { + //We're standing still with the B button held. + //Do a wheelie. + *newDirection = direction; + gPlayerAvatar.runningState = NOT_MOVING; + gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING; + return ACRO_TRANS_NORMAL_TO_WHEELIE; + } + else + { + *newDirection = direction; + gPlayerAvatar.runningState = NOT_MOVING; + return ACRO_TRANS_FACE_DIRECTION; + } + } + if (*newDirection == direction && (heldKeys & B_BUTTON) && gPlayerAvatar.bikeSpeed == SPEED_STANDING) + { + gPlayerAvatar.bikeSpeed++; + gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_MOVING; + return ACRO_TRANS_WHEELIE_RISING_MOVING; + } + if (*newDirection != direction && gPlayerAvatar.runningState != MOVING) + { + gPlayerAvatar.acroBikeState = ACRO_STATE_TURNING; + gPlayerAvatar.newDirBackup = *newDirection; + gPlayerAvatar.runningState = NOT_MOVING; + return CheckMovementInputAcroBike(newDirection, newKeys, heldKeys); + } + gPlayerAvatar.runningState = MOVING; + return ACRO_TRANS_MOVING; +} + +static u8 AcroBikeHandleInputTurning(u8 *newDirection, u16 newKeys, u16 heldKeys) +{ + u8 direction; + + *newDirection = gPlayerAvatar.newDirBackup; + gPlayerAvatar.bikeFrameCounter++; + + // Wait 6 frames before actually changing direction + if (gPlayerAvatar.bikeFrameCounter > 6) // ... because it takes 6 frames to advance 1 tile. + { + gPlayerAvatar.runningState = TURN_DIRECTION; + gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL; + Bike_SetBikeStill(); + return ACRO_TRANS_TURN_DIRECTION; + } + direction = player_get_direction_upper_nybble(); + if (*newDirection == AcroBike_GetJumpDirection()) + { + Bike_SetBikeStill(); // Bike_SetBikeStill sets speed to standing, but the next line immediately overrides it. could have just reset acroBikeState to 0 here instead of wasting a jump. + gPlayerAvatar.bikeSpeed = SPEED_NORMAL; + if (*newDirection == GetOppositeDirection(direction)) + { + // do a turn jump. + // no need to update runningState, didnt move. + gPlayerAvatar.acroBikeState = ACRO_STATE_TURN_JUMP; + return ACRO_TRANS_TURN_JUMP; + } + else + { + // do a sideways jump. + gPlayerAvatar.runningState = MOVING; // we need to move, set state to moving. + gPlayerAvatar.acroBikeState = ACRO_STATE_SIDE_JUMP; + return ACRO_TRANS_SIDE_JUMP; + } + } + *newDirection = direction; + return ACRO_TRANS_FACE_DIRECTION; +} + +static u8 AcroBikeHandleInputWheelieStanding(u8 *newDirection, u16 newKeys, u16 heldKeys) +{ + u8 direction; + struct MapObject *playerMapObj; + + direction = player_get_direction_upper_nybble(); + playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + gPlayerAvatar.runningState = NOT_MOVING; + + if (heldKeys & B_BUTTON) + gPlayerAvatar.bikeFrameCounter++; + else + { + // B button was released. + gPlayerAvatar.bikeFrameCounter = 0; + if (!MetatileBehavior_IsBumpySlope(playerMapObj->mapobj_unk_1E)) + { + // Go back to normal on flat ground + *newDirection = direction; + gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL; + Bike_SetBikeStill(); + return ACRO_TRANS_WHEELIE_TO_NORMAL; + } + } + if (gPlayerAvatar.bikeFrameCounter >= 40) + { + *newDirection = direction; + gPlayerAvatar.acroBikeState = ACRO_STATE_BUNNY_HOP; + Bike_SetBikeStill(); + return ACRO_TRANS_WHEELIE_HOPPING_STANDING; + } + if (*newDirection == direction) + { + gPlayerAvatar.runningState = MOVING; + gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_MOVING; + Bike_SetBikeStill(); + return ACRO_TRANS_WHEELIE_MOVING; + } + if (*newDirection == 0) + { + *newDirection = direction; + return ACRO_TRANS_WHEELIE_IDLE; + } + gPlayerAvatar.runningState = TURN_DIRECTION; + return ACRO_TRANS_WHEELIE_IDLE; +} + +static u8 AcroBikeHandleInputBunnyHop(u8 *newDirection, u16 newKeys, u16 heldKeys) +{ + u8 direction; + struct MapObject *playerMapObj; + + direction = player_get_direction_upper_nybble(); + playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (!(heldKeys & B_BUTTON)) + { + // B button was released + Bike_SetBikeStill(); + if (MetatileBehavior_IsBumpySlope(playerMapObj->mapobj_unk_1E)) + { + // even though B was released, dont undo the wheelie on the bumpy slope. + gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING; + return CheckMovementInputAcroBike(newDirection, newKeys, heldKeys); + } + else + { + // .. otherwise, go back to normal on flat ground + *newDirection = direction; + gPlayerAvatar.runningState = NOT_MOVING; + gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL; + return ACRO_TRANS_WHEELIE_TO_NORMAL; + } + } + + // B Button is still held + + if (*newDirection == DIR_NONE) + { + // we did not move, so keep hopping in place without moving. + *newDirection = direction; + gPlayerAvatar.runningState = NOT_MOVING; + return ACRO_TRANS_WHEELIE_HOPPING_STANDING; + } + if (*newDirection != direction && gPlayerAvatar.runningState != MOVING) + { + // we changed direction, so turn but do not move hop. + gPlayerAvatar.runningState = TURN_DIRECTION; + return ACRO_TRANS_WHEELIE_HOPPING_STANDING; + } + // otherwise, we started moving while hopping + gPlayerAvatar.runningState = MOVING; + return ACRO_TRANS_WHEELIE_HOPPING_MOVING; +} + +static u8 AcroBikeHandleInputWheelieMoving(u8 *newDirection, u16 newKeys, u16 heldKeys) +{ + u8 direction; + struct MapObject *playerMapObj; + + direction = player_get_direction_lower_nybble(); + playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + if (!(heldKeys & B_BUTTON)) + { + // we were moving on a wheelie, but we let go while moving. reset bike still status + Bike_SetBikeStill(); + if (!MetatileBehavior_IsBumpySlope(playerMapObj->mapobj_unk_1E)) + { + // we let go of B and arent on a bumpy slope, set state to normal because now we need to handle this + gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL; + if (*newDirection == DIR_NONE) + { + // we stopped moving but are turning, still try to lower the wheelie in place. + *newDirection = direction; + gPlayerAvatar.runningState = NOT_MOVING; + return ACRO_TRANS_WHEELIE_TO_NORMAL; + } + if (*newDirection != direction && gPlayerAvatar.runningState != MOVING) + { + // we did not turn while lowering wheelie, so do so without turning. + gPlayerAvatar.runningState = NOT_MOVING; + return ACRO_TRANS_WHEELIE_TO_NORMAL; + } + // if we are moving while lowering wheelie, put the acro into a lowering state while moving. + gPlayerAvatar.runningState = MOVING; + return ACRO_TRANS_WHEELIE_LOWERING_MOVING; + } + // please do not undo the wheelie on a bumpy slope + gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING; + return CheckMovementInputAcroBike(newDirection, newKeys, heldKeys); + } + // we are still holding B. + if (*newDirection == DIR_NONE) + { + // idle the wheelie in place because we're holding B without moving. + *newDirection = direction; + gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING; + gPlayerAvatar.runningState = NOT_MOVING; + Bike_SetBikeStill(); + return ACRO_TRANS_WHEELIE_IDLE; + } + if (direction != *newDirection && gPlayerAvatar.runningState != MOVING) + { + gPlayerAvatar.runningState = NOT_MOVING; + return ACRO_TRANS_WHEELIE_IDLE; + } + gPlayerAvatar.runningState = MOVING; + return ACRO_TRANS_WHEELIE_MOVING; +} + +static u8 AcroBikeHandleInputSidewaysJump(u8 *ptr, u16 newKeys, u16 heldKeys) +{ + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + playerMapObj->mapobj_bit_9 = 0; + FieldObjectSetDirection(playerMapObj, playerMapObj->mapobj_unk_18); + gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL; + return CheckMovementInputAcroBike(ptr, newKeys, heldKeys); +} + +static u8 AcroBikeHandleInputTurnJump(u8 *ptr, u16 newKeys, u16 heldKeys) +{ + gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL; + return CheckMovementInputAcroBike(ptr, newKeys, heldKeys); +} + +static void AcroBikeTransition_FaceDirection(u8 direction) +{ + PlayerFaceDirection(direction); +} + +static void AcroBikeTransition_TurnDirection(u8 direction) +{ + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0) + direction = playerMapObj->placeholder18; + PlayerFaceDirection(direction); +} + +static void AcroBikeTransition_Moving(u8 direction) +{ + u8 collision; + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0) + { + AcroBikeTransition_FaceDirection(playerMapObj->placeholder18); + return; + } + collision = get_some_collision(direction); + if (collision > 0 && collision < 12) + { + if (collision == COLLISION_LEDGE_JUMP) + PlayerJumpLedge(direction); + else if (collision == 4 && IsPlayerCollidingWithFarawayIslandMew(direction)) + PlayerOnBikeCollideWithFarawayIslandMew(direction); + else if (collision < 5 || collision > 8) + PlayerOnBikeCollide(direction); + } + else + { + PlayerGoSpeed3(direction); + } +} + +static void AcroBikeTransition_NormalToWheelie(u8 direction) +{ + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0) + direction = playerMapObj->placeholder18; + PlayerStartWheelie(direction); +} + +static void AcroBikeTransition_WheelieToNormal(u8 direction) +{ + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0) + direction = playerMapObj->placeholder18; + PlayerEndWheelie(direction); +} + +static void AcroBikeTransition_WheelieIdle(u8 direction) +{ + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0) + direction = playerMapObj->placeholder18; + PlayerIdleWheelie(direction); +} + +static void AcroBikeTransition_WheelieHoppingStanding(u8 direction) +{ + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0) + direction = playerMapObj->placeholder18; + PlayerStandingHoppingWheelie(direction); +} + +static void AcroBikeTransition_WheelieHoppingMoving(u8 direction) +{ + u8 collision; + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0) + { + AcroBikeTransition_WheelieHoppingStanding(playerMapObj->placeholder18); + return; + } + collision = get_some_collision(direction); + // TODO: Try to get rid of this goto + if (collision == 0 || collision == 9) + { + goto derp; + } + else if (collision == 6) + { + PlayerLedgeHoppingWheelie(direction); + } + else if (collision < 5 || collision > 8) + { + if (collision <= 11) + { + AcroBikeTransition_WheelieHoppingStanding(direction); + } + else + { + derp: + PlayerMovingHoppingWheelie(direction); + } + } +} + +static void AcroBikeTransition_SideJump(u8 direction) +{ + u8 collision; + struct MapObject *playerMapObj; + + collision = get_some_collision(direction); + if (collision != 0) + { + if (collision == 7) + return; + if (collision < 10) + { + AcroBikeTransition_TurnDirection(direction); + return; + } + if (WillPlayerCollideWithCollision(collision, direction) == FALSE) + { + AcroBikeTransition_TurnDirection(direction); + return; + } + } + playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + PlaySE(SE_JITE_PYOKO); + playerMapObj->mapobj_bit_9 = 1; + PlayerSetAnimId(sub_8093514(direction), 2); +} + +static void AcroBikeTransition_TurnJump(u8 direction) +{ + PlayerAcroTurnJump(direction); +} + +static void AcroBikeTransition_WheelieMoving(u8 direction) +{ + u8 collision; + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0) + { + PlayerIdleWheelie(playerMapObj->placeholder18); + return; + } + collision = get_some_collision(direction); + if (collision > 0 && collision < 12) + { + if (collision == 6) + { + PlayerLedgeHoppingWheelie(direction); + } + else if (collision == 9) + { + PlayerIdleWheelie(direction); + } + else if (collision <= 4) + { + if (MetatileBehavior_IsBumpySlope(playerMapObj->mapobj_unk_1E)) + PlayerIdleWheelie(direction); + else + sub_808B980(direction); //hit wall? + } + return; + } + sub_808B9BC(direction); + gPlayerAvatar.runningState = MOVING; +} + +static void AcroBikeTransition_WheelieRisingMoving(u8 direction) +{ + u8 collision; + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0) + { + PlayerStartWheelie(playerMapObj->placeholder18); + return; + } + collision = get_some_collision(direction); + if (collision > 0 && collision < 12) + { + if (collision == 6) + { + PlayerLedgeHoppingWheelie(direction); + } + else if (collision == 9) + { + PlayerIdleWheelie(direction); + } + else if (collision <= 4) + { + if (MetatileBehavior_IsBumpySlope(playerMapObj->mapobj_unk_1E)) + PlayerIdleWheelie(direction); + else + sub_808B980(direction); //hit wall? + } + return; + } + sub_808B9A4(direction); + gPlayerAvatar.runningState = MOVING; +} + +static void AcroBikeTransition_WheelieLoweringMoving(u8 direction) +{ + u8 collision; + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + if (CanBikeFaceDirOnMetatile(direction, playerMapObj->mapobj_unk_1E) == 0) + { + PlayerEndWheelie(playerMapObj->placeholder18); + return; + } + collision = get_some_collision(direction); + if (collision > 0 && collision < 12) + { + if (collision == 6) + PlayerJumpLedge(direction); + else if (collision < 5 || collision > 8) + PlayerEndWheelie(direction); + return; + } + npc_use_some_d2s(direction); +} + +void Bike_TryAcroBikeHistoryUpdate(u16 newKeys, u16 heldKeys) +{ + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE) + AcroBike_TryHistoryUpdate(newKeys, heldKeys); +} + +static void AcroBike_TryHistoryUpdate(u16 newKeys, u16 heldKeys) // newKeys is unused +{ + u8 direction = Bike_DPadToDirection(heldKeys); + + if (direction == (gPlayerAvatar.directionHistory & 0xF)) + { + // increment the timer for direction history since last input. + if (gPlayerAvatar.dirTimerHistory[0] < 0xFF) + gPlayerAvatar.dirTimerHistory[0]++; + } + else + { + Bike_UpdateDirTimerHistory(direction); + gPlayerAvatar.bikeSpeed = SPEED_STANDING; + } + + direction = heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON); // directions is reused for some reason. + if (direction == (gPlayerAvatar.abStartSelectHistory & 0xF)) + { + if (gPlayerAvatar.abStartSelectTimerHistory[0] < 0xFF) + gPlayerAvatar.abStartSelectTimerHistory[0]++; + } + else + { + Bike_UpdateABStartSelectHistory(direction); + gPlayerAvatar.bikeSpeed = SPEED_STANDING; + } +} + +static bool8 HasPlayerInputTakenLongerThanList(const u8 *dirTimerList, const u8 *abStartSelectTimerList) +{ + u8 i; + + for (i = 0; dirTimerList[i] != 0; i++) + { + if (gPlayerAvatar.dirTimerHistory[i] > dirTimerList[i]) + return FALSE; + } + for (i = 0; abStartSelectTimerList[i] != 0; i++) + { + if (gPlayerAvatar.abStartSelectTimerHistory[i] > abStartSelectTimerList[i]) + return FALSE; + } + return TRUE; +} + +static u8 AcroBike_GetJumpDirection(void) +{ + u32 i; + + for (i = 0; i < ARRAY_COUNT(sAcroBikeTricksList); i++) + { + const struct BikeHistoryInputInfo *historyInputInfo = &sAcroBikeTricksList[i]; + u32 dirHistory = gPlayerAvatar.directionHistory; + u32 abStartSelectHistory = gPlayerAvatar.abStartSelectHistory; + + dirHistory &= historyInputInfo->dirHistoryMask; + abStartSelectHistory &= historyInputInfo->abStartSelectHistoryMask; + if (dirHistory == historyInputInfo->dirHistoryMatch && abStartSelectHistory == historyInputInfo->abStartSelectHistoryMatch && HasPlayerInputTakenLongerThanList(historyInputInfo->dirTimerHistoryList, historyInputInfo->abStartSelectHistoryList)) + return historyInputInfo->direction; + } + return 0; +} + +static void Bike_UpdateDirTimerHistory(u8 dir) +{ + u8 i; + + gPlayerAvatar.directionHistory = (gPlayerAvatar.directionHistory << 4) | (dir & 0xF); + + for (i = 7; i != 0; i--) + gPlayerAvatar.dirTimerHistory[i] = gPlayerAvatar.dirTimerHistory[i - 1]; + gPlayerAvatar.dirTimerHistory[0] = 1; +} + +static void Bike_UpdateABStartSelectHistory(u8 input) +{ + u8 i; + + gPlayerAvatar.abStartSelectHistory = (gPlayerAvatar.abStartSelectHistory << 4) | (input & 0xF); + + for (i = 7; i != 0; i--) + gPlayerAvatar.abStartSelectTimerHistory[i] = gPlayerAvatar.abStartSelectTimerHistory[i - 1]; + gPlayerAvatar.abStartSelectTimerHistory[0] = 1; +} + +static u8 Bike_DPadToDirection(u16 heldKeys) +{ + if (heldKeys & DPAD_UP) + return DIR_NORTH; + if (heldKeys & DPAD_DOWN) + return DIR_SOUTH; + if (heldKeys & DPAD_LEFT) + return DIR_WEST; + if (heldKeys & DPAD_RIGHT) + return DIR_EAST; + return DIR_NONE; +} + +static u8 get_some_collision(u8 direction) +{ + s16 x; + s16 y; + u8 metatitleBehavior; + struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId]; + + x = playerMapObj->coords2.x; + y = playerMapObj->coords2.y; + MoveCoords(direction, &x, &y); + metatitleBehavior = MapGridGetMetatileBehaviorAt(x, y); + return Bike_CheckCollisionTryAdvanceCollisionCount(playerMapObj, x, y, direction, metatitleBehavior); +} + +static u8 Bike_CheckCollisionTryAdvanceCollisionCount(struct MapObject *mapObject, s16 x, s16 y, u8 direction, u8 metatitleBehavior) +{ + u8 collision = CheckForFieldObjectCollision(mapObject, x, y, direction, metatitleBehavior); + + if (collision > 4) + return collision; + + if (collision == 0 && IsRunningDisallowedByMetatile(metatitleBehavior)) + collision = 2; + + if (collision) + Bike_TryAdvanceCyclingRoadCollisions(); + + return collision; +} + +bool8 RS_IsRunningDisallowed(u8 tile) +{ + if (IsRunningDisallowedByMetatile(tile) != FALSE || gMapHeader.mapType == MAP_TYPE_INDOOR) + return TRUE; + else + return FALSE; +} + +static bool8 IsRunningDisallowedByMetatile(u8 tile) +{ + if (MetatileBehavior_IsRunningDisallowed(tile)) + return TRUE; + if (MetatileBehavior_IsFortreeBridge(tile) && (PlayerGetZCoord() & 1) == 0) + return TRUE; + return FALSE; +} + +static void Bike_TryAdvanceCyclingRoadCollisions(void) +{ + if (gBikeCyclingChallenge != FALSE && gBikeCollisions < 100) + gBikeCollisions++; +} + +static bool8 CanBikeFaceDirOnMetatile(u8 direction, u8 tile) +{ + if (direction == DIR_EAST || direction == DIR_WEST) + { + // Bike cannot face east or west on a vertical rail + if (MetatileBehavior_IsIsolatedVerticalRail(tile) + || MetatileBehavior_IsVerticalRail(tile)) + return FALSE; + } + else + { + // Bike cannot face north or south on a horizontal rail + if (MetatileBehavior_IsIsolatedHorizontalRail(tile) + || MetatileBehavior_IsHorizontalRail(tile)) + return FALSE; + } + return TRUE; +} + +static bool8 WillPlayerCollideWithCollision(u8 newTileCollision, u8 direction) +{ + if (direction == DIR_NORTH || direction == DIR_SOUTH) + { + if (newTileCollision == 10 || newTileCollision == 12) + return FALSE; + } + else if (newTileCollision == 11 || newTileCollision == 13) + { + return FALSE; + } + + return TRUE; +} + +bool8 IsBikingDisallowedByPlayer(void) +{ + s16 x, y; + u8 tileBehavior; + + if (!(gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_4))) + { + PlayerGetDestCoords(&x, &y); + tileBehavior = MapGridGetMetatileBehaviorAt(x, y); + if (!IsRunningDisallowedByMetatile(tileBehavior)) + return FALSE; + } + return TRUE; +} + +bool8 player_should_look_direction_be_enforced_upon_movement(void) +{ + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE) != FALSE && MetatileBehavior_IsBumpySlope(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E) != FALSE) + return FALSE; + else + return TRUE; +} + +void GetOnOffBike(u8 transitionFlags) +{ + gUnknown_02037348 = FALSE; + + if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE)) + { + SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); + Overworld_ClearSavedMusic(); + Overworld_PlaySpecialMapMusic(); + } + else + { + SetPlayerAvatarTransitionFlags(transitionFlags); + Overworld_SetSavedMusic(BGM_CYCLING); + Overworld_ChangeMusicTo(BGM_CYCLING); + } +} + +void BikeClearState(int newDirHistory, int newAbStartHistory) +{ + u8 i; + + gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL; + gPlayerAvatar.newDirBackup = DIR_NONE; + gPlayerAvatar.bikeFrameCounter = 0; + gPlayerAvatar.bikeSpeed = SPEED_STANDING; + gPlayerAvatar.directionHistory = newDirHistory; + gPlayerAvatar.abStartSelectHistory = newAbStartHistory; + + for (i = 0; i < 8; i++) + gPlayerAvatar.dirTimerHistory[i] = 0; + + for (i = 0; i < 8; i++) + gPlayerAvatar.abStartSelectTimerHistory[i] = 0; +} + +void Bike_UpdateBikeCounterSpeed(u8 counter) +{ + gPlayerAvatar.bikeFrameCounter = counter; + gPlayerAvatar.bikeSpeed = gPlayerAvatar.bikeFrameCounter + (gPlayerAvatar.bikeFrameCounter >> 1); // lazy way of multiplying by 1.5. +} + +static void Bike_SetBikeStill(void) +{ + gPlayerAvatar.bikeFrameCounter = 0; + gPlayerAvatar.bikeSpeed = SPEED_STANDING; +} + +s16 GetPlayerSpeed(void) +{ + // because the player pressed a direction, it won't ever return a speed of 0 since this function returns the player's current speed. + s16 machSpeeds[3]; + + memcpy(machSpeeds, sMachBikeSpeeds, sizeof(machSpeeds)); + + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE) + return machSpeeds[gPlayerAvatar.bikeFrameCounter]; + else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE) + return SPEED_FASTER; + else if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_DASH)) + return SPEED_FAST; + else + return SPEED_NORMAL; +} + +void Bike_HandleBumpySlopeJump(void) +{ + s16 x, y; + u8 tileBehavior; + + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE) + { + PlayerGetDestCoords(&x, &y); + tileBehavior = MapGridGetMetatileBehaviorAt(x, y); + if (MetatileBehavior_IsBumpySlope(tileBehavior)) + { + gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING; + sub_808C1B4(player_get_direction_upper_nybble()); + } + } +} + +bool32 IsRunningDisallowed(u8 metatile) +{ + if (!(gMapHeader.flags & 4) || IsRunningDisallowedByMetatile(metatile) == TRUE) + return TRUE; + else + return FALSE; +} diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 2b88fec3a8..ea5c773999 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -86,7 +86,7 @@ extern void sub_806A068(u16, u8); extern void sub_807F19C(void); extern void sub_807B140(void); extern void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies); -extern void sub_8085784(void); +extern void Overworld_PlaySpecialMapMusic(void); extern void sub_81BFA38(struct Pokemon *party, u8 monId, u8 partyCount, void *CB2_ptr, u16 move); extern u8 sub_81C1B94(void); extern void sub_807F1A8(u8 arg0, const u8 *arg1, u8 arg2); @@ -698,7 +698,7 @@ static void Task_EvolutionScene(u8 taskID) if (!(gTasks[taskID].tBits & TASK_BIT_LEARN_MOVE)) { StopMapMusic(); - sub_8085784(); + Overworld_PlaySpecialMapMusic(); } gTasks[taskID].tBits |= TASK_BIT_LEARN_MOVE; @@ -727,7 +727,7 @@ static void Task_EvolutionScene(u8 taskID) if (!(gTasks[taskID].tBits & TASK_BIT_LEARN_MOVE)) { StopMapMusic(); - sub_8085784(); + Overworld_PlaySpecialMapMusic(); } if (!gTasks[taskID].tEvoWasStopped) CreateShedinja(gTasks[taskID].tPreEvoSpecies, mon); diff --git a/sym_ewram.txt b/sym_ewram.txt index 31ecf20851..c090ad1ae7 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1130,10 +1130,10 @@ gUnknown_0203AB4E: @ 203AB4E gUnknown_0203AB50: @ 203AB50 .space 0x4 -gUnknown_0203AB54: @ 203AB54 +gBikeCyclingChallenge: @ 203AB54 .space 0x1 -gUnknown_0203AB55: @ 203AB55 +gBikeCollisions: @ 203AB55 .space 0x3 gUnknown_0203AB58: @ 203AB58 From 19c25a8f2b3145b6a053cf3af9a76b306dbf3a88 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 21 Dec 2017 22:56:20 +0100 Subject: [PATCH 10/54] start dumping pokedex --- asm/pokedex.s | 10 +- data/pokedex.s | 12 +- include/data/pokedex_orders.h | 1199 +++++++++++++++++++++++++++++++++ ld_script.txt | 2 + src/pokedex.c | 295 ++++++++ 5 files changed, 1504 insertions(+), 14 deletions(-) create mode 100644 include/data/pokedex_orders.h create mode 100644 src/pokedex.c diff --git a/asm/pokedex.s b/asm/pokedex.s index a0edbab0e9..3f7f551789 100644 --- a/asm/pokedex.s +++ b/asm/pokedex.s @@ -2609,7 +2609,7 @@ _080BCACC: movs r7, 0x1 mov r9, r7 _080BCADA: - ldr r1, =gUnknown_0855C6A4 + ldr r1, =gPokedexOrder_Alphabetical lsls r4, 16 asrs r0, r4, 15 adds r0, r1 @@ -2687,7 +2687,7 @@ _080BCB78: ldr r7, =gUnknown_02039B4C ldr r6, =0x0000060c _080BCB82: - ldr r1, =gUnknown_0855C9DA + ldr r1, =gPokedexOrder_Weight asrs r0, 15 adds r0, r1 ldrh r0, [r0] @@ -2752,7 +2752,7 @@ _080BCC08: ldr r0, =0x00000181 mov r9, r0 _080BCC16: - ldr r1, =gUnknown_0855C9DA + ldr r1, =gPokedexOrder_Weight lsls r4, 16 asrs r0, r4, 15 adds r0, r1 @@ -2819,7 +2819,7 @@ _080BCCA0: ldr r7, =gUnknown_02039B4C ldr r6, =0x0000060c _080BCCAA: - ldr r1, =gUnknown_0855CCDE + ldr r1, =gPokedexOrder_Height asrs r0, 15 adds r0, r1 ldrh r0, [r0] @@ -2884,7 +2884,7 @@ _080BCD30: ldr r0, =0x00000181 mov r9, r0 _080BCD3E: - ldr r1, =gUnknown_0855CCDE + ldr r1, =gPokedexOrder_Height lsls r4, 16 asrs r0, r4, 15 adds r0, r1 diff --git a/data/pokedex.s b/data/pokedex.s index 3ba94dbc59..02e8a78a4d 100644 --- a/data/pokedex.s +++ b/data/pokedex.s @@ -3,15 +3,9 @@ .section .rodata .align 2, 0 - -gUnknown_0855C6A4:: @ 855C6A4 - .incbin "baserom.gba", 0x55c6a4, 0x336 - -gUnknown_0855C9DA:: @ 855C9DA - .incbin "baserom.gba", 0x55c9da, 0x304 - -gUnknown_0855CCDE:: @ 855CCDE - .incbin "baserom.gba", 0x55ccde, 0x4b6 + +gUnknown_0855D114:: @ 855D114 + .incbin "baserom.gba", 0x55D114, 0x80 gUnknown_0855D194:: @ 855D194 .incbin "baserom.gba", 0x55d194, 0x18 diff --git a/include/data/pokedex_orders.h b/include/data/pokedex_orders.h new file mode 100644 index 0000000000..61fbd289c3 --- /dev/null +++ b/include/data/pokedex_orders.h @@ -0,0 +1,1199 @@ +#ifndef GUARD_DATA_POKEDEX_ORDERS +#define GUARD_DATA_POKEDEX_ORDERS + +const u16 gPokedexOrder_Alphabetical[] = +{ + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 63, // Abra + 359, // Absol + 142, // Aerodactyl + 306, // Aggron + 190, // Aipom + 65, // Alakazam + 334, // Altaria + 181, // Ampharos + 347, // Anorith + 24, // Arbok + 59, // Arcanine + 168, // Ariados + 348, // Armaldo + 304, // Aron + 144, // Articuno + 184, // Azumarill + 298, // Azurill + 371, // Bagon + 343, // Baltoy + 354, // Banette + 339, // Barboach + 153, // Bayleef + 267, // Beautifly + 15, // Beedrill + 374, // Beldum + 182, // Bellossom + 69, // Bellsprout + 9, // Blastoise + 257, // Blaziken + 242, // Blissey + 286, // Breloom + 1, // Bulbasaur + 12, // Butterfree + 331, // Cacnea + 332, // Cacturne + 323, // Camerupt + 318, // Carvanha + 268, // Cascoon + 351, // Castform + 10, // Caterpie + 251, // Celebi + 113, // Chansey + 6, // Charizard + 4, // Charmander + 5, // Charmeleon + 152, // Chikorita + 358, // Chimecho + 170, // Chinchou + 366, // Clamperl + 344, // Claydol + 36, // Clefable + 35, // Clefairy + 173, // Cleffa + 91, // Cloyster + 256, // Combusken + 341, // Corphish + 222, // Corsola + 346, // Cradily + 342, // Crawdaunt + 169, // Crobat + 159, // Croconaw + 104, // Cubone + 155, // Cyndaquil + 301, // Delcatty + 225, // Delibird + 386, // Deoxys + 87, // Dewgong + 50, // Diglett + 132, // Ditto + 85, // Dodrio + 84, // Doduo + 232, // Donphan + 148, // Dragonair + 149, // Dragonite + 147, // Dratini + 96, // Drowzee + 51, // Dugtrio + 206, // Dunsparce + 356, // Dusclops + 355, // Duskull + 269, // Dustox + 133, // Eevee + 23, // Ekans + 125, // Electabuzz + 309, // Electrike + 101, // Electrode + 239, // Elekid + 244, // Entei + 196, // Espeon + 102, // Exeggcute + 103, // Exeggutor + 295, // Exploud + 83, // Farfetch'd + 22, // Fearow + 349, // Feebas + 160, // Feraligatr + 180, // Flaaffy + 136, // Flareon + 330, // Flygon + 205, // Forretress + 162, // Furret + 282, // Gardevoir + 92, // Gastly + 94, // Gengar + 74, // Geodude + 203, // Girafarig + 362, // Glalie + 207, // Gligar + 44, // Gloom + 42, // Golbat + 118, // Goldeen + 55, // Golduck + 76, // Golem + 368, // Gorebyss + 210, // Granbull + 75, // Graveler + 88, // Grimer + 383, // Groudon + 253, // Grovyle + 58, // Growlithe + 326, // Grumpig + 316, // Gulpin + 130, // Gyarados + 297, // Hariyama + 93, // Haunter + 214, // Heracross + 107, // Hitmonchan + 106, // Hitmonlee + 237, // Hitmontop + 250, // Ho-Oh + 163, // Hoothoot + 187, // Hoppip + 116, // Horsea + 229, // Houndoom + 228, // Houndour + 367, // Huntail + 97, // Hypno + 174, // Igglybuff + 314, // Illumise + 2, // Ivysaur + 39, // Jigglypuff + 385, // Jirachi + 135, // Jolteon + 189, // Jumpluff + 124, // Jynx + 140, // Kabuto + 141, // Kabutops + 64, // Kadabra + 14, // Kakuna + 115, // Kangaskhan + 352, // Kecleon + 230, // Kingdra + 99, // Kingler + 281, // Kirlia + 109, // Koffing + 98, // Krabby + 382, // Kyogre + 305, // Lairon + 171, // Lanturn + 131, // Lapras + 246, // Larvitar + 380, // Latias + 381, // Latios + 166, // Ledian + 165, // Ledyba + 108, // Lickitung + 345, // Lileep + 264, // Linoone + 271, // Lombre + 270, // Lotad + 294, // Loudred + 272, // Ludicolo + 249, // Lugia + 337, // Lunatone + 370, // Luvdisc + 68, // Machamp + 67, // Machoke + 66, // Machop + 240, // Magby + 219, // Magcargo + 129, // Magikarp + 126, // Magmar + 81, // Magnemite + 82, // Magneton + 296, // Makuhita + 310, // Manectric + 56, // Mankey + 226, // Mantine + 179, // Mareep + 183, // Marill + 105, // Marowak + 259, // Marshtomp + 284, // Masquerain + 303, // Mawile + 308, // Medicham + 307, // Meditite + 154, // Meganium + 52, // Meowth + 376, // Metagross + 375, // Metang + 11, // Metapod + 151, // Mew + 150, // Mewtwo + 262, // Mightyena + 350, // Milotic + 241, // Miltank + 312, // Minun + 200, // Misdreavus + 146, // Moltres + 122, // Mr. mime + 258, // Mudkip + 89, // Muk + 198, // Murkrow + 177, // Natu + 34, // Nidoking + 31, // Nidoqueen + 29, // Nidoran? + 32, // Nidoran? + 30, // Nidorina + 33, // Nidorino + 290, // Nincada + 38, // Ninetales + 291, // Ninjask + 164, // Noctowl + 299, // Nosepass + 322, // Numel + 274, // Nuzleaf + 224, // Octillery + 43, // Oddish + 138, // Omanyte + 139, // Omastar + 95, // Onix + 46, // Paras + 47, // Parasect + 279, // Pelipper + 53, // Persian + 231, // Phanpy + 172, // Pichu + 18, // Pidgeot + 17, // Pidgeotto + 16, // Pidgey + 25, // Pikachu + 221, // Piloswine + 204, // Pineco + 127, // Pinsir + 311, // Plusle + 186, // Politoed + 60, // Poliwag + 61, // Poliwhirl + 62, // Poliwrath + 77, // Ponyta + 261, // Poochyena + 137, // Porygon + 233, // Porygon2 + 57, // Primeape + 54, // Psyduck + 247, // Pupitar + 195, // Quagsire + 156, // Quilava + 211, // Qwilfish + 26, // Raichu + 243, // Raikou + 280, // Ralts + 78, // Rapidash + 20, // Raticate + 19, // Rattata + 384, // Rayquaza + 378, // Regice + 377, // Regirock + 379, // Registeel + 369, // Relicanth + 223, // Remoraid + 112, // Rhydon + 111, // Rhyhorn + 315, // Roselia + 302, // Sableye + 373, // Salamence + 27, // Sandshrew + 28, // Sandslash + 254, // Sceptile + 212, // Scizor + 123, // Scyther + 117, // Seadra + 119, // Seaking + 364, // Sealeo + 273, // Seedot + 86, // Seel + 161, // Sentret + 336, // Seviper + 319, // Sharpedo + 292, // Shedinja + 372, // Shelgon + 90, // Shellder + 275, // Shiftry + 285, // Shroomish + 213, // Shuckle + 353, // Shuppet + 266, // Silcoon + 227, // Skarmory + 188, // Skiploom + 300, // Skitty + 289, // Slaking + 287, // Slakoth + 80, // Slowbro + 199, // Slowking + 79, // Slowpoke + 218, // Slugma + 235, // Smeargle + 238, // Smoochum + 215, // Sneasel + 143, // Snorlax + 361, // Snorunt + 209, // Snubbull + 338, // Solrock + 21, // Spearow + 363, // Spheal + 167, // Spinarak + 327, // Spinda + 325, // Spoink + 7, // Squirtle + 234, // Stantler + 121, // Starmie + 120, // Staryu + 208, // Steelix + 185, // Sudowoodo + 245, // Suicune + 192, // Sunflora + 191, // Sunkern + 283, // Surskit + 333, // Swablu + 317, // Swalot + 260, // Swampert + 277, // Swellow + 220, // Swinub + 276, // Taillow + 114, // Tangela + 128, // Tauros + 216, // Teddiursa + 72, // Tentacool + 73, // Tentacruel + 175, // Togepi + 176, // Togetic + 255, // Torchic + 324, // Torkoal + 158, // Totodile + 328, // Trapinch + 252, // Treecko + 357, // Tropius + 157, // Typhlosion + 248, // Tyranitar + 236, // Tyrogue + 197, // Umbreon + 201, // Unown + 217, // Ursaring + 134, // Vaporeon + 49, // Venomoth + 48, // Venonat + 3, // Venusaur + 329, // Vibrava + 71, // Victreebel + 288, // Vigoroth + 45, // Vileplume + 313, // Volbeat + 100, // Voltorb + 37, // Vulpix + 320, // Wailmer + 321, // Wailord + 365, // Walrein + 8, // Wartortle + 13, // Weedle + 70, // Weepinbell + 110, // Weezing + 340, // Whiscash + 293, // Whismur + 40, // Wigglytuff + 278, // Wingull + 202, // Wobbuffet + 194, // Wooper + 265, // Wurmple + 360, // Wynaut + 178, // Xatu + 193, // Yanma + 335, // Zangoose + 145, // Zapdos + 263, // Zigzagoon + 41, // Zubat +}; + +const u16 gPokedexOrder_Weight[] = +{ + 92, // Gastly + 93, // Haunter + 187, // Hoppip + 50, // Diglett + 351, // Castform + 109, // Koffing + 174, // Igglybuff + 200, // Misdreavus + 358, // Chimecho + 188, // Skiploom + 385, // Jirachi + 333, // Swablu + 292, // Shedinja + 175, // Togepi + 283, // Surskit + 16, // Pidgey + 191, // Sunkern + 339, // Barboach + 172, // Pichu + 298, // Azurill + 315, // Roselia + 177, // Natu + 21, // Spearow + 198, // Murkrow + 353, // Shuppet + 276, // Taillow + 102, // Exeggcute + 255, // Torchic + 270, // Lotad + 10, // Caterpie + 189, // Jumpluff + 173, // Cleffa + 13, // Weedle + 176, // Togetic + 147, // Dratini + 19, // Rattata + 284, // Masquerain + 265, // Wurmple + 211, // Qwilfish + 151, // Mew + 90, // Shellder + 273, // Seedot + 132, // Ditto + 69, // Bellsprout + 311, // Plusle + 52, // Meowth + 312, // Minun + 285, // Shroomish + 251, // Celebi + 222, // Corsola + 252, // Treecko + 327, // Spinda + 201, // Unown + 46, // Paras + 43, // Oddish + 39, // Jigglypuff + 290, // Nincada + 182, // Bellossom + 81, // Magnemite + 25, // Pikachu + 238, // Smoochum + 161, // Sentret + 70, // Weepinbell + 152, // Chikorita + 220, // Swinub + 133, // Eevee + 98, // Krabby + 104, // Cubone + 280, // Ralts + 1, // Bulbasaur + 23, // Ekans + 29, // Nidoran? + 204, // Pineco + 349, // Feebas + 138, // Omanyte + 41, // Zubat + 35, // Clefairy + 258, // Mudkip + 209, // Snubbull + 179, // Mareep + 155, // Cyndaquil + 116, // Horsea + 4, // Charmander + 192, // Sunflora + 183, // Marill + 194, // Wooper + 167, // Spinarak + 44, // Gloom + 370, // Luvdisc + 216, // Teddiursa + 32, // Nidoran? + 7, // Squirtle + 278, // Wingull + 158, // Totodile + 110, // Weezing + 37, // Vulpix + 11, // Metapod + 266, // Silcoon + 129, // Magikarp + 14, // Kakuna + 316, // Gulpin + 100, // Voltorb + 165, // Ledyba + 228, // Houndour + 300, // Skitty + 302, // Sableye + 307, // Meditite + 341, // Corphish + 190, // Aipom + 268, // Cascoon + 303, // Mawile + 140, // Kabuto + 40, // Wigglytuff + 27, // Sandshrew + 223, // Remoraid + 291, // Ninjask + 170, // Chinchou + 60, // Poliwag + 347, // Anorith + 49, // Venomoth + 354, // Banette + 2, // Ivysaur + 180, // Flaaffy + 261, // Poochyena + 360, // Wynaut + 206, // Dunsparce + 178, // Xatu + 355, // Duskull + 83, // Farfetch'd + 328, // Trapinch + 118, // Goldeen + 309, // Electrike + 329, // Vibrava + 71, // Victreebel + 153, // Bayleef + 225, // Delibird + 293, // Whismur + 148, // Dragonair + 361, // Snorunt + 263, // Zigzagoon + 314, // Illumise + 313, // Volbeat + 20, // Raticate + 45, // Vileplume + 156, // Quilava + 5, // Charmeleon + 58, // Growlithe + 256, // Combusken + 66, // Machop + 63, // Abra + 33, // Nidorino + 54, // Psyduck + 277, // Swellow + 38, // Ninetales + 30, // Nidorina + 61, // Poliwhirl + 74, // Geodude + 281, // Kirlia + 213, // Shuckle + 334, // Altaria + 318, // Carvanha + 236, // Tyrogue + 163, // Hoothoot + 240, // Magby + 343, // Baltoy + 253, // Grovyle + 352, // Kecleon + 171, // Lanturn + 8, // Wartortle + 368, // Gorebyss + 369, // Relicanth + 239, // Elekid + 340, // Whiscash + 345, // Lileep + 322, // Numel + 287, // Slakoth + 135, // Jolteon + 159, // Croconaw + 136, // Flareon + 117, // Seadra + 196, // Espeon + 367, // Huntail + 197, // Umbreon + 259, // Marshtomp + 274, // Nuzleaf + 215, // Sneasel + 56, // Mankey + 279, // Pelipper + 267, // Beautifly + 224, // Octillery + 184, // Azumarill + 202, // Wobbuffet + 134, // Vaporeon + 28, // Sandslash + 47, // Parasect + 15, // Beedrill + 89, // Muk + 17, // Pidgeotto + 88, // Grimer + 26, // Raichu + 77, // Ponyta + 125, // Electabuzz + 48, // Venonat + 325, // Spoink + 356, // Dusclops + 308, // Medicham + 269, // Dustox + 53, // Persian + 12, // Butterfree + 57, // Primeape + 96, // Drowzee + 162, // Furret + 233, // Porygon2 + 271, // Lombre + 264, // Linoone + 301, // Delcatty + 342, // Crawdaunt + 51, // Dugtrio + 168, // Ariados + 231, // Phanpy + 186, // Politoed + 120, // Staryu + 113, // Chansey + 139, // Omastar + 114, // Tangela + 218, // Slugma + 229, // Houndoom + 166, // Ledian + 79, // Slowpoke + 137, // Porygon + 262, // Mightyena + 193, // Yanma + 22, // Fearow + 185, // Sudowoodo + 119, // Seaking + 286, // Breloom + 84, // Doduo + 18, // Pidgeot + 363, // Spheal + 36, // Clefable + 380, // Latias + 310, // Manectric + 335, // Zangoose + 141, // Kabutops + 94, // Gengar + 294, // Loudred + 124, // Jynx + 164, // Noctowl + 203, // Girafarig + 371, // Bagon + 126, // Magmar + 105, // Marowak + 72, // Tentacool + 288, // Vigoroth + 242, // Blissey + 359, // Absol + 65, // Alakazam + 237, // Hitmontop + 282, // Gardevoir + 210, // Granbull + 106, // Hitmonlee + 107, // Hitmonchan + 227, // Skarmory + 331, // Cacnea + 257, // Blaziken + 254, // Sceptile + 336, // Seviper + 366, // Clamperl + 145, // Zapdos + 214, // Heracross + 62, // Poliwrath + 122, // Mr. mime + 127, // Pinsir + 272, // Ludicolo + 73, // Tentacruel + 42, // Golbat + 219, // Magcargo + 144, // Articuno + 221, // Piloswine + 123, // Scyther + 64, // Kadabra + 235, // Smeargle + 142, // Aerodactyl + 275, // Shiftry + 99, // Kingler + 31, // Nidoqueen + 82, // Magneton + 304, // Aron + 381, // Latios + 146, // Moltres + 346, // Cradily + 386, // Deoxys + 181, // Ampharos + 34, // Nidoking + 207, // Gligar + 24, // Arbok + 108, // Lickitung + 101, // Electrode + 348, // Armaldo + 67, // Machoke + 234, // Stantler + 326, // Grumpig + 246, // Larvitar + 169, // Crobat + 195, // Quagsire + 241, // Miltank + 97, // Hypno + 55, // Golduck + 332, // Cacturne + 80, // Slowbro + 157, // Typhlosion + 199, // Slowking + 115, // Kangaskhan + 121, // Starmie + 317, // Swalot + 324, // Torkoal + 260, // Swampert + 330, // Flygon + 295, // Exploud + 85, // Dodrio + 9, // Blastoise + 296, // Makuhita + 364, // Sealeo + 128, // Tauros + 319, // Sharpedo + 160, // Feraligatr + 86, // Seel + 6, // Charizard + 78, // Rapidash + 374, // Beldum + 299, // Nosepass + 3, // Venusaur + 357, // Tropius + 154, // Meganium + 373, // Salamence + 75, // Graveler + 344, // Claydol + 372, // Shelgon + 111, // Rhyhorn + 212, // Scizor + 87, // Dewgong + 112, // Rhydon + 232, // Donphan + 103, // Exeggutor + 305, // Lairon + 150, // Mewtwo + 217, // Ursaring + 205, // Forretress + 68, // Machamp + 320, // Wailmer + 289, // Slaking + 91, // Cloyster + 365, // Walrein + 247, // Pupitar + 230, // Kingdra + 338, // Solrock + 59, // Arcanine + 350, // Milotic + 337, // Lunatone + 378, // Regice + 243, // Raikou + 245, // Suicune + 244, // Entei + 250, // Ho-Oh + 248, // Tyranitar + 375, // Metang + 379, // Registeel + 384, // Rayquaza + 95, // Onix + 149, // Dragonite + 249, // Lugia + 131, // Lapras + 323, // Camerupt + 226, // Mantine + 377, // Regirock + 130, // Gyarados + 297, // Hariyama + 362, // Glalie + 76, // Golem + 382, // Kyogre + 306, // Aggron + 321, // Wailord + 208, // Steelix + 143, // Snorlax + 376, // Metagross + 383, // Groudon +}; + +const u16 gPokedexOrder_Height[] = +{ + 50, // Diglett + 298, // Azurill + 177, // Natu + 13, // Weedle + 172, // Pichu + 173, // Cleffa + 175, // Togepi + 351, // Castform + 174, // Igglybuff + 10, // Caterpie + 276, // Taillow + 132, // Ditto + 133, // Eevee + 315, // Roselia + 21, // Spearow + 16, // Pidgey + 191, // Sunkern + 90, // Shellder + 19, // Rattata + 81, // Magnemite + 46, // Paras + 265, // Wurmple + 385, // Jirachi + 104, // Cubone + 258, // Mudkip + 194, // Wooper + 116, // Horsea + 52, // Meowth + 29, // Nidoran? + 220, // Swinub + 151, // Mew + 333, // Swablu + 304, // Aron + 311, // Plusle + 312, // Minun + 102, // Exeggcute + 25, // Pikachu + 182, // Bellossom + 316, // Gulpin + 263, // Zigzagoon + 285, // Shroomish + 138, // Omanyte + 331, // Cacnea + 98, // Krabby + 280, // Ralts + 187, // Hoppip + 255, // Torchic + 366, // Clamperl + 74, // Geodude + 183, // Marill + 339, // Barboach + 238, // Smoochum + 100, // Voltorb + 290, // Nincada + 302, // Sableye + 198, // Murkrow + 211, // Qwilfish + 7, // Squirtle + 252, // Treecko + 343, // Baltoy + 43, // Oddish + 270, // Lotad + 39, // Jigglypuff + 283, // Surskit + 155, // Cyndaquil + 140, // Kabuto + 264, // Linoone + 324, // Torkoal + 32, // Nidoran? + 167, // Spinarak + 56, // Mankey + 273, // Seedot + 261, // Poochyena + 231, // Phanpy + 201, // Unown + 170, // Chinchou + 233, // Porygon2 + 60, // Poliwag + 371, // Bagon + 349, // Feebas + 353, // Shuppet + 158, // Totodile + 251, // Celebi + 360, // Wynaut + 27, // Sandshrew + 358, // Chimecho + 370, // Luvdisc + 228, // Houndour + 266, // Silcoon + 309, // Electrike + 4, // Charmander + 307, // Meditite + 278, // Wingull + 223, // Remoraid + 341, // Corphish + 222, // Corsola + 314, // Illumise + 209, // Snubbull + 37, // Vulpix + 246, // Larvitar + 374, // Beldum + 293, // Whismur + 204, // Pineco + 239, // Elekid + 35, // Clefairy + 213, // Shuckle + 216, // Teddiursa + 14, // Kakuna + 300, // Skitty + 176, // Togetic + 118, // Goldeen + 303, // Mawile + 179, // Mareep + 188, // Skiploom + 109, // Koffing + 51, // Dugtrio + 268, // Cascoon + 322, // Numel + 347, // Anorith + 313, // Volbeat + 163, // Hoothoot + 328, // Trapinch + 325, // Spoink + 11, // Metapod + 69, // Bellsprout + 361, // Snorunt + 20, // Raticate + 259, // Marshtomp + 277, // Swellow + 240, // Magby + 58, // Growlithe + 200, // Misdreavus + 1, // Bulbasaur + 236, // Tyrogue + 218, // Slugma + 287, // Slakoth + 281, // Kirlia + 190, // Aipom + 135, // Jolteon + 30, // Nidorina + 184, // Azumarill + 292, // Shedinja + 66, // Machop + 291, // Ninjask + 284, // Masquerain + 355, // Duskull + 192, // Sunflora + 189, // Jumpluff + 120, // Staryu + 180, // Flaaffy + 363, // Spheal + 54, // Psyduck + 219, // Magcargo + 83, // Farfetch'd + 41, // Zubat + 137, // Porygon + 161, // Sentret + 318, // Carvanha + 44, // Gloom + 26, // Raichu + 129, // Magikarp + 215, // Sneasel + 305, // Lairon + 256, // Combusken + 224, // Octillery + 33, // Nidorino + 136, // Flareon + 225, // Delibird + 72, // Tentacool + 63, // Abra + 253, // Grovyle + 340, // Whiscash + 156, // Quilava + 196, // Espeon + 88, // Grimer + 152, // Chikorita + 326, // Grumpig + 299, // Nosepass + 53, // Persian + 262, // Mightyena + 48, // Venonat + 82, // Magneton + 77, // Ponyta + 296, // Makuhita + 337, // Lunatone + 28, // Sandslash + 96, // Drowzee + 114, // Tangela + 57, // Primeape + 165, // Ledyba + 40, // Wigglytuff + 47, // Parasect + 139, // Omastar + 294, // Loudred + 8, // Wartortle + 75, // Graveler + 197, // Umbreon + 345, // Lileep + 61, // Poliwhirl + 134, // Vaporeon + 15, // Beedrill + 105, // Marowak + 70, // Weepinbell + 369, // Relicanth + 111, // Rhyhorn + 2, // Ivysaur + 352, // Kecleon + 274, // Nuzleaf + 267, // Beautifly + 17, // Pidgeotto + 168, // Ariados + 86, // Seel + 186, // Politoed + 159, // Croconaw + 113, // Chansey + 354, // Banette + 232, // Donphan + 121, // Starmie + 5, // Charmeleon + 221, // Piloswine + 12, // Butterfree + 329, // Vibrava + 125, // Electabuzz + 342, // Crawdaunt + 301, // Delcatty + 334, // Altaria + 372, // Shelgon + 38, // Ninetales + 207, // Gligar + 364, // Sealeo + 327, // Spinda + 247, // Pupitar + 79, // Slowpoke + 338, // Solrock + 241, // Miltank + 22, // Fearow + 45, // Vileplume + 89, // Muk + 205, // Forretress + 185, // Sudowoodo + 359, // Absol + 193, // Yanma + 269, // Dustox + 108, // Lickitung + 235, // Smeargle + 171, // Lanturn + 101, // Electrode + 271, // Lombre + 286, // Breloom + 153, // Bayleef + 117, // Seadra + 110, // Weezing + 279, // Pelipper + 375, // Metang + 31, // Nidoqueen + 332, // Cacturne + 275, // Shiftry + 308, // Medicham + 335, // Zangoose + 141, // Kabutops + 99, // Kingler + 64, // Kadabra + 119, // Seaking + 36, // Clefable + 126, // Magmar + 202, // Wobbuffet + 92, // Gastly + 122, // Mr. mime + 62, // Poliwrath + 128, // Tauros + 380, // Latias + 181, // Ampharos + 288, // Vigoroth + 166, // Ledian + 76, // Golem + 365, // Walrein + 84, // Doduo + 229, // Houndoom + 34, // Nidoking + 124, // Jynx + 107, // Hitmonchan + 234, // Stantler + 210, // Granbull + 237, // Hitmontop + 195, // Quagsire + 344, // Claydol + 260, // Swampert + 242, // Blissey + 272, // Ludicolo + 295, // Exploud + 206, // Dunsparce + 127, // Pinsir + 91, // Cloyster + 67, // Machoke + 203, // Girafarig + 18, // Pidgeot + 178, // Xatu + 346, // Cradily + 106, // Hitmonlee + 49, // Venomoth + 94, // Gengar + 214, // Heracross + 362, // Glalie + 123, // Scyther + 373, // Salamence + 310, // Manectric + 348, // Armaldo + 65, // Alakazam + 97, // Hypno + 164, // Noctowl + 73, // Tentacruel + 356, // Dusclops + 145, // Zapdos + 42, // Golbat + 376, // Metagross + 282, // Gardevoir + 9, // Blastoise + 80, // Slowbro + 93, // Haunter + 68, // Machamp + 377, // Regirock + 317, // Swalot + 254, // Sceptile + 227, // Skarmory + 55, // Golduck + 386, // Deoxys + 71, // Victreebel + 78, // Rapidash + 6, // Charizard + 367, // Huntail + 87, // Dewgong + 144, // Articuno + 157, // Typhlosion + 142, // Aerodactyl + 368, // Gorebyss + 217, // Ursaring + 154, // Meganium + 378, // Regice + 212, // Scizor + 230, // Kingdra + 147, // Dratini + 85, // Dodrio + 319, // Sharpedo + 169, // Crobat + 162, // Furret + 59, // Arcanine + 243, // Raikou + 257, // Blaziken + 323, // Camerupt + 112, // Rhydon + 379, // Registeel + 23, // Ekans + 330, // Flygon + 357, // Tropius + 381, // Latios + 245, // Suicune + 146, // Moltres + 3, // Venusaur + 103, // Exeggutor + 199, // Slowking + 248, // Tyranitar + 289, // Slaking + 320, // Wailmer + 150, // Mewtwo + 306, // Aggron + 143, // Snorlax + 226, // Mantine + 244, // Entei + 149, // Dragonite + 115, // Kangaskhan + 297, // Hariyama + 160, // Feraligatr + 131, // Lapras + 336, // Seviper + 24, // Arbok + 383, // Groudon + 250, // Ho-Oh + 148, // Dragonair + 382, // Kyogre + 249, // Lugia + 350, // Milotic + 130, // Gyarados + 384, // Rayquaza + 95, // Onix + 208, // Steelix + 321, // Wailord +}; + +#endif // GUARD_DATA_POKEDEX_ORDERS diff --git a/ld_script.txt b/ld_script.txt index 508265cbff..f5b7ab94c5 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -127,6 +127,7 @@ SECTIONS { asm/field_effect.o(.text); asm/unknown_task.o(.text); asm/option_menu.o(.text); + src/pokedex.o(.text); asm/pokedex.o(.text); asm/trainer_card.o(.text); src/pokemon_storage_system.o(.text); @@ -383,6 +384,7 @@ SECTIONS { data/wild_encounter.o(.rodata); data/field_effect.o(.rodata); data/option_menu.o(.rodata); + src/pokedex.o(.rodata); data/pokedex.o(.rodata); data/trainer_card.o(.rodata); data/pokemon_storage_system.o(.rodata); diff --git a/src/pokedex.c b/src/pokedex.c new file mode 100644 index 0000000000..97716ef8a0 --- /dev/null +++ b/src/pokedex.c @@ -0,0 +1,295 @@ +#include "global.h" +#include "gba/m4a_internal.h" +#include "pokedex.h" + +#include "data/pokedex_orders.h" + +static const struct OamData gOamData_83A0404 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A040C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A0414 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A041C = +{ + .y = 160, + .affineMode = 0, + .objMode = 2, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A0424 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; +static const struct OamData gOamData_83A042C = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 2, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + + +static const union AnimCmd sSpriteAnim_855D014[] = +{ + ANIMCMD_FRAME(3, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D01C[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D024[] = +{ + ANIMCMD_FRAME(16, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D02C[] = +{ + ANIMCMD_FRAME(48, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D034[] = +{ + ANIMCMD_FRAME(40, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D03C[] = +{ + ANIMCMD_FRAME(32, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D044[] = +{ + ANIMCMD_FRAME(56, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D04C[] = +{ + ANIMCMD_FRAME(64, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D054[] = +{ + ANIMCMD_FRAME(96, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D05C[] = +{ + ANIMCMD_FRAME(160, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D064[] = +{ + ANIMCMD_FRAME(168, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D06C[] = +{ + ANIMCMD_FRAME(128, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D074[] = +{ + ANIMCMD_FRAME(130, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D07C[] = +{ + ANIMCMD_FRAME(132, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D084[] = +{ + ANIMCMD_FRAME(134, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D08C[] = +{ + ANIMCMD_FRAME(136, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D094[] = +{ + ANIMCMD_FRAME(138, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D09C[] = +{ + ANIMCMD_FRAME(140, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0A4[] = +{ + ANIMCMD_FRAME(142, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0AC[] = +{ + ANIMCMD_FRAME(144, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0B4[] = +{ + ANIMCMD_FRAME(146, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0BC[] = +{ + ANIMCMD_FRAME(176, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0C4[] = +{ + ANIMCMD_FRAME(178, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0CC[] = +{ + ANIMCMD_FRAME(180, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0D4[] = +{ + ANIMCMD_FRAME(182, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0DC[] = +{ + ANIMCMD_FRAME(184, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0E4[] = +{ + ANIMCMD_FRAME(186, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0EC[] = +{ + ANIMCMD_FRAME(188, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0F4[] = +{ + ANIMCMD_FRAME(190, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D0FC[] = +{ + ANIMCMD_FRAME(192, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D104[] = +{ + ANIMCMD_FRAME(194, 30), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_855D10C[] = +{ + ANIMCMD_FRAME(4, 30), + ANIMCMD_END +}; From 08ebf59e4441c8006f9f96ba189d53cd51a864c8 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 22 Dec 2017 18:43:41 +0100 Subject: [PATCH 11/54] get rid of pointers in pokedex --- asm/pokedex.s | 18 +-- data/graphics.s | 11 +- data/pokedex.s | 195 +++++++++++++++++++++++--------- include/graphics.h | 3 + src/pokedex.c | 273 ++++++++++++++++++++++++++++++++++++++++++--- 5 files changed, 419 insertions(+), 81 deletions(-) diff --git a/asm/pokedex.s b/asm/pokedex.s index 3f7f551789..ac35c3f7b8 100644 --- a/asm/pokedex.s +++ b/asm/pokedex.s @@ -2028,7 +2028,7 @@ _080BC56E: bl SetGpuReg movs r0, 0 bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_0855D298 + ldr r1, =gBgTemplates_0855D298 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates @@ -2119,7 +2119,7 @@ _080BC682: lsls r0, 31 lsrs r0, 31 bl sub_80BC844 - ldr r0, =gUnknown_0855D2A8 + ldr r0, =sWindowTemplates_0855D2A8 bl InitWindows bl DeactivateAllTextPrinters movs r0, 0 @@ -2141,9 +2141,9 @@ _080BC6CC: ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] - ldr r0, =gUnknown_0855D26C + ldr r0, =gSpriteSheets_0855D26C bl LoadCompressedObjectPic - ldr r0, =gUnknown_0855D27C + ldr r0, =gSpritePalettes_0855D26C bl LoadSpritePalettes adds r0, r5, 0 bl sub_80BDB7C @@ -2298,7 +2298,7 @@ _080BC858: bl IsNationalPokedexEnabled cmp r0, 0 bne _080BC870 - ldr r0, =gUnknown_08DC16F6 + ldr r0, =gUnknown_08DC16F4 + 2 _080BC862: movs r1, 0x1 movs r2, 0xBE @@ -3517,7 +3517,7 @@ sub_80BD23C: @ 80BD23C b _080BD266 .pool _080BD264: - ldr r4, =gUnknown_0855D2FE + ldr r4, =sText_TenDashes _080BD266: str r5, [sp] movs r0, 0 @@ -8751,7 +8751,7 @@ _080C00E8: ands r1, r0 cmp r1, 0 beq _080C0114 - ldr r0, =gUnknown_08DC16F6 + ldr r0, =gUnknown_08DC16F4 + 2 movs r1, 0x31 movs r2, 0xE bl LoadPalette @@ -11172,9 +11172,9 @@ _080C13F0: b _080C1516 .pool _080C1414: - ldr r0, =gUnknown_0855D26C + ldr r0, =gSpriteSheets_0855D26C bl LoadCompressedObjectPic - ldr r0, =gUnknown_0855D27C + ldr r0, =gSpritePalettes_0855D26C bl LoadSpritePalettes adds r0, r4, 0 bl sub_80C2594 diff --git a/data/graphics.s b/data/graphics.s index aebe350936..0c0ff93195 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1217,10 +1217,10 @@ gUnknown_08DC0754:: @ 8DC0754 .incbin "baserom.gba", 0xdc0754, 0x440 gUnknown_08DC0B94:: @ 8DC0B94 - .incbin "baserom.gba", 0xdc0b94, 0xb62 + .incbin "baserom.gba", 0xdc0b94, 0xb60 -gUnknown_08DC16F6:: @ 8DC16F6 - .incbin "baserom.gba", 0xdc16f6, 0x60 +gUnknown_08DC16F4:: @ 8DC16F4 + .incbin "baserom.gba", 0xdc16f4, 0x62 gUnknown_08DC1756:: @ 8DC1756 .incbin "baserom.gba", 0xdc1756, 0x60 @@ -1232,7 +1232,10 @@ gUnknown_08DC1876:: @ 8DC1876 .incbin "baserom.gba", 0xdc1876, 0xbe gUnknown_08DC1934:: @ 8DC1934 - .incbin "baserom.gba", 0xdc1934, 0x10d4 + .incbin "baserom.gba", 0xdc1934, 0xA18 + +gUnknown_08DC234C:: @ 8DC234C + .incbin "baserom.gba", 0xDC234C, 0x6BC gUnknown_08DC2A08:: @ 8DC2A08 .incbin "baserom.gba", 0xdc2a08, 0x114 diff --git a/data/pokedex.s b/data/pokedex.s index 02e8a78a4d..d0c286ab6d 100644 --- a/data/pokedex.s +++ b/data/pokedex.s @@ -4,53 +4,23 @@ .section .rodata .align 2, 0 -gUnknown_0855D114:: @ 855D114 - .incbin "baserom.gba", 0x55D114, 0x80 +.macro unk_dex_struct texts, a2, a3, a4 + .4byte \texts + .byte \a2, \a3, \a4 + .byte 0 @padding +.endm -gUnknown_0855D194:: @ 855D194 - .incbin "baserom.gba", 0x55d194, 0x18 +.macro unk_dex_struct_2 text, a2, a3, a4, a5, a6, a7 + .4byte \text + .byte \a2, \a3, \a4, \a5, \a6, \a7 + .2byte 0 @padding +.endm -gUnknown_0855D1AC:: @ 855D1AC - .incbin "baserom.gba", 0x55d1ac, 0x18 - -gUnknown_0855D1C4:: @ 855D1C4 - .incbin "baserom.gba", 0x55d1c4, 0x18 - -gUnknown_0855D1DC:: @ 855D1DC - .incbin "baserom.gba", 0x55d1dc, 0x18 - -gUnknown_0855D1F4:: @ 855D1F4 - .incbin "baserom.gba", 0x55d1f4, 0x18 - -gUnknown_0855D20C:: @ 855D20C - .incbin "baserom.gba", 0x55d20c, 0x18 - -gUnknown_0855D224:: @ 855D224 - .incbin "baserom.gba", 0x55d224, 0x18 - -gUnknown_0855D23C:: @ 855D23C - .incbin "baserom.gba", 0x55d23c, 0x18 - -gUnknown_0855D254:: @ 855D254 - .incbin "baserom.gba", 0x55d254, 0x18 - -gUnknown_0855D26C:: @ 855D26C - .incbin "baserom.gba", 0x55d26c, 0x10 - -gUnknown_0855D27C:: @ 855D27C - .incbin "baserom.gba", 0x55d27c, 0x10 - -gUnknown_0855D28C:: @ 855D28C - .incbin "baserom.gba", 0x55d28c, 0x5 - -gUnknown_0855D291:: @ 855D291 - .incbin "baserom.gba", 0x55d291, 0x7 - -gUnknown_0855D298:: @ 855D298 - .incbin "baserom.gba", 0x55d298, 0x10 - -gUnknown_0855D2A8:: @ 855D2A8 - .incbin "baserom.gba", 0x55d2a8, 0x10 +.macro unk_dex_struct_3 text, a2, a3, a4 + .4byte \text + .byte \a2, \a3, \a4 + .byte 0 @padding +.endm gUnknown_0855D2B8:: @ 855D2B8 .incbin "baserom.gba", 0x55d2b8, 0x6 @@ -58,8 +28,10 @@ gUnknown_0855D2B8:: @ 855D2B8 gUnknown_0855D2BE:: @ 855D2BE .incbin "baserom.gba", 0x55d2be, 0x40 -gUnknown_0855D2FE:: @ 855D2FE - .incbin "baserom.gba", 0x55d2fe, 0xe +sText_TenDashes:: @ 855D2FE + .string "----------$" + +.align 2 gUnknown_0855D30C:: @ 855D30C .string "$" @@ -95,10 +67,18 @@ gUnknown_0856ED08:: @ 856ED08 .incbin "baserom.gba", 0x56ed08, 0x28 gUnknown_0856ED30:: @ 856ED30 - .incbin "baserom.gba", 0x56ed30, 0x18 + unk_dex_struct_3 gUnknown_085E87A5, 0, 0, 5 + unk_dex_struct_3 gUnknown_085E87D6, 6, 0, 5 + unk_dex_struct_3 gUnknown_085E87EF, 12, 0, 5 gUnknown_0856ED48:: @ 856ED48 - .incbin "baserom.gba", 0x56ed48, 0x54 + unk_dex_struct_2 gUnknown_085E8840, 0, 2, 5, 5, 2, 12 + unk_dex_struct_2 gUnknown_085E887C, 0, 4, 5, 5, 4, 12 + unk_dex_struct_2 gUnknown_085E88A6, 0, 6, 5, 5, 6, 6 + unk_dex_struct_2 gUnknown_085E88A6, 0, 6, 5, 11, 6, 6 + unk_dex_struct_2 gUnknown_085E881F, 0, 8, 5, 5, 8, 12 + unk_dex_struct_2 gUnknown_085E8806, 0, 10, 5, 5, 10, 12 + unk_dex_struct_2 gUnknown_085E88C8, 0, 12, 5, 0, 0, 0 gUnknown_0856ED9C:: @ 856ED9C .incbin "baserom.gba", 0x56ed9c, 0x1c @@ -113,19 +93,119 @@ gUnknown_0856EDF0:: @ 856EDF0 .incbin "baserom.gba", 0x56edf0, 0x1c gUnknown_0856EE0C:: @ 856EE0C - .incbin "baserom.gba", 0x56ee0c, 0x18 + .4byte gUnknown_085E89A4 + .4byte gUnknown_085E88DF + .4byte gUnknown_085E89BB + .4byte gUnknown_085E88E9 + .4byte NULL + .4byte NULL gUnknown_0856EE24:: @ 856EE24 - .incbin "baserom.gba", 0x56ee24, 0x38 + .4byte gUnknown_085E89D4 + .4byte gUnknown_085E88F6 + .4byte gUnknown_085E8A02 + .4byte gUnknown_085E8905 + .4byte gUnknown_085E8A37 + .4byte gUnknown_085E8911 + .4byte gUnknown_085E8A73 + .4byte gUnknown_085E891F + .4byte gUnknown_085E8AAF + .4byte gUnknown_085E892D + .4byte gUnknown_085E8AEA + .4byte gUnknown_085E893A + .4byte 0 + .4byte 0 gUnknown_0856EE5C:: @ 856EE5C - .incbin "baserom.gba", 0x56ee5c, 0x58 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8B26 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8948 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E894C + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8950 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8954 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8958 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E895C + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8960 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8964 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8968 + .4byte 0 + .4byte 0 gUnknown_0856EEB4:: @ 856EEB4 - .incbin "baserom.gba", 0x56eeb4, 0x60 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8B26 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E896B + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E896F + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8974 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E897B + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8981 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8987 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E898D + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8994 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8999 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E899F + .4byte 0 + .4byte 0 +@ read from type table for each type except ???, entry is 7 byte of length gUnknown_0856EF14:: @ 856EF14 - .incbin "baserom.gba", 0x56ef14, 0x98 + .4byte gUnknown_085E8B25 + .4byte gUnknown_085E8B35 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 0 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 7 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 14 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 21 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 28 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 35 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 42 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 49 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 56 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 70 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 77 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 84 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 91 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 98 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 105 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 112 + .4byte gUnknown_085E8B25 + .4byte gTypeNames + 119 + .4byte 0 + .4byte 0 gUnknown_0856EFAC:: @ 856EFAC .incbin "baserom.gba", 0x56efac, 0x2 @@ -137,7 +217,12 @@ gUnknown_0856EFB4:: @ 856EFB4 .incbin "baserom.gba", 0x56efb4, 0x14 gUnknown_0856EFC8:: @ 856EFC8 - .incbin "baserom.gba", 0x56efc8, 0x30 + unk_dex_struct gUnknown_0856EE5C, 6, 7, 10 + unk_dex_struct gUnknown_0856EEB4, 8, 9, 11 + unk_dex_struct gUnknown_0856EF14, 10,11, 18 + unk_dex_struct gUnknown_0856EF14, 12, 13, 18 + unk_dex_struct gUnknown_0856EE24, 4, 5, 6 + unk_dex_struct gUnknown_0856EE0C, 2, 3, 2 gUnknown_0856EFF8:: @ 856EFF8 .incbin "baserom.gba", 0x56eff8, 0x10 diff --git a/include/graphics.h b/include/graphics.h index 0a38c9b82f..8d52c27f1b 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -238,4 +238,7 @@ extern const u8 gBattleTerrainPalette_StadiumGlacia[]; extern const u8 gBattleTerrainPalette_StadiumDrake[]; extern const u8 gBattleTerrainPalette_StadiumWallace[]; +extern const u8 gUnknown_08DC234C[]; +extern const u8 gUnknown_08DC16F4[]; + #endif //GUARD_GRAPHICS_H diff --git a/src/pokedex.c b/src/pokedex.c index 97716ef8a0..964f417162 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1,10 +1,24 @@ #include "global.h" #include "gba/m4a_internal.h" #include "pokedex.h" +#include "sprite.h" +#include "graphics.h" +#include "decompress.h" +#include "bg.h" +#include "window.h" +// this file's functions +void sub_80BE604(struct Sprite *sprite); +void sub_80BE658(struct Sprite *sprite); +void sub_80BE758(struct Sprite *sprite); +void sub_80BE780(struct Sprite *sprite); +void sub_80BE44C(struct Sprite *sprite); +void sub_80BE834(struct Sprite *sprite); + +// const rom data #include "data/pokedex_orders.h" -static const struct OamData gOamData_83A0404 = +static const struct OamData sOamData_855CFE4 = { .y = 160, .affineMode = 0, @@ -18,9 +32,10 @@ static const struct OamData gOamData_83A0404 = .tileNum = 0, .priority = 1, .paletteNum = 0, - .affineParam = 0, + .affineParam = 0 }; -static const struct OamData gOamData_83A040C = + +static const struct OamData sOamData_855CFEC = { .y = 160, .affineMode = 0, @@ -34,9 +49,10 @@ static const struct OamData gOamData_83A040C = .tileNum = 0, .priority = 0, .paletteNum = 0, - .affineParam = 0, + .affineParam = 0 }; -static const struct OamData gOamData_83A0414 = + +static const struct OamData sOamData_855CFF4 = { .y = 160, .affineMode = 0, @@ -50,9 +66,10 @@ static const struct OamData gOamData_83A0414 = .tileNum = 0, .priority = 0, .paletteNum = 0, - .affineParam = 0, + .affineParam = 0 }; -static const struct OamData gOamData_83A041C = + +static const struct OamData sOamData_855CFFC = { .y = 160, .affineMode = 0, @@ -66,9 +83,10 @@ static const struct OamData gOamData_83A041C = .tileNum = 0, .priority = 1, .paletteNum = 0, - .affineParam = 0, + .affineParam = 0 }; -static const struct OamData gOamData_83A0424 = + +static const struct OamData sOamData_855D004 = { .y = 160, .affineMode = 0, @@ -82,9 +100,10 @@ static const struct OamData gOamData_83A0424 = .tileNum = 0, .priority = 0, .paletteNum = 0, - .affineParam = 0, + .affineParam = 0 }; -static const struct OamData gOamData_83A042C = + +static const struct OamData sOamData_855D00C = { .y = 160, .affineMode = 0, @@ -98,10 +117,9 @@ static const struct OamData gOamData_83A042C = .tileNum = 0, .priority = 0, .paletteNum = 0, - .affineParam = 0, + .affineParam = 0 }; - static const union AnimCmd sSpriteAnim_855D014[] = { ANIMCMD_FRAME(3, 30), @@ -293,3 +311,232 @@ static const union AnimCmd sSpriteAnim_855D10C[] = ANIMCMD_FRAME(4, 30), ANIMCMD_END }; + +static const union AnimCmd *const sSpriteAnimTable_855D114[] = +{ + sSpriteAnim_855D014 +}; + +static const union AnimCmd *const sSpriteAnimTable_855D118[] = +{ + sSpriteAnim_855D01C +}; + +static const union AnimCmd *const sSpriteAnimTable_855D11C[] = +{ + sSpriteAnim_855D024 +}; + +static const union AnimCmd *const sSpriteAnimTable_855D120[] = +{ + sSpriteAnim_855D02C, + sSpriteAnim_855D034, + sSpriteAnim_855D03C, + sSpriteAnim_855D044 +}; + +static const union AnimCmd *const sSpriteAnimTable_855D130[] = +{ + sSpriteAnim_855D04C, + sSpriteAnim_855D054 +}; + +static const union AnimCmd *const sSpriteAnimTable_855D138[] = +{ + sSpriteAnim_855D05C, + sSpriteAnim_855D064 +}; + +static const union AnimCmd *const sSpriteAnimTable_855D140[] = +{ + sSpriteAnim_855D06C, + sSpriteAnim_855D074, + sSpriteAnim_855D07C, + sSpriteAnim_855D084, + sSpriteAnim_855D08C, + sSpriteAnim_855D094, + sSpriteAnim_855D09C, + sSpriteAnim_855D0A4, + sSpriteAnim_855D0AC, + sSpriteAnim_855D0B4 +}; + +static const union AnimCmd *const sSpriteAnimTable_855D168[] = +{ + sSpriteAnim_855D0BC, + sSpriteAnim_855D0C4, + sSpriteAnim_855D0CC, + sSpriteAnim_855D0D4, + sSpriteAnim_855D0DC, + sSpriteAnim_855D0E4, + sSpriteAnim_855D0EC, + sSpriteAnim_855D0F4, + sSpriteAnim_855D0FC, + sSpriteAnim_855D104 +}; + +static const union AnimCmd *const sSpriteAnimTable_855D190[] = +{ + sSpriteAnim_855D10C +}; + +const struct SpriteTemplate gUnknown_0855D194 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &sOamData_855CFE4, + .anims = sSpriteAnimTable_855D114, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80BE604, +}; + +const struct SpriteTemplate gUnknown_0855D1AC = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &sOamData_855CFEC, + .anims = sSpriteAnimTable_855D118, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80BE658, +}; + +const struct SpriteTemplate gUnknown_0855D1C4 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &sOamData_855CFF4, + .anims = sSpriteAnimTable_855D120, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80BE758, +}; + +const struct SpriteTemplate gUnknown_0855D1DC = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &sOamData_855CFFC, + .anims = sSpriteAnimTable_855D11C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80BE780, +}; + +const struct SpriteTemplate gUnknown_0855D1F4 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &sOamData_855D004, + .anims = sSpriteAnimTable_855D130, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80BE44C, +}; + +const struct SpriteTemplate gUnknown_0855D20C = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &sOamData_855CFF4, + .anims = sSpriteAnimTable_855D138, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80BE44C, +}; + +const struct SpriteTemplate gUnknown_0855D224 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &sOamData_855D00C, + .anims = sSpriteAnimTable_855D140, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80BE44C, +}; + +const struct SpriteTemplate gUnknown_0855D23C = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &sOamData_855D00C, + .anims = sSpriteAnimTable_855D168, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80BE44C, +}; + +const struct SpriteTemplate gUnknown_0855D254 = +{ + .tileTag = 4096, + .paletteTag = 4096, + .oam = &sOamData_855D00C, + .anims = sSpriteAnimTable_855D190, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80BE834, +}; + +const struct CompressedSpriteSheet gSpriteSheets_0855D26C[] = +{ + {gUnknown_08DC234C, 0x2000, 4096}, + {0} +}; + +const struct CompressedSpritePalette gSpritePalettes_0855D26C[] = +{ + {gUnknown_08DC16F4, 4096}, + {0} +}; + +const u8 gUnknown_0855D28C[] = {0x4, 0x8, 0x10, 0x20, 0x20}; +const u8 gUnknown_0855D291[] = {0x8, 0x4, 0x2, 0x1, 0x1}; + +const struct BgTemplate gBgTemplates_0855D298[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 12, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 13, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 14, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 15, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } +}; + +const struct WindowTemplate sWindowTemplates_0855D2A8[] = +{ + {2, 0, 0, 0x20, 0x20, 0, 1}, + DUMMY_WIN_TEMPLATE +}; + From 9c45ca0c5fb9693751baace38b67f9232ed568b9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 22 Dec 2017 19:16:15 +0100 Subject: [PATCH 12/54] dump pokemon icon --- asm/pokemon_icon.s | 18 +- .../graphics/pokemon/icon_palette_indices.inc | 442 --- data/graphics/pokemon/icon_palette_table.inc | 11 - data/graphics/pokemon/icon_table.inc | 442 --- data/pokemon_icon.s | 27 - include/graphics.h | 2409 +++++++++++++++++ include/sprite.h | 4 - ld_script.txt | 3 +- src/pokemon_icon.c | 1014 +++++++ 9 files changed, 3434 insertions(+), 936 deletions(-) delete mode 100644 data/graphics/pokemon/icon_palette_indices.inc delete mode 100644 data/graphics/pokemon/icon_palette_table.inc delete mode 100644 data/graphics/pokemon/icon_table.inc delete mode 100644 data/pokemon_icon.s create mode 100644 src/pokemon_icon.c diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s index 79838f6f9e..9157059db1 100755 --- a/asm/pokemon_icon.s +++ b/asm/pokemon_icon.s @@ -28,15 +28,15 @@ sub_80D2CC4: @ 80D2CC4 lsls r0, 24 lsrs r0, 24 mov r9, r0 - ldr r0, =gUnknown_0857C570 + ldr r0, =sMonIconOamData str r0, [sp, 0x18] adds r0, r4, 0 adds r2, r5, 0 bl GetMonIconPtr str r0, [sp, 0x1C] - ldr r0, =gUnknown_0857C5B4 + ldr r0, =sMonIconAnims str r0, [sp, 0x20] - ldr r0, =gUnknown_0857C5E8 + ldr r0, =sMonIconAffineAnims str r0, [sp, 0x24] str r6, [sp, 0x28] ldr r0, =gMonIconPaletteIndices @@ -102,13 +102,13 @@ sub_80D2D78: @ 80D2D78 lsls r6, 24 lsrs r6, 24 mov r3, sp - ldr r2, =gUnknown_0857C570 + ldr r2, =sMonIconOamData str r2, [sp] movs r2, 0 str r2, [sp, 0x4] - ldr r2, =gUnknown_0857C5B4 + ldr r2, =sMonIconAnims str r2, [sp, 0x8] - ldr r2, =gUnknown_0857C5E8 + ldr r2, =sMonIconAffineAnims str r2, [sp, 0xC] str r1, [sp, 0x10] ldr r2, =gMonIconPaletteIndices @@ -601,7 +601,7 @@ _080D3126: strb r7, [r5] b _080D31A4 _080D312A: - ldr r2, =gUnknown_0857C5F0 + ldr r2, =sSpriteImageSizes ldrb r1, [r4, 0x3] lsrs r1, 6 lsls r1, 1 @@ -689,7 +689,7 @@ sub_80D31B4: @ 80D31B4 mov r8, r0 movs r0, 0 str r0, [sp, 0x30] - ldr r2, =gUnknown_0857C5F0 + ldr r2, =sSpriteImageSizes mov r0, r9 ldr r6, [r0] ldrb r1, [r6, 0x3] @@ -776,7 +776,7 @@ sub_80D328C: @ 80D328C sub sp, 0x8 movs r1, 0 str r1, [sp] - ldr r3, =gUnknown_0857C5F0 + ldr r3, =sSpriteImageSizes ldrb r2, [r0, 0x3] lsrs r2, 6 lsls r2, 1 diff --git a/data/graphics/pokemon/icon_palette_indices.inc b/data/graphics/pokemon/icon_palette_indices.inc deleted file mode 100644 index f1d57466ce..0000000000 --- a/data/graphics/pokemon/icon_palette_indices.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonIconPaletteIndices:: @ 857C388 - .byte 0 @ ?????????? - .byte 1 @ Bulbasaur - .byte 1 @ Ivysaur - .byte 1 @ Venusaur - .byte 0 @ Charmander - .byte 0 @ Charmeleon - .byte 0 @ Charizard - .byte 0 @ Squirtle - .byte 2 @ Wartortle - .byte 2 @ Blastoise - .byte 1 @ Caterpie - .byte 1 @ Metapod - .byte 0 @ Butterfree - .byte 1 @ Weedle - .byte 2 @ Kakuna - .byte 2 @ Beedrill - .byte 0 @ Pidgey - .byte 0 @ Pidgeotto - .byte 0 @ Pidgeot - .byte 2 @ Rattata - .byte 1 @ Raticate - .byte 0 @ Spearow - .byte 0 @ Fearow - .byte 2 @ Ekans - .byte 2 @ Arbok - .byte 2 @ Pikachu - .byte 0 @ Raichu - .byte 2 @ Sandshrew - .byte 2 @ Sandslash - .byte 2 @ Nidoran♀ - .byte 2 @ Nidorina - .byte 2 @ Nidoqueen - .byte 2 @ Nidoran♂ - .byte 2 @ Nidorino - .byte 2 @ Nidoking - .byte 0 @ Clefairy - .byte 0 @ Clefable - .byte 2 @ Vulpix - .byte 1 @ Ninetales - .byte 0 @ Jigglypuff - .byte 0 @ Wigglytuff - .byte 2 @ Zubat - .byte 2 @ Golbat - .byte 1 @ Oddish - .byte 0 @ Gloom - .byte 0 @ Vileplume - .byte 0 @ Paras - .byte 0 @ Parasect - .byte 0 @ Venonat - .byte 2 @ Venomoth - .byte 2 @ Diglett - .byte 2 @ Dugtrio - .byte 1 @ Meowth - .byte 1 @ Persian - .byte 1 @ Psyduck - .byte 2 @ Golduck - .byte 1 @ Mankey - .byte 2 @ Primeape - .byte 0 @ Growlithe - .byte 0 @ Arcanine - .byte 0 @ Poliwag - .byte 0 @ Poliwhirl - .byte 0 @ Poliwrath - .byte 2 @ Abra - .byte 2 @ Kadabra - .byte 2 @ Alakazam - .byte 0 @ Machop - .byte 2 @ Machoke - .byte 0 @ Machamp - .byte 1 @ Bellsprout - .byte 1 @ Weepinbell - .byte 1 @ Victreebel - .byte 2 @ Tentacool - .byte 2 @ Tentacruel - .byte 1 @ Geodude - .byte 1 @ Graveler - .byte 1 @ Golem - .byte 0 @ Ponyta - .byte 0 @ Rapidash - .byte 0 @ Slowpoke - .byte 0 @ Slowbro - .byte 0 @ Magnemite - .byte 0 @ Magneton - .byte 1 @ Farfetch'd - .byte 2 @ Doduo - .byte 2 @ Dodrio - .byte 2 @ Seel - .byte 2 @ Dewgong - .byte 2 @ Grimer - .byte 2 @ Muk - .byte 2 @ Shellder - .byte 2 @ Cloyster - .byte 2 @ Gastly - .byte 2 @ Haunter - .byte 2 @ Gengar - .byte 2 @ Onix - .byte 2 @ Drowzee - .byte 1 @ Hypno - .byte 2 @ Krabby - .byte 2 @ Kingler - .byte 0 @ Voltorb - .byte 0 @ Electrode - .byte 0 @ Exeggcute - .byte 1 @ Exeggutor - .byte 1 @ Cubone - .byte 1 @ Marowak - .byte 2 @ Hitmonlee - .byte 2 @ Hitmonchan - .byte 1 @ Lickitung - .byte 2 @ Koffing - .byte 2 @ Weezing - .byte 1 @ Rhyhorn - .byte 1 @ Rhydon - .byte 0 @ Chansey - .byte 0 @ Tangela - .byte 1 @ Kangaskhan - .byte 0 @ Horsea - .byte 0 @ Seadra - .byte 0 @ Goldeen - .byte 0 @ Seaking - .byte 2 @ Staryu - .byte 2 @ Starmie - .byte 0 @ Mr. mime - .byte 1 @ Scyther - .byte 2 @ Jynx - .byte 1 @ Electabuzz - .byte 0 @ Magmar - .byte 2 @ Pinsir - .byte 2 @ Tauros - .byte 0 @ Magikarp - .byte 0 @ Gyarados - .byte 2 @ Lapras - .byte 2 @ Ditto - .byte 2 @ Eevee - .byte 0 @ Vaporeon - .byte 0 @ Jolteon - .byte 0 @ Flareon - .byte 0 @ Porygon - .byte 0 @ Omanyte - .byte 0 @ Omastar - .byte 2 @ Kabuto - .byte 2 @ Kabutops - .byte 0 @ Aerodactyl - .byte 1 @ Snorlax - .byte 0 @ Articuno - .byte 0 @ Zapdos - .byte 0 @ Moltres - .byte 0 @ Dratini - .byte 0 @ Dragonair - .byte 2 @ Dragonite - .byte 2 @ Mewtwo - .byte 0 @ Mew - .byte 1 @ Chikorita - .byte 1 @ Bayleef - .byte 1 @ Meganium - .byte 1 @ Cyndaquil - .byte 1 @ Quilava - .byte 1 @ Typhlosion - .byte 2 @ Totodile - .byte 2 @ Croconaw - .byte 2 @ Feraligatr - .byte 2 @ Sentret - .byte 2 @ Furret - .byte 2 @ Hoothoot - .byte 2 @ Noctowl - .byte 0 @ Ledyba - .byte 0 @ Ledian - .byte 1 @ Spinarak - .byte 0 @ Ariados - .byte 2 @ Crobat - .byte 2 @ Chinchou - .byte 0 @ Lanturn - .byte 0 @ Pichu - .byte 0 @ Cleffa - .byte 1 @ Igglybuff - .byte 2 @ Togepi - .byte 2 @ Togetic - .byte 0 @ Natu - .byte 0 @ Xatu - .byte 2 @ Mareep - .byte 0 @ Flaaffy - .byte 0 @ Ampharos - .byte 1 @ Bellossom - .byte 2 @ Marill - .byte 2 @ Azumarill - .byte 1 @ Sudowoodo - .byte 1 @ Politoed - .byte 1 @ Hoppip - .byte 1 @ Skiploom - .byte 2 @ Jumpluff - .byte 2 @ Aipom - .byte 1 @ Sunkern - .byte 1 @ Sunflora - .byte 1 @ Yanma - .byte 0 @ Wooper - .byte 0 @ Quagsire - .byte 2 @ Espeon - .byte 2 @ Umbreon - .byte 2 @ Murkrow - .byte 0 @ Slowking - .byte 0 @ Misdreavus - .byte 0 @ Unown A - .byte 0 @ Wobbuffet - .byte 1 @ Girafarig - .byte 0 @ Pineco - .byte 2 @ Forretress - .byte 2 @ Dunsparce - .byte 2 @ Gligar - .byte 0 @ Steelix - .byte 0 @ Snubbull - .byte 2 @ Granbull - .byte 0 @ Qwilfish - .byte 0 @ Scizor - .byte 1 @ Shuckle - .byte 2 @ Heracross - .byte 0 @ Sneasel - .byte 0 @ Teddiursa - .byte 2 @ Ursaring - .byte 0 @ Slugma - .byte 0 @ Magcargo - .byte 2 @ Swinub - .byte 2 @ Piloswine - .byte 0 @ Corsola - .byte 0 @ Remoraid - .byte 0 @ Octillery - .byte 0 @ Delibird - .byte 2 @ Mantine - .byte 0 @ Skarmory - .byte 0 @ Houndour - .byte 0 @ Houndoom - .byte 0 @ Kingdra - .byte 0 @ Phanpy - .byte 0 @ Donphan - .byte 0 @ Porygon2 - .byte 2 @ Stantler - .byte 1 @ Smeargle - .byte 2 @ Tyrogue - .byte 2 @ Hitmontop - .byte 1 @ Smoochum - .byte 1 @ Elekid - .byte 1 @ Magby - .byte 1 @ Miltank - .byte 1 @ Blissey - .byte 0 @ Raikou - .byte 2 @ Entei - .byte 0 @ Suicune - .byte 1 @ Larvitar - .byte 0 @ Pupitar - .byte 1 @ Tyranitar - .byte 0 @ Lugia - .byte 1 @ Ho-Oh - .byte 1 @ Celebi - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 1 @ Treecko - .byte 0 @ Grovyle - .byte 1 @ Sceptile - .byte 0 @ Torchic - .byte 0 @ Combusken - .byte 0 @ Blaziken - .byte 0 @ Mudkip - .byte 0 @ Marshtomp - .byte 0 @ Swampert - .byte 2 @ Poochyena - .byte 2 @ Mightyena - .byte 2 @ Zigzagoon - .byte 2 @ Linoone - .byte 0 @ Wurmple - .byte 2 @ Silcoon - .byte 0 @ Beautifly - .byte 2 @ Cascoon - .byte 1 @ Dustox - .byte 1 @ Lotad - .byte 1 @ Lombre - .byte 1 @ Ludicolo - .byte 1 @ Seedot - .byte 1 @ Nuzleaf - .byte 0 @ Shiftry - .byte 1 @ Nincada - .byte 1 @ Ninjask - .byte 1 @ Shedinja - .byte 2 @ Taillow - .byte 2 @ Swellow - .byte 1 @ Shroomish - .byte 1 @ Breloom - .byte 1 @ Spinda - .byte 0 @ Wingull - .byte 0 @ Pelipper - .byte 2 @ Surskit - .byte 0 @ Masquerain - .byte 2 @ Wailmer - .byte 0 @ Wailord - .byte 0 @ Skitty - .byte 2 @ Delcatty - .byte 1 @ Kecleon - .byte 1 @ Baltoy - .byte 0 @ Claydol - .byte 0 @ Nosepass - .byte 1 @ Torkoal - .byte 2 @ Sableye - .byte 0 @ Barboach - .byte 0 @ Whiscash - .byte 0 @ Luvdisc - .byte 0 @ Corphish - .byte 0 @ Crawdaunt - .byte 2 @ Feebas - .byte 0 @ Milotic - .byte 0 @ Carvanha - .byte 0 @ Sharpedo - .byte 1 @ Trapinch - .byte 1 @ Vibrava - .byte 1 @ Flygon - .byte 2 @ Makuhita - .byte 1 @ Hariyama - .byte 1 @ Electrike - .byte 0 @ Manectric - .byte 1 @ Numel - .byte 0 @ Camerupt - .byte 2 @ Spheal - .byte 2 @ Sealeo - .byte 0 @ Walrein - .byte 1 @ Cacnea - .byte 1 @ Cacturne - .byte 2 @ Snorunt - .byte 0 @ Glalie - .byte 1 @ Lunatone - .byte 0 @ Solrock - .byte 2 @ Azurill - .byte 0 @ Spoink - .byte 2 @ Grumpig - .byte 0 @ Plusle - .byte 0 @ Minun - .byte 2 @ Mawile - .byte 0 @ Meditite - .byte 0 @ Medicham - .byte 0 @ Swablu - .byte 0 @ Altaria - .byte 0 @ Wynaut - .byte 0 @ Duskull - .byte 0 @ Dusclops - .byte 0 @ Roselia - .byte 2 @ Slakoth - .byte 2 @ Vigoroth - .byte 1 @ Slaking - .byte 1 @ Gulpin - .byte 2 @ Swalot - .byte 1 @ Tropius - .byte 0 @ Whismur - .byte 2 @ Loudred - .byte 2 @ Exploud - .byte 0 @ Clamperl - .byte 0 @ Huntail - .byte 0 @ Gorebyss - .byte 0 @ Absol - .byte 0 @ Shuppet - .byte 0 @ Banette - .byte 2 @ Seviper - .byte 0 @ Zangoose - .byte 1 @ Relicanth - .byte 2 @ Aron - .byte 2 @ Lairon - .byte 2 @ Aggron - .byte 0 @ Castform - .byte 0 @ Volbeat - .byte 2 @ Illumise - .byte 2 @ Lileep - .byte 0 @ Cradily - .byte 0 @ Anorith - .byte 0 @ Armaldo - .byte 1 @ Ralts - .byte 1 @ Kirlia - .byte 1 @ Gardevoir - .byte 2 @ Bagon - .byte 2 @ Shelgon - .byte 0 @ Salamence - .byte 0 @ Beldum - .byte 0 @ Metang - .byte 0 @ Metagross - .byte 2 @ Regirock - .byte 2 @ Regice - .byte 2 @ Registeel - .byte 2 @ Kyogre - .byte 0 @ Groudon - .byte 1 @ Rayquaza - .byte 0 @ Latias - .byte 2 @ Latios - .byte 0 @ Jirachi - .byte 0 @ Deoxys - .byte 0 @ Chimecho - .byte 1 @ Egg - .byte 0 @ Unown B - .byte 0 @ Unown C - .byte 0 @ Unown D - .byte 0 @ Unown E - .byte 0 @ Unown F - .byte 0 @ Unown G - .byte 0 @ Unown H - .byte 0 @ Unown I - .byte 0 @ Unown J - .byte 0 @ Unown K - .byte 0 @ Unown L - .byte 0 @ Unown M - .byte 0 @ Unown N - .byte 0 @ Unown O - .byte 0 @ Unown P - .byte 0 @ Unown Q - .byte 0 @ Unown R - .byte 0 @ Unown S - .byte 0 @ Unown T - .byte 0 @ Unown U - .byte 0 @ Unown V - .byte 0 @ Unown W - .byte 0 @ Unown X - .byte 0 @ Unown Y - .byte 0 @ Unown Z - .byte 0 @ Unown Exclamation Mark - .byte 0 @ Unown Question Mark diff --git a/data/graphics/pokemon/icon_palette_table.inc b/data/graphics/pokemon/icon_palette_table.inc deleted file mode 100644 index eb79194233..0000000000 --- a/data/graphics/pokemon/icon_palette_table.inc +++ /dev/null @@ -1,11 +0,0 @@ - .align 2 -gMonIconPaletteTable:: @ 857C540 - obj_pal gMonIconPalettes + 0 * 32, 56000 - obj_pal gMonIconPalettes + 1 * 32, 56001 - obj_pal gMonIconPalettes + 2 * 32, 56002 - -@ These palettes are actually part of the title screen BG palette and are not -@ used for Pokémon icons. - obj_pal gMonIconPalettes + 3 * 32, 56003 - obj_pal gMonIconPalettes + 4 * 32, 56004 - obj_pal gMonIconPalettes + 5 * 32, 56005 diff --git a/data/graphics/pokemon/icon_table.inc b/data/graphics/pokemon/icon_table.inc deleted file mode 100644 index 06a86de43d..0000000000 --- a/data/graphics/pokemon/icon_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonIconTable:: @ 857BCA8 - .4byte gMonIcon_Bulbasaur - .4byte gMonIcon_Bulbasaur - .4byte gMonIcon_Ivysaur - .4byte gMonIcon_Venusaur - .4byte gMonIcon_Charmander - .4byte gMonIcon_Charmeleon - .4byte gMonIcon_Charizard - .4byte gMonIcon_Squirtle - .4byte gMonIcon_Wartortle - .4byte gMonIcon_Blastoise - .4byte gMonIcon_Caterpie - .4byte gMonIcon_Metapod - .4byte gMonIcon_Butterfree - .4byte gMonIcon_Weedle - .4byte gMonIcon_Kakuna - .4byte gMonIcon_Beedrill - .4byte gMonIcon_Pidgey - .4byte gMonIcon_Pidgeotto - .4byte gMonIcon_Pidgeot - .4byte gMonIcon_Rattata - .4byte gMonIcon_Raticate - .4byte gMonIcon_Spearow - .4byte gMonIcon_Fearow - .4byte gMonIcon_Ekans - .4byte gMonIcon_Arbok - .4byte gMonIcon_Pikachu - .4byte gMonIcon_Raichu - .4byte gMonIcon_Sandshrew - .4byte gMonIcon_Sandslash - .4byte gMonIcon_NidoranF - .4byte gMonIcon_Nidorina - .4byte gMonIcon_Nidoqueen - .4byte gMonIcon_NidoranM - .4byte gMonIcon_Nidorino - .4byte gMonIcon_Nidoking - .4byte gMonIcon_Clefairy - .4byte gMonIcon_Clefable - .4byte gMonIcon_Vulpix - .4byte gMonIcon_Ninetales - .4byte gMonIcon_Jigglypuff - .4byte gMonIcon_Wigglytuff - .4byte gMonIcon_Zubat - .4byte gMonIcon_Golbat - .4byte gMonIcon_Oddish - .4byte gMonIcon_Gloom - .4byte gMonIcon_Vileplume - .4byte gMonIcon_Paras - .4byte gMonIcon_Parasect - .4byte gMonIcon_Venonat - .4byte gMonIcon_Venomoth - .4byte gMonIcon_Diglett - .4byte gMonIcon_Dugtrio - .4byte gMonIcon_Meowth - .4byte gMonIcon_Persian - .4byte gMonIcon_Psyduck - .4byte gMonIcon_Golduck - .4byte gMonIcon_Mankey - .4byte gMonIcon_Primeape - .4byte gMonIcon_Growlithe - .4byte gMonIcon_Arcanine - .4byte gMonIcon_Poliwag - .4byte gMonIcon_Poliwhirl - .4byte gMonIcon_Poliwrath - .4byte gMonIcon_Abra - .4byte gMonIcon_Kadabra - .4byte gMonIcon_Alakazam - .4byte gMonIcon_Machop - .4byte gMonIcon_Machoke - .4byte gMonIcon_Machamp - .4byte gMonIcon_Bellsprout - .4byte gMonIcon_Weepinbell - .4byte gMonIcon_Victreebel - .4byte gMonIcon_Tentacool - .4byte gMonIcon_Tentacruel - .4byte gMonIcon_Geodude - .4byte gMonIcon_Graveler - .4byte gMonIcon_Golem - .4byte gMonIcon_Ponyta - .4byte gMonIcon_Rapidash - .4byte gMonIcon_Slowpoke - .4byte gMonIcon_Slowbro - .4byte gMonIcon_Magnemite - .4byte gMonIcon_Magneton - .4byte gMonIcon_Farfetchd - .4byte gMonIcon_Doduo - .4byte gMonIcon_Dodrio - .4byte gMonIcon_Seel - .4byte gMonIcon_Dewgong - .4byte gMonIcon_Grimer - .4byte gMonIcon_Muk - .4byte gMonIcon_Shellder - .4byte gMonIcon_Cloyster - .4byte gMonIcon_Gastly - .4byte gMonIcon_Haunter - .4byte gMonIcon_Gengar - .4byte gMonIcon_Onix - .4byte gMonIcon_Drowzee - .4byte gMonIcon_Hypno - .4byte gMonIcon_Krabby - .4byte gMonIcon_Kingler - .4byte gMonIcon_Voltorb - .4byte gMonIcon_Electrode - .4byte gMonIcon_Exeggcute - .4byte gMonIcon_Exeggutor - .4byte gMonIcon_Cubone - .4byte gMonIcon_Marowak - .4byte gMonIcon_Hitmonlee - .4byte gMonIcon_Hitmonchan - .4byte gMonIcon_Lickitung - .4byte gMonIcon_Koffing - .4byte gMonIcon_Weezing - .4byte gMonIcon_Rhyhorn - .4byte gMonIcon_Rhydon - .4byte gMonIcon_Chansey - .4byte gMonIcon_Tangela - .4byte gMonIcon_Kangaskhan - .4byte gMonIcon_Horsea - .4byte gMonIcon_Seadra - .4byte gMonIcon_Goldeen - .4byte gMonIcon_Seaking - .4byte gMonIcon_Staryu - .4byte gMonIcon_Starmie - .4byte gMonIcon_Mrmime - .4byte gMonIcon_Scyther - .4byte gMonIcon_Jynx - .4byte gMonIcon_Electabuzz - .4byte gMonIcon_Magmar - .4byte gMonIcon_Pinsir - .4byte gMonIcon_Tauros - .4byte gMonIcon_Magikarp - .4byte gMonIcon_Gyarados - .4byte gMonIcon_Lapras - .4byte gMonIcon_Ditto - .4byte gMonIcon_Eevee - .4byte gMonIcon_Vaporeon - .4byte gMonIcon_Jolteon - .4byte gMonIcon_Flareon - .4byte gMonIcon_Porygon - .4byte gMonIcon_Omanyte - .4byte gMonIcon_Omastar - .4byte gMonIcon_Kabuto - .4byte gMonIcon_Kabutops - .4byte gMonIcon_Aerodactyl - .4byte gMonIcon_Snorlax - .4byte gMonIcon_Articuno - .4byte gMonIcon_Zapdos - .4byte gMonIcon_Moltres - .4byte gMonIcon_Dratini - .4byte gMonIcon_Dragonair - .4byte gMonIcon_Dragonite - .4byte gMonIcon_Mewtwo - .4byte gMonIcon_Mew - .4byte gMonIcon_Chikorita - .4byte gMonIcon_Bayleef - .4byte gMonIcon_Meganium - .4byte gMonIcon_Cyndaquil - .4byte gMonIcon_Quilava - .4byte gMonIcon_Typhlosion - .4byte gMonIcon_Totodile - .4byte gMonIcon_Croconaw - .4byte gMonIcon_Feraligatr - .4byte gMonIcon_Sentret - .4byte gMonIcon_Furret - .4byte gMonIcon_Hoothoot - .4byte gMonIcon_Noctowl - .4byte gMonIcon_Ledyba - .4byte gMonIcon_Ledian - .4byte gMonIcon_Spinarak - .4byte gMonIcon_Ariados - .4byte gMonIcon_Crobat - .4byte gMonIcon_Chinchou - .4byte gMonIcon_Lanturn - .4byte gMonIcon_Pichu - .4byte gMonIcon_Cleffa - .4byte gMonIcon_Igglybuff - .4byte gMonIcon_Togepi - .4byte gMonIcon_Togetic - .4byte gMonIcon_Natu - .4byte gMonIcon_Xatu - .4byte gMonIcon_Mareep - .4byte gMonIcon_Flaaffy - .4byte gMonIcon_Ampharos - .4byte gMonIcon_Bellossom - .4byte gMonIcon_Marill - .4byte gMonIcon_Azumarill - .4byte gMonIcon_Sudowoodo - .4byte gMonIcon_Politoed - .4byte gMonIcon_Hoppip - .4byte gMonIcon_Skiploom - .4byte gMonIcon_Jumpluff - .4byte gMonIcon_Aipom - .4byte gMonIcon_Sunkern - .4byte gMonIcon_Sunflora - .4byte gMonIcon_Yanma - .4byte gMonIcon_Wooper - .4byte gMonIcon_Quagsire - .4byte gMonIcon_Espeon - .4byte gMonIcon_Umbreon - .4byte gMonIcon_Murkrow - .4byte gMonIcon_Slowking - .4byte gMonIcon_Misdreavus - .4byte gMonIcon_UnownA - .4byte gMonIcon_Wobbuffet - .4byte gMonIcon_Girafarig - .4byte gMonIcon_Pineco - .4byte gMonIcon_Forretress - .4byte gMonIcon_Dunsparce - .4byte gMonIcon_Gligar - .4byte gMonIcon_Steelix - .4byte gMonIcon_Snubbull - .4byte gMonIcon_Granbull - .4byte gMonIcon_Qwilfish - .4byte gMonIcon_Scizor - .4byte gMonIcon_Shuckle - .4byte gMonIcon_Heracross - .4byte gMonIcon_Sneasel - .4byte gMonIcon_Teddiursa - .4byte gMonIcon_Ursaring - .4byte gMonIcon_Slugma - .4byte gMonIcon_Magcargo - .4byte gMonIcon_Swinub - .4byte gMonIcon_Piloswine - .4byte gMonIcon_Corsola - .4byte gMonIcon_Remoraid - .4byte gMonIcon_Octillery - .4byte gMonIcon_Delibird - .4byte gMonIcon_Mantine - .4byte gMonIcon_Skarmory - .4byte gMonIcon_Houndour - .4byte gMonIcon_Houndoom - .4byte gMonIcon_Kingdra - .4byte gMonIcon_Phanpy - .4byte gMonIcon_Donphan - .4byte gMonIcon_Porygon2 - .4byte gMonIcon_Stantler - .4byte gMonIcon_Smeargle - .4byte gMonIcon_Tyrogue - .4byte gMonIcon_Hitmontop - .4byte gMonIcon_Smoochum - .4byte gMonIcon_Elekid - .4byte gMonIcon_Magby - .4byte gMonIcon_Miltank - .4byte gMonIcon_Blissey - .4byte gMonIcon_Raikou - .4byte gMonIcon_Entei - .4byte gMonIcon_Suicune - .4byte gMonIcon_Larvitar - .4byte gMonIcon_Pupitar - .4byte gMonIcon_Tyranitar - .4byte gMonIcon_Lugia - .4byte gMonIcon_HoOh - .4byte gMonIcon_Celebi - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_Treecko - .4byte gMonIcon_Grovyle - .4byte gMonIcon_Sceptile - .4byte gMonIcon_Torchic - .4byte gMonIcon_Combusken - .4byte gMonIcon_Blaziken - .4byte gMonIcon_Mudkip - .4byte gMonIcon_Marshtomp - .4byte gMonIcon_Swampert - .4byte gMonIcon_Poochyena - .4byte gMonIcon_Mightyena - .4byte gMonIcon_Zigzagoon - .4byte gMonIcon_Linoone - .4byte gMonIcon_Wurmple - .4byte gMonIcon_Silcoon - .4byte gMonIcon_Beautifly - .4byte gMonIcon_Cascoon - .4byte gMonIcon_Dustox - .4byte gMonIcon_Lotad - .4byte gMonIcon_Lombre - .4byte gMonIcon_Ludicolo - .4byte gMonIcon_Seedot - .4byte gMonIcon_Nuzleaf - .4byte gMonIcon_Shiftry - .4byte gMonIcon_Nincada - .4byte gMonIcon_Ninjask - .4byte gMonIcon_Shedinja - .4byte gMonIcon_Taillow - .4byte gMonIcon_Swellow - .4byte gMonIcon_Shroomish - .4byte gMonIcon_Breloom - .4byte gMonIcon_Spinda - .4byte gMonIcon_Wingull - .4byte gMonIcon_Pelipper - .4byte gMonIcon_Surskit - .4byte gMonIcon_Masquerain - .4byte gMonIcon_Wailmer - .4byte gMonIcon_Wailord - .4byte gMonIcon_Skitty - .4byte gMonIcon_Delcatty - .4byte gMonIcon_Kecleon - .4byte gMonIcon_Baltoy - .4byte gMonIcon_Claydol - .4byte gMonIcon_Nosepass - .4byte gMonIcon_Torkoal - .4byte gMonIcon_Sableye - .4byte gMonIcon_Barboach - .4byte gMonIcon_Whiscash - .4byte gMonIcon_Luvdisc - .4byte gMonIcon_Corphish - .4byte gMonIcon_Crawdaunt - .4byte gMonIcon_Feebas - .4byte gMonIcon_Milotic - .4byte gMonIcon_Carvanha - .4byte gMonIcon_Sharpedo - .4byte gMonIcon_Trapinch - .4byte gMonIcon_Vibrava - .4byte gMonIcon_Flygon - .4byte gMonIcon_Makuhita - .4byte gMonIcon_Hariyama - .4byte gMonIcon_Electrike - .4byte gMonIcon_Manectric - .4byte gMonIcon_Numel - .4byte gMonIcon_Camerupt - .4byte gMonIcon_Spheal - .4byte gMonIcon_Sealeo - .4byte gMonIcon_Walrein - .4byte gMonIcon_Cacnea - .4byte gMonIcon_Cacturne - .4byte gMonIcon_Snorunt - .4byte gMonIcon_Glalie - .4byte gMonIcon_Lunatone - .4byte gMonIcon_Solrock - .4byte gMonIcon_Azurill - .4byte gMonIcon_Spoink - .4byte gMonIcon_Grumpig - .4byte gMonIcon_Plusle - .4byte gMonIcon_Minun - .4byte gMonIcon_Mawile - .4byte gMonIcon_Meditite - .4byte gMonIcon_Medicham - .4byte gMonIcon_Swablu - .4byte gMonIcon_Altaria - .4byte gMonIcon_Wynaut - .4byte gMonIcon_Duskull - .4byte gMonIcon_Dusclops - .4byte gMonIcon_Roselia - .4byte gMonIcon_Slakoth - .4byte gMonIcon_Vigoroth - .4byte gMonIcon_Slaking - .4byte gMonIcon_Gulpin - .4byte gMonIcon_Swalot - .4byte gMonIcon_Tropius - .4byte gMonIcon_Whismur - .4byte gMonIcon_Loudred - .4byte gMonIcon_Exploud - .4byte gMonIcon_Clamperl - .4byte gMonIcon_Huntail - .4byte gMonIcon_Gorebyss - .4byte gMonIcon_Absol - .4byte gMonIcon_Shuppet - .4byte gMonIcon_Banette - .4byte gMonIcon_Seviper - .4byte gMonIcon_Zangoose - .4byte gMonIcon_Relicanth - .4byte gMonIcon_Aron - .4byte gMonIcon_Lairon - .4byte gMonIcon_Aggron - .4byte gMonIcon_Castform - .4byte gMonIcon_Volbeat - .4byte gMonIcon_Illumise - .4byte gMonIcon_Lileep - .4byte gMonIcon_Cradily - .4byte gMonIcon_Anorith - .4byte gMonIcon_Armaldo - .4byte gMonIcon_Ralts - .4byte gMonIcon_Kirlia - .4byte gMonIcon_Gardevoir - .4byte gMonIcon_Bagon - .4byte gMonIcon_Shelgon - .4byte gMonIcon_Salamence - .4byte gMonIcon_Beldum - .4byte gMonIcon_Metang - .4byte gMonIcon_Metagross - .4byte gMonIcon_Regirock - .4byte gMonIcon_Regice - .4byte gMonIcon_Registeel - .4byte gMonIcon_Kyogre - .4byte gMonIcon_Groudon - .4byte gMonIcon_Rayquaza - .4byte gMonIcon_Latias - .4byte gMonIcon_Latios - .4byte gMonIcon_Jirachi - .4byte gMonIcon_Deoxys - .4byte gMonIcon_Chimecho - .4byte gMonIcon_Egg - .4byte gMonIcon_UnownB - .4byte gMonIcon_UnownC - .4byte gMonIcon_UnownD - .4byte gMonIcon_UnownE - .4byte gMonIcon_UnownF - .4byte gMonIcon_UnownG - .4byte gMonIcon_UnownH - .4byte gMonIcon_UnownI - .4byte gMonIcon_UnownJ - .4byte gMonIcon_UnownK - .4byte gMonIcon_UnownL - .4byte gMonIcon_UnownM - .4byte gMonIcon_UnownN - .4byte gMonIcon_UnownO - .4byte gMonIcon_UnownP - .4byte gMonIcon_UnownQ - .4byte gMonIcon_UnownR - .4byte gMonIcon_UnownS - .4byte gMonIcon_UnownT - .4byte gMonIcon_UnownU - .4byte gMonIcon_UnownV - .4byte gMonIcon_UnownW - .4byte gMonIcon_UnownX - .4byte gMonIcon_UnownY - .4byte gMonIcon_UnownZ - .4byte gMonIcon_UnownExclamationMark - .4byte gMonIcon_UnownQuestionMark diff --git a/data/pokemon_icon.s b/data/pokemon_icon.s deleted file mode 100644 index 9d6c7ac2e0..0000000000 --- a/data/pokemon_icon.s +++ /dev/null @@ -1,27 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -@ 857BCA8 - .include "data/graphics/pokemon/icon_table.inc" - -@ 857C388 - .include "data/graphics/pokemon/icon_palette_indices.inc" - -@ 857C540 - .include "data/graphics/pokemon/icon_palette_table.inc" - -gUnknown_0857C570:: @ 857C570 - .incbin "baserom.gba", 0x57c570, 0x44 - -gUnknown_0857C5B4:: @ 857C5B4 - .incbin "baserom.gba", 0x57c5b4, 0x14 - .incbin "baserom.gba", 0x57c5c8, 0x20 - -gUnknown_0857C5E8:: @ 857C5E8 - .incbin "baserom.gba", 0x57c5e8, 0x8 - -gUnknown_0857C5F0:: @ 857C5F0 - .incbin "baserom.gba", 0x57c5f0, 0x18 diff --git a/include/graphics.h b/include/graphics.h index 8d52c27f1b..97528f844a 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -28,6 +28,2415 @@ extern const u8 gInterfaceGfx_PremierBall[]; extern const u8 gInterfacePal_PremierBall[]; extern const u8 gOpenPokeballGfx[]; +// pokemon gfx +extern const u8 gMonFrontPic_Bulbasaur[]; +extern const u8 gMonPalette_Bulbasaur[]; +extern const u8 gMonBackPic_Bulbasaur[]; +extern const u8 gMonShinyPalette_Bulbasaur[]; +extern const u8 gMonIcon_Bulbasaur[]; +extern const u8 gMonFootprint_Bulbasaur[]; +extern const u8 gMonFrontPic_Ivysaur[]; +extern const u8 gMonPalette_Ivysaur[]; +extern const u8 gMonBackPic_Ivysaur[]; +extern const u8 gMonShinyPalette_Ivysaur[]; +extern const u8 gMonIcon_Ivysaur[]; +extern const u8 gMonFootprint_Ivysaur[]; +extern const u8 gMonFrontPic_Venusaur[]; +extern const u8 gMonPalette_Venusaur[]; +extern const u8 gMonBackPic_Venusaur[]; +extern const u8 gMonShinyPalette_Venusaur[]; +extern const u8 gMonIcon_Venusaur[]; +extern const u8 gMonFootprint_Venusaur[]; +extern const u8 gMonFrontPic_Charmander[]; +extern const u8 gMonPalette_Charmander[]; +extern const u8 gMonBackPic_Charmander[]; +extern const u8 gMonShinyPalette_Charmander[]; +extern const u8 gMonIcon_Charmander[]; +extern const u8 gMonFootprint_Charmander[]; +extern const u8 gMonFrontPic_Charmeleon[]; +extern const u8 gMonPalette_Charmeleon[]; +extern const u8 gMonBackPic_Charmeleon[]; +extern const u8 gMonShinyPalette_Charmeleon[]; +extern const u8 gMonIcon_Charmeleon[]; +extern const u8 gMonFootprint_Charmeleon[]; +extern const u8 gMonFrontPic_Charizard[]; +extern const u8 gMonPalette_Charizard[]; +extern const u8 gMonBackPic_Charizard[]; +extern const u8 gMonShinyPalette_Charizard[]; +extern const u8 gMonIcon_Charizard[]; +extern const u8 gMonFootprint_Charizard[]; +extern const u8 gMonFrontPic_Squirtle[]; +extern const u8 gMonPalette_Squirtle[]; +extern const u8 gMonBackPic_Squirtle[]; +extern const u8 gMonShinyPalette_Squirtle[]; +extern const u8 gMonIcon_Squirtle[]; +extern const u8 gMonFootprint_Squirtle[]; +extern const u8 gMonFrontPic_Wartortle[]; +extern const u8 gMonPalette_Wartortle[]; +extern const u8 gMonBackPic_Wartortle[]; +extern const u8 gMonShinyPalette_Wartortle[]; +extern const u8 gMonIcon_Wartortle[]; +extern const u8 gMonFootprint_Wartortle[]; +extern const u8 gMonFrontPic_Blastoise[]; +extern const u8 gMonPalette_Blastoise[]; +extern const u8 gMonBackPic_Blastoise[]; +extern const u8 gMonShinyPalette_Blastoise[]; +extern const u8 gMonIcon_Blastoise[]; +extern const u8 gMonFootprint_Blastoise[]; +extern const u8 gMonFrontPic_Caterpie[]; +extern const u8 gMonPalette_Caterpie[]; +extern const u8 gMonBackPic_Caterpie[]; +extern const u8 gMonShinyPalette_Caterpie[]; +extern const u8 gMonIcon_Caterpie[]; +extern const u8 gMonFootprint_Caterpie[]; +extern const u8 gMonFrontPic_Metapod[]; +extern const u8 gMonPalette_Metapod[]; +extern const u8 gMonBackPic_Metapod[]; +extern const u8 gMonShinyPalette_Metapod[]; +extern const u8 gMonIcon_Metapod[]; +extern const u8 gMonFootprint_Metapod[]; +extern const u8 gMonFrontPic_Butterfree[]; +extern const u8 gMonPalette_Butterfree[]; +extern const u8 gMonBackPic_Butterfree[]; +extern const u8 gMonShinyPalette_Butterfree[]; +extern const u8 gMonIcon_Butterfree[]; +extern const u8 gMonFootprint_Butterfree[]; +extern const u8 gMonFrontPic_Weedle[]; +extern const u8 gMonPalette_Weedle[]; +extern const u8 gMonBackPic_Weedle[]; +extern const u8 gMonShinyPalette_Weedle[]; +extern const u8 gMonIcon_Weedle[]; +extern const u8 gMonFootprint_Weedle[]; +extern const u8 gMonFrontPic_Kakuna[]; +extern const u8 gMonPalette_Kakuna[]; +extern const u8 gMonBackPic_Kakuna[]; +extern const u8 gMonShinyPalette_Kakuna[]; +extern const u8 gMonIcon_Kakuna[]; +extern const u8 gMonFootprint_Kakuna[]; +extern const u8 gMonFrontPic_Beedrill[]; +extern const u8 gMonPalette_Beedrill[]; +extern const u8 gMonBackPic_Beedrill[]; +extern const u8 gMonShinyPalette_Beedrill[]; +extern const u8 gMonIcon_Beedrill[]; +extern const u8 gMonFootprint_Beedrill[]; +extern const u8 gMonFrontPic_Pidgey[]; +extern const u8 gMonPalette_Pidgey[]; +extern const u8 gMonBackPic_Pidgey[]; +extern const u8 gMonShinyPalette_Pidgey[]; +extern const u8 gMonIcon_Pidgey[]; +extern const u8 gMonFootprint_Pidgey[]; +extern const u8 gMonFrontPic_Pidgeotto[]; +extern const u8 gMonPalette_Pidgeotto[]; +extern const u8 gMonBackPic_Pidgeotto[]; +extern const u8 gMonShinyPalette_Pidgeotto[]; +extern const u8 gMonIcon_Pidgeotto[]; +extern const u8 gMonFootprint_Pidgeotto[]; +extern const u8 gMonFrontPic_Pidgeot[]; +extern const u8 gMonPalette_Pidgeot[]; +extern const u8 gMonBackPic_Pidgeot[]; +extern const u8 gMonShinyPalette_Pidgeot[]; +extern const u8 gMonIcon_Pidgeot[]; +extern const u8 gMonFootprint_Pidgeot[]; +extern const u8 gMonFrontPic_Rattata[]; +extern const u8 gMonPalette_Rattata[]; +extern const u8 gMonBackPic_Rattata[]; +extern const u8 gMonShinyPalette_Rattata[]; +extern const u8 gMonIcon_Rattata[]; +extern const u8 gMonFootprint_Rattata[]; +extern const u8 gMonFrontPic_Raticate[]; +extern const u8 gMonPalette_Raticate[]; +extern const u8 gMonBackPic_Raticate[]; +extern const u8 gMonShinyPalette_Raticate[]; +extern const u8 gMonIcon_Raticate[]; +extern const u8 gMonFootprint_Raticate[]; +extern const u8 gMonFrontPic_Spearow[]; +extern const u8 gMonPalette_Spearow[]; +extern const u8 gMonBackPic_Spearow[]; +extern const u8 gMonShinyPalette_Spearow[]; +extern const u8 gMonIcon_Spearow[]; +extern const u8 gMonFootprint_Spearow[]; +extern const u8 gMonFrontPic_Fearow[]; +extern const u8 gMonPalette_Fearow[]; +extern const u8 gMonBackPic_Fearow[]; +extern const u8 gMonShinyPalette_Fearow[]; +extern const u8 gMonIcon_Fearow[]; +extern const u8 gMonFootprint_Fearow[]; +extern const u8 gMonFrontPic_Ekans[]; +extern const u8 gMonPalette_Ekans[]; +extern const u8 gMonBackPic_Ekans[]; +extern const u8 gMonShinyPalette_Ekans[]; +extern const u8 gMonIcon_Ekans[]; +extern const u8 gMonFootprint_Ekans[]; +extern const u8 gMonFrontPic_Arbok[]; +extern const u8 gMonPalette_Arbok[]; +extern const u8 gMonBackPic_Arbok[]; +extern const u8 gMonShinyPalette_Arbok[]; +extern const u8 gMonIcon_Arbok[]; +extern const u8 gMonFootprint_Arbok[]; +extern const u8 gMonFrontPic_Pikachu[]; +extern const u8 gMonPalette_Pikachu[]; +extern const u8 gMonBackPic_Pikachu[]; +extern const u8 gMonShinyPalette_Pikachu[]; +extern const u8 gMonIcon_Pikachu[]; +extern const u8 gMonFootprint_Pikachu[]; +extern const u8 gMonFrontPic_Raichu[]; +extern const u8 gMonPalette_Raichu[]; +extern const u8 gMonBackPic_Raichu[]; +extern const u8 gMonShinyPalette_Raichu[]; +extern const u8 gMonIcon_Raichu[]; +extern const u8 gMonFootprint_Raichu[]; +extern const u8 gMonFrontPic_Sandshrew[]; +extern const u8 gMonPalette_Sandshrew[]; +extern const u8 gMonBackPic_Sandshrew[]; +extern const u8 gMonShinyPalette_Sandshrew[]; +extern const u8 gMonIcon_Sandshrew[]; +extern const u8 gMonFootprint_Sandshrew[]; +extern const u8 gMonFrontPic_Sandslash[]; +extern const u8 gMonPalette_Sandslash[]; +extern const u8 gMonBackPic_Sandslash[]; +extern const u8 gMonShinyPalette_Sandslash[]; +extern const u8 gMonIcon_Sandslash[]; +extern const u8 gMonFootprint_Sandslash[]; +extern const u8 gMonFrontPic_NidoranF[]; +extern const u8 gMonPalette_NidoranF[]; +extern const u8 gMonBackPic_NidoranF[]; +extern const u8 gMonShinyPalette_NidoranF[]; +extern const u8 gMonIcon_NidoranF[]; +extern const u8 gMonFootprint_NidoranF[]; +extern const u8 gMonFrontPic_Nidorina[]; +extern const u8 gMonPalette_Nidorina[]; +extern const u8 gMonBackPic_Nidorina[]; +extern const u8 gMonShinyPalette_Nidorina[]; +extern const u8 gMonIcon_Nidorina[]; +extern const u8 gMonFootprint_Nidorina[]; +extern const u8 gMonFrontPic_Nidoqueen[]; +extern const u8 gMonPalette_Nidoqueen[]; +extern const u8 gMonBackPic_Nidoqueen[]; +extern const u8 gMonShinyPalette_Nidoqueen[]; +extern const u8 gMonIcon_Nidoqueen[]; +extern const u8 gMonFootprint_Nidoqueen[]; +extern const u8 gMonFrontPic_NidoranM[]; +extern const u8 gMonPalette_NidoranM[]; +extern const u8 gMonBackPic_NidoranM[]; +extern const u8 gMonShinyPalette_NidoranM[]; +extern const u8 gMonIcon_NidoranM[]; +extern const u8 gMonFootprint_NidoranM[]; +extern const u8 gMonFrontPic_Nidorino[]; +extern const u8 gMonPalette_Nidorino[]; +extern const u8 gMonBackPic_Nidorino[]; +extern const u8 gMonShinyPalette_Nidorino[]; +extern const u8 gMonIcon_Nidorino[]; +extern const u8 gMonFootprint_Nidorino[]; +extern const u8 gMonFrontPic_Nidoking[]; +extern const u8 gMonPalette_Nidoking[]; +extern const u8 gMonBackPic_Nidoking[]; +extern const u8 gMonShinyPalette_Nidoking[]; +extern const u8 gMonIcon_Nidoking[]; +extern const u8 gMonFootprint_Nidoking[]; +extern const u8 gMonFrontPic_Clefairy[]; +extern const u8 gMonPalette_Clefairy[]; +extern const u8 gMonBackPic_Clefairy[]; +extern const u8 gMonShinyPalette_Clefairy[]; +extern const u8 gMonIcon_Clefairy[]; +extern const u8 gMonFootprint_Clefairy[]; +extern const u8 gMonFrontPic_Clefable[]; +extern const u8 gMonPalette_Clefable[]; +extern const u8 gMonBackPic_Clefable[]; +extern const u8 gMonShinyPalette_Clefable[]; +extern const u8 gMonIcon_Clefable[]; +extern const u8 gMonFootprint_Clefable[]; +extern const u8 gMonFrontPic_Vulpix[]; +extern const u8 gMonPalette_Vulpix[]; +extern const u8 gMonBackPic_Vulpix[]; +extern const u8 gMonShinyPalette_Vulpix[]; +extern const u8 gMonIcon_Vulpix[]; +extern const u8 gMonFootprint_Vulpix[]; +extern const u8 gMonFrontPic_Ninetales[]; +extern const u8 gMonPalette_Ninetales[]; +extern const u8 gMonBackPic_Ninetales[]; +extern const u8 gMonShinyPalette_Ninetales[]; +extern const u8 gMonIcon_Ninetales[]; +extern const u8 gMonFootprint_Ninetales[]; +extern const u8 gMonFrontPic_Jigglypuff[]; +extern const u8 gMonPalette_Jigglypuff[]; +extern const u8 gMonBackPic_Jigglypuff[]; +extern const u8 gMonShinyPalette_Jigglypuff[]; +extern const u8 gMonIcon_Jigglypuff[]; +extern const u8 gMonFootprint_Jigglypuff[]; +extern const u8 gMonFrontPic_Wigglytuff[]; +extern const u8 gMonPalette_Wigglytuff[]; +extern const u8 gMonBackPic_Wigglytuff[]; +extern const u8 gMonShinyPalette_Wigglytuff[]; +extern const u8 gMonIcon_Wigglytuff[]; +extern const u8 gMonFootprint_Wigglytuff[]; +extern const u8 gMonFrontPic_Zubat[]; +extern const u8 gMonPalette_Zubat[]; +extern const u8 gMonBackPic_Zubat[]; +extern const u8 gMonShinyPalette_Zubat[]; +extern const u8 gMonIcon_Zubat[]; +extern const u8 gMonFootprint_Zubat[]; +extern const u8 gMonFrontPic_Golbat[]; +extern const u8 gMonPalette_Golbat[]; +extern const u8 gMonBackPic_Golbat[]; +extern const u8 gMonShinyPalette_Golbat[]; +extern const u8 gMonIcon_Golbat[]; +extern const u8 gMonFootprint_Golbat[]; +extern const u8 gMonFrontPic_Oddish[]; +extern const u8 gMonPalette_Oddish[]; +extern const u8 gMonBackPic_Oddish[]; +extern const u8 gMonShinyPalette_Oddish[]; +extern const u8 gMonIcon_Oddish[]; +extern const u8 gMonFootprint_Oddish[]; +extern const u8 gMonFrontPic_Gloom[]; +extern const u8 gMonPalette_Gloom[]; +extern const u8 gMonBackPic_Gloom[]; +extern const u8 gMonShinyPalette_Gloom[]; +extern const u8 gMonIcon_Gloom[]; +extern const u8 gMonFootprint_Gloom[]; +extern const u8 gMonFrontPic_Vileplume[]; +extern const u8 gMonPalette_Vileplume[]; +extern const u8 gMonBackPic_Vileplume[]; +extern const u8 gMonShinyPalette_Vileplume[]; +extern const u8 gMonIcon_Vileplume[]; +extern const u8 gMonFootprint_Vileplume[]; +extern const u8 gMonFrontPic_Paras[]; +extern const u8 gMonPalette_Paras[]; +extern const u8 gMonBackPic_Paras[]; +extern const u8 gMonShinyPalette_Paras[]; +extern const u8 gMonIcon_Paras[]; +extern const u8 gMonFootprint_Paras[]; +extern const u8 gMonFrontPic_Parasect[]; +extern const u8 gMonPalette_Parasect[]; +extern const u8 gMonBackPic_Parasect[]; +extern const u8 gMonShinyPalette_Parasect[]; +extern const u8 gMonIcon_Parasect[]; +extern const u8 gMonFootprint_Parasect[]; +extern const u8 gMonFrontPic_Venonat[]; +extern const u8 gMonPalette_Venonat[]; +extern const u8 gMonBackPic_Venonat[]; +extern const u8 gMonShinyPalette_Venonat[]; +extern const u8 gMonIcon_Venonat[]; +extern const u8 gMonFootprint_Venonat[]; +extern const u8 gMonFrontPic_Venomoth[]; +extern const u8 gMonPalette_Venomoth[]; +extern const u8 gMonBackPic_Venomoth[]; +extern const u8 gMonShinyPalette_Venomoth[]; +extern const u8 gMonIcon_Venomoth[]; +extern const u8 gMonFootprint_Venomoth[]; +extern const u8 gMonFrontPic_Diglett[]; +extern const u8 gMonPalette_Diglett[]; +extern const u8 gMonBackPic_Diglett[]; +extern const u8 gMonShinyPalette_Diglett[]; +extern const u8 gMonIcon_Diglett[]; +extern const u8 gMonFootprint_Diglett[]; +extern const u8 gMonFrontPic_Dugtrio[]; +extern const u8 gMonPalette_Dugtrio[]; +extern const u8 gMonBackPic_Dugtrio[]; +extern const u8 gMonShinyPalette_Dugtrio[]; +extern const u8 gMonIcon_Dugtrio[]; +extern const u8 gMonFootprint_Dugtrio[]; +extern const u8 gMonFrontPic_Meowth[]; +extern const u8 gMonPalette_Meowth[]; +extern const u8 gMonBackPic_Meowth[]; +extern const u8 gMonShinyPalette_Meowth[]; +extern const u8 gMonIcon_Meowth[]; +extern const u8 gMonFootprint_Meowth[]; +extern const u8 gMonFrontPic_Persian[]; +extern const u8 gMonPalette_Persian[]; +extern const u8 gMonBackPic_Persian[]; +extern const u8 gMonShinyPalette_Persian[]; +extern const u8 gMonIcon_Persian[]; +extern const u8 gMonFootprint_Persian[]; +extern const u8 gMonFrontPic_Psyduck[]; +extern const u8 gMonPalette_Psyduck[]; +extern const u8 gMonBackPic_Psyduck[]; +extern const u8 gMonShinyPalette_Psyduck[]; +extern const u8 gMonIcon_Psyduck[]; +extern const u8 gMonFootprint_Psyduck[]; +extern const u8 gMonFrontPic_Golduck[]; +extern const u8 gMonPalette_Golduck[]; +extern const u8 gMonBackPic_Golduck[]; +extern const u8 gMonShinyPalette_Golduck[]; +extern const u8 gMonIcon_Golduck[]; +extern const u8 gMonFootprint_Golduck[]; +extern const u8 gMonFrontPic_Mankey[]; +extern const u8 gMonPalette_Mankey[]; +extern const u8 gMonBackPic_Mankey[]; +extern const u8 gMonShinyPalette_Mankey[]; +extern const u8 gMonIcon_Mankey[]; +extern const u8 gMonFootprint_Mankey[]; +extern const u8 gMonFrontPic_Primeape[]; +extern const u8 gMonPalette_Primeape[]; +extern const u8 gMonBackPic_Primeape[]; +extern const u8 gMonShinyPalette_Primeape[]; +extern const u8 gMonIcon_Primeape[]; +extern const u8 gMonFootprint_Primeape[]; +extern const u8 gMonFrontPic_Growlithe[]; +extern const u8 gMonPalette_Growlithe[]; +extern const u8 gMonBackPic_Growlithe[]; +extern const u8 gMonShinyPalette_Growlithe[]; +extern const u8 gMonIcon_Growlithe[]; +extern const u8 gMonFootprint_Growlithe[]; +extern const u8 gMonFrontPic_Arcanine[]; +extern const u8 gMonPalette_Arcanine[]; +extern const u8 gMonBackPic_Arcanine[]; +extern const u8 gMonShinyPalette_Arcanine[]; +extern const u8 gMonIcon_Arcanine[]; +extern const u8 gMonFootprint_Arcanine[]; +extern const u8 gMonFrontPic_Poliwag[]; +extern const u8 gMonPalette_Poliwag[]; +extern const u8 gMonBackPic_Poliwag[]; +extern const u8 gMonShinyPalette_Poliwag[]; +extern const u8 gMonIcon_Poliwag[]; +extern const u8 gMonFootprint_Poliwag[]; +extern const u8 gMonFrontPic_Poliwhirl[]; +extern const u8 gMonPalette_Poliwhirl[]; +extern const u8 gMonBackPic_Poliwhirl[]; +extern const u8 gMonShinyPalette_Poliwhirl[]; +extern const u8 gMonIcon_Poliwhirl[]; +extern const u8 gMonFootprint_Poliwhirl[]; +extern const u8 gMonFrontPic_Poliwrath[]; +extern const u8 gMonPalette_Poliwrath[]; +extern const u8 gMonBackPic_Poliwrath[]; +extern const u8 gMonShinyPalette_Poliwrath[]; +extern const u8 gMonIcon_Poliwrath[]; +extern const u8 gMonFootprint_Poliwrath[]; +extern const u8 gMonFrontPic_Abra[]; +extern const u8 gMonPalette_Abra[]; +extern const u8 gMonBackPic_Abra[]; +extern const u8 gMonShinyPalette_Abra[]; +extern const u8 gMonIcon_Abra[]; +extern const u8 gMonFootprint_Abra[]; +extern const u8 gMonFrontPic_Kadabra[]; +extern const u8 gMonPalette_Kadabra[]; +extern const u8 gMonBackPic_Kadabra[]; +extern const u8 gMonShinyPalette_Kadabra[]; +extern const u8 gMonIcon_Kadabra[]; +extern const u8 gMonFootprint_Kadabra[]; +extern const u8 gMonFrontPic_Alakazam[]; +extern const u8 gMonPalette_Alakazam[]; +extern const u8 gMonBackPic_Alakazam[]; +extern const u8 gMonShinyPalette_Alakazam[]; +extern const u8 gMonIcon_Alakazam[]; +extern const u8 gMonFootprint_Alakazam[]; +extern const u8 gMonFrontPic_Machop[]; +extern const u8 gMonPalette_Machop[]; +extern const u8 gMonBackPic_Machop[]; +extern const u8 gMonShinyPalette_Machop[]; +extern const u8 gMonIcon_Machop[]; +extern const u8 gMonFootprint_Machop[]; +extern const u8 gMonFrontPic_Machoke[]; +extern const u8 gMonPalette_Machoke[]; +extern const u8 gMonBackPic_Machoke[]; +extern const u8 gMonShinyPalette_Machoke[]; +extern const u8 gMonIcon_Machoke[]; +extern const u8 gMonFootprint_Machoke[]; +extern const u8 gMonFrontPic_Machamp[]; +extern const u8 gMonPalette_Machamp[]; +extern const u8 gMonBackPic_Machamp[]; +extern const u8 gMonShinyPalette_Machamp[]; +extern const u8 gMonIcon_Machamp[]; +extern const u8 gMonFootprint_Machamp[]; +extern const u8 gMonFrontPic_Bellsprout[]; +extern const u8 gMonPalette_Bellsprout[]; +extern const u8 gMonBackPic_Bellsprout[]; +extern const u8 gMonShinyPalette_Bellsprout[]; +extern const u8 gMonIcon_Bellsprout[]; +extern const u8 gMonFootprint_Bellsprout[]; +extern const u8 gMonFrontPic_Weepinbell[]; +extern const u8 gMonPalette_Weepinbell[]; +extern const u8 gMonBackPic_Weepinbell[]; +extern const u8 gMonShinyPalette_Weepinbell[]; +extern const u8 gMonIcon_Weepinbell[]; +extern const u8 gMonFootprint_Weepinbell[]; +extern const u8 gMonFrontPic_Victreebel[]; +extern const u8 gMonPalette_Victreebel[]; +extern const u8 gMonBackPic_Victreebel[]; +extern const u8 gMonShinyPalette_Victreebel[]; +extern const u8 gMonIcon_Victreebel[]; +extern const u8 gMonFootprint_Victreebel[]; +extern const u8 gMonFrontPic_Tentacool[]; +extern const u8 gMonPalette_Tentacool[]; +extern const u8 gMonBackPic_Tentacool[]; +extern const u8 gMonShinyPalette_Tentacool[]; +extern const u8 gMonIcon_Tentacool[]; +extern const u8 gMonFootprint_Tentacool[]; +extern const u8 gMonFrontPic_Tentacruel[]; +extern const u8 gMonPalette_Tentacruel[]; +extern const u8 gMonBackPic_Tentacruel[]; +extern const u8 gMonShinyPalette_Tentacruel[]; +extern const u8 gMonIcon_Tentacruel[]; +extern const u8 gMonFootprint_Tentacruel[]; +extern const u8 gMonFrontPic_Geodude[]; +extern const u8 gMonPalette_Geodude[]; +extern const u8 gMonBackPic_Geodude[]; +extern const u8 gMonShinyPalette_Geodude[]; +extern const u8 gMonIcon_Geodude[]; +extern const u8 gMonFootprint_Geodude[]; +extern const u8 gMonFrontPic_Graveler[]; +extern const u8 gMonPalette_Graveler[]; +extern const u8 gMonBackPic_Graveler[]; +extern const u8 gMonShinyPalette_Graveler[]; +extern const u8 gMonIcon_Graveler[]; +extern const u8 gMonFootprint_Graveler[]; +extern const u8 gMonFrontPic_Golem[]; +extern const u8 gMonPalette_Golem[]; +extern const u8 gMonBackPic_Golem[]; +extern const u8 gMonShinyPalette_Golem[]; +extern const u8 gMonIcon_Golem[]; +extern const u8 gMonFootprint_Golem[]; +extern const u8 gMonFrontPic_Ponyta[]; +extern const u8 gMonPalette_Ponyta[]; +extern const u8 gMonBackPic_Ponyta[]; +extern const u8 gMonShinyPalette_Ponyta[]; +extern const u8 gMonIcon_Ponyta[]; +extern const u8 gMonFootprint_Ponyta[]; +extern const u8 gMonFrontPic_Rapidash[]; +extern const u8 gMonPalette_Rapidash[]; +extern const u8 gMonBackPic_Rapidash[]; +extern const u8 gMonShinyPalette_Rapidash[]; +extern const u8 gMonIcon_Rapidash[]; +extern const u8 gMonFootprint_Rapidash[]; +extern const u8 gMonFrontPic_Slowpoke[]; +extern const u8 gMonPalette_Slowpoke[]; +extern const u8 gMonBackPic_Slowpoke[]; +extern const u8 gMonShinyPalette_Slowpoke[]; +extern const u8 gMonIcon_Slowpoke[]; +extern const u8 gMonFootprint_Slowpoke[]; +extern const u8 gMonFrontPic_Slowbro[]; +extern const u8 gMonPalette_Slowbro[]; +extern const u8 gMonBackPic_Slowbro[]; +extern const u8 gMonShinyPalette_Slowbro[]; +extern const u8 gMonIcon_Slowbro[]; +extern const u8 gMonFootprint_Slowbro[]; +extern const u8 gMonFrontPic_Magnemite[]; +extern const u8 gMonPalette_Magnemite[]; +extern const u8 gMonBackPic_Magnemite[]; +extern const u8 gMonShinyPalette_Magnemite[]; +extern const u8 gMonIcon_Magnemite[]; +extern const u8 gMonFootprint_Magnemite[]; +extern const u8 gMonFrontPic_Magneton[]; +extern const u8 gMonPalette_Magneton[]; +extern const u8 gMonBackPic_Magneton[]; +extern const u8 gMonShinyPalette_Magneton[]; +extern const u8 gMonIcon_Magneton[]; +extern const u8 gMonFootprint_Magneton[]; +extern const u8 gMonFrontPic_Farfetchd[]; +extern const u8 gMonPalette_Farfetchd[]; +extern const u8 gMonBackPic_Farfetchd[]; +extern const u8 gMonShinyPalette_Farfetchd[]; +extern const u8 gMonIcon_Farfetchd[]; +extern const u8 gMonFootprint_Farfetchd[]; +extern const u8 gMonFrontPic_Doduo[]; +extern const u8 gMonPalette_Doduo[]; +extern const u8 gMonBackPic_Doduo[]; +extern const u8 gMonShinyPalette_Doduo[]; +extern const u8 gMonIcon_Doduo[]; +extern const u8 gMonFootprint_Doduo[]; +extern const u8 gMonFrontPic_Dodrio[]; +extern const u8 gMonPalette_Dodrio[]; +extern const u8 gMonBackPic_Dodrio[]; +extern const u8 gMonShinyPalette_Dodrio[]; +extern const u8 gMonIcon_Dodrio[]; +extern const u8 gMonFootprint_Dodrio[]; +extern const u8 gMonFrontPic_Seel[]; +extern const u8 gMonPalette_Seel[]; +extern const u8 gMonBackPic_Seel[]; +extern const u8 gMonShinyPalette_Seel[]; +extern const u8 gMonIcon_Seel[]; +extern const u8 gMonFootprint_Seel[]; +extern const u8 gMonFrontPic_Dewgong[]; +extern const u8 gMonPalette_Dewgong[]; +extern const u8 gMonBackPic_Dewgong[]; +extern const u8 gMonShinyPalette_Dewgong[]; +extern const u8 gMonIcon_Dewgong[]; +extern const u8 gMonFootprint_Dewgong[]; +extern const u8 gMonFrontPic_Grimer[]; +extern const u8 gMonPalette_Grimer[]; +extern const u8 gMonBackPic_Grimer[]; +extern const u8 gMonShinyPalette_Grimer[]; +extern const u8 gMonIcon_Grimer[]; +extern const u8 gMonFootprint_Grimer[]; +extern const u8 gMonFrontPic_Muk[]; +extern const u8 gMonPalette_Muk[]; +extern const u8 gMonBackPic_Muk[]; +extern const u8 gMonShinyPalette_Muk[]; +extern const u8 gMonIcon_Muk[]; +extern const u8 gMonFootprint_Muk[]; +extern const u8 gMonFrontPic_Shellder[]; +extern const u8 gMonPalette_Shellder[]; +extern const u8 gMonBackPic_Shellder[]; +extern const u8 gMonShinyPalette_Shellder[]; +extern const u8 gMonIcon_Shellder[]; +extern const u8 gMonFootprint_Shellder[]; +extern const u8 gMonFrontPic_Cloyster[]; +extern const u8 gMonPalette_Cloyster[]; +extern const u8 gMonBackPic_Cloyster[]; +extern const u8 gMonShinyPalette_Cloyster[]; +extern const u8 gMonIcon_Cloyster[]; +extern const u8 gMonFootprint_Cloyster[]; +extern const u8 gMonFrontPic_Gastly[]; +extern const u8 gMonPalette_Gastly[]; +extern const u8 gMonBackPic_Gastly[]; +extern const u8 gMonShinyPalette_Gastly[]; +extern const u8 gMonIcon_Gastly[]; +extern const u8 gMonFootprint_Gastly[]; +extern const u8 gMonFrontPic_Haunter[]; +extern const u8 gMonPalette_Haunter[]; +extern const u8 gMonBackPic_Haunter[]; +extern const u8 gMonShinyPalette_Haunter[]; +extern const u8 gMonIcon_Haunter[]; +extern const u8 gMonFootprint_Haunter[]; +extern const u8 gMonFrontPic_Gengar[]; +extern const u8 gMonPalette_Gengar[]; +extern const u8 gMonBackPic_Gengar[]; +extern const u8 gMonShinyPalette_Gengar[]; +extern const u8 gMonIcon_Gengar[]; +extern const u8 gMonFootprint_Gengar[]; +extern const u8 gMonFrontPic_Onix[]; +extern const u8 gMonPalette_Onix[]; +extern const u8 gMonBackPic_Onix[]; +extern const u8 gMonShinyPalette_Onix[]; +extern const u8 gMonIcon_Onix[]; +extern const u8 gMonFootprint_Onix[]; +extern const u8 gMonFrontPic_Drowzee[]; +extern const u8 gMonPalette_Drowzee[]; +extern const u8 gMonBackPic_Drowzee[]; +extern const u8 gMonShinyPalette_Drowzee[]; +extern const u8 gMonIcon_Drowzee[]; +extern const u8 gMonFootprint_Drowzee[]; +extern const u8 gMonFrontPic_Hypno[]; +extern const u8 gMonPalette_Hypno[]; +extern const u8 gMonBackPic_Hypno[]; +extern const u8 gMonShinyPalette_Hypno[]; +extern const u8 gMonIcon_Hypno[]; +extern const u8 gMonFootprint_Hypno[]; +extern const u8 gMonFrontPic_Krabby[]; +extern const u8 gMonPalette_Krabby[]; +extern const u8 gMonBackPic_Krabby[]; +extern const u8 gMonShinyPalette_Krabby[]; +extern const u8 gMonIcon_Krabby[]; +extern const u8 gMonFootprint_Krabby[]; +extern const u8 gMonFrontPic_Kingler[]; +extern const u8 gMonPalette_Kingler[]; +extern const u8 gMonBackPic_Kingler[]; +extern const u8 gMonShinyPalette_Kingler[]; +extern const u8 gMonIcon_Kingler[]; +extern const u8 gMonFootprint_Kingler[]; +extern const u8 gMonFrontPic_Voltorb[]; +extern const u8 gMonPalette_Voltorb[]; +extern const u8 gMonBackPic_Voltorb[]; +extern const u8 gMonShinyPalette_Voltorb[]; +extern const u8 gMonIcon_Voltorb[]; +extern const u8 gMonFootprint_Voltorb[]; +extern const u8 gMonFrontPic_Electrode[]; +extern const u8 gMonPalette_Electrode[]; +extern const u8 gMonBackPic_Electrode[]; +extern const u8 gMonShinyPalette_Electrode[]; +extern const u8 gMonIcon_Electrode[]; +extern const u8 gMonFootprint_Electrode[]; +extern const u8 gMonFrontPic_Exeggcute[]; +extern const u8 gMonPalette_Exeggcute[]; +extern const u8 gMonBackPic_Exeggcute[]; +extern const u8 gMonShinyPalette_Exeggcute[]; +extern const u8 gMonIcon_Exeggcute[]; +extern const u8 gMonFootprint_Exeggcute[]; +extern const u8 gMonFrontPic_Exeggutor[]; +extern const u8 gMonPalette_Exeggutor[]; +extern const u8 gMonBackPic_Exeggutor[]; +extern const u8 gMonShinyPalette_Exeggutor[]; +extern const u8 gMonIcon_Exeggutor[]; +extern const u8 gMonFootprint_Exeggutor[]; +extern const u8 gMonFrontPic_Cubone[]; +extern const u8 gMonPalette_Cubone[]; +extern const u8 gMonBackPic_Cubone[]; +extern const u8 gMonShinyPalette_Cubone[]; +extern const u8 gMonIcon_Cubone[]; +extern const u8 gMonFootprint_Cubone[]; +extern const u8 gMonFrontPic_Marowak[]; +extern const u8 gMonPalette_Marowak[]; +extern const u8 gMonBackPic_Marowak[]; +extern const u8 gMonShinyPalette_Marowak[]; +extern const u8 gMonIcon_Marowak[]; +extern const u8 gMonFootprint_Marowak[]; +extern const u8 gMonFrontPic_Hitmonlee[]; +extern const u8 gMonPalette_Hitmonlee[]; +extern const u8 gMonBackPic_Hitmonlee[]; +extern const u8 gMonShinyPalette_Hitmonlee[]; +extern const u8 gMonIcon_Hitmonlee[]; +extern const u8 gMonFootprint_Hitmonlee[]; +extern const u8 gMonFrontPic_Hitmonchan[]; +extern const u8 gMonPalette_Hitmonchan[]; +extern const u8 gMonBackPic_Hitmonchan[]; +extern const u8 gMonShinyPalette_Hitmonchan[]; +extern const u8 gMonIcon_Hitmonchan[]; +extern const u8 gMonFootprint_Hitmonchan[]; +extern const u8 gMonFrontPic_Lickitung[]; +extern const u8 gMonPalette_Lickitung[]; +extern const u8 gMonBackPic_Lickitung[]; +extern const u8 gMonShinyPalette_Lickitung[]; +extern const u8 gMonIcon_Lickitung[]; +extern const u8 gMonFootprint_Lickitung[]; +extern const u8 gMonFrontPic_Koffing[]; +extern const u8 gMonPalette_Koffing[]; +extern const u8 gMonBackPic_Koffing[]; +extern const u8 gMonShinyPalette_Koffing[]; +extern const u8 gMonIcon_Koffing[]; +extern const u8 gMonFootprint_Koffing[]; +extern const u8 gMonFrontPic_Weezing[]; +extern const u8 gMonPalette_Weezing[]; +extern const u8 gMonBackPic_Weezing[]; +extern const u8 gMonShinyPalette_Weezing[]; +extern const u8 gMonIcon_Weezing[]; +extern const u8 gMonFootprint_Weezing[]; +extern const u8 gMonFrontPic_Rhyhorn[]; +extern const u8 gMonPalette_Rhyhorn[]; +extern const u8 gMonBackPic_Rhyhorn[]; +extern const u8 gMonShinyPalette_Rhyhorn[]; +extern const u8 gMonIcon_Rhyhorn[]; +extern const u8 gMonFootprint_Rhyhorn[]; +extern const u8 gMonFrontPic_Rhydon[]; +extern const u8 gMonPalette_Rhydon[]; +extern const u8 gMonBackPic_Rhydon[]; +extern const u8 gMonShinyPalette_Rhydon[]; +extern const u8 gMonIcon_Rhydon[]; +extern const u8 gMonFootprint_Rhydon[]; +extern const u8 gMonFrontPic_Chansey[]; +extern const u8 gMonPalette_Chansey[]; +extern const u8 gMonBackPic_Chansey[]; +extern const u8 gMonShinyPalette_Chansey[]; +extern const u8 gMonIcon_Chansey[]; +extern const u8 gMonFootprint_Chansey[]; +extern const u8 gMonFrontPic_Tangela[]; +extern const u8 gMonPalette_Tangela[]; +extern const u8 gMonBackPic_Tangela[]; +extern const u8 gMonShinyPalette_Tangela[]; +extern const u8 gMonIcon_Tangela[]; +extern const u8 gMonFootprint_Tangela[]; +extern const u8 gMonFrontPic_Kangaskhan[]; +extern const u8 gMonPalette_Kangaskhan[]; +extern const u8 gMonBackPic_Kangaskhan[]; +extern const u8 gMonShinyPalette_Kangaskhan[]; +extern const u8 gMonIcon_Kangaskhan[]; +extern const u8 gMonFootprint_Kangaskhan[]; +extern const u8 gMonFrontPic_Horsea[]; +extern const u8 gMonPalette_Horsea[]; +extern const u8 gMonBackPic_Horsea[]; +extern const u8 gMonShinyPalette_Horsea[]; +extern const u8 gMonIcon_Horsea[]; +extern const u8 gMonFootprint_Horsea[]; +extern const u8 gMonFrontPic_Seadra[]; +extern const u8 gMonPalette_Seadra[]; +extern const u8 gMonBackPic_Seadra[]; +extern const u8 gMonShinyPalette_Seadra[]; +extern const u8 gMonIcon_Seadra[]; +extern const u8 gMonFootprint_Seadra[]; +extern const u8 gMonFrontPic_Goldeen[]; +extern const u8 gMonPalette_Goldeen[]; +extern const u8 gMonBackPic_Goldeen[]; +extern const u8 gMonShinyPalette_Goldeen[]; +extern const u8 gMonIcon_Goldeen[]; +extern const u8 gMonFootprint_Goldeen[]; +extern const u8 gMonFrontPic_Seaking[]; +extern const u8 gMonPalette_Seaking[]; +extern const u8 gMonBackPic_Seaking[]; +extern const u8 gMonShinyPalette_Seaking[]; +extern const u8 gMonIcon_Seaking[]; +extern const u8 gMonFootprint_Seaking[]; +extern const u8 gMonFrontPic_Staryu[]; +extern const u8 gMonPalette_Staryu[]; +extern const u8 gMonBackPic_Staryu[]; +extern const u8 gMonShinyPalette_Staryu[]; +extern const u8 gMonIcon_Staryu[]; +extern const u8 gMonFootprint_Staryu[]; +extern const u8 gMonFrontPic_Starmie[]; +extern const u8 gMonPalette_Starmie[]; +extern const u8 gMonBackPic_Starmie[]; +extern const u8 gMonShinyPalette_Starmie[]; +extern const u8 gMonIcon_Starmie[]; +extern const u8 gMonFootprint_Starmie[]; +extern const u8 gMonFrontPic_Mrmime[]; +extern const u8 gMonPalette_Mrmime[]; +extern const u8 gMonBackPic_Mrmime[]; +extern const u8 gMonShinyPalette_Mrmime[]; +extern const u8 gMonIcon_Mrmime[]; +extern const u8 gMonFootprint_Mrmime[]; +extern const u8 gMonFrontPic_Scyther[]; +extern const u8 gMonPalette_Scyther[]; +extern const u8 gMonBackPic_Scyther[]; +extern const u8 gMonShinyPalette_Scyther[]; +extern const u8 gMonIcon_Scyther[]; +extern const u8 gMonFootprint_Scyther[]; +extern const u8 gMonFrontPic_Jynx[]; +extern const u8 gMonPalette_Jynx[]; +extern const u8 gMonBackPic_Jynx[]; +extern const u8 gMonShinyPalette_Jynx[]; +extern const u8 gMonIcon_Jynx[]; +extern const u8 gMonFootprint_Jynx[]; +extern const u8 gMonFrontPic_Electabuzz[]; +extern const u8 gMonPalette_Electabuzz[]; +extern const u8 gMonBackPic_Electabuzz[]; +extern const u8 gMonShinyPalette_Electabuzz[]; +extern const u8 gMonIcon_Electabuzz[]; +extern const u8 gMonFootprint_Electabuzz[]; +extern const u8 gMonFrontPic_Magmar[]; +extern const u8 gMonPalette_Magmar[]; +extern const u8 gMonBackPic_Magmar[]; +extern const u8 gMonShinyPalette_Magmar[]; +extern const u8 gMonIcon_Magmar[]; +extern const u8 gMonFootprint_Magmar[]; +extern const u8 gMonFrontPic_Pinsir[]; +extern const u8 gMonPalette_Pinsir[]; +extern const u8 gMonBackPic_Pinsir[]; +extern const u8 gMonShinyPalette_Pinsir[]; +extern const u8 gMonIcon_Pinsir[]; +extern const u8 gMonFootprint_Pinsir[]; +extern const u8 gMonFrontPic_Tauros[]; +extern const u8 gMonPalette_Tauros[]; +extern const u8 gMonBackPic_Tauros[]; +extern const u8 gMonShinyPalette_Tauros[]; +extern const u8 gMonIcon_Tauros[]; +extern const u8 gMonFootprint_Tauros[]; +extern const u8 gMonFrontPic_Magikarp[]; +extern const u8 gMonPalette_Magikarp[]; +extern const u8 gMonBackPic_Magikarp[]; +extern const u8 gMonShinyPalette_Magikarp[]; +extern const u8 gMonIcon_Magikarp[]; +extern const u8 gMonFootprint_Magikarp[]; +extern const u8 gMonFrontPic_Gyarados[]; +extern const u8 gMonPalette_Gyarados[]; +extern const u8 gMonBackPic_Gyarados[]; +extern const u8 gMonShinyPalette_Gyarados[]; +extern const u8 gMonIcon_Gyarados[]; +extern const u8 gMonFootprint_Gyarados[]; +extern const u8 gMonFrontPic_Lapras[]; +extern const u8 gMonPalette_Lapras[]; +extern const u8 gMonBackPic_Lapras[]; +extern const u8 gMonShinyPalette_Lapras[]; +extern const u8 gMonIcon_Lapras[]; +extern const u8 gMonFootprint_Lapras[]; +extern const u8 gMonFrontPic_Ditto[]; +extern const u8 gMonPalette_Ditto[]; +extern const u8 gMonBackPic_Ditto[]; +extern const u8 gMonShinyPalette_Ditto[]; +extern const u8 gMonIcon_Ditto[]; +extern const u8 gMonFootprint_Ditto[]; +extern const u8 gMonFrontPic_Eevee[]; +extern const u8 gMonPalette_Eevee[]; +extern const u8 gMonBackPic_Eevee[]; +extern const u8 gMonShinyPalette_Eevee[]; +extern const u8 gMonIcon_Eevee[]; +extern const u8 gMonFootprint_Eevee[]; +extern const u8 gMonFrontPic_Vaporeon[]; +extern const u8 gMonPalette_Vaporeon[]; +extern const u8 gMonBackPic_Vaporeon[]; +extern const u8 gMonShinyPalette_Vaporeon[]; +extern const u8 gMonIcon_Vaporeon[]; +extern const u8 gMonFootprint_Vaporeon[]; +extern const u8 gMonFrontPic_Jolteon[]; +extern const u8 gMonPalette_Jolteon[]; +extern const u8 gMonBackPic_Jolteon[]; +extern const u8 gMonShinyPalette_Jolteon[]; +extern const u8 gMonIcon_Jolteon[]; +extern const u8 gMonFootprint_Jolteon[]; +extern const u8 gMonFrontPic_Flareon[]; +extern const u8 gMonPalette_Flareon[]; +extern const u8 gMonBackPic_Flareon[]; +extern const u8 gMonShinyPalette_Flareon[]; +extern const u8 gMonIcon_Flareon[]; +extern const u8 gMonFootprint_Flareon[]; +extern const u8 gMonFrontPic_Porygon[]; +extern const u8 gMonPalette_Porygon[]; +extern const u8 gMonBackPic_Porygon[]; +extern const u8 gMonShinyPalette_Porygon[]; +extern const u8 gMonIcon_Porygon[]; +extern const u8 gMonFootprint_Porygon[]; +extern const u8 gMonFrontPic_Omanyte[]; +extern const u8 gMonPalette_Omanyte[]; +extern const u8 gMonBackPic_Omanyte[]; +extern const u8 gMonShinyPalette_Omanyte[]; +extern const u8 gMonIcon_Omanyte[]; +extern const u8 gMonFootprint_Omanyte[]; +extern const u8 gMonFrontPic_Omastar[]; +extern const u8 gMonPalette_Omastar[]; +extern const u8 gMonBackPic_Omastar[]; +extern const u8 gMonShinyPalette_Omastar[]; +extern const u8 gMonIcon_Omastar[]; +extern const u8 gMonFootprint_Omastar[]; +extern const u8 gMonFrontPic_Kabuto[]; +extern const u8 gMonPalette_Kabuto[]; +extern const u8 gMonBackPic_Kabuto[]; +extern const u8 gMonShinyPalette_Kabuto[]; +extern const u8 gMonIcon_Kabuto[]; +extern const u8 gMonFootprint_Kabuto[]; +extern const u8 gMonFrontPic_Kabutops[]; +extern const u8 gMonPalette_Kabutops[]; +extern const u8 gMonBackPic_Kabutops[]; +extern const u8 gMonShinyPalette_Kabutops[]; +extern const u8 gMonIcon_Kabutops[]; +extern const u8 gMonFootprint_Kabutops[]; +extern const u8 gMonFrontPic_Aerodactyl[]; +extern const u8 gMonPalette_Aerodactyl[]; +extern const u8 gMonBackPic_Aerodactyl[]; +extern const u8 gMonShinyPalette_Aerodactyl[]; +extern const u8 gMonIcon_Aerodactyl[]; +extern const u8 gMonFootprint_Aerodactyl[]; +extern const u8 gMonFrontPic_Snorlax[]; +extern const u8 gMonPalette_Snorlax[]; +extern const u8 gMonBackPic_Snorlax[]; +extern const u8 gMonShinyPalette_Snorlax[]; +extern const u8 gMonIcon_Snorlax[]; +extern const u8 gMonFootprint_Snorlax[]; +extern const u8 gMonFrontPic_Articuno[]; +extern const u8 gMonPalette_Articuno[]; +extern const u8 gMonBackPic_Articuno[]; +extern const u8 gMonShinyPalette_Articuno[]; +extern const u8 gMonIcon_Articuno[]; +extern const u8 gMonFootprint_Articuno[]; +extern const u8 gMonFrontPic_Zapdos[]; +extern const u8 gMonPalette_Zapdos[]; +extern const u8 gMonBackPic_Zapdos[]; +extern const u8 gMonShinyPalette_Zapdos[]; +extern const u8 gMonIcon_Zapdos[]; +extern const u8 gMonFootprint_Zapdos[]; +extern const u8 gMonFrontPic_Moltres[]; +extern const u8 gMonPalette_Moltres[]; +extern const u8 gMonBackPic_Moltres[]; +extern const u8 gMonShinyPalette_Moltres[]; +extern const u8 gMonIcon_Moltres[]; +extern const u8 gMonFootprint_Moltres[]; +extern const u8 gMonFrontPic_Dratini[]; +extern const u8 gMonPalette_Dratini[]; +extern const u8 gMonBackPic_Dratini[]; +extern const u8 gMonShinyPalette_Dratini[]; +extern const u8 gMonIcon_Dratini[]; +extern const u8 gMonFootprint_Dratini[]; +extern const u8 gMonFrontPic_Dragonair[]; +extern const u8 gMonPalette_Dragonair[]; +extern const u8 gMonBackPic_Dragonair[]; +extern const u8 gMonShinyPalette_Dragonair[]; +extern const u8 gMonIcon_Dragonair[]; +extern const u8 gMonFootprint_Dragonair[]; +extern const u8 gMonFrontPic_Dragonite[]; +extern const u8 gMonPalette_Dragonite[]; +extern const u8 gMonBackPic_Dragonite[]; +extern const u8 gMonShinyPalette_Dragonite[]; +extern const u8 gMonIcon_Dragonite[]; +extern const u8 gMonFootprint_Dragonite[]; +extern const u8 gMonFrontPic_Mewtwo[]; +extern const u8 gMonPalette_Mewtwo[]; +extern const u8 gMonBackPic_Mewtwo[]; +extern const u8 gMonShinyPalette_Mewtwo[]; +extern const u8 gMonIcon_Mewtwo[]; +extern const u8 gMonFootprint_Mewtwo[]; +extern const u8 gMonFrontPic_Mew[]; +extern const u8 gMonPalette_Mew[]; +extern const u8 gMonBackPic_Mew[]; +extern const u8 gMonShinyPalette_Mew[]; +extern const u8 gMonIcon_Mew[]; +extern const u8 gMonFootprint_Mew[]; +extern const u8 gMonFrontPic_Chikorita[]; +extern const u8 gMonPalette_Chikorita[]; +extern const u8 gMonBackPic_Chikorita[]; +extern const u8 gMonShinyPalette_Chikorita[]; +extern const u8 gMonIcon_Chikorita[]; +extern const u8 gMonFootprint_Chikorita[]; +extern const u8 gMonFrontPic_Bayleef[]; +extern const u8 gMonPalette_Bayleef[]; +extern const u8 gMonBackPic_Bayleef[]; +extern const u8 gMonShinyPalette_Bayleef[]; +extern const u8 gMonIcon_Bayleef[]; +extern const u8 gMonFootprint_Bayleef[]; +extern const u8 gMonFrontPic_Meganium[]; +extern const u8 gMonPalette_Meganium[]; +extern const u8 gMonBackPic_Meganium[]; +extern const u8 gMonShinyPalette_Meganium[]; +extern const u8 gMonIcon_Meganium[]; +extern const u8 gMonFootprint_Meganium[]; +extern const u8 gMonFrontPic_Cyndaquil[]; +extern const u8 gMonPalette_Cyndaquil[]; +extern const u8 gMonBackPic_Cyndaquil[]; +extern const u8 gMonShinyPalette_Cyndaquil[]; +extern const u8 gMonIcon_Cyndaquil[]; +extern const u8 gMonFootprint_Cyndaquil[]; +extern const u8 gMonFrontPic_Quilava[]; +extern const u8 gMonPalette_Quilava[]; +extern const u8 gMonBackPic_Quilava[]; +extern const u8 gMonShinyPalette_Quilava[]; +extern const u8 gMonIcon_Quilava[]; +extern const u8 gMonFootprint_Quilava[]; +extern const u8 gMonFrontPic_Typhlosion[]; +extern const u8 gMonPalette_Typhlosion[]; +extern const u8 gMonBackPic_Typhlosion[]; +extern const u8 gMonShinyPalette_Typhlosion[]; +extern const u8 gMonIcon_Typhlosion[]; +extern const u8 gMonFootprint_Typhlosion[]; +extern const u8 gMonFrontPic_Totodile[]; +extern const u8 gMonPalette_Totodile[]; +extern const u8 gMonBackPic_Totodile[]; +extern const u8 gMonShinyPalette_Totodile[]; +extern const u8 gMonIcon_Totodile[]; +extern const u8 gMonFootprint_Totodile[]; +extern const u8 gMonFrontPic_Croconaw[]; +extern const u8 gMonPalette_Croconaw[]; +extern const u8 gMonBackPic_Croconaw[]; +extern const u8 gMonShinyPalette_Croconaw[]; +extern const u8 gMonIcon_Croconaw[]; +extern const u8 gMonFootprint_Croconaw[]; +extern const u8 gMonFrontPic_Feraligatr[]; +extern const u8 gMonPalette_Feraligatr[]; +extern const u8 gMonBackPic_Feraligatr[]; +extern const u8 gMonShinyPalette_Feraligatr[]; +extern const u8 gMonIcon_Feraligatr[]; +extern const u8 gMonFootprint_Feraligatr[]; +extern const u8 gMonFrontPic_Sentret[]; +extern const u8 gMonPalette_Sentret[]; +extern const u8 gMonBackPic_Sentret[]; +extern const u8 gMonShinyPalette_Sentret[]; +extern const u8 gMonIcon_Sentret[]; +extern const u8 gMonFootprint_Sentret[]; +extern const u8 gMonFrontPic_Furret[]; +extern const u8 gMonPalette_Furret[]; +extern const u8 gMonBackPic_Furret[]; +extern const u8 gMonShinyPalette_Furret[]; +extern const u8 gMonIcon_Furret[]; +extern const u8 gMonFootprint_Furret[]; +extern const u8 gMonFrontPic_Hoothoot[]; +extern const u8 gMonPalette_Hoothoot[]; +extern const u8 gMonBackPic_Hoothoot[]; +extern const u8 gMonShinyPalette_Hoothoot[]; +extern const u8 gMonIcon_Hoothoot[]; +extern const u8 gMonFootprint_Hoothoot[]; +extern const u8 gMonFrontPic_Noctowl[]; +extern const u8 gMonPalette_Noctowl[]; +extern const u8 gMonBackPic_Noctowl[]; +extern const u8 gMonShinyPalette_Noctowl[]; +extern const u8 gMonIcon_Noctowl[]; +extern const u8 gMonFootprint_Noctowl[]; +extern const u8 gMonFrontPic_Ledyba[]; +extern const u8 gMonPalette_Ledyba[]; +extern const u8 gMonBackPic_Ledyba[]; +extern const u8 gMonShinyPalette_Ledyba[]; +extern const u8 gMonIcon_Ledyba[]; +extern const u8 gMonFootprint_Ledyba[]; +extern const u8 gMonFrontPic_Ledian[]; +extern const u8 gMonPalette_Ledian[]; +extern const u8 gMonBackPic_Ledian[]; +extern const u8 gMonShinyPalette_Ledian[]; +extern const u8 gMonIcon_Ledian[]; +extern const u8 gMonFootprint_Ledian[]; +extern const u8 gMonFrontPic_Spinarak[]; +extern const u8 gMonPalette_Spinarak[]; +extern const u8 gMonBackPic_Spinarak[]; +extern const u8 gMonShinyPalette_Spinarak[]; +extern const u8 gMonIcon_Spinarak[]; +extern const u8 gMonFootprint_Spinarak[]; +extern const u8 gMonFrontPic_Ariados[]; +extern const u8 gMonPalette_Ariados[]; +extern const u8 gMonBackPic_Ariados[]; +extern const u8 gMonShinyPalette_Ariados[]; +extern const u8 gMonIcon_Ariados[]; +extern const u8 gMonFootprint_Ariados[]; +extern const u8 gMonFrontPic_Crobat[]; +extern const u8 gMonPalette_Crobat[]; +extern const u8 gMonBackPic_Crobat[]; +extern const u8 gMonShinyPalette_Crobat[]; +extern const u8 gMonIcon_Crobat[]; +extern const u8 gMonFootprint_Crobat[]; +extern const u8 gMonFrontPic_Chinchou[]; +extern const u8 gMonPalette_Chinchou[]; +extern const u8 gMonBackPic_Chinchou[]; +extern const u8 gMonShinyPalette_Chinchou[]; +extern const u8 gMonIcon_Chinchou[]; +extern const u8 gMonFootprint_Chinchou[]; +extern const u8 gMonFrontPic_Lanturn[]; +extern const u8 gMonPalette_Lanturn[]; +extern const u8 gMonBackPic_Lanturn[]; +extern const u8 gMonShinyPalette_Lanturn[]; +extern const u8 gMonIcon_Lanturn[]; +extern const u8 gMonFootprint_Lanturn[]; +extern const u8 gMonFrontPic_Pichu[]; +extern const u8 gMonPalette_Pichu[]; +extern const u8 gMonBackPic_Pichu[]; +extern const u8 gMonShinyPalette_Pichu[]; +extern const u8 gMonIcon_Pichu[]; +extern const u8 gMonFootprint_Pichu[]; +extern const u8 gMonFrontPic_Cleffa[]; +extern const u8 gMonPalette_Cleffa[]; +extern const u8 gMonBackPic_Cleffa[]; +extern const u8 gMonShinyPalette_Cleffa[]; +extern const u8 gMonIcon_Cleffa[]; +extern const u8 gMonFootprint_Cleffa[]; +extern const u8 gMonFrontPic_Igglybuff[]; +extern const u8 gMonPalette_Igglybuff[]; +extern const u8 gMonBackPic_Igglybuff[]; +extern const u8 gMonShinyPalette_Igglybuff[]; +extern const u8 gMonIcon_Igglybuff[]; +extern const u8 gMonFootprint_Igglybuff[]; +extern const u8 gMonFrontPic_Togepi[]; +extern const u8 gMonPalette_Togepi[]; +extern const u8 gMonBackPic_Togepi[]; +extern const u8 gMonShinyPalette_Togepi[]; +extern const u8 gMonIcon_Togepi[]; +extern const u8 gMonFootprint_Togepi[]; +extern const u8 gMonFrontPic_Togetic[]; +extern const u8 gMonPalette_Togetic[]; +extern const u8 gMonBackPic_Togetic[]; +extern const u8 gMonShinyPalette_Togetic[]; +extern const u8 gMonIcon_Togetic[]; +extern const u8 gMonFootprint_Togetic[]; +extern const u8 gMonFrontPic_Natu[]; +extern const u8 gMonPalette_Natu[]; +extern const u8 gMonBackPic_Natu[]; +extern const u8 gMonShinyPalette_Natu[]; +extern const u8 gMonIcon_Natu[]; +extern const u8 gMonFootprint_Natu[]; +extern const u8 gMonFrontPic_Xatu[]; +extern const u8 gMonPalette_Xatu[]; +extern const u8 gMonBackPic_Xatu[]; +extern const u8 gMonShinyPalette_Xatu[]; +extern const u8 gMonIcon_Xatu[]; +extern const u8 gMonFootprint_Xatu[]; +extern const u8 gMonFrontPic_Mareep[]; +extern const u8 gMonPalette_Mareep[]; +extern const u8 gMonBackPic_Mareep[]; +extern const u8 gMonShinyPalette_Mareep[]; +extern const u8 gMonIcon_Mareep[]; +extern const u8 gMonFootprint_Mareep[]; +extern const u8 gMonFrontPic_Flaaffy[]; +extern const u8 gMonPalette_Flaaffy[]; +extern const u8 gMonBackPic_Flaaffy[]; +extern const u8 gMonShinyPalette_Flaaffy[]; +extern const u8 gMonIcon_Flaaffy[]; +extern const u8 gMonFootprint_Flaaffy[]; +extern const u8 gMonFrontPic_Ampharos[]; +extern const u8 gMonPalette_Ampharos[]; +extern const u8 gMonBackPic_Ampharos[]; +extern const u8 gMonShinyPalette_Ampharos[]; +extern const u8 gMonIcon_Ampharos[]; +extern const u8 gMonFootprint_Ampharos[]; +extern const u8 gMonFrontPic_Bellossom[]; +extern const u8 gMonPalette_Bellossom[]; +extern const u8 gMonBackPic_Bellossom[]; +extern const u8 gMonShinyPalette_Bellossom[]; +extern const u8 gMonIcon_Bellossom[]; +extern const u8 gMonFootprint_Bellossom[]; +extern const u8 gMonFrontPic_Marill[]; +extern const u8 gMonPalette_Marill[]; +extern const u8 gMonBackPic_Marill[]; +extern const u8 gMonShinyPalette_Marill[]; +extern const u8 gMonIcon_Marill[]; +extern const u8 gMonFootprint_Marill[]; +extern const u8 gMonFrontPic_Azumarill[]; +extern const u8 gMonPalette_Azumarill[]; +extern const u8 gMonBackPic_Azumarill[]; +extern const u8 gMonShinyPalette_Azumarill[]; +extern const u8 gMonIcon_Azumarill[]; +extern const u8 gMonFootprint_Azumarill[]; +extern const u8 gMonFrontPic_Sudowoodo[]; +extern const u8 gMonPalette_Sudowoodo[]; +extern const u8 gMonBackPic_Sudowoodo[]; +extern const u8 gMonShinyPalette_Sudowoodo[]; +extern const u8 gMonIcon_Sudowoodo[]; +extern const u8 gMonFootprint_Sudowoodo[]; +extern const u8 gMonFrontPic_Politoed[]; +extern const u8 gMonPalette_Politoed[]; +extern const u8 gMonBackPic_Politoed[]; +extern const u8 gMonShinyPalette_Politoed[]; +extern const u8 gMonIcon_Politoed[]; +extern const u8 gMonFootprint_Politoed[]; +extern const u8 gMonFrontPic_Hoppip[]; +extern const u8 gMonPalette_Hoppip[]; +extern const u8 gMonBackPic_Hoppip[]; +extern const u8 gMonShinyPalette_Hoppip[]; +extern const u8 gMonIcon_Hoppip[]; +extern const u8 gMonFootprint_Hoppip[]; +extern const u8 gMonFrontPic_Skiploom[]; +extern const u8 gMonPalette_Skiploom[]; +extern const u8 gMonBackPic_Skiploom[]; +extern const u8 gMonShinyPalette_Skiploom[]; +extern const u8 gMonIcon_Skiploom[]; +extern const u8 gMonFootprint_Skiploom[]; +extern const u8 gMonFrontPic_Jumpluff[]; +extern const u8 gMonPalette_Jumpluff[]; +extern const u8 gMonBackPic_Jumpluff[]; +extern const u8 gMonShinyPalette_Jumpluff[]; +extern const u8 gMonIcon_Jumpluff[]; +extern const u8 gMonFootprint_Jumpluff[]; +extern const u8 gMonFrontPic_Aipom[]; +extern const u8 gMonPalette_Aipom[]; +extern const u8 gMonBackPic_Aipom[]; +extern const u8 gMonShinyPalette_Aipom[]; +extern const u8 gMonIcon_Aipom[]; +extern const u8 gMonFootprint_Aipom[]; +extern const u8 gMonFrontPic_Sunkern[]; +extern const u8 gMonPalette_Sunkern[]; +extern const u8 gMonBackPic_Sunkern[]; +extern const u8 gMonShinyPalette_Sunkern[]; +extern const u8 gMonIcon_Sunkern[]; +extern const u8 gMonFootprint_Sunkern[]; +extern const u8 gMonFrontPic_Sunflora[]; +extern const u8 gMonPalette_Sunflora[]; +extern const u8 gMonBackPic_Sunflora[]; +extern const u8 gMonShinyPalette_Sunflora[]; +extern const u8 gMonIcon_Sunflora[]; +extern const u8 gMonFootprint_Sunflora[]; +extern const u8 gMonFrontPic_Yanma[]; +extern const u8 gMonPalette_Yanma[]; +extern const u8 gMonBackPic_Yanma[]; +extern const u8 gMonShinyPalette_Yanma[]; +extern const u8 gMonIcon_Yanma[]; +extern const u8 gMonFootprint_Yanma[]; +extern const u8 gMonFrontPic_Wooper[]; +extern const u8 gMonPalette_Wooper[]; +extern const u8 gMonBackPic_Wooper[]; +extern const u8 gMonShinyPalette_Wooper[]; +extern const u8 gMonIcon_Wooper[]; +extern const u8 gMonFootprint_Wooper[]; +extern const u8 gMonFrontPic_Quagsire[]; +extern const u8 gMonPalette_Quagsire[]; +extern const u8 gMonBackPic_Quagsire[]; +extern const u8 gMonShinyPalette_Quagsire[]; +extern const u8 gMonIcon_Quagsire[]; +extern const u8 gMonFootprint_Quagsire[]; +extern const u8 gMonFrontPic_Espeon[]; +extern const u8 gMonPalette_Espeon[]; +extern const u8 gMonBackPic_Espeon[]; +extern const u8 gMonShinyPalette_Espeon[]; +extern const u8 gMonIcon_Espeon[]; +extern const u8 gMonFootprint_Espeon[]; +extern const u8 gMonFrontPic_Umbreon[]; +extern const u8 gMonPalette_Umbreon[]; +extern const u8 gMonBackPic_Umbreon[]; +extern const u8 gMonShinyPalette_Umbreon[]; +extern const u8 gMonIcon_Umbreon[]; +extern const u8 gMonFootprint_Umbreon[]; +extern const u8 gMonFrontPic_Murkrow[]; +extern const u8 gMonPalette_Murkrow[]; +extern const u8 gMonBackPic_Murkrow[]; +extern const u8 gMonShinyPalette_Murkrow[]; +extern const u8 gMonIcon_Murkrow[]; +extern const u8 gMonFootprint_Murkrow[]; +extern const u8 gMonFrontPic_Slowking[]; +extern const u8 gMonPalette_Slowking[]; +extern const u8 gMonBackPic_Slowking[]; +extern const u8 gMonShinyPalette_Slowking[]; +extern const u8 gMonIcon_Slowking[]; +extern const u8 gMonFootprint_Slowking[]; +extern const u8 gMonFrontPic_Misdreavus[]; +extern const u8 gMonPalette_Misdreavus[]; +extern const u8 gMonBackPic_Misdreavus[]; +extern const u8 gMonShinyPalette_Misdreavus[]; +extern const u8 gMonIcon_Misdreavus[]; +extern const u8 gMonFootprint_Misdreavus[]; +extern const u8 gMonFrontPic_UnownA[]; +extern const u8 gMonPalette_Unown[]; +extern const u8 gMonBackPic_UnownA[]; +extern const u8 gMonShinyPalette_Unown[]; +extern const u8 gMonIcon_UnownA[]; +extern const u8 gMonFootprint_Unown[]; +extern const u8 gMonFrontPic_Wobbuffet[]; +extern const u8 gMonPalette_Wobbuffet[]; +extern const u8 gMonBackPic_Wobbuffet[]; +extern const u8 gMonShinyPalette_Wobbuffet[]; +extern const u8 gMonIcon_Wobbuffet[]; +extern const u8 gMonFootprint_Wobbuffet[]; +extern const u8 gMonFrontPic_Girafarig[]; +extern const u8 gMonPalette_Girafarig[]; +extern const u8 gMonBackPic_Girafarig[]; +extern const u8 gMonShinyPalette_Girafarig[]; +extern const u8 gMonIcon_Girafarig[]; +extern const u8 gMonFootprint_Girafarig[]; +extern const u8 gMonFrontPic_Pineco[]; +extern const u8 gMonPalette_Pineco[]; +extern const u8 gMonBackPic_Pineco[]; +extern const u8 gMonShinyPalette_Pineco[]; +extern const u8 gMonIcon_Pineco[]; +extern const u8 gMonFootprint_Pineco[]; +extern const u8 gMonFrontPic_Forretress[]; +extern const u8 gMonPalette_Forretress[]; +extern const u8 gMonBackPic_Forretress[]; +extern const u8 gMonShinyPalette_Forretress[]; +extern const u8 gMonIcon_Forretress[]; +extern const u8 gMonFootprint_Forretress[]; +extern const u8 gMonFrontPic_Dunsparce[]; +extern const u8 gMonPalette_Dunsparce[]; +extern const u8 gMonBackPic_Dunsparce[]; +extern const u8 gMonShinyPalette_Dunsparce[]; +extern const u8 gMonIcon_Dunsparce[]; +extern const u8 gMonFootprint_Dunsparce[]; +extern const u8 gMonFrontPic_Gligar[]; +extern const u8 gMonPalette_Gligar[]; +extern const u8 gMonBackPic_Gligar[]; +extern const u8 gMonShinyPalette_Gligar[]; +extern const u8 gMonIcon_Gligar[]; +extern const u8 gMonFootprint_Gligar[]; +extern const u8 gMonFrontPic_Steelix[]; +extern const u8 gMonPalette_Steelix[]; +extern const u8 gMonBackPic_Steelix[]; +extern const u8 gMonShinyPalette_Steelix[]; +extern const u8 gMonIcon_Steelix[]; +extern const u8 gMonFootprint_Steelix[]; +extern const u8 gMonFrontPic_Snubbull[]; +extern const u8 gMonPalette_Snubbull[]; +extern const u8 gMonBackPic_Snubbull[]; +extern const u8 gMonShinyPalette_Snubbull[]; +extern const u8 gMonIcon_Snubbull[]; +extern const u8 gMonFootprint_Snubbull[]; +extern const u8 gMonFrontPic_Granbull[]; +extern const u8 gMonPalette_Granbull[]; +extern const u8 gMonBackPic_Granbull[]; +extern const u8 gMonShinyPalette_Granbull[]; +extern const u8 gMonIcon_Granbull[]; +extern const u8 gMonFootprint_Granbull[]; +extern const u8 gMonFrontPic_Qwilfish[]; +extern const u8 gMonPalette_Qwilfish[]; +extern const u8 gMonBackPic_Qwilfish[]; +extern const u8 gMonShinyPalette_Qwilfish[]; +extern const u8 gMonIcon_Qwilfish[]; +extern const u8 gMonFootprint_Qwilfish[]; +extern const u8 gMonFrontPic_Scizor[]; +extern const u8 gMonPalette_Scizor[]; +extern const u8 gMonBackPic_Scizor[]; +extern const u8 gMonShinyPalette_Scizor[]; +extern const u8 gMonIcon_Scizor[]; +extern const u8 gMonFootprint_Scizor[]; +extern const u8 gMonFrontPic_Shuckle[]; +extern const u8 gMonPalette_Shuckle[]; +extern const u8 gMonBackPic_Shuckle[]; +extern const u8 gMonShinyPalette_Shuckle[]; +extern const u8 gMonIcon_Shuckle[]; +extern const u8 gMonFootprint_Shuckle[]; +extern const u8 gMonFrontPic_Heracross[]; +extern const u8 gMonPalette_Heracross[]; +extern const u8 gMonBackPic_Heracross[]; +extern const u8 gMonShinyPalette_Heracross[]; +extern const u8 gMonIcon_Heracross[]; +extern const u8 gMonFootprint_Heracross[]; +extern const u8 gMonFrontPic_Sneasel[]; +extern const u8 gMonPalette_Sneasel[]; +extern const u8 gMonBackPic_Sneasel[]; +extern const u8 gMonShinyPalette_Sneasel[]; +extern const u8 gMonIcon_Sneasel[]; +extern const u8 gMonFootprint_Sneasel[]; +extern const u8 gMonFrontPic_Teddiursa[]; +extern const u8 gMonPalette_Teddiursa[]; +extern const u8 gMonBackPic_Teddiursa[]; +extern const u8 gMonShinyPalette_Teddiursa[]; +extern const u8 gMonIcon_Teddiursa[]; +extern const u8 gMonFootprint_Teddiursa[]; +extern const u8 gMonFrontPic_Ursaring[]; +extern const u8 gMonPalette_Ursaring[]; +extern const u8 gMonBackPic_Ursaring[]; +extern const u8 gMonShinyPalette_Ursaring[]; +extern const u8 gMonIcon_Ursaring[]; +extern const u8 gMonFootprint_Ursaring[]; +extern const u8 gMonFrontPic_Slugma[]; +extern const u8 gMonPalette_Slugma[]; +extern const u8 gMonBackPic_Slugma[]; +extern const u8 gMonShinyPalette_Slugma[]; +extern const u8 gMonIcon_Slugma[]; +extern const u8 gMonFootprint_Slugma[]; +extern const u8 gMonFrontPic_Magcargo[]; +extern const u8 gMonPalette_Magcargo[]; +extern const u8 gMonBackPic_Magcargo[]; +extern const u8 gMonShinyPalette_Magcargo[]; +extern const u8 gMonIcon_Magcargo[]; +extern const u8 gMonFootprint_Magcargo[]; +extern const u8 gMonFrontPic_Swinub[]; +extern const u8 gMonPalette_Swinub[]; +extern const u8 gMonBackPic_Swinub[]; +extern const u8 gMonShinyPalette_Swinub[]; +extern const u8 gMonIcon_Swinub[]; +extern const u8 gMonFootprint_Swinub[]; +extern const u8 gMonFrontPic_Piloswine[]; +extern const u8 gMonPalette_Piloswine[]; +extern const u8 gMonBackPic_Piloswine[]; +extern const u8 gMonShinyPalette_Piloswine[]; +extern const u8 gMonIcon_Piloswine[]; +extern const u8 gMonFootprint_Piloswine[]; +extern const u8 gMonFrontPic_Corsola[]; +extern const u8 gMonPalette_Corsola[]; +extern const u8 gMonBackPic_Corsola[]; +extern const u8 gMonShinyPalette_Corsola[]; +extern const u8 gMonIcon_Corsola[]; +extern const u8 gMonFootprint_Corsola[]; +extern const u8 gMonFrontPic_Remoraid[]; +extern const u8 gMonPalette_Remoraid[]; +extern const u8 gMonBackPic_Remoraid[]; +extern const u8 gMonShinyPalette_Remoraid[]; +extern const u8 gMonIcon_Remoraid[]; +extern const u8 gMonFootprint_Remoraid[]; +extern const u8 gMonFrontPic_Octillery[]; +extern const u8 gMonPalette_Octillery[]; +extern const u8 gMonBackPic_Octillery[]; +extern const u8 gMonShinyPalette_Octillery[]; +extern const u8 gMonIcon_Octillery[]; +extern const u8 gMonFootprint_Octillery[]; +extern const u8 gMonFrontPic_Delibird[]; +extern const u8 gMonPalette_Delibird[]; +extern const u8 gMonBackPic_Delibird[]; +extern const u8 gMonShinyPalette_Delibird[]; +extern const u8 gMonIcon_Delibird[]; +extern const u8 gMonFootprint_Delibird[]; +extern const u8 gMonFrontPic_Mantine[]; +extern const u8 gMonPalette_Mantine[]; +extern const u8 gMonBackPic_Mantine[]; +extern const u8 gMonShinyPalette_Mantine[]; +extern const u8 gMonIcon_Mantine[]; +extern const u8 gMonFootprint_Mantine[]; +extern const u8 gMonFrontPic_Skarmory[]; +extern const u8 gMonPalette_Skarmory[]; +extern const u8 gMonBackPic_Skarmory[]; +extern const u8 gMonShinyPalette_Skarmory[]; +extern const u8 gMonIcon_Skarmory[]; +extern const u8 gMonFootprint_Skarmory[]; +extern const u8 gMonFrontPic_Houndour[]; +extern const u8 gMonPalette_Houndour[]; +extern const u8 gMonBackPic_Houndour[]; +extern const u8 gMonShinyPalette_Houndour[]; +extern const u8 gMonIcon_Houndour[]; +extern const u8 gMonFootprint_Houndour[]; +extern const u8 gMonFrontPic_Houndoom[]; +extern const u8 gMonPalette_Houndoom[]; +extern const u8 gMonBackPic_Houndoom[]; +extern const u8 gMonShinyPalette_Houndoom[]; +extern const u8 gMonIcon_Houndoom[]; +extern const u8 gMonFootprint_Houndoom[]; +extern const u8 gMonFrontPic_Kingdra[]; +extern const u8 gMonPalette_Kingdra[]; +extern const u8 gMonBackPic_Kingdra[]; +extern const u8 gMonShinyPalette_Kingdra[]; +extern const u8 gMonIcon_Kingdra[]; +extern const u8 gMonFootprint_Kingdra[]; +extern const u8 gMonFrontPic_Phanpy[]; +extern const u8 gMonPalette_Phanpy[]; +extern const u8 gMonBackPic_Phanpy[]; +extern const u8 gMonShinyPalette_Phanpy[]; +extern const u8 gMonIcon_Phanpy[]; +extern const u8 gMonFootprint_Phanpy[]; +extern const u8 gMonFrontPic_Donphan[]; +extern const u8 gMonPalette_Donphan[]; +extern const u8 gMonBackPic_Donphan[]; +extern const u8 gMonShinyPalette_Donphan[]; +extern const u8 gMonIcon_Donphan[]; +extern const u8 gMonFootprint_Donphan[]; +extern const u8 gMonFrontPic_Porygon2[]; +extern const u8 gMonPalette_Porygon2[]; +extern const u8 gMonBackPic_Porygon2[]; +extern const u8 gMonShinyPalette_Porygon2[]; +extern const u8 gMonIcon_Porygon2[]; +extern const u8 gMonFootprint_Porygon2[]; +extern const u8 gMonFrontPic_Stantler[]; +extern const u8 gMonPalette_Stantler[]; +extern const u8 gMonBackPic_Stantler[]; +extern const u8 gMonShinyPalette_Stantler[]; +extern const u8 gMonIcon_Stantler[]; +extern const u8 gMonFootprint_Stantler[]; +extern const u8 gMonFrontPic_Smeargle[]; +extern const u8 gMonPalette_Smeargle[]; +extern const u8 gMonBackPic_Smeargle[]; +extern const u8 gMonShinyPalette_Smeargle[]; +extern const u8 gMonIcon_Smeargle[]; +extern const u8 gMonFootprint_Smeargle[]; +extern const u8 gMonFrontPic_Tyrogue[]; +extern const u8 gMonPalette_Tyrogue[]; +extern const u8 gMonBackPic_Tyrogue[]; +extern const u8 gMonShinyPalette_Tyrogue[]; +extern const u8 gMonIcon_Tyrogue[]; +extern const u8 gMonFootprint_Tyrogue[]; +extern const u8 gMonFrontPic_Hitmontop[]; +extern const u8 gMonPalette_Hitmontop[]; +extern const u8 gMonBackPic_Hitmontop[]; +extern const u8 gMonShinyPalette_Hitmontop[]; +extern const u8 gMonIcon_Hitmontop[]; +extern const u8 gMonFootprint_Hitmontop[]; +extern const u8 gMonFrontPic_Smoochum[]; +extern const u8 gMonPalette_Smoochum[]; +extern const u8 gMonBackPic_Smoochum[]; +extern const u8 gMonShinyPalette_Smoochum[]; +extern const u8 gMonIcon_Smoochum[]; +extern const u8 gMonFootprint_Smoochum[]; +extern const u8 gMonFrontPic_Elekid[]; +extern const u8 gMonPalette_Elekid[]; +extern const u8 gMonBackPic_Elekid[]; +extern const u8 gMonShinyPalette_Elekid[]; +extern const u8 gMonIcon_Elekid[]; +extern const u8 gMonFootprint_Elekid[]; +extern const u8 gMonFrontPic_Magby[]; +extern const u8 gMonPalette_Magby[]; +extern const u8 gMonBackPic_Magby[]; +extern const u8 gMonShinyPalette_Magby[]; +extern const u8 gMonIcon_Magby[]; +extern const u8 gMonFootprint_Magby[]; +extern const u8 gMonFrontPic_Miltank[]; +extern const u8 gMonPalette_Miltank[]; +extern const u8 gMonBackPic_Miltank[]; +extern const u8 gMonShinyPalette_Miltank[]; +extern const u8 gMonIcon_Miltank[]; +extern const u8 gMonFootprint_Miltank[]; +extern const u8 gMonFrontPic_Blissey[]; +extern const u8 gMonPalette_Blissey[]; +extern const u8 gMonBackPic_Blissey[]; +extern const u8 gMonShinyPalette_Blissey[]; +extern const u8 gMonIcon_Blissey[]; +extern const u8 gMonFootprint_Blissey[]; +extern const u8 gMonFrontPic_Raikou[]; +extern const u8 gMonPalette_Raikou[]; +extern const u8 gMonBackPic_Raikou[]; +extern const u8 gMonShinyPalette_Raikou[]; +extern const u8 gMonIcon_Raikou[]; +extern const u8 gMonFootprint_Raikou[]; +extern const u8 gMonFrontPic_Entei[]; +extern const u8 gMonPalette_Entei[]; +extern const u8 gMonBackPic_Entei[]; +extern const u8 gMonShinyPalette_Entei[]; +extern const u8 gMonIcon_Entei[]; +extern const u8 gMonFootprint_Entei[]; +extern const u8 gMonFrontPic_Suicune[]; +extern const u8 gMonPalette_Suicune[]; +extern const u8 gMonBackPic_Suicune[]; +extern const u8 gMonShinyPalette_Suicune[]; +extern const u8 gMonIcon_Suicune[]; +extern const u8 gMonFootprint_Suicune[]; +extern const u8 gMonFrontPic_Larvitar[]; +extern const u8 gMonPalette_Larvitar[]; +extern const u8 gMonBackPic_Larvitar[]; +extern const u8 gMonShinyPalette_Larvitar[]; +extern const u8 gMonIcon_Larvitar[]; +extern const u8 gMonFootprint_Larvitar[]; +extern const u8 gMonFrontPic_Pupitar[]; +extern const u8 gMonPalette_Pupitar[]; +extern const u8 gMonBackPic_Pupitar[]; +extern const u8 gMonShinyPalette_Pupitar[]; +extern const u8 gMonIcon_Pupitar[]; +extern const u8 gMonFootprint_Pupitar[]; +extern const u8 gMonFrontPic_Tyranitar[]; +extern const u8 gMonPalette_Tyranitar[]; +extern const u8 gMonBackPic_Tyranitar[]; +extern const u8 gMonShinyPalette_Tyranitar[]; +extern const u8 gMonIcon_Tyranitar[]; +extern const u8 gMonFootprint_Tyranitar[]; +extern const u8 gMonFrontPic_Lugia[]; +extern const u8 gMonPalette_Lugia[]; +extern const u8 gMonBackPic_Lugia[]; +extern const u8 gMonShinyPalette_Lugia[]; +extern const u8 gMonIcon_Lugia[]; +extern const u8 gMonFootprint_Lugia[]; +extern const u8 gMonFrontPic_HoOh[]; +extern const u8 gMonPalette_HoOh[]; +extern const u8 gMonBackPic_HoOh[]; +extern const u8 gMonShinyPalette_HoOh[]; +extern const u8 gMonIcon_HoOh[]; +extern const u8 gMonFootprint_HoOh[]; +extern const u8 gMonFrontPic_Celebi[]; +extern const u8 gMonPalette_Celebi[]; +extern const u8 gMonBackPic_Celebi[]; +extern const u8 gMonShinyPalette_Celebi[]; +extern const u8 gMonIcon_Celebi[]; +extern const u8 gMonFootprint_Celebi[]; +extern const u8 gMonFrontPic_QuestionMark[]; +extern const u8 gMonPalette_QuestionMark[]; +extern const u8 gMonBackPic_QuestionMark[]; +extern const u8 gMonShinyPalette_QuestionMark[]; +extern const u8 gMonFrontPic_Treecko[]; +extern const u8 gMonPalette_Treecko[]; +extern const u8 gMonBackPic_Treecko[]; +extern const u8 gMonShinyPalette_Treecko[]; +extern const u8 gMonIcon_Treecko[]; +extern const u8 gMonFootprint_Treecko[]; +extern const u8 gMonFrontPic_Grovyle[]; +extern const u8 gMonPalette_Grovyle[]; +extern const u8 gMonBackPic_Grovyle[]; +extern const u8 gMonShinyPalette_Grovyle[]; +extern const u8 gMonIcon_Grovyle[]; +extern const u8 gMonFootprint_Grovyle[]; +extern const u8 gMonFrontPic_Sceptile[]; +extern const u8 gMonPalette_Sceptile[]; +extern const u8 gMonBackPic_Sceptile[]; +extern const u8 gMonShinyPalette_Sceptile[]; +extern const u8 gMonIcon_Sceptile[]; +extern const u8 gMonFootprint_Sceptile[]; +extern const u8 gMonFrontPic_Torchic[]; +extern const u8 gMonPalette_Torchic[]; +extern const u8 gMonBackPic_Torchic[]; +extern const u8 gMonShinyPalette_Torchic[]; +extern const u8 gMonIcon_Torchic[]; +extern const u8 gMonFootprint_Torchic[]; +extern const u8 gMonFrontPic_Combusken[]; +extern const u8 gMonPalette_Combusken[]; +extern const u8 gMonBackPic_Combusken[]; +extern const u8 gMonShinyPalette_Combusken[]; +extern const u8 gMonIcon_Combusken[]; +extern const u8 gMonFootprint_Combusken[]; +extern const u8 gMonFrontPic_Blaziken[]; +extern const u8 gMonPalette_Blaziken[]; +extern const u8 gMonBackPic_Blaziken[]; +extern const u8 gMonShinyPalette_Blaziken[]; +extern const u8 gMonIcon_Blaziken[]; +extern const u8 gMonFootprint_Blaziken[]; +extern const u8 gMonFrontPic_Mudkip[]; +extern const u8 gMonPalette_Mudkip[]; +extern const u8 gMonBackPic_Mudkip[]; +extern const u8 gMonShinyPalette_Mudkip[]; +extern const u8 gMonIcon_Mudkip[]; +extern const u8 gMonFootprint_Mudkip[]; +extern const u8 gMonFrontPic_Marshtomp[]; +extern const u8 gMonPalette_Marshtomp[]; +extern const u8 gMonBackPic_Marshtomp[]; +extern const u8 gMonShinyPalette_Marshtomp[]; +extern const u8 gMonIcon_Marshtomp[]; +extern const u8 gMonFootprint_Marshtomp[]; +extern const u8 gMonFrontPic_Swampert[]; +extern const u8 gMonPalette_Swampert[]; +extern const u8 gMonBackPic_Swampert[]; +extern const u8 gMonShinyPalette_Swampert[]; +extern const u8 gMonIcon_Swampert[]; +extern const u8 gMonFootprint_Swampert[]; +extern const u8 gMonFrontPic_Poochyena[]; +extern const u8 gMonPalette_Poochyena[]; +extern const u8 gMonBackPic_Poochyena[]; +extern const u8 gMonShinyPalette_Poochyena[]; +extern const u8 gMonIcon_Poochyena[]; +extern const u8 gMonFootprint_Poochyena[]; +extern const u8 gMonFrontPic_Mightyena[]; +extern const u8 gMonPalette_Mightyena[]; +extern const u8 gMonBackPic_Mightyena[]; +extern const u8 gMonShinyPalette_Mightyena[]; +extern const u8 gMonIcon_Mightyena[]; +extern const u8 gMonFootprint_Mightyena[]; +extern const u8 gMonFrontPic_Zigzagoon[]; +extern const u8 gMonPalette_Zigzagoon[]; +extern const u8 gMonBackPic_Zigzagoon[]; +extern const u8 gMonShinyPalette_Zigzagoon[]; +extern const u8 gMonIcon_Zigzagoon[]; +extern const u8 gMonFootprint_Zigzagoon[]; +extern const u8 gMonFrontPic_Linoone[]; +extern const u8 gMonPalette_Linoone[]; +extern const u8 gMonBackPic_Linoone[]; +extern const u8 gMonShinyPalette_Linoone[]; +extern const u8 gMonIcon_Linoone[]; +extern const u8 gMonFootprint_Linoone[]; +extern const u8 gMonFrontPic_Wurmple[]; +extern const u8 gMonPalette_Wurmple[]; +extern const u8 gMonBackPic_Wurmple[]; +extern const u8 gMonShinyPalette_Wurmple[]; +extern const u8 gMonIcon_Wurmple[]; +extern const u8 gMonFootprint_Wurmple[]; +extern const u8 gMonFrontPic_Silcoon[]; +extern const u8 gMonPalette_Silcoon[]; +extern const u8 gMonBackPic_Silcoon[]; +extern const u8 gMonShinyPalette_Silcoon[]; +extern const u8 gMonIcon_Silcoon[]; +extern const u8 gMonFootprint_Silcoon[]; +extern const u8 gMonFrontPic_Beautifly[]; +extern const u8 gMonPalette_Beautifly[]; +extern const u8 gMonBackPic_Beautifly[]; +extern const u8 gMonShinyPalette_Beautifly[]; +extern const u8 gMonIcon_Beautifly[]; +extern const u8 gMonFootprint_Beautifly[]; +extern const u8 gMonFrontPic_Cascoon[]; +extern const u8 gMonPalette_Cascoon[]; +extern const u8 gMonBackPic_Cascoon[]; +extern const u8 gMonShinyPalette_Cascoon[]; +extern const u8 gMonIcon_Cascoon[]; +extern const u8 gMonFootprint_Cascoon[]; +extern const u8 gMonFrontPic_Dustox[]; +extern const u8 gMonPalette_Dustox[]; +extern const u8 gMonBackPic_Dustox[]; +extern const u8 gMonShinyPalette_Dustox[]; +extern const u8 gMonIcon_Dustox[]; +extern const u8 gMonFootprint_Dustox[]; +extern const u8 gMonFrontPic_Lotad[]; +extern const u8 gMonPalette_Lotad[]; +extern const u8 gMonBackPic_Lotad[]; +extern const u8 gMonShinyPalette_Lotad[]; +extern const u8 gMonIcon_Lotad[]; +extern const u8 gMonFootprint_Lotad[]; +extern const u8 gMonFrontPic_Lombre[]; +extern const u8 gMonPalette_Lombre[]; +extern const u8 gMonBackPic_Lombre[]; +extern const u8 gMonShinyPalette_Lombre[]; +extern const u8 gMonIcon_Lombre[]; +extern const u8 gMonFootprint_Lombre[]; +extern const u8 gMonFrontPic_Ludicolo[]; +extern const u8 gMonPalette_Ludicolo[]; +extern const u8 gMonBackPic_Ludicolo[]; +extern const u8 gMonShinyPalette_Ludicolo[]; +extern const u8 gMonIcon_Ludicolo[]; +extern const u8 gMonFootprint_Ludicolo[]; +extern const u8 gMonFrontPic_Seedot[]; +extern const u8 gMonPalette_Seedot[]; +extern const u8 gMonBackPic_Seedot[]; +extern const u8 gMonShinyPalette_Seedot[]; +extern const u8 gMonIcon_Seedot[]; +extern const u8 gMonFootprint_Seedot[]; +extern const u8 gMonFrontPic_Nuzleaf[]; +extern const u8 gMonPalette_Nuzleaf[]; +extern const u8 gMonBackPic_Nuzleaf[]; +extern const u8 gMonShinyPalette_Nuzleaf[]; +extern const u8 gMonIcon_Nuzleaf[]; +extern const u8 gMonFootprint_Nuzleaf[]; +extern const u8 gMonFrontPic_Shiftry[]; +extern const u8 gMonPalette_Shiftry[]; +extern const u8 gMonBackPic_Shiftry[]; +extern const u8 gMonShinyPalette_Shiftry[]; +extern const u8 gMonIcon_Shiftry[]; +extern const u8 gMonFootprint_Shiftry[]; +extern const u8 gMonFrontPic_Nincada[]; +extern const u8 gMonPalette_Nincada[]; +extern const u8 gMonBackPic_Nincada[]; +extern const u8 gMonShinyPalette_Nincada[]; +extern const u8 gMonIcon_Nincada[]; +extern const u8 gMonFootprint_Nincada[]; +extern const u8 gMonFrontPic_Ninjask[]; +extern const u8 gMonPalette_Ninjask[]; +extern const u8 gMonBackPic_Ninjask[]; +extern const u8 gMonShinyPalette_Ninjask[]; +extern const u8 gMonIcon_Ninjask[]; +extern const u8 gMonFootprint_Ninjask[]; +extern const u8 gMonFrontPic_Shedinja[]; +extern const u8 gMonPalette_Shedinja[]; +extern const u8 gMonBackPic_Shedinja[]; +extern const u8 gMonShinyPalette_Shedinja[]; +extern const u8 gMonIcon_Shedinja[]; +extern const u8 gMonFootprint_Shedinja[]; +extern const u8 gMonFrontPic_Taillow[]; +extern const u8 gMonPalette_Taillow[]; +extern const u8 gMonBackPic_Taillow[]; +extern const u8 gMonShinyPalette_Taillow[]; +extern const u8 gMonIcon_Taillow[]; +extern const u8 gMonFootprint_Taillow[]; +extern const u8 gMonFrontPic_Swellow[]; +extern const u8 gMonPalette_Swellow[]; +extern const u8 gMonBackPic_Swellow[]; +extern const u8 gMonShinyPalette_Swellow[]; +extern const u8 gMonIcon_Swellow[]; +extern const u8 gMonFootprint_Swellow[]; +extern const u8 gMonFrontPic_Shroomish[]; +extern const u8 gMonPalette_Shroomish[]; +extern const u8 gMonBackPic_Shroomish[]; +extern const u8 gMonShinyPalette_Shroomish[]; +extern const u8 gMonIcon_Shroomish[]; +extern const u8 gMonFootprint_Shroomish[]; +extern const u8 gMonFrontPic_Breloom[]; +extern const u8 gMonPalette_Breloom[]; +extern const u8 gMonBackPic_Breloom[]; +extern const u8 gMonShinyPalette_Breloom[]; +extern const u8 gMonIcon_Breloom[]; +extern const u8 gMonFootprint_Breloom[]; +extern const u8 gMonFrontPic_Spinda[]; +extern const u8 gMonPalette_Spinda[]; +extern const u8 gMonBackPic_Spinda[]; +extern const u8 gMonShinyPalette_Spinda[]; +extern const u8 gMonIcon_Spinda[]; +extern const u8 gMonFootprint_Spinda[]; +extern const u8 gMonFrontPic_Wingull[]; +extern const u8 gMonPalette_Wingull[]; +extern const u8 gMonBackPic_Wingull[]; +extern const u8 gMonShinyPalette_Wingull[]; +extern const u8 gMonIcon_Wingull[]; +extern const u8 gMonFootprint_Wingull[]; +extern const u8 gMonFrontPic_Pelipper[]; +extern const u8 gMonPalette_Pelipper[]; +extern const u8 gMonBackPic_Pelipper[]; +extern const u8 gMonShinyPalette_Pelipper[]; +extern const u8 gMonIcon_Pelipper[]; +extern const u8 gMonFootprint_Pelipper[]; +extern const u8 gMonFrontPic_Surskit[]; +extern const u8 gMonPalette_Surskit[]; +extern const u8 gMonBackPic_Surskit[]; +extern const u8 gMonShinyPalette_Surskit[]; +extern const u8 gMonIcon_Surskit[]; +extern const u8 gMonFootprint_Surskit[]; +extern const u8 gMonFrontPic_Masquerain[]; +extern const u8 gMonPalette_Masquerain[]; +extern const u8 gMonBackPic_Masquerain[]; +extern const u8 gMonShinyPalette_Masquerain[]; +extern const u8 gMonIcon_Masquerain[]; +extern const u8 gMonFootprint_Masquerain[]; +extern const u8 gMonFrontPic_Wailmer[]; +extern const u8 gMonPalette_Wailmer[]; +extern const u8 gMonBackPic_Wailmer[]; +extern const u8 gMonShinyPalette_Wailmer[]; +extern const u8 gMonIcon_Wailmer[]; +extern const u8 gMonFootprint_Wailmer[]; +extern const u8 gMonFrontPic_Wailord[]; +extern const u8 gMonPalette_Wailord[]; +extern const u8 gMonBackPic_Wailord[]; +extern const u8 gMonShinyPalette_Wailord[]; +extern const u8 gMonIcon_Wailord[]; +extern const u8 gMonFootprint_Wailord[]; +extern const u8 gMonFrontPic_Skitty[]; +extern const u8 gMonPalette_Skitty[]; +extern const u8 gMonBackPic_Skitty[]; +extern const u8 gMonShinyPalette_Skitty[]; +extern const u8 gMonIcon_Skitty[]; +extern const u8 gMonFootprint_Skitty[]; +extern const u8 gMonFrontPic_Delcatty[]; +extern const u8 gMonPalette_Delcatty[]; +extern const u8 gMonBackPic_Delcatty[]; +extern const u8 gMonShinyPalette_Delcatty[]; +extern const u8 gMonIcon_Delcatty[]; +extern const u8 gMonFootprint_Delcatty[]; +extern const u8 gMonFrontPic_Kecleon[]; +extern const u8 gMonPalette_Kecleon[]; +extern const u8 gMonBackPic_Kecleon[]; +extern const u8 gMonShinyPalette_Kecleon[]; +extern const u8 gMonIcon_Kecleon[]; +extern const u8 gMonFootprint_Kecleon[]; +extern const u8 gMonFrontPic_Baltoy[]; +extern const u8 gMonPalette_Baltoy[]; +extern const u8 gMonBackPic_Baltoy[]; +extern const u8 gMonShinyPalette_Baltoy[]; +extern const u8 gMonIcon_Baltoy[]; +extern const u8 gMonFootprint_Baltoy[]; +extern const u8 gMonFrontPic_Claydol[]; +extern const u8 gMonPalette_Claydol[]; +extern const u8 gMonBackPic_Claydol[]; +extern const u8 gMonShinyPalette_Claydol[]; +extern const u8 gMonIcon_Claydol[]; +extern const u8 gMonFootprint_Claydol[]; +extern const u8 gMonFrontPic_Nosepass[]; +extern const u8 gMonPalette_Nosepass[]; +extern const u8 gMonBackPic_Nosepass[]; +extern const u8 gMonShinyPalette_Nosepass[]; +extern const u8 gMonIcon_Nosepass[]; +extern const u8 gMonFootprint_Nosepass[]; +extern const u8 gMonFrontPic_Torkoal[]; +extern const u8 gMonPalette_Torkoal[]; +extern const u8 gMonBackPic_Torkoal[]; +extern const u8 gMonShinyPalette_Torkoal[]; +extern const u8 gMonIcon_Torkoal[]; +extern const u8 gMonFootprint_Torkoal[]; +extern const u8 gMonFrontPic_Sableye[]; +extern const u8 gMonPalette_Sableye[]; +extern const u8 gMonBackPic_Sableye[]; +extern const u8 gMonShinyPalette_Sableye[]; +extern const u8 gMonIcon_Sableye[]; +extern const u8 gMonFootprint_Sableye[]; +extern const u8 gMonFrontPic_Barboach[]; +extern const u8 gMonPalette_Barboach[]; +extern const u8 gMonBackPic_Barboach[]; +extern const u8 gMonShinyPalette_Barboach[]; +extern const u8 gMonIcon_Barboach[]; +extern const u8 gMonFootprint_Barboach[]; +extern const u8 gMonFrontPic_Whiscash[]; +extern const u8 gMonPalette_Whiscash[]; +extern const u8 gMonBackPic_Whiscash[]; +extern const u8 gMonShinyPalette_Whiscash[]; +extern const u8 gMonIcon_Whiscash[]; +extern const u8 gMonFootprint_Whiscash[]; +extern const u8 gMonFrontPic_Luvdisc[]; +extern const u8 gMonPalette_Luvdisc[]; +extern const u8 gMonBackPic_Luvdisc[]; +extern const u8 gMonShinyPalette_Luvdisc[]; +extern const u8 gMonIcon_Luvdisc[]; +extern const u8 gMonFootprint_Luvdisc[]; +extern const u8 gMonFrontPic_Corphish[]; +extern const u8 gMonPalette_Corphish[]; +extern const u8 gMonBackPic_Corphish[]; +extern const u8 gMonShinyPalette_Corphish[]; +extern const u8 gMonIcon_Corphish[]; +extern const u8 gMonFootprint_Corphish[]; +extern const u8 gMonFrontPic_Crawdaunt[]; +extern const u8 gMonPalette_Crawdaunt[]; +extern const u8 gMonBackPic_Crawdaunt[]; +extern const u8 gMonShinyPalette_Crawdaunt[]; +extern const u8 gMonIcon_Crawdaunt[]; +extern const u8 gMonFootprint_Crawdaunt[]; +extern const u8 gMonFrontPic_Feebas[]; +extern const u8 gMonPalette_Feebas[]; +extern const u8 gMonBackPic_Feebas[]; +extern const u8 gMonShinyPalette_Feebas[]; +extern const u8 gMonIcon_Feebas[]; +extern const u8 gMonFootprint_Feebas[]; +extern const u8 gMonFrontPic_Milotic[]; +extern const u8 gMonPalette_Milotic[]; +extern const u8 gMonBackPic_Milotic[]; +extern const u8 gMonShinyPalette_Milotic[]; +extern const u8 gMonIcon_Milotic[]; +extern const u8 gMonFootprint_Milotic[]; +extern const u8 gMonFrontPic_Carvanha[]; +extern const u8 gMonPalette_Carvanha[]; +extern const u8 gMonBackPic_Carvanha[]; +extern const u8 gMonShinyPalette_Carvanha[]; +extern const u8 gMonIcon_Carvanha[]; +extern const u8 gMonFootprint_Carvanha[]; +extern const u8 gMonFrontPic_Sharpedo[]; +extern const u8 gMonPalette_Sharpedo[]; +extern const u8 gMonBackPic_Sharpedo[]; +extern const u8 gMonShinyPalette_Sharpedo[]; +extern const u8 gMonIcon_Sharpedo[]; +extern const u8 gMonFootprint_Sharpedo[]; +extern const u8 gMonFrontPic_Trapinch[]; +extern const u8 gMonPalette_Trapinch[]; +extern const u8 gMonBackPic_Trapinch[]; +extern const u8 gMonShinyPalette_Trapinch[]; +extern const u8 gMonIcon_Trapinch[]; +extern const u8 gMonFootprint_Trapinch[]; +extern const u8 gMonFrontPic_Vibrava[]; +extern const u8 gMonPalette_Vibrava[]; +extern const u8 gMonBackPic_Vibrava[]; +extern const u8 gMonShinyPalette_Vibrava[]; +extern const u8 gMonIcon_Vibrava[]; +extern const u8 gMonFootprint_Vibrava[]; +extern const u8 gMonFrontPic_Flygon[]; +extern const u8 gMonPalette_Flygon[]; +extern const u8 gMonBackPic_Flygon[]; +extern const u8 gMonShinyPalette_Flygon[]; +extern const u8 gMonIcon_Flygon[]; +extern const u8 gMonFootprint_Flygon[]; +extern const u8 gMonFrontPic_Makuhita[]; +extern const u8 gMonPalette_Makuhita[]; +extern const u8 gMonBackPic_Makuhita[]; +extern const u8 gMonShinyPalette_Makuhita[]; +extern const u8 gMonIcon_Makuhita[]; +extern const u8 gMonFootprint_Makuhita[]; +extern const u8 gMonFrontPic_Hariyama[]; +extern const u8 gMonPalette_Hariyama[]; +extern const u8 gMonBackPic_Hariyama[]; +extern const u8 gMonShinyPalette_Hariyama[]; +extern const u8 gMonIcon_Hariyama[]; +extern const u8 gMonFootprint_Hariyama[]; +extern const u8 gMonFrontPic_Electrike[]; +extern const u8 gMonPalette_Electrike[]; +extern const u8 gMonBackPic_Electrike[]; +extern const u8 gMonShinyPalette_Electrike[]; +extern const u8 gMonIcon_Electrike[]; +extern const u8 gMonFootprint_Electrike[]; +extern const u8 gMonFrontPic_Manectric[]; +extern const u8 gMonPalette_Manectric[]; +extern const u8 gMonBackPic_Manectric[]; +extern const u8 gMonShinyPalette_Manectric[]; +extern const u8 gMonIcon_Manectric[]; +extern const u8 gMonFootprint_Manectric[]; +extern const u8 gMonFrontPic_Numel[]; +extern const u8 gMonPalette_Numel[]; +extern const u8 gMonBackPic_Numel[]; +extern const u8 gMonShinyPalette_Numel[]; +extern const u8 gMonIcon_Numel[]; +extern const u8 gMonFootprint_Numel[]; +extern const u8 gMonFrontPic_Camerupt[]; +extern const u8 gMonPalette_Camerupt[]; +extern const u8 gMonBackPic_Camerupt[]; +extern const u8 gMonShinyPalette_Camerupt[]; +extern const u8 gMonIcon_Camerupt[]; +extern const u8 gMonFootprint_Camerupt[]; +extern const u8 gMonFrontPic_Spheal[]; +extern const u8 gMonPalette_Spheal[]; +extern const u8 gMonBackPic_Spheal[]; +extern const u8 gMonShinyPalette_Spheal[]; +extern const u8 gMonIcon_Spheal[]; +extern const u8 gMonFootprint_Spheal[]; +extern const u8 gMonFrontPic_Sealeo[]; +extern const u8 gMonPalette_Sealeo[]; +extern const u8 gMonBackPic_Sealeo[]; +extern const u8 gMonShinyPalette_Sealeo[]; +extern const u8 gMonIcon_Sealeo[]; +extern const u8 gMonFootprint_Sealeo[]; +extern const u8 gMonFrontPic_Walrein[]; +extern const u8 gMonPalette_Walrein[]; +extern const u8 gMonBackPic_Walrein[]; +extern const u8 gMonShinyPalette_Walrein[]; +extern const u8 gMonIcon_Walrein[]; +extern const u8 gMonFootprint_Walrein[]; +extern const u8 gMonFrontPic_Cacnea[]; +extern const u8 gMonPalette_Cacnea[]; +extern const u8 gMonBackPic_Cacnea[]; +extern const u8 gMonShinyPalette_Cacnea[]; +extern const u8 gMonIcon_Cacnea[]; +extern const u8 gMonFootprint_Cacnea[]; +extern const u8 gMonFrontPic_Cacturne[]; +extern const u8 gMonPalette_Cacturne[]; +extern const u8 gMonBackPic_Cacturne[]; +extern const u8 gMonShinyPalette_Cacturne[]; +extern const u8 gMonIcon_Cacturne[]; +extern const u8 gMonFootprint_Cacturne[]; +extern const u8 gMonFrontPic_Snorunt[]; +extern const u8 gMonPalette_Snorunt[]; +extern const u8 gMonBackPic_Snorunt[]; +extern const u8 gMonShinyPalette_Snorunt[]; +extern const u8 gMonIcon_Snorunt[]; +extern const u8 gMonFootprint_Snorunt[]; +extern const u8 gMonFrontPic_Glalie[]; +extern const u8 gMonPalette_Glalie[]; +extern const u8 gMonBackPic_Glalie[]; +extern const u8 gMonShinyPalette_Glalie[]; +extern const u8 gMonIcon_Glalie[]; +extern const u8 gMonFootprint_Glalie[]; +extern const u8 gMonFrontPic_Lunatone[]; +extern const u8 gMonPalette_Lunatone[]; +extern const u8 gMonBackPic_Lunatone[]; +extern const u8 gMonShinyPalette_Lunatone[]; +extern const u8 gMonIcon_Lunatone[]; +extern const u8 gMonFootprint_Lunatone[]; +extern const u8 gMonFrontPic_Solrock[]; +extern const u8 gMonPalette_Solrock[]; +extern const u8 gMonBackPic_Solrock[]; +extern const u8 gMonShinyPalette_Solrock[]; +extern const u8 gMonIcon_Solrock[]; +extern const u8 gMonFootprint_Solrock[]; +extern const u8 gMonFrontPic_Azurill[]; +extern const u8 gMonPalette_Azurill[]; +extern const u8 gMonBackPic_Azurill[]; +extern const u8 gMonShinyPalette_Azurill[]; +extern const u8 gMonIcon_Azurill[]; +extern const u8 gMonFootprint_Azurill[]; +extern const u8 gMonFrontPic_Spoink[]; +extern const u8 gMonPalette_Spoink[]; +extern const u8 gMonBackPic_Spoink[]; +extern const u8 gMonShinyPalette_Spoink[]; +extern const u8 gMonIcon_Spoink[]; +extern const u8 gMonFootprint_Spoink[]; +extern const u8 gMonFrontPic_Grumpig[]; +extern const u8 gMonPalette_Grumpig[]; +extern const u8 gMonBackPic_Grumpig[]; +extern const u8 gMonShinyPalette_Grumpig[]; +extern const u8 gMonIcon_Grumpig[]; +extern const u8 gMonFootprint_Grumpig[]; +extern const u8 gMonFrontPic_Plusle[]; +extern const u8 gMonPalette_Plusle[]; +extern const u8 gMonBackPic_Plusle[]; +extern const u8 gMonShinyPalette_Plusle[]; +extern const u8 gMonIcon_Plusle[]; +extern const u8 gMonFootprint_Plusle[]; +extern const u8 gMonFrontPic_Minun[]; +extern const u8 gMonPalette_Minun[]; +extern const u8 gMonBackPic_Minun[]; +extern const u8 gMonShinyPalette_Minun[]; +extern const u8 gMonIcon_Minun[]; +extern const u8 gMonFootprint_Minun[]; +extern const u8 gMonFrontPic_Mawile[]; +extern const u8 gMonPalette_Mawile[]; +extern const u8 gMonBackPic_Mawile[]; +extern const u8 gMonShinyPalette_Mawile[]; +extern const u8 gMonIcon_Mawile[]; +extern const u8 gMonFootprint_Mawile[]; +extern const u8 gMonFrontPic_Meditite[]; +extern const u8 gMonPalette_Meditite[]; +extern const u8 gMonBackPic_Meditite[]; +extern const u8 gMonShinyPalette_Meditite[]; +extern const u8 gMonIcon_Meditite[]; +extern const u8 gMonFootprint_Meditite[]; +extern const u8 gMonFrontPic_Medicham[]; +extern const u8 gMonPalette_Medicham[]; +extern const u8 gMonBackPic_Medicham[]; +extern const u8 gMonShinyPalette_Medicham[]; +extern const u8 gMonIcon_Medicham[]; +extern const u8 gMonFootprint_Medicham[]; +extern const u8 gMonFrontPic_Swablu[]; +extern const u8 gMonPalette_Swablu[]; +extern const u8 gMonBackPic_Swablu[]; +extern const u8 gMonShinyPalette_Swablu[]; +extern const u8 gMonIcon_Swablu[]; +extern const u8 gMonFootprint_Swablu[]; +extern const u8 gMonFrontPic_Altaria[]; +extern const u8 gMonPalette_Altaria[]; +extern const u8 gMonBackPic_Altaria[]; +extern const u8 gMonShinyPalette_Altaria[]; +extern const u8 gMonIcon_Altaria[]; +extern const u8 gMonFootprint_Altaria[]; +extern const u8 gMonFrontPic_Wynaut[]; +extern const u8 gMonPalette_Wynaut[]; +extern const u8 gMonBackPic_Wynaut[]; +extern const u8 gMonShinyPalette_Wynaut[]; +extern const u8 gMonIcon_Wynaut[]; +extern const u8 gMonFootprint_Wynaut[]; +extern const u8 gMonFrontPic_Duskull[]; +extern const u8 gMonPalette_Duskull[]; +extern const u8 gMonBackPic_Duskull[]; +extern const u8 gMonShinyPalette_Duskull[]; +extern const u8 gMonIcon_Duskull[]; +extern const u8 gMonFootprint_Duskull[]; +extern const u8 gMonFrontPic_Dusclops[]; +extern const u8 gMonPalette_Dusclops[]; +extern const u8 gMonBackPic_Dusclops[]; +extern const u8 gMonShinyPalette_Dusclops[]; +extern const u8 gMonIcon_Dusclops[]; +extern const u8 gMonFootprint_Dusclops[]; +extern const u8 gMonFrontPic_Roselia[]; +extern const u8 gMonPalette_Roselia[]; +extern const u8 gMonBackPic_Roselia[]; +extern const u8 gMonShinyPalette_Roselia[]; +extern const u8 gMonIcon_Roselia[]; +extern const u8 gMonFootprint_Roselia[]; +extern const u8 gMonFrontPic_Slakoth[]; +extern const u8 gMonPalette_Slakoth[]; +extern const u8 gMonBackPic_Slakoth[]; +extern const u8 gMonShinyPalette_Slakoth[]; +extern const u8 gMonIcon_Slakoth[]; +extern const u8 gMonFootprint_Slakoth[]; +extern const u8 gMonFrontPic_Vigoroth[]; +extern const u8 gMonPalette_Vigoroth[]; +extern const u8 gMonBackPic_Vigoroth[]; +extern const u8 gMonShinyPalette_Vigoroth[]; +extern const u8 gMonIcon_Vigoroth[]; +extern const u8 gMonFootprint_Vigoroth[]; +extern const u8 gMonFrontPic_Slaking[]; +extern const u8 gMonPalette_Slaking[]; +extern const u8 gMonBackPic_Slaking[]; +extern const u8 gMonShinyPalette_Slaking[]; +extern const u8 gMonIcon_Slaking[]; +extern const u8 gMonFootprint_Slaking[]; +extern const u8 gMonFrontPic_Gulpin[]; +extern const u8 gMonPalette_Gulpin[]; +extern const u8 gMonBackPic_Gulpin[]; +extern const u8 gMonShinyPalette_Gulpin[]; +extern const u8 gMonIcon_Gulpin[]; +extern const u8 gMonFootprint_Gulpin[]; +extern const u8 gMonFrontPic_Swalot[]; +extern const u8 gMonPalette_Swalot[]; +extern const u8 gMonBackPic_Swalot[]; +extern const u8 gMonShinyPalette_Swalot[]; +extern const u8 gMonIcon_Swalot[]; +extern const u8 gMonFootprint_Swalot[]; +extern const u8 gMonFrontPic_Tropius[]; +extern const u8 gMonPalette_Tropius[]; +extern const u8 gMonBackPic_Tropius[]; +extern const u8 gMonShinyPalette_Tropius[]; +extern const u8 gMonIcon_Tropius[]; +extern const u8 gMonFootprint_Tropius[]; +extern const u8 gMonFrontPic_Whismur[]; +extern const u8 gMonPalette_Whismur[]; +extern const u8 gMonBackPic_Whismur[]; +extern const u8 gMonShinyPalette_Whismur[]; +extern const u8 gMonIcon_Whismur[]; +extern const u8 gMonFootprint_Whismur[]; +extern const u8 gMonFrontPic_Loudred[]; +extern const u8 gMonPalette_Loudred[]; +extern const u8 gMonBackPic_Loudred[]; +extern const u8 gMonShinyPalette_Loudred[]; +extern const u8 gMonIcon_Loudred[]; +extern const u8 gMonFootprint_Loudred[]; +extern const u8 gMonFrontPic_Exploud[]; +extern const u8 gMonPalette_Exploud[]; +extern const u8 gMonBackPic_Exploud[]; +extern const u8 gMonShinyPalette_Exploud[]; +extern const u8 gMonIcon_Exploud[]; +extern const u8 gMonFootprint_Exploud[]; +extern const u8 gMonFrontPic_Clamperl[]; +extern const u8 gMonPalette_Clamperl[]; +extern const u8 gMonBackPic_Clamperl[]; +extern const u8 gMonShinyPalette_Clamperl[]; +extern const u8 gMonIcon_Clamperl[]; +extern const u8 gMonFootprint_Clamperl[]; +extern const u8 gMonFrontPic_Huntail[]; +extern const u8 gMonPalette_Huntail[]; +extern const u8 gMonBackPic_Huntail[]; +extern const u8 gMonShinyPalette_Huntail[]; +extern const u8 gMonIcon_Huntail[]; +extern const u8 gMonFootprint_Huntail[]; +extern const u8 gMonFrontPic_Gorebyss[]; +extern const u8 gMonPalette_Gorebyss[]; +extern const u8 gMonBackPic_Gorebyss[]; +extern const u8 gMonShinyPalette_Gorebyss[]; +extern const u8 gMonIcon_Gorebyss[]; +extern const u8 gMonFootprint_Gorebyss[]; +extern const u8 gMonFrontPic_Absol[]; +extern const u8 gMonPalette_Absol[]; +extern const u8 gMonBackPic_Absol[]; +extern const u8 gMonShinyPalette_Absol[]; +extern const u8 gMonIcon_Absol[]; +extern const u8 gMonFootprint_Absol[]; +extern const u8 gMonFrontPic_Shuppet[]; +extern const u8 gMonPalette_Shuppet[]; +extern const u8 gMonBackPic_Shuppet[]; +extern const u8 gMonShinyPalette_Shuppet[]; +extern const u8 gMonIcon_Shuppet[]; +extern const u8 gMonFootprint_Shuppet[]; +extern const u8 gMonFrontPic_Banette[]; +extern const u8 gMonPalette_Banette[]; +extern const u8 gMonBackPic_Banette[]; +extern const u8 gMonShinyPalette_Banette[]; +extern const u8 gMonIcon_Banette[]; +extern const u8 gMonFootprint_Banette[]; +extern const u8 gMonFrontPic_Seviper[]; +extern const u8 gMonPalette_Seviper[]; +extern const u8 gMonBackPic_Seviper[]; +extern const u8 gMonShinyPalette_Seviper[]; +extern const u8 gMonIcon_Seviper[]; +extern const u8 gMonFootprint_Seviper[]; +extern const u8 gMonFrontPic_Zangoose[]; +extern const u8 gMonPalette_Zangoose[]; +extern const u8 gMonBackPic_Zangoose[]; +extern const u8 gMonShinyPalette_Zangoose[]; +extern const u8 gMonIcon_Zangoose[]; +extern const u8 gMonFootprint_Zangoose[]; +extern const u8 gMonFrontPic_Relicanth[]; +extern const u8 gMonPalette_Relicanth[]; +extern const u8 gMonBackPic_Relicanth[]; +extern const u8 gMonShinyPalette_Relicanth[]; +extern const u8 gMonIcon_Relicanth[]; +extern const u8 gMonFootprint_Relicanth[]; +extern const u8 gMonFrontPic_Aron[]; +extern const u8 gMonPalette_Aron[]; +extern const u8 gMonBackPic_Aron[]; +extern const u8 gMonShinyPalette_Aron[]; +extern const u8 gMonIcon_Aron[]; +extern const u8 gMonFootprint_Aron[]; +extern const u8 gMonFrontPic_Lairon[]; +extern const u8 gMonPalette_Lairon[]; +extern const u8 gMonBackPic_Lairon[]; +extern const u8 gMonShinyPalette_Lairon[]; +extern const u8 gMonIcon_Lairon[]; +extern const u8 gMonFootprint_Lairon[]; +extern const u8 gMonFrontPic_Aggron[]; +extern const u8 gMonPalette_Aggron[]; +extern const u8 gMonBackPic_Aggron[]; +extern const u8 gMonShinyPalette_Aggron[]; +extern const u8 gMonIcon_Aggron[]; +extern const u8 gMonFootprint_Aggron[]; +extern const u8 gMonFrontPic_Castform[]; +extern const u8 gMonPalette_Castform[]; +extern const u8 gMonBackPic_Castform[]; +extern const u8 gMonShinyPalette_Castform[]; +extern const u8 gMonIcon_Castform[]; +extern const u8 gMonFootprint_Castform[]; +extern const u8 gMonFrontPic_Volbeat[]; +extern const u8 gMonPalette_Volbeat[]; +extern const u8 gMonBackPic_Volbeat[]; +extern const u8 gMonShinyPalette_Volbeat[]; +extern const u8 gMonIcon_Volbeat[]; +extern const u8 gMonFootprint_Volbeat[]; +extern const u8 gMonFrontPic_Illumise[]; +extern const u8 gMonPalette_Illumise[]; +extern const u8 gMonBackPic_Illumise[]; +extern const u8 gMonShinyPalette_Illumise[]; +extern const u8 gMonIcon_Illumise[]; +extern const u8 gMonFootprint_Illumise[]; +extern const u8 gMonFrontPic_Lileep[]; +extern const u8 gMonPalette_Lileep[]; +extern const u8 gMonBackPic_Lileep[]; +extern const u8 gMonShinyPalette_Lileep[]; +extern const u8 gMonIcon_Lileep[]; +extern const u8 gMonFootprint_Lileep[]; +extern const u8 gMonFrontPic_Cradily[]; +extern const u8 gMonPalette_Cradily[]; +extern const u8 gMonBackPic_Cradily[]; +extern const u8 gMonShinyPalette_Cradily[]; +extern const u8 gMonIcon_Cradily[]; +extern const u8 gMonFootprint_Cradily[]; +extern const u8 gMonFrontPic_Anorith[]; +extern const u8 gMonPalette_Anorith[]; +extern const u8 gMonBackPic_Anorith[]; +extern const u8 gMonShinyPalette_Anorith[]; +extern const u8 gMonIcon_Anorith[]; +extern const u8 gMonFootprint_Anorith[]; +extern const u8 gMonFrontPic_Armaldo[]; +extern const u8 gMonPalette_Armaldo[]; +extern const u8 gMonBackPic_Armaldo[]; +extern const u8 gMonShinyPalette_Armaldo[]; +extern const u8 gMonIcon_Armaldo[]; +extern const u8 gMonFootprint_Armaldo[]; +extern const u8 gMonFrontPic_Ralts[]; +extern const u8 gMonPalette_Ralts[]; +extern const u8 gMonBackPic_Ralts[]; +extern const u8 gMonShinyPalette_Ralts[]; +extern const u8 gMonIcon_Ralts[]; +extern const u8 gMonFootprint_Ralts[]; +extern const u8 gMonFrontPic_Kirlia[]; +extern const u8 gMonPalette_Kirlia[]; +extern const u8 gMonBackPic_Kirlia[]; +extern const u8 gMonShinyPalette_Kirlia[]; +extern const u8 gMonIcon_Kirlia[]; +extern const u8 gMonFootprint_Kirlia[]; +extern const u8 gMonFrontPic_Gardevoir[]; +extern const u8 gMonPalette_Gardevoir[]; +extern const u8 gMonBackPic_Gardevoir[]; +extern const u8 gMonShinyPalette_Gardevoir[]; +extern const u8 gMonIcon_Gardevoir[]; +extern const u8 gMonFootprint_Gardevoir[]; +extern const u8 gMonFrontPic_Bagon[]; +extern const u8 gMonPalette_Bagon[]; +extern const u8 gMonBackPic_Bagon[]; +extern const u8 gMonShinyPalette_Bagon[]; +extern const u8 gMonIcon_Bagon[]; +extern const u8 gMonFootprint_Bagon[]; +extern const u8 gMonFrontPic_Shelgon[]; +extern const u8 gMonPalette_Shelgon[]; +extern const u8 gMonBackPic_Shelgon[]; +extern const u8 gMonShinyPalette_Shelgon[]; +extern const u8 gMonIcon_Shelgon[]; +extern const u8 gMonFootprint_Shelgon[]; +extern const u8 gMonFrontPic_Salamence[]; +extern const u8 gMonPalette_Salamence[]; +extern const u8 gMonBackPic_Salamence[]; +extern const u8 gMonShinyPalette_Salamence[]; +extern const u8 gMonIcon_Salamence[]; +extern const u8 gMonFootprint_Salamence[]; +extern const u8 gMonFrontPic_Beldum[]; +extern const u8 gMonPalette_Beldum[]; +extern const u8 gMonBackPic_Beldum[]; +extern const u8 gMonShinyPalette_Beldum[]; +extern const u8 gMonIcon_Beldum[]; +extern const u8 gMonFootprint_Beldum[]; +extern const u8 gMonFrontPic_Metang[]; +extern const u8 gMonPalette_Metang[]; +extern const u8 gMonBackPic_Metang[]; +extern const u8 gMonShinyPalette_Metang[]; +extern const u8 gMonIcon_Metang[]; +extern const u8 gMonFootprint_Metang[]; +extern const u8 gMonFrontPic_Metagross[]; +extern const u8 gMonPalette_Metagross[]; +extern const u8 gMonBackPic_Metagross[]; +extern const u8 gMonShinyPalette_Metagross[]; +extern const u8 gMonIcon_Metagross[]; +extern const u8 gMonFootprint_Metagross[]; +extern const u8 gMonFrontPic_Regirock[]; +extern const u8 gMonPalette_Regirock[]; +extern const u8 gMonBackPic_Regirock[]; +extern const u8 gMonShinyPalette_Regirock[]; +extern const u8 gMonIcon_Regirock[]; +extern const u8 gMonFootprint_Regirock[]; +extern const u8 gMonFrontPic_Regice[]; +extern const u8 gMonPalette_Regice[]; +extern const u8 gMonBackPic_Regice[]; +extern const u8 gMonShinyPalette_Regice[]; +extern const u8 gMonIcon_Regice[]; +extern const u8 gMonFootprint_Regice[]; +extern const u8 gMonFrontPic_Registeel[]; +extern const u8 gMonPalette_Registeel[]; +extern const u8 gMonBackPic_Registeel[]; +extern const u8 gMonShinyPalette_Registeel[]; +extern const u8 gMonIcon_Registeel[]; +extern const u8 gMonFootprint_Registeel[]; +extern const u8 gMonFrontPic_Kyogre[]; +extern const u8 gMonPalette_Kyogre[]; +extern const u8 gMonBackPic_Kyogre[]; +extern const u8 gMonShinyPalette_Kyogre[]; +extern const u8 gMonIcon_Kyogre[]; +extern const u8 gMonFootprint_Kyogre[]; +extern const u8 gMonFrontPic_Groudon[]; +extern const u8 gMonPalette_Groudon[]; +extern const u8 gMonBackPic_Groudon[]; +extern const u8 gMonShinyPalette_Groudon[]; +extern const u8 gMonIcon_Groudon[]; +extern const u8 gMonFootprint_Groudon[]; +extern const u8 gMonFrontPic_Rayquaza[]; +extern const u8 gMonPalette_Rayquaza[]; +extern const u8 gMonBackPic_Rayquaza[]; +extern const u8 gMonShinyPalette_Rayquaza[]; +extern const u8 gMonIcon_Rayquaza[]; +extern const u8 gMonFootprint_Rayquaza[]; +extern const u8 gMonFrontPic_Latias[]; +extern const u8 gMonPalette_Latias[]; +extern const u8 gMonBackPic_Latias[]; +extern const u8 gMonShinyPalette_Latias[]; +extern const u8 gMonIcon_Latias[]; +extern const u8 gMonFootprint_Latias[]; +extern const u8 gMonFrontPic_Latios[]; +extern const u8 gMonPalette_Latios[]; +extern const u8 gMonBackPic_Latios[]; +extern const u8 gMonShinyPalette_Latios[]; +extern const u8 gMonIcon_Latios[]; +extern const u8 gMonFootprint_Latios[]; +extern const u8 gMonFrontPic_Jirachi[]; +extern const u8 gMonPalette_Jirachi[]; +extern const u8 gMonBackPic_Jirachi[]; +extern const u8 gMonShinyPalette_Jirachi[]; +extern const u8 gMonIcon_Jirachi[]; +extern const u8 gMonFootprint_Jirachi[]; +extern const u8 gMonFrontPic_Deoxys[]; +extern const u8 gMonPalette_Deoxys[]; +extern const u8 gMonBackPic_Deoxys[]; +extern const u8 gMonShinyPalette_Deoxys[]; +extern const u8 gMonIcon_Deoxys[]; +extern const u8 gMonFootprint_Deoxys[]; +extern const u8 gMonFrontPic_Chimecho[]; +extern const u8 gMonPalette_Chimecho[]; +extern const u8 gMonBackPic_Chimecho[]; +extern const u8 gMonShinyPalette_Chimecho[]; +extern const u8 gMonIcon_Chimecho[]; +extern const u8 gMonFootprint_Chimecho[]; +extern const u8 gMonPic_Egg[]; +extern const u8 gMonPalette_Egg[]; +extern const u8 gMonFrontPic_UnownB[]; +extern const u8 gMonBackPic_UnownB[]; +extern const u8 gMonIcon_UnownB[]; +extern const u8 gMonFrontPic_UnownC[]; +extern const u8 gMonBackPic_UnownC[]; +extern const u8 gMonIcon_UnownC[]; +extern const u8 gMonFrontPic_UnownD[]; +extern const u8 gMonBackPic_UnownD[]; +extern const u8 gMonIcon_UnownD[]; +extern const u8 gMonFrontPic_UnownE[]; +extern const u8 gMonBackPic_UnownE[]; +extern const u8 gMonIcon_UnownE[]; +extern const u8 gMonFrontPic_UnownF[]; +extern const u8 gMonBackPic_UnownF[]; +extern const u8 gMonIcon_UnownF[]; +extern const u8 gMonFrontPic_UnownG[]; +extern const u8 gMonBackPic_UnownG[]; +extern const u8 gMonIcon_UnownG[]; +extern const u8 gMonFrontPic_UnownH[]; +extern const u8 gMonBackPic_UnownH[]; +extern const u8 gMonIcon_UnownH[]; +extern const u8 gMonFrontPic_UnownI[]; +extern const u8 gMonBackPic_UnownI[]; +extern const u8 gMonIcon_UnownI[]; +extern const u8 gMonFrontPic_UnownJ[]; +extern const u8 gMonBackPic_UnownJ[]; +extern const u8 gMonIcon_UnownJ[]; +extern const u8 gMonFrontPic_UnownK[]; +extern const u8 gMonBackPic_UnownK[]; +extern const u8 gMonIcon_UnownK[]; +extern const u8 gMonFrontPic_UnownL[]; +extern const u8 gMonBackPic_UnownL[]; +extern const u8 gMonIcon_UnownL[]; +extern const u8 gMonFrontPic_UnownM[]; +extern const u8 gMonBackPic_UnownM[]; +extern const u8 gMonIcon_UnownM[]; +extern const u8 gMonFrontPic_UnownN[]; +extern const u8 gMonBackPic_UnownN[]; +extern const u8 gMonIcon_UnownN[]; +extern const u8 gMonFrontPic_UnownO[]; +extern const u8 gMonBackPic_UnownO[]; +extern const u8 gMonIcon_UnownO[]; +extern const u8 gMonFrontPic_UnownP[]; +extern const u8 gMonBackPic_UnownP[]; +extern const u8 gMonIcon_UnownP[]; +extern const u8 gMonFrontPic_UnownQ[]; +extern const u8 gMonBackPic_UnownQ[]; +extern const u8 gMonIcon_UnownQ[]; +extern const u8 gMonFrontPic_UnownR[]; +extern const u8 gMonBackPic_UnownR[]; +extern const u8 gMonIcon_UnownR[]; +extern const u8 gMonFrontPic_UnownS[]; +extern const u8 gMonBackPic_UnownS[]; +extern const u8 gMonIcon_UnownS[]; +extern const u8 gMonFrontPic_UnownT[]; +extern const u8 gMonBackPic_UnownT[]; +extern const u8 gMonIcon_UnownT[]; +extern const u8 gMonFrontPic_UnownU[]; +extern const u8 gMonBackPic_UnownU[]; +extern const u8 gMonIcon_UnownU[]; +extern const u8 gMonFrontPic_UnownV[]; +extern const u8 gMonBackPic_UnownV[]; +extern const u8 gMonIcon_UnownV[]; +extern const u8 gMonFrontPic_UnownW[]; +extern const u8 gMonBackPic_UnownW[]; +extern const u8 gMonIcon_UnownW[]; +extern const u8 gMonFrontPic_UnownX[]; +extern const u8 gMonBackPic_UnownX[]; +extern const u8 gMonIcon_UnownX[]; +extern const u8 gMonFrontPic_UnownY[]; +extern const u8 gMonBackPic_UnownY[]; +extern const u8 gMonIcon_UnownY[]; +extern const u8 gMonFrontPic_UnownZ[]; +extern const u8 gMonBackPic_UnownZ[]; +extern const u8 gMonIcon_UnownZ[]; +extern const u8 gMonFrontPic_UnownExclamationMark[]; +extern const u8 gMonBackPic_UnownExclamationMark[]; +extern const u8 gMonIcon_UnownExclamationMark[]; +extern const u8 gMonFrontPic_UnownQuestionMark[]; +extern const u8 gMonBackPic_UnownQuestionMark[]; +extern const u8 gMonIcon_UnownQuestionMark[]; + +extern const u8 gMonIcon_QuestionMark[]; +extern const u8 gMonIcon_Egg[]; +extern const u16 gMonIconPalettes[][16]; + // pokeblock extern const u8 gMenuPokeblock_Gfx[]; extern const u8 gMenuPokeblock_Pal[]; diff --git a/include/sprite.h b/include/sprite.h index 170d77c3f2..d5c6bc402f 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -120,10 +120,6 @@ union AffineAnimCmd {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} #define AFFINEANIMCMD_END \ {.type = AFFINEANIMCMDTYPE_END} -#define AFFINEANIMCMD_LOOP(_count) \ - {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}} -#define AFFINEANIMCMD_JUMP(_target) \ - {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} struct AffineAnimState { diff --git a/ld_script.txt b/ld_script.txt index 8b9af42889..b691014bc8 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -132,6 +132,7 @@ SECTIONS { asm/trainer_card.o(.text); src/pokemon_storage_system.o(.text); asm/pokemon_storage_system.o(.text); + src/pokemon_icon.o(.text); asm/pokemon_icon.o(.text); asm/script_movement.o(.text); asm/fldeff_cut.o(.text); @@ -391,7 +392,7 @@ SECTIONS { data/pokedex.o(.rodata); data/trainer_card.o(.rodata); data/pokemon_storage_system.o(.rodata); - data/pokemon_icon.o(.rodata); + src/pokemon_icon.o(.rodata); data/fldeff_cut.o(.rodata); data/map_name_popup.o(.rodata); data/item_menu_icons.o(.rodata); diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c new file mode 100644 index 0000000000..4d1cc51c5f --- /dev/null +++ b/src/pokemon_icon.c @@ -0,0 +1,1014 @@ +#include "global.h" +#include "sprite.h" +#include "graphics.h" + +#define POKE_ICON_BASE_PAL_TAG 56000 + +const u8 * const gMonIconTable[] = +{ + gMonIcon_Bulbasaur, + gMonIcon_Bulbasaur, + gMonIcon_Ivysaur, + gMonIcon_Venusaur, + gMonIcon_Charmander, + gMonIcon_Charmeleon, + gMonIcon_Charizard, + gMonIcon_Squirtle, + gMonIcon_Wartortle, + gMonIcon_Blastoise, + gMonIcon_Caterpie, + gMonIcon_Metapod, + gMonIcon_Butterfree, + gMonIcon_Weedle, + gMonIcon_Kakuna, + gMonIcon_Beedrill, + gMonIcon_Pidgey, + gMonIcon_Pidgeotto, + gMonIcon_Pidgeot, + gMonIcon_Rattata, + gMonIcon_Raticate, + gMonIcon_Spearow, + gMonIcon_Fearow, + gMonIcon_Ekans, + gMonIcon_Arbok, + gMonIcon_Pikachu, + gMonIcon_Raichu, + gMonIcon_Sandshrew, + gMonIcon_Sandslash, + gMonIcon_NidoranF, + gMonIcon_Nidorina, + gMonIcon_Nidoqueen, + gMonIcon_NidoranM, + gMonIcon_Nidorino, + gMonIcon_Nidoking, + gMonIcon_Clefairy, + gMonIcon_Clefable, + gMonIcon_Vulpix, + gMonIcon_Ninetales, + gMonIcon_Jigglypuff, + gMonIcon_Wigglytuff, + gMonIcon_Zubat, + gMonIcon_Golbat, + gMonIcon_Oddish, + gMonIcon_Gloom, + gMonIcon_Vileplume, + gMonIcon_Paras, + gMonIcon_Parasect, + gMonIcon_Venonat, + gMonIcon_Venomoth, + gMonIcon_Diglett, + gMonIcon_Dugtrio, + gMonIcon_Meowth, + gMonIcon_Persian, + gMonIcon_Psyduck, + gMonIcon_Golduck, + gMonIcon_Mankey, + gMonIcon_Primeape, + gMonIcon_Growlithe, + gMonIcon_Arcanine, + gMonIcon_Poliwag, + gMonIcon_Poliwhirl, + gMonIcon_Poliwrath, + gMonIcon_Abra, + gMonIcon_Kadabra, + gMonIcon_Alakazam, + gMonIcon_Machop, + gMonIcon_Machoke, + gMonIcon_Machamp, + gMonIcon_Bellsprout, + gMonIcon_Weepinbell, + gMonIcon_Victreebel, + gMonIcon_Tentacool, + gMonIcon_Tentacruel, + gMonIcon_Geodude, + gMonIcon_Graveler, + gMonIcon_Golem, + gMonIcon_Ponyta, + gMonIcon_Rapidash, + gMonIcon_Slowpoke, + gMonIcon_Slowbro, + gMonIcon_Magnemite, + gMonIcon_Magneton, + gMonIcon_Farfetchd, + gMonIcon_Doduo, + gMonIcon_Dodrio, + gMonIcon_Seel, + gMonIcon_Dewgong, + gMonIcon_Grimer, + gMonIcon_Muk, + gMonIcon_Shellder, + gMonIcon_Cloyster, + gMonIcon_Gastly, + gMonIcon_Haunter, + gMonIcon_Gengar, + gMonIcon_Onix, + gMonIcon_Drowzee, + gMonIcon_Hypno, + gMonIcon_Krabby, + gMonIcon_Kingler, + gMonIcon_Voltorb, + gMonIcon_Electrode, + gMonIcon_Exeggcute, + gMonIcon_Exeggutor, + gMonIcon_Cubone, + gMonIcon_Marowak, + gMonIcon_Hitmonlee, + gMonIcon_Hitmonchan, + gMonIcon_Lickitung, + gMonIcon_Koffing, + gMonIcon_Weezing, + gMonIcon_Rhyhorn, + gMonIcon_Rhydon, + gMonIcon_Chansey, + gMonIcon_Tangela, + gMonIcon_Kangaskhan, + gMonIcon_Horsea, + gMonIcon_Seadra, + gMonIcon_Goldeen, + gMonIcon_Seaking, + gMonIcon_Staryu, + gMonIcon_Starmie, + gMonIcon_Mrmime, + gMonIcon_Scyther, + gMonIcon_Jynx, + gMonIcon_Electabuzz, + gMonIcon_Magmar, + gMonIcon_Pinsir, + gMonIcon_Tauros, + gMonIcon_Magikarp, + gMonIcon_Gyarados, + gMonIcon_Lapras, + gMonIcon_Ditto, + gMonIcon_Eevee, + gMonIcon_Vaporeon, + gMonIcon_Jolteon, + gMonIcon_Flareon, + gMonIcon_Porygon, + gMonIcon_Omanyte, + gMonIcon_Omastar, + gMonIcon_Kabuto, + gMonIcon_Kabutops, + gMonIcon_Aerodactyl, + gMonIcon_Snorlax, + gMonIcon_Articuno, + gMonIcon_Zapdos, + gMonIcon_Moltres, + gMonIcon_Dratini, + gMonIcon_Dragonair, + gMonIcon_Dragonite, + gMonIcon_Mewtwo, + gMonIcon_Mew, + gMonIcon_Chikorita, + gMonIcon_Bayleef, + gMonIcon_Meganium, + gMonIcon_Cyndaquil, + gMonIcon_Quilava, + gMonIcon_Typhlosion, + gMonIcon_Totodile, + gMonIcon_Croconaw, + gMonIcon_Feraligatr, + gMonIcon_Sentret, + gMonIcon_Furret, + gMonIcon_Hoothoot, + gMonIcon_Noctowl, + gMonIcon_Ledyba, + gMonIcon_Ledian, + gMonIcon_Spinarak, + gMonIcon_Ariados, + gMonIcon_Crobat, + gMonIcon_Chinchou, + gMonIcon_Lanturn, + gMonIcon_Pichu, + gMonIcon_Cleffa, + gMonIcon_Igglybuff, + gMonIcon_Togepi, + gMonIcon_Togetic, + gMonIcon_Natu, + gMonIcon_Xatu, + gMonIcon_Mareep, + gMonIcon_Flaaffy, + gMonIcon_Ampharos, + gMonIcon_Bellossom, + gMonIcon_Marill, + gMonIcon_Azumarill, + gMonIcon_Sudowoodo, + gMonIcon_Politoed, + gMonIcon_Hoppip, + gMonIcon_Skiploom, + gMonIcon_Jumpluff, + gMonIcon_Aipom, + gMonIcon_Sunkern, + gMonIcon_Sunflora, + gMonIcon_Yanma, + gMonIcon_Wooper, + gMonIcon_Quagsire, + gMonIcon_Espeon, + gMonIcon_Umbreon, + gMonIcon_Murkrow, + gMonIcon_Slowking, + gMonIcon_Misdreavus, + gMonIcon_UnownA, + gMonIcon_Wobbuffet, + gMonIcon_Girafarig, + gMonIcon_Pineco, + gMonIcon_Forretress, + gMonIcon_Dunsparce, + gMonIcon_Gligar, + gMonIcon_Steelix, + gMonIcon_Snubbull, + gMonIcon_Granbull, + gMonIcon_Qwilfish, + gMonIcon_Scizor, + gMonIcon_Shuckle, + gMonIcon_Heracross, + gMonIcon_Sneasel, + gMonIcon_Teddiursa, + gMonIcon_Ursaring, + gMonIcon_Slugma, + gMonIcon_Magcargo, + gMonIcon_Swinub, + gMonIcon_Piloswine, + gMonIcon_Corsola, + gMonIcon_Remoraid, + gMonIcon_Octillery, + gMonIcon_Delibird, + gMonIcon_Mantine, + gMonIcon_Skarmory, + gMonIcon_Houndour, + gMonIcon_Houndoom, + gMonIcon_Kingdra, + gMonIcon_Phanpy, + gMonIcon_Donphan, + gMonIcon_Porygon2, + gMonIcon_Stantler, + gMonIcon_Smeargle, + gMonIcon_Tyrogue, + gMonIcon_Hitmontop, + gMonIcon_Smoochum, + gMonIcon_Elekid, + gMonIcon_Magby, + gMonIcon_Miltank, + gMonIcon_Blissey, + gMonIcon_Raikou, + gMonIcon_Entei, + gMonIcon_Suicune, + gMonIcon_Larvitar, + gMonIcon_Pupitar, + gMonIcon_Tyranitar, + gMonIcon_Lugia, + gMonIcon_HoOh, + gMonIcon_Celebi, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_QuestionMark, + gMonIcon_Treecko, + gMonIcon_Grovyle, + gMonIcon_Sceptile, + gMonIcon_Torchic, + gMonIcon_Combusken, + gMonIcon_Blaziken, + gMonIcon_Mudkip, + gMonIcon_Marshtomp, + gMonIcon_Swampert, + gMonIcon_Poochyena, + gMonIcon_Mightyena, + gMonIcon_Zigzagoon, + gMonIcon_Linoone, + gMonIcon_Wurmple, + gMonIcon_Silcoon, + gMonIcon_Beautifly, + gMonIcon_Cascoon, + gMonIcon_Dustox, + gMonIcon_Lotad, + gMonIcon_Lombre, + gMonIcon_Ludicolo, + gMonIcon_Seedot, + gMonIcon_Nuzleaf, + gMonIcon_Shiftry, + gMonIcon_Nincada, + gMonIcon_Ninjask, + gMonIcon_Shedinja, + gMonIcon_Taillow, + gMonIcon_Swellow, + gMonIcon_Shroomish, + gMonIcon_Breloom, + gMonIcon_Spinda, + gMonIcon_Wingull, + gMonIcon_Pelipper, + gMonIcon_Surskit, + gMonIcon_Masquerain, + gMonIcon_Wailmer, + gMonIcon_Wailord, + gMonIcon_Skitty, + gMonIcon_Delcatty, + gMonIcon_Kecleon, + gMonIcon_Baltoy, + gMonIcon_Claydol, + gMonIcon_Nosepass, + gMonIcon_Torkoal, + gMonIcon_Sableye, + gMonIcon_Barboach, + gMonIcon_Whiscash, + gMonIcon_Luvdisc, + gMonIcon_Corphish, + gMonIcon_Crawdaunt, + gMonIcon_Feebas, + gMonIcon_Milotic, + gMonIcon_Carvanha, + gMonIcon_Sharpedo, + gMonIcon_Trapinch, + gMonIcon_Vibrava, + gMonIcon_Flygon, + gMonIcon_Makuhita, + gMonIcon_Hariyama, + gMonIcon_Electrike, + gMonIcon_Manectric, + gMonIcon_Numel, + gMonIcon_Camerupt, + gMonIcon_Spheal, + gMonIcon_Sealeo, + gMonIcon_Walrein, + gMonIcon_Cacnea, + gMonIcon_Cacturne, + gMonIcon_Snorunt, + gMonIcon_Glalie, + gMonIcon_Lunatone, + gMonIcon_Solrock, + gMonIcon_Azurill, + gMonIcon_Spoink, + gMonIcon_Grumpig, + gMonIcon_Plusle, + gMonIcon_Minun, + gMonIcon_Mawile, + gMonIcon_Meditite, + gMonIcon_Medicham, + gMonIcon_Swablu, + gMonIcon_Altaria, + gMonIcon_Wynaut, + gMonIcon_Duskull, + gMonIcon_Dusclops, + gMonIcon_Roselia, + gMonIcon_Slakoth, + gMonIcon_Vigoroth, + gMonIcon_Slaking, + gMonIcon_Gulpin, + gMonIcon_Swalot, + gMonIcon_Tropius, + gMonIcon_Whismur, + gMonIcon_Loudred, + gMonIcon_Exploud, + gMonIcon_Clamperl, + gMonIcon_Huntail, + gMonIcon_Gorebyss, + gMonIcon_Absol, + gMonIcon_Shuppet, + gMonIcon_Banette, + gMonIcon_Seviper, + gMonIcon_Zangoose, + gMonIcon_Relicanth, + gMonIcon_Aron, + gMonIcon_Lairon, + gMonIcon_Aggron, + gMonIcon_Castform, + gMonIcon_Volbeat, + gMonIcon_Illumise, + gMonIcon_Lileep, + gMonIcon_Cradily, + gMonIcon_Anorith, + gMonIcon_Armaldo, + gMonIcon_Ralts, + gMonIcon_Kirlia, + gMonIcon_Gardevoir, + gMonIcon_Bagon, + gMonIcon_Shelgon, + gMonIcon_Salamence, + gMonIcon_Beldum, + gMonIcon_Metang, + gMonIcon_Metagross, + gMonIcon_Regirock, + gMonIcon_Regice, + gMonIcon_Registeel, + gMonIcon_Kyogre, + gMonIcon_Groudon, + gMonIcon_Rayquaza, + gMonIcon_Latias, + gMonIcon_Latios, + gMonIcon_Jirachi, + gMonIcon_Deoxys, + gMonIcon_Chimecho, + gMonIcon_Egg, + gMonIcon_UnownB, + gMonIcon_UnownC, + gMonIcon_UnownD, + gMonIcon_UnownE, + gMonIcon_UnownF, + gMonIcon_UnownG, + gMonIcon_UnownH, + gMonIcon_UnownI, + gMonIcon_UnownJ, + gMonIcon_UnownK, + gMonIcon_UnownL, + gMonIcon_UnownM, + gMonIcon_UnownN, + gMonIcon_UnownO, + gMonIcon_UnownP, + gMonIcon_UnownQ, + gMonIcon_UnownR, + gMonIcon_UnownS, + gMonIcon_UnownT, + gMonIcon_UnownU, + gMonIcon_UnownV, + gMonIcon_UnownW, + gMonIcon_UnownX, + gMonIcon_UnownY, + gMonIcon_UnownZ, + gMonIcon_UnownExclamationMark, + gMonIcon_UnownQuestionMark, +}; + +const u8 gMonIconPaletteIndices[] = +{ + 0, // ?????????? + 1, // Bulbasaur + 1, // Ivysaur + 1, // Venusaur + 0, // Charmander + 0, // Charmeleon + 0, // Charizard + 0, // Squirtle + 2, // Wartortle + 2, // Blastoise + 1, // Caterpie + 1, // Metapod + 0, // Butterfree + 1, // Weedle + 2, // Kakuna + 2, // Beedrill + 0, // Pidgey + 0, // Pidgeotto + 0, // Pidgeot + 2, // Rattata + 1, // Raticate + 0, // Spearow + 0, // Fearow + 2, // Ekans + 2, // Arbok + 2, // Pikachu + 0, // Raichu + 2, // Sandshrew + 2, // Sandslash + 2, // Nidoran♀ + 2, // Nidorina + 2, // Nidoqueen + 2, // Nidoran♂ + 2, // Nidorino + 2, // Nidoking + 0, // Clefairy + 0, // Clefable + 2, // Vulpix + 1, // Ninetales + 0, // Jigglypuff + 0, // Wigglytuff + 2, // Zubat + 2, // Golbat + 1, // Oddish + 0, // Gloom + 0, // Vileplume + 0, // Paras + 0, // Parasect + 0, // Venonat + 2, // Venomoth + 2, // Diglett + 2, // Dugtrio + 1, // Meowth + 1, // Persian + 1, // Psyduck + 2, // Golduck + 1, // Mankey + 2, // Primeape + 0, // Growlithe + 0, // Arcanine + 0, // Poliwag + 0, // Poliwhirl + 0, // Poliwrath + 2, // Abra + 2, // Kadabra + 2, // Alakazam + 0, // Machop + 2, // Machoke + 0, // Machamp + 1, // Bellsprout + 1, // Weepinbell + 1, // Victreebel + 2, // Tentacool + 2, // Tentacruel + 1, // Geodude + 1, // Graveler + 1, // Golem + 0, // Ponyta + 0, // Rapidash + 0, // Slowpoke + 0, // Slowbro + 0, // Magnemite + 0, // Magneton + 1, // Farfetch'd + 2, // Doduo + 2, // Dodrio + 2, // Seel + 2, // Dewgong + 2, // Grimer + 2, // Muk + 2, // Shellder + 2, // Cloyster + 2, // Gastly + 2, // Haunter + 2, // Gengar + 2, // Onix + 2, // Drowzee + 1, // Hypno + 2, // Krabby + 2, // Kingler + 0, // Voltorb + 0, // Electrode + 0, // Exeggcute + 1, // Exeggutor + 1, // Cubone + 1, // Marowak + 2, // Hitmonlee + 2, // Hitmonchan + 1, // Lickitung + 2, // Koffing + 2, // Weezing + 1, // Rhyhorn + 1, // Rhydon + 0, // Chansey + 0, // Tangela + 1, // Kangaskhan + 0, // Horsea + 0, // Seadra + 0, // Goldeen + 0, // Seaking + 2, // Staryu + 2, // Starmie + 0, // Mr. mime + 1, // Scyther + 2, // Jynx + 1, // Electabuzz + 0, // Magmar + 2, // Pinsir + 2, // Tauros + 0, // Magikarp + 0, // Gyarados + 2, // Lapras + 2, // Ditto + 2, // Eevee + 0, // Vaporeon + 0, // Jolteon + 0, // Flareon + 0, // Porygon + 0, // Omanyte + 0, // Omastar + 2, // Kabuto + 2, // Kabutops + 0, // Aerodactyl + 1, // Snorlax + 0, // Articuno + 0, // Zapdos + 0, // Moltres + 0, // Dratini + 0, // Dragonair + 2, // Dragonite + 2, // Mewtwo + 0, // Mew + 1, // Chikorita + 1, // Bayleef + 1, // Meganium + 1, // Cyndaquil + 1, // Quilava + 1, // Typhlosion + 2, // Totodile + 2, // Croconaw + 2, // Feraligatr + 2, // Sentret + 2, // Furret + 2, // Hoothoot + 2, // Noctowl + 0, // Ledyba + 0, // Ledian + 1, // Spinarak + 0, // Ariados + 2, // Crobat + 2, // Chinchou + 0, // Lanturn + 0, // Pichu + 0, // Cleffa + 1, // Igglybuff + 2, // Togepi + 2, // Togetic + 0, // Natu + 0, // Xatu + 2, // Mareep + 0, // Flaaffy + 0, // Ampharos + 1, // Bellossom + 2, // Marill + 2, // Azumarill + 1, // Sudowoodo + 1, // Politoed + 1, // Hoppip + 1, // Skiploom + 2, // Jumpluff + 2, // Aipom + 1, // Sunkern + 1, // Sunflora + 1, // Yanma + 0, // Wooper + 0, // Quagsire + 2, // Espeon + 2, // Umbreon + 2, // Murkrow + 0, // Slowking + 0, // Misdreavus + 0, // Unown A + 0, // Wobbuffet + 1, // Girafarig + 0, // Pineco + 2, // Forretress + 2, // Dunsparce + 2, // Gligar + 0, // Steelix + 0, // Snubbull + 2, // Granbull + 0, // Qwilfish + 0, // Scizor + 1, // Shuckle + 2, // Heracross + 0, // Sneasel + 0, // Teddiursa + 2, // Ursaring + 0, // Slugma + 0, // Magcargo + 2, // Swinub + 2, // Piloswine + 0, // Corsola + 0, // Remoraid + 0, // Octillery + 0, // Delibird + 2, // Mantine + 0, // Skarmory + 0, // Houndour + 0, // Houndoom + 0, // Kingdra + 0, // Phanpy + 0, // Donphan + 0, // Porygon2 + 2, // Stantler + 1, // Smeargle + 2, // Tyrogue + 2, // Hitmontop + 1, // Smoochum + 1, // Elekid + 1, // Magby + 1, // Miltank + 1, // Blissey + 0, // Raikou + 2, // Entei + 0, // Suicune + 1, // Larvitar + 0, // Pupitar + 1, // Tyranitar + 0, // Lugia + 1, // Ho-Oh + 1, // Celebi + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 0, // ? + 1, // Treecko + 0, // Grovyle + 1, // Sceptile + 0, // Torchic + 0, // Combusken + 0, // Blaziken + 0, // Mudkip + 0, // Marshtomp + 0, // Swampert + 2, // Poochyena + 2, // Mightyena + 2, // Zigzagoon + 2, // Linoone + 0, // Wurmple + 2, // Silcoon + 0, // Beautifly + 2, // Cascoon + 1, // Dustox + 1, // Lotad + 1, // Lombre + 1, // Ludicolo + 1, // Seedot + 1, // Nuzleaf + 0, // Shiftry + 1, // Nincada + 1, // Ninjask + 1, // Shedinja + 2, // Taillow + 2, // Swellow + 1, // Shroomish + 1, // Breloom + 1, // Spinda + 0, // Wingull + 0, // Pelipper + 2, // Surskit + 0, // Masquerain + 2, // Wailmer + 0, // Wailord + 0, // Skitty + 2, // Delcatty + 1, // Kecleon + 1, // Baltoy + 0, // Claydol + 0, // Nosepass + 1, // Torkoal + 2, // Sableye + 0, // Barboach + 0, // Whiscash + 0, // Luvdisc + 0, // Corphish + 0, // Crawdaunt + 2, // Feebas + 0, // Milotic + 0, // Carvanha + 0, // Sharpedo + 1, // Trapinch + 1, // Vibrava + 1, // Flygon + 2, // Makuhita + 1, // Hariyama + 1, // Electrike + 0, // Manectric + 1, // Numel + 0, // Camerupt + 2, // Spheal + 2, // Sealeo + 0, // Walrein + 1, // Cacnea + 1, // Cacturne + 2, // Snorunt + 0, // Glalie + 1, // Lunatone + 0, // Solrock + 2, // Azurill + 0, // Spoink + 2, // Grumpig + 0, // Plusle + 0, // Minun + 2, // Mawile + 0, // Meditite + 0, // Medicham + 0, // Swablu + 0, // Altaria + 0, // Wynaut + 0, // Duskull + 0, // Dusclops + 0, // Roselia + 2, // Slakoth + 2, // Vigoroth + 1, // Slaking + 1, // Gulpin + 2, // Swalot + 1, // Tropius + 0, // Whismur + 2, // Loudred + 2, // Exploud + 0, // Clamperl + 0, // Huntail + 0, // Gorebyss + 0, // Absol + 0, // Shuppet + 0, // Banette + 2, // Seviper + 0, // Zangoose + 1, // Relicanth + 2, // Aron + 2, // Lairon + 2, // Aggron + 0, // Castform + 0, // Volbeat + 2, // Illumise + 2, // Lileep + 0, // Cradily + 0, // Anorith + 0, // Armaldo + 1, // Ralts + 1, // Kirlia + 1, // Gardevoir + 2, // Bagon + 2, // Shelgon + 0, // Salamence + 0, // Beldum + 0, // Metang + 0, // Metagross + 2, // Regirock + 2, // Regice + 2, // Registeel + 2, // Kyogre + 0, // Groudon + 1, // Rayquaza + 0, // Latias + 2, // Latios + 0, // Jirachi + 0, // Deoxys + 0, // Chimecho + 1, // Egg + 0, // Unown B + 0, // Unown C + 0, // Unown D + 0, // Unown E + 0, // Unown F + 0, // Unown G + 0, // Unown H + 0, // Unown I + 0, // Unown J + 0, // Unown K + 0, // Unown L + 0, // Unown M + 0, // Unown N + 0, // Unown O + 0, // Unown P + 0, // Unown Q + 0, // Unown R + 0, // Unown S + 0, // Unown T + 0, // Unown U + 0, // Unown V + 0, // Unown W + 0, // Unown X + 0, // Unown Y + 0, // Unown Z + 0, // Unown Exclamation Mark + 0, // Unown Question Mark +}; + +const struct SpritePalette gMonIconPaletteTable[] = +{ + { gMonIconPalettes[0], POKE_ICON_BASE_PAL_TAG + 0 }, + { gMonIconPalettes[1], POKE_ICON_BASE_PAL_TAG + 1 }, + { gMonIconPalettes[2], POKE_ICON_BASE_PAL_TAG + 2 }, + +// There are only 3 actual palettes. The following are unused +// and don't point to valid data. + { gMonIconPalettes[3], POKE_ICON_BASE_PAL_TAG + 3 }, + { gMonIconPalettes[4], POKE_ICON_BASE_PAL_TAG + 4 }, + { gMonIconPalettes[5], POKE_ICON_BASE_PAL_TAG + 5 }, +}; + +const struct OamData sMonIconOamData = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0 +}; + +// fastest to slowest + +static const union AnimCmd sAnim_0[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sAnim_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sAnim_2[] = +{ + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sAnim_3[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sAnim_4[] = +{ + ANIMCMD_FRAME(0, 29), + ANIMCMD_FRAME(0, 29), // frame 0 is repeated + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const sMonIconAnims[] = +{ + sAnim_0, + sAnim_1, + sAnim_2, + sAnim_3, + sAnim_4, +}; + +static const union AffineAnimCmd sAffineAnim_0[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 0, 10), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd sAffineAnim_1[] = +{ + AFFINEANIMCMD_FRAME(-2, -2, 0, 122), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const sMonIconAffineAnims[] = +{ + sAffineAnim_0, + sAffineAnim_1, +}; + +const u16 sSpriteImageSizes[3][4] = +{ + // square + { + 0x20, // 1×1 + 0x80, // 2×2 + 0x200, // 4×4 + 0x800, // 8×8 + }, + + // horizontal rectangle + { + 0x40, // 2×1 + 0x80, // 4×1 + 0x100, // 4×2 + 0x400, // 8×4 + }, + + // vertical rectangle + { + 0x40, // 1×2 + 0x80, // 1×4 + 0x100, // 2×4 + 0x400, // 4×8 + }, +}; From 3ca5af4d5ddb91987f598a0d44e57911ef5445ea Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 22 Dec 2017 20:10:51 +0100 Subject: [PATCH 13/54] do some pointer storage system hunting --- asm/pokemon_storage_system.s | 4 +- data/pokemon_storage_system.s | 139 ++++++++++++++++++++++++++++------ data/strings.s | 20 ++--- include/strings.h | 11 +++ ld_script.txt | 1 + src/pokemon_storage_system.c | 67 ++++++++++++++++ 6 files changed, 205 insertions(+), 37 deletions(-) diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 1b93496a7b..45d56160af 100755 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -1106,7 +1106,7 @@ sub_80C7958: @ 80C7958 ldrh r0, [r3] adds r0, 0x1 strh r0, [r1] - ldr r0, =gUnknown_08571710 + ldr r0, =sSpriteAnimTable_8571710 str r0, [sp, 0xC] movs r4, 0 _080C7A10: @@ -9124,7 +9124,7 @@ _080CBF80: adds r1, r3 ldr r0, [r1] ldr r2, [r0] - ldr r0, =gUnknown_0857291C + ldr r0, =gSpriteAffineAnimTable_857291C str r0, [r2, 0x10] ldr r0, [r1] ldr r0, [r0] diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s index 4f2815713c..4c630c9239 100644 --- a/data/pokemon_storage_system.s +++ b/data/pokemon_storage_system.s @@ -4,21 +4,6 @@ .section .rodata .align 2, 0 -gUnknown_085716C0:: @ 85716C0 - .incbin "baserom.gba", 0x5716c0, 0x28 - -gUnknown_085716E8:: @ 85716E8 - .incbin "baserom.gba", 0x5716e8, 0x28 - -gUnknown_08571710:: @ 8571710 - .incbin "baserom.gba", 0x571710, 0x24 - -gUnknown_08571734:: @ 8571734 - .incbin "baserom.gba", 0x571734, 0x3 - -gUnknown_08571737:: @ 8571737 - .incbin "baserom.gba", 0x571737, 0x5 - gUnknown_0857173C:: @ 857173C .incbin "baserom.gba", 0x57173c, 0x20 @@ -59,7 +44,13 @@ gUnknown_085724A4:: @ 85724A4 .incbin "baserom.gba", 0x5724a4, 0x18 gUnknown_085724BC:: @ 85724BC - .incbin "baserom.gba", 0x5724bc, 0x238 + .incbin "baserom.gba", 0x5724bc, 0x18 + +gUnknown_085724D4:: @ 85724D4 + .incbin "baserom.gba", 0x5724d4, 0x20 + +gUnknown_085724F4:: @ 85724F4 + .incbin "baserom.gba", 0x5724f4, 0x200 gUnknown_085726F4:: @ 85726F4 .incbin "baserom.gba", 0x5726f4, 0x20 @@ -71,28 +62,126 @@ gUnknown_08572734:: @ 8572734 .incbin "baserom.gba", 0x572734, 0x10 gUnknown_08572744:: @ 8572744 - .incbin "baserom.gba", 0x572744, 0x8 + obj_pal gUnknown_085724D4, 0xDACA gUnknown_0857274C:: @ 857274C - .incbin "baserom.gba", 0x57274c, 0x8 + obj_tiles gUnknown_085724F4, 0x1C0, 5 gUnknown_08572754:: @ 8572754 - .incbin "baserom.gba", 0x572754, 0x18 + spr_template 2, 0xDAC6, gOamData_857286C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_0857276C:: @ 857276C - .incbin "baserom.gba", 0x57276c, 0xf8 + .4byte gUnknown_085EB7EF, 0 + .4byte gUnknown_085EB802, 0 + .4byte gUnknown_085EB81A, 0 + .4byte gUnknown_085EB82F, 0 + .4byte gUnknown_085EB843, 1 + .4byte gUnknown_085EB853, 0 + .4byte gUnknown_085EB866, 0 + .4byte gUnknown_085EB87C, 1 + .4byte gUnknown_085EB88E, 0 + .4byte gUnknown_085EB89F, 0 + .4byte gUnknown_085EB8B5, 4 + .4byte gUnknown_085EB8C6, 6 + .4byte gUnknown_085EB8D3, 0 + .4byte gUnknown_085EB8E6, 0 + .4byte gUnknown_085EB900, 0 + .4byte gUnknown_085EB913, 0 + .4byte gUnknown_085EB92D, 0 + .4byte gUnknown_085EB946, 0 + .4byte gUnknown_085EB960, 0 + .4byte gUnknown_085EB979, 1 + .4byte gUnknown_085EB987, 0 + .4byte gUnknown_085EB9A1, 0 + .4byte gUnknown_085EB9AB, 0 + .4byte gUnknown_085EB843, 7 + .4byte gUnknown_085EB9C3, 0 + .4byte gUnknown_085EB9D6, 7 + .4byte gUnknown_085EB9EE, 0 + .4byte gUnknown_085EB9FF, 0 + .4byte gUnknown_085EBA19, 7 + .4byte gUnknown_085EBA29, 7 + .4byte gUnknown_085EBA38, 0 + + .align 2 gUnknown_08572864:: @ 8572864 - .incbin "baserom.gba", 0x572864, 0x58 + window_template 0, 0x18, 0xB, 5, 4, 0xF, 0x5C + + .align 2 +gOamData_857286C:: @ 857286C + .2byte 0x0000 + .2byte 0xC000 + .2byte 0x0000 + + .align 2 +gOamData_8572874:: @ 8572874 + .2byte 0x4000 + .2byte 0x0000 + .2byte 0x0000 + + .align 2 +gSpriteAnim_857287C:: @ 857287C + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gSpriteAnim_8572884:: @ 8572884 + obj_image_anim_frame 2, 8 + obj_image_anim_frame 4, 8 + obj_image_anim_frame 6, 8 + obj_image_anim_jump 0 + + .align 2 +gSpriteAnim_8572894:: @ 8572894 + obj_image_anim_frame 8, 5 + obj_image_anim_end + + .align 2 +gSpriteAnim_857289C:: @ 857289C + obj_image_anim_frame 10, 8 + obj_image_anim_frame 4, 8 + obj_image_anim_frame 12, 8 + obj_image_anim_jump 0 + + .align 2 +gSpriteAnimTable_85728AC:: @ 85728AC + .4byte gSpriteAnim_857287C + .4byte gSpriteAnim_8572884 + .4byte gSpriteAnim_8572894 + .4byte gSpriteAnim_857289C gUnknown_085728BC:: @ 85728BC - .incbin "baserom.gba", 0x5728bc, 0x18 + spr_template 5, 0xDACA, gOamData_8572874, gSpriteAnimTable_85728AC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + .align 2 gUnknown_085728D4:: @ 85728D4 - .incbin "baserom.gba", 0x5728d4, 0x48 + spr_template 0x12, 0xDAC0, gOamData_85728EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy -gUnknown_0857291C:: @ 857291C - .incbin "baserom.gba", 0x57291c, 0x4c58 + .align 2 +gOamData_85728EC:: @ 85728EC + .2byte 0x0000 + .2byte 0x8000 + .2byte 0x0000 + + .align 2 +gSpriteAffineAnim_85728F4:: @ 85728F4 + obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 120 + obj_rot_scal_anim_end + + .align 2 +gSpriteAffineAnim_8572904:: @ 8572904 + obj_rot_scal_anim_frame 0x10, 0x10, 0, 0 + obj_rot_scal_anim_frame 0x10, 0x10, 0, 15 + obj_rot_scal_anim_end + + .align 2 +gSpriteAffineAnimTable_857291C:: @ 857291C + .4byte gSpriteAffineAnim_85728F4 + .4byte gSpriteAffineAnim_8572904 + +gUnknown_08572924:: @ 8572924 + .incbin "baserom.gba", 0x572924, 0x4c50 gUnknown_08577574:: @ 8577574 .incbin "baserom.gba", 0x577574, 0x44 diff --git a/data/strings.s b/data/strings.s index e217a81e02..f4d24f7eaa 100644 --- a/data/strings.s +++ b/data/strings.s @@ -2705,34 +2705,34 @@ gUnknown_085EBB4F:: @ 85EBB4F gUnknown_085EBB56:: @ 85EBB56 .string "What would you like to do?$" -gUnknown_085EBB71:: @ 85EBB71 +gText_WithdrawPokemon:: @ 85EBB71 .string "WITHDRAW POKéMON$" -gUnknown_085EBB82:: @ 85EBB82 +gText_DepositPokemon:: @ 85EBB82 .string "DEPOSIT POKéMON$" -gUnknown_085EBB92:: @ 85EBB92 +gText_MovePokemon:: @ 85EBB92 .string "MOVE POKéMON$" -gUnknown_085EBB9F:: @ 85EBB9F +gText_MoveItems:: @ 85EBB9F .string "MOVE ITEMS$" -gUnknown_085EBBAA:: @ 85EBBAA +gText_SeeYa:: @ 85EBBAA .string "SEE YA!$" -gUnknown_085EBBB2:: @ 85EBBB2 +gText_WithdrawMonDescription:: @ 85EBBB2 .string "Move POKéMON stored in BOXES to\nyour party.$" -gUnknown_085EBBDE:: @ 85EBBDE +gText_DepositMonDescription:: @ 85EBBDE .string "Store POKéMON in your party in BOXES.$" -gUnknown_085EBC04:: @ 85EBC04 +gText_MoveMonDescription:: @ 85EBC04 .string "Organize the POKéMON in BOXES and\nin your party.$" -gUnknown_085EBC35:: @ 85EBC35 +gText_MoveItemsDescription:: @ 85EBC35 .string "Move items held by any POKéMON\nin a BOX or your party.$" -gUnknown_085EBC6C:: @ 85EBC6C +gText_SeeYaDescription:: @ 85EBC6C .string "Return to the previous menu.$" gText_JustOnePkmn:: @ 85EBC89 diff --git a/include/strings.h b/include/strings.h index 5521d828bc..79e724833a 100644 --- a/include/strings.h +++ b/include/strings.h @@ -137,4 +137,15 @@ extern const u8 gMenuText_Give2[]; extern const u8 gText_Cancel2[]; +extern const u8 gText_WithdrawPokemon[]; +extern const u8 gText_WithdrawMonDescription[]; +extern const u8 gText_DepositPokemon[]; +extern const u8 gText_DepositMonDescription[]; +extern const u8 gText_MovePokemon[]; +extern const u8 gText_MoveMonDescription[]; +extern const u8 gText_MoveItems[]; +extern const u8 gText_MoveItemsDescription[]; +extern const u8 gText_SeeYa[]; +extern const u8 gText_SeeYaDescription[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index b691014bc8..b3b8817316 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -391,6 +391,7 @@ SECTIONS { src/pokedex.o(.rodata); data/pokedex.o(.rodata); data/trainer_card.o(.rodata); + src/pokemon_storage_system.o(.rodata); data/pokemon_storage_system.o(.rodata); src/pokemon_icon.o(.rodata); data/fldeff_cut.o(.rodata); diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index bdf4427c77..bb196dd279 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -5,9 +5,76 @@ #include "event_data.h" #include "string_util.h" #include "text.h" +#include "strings.h" +#include "window.h" IWRAM_DATA u8 gUnknown_03000F78[0x188]; +struct OptionAndDescription +{ + const u8 *optionTxt; + const u8 *descriptionTxt; +}; + +// const rom data +const struct OptionAndDescription gUnknown_085716C0[] = +{ + {gText_WithdrawPokemon, gText_WithdrawMonDescription}, + {gText_DepositPokemon, gText_DepositMonDescription}, + {gText_MovePokemon, gText_MoveMonDescription}, + {gText_MoveItems, gText_MoveItemsDescription}, + {gText_SeeYa, gText_SeeYaDescription} +}; + +const struct WindowTemplate gUnknown_085716E8 = {0, 1, 1, 0x11, 0xA, 0xF, 1}; + +static const union AnimCmd sSpriteAnim_85716F0[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_85716F8[] = +{ + ANIMCMD_FRAME(4, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_8571700[] = +{ + ANIMCMD_FRAME(6, 5), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_8571708[] = +{ + ANIMCMD_FRAME(10, 5), + ANIMCMD_END +}; + +const union AnimCmd *const sSpriteAnimTable_8571710[] = +{ + sSpriteAnim_85716F0, + sSpriteAnim_85716F8, + sSpriteAnim_8571700, + sSpriteAnim_8571708 +}; + +static const union AffineAnimCmd sSpriteAffineAnim_8571720[] = +{ + AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd *const sSpriteAffineAnimTable_8571730[] = +{ + sSpriteAffineAnim_8571720 +}; + +const struct TextColor gUnknown_08571734[] = {4, 0xF, 0xE}; +const u8 gUnknown_08571737[] = _("/30"); + +// code u8 CountMonsInBox(u8 boxId) { u16 i, count; From e7111984a98e4a0944a8eb878a7b88b13470158d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 23 Dec 2017 00:22:07 +0100 Subject: [PATCH 14/54] start rayquaza dumping --- asm/rayquaza_scene.s | 6 +- data/graphics.s | 33 +- data/rayquaza_scene.s | 87 ----- include/graphics.h | 12 + ld_script.txt | 2 + src/rayquaza_scene.c | 802 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 849 insertions(+), 93 deletions(-) create mode 100644 src/rayquaza_scene.c diff --git a/asm/rayquaza_scene.s b/asm/rayquaza_scene.s index 58380a3547..e6147333c7 100755 --- a/asm/rayquaza_scene.s +++ b/asm/rayquaza_scene.s @@ -1172,8 +1172,8 @@ _081D7082: .pool thumb_func_end sub_81D706C - thumb_func_start task_add_00_WIN0V_open_close_above_and_more -task_add_00_WIN0V_open_close_above_and_more: @ 81D7134 + thumb_func_start sub_81D7134 +sub_81D7134: @ 81D7134 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 @@ -1264,7 +1264,7 @@ _081D71EE: pop {r0} bx r0 .pool - thumb_func_end task_add_00_WIN0V_open_close_above_and_more + thumb_func_end sub_81D7134 thumb_func_start sub_81D7228 sub_81D7228: @ 81D7228 diff --git a/data/graphics.s b/data/graphics.s index 0c0ff93195..c4ba9f575a 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -973,8 +973,29 @@ gUnknown_08D9C13C:: @ 8D9C13C @ 8D9C3A8 .include "data/graphics/berries/berry_graphics.inc" -@ 8DA1E78 - .incbin "baserom.gba", 0xda1e78, 0x1548 +gUnknown_08DA1E78:: @ 8DA1E78 + .incbin "baserom.gba", 0xda1e78, 0xBE4 + +gUnknown_08DA2A5C:: @ 8DA2A5C + .incbin "baserom.gba", 0xDA2A5C, 0xCC + +gUnknown_08DA2B28:: @ 8DA2B28 + .incbin "baserom.gba", 0xDA2B28, 0x1F4 + +gUnknown_08DA2D1C:: @ 8DA2D1C + .incbin "baserom.gba", 0xDA2D1C, 0x534 + +gUnknown_08DA3250:: @ 8DA3250 + .incbin "baserom.gba", 0xDA3250, 0x54 + +gUnknown_08DA32A4:: @ 8DA32A4 + .incbin "baserom.gba", 0xDA32A4, 0xCC + +gUnknown_08DA3370:: @ 8DA3370 + .incbin "baserom.gba", 0xDA3370, 0x28 + +gUnknown_08DA3398:: @ 8DA3398 + .incbin "baserom.gba", 0xDA3398, 0x28 gUnknown_08DA33C0:: @ 8DA33C0 .incbin "baserom.gba", 0xda33c0, 0x428 @@ -989,7 +1010,13 @@ gUnknown_08DA3988:: @ 8DA3988 .incbin "baserom.gba", 0xda3988, 0x100 gUnknown_08DA3A88:: @ 8DA3A88 - .incbin "baserom.gba", 0xda3a88, 0x20c + .incbin "baserom.gba", 0xda3a88, 0x138 + +gUnknown_08DA3BC0:: @ 8DA3BC0 + .incbin "baserom.gba", 0xDA3BC0, 0xBC + +gUnknown_08DA3C7C:: @ 8DA3C7C + .incbin "baserom.gba", 0xDA3C7C, 0x18 gUnknown_08DA3C94:: @ 8DA3C94 .incbin "baserom.gba", 0xda3c94, 0x1114 diff --git a/data/rayquaza_scene.s b/data/rayquaza_scene.s index 51a285285a..88e4265840 100644 --- a/data/rayquaza_scene.s +++ b/data/rayquaza_scene.s @@ -3,93 +3,6 @@ .section .rodata -gUnknown_0862A6A0:: @ 862A6A0 - .incbin "baserom.gba", 0x62a6a0, 0x8c - -gUnknown_0862A72C:: @ 862A72C - .incbin "baserom.gba", 0x62a72c, 0x24 - -gUnknown_0862A750:: @ 862A750 - .incbin "baserom.gba", 0x62a750, 0x24 - -gUnknown_0862A774:: @ 862A774 - .incbin "baserom.gba", 0x62a774, 0xa8 - -gUnknown_0862A81C:: @ 862A81C - .incbin "baserom.gba", 0x62a81c, 0x30 - -gUnknown_0862A84C:: @ 862A84C - .incbin "baserom.gba", 0x62a84c, 0x18 - -gUnknown_0862A864:: @ 862A864 - .incbin "baserom.gba", 0x62a864, 0x18 - -gUnknown_0862A87C:: @ 862A87C - .incbin "baserom.gba", 0x62a87c, 0xc - -gUnknown_0862A888:: @ 862A888 - .incbin "baserom.gba", 0x62a888, 0x3c - -gUnknown_0862A8C4:: @ 862A8C4 - .incbin "baserom.gba", 0x62a8c4, 0x8 - -gUnknown_0862A8CC:: @ 862A8CC - .incbin "baserom.gba", 0x62a8cc, 0x8 - -gUnknown_0862A8D4:: @ 862A8D4 - .incbin "baserom.gba", 0x62a8d4, 0x24 - -gUnknown_0862A8F8:: @ 862A8F8 - .incbin "baserom.gba", 0x62a8f8, 0x8 - -gUnknown_0862A900:: @ 862A900 - .incbin "baserom.gba", 0x62a900, 0x24 - -gUnknown_0862A924:: @ 862A924 - .incbin "baserom.gba", 0x62a924, 0x8 - -gUnknown_0862A92C:: @ 862A92C - .incbin "baserom.gba", 0x62a92c, 0xa8 - -gUnknown_0862A9D4:: @ 862A9D4 - .incbin "baserom.gba", 0x62a9d4, 0x8 - -gUnknown_0862A9DC:: @ 862A9DC - .incbin "baserom.gba", 0x62a9dc, 0x8 - -gUnknown_0862A9E4:: @ 862A9E4 - .incbin "baserom.gba", 0x62a9e4, 0x30 - -gUnknown_0862AA14:: @ 862AA14 - .incbin "baserom.gba", 0x62aa14, 0x8 - -gUnknown_0862AA1C:: @ 862AA1C - .incbin "baserom.gba", 0x62aa1c, 0x18 - -gUnknown_0862AA34:: @ 862AA34 - .incbin "baserom.gba", 0x62aa34, 0x8 - -gUnknown_0862AA3C:: @ 862AA3C - .incbin "baserom.gba", 0x62aa3c, 0x18 - -gUnknown_0862AA54:: @ 862AA54 - .incbin "baserom.gba", 0x62aa54, 0x3c - -gUnknown_0862AA90:: @ 862AA90 - .incbin "baserom.gba", 0x62aa90, 0x8 - -gUnknown_0862AA98:: @ 862AA98 - .incbin "baserom.gba", 0x62aa98, 0x8 - -gUnknown_0862AAA0:: @ 862AAA0 - .incbin "baserom.gba", 0x62aaa0, 0x18 - -gUnknown_0862AAB8:: @ 862AAB8 - .incbin "baserom.gba", 0x62aab8, 0x14 - -gUnknown_0862AACC:: @ 862AACC - .incbin "baserom.gba", 0x62aacc, 0x30 - gUnknown_0862AAFC:: @ 862AAFC .incbin "baserom.gba", 0x62aafc, 0x8 diff --git a/include/graphics.h b/include/graphics.h index 97528f844a..3b85b47844 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2650,4 +2650,16 @@ extern const u8 gBattleTerrainPalette_StadiumWallace[]; extern const u8 gUnknown_08DC234C[]; extern const u8 gUnknown_08DC16F4[]; +// rayquaza scene gfx +extern const u8 gUnknown_08DA1E78[]; +extern const u8 gUnknown_08DA2A5C[]; +extern const u8 gUnknown_08DA2B28[]; +extern const u8 gUnknown_08DA2D1C[]; +extern const u8 gUnknown_08DA3250[]; +extern const u8 gUnknown_08DA32A4[]; +extern const u8 gUnknown_08DA3370[]; +extern const u8 gUnknown_08DA3398[]; +extern const u8 gUnknown_08DA3BC0[]; +extern const u8 gUnknown_08DA3C7C[]; + #endif //GUARD_GRAPHICS_H diff --git a/ld_script.txt b/ld_script.txt index b3b8817316..9f227c5b96 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -262,6 +262,7 @@ SECTIONS { src/pokemon_summary_screen.o(.text); asm/pokemon_summary_screen.o(.text); asm/pokenav.o(.text); + src/rayquaza_scene.o(.text); asm/rayquaza_scene.o(.text); src/walda_phrase.o(.text); asm/contest_link_81D9DE4.o(.text); @@ -486,6 +487,7 @@ SECTIONS { src/berry_fix_program.o(.rodata); data/pokemon_summary_screen.o(.rodata); data/pokenav.o(.rodata); + src/rayquaza_scene.o(.rodata); data/rayquaza_scene.o(.rodata); src/walda_phrase.o(.rodata); data/trainer_rematch.o(.rodata); diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c new file mode 100644 index 0000000000..67693eecad --- /dev/null +++ b/src/rayquaza_scene.c @@ -0,0 +1,802 @@ +#include "global.h" +#include "sprite.h" +#include "task.h" +#include "graphics.h" +#include "bg.h" + +struct UnkRayquazaStruct +{ + u32 field_0; + u32 field_4; + u32 field_8; +}; + +// this file's functions +void sub_81D7134(u8 taskId); +void sub_81D7F4C(u8 taskId); +void sub_81D84EC(u8 taskId); +void sub_81D8980(u8 taskId); +void sub_81D8DB4(u8 taskId); +void sub_81D6800(u8 taskId); + +void sub_81D8260(struct Sprite *sprite); + +// const rom data +const TaskFunc gUnknown_0862A6A0[] = +{ + sub_81D7134, + sub_81D7134, + sub_81D7F4C, + sub_81D84EC, + sub_81D8980, + sub_81D8DB4, + sub_81D6800 +}; + +static const struct OamData sOamData_862A6BC = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct OamData sOamData_862A6C4 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct OamData sOamData_862A6CC = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct OamData sOamData_862A6D4 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct OamData sOamData_862A6DC = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct OamData sOamData_862A6E4 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 2, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct OamData sOamData_862A6EC = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct OamData sOamData_862A6F4 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0 +}; + +static const union AnimCmd sSpriteAnim_862A6FC[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(64, 30), + ANIMCMD_FRAME(128, 30), + ANIMCMD_FRAME(64, 30), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sSpriteAnim_862A710[] = +{ + ANIMCMD_FRAME(192, 30), + ANIMCMD_FRAME(256, 30), + ANIMCMD_FRAME(320, 30), + ANIMCMD_FRAME(256, 30), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sSpriteAnimTable_862A724[] = +{ + sSpriteAnim_862A6FC, + sSpriteAnim_862A710 +}; + +const struct SpriteTemplate gUnknown_0862A72C = +{ + .tileTag = 30505, + .paletteTag = 30505, + .oam = &sOamData_862A6BC, + .anims = sSpriteAnimTable_862A724, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const union AnimCmd sSpriteAnim_862A744[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_862A74C[] = +{ + sSpriteAnim_862A744 +}; + +const struct SpriteTemplate gUnknown_0862A750 = +{ + .tileTag = 30506, + .paletteTag = 30505, + .oam = &sOamData_862A6C4, + .anims = sSpriteAnimTable_862A74C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const union AnimCmd sSpriteAnim_862A768[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_862A770[] = +{ + sSpriteAnim_862A768 +}; + +const struct SpriteTemplate gUnknown_0862A774 = +{ + .tileTag = 30507, + .paletteTag = 30505, + .oam = &sOamData_862A6CC, + .anims = sSpriteAnimTable_862A770, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const union AnimCmd sSpriteAnim_862A78C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A794[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A79C[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A7A4[] = +{ + ANIMCMD_FRAME(24, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A7AC[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A7B4[] = +{ + ANIMCMD_FRAME(40, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A7BC[] = +{ + ANIMCMD_FRAME(48, 36), + ANIMCMD_FRAME(64, 36), + ANIMCMD_FRAME(80, 36), + ANIMCMD_FRAME(64, 36), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sSpriteAnim_862A7D0[] = +{ + ANIMCMD_FRAME(56, 36), + ANIMCMD_FRAME(72, 36), + ANIMCMD_FRAME(88, 36), + ANIMCMD_FRAME(72, 36), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sSpriteAnim_862A7E4[] = +{ + ANIMCMD_FRAME(96, 36), + ANIMCMD_FRAME(104, 36), + ANIMCMD_FRAME(112, 36), + ANIMCMD_FRAME(104, 36), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sSpriteAnimTable_862A7F8[] = +{ + sSpriteAnim_862A78C, + sSpriteAnim_862A794, + sSpriteAnim_862A79C, + sSpriteAnim_862A7A4, + sSpriteAnim_862A7AC, + sSpriteAnim_862A7B4, + sSpriteAnim_862A7BC, + sSpriteAnim_862A7D0, + sSpriteAnim_862A7E4 +}; + +const struct SpriteTemplate gUnknown_0862A81C = +{ + .tileTag = 30508, + .paletteTag = 30508, + .oam = &sOamData_862A6D4, + .anims = sSpriteAnimTable_862A7F8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const union AnimCmd sSpriteAnim_862A834[] = +{ + ANIMCMD_FRAME(0, 36), + ANIMCMD_FRAME(2, 36), + ANIMCMD_FRAME(4, 36), + ANIMCMD_FRAME(2, 36), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sSpriteAnimTable_862A848[] = +{ + sSpriteAnim_862A834 +}; + +const struct SpriteTemplate gUnknown_0862A84C = +{ + .tileTag = 30509, + .paletteTag = 30508, + .oam = &sOamData_862A6DC, + .anims = sSpriteAnimTable_862A848, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct SpriteTemplate gUnknown_0862A864 = +{ + .tileTag = 30510, + .paletteTag = 30508, + .oam = &sOamData_862A6C4, + .anims = sSpriteAnimTable_862A74C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct UnkRayquazaStruct gUnknown_0862A87C = {0x4000014, 0xA2600001, 1}; + +const struct BgTemplate gUnknown_0862A888[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, +}; + +static const union AnimCmd sSpriteAnim_862A894[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(64, 20), + ANIMCMD_FRAME(128, 20), + ANIMCMD_FRAME(64, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sSpriteAnim_862A8A8[] = +{ + ANIMCMD_FRAME(192, 20), + ANIMCMD_FRAME(256, 20), + ANIMCMD_FRAME(320, 20), + ANIMCMD_FRAME(256, 20), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sSpriteAnimTable_862A8BC[] = +{ + sSpriteAnim_862A894, + sSpriteAnim_862A8A8 +}; + +const struct CompressedSpriteSheet gUnknown_0862A8C4 = +{ + gUnknown_08DA1E78, 0x3000, 30505 +}; + +const struct CompressedSpritePalette gUnknown_0862A8CC = +{ + gUnknown_08DA3370, 30505 +}; + +const struct SpriteTemplate gUnknown_0862A8D4 = +{ + .tileTag = 30505, + .paletteTag = 30505, + .oam = &sOamData_862A6BC, + .anims = sSpriteAnimTable_862A8BC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const union AnimCmd sSpriteAnim_862A8EC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_862A8F4[] = +{ + sSpriteAnim_862A8EC +}; + +const struct CompressedSpriteSheet gUnknown_0862A8F8 = +{ + gUnknown_08DA2A5C, 0x200, 30506 +}; + +const struct SpriteTemplate gUnknown_0862A900 = +{ + .tileTag = 30506, + .paletteTag = 30505, + .oam = &sOamData_862A6C4, + .anims = sSpriteAnimTable_862A8F4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const union AnimCmd sSpriteAnim_862A918[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_862A920[] = +{ + sSpriteAnim_862A918 +}; + +const struct CompressedSpriteSheet gUnknown_0862A924 = +{ + gUnknown_08DA2B28, 0x400, 30507 +}; + +const struct SpriteTemplate gUnknown_0862A92C = +{ + .tileTag = 30507, + .paletteTag = 30505, + .oam = &sOamData_862A6CC, + .anims = sSpriteAnimTable_862A920, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const union AnimCmd sSpriteAnim_862A944[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A94C[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A954[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A95C[] = +{ + ANIMCMD_FRAME(24, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A964[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A96C[] = +{ + ANIMCMD_FRAME(40, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862A974[] = +{ + ANIMCMD_FRAME(48, 24), + ANIMCMD_FRAME(64, 24), + ANIMCMD_FRAME(80, 24), + ANIMCMD_FRAME(64, 24), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sSpriteAnim_862A988[] = +{ + ANIMCMD_FRAME(56, 24), + ANIMCMD_FRAME(72, 24), + ANIMCMD_FRAME(88, 24), + ANIMCMD_FRAME(72, 24), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sSpriteAnim_862A99C[] = +{ + ANIMCMD_FRAME(96, 24), + ANIMCMD_FRAME(104, 24), + ANIMCMD_FRAME(112, 24), + ANIMCMD_FRAME(104, 24), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sSpriteAnimTable_862A9B0[] = +{ + sSpriteAnim_862A944, + sSpriteAnim_862A94C, + sSpriteAnim_862A954, + sSpriteAnim_862A95C, + sSpriteAnim_862A964, + sSpriteAnim_862A96C, + sSpriteAnim_862A974, + sSpriteAnim_862A988, + sSpriteAnim_862A99C +}; + +const struct CompressedSpriteSheet gUnknown_0862A9D4 = +{ + gUnknown_08DA2D1C, 0xF00, 30508 +}; + +const struct CompressedSpritePalette gUnknown_0862A9DC = +{ + gUnknown_08DA3398, 30508 +}; + +const struct SpriteTemplate gUnknown_0862A9E4 = +{ + .tileTag = 30508, + .paletteTag = 30508, + .oam = &sOamData_862A6D4, + .anims = sSpriteAnimTable_862A9B0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const union AnimCmd sSpriteAnim_862A9FC[] = +{ + ANIMCMD_FRAME(0, 24), + ANIMCMD_FRAME(2, 24), + ANIMCMD_FRAME(4, 24), + ANIMCMD_FRAME(2, 24), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sSpriteAnimTable_862AA10[] = +{ + sSpriteAnim_862A9FC +}; + +const struct CompressedSpriteSheet gUnknown_0862AA14 = +{ + gUnknown_08DA3250, 0xC0, 30509 +}; + +const struct SpriteTemplate gUnknown_0862AA1C = +{ + .tileTag = 30509, + .paletteTag = 30508, + .oam = &sOamData_862A6DC, + .anims = sSpriteAnimTable_862AA10, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct CompressedSpriteSheet gUnknown_0862AA34 = +{ + gUnknown_08DA32A4, 0x200, 30510 +}; + +const struct SpriteTemplate gUnknown_0862AA3C = +{ + .tileTag = 30510, + .paletteTag = 30508, + .oam = &sOamData_862A6C4, + .anims = sSpriteAnimTable_862A8F4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct BgTemplate gUnknown_0862AA54[] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 1, + .mapBaseIndex = 29, + .screenSize = 1, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + } +}; + +static const union AnimCmd sSpriteAnim_862AA60[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_862AA68[] = +{ + sSpriteAnim_862AA60 +}; + +static const union AffineAnimCmd sSpriteAffineAnim_862AA6C[] = +{ + AFFINEANIMCMD_FRAME(-64, -64, 0, 1), + AFFINEANIMCMD_FRAME(32, 32, 0, 14), + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_JUMP(0) +}; + +static const union AffineAnimCmd *const sSpriteAffineAnimTable_862AA8C[] = +{ + sSpriteAffineAnim_862AA6C +}; + +const struct CompressedSpriteSheet gUnknown_0862AA90 = +{ + gUnknown_08DA3BC0, 0x100, 30555 +}; + +const struct CompressedSpritePalette gUnknown_0862AA98 = +{ + gUnknown_08DA3C7C, 30555 +}; + +const struct SpriteTemplate gUnknown_0862AAA0 = +{ + .tileTag = 30555, + .paletteTag = 30555, + .oam = &sOamData_862A6D4, + .anims = sSpriteAnimTable_862AA68, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_862AA8C, + .callback = sub_81D8260, +}; + +const s8 gUnknown_0862AAB8[][2] = +{ + {-1, 5}, + {-3, -4}, + {5, -3}, + {-7, 2}, + {-9, -1}, + {1, -5}, + {3, 4}, + {-5, 3}, + {7, -2}, + {9, 1} +}; + +const struct BgTemplate gUnknown_0862AACC[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 1, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } +}; + +static const union AnimCmd sSpriteAnim_862AADC[] = +{ + ANIMCMD_FRAME(0, 32), + ANIMCMD_FRAME(64, 32), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sSpriteAnimTable_862AAE8[] = +{ + sSpriteAnim_862AADC +}; + +static const union AnimCmd sSpriteAnim_862AAEC[] = +{ + ANIMCMD_FRAME(0, 32), + ANIMCMD_FRAME(8, 32), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sSpriteAnimTable_862AAF8[] = +{ + sSpriteAnim_862AAEC +}; + From d10c645353615da350f77ce2b1d79b5a73605383 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Fri, 22 Dec 2017 19:18:09 -0500 Subject: [PATCH 15/54] first wave of graphics.s dump --- data/graphics.s | 29 +++++++++++------- data/smokescreen.s | 4 +-- .../sprites/smokescreen_impact.pal | 19 ++++++++++++ .../sprites/smokescreen_impact.png | Bin 0 -> 254 bytes graphics/interface/ball/ultra.pal | 19 ++++++++++++ graphics/interface/ball/ultra.png | Bin 0 -> 245 bytes graphics/interface/menu.png | Bin 0 -> 444 bytes graphics/interface/menu_0.pal | 19 ++++++++++++ graphics/interface/menu_1.pal | 19 ++++++++++++ graphics/interface/menu_map.bin | Bin 0 -> 4096 bytes graphics/unused/old_charmap.bin | Bin 0 -> 4096 bytes graphics/unused/old_charmap.pal | 19 ++++++++++++ graphics/unused/old_charmap.png | Bin 0 -> 1934 bytes graphics_file_rules.mk | 5 +++ 14 files changed, 120 insertions(+), 13 deletions(-) create mode 100755 graphics/battle_anims/sprites/smokescreen_impact.pal create mode 100755 graphics/battle_anims/sprites/smokescreen_impact.png create mode 100755 graphics/interface/ball/ultra.pal create mode 100755 graphics/interface/ball/ultra.png create mode 100755 graphics/interface/menu.png create mode 100755 graphics/interface/menu_0.pal create mode 100755 graphics/interface/menu_1.pal create mode 100755 graphics/interface/menu_map.bin create mode 100755 graphics/unused/old_charmap.bin create mode 100755 graphics/unused/old_charmap.pal create mode 100755 graphics/unused/old_charmap.png diff --git a/data/graphics.s b/data/graphics.s index aebe350936..8726c102fb 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1,26 +1,33 @@ .section gfx_data, "aw", %progbits + .align 2 gBattleTextboxTiles:: @ 8C00000 - .incbin "baserom.gba", 0xc00000, 0x4e0 + .incbin "graphics/interface/menu.4bpp.lz" @ menu window and arrows + .align 2 gBattleTextboxPalette:: @ 8C004E0 - .incbin "baserom.gba", 0xc004e0, 0x44 + .incbin "graphics/interface/menu.gbapal.lz" + .align 2 gBattleTextboxTilemap:: @ 8C00524 - .incbin "baserom.gba", 0xc00524, 0x22c + .incbin "graphics/interface/menu_map.bin.lz" @ 8C00750 .include "data/graphics/pokemon/circled_question_mark_graphics.inc" @ 8C00C10 - .incbin "baserom.gba", 0xc00c10, 0xa34 + .incbin "graphics/unused/old_charmap.4bpp.lz" @ japanese table and bunch of stuff + .incbin "graphics/unused/old_charmap.bin.lz" + .incbin "graphics/unused/old_charmap.gbapal.lz" -gUnknown_08C01644:: @ 8C01644 - .incbin "baserom.gba", 0xc01644, 0xe0 + .align 2 +gSmokescreenImpactTiles:: @ 8C01644 + .incbin "graphics/battle_anims/sprites/smokescreen_impact.4bpp.lz" + + .align 2 +gSmokescreenImpactPalette:: @ 8C01724 + .incbin "graphics/battle_anims/sprites/smokescreen_impact.gbapal.lz" -gUnknown_08C01724:: @ 8C01724 - .incbin "baserom.gba", 0xc01724, 0x18 - .align 2 gInterfaceGfx_PokeBall:: .incbin "graphics/interface/ball/poke.4bpp.lz" @ 0xBC @@ -47,11 +54,11 @@ gInterfacePal_SafariBall:: .align 2 gInterfaceGfx_UltraBall:: - .incbin "baserom.gba", 0xC019E0, 0xB4 + .incbin "graphics/interface/ball/ultra.4bpp.lz" @ 0xBC .align 2 gInterfacePal_UltraBall:: - .incbin "baserom.gba", 0xC01A94, 0x20 + .incbin "graphics/interface/ball/ultra.gbapal.lz" .align 2 gInterfaceGfx_MasterBall:: diff --git a/data/smokescreen.s b/data/smokescreen.s index d92c972dfa..3e60284315 100644 --- a/data/smokescreen.s +++ b/data/smokescreen.s @@ -14,11 +14,11 @@ gUnknown_0831C604:: @ 831C604 .align 2 gUnknown_0831C620:: @ 831C620 - obj_tiles gUnknown_08C01644, 0x0180, 0xd6eb + obj_tiles gSmokescreenImpactTiles, 0x0180, 0xd6eb .align 2 gUnknown_0831C628:: @ 831C628 - obj_pal gUnknown_08C01724, 0xd6eb + obj_pal gSmokescreenImpactPalette, 0xd6eb .align 2 gUnknown_0831C630:: @ 831C630 diff --git a/graphics/battle_anims/sprites/smokescreen_impact.pal b/graphics/battle_anims/sprites/smokescreen_impact.pal new file mode 100755 index 0000000000..64367bdc9f --- /dev/null +++ b/graphics/battle_anims/sprites/smokescreen_impact.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 148 49 +57 98 197 +0 0 0 +0 0 0 +0 0 0 +164 156 106 +197 197 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/smokescreen_impact.png b/graphics/battle_anims/sprites/smokescreen_impact.png new file mode 100755 index 0000000000000000000000000000000000000000..01a94429ac23dea65b91e959865cddc9571701fe GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioT$834S|%L@@*rTzoUEfq zr@(kvX!A)ImH~x3JzX3_B&JRcuoPl8$p85QiKKYR6O zeqY|cV=ZdvV3PlyqJ5y@$xHQ)jDQxEW7-*Fu1}y4)lC XUYt<7zolE?>>7nv&T57hYd9-0_0NWH$JIW}sTRq2eCx5|)Q=f#ty^OQ zBz2x{3Awa7T#1!ksb=2~z3CDMkL>E~Z0quEE&rHl`9$FX^MusUk9?~aHu@j<6MfkJ aIZNF(J)h~)A|HWnVeoYIb6Mw<&;$VC;&b2t literal 0 HcmV?d00001 diff --git a/graphics/interface/menu.png b/graphics/interface/menu.png new file mode 100755 index 0000000000000000000000000000000000000000..96f6b8b15f3bb58830eb7a4cd1d1e716b7a9ea49 GIT binary patch literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLDIg8-ipS0Mc#2pAZGlICP}?*%fm zqKdDcz3S*y?d2HM+})k!7_}xV>8h9I9IvFTB}>*s>U?KlV08C%aSX|5e0#~z>xhHM zv5%2AnBO$#ZWGs6h0JpW%bxnA^no7I9i5oW(-37ucAJi2kc(cv1K)_>6@ z;_fx4-rk+XD9%(>y~q7$TRd~-g1}?D-PsSGd>9kIT9;p6CEI)QvaDs*YmWv!u!x(_ z%YG=S_gi^X^yIn)E7n@*mMl2cxFz=S>P1)QZ)4f@+|ohQK}}Y|c7ym0zw?>*=FZe& z^)kvd{Tfo5uqA{2a>=E+l3mY_{SQ&l56gdg_0cQi$M@f@Jn-RKW)^$Wf&OT@FX|kB gx`CmM00-FiF^Y1sB+tq%*bWl)boFyt=akR{0P1VNQUCw| literal 0 HcmV?d00001 diff --git a/graphics/interface/menu_0.pal b/graphics/interface/menu_0.pal new file mode 100755 index 0000000000..67e1af896a --- /dev/null +++ b/graphics/interface/menu_0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +255 0 0 +82 98 156 +106 139 189 +255 255 255 +106 90 115 +213 205 213 +65 74 123 +74 65 82 +131 139 139 +106 65 90 +172 106 98 +213 74 57 +156 74 98 +106 164 164 diff --git a/graphics/interface/menu_1.pal b/graphics/interface/menu_1.pal new file mode 100755 index 0000000000..3adc737664 --- /dev/null +++ b/graphics/interface/menu_1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +74 57 115 +82 98 156 +106 139 189 +41 49 49 +255 255 255 +106 90 115 +222 213 222 +90 82 82 +180 189 180 +139 156 213 +90 74 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/interface/menu_map.bin b/graphics/interface/menu_map.bin new file mode 100755 index 0000000000000000000000000000000000000000..8a7b3f1f00b122f246f4b6a985185c287350a64d GIT binary patch literal 4096 zcmeH{%?^Sv5QHc32L-`V5rl*9|ClNq_Rw^j^a8=@T$*+#&CWI-prr(qz)}h9u*V@o zM-+H}b;22ChALb(;jhu)njzvg^}p2I^{x{5lLYAX>GSW-M^r7-{Cl#Cs^5g)=iiG% zRO8gYHyhn40VR-3z~x)Y?Get{*D|b|`R5VN*w-_xoB0=>o6C0V^?QUf_Kghd#J}I) F`~bYWHs=5U literal 0 HcmV?d00001 diff --git a/graphics/unused/old_charmap.bin b/graphics/unused/old_charmap.bin new file mode 100755 index 0000000000000000000000000000000000000000..13d3b873b69e4c081136ad56c8e76022f74144a0 GIT binary patch literal 4096 zcmZQzzyzrbsX##x#s_kdBn=si7@XmJAqGhX9R_wVUz#D4fssKNE;q^;4S~@R7!3hL z2-q>iK{;N)QUn)3ltu^^M6C;hF;tT!ihg#62!;l*j0Qt8v;^V>vZSG^N2$>e7!843 z7El;KYJ6B|5Lf@hRD)<61|N7XW?&et|B=IHlsy^(qalDh1V-zB++i~+Ga3T44FLev Cj}aFD literal 0 HcmV?d00001 diff --git a/graphics/unused/old_charmap.pal b/graphics/unused/old_charmap.pal new file mode 100755 index 0000000000..cbcd5de4d6 --- /dev/null +++ b/graphics/unused/old_charmap.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +24 0 0 +41 0 0 +255 255 255 +0 0 0 +255 255 255 +255 65 0 +0 0 0 +255 0 0 +255 24 0 +255 65 0 +255 98 0 +255 131 0 +255 180 0 +255 222 0 +255 255 255 diff --git a/graphics/unused/old_charmap.png b/graphics/unused/old_charmap.png new file mode 100755 index 0000000000000000000000000000000000000000..b5ea6e8032d0f0cd092302978e9f118e5f2fa719 GIT binary patch literal 1934 zcmV;92XXj`P)A0y6+9S$6DXzmuaCMTtXT@Iz3$ zEd6NB;tz+$U*2c8jTfd?Ys(B^A_X8K>i7P##I^q<+jy%#R|04Z@FyIo!1O`A-LLUH z#-SYm{RDt;UWc}5MOy(u1wsO)GBMci13+v7Pyh&L)(N21Yv}88QvxGPvC^UWWLg08r4(YJuL;R5{U&fvQ1GeOVd z4YROm0eCyjI>XMU&L`mmX01BvVM|N6)>LciD}Znu4>~=0?V0Tsipn$SQws|U3BCD<`}=PQ)e$r0JX{fgT(~UjL&iI0L=1H0nj%N z0s2uqyWk@mDPFhqJ_ct3WWNK1M?2{j0Fu~ks9;o~D4$M6ucZV6;iovzw6|r5&-uW> zPu?!!;x_n|vbT&t&s>0XLF;I8Fu1khP+AT;yQgL=ldJ&1{a|n#=!`%a*;%C4pRf{d zN`m+kBopv40t~TB^HKs>F2k8`TUtI=AFTmHI<~k{Ar>NFjLt%ql`+#2lJjy|vs@=E zaw5E=03^cQ|C(-=tTrGaAu|$EeRy6viE5>%mL%#7kU1## zjV?j0yGgcG9_Xri>^67H$O6Wt*=&-)jO38^w0lU7B?$l~wL-*?2_YrW1W=H{OcE9W zKscMg$l<3E>uu5U5i2Bv@Nh6c0FZOXWC%CYg%Lz{1u2cJTQns6!Y9mnA!ej6gezAj zgK)zcq*dIFT_@*T4C`R0 zLy}4aVb0nD8 zt!CIS92^rB-yMs{=50;UUIvJ4RRePMw_3tXnC5J(A61MpscM$e8GMl@kv$qJrSP1V zDN!PO;9RDyP2*a@2sSX*;IgKWK)8a1B*@B?V5Gr%2o=0DhVzPkzsBBK8#zdGF)kv3 zm~tmzD7F(oC?O;mLEsI|z=FSP5|&~!KUVwq`-Pn!ybsW}^~nza31H_=cIh7l_KM>lihlB&y#)AvrjBr?wWtF` z4h;xkQuq@GtpMzHZ99N1fzyGnI0fKVh#mKP0DNn)f+#N)iBH2PzC<%lCEvQt;<0J_q19J+9jH z)>(Q4kRx%ya()NkJGUc%k+$-pIQNO@djMig0BS>>hXA{2Sdbj3@XQJufOgE|O8}|N zVK#qBf*%}JA6QgiTK}J5nP?FaXe+*nuzy=0_!8o+ss(i}^#;IrH@AING>+Uj7nB2l zC8xTCdw{A!*^YatQUGkGikpq+u>{+qvLrC`%0P3np~4*pdw_|9HYP0%hGl#$@ + From 3499ff51b50ec90ac87ff61430a89a578c01092d Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sat, 23 Dec 2017 01:45:04 -0500 Subject: [PATCH 16/54] second wave of graphics.s dumps (battle_anim part 1) --- data/battle_anims.s | 2 +- data/graphics.s | 394 +++++++++++++++++- graphics/battle_anims/sprites/000.png | Bin 0 -> 223 bytes graphics/battle_anims/sprites/003.png | Bin 0 -> 197 bytes graphics/battle_anims/sprites/004.png | Bin 0 -> 233 bytes graphics/battle_anims/sprites/005.png | Bin 0 -> 200 bytes graphics/battle_anims/sprites/006.png | Bin 0 -> 275 bytes graphics/battle_anims/sprites/007.png | Bin 0 -> 334 bytes graphics/battle_anims/sprites/008.png | Bin 0 -> 147 bytes graphics/battle_anims/sprites/009.png | Bin 0 -> 635 bytes graphics/battle_anims/sprites/010.pal | 19 + graphics/battle_anims/sprites/010_0.png | Bin 0 -> 346 bytes graphics/battle_anims/sprites/010_1.png | Bin 0 -> 272 bytes graphics/battle_anims/sprites/010_2.png | Bin 0 -> 257 bytes graphics/battle_anims/sprites/010_3.png | Bin 0 -> 222 bytes graphics/battle_anims/sprites/011.png | Bin 0 -> 212 bytes graphics/battle_anims/sprites/012.png | Bin 0 -> 199 bytes graphics/battle_anims/sprites/013.png | Bin 0 -> 161 bytes graphics/battle_anims/sprites/015.png | Bin 0 -> 199 bytes graphics/battle_anims/sprites/016.png | Bin 0 -> 198 bytes graphics/battle_anims/sprites/017.png | Bin 0 -> 149 bytes graphics/battle_anims/sprites/019.png | Bin 0 -> 255 bytes graphics/battle_anims/sprites/020.png | Bin 0 -> 260 bytes graphics/battle_anims/sprites/021.png | Bin 0 -> 671 bytes graphics/battle_anims/sprites/022.pal | 19 + graphics/battle_anims/sprites/023.png | Bin 0 -> 312 bytes graphics/battle_anims/sprites/024.png | Bin 0 -> 231 bytes graphics/battle_anims/sprites/025.png | Bin 0 -> 274 bytes graphics/battle_anims/sprites/026.png | Bin 0 -> 671 bytes graphics/battle_anims/sprites/027.png | Bin 0 -> 619 bytes graphics/battle_anims/sprites/028.png | Bin 0 -> 707 bytes graphics/battle_anims/sprites/029.png | Bin 0 -> 537 bytes graphics/battle_anims/sprites/030.png | Bin 0 -> 761 bytes graphics/battle_anims/sprites/031.png | Bin 0 -> 736 bytes graphics/battle_anims/sprites/032.png | Bin 0 -> 283 bytes graphics/battle_anims/sprites/033.png | Bin 0 -> 1916 bytes graphics/battle_anims/sprites/034.png | Bin 0 -> 850 bytes graphics/battle_anims/sprites/035.png | Bin 0 -> 721 bytes graphics/battle_anims/sprites/036.png | Bin 0 -> 783 bytes graphics/battle_anims/sprites/037.png | Bin 0 -> 645 bytes graphics/battle_anims/sprites/038.png | Bin 0 -> 386 bytes graphics/battle_anims/sprites/039.png | Bin 0 -> 590 bytes graphics/battle_anims/sprites/040.png | Bin 0 -> 362 bytes graphics/battle_anims/sprites/041.png | Bin 0 -> 249 bytes graphics/battle_anims/sprites/042.png | Bin 0 -> 633 bytes graphics/battle_anims/sprites/043.png | Bin 0 -> 864 bytes graphics/battle_anims/sprites/044.png | Bin 0 -> 500 bytes graphics/battle_anims/sprites/045.png | Bin 0 -> 422 bytes graphics/battle_anims/sprites/115.png | Bin 0 -> 267 bytes graphics/battle_anims/sprites/146.png | Bin 0 -> 253 bytes graphics/battle_anims/sprites/152.png | Bin 0 -> 175 bytes graphics/battle_anims/sprites/161.png | Bin 0 -> 143 bytes graphics/battle_interface/unused_window.pal | 19 + graphics/battle_interface/unused_window.png | Bin 0 -> 608 bytes graphics/interface/ball_open.png | Bin 0 -> 215 bytes graphics/interface/hpbar_anim.png | Bin 0 -> 192 bytes graphics/interface/numbers1.png | Bin 0 -> 201 bytes graphics/interface/numbers2.png | Bin 0 -> 215 bytes graphics/interface/party_menu_hpbar.png | Bin 0 -> 136 bytes graphics/unknown/unknown_C035B8.png | Bin 0 -> 156 bytes graphics/unknown/unknown_C06D98.png | Bin 0 -> 181 bytes graphics/unknown/unknown_C06D98_2.pal | 35 ++ graphics/unused/battle_anim_023.pal | 19 + graphics/unused/music_notes.png | Bin 0 -> 310 bytes graphics/unused/old_battle_interface_1.png | Bin 0 -> 524 bytes graphics/unused/old_battle_interface_2.png | Bin 0 -> 198 bytes graphics/unused/old_battle_interface_3.png | Bin 0 -> 226 bytes .../unused/old_battle_interface_tilemap.bin | Bin 0 -> 2048 bytes graphics/unused/old_bulbasaur.png | Bin 0 -> 490 bytes graphics/unused/old_bulbasaur2.png | Bin 0 -> 520 bytes graphics/unused/old_charizard.png | Bin 0 -> 335 bytes graphics/unused/old_pal1.pal | 19 + graphics/unused/old_pal2.pal | 19 + graphics/unused/old_pal3.pal | 19 + graphics/unused/old_pal4.pal | 19 + graphics/unused/old_pal5.pal | 19 + graphics/unused/old_pal6.pal | 19 + graphics/unused/old_pal7.pal | 19 + graphics_file_rules.mk | 19 + src/battle_gfx_sfx_util.c | 10 +- 80 files changed, 660 insertions(+), 9 deletions(-) create mode 100755 graphics/battle_anims/sprites/000.png create mode 100755 graphics/battle_anims/sprites/003.png create mode 100755 graphics/battle_anims/sprites/004.png create mode 100755 graphics/battle_anims/sprites/005.png create mode 100755 graphics/battle_anims/sprites/006.png create mode 100755 graphics/battle_anims/sprites/007.png create mode 100755 graphics/battle_anims/sprites/008.png create mode 100755 graphics/battle_anims/sprites/009.png create mode 100755 graphics/battle_anims/sprites/010.pal create mode 100755 graphics/battle_anims/sprites/010_0.png create mode 100755 graphics/battle_anims/sprites/010_1.png create mode 100755 graphics/battle_anims/sprites/010_2.png create mode 100755 graphics/battle_anims/sprites/010_3.png create mode 100755 graphics/battle_anims/sprites/011.png create mode 100755 graphics/battle_anims/sprites/012.png create mode 100755 graphics/battle_anims/sprites/013.png create mode 100755 graphics/battle_anims/sprites/015.png create mode 100755 graphics/battle_anims/sprites/016.png create mode 100755 graphics/battle_anims/sprites/017.png create mode 100755 graphics/battle_anims/sprites/019.png create mode 100755 graphics/battle_anims/sprites/020.png create mode 100755 graphics/battle_anims/sprites/021.png create mode 100755 graphics/battle_anims/sprites/022.pal create mode 100755 graphics/battle_anims/sprites/023.png create mode 100755 graphics/battle_anims/sprites/024.png create mode 100755 graphics/battle_anims/sprites/025.png create mode 100755 graphics/battle_anims/sprites/026.png create mode 100755 graphics/battle_anims/sprites/027.png create mode 100755 graphics/battle_anims/sprites/028.png create mode 100755 graphics/battle_anims/sprites/029.png create mode 100755 graphics/battle_anims/sprites/030.png create mode 100755 graphics/battle_anims/sprites/031.png create mode 100755 graphics/battle_anims/sprites/032.png create mode 100755 graphics/battle_anims/sprites/033.png create mode 100755 graphics/battle_anims/sprites/034.png create mode 100755 graphics/battle_anims/sprites/035.png create mode 100755 graphics/battle_anims/sprites/036.png create mode 100755 graphics/battle_anims/sprites/037.png create mode 100755 graphics/battle_anims/sprites/038.png create mode 100755 graphics/battle_anims/sprites/039.png create mode 100755 graphics/battle_anims/sprites/040.png create mode 100755 graphics/battle_anims/sprites/041.png create mode 100755 graphics/battle_anims/sprites/042.png create mode 100755 graphics/battle_anims/sprites/043.png create mode 100755 graphics/battle_anims/sprites/044.png create mode 100755 graphics/battle_anims/sprites/045.png create mode 100755 graphics/battle_anims/sprites/115.png create mode 100755 graphics/battle_anims/sprites/146.png create mode 100755 graphics/battle_anims/sprites/152.png create mode 100755 graphics/battle_anims/sprites/161.png create mode 100755 graphics/battle_interface/unused_window.pal create mode 100755 graphics/battle_interface/unused_window.png create mode 100755 graphics/interface/ball_open.png create mode 100755 graphics/interface/hpbar_anim.png create mode 100755 graphics/interface/numbers1.png create mode 100755 graphics/interface/numbers2.png create mode 100755 graphics/interface/party_menu_hpbar.png create mode 100755 graphics/unknown/unknown_C035B8.png create mode 100755 graphics/unknown/unknown_C06D98.png create mode 100755 graphics/unknown/unknown_C06D98_2.pal create mode 100755 graphics/unused/battle_anim_023.pal create mode 100755 graphics/unused/music_notes.png create mode 100755 graphics/unused/old_battle_interface_1.png create mode 100755 graphics/unused/old_battle_interface_2.png create mode 100755 graphics/unused/old_battle_interface_3.png create mode 100755 graphics/unused/old_battle_interface_tilemap.bin create mode 100755 graphics/unused/old_bulbasaur.png create mode 100755 graphics/unused/old_bulbasaur2.png create mode 100755 graphics/unused/old_charizard.png create mode 100755 graphics/unused/old_pal1.pal create mode 100755 graphics/unused/old_pal2.pal create mode 100755 graphics/unused/old_pal3.pal create mode 100755 graphics/unused/old_pal4.pal create mode 100755 graphics/unused/old_pal5.pal create mode 100755 graphics/unused/old_pal6.pal create mode 100755 graphics/unused/old_pal7.pal diff --git a/data/battle_anims.s b/data/battle_anims.s index 082a86fa1a..4cceadafaf 100644 --- a/data/battle_anims.s +++ b/data/battle_anims.s @@ -441,7 +441,7 @@ gBattleAnimPicTable:: @ 8524B44 obj_tiles 0x08c2cbac, 0x0800, 0x279f obj_tiles 0x08c1bc64, 0x0200, 0x27a0 obj_tiles 0x08c1a9a0, 0x0800, 0x27a1 - obj_tiles 0x08c02478, 0x0180, 0x27a2 + obj_tiles gBattleAnimSpriteSheet_146, 0x0180, 0x27a2 obj_tiles 0x08c1af6c, 0x0180, 0x27a3 obj_tiles 0x08c1b178, 0x0200, 0x27a4 obj_tiles 0x08c1b0a8, 0x0200, 0x27a5 diff --git a/data/graphics.s b/data/graphics.s index 8726c102fb..c1b8257511 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -124,11 +124,399 @@ gInterfaceGfx_PremierBall:: gInterfacePal_PremierBall:: .incbin "graphics/interface/ball/premier.gbapal.lz" + .align 2 gOpenPokeballGfx:: @ 8C02300 - .incbin "baserom.gba", 0xc02300, 0x7c + .incbin "graphics/interface/ball_open.4bpp.lz" -gUnknown_08C0237C:: @ 8C0237C - .incbin "baserom.gba", 0xc0237c, 0x7074 + .align 2 +gBlankGfxCompressed:: @ 8C0237C + .incbin "graphics/interface/blank.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_146:: + .incbin "graphics/battle_anims/sprites/146.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_000:: + .incbin "graphics/battle_anims/sprites/000.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_003:: + .incbin "graphics/battle_anims/sprites/003.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_004:: + .incbin "graphics/battle_anims/sprites/004.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_005:: + .incbin "graphics/battle_anims/sprites/005.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_006:: + .incbin "graphics/battle_anims/sprites/006.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_115:: + .incbin "graphics/battle_anims/sprites/115.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_000:: + .incbin "graphics/battle_anims/sprites/000.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_003:: + .incbin "graphics/battle_anims/sprites/003.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_004:: + .incbin "graphics/battle_anims/sprites/004.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_005:: + .incbin "graphics/battle_anims/sprites/005.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_006:: + .incbin "graphics/battle_anims/sprites/006.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_161:: + .incbin "graphics/battle_anims/sprites/161.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_161:: + .incbin "graphics/battle_anims/sprites/161.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_007:: + .incbin "graphics/battle_anims/sprites/007.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_007:: + .incbin "graphics/battle_anims/sprites/007.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_008:: + .incbin "graphics/battle_anims/sprites/008.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_008:: + .incbin "graphics/battle_anims/sprites/008.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_010:: + .incbin "graphics/battle_anims/sprites/010.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_010:: + .incbin "graphics/battle_anims/sprites/010.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_009:: + .incbin "graphics/battle_anims/sprites/009.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_009:: + .incbin "graphics/battle_anims/sprites/009.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_011:: + .incbin "graphics/battle_anims/sprites/011.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_011:: + .incbin "graphics/battle_anims/sprites/011.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_012:: + .incbin "graphics/battle_anims/sprites/012.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_012:: + .incbin "graphics/battle_anims/sprites/012.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_152:: + .incbin "graphics/battle_anims/sprites/152.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_152:: + .incbin "graphics/battle_anims/sprites/152.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_013:: + .incbin "graphics/battle_anims/sprites/013.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_013:: + .incbin "graphics/battle_anims/sprites/013.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_015:: + .incbin "graphics/battle_anims/sprites/015.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_015:: + .incbin "graphics/battle_anims/sprites/015.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_016:: + .incbin "graphics/battle_anims/sprites/016.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_016:: + .incbin "graphics/battle_anims/sprites/016.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_017:: + .incbin "graphics/battle_anims/sprites/017.4bpp.lz" + + .align 2 + .incbin "graphics/unknown/unknown_C035B8.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_019:: + .incbin "graphics/battle_anims/sprites/019.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_019:: + .incbin "graphics/battle_anims/sprites/019.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_020:: + .incbin "graphics/battle_anims/sprites/020.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_020:: + .incbin "graphics/battle_anims/sprites/020.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_023:: + .incbin "graphics/battle_anims/sprites/023.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_023:: + .incbin "graphics/battle_anims/sprites/023.4bpp.lz" + + .align 2 + .incbin "graphics/unused/battle_anim_023.gbapal.lz" + + .align 2 + .incbin "graphics/unused/music_notes.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_021:: + .incbin "graphics/battle_anims/sprites/021.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_021:: + .incbin "graphics/battle_anims/sprites/021.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_022:: + .incbin "graphics/battle_anims/sprites/022.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_025:: + .incbin "graphics/battle_anims/sprites/025.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_025:: + .incbin "graphics/battle_anims/sprites/025.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_024:: + .incbin "graphics/battle_anims/sprites/024.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_024:: + .incbin "graphics/battle_anims/sprites/024.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_031:: + .incbin "graphics/battle_anims/sprites/031.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_031:: + .incbin "graphics/battle_anims/sprites/031.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_032:: + .incbin "graphics/battle_anims/sprites/032.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_032:: + .incbin "graphics/battle_anims/sprites/032.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_026:: + .incbin "graphics/battle_anims/sprites/026.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_026:: + .incbin "graphics/battle_anims/sprites/026.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_027:: + .incbin "graphics/battle_anims/sprites/027.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_027:: + .incbin "graphics/battle_anims/sprites/027.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_028:: + .incbin "graphics/battle_anims/sprites/028.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_028:: + .incbin "graphics/battle_anims/sprites/028.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_029:: + .incbin "graphics/battle_anims/sprites/029.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_029:: + .incbin "graphics/battle_anims/sprites/029.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_030:: + .incbin "graphics/battle_anims/sprites/030.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_030:: + .incbin "graphics/battle_anims/sprites/030.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_033:: + .incbin "graphics/battle_anims/sprites/033.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_033:: + .incbin "graphics/battle_anims/sprites/033.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_034:: + .incbin "graphics/battle_anims/sprites/034.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_035:: + .incbin "graphics/battle_anims/sprites/035.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_036:: + .incbin "graphics/battle_anims/sprites/036.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_036:: + .incbin "graphics/battle_anims/sprites/036.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_037:: + .incbin "graphics/battle_anims/sprites/037.4bpp.lz" + + .align 2 + .incbin "graphics/unknown/unknown_C06D98.4bpp.lz" + + .align 2 + .incbin "graphics/unknown/unknown_C06D98.gbapal.lz" + + .align 2 + .incbin "graphics/unknown/unknown_C06D98_2.gbapal.lz" + +@ old battle interface data, unused + + .align 2 + .incbin "graphics/unused/obi1.4bpp.lz" + + .align 2 + .incbin "graphics/unused/obi_palpak1.gbapal.lz" @ palettes 1-3 + + .align 2 + .incbin "graphics/unused/old_pal4.gbapal.lz" @ 4 is by itself + + .align 2 + .incbin "graphics/unused/obi_palpak3.gbapal.lz" @ palettes 5-7 + + .align 2 + .incbin "graphics/unused/obi2.4bpp.lz" + + .align 2 + .incbin "graphics/unused/old_battle_interface_tilemap.bin.lz" + + .align 2 +gBattleAnimSpritePalette_038:: + .incbin "graphics/battle_anims/sprites/038.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_039:: + .incbin "graphics/battle_anims/sprites/039.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_038:: + .incbin "graphics/battle_anims/sprites/038.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_039:: + .incbin "graphics/battle_anims/sprites/039.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_040:: + .incbin "graphics/battle_anims/sprites/040.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_041:: + .incbin "graphics/battle_anims/sprites/041.4bpp.lz" + + @ why is this way up here? + + .align 2 +gPartyMenuHpBar_Gfx:: + .incbin "graphics/interface/party_menu_hpbar.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_042:: + .incbin "graphics/battle_anims/sprites/042.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_042:: + .incbin "graphics/battle_anims/sprites/042.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_043:: + .incbin "graphics/battle_anims/sprites/043.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_043:: + .incbin "graphics/battle_anims/sprites/043.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_044:: + .incbin "graphics/battle_anims/sprites/044.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_044:: + .incbin "graphics/battle_anims/sprites/044.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_045:: + .incbin "graphics/battle_anims/sprites/045.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_045:: + .incbin "graphics/battle_anims/sprites/045.4bpp.lz" + + @ two unused window frames. + + .align 2 +gUnknown_08C08F0C:: + .incbin "graphics/battle_interface/unused_window.4bpp.lz" + + .align 2 +gUnknown_08C093C8:: + .incbin "graphics/battle_interface/unused_window.gbapal.lz" gUnknown_08C093F0:: @ 8C093F0 .incbin "baserom.gba", 0xc093f0, 0x87ac diff --git a/graphics/battle_anims/sprites/000.png b/graphics/battle_anims/sprites/000.png new file mode 100755 index 0000000000000000000000000000000000000000..3d8662a861b914286f192c21f8e95d25e4b95960 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*CkWBfy|(wpe0L|{Qv*| z=$7IoQ-Yd{Et7&Iyet{co;}*!+zeCz2Zk?sZvr`4o-U3d8WZ>SZ{$6oz{4V_>mAXd z7ab9A8NDbZMDxzZm=-0~ZR`(rTkr4o&#XQr8)3;&QslIBr`JVch0_h9-TE6+CI5=+ z2dkc6_&+v%hqhBZ`-6W^8*cErO5Mm^)et}T?xLy39G@Jp{=~3nhH6Rdw>RrSPVjW~ Kb6Mw<&;$TrQc!*X literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/003.png b/graphics/battle_anims/sprites/003.png new file mode 100755 index 0000000000000000000000000000000000000000..b3164ff0185763068afa3b091569c63d31bf2fd4 GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`i0hIm-9TngP|%VkOaA}= ze{@Unk|{yW#g<7y5?+=JXU`sOZf^eXmG%FB_y08#|Bq_UyJrH@8{p~U7$PyXw$D(A zL6L*`?a%+}NzQBM8(X$YYUuIisWBe^adDYY55p;D@pXHYo`w6eY&mSAdGqpptKP3n tm1;~2a+1jtA~dj4bT2PatvrTgQu&X%Q~loCIH=>N~Qn+ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/004.png b/graphics/battle_anims/sprites/004.png new file mode 100755 index 0000000000000000000000000000000000000000..c7cad5ef9928fbd3bb48dfd0dd577fd430dac7db GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!VDxI2ESSgqznRlLR^9L|NsAw9z6n z=MtW+SmbS*T>VaD+WtGjLH~F?0}O9lH_cq!rFXSQ_iy#I;{NKlk&OAymN!cojNL_J tS4l2to?U-%hLDqx#e1H#KCN9-jO`LQHGfa{sNMr|r>Co*%Q~loCIE4(Nb3Lq literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/005.png b/graphics/battle_anims/sprites/005.png new file mode 100755 index 0000000000000000000000000000000000000000..8bd4ac426c02f47db157e6060a31f9e6ba3fab76 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+AfNbpP*W_&w|Ns9eApY-_^}l$^|0PHNpM3{Z4gnih$0Pz-!JaOTAr`&K2@MQp>}(+u zo;96H_bzq}oiy#)qo!318V?#40g0wX3@Q%{E-*>(Noz3n2uSNNNfcUVuowhAbl_OB o)Nzr}J2RffgO7r=I3IM1Gbp#jyXS1(a13OTr>mdKI;Vst05|nXng9R* literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/006.png b/graphics/battle_anims/sprites/006.png new file mode 100755 index 0000000000000000000000000000000000000000..30e2dffc1aa7d5d7c44ecb221157ecdcb7d7211c GIT binary patch literal 275 zcmV+u0qp*XP)T%~}0000mP)t-sq?C*Q z|NlyA5MqNVdz?YVv~#4CQiF3jVp14NIRIj`7<d*1()q-PMg0001< zNkllb+v_a%D<+)3%Ia~@);nHZAoPN?d5d4Ao zp14DL0DEDs{TSHgJ`W170(bV4!jsuGaDL3-H4+MpB5#F@h)fwkJJc6L*!}Qm$N(Ve zSyqE~(_6o+cAIsCaqgojOEFSgZw+|;1xU9>U3c6IsoB}2L}^x?WH4nR%3^g+U!l{# ZJ|DFSF+kdXX>9-i002ovPDHLkV1lGSauxsp literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/007.png b/graphics/battle_anims/sprites/007.png new file mode 100755 index 0000000000000000000000000000000000000000..5a2369dad1dfa6e29dc16effb4f04d283e40c242 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz!VDy5c$8@ZDT4r?5ZA0J-9TngP|%VkOaA}= ze{@Unk|{yW#g<7y5?+=Jni4=s6mVwN|7@VZO-~oc5RcBQlM?w3D{!=Osw>|4KjG|) zt^>wP4GUlXFud;XdXHI&J4}>oq1e}IfvY|h44Ulclw}&vG%TCJaLz%FL3bm&j>xsu zwGSj_^yD_UC2DWHX~DOCCjU;eeGY%t=|73K$$4P8LiIgkt!#i*hx5<9$^Xsd9Zg+- z{$woMsyy?@`_dy0HTHKc{EOGjOm{F2IAyk`Y0{SU%wFt;8uC0$+y_%~4!?iq>~*yA z=|<(kkGg#)eR3<#|9fuc!GTx83GX;YRS?I0&kr9{nLWs%kH|u T#hpbvLB95M^>bP0l+XkKT1kLh literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/008.png b/graphics/battle_anims/sprites/008.png new file mode 100755 index 0000000000000000000000000000000000000000..634c4d2bb43ff07544ec2d3de3bb015fd870e006 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^93afX3?$7I7w-U41_3@Hu2=8p=fS?83{1OWQ%D(C0)+jEP)Ry_kU-mF>>P!R}0{ z8)Ea07P*zetyblC<5pQhWhfQ03k9l>wN@5$>C}+wdvitXX8`R8U6#XNKP|dlr%Kd1 zjBBBy5B@iitR~e3zqBw!%d}IaJo@^aYZt0(Ob7#Th6Y08BzdAoKNCL zbk-Gl@%o~!6JY4V(e!EAV$uFlGWzdwk{#QoK%^bYu+ws5FNG*7sbeN+$g9k zs673*+|VAAJ1$NI7PnEb>+g@~l;e)kei&}Au+vuD#|wb%r~DBB(P4+q)*)$FA+Cvg zR_bt-nEx1-A*3+4QPTUk+#Hjl1s~o;JAw_zTjkuc{Xjt2Z!xX6ZbQFKaCrjlZq0vN8C~e*d3Jwhgn3f6m8{7oC-boExla zqM278ww=IsE!AP7bilJYss%-?d*(PY=r7k+*lGDhY{qeCW}VN;VGiFMD|fCEOzkgu z!+-5gL+qQMTiWia>S!{&GtF{fuyWsf#Oe;S=N5IT6^u5FHyMu$PMoR0w2Aph=v=10 z#)m=&gjPHkVS07)vao~w&)*HFo2^)%ovve9lHI_xpz>NhW7_=vjn_O`8C)Hn|4Ghg b`24kw(NS)TC&xM&a42}X`njxgN@xNAtmcr4 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/010_1.png b/graphics/battle_anims/sprites/010_1.png new file mode 100755 index 0000000000000000000000000000000000000000..ba3ca61929d1c9a6c0607cbf9caeab353393efb5 GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQU(D&A+A|dx|5>*7iazNZvMYy z&i^f2{+~Vj|Jk$uKmb$%2XOICOSR7eMQ3}uIEGmCzP+d@)oj4S`oQ8@Sdyf&n9F&Hwox|n(dj}P-khMTgp~*B&p$cu)~XnrOfm6nVncO zOdbU@OC95TpqlC}eL}3y@*%?|CAUj2=Z8LBwfpiZajh+PF3WT2a)2D~>FVdQ&MBb@ E09f>MoB#j- literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/010_2.png b/graphics/battle_anims/sprites/010_2.png new file mode 100755 index 0000000000000000000000000000000000000000..b71a875e777b335d5e8d0ae6aa6dd145c3fd3c77 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A|dx|5>*7iazNZvMYy z&i^f2{+~Vj|Jk$uKmb$%2XOICOSR7eMSDD5978O6_g=8(Yfuny4V<2HTrA_5tkatr z$F{T8H+;Cz;ln+J|te=~l?bwfy7G$LEJF{D8vW`W?NJJJr!w;BW%NY}9aWtycKwC}H~ o$N!6r|6C{3S;$>tt~_D8hHI^w{w*PkLm=0By85}Sb4q9e0M)f9hLAn{bsaq4E;G7h>{zI>K&YGZ3u}}E+uCCdGFuMtXdK!j`&3h8N7{q4 z+|9Ed{z^L9G^_FZJckc#_fJGGY~>Z3C};NQ@&0q1Yq#yb+kdBE3dkv*u6{1-oD!M< De?DND literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/011.png b/graphics/battle_anims/sprites/011.png new file mode 100755 index 0000000000000000000000000000000000000000..23ce049b00ae62d1030ab954f27d2b03ec557918 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioT$fDg{@=~;e-6k0H4^`i zYW}}!`Tv>M|Nl|{fxs*4fAN(6OOF0O`wpla0-hc`v(Osow*n-xDV`Jt;ASD8JPNrubpw#cjRdJ7kFDcj1w`c^C9 zUZC;rz+6_X-#R-^@fCh;nSY$~^s+kv3zKst|J2VD=jjk!==(!!Cdg7xS3j3^P6yPPXPNVjT*bOa9;GsuH(X`lvZ$X7#d-HyAX{4rm&< zZc@@*6yB5Bqt_Ez@9elpo4F-o2 tdQ23Um#FFTE}5~H$HUwq=RLzE2AjEZwx5Gu{R5iL;OXk;vd$@?2>=4oNcaE% literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/016.png b/graphics/battle_anims/sprites/016.png new file mode 100755 index 0000000000000000000000000000000000000000..df9651411453a98c9ab8983a6fce6f4225b9f29b GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`i0hpH|AEZ^U=qk62#ic7 zUjQl!^mK6yk(fHS&ykP8kb~(d`-lJM-`!}w{pEtQuaCflfUh>IHu38%ceP$@vCWOS z=$54EBxVJVu3LO5dpjB?N`K*J%w5F3Z>3UD`0o9p@BZ#P!@jbOdG}hCy|o}0c)I$z JtaD0e0ssZVICKC2 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/017.png b/graphics/battle_anims/sprites/017.png new file mode 100755 index 0000000000000000000000000000000000000000..e287698b4a098ac25f75524666dc703ff1eae774 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^93afX3?$7I7w-U41_3@Hu51~Smo)z4*} HQ$iB}N?ILR literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/019.png b/graphics/battle_anims/sprites/019.png new file mode 100755 index 0000000000000000000000000000000000000000..af29ec730df4af0cce00c1f2a38fa59d12c7eb1a GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^3P5bZ!VDzyE!ZCR^yjTZAQyYO`njxgN@xNAIQm&j literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/020.png b/graphics/battle_anims/sprites/020.png new file mode 100755 index 0000000000000000000000000000000000000000..73c7f1344ce13d1e468751fab8969e897711404e GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ipS0Mc#h>{ro&tdp~l;Qu? zr2p@Z0tJB}sXGb6Xl`y^vSi8CvuFSR|Nmu<;47eLzo(01h{nXD6E5;L8}PWC_jwS! z@ct2L7Xv2=hLtbv<=^agat@tn!TsgmyO%Z7cq=YOKfL&J`7Vp)&e5k|?#=cUfBN~l zX8gH5Ps=!qtKRY^cx5KPeX{AuMn;ovt81LM60~0P9ueS(ocdLPQO>H>`Y#<< zepQ&U`GCy2XK7B>3e8muSby+)|1WBk|GC+2MicL?xl8m9gBgTe~DWM4f1RiSc literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/021.png b/graphics/battle_anims/sprites/021.png new file mode 100755 index 0000000000000000000000000000000000000000..c531b820cec3419baa2a00f671ca6947ef95433d GIT binary patch literal 671 zcmV;Q0$}}#P)$>8oB#j-0000000000b?NdC0006i zNkl8nu5P;7x43pv#LP(v*kYE^j4I53ON9Y>EFvxD|P)N2HEkz}J@fg>O zwxZF?m83+AIsr}Fp&gPNEb;U4c)ULWyh_Q?n#A2TO(arDWP!G9UNZV7|3m1pyUuWK z(>y+P07>MbYhoRB_T!E)KFo#hXSTHeZrwa?h+xoehW8j-dRUq)3e~v6Lqsc4s`>m_t z*qEee_t?{7o$kuou}2f5Fz}lE&1Oo4uCA@?Bk^7+2_p+0sk;7DUBB@(B`QFis{oB- z6T%`^Wcnq5mp=P-K@fr&-*yfL%YM_9Z*q&lL{sUyA2W z4t?`#-+sTSu8-=-)OW7YK9{!1O??n&&h%Q{DW*oO@=rWJi-{*v_elT%002ovPDHLk FV1keoGdTbN literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/022.pal b/graphics/battle_anims/sprites/022.pal new file mode 100755 index 0000000000..35cbf00968 --- /dev/null +++ b/graphics/battle_anims/sprites/022.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +205 255 255 +156 255 255 +106 255 255 +57 255 255 +8 255 255 +8 205 255 +8 156 255 +8 106 255 +8 57 255 +8 8 255 +8 8 106 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/023.png b/graphics/battle_anims/sprites/023.png new file mode 100755 index 0000000000000000000000000000000000000000..a1dbc20c21eb911d242b7a579c7e8fdf0fc57c3f GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^0zh2A!VDyzYQE(FQU(D&A+A6g1fKmbe)j+Bv;RQm z|Nm?L|1SnIlDd;XQVa~u&CN@eEV+92?EnA&D}S+^1_~Yaba4#Pn7DOPAm3pHj<${8 z7$&`CSgXF`Aye+5zvoR>KG?KNO5QB)$D-E%`b-7le#Uia?J=JwiweDC?Jy9z;k8xy z_14%~`xah&-KNd8sIEitjNT0Y>@{@>&uW)kEtruu&EU`qvqelkYypWz4T3-FpKN52 z{Je(QIVFb0CeembHLN+#v@y9vHf}V&}#OD7~ivfp$74#0p|bWzDfy{i5)$^1>{9fS3j3^P6;ZM=1{3pO-v`kxoo+9uTR_VkC-!udh}qLqx8nJ=ww zbP0l+XkKnEFbQ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/025.png b/graphics/battle_anims/sprites/025.png new file mode 100755 index 0000000000000000000000000000000000000000..864f7106547f776f3eec57c0039435bacba672a4 GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioT!AzQJo{h#?Elqg|AEZ^ z|JVHgUkqdL1AzSurq(Xhb%fEYN9mxZ;>$_=qj>QR>SLr`5gc zCOh+4+^>nMIre;=b-BI4DNb4Gy3=o@eWr$>8oB#j-0000000000b?NdC0006i zNkl8nu5P;7x43pv#LP(v*kYE^j4I53ON9Y>EFvxD|P)N2HEkz}J@fg>O zwxZF?m83+AIsr}Fp&gPNEb;U4c)ULWyh_Q?n#A2TO(arDWP!G9UNZV7|3m1pyUuWK z(>y+P07>MbYhoRB_T!E)KFo#hXSTHeZrwa?h+xoehW8j-dRUq)3e~v6Lqsc4s`>m_t z*qEee_t?{7o$kuou}2f5Fz}lE&1Oo4uCA@?Bk^7+2_p+0sk;7DUBB@(B`QFis{oB- z6T%`^Wcnq5mp=P-K@fr&-*yfL%YM_9Z*q&lL{sUyA2W z4t?`#-+sTSu8-=-)OW7YK9{!1O??n&&h%Q{DW*oO@=rWJi-{*v_elT%002ovPDHLk FV1keoGdTbN literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/027.png b/graphics/battle_anims/sprites/027.png new file mode 100755 index 0000000000000000000000000000000000000000..28b3876b7a252eb927f763e01e40a400748f6a6c GIT binary patch literal 619 zcmV-x0+juUP)$>8oB#j-0000000000b?NdC0005@ zNkl;xB4yBrP*Fq1X)vwau+DS#^cw)&Su;79|W3{e{3EH;H% z7EuwyelQeD6+uVcUb`DDWDy3!PRHva&I|2?ZO`)qObPIUahX@L0|ULO)l&|%_HDxm z98s{)pwsco5U#|~zZ~?-4q5$9!XQG_VAqE3#%ykupj}l*nd`_F2w3VI?_^puVg_s7 zA3|pNBh+=+n1=b4>ASJ#y&JSPW~@vGScy;Je=@t%$Ng<<#~#c@e?Y7$32#`o{j|R@-r}!JzcBsC^omMX z5!sq6`ii`ZQldpNCfZet4FSxbuUE^5=gap~dxd`xdjr}&a8@lpc)0)o002ovPDHLk FV1n9-8;Ae^ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/028.png b/graphics/battle_anims/sprites/028.png new file mode 100755 index 0000000000000000000000000000000000000000..b3a096996291e4a49cf3e85b6bd207dab56752be GIT binary patch literal 707 zcmV;!0zCbRP)$>8oB#lv0000000000vtOI-0006` zNklP^XqJk^2O}B#Kw&V09c1BwP)9YJ zphyERiol82Tjx!A7A`Qkb4Z!( zWutfS88Tdvzb|})z~x=x8>Ewa4=_kEh_72s`_pAOYuA6u$sWLI1HPxZwuti*%I%i614CPp5-Kw!08&T!?mG^CD5AqIx4HB1&jqMRn{qFi=GFFXHnWsG-nS zHz!2})+Z@2*bSRAo6c9@ zUu(XM(W`HL&@sA!UC8lXzl_8NLWh+W%=IudX_p7U6zE-b3wEpiUxESVZYY?R2K9qA zi%lPf#}H@M2MH$EWhPS-R-%7j6~^#!k(;Wt`SCS*;?MId_-#pg=^1&caOYUA%n&9m zkap5}M$>8oB#j-0000000000b?NdC0004` zNklX9I0+wK1fY%rc+~=UUI}1PeZR0KjUZZM8fa>+KaCJ4-0J|)Eu*Jlowpo_f)pS8>7mipvbp)7gu8Z@>V-JOd zw7g@`&NkcMF)_SyazXCkR06$4&j%7fNi+NVnWgE+Ll1Xh&@{47e{iE$(uCW}FB3D^oHr9Mj0@kHp^wZCEx3PSO!^p^*FY*IFQH(-`ofmwByF33Zzi1*?;< b!vAOQNvWdm4N?G!00000NkvXXu0mjfXoT*t literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/030.png b/graphics/battle_anims/sprites/030.png new file mode 100755 index 0000000000000000000000000000000000000000..ba7161fa18c2024a48e8c8d98ccbd3c43cf06235 GIT binary patch literal 761 zcmV$y}g{Qqfq-)$Dc zoi0MjZ^7yG_?KD#UTzK7Wv*JijB7%Y?o9VIv(g$mLj6$Zaqe`fyL5<#1 z#z_!i5jgG@(F}`-`$}WH6G>-_I0k?;ZCwNy0;ZqQddCLcDRKe#*mSOiJgkDcA4b?K z23$bY+p?~1A1;v(==&Wnkli@Ke-eQ*J=;#Vu|bJvmLUWrRYd8)03o!+Is%kNtt~wq z))^X2LsPPw1+bQYfpTx{Gt!|R{KJ-Lots^y{EKu)Z3@J)PxQ>UKN~ki-&0DxoJV#g ztjl$O<=wn!zHNAaO@)tW7ox?y@j__LOXP=hoSEo{KQVo_k{$ebtTv$Z;myjB5z;>$ zDQVa|#4047H!+kXTU|&+5i?&JUMSA-7}jQD2Gk-Fskw^2-K`*Xn@rWj*Dcf95u_HX zGF^9Nw(}mS9U}I@k+hV~af!?Ts;lDvWOFuaMa&6XoN2-evO0000000000000000000000000kv)xv0007O zNkl$n zbhHaxv|G?cwJ1s1oQWcuzla5sfD06qfJ9OWm}2k-mQ4RmMjZ(L8U7G>H zoMP5@n(+W+-Leo+!U<@x6fJ_eO75l)&<4Fr1VM%a91kD>c-Ix2z7N*K7u;6iJa#H8X&1!{h+N3^`t z{O;|+uY&zsi%H=;@fpYo^^DUqoLFQDct@*ulR5&U zr8&}=J_O^&n9XityQ9CaMq@@Dhz_1pJm6qA__IA#;X{c5nFq3hiDgajPiL?Xs__8_ zeN=W&=4sL2GisK7SYXMmv!BjIyv~wk^SLeSs9_ SXb>F$0000$;+`~Uxv|NpE1 z{}1~AU-SP_h5u6|{wE3iH{|%wz%Yk_A?qrT1}giX=w0>^$Xe#<;uxYa@o3ONUKT}; zC5+DhV=p#rY|U(_Sk07GCSU$s_4r}giHU8zF6jr`|HQM0yEibFe&AmpvwYXfW}&hL zyx(WNk!voK*t%=im%f_0N3Za{&^>IKyu5z3R`DStA(OUiW!fptpSd1sb}c`e@nh!Z zz&UKOVr&2He)uZ&>4`L*i<|6)rk_@-QoQ$x`TvZ@l#>DZvA?-WX000LE zNkl8GtRFx(Wchl&Kz~<5g zyE`pausc}tkGePSEh*UvQlz-G#O03m%bel7w^8)J7d6$JsEdXOA1=O&)K2ZDj$PA6 ze&^aDQrsnJ8`rzmwfls+Vg_gKTIX!r?p@13WA2@6R*p)GF-c<`7wZ}ZqQ*4FS;G}i z;*FtuE<8sR*R?Sf+ExJ7RF%=j=-TcApmn9IT9?=35WS>7trvv=zAlPFFUumkw6bho zjKyMEwJx%Gk>!gl%Zm-BSkKdRmd>&?P4fo=wu^KsvoDxpegx7R0`363Isvu-etjdr z2TXc(>@mYC(b+tmpNzmPMMfpfE^ej=e@45?icdeyFv{?(qQZ}^i~6yh&|MNeME%%B zwL=oChr|a3bl!F9+_%cfm}CRs!M6wDmIgT6dD4ToF6g1LE!g&f+t?AyQe;TnG{ze0 zMsko<8nAEaV*AYqSOCWE&?SkQs%CYRb{At20z@8*YaS8Db)~f-HO%u?04?PTk)PnF#}b9Ln+zq z)x>2CVlVRf)FZh%>g9sB`t=0h2lO}f<^gXeInbnpy!!KEB#O2Mq}WVUoE1VAana%fETCFX6B#jM#eZdbgGJpm$z&#%Q# zyflre-}0(%OXi_rAyu`JRYe{(eOVuS21FukLJcWHm+zq%T>;pZY#mEfODud}X749Q z0dT&UXW4JRlYU4^m{pNfX7pmu@Syz111^ifaIpdW`OL_B$Z@47Hb9lRyL zn=Tm2zNeQuQr@&*1n@9}7<3EyEQbx+cTM=`#^7*&{T#4vwUJew*awNi0eFg7A7mg@ z$uc2yP!S+DBmKt8Lnhw2Sp|Tc0&ZatQUD}1MUtw#2KyD5J7*!3A`;7T(1jk00MLQh zhX(si$<9&adC*5(;vFRq$;*_TT;dCT^+y4Sw-5(DrmVu~@oFUdLdcCr1Gxx~FkZg^ zqIK|((LSPo(=20P;{P*tlFi;8={|d*k8cW39v|C^_Cs-EGXe1i-auWp@$-?ek|cD9+6QHK6nzdsV}tAWNH^5J73ZQ{ggwQ3CmBf#ufc^r z01}u9hah7)MWKjmT;T08WLJP31gI54x_RS;) z5lmB`2nO=sYElQjOA-jPuf-|gA8bN#T~K(T&mt=-egO3X%;gkua&flpEt>_gc`2{d zW61&{Z1o^4tmhXZk>zFtq(^!w3VOVq;*Dr5{wvIpz8R*o%fhZmXaOFHdX_W9Z2eRLDNP zP;cND;tsAAz>NUkBDy$cf6uotkw(b&4Wxh+1$v0&_+mI;4Zxn9rLKa>;F&54KoW7R z0MY&E6=XF0!fcUmKru^6NIG9Has(H03lWfC7vThR(+PlR!>1Pk;)cWm>z`#e9Xp*_ z%tJDow^$azBOlpsnMV-^+XL8bPL4cs!g&eACxUs+|4Z!BuaL(qbDL-S__^~-GF6-J z{XBf9@3E+e546$=f$4y}b~j}@9B|rUmx#wCNvB$za@ug7?GrlN?7Z8dLI=ubJtWgo z1wg?{Bu8QAVgG<;EdE3vjsp%!q!B>QGC1Qjob;Xwh5^!8U5A{7jb2eaLG(e6(sF!t zQ@B}4j^;Io7i1qD3*@{&HUh;|9Y47(pJs4`5hBzbnsm;j@_~Uh{Tk@cd1G|K$pXDI z&VpaE{|#_@MwSCFor!19^+9=$WJ1>?qYa;UrTrfX)4rew;tG%e0000?-WX0008r zNklN^a*`=Q5KHmo4uvF7o@z^3 zI3+Q&XqJ91yc0=D&Qzd9Zs6(O9glasI||?*k`GXHMWpX7h${|9!XVmKDb3Ht$%d2w z%N%Op26r=vQnLIlPH#}XiPoFiPaJNDC7JacA;5kHYXkHX1U&KW+5)N6>ya2r3*ccz z3&<2PVRt}oHHH`&NbZ30z@Sush@{ke;w!H`g2L?htvGQPfo9utajNqqA3Wb@Nq8@Q zIA2TNMu6H|$2`|6&i8o((7Ii@=+GH^iCipHqx^a4 zfD*kgLl>{F^cHp>IG{im{ps+=WH-LT9ep8c3pNrHvny!B(W(;EONQuE9ne;-G53+*2n;r1lO*5gYRPf0D3JtB2%){sZ5WzYRii-Oyjgc z;_+OUJ~LCP*I#0S<;rXuz*KxD{zz*D@_2kfpMGH%8w=i=FB|7HH>H0V@`0=e+B!KN z6OcLGY=mbi*I_Uc1Uy*T6T_8e`@{m<;1b#H(#XB2ZuP`kB8JVkFY!&Z`2{r2dmaVEqWr-`XaA%H{Wa@{MjbnEv2NWS}M z5q}R=s%(WO^=;%;)hd}vvb<&fbg9P&KZ1+e<7^Vq^Xg591bCytoQ}2=dMwP(pg$TI zpytq<4yiI8T{{B79D%|*2OiSv*QCPZrR+>#Kf&mDlh{j&;gwCqb+5OEqVD~@1AIlr zVy+9zx*ynXVGK+^KoSSD!5K(*VY@IGi2=C(wC=J+4cK_~h2DuT^j#mw5>TP+RHC=+ cJm`N*Z<=iAc;k#c-v9sr07*qoM6N<$f|9?9wg3PC literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/035.png b/graphics/battle_anims/sprites/035.png new file mode 100755 index 0000000000000000000000000000000000000000..cde2105dd0b7e0df6530f1a17b64ccefd72c3e29 GIT binary patch literal 721 zcmV;?0xtcDP)?-WX00079 zNklgE+F!x%fV7R=+xnK;b+++x@(%c|$qs~ZjL7BrYsL4x3 zvN6`mg?%5BDmyka`(wYv{*4j(Z~xAIxnSjj7ssE?5#kq@qlY>2toz<-@ieomJSLPz zph`$-U}xk}NaM7&&;zCOTcf+?`>szQAcXV)3}k?y>xP2^Isp8xlL`PS>$5m`FbI0%x{G}O}3`}Sk$IBX@vZP3~K%!-h@VU%ZYbbDET%WgV1zm-ZcPi)(BW{sXArN3&J6+yw zpike!JAMn_jffofJplNiAn5iI4)UhN4oXTkmgqe6N66CTOlh^Kg#puOURG5V_g3SO z`dhMsO{$Z6OHG~@YN~*-U`hPbmZ8>IknxufEaR)~4oO|v)zmk0Fe2QJ$4(J<3XZN~XL;b)J+Qsq1JV_st6=CIvqhIMZ=09+e+3WzvEHekr1$nX zS>67&P8s)Nuk0_Xy1C$fC;!lz4R~}t3j3ir)vK5Ug#kM)=<6RsXvFo;H>@GigpY#o ztw$Ub61y>Hl2r|%SeQ&)Bv7sp7vWy1WEbxY5n^994T+}GNCKp3-=|GN@2c<;j|Wjb zJcO*T3y4j@Ts-yHViM>TA=as|fH*ZP0jE1i?Mo0ocpl0czXt*jc!P}HI^GVj29o_e*!qEO*aA=uOv3`RTj$@>-6KAakOnvpLtg=}^vZtrC27QbO zpVa@M$DvDAKAOI3(~z40q~8_D@UyAQg4`pF^$0~TM2a+_iQ%Iq0%fR65NxtT9+Az- zKjrKnJj#gBSQ{c#pA;u%EHxO?co}mlQ^wYmD%0!Y#gPQX5@NB~3%N~^SOygJC=&%t zl4rzD+qTg}&*a*&7?Hk?2+Fq^jc<`$`&FZ{8m=vQR88d&QK;z=;=g700*j#S%@6

szt)E0F<(ilmt%coZ9h1}|$J#BBn=7J#qh$Idio#Z_P`R*eGhuWsyTuOay zcy})PZ$W;oATt03?WKdwL4#Xq3)CGzry~a5=!9A6!0FW18gO-cM{rh>S{pY-PD3%2 zekbQ!VG1{{*&!=z<$Yr{S$43cIj^q9xytPZz<(Riz}@P1dt;;b=2bbTFdVT)?+6CvodX%#sL%y$oYD5)gEw~Gtcr8#?|Lnq z-<<%rpI=vr`nZJ+FFL>ghG0awL@>F85YSLLgC?=t%@2G{eQIzt!7@5$@6KK4a3712YSx^u60YURaM|i341H~W8MaR4wZ?* zFS8c8PkAlqIX_!OY00PiuW}UPvy^=v?0zGWa?bryZo+|CU#?bh7`f~GWj%0Z^~FQM zG6&x5zI`2+4xfN+kH@ zYNr*sGp*Wz(uLdd>G$!U{O1B8N2!MJfDWe^jKiBBKoB0s%enr)lz00LlVTF{zC>Wv zV{`Z%Y#EDD3kx0>0MOim9g;+>qo5?n^RT_a&Xz6gq>SFs?+|LTYvR?b56I;KIoI#& zi+o@Z^R!q%u;M(0_Y`b7A3z`t#}bin-W!Pe`g6JEjIBW)Ow_}mAy$laN434Ck<3a! z7a}so+7J}_g>|77YKprK9!O{5J)T%ELnNUl3LlV!luK_V(#YSD<}ipCJ~)!(ly#hZ z3=i^Ak1^CrY0?nmP@&vl1v6Tz}pc`o=i#b5b zNdy=`32#Iywf72`a>khffKbuHOLH!sF;GG?bf#G&_ zLs$980Qks9-Q~M{056~U80~@GA709uYUa930jMO&9#EZ3uq3PUF^qs+RY}0bty2s7 zAc(Z`Qh?9wPP;A=2CtF;yUJyCU_cY;Bx!xdRB;A?1knuVo0b9t*9IN2BZh($ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/040.png b/graphics/battle_anims/sprites/040.png new file mode 100755 index 0000000000000000000000000000000000000000..c7d493d922c8f35b798a02166a20f04347b4f7bb GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^3P8Mog&9cBe^M+DqznRlLR^9Le<1i){r?@q|89o= znhbLo7%ahp&HvYM{Ey;T62;*a1ylwB@@9n}fUK{cE{-7{oo}aZhW|Gw};!kfPw?Rk3WXK5qDJd;&L{Qq80 zmYRQH`}^nfwAM1pmq*?=71BGwW@p7Yk&jL0-4PbnJ6vpBEN3{x*dz*B6SA03sIcyf z5kH(ff6AH0O&f&@mIrYQrlr5+kyZU&-!W4)?xWUbwhitJs@_~#-q3JJis5t6wpA}2 zR8N*{nMk?o3|O%+K?;V9x8~vOE%+5<0rArl6qkboFyt=akR{02msQ AbpQYW literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/041.png b/graphics/battle_anims/sprites/041.png new file mode 100755 index 0000000000000000000000000000000000000000..e088c1f8670794cb9cc58edb8e9c1c24b006ad4a GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^3P8Mog&9cBe^M+DqznRlLR^9Le<1i){r?@q|89o= znhbLo7%ahp&HvYM{Ey;T62;*a1ylwB@@9n}fUFiz7sn8f&bOBw`5X)cSOYpANF8Ez z>0j_oY~NPj{n7=szOI*E9pYQLFEstr@|j0fPVVnGw)XO>eV#6i%6F~UciiMih7ra5hstX1ji40b~if@N`e0(7LLON*4|N~AO?sCcEcAe}^e1rHF?+yhWJfeu;o z3ciAJ6vp$nJF|OHP=b&mEG0AZjqUmT*|z|XW^{Y2&3U&t`Jm1D)pF$qWVd+p;|!j; z>hN;;j>Edv>Tn*{gW|F~mbgC804?4M$6bz@0K4T`3W2pN0CYfkUlQP7?*s5M1FH=1 z*91_>dH5ysVEC4RQp~RxS6hp?EVX#}6kOzRQvl+F&mccHwS4f5BAay;2*`_kT)VNT z0dcMDT^s(IO$fqwM0~gmzI$VvS0dXaq|gjCl;%Vd%=@u7wI0y) z&CCPikl0xn8bGMcMEe&$Nu#%^Wo6Cp1nS6k0Z+>iW~!SGQ5Vsf@1wML<2z3Gke9|A z8b>tz_kUgItzOR%nB*EhW^+&P$#Orti^qS9_NdA5#4nvVy}>5Tmb8zJGM TOAB^w00000NkvXXu0mjfVC^du literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/043.png b/graphics/battle_anims/sprites/043.png new file mode 100755 index 0000000000000000000000000000000000000000..e5e929ede8dbabadc88f1444c48fe003e2d8c90c GIT binary patch literal 864 zcmV-m1E2hfP)KDNz=i&1kQB^<5KXc z9t0(j*d0W(6f1)voAHP0yVFTJDIKz8DS05F_tX7((*1M-cxqG!C2%$?lFCSQiao@) zR-uW-+t@S#c81t6njkiY*t^N{HljOhtd6q$vW4HLy=xq#{e1%7>gaH(2*XAjUC+O6 zh~SR|J4Z-E`26TF1)h&h&cCA206cHTIS(2H?lho$B*C()0P~JH7eR*_EHv=>NNo6M z*(-G%9V@`YB!5`kJ5kM!7&>5}|V zT|94yaZFtWRV!o1J08ct16h4FY2wFG72h}jwL}=84nqv6@E_g$*~kyDe=afr^BbyR zr44$0tf>};VRNE^76$thn85TQOouqRh*-$>#!)Iv4&RVl=-uWNk44ki*ThMg;0Jx3OjyV z1VLNQk_!ZNr4TcA)>=|WpN_T46MS-^fPDa3smcc_4B%O&loAGTY#1bk;U^Edk{eqdF!9N(LpBA82rz?p|ja q^ySoa7sp07Jov{CQTzo)KKo6ftAGCh0000zu};G<6h&iHwNzpWOXucOs(eUTQrH-(KG@8H3{#jYZ(&1afen-?6IGRu z!cH7xKdUl{idyaxof9QZ@~+(=_+5sV51BZGVJIn0(~Gc;6hGvO37BF6aLcu*iDyA0 zOcI$}ByweuNP-{JFX*v~Y!4#G;auXy%~cPz?-i>B+P zCe`&)lWK5@yZ(i{{)xN(hCeyQ;u?#@E5y{Ct454t)i>-hua9TdW-0cJIor!!$J{2q z0-InF+Z4~D23v}z_2fpH)F=mRYB9X1ef(|u_1 zeS@WA+75^GJEg9VH}tM*%h7H*^|jDR_J2cyqu{D3%X2;$u!ccVDs> z%5ewokNq2={r~WaPdVA)wy91#7izbhc6}RTr*tm0+2#Li<8^-o?Up?^S@~*V@Qk+K z8E?8bo}6^-!NCOiqjERmJ1bn%eB8CZrSxX*EUnej%Kq%d`F*A1)4!*-PP|rsCzJ1p zb)nCuscdU@J%6iYCiP)~rk*162J?>HKupYB{l9pdPla2 z&+P2~vEWu$(>@XH`wGv+XZ`tI=~dYA{w}+Fn4!+eJ3q}HY&1;KPg=}du-ddu{+P;y zEo}l~FIURZNGGZk^8cLAa{GZ`njxgN@xNAt^;yw literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/146.png b/graphics/battle_anims/sprites/146.png new file mode 100755 index 0000000000000000000000000000000000000000..e7b0360a6a1bfe852218f4dff9d9aebbff775d77 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioT(hQhCq?})&idco{C~-u z|68{FKYRB7vuFQ-0H_2G;NqK>YM%v)c6hothDc1Uy>OPZ!GMSD0)N#zy~am36?g5p zQ0z8w*8Ojb*p8$N&DLPp!q#oJe5DVk(3~#0&dSTjUP{b=Ab3_L|1OivCmm7CiK-{s zjGq74kUcByn)>#y!a4KVHLk^Ip0!=MALLR`S3j3^P6Eal|F*7;g0Nahugem?FhEfZR zp3cqa`P9|NDbP66_<++>S)Mt@4Nh-F9r&L6u(fe*u=1M`$iu@BY0Gnp>5qs3$Vg9D KKbLh*2~7aXX*VSR literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/161.png b/graphics/battle_anims/sprites/161.png new file mode 100755 index 0000000000000000000000000000000000000000..5976b2b8c1a1ae84f5049d9c22eb0cc5af53ab07 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUT{5K`$P5Y!TC!xx|NsAw zZYf?eC8)XBGAT&H%aY;j*`v+P&Huf!fNCJ%>!p=>K$euJi(?4K%;W?h2uf&RNLAKw ePF0XdNM~S3jbZtr^X`uaNWG`4pUXO@geCxz@GH## literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/unused_window.pal b/graphics/battle_interface/unused_window.pal new file mode 100755 index 0000000000..a5c40e694b --- /dev/null +++ b/graphics/battle_interface/unused_window.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +82 106 98 +180 197 213 +148 139 139 +106 98 90 +255 189 57 +230 148 65 +255 255 255 +115 255 172 +74 205 123 +32 164 82 +0 123 41 +255 255 213 +131 205 238 +213 230 230 +82 139 189 diff --git a/graphics/battle_interface/unused_window.png b/graphics/battle_interface/unused_window.png new file mode 100755 index 0000000000000000000000000000000000000000..73086d4d2c01768222d8a12bd518fe74fcd6f71c GIT binary patch literal 608 zcmV-m0-ybfP)s=E8Ewg*Uws;;ZL4K?9CGiZFOm1T268DS!egKsyPfnoxicc;a6a0a~Ctf?psKxj(qv!M*iz`L$`- z+`(N2xy!KS=7sLwAq&~%Lepp!GFjN&JLI3ayLYg;gXR3(p_e~|bBA93aAxjs>?D&r zc=>~L-utn~>Cd5_e(jLXIf2a`EOuH+?tlWx9Z+CPI0179DnRZ)1;`x&!c-H&_wB0+ z`NhIFLjen$J6O)o9Zv2fn>$$IUT`f6{=vT`L7C-L*uPu}@f6gRkcGenBE}1m$gQE? u>&=2Zt>k&fB6LSsy!x$Dd?6CKH@*O#xH);E&>e~Z0000K#}JO0roD!I4F){S%7!I;Jab=iJN$LpFYuA+ zmMGhY@14;Pk1oFv=HlWtaUD;}FP6|8KF8SUhy5aC-i4O-wJe#H^nS?|>qDZpCJ&xI sZCw4gz`*E$MC;`>eW7b5-aGzhaPSpNaAf+r4rm*Lr>mdKI;Vst0FA0$ssI20 literal 0 HcmV?d00001 diff --git a/graphics/interface/hpbar_anim.png b/graphics/interface/hpbar_anim.png new file mode 100755 index 0000000000000000000000000000000000000000..d4e79fdaecd8b4b502d187e91c562b0a9b0d13d2 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^6M&e5g&9abiOpULqznRlLR|m<{|{tV&nbqJKt@nj zl$T=^kd(MOrTG6Epa>i+5Dx(v=I!a?7@{$8?FC2P0|q?K7ZW6>6>70+^QbP0l+XkKP$)fB literal 0 HcmV?d00001 diff --git a/graphics/interface/numbers1.png b/graphics/interface/numbers1.png new file mode 100755 index 0000000000000000000000000000000000000000..f1575795838b2a761b142903ab489461bef8093a GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^5kSnr0wfsbHgw4WsR^Dgjv*3Lr}`h{byei3e*E1j z<~(;IuU^ajF1`=GT2rqC?fdt*=J~N#=dN;cDD^&E_4=Fp9M-xGZSSx4El_$;x6!xu zVTa(ByVpd2CC+vGxMS7xlBKSip4Ii z=d)PIx$QmE&u28As;fEjl*!$gZTcf+KT!|)|BSX33W0|mIJ!Y@^mO%eS?83{1ORaZ BQ>Op` literal 0 HcmV?d00001 diff --git a/graphics/interface/numbers2.png b/graphics/interface/numbers2.png new file mode 100755 index 0000000000000000000000000000000000000000..4ddf364bf2dde7849db011b8041534f8e5a963ee GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^2|&!j0wfroE%CSnq~>|LIEF|}o$7BW#G=UY`Df;X zT9b&|2c-1^%eUL5ODL%+^8Kk~t76>u;I0w=~Drsg#-&O~oE zxt}j2!YX^^Y*TB&d&A*uQ%EHjQhdJNV=036&W3{+U@_ zE?JsX?zUUnYkt_f=gpawNh?kq>sD1LKhU8o**x(_U|dqU=)>+(kDrVVA!4oP&i@B_ Ofx*+&&t;ucLK6TbZd7Uj literal 0 HcmV?d00001 diff --git a/graphics/interface/party_menu_hpbar.png b/graphics/interface/party_menu_hpbar.png new file mode 100755 index 0000000000000000000000000000000000000000..763b91210c9404d7617de35f6b93e15370423e77 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^2|&!j0wfroE%CSnr2IWy9780gPMvU?lfi()S$4sN zt;NNv>;*IOE~x45&3@3xE?<{po;>x>I!#6HNadoGOG_3Q`YA*(9O7&d)+syPxvN0k jX5pTo8__FkOTMpVH-u7S3j3^P6PwQ99c*I zpZ)g#EQ8?`pd>EvEmq(NP)^;`#W93qX0ibr6I*g}nlM{3Gjlpya+;Vhn*#F@CP6hd dhsgBwWQO8eHm-Nu=NE#E^K|udS?83{1OQ{oCIJ8d literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_C06D98.png b/graphics/unknown/unknown_C06D98.png new file mode 100755 index 0000000000000000000000000000000000000000..d36afa64d3e8efde8ccd5e3880e5e96f23215fd5 GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj!!VDxUYZhbxDT4r?5LY1mABaEz$RrH9Z4(-S zsvJCB978x}w)#2pF(`0siW9KU`15~a=VYs6B?hHVECN@bJZ9ASs%1db&7LF|5 zS&oj$mzMha{+s`VwbSpltWr(wDKqYP&ecselaEZAanH1D^%I8L>We);ES&SsG_9Rw y)_5>xq2;rJuuVIRm&B=OwAmEQ)l@vn^O zb90=Wod5s-VsrL$toEd0Ddwz;y`(Aj_9^yaQj~km#iY&EDV$nbT0ucU4FBmt0004( zNklln+W5a1GXrW*>ByI?Z`)aiUQmT?UtK-;}DK6R&S zG66VPzzFC~*j~>FG5d~70R~$OHvqK0ri1|gg**=wVmgYQ0Z6?>6{a%`Q2^>(55C=| z(GKf#0E;QmZ=ix5Tj*j~H;bm21xV_0f+i9!RmIpUoDYlljuA literal 0 HcmV?d00001 diff --git a/graphics/unused/old_battle_interface_2.png b/graphics/unused/old_battle_interface_2.png new file mode 100755 index 0000000000000000000000000000000000000000..04229ccda2c0ddefd10ef0e40a0a5e7773afa4e6 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^4M5Dn!VDx2e}3f)qznRlLR^#PG#3{a&zUpl|Ns9< z#ovn8d|Q&F`D{)1-X)sfzG;3-3Yt=V_UMwcS2gEEMMXI}I`aH~=?K&t=;`7ZqA@W! z;Q;eHAx4K+KmI!(WEbE+rFOL8|FHmuOGp3Ty!XSn#d8be{L_sLDXVR7FeE2WkQ9+% xC}Z?wOQq1=b&@;ZO+Eks literal 0 HcmV?d00001 diff --git a/graphics/unused/old_battle_interface_3.png b/graphics/unused/old_battle_interface_3.png new file mode 100755 index 0000000000000000000000000000000000000000..428c7765ddeaf868051acdc3906bc4e8b4d88643 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^4M5Dn!VDx2e}3f)qznRlLR^#PG#3{a&zUpl|Ns9< z#ovn8d|Q&F`D{)1-X)sfzG;3-3Yt=V_UMwcS2gEEMMXI}I`aH~=?K)D>*?YcqA_vl z#M8V73^<(kHh!01XI;U}rMCA=zyv8(M#Y~WnZ=&}vT$HH)i0RzD`DRk?OEHtL@_3? zhAjA!^HQQ*bc@6}pHqj}GT2z+MH@bu<{C0jJ9hSSfzfV1ZYjo#vLSBGyBg9vWVU}O a?lspv&))LMWO*RaVg^rFKbLh*2~7YCW?Ps5 literal 0 HcmV?d00001 diff --git a/graphics/unused/old_battle_interface_tilemap.bin b/graphics/unused/old_battle_interface_tilemap.bin new file mode 100755 index 0000000000000000000000000000000000000000..aae3307e7b810563804e216f3a96dc65fcfa0266 GIT binary patch literal 2048 zcmZQz7zLvtFd70QH3UKh!pMZ-0-!KU6-Xl!rc*_KsX!T-upDgvNR9VVe~*R$C zb924Dz5oCJbCgP)%}SK^O73%<_LTO$q$&3HDF_G%2nYxW2nbqQT0ucUk)v`J0004X zNkl#K7o{cx|W#G-XjR>}t&%-KPs4tdn2_ z56i|zFzJkk6{xCMLsq!jK}{#dgI@6g+&CX{ST!d?4IRpl)B&|^zlYCu>WM0c@cQ!= zhAwtFgwVG~xyKZ|_s1X?qW=XTuRFw{BGZG*5a3d^L)`xpm5{RA?NllOsp|FeyJf$VRBsfU}#><69`zV g-=Vty+r zb924Dz5oCJbCgP)%}SK^O73%<_LTO$q$&3HDF_G%2nYxW2nbqQT0ucUk)v`J0004# zNklw}Bww?+Q#{h41E@nY#>$Y4RhF))@>C3% zcCtDpQ5Fhm07Gi3sAKa>44=>UaR?V;tD1Em~bu?X76E`GWkPmbz=my(xru9#^SmPft0|ilcR`q1d4#NfJZYH9PTGl zuwe1ZKs&(&$Up#AotxB3{?41jTi)O`!+akh2#+&5BzU-^7$}v z09av|y=OC#tZWGiyR zzIKr^ExN&gJfiL1r!k#@tOg^5@ zb924Dz5oCJy`(Aj_9@r=uQ@+i2u{`DLq#Q?)7o2dg3O^h(KF>?pG zP%(1QL?10RN!HwIlP*YRC6Nu6TE}k4A1$%zrJg%*0|zNwOzL-&4ye#{Bhg4zdIdA? zCJ|-)ky&t}2z1P3?!N$@ +$(btanimgfxdir)/010.4bpp: $(btanimgfxdir)/010_0.4bpp $(btanimgfxdir)/010_1.4bpp $(btanimgfxdir)/010_2.4bpp $(btanimgfxdir)/010_3.4bpp + @cat $(btanimgfxdir)/010_0.4bpp $(btanimgfxdir)/010_1.4bpp $(btanimgfxdir)/010_2.4bpp $(btanimgfxdir)/010_3.4bpp >$@ + +$(unusedgfxdir)/obi_palpak1.gbapal: $(unusedgfxdir)/old_pal1.gbapal $(unusedgfxdir)/old_pal2.gbapal $(unusedgfxdir)/old_pal3.gbapal + @cat $(unusedgfxdir)/old_pal1.gbapal $(unusedgfxdir)/old_pal2.gbapal $(unusedgfxdir)/old_pal3.gbapal >$@ + +$(unusedgfxdir)/obi_palpak3.gbapal: $(unusedgfxdir)/old_pal5.gbapal $(unusedgfxdir)/old_pal6.gbapal $(unusedgfxdir)/old_pal7.gbapal + @cat $(unusedgfxdir)/old_pal5.gbapal $(unusedgfxdir)/old_pal6.gbapal $(unusedgfxdir)/old_pal7.gbapal >$@ + +$(unusedgfxdir)/obi1.4bpp: $(unusedgfxdir)/old_bulbasaur.4bpp $(unusedgfxdir)/old_charizard.4bpp + @cat $(unusedgfxdir)/old_bulbasaur.4bpp $(unusedgfxdir)/old_charizard.4bpp >$@ + +$(unusedgfxdir)/obi2.4bpp: $(unusedgfxdir)/old_bulbasaur2.4bpp $(unusedgfxdir)/old_battle_interface_1.4bpp $(unusedgfxdir)/old_battle_interface_2.4bpp $(unusedgfxdir)/old_battle_interface_3.4bpp + @cat $(unusedgfxdir)/old_bulbasaur2.4bpp $(unusedgfxdir)/old_battle_interface_1.4bpp $(unusedgfxdir)/old_battle_interface_2.4bpp $(unusedgfxdir)/old_battle_interface_3.4bpp >$@ + +$(menudir)/hp_numbers.4bpp: $(menudir)/hpbar_anim.4bpp $(menudir)/numbers1.4bpp $(menudir)/numbers2.4bpp + @cat $(menudir)/hpbar_anim.4bpp $(menudir)/numbers1.4bpp $(menudir)/numbers2.4bpp >$@ diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 22be086f08..70b4d7d31d 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -63,7 +63,7 @@ extern const u8 gUnknown_08C1F46C[]; extern const u8 gUnknown_08C1F5E8[]; extern const u8 gUnknown_08C1F76C[]; extern const u8 gUnknown_08C1F8E8[]; -extern const u8 gUnknown_08C0237C[]; +extern const u8 gBlankGfxCompressed[]; extern const u16 gBattleInterface_BallStatusBarPal[]; extern const u16 gBattleInterface_BallDisplayPal[]; @@ -110,10 +110,10 @@ static const struct CompressedSpriteSheet gUnknown_0832C100 = static const struct CompressedSpriteSheet gUnknown_0832C108[BATTLE_BANKS_COUNT] = { - {gUnknown_08C0237C, 0x0100, 0xd704}, - {gUnknown_08C0237C, 0x0120, 0xd705}, - {gUnknown_08C0237C, 0x0100, 0xd706}, - {gUnknown_08C0237C, 0x0120, 0xd707} + {gBlankGfxCompressed, 0x0100, 0xd704}, + {gBlankGfxCompressed, 0x0120, 0xd705}, + {gBlankGfxCompressed, 0x0100, 0xd706}, + {gBlankGfxCompressed, 0x0120, 0xd707} }; static const struct SpritePalette gUnknown_0832C128[2] = From 4f6ca126b544fd64bc0aaa30275bf6b840b2452f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 23 Dec 2017 13:23:23 +0100 Subject: [PATCH 17/54] dump all rayquaza scene data to C --- data/graphics.s | 40 ++++- data/rayquaza_scene.s | 73 --------- include/graphics.h | 13 ++ ld_script.txt | 1 - src/rayquaza_scene.c | 362 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 413 insertions(+), 76 deletions(-) delete mode 100644 data/rayquaza_scene.s diff --git a/data/graphics.s b/data/graphics.s index c4ba9f575a..a6f7b77c98 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1031,7 +1031,13 @@ gUnknown_08DA4F70:: @ 8DA4F70 .incbin "baserom.gba", 0xda4f70, 0x1148 gUnknown_08DA60B8:: @ 8DA60B8 - .incbin "baserom.gba", 0xda60b8, 0x904 + .incbin "baserom.gba", 0xda60b8, 0x388 + +gUnknown_08DA6440:: @ 8DA6440 + .incbin "baserom.gba", 0xDA6440, 0x46C + +gUnknown_08DA68AC:: @ 8DA68AC + .incbin "baserom.gba", 0xDA68AC, 0x110 gUnknown_08DA69BC:: @ 8DA69BC .incbin "baserom.gba", 0xda69bc, 0xb6c @@ -1070,7 +1076,37 @@ gUnknown_08DA8D6C:: @ 8DA8D6C .incbin "baserom.gba", 0xda8d6c, 0x118 gUnknown_08DA8E84:: @ 8DA8E84 - .incbin "baserom.gba", 0xda8e84, 0x1a30 + .incbin "baserom.gba", 0xda8e84, 0x54 + +gUnknown_08DA8ED8:: @ 8DA8ED8 + .incbin "baserom.gba", 0xDA8ED8, 0x798 + +gUnknown_08DA9670:: @ 8DA9670 + .incbin "baserom.gba", 0xDA9670, 0x44 + +gUnknown_08DA96B4:: @ 8DA96B4 + .incbin "baserom.gba", 0xDA96B4, 0x248 + +gUnknown_08DA98FC:: @ 8DA98FC + .incbin "baserom.gba", 0xDA98FC, 0xCA8 + +gUnknown_08DAA5A4:: @ 8DAA5A4 + .incbin "baserom.gba", 0xDAA5A4, 0x1F0 + +gUnknown_08DAA794:: @ 8DAA794 + .incbin "baserom.gba", 0xDAA794, 0x98 + +gUnknown_08DAA82C:: @ 8DAA82C + .incbin "baserom.gba", 0xDAA82C, 0x28 + +gUnknown_08DAA854:: @ 8DAA854 + .incbin "baserom.gba", 0xDAA854, 0x28 + +gUnknown_08DAA87C:: @ 8DAA87C + .incbin "baserom.gba", 0xDAA87C, 0x28 + +gUnknown_08DAA8A4:: @ 8DAA8A4 + .incbin "baserom.gba", 0xDAA8A4, 0x10 gUnknown_08DAA8B4:: @ 8DAA8B4 .incbin "baserom.gba", 0xdaa8b4, 0x270 diff --git a/data/rayquaza_scene.s b/data/rayquaza_scene.s deleted file mode 100644 index 88e4265840..0000000000 --- a/data/rayquaza_scene.s +++ /dev/null @@ -1,73 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_0862AAFC:: @ 862AAFC - .incbin "baserom.gba", 0x62aafc, 0x8 - -gUnknown_0862AB04:: @ 862AB04 - .incbin "baserom.gba", 0x62ab04, 0x8 - -gUnknown_0862AB0C:: @ 862AB0C - .incbin "baserom.gba", 0x62ab0c, 0x8 - -gUnknown_0862AB14:: @ 862AB14 - .incbin "baserom.gba", 0x62ab14, 0x18 - -gUnknown_0862AB2C:: @ 862AB2C - .incbin "baserom.gba", 0x62ab2c, 0x18 - -gUnknown_0862AB44:: @ 862AB44 - .incbin "baserom.gba", 0x62ab44, 0xe4 - -gUnknown_0862AC28:: @ 862AC28 - .incbin "baserom.gba", 0x62ac28, 0x8 - -gUnknown_0862AC30:: @ 862AC30 - .incbin "baserom.gba", 0x62ac30, 0x8 - -gUnknown_0862AC38:: @ 862AC38 - .incbin "baserom.gba", 0x62ac38, 0x8 - -gUnknown_0862AC40:: @ 862AC40 - .incbin "baserom.gba", 0x62ac40, 0x8 - -gUnknown_0862AC48:: @ 862AC48 - .incbin "baserom.gba", 0x62ac48, 0x8 - -gUnknown_0862AC50:: @ 862AC50 - .incbin "baserom.gba", 0x62ac50, 0x8 - -gUnknown_0862AC58:: @ 862AC58 - .incbin "baserom.gba", 0x62ac58, 0x8 - -gUnknown_0862AC60:: @ 862AC60 - .incbin "baserom.gba", 0x62ac60, 0x8 - -gUnknown_0862AC68:: @ 862AC68 - .incbin "baserom.gba", 0x62ac68, 0x8 - -gUnknown_0862AC70:: @ 862AC70 - .incbin "baserom.gba", 0x62ac70, 0x8 - -gUnknown_0862AC78:: @ 862AC78 - .incbin "baserom.gba", 0x62ac78, 0x18 - -gUnknown_0862AC90:: @ 862AC90 - .incbin "baserom.gba", 0x62ac90, 0x18 - -gUnknown_0862ACA8:: @ 862ACA8 - .incbin "baserom.gba", 0x62aca8, 0x18 - -gUnknown_0862ACC0:: @ 862ACC0 - .incbin "baserom.gba", 0x62acc0, 0x18 - -gUnknown_0862ACD8:: @ 862ACD8 - .incbin "baserom.gba", 0x62acd8, 0x18 - -gUnknown_0862ACF0:: @ 862ACF0 - .incbin "baserom.gba", 0x62acf0, 0x18 - -gUnknown_0862AD08:: @ 862AD08 - .incbin "baserom.gba", 0x62ad08, 0xc diff --git a/include/graphics.h b/include/graphics.h index 3b85b47844..8f58a5f7ec 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2661,5 +2661,18 @@ extern const u8 gUnknown_08DA3370[]; extern const u8 gUnknown_08DA3398[]; extern const u8 gUnknown_08DA3BC0[]; extern const u8 gUnknown_08DA3C7C[]; +extern const u8 gUnknown_08DA4DA8[]; +extern const u8 gUnknown_08DA6440[]; +extern const u8 gUnknown_08DA68AC[]; +extern const u8 gUnknown_08DA8ED8[]; +extern const u8 gUnknown_08DA9670[]; +extern const u8 gUnknown_08DA96B4[]; +extern const u8 gUnknown_08DA98FC[]; +extern const u8 gUnknown_08DAA5A4[]; +extern const u8 gUnknown_08DAA794[]; +extern const u8 gUnknown_08DAA82C[]; +extern const u8 gUnknown_08DAA854[]; +extern const u8 gUnknown_08DAA87C[]; +extern const u8 gUnknown_08DAA8A4[]; #endif //GUARD_GRAPHICS_H diff --git a/ld_script.txt b/ld_script.txt index 9f227c5b96..6003d4871c 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -488,7 +488,6 @@ SECTIONS { data/pokemon_summary_screen.o(.rodata); data/pokenav.o(.rodata); src/rayquaza_scene.o(.rodata); - data/rayquaza_scene.o(.rodata); src/walda_phrase.o(.rodata); data/trainer_rematch.o(.rodata); data/unk_sprite_file.o(.rodata); diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 67693eecad..577294f0c3 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -20,6 +20,7 @@ void sub_81D8DB4(u8 taskId); void sub_81D6800(u8 taskId); void sub_81D8260(struct Sprite *sprite); +void sub_81D961C(struct Sprite *sprite); // const rom data const TaskFunc gUnknown_0862A6A0[] = @@ -800,3 +801,364 @@ static const union AnimCmd *const sSpriteAnimTable_862AAF8[] = sSpriteAnim_862AAEC }; +const struct CompressedSpriteSheet gUnknown_0862AAFC = +{ + gUnknown_08DA6440, 0x1000, 30556 +}; + +const struct CompressedSpriteSheet gUnknown_0862AB04 = +{ + gUnknown_08DA68AC, 0x200, 30557 +}; + +const struct CompressedSpritePalette gUnknown_0862AB0C = +{ + gUnknown_08DA4DA8, 30556 +}; + +const struct SpriteTemplate gUnknown_0862AB14 = +{ + .tileTag = 30556, + .paletteTag = 30556, + .oam = &sOamData_862A6BC, + .anims = sSpriteAnimTable_862AAE8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct SpriteTemplate gUnknown_0862AB2C = +{ + .tileTag = 30557, + .paletteTag = 30556, + .oam = &sOamData_862A6E4, + .anims = sSpriteAnimTable_862AAF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct BgTemplate gUnknown_0862AB44[] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 3, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } +}; + +static const union AnimCmd sSpriteAnim_862AB54[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862AB5C[] = +{ + ANIMCMD_FRAME(0, 48), + ANIMCMD_FRAME(64, 32), + ANIMCMD_FRAME(0, 48), + ANIMCMD_FRAME(128, 32), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_862AB70[] = +{ + sSpriteAnim_862AB54, + sSpriteAnim_862AB5C +}; + +static const union AnimCmd sSpriteAnim_862AB78[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_862AB80[] = +{ + sSpriteAnim_862AB78, +}; + +static const union AnimCmd sSpriteAnim_862AB84[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862AB8C[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862AB94[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_862AB9C[] = +{ + sSpriteAnim_862AB84, + sSpriteAnim_862AB8C, + sSpriteAnim_862AB94 +}; + +static const union AnimCmd sSpriteAnim_862ABA8[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862ABB0[] = +{ + ANIMCMD_FRAME(64, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862ABB8[] = +{ + ANIMCMD_FRAME(128, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862ABC0[] = +{ + ANIMCMD_FRAME(192, 1), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_862ABC8[] = +{ + sSpriteAnim_862ABA8, + sSpriteAnim_862ABB0, + sSpriteAnim_862ABB8, + sSpriteAnim_862ABC0 +}; + +static const union AnimCmd sSpriteAnim_862ABD8[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862ABE0[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862ABE8[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_862ABF0[] = +{ + ANIMCMD_FRAME(48, 1), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_862ABF8[] = +{ + sSpriteAnim_862ABD8, + sSpriteAnim_862ABE0, + sSpriteAnim_862ABE8, + sSpriteAnim_862ABF0 +}; + +static const union AnimCmd sSpriteAnim_862AC08[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(4, 8), + ANIMCMD_FRAME(8, 8), + ANIMCMD_FRAME(12, 8), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(20, 8), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_862AC24[] = +{ + sSpriteAnim_862AC08 +}; + +const struct CompressedSpriteSheet gUnknown_0862AC28 = +{ + gUnknown_08DA8ED8, 0x1800, 30565 +}; + +const struct CompressedSpriteSheet gUnknown_0862AC30 = +{ + gUnknown_08DA9670, 0x80, 30566 +}; + +const struct CompressedSpriteSheet gUnknown_0862AC38 = +{ + gUnknown_08DA96B4, 0x600, 30568 +}; + +const struct CompressedSpriteSheet gUnknown_0862AC40 = +{ + gUnknown_08DA98FC, 0x2000, 30569 +}; + +const struct CompressedSpriteSheet gUnknown_0862AC48 = +{ + gUnknown_08DAA5A4, 0x800, 30570 +}; + +const struct CompressedSpriteSheet gUnknown_0862AC50 = +{ + gUnknown_08DAA794, 0x300, 30571 +}; + +const struct CompressedSpritePalette gUnknown_0862AC58 = +{ + gUnknown_08DAA82C, 30565 +}; + +const struct CompressedSpritePalette gUnknown_0862AC60 = +{ + gUnknown_08DAA854, 30568 +}; + +const struct CompressedSpritePalette gUnknown_0862AC68 = +{ + gUnknown_08DAA87C, 30569 +}; + +const struct CompressedSpritePalette gUnknown_0862AC70 = +{ + gUnknown_08DAA8A4, 30571 +}; + +const struct SpriteTemplate gUnknown_0862AC78 = +{ + .tileTag = 30565, + .paletteTag = 30565, + .oam = &sOamData_862A6BC, + .anims = sSpriteAnimTable_862AB70, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct SpriteTemplate gUnknown_0862AC90 = +{ + .tileTag = 30566, + .paletteTag = 30565, + .oam = &sOamData_862A6EC, + .anims = sSpriteAnimTable_862AB80, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct SpriteTemplate gUnknown_0862ACA8 = +{ + .tileTag = 30568, + .paletteTag = 30568, + .oam = &sOamData_862A6C4, + .anims = sSpriteAnimTable_862AB9C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct SpriteTemplate gUnknown_0862ACC0 = +{ + .tileTag = 30569, + .paletteTag = 30569, + .oam = &sOamData_862A6BC, + .anims = sSpriteAnimTable_862ABC8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81D961C, +}; + +const struct SpriteTemplate gUnknown_0862ACD8 = +{ + .tileTag = 30570, + .paletteTag = 30569, + .oam = &sOamData_862A6C4, + .anims = sSpriteAnimTable_862ABF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct SpriteTemplate gUnknown_0862ACF0 = +{ + .tileTag = 30571, + .paletteTag = 30571, + .oam = &sOamData_862A6F4, + .anims = sSpriteAnimTable_862AC24, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct BgTemplate gUnknown_0862AD08[] = +{ + { + .bg = 0, + .charBaseIndex = 1, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + } +}; + From c959c65562e5b6e05bc7a3fc9df4d005e4a97d95 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 23 Dec 2017 15:15:02 +0100 Subject: [PATCH 18/54] dump some pokenav data pointers --- data/graphics.s | 43 ++++- data/pokenav.s | 495 +++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 505 insertions(+), 33 deletions(-) diff --git a/data/graphics.s b/data/graphics.s index a6f7b77c98..f20af4acb6 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1431,7 +1431,43 @@ gUnknown_08DC7D84:: @ 8DC7D84 .incbin "baserom.gba", 0xdc7d84, 0x17c gUnknown_08DC7F00:: @ 8DC7F00 - .incbin "baserom.gba", 0xdc7f00, 0x11c0 + .incbin "baserom.gba", 0xdc7f00, 0xA0 + +gUnknown_08DC7FA0:: @ 8DC7FA0 + .incbin "baserom.gba", 0xdc7fa0, 0x13C + +gUnknown_08DC80DC:: @ 8DC80DC + .incbin "baserom.gba", 0xdc80dc, 0x12C + +gUnknown_08DC8208:: @ 8DC8208 + .incbin "baserom.gba", 0xdc8208, 0x184 + +gUnknown_08DC838C:: @ 8DC838C + .incbin "baserom.gba", 0xdc838c, 0x120 + +gUnknown_08DC84AC:: @ 8DC84AC + .incbin "baserom.gba", 0xdc84ac, 0x1A0 + +gUnknown_08DC864C:: @ 8DC864C + .incbin "baserom.gba", 0xdc864c, 0x1AC + +gUnknown_08DC87F8:: @ 8DC87F8 + .incbin "baserom.gba", 0xdc87f8, 0x2AC + +gUnknown_08DC8AA4:: @ 8DC8AA4 + .incbin "baserom.gba", 0xdc8aa4, 0x170 + +gUnknown_08DC8C14:: @ 8DC8C14 + .incbin "baserom.gba", 0xdc8c14, 0x13C + +gUnknown_08DC8D50:: @ 8DC8D50 + .incbin "baserom.gba", 0xdc8d50, 0x114 + +gUnknown_08DC8E64:: @ 8DC8E64 + .incbin "baserom.gba", 0xdc8e64, 0x100 + +gUnknown_08DC8F64:: @ 8DC8F64 + .incbin "baserom.gba", 0xdc8f64, 0x15C gUnknown_08DC90C0:: @ 8DC90C0 .incbin "baserom.gba", 0xdc90c0, 0x20 @@ -1443,7 +1479,10 @@ gUnknown_08DC9130:: @ 8DC9130 .incbin "baserom.gba", 0xdc9130, 0xb8 gUnknown_08DC91E8:: @ 8DC91E8 - .incbin "baserom.gba", 0xdc91e8, 0x420 + .incbin "baserom.gba", 0xdc91e8, 0x20 + +gUnknown_08DC9208:: @ 8DC9208 + .incbin "baserom.gba", 0xdc9208, 0x400 gUnknown_08DC9608:: @ 8DC9608 .incbin "baserom.gba", 0xdc9608, 0x20 diff --git a/data/pokenav.s b/data/pokenav.s index 8e8e24b656..3f07eb0d50 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -4,7 +4,117 @@ .section .rodata gUnknown_0861F3EC:: @ 861F3EC - .incbin "baserom.gba", 0x61f3ec, 0x618 + .4byte sub_81C9298 + .4byte sub_81C941C + .4byte sub_81C9924 + .4byte sub_81C9990 + .4byte sub_81C99C0 + .4byte sub_81C9430 + .4byte sub_81C99D4 + .4byte sub_81C9298 + .4byte sub_81C941C + .4byte sub_81C9940 + .4byte sub_81C9990 + .4byte sub_81C99C0 + .4byte sub_81C9430 + .4byte sub_81C99D4 + .4byte sub_81C9338 + .4byte sub_81C941C + .4byte sub_81C9940 + .4byte sub_81C9990 + .4byte sub_81C99C0 + .4byte sub_81C9430 + .4byte sub_81C99D4 + .4byte sub_81C9368 + .4byte sub_81C941C + .4byte sub_81C9940 + .4byte sub_81C9990 + .4byte sub_81C99C0 + .4byte sub_81C9430 + .4byte sub_81C99D4 + .4byte sub_81C92CC + .4byte sub_81C941C + .4byte sub_81C9940 + .4byte sub_81C9990 + .4byte sub_81C99C0 + .4byte sub_81C9430 + .4byte sub_81C99D4 + .4byte sub_81C9304 + .4byte sub_81C941C + .4byte sub_81C9940 + .4byte sub_81C9990 + .4byte sub_81C99C0 + .4byte sub_81C9430 + .4byte sub_81C99D4 + .4byte sub_81CC4D4 + .4byte sub_81CC554 + .4byte sub_81CC5F4 + .4byte sub_81CC62C + .4byte sub_81CC65C + .4byte sub_81CC524 + .4byte sub_81CC670 + .4byte sub_81CCFD8 + .4byte sub_81CD070 + .4byte sub_81CDDD4 + .4byte sub_81CDE2C + .4byte sub_81CDE64 + .4byte sub_81CD1C0 + .4byte sub_81CECA0 + .4byte sub_81CEF3C + .4byte sub_81CEFDC + .4byte sub_81CF330 + .4byte sub_81CF3A0 + .4byte sub_81CF3D0 + .4byte sub_81CEFF0 + .4byte sub_81CF3F8 + .4byte sub_81CD024 + .4byte sub_81CD070 + .4byte sub_81CDDD4 + .4byte sub_81CDE2C + .4byte sub_81CDE64 + .4byte sub_81CD1C0 + .4byte sub_81CECA0 + .4byte sub_81CEF98 + .4byte sub_81CEFDC + .4byte sub_81CF368 + .4byte sub_81CF3A0 + .4byte sub_81CF3D0 + .4byte sub_81CEFF0 + .4byte sub_81CF3F8 + .4byte sub_81CAAE8 + .4byte sub_81CAB24 + .4byte sub_81CB260 + .4byte sub_81CB29C + .4byte sub_81CB2CC + .4byte sub_81CAB38 + .4byte sub_81CB2E0 + .4byte sub_81CF9BC + .4byte sub_81CFA34 + .4byte sub_81CFDD0 + .4byte sub_81CFE40 + .4byte sub_81CFE70 + .4byte sub_81CFA48 + .4byte sub_81CFE98 + .4byte sub_81D0450 + .4byte sub_81D04A0 + .4byte sub_81D0978 + .4byte sub_81D09B0 + .4byte sub_81D09E0 + .4byte sub_81D04B8 + .4byte sub_81D09F4 + .4byte sub_81CFA04 + .4byte sub_81CFA34 + .4byte sub_81CFE08 + .4byte sub_81CFE40 + .4byte sub_81CFE70 + .4byte sub_81CFA48 + .4byte sub_81CFE98 + +gUnknown_0861F590:: @ 861F590 + .incbin "baserom.gba", 0x61F590, 0x20 + +gUnknown_0861F5B0:: @ 861F5B0 + .incbin "baserom.gba", 0x61f5b0, 0x454 gUnknown_0861FA04:: @ 861FA04 .incbin "baserom.gba", 0x61fa04, 0x4 @@ -13,31 +123,86 @@ gUnknown_0861FA08:: @ 861FA08 .incbin "baserom.gba", 0x61fa08, 0x10 gUnknown_0861FA18:: @ 861FA18 - .incbin "baserom.gba", 0x61fa18, 0x30 + .4byte gUnknown_085EBED5 + .4byte gUnknown_085EBED9 + .4byte gUnknown_085EBEE9 + .4byte gUnknown_085EBEF9 + .4byte gUnknown_085EBF0E + .4byte gUnknown_085EBF22 + .4byte gUnknown_085EBF39 + .4byte gUnknown_085EBF49 + .4byte gUnknown_085EBF57 + .4byte gUnknown_085EBF60 + .4byte gUnknown_085EBF73 + .4byte gUnknown_085EBF84 gUnknown_0861FA48:: @ 861FA48 .incbin "baserom.gba", 0x61fa48, 0x4 gUnknown_0861FA4C:: @ 861FA4C - .incbin "baserom.gba", 0x61fa4c, 0x8 + obj_tiles gUnknown_0861F5B0, 0x1000, 0 gUnknown_0861FA54:: @ 861FA54 - .incbin "baserom.gba", 0x61fa54, 0x10 + obj_pal gUnknown_0861F590, 0 + obj_pal NULL, 0 gUnknown_0861FA64:: @ 861FA64 - .incbin "baserom.gba", 0x61fa64, 0x8 + obj_tiles gUnknown_08DC87F8, 0xC00, 2 gUnknown_0861FA6C:: @ 861FA6C - .incbin "baserom.gba", 0x61fa6c, 0x30 + obj_tiles gUnknown_08DC864C, 0x20, 3 + obj_tiles gUnknown_08DC8208, 0x20, 1 + obj_tiles gUnknown_08DC8AA4, 0x20, 2 + obj_tiles gUnknown_08DC84AC, 0x20, 4 + obj_tiles gUnknown_08DC87F8, 0x20, 0 + obj_tiles gUnknown_08DC87F8, 0x40, 0 gUnknown_0861FA9C:: @ 861FA9C - .incbin "baserom.gba", 0x61fa9c, 0x68 + .4byte gUnknown_08DC8F64, 1 + .4byte gUnknown_08DC8C14, 1 + .4byte gUnknown_08DC8E64, 4 + .4byte gUnknown_08DC7FA0, 1 + .4byte gUnknown_08DC838C, 2 + .4byte gUnknown_08DC80DC, 0 + .4byte gUnknown_08DC8D50, 0 + +gUnknown_0861FAD4:: @ 861FAD4 + .2byte 0x0 + .2byte 0x8000 + .2byte 0x0 + .2byte 0x0 + +gUnknown_0861FADC:: + obj_image_anim_frame 0, 8 + obj_image_anim_frame 16, 8 + obj_image_anim_frame 32, 8 + obj_image_anim_frame 48, 8 + obj_image_anim_frame 64, 8 + obj_image_anim_frame 80, 8 + obj_image_anim_frame 96, 8 + obj_image_anim_frame 112, 8 + obj_image_anim_jump 0 + +gUnknown_0861FB00:: + .4byte gUnknown_0861FADC gUnknown_0861FB04:: @ 861FB04 - .incbin "baserom.gba", 0x61fb04, 0x28 + spr_template 0, 0, gUnknown_0861FAD4, gUnknown_0861FB00, NULL, gDummySpriteAffineAnimTable, sub_81C7CB4 +gUnknown_0861FB1C:: + .2byte 0x4000 + .2byte 0xC000 + .2byte 0x400 + .2byte 0x0 + +gUnknown_0861FB24:: + .2byte 0x4000 + .2byte 0x8000 + .2byte 0x400 + .2byte 0x0 + gUnknown_0861FB2C:: @ 861FB2C - .incbin "baserom.gba", 0x61fb2c, 0x18 + spr_template 2, 1, gUnknown_0861FB1C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_0861FB44:: @ 861FB44 .incbin "baserom.gba", 0x61fb44, 0xa0 @@ -172,7 +337,22 @@ gUnknown_08622794:: @ 8622794 .incbin "baserom.gba", 0x622794, 0x4 gUnknown_08622798:: @ 8622798 - .incbin "baserom.gba", 0x622798, 0x40 + .4byte NULL + .4byte sub_81CB510 + .4byte sub_81CB588 + .4byte sub_81CB600 + .4byte sub_81CB678 + .4byte sub_81CB6F0 + .4byte sub_81CB734 + .4byte sub_81CB75C + .4byte sub_81CB7A0 + .4byte sub_81CB824 + .4byte sub_81CB888 + .4byte sub_81CB93C + .4byte sub_81CBAD4 + .4byte sub_81CB9C8 + .4byte sub_81CBA68 + .4byte sub_81CBB74 gUnknown_086227D8:: @ 86227D8 .incbin "baserom.gba", 0x6227d8, 0x8 @@ -205,28 +385,126 @@ gUnknown_08622868:: @ 8622868 .incbin "baserom.gba", 0x622868, 0x20 gUnknown_08622888:: @ 8622888 - .incbin "baserom.gba", 0x622888, 0x850 + .incbin "baserom.gba", 0x622888, 0x1F4 + +gUnknown_08622A7C:: @ 8622A7C + .incbin "baserom.gba", 0x622a7c, 0x44 + +gUnknown_08622AC0:: @ 8622AC0 + .incbin "baserom.gba", 0x622ac0, 0x48 + +gUnknown_08622B08:: @ 8622B08 + .incbin "baserom.gba", 0x622b08, 0x50 + +gUnknown_08622B58:: @ 8622B58 + .incbin "baserom.gba", 0x622b58, 0x60 + +gUnknown_08622BB8:: @ 8622BB8 + .incbin "baserom.gba", 0x622bb8, 0x4C + +gUnknown_08622C04:: @ 8622C04 + .incbin "baserom.gba", 0x622c04, 0x54 + +gUnknown_08622C58:: @ 8622C58 + .incbin "baserom.gba", 0x622c58, 0x54 + +gUnknown_08622CAC:: @ 8622CAC + .incbin "baserom.gba", 0x622cac, 0x40 + +gUnknown_08622CEC:: @ 8622CEC + .incbin "baserom.gba", 0x622cec, 0x58 + +gUnknown_08622D44:: @ 8622D44 + .incbin "baserom.gba", 0x622d44, 0x54 + +gUnknown_08622D98:: @ 8622D98 + .incbin "baserom.gba", 0x622d98, 0x30 + +gUnknown_08622DC8:: @ 8622DC8 + .incbin "baserom.gba", 0x622dc8, 0x4C + +gUnknown_08622E14:: @ 8622E14 + .incbin "baserom.gba", 0x622e14, 0x58 + +gUnknown_08622E6C:: @ 8622E6C + .incbin "baserom.gba", 0x622e6c, 0x30 + +gUnknown_08622E9C:: @ 8622E9C + .incbin "baserom.gba", 0x622e9c, 0x38 + +gUnknown_08622ED4:: @ 8622ED4 + .incbin "baserom.gba", 0x622ed4, 0x40 + +gUnknown_08622F14:: @ 8622F14 + .incbin "baserom.gba", 0x622f14, 0x48 + +gUnknown_08622F5C:: @ 8622F5C + .incbin "baserom.gba", 0x622f5c, 0x44 + +gUnknown_08622FA0:: @ 8622FA0 + .incbin "baserom.gba", 0x622fa0, 0x38 + +gUnknown_08622FD8:: @ 8622FD8 + .incbin "baserom.gba", 0x622fd8, 0x48 + +gUnknown_08623020:: @ 8623020 + .incbin "baserom.gba", 0x623020, 0x5C + +gUnknown_0862307C:: @ 862307C + .incbin "baserom.gba", 0x62307c, 0x5C gUnknown_086230D8:: @ 86230D8 .incbin "baserom.gba", 0x6230d8, 0xc gUnknown_086230E4:: @ 86230E4 - .incbin "baserom.gba", 0x6230e4, 0x14 + .4byte NULL + .4byte sub_81CC848 + .4byte sub_81CC878 + .4byte sub_81CC8D8 + .4byte sub_81CC95C gUnknown_086230F8:: @ 86230F8 - .incbin "baserom.gba", 0x6230f8, 0x8 + obj_tiles gUnknown_08DC9208, 0x800, 6 gUnknown_08623100:: @ 8623100 - .incbin "baserom.gba", 0x623100, 0x10 + obj_pal gUnknown_08DC91E8, 11 + obj_pal NULL, 0 gUnknown_08623110:: @ 8623110 .incbin "baserom.gba", 0x623110, 0x8 gUnknown_08623118:: @ 8623118 - .incbin "baserom.gba", 0x623118, 0xb8 + .4byte 0, gUnknown_08622E6C + .4byte 1, gUnknown_08622D98 + .4byte 2, gUnknown_08622E9C + .4byte 3, gUnknown_08622A7C + .4byte 4, gUnknown_08622AC0 + .4byte 5, gUnknown_08622FA0 + .4byte 6, gUnknown_08622CAC + .4byte 7, gUnknown_0862307C + .4byte 8, gUnknown_08622B58 + .4byte 0x10008, gUnknown_08622BB8 + .4byte 9, gUnknown_08622D44 + .4byte 0x10009, gUnknown_08622CEC + .4byte 0xA, gUnknown_08622C04 + .4byte 0x1000A, gUnknown_08622C58 + .4byte 0xB, gUnknown_08622B08 + .4byte 0xC, gUnknown_08622E14 + .4byte 0x1000C, gUnknown_08622DC8 + .4byte 0xD, gUnknown_08623020 + .4byte 0x1000D, gUnknown_08622FD8 + .4byte 0xE, gUnknown_08622ED4 + .4byte 0xF, gUnknown_08622F14 + .4byte 0x1000F, gUnknown_08622F5C + +gUnknown_086231C8:: @ 86231C8 + .2byte 0x4000 + .2byte 0x4000 + .2byte 0x400 + .2byte 0x0 gUnknown_086231D0:: @ 86231D0 - .incbin "baserom.gba", 0x6231d0, 0x18 + spr_template 6, 11, gUnknown_086231C8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81CCEF4 gUnknown_086231E8:: @ 86231E8 .incbin "baserom.gba", 0x6231e8, 0x20 @@ -259,7 +537,13 @@ gUnknown_0862337C:: @ 862337C .incbin "baserom.gba", 0x62337c, 0x8 gUnknown_08623384:: @ 8623384 - .incbin "baserom.gba", 0x623384, 0x1c + .4byte NULL + .4byte sub_81CE37C + .4byte sub_81CE2D0 + .4byte sub_81CE4D8 + .4byte sub_81CE5E4 + .4byte sub_81CE6BC + .4byte sub_81CE700 gUnknown_086233A0:: @ 86233A0 .incbin "baserom.gba", 0x6233a0, 0x14 @@ -286,7 +570,13 @@ gUnknown_08623594:: @ 8623594 .incbin "baserom.gba", 0x623594, 0x4 gUnknown_08623598:: @ 8623598 - .incbin "baserom.gba", 0x623598, 0x1c + .4byte NULL + .4byte sub_81CF578 + .4byte sub_81CF5F0 + .4byte sub_81CF668 + .4byte sub_81CF6E0 + .4byte sub_81CF758 + .4byte sub_81CF798 gUnknown_086235B4:: @ 86235B4 .incbin "baserom.gba", 0x6235b4, 0x8 @@ -346,13 +636,28 @@ gUnknown_086237F8:: @ 86237F8 .include "data/text/gift_ribbon_descriptions.inc" gUnknown_08623FF8:: @ 8623FF8 - .incbin "baserom.gba", 0x623ff8, 0xa0 + .incbin "baserom.gba", 0x623ff8, 0x20 + +gUnknown_08624018:: @ 8624018 + .incbin "baserom.gba", 0x624018, 0x20 + +gUnknown_08624038:: @ 8624038 + .incbin "baserom.gba", 0x624038, 0x20 + +gUnknown_08624058:: @ 8624058 + .incbin "baserom.gba", 0x624058, 0x20 + +gUnknown_08624078:: @ 8624078 + .incbin "baserom.gba", 0x624078, 0x20 gUnknown_08624098:: @ 8624098 - .incbin "baserom.gba", 0x624098, 0x20 + .incbin "baserom.gba", 0x624098, 0x20 gUnknown_086240B8:: @ 86240B8 - .incbin "baserom.gba", 0x6240b8, 0xae0 + .incbin "baserom.gba", 0x6240b8, 0x1C8 + +gUnknown_08624280:: @ 8624280 + .incbin "baserom.gba", 0x624280, 0x918 gUnknown_08624B98:: @ 8624B98 .incbin "baserom.gba", 0x624b98, 0x8 @@ -385,25 +690,128 @@ gUnknown_08624BF8:: @ 8624BF8 .incbin "baserom.gba", 0x624bf8, 0x80 gUnknown_08624C78:: @ 8624C78 - .incbin "baserom.gba", 0x624c78, 0x8 + obj_tiles gUnknown_08624280, 0x1800, 9 gUnknown_08624C80:: @ 8624C80 - .incbin "baserom.gba", 0x624c80, 0x84 + obj_pal gUnknown_08623FF8, 15 + obj_pal gUnknown_08624018, 16 + obj_pal gUnknown_08624038, 17 + obj_pal gUnknown_08624058, 18 + obj_pal gUnknown_08624078, 19 + obj_pal NULL, 0 +gUnknown_08624CB0:: @ 8624CB0 + .incbin "baserom.gba", 0x624cb0, 0x54 + gUnknown_08624D04:: @ 8624D04 - .incbin "baserom.gba", 0x624d04, 0x5a4 + .incbin "baserom.gba", 0x624d04, 0x78 + +gUnknown_08624D7C:: @ 8624D7C + .incbin "baserom.gba", 0x624d7c, 0x60 + +gUnknown_08624DDC:: @ 8624DDC + .incbin "baserom.gba", 0x624ddc, 0x14 + +gUnknown_08624DF0:: @ 8624DF0 + .incbin "baserom.gba", 0x624df0, 0x2C + +gUnknown_08624E1C:: @ 8624E1C + .incbin "baserom.gba", 0x624e1c, 0x50 + +gUnknown_08624E6C:: @ 8624E6C + .incbin "baserom.gba", 0x624e6c, 0x90 + +gUnknown_08624EFC:: @ 8624EFC + .incbin "baserom.gba", 0x624efc, 0x90 + +gUnknown_08624F8C:: @ 8624F8C + .incbin "baserom.gba", 0x624f8c, 0x60 + +gUnknown_08624FEC:: @ 8624FEC + .incbin "baserom.gba", 0x624fec, 0x54 + +gUnknown_08625040:: @ 8625040 + .incbin "baserom.gba", 0x625040, 0x38 + +gUnknown_08625078:: @ 8625078 + .incbin "baserom.gba", 0x625078, 0x3C + +gUnknown_086250B4:: @ 86250B4 + .incbin "baserom.gba", 0x6250b4, 0x3C + +gUnknown_086250F0:: @ 86250F0 + .incbin "baserom.gba", 0x6250f0, 0x3C + +gUnknown_0862512C:: @ 862512C + .incbin "baserom.gba", 0x62512c, 0x3C + +gUnknown_08625168:: @ 8625168 + .incbin "baserom.gba", 0x625168, 0x3C + +gUnknown_086251A4:: @ 86251A4 + .incbin "baserom.gba", 0x6251a4, 0x3C + +gUnknown_086251E0:: @ 86251E0 + .incbin "baserom.gba", 0x6251e0, 0x24 + +gUnknown_08625204:: @ 8625204 + .incbin "baserom.gba", 0x625204, 0x24 + +gUnknown_08625228:: @ 8625228 + .incbin "baserom.gba", 0x625228, 0x24 + +gUnknown_0862524C:: @ 862524C + .incbin "baserom.gba", 0x62524c, 0x24 + +gUnknown_08625270:: @ 8625270 + .incbin "baserom.gba", 0x625270, 0x24 + +gUnknown_08625294:: @ 8625294 + .incbin "baserom.gba", 0x625294, 0x14 gUnknown_086252A8:: @ 86252A8 - .incbin "baserom.gba", 0x6252a8, 0x54 + .4byte gUnknown_08624D7C + .4byte gUnknown_08624DF0 + .4byte gUnknown_08624F8C + .4byte gUnknown_08624EFC + .4byte gUnknown_08624FEC + .4byte gUnknown_08624DDC + .4byte gUnknown_08624E1C + .4byte gUnknown_08624E6C + .4byte gUnknown_08625040 + .4byte gUnknown_08625078 + .4byte gUnknown_086250B4 + .4byte gUnknown_086250F0 + .4byte gUnknown_0862512C + .4byte gUnknown_08625168 + .4byte gUnknown_086251A4 + .4byte gUnknown_086251E0 + .4byte gUnknown_08625204 + .4byte gUnknown_08625228 + .4byte gUnknown_0862524C + .4byte gUnknown_08625270 + .4byte gUnknown_08625294 gUnknown_086252FC:: @ 86252FC - .incbin "baserom.gba", 0x6252fc, 0x14 + .4byte sub_81D1628 + .4byte sub_81D164C + .4byte sub_81D1670 + .4byte sub_81D1694 + .4byte sub_81D16CC gUnknown_08625310:: @ 8625310 - .incbin "baserom.gba", 0x625310, 0x14 + .4byte sub_81D1714 + .4byte sub_81D1718 + .4byte sub_81D171C + .4byte sub_81D1750 + .4byte sub_81D1754 gUnknown_08625324:: @ 8625324 - .incbin "baserom.gba", 0x625324, 0x14 + .4byte sub_81D178C + .4byte sub_81D1790 + .4byte sub_81D17C0 + .4byte sub_81D17E0 + .4byte sub_81D17E4 gUnknown_08625338:: @ 8625338 .incbin "baserom.gba", 0x625338, 0x14 @@ -475,7 +883,12 @@ gUnknown_08625B2C:: @ 8625B2C .incbin "baserom.gba", 0x625b2c, 0x28 gUnknown_08625B54:: @ 8625B54 - .incbin "baserom.gba", 0x625b54, 0x18 + .4byte gUnknown_085EEA46 + .4byte gUnknown_085EEA4E + .4byte gUnknown_085EEA55 + .4byte gUnknown_085EEA63 + .4byte gUnknown_085EEA6B + .4byte gUnknown_085EEA5D gUnknown_08625B6C:: @ 8625B6C .incbin "baserom.gba", 0x625b6c, 0x520 @@ -502,10 +915,30 @@ gUnknown_0862A5F8:: @ 862A5F8 .incbin "baserom.gba", 0x62a5f8, 0x20 gUnknown_0862A618:: @ 862A618 - .incbin "baserom.gba", 0x62a618, 0x48 + .4byte sub_81D581C + .4byte sub_81D58D8 + .4byte sub_81D5924 + .4byte sub_81D59D0 + .4byte sub_81D5A70 + .4byte sub_81D5AB4 + .4byte sub_81D5AD0 + .4byte sub_81D5B2C + .4byte sub_81D5BBC + .4byte sub_81D5C00 + .4byte sub_81D5C5C + .4byte sub_81D62B4 + .4byte sub_81D64AC + .4byte sub_81D64DC + .4byte sub_81D64FC + .4byte sub_81D6518 + .4byte sub_81D6568 + .4byte sub_81D65A0 gUnknown_0862A660:: @ 862A660 - .incbin "baserom.gba", 0x62a660, 0x10 + .4byte gUnknown_085EB32D + .4byte gUnknown_085EB33E + .4byte gUnknown_085EB350 + .4byte gUnknown_085EB361 gUnknown_0862A670:: @ 862A670 .incbin "baserom.gba", 0x62a670, 0x18 From e647cb2308af4f15ac769e8692e41c72bd715256 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 23 Dec 2017 19:23:55 +0100 Subject: [PATCH 19/54] dump start menu and a bit of textwindow and trainercard --- data/graphics.s | 18 +++-- data/start_menu.s | 29 -------- data/strings.s | 36 +++++----- data/text_window.s | 161 ++++++++++++++++++++++++++++++++++++++++++-- data/trainer_card.s | 61 +++++++++++++++-- include/strings.h | 22 ++++++ ld_script.txt | 2 +- src/start_menu.c | 102 ++++++++++++++++++++++------ 8 files changed, 348 insertions(+), 83 deletions(-) delete mode 100644 data/start_menu.s diff --git a/data/graphics.s b/data/graphics.s index f20af4acb6..36fd871690 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1578,22 +1578,28 @@ gUnknown_08DCEC70:: @ 8DCEC70 .incbin "baserom.gba", 0xdcec70, 0x13e0 gUnknown_08DD0050:: @ 8DD0050 - .incbin "baserom.gba", 0xdd0050, 0x1a68 + .incbin "baserom.gba", 0xdd0050, 0x1A08 + +gUnknown_08DD1A58:: @ 8DD1A58 + .incbin "baserom.gba", 0xdd1a58, 0x60 gUnknown_08DD1AB8:: @ 8DD1AB8 - .incbin "baserom.gba", 0xdd1ab8, 0x4c0 + .incbin "baserom.gba", 0xdd1ab8, 0x4C0 gUnknown_08DD1F78:: @ 8DD1F78 - .incbin "baserom.gba", 0xdd1f78, 0x98 + .incbin "baserom.gba", 0xdd1f78, 0x98 gUnknown_08DD2010:: @ 8DD2010 - .incbin "baserom.gba", 0xdd2010, 0x1a0 + .incbin "baserom.gba", 0xdd2010, 0x1A0 gUnknown_08DD21B0:: @ 8DD21B0 - .incbin "baserom.gba", 0xdd21b0, 0xdc + .incbin "baserom.gba", 0xdd21b0, 0xDC gUnknown_08DD228C:: @ 8DD228C - .incbin "baserom.gba", 0xdd228c, 0x1e0 + .incbin "baserom.gba", 0xdd228c, 0x180 + +gUnknown_08DD240C:: @ 8DD240C + .incbin "baserom.gba", 0xdd240c, 0x60 gUnknown_08DD246C:: @ 8DD246C .incbin "baserom.gba", 0xdd246c, 0x674 diff --git a/data/start_menu.s b/data/start_menu.s deleted file mode 100644 index 07e428d0d9..0000000000 --- a/data/start_menu.s +++ /dev/null @@ -1,29 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gSafariBallsWindowTemplate:: @ 8510508 - .incbin "baserom.gba", 0x510508, 0x8 - -gUnknown_08510510:: @ 8510510 - .incbin "baserom.gba", 0x510510, 0x20 - -gPyramidFloorWindowTemplate_2:: @ 8510530 - .incbin "baserom.gba", 0x510530, 0x8 - -gPyramidFloorWindowTemplate_1:: @ 8510538 - .incbin "baserom.gba", 0x510538, 0x8 - -sStartMenuItems:: @ 8510540 - .incbin "baserom.gba", 0x510540, 0x68 - -gUnknown_085105A8:: @ 85105A8 - .incbin "baserom.gba", 0x5105a8, 0x4 - -gUnknown_085105AC:: @ 85105AC - .incbin "baserom.gba", 0x5105ac, 0x10 - -gUnknown_085105BC:: @ 85105BC - .incbin "baserom.gba", 0x5105bc, 0x8 diff --git a/data/strings.s b/data/strings.s index f4d24f7eaa..a193fe2e7d 100644 --- a/data/strings.s +++ b/data/strings.s @@ -4488,34 +4488,34 @@ gUnknown_085EE6AD:: @ 85EE6AD gUnknown_085EE6B6:: @ 85EE6B6 .string "Updated time$" -gUnknown_085EE6C3:: @ 85EE6C3 +gText_MenuPokedex:: @ 85EE6C3 .string "POKéDEX$" -gUnknown_085EE6CB:: @ 85EE6CB +gText_MenuPokemon:: @ 85EE6CB .string "POKéMON$" -gUnknown_085EE6D3:: @ 85EE6D3 +gText_MenuBag:: @ 85EE6D3 .string "BAG$" -gUnknown_085EE6D7:: @ 85EE6D7 +gText_MenuPokenav:: @ 85EE6D7 .string "POKéNAV$" -gUnknown_085EE6DF:: @ 85EE6DF +gText_MenuPlayer:: @ 85EE6DF .string "{PLAYER}$" -gUnknown_085EE6E2:: @ 85EE6E2 +gText_MenuSave:: @ 85EE6E2 .string "SAVE$" -gUnknown_085EE6E7:: @ 85EE6E7 +gText_MenuOption:: @ 85EE6E7 .string "OPTION$" -gUnknown_085EE6EE:: @ 85EE6EE +gText_MenuExit:: @ 85EE6EE .string "EXIT$" -gUnknown_085EE6F3:: @ 85EE6F3 +gText_MenuRetire:: @ 85EE6F3 .string "RETIRE$" -gUnknown_085EE6FA:: @ 85EE6FA +gText_MenuRest:: @ 85EE6FA .string "REST$" gText_SafariBallStock:: @ 85EE6FF @@ -4524,28 +4524,28 @@ gText_SafariBallStock:: @ 85EE6FF gText_BattlePyramidFloor:: @ 85EE716 .string "Battle Pyramid\n{STR_VAR_1}$" -gUnknown_085EE728:: @ 85EE728 +gText_Floor1:: @ 85EE728 .string "Floor 1$" -gUnknown_085EE730:: @ 85EE730 +gText_Floor2:: @ 85EE730 .string "Floor 2$" -gUnknown_085EE738:: @ 85EE738 +gText_Floor3:: @ 85EE738 .string "Floor 3$" -gUnknown_085EE740:: @ 85EE740 +gText_Floor4:: @ 85EE740 .string "Floor 4$" -gUnknown_085EE748:: @ 85EE748 +gText_Floor5:: @ 85EE748 .string "Floor 5$" -gUnknown_085EE750:: @ 85EE750 +gText_Floor6:: @ 85EE750 .string "Floor 6$" -gUnknown_085EE758:: @ 85EE758 +gText_Floor7:: @ 85EE758 .string "Floor 7$" -gUnknown_085EE760:: @ 85EE760 +gText_Peak:: @ 85EE760 .string "Peak$" gText_LinkStandby2:: @ 85EE765 diff --git a/data/text_window.s b/data/text_window.s index a7389572bf..26c231f909 100644 --- a/data/text_window.s +++ b/data/text_window.s @@ -5,13 +5,166 @@ .align 2, 0 gUnknown_0850E87C:: @ 850E87C - .incbin "baserom.gba", 0x50e87c, 0x1680 + .incbin "baserom.gba", 0x50e87c, 0x120 + +gUnknown_0850E99C:: @ 850E99C + .incbin "baserom.gba", 0x50e99c, 0x120 + +gUnknown_0850EABC:: @ 850EABC + .incbin "baserom.gba", 0x50eabc, 0x120 + +gUnknown_0850EBDC:: @ 850EBDC + .incbin "baserom.gba", 0x50ebdc, 0x120 + +gUnknown_0850ECFC:: @ 850ECFC + .incbin "baserom.gba", 0x50ecfc, 0x120 + +gUnknown_0850EE1C:: @ 850EE1C + .incbin "baserom.gba", 0x50ee1c, 0x120 + +gUnknown_0850EF3C:: @ 850EF3C + .incbin "baserom.gba", 0x50ef3c, 0x120 + +gUnknown_0850F05C:: @ 850F05C + .incbin "baserom.gba", 0x50f05c, 0x120 + +gUnknown_0850F17C:: @ 850F17C + .incbin "baserom.gba", 0x50f17c, 0x120 + +gUnknown_0850F29C:: @ 850F29C + .incbin "baserom.gba", 0x50f29c, 0x120 + +gUnknown_0850F3BC:: @ 850F3BC + .incbin "baserom.gba", 0x50f3bc, 0x120 + +gUnknown_0850F4DC:: @ 850F4DC + .incbin "baserom.gba", 0x50f4dc, 0x120 + +gUnknown_0850F5FC:: @ 850F5FC + .incbin "baserom.gba", 0x50f5fc, 0x120 + +gUnknown_0850F71C:: @ 850F71C + .incbin "baserom.gba", 0x50f71c, 0x120 + +gUnknown_0850F83C:: @ 850F83C + .incbin "baserom.gba", 0x50f83c, 0x120 + +gUnknown_0850F95C:: @ 850F95C + .incbin "baserom.gba", 0x50f95c, 0x120 + +gUnknown_0850FA7C:: @ 850FA7C + .incbin "baserom.gba", 0x50fa7c, 0x120 + +gUnknown_0850FB9C:: @ 850FB9C + .incbin "baserom.gba", 0x50fb9c, 0x120 + +gUnknown_0850FCBC:: @ 850FCBC + .incbin "baserom.gba", 0x50fcbc, 0x120 + +gUnknown_0850FDDC:: @ 850FDDC + .incbin "baserom.gba", 0x50fddc, 0x120 gUnknown_0850FEFC:: @ 850FEFC - .incbin "baserom.gba", 0x50fefc, 0x280 + .incbin "baserom.gba", 0x50fefc, 0x20 + +gUnknown_0850FF1C:: @ 850FF1C + .incbin "baserom.gba", 0x50ff1c, 0x20 + +gUnknown_0850FF3C:: @ 850FF3C + .incbin "baserom.gba", 0x50ff3c, 0x20 + +gUnknown_0850FF5C:: @ 850FF5C + .incbin "baserom.gba", 0x50ff5c, 0x20 + +gUnknown_0850FF7C:: @ 850FF7C + .incbin "baserom.gba", 0x50ff7c, 0x20 + +gUnknown_0850FF9C:: @ 850FF9C + .incbin "baserom.gba", 0x50ff9c, 0x20 + +gUnknown_0850FFBC:: @ 850FFBC + .incbin "baserom.gba", 0x50ffbc, 0x20 + +gUnknown_0850FFDC:: @ 850FFDC + .incbin "baserom.gba", 0x50ffdc, 0x20 + +gUnknown_0850FFFC:: @ 850FFFC + .incbin "baserom.gba", 0x50fffc, 0x20 + +gUnknown_0851001C:: @ 851001C + .incbin "baserom.gba", 0x51001c, 0x20 + +gUnknown_0851003C:: @ 851003C + .incbin "baserom.gba", 0x51003c, 0x20 + +gUnknown_0851005C:: @ 851005C + .incbin "baserom.gba", 0x51005c, 0x20 + +gUnknown_0851007C:: @ 851007C + .incbin "baserom.gba", 0x51007c, 0x20 + +gUnknown_0851009C:: @ 851009C + .incbin "baserom.gba", 0x51009c, 0x20 + +gUnknown_085100BC:: @ 85100BC + .incbin "baserom.gba", 0x5100bc, 0x20 + +gUnknown_085100DC:: @ 85100DC + .incbin "baserom.gba", 0x5100dc, 0x20 + +gUnknown_085100FC:: @ 85100FC + .incbin "baserom.gba", 0x5100fc, 0x20 + +gUnknown_0851011C:: @ 851011C + .incbin "baserom.gba", 0x51011c, 0x20 + +gUnknown_0851013C:: @ 851013C + .incbin "baserom.gba", 0x51013c, 0x20 + +gUnknown_0851015C:: @ 851015C + .incbin "baserom.gba", 0x51015c, 0x20 gUnknown_0851017C:: @ 851017C - .incbin "baserom.gba", 0x51017c, 0xa0 + .incbin "baserom.gba", 0x51017c, 0xA0 gUnknown_0851021C:: @ 851021C - .incbin "baserom.gba", 0x51021c, 0xa0 + .4byte gUnknown_0850E87C + .4byte gUnknown_0850FEFC + .4byte gUnknown_0850E99C + .4byte gUnknown_0850FF1C + .4byte gUnknown_0850EABC + .4byte gUnknown_0850FF3C + .4byte gUnknown_0850EBDC + .4byte gUnknown_0850FF5C + .4byte gUnknown_0850ECFC + .4byte gUnknown_0850FF7C + .4byte gUnknown_0850EE1C + .4byte gUnknown_0850FF9C + .4byte gUnknown_0850EF3C + .4byte gUnknown_0850FFBC + .4byte gUnknown_0850F05C + .4byte gUnknown_0850FFDC + .4byte gUnknown_0850F17C + .4byte gUnknown_0850FFFC + .4byte gUnknown_0850F29C + .4byte gUnknown_0851001C + .4byte gUnknown_0850F3BC + .4byte gUnknown_0851003C + .4byte gUnknown_0850F4DC + .4byte gUnknown_0851005C + .4byte gUnknown_0850F5FC + .4byte gUnknown_0851007C + .4byte gUnknown_0850F71C + .4byte gUnknown_0851009C + .4byte gUnknown_0850F83C + .4byte gUnknown_085100BC + .4byte gUnknown_0850F95C + .4byte gUnknown_085100DC + .4byte gUnknown_0850FA7C + .4byte gUnknown_085100FC + .4byte gUnknown_0850FB9C + .4byte gUnknown_0851011C + .4byte gUnknown_0850FCBC + .4byte gUnknown_0851013C + .4byte gUnknown_0850FDDC + .4byte gUnknown_0851015C diff --git a/data/trainer_card.s b/data/trainer_card.s index 0d48cd0b6d..ce4f36b4eb 100644 --- a/data/trainer_card.s +++ b/data/trainer_card.s @@ -5,7 +5,31 @@ .align 2, 0 gUnknown_0856F018:: @ 856F018 - .incbin "baserom.gba", 0x56f018, 0x494 + .incbin "baserom.gba", 0x56f018, 0x194 + +gUnknown_0856F1AC:: @ 856F1AC + .incbin "baserom.gba", 0x56f1ac, 0x60 + +gUnknown_0856F20C:: @ 856F20C + .incbin "baserom.gba", 0x56f20c, 0x60 + +gUnknown_0856F26C:: @ 856F26C + .incbin "baserom.gba", 0x56f26c, 0x60 + +gUnknown_0856F2CC:: @ 856F2CC + .incbin "baserom.gba", 0x56f2cc, 0x60 + +gUnknown_0856F32C:: @ 856F32C + .incbin "baserom.gba", 0x56f32c, 0x60 + +gUnknown_0856F38C:: @ 856F38C + .incbin "baserom.gba", 0x56f38c, 0x60 + +gUnknown_0856F3EC:: @ 856F3EC + .incbin "baserom.gba", 0x56f3ec, 0x60 + +gUnknown_0856F44C:: @ 856F44C + .incbin "baserom.gba", 0x56f44c, 0x60 gUnknown_0856F4AC:: @ 856F4AC .incbin "baserom.gba", 0x56f4ac, 0x20 @@ -47,10 +71,18 @@ gUnknown_0856FAC4:: @ 856FAC4 .incbin "baserom.gba", 0x56fac4, 0x20 gUnknown_0856FAE4:: @ 856FAE4 - .incbin "baserom.gba", 0x56fae4, 0x14 + .4byte gUnknown_08DD1A58 + .4byte gUnknown_0856F1AC + .4byte gUnknown_0856F26C + .4byte gUnknown_0856F32C + .4byte gUnknown_0856F3EC gUnknown_0856FAF8:: @ 856FAF8 - .incbin "baserom.gba", 0x56faf8, 0x14 + .4byte gUnknown_08DD240C + .4byte gUnknown_0856F20C + .4byte gUnknown_0856F2CC + .4byte gUnknown_0856F38C + .4byte gUnknown_0856F44C gUnknown_0856FB0C:: @ 856FB0C .incbin "baserom.gba", 0x56fb0c, 0x3 @@ -65,7 +97,12 @@ gUnknown_0856FB20:: @ 856FB20 .incbin "baserom.gba", 0x56fb20, 0x8 gUnknown_0856FB28:: @ 856FB28 - .incbin "baserom.gba", 0x56fb28, 0x18 + .4byte sub_80C4998 + .4byte sub_80C49D8 + .4byte sub_80C4B08 + .4byte sub_80C4C1C + .4byte sub_80C4C84 + .4byte sub_80C4DB0 gUnknown_0856FB40:: @ 856FB40 .incbin "baserom.gba", 0x56fb40, 0x8 @@ -161,7 +198,21 @@ gUnknown_085715FC:: @ 85715FC .incbin "baserom.gba", 0x5715fc, 0x18 gUnknown_08571614:: @ 8571614 - .incbin "baserom.gba", 0x571614, 0x3c + .4byte gUnknown_085EDA96 + .4byte gUnknown_085ED932 + .4byte gUnknown_085ED94D + .4byte gUnknown_085ED961 + .4byte gUnknown_085ED977 + .4byte gUnknown_085ED993 + .4byte gUnknown_085ED9AF + .4byte gUnknown_085ED9C7 + .4byte gUnknown_085ED9E5 + .4byte gUnknown_085EDA02 + .4byte gUnknown_085EDA21 + .4byte gUnknown_085EDA3C + .4byte gUnknown_085EDA5E + .4byte gUnknown_085EDA78 + .4byte gUnknown_085ED931 gUnknown_08571650:: @ 8571650 .incbin "baserom.gba", 0x571650, 0x70 diff --git a/include/strings.h b/include/strings.h index 79e724833a..a382191a08 100644 --- a/include/strings.h +++ b/include/strings.h @@ -148,4 +148,26 @@ extern const u8 gText_MoveItemsDescription[]; extern const u8 gText_SeeYa[]; extern const u8 gText_SeeYaDescription[]; +// menu texts +extern const u8 gText_MenuPokedex[]; +extern const u8 gText_MenuPokemon[]; +extern const u8 gText_MenuBag[]; +extern const u8 gText_MenuPokenav[]; +extern const u8 gText_MenuPlayer[]; +extern const u8 gText_MenuSave[]; +extern const u8 gText_MenuOption[]; +extern const u8 gText_MenuExit[]; +extern const u8 gText_MenuRetire[]; +extern const u8 gText_MenuRest[]; +extern const u8 gText_Floor1[]; +extern const u8 gText_Floor2[]; +extern const u8 gText_Floor3[]; +extern const u8 gText_Floor4[]; +extern const u8 gText_Floor5[]; +extern const u8 gText_Floor6[]; +extern const u8 gText_Floor7[]; +extern const u8 gText_Peak[]; +extern const u8 gText_SafariBallStock[]; +extern const u8 gText_BattlePyramidFloor[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 6003d4871c..f596a59463 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -372,7 +372,7 @@ SECTIONS { data/coord_event_weather.o(.rodata); data/field_tasks.o(.rodata); data/reset_rtc_screen.o(.rodata); - data/start_menu.o(.rodata); + src/start_menu.o(.rodata); src/tileset_anims.o(.rodata); src/palette.o(.rodata); data/fanfares.o(.rodata); diff --git a/src/start_menu.c b/src/start_menu.c index f45fd8626e..a820cd9927 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -6,6 +6,8 @@ #include "window.h" #include "string_util.h" #include "text.h" +#include "strings.h" +#include "bg.h" // Menu actions enum @@ -25,15 +27,6 @@ enum MENU_ACTION_PYRAMID_BAG }; -static void BuildStartMenuActions_LinkMode(void); -static void BuildStartMenuActions_UnionRoom(void); -static void BuildStartMenuActions_SafariZone(void); -static void BuildStartMenuActions_BattlePike(void); -static void BuildStartMenuActions_BattlePyramid(void); -static void BuildStartMenuActions_MultiBattleRoom(void); -static void BuildStartMenuActions_Normal(void); -u8 StartMenu_PlayerName(void); - extern bool32 is_c1_link_related_active(void); extern bool32 InUnionRoom(void); extern bool8 InBattlePike(void); @@ -42,12 +35,91 @@ extern bool8 InMultiBattleRoom(void); extern void sub_81973FC(u8 windowId, u8 a1); extern void sub_8198070(u8 windowId, u8 a1); +// this file's functions +static void BuildStartMenuActions_LinkMode(void); +static void BuildStartMenuActions_UnionRoom(void); +static void BuildStartMenuActions_SafariZone(void); +static void BuildStartMenuActions_BattlePike(void); +static void BuildStartMenuActions_BattlePyramid(void); +static void BuildStartMenuActions_MultiBattleRoom(void); +static void BuildStartMenuActions_Normal(void); +bool8 StartMenu_Pokedex(void); +bool8 StartMenu_Pokemon(void); +bool8 StartMenu_Bag(void); +bool8 StartMenu_PokeNav(void); +bool8 StartMenu_PlayerName(void); +bool8 StartMenu_Save(void); +bool8 StartMenu_Option(void); +bool8 StartMenu_Exit(void); +bool8 StartMenu_SafariZoneRetire(void); +bool8 StartMenu_LinkModePlayerName(void); +bool8 StartMenu_BattlePyramidRetire(void); +bool8 StartMenu_BattlePyramidBag(void); + +// EWRAM vars EWRAM_DATA u8 sSafariBallsWindowId = 0; EWRAM_DATA u8 sBattlePyramidFloorWindowId = 0; EWRAM_DATA u8 sStartMenuCursorPos = 0; EWRAM_DATA u8 sNumStartMenuActions = 0; EWRAM_DATA u8 sCurrentStartMenuActions[9] = {0}; +// const rom data +static const struct WindowTemplate gSafariBallsWindowTemplate = {0, 1, 1, 9, 4, 0xF, 8}; + +static const u8* const sPyramindFloorNames[] = +{ + gText_Floor1, + gText_Floor2, + gText_Floor3, + gText_Floor4, + gText_Floor5, + gText_Floor6, + gText_Floor7, + gText_Peak +}; + +static const struct WindowTemplate gPyramidFloorWindowTemplate_2 = {0, 1, 1, 0xA, 4, 0xF, 8}; +static const struct WindowTemplate gPyramidFloorWindowTemplate_1 = {0, 1, 1, 0xC, 4, 0xF, 8}; + +const struct MenuAction sStartMenuItems[] = +{ + {gText_MenuPokedex, {.u8_void = StartMenu_Pokedex}}, + {gText_MenuPokemon, {.u8_void = StartMenu_Pokemon}}, + {gText_MenuBag, {.u8_void = StartMenu_Bag}}, + {gText_MenuPokenav, {.u8_void = StartMenu_PokeNav}}, + {gText_MenuPlayer, {.u8_void = StartMenu_PlayerName}}, + {gText_MenuSave, {.u8_void = StartMenu_Save}}, + {gText_MenuOption, {.u8_void = StartMenu_Option}}, + {gText_MenuExit, {.u8_void = StartMenu_Exit}}, + {gText_MenuRetire, {.u8_void = StartMenu_SafariZoneRetire}}, + {gText_MenuPlayer, {.u8_void = StartMenu_LinkModePlayerName}}, + {gText_MenuRest, {.u8_void = StartMenu_Save}}, + {gText_MenuRetire, {.u8_void = StartMenu_BattlePyramidRetire}}, + {gText_MenuBag, {.u8_void = StartMenu_BattlePyramidBag}} +}; + +const struct BgTemplate gUnknown_085105A8[] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + } +}; + +const struct WindowTemplate gUnknown_085105AC[] = +{ + {0, 2, 0xF, 0x1A, 4, 0xF, 0x194}, + DUMMY_WIN_TEMPLATE +}; + +const struct WindowTemplate gUnknown_085105BC = {0, 1, 1, 0xE, 0xA, 0xF, 8}; + +// code void BuildStartMenuActions(void) { sNumStartMenuActions = 0; @@ -148,11 +220,6 @@ static void BuildStartMenuActions_MultiBattleRoom(void) AddStartMenuAction(MENU_ACTION_EXIT); } -extern const struct WindowTemplate gSafariBallsWindowTemplate; -extern const struct WindowTemplate gPyramidFloorWindowTemplate_1; -extern const struct WindowTemplate gPyramidFloorWindowTemplate_2; -extern const u8 gText_SafariBallStock[]; - void DisplaySafariBallsWindow(void) { sSafariBallsWindowId = AddWindow(&gSafariBallsWindowTemplate); @@ -164,9 +231,6 @@ void DisplaySafariBallsWindow(void) CopyWindowToVram(sSafariBallsWindowId, 2); } -extern const u8* const gUnknown_08510510[]; -extern const u8 gText_BattlePyramidFloor[]; - void DisplayPyramidFloorWindow(void) { // TODO: fix location @@ -176,7 +240,7 @@ void DisplayPyramidFloorWindow(void) sBattlePyramidFloorWindowId = AddWindow(&gPyramidFloorWindowTemplate_2); PutWindowTilemap(sBattlePyramidFloorWindowId); sub_81973FC(sBattlePyramidFloorWindowId, 0); - StringCopy(gStringVar1, gUnknown_08510510[gSaveBlock2Ptr->field_CAA[4]]); + StringCopy(gStringVar1, sPyramindFloorNames[gSaveBlock2Ptr->field_CAA[4]]); StringExpandPlaceholders(gStringVar4, gText_BattlePyramidFloor); PrintTextOnWindow(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); CopyWindowToVram(sBattlePyramidFloorWindowId, 2); @@ -197,8 +261,6 @@ void RemoveExtraStartMenuWindows(void) } } -extern const struct MenuAction sStartMenuItems[]; - /* // Prints n menu items starting at *index static bool32 PrintStartMenuItemsMultistep(s16 *index, u32 n) From 4d24381e5e58b2dd8a138f1d45e618b0e726ec27 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 23 Dec 2017 20:47:43 +0100 Subject: [PATCH 20/54] more pointer dumping --- data/graphics.s | 32 ++++++++++++++++++--- data/party_menu.s | 65 ++++++++++++++++++++++++++++++++++++------ data/unk_sprite_file.s | 30 +++++++++++++++---- data/use_pokeblock.s | 7 +++-- 4 files changed, 113 insertions(+), 21 deletions(-) diff --git a/data/graphics.s b/data/graphics.s index 36fd871690..c0d0719e47 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -821,10 +821,25 @@ gUnknown_08D96AB4:: @ 8D96AB4 .incbin "baserom.gba", 0xd96ab4, 0xec gUnknown_08D96BA0:: @ 8D96BA0 - .incbin "baserom.gba", 0xd96ba0, 0xfe4 + .incbin "baserom.gba", 0xd96ba0, 0x138 + +gUnknown_08D96CD8:: @ 8D96CD8 + .incbin "baserom.gba", 0xd96cd8, 0x294 + +gUnknown_08D96F6C:: @ 8D96F6C + .incbin "baserom.gba", 0xd96f6c, 0x24 + +gUnknown_08D96F90:: @ 8D96F90 + .incbin "baserom.gba", 0xd96f90, 0x1F8 + +gUnknown_08D97188:: @ 8D97188 + .incbin "baserom.gba", 0xd97188, 0x28 + +gUnknown_08D971B0:: @ 8D971B0 + .incbin "baserom.gba", 0xd971b0, 0x9D4 gUnknown_08D97B84:: @ 8D97B84 - .incbin "baserom.gba", 0xd97b84, 0x188 + .incbin "baserom.gba", 0xd97b84, 0x188 gUnknown_08D97D0C:: @ 8D97D0C .incbin "baserom.gba", 0xd97d0c, 0x830 @@ -1548,10 +1563,19 @@ gUnknown_08DCC648:: @ 8DCC648 .incbin "baserom.gba", 0xdcc648, 0x2c0 gUnknown_08DCC908:: @ 8DCC908 - .incbin "baserom.gba", 0xdcc908, 0x2b0 + .incbin "baserom.gba", 0xdcc908, 0x290 + +gUnknown_08DCCB98:: @ 8DCCB98 + .incbin "baserom.gba", 0xdccb98, 0x20 gUnknown_08DCCBB8:: @ 8DCCBB8 - .incbin "baserom.gba", 0xdccbb8, 0x3a4 + .incbin "baserom.gba", 0xdccbb8, 0x184 + +gUnknown_08DCCD3C:: @ 8DCCD3C + .incbin "baserom.gba", 0xdccd3c, 0x20 + +gUnknown_08DCCD5C:: @ 8DCCD5C + .incbin "baserom.gba", 0xdccd5c, 0x200 gUnknown_08DCCF5C:: @ 8DCCF5C .incbin "baserom.gba", 0xdccf5c, 0x20 diff --git a/data/party_menu.s b/data/party_menu.s index 36ee4f9605..a21b985c1b 100644 --- a/data/party_menu.s +++ b/data/party_menu.s @@ -166,10 +166,51 @@ gUnknown_08615AF1:: @ 8615AF1 .incbin "baserom.gba", 0x615af1, 0x3 gUnknown_08615AF4:: @ 8615AF4 - .incbin "baserom.gba", 0x615af4, 0x6c + .4byte gUnknown_085E9E43 + .4byte gUnknown_085EA010 + .4byte gUnknown_085EA02A + .4byte gUnknown_085E9E55 + .4byte gUnknown_085E9E64 + .4byte gUnknown_085E9E79 + .4byte gUnknown_085E9E8F + .4byte gUnknown_085E9EBC + .4byte gUnknown_085E9ED4 + .4byte gUnknown_085E9EE9 + .4byte gUnknown_085E9FDB + .4byte gUnknown_085EA046 + .4byte gUnknown_085EA05B + .4byte gUnknown_085E9F01 + .4byte gUnknown_085E9F58 + .4byte gUnknown_085E9F6F + .4byte gUnknown_085E9F81 + .4byte gUnknown_085E9F90 + .4byte gUnknown_085E9FA7 + .4byte gUnknown_085E9FC2 + .4byte gText_EmptyString2 + .4byte gUnknown_085E9EA6 + .4byte gUnknown_085E9F16 + .4byte gUnknown_085E9F2A + .4byte gUnknown_085E9F42 + .4byte gUnknown_085E9FF9 + .4byte gUnknown_085EA073 gUnknown_08615B60:: @ 8615B60 - .incbin "baserom.gba", 0x615b60, 0xa8 + .4byte gUnknown_085EA091 + .4byte gUnknown_085EA099 + .4byte gUnknown_085EA09E + .4byte gUnknown_085EA0A4 + .4byte gUnknown_085EA0AB + .4byte gUnknown_085EA0E7 + .4byte gUnknown_085EA0B1 + .4byte gUnknown_085EA0B6 + .4byte gUnknown_085EA0BF + .4byte gUnknown_085EA0C5 + .4byte gUnknown_085EA0CF + .4byte gUnknown_085EA0D7 + .4byte gUnknown_085EA0DC + +gUnknown_08615B94:: @ 8615B94 + .incbin "baserom.gba", 0x615b94, 0x74 gUnknown_08615C08:: @ 8615C08 .incbin "baserom.gba", 0x615c08, 0x130 @@ -187,22 +228,28 @@ gUnknown_08615D9C:: @ 8615D9C .incbin "baserom.gba", 0x615d9c, 0x70 gUnknown_08615E0C:: @ 8615E0C - .incbin "baserom.gba", 0x615e0c, 0xa4 + .incbin "baserom.gba", 0x615e0c, 0x24 + +gUnknown_08615E30:: @ 8615E30 + .incbin "baserom.gba", 0x615e30, 0x40 + +gUnknown_08615E70:: @ 8615E70 + .incbin "baserom.gba", 0x615e70, 0x40 gUnknown_08615EB0:: @ 8615EB0 - .incbin "baserom.gba", 0x615eb0, 0x8 + obj_tiles gUnknown_08615E30, 0x40, 55120 gUnknown_08615EB8:: @ 8615EB8 - .incbin "baserom.gba", 0x615eb8, 0x8 + obj_pal gUnknown_08615E70, 55120 gUnknown_08615EC0:: @ 8615EC0 .incbin "baserom.gba", 0x615ec0, 0x38 gUnknown_08615EF8:: @ 8615EF8 - .incbin "baserom.gba", 0x615ef8, 0x8 + obj_tiles gUnknown_08D96CD8, 0x400, 1200 gUnknown_08615F00:: @ 8615F00 - .incbin "baserom.gba", 0x615f00, 0x8 + obj_pal gUnknown_08D96F6C, 1200 gUnknown_08615F08:: @ 8615F08 .incbin "baserom.gba", 0x615f08, 0x68 @@ -214,10 +261,10 @@ gUnknown_08615F78:: @ 8615F78 .incbin "baserom.gba", 0x615f78, 0x80 gUnknown_08615FF8:: @ 8615FF8 - .incbin "baserom.gba", 0x615ff8, 0x8 + obj_tiles gUnknown_08D96F90, 0x400, 1202 gUnknown_08616000:: @ 8616000 - .incbin "baserom.gba", 0x616000, 0x8 + obj_pal gUnknown_08D97188, 1202 gUnknown_08616008:: @ 8616008 .incbin "baserom.gba", 0x616008, 0x18 diff --git a/data/unk_sprite_file.s b/data/unk_sprite_file.s index 837e87c3f7..d4e53df1e4 100644 --- a/data/unk_sprite_file.s +++ b/data/unk_sprite_file.s @@ -7,16 +7,36 @@ gUnknown_0862AD54:: @ 862AD54 .incbin "baserom.gba", 0x62ad54, 0x1dc gUnknown_0862AF30:: @ 862AF30 - .incbin "baserom.gba", 0x62af30, 0x60c + .incbin "baserom.gba", 0x62af30, 0x1AC + +gUnknown_0862B0DC:: @ 862B0DC + .incbin "baserom.gba", 0x62b0dc, 0x460 gUnknown_0862B53C:: @ 862B53C - .incbin "baserom.gba", 0x62b53c, 0x1e8 + .incbin "baserom.gba", 0x62b53c, 0x1E0 + +gUnknown_0862B71C:: @ 862B71C + .incbin "baserom.gba", 0x62b71c, 0x8 gUnknown_0862B724:: @ 862B724 - .incbin "baserom.gba", 0x62b724, 0x8 + obj_tiles gUnknown_0862B0DC, 0x1800, 11920 gUnknown_0862B72C:: @ 862B72C - .incbin "baserom.gba", 0x62b72c, 0x2c + obj_pal gUnknown_0862B53C, 11920 + +gUnknown_0862B734:: @ 862B734 + .incbin "baserom.gba", 0x62b734, 0x8 + +gUnknown_0862B73C:: @ 862B73C + .incbin "baserom.gba", 0x62b73c, 0x8 + +gUnknown_0862B744:: @ 862B744 + .incbin "baserom.gba", 0x62b744, 0x8 + +gUnknown_0862B74C:: @ 862B74C + .4byte gUnknown_0862B734 + .4byte gUnknown_0862B73C + .4byte gUnknown_0862B744 gUnknown_0862B758:: @ 862B758 - .incbin "baserom.gba", 0x62b758, 0x18 + spr_template 11920, 11920, gUnknown_0862B71C, gUnknown_0862B74C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/data/use_pokeblock.s b/data/use_pokeblock.s index a45ea27e11..ed9a6c29a5 100644 --- a/data/use_pokeblock.s +++ b/data/use_pokeblock.s @@ -47,10 +47,10 @@ sContestStatNames:: @ 85DFD04 .4byte gText_Beauty3 gUnknown_085DFD18:: @ 85DFD18 - .incbin "baserom.gba", 0x5dfd18, 0x8 + obj_tiles gUnknown_08DCCD5C, 0x200, 0 gUnknown_085DFD20:: @ 85DFD20 - .incbin "baserom.gba", 0x5dfd20, 0x8 + obj_pal gUnknown_08DCCD3C, 0 gUnknown_085DFD28:: @ 85DFD28 .incbin "baserom.gba", 0x5dfd28, 0x34 @@ -62,4 +62,5 @@ gUnknown_085DFDA0:: @ 85DFDA0 .incbin "baserom.gba", 0x5dfda0, 0x18 gUnknown_085DFDB8:: @ 85DFDB8 - .incbin "baserom.gba", 0x5dfdb8, 0x8 + .4byte gUnknown_08DCCB98 + .4byte 1 From d137b7f0a83a28e81234e06390bec4b2bd1089c5 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sat, 23 Dec 2017 15:50:58 -0500 Subject: [PATCH 21/54] third wave of graphics.s dumps (battle_anim part 2) --- data/graphics.s | 495 +++++++++++++++++- graphics/battle_anims/sprites/046.png | Bin 0 -> 716 bytes graphics/battle_anims/sprites/047.pal | 19 + graphics/battle_anims/sprites/048.png | Bin 0 -> 666 bytes graphics/battle_anims/sprites/049.pal | 19 + graphics/battle_anims/sprites/050.png | Bin 0 -> 225 bytes graphics/battle_anims/sprites/051.png | Bin 0 -> 224 bytes graphics/battle_anims/sprites/052.png | Bin 0 -> 245 bytes graphics/battle_anims/sprites/054.png | Bin 0 -> 159 bytes graphics/battle_anims/sprites/055.png | Bin 0 -> 242 bytes graphics/battle_anims/sprites/056.png | Bin 0 -> 862 bytes graphics/battle_anims/sprites/057.png | Bin 0 -> 214 bytes graphics/battle_anims/sprites/058.png | Bin 0 -> 818 bytes graphics/battle_anims/sprites/059.png | Bin 0 -> 193 bytes graphics/battle_anims/sprites/060.png | Bin 0 -> 154 bytes graphics/battle_anims/sprites/061.png | Bin 0 -> 259 bytes graphics/battle_anims/sprites/062.png | Bin 0 -> 845 bytes graphics/battle_anims/sprites/063.png | Bin 0 -> 414 bytes graphics/battle_anims/sprites/065.png | Bin 0 -> 343 bytes graphics/battle_anims/sprites/066.png | Bin 0 -> 164 bytes graphics/battle_anims/sprites/070.png | Bin 0 -> 195 bytes graphics/battle_anims/sprites/071.png | Bin 0 -> 412 bytes graphics/battle_anims/sprites/072.png | Bin 0 -> 277 bytes graphics/battle_anims/sprites/073.png | Bin 0 -> 319 bytes graphics/battle_anims/sprites/075.png | Bin 0 -> 541 bytes graphics/battle_anims/sprites/078.png | Bin 0 -> 403 bytes graphics/battle_anims/sprites/079.png | Bin 0 -> 880 bytes graphics/battle_anims/sprites/080.png | Bin 0 -> 661 bytes graphics/battle_anims/sprites/081.png | Bin 0 -> 217 bytes graphics/battle_anims/sprites/082.png | Bin 0 -> 148 bytes graphics/battle_anims/sprites/083.png | Bin 0 -> 846 bytes graphics/battle_anims/sprites/084.png | Bin 0 -> 587 bytes graphics/battle_anims/sprites/085.png | Bin 0 -> 221 bytes graphics/battle_anims/sprites/086.png | Bin 0 -> 393 bytes graphics/battle_anims/sprites/088.png | Bin 0 -> 194 bytes graphics/battle_anims/sprites/089.png | Bin 0 -> 488 bytes graphics/battle_anims/sprites/090.png | Bin 0 -> 229 bytes graphics/battle_anims/sprites/091.png | Bin 0 -> 359 bytes graphics/battle_anims/sprites/092.png | Bin 0 -> 199 bytes graphics/battle_anims/sprites/093.png | Bin 0 -> 1351 bytes graphics/battle_anims/sprites/094.png | Bin 0 -> 281 bytes graphics/battle_anims/sprites/095.png | Bin 0 -> 252 bytes graphics/battle_anims/sprites/096.png | Bin 0 -> 356 bytes graphics/battle_anims/sprites/097.png | Bin 0 -> 405 bytes graphics/battle_anims/sprites/098.png | Bin 0 -> 328 bytes graphics/battle_anims/sprites/100.png | Bin 0 -> 293 bytes graphics/battle_anims/sprites/101.png | Bin 0 -> 352 bytes graphics/battle_anims/sprites/102.png | Bin 0 -> 397 bytes graphics/battle_anims/sprites/103.png | Bin 0 -> 193 bytes graphics/battle_anims/sprites/104.png | Bin 0 -> 427 bytes graphics/battle_anims/sprites/105.png | Bin 0 -> 1101 bytes graphics/battle_anims/sprites/106.png | Bin 0 -> 287 bytes graphics/battle_anims/sprites/107.png | Bin 0 -> 576 bytes graphics/battle_anims/sprites/108.png | Bin 0 -> 800 bytes graphics/battle_anims/sprites/109.png | Bin 0 -> 161 bytes graphics/battle_anims/sprites/110.png | Bin 0 -> 688 bytes graphics/battle_anims/sprites/111.png | Bin 0 -> 169 bytes graphics/battle_anims/sprites/112.png | Bin 0 -> 762 bytes graphics/battle_anims/sprites/113.png | Bin 0 -> 586 bytes graphics/battle_anims/sprites/114.png | Bin 0 -> 284 bytes graphics/battle_interface/unused_window2.png | Bin 0 -> 445 bytes .../battle_interface/unused_window2bar.png | Bin 0 -> 91 bytes graphics/unknown/unknown_C0CA1C.bin | Bin 0 -> 36 bytes graphics/unknown/unknown_C0CA40.bin | Bin 0 -> 36 bytes graphics/unknown/unknown_C0CA64.bin | Bin 0 -> 36 bytes graphics/unknown/unknown_C0CAE0.bin | Bin 0 -> 32 bytes graphics/unknown/unknown_D0D2B4.bin | Bin 0 -> 32 bytes graphics/unused/basic_frame.bin | Bin 0 -> 2048 bytes graphics/unused/basic_frame.png | Bin 0 -> 230 bytes graphics/unused/blank_frame.bin | Bin 0 -> 2048 bytes graphics/unused/blue_frame.bin | Bin 0 -> 2048 bytes graphics/unused/color_frames.png | Bin 0 -> 282 bytes graphics/unused/green_frame.bin | Bin 0 -> 2048 bytes graphics/unused/line_sketch.png | Bin 0 -> 328 bytes graphics/unused/line_sketch_2.bin | Bin 0 -> 1024 bytes graphics/unused/line_sketch_2.png | Bin 0 -> 154 bytes graphics/unused/metronome_hand_small.png | Bin 0 -> 202 bytes graphics/unused/red_frame.bin | Bin 0 -> 2048 bytes graphics/unused/redyellowgreen_frame.bin | Bin 0 -> 8192 bytes graphics/unused/water_splash.bin | Bin 0 -> 1024 bytes graphics/unused/water_splash.png | Bin 0 -> 1064 bytes graphics/unused/yellow_frame.bin | Bin 0 -> 2048 bytes graphics_file_rules.mk | 10 + 83 files changed, 542 insertions(+), 1 deletion(-) create mode 100755 graphics/battle_anims/sprites/046.png create mode 100755 graphics/battle_anims/sprites/047.pal create mode 100755 graphics/battle_anims/sprites/048.png create mode 100755 graphics/battle_anims/sprites/049.pal create mode 100755 graphics/battle_anims/sprites/050.png create mode 100755 graphics/battle_anims/sprites/051.png create mode 100755 graphics/battle_anims/sprites/052.png create mode 100755 graphics/battle_anims/sprites/054.png create mode 100755 graphics/battle_anims/sprites/055.png create mode 100755 graphics/battle_anims/sprites/056.png create mode 100755 graphics/battle_anims/sprites/057.png create mode 100755 graphics/battle_anims/sprites/058.png create mode 100755 graphics/battle_anims/sprites/059.png create mode 100755 graphics/battle_anims/sprites/060.png create mode 100755 graphics/battle_anims/sprites/061.png create mode 100755 graphics/battle_anims/sprites/062.png create mode 100755 graphics/battle_anims/sprites/063.png create mode 100755 graphics/battle_anims/sprites/065.png create mode 100755 graphics/battle_anims/sprites/066.png create mode 100755 graphics/battle_anims/sprites/070.png create mode 100755 graphics/battle_anims/sprites/071.png create mode 100755 graphics/battle_anims/sprites/072.png create mode 100755 graphics/battle_anims/sprites/073.png create mode 100755 graphics/battle_anims/sprites/075.png create mode 100755 graphics/battle_anims/sprites/078.png create mode 100755 graphics/battle_anims/sprites/079.png create mode 100755 graphics/battle_anims/sprites/080.png create mode 100755 graphics/battle_anims/sprites/081.png create mode 100755 graphics/battle_anims/sprites/082.png create mode 100755 graphics/battle_anims/sprites/083.png create mode 100755 graphics/battle_anims/sprites/084.png create mode 100755 graphics/battle_anims/sprites/085.png create mode 100755 graphics/battle_anims/sprites/086.png create mode 100755 graphics/battle_anims/sprites/088.png create mode 100755 graphics/battle_anims/sprites/089.png create mode 100755 graphics/battle_anims/sprites/090.png create mode 100755 graphics/battle_anims/sprites/091.png create mode 100755 graphics/battle_anims/sprites/092.png create mode 100755 graphics/battle_anims/sprites/093.png create mode 100755 graphics/battle_anims/sprites/094.png create mode 100755 graphics/battle_anims/sprites/095.png create mode 100755 graphics/battle_anims/sprites/096.png create mode 100755 graphics/battle_anims/sprites/097.png create mode 100755 graphics/battle_anims/sprites/098.png create mode 100755 graphics/battle_anims/sprites/100.png create mode 100755 graphics/battle_anims/sprites/101.png create mode 100755 graphics/battle_anims/sprites/102.png create mode 100755 graphics/battle_anims/sprites/103.png create mode 100755 graphics/battle_anims/sprites/104.png create mode 100755 graphics/battle_anims/sprites/105.png create mode 100755 graphics/battle_anims/sprites/106.png create mode 100755 graphics/battle_anims/sprites/107.png create mode 100755 graphics/battle_anims/sprites/108.png create mode 100755 graphics/battle_anims/sprites/109.png create mode 100755 graphics/battle_anims/sprites/110.png create mode 100755 graphics/battle_anims/sprites/111.png create mode 100755 graphics/battle_anims/sprites/112.png create mode 100755 graphics/battle_anims/sprites/113.png create mode 100755 graphics/battle_anims/sprites/114.png create mode 100755 graphics/battle_interface/unused_window2.png create mode 100755 graphics/battle_interface/unused_window2bar.png create mode 100755 graphics/unknown/unknown_C0CA1C.bin create mode 100755 graphics/unknown/unknown_C0CA40.bin create mode 100755 graphics/unknown/unknown_C0CA64.bin create mode 100755 graphics/unknown/unknown_C0CAE0.bin create mode 100755 graphics/unknown/unknown_D0D2B4.bin create mode 100755 graphics/unused/basic_frame.bin create mode 100755 graphics/unused/basic_frame.png create mode 100755 graphics/unused/blank_frame.bin create mode 100755 graphics/unused/blue_frame.bin create mode 100755 graphics/unused/color_frames.png create mode 100755 graphics/unused/green_frame.bin create mode 100755 graphics/unused/line_sketch.png create mode 100755 graphics/unused/line_sketch_2.bin create mode 100755 graphics/unused/line_sketch_2.png create mode 100755 graphics/unused/metronome_hand_small.png create mode 100755 graphics/unused/red_frame.bin create mode 100644 graphics/unused/redyellowgreen_frame.bin create mode 100755 graphics/unused/water_splash.bin create mode 100755 graphics/unused/water_splash.png create mode 100755 graphics/unused/yellow_frame.bin diff --git a/data/graphics.s b/data/graphics.s index c1b8257511..b87b6cd5f7 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -518,8 +518,501 @@ gUnknown_08C08F0C:: gUnknown_08C093C8:: .incbin "graphics/battle_interface/unused_window.gbapal.lz" + .align 2 gUnknown_08C093F0:: @ 8C093F0 - .incbin "baserom.gba", 0xc093f0, 0x87ac + .incbin "graphics/interface/hp_numbers.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_046:: + .incbin "graphics/battle_anims/sprites/046.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_046:: + .incbin "graphics/battle_anims/sprites/046.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_047:: + .incbin "graphics/battle_anims/sprites/047.gbapal.lz" + + @ more unused windows + .incbin "graphics/battle_interface/unused_window2.4bpp.lz" + .incbin "graphics/battle_interface/unused_window2bar.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_048:: + .incbin "graphics/battle_anims/sprites/048.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_048:: + .incbin "graphics/battle_anims/sprites/048.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_049:: + .incbin "graphics/battle_anims/sprites/049.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_050:: + .incbin "graphics/battle_anims/sprites/050.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_050:: + .incbin "graphics/battle_anims/sprites/050.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_051:: + .incbin "graphics/battle_anims/sprites/051.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_052:: + .incbin "graphics/battle_anims/sprites/052.4bpp.lz" + + .align 2 + .incbin "graphics/unused/line_sketch.4bpp.lz" @ unused + + .align 2 + .incbin "graphics/unused/line_sketch.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_054:: + .incbin "graphics/battle_anims/sprites/054.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_054:: + .incbin "graphics/battle_anims/sprites/054.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_056:: + .incbin "graphics/battle_anims/sprites/056.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_056:: + .incbin "graphics/battle_anims/sprites/056.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_055:: + .incbin "graphics/battle_anims/sprites/055.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_057:: + .incbin "graphics/battle_anims/sprites/057.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_057:: + .incbin "graphics/battle_anims/sprites/057.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_058:: + .incbin "graphics/battle_anims/sprites/058.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_058:: + .incbin "graphics/battle_anims/sprites/058.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_059:: + .incbin "graphics/battle_anims/sprites/059.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_059:: + .incbin "graphics/battle_anims/sprites/059.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_060:: + .incbin "graphics/battle_anims/sprites/060.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_060:: + .incbin "graphics/battle_anims/sprites/060.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_061:: + .incbin "graphics/battle_anims/sprites/061.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_061:: + .incbin "graphics/battle_anims/sprites/061.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_062:: + .incbin "graphics/battle_anims/sprites/062.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_062:: + .incbin "graphics/battle_anims/sprites/062.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_063:: + .incbin "graphics/battle_anims/sprites/063.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_063:: + .incbin "graphics/battle_anims/sprites/063.gbapal.lz" + + .align 2 + .incbin "graphics/unused/metronome_hand_small.4bpp.lz" @ unused, was for metronome at one point + + .align 2 +gBattleAnimSpritePalette_091:: + .incbin "graphics/battle_anims/sprites/091.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_065:: + .incbin "graphics/battle_anims/sprites/065.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_065:: + .incbin "graphics/battle_anims/sprites/065.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_066:: + .incbin "graphics/battle_anims/sprites/066.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_066:: + .incbin "graphics/battle_anims/sprites/066.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_070:: + .incbin "graphics/battle_anims/sprites/070.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_070:: + .incbin "graphics/battle_anims/sprites/070.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_071:: + .incbin "graphics/battle_anims/sprites/071.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_072:: + .incbin "graphics/battle_anims/sprites/072.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_072:: + .incbin "graphics/battle_anims/sprites/072.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_073:: + .incbin "graphics/battle_anims/sprites/073.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_073:: + .incbin "graphics/battle_anims/sprites/073.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_075:: + .incbin "graphics/battle_anims/sprites/075.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_075:: + .incbin "graphics/battle_anims/sprites/075.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_078:: + .incbin "graphics/battle_anims/sprites/078.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_078:: + .incbin "graphics/battle_anims/sprites/078.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_079:: + .incbin "graphics/battle_anims/sprites/079.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_080:: + .incbin "graphics/battle_anims/sprites/080.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_080:: + .incbin "graphics/battle_anims/sprites/080.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_081:: + .incbin "graphics/battle_anims/sprites/081.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_081:: + .incbin "graphics/battle_anims/sprites/081.gbapal.lz" + + .align 2 + .incbin "graphics/unknown/unknown_C0CA1C.bin" + + .align 2 + .incbin "graphics/unknown/unknown_C0CA40.bin" + + .align 2 + .incbin "graphics/unknown/unknown_C0CA64.bin" + + .align 2 + .incbin "graphics/unused/line_sketch_2.8bpp.lz" + + .align 2 + .incbin "graphics/unknown/unknown_C0CAE0.bin" + + .align 2 + .incbin "graphics/unused/line_sketch_2.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_082:: + .incbin "graphics/battle_anims/sprites/082.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_082:: + .incbin "graphics/battle_anims/sprites/082.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_083:: + .incbin "graphics/battle_anims/sprites/083.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_084:: + .incbin "graphics/battle_anims/sprites/084.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_085:: + .incbin "graphics/battle_anims/sprites/085.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_086:: + .incbin "graphics/battle_anims/sprites/086.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_088:: + .incbin "graphics/battle_anims/sprites/088.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_089:: + .incbin "graphics/battle_anims/sprites/089.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_090:: + .incbin "graphics/battle_anims/sprites/090.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_092:: + .incbin "graphics/battle_anims/sprites/092.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_093:: + .incbin "graphics/battle_anims/sprites/093.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_094:: + .incbin "graphics/battle_anims/sprites/094.gbapal.lz" + + .align 2 + .incbin "graphics/unknown/unknown_D0D2B4.bin.lz" + + .align 2 +gBattleAnimSpritePalette_095:: + .incbin "graphics/battle_anims/sprites/095.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_096:: + .incbin "graphics/battle_anims/sprites/096.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_097:: + .incbin "graphics/battle_anims/sprites/097.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_100:: + .incbin "graphics/battle_anims/sprites/100.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_101:: + .incbin "graphics/battle_anims/sprites/101.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_103:: + .incbin "graphics/battle_anims/sprites/103.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_083:: + .incbin "graphics/battle_anims/sprites/083.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_084:: + .incbin "graphics/battle_anims/sprites/084.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_085:: + .incbin "graphics/battle_anims/sprites/085.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_086:: + .incbin "graphics/battle_anims/sprites/086.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_088:: + .incbin "graphics/battle_anims/sprites/088.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_089:: + .incbin "graphics/battle_anims/sprites/089.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_090:: + .incbin "graphics/battle_anims/sprites/090.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_091:: + .incbin "graphics/battle_anims/sprites/091.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_092:: + .incbin "graphics/battle_anims/sprites/092.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_093:: + .incbin "graphics/battle_anims/sprites/093.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_094:: + .incbin "graphics/battle_anims/sprites/094.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_095:: + .incbin "graphics/battle_anims/sprites/095.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_096:: + .incbin "graphics/battle_anims/sprites/096.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_097:: + .incbin "graphics/battle_anims/sprites/097.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_098:: + .incbin "graphics/battle_anims/sprites/098.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_100:: + .incbin "graphics/battle_anims/sprites/100.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_101:: + .incbin "graphics/battle_anims/sprites/101.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_102:: + .incbin "graphics/battle_anims/sprites/102.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_103:: + .incbin "graphics/battle_anims/sprites/103.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_104:: + .incbin "graphics/battle_anims/sprites/104.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_104:: + .incbin "graphics/battle_anims/sprites/104.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_105:: + .incbin "graphics/battle_anims/sprites/105.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_105:: + .incbin "graphics/battle_anims/sprites/105.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_106:: + .incbin "graphics/battle_anims/sprites/106.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_107:: + .incbin "graphics/battle_anims/sprites/107.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_107:: + .incbin "graphics/battle_anims/sprites/107.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_108:: + .incbin "graphics/battle_anims/sprites/108.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_109:: + .incbin "graphics/battle_anims/sprites/109.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_109:: + .incbin "graphics/battle_anims/sprites/109.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_110:: + .incbin "graphics/battle_anims/sprites/110.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_111:: + .incbin "graphics/battle_anims/sprites/111.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_111:: + .incbin "graphics/battle_anims/sprites/111.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_112:: + .incbin "graphics/battle_anims/sprites/112.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_112:: + .incbin "graphics/battle_anims/sprites/112.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_113:: + .incbin "graphics/battle_anims/sprites/113.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_113:: + .incbin "graphics/battle_anims/sprites/113.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_114:: + .incbin "graphics/battle_anims/sprites/114.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_114:: + .incbin "graphics/battle_anims/sprites/114.gbapal.lz" + + .align 2 + .incbin "graphics/unused/blue_frame.bin.lz" @ P1, P2, P3 and P4 tilemaps? + + .align 2 + .incbin "graphics/unused/redyellowgreen_frame.bin.lz" + + .align 2 + .incbin "graphics/unused/color_frames.4bpp.lz" + + .align 2 + .incbin "graphics/unused/color_frames.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_115:: + .incbin "graphics/battle_anims/sprites/115.4bpp.lz" + + .align 2 + .incbin "graphics/unused/water_splash.8bpp.lz" + + .align 2 + .incbin "graphics/unused/water_splash.bin.lz" + + .align 2 + .incbin "graphics/unused/water_splash.gbapal.lz" + + .align 2 + .incbin "graphics/unused/basic_frame.4bpp.lz" + + .align 2 + .incbin "graphics/unused/basic_frame.gbapal.lz" + + .align 2 + .incbin "graphics/unused/basic_frame.bin.lz" .align 2 gBattleInterface_BallStatusBarPal:: @ 8C11B9C diff --git a/graphics/battle_anims/sprites/046.png b/graphics/battle_anims/sprites/046.png new file mode 100755 index 0000000000000000000000000000000000000000..85a05248669a0b9d8884480661be09ca851ef923 GIT binary patch literal 716 zcmV;-0yF)IP)8nu6oom26#D>qfC9~n6tU4!9mr_p5MC);C&?pG#1gx8D&n{8y`*SS zf|EJ{k{X6DK#TnNV@fD;xCzJ~DR;N*w|UP=UE*XyDKq73)QHk`DvMAl z{k#H9S%Z6aEuZ}{uRgMtW1FcMryu@hZMJUx2` z1X<*Q3Ba&PFo%K8fmwi{(>m4Uf15TycyZEeF)2Byk>KDK59OlMedPK8uqsA8ig2L( z*TgXT8{PDuZvbEwE#=d;`7M8HzkB?mT^Qug1EvbsXO$cVxuoH&TYzl>^kZ1I*h_Gv zg35dhw*a>!3%ZMR`I@TlWcI7eO20ev}j`Nz#4g8Y>92ZhEGYRM=(U zY*dK)&;XReGn9aGQ0mu{Rh0=1c2Bq|cUaRu96Kg|eG74@6)Rr?;#n{g9SV29E>t1D zW#GynAi?My=nU{?1j>z|ia_oG7OvI=OazYvaPNo&EP6554R(uNdJSIUj&nVXXE^Wa zJcqR>cc#TC``VL60AWe&|py&~37hMBjBA_s_|{cT|fqN0(G+rFZUs%;qeD y9EPJ{w&`_?PQd{-tgT%n9ooczi(edP7k>fAkfcf|$<;3a0000)sb&0+|gVhCzt|CAX2Vi5l^2>$>8oB#j-0000000000WYwWo0006d zNklG)0__DHP5Y;tb`RR!|1N95VEha;G}YcmMc`q~voUm`t$pWyiXFFL^>KVsa?Qx-c(fNrpRUFp83ZUL6kMK!tPwJb!0as{W7o^p zOd7lV6B$8;=!nFLU0uWh*(ZUkIhB0D(875o92&GR(O;>-*j?}~Blmk4cs8|&ktmq3 z0HYHaRzQ+JX@rb7-1`=I29w4FjG%%9%SVQU(?uJZF;r5;MzCr^vbSEJnCSz915!+O z2Rze0colAs3z3V)!Hi}Rc-LFT18g|xm)5aQ9HF<$!+1) zx=?P_}+Oy6qE;qqyK{XpMcW$z!)n02HQR A)c^nh literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/049.pal b/graphics/battle_anims/sprites/049.pal new file mode 100755 index 0000000000..268ce4f4fb --- /dev/null +++ b/graphics/battle_anims/sprites/049.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +255 255 148 +255 230 74 +255 205 0 +230 156 0 +205 106 0 +189 57 0 +255 148 24 +255 98 16 +255 49 8 +255 0 0 +156 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/050.png b/graphics/battle_anims/sprites/050.png new file mode 100755 index 0000000000000000000000000000000000000000..9f2c101e45f0c255860cbc8acc28db3cefd496f3 GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*C|K8{Re_)TmE0o`hQg6 zf3?7WLyogcvgQC8Ng(!r28KC6#W1jE`rA4KDTfzu>P zTS^UO6NDdxOXQ}%(B%HW$JJ`RT)@Q(i$?X#$IEZJ_kLwEIBul&pSNNW$PJ#Z KelF{r5}E)e&sW_5 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/051.png b/graphics/battle_anims/sprites/051.png new file mode 100755 index 0000000000000000000000000000000000000000..14d7036bcea2561e88f82e4e266ed5abc441f5bb GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*C|K8{Re_)TmE0o`hQg6 zf3?7WLyogcvgQC8Ng(!r28KC6#W1jE`IJE}g(y_-%Jst;44XV~LCG`pm8t z^8Cx$f}~WwD~7HoW-K?-9jic2@O1Ta JS?83{1OR{9R-OO= literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/052.png b/graphics/battle_anims/sprites/052.png new file mode 100755 index 0000000000000000000000000000000000000000..9928271d5cf010ef528f7bf6d33d8d27010f6481 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*C|K8{Re_)TmE0o`hQg6 zf3?7WLyogcvgQC8Ng(!r28KC6#W1jE`~>u@Nw%f1G&r7)z4*}Q$iB}KLlV? literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/054.png b/graphics/battle_anims/sprites/054.png new file mode 100755 index 0000000000000000000000000000000000000000..afffd9e77c735d9a857b8e4952c59ba3818d224e GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU1=9cjgYeP+Krjc$#Sdn^ z-}3~hLd(;|F@$4gazGOk8xxNrhjXCd5hlYaEDM920t6L!rv`~QUDs<-Y-(m?nARoW UefP|PlOS_FUHx3vIVCg!0PRL5&Hw-a literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/055.png b/graphics/battle_anims/sprites/055.png new file mode 100755 index 0000000000000000000000000000000000000000..bd6590322e135ce60d53a505f44921da8dd9c471 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*C|K8{Re_)TmE0o`hQg6 zf3?7WLyogcvgQC8Ng(!r28KC6#W1jE`vf?9k_XfoB8{Lst0$@KRKMh?|0y@AQN%e=g6tR}cf6>u8IuHjsL^Ks=y>+Ko-UrQhN d|NAfhn($>8oB#j-0000000000+Gh>i0008% zNklE@)eA6LxC4AAT@#2^8tucG) zJ$@`Ri8Ak88g= zeA4O&CMVBu&WJVdQ1Nxyr-btfVWQw16W=20Bubnn7XqD^C~{e%kV=*cA88=#2B!@w zg#lAF0TGR1j{^u>?OX=%ywhv@wjR8H8MAAchHGPV6P?%YB{pl;AJ#WVzH552Z%+&P zE87>)pFTKKho9iQO<)gHGFA?S*dt!dz2%T4NatTC*})-NS5+lvJma5Fziy?-(j?0! z=YUWZS&}61yQv~c(l4;K2kVkg!7e<>(t9}ozetO83Z57xx!}{`yM%opB0N6)e@zRAFB?7uI)A`r_tH~mv|eS9W$`57%q=d6vP+7hy4qikhM=8?kFh9 z+9Sa8=9hp^fKPLd!94-N7?Ac4O8QV%%_R_Y6f6l~bmV|3{;JE>+wI%It7if_07P!PNe=_X%L@$H9z+m0jS~Xkm#*Oeuy>k`*?_qw zonC>nFsQ4ZMQ}LQYRN)09Bb7x+){1Vhqy1p(T&7(GeXyGm+!-dg3&`V0$BdrYg*zY z%^pNB!2QvHlRsbFGkDxVIlFUOYq;WPv;3iCY6x1SDbFRCE8`v4T4cek@G9ZB$?P`v|C#Poh?joPg;jNDlJ$`*B5Yf|C;oC6z1p>m?LOwi z6WKQ!s51hu|EXQlO#5ekO8`89-N=O_^ILBl>W1{54grkZD(_1G!a+(qA!?R|^G$RcIg9W$x yUh>$yJD6g?;=s#dHFYb)nS|7Yb}MBb6$Xa(1U|tJ=Plzvwt2exxvX$>8oB#j-0000000000bqX4-0008L zNkl`Xgl()U_o|M?{-AfSq_i&tzylV}O-0Io*Ya{>YSRSlltJ}i|l(XXs z_6r~fB=pzdVcG{7R&cQ2A6*id@(NBrIK&6qr$5Wj_~JM;gkOZMV5?^jy&q>hqI?C1 zmhFwa;z}0YFJWLg)FmL52-FH}55T8Nrb^A9;le3^svDw2yo4PG3Wx~1k}GJjTLAu> zvB{(a8UfW2&>`s$QQAp@ls6(AlzDWUT;t02)? z{G6wc)$^y>B44ES34}V?9KFx;y5PkGCSc}W%cG5ad#`7Yinn-Q!J#$uFri#lFtEu8 zgAfhCBXTwjqUs9U1s}#P1QlT5f(>0bD{tL_%U=KJmehb)cYw*X_}sLFcYA$IB49xU zEldcNjO*mFycHPmxR?)J0^%W)Oz5QU%dXQF!F0h`rM=aOiU`G8w&nsw+hTersWesTO6vh}-qr|6|1qfZ2wAr-SIbyXvmLUQN zxNNk4H;f~x8}08XA!1`368&V(OOoa0yma2C;qTGf7!Y*&iJNfZRlh#viDGMQLcMQR zS75j}Z^D?+G3W;PRNP{buA$BCBP?fY=v+Ja!RYoB z0)IMQbhM5)a?2G4oH#CS<==)X-WvC60=}Dh%RVyJ w2ikG5G$sgL^5!3hBEn1?Icm?$6R$M>0JDYs{9G^L0RR9107*qoM6N<$f{GG*k^lez literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/059.png b/graphics/battle_anims/sprites/059.png new file mode 100755 index 0000000000000000000000000000000000000000..4d93be12443b3b29d3edfee6a788dbd5303163b3 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!VDx|E`RzTNErn9gt!9f|Ns9V{r0Z=-My$a z_cXKaF&N$h3gQA{vjsi_<$OF{9780gCMPHeZfJ4JxW-^MBY~RV|{=NGvdD5U__uN`$)1=L P3bNDF)z4*}Q$iB}&muI# literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/060.png b/graphics/battle_anims/sprites/060.png new file mode 100755 index 0000000000000000000000000000000000000000..c4c0fb53e19687c7d4acbbb6f85e805f911ff5f2 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^96&6ZRaQU(D&A+A9BKM=gD{(q0*{~U(@ zNepwmfMPhoTecHjKuJ|k7sn8enaK%2kklZ^Wx#YMm`zYkVIK2@1UA8Ad;y9ajhqbr W&l&$ccDlR^(bW z&X(fpIYCj)hL%|z91=h!m>_{EaXC=5&(p;*L}F@k!U5(>PO=Zq2rvp9ofa1-wt_*> zOJA_bYZJHD0z)BLMIJZt4k>YQM|B0&H)}LruuMr55eX>_V)EQz!KvlA#X$36G1m=V z&2)Mo>|!CQ_rOYSm8>`U^`Q zj}#>oC|dLYi@vAFk9&7V5%TXwDJ5(_`Gfhb7!Q7C2sB~r7X7Xp48;Hf-)9s?Cb%bb zFs=l@b%e~lNH~Xm`o6=pcn(0@HVEvF_Ft;C-@T}=7N~3VH>I?Itgi@cOG)N{lQ@Oeb+dQCgTmPAHQn5aFcF zf-0c(I1HX(lmyu*C6kS#VGLw$bmooA*T1z*9&~ZL^Y>#JAx}&ki>eI%nsF|^lws0% zVvOCbD_MsXm4Orr{Kwx$%ynxC3$WmLSTwRg33`84u}G+LFPz_I61#I=lN^kii>kFdr&l>uco}(ME3sZyxdUW%Mc@Fy zwk$mG6?T~}_N3T301L=e-_bsI0dU;aRC11cKA$~M!RmMSzCX8>-9KT%r(D8^#Wek+ zCqM+#N7j9^%oMCS{2-Yk+^00|V+uL}a1<%KTO`Um?3 XOwY9Uk=%Fal(brVoIzrPDN1S(|CAX2Vi5l^2>$>8oB#j-0000000000P|0gT0003g zNklv42GjH!fQ-n>jR9AbESryIV|CdCY)V&X?gt>{F`ZLljvGs{K+Eq zhpD5~C5)0t0?$2Q7dY!W{t2%gfB=d<0aD1-Z6P{pK-L~mHZ8*w@k4qqPzQ#RU>XB^ znQ^?)=NB`8w&-5^Si+mYMah;LDt7$^sEj!erYmfqCu-)_lzd0xr}0b1xRM^c@ha zVUb#q$+UKL#2qEsN84^jZsI#4*?DozfyK{TJ+5?4{}Q+~&Rc>_$+*u$_*rUN@t++1 zZI1)84T2WxF0FF)ymwgl%|Tsb_1$dq9(6TM_&&GvXlvh!_rWZR1#en5Ye#9kIIZ?v zd!KIX^dzM(;^7O=x$b-~XS8pdue{o!e~+~8De4QF%cs2jOjOkc30aO&@;la+Jt6+OCYCB>|!7n`<3px|Z4s<-FLuXj%W7QUKW>1<7~^vwRI cKlgL$^Ar0`6-tEvvw#A?)78&qol`;+0H3syOaK4? literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/066.png b/graphics/battle_anims/sprites/066.png new file mode 100755 index 0000000000000000000000000000000000000000..d70924235b11f8ba14cf00a257c6984057170a8e GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!VDx|E`RzTNErn9gt$&Q`+v>;Het|Nl9F=R@Hyf5usCDSt)=WQV7#pUXO@geCxnIYJ2l literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/071.png b/graphics/battle_anims/sprites/071.png new file mode 100755 index 0000000000000000000000000000000000000000..88d20bb5ebb49bdb3e7e177384eaf3b0bf9ee8fa GIT binary patch literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^3P8Mog&9cBe^M+DqznRlLR_aD{r3O=|Fi%9&-wp9 z>;Het|Nl9F= z1RjoSwl}<U)J>)Lv@Jg>FQt;sUXJ2zi$U9yE)Fi*pH^@UH58DCo2Z+=_9x)Bt3p00i_>zopr E0MQ(+aR2}S literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/072.png b/graphics/battle_anims/sprites/072.png new file mode 100755 index 0000000000000000000000000000000000000000..14976ded19c5af871e9b4e530ff3312e7cfebe52 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=!VDyz{eM3hNErn9gt#Vs`}Y6;|9fZ8-rKVG zf7X`&mUDnIcz{TRt|Cx+fv1aOh{nXVlf3y38*sQxWO6?xrpiZH{8;bEmdKI;Vst0Np}n AjQ{`u literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/073.png b/graphics/battle_anims/sprites/073.png new file mode 100755 index 0000000000000000000000000000000000000000..95484d2a05dad1fbe508e9d38e8e116c4e7ab621 GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioT!Hj|Ab7Xr|FfX~_Za?f zVfa6V;eQsxe=mkPUJPD9X;fe>w&@#CJ`2#zi~X|Wtm7}1q(ade|H(1hB6Ihs%0E2+v^(g&KBF)r!zT{^jGgD)G8i_6 z73Z)@CbZhLW~{q%sUsp`X^2<~7sS-`q zPcp(kKHps&d;t7HNkq0kT2jxlv%@1*=`Gkn;#;a+Qg{*5qA1+3>Au=mt_9Mf%qqXQ z0prb*QVv{=vp+v!92on zfJZP^RPk%H5&F_Ogo-XC@&dG9h(LXwHQ79aSaoI{y`Z7D%vi2HKE&Bc3L6Mb1MMgB z41C2$SJ6>9=h6x287m0urd>!@=@9}I5~^+^UPlKgG*N}bLImn|S4ijrCXIBM*BIT@ z1o8*o-wiSr$nR>vfetlShs8XQJ}uTbLarcCK7?eIqPR39gFIm>Iyeq_QuqpVOAsVd zzYPG5afoRy1Re-$L895QHHQp0Na#Oa)XpK3m_+G=$=m|S`d{|~MV*5fvNTF^&?ToI zi{-%U2HrDm*;<0Vguxp&*e63MI~c f@}@o8zboqtl3aYC9jWa100000NkvXXu0mjfpYG}y literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/078.png b/graphics/battle_anims/sprites/078.png new file mode 100755 index 0000000000000000000000000000000000000000..b48af4900a6abb3ba374baad59dd169e5f151f43 GIT binary patch literal 403 zcmV;E0c`$>P)h%J|HUBxlo>|lbpcq30mm}(xFOHr0mo{ z&@w>yB=K(o+?CVGwUNW4!25kzd(8p=Am~8;9|-M8K!He&h=|OtdTa(eZw9z|5D4NU zXSqU@pq`4*`~v+-ZPM-cJJm0J|0KkkX#riYvil#b5WJi#>@>;9&DXA5?&$_DT%0091EJ+obyK xbvbx#ygT0qazxNMYhdz)v|%xH2DWz^?FVP4hhFxES~may002ovPDHLkV1l=Oyb=Ha literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/079.png b/graphics/battle_anims/sprites/079.png new file mode 100755 index 0000000000000000000000000000000000000000..193ba3942c1489b70ad28565f5cf4f4669929bca GIT binary patch literal 880 zcmV-$1CRWPP)h%J|HUBxlov2NTj3}tQE2#_hw4>)$vC5wA5vUt(p%k1IY*+?$;9U1R)f_T)=RTN1{ zmfHp$(w4wk=F=lhQYOy;|57f_=a)oZBWEWGA*P(q2_*$C1bF#K;QctZp>LAgroSoB z|0Qj*Le2}VmHiDfL4y`f!RsLfv=}MUkN!D)H;P{F#bSCM;h@#PTe?KnIC-X?(Y;rl z?}DF*;bks>0usq8C>~kFNN{fmd%Z)B5Z!$oMc) zh#*xVxDEG%&&5)-T;xa|$Wm!%-6(pF0!=I^ADpSuV^V_&{<>Tm^P1=@#OX0&SQ0{@ z7?V&^;4%QOKL?CSY(4~dKaTfv*`~iK(6)q|B5#l31EdbOd4(5#t&8KJGko7me%oz3 zmrq2b9#&#EeCHdo3>z|6@J&Cs&1k;p1W@EwM$r-WMeG!c)94(>-LM%J)N;j92jJ!w z;Cn>KuCCfuka-Hg*XxkRL7YmdM$J3Vklnff8JJ+^T$BVxVW{9+@zn>;IhK=+>I^AiN|E=f%0000e(L0RL(L|2Y87AOM^Y0CNBU0000000000000000av^w0006Y zNkl|sw?~h_Rr67wUsqTheNCcXIOh&PU zIa!dzQt4UW;{r)R<`+mXJ@^#+1q6(+m!Qv^e$&r>fj%F8b_5cjI3*9d0t7PxMk}@j z*7)9#E%xLAJ_ek$!T&NvvkpVz=f9-Uj~AO{d^oO`;4V`3sCZvB<|ZoD$KJ!2=L+lu+_m6hiH zK!Yf%erFKsnAAr~Nq{$qKB2&mkdIrWk&lqO18`^|7!2|f`iX%kSgOxcmLM5JcnLYg(Wvgm?|DAsHJ{S59lb0 zRY5?QAkZHekdodHVJB|Gfg<8|8KW-;;MK;Vh5`lU@{$0hD{H^>awn?1b*Sz$2vv#l zTl@WaB*%V7Aou%^6odLU{H*Ec5x?u+t9JK#hRR`~v>Wek)!-Q$;Zxr+cz3ctg z&n%Pe)h4l=B?!_{+=tLlnw^z>6 v{}i+0VrS{g)Z42aOM}|+J{a3Sm=?bPQ$xC-Q?c)B=-aLi0jaA4Th!p70;>?Cw( zg~0R&1q_$o2nju!tlp5)A}xKe=g_fZhn_JhG;iFnapw(Y71cN$#W$RnQWG`!5)HVy zxSE$pM6j^>9!T5F%@y9TRAN@FjJD!5lP>>;DDEYUUp5LEGNj&+0$J|q>gTe~DWM4f Dsnt&> literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/082.png b/graphics/battle_anims/sprites/082.png new file mode 100755 index 0000000000000000000000000000000000000000..a1b2d7318f289ab9da5c2ac2f42930286f07bdf7 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^96&6ZRaQU(D&A+A80f#E;HxBp-UVPe7I z?Q4Om$>8oB#kZ_5c6?00000b*DR10008n zNklUMp>EdpntgU$HyYi@KD&K>Ub2<{xB%OR!eiHxy|4VlX&WGn&ty-?@d0Ty)1<>rgOJ8qKLx$Z2HN>h`1^y- zd9T+Pc-Nv#_G7?U$7SsVcx>!WgRvWY7lq%kU^XAKyNLi6V_`mEesY`KjTPV?KDoHA zoNonFfV(MJF~Hg%d;n`ED#zV9uJSW+UG6LZ3So3O0U&{BmoM<04$JZjl^#&Yxt^mv%Fm#y&Tp8rtz;h=EC*Dm8*pxAMCcwn<*eqaf7$m^YBbcL# ztQ0WjTWkUeU?IwhKVZcon=IgA8fgrI7(fJ~Cjz)w-pk+?BKa**W6KEK$H2n(Qv`f; z7APElo#+He-&|~|3I!0R2ykc1P+C>|8X=XY1ZdfDN_7d;4sE+wks~5dl_K~Lr9@Ys zNWf<~g2xCz1*j`2Fs81g;7OWt3Ldith=?@F?*LU&h$Nc<$N)5O`toNpE3l??!B-o<#&HXTYnyopGI;jgnv{~x2eT!wP8mLt? zP%dc^Wkn4L4vQ+_3VJ2r*H=HHiS7+Rm*rmq?@{^|9W%#JtEd1dg`LgNhmq6(pN_N? z#|PC7;2jjCgA509R^H?z9qc-&_X28RM(H{*uTM7uqsb;PB()J3!`=qyf0)hSL-pT+ YU%qc0^y)q+cK`qY07*qoM6N<$g1NPStN;K2 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/084.png b/graphics/battle_anims/sprites/084.png new file mode 100755 index 0000000000000000000000000000000000000000..3066680353586a8ec28faa1ee7ddc77308146981 GIT binary patch literal 587 zcmV-R0<`^!P)ntgFOk$qM_}9b+3Cl2k}lRaN5e z{4^ds|4)L@eJN0I#7clv@6Vipnu#b*DIt_L_7;}!Bmt4v&XlNYk?cT8ep0p|+l@+1 z3BDGw0a1R^U@90(01P2$!yER_UjZIIthob_Jp18}dKP*1Y#Sl}~o17W;A2bop5iD&VjmsaYc z1|$=hlKTOeH${X0Z0jCoo^BteXEE#GW`SvSNtC*2M}y+X8-xZZNfIb%ADMg;!>avQ zhP^_|mBLbpE+mrIWzz)(qAv2%ze|sorPFB0xaj;dEg=7B+LsYzag@%1&;9|>JLZAO zF7luGS0D?19mYYu>E5z|k~kvNt;c9#mWCE$UK3J=uA87d&}4RA^Z$V_Z}STI@zl)< z_+j7lGmxd<1IRK=as$5s@Fh!U(cQ^qksQ(>Jl}+k@aOaF1{x0gb^{xD1klUkynzj9 ZeF3LVWoKaAtvdh!002ovPDHLkV1hlv1AhPj literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/085.png b/graphics/battle_anims/sprites/085.png new file mode 100755 index 0000000000000000000000000000000000000000..ab9fdce5e6f02347caba487c1d5186ab5574daae GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0ze$V!VDxIwZ5!!-)1h;)Sv_FDB qP5XU!$MWE+m(C1-&pwV%jC;;xY9pg*Y1Q!<tf literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/086.png b/graphics/battle_anims/sprites/086.png new file mode 100755 index 0000000000000000000000000000000000000000..ba93d952ed0fa55452dd7b89461e7003c4b3c749 GIT binary patch literal 393 zcmV;40e1e0P)oGIpN7~VMulo$v~00{q-z20Jjy)jCh02lxO00000L?&P%0003L zNkl(alye5XFZB9fX;)!4}I|Lfwr~E n|G|{spzmQ{$bl1r;k*0-3lS@*l!u=F00000NkvXXu0mjf>(;T+ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/088.png b/graphics/battle_anims/sprites/088.png new file mode 100755 index 0000000000000000000000000000000000000000..09fed7d85492a0f959c254a4b666c09ff19d6b09 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^96)Tq!VDzuai~>*H~~H(u0Z<#|NmF7-dnR~Z*%jK zsHkR3%PgQEF5q2IBMp@E^>lFz;h346;J~29s<2RlMXALxhMA3rA^ebv#tH@{o(~#q z%#IWI99tG1v$&%8l0i#ML?k3FLB!}#s+RJF5I4uf8ZUz@MjTw)lFSSlPOK)HVXayq OOFdovT-G@yGywn}?JZ9L literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/089.png b/graphics/battle_anims/sprites/089.png new file mode 100755 index 0000000000000000000000000000000000000000..19155f2c479e6934f753a6bef9d1dbb308ca4280 GIT binary patch literal 488 zcmVP)$>8oB#j-0000000000{^1990004V zNklUdr};1?gC`7XlZP*Ux(6S>(;B7z+ zYv^el6Zw}sus;1(;L1~~yMX7G+H2GZ9Ul_@;y52 z{WR&(7dSNDyPO(*IpfK%e8A|7U21ugd?`lFz7(UfFS}w?mgc^k8%KfsOBd+JQtWy5 e@$BQfK0W|xbZ;_7f2tt>0000Jl^5S4&)Sgx;TbNOifN`Xl9T&%yLYitifnT zf>X~agHWes0c{FC9f2o!)@d=HN_yR7WRa%VuxUrw!Jc;G0){XiHsdp8ZZl3xB%DhS zXxuHej^kW|wovwgf*W2l?&vU`bL3KF=V4oB{9)&Dp)|`m7deA{6#^K3rtxVVTgBZB Oa)_s^pUXO@geCyY8&Ws` literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/091.png b/graphics/battle_anims/sprites/091.png new file mode 100755 index 0000000000000000000000000000000000000000..7648de5aa1f8deb1f05adf187ef2ebb9ee2c34d9 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioTp5mj`ws-qp8dai_5a?Z z|JQ8!KV`}P<|$XRs<#9sbz6F6DHsCP!ojauFRlVPpFCY0LnNl=UfAe&*g&A+;q6Cj za@Obt&EDGAaE8;hvcW5L9m}gW9;Qt@`5eEdiG=6go3^`HLhI<|<)1ZwrZ#jc&*^?) zHuw3#s{6KvX5n|4d;7L=DA%q3EUPpzY*mL2)0dpt=7Nbw<-Ml-PC4+fbjGi*PYVmh z`BG&+Za$l-!X?n<_V7es<7njIhHdoLw|QfyjpMM-Z1TRz+Q!WPtU%a zd1%rqBXzw$5i?78W>@w9mosIX`^!+HR6>R4uAtG81yUQfHg0ivVeG_uScG|&JU@u|16MIC3~0Q`<7Sdiu)I|N*qkAufFGaN)3J#1)36GeV`4Sq7CX{h7NFKTrw@!+SnNh*{O!ot;m;>7kRxfRIh>WbPWMpP$ XSlJ|Lv!Qz43XrXyu6{1-oD!M<{zW;5 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/093.png b/graphics/battle_anims/sprites/093.png new file mode 100755 index 0000000000000000000000000000000000000000..29f9e6a503b0db155262232f41c0e2dd619bc5f1 GIT binary patch literal 1351 zcmV-N1-SZ&P) z|NsC0-v9r-|Nor-=5zneO8>MV|C|8Ta{#PL2x0&jIRF5~|L&y4-h+$PzaiXY000Ei zNkl=1$x; z5lmURdxAtT^G}jT`hk0GssOD0hQ&VZIXnz&D)#1)4UCz=KnnoqPvIm^mA66Cm; zg@EYi0zvK6R-@j9B=op9fVxTk&`ph!mwCHSVKstn1PaZR^$QQwG)i34PLfMk7+Q(+ z8{iIW2Us^D*~?UQVPz>SppcHEbQNd;r!;g}^h|5XwW)bBpm-LVR`Fj%VjW zT=B2J3&3ah;kWsZ5?0>?;G9&>Z43Fsk4IK;y1Tj&kKIZ111s>v{3$@W%8aHLWCmmh z!p~rb*AIWTH8_ym18hF0ZsMF5j!12eTCBAp5AA}gp~zqoeYsr`*(boi^>?ta;_Bb8 zaCI4S()2AT656wHjsK|8L_eKA!{vcM9p9*&GjJs^0}MGi6%l^5Uh^vuCuX;rAxCAL zKMK<<51-s0lR=LBq-;zYxPwr6ecGi>jTW){yAs6Nt<1iZha|=LZ4?{upT5^@pc# z{m}!+A3ebNqZjjM>{a9Vq(8pp{LzWKL#8)?vp4t0`*k9$RSeAc#wO7ZDaNS(^G53 zmUW)}XOemS=Oo8ALDQxAja&k)c7n4U7uhcA5Oq1kWg<{|_e;|jj}vjNVG{zrOuN7B zkDf=v3IkW}hdXr71~NU{<08qq{8aR>5YgyW*+-5WeU3C<%;_|nlmF9vg}2Lg9yzaO z=2H5;RQ^(7eBPn#Ej5DbV%3Fv9~3(*i?b-*T%)`ljwpWW-TdS`$i1GfelF{r5}E)_^I?qu literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/096.png b/graphics/battle_anims/sprites/096.png new file mode 100755 index 0000000000000000000000000000000000000000..99873ba10c15c9f4b191aa5ada8071500b2321aa GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^0zh2A!VDyzYQE(FQU(D&A+AYN-u(xHvseGm+44WD z`@dz@J59%X5(;NQDzE^#KL;d%!tXs@978lFuAO|4>yQCY8~5x-#YZ&dj-GuO=%!W8 z5M8Fzl-wU^b3*R+P5ZgmEzhdjd(Qr!eQe4sF&#_W6kQggy|CPHYSc zHJJbKT#Ps4dx=f&Yz=0q-+8_7aH4MY^>5ObJtsc7;bAnPA|?00!DZo0Pns`ithi$G l|JV#sP1e4n9BK7GcE{e?mvv4FO#nqsl(zr? literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/097.png b/graphics/battle_anims/sprites/097.png new file mode 100755 index 0000000000000000000000000000000000000000..5366d02cf5db351c7fb4b07dea0ee9a0b635aa19 GIT binary patch literal 405 zcmV;G0c!qk^!5QQBhRb6eW?zuCaE1ZzkRY_PG3an9u%9@|hp+CG)?p=mtDN_Zv z_>*%l_w;l&=K7*nIjv`b+?BYX)c_e$31EEUn54O=TY>t3|DADWJAg%pc~W>WQ`o4e zQPF-13sv(BRvloiuv7T?20WT;$`T-7%6#j567XD$Rf=LZ;}MFZ^t{(6k%uEZKA+)e z9?K2pLj{J9sW?Ig#50H|RY^Q1lo#k5O~Z|`B!zYgx08>~E|LJ{@Sb~002a?VaV6F% z%8l(8OUBdo13rSTk3ryfk>g6USg!~WmzzcF^d zt*u@zp`hY5MgITWw3!zh&L_VLKD0E^v!Sa}qgL%h=Vq@>fwMidIaB*5Y<*D05cs}Q z^JAImDWPNWJtfmEE=+u;Q|K^NJ+h@cZYKZIZO?vAl*rsz_mbD+XwqUf@5OOiZdYFL zE)>74AXig-Yiq;`Jq9jyraKV}R`8#ViamX)YDd~P#XU=v44!1)3a(iBFVdQ I&MBb@0Cq5k3jhEB literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/100.png b/graphics/battle_anims/sprites/100.png new file mode 100755 index 0000000000000000000000000000000000000000..0576559189d55f8e5f83ddc095ecaa8ecb1d374d GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!VDxI2ESSgqznRlLR=Z9O!*H2-T(hfd^;=g zZi&RRYKeP65o-U3d8WZPEILmd&K%m7r`{Nt!CBGOpc@~S_sSx|~ za_a(>aK()H_>=FtTD6YGJWHPThHvqe8`061UUh8edCK(di9(rkdRw5(=|1t}n-(Y8 zSEawY?0sobTQ5VdUceffVRFVdQ&MBb@07T?=6951J literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/101.png b/graphics/battle_anims/sprites/101.png new file mode 100755 index 0000000000000000000000000000000000000000..f2fa227f28f9f9708351341f63024f9ad8373645 GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*QBH0{{R1f_W!dv|IcRq z-(vZHj^@>Bg*8zE&6XTd5)76MXR{c9BpfU>)jt5_y!Lc)4AGc)b%L$mVF!U$_T`DE z&kFJg>ON4ha}ayVk{o>Lhi+<@%IkBPOq$^?PK!Q?3QnA`&1iF2%a7d*>#OfqE1%`L zc;D*cui4k5md8)*OUSu&e&3SAn`b^ez1V)g-{qVd)5JSp6Eb|JNg8YK++Ztlw)aIF ztHQ6AO3Qeo;+;%p8xPd%e!8M4_V~<;T|XDHzpm!+kW=MK(34@&$zaf%r56&)y63Pf zgNfpszyoq?8Z_tR#>amXGG~9DHS3o7?aHq$>6*{-+%v51R|bi9=GMktPr2=|D*l4j rDRb*6je47?Z88^Lp1=N=>3^jBqk6w56@d(|L1EzO>gTe~DWM4f|0I!! literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/102.png b/graphics/battle_anims/sprites/102.png new file mode 100755 index 0000000000000000000000000000000000000000..aa884224486c568f1403f1f8f1b40bf25665f7a0 GIT binary patch literal 397 zcmV;80doF{P)%F!`_rv@I|SaR@lc zFg0<>l9Z-H35H=oW||DfJ-x99dD1nSuO2p dO1XkHBg2;r-kl`r}toPT?#$}Op%DA43lm*lLec%xbV!r^;eUmk7!vfOI-I$!T7jxRx020g!J z#ARX|?4_MO z9`0oRQtgKk=7&#DQ_O#pwsYU@@YJtWdrAv7JD$;0Uy>DVz;R~cBA1j1fm9wr{ooTU z3*1Tslp9wIIQCgJtQK(g{HNrt<8 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/105.png b/graphics/battle_anims/sprites/105.png new file mode 100755 index 0000000000000000000000000000000000000000..5df0e7215492ebf9f567c11d9769f85541389544 GIT binary patch literal 1101 zcmV-T1hV^yP)$>8oB#j-0000000000b?NdC000Bn zNkl6e5V*Ok>43ndM}AkcNpgdQ&+97HQ0GsO! zs4s2T1fci^0xm|$cTcNqs-_p)D5)u2qE-ON$s?1z9HZL$C`N%+Cg}rLSEvVN@4Si+ zFaWwRAYD+!$m(rw>SGeii$;%jAFDTwB0Z{p8f9}4ujZ?BdBB^clpNp^92ek@Q(erA z{p)W;A?qtXIAthUVMZKR$_ha+;rK?~1w~o~lN|5EDEkpdEb!#!2G`8Z9H;hi;vLq# z>wM$bVN}eyL0lG#pXU|#!u{|mkg|)@0P}_dCo^X{1iCm>I8ZX-$sqvLA*ax6+0FCR z_J)AZuwU2iwoL(8HnBf$?CygUF4}gn_v^u}=#lK!>brkHN+&h%2IZ^c?y}x{9rB{f zL-y-*R0sz!HND;@*&R;haes|}?!bP+58Ko(lRBty?H-7mEmhQjS@UG#p5M#>@S!B& zNUW|UurA=saof4Pme4gQ_VIp{3vbg8chf!hq8;{8fwj>jYNsw^%LGQiMhWB$^Zt@V z>(zA|@HFB7r&w1uz3*f4Ors#Pe^G=NQb{+IHh`udqW!+Ed+NWLWnG`~%x7FnM9e%m z#1acrmi)P!@Meo)vAbp4Oz-+OJ8xc6<6hoY6R`OWFMZT)I5u`B;5%7p%5wbGlvj|& z{LC%by!s%<`WVae*ikU3$UC_|qU3@TC6^uBWT;{gO>+xYn#JXWO#v6j0|ECIC7rpK z(F6m}!%$|@`K8$q5*<~LSd>jaBjW>sE?~CQ4pmuFHw^U50A|;?-=BLvA9~H^L#!NE zM69;H+zarUu%Wwwg$^HJ5AU~rhZ!Y4E!pm&!?MMt{pb-52o+yWOxPj85O($Zsa zAzICJdq!>S1>Vhup4wk+FRY&-GEZ82Vp>{!rSbP50f literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/107.png b/graphics/battle_anims/sprites/107.png new file mode 100755 index 0000000000000000000000000000000000000000..202152ab4e12474118f059027aac1becc314eb4b GIT binary patch literal 576 zcmV-G0>AxAs=6vv-rFy}2w$9@SVLn{4JLIzLj5OC-_bPzfuR~;OST~Zv{61NUo z%!lfW2|`{frQ%R*{v;glciiLP{(0{La76Z$0n2Bg(`Dd6Gaz`5N*ANh6yv~Ah2ytP zA5BzTGG;mK=+~g^!W#xg+=bzc0m+kAI=^h6fstb1o*z`HHb65En;^4J=%+Jq zMWf7aTM^h4y7boC^5r_BRcR=ESFY~j)$RIY7`bWDoW8~JIDVb&HoIgkD2bhn*BHOf z*DBd2lp4fj{;A?XCu;t=-CH1h(<&i=;W#Uq?-~OgV5l+gvC@PTB5FO$J@Rf0lC(K^ zM5f>{U+FYiJq9{111%1`QUgW?O5LBg+tg(U<1(GXEMViAj512$tG*M zGC-{mgU}4}^OuVJqO~3z{2)=IF_k|qLspxC(!H?Y5Uj+OqIQmY6y^h*I5FTrr#Zbg@W099Qi^9fF1#*E8rPz}T*5nGL6mfhh98qAL6jw$H z1*dBe;h{2%jd#6=lmkUcMzY!YJpVJh3&3BaK;wy>*Q?N5NQnT_nQKRiSh+^vwgJo_ zhh69;(ozYX-7LyMA^v%nseJMPNhM(1)I8JzMBpEg={zZnuIAR<+g_2l?{Wlj{ zGuLQuuJ8sr9I8>qb0CfyRe>Xys1hQA)|_iZ>feiph+V3137IdDT;q)whlMWD&?Mra z$AnQ#l1B5`vM1{Kfn^-VmZugP%5)jE=EDopXaurO#Co@$Rgs9-I9R!(Y$l_zCOm{- zBn=F(!PJ&Ol49S;MDkxmMDC5$=rCbOF>$2X75kkvVf|jVZJoZ+KD&6XsTP5Vx_O!u zvGuU^cKsW=!}8McG;aXcX0Won*gHb_BC}}`TfW;m9e5a8?c;(kEw9?Xb-fP7KI8B8t<8eGq*$(}_(C?F) z*m?MBqE}dTbcHL2fwprbKKE?^+(zG#v&3xno_!9V0JZ{PK-kX%cUXPwi_m+U!;Y(F z9^uKCfb||htuYnJB@cuTE-eHGKPu%7A_~4!MW2cN0ero88K#!L)C53xAr} e8CTs`y7~n)s=7`)G9(B90000`hN}z=TNoI+85pt{7#tZG6o48)V6#soJCM@xba4#fn3lG;C~Ky11B;+5Pw$R-QSV!egWzCboFyt=akR{07P^! A2><{9 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/110.png b/graphics/battle_anims/sprites/110.png new file mode 100755 index 0000000000000000000000000000000000000000..787cb58c354f0386d7171d1bf3f692c71975b5e5 GIT binary patch literal 688 zcmV;h0#E&kP)sLkY^8h8CnYZy`Bp=^%N@?7UpqCFcEv zrfupWC~|-e=)>`k^xct+eZ)JCst3?@2LLssv`pbF13cFVxPH^_KH{#?we-2_dY%6Y zFxa|MMcU{5>xH5^73kdCwgB8jpM^gINU!bt|Bv!}a@A45tZF&Uw+0(Z=u%`3ra8h=_B{xG(g?m^09YIfYMj&|!qT&}pN{L~eA}l)#>aFK79^+udo( zce3p%|CR1sZrtj&k**bfX5Gu{)W@D>P?RCJ+6TH2_YZU(>7gy<3?5>F1OyGrUssqS z!H6s$z=oi~a@c|Wm^Vdf*5{9<%KDH_^MQ@ijYP{WCv6z5oyj-lb_ACe^;>M@@dUtO zhL{(6CucC+j&fnLxn(Ryxr2xe=rQ0000!hNkfjGCWH@#+E=XZ53R`hd3}l|CtDnm{r-UW|N@Opq literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/112.png b/graphics/battle_anims/sprites/112.png new file mode 100755 index 0000000000000000000000000000000000000000..4503849e91303320c7ff5b28d4a3236e45f25da0 GIT binary patch literal 762 zcmV)VEyx4tppR0(loL zw8R7)`~vASR6jG)?yTK3g+d1`&3@91W=6AXfPW_A0eR#=a4^$s!`2LX8-ZIFxBL)h zc0vR+FGMp4W&qCH{)sV19fk66|T+9#z+t!Um{VBL{+3a=3ybn59Lt@fMWC&2yKT^1QUyGU|ez4;@e+V_4 z>zJ66TMOPyBk+qgFd2YXifD^X4>Y4`e$(HgJE0ln&OKmqBNJlfc44}00BB^ftJwv% zOaM!-Hx}m>q~I>5G1xuBr905PSKs|<*~WE~HCTJ1oR8x1E37EQ3-dGASt$ZChHGy% zPpQkWHAB~#{_r5ID|p+lm;B(SJOXd5F6|K}(ggXkLJ;~xI_KI{Y;DrWR(SlOEh?9d z#QF&Qe%Mz=JL?9WB*W$><$i{?)KY>#INzC$IxPiv78KBv1Mg??4CiD5q3X&{$BNcc zy9)3e-IW@%3!b^ZBn%|#$lfpGR3Ce!^an+eeHS)1^pP&eRMQH9zE9_tiR3_Wz`qRc zo7a;G2TvUQRzzp)ocUDJQv#XQbv#($n-jKB2$Lf!8f!tFbOk@Xb~q7mvKV~s(syU$ zO$MY}#H=3}s+}SZ%6CFab`8c{Dh4WeNlFeB2O)3@YQuN@h2$IzI%xSSfBsMPGsh(d som)s0_knXxR;uhe?`S9QeMP%|0T23&;O?AZ1^@s607*qoM6N<$fG^G{X;LFZh&K5*N#v*y53tsa*ZSrH+ZKo{-1s+Ri;Y;4KjvZ{= zwzQK{z4YFMT5Co&Poj7Il#jXd9==wVdVoX_KK6C;}gGR^*QY zgA=R6PCYA->Q&Da##3(HG2ow-`Y&IyvC_CPNBfjRD8pZ;U+iMb<5W+P+JUj#SOFG| zJXtvYk-@Ii##W(K8*RWytRD^lQ+xU2=9-&Ii)VpKz*et4TlG9kFme9l=D;AJ64oiO zn}AlFJGFH9gqCIHA+pArzn0Zcvc+U0-LpJM##`s~Q1o?n0a`vg@#DjQ8)w5nGIhON z&p(RSn(6VsHgxLJ^j>E`gOP7es^x@a_j)!OnT;v=B?l%OKcVFtCV|@Ld}Y$rd#025 Y1x)XURV~#NKL7v#07*qoM6N<$f+dX-`2YX_ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/114.png b/graphics/battle_anims/sprites/114.png new file mode 100755 index 0000000000000000000000000000000000000000..b1bee0080c8dfd773aedc37c9dbcc4ca2217ccd0 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!VDxI2ESSgqznRlLR^!keEa|Z|GTSa?`>If zbxQTo;-I}jno}G#vkW!86f_kCG#MCxh~Ym2#})<-AVcHaJCG5}JzX3_G$wAHsK|HN zfX6j>0-yh_yi0Nm*(H7)Q{2ei{^-CW&ExaticVRxM(zLU&Zo=Y3;1z+#6D)eayFZ7 zZ@qqk`A1Hzyf&UdbCzkZ;*DxcUSD3l#m+a`_I|nV-RDt^fc4 literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/unused_window2.png b/graphics/battle_interface/unused_window2.png new file mode 100755 index 0000000000000000000000000000000000000000..32f3da0b0226eb434a3cceddcf22a23dc8a1cab5 GIT binary patch literal 445 zcmV;u0Yd(XP)TB0004mNklToQ5JovkPm?R;PL`sQt+@f>3RcSjQe_x~ZpjpGBr$+?zG0K6D38}R$Urv?nC8K}y#s!D6fg&9j+JW!U!ald2* zmJ&r_r{}m^5&(0F!rHooDEn2$s52QByWIGEO`SAbLnU1^XGwSZlrq;fiDpNu{SV4>zopr05gsppa1{> literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_C0CA1C.bin b/graphics/unknown/unknown_C0CA1C.bin new file mode 100755 index 0000000000000000000000000000000000000000..4b6b2b106093732150e95e161800aece9af9cf0f GIT binary patch literal 36 pcmWeoU;u*ZDRn_bf>{g~V*5k$e03ZdUR$iv$yD)>0m>RM0syi232^`b literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_C0CA40.bin b/graphics/unknown/unknown_C0CA40.bin new file mode 100755 index 0000000000000000000000000000000000000000..25fc33a7327fe85d2f8c1c8b0406e8e2a5140bf7 GIT binary patch literal 36 ocmWeoU;u(@uUgGQj!cFZ3CAOr2ei2`q}sTesOYGu0A&pr0jFRHsQ>@~ literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_C0CA64.bin b/graphics/unknown/unknown_C0CA64.bin new file mode 100755 index 0000000000000000000000000000000000000000..5b81e0216838307e3ee3b4bfb41fcec489c86992 GIT binary patch literal 36 ocmWeoU;u(@h8l(vh8zZl6owdv5C$Ix1{Ve!1``GypsWES09xk+nE(I) literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_C0CAE0.bin b/graphics/unknown/unknown_C0CAE0.bin new file mode 100755 index 0000000000000000000000000000000000000000..15379a9ceae794c6755d5198ba223866efd6138a GIT binary patch literal 32 kcmWeoU;u-f2lb!od5r3d>KM2g80A?G7_bX4{;y{M0C$E5-v9sr literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_D0D2B4.bin b/graphics/unknown/unknown_D0D2B4.bin new file mode 100755 index 0000000000000000000000000000000000000000..d42729b5814802c123bd1bb67519884f2f5f24d4 GIT binary patch literal 32 ccmcaqzee(%YM|K^r*A=)@pJP3*E6610MQZ%@Bjb+ literal 0 HcmV?d00001 diff --git a/graphics/unused/basic_frame.bin b/graphics/unused/basic_frame.bin new file mode 100755 index 0000000000000000000000000000000000000000..8e83eb9f56f754b6058fb2b355e8f9b361795017 GIT binary patch literal 2048 zcmZQ&V5JFUWMCo)neo`nf=3SKVipz{3zHtzj~OQDB7-^n7&({-LS_zhACbc+CZ%Fe o%aHU-OiIJc<{Bghe6YM@&k=o|ZuAXB3Qvz(@`O0MSDX{{R30 literal 0 HcmV?d00001 diff --git a/graphics/unused/basic_frame.png b/graphics/unused/basic_frame.png new file mode 100755 index 0000000000000000000000000000000000000000..132671581c87f378316997db439b9d68591c62ab GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0YJ>b!VDzmJW6E&QU(D&A+A6=t9r@VvuFSR|G#9( z5+HXC1H(NAhNE5#|0NjCF3I|TZ^{2=2B2*9yQt z0uO7zx`ao0i{?1o=xp2DJ$L8-j0rn~ybO3g34dabyQMW%__}`8!f7oWcP>gKEHAsi z>FbA87r3q*4>6u^`$gr#mdKI;Vst0G)_o)c^nh literal 0 HcmV?d00001 diff --git a/graphics/unused/blank_frame.bin b/graphics/unused/blank_frame.bin new file mode 100755 index 0000000000000000000000000000000000000000..e9784eb4c8849062d374dd2058af8814b024f3bd GIT binary patch literal 2048 ccmZQz7zLvtFd71*Aut*OqaiRF0wXO100;m80RR91 literal 0 HcmV?d00001 diff --git a/graphics/unused/blue_frame.bin b/graphics/unused/blue_frame.bin new file mode 100755 index 0000000000000000000000000000000000000000..d5c3b6600e97568b0699a931badd451108ca17a5 GIT binary patch literal 2048 zcmZQ#V8#Mj7#N9!tXS2tvd~XI6NdX)7)Y@n(+8|9qxy-Dzo8y}OdQN;kcESk_{SDf lBS}9SMqXzlDgRLxeweWbicJ;{Y^GupV;BXaAuxhN006h01kV5f literal 0 HcmV?d00001 diff --git a/graphics/unused/color_frames.png b/graphics/unused/color_frames.png new file mode 100755 index 0000000000000000000000000000000000000000..9270879eb947e387a8f5c611742297e6fc724244 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^8-Tcjg&9b0-B7a@NErn9gt(sl|39mG$=S0&`u~z8 zOMt>_7#Qv`FdX$__%Fe5c1hO%drST|GXQ0)-$gaA`PO2(?+Q@SQcoAhkc`H+=MA}- z3|z#=F|5@iu8ao=HXV;*Yh? z#T2dke$R5Y&(~{_(v!0H@+!_Kuc-cUW6vS}`G>QnZ@8thW}B7GJF%pl^AGE_U)4+8 z>KT!%rStxH#pDg=AKvQ><}44B@vh)_^hx(kRO{?m8R^!)@`r$~LIEF|)wSKb=K6US Qf_%l`>FVdQ&MBb@0Jrya^8f$< literal 0 HcmV?d00001 diff --git a/graphics/unused/green_frame.bin b/graphics/unused/green_frame.bin new file mode 100755 index 0000000000000000000000000000000000000000..b381235d928c1a661e5aef061f3e953a1ade8615 GIT binary patch literal 2048 zcmZQzzz&2Mgb6?q>>8n>q6~rrpePGI14i|ah9CYA7~JVch(nkF6yd;^{zvm4{@52} Uz#spVhCjZz8I>Cif#DJY0R00RSpWb4 literal 0 HcmV?d00001 diff --git a/graphics/unused/line_sketch.png b/graphics/unused/line_sketch.png new file mode 100755 index 0000000000000000000000000000000000000000..fdfc8d7717c6e35798585096a6f02d995f7a6437 GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^3P7B|!VDz)cyd<*DT4r?5ZAN+K>)}j5!MNOf z!&$xz=7ph-QDznmseNO-#XxvX(R=zHkF58q zKfk|?S;Vwkae3C98>@Pg*b2Sdn?6#Awzc7${6CH7(ToS%13tX(dBq?+r>$U; zq^E^TXRY104Rvi^yW;D$PtIvGkEnkqCcb)BF{6BKsYbP!$aj#Xp00i_>zopr0L{uY AqW}N^ literal 0 HcmV?d00001 diff --git a/graphics/unused/metronome_hand_small.png b/graphics/unused/metronome_hand_small.png new file mode 100755 index 0000000000000000000000000000000000000000..bd6cc8530daeab8d39370fb88a94bfa153856d7b GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUWjOlnKM*{7_W$bD|9g-A zU$f=^lqLV0r(Dgd-V&75ZRwSzU$xC-Qidb&7JjrL~Ff6p>(N*-CrK;E^rD`pG&`DU8RrQR+DvR4zEN2g%QkOETZV2_Cr}2g} nt-!3y!FSFZCey-aJ_?Ks=D9*VQr$AoLAH6i`njxgN@xNASd2$E literal 0 HcmV?d00001 diff --git a/graphics/unused/red_frame.bin b/graphics/unused/red_frame.bin new file mode 100755 index 0000000000000000000000000000000000000000..5090b1b8429526cf6e9a8fca20f564e7de9b70b8 GIT binary patch literal 2048 zcmZQzzz*0M2t({TA)3hN8C literal 0 HcmV?d00001 diff --git a/graphics/unused/redyellowgreen_frame.bin b/graphics/unused/redyellowgreen_frame.bin new file mode 100644 index 0000000000000000000000000000000000000000..6852998fb85d057fa16a892b867f0343b6764ec7 GIT binary patch literal 8192 zcmeI!+X{m)5CqV9D7fD5|NpC{Hc%{3u4D}*?zg_@9F)gu3!3ct5E`l3oKZj+Ni*e z*{PlGf6B{`3;g%`S!{J`qyJBO|M=|B;PapAPd{#Ilz;>zAOQ(TKmrnwz)c0-iL^Nf literal 0 HcmV?d00001 diff --git a/graphics/unused/water_splash.bin b/graphics/unused/water_splash.bin new file mode 100755 index 0000000000000000000000000000000000000000..059347fa721b5c483abd386813693687f7800f5c GIT binary patch literal 1024 zcmbV}Z4bgA41`aeZ}E#d%>MsBmE+P-%E+c^D5brJc5K1&mjMSHar&7x?ui%Pn0ND$ zyI=y>*7T7hmGYu-AMq`xUL?fIGaLDqo6D3`i%?(hjgOptpVzL%k(+YIRJyLI`<(s* z8Fj1*X3lxhY_}@UdJ}ci*WGiL5%+5TWbr4|m8Y*a)f@WA^QtEFxt6ou%=%a-Pg|^6 j+FKrF@|&AqbumVIhVMjE?b?yPYP$H|(v18b^+@vt(G?Y{ literal 0 HcmV?d00001 diff --git a/graphics/unused/water_splash.png b/graphics/unused/water_splash.png new file mode 100755 index 0000000000000000000000000000000000000000..a8439a050193a145246382f41e813378f52b3e74 GIT binary patch literal 1064 zcmeAS@N?(olHy`uVBq!ia0vp^4L~fw!3-o{wzcnKU|?nl@Ck7Ra{vGTfA;_XIsgA> z{r_+I|33#1o&C=-=RZf*e-6w492`KD1ynW)MneE=2n^};^Hh6<2GCcJJzX3_JUX{d z4&*zcz~Qp@|Jn}Df;FsHj+L(MTK##cS)v>>Z=#ZzAivAp;H8m&R~Fq=Jj`&4mtmDz zqx+4o5&{#185FwqaTJ+mF@`<;EMD&7!=lOg;(I+i!It;uH` z@}{-E*m(cSBGV;5l?CnpaeZ#z%*>GUQDM{5wbK)Hj>tBA`WJTQdex+5Yj4YMHMn{5 z&)HSK*nOVf4Xjr?aoJ6_;a$QR_jkPe_ssvI|90Ae&mVLDJ@Ku0wEk@o=kAlc%kD(1 wQ&r7BcUaCMj`>CT-7o)t|5Z3J&+lhF!%G$Y_?9DmaiB=_boFyt=akR{09p;PPXGV_ literal 0 HcmV?d00001 diff --git a/graphics/unused/yellow_frame.bin b/graphics/unused/yellow_frame.bin new file mode 100755 index 0000000000000000000000000000000000000000..30ba3ed016a7a7266b642909789d3c227eb20e0d GIT binary patch literal 2048 zcmZQzzz%pA2t({TA)$@ + +$(unusedgfxdir)/redyellowgreen_frame.bin: $(unusedgfxdir)/red_frame.bin $(unusedgfxdir)/yellow_frame.bin $(unusedgfxdir)/green_frame.bin $(unusedgfxdir)/blank_frame.bin + @cat $(unusedgfxdir)/red_frame.bin $(unusedgfxdir)/yellow_frame.bin $(unusedgfxdir)/green_frame.bin $(unusedgfxdir)/blank_frame.bin >$@ + +$(unusedgfxdir)/color_frames.4bpp: $(unusedgfxdir)/color_frames.png + $(GFX) $< $@ -num_tiles 353 + +$(btintgfxdir)/unused_window2bar.4bpp: $(btintgfxdir)/unused_window2bar.png + $(GFX) $< $@ -num_tiles 5 From 3a3772c74ff76a258ffa4b6515fa07d5c96a2979 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 23 Dec 2017 22:41:31 +0100 Subject: [PATCH 22/54] more baseroms dumped --- data/script_pokemon_util_80F87D8.s | 2 +- data/starter_choose.s | 8 +++++--- data/strings.s | 4 ++-- data/trainer_card.s | 12 +++++++++--- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/data/script_pokemon_util_80F87D8.s b/data/script_pokemon_util_80F87D8.s index beda525c8a..360a6f50aa 100644 --- a/data/script_pokemon_util_80F87D8.s +++ b/data/script_pokemon_util_80F87D8.s @@ -4,4 +4,4 @@ .section .rodata .align 2, 0 gUnknown_0858D8EC:: @ 858D8EC - .incbin "baserom.gba", 0x58d8ec, 0x4 + .byte 3, 4, 5, 14 diff --git a/data/starter_choose.s b/data/starter_choose.s index a951a89879..d20b4f99a0 100644 --- a/data/starter_choose.s +++ b/data/starter_choose.s @@ -1,7 +1,6 @@ -@ the fourth big chunk of data - .include "asm/macros.inc" .include "constants/constants.inc" + .include "include/constants/species.h" .section .rodata @@ -33,8 +32,11 @@ gStarterChoose_LabelCoords:: @ 85B1DF2 .incbin "baserom.gba", 0x5b1df2, 0x6 sStarterMon:: @ 85B1DF8 - .incbin "baserom.gba", 0x5b1df8, 0x8 + .2byte SPECIES_TREECKO + .2byte SPECIES_TORCHIC + .2byte SPECIES_MUDKIP +.align 2 gUnknown_085B1E00:: @ 85B1E00 .incbin "baserom.gba", 0x5b1e00, 0xc diff --git a/data/strings.s b/data/strings.s index a193fe2e7d..1d6444cd83 100644 --- a/data/strings.s +++ b/data/strings.s @@ -3521,10 +3521,10 @@ gText_Var1sTrainerCard:: @ 85ECFA6 gText_HallOfFameDebut:: @ 85ECFB8 .string "HALL OF FAME DEBUT $" -gUnknown_085ECFCD:: @ 85ECFCD +gText_LinkBattles:: @ 85ECFCD .string "LINK BATTLES$" -gUnknown_085ECFDA:: @ 85ECFDA +gText_LinkCableBattles:: @ 85ECFDA .string "LINK CABLE BATTLES$" gText_WinsLosses:: @ 85ECFED diff --git a/data/trainer_card.s b/data/trainer_card.s index ce4f36b4eb..d97e3f2541 100644 --- a/data/trainer_card.s +++ b/data/trainer_card.s @@ -88,7 +88,10 @@ gUnknown_0856FB0C:: @ 856FB0C .incbin "baserom.gba", 0x56fb0c, 0x3 gUnknown_0856FB0F:: @ 856FB0F - .incbin "baserom.gba", 0x56fb0f, 0x9 + .incbin "baserom.gba", 0x56fb0f, 0x3 + +gUnknown_0856FB12:: @ 856FB12 + .incbin "baserom.gba", 0x56fb12, 0x6 gUnknown_0856FB18:: @ 856FB18 .incbin "baserom.gba", 0x56fb18, 0x8 @@ -105,7 +108,8 @@ gUnknown_0856FB28:: @ 856FB28 .4byte sub_80C4DB0 gUnknown_0856FB40:: @ 856FB40 - .incbin "baserom.gba", 0x56fb40, 0x8 + .4byte gUnknown_0856FB0C + .4byte gUnknown_0856FB12 gUnknown_0856FB48:: @ 856FB48 .incbin "baserom.gba", 0x56fb48, 0x2 @@ -123,7 +127,9 @@ gUnknown_0856FB57:: @ 856FB57 .incbin "baserom.gba", 0x56fb57, 0x5 gUnknown_0856FB5C:: @ 856FB5C - .incbin "baserom.gba", 0x56fb5c, 0xc + .4byte gText_LinkBattles + .4byte gText_LinkCableBattles + .4byte gText_LinkBattles gUnknown_0856FB68:: @ 856FB68 .incbin "baserom.gba", 0x56fb68, 0x6 From 4ad2c5c9411b2043fffdba99af1af2a6b2c21a50 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sat, 23 Dec 2017 18:30:48 -0500 Subject: [PATCH 23/54] fourth wave of graphics.s dumps --- data/graphics.s | 185 ++++++++++++- graphics/battle_anims/sprites/076.png | Bin 0 -> 555 bytes graphics/battle_anims/sprites/077.png | Bin 0 -> 279 bytes graphics/battle_anims/sprites/116.png | Bin 0 -> 576 bytes graphics/battle_anims/sprites/117.png | Bin 0 -> 474 bytes graphics/battle_anims/sprites/118.png | Bin 0 -> 296 bytes graphics/battle_anims/sprites/119.png | Bin 0 -> 580 bytes graphics/battle_anims/sprites/120.png | Bin 0 -> 301 bytes graphics/battle_anims/sprites/121.png | Bin 0 -> 163 bytes graphics/battle_anims/sprites/122.png | Bin 0 -> 293 bytes graphics/battle_anims/sprites/123.png | Bin 0 -> 274 bytes graphics/battle_anims/sprites/124.png | Bin 0 -> 594 bytes graphics/battle_anims/sprites/125.png | Bin 0 -> 287 bytes graphics/battle_anims/sprites/126.png | Bin 0 -> 200 bytes graphics/battle_anims/sprites/127.png | Bin 0 -> 441 bytes graphics/battle_anims/sprites/128.png | Bin 0 -> 500 bytes graphics/battle_anims/sprites/129.png | Bin 0 -> 205 bytes graphics/battle_anims/sprites/130.png | Bin 0 -> 776 bytes graphics/battle_anims/sprites/131.png | Bin 0 -> 354 bytes graphics/battle_anims/sprites/132.png | Bin 0 -> 291 bytes graphics/battle_anims/sprites/133.png | Bin 0 -> 207 bytes graphics/battle_anims/sprites/134.png | Bin 0 -> 248 bytes .../ball_display_unused_extra.png | Bin 0 -> 103 bytes graphics/battle_interface/expbar.png | Bin 0 -> 166 bytes graphics/battle_interface/hpbar.png | Bin 0 -> 217 bytes graphics/battle_interface/hpbar_anim.png | Bin 0 -> 205 bytes graphics/battle_interface/misc.png | Bin 0 -> 156 bytes graphics/battle_interface/misc_frameend.png | Bin 0 -> 140 bytes graphics/battle_interface/status2.png | Bin 0 -> 198 bytes graphics/battle_interface/status3.png | Bin 0 -> 199 bytes graphics/battle_interface/status4.png | Bin 0 -> 198 bytes graphics/battle_interface/status_brn.png | Bin 0 -> 176 bytes graphics/battle_interface/status_frz.png | Bin 0 -> 177 bytes graphics/battle_interface/status_par.png | Bin 0 -> 176 bytes graphics/battle_interface/status_psn.png | Bin 0 -> 176 bytes graphics/battle_interface/status_slp.png | Bin 0 -> 176 bytes graphics/battle_interface/unused_window3.png | Bin 0 -> 235 bytes graphics/battle_interface/unused_window4.png | Bin 0 -> 362 bytes graphics/unknown/unknown_C15BC0.bin | Bin 0 -> 4096 bytes graphics/unknown/unknown_D12FEC.png | Bin 0 -> 84 bytes graphics/unknown/unknown_D1300C.png | Bin 0 -> 92 bytes graphics/unused/old_contest.bin | Bin 0 -> 2048 bytes graphics/unused/old_contest.pal | 259 ++++++++++++++++++ graphics/unused/old_contest_2_1.png | Bin 0 -> 1829 bytes graphics/unused/old_contest_2_2.png | Bin 0 -> 1274 bytes graphics/unused/old_contest_classes.png | Bin 0 -> 292 bytes graphics/unused/old_contest_floor.png | Bin 0 -> 614 bytes graphics/unused/old_contest_frame_1.png | Bin 0 -> 359 bytes graphics/unused/old_contest_frame_2.png | Bin 0 -> 259 bytes graphics/unused/old_contest_meter.png | Bin 0 -> 212 bytes graphics/unused/old_contest_numbers.png | Bin 0 -> 324 bytes graphics/unused/old_contest_symbols.png | Bin 0 -> 237 bytes graphics_file_rules.mk | 6 + 53 files changed, 448 insertions(+), 2 deletions(-) create mode 100755 graphics/battle_anims/sprites/076.png create mode 100755 graphics/battle_anims/sprites/077.png create mode 100755 graphics/battle_anims/sprites/116.png create mode 100755 graphics/battle_anims/sprites/117.png create mode 100755 graphics/battle_anims/sprites/118.png create mode 100755 graphics/battle_anims/sprites/119.png create mode 100755 graphics/battle_anims/sprites/120.png create mode 100755 graphics/battle_anims/sprites/121.png create mode 100755 graphics/battle_anims/sprites/122.png create mode 100755 graphics/battle_anims/sprites/123.png create mode 100755 graphics/battle_anims/sprites/124.png create mode 100755 graphics/battle_anims/sprites/125.png create mode 100755 graphics/battle_anims/sprites/126.png create mode 100755 graphics/battle_anims/sprites/127.png create mode 100755 graphics/battle_anims/sprites/128.png create mode 100755 graphics/battle_anims/sprites/129.png create mode 100755 graphics/battle_anims/sprites/130.png create mode 100755 graphics/battle_anims/sprites/131.png create mode 100755 graphics/battle_anims/sprites/132.png create mode 100755 graphics/battle_anims/sprites/133.png create mode 100755 graphics/battle_anims/sprites/134.png create mode 100755 graphics/battle_interface/ball_display_unused_extra.png create mode 100755 graphics/battle_interface/expbar.png create mode 100755 graphics/battle_interface/hpbar.png create mode 100755 graphics/battle_interface/hpbar_anim.png create mode 100755 graphics/battle_interface/misc.png create mode 100755 graphics/battle_interface/misc_frameend.png create mode 100755 graphics/battle_interface/status2.png create mode 100755 graphics/battle_interface/status3.png create mode 100755 graphics/battle_interface/status4.png create mode 100755 graphics/battle_interface/status_brn.png create mode 100755 graphics/battle_interface/status_frz.png create mode 100755 graphics/battle_interface/status_par.png create mode 100755 graphics/battle_interface/status_psn.png create mode 100755 graphics/battle_interface/status_slp.png create mode 100755 graphics/battle_interface/unused_window3.png create mode 100755 graphics/battle_interface/unused_window4.png create mode 100755 graphics/unknown/unknown_C15BC0.bin create mode 100755 graphics/unknown/unknown_D12FEC.png create mode 100755 graphics/unknown/unknown_D1300C.png create mode 100755 graphics/unused/old_contest.bin create mode 100755 graphics/unused/old_contest.pal create mode 100755 graphics/unused/old_contest_2_1.png create mode 100755 graphics/unused/old_contest_2_2.png create mode 100755 graphics/unused/old_contest_classes.png create mode 100755 graphics/unused/old_contest_floor.png create mode 100755 graphics/unused/old_contest_frame_1.png create mode 100755 graphics/unused/old_contest_frame_2.png create mode 100755 graphics/unused/old_contest_meter.png create mode 100755 graphics/unused/old_contest_numbers.png create mode 100755 graphics/unused/old_contest_symbols.png diff --git a/data/graphics.s b/data/graphics.s index b87b6cd5f7..7b8b2488d9 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1024,7 +1024,16 @@ gBattleInterface_BallDisplayPal:: @ 8C11BBC .align 2 gHealthboxElementsGfxTable:: @ 8C11BDC - .incbin "baserom.gba", 0xc11bdc, 0x840 + .incbin "graphics/battle_interface/hpbar.4bpp" + .incbin "graphics/battle_interface/expbar.4bpp" + .incbin "graphics/battle_interface/status_psn.4bpp" + .incbin "graphics/battle_interface/status_par.4bpp" + .incbin "graphics/battle_interface/status_slp.4bpp" + .incbin "graphics/battle_interface/status_frz.4bpp" + .incbin "graphics/battle_interface/status_brn.4bpp" + .incbin "graphics/battle_interface/misc.4bpp" + .incbin "graphics/battle_interface/hpbar_anim.4bpp" + .incbin "graphics/battle_interface/misc_frameend.4bpp" .align 2 gBattleInterface_BallDisplayGfx:: @ 8C1241C @@ -1032,7 +1041,179 @@ gBattleInterface_BallDisplayGfx:: @ 8C1241C .align 2 gUnknown_08C1249C:: @ 8C1249C - .incbin "baserom.gba", 0xc1249c, 0x49f4 + .incbin "graphics/battle_interface/ball_display_unused_extra.4bpp" + .incbin "graphics/battle_interface/status2.4bpp" @ these three duplicate sets of graphics are for the opponent pokemon and are also for use in double battles. they use dynamic palettes so coloring them is an extreme headache and wont be done for now. + .incbin "graphics/battle_interface/status3.4bpp" + .incbin "graphics/battle_interface/status4.4bpp" + .incbin "graphics/unknown/unknown_D12FEC.4bpp" + .incbin "graphics/unknown/unknown_D1300C.4bpp" + + @ even more seemingly unused windows. lovely. + .incbin "graphics/battle_interface/unused_window3.4bpp.lz" + .incbin "graphics/battle_interface/unused_window4.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_116:: @ 8D1302C + .incbin "graphics/battle_anims/sprites/116.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_116:: @ 8D132D8 + .incbin "graphics/battle_anims/sprites/116.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_117:: @ 8D13300 + .incbin "graphics/battle_anims/sprites/117.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_117:: @ 8D1353C + .incbin "graphics/battle_anims/sprites/117.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_118:: @ 8D13558 + .incbin "graphics/battle_anims/sprites/118.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_118:: @ 8D136F0 + .incbin "graphics/battle_anims/sprites/118.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_119:: @ 8D1370C + .incbin "graphics/battle_anims/sprites/119.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_119:: @ 8D1399C + .incbin "graphics/battle_anims/sprites/119.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_120:: @ 8D139C4 + .incbin "graphics/battle_anims/sprites/120.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_120:: @ 8D13AB8 + .incbin "graphics/battle_anims/sprites/120.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_121:: @ 8D13AE0 + .incbin "graphics/battle_anims/sprites/121.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_121:: @ 8D13B0C + .incbin "graphics/battle_anims/sprites/121.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_122:: @ 8D13B30 + .incbin "graphics/battle_anims/sprites/122.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_122:: @ 8D13C2C + .incbin "graphics/battle_anims/sprites/122.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_123:: @ 8D13C48 + .incbin "graphics/battle_anims/sprites/123.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_124:: @ 8D13D84 + .incbin "graphics/battle_anims/sprites/124.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_124:: @ 8D1401C + .incbin "graphics/battle_anims/sprites/124.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_125:: @ 8D14044 + .incbin "graphics/battle_anims/sprites/125.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_125:: @ 8D14130 + .incbin "graphics/battle_anims/sprites/125.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_126:: @ 8D14158 + .incbin "graphics/battle_anims/sprites/126.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_126:: @ 8D141C0 + .incbin "graphics/battle_anims/sprites/126.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_127:: @ 8D141E0 + .incbin "graphics/battle_anims/sprites/127.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_127:: @ 8D14380 + .incbin "graphics/battle_anims/sprites/127.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_128:: @ 8D143A4 + .incbin "graphics/battle_anims/sprites/128.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_128:: @ 8D14610 + .incbin "graphics/battle_anims/sprites/128.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_129:: @ 8D14630 + .incbin "graphics/battle_anims/sprites/129.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_130:: @ 8D14694 + .incbin "graphics/battle_anims/sprites/130.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_130:: @ 8D14A64 + .incbin "graphics/battle_anims/sprites/130.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_131:: @ 8D14A8C + .incbin "graphics/battle_anims/sprites/131.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_132:: @ 8D14BFC + .incbin "graphics/battle_anims/sprites/132.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_132:: @ 8D14CFC + .incbin "graphics/battle_anims/sprites/132.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_133:: @ 8D14D1C + .incbin "graphics/battle_anims/sprites/133.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_133:: @ 8D14D98 + .incbin "graphics/battle_anims/sprites/133.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_134:: @ 8D14DC0 + .incbin "graphics/battle_anims/sprites/134.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_076:: @ 8D14E90 + .incbin "graphics/battle_anims/sprites/076.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_076:: @ 8D150CC + .incbin "graphics/battle_anims/sprites/076.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_077:: @ 8D150F4 + .incbin "graphics/battle_anims/sprites/077.4bpp.lz" + + .align 2 + .incbin "graphics/unused/old_contest.4bpp.lz" + + .align 2 + .incbin "graphics/unused/old_contest.gbapal.lz" + + .align 2 + .incbin "graphics/unused/old_contest.bin.lz" + + .align 2 + .incbin "graphics/unknown/unknown_C15BC0.bin.lz" + + .align 2 + .incbin "graphics/unused/old_contest_2.4bpp.lz" gUnknown_08C16E90:: @ 8C16E90 .incbin "baserom.gba", 0xc16e90, 0x118 diff --git a/graphics/battle_anims/sprites/076.png b/graphics/battle_anims/sprites/076.png new file mode 100755 index 0000000000000000000000000000000000000000..4d6d9d0c189b5d1b3b71397be5a7d589d9d0d8dc GIT binary patch literal 555 zcmV+`0@VG9P)$>8oB#j-00000000002a9|I0005D zNklryF<3imtN+w2Y)kEfg5|m18S?C70Sst^}ylDi?94VpF8V*IAf*T8y0&`;kzE!o0lZ} z{5leqXwEUu^tI11^?hE^?q+xAa4S8`du7A%a8a^HQ(}Uy#108V2jwSRwo(;4xOBtv zdE#>W91kQYP5-*qUSMA2{7z%$?YYtUD?b$!-aq}I%kAzT4QB1r^7{2B{)LpU)R6g_ SZGSu%Ax$>8oB#j-0000000000b?NdC0005Y zNkl#}8A5AQP5%^PE^wet;5S-b(v1tjKI|O0U0UX)|Y}8`g%8oj6#Zal4bBtJ1e1tSU!cGrUp)dYinj=&a!vSWxXY9Kla`Ms|NrGy+RL0XjA zmm)k*t9LaKglymXn?l>~#2-WdL)U_E#<)>S(yVVEgtbU<;zkA+O*jUmWpIq+nH$%q zl*G6Ta&C$|N^S@TMbqls%sTd+;2VQ`42D0L{I*Q6WZ04%T9Ve}>*5c|cWm9}qz?lC O0000GB7Zvdb&7{GrDv-yC1y1QHpz-wYJ151FqTahSdy}R_R@T*9Pfl$ z9)pST&81e?f5tY?U%ygaCMYlFx{Sjk9}tX`7u%h2m=Y z=?A`+eyMb;DoLDhz>@jh->9{9>c>3RtvH4V3}KTeqYH~rK>hRZj8t?y*rzrLS;S%Fr?ewXMTP*ixj`njxgN@xNA D%~HV# literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/118.png b/graphics/battle_anims/sprites/118.png new file mode 100755 index 0000000000000000000000000000000000000000..6e2075e5145a38ed07fb395b4f9dc2dc4e98a546 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz!VDy5c$8@ZDT4r?5LY1m|NsAI&#qoQyJqi} z<~4Jo<}_OZ1#yAvmJc5TNE zSF+DAskq7*AK7+U-M>nX$LQ0QX_c`I{71q!WK6IYY4b6EX0m1f`9^uORg0s)M0%ZR zb)3I+w(McGiC3DB-~HxbpvpVd``e9wVmDtleJYQ+P?TzLNH+J(PVW7i-_-X_kbbs7 Vd|uWCqf;QSdAj5dr5H=x8L_s=3_ZsLPO1no2-LvGqSW#Yr)uM{}0Y6%OWY#_oT|*dMYvOGnU%Upo(E<8#30g=p zWP0@g2Dyr$>;(n5cL}ec^vQiAhVpsm5FU&5Aqo_B6We3A(_{dqFL;pr;y~vP>BhYy zfjA}(;Q$obU=d9BB|vrRPy;>RbTYSElS4;_PkpFQH%-%YFR$hrdC>90 zv3GA4bW{5>kS&dRWBW=6mJ!KG25phP+F|;lKx&8i+Y*L7hR{Whlr&q@hG>uvPHNq# zvsePYGOawHByrHqj<_V6R?8vey(W}P(Dc$z5K>aSmi_8vJRv$xT630?WuVSd7q-H^ z!3>PFk+9+?@0hh753LhBKv*d|Vpv{h2o>Xu=@kwOFt_%zV5G%q$G$v2SO*$eg z0k$LI7f`0?mWUVyKvh+x0Fydm@gv4uKFAo$${f4Q_OmXGxL1u(MFDA*!|Kb}sjc8*y SvHfWP0000ar<0X%{SwFz4IIe>5K z`|^J;4T3)=ANA<6r67FPv>)y#0_Kl11^Zi4&`t1cL07Y61Ohn*?-lKn_3KCgj5ef; zQss6aaIq7z>?O{?1WYe6mv{ie4s5*R0A~!^16Mkw@texcLRt@E1wcuE0nOsnK>Lfx z3CjYes=r{GIRmn4uD_4WN`=(+-KA>UwtIa5KRF;pVHKG=00000NkvXXu0mjfEscGc literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/121.png b/graphics/battle_anims/sprites/121.png new file mode 100755 index 0000000000000000000000000000000000000000..c4fc11f860f5d6c2a7b6c2e015e61d2b60d0c668 GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^96&6ZRaQU(D&A+A9B|No?`|C84IPip?3 zl=MGI^XRvzDc`!2zU?*q_Kx8jPysSH`dj8Ykgw~&XG+MPdoj7+`Ee&u~-g7=s0P4hkMt;CY-8v0$dcN4AN-&tH9Z{_7#8 zxBsk7%$Cew7G8Uyu_dMbL+=ddC!2(wW=@!^v2h|hgW)8GGT&Xzt9PTS^x76e`LF& Vt!mhMTxloBQ=YDVF6*2UngF$obBF){ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/123.png b/graphics/battle_anims/sprites/123.png new file mode 100755 index 0000000000000000000000000000000000000000..c1d71a8b7ee90c0d75968392ce43a337200a3bfe GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0ziC#g&9cxfBdf&NErn9gt!9fZ{NOMJ^F0Rl&e#c zjutyE2~ub_WJm&vV+HR$#Y%w^b3I)gLo9lqPBP>=Y{27cA6V6&6u&?r-F(MA-rV=~ zQHl}$^pjaC)GqpE&Q|rC%k-HyeH1C} zaGsau)_T5wQpg*jDZX@)8;=E=^QS$I^EdfFDS)-Krj~KdQOSSh%J|HUBxlol3r~Sa3Asn`hK(Lzkq-D@znaWxF`9a*ZhOG zhdau93g+)d2Kt{`1r-7XTRhlS0tEtGr@1I1ATmVL!P#=#1%`O_K>+7zJnA{00?3hi z4)uA?nS27)gN|#2LzMl$d;zZWa%)smiFbOBu9j4@fnX_Qv_BTf zOC=|;u&Rws&-f6c^h;88a>;2^U%R{q&DSfcDoMNZ9fVn&m;TpW#%Te!c g03EhRAMg?T3lMdp8yKNY8~^|S07*qoM6N<$f>Rg=ivR!s literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/125.png b/graphics/battle_anims/sprites/125.png new file mode 100755 index 0000000000000000000000000000000000000000..2bc2c212f6a1185e21ee02dc389521267591c743 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!VDxI2ESSgqznRlLR^o2`}Y6;|7Uymo^5X4 z;^?@9gQJ>*BZz}TlY@f+h`?aUnl(XDQ4nr^m+vE>;3`iS#}JK)NBbPP4mt3+HZNg+ zacJ&b*SCyadk=6Ne5&x`P3+fsaSk7tS{tv0{!BN>jLnMu#_w~F#i-K7`{tD2heNbG zH-@d~)63Pr#o<4_YoS^j<2jKDF+~zvjNe^ip2v|qul&NwhU&)YPHh_xpRMb0uzuh1 zcG02vQ&KNStaVv@Wb%wP&psR1=}B&sxOH`Qv4Q;34SoEtf9~15^60LAtB$CD7CdkC dyQAi7B{P40$n!h?^VWd8;_2$=vd$@?2>=GQcu)WU literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/126.png b/graphics/battle_anims/sprites/126.png new file mode 100755 index 0000000000000000000000000000000000000000..9f19629026f89975382e76d73179d7eb7e3e2592 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUJ^KIK|NsB5UcI_y%a-o$ z?yRgVM@L5m1qGn||E&L*C~NkIN}yb@r;B3<$IRq}18gye6t+z4^p@&K3kxaZ^ky)c z!O|KN|&{jjRv zRNa?|yxe2y|1G{nUUr@Ohy%YH)}R7|mtkt| z3wl>g=MG?JfJ~ru?|5ScNiH=kptbRR29TxsOiKgYOau&^IDHpFA5E@^oiT7fvP8<$ jTTLKOe?PXm>GIEyaKM@sg*^nq17G7PTq z?zkgf$)!@s+a(q1?b&4F$k*PhA9YnF@nQo<28)YeX1CeTge}LF?kQH>IvB#Idq+`^ zG3!*&gH-!P6Rtk^=zVp?>lgcDHHE&u*cZ%Ue^e)2CS-<%+$|d!|4Z#J3b&g0aQ$1v zcO}q=Yn`g{>ZGb&KJp%&uI%h@75&41GN!Yh_tg2CcOOtu*ynDr?3ku+l!5!2HHT#uPznqHZ z!*E8D$hH>@nF1#7G7=bGK6;UmAkyN&cyz`=Eo-ZugKS|OQsM?1m_nH~*|srsI6mb} g&{`|w)9R?f;JcLD_U!)c@*tZ%UHx3vIVCg!044T1_y7O^ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/130.png b/graphics/battle_anims/sprites/130.png new file mode 100755 index 0000000000000000000000000000000000000000..4a753e6d5406685bbfe380301d01e7592cd34881 GIT binary patch literal 776 zcmV+j1NZ!iP)$>8oB#j-0000000000b?NdC0007$ zNkl5gg5FOZpR$g614EY->dvKs9LBRSsDluqHE*lciie7Y+R9$@aP0&MZ zl7p_Hf2y+|Qk_`DZ3>~34tTxu=FOYg)kpyU?O(U;*XO>kRC(yn>Rc3?cWh`Zd=l^v zz|ADE9X2iq4gN~U@;4Un%Ymhrx-@_R4IQtec3UfwOHjCz2B6Xa0(b7(ga&A8HpX(G ztJIU=r4H~U0+_TK0GiO1NWe?Rqpif}EP<7&G1G0`EaS_$x3tkMmb#lGaCh$bTL~Y+ zIG)F&WF|!z#`AeP+z4HYI1Iycn3+a#y-75X(6uA1Fas@H%0XnM31OV9VMH`AcZ6A! zUz(Kg@(*X^=-IvsPY3A~iMr=M)Blrlo0A$xCQ*vI&5MrMUXRWwL+M_%bzx@Ck#|{< ztG(2PXQq6WiA?O8pK5-l@^xO6?Vz%6lv0^!i_ZG2E@}j_-2mWATNEl6s&#GDsw%!9 zM-3g<`8w;Lnz|@;STm}1)jd7>m3y|*FWR8<`|tZ~c>l{?-v`jK$^lIq^Z)^{s<0WV zz&P5IunfO>G=8wRK2>dRQ-h*;_EmWYW4{GY2Per4I`{w3;iBXidB{Wuxe(m|=tvT&UkfFOf^vKm)JyQo39>ExT%&P2`GQ#6DYjxGEU?lR$(U@06ze3lD$(mcZW&<0000zkmrW&+RM$<80&s62D;V0?IV{+~DBg_hQ>%@J6rbKh}E zeQ1&1@#JMWMzei2Rc5ch?%nio(Y>{9JjY*KyLe7}8pAVR?*GzNTHpT8TUmbL*B-_z zQd^mGIQ<+AmoP@vb00KsgLBH>rscD7enk#W6%<;@XLhT!$3|TwOVLx^-AObjmqQDtzzM zue7%=__@EL1lPj3z2|?vvI$rjEo!xZZ&gZYRB{|+tK12rL+PC-vUWW$T6M)yOk;~L zZyS%5iI)(snUr>5Q}WM)k5_GB)saZlFtdJ~T(|vOvcI9J^P`W>KWDeiQ){dI%2Sqn zA&bP0l+XkK{f%Y- literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/133.png b/graphics/battle_anims/sprites/133.png new file mode 100755 index 0000000000000000000000000000000000000000..cebce575e67992c9ed679cead08068c4ef5da940 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!VDx|E`RzTNErn9gt$)m_U-@w|L@*CyLa#G z*|U3(9$m6!%akQcs^`qfYHkk7%CZa!Qn0k-04j$7>-s5&fvhM`7sn8ZsmTcrOg%b` z0&NWqk~7khQbPO~JPo8cnk1Q+PBpQuOAr)Jc1vStV`EKZZ)RXzuunnEEiEi y#zuzV30YxoiPudgSmvBl;}n>D`I1DN2m{0GrJONNvzK^*?DKT>b6Mw<&;$T0AVf+4 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/134.png b/graphics/battle_anims/sprites/134.png new file mode 100755 index 0000000000000000000000000000000000000000..933852b07f87951e886047b5cc052ac8a6c79a2e GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*D2q={r~^}-MeS^?wvh* zcJI-nOSWv8vSdm1oH<#|%|TgNmO()ZmX;hqqUh}r?1_gxboFqqcc~z&llxo^(S}O@3oxza_%FE+(TC%-#T@u qkiToC9@FDZPd}d3dG)(|&vD+CMxLPXcgAuchk3gCxvX?M5RRG2KlW$+t#6CJzWJZA zj=q2N`3+UySAFHlem^Jj{D;?PR{rNnxcT3Kf#E5WWLEz26$e2kc)I$ztaD0e0s!jF BBnbcj literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/expbar.png b/graphics/battle_interface/expbar.png new file mode 100755 index 0000000000000000000000000000000000000000..b54dbe6008fc8701743dd416e43eb7e2a97569c1 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^9ze{&!VDx=%w8e^qznRlLR^8gqod>h|M%`)-Ewqq zarKnupsXYXO9smz$N$e5{?D1>c=kU7!+$Vj$eQw>-|C(aP>-Rfi(`ny)MNuSCW9%$ zj1reR7lJJa+7=O#QMq9~K+O!Eu6{1- HoD!MZo?tT0*qOy|2> znq!*dcwZ76YXe<&<_d*)0aUo-TO0;C&{y9#45>LF78eP9e9c jDqcdS<+pBZUjB>m@8#8!2LD{bP0l+XkK4_`$u literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/misc.png b/graphics/battle_interface/misc.png new file mode 100755 index 0000000000000000000000000000000000000000..9d39df975ed5f0274e7ed10e0774858217527a72 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^5kSnr!VDz)O;tYtDT4r?5LY1W=;-+W|Gj%xw;bJD zTs@^ZC@V?9lEE^_@&7Z1|8u4|p8e0j@E;5rvZnm!x4I_;)T8d{;us<^H95h7$t!~) ywy!a(>+%E!$D>a@8Wtoat2hK0+Svz$8!~KKuXgg8&EY7Z76wmOKbLh*2~7ZPM>FaG literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/misc_frameend.png b/graphics/battle_interface/misc_frameend.png new file mode 100755 index 0000000000000000000000000000000000000000..630f44242f96b1d2a131395ca3904e4b31088dfd GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^93afX3?$7I7w-U41_3@Hu0Yz+(eeNPd-twxIl8yF zdP;LpR+54xgJqE8|7Q&U=S*=t`=5c~KNvD(P5IAnbx#PWN8HoJF@$4gazX=Bnm{6( h(xeA1k}*w;3}XF^=4JQtOMyxlJYD@<);T3K0RZMFD?rSc~c9EB{Pf#iSXeZ=~3Geo?>px5`_`J)4!ja5Sz^Qq6H}i8>@4#rR9In_k xN6V_FzkO_9^tu24N1x?RTdEeV`v0*sFaMFt`40Z*iAzBa^mO%eS?83{1OP>zP@w<- literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/status3.png b/graphics/battle_interface/status3.png new file mode 100755 index 0000000000000000000000000000000000000000..8a0db03219f68682e79489bcdf96576dcf1d7c14 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^5x-&Uxjjb6epjK`EyW8V(r9!;omk(lLHnAek)*H?=~xu`%oxH;;A=3YP%mU z;;~z^-ookelxXo!Mv3`+6X%$g9d5j{vUtL^xLFB33wv4FU$Y)~Yo~T!y?FM+FC`9F y>?TLcdi%XuY+rP_|Nlj=7$JnYC6HZCGU5wPC};8%@n0Sr5Fn^Lx9w>h;qrWeF#0 xt<3Xl3X|mjU6hvp$M0?(sZ@JCgZuX0?fNp-E7M;D^o4>P=;`X`vd$@?2>?TZPZ|IK literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/status_brn.png b/graphics/battle_interface/status_brn.png new file mode 100755 index 0000000000000000000000000000000000000000..8f13fe6de2abe74b24c359a6d97cea8f0da4b004 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^5)79ueX>b%!%OSShwa kc$Y!;w*&20H{1PK&%c*ffBF|=r7n;~p00i_>zopr0Qc5ETL1t6 literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/status_frz.png b/graphics/battle_interface/status_frz.png new file mode 100755 index 0000000000000000000000000000000000000000..ce10db3e4e87d50b5b1c888914653d28f262603b GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^5);^_VN=d_!M1|*P78<9QIQ-ygVpcgQv((tj%7JqS lkH=lf4U7t@0n8J6*%(ygjI@8Sf0_ld$UffrqJv0mNwFwWTv!^)c43mh;Td9qf+kUQU literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/status_psn.png b/graphics/battle_interface/status_psn.png new file mode 100755 index 0000000000000000000000000000000000000000..700e7038a1a86d05fe6b88104f66e0bc4f1d3b7f GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^5{#)>t@Kn4H+ literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/status_slp.png b/graphics/battle_interface/status_slp.png new file mode 100755 index 0000000000000000000000000000000000000000..bcbd16d1db11d28f3b458a3debf8747baa4933bf GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^521?gwMlXb$xwehLNa7bz@v k+#~(AY#~dK6X&j9480=8lP{FBCx9&SboFyt=akR{0G~)aRsaA1 literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/unused_window3.png b/graphics/battle_interface/unused_window3.png new file mode 100755 index 0000000000000000000000000000000000000000..e93b2ff88944878e21fc6b5879eb36fd5346a13c GIT binary patch literal 235 zcmVg&Xxq{`{0|5gHS*g@ z2TL7Wjh{uI^Rj*qh>)J=3?P>F8$iTnH-HG<`4qqpWx(P_gWGcomP>W(wI30zVv*n! l0Zdi}bkl(I7*t)_hY!c7V|uU+?_>Y~002ovPDHLkV1isJUK9WT literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/unused_window4.png b/graphics/battle_interface/unused_window4.png new file mode 100755 index 0000000000000000000000000000000000000000..6c249c96dfbb83420c985407380f70e94a2c0829 GIT binary patch literal 362 zcmV-w0hRuVP)TB0003oNkl0)>mM3%; zlS$v-;coy(pa6g;0Kfy208l*ur|DexdK{M<0L=Bbib2)_tYRQrfK?3Q%mwzss(;W} z_!=A#7<+?jb76;GG6rBE&2KHKO8u_rv@U=7#{f z0Oz{bBg_vS!Qamhpt-~D?+-k?UM=NQPxHgK0L>4Z4rwCr0H6eoP$1IRCjbBd07*qo IM6N<$g61)rr2qf` literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_C15BC0.bin b/graphics/unknown/unknown_C15BC0.bin new file mode 100755 index 0000000000000000000000000000000000000000..40de9e529d20709c28fc95ed5c2f889ac930541f GIT binary patch literal 4096 zcmeH{yKaUs423QAe(&GX((+Up83Pi8(FBkfGx8YlrY#^9L`?9~8>s|Rr>A&Fn zkLb65?#Mq%zkdI%JIgwlep^a!?`=IA*Wp>{*Iv)AM_}(Q-($Ip+_C3Ry#w9>?|^sU HtR46Pl*fh* literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_D12FEC.png b/graphics/unknown/unknown_D12FEC.png new file mode 100755 index 0000000000000000000000000000000000000000..96c49a9921532eab55692b37e4706470431ff0ab GIT binary patch literal 84 zcmeAS@N?(olHy`uVBq!ia0vp^93adBBp6ht@Pq*=X-^l&5RRG2JF1iZ)w8WR!Y2^8 g@1OnQx99%YFa4JZ-r>mdKI;Vst02iGY5dZ)H literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_D1300C.png b/graphics/unknown/unknown_D1300C.png new file mode 100755 index 0000000000000000000000000000000000000000..0c077dd0b67ae1412ef5b10b165038dfcd681944 GIT binary patch literal 92 zcmeAS@N?(olHy`uVBq!ia0vp^93adBBp6ht@Pq*=WltB!5RRG2JF1iZ)wgX{Sj6TM o(=Kdk?I85@^?&0#@BaLkXZU0(@iR?>y&j~^)78&qol`;+0M$$yi~s-t literal 0 HcmV?d00001 diff --git a/graphics/unused/old_contest.bin b/graphics/unused/old_contest.bin new file mode 100755 index 0000000000000000000000000000000000000000..da6f4652ec37236526bb3ffae5cae09f695558e7 GIT binary patch literal 2048 zcmeIuIZ{GV6b50IaC4yiWDs#g6a<_HR1j1UCqUT$E?B}1UKvon)8VNO{?3PdB61-a z*^rElu->q#ps1v5OU1UT9lQ4IJ8&qruI5PHu@enVr&`)N&YZh&=_=}9yK(Ezy{-q3 wp7iuR8yI@=8uj0djJ=!q@afC9A5$}PzZRBJKejLZrv?79KqkGkz&|dq0(p9XfdBvi literal 0 HcmV?d00001 diff --git a/graphics/unused/old_contest.pal b/graphics/unused/old_contest.pal new file mode 100755 index 0000000000..69fde20005 --- /dev/null +++ b/graphics/unused/old_contest.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +0 0 0 +255 255 255 +230 230 230 +197 197 197 +148 148 148 +74 65 82 +0 255 0 +0 255 0 +65 74 123 +139 123 131 +82 82 197 +189 82 74 +131 74 98 +74 74 131 +131 139 222 +106 164 164 +0 0 0 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +222 230 230 +230 230 238 +230 238 238 +238 246 246 +246 246 255 +0 0 0 +255 255 255 +172 172 148 +213 213 189 +230 230 213 +189 189 172 +238 238 222 +197 197 180 +0 0 0 +156 156 131 +197 197 189 +139 139 131 +98 98 98 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +115 106 156 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +148 148 156 +131 139 156 +123 131 156 +131 123 164 +123 115 164 +0 0 0 +115 106 156 +255 255 255 +205 156 255 +172 148 197 +230 222 246 +139 131 172 +213 189 238 +0 0 0 +238 238 230 +189 172 197 +222 213 213 +189 172 189 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 164 131 +213 131 90 +255 189 172 +197 98 74 +74 65 82 +255 255 255 +156 156 156 +0 0 0 +0 0 0 +255 255 255 +148 148 148 +255 123 98 +131 246 90 +255 246 74 +131 148 255 +0 0 0 +164 238 98 +131 205 90 +213 255 148 +98 197 49 +74 65 82 +255 255 255 +156 156 156 +0 0 0 +0 0 0 +255 255 255 +148 148 148 +255 123 98 +131 246 90 +255 246 74 +131 148 255 +0 0 0 +246 246 90 +205 205 65 +255 255 180 +180 180 24 +74 65 82 +255 255 255 +156 156 156 +0 0 0 +0 0 0 +255 255 255 +148 148 148 +255 123 98 +131 246 90 +255 246 74 +131 148 255 +0 0 0 +115 205 255 +115 180 205 +156 238 255 +49 98 148 +74 65 82 +255 255 255 +156 156 156 +0 0 0 +0 0 0 +255 255 255 +148 148 148 +255 123 98 +131 246 90 +255 246 74 +131 148 255 +0 0 0 +0 0 0 +255 255 255 +230 230 213 +0 0 0 +197 197 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +230 230 213 +0 0 0 +197 197 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +230 230 213 +0 0 0 +197 197 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +230 230 213 +0 0 0 +197 197 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +74 65 82 +255 255 255 +222 222 222 +172 172 197 +255 0 0 +0 0 255 +255 255 0 +0 197 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 164 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/unused/old_contest_2_1.png b/graphics/unused/old_contest_2_1.png new file mode 100755 index 0000000000000000000000000000000000000000..67b81de2d7e36d870012f35731f1e295ec220df9 GIT binary patch literal 1829 zcmd^9drVVT96py8THXc9tHalZVu3+R6lunw6&SX2JT6tFIxJN|Dj=g0l)J=RtD+zn z<^@@J46z6}b)rQvSXPB9#uW*ySaFu>SVfS>kT3-G?lKdXEGGMJ|Lo+P-@WJe_|DW*z?y#!o(9@SY#4m*|e``0U&|6^};A(i{rT2Y}RVE7={UWFu(~H z;0cf-L;=HEH7rmFBm#j#QDl@Vl|;S_sS@!xm{y8NcnXAVRAWkoRHlTL7)K;6Qk{e0 zA~tST8x_o%8KVx9;ZhmS;Zy;jG~!YWXTwB8*^H5AmM*kbtF;8QM1t@HQYKsU7at-j z8dvkil}xjOwvfgII7XBy-=D9LYCULwgKKfT2-kxm3|I1WoOg`~d}0#8nHiBz$HQ@z zO65VEm%yy5sv_1~DR2zK5ecCIp$6gk5AyZ6zRHLhaWkTp{VN}Ej-dAT%Jd8Lv|7Uc zV-P1IXuosv06+jx6IE1z^8k(jTumSl6M3(m?+X79FK!;*D~NBw#E;|&cgn|3HfKF# z(GDLC@XWYf>kRSa7A>})az{7`mGxY!Ch^F!U7w^eL(^EM#Nmn(73E%Pfq#_*U+4tHOTqAeP}s! z9SdrwXkrC$crSXnVp>htq$g9Wl|rkF{UOH=u~VTy>+BThsvdlF*vH?e#>MQf6!z{s zd&c)#E0xt{?UtGX^`$#pjO4cIHZ^n@-h^#?6c94W$}*sS}YC?3iC|< z{qbyJtk|v~(WIfrnLs%_RJnJRXH3b8Z46K`1PmonIqdU0mT?{3Z|ylX)|a!E%TgYJZzi1JIuyO(`>htoV;!WB^`C|2_^pq)~_dt+1Kfy zTT$x<-bj50lENnsCR(9^lPoAt9+vO9bav7g1jjF#hrEKobIBq!vo88*obyljnak4a zEV+S#&kcsiz)32&4O8|J!R8WlYVo;D@4ilQkGty!O;W#6`xd8*FLbKQCQjpE_L^Z& zkWu4!JmIl>u@prD+G}jb1<%?9FSF<`v%KcVbDp(*ua|+XVa46y6BaCoD*-pA#iJ`` s{Djst*R$kR(w`gSPk%<}DizlLIQcL`JoH-oYT=*8kBW)BuvUEFPn*KmBLDyZ literal 0 HcmV?d00001 diff --git a/graphics/unused/old_contest_2_2.png b/graphics/unused/old_contest_2_2.png new file mode 100755 index 0000000000000000000000000000000000000000..a33a8c324125164370b178de4163bb76c793536b GIT binary patch literal 1274 zcmVo-c@D000Dq zNklw{UnkNQKb@o46!|9dkdzeEw~bYB3c zZK`10+8=!iP}Z8Z`PSN2f(Puud0^W};=Pnkkd3C!ezR;fuR?~kTlIWUAu`Mb5rHc)lK(ssv|K7@R*%}(60y}X{Hc^Oc}_i zLHbfM;74wP2l!qAGK)lj6M)ksvfR~J%+F^+Ncs-40Tj+*<^f7eEdxMVlSVtZ@@Y!q z!qwR~%kx*88)CmDBu-o00L|ix6Gy&h2|D5hodAm@YqM<0i$vzH3(3b z=_Ppu&gdN=MsmzOgPNYqfN&2C^(&zH3QFnMB`1Iqs<4y@8nYu5h?x&&l{!FnFtej1 z1|JE~ZcqxyOqS52R&^GeoRUrXGMus|cOe@Tfn&g^gmOkkDH4eJFv^1OBm7A64(c9?6-qSB%eX6g2d%=nxlKknPeO&5j0^FJ3tjhNqs@E`wA05lE)pvAyvlNja`;0^0Az%A+K zCeQi0_JG4em|T+ZRgHXIUGd<@xw%o~rTl0AS3xGl1$tl}=q# z8ZH(G1BS8De2$yKZ+I|(#ek+15}g1SZdxbL0l21Y>I{$;eckp&R{&tYid>I%0+jTR zhBd|7t!}bzfY~sn3Yn^H>gH ky?XWP)vH&pUcDaCzqKPS*E82R8vphbE&u=k literal 0 HcmV?d00001 diff --git a/graphics/unused/old_contest_classes.png b/graphics/unused/old_contest_classes.png new file mode 100755 index 0000000000000000000000000000000000000000..c2e7b5e29887f6f0bea569ffaa20c6bec3502877 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^4L~fw!VDyJ%CdF?DT4r?5LY1m|NsAI&z>DUdUVQ^ zDPE324F7>b431va-PO%OK}Yunc{O__d3iNAci+oevSig%UyxzzJzX3_EPAI-G~_yL zz~frX${V%mX7cq%%@T`Uw|gsgx5?=&@9=$e?cfP7yB2qzs%cL=?e@9w?Q{8avZ^lW zk`kX+ijTcWPSB$T|6f&#Ny?tdUHCn3AJ-j^4S%A}wr+i@-ZW?Z?lX7#4Me7>UO%*M z^8f#PWgUzUUD|i(g=D^)_yxi4RSB#;5{$a5nmi)(9J*IEgt0t0A@)^PWtmIth`njxgN@xNAq)mCh literal 0 HcmV?d00001 diff --git a/graphics/unused/old_contest_floor.png b/graphics/unused/old_contest_floor.png new file mode 100755 index 0000000000000000000000000000000000000000..94877b921f9da8cf3ac9d285f032071481aea96f GIT binary patch literal 614 zcmV-s0-61ZP)C`b>;M^cR zR3%FysgIp1&9c%oO&N$@$ZN7>W!{vptE{ZcW`7T$Df6}{Wit*iKY(i~ zMI=%Jk=;HE;GJ(;QE@E`j$eK>pF-512@MZ0fBP{aMWxh58R^K^E$N{Ua!~x^1a17{BSROkHV9ve~R!OBMi0U?lfmkDev2S^35doY-AYOX}17MC{*+Z(XcM-VR z(f{^+Fe+7;Kv)3dzv2-A@5=u#{ko^Z3(JAc9s+w$F**ry2aN&YMFVI8Pdru|2f!8n zZYZ#T01)Ld6Ji%qU>`bxuy;;o0EyT*)5&~hIt5=o0lzN9U3Ya!P**qNiqdLM?@=d$ zkq|78sTXvI?3R9Nf$I_KNn@#LV>wMW z7Nl_^oou^`ex_QR;}JAh3hTYi+uv z2?})DQGtSrDM2g+{ZJ2b$AbPLBS?ght)Qi0?ky;A7y*MW1RYLyg8O_yf&#Lh?n_rT zA#jO=GTmcE;*}Qk&IphPXXHv6ztweNMP3$7Ho7~>j^=F zedn6(SkQ~TGa!SL$R#X*3ZR>(!YA+!j^_^kpMc;K`~V>V4ZnP*;AsE=002ovPDHLk FV1k7Cj*|cY literal 0 HcmV?d00001 diff --git a/graphics/unused/old_contest_frame_2.png b/graphics/unused/old_contest_frame_2.png new file mode 100755 index 0000000000000000000000000000000000000000..c8b20408cba293d3c5fae2ec60d356e29106491c GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^4L~fw!VDyJ%CdF?DT4r?5LY1m|Ns9rYo=Viy7$?$ zt9$pZdH3$#(W6^{;&bLSA3eIaySq6lDGA7hfFU{;n4ioMpduLI1r!4$JZz{8+ez+BpPM-6d2dm#be}HRVjx5trEs zt3$mxjyxCE*F3JEp*7>>iwAEKzi||-P^e%rIHMq}c2Lbjwr-*^!{me|s=7_79iJZ` zwPt)JVAG_-)Ucm5J}P42W8p3R55!~YA8buvm#DUU(ej3ED#(qVu6{1-oD!M<2Fzo- literal 0 HcmV?d00001 diff --git a/graphics/unused/old_contest_meter.png b/graphics/unused/old_contest_meter.png new file mode 100755 index 0000000000000000000000000000000000000000..606208b1f8e4c7cf8671252c73c9dbe0e5fddefb GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^4M5Dn!VDx2e}3f)qznRlLR^9L|NsA=J$rWa=+P-t zrg%99G5iM#F*tfvcULzD1s&ZRnW literal 0 HcmV?d00001 diff --git a/graphics/unused/old_contest_numbers.png b/graphics/unused/old_contest_numbers.png new file mode 100755 index 0000000000000000000000000000000000000000..98c14597684a4c8637cb9ab722136ae033aba522 GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^4L~fx!VDx2sJ^%cqznRlLR^8gmt)ZX|NrmZySHY| z(f>d`1CYnSa1_Ks1OJya3rPoY14Yk!x;Tbd^uC>B$k(DE;_{G+Lo?<+_>kJYO!bQj)#rXQ_@s=&MB+XB?aD$ni@ysYfB$DY$@G@686A6TDUdUVQ^ zDPE324F7>b431va-PO%OK}Yunc{O__d3iNAci+oevSig%UyxxHo-U3d7QIU+2l5?I z;BY?cw`sx`CzU(@wU}pe+q-jYuHyh#0_)w*t5FT1i-dkW;fn7Jb%;`uaBm1zy6NK1|5EoO i`-1ONZqHx2nmzlDkMw~TemX!mFnGH9xvX$@ + +$(unusedgfxdir)/old_contest_2.4bpp: $(unusedgfxdir)/old_contest_2_1.4bpp $(unusedgfxdir)/old_contest_2_2.4bpp + @cat $(unusedgfxdir)/old_contest_2_1.4bpp $(unusedgfxdir)/old_contest_2_2.4bpp >$@ From ac74d6f10048054642c35b65787346bade0b5829 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sat, 23 Dec 2017 22:06:01 -0500 Subject: [PATCH 24/54] fifth wave of graphics.s dumps --- asm/contest.s | 2 +- data/battle_anim_8170478.s | 48 +- data/graphics.s | 558 ++++++++++++++++++-- graphics/battle_anims/backgrounds/00.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/00.png | Bin 0 -> 1021 bytes graphics/battle_anims/backgrounds/03.bin | Bin 0 -> 1280 bytes graphics/battle_anims/backgrounds/03.png | Bin 0 -> 418 bytes graphics/battle_anims/masks/metal_shine.bin | Bin 0 -> 2048 bytes graphics/battle_anims/masks/metal_shine.png | Bin 0 -> 183 bytes graphics/battle_anims/sprites/001.pal | 19 + graphics/battle_anims/sprites/001_0.png | Bin 0 -> 178 bytes graphics/battle_anims/sprites/001_1.png | Bin 0 -> 198 bytes graphics/battle_anims/sprites/074.pal | 19 + graphics/battle_anims/sprites/074_0.png | Bin 0 -> 153 bytes graphics/battle_anims/sprites/074_1.png | Bin 0 -> 172 bytes graphics/battle_anims/sprites/135.png | Bin 0 -> 243 bytes graphics/battle_anims/sprites/136.png | Bin 0 -> 150 bytes graphics/battle_anims/sprites/137.png | Bin 0 -> 377 bytes graphics/battle_anims/sprites/138.png | Bin 0 -> 234 bytes graphics/battle_anims/sprites/139.png | Bin 0 -> 299 bytes graphics/battle_anims/sprites/140.png | Bin 0 -> 224 bytes graphics/battle_anims/sprites/141.pal | 19 + graphics/battle_anims/sprites/141_0.png | Bin 0 -> 180 bytes graphics/battle_anims/sprites/141_1.png | Bin 0 -> 170 bytes graphics/battle_anims/sprites/141_2.png | Bin 0 -> 184 bytes graphics/battle_anims/sprites/141_3.png | Bin 0 -> 168 bytes graphics/battle_anims/sprites/141_4.png | Bin 0 -> 155 bytes graphics/battle_anims/sprites/142.png | Bin 0 -> 191 bytes graphics/battle_anims/sprites/144.png | Bin 0 -> 191 bytes graphics/battle_anims/sprites/145.png | Bin 0 -> 270 bytes graphics/battle_anims/sprites/147.png | Bin 0 -> 311 bytes graphics/battle_anims/sprites/148.png | Bin 0 -> 259 bytes graphics/battle_anims/sprites/149.png | Bin 0 -> 233 bytes graphics/battle_anims/sprites/150.png | Bin 0 -> 259 bytes graphics/battle_anims/sprites/151.png | Bin 0 -> 239 bytes graphics/battle_anims/sprites/153.png | Bin 0 -> 183 bytes graphics/battle_anims/sprites/154.png | Bin 0 -> 225 bytes graphics/battle_anims/sprites/155.png | Bin 0 -> 255 bytes graphics/battle_anims/sprites/156.png | Bin 0 -> 332 bytes graphics/battle_anims/sprites/157.png | Bin 0 -> 184 bytes graphics/battle_anims/sprites/158.png | Bin 0 -> 251 bytes graphics/battle_anims/sprites/159.pal | 19 + graphics/battle_anims/sprites/159_0.png | Bin 0 -> 200 bytes graphics/battle_anims/sprites/159_1.png | Bin 0 -> 147 bytes graphics/battle_anims/sprites/160.png | Bin 0 -> 219 bytes graphics/battle_anims/sprites/162.png | Bin 0 -> 179 bytes graphics/battle_anims/sprites/163.png | Bin 0 -> 188 bytes graphics/battle_anims/sprites/164.pal | 19 + graphics/battle_anims/sprites/165.pal | 19 + graphics/battle_anims/sprites/166.png | Bin 0 -> 401 bytes graphics/battle_anims/sprites/167.pal | 19 + graphics/battle_anims/sprites/168.pal | 19 + graphics/battle_anims/sprites/169.pal | 19 + graphics/battle_anims/sprites/170.pal | 19 + graphics/battle_anims/sprites/171.png | Bin 0 -> 184 bytes graphics/battle_anims/sprites/172.pal | 19 + graphics/battle_anims/sprites/173.png | Bin 0 -> 212 bytes graphics/battle_anims/sprites/174.png | Bin 0 -> 210 bytes graphics/battle_anims/sprites/175.png | Bin 0 -> 196 bytes graphics/battle_anims/sprites/176.png | Bin 0 -> 330 bytes graphics/battle_anims/sprites/177.png | Bin 0 -> 186 bytes graphics/battle_anims/sprites/178.png | Bin 0 -> 358 bytes graphics/battle_anims/sprites/179.png | Bin 0 -> 226 bytes graphics/battle_anims/sprites/180.png | Bin 0 -> 139 bytes graphics/battle_anims/sprites/181.png | Bin 0 -> 542 bytes graphics/battle_anims/sprites/182.png | Bin 0 -> 235 bytes graphics/battle_anims/sprites/183.png | Bin 0 -> 546 bytes graphics/battle_anims/sprites/184.png | Bin 0 -> 332 bytes graphics/battle_anims/sprites/185.png | Bin 0 -> 819 bytes graphics/battle_anims/sprites/186.png | Bin 0 -> 599 bytes graphics/battle_anims/sprites/187.png | Bin 0 -> 336 bytes graphics/battle_anims/sprites/259.pal | 19 + graphics/battle_anims/sprites/288.pal | 19 + graphics/battle_anims/sprites/particles.png | Bin 0 -> 277 bytes graphics/contest/audience.png | Bin 0 -> 2086 bytes graphics/contest/faces.png | Bin 0 -> 1028 bytes graphics/contest/heart.png | Bin 0 -> 873 bytes graphics/contest/judge.png | Bin 0 -> 593 bytes graphics/contest/judge_symbols.png | Bin 0 -> 401 bytes graphics/contest/misc.png | Bin 0 -> 1680 bytes graphics/contest/misc_2.pal | 259 +++++++++ graphics/contest/misc_2.png | Bin 0 -> 1775 bytes graphics/contest/misc_2_tilemap_1.bin | Bin 0 -> 2048 bytes graphics/contest/misc_2_tilemap_2.bin | Bin 0 -> 2048 bytes graphics/contest/misc_2_tilemap_3.bin | 1 + graphics/unknown/unknown_C17170.bin | Bin 0 -> 4096 bytes graphics/unknown/unknown_C17410.bin | Bin 0 -> 2048 bytes graphics/unknown/unknown_C1751C.bin | Bin 0 -> 8192 bytes graphics/unknown/unknown_C17980.bin | Bin 0 -> 2048 bytes graphics/unknown/unknown_C19470.png | Bin 0 -> 255 bytes graphics/unknown/unknown_D1C060.bin | Bin 0 -> 2048 bytes graphics/unknown/unknown_D1C060.png | Bin 0 -> 159 bytes graphics/unused/goosuto.bin | Bin 0 -> 2048 bytes graphics/unused/goosuto.png | Bin 0 -> 290 bytes graphics/unused/old_beatup.png | Bin 0 -> 220 bytes graphics/unused/old_contest_2.bin | Bin 0 -> 2048 bytes graphics/unused/old_contest_2.pal | 259 +++++++++ graphics_file_rules.mk | 18 +- 98 files changed, 1309 insertions(+), 83 deletions(-) create mode 100755 graphics/battle_anims/backgrounds/00.bin create mode 100755 graphics/battle_anims/backgrounds/00.png create mode 100755 graphics/battle_anims/backgrounds/03.bin create mode 100755 graphics/battle_anims/backgrounds/03.png create mode 100755 graphics/battle_anims/masks/metal_shine.bin create mode 100755 graphics/battle_anims/masks/metal_shine.png create mode 100755 graphics/battle_anims/sprites/001.pal create mode 100755 graphics/battle_anims/sprites/001_0.png create mode 100755 graphics/battle_anims/sprites/001_1.png create mode 100755 graphics/battle_anims/sprites/074.pal create mode 100755 graphics/battle_anims/sprites/074_0.png create mode 100755 graphics/battle_anims/sprites/074_1.png create mode 100755 graphics/battle_anims/sprites/135.png create mode 100755 graphics/battle_anims/sprites/136.png create mode 100755 graphics/battle_anims/sprites/137.png create mode 100755 graphics/battle_anims/sprites/138.png create mode 100755 graphics/battle_anims/sprites/139.png create mode 100755 graphics/battle_anims/sprites/140.png create mode 100755 graphics/battle_anims/sprites/141.pal create mode 100755 graphics/battle_anims/sprites/141_0.png create mode 100755 graphics/battle_anims/sprites/141_1.png create mode 100755 graphics/battle_anims/sprites/141_2.png create mode 100755 graphics/battle_anims/sprites/141_3.png create mode 100755 graphics/battle_anims/sprites/141_4.png create mode 100755 graphics/battle_anims/sprites/142.png create mode 100755 graphics/battle_anims/sprites/144.png create mode 100755 graphics/battle_anims/sprites/145.png create mode 100755 graphics/battle_anims/sprites/147.png create mode 100755 graphics/battle_anims/sprites/148.png create mode 100755 graphics/battle_anims/sprites/149.png create mode 100755 graphics/battle_anims/sprites/150.png create mode 100755 graphics/battle_anims/sprites/151.png create mode 100755 graphics/battle_anims/sprites/153.png create mode 100755 graphics/battle_anims/sprites/154.png create mode 100755 graphics/battle_anims/sprites/155.png create mode 100755 graphics/battle_anims/sprites/156.png create mode 100755 graphics/battle_anims/sprites/157.png create mode 100755 graphics/battle_anims/sprites/158.png create mode 100755 graphics/battle_anims/sprites/159.pal create mode 100755 graphics/battle_anims/sprites/159_0.png create mode 100755 graphics/battle_anims/sprites/159_1.png create mode 100755 graphics/battle_anims/sprites/160.png create mode 100755 graphics/battle_anims/sprites/162.png create mode 100755 graphics/battle_anims/sprites/163.png create mode 100755 graphics/battle_anims/sprites/164.pal create mode 100755 graphics/battle_anims/sprites/165.pal create mode 100755 graphics/battle_anims/sprites/166.png create mode 100755 graphics/battle_anims/sprites/167.pal create mode 100755 graphics/battle_anims/sprites/168.pal create mode 100755 graphics/battle_anims/sprites/169.pal create mode 100755 graphics/battle_anims/sprites/170.pal create mode 100755 graphics/battle_anims/sprites/171.png create mode 100755 graphics/battle_anims/sprites/172.pal create mode 100755 graphics/battle_anims/sprites/173.png create mode 100755 graphics/battle_anims/sprites/174.png create mode 100755 graphics/battle_anims/sprites/175.png create mode 100755 graphics/battle_anims/sprites/176.png create mode 100755 graphics/battle_anims/sprites/177.png create mode 100755 graphics/battle_anims/sprites/178.png create mode 100755 graphics/battle_anims/sprites/179.png create mode 100755 graphics/battle_anims/sprites/180.png create mode 100755 graphics/battle_anims/sprites/181.png create mode 100755 graphics/battle_anims/sprites/182.png create mode 100755 graphics/battle_anims/sprites/183.png create mode 100755 graphics/battle_anims/sprites/184.png create mode 100755 graphics/battle_anims/sprites/185.png create mode 100755 graphics/battle_anims/sprites/186.png create mode 100755 graphics/battle_anims/sprites/187.png create mode 100755 graphics/battle_anims/sprites/259.pal create mode 100755 graphics/battle_anims/sprites/288.pal create mode 100755 graphics/battle_anims/sprites/particles.png create mode 100755 graphics/contest/audience.png create mode 100755 graphics/contest/faces.png create mode 100755 graphics/contest/heart.png create mode 100755 graphics/contest/judge.png create mode 100755 graphics/contest/judge_symbols.png create mode 100755 graphics/contest/misc.png create mode 100755 graphics/contest/misc_2.pal create mode 100755 graphics/contest/misc_2.png create mode 100755 graphics/contest/misc_2_tilemap_1.bin create mode 100755 graphics/contest/misc_2_tilemap_2.bin create mode 100755 graphics/contest/misc_2_tilemap_3.bin create mode 100755 graphics/unknown/unknown_C17170.bin create mode 100755 graphics/unknown/unknown_C17410.bin create mode 100755 graphics/unknown/unknown_C1751C.bin create mode 100755 graphics/unknown/unknown_C17980.bin create mode 100755 graphics/unknown/unknown_C19470.png create mode 100755 graphics/unknown/unknown_D1C060.bin create mode 100755 graphics/unknown/unknown_D1C060.png create mode 100755 graphics/unused/goosuto.bin create mode 100755 graphics/unused/goosuto.png create mode 100755 graphics/unused/old_beatup.png create mode 100755 graphics/unused/old_contest_2.bin create mode 100755 graphics/unused/old_contest_2.pal diff --git a/asm/contest.s b/asm/contest.s index e3e4ccf865..1eb0834dfa 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -6652,7 +6652,7 @@ sub_80DB0C4: @ 80DB0C4 push {r4,r5,lr} ldr r0, =gUnknown_08587C00 bl LoadCompressedObjectPic - ldr r0, =gUnknown_08C1C6B8 + ldr r0, =gContest2Pal movs r1, 0x88 lsls r1, 1 movs r2, 0x20 diff --git a/data/battle_anim_8170478.s b/data/battle_anim_8170478.s index 0e0f749fe9..d77be4d3b0 100644 --- a/data/battle_anim_8170478.s +++ b/data/battle_anim_8170478.s @@ -10,33 +10,33 @@ gUnknown_085E5088:: @ 85E5088 .align 2 gUnknown_085E5094:: @ 85E5094 - .4byte gUnknown_08C1A490, 0xd6ec0100 - .4byte gUnknown_08C1A490, 0xd6ed0100 - .4byte gUnknown_08C1A490, 0xd6ee0100 - .4byte gUnknown_08C1A490, 0xd6ef0100 - .4byte gUnknown_08C1A490, 0xd6f00100 - .4byte gUnknown_08C1A490, 0xd6f10100 - .4byte gUnknown_08C1A490, 0xd6f20100 - .4byte gUnknown_08C1A490, 0xd6f30100 - .4byte gUnknown_08C1A490, 0xd6f40100 - .4byte gUnknown_08C1A490, 0xd6f50100 - .4byte gUnknown_08C1A490, 0xd6f60100 - .4byte gUnknown_08C1A490, 0xd6f70100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6ec0100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6ed0100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6ee0100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6ef0100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6f00100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6f10100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6f20100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6f30100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6f40100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6f50100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6f60100 + .4byte gBattleAnimSpriteSheet_Particles, 0xd6f70100 .align 2 gUnknown_085E50F4:: @ 85E50F4 - .4byte gUnknown_08C1A564, 0x0000d6ec - .4byte gUnknown_08C1A564, 0x0000d6ed - .4byte gUnknown_08C1A564, 0x0000d6ee - .4byte gUnknown_08C1A564, 0x0000d6ef - .4byte gUnknown_08C1A564, 0x0000d6f0 - .4byte gUnknown_08C1A564, 0x0000d6f1 - .4byte gUnknown_08C1A564, 0x0000d6f2 - .4byte gUnknown_08C1A564, 0x0000d6f3 - .4byte gUnknown_08C1A564, 0x0000d6f4 - .4byte gUnknown_08C1A564, 0x0000d6f5 - .4byte gUnknown_08C1A564, 0x0000d6f6 - .4byte gUnknown_08C1A564, 0x0000d6f7 + .4byte gBattleAnimSpritePalette_136, 0x0000d6ec + .4byte gBattleAnimSpritePalette_136, 0x0000d6ed + .4byte gBattleAnimSpritePalette_136, 0x0000d6ee + .4byte gBattleAnimSpritePalette_136, 0x0000d6ef + .4byte gBattleAnimSpritePalette_136, 0x0000d6f0 + .4byte gBattleAnimSpritePalette_136, 0x0000d6f1 + .4byte gBattleAnimSpritePalette_136, 0x0000d6f2 + .4byte gBattleAnimSpritePalette_136, 0x0000d6f3 + .4byte gBattleAnimSpritePalette_136, 0x0000d6f4 + .4byte gBattleAnimSpritePalette_136, 0x0000d6f5 + .4byte gBattleAnimSpritePalette_136, 0x0000d6f6 + .4byte gBattleAnimSpritePalette_136, 0x0000d6f7 .align 2 gUnknown_085E5154:: @ 85E5154 diff --git a/data/graphics.s b/data/graphics.s index 7b8b2488d9..44a587447f 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1053,151 +1053,151 @@ gUnknown_08C1249C:: @ 8C1249C .incbin "graphics/battle_interface/unused_window4.4bpp.lz" .align 2 -gBattleAnimSpriteSheet_116:: @ 8D1302C +gBattleAnimSpriteSheet_116:: .incbin "graphics/battle_anims/sprites/116.4bpp.lz" .align 2 -gBattleAnimSpritePalette_116:: @ 8D132D8 +gBattleAnimSpritePalette_116:: .incbin "graphics/battle_anims/sprites/116.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_117:: @ 8D13300 +gBattleAnimSpriteSheet_117:: .incbin "graphics/battle_anims/sprites/117.4bpp.lz" .align 2 -gBattleAnimSpritePalette_117:: @ 8D1353C +gBattleAnimSpritePalette_117:: .incbin "graphics/battle_anims/sprites/117.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_118:: @ 8D13558 +gBattleAnimSpriteSheet_118:: .incbin "graphics/battle_anims/sprites/118.4bpp.lz" .align 2 -gBattleAnimSpritePalette_118:: @ 8D136F0 +gBattleAnimSpritePalette_118:: .incbin "graphics/battle_anims/sprites/118.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_119:: @ 8D1370C +gBattleAnimSpriteSheet_119:: .incbin "graphics/battle_anims/sprites/119.4bpp.lz" .align 2 -gBattleAnimSpritePalette_119:: @ 8D1399C +gBattleAnimSpritePalette_119:: .incbin "graphics/battle_anims/sprites/119.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_120:: @ 8D139C4 +gBattleAnimSpriteSheet_120:: .incbin "graphics/battle_anims/sprites/120.4bpp.lz" .align 2 -gBattleAnimSpritePalette_120:: @ 8D13AB8 +gBattleAnimSpritePalette_120:: .incbin "graphics/battle_anims/sprites/120.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_121:: @ 8D13AE0 +gBattleAnimSpriteSheet_121:: .incbin "graphics/battle_anims/sprites/121.4bpp.lz" .align 2 -gBattleAnimSpritePalette_121:: @ 8D13B0C +gBattleAnimSpritePalette_121:: .incbin "graphics/battle_anims/sprites/121.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_122:: @ 8D13B30 +gBattleAnimSpriteSheet_122:: .incbin "graphics/battle_anims/sprites/122.4bpp.lz" .align 2 -gBattleAnimSpritePalette_122:: @ 8D13C2C +gBattleAnimSpritePalette_122:: .incbin "graphics/battle_anims/sprites/122.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_123:: @ 8D13C48 +gBattleAnimSpriteSheet_123:: .incbin "graphics/battle_anims/sprites/123.4bpp.lz" .align 2 -gBattleAnimSpriteSheet_124:: @ 8D13D84 +gBattleAnimSpriteSheet_124:: .incbin "graphics/battle_anims/sprites/124.4bpp.lz" .align 2 -gBattleAnimSpritePalette_124:: @ 8D1401C +gBattleAnimSpritePalette_124:: .incbin "graphics/battle_anims/sprites/124.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_125:: @ 8D14044 +gBattleAnimSpriteSheet_125:: .incbin "graphics/battle_anims/sprites/125.4bpp.lz" .align 2 -gBattleAnimSpritePalette_125:: @ 8D14130 +gBattleAnimSpritePalette_125:: .incbin "graphics/battle_anims/sprites/125.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_126:: @ 8D14158 +gBattleAnimSpriteSheet_126:: .incbin "graphics/battle_anims/sprites/126.4bpp.lz" .align 2 -gBattleAnimSpritePalette_126:: @ 8D141C0 +gBattleAnimSpritePalette_126:: .incbin "graphics/battle_anims/sprites/126.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_127:: @ 8D141E0 +gBattleAnimSpriteSheet_127:: .incbin "graphics/battle_anims/sprites/127.4bpp.lz" .align 2 -gBattleAnimSpritePalette_127:: @ 8D14380 +gBattleAnimSpritePalette_127:: .incbin "graphics/battle_anims/sprites/127.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_128:: @ 8D143A4 +gBattleAnimSpriteSheet_128:: .incbin "graphics/battle_anims/sprites/128.4bpp.lz" .align 2 -gBattleAnimSpritePalette_128:: @ 8D14610 +gBattleAnimSpritePalette_128:: .incbin "graphics/battle_anims/sprites/128.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_129:: @ 8D14630 +gBattleAnimSpriteSheet_129:: .incbin "graphics/battle_anims/sprites/129.4bpp.lz" .align 2 -gBattleAnimSpriteSheet_130:: @ 8D14694 +gBattleAnimSpriteSheet_130:: .incbin "graphics/battle_anims/sprites/130.4bpp.lz" .align 2 -gBattleAnimSpritePalette_130:: @ 8D14A64 +gBattleAnimSpritePalette_130:: .incbin "graphics/battle_anims/sprites/130.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_131:: @ 8D14A8C +gBattleAnimSpriteSheet_131:: .incbin "graphics/battle_anims/sprites/131.4bpp.lz" .align 2 -gBattleAnimSpriteSheet_132:: @ 8D14BFC +gBattleAnimSpriteSheet_132:: .incbin "graphics/battle_anims/sprites/132.4bpp.lz" .align 2 -gBattleAnimSpritePalette_132:: @ 8D14CFC +gBattleAnimSpritePalette_132:: .incbin "graphics/battle_anims/sprites/132.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_133:: @ 8D14D1C +gBattleAnimSpriteSheet_133:: .incbin "graphics/battle_anims/sprites/133.4bpp.lz" .align 2 -gBattleAnimSpritePalette_133:: @ 8D14D98 +gBattleAnimSpritePalette_133:: .incbin "graphics/battle_anims/sprites/133.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_134:: @ 8D14DC0 +gBattleAnimSpriteSheet_134:: .incbin "graphics/battle_anims/sprites/134.4bpp.lz" .align 2 -gBattleAnimSpriteSheet_076:: @ 8D14E90 +gBattleAnimSpriteSheet_076:: .incbin "graphics/battle_anims/sprites/076.4bpp.lz" .align 2 -gBattleAnimSpritePalette_076:: @ 8D150CC +gBattleAnimSpritePalette_076:: .incbin "graphics/battle_anims/sprites/076.gbapal.lz" .align 2 -gBattleAnimSpriteSheet_077:: @ 8D150F4 +gBattleAnimSpriteSheet_077:: .incbin "graphics/battle_anims/sprites/077.4bpp.lz" .align 2 @@ -1215,56 +1215,500 @@ gBattleAnimSpriteSheet_077:: @ 8D150F4 .align 2 .incbin "graphics/unused/old_contest_2.4bpp.lz" + .align 2 gUnknown_08C16E90:: @ 8C16E90 - .incbin "baserom.gba", 0xc16e90, 0x118 + .incbin "graphics/unused/old_contest_2.gbapal.lz" + .align 2 gUnknown_08C16FA8:: @ 8C16FA8 - .incbin "baserom.gba", 0xc16fa8, 0x1c8 + .incbin "graphics/unused/old_contest_2.bin.lz" + .align 2 gUnknown_08C17170:: @ 8C17170 - .incbin "baserom.gba", 0xc17170, 0x810 + .incbin "graphics/unknown/unknown_C17170.bin.lz" + .align 2 + .incbin "graphics/unknown/unknown_C17410.bin.lz" + + .align 2 + .incbin "graphics/unknown/unknown_C1751C.bin.lz" + + .align 2 gUnknown_08C17980:: @ 8C17980 - .incbin "baserom.gba", 0xc17980, 0x130 + .incbin "graphics/unknown/unknown_C17980.bin.lz" + .align 2 gUnknown_08C17AB0:: @ 8C17AB0 - .incbin "baserom.gba", 0xc17ab0, 0xa5c + .incbin "graphics/contest/misc.4bpp.lz" + .align 2 gUnknown_08C1850C:: @ 8C1850C - .incbin "baserom.gba", 0xc1850c, 0x107c + .incbin "graphics/contest/audience.4bpp.lz" + .align 2 + .incbin "graphics/contest/faces.4bpp.lz" + + .align 2 +gContestJudgeSymbolsGfx:: + .incbin "graphics/contest/judge_symbols.4bpp.lz" + + .align 2 +gContest3Pal:: + .incbin "graphics/contest/judge_symbols.gbapal.lz" + + .align 2 +gTiles_8C19450:: + .incbin "graphics/contest/heart.4bpp" + + .align 2 + .incbin "graphics/unknown/unknown_C19470.4bpp.lz" + + .align 2 + .incbin "graphics/unknown/unknown_C19470.gbapal.lz" + + .align 2 gUnknown_08C19588:: @ 8C19588 - .incbin "baserom.gba", 0xc19588, 0x964 + .incbin "graphics/contest/misc_2.4bpp.lz" + .align 2 gUnknown_08C19EEC:: @ 8C19EEC - .incbin "baserom.gba", 0xc19eec, 0x114 + .incbin "graphics/contest/misc_2_tilemap_1.bin.lz" + .align 2 gUnknown_08C1A000:: @ 8C1A000 - .incbin "baserom.gba", 0xc1a000, 0x12c + .incbin "graphics/contest/misc_2_tilemap_2.bin.lz" + .align 2 gUnknown_08C1A12C:: @ 8C1A12C - .incbin "baserom.gba", 0xc1a12c, 0x188 + .incbin "graphics/contest/misc_2_tilemap_3.bin.lz" + .align 2 gUnknown_08C1A2B4:: @ 8C1A2B4 - .incbin "baserom.gba", 0xc1a2b4, 0x1DC + .incbin "graphics/contest/misc_2.gbapal.lz" -gUnknown_08C1A490:: @ 8C1A490 - .incbin "baserom.gba", 0xc1a490, 0xD4 + .align 2 +gBattleAnimSpriteSheet_135:: + .incbin "graphics/battle_anims/sprites/135.4bpp.lz" -gUnknown_08C1A564:: @ 8C1A564 - .incbin "baserom.gba", 0xc1a564, 0x2154 + .align 2 +gBattleAnimSpritePalette_135:: + .incbin "graphics/battle_anims/sprites/135.gbapal.lz" -gUnknown_08C1C6B8:: @ 8C1C6B8 - .incbin "baserom.gba", 0xc1c6b8, 0x9f4 + .align 2 +gBattleAnimSpriteSheet_Particles:: + .incbin "graphics/battle_anims/sprites/particles.4bpp.lz" + .align 2 +gBattleAnimSpriteSheet_136:: + .incbin "graphics/battle_anims/sprites/136.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_136:: + .incbin "graphics/battle_anims/sprites/136.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_137:: + .incbin "graphics/battle_anims/sprites/137.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_139:: + .incbin "graphics/battle_anims/sprites/139.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_139:: + .incbin "graphics/battle_anims/sprites/139.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_145:: + .incbin "graphics/battle_anims/sprites/145.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_138:: + .incbin "graphics/battle_anims/sprites/138.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_140:: + .incbin "graphics/battle_anims/sprites/140.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_140:: + .incbin "graphics/battle_anims/sprites/140.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_141:: + .incbin "graphics/battle_anims/sprites/141.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_141:: + .incbin "graphics/battle_anims/sprites/141.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_142:: + .incbin "graphics/battle_anims/sprites/142.4bpp.lz" + + .align 2 + .incbin "graphics/unused/old_beatup.4bpp.lz" + + .align 2 + .incbin "graphics/unused/old_beatup.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_147:: + .incbin "graphics/battle_anims/sprites/147.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_147:: + .incbin "graphics/battle_anims/sprites/147.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_149:: + .incbin "graphics/battle_anims/sprites/149.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_148:: + .incbin "graphics/battle_anims/sprites/148.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_148:: + .incbin "graphics/battle_anims/sprites/148.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_259:: + .incbin "graphics/battle_anims/sprites/259.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_074:: + .incbin "graphics/battle_anims/sprites/074.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_074:: + .incbin "graphics/battle_anims/sprites/074.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_150:: + .incbin "graphics/battle_anims/sprites/150.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_150:: + .incbin "graphics/battle_anims/sprites/150.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_151:: + .incbin "graphics/battle_anims/sprites/151.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_153:: + .incbin "graphics/battle_anims/sprites/153.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_153:: + .incbin "graphics/battle_anims/sprites/153.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_154:: + .incbin "graphics/battle_anims/sprites/154.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_154:: + .incbin "graphics/battle_anims/sprites/154.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_155:: + .incbin "graphics/battle_anims/sprites/155.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_155:: + .incbin "graphics/battle_anims/sprites/155.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_156:: + .incbin "graphics/battle_anims/sprites/156.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_156:: + .incbin "graphics/battle_anims/sprites/156.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_157:: + .incbin "graphics/battle_anims/sprites/157.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_157:: + .incbin "graphics/battle_anims/sprites/157.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_158:: + .incbin "graphics/battle_anims/sprites/158.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_158:: + .incbin "graphics/battle_anims/sprites/158.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_159:: + .incbin "graphics/battle_anims/sprites/159.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_159:: + .incbin "graphics/battle_anims/sprites/159.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_160:: + .incbin "graphics/battle_anims/sprites/160.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_160:: + .incbin "graphics/battle_anims/sprites/160.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_144:: + .incbin "graphics/battle_anims/sprites/144.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_144:: + .incbin "graphics/battle_anims/sprites/144.gbapal.lz" + + .align 2 + .incbin "graphics/unknown/unknown_D1C060.4bpp.lz" + + .align 2 + .incbin "graphics/unknown/unknown_D1C060.gbapal.lz" + + .align 2 + .incbin "graphics/unknown/unknown_D1C060.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_162:: + .incbin "graphics/battle_anims/sprites/162.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_162:: + .incbin "graphics/battle_anims/sprites/162.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_163:: + .incbin "graphics/battle_anims/sprites/163.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_163:: + .incbin "graphics/battle_anims/sprites/163.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_288:: + .incbin "graphics/battle_anims/sprites/288.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_164:: + .incbin "graphics/battle_anims/sprites/164.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_165:: + .incbin "graphics/battle_anims/sprites/165.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_166:: + .incbin "graphics/battle_anims/sprites/166.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_166:: + .incbin "graphics/battle_anims/sprites/166.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_167:: + .incbin "graphics/battle_anims/sprites/167.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_168:: + .incbin "graphics/battle_anims/sprites/168.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_169:: + .incbin "graphics/battle_anims/sprites/169.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_170:: + .incbin "graphics/battle_anims/sprites/170.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_171:: + .incbin "graphics/battle_anims/sprites/171.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_171:: + .incbin "graphics/battle_anims/sprites/171.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_172:: + .incbin "graphics/battle_anims/sprites/172.gbapal.lz" + + .align 2 +gContestJudgeGfx:: + .incbin "graphics/contest/judge.4bpp.lz" + + .align 2 +gContest2Pal:: @ 8C1C6B8 + .incbin "graphics/contest/judge.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_001:: + .incbin "graphics/battle_anims/sprites/001.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_001:: + .incbin "graphics/battle_anims/sprites/001.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_173:: + .incbin "graphics/battle_anims/sprites/173.4bpp.lz" + + .align 2 +gBattleAnimBackgroundImage_00:: + .incbin "graphics/battle_anims/backgrounds/00.4bpp.lz" + + .align 2 +gBattleAnimBackgroundPalette_00:: + .incbin "graphics/battle_anims/backgrounds/00.gbapal.lz" + + .align 2 +gBattleAnimBackgroundTilemap_00:: + .incbin "graphics/battle_anims/backgrounds/00.bin.lz" + + .align 2 gUnknown_08C1D0AC:: @ 8C1D0AC - .incbin "baserom.gba", 0xc1d0ac, 0x13c + .incbin "graphics/battle_anims/masks/metal_shine.4bpp.lz" + .align 2 gUnknown_08C1D1E8:: @ 8C1D1E8 - .incbin "baserom.gba", 0xc1d1e8, 0x28 + .incbin "graphics/battle_anims/masks/metal_shine.gbapal.lz" + .align 2 gUnknown_08C1D210:: @ 8C1D210 - .incbin "baserom.gba", 0xc1d210, 0x1fb8 + .incbin "graphics/battle_anims/masks/metal_shine.bin.lz" + + .align 2 + .incbin "graphics/unused/goosuto.4bpp.lz" @ ghost + + .align 2 + .incbin "graphics/unused/goosuto.gbapal.lz" + + .align 2 + .incbin "graphics/unused/goosuto.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_174:: + .incbin "graphics/battle_anims/sprites/174.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_174:: + .incbin "graphics/battle_anims/sprites/174.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_175:: + .incbin "graphics/battle_anims/sprites/175.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_175:: + .incbin "graphics/battle_anims/sprites/175.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_176:: + .incbin "graphics/battle_anims/sprites/176.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_176:: + .incbin "graphics/battle_anims/sprites/176.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_177:: + .incbin "graphics/battle_anims/sprites/177.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_177:: + .incbin "graphics/battle_anims/sprites/177.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_178:: + .incbin "graphics/battle_anims/sprites/178.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_178:: + .incbin "graphics/battle_anims/sprites/178.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_179:: + .incbin "graphics/battle_anims/sprites/179.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_179:: + .incbin "graphics/battle_anims/sprites/179.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_180:: + .incbin "graphics/battle_anims/sprites/180.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_181:: + .incbin "graphics/battle_anims/sprites/181.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_182:: + .incbin "graphics/battle_anims/sprites/182.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_182:: + .incbin "graphics/battle_anims/sprites/182.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_183:: + .incbin "graphics/battle_anims/sprites/183.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_183:: + .incbin "graphics/battle_anims/sprites/183.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_184:: + .incbin "graphics/battle_anims/sprites/184.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_184:: + .incbin "graphics/battle_anims/sprites/184.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_185:: + .incbin "graphics/battle_anims/sprites/185.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_185:: + .incbin "graphics/battle_anims/sprites/185.gbapal.lz" + + .align 2 +gBattleAnimBackgroundImage_03:: + .incbin "graphics/battle_anims/backgrounds/03.4bpp.lz" + + .align 2 +gBattleAnimBackgroundPalette_03:: + .incbin "graphics/battle_anims/backgrounds/03.gbapal.lz" + + .align 2 +gBattleAnimBackgroundTilemap_03:: + .incbin "graphics/battle_anims/backgrounds/03.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_187:: + .incbin "graphics/battle_anims/sprites/187.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_187:: + .incbin "graphics/battle_anims/sprites/187.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_186:: + .incbin "graphics/battle_anims/sprites/186.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_186:: + .incbin "graphics/battle_anims/sprites/186.gbapal.lz" gUnknown_08C1F1C8:: @ 8C1F1C8 .incbin "baserom.gba", 0xc1f1c8, 0x2a4 diff --git a/graphics/battle_anims/backgrounds/00.bin b/graphics/battle_anims/backgrounds/00.bin new file mode 100755 index 0000000000000000000000000000000000000000..dc70b2cf88113b71c9a1169637b5dad149a1a462 GIT binary patch literal 2048 zcmeIuHE$eI6b0ZEk?kU!Ht>a+nVFfHnVA{ghTVqKhSP@KhW&RUW#&G~BdxYfvwG4> zr?~U&In6ZJLQ6gM(pw*W_0!*gl<#}sp+`2_WV0={+Ge{QDYw&J2OW(x%4lPZHO_bw zQhx4*mtHyOki(8R>X_qBq#SNIk3I3!Gm*oklg_&6s+;b5h#YP>uf6fsJCVa3Xpq5% z7;2c|Mu=Q=iv7ZwX_ndMm}{Q-7KmJQiv2RD+Dfaew#HiPthXWMa{a=o(fIAP&wdBe zj?t&sFWko0HO@NcybEc^aEkrH*=d*E_J};yG}FyUJBCy27tTqioOUL;OD(h9inL?= zzxaMDt+mlsI1^1W*_4#4Ty@R$v}4?dS1o(tEVRgCOGK`6$6fc*s^P|6xZ%{g=#tB> zl27R3*Z54#0?l)49~o51HTp#CGE)UR8BxzGVSiH);L zxWV%PABoTem_*&f2LLS7mCyiuG9ap=1yBg60D!RZCIAXhctn8PeC;#uXH` zo(1Nc5~2}X+X0SC$^dTUT;U;J2s{cvfK-;(1q^4v3cy*uE+Ma+3hXpp$63B?vzW!1mEx|uo%|KFu&l`#W?V$h+{!{?q zwQ&fDDgbGXfbggMuST1;@c?*-iL3|V1Q7$H0mdDuF;s%@g-5g{2@;`$ard=E)4{Tf zhXl~?OYYwNu#{XYdj>p8fWD6Y6%>Fi1w`I~;CmjM6Ei?$1&FZ#gvfwAPV>!Qb&`e< z$qC=?K`8{7?L8*~gc&R5ZxP_DCIEN&=0jdZ49pH7C749+mt&mDvoSaT@NwD_V21_j zfLW&{JpknL^|kv(tG5q13wKX|8IHdE-H+o2KbwW^ftdi4oGm#8z+N0ZL!&+FuLzi9 zzz>Fh%1sa0JN&pA)&lyjudTNYB?1F^{DL^B{Ie3$YX0GUwr6<~?mz70Gt0I~$w0lfi0H`iNOt^+a@^}N)A zDPfU!fS9TSi#*P60uGa5II6(%kAY_uIM46jP?Gz%ETr@NrfEFOZ&^r(K%9^7sn8f&ZAd079LiRI9j;A!L32? z0*8SE*NeLcIFeXa`f$#TS~2Ozq^75Tey%Y;uzJz6&|kl;=e{qG-m+2e+2Y#$-`3^5 zS-iH?F3Tv_--InX}i)3)u3)z`0GY@Bdu z+gtb9n@+8n$9LlV^uH_qhL;)YU0}4VU%$2A{^rqN9_&y4-1;?R)BMw~gk?2~>gF4t zo>#>?lkZK@znUXD)w4`LH7@SWobyNYcEI|l%(Z&QjyEl3F0DCv+@IB({YlZ@Uop3S z#@QKco!Gx$`)izCfhB|Z3kI16?h*#R1FT@~j{{E`ViqtLFaWK!K$f*)V1K|Q+rV7V u$ajEo#{u?#_nS{M?r>m#zz~ygzn;nC+v&&k-Pcxu!qC&z&t;ucLK6VtA*_%9 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/masks/metal_shine.bin b/graphics/battle_anims/masks/metal_shine.bin new file mode 100755 index 0000000000000000000000000000000000000000..fed60df365b6fb32db0b5f70ecd2a72f6a6c3ab3 GIT binary patch literal 2048 zcmeIv+g1Tk5P;zwIVB>MltWIH#6nnf;MKlI?-{mBYp=PTZ!Z1`E@Wg~%E>DTkyBK1 zrR-Wo)lH-hYU*w^+`0Fl8SNjnJbBjE(bbFgFZu?CM#f&fMf-OXAErLd%%gR%u(a}J hZDV_a-`V^2 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/masks/metal_shine.png b/graphics/battle_anims/masks/metal_shine.png new file mode 100755 index 0000000000000000000000000000000000000000..a9c5a952c8232103cbf170bceb184799d4b16fb1 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*Pu23fndp$?xbeT>N$>6 zwnVKtTYU6c_r3p1g4Qr3ZIP%xYB=Sp*P44tN8eT7`#%z b0|P_5l=S|&Ni5TWrZITB`njxgN@xNAjJ`q- literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/001.pal b/graphics/battle_anims/sprites/001.pal new file mode 100755 index 0000000000..81af310e13 --- /dev/null +++ b/graphics/battle_anims/sprites/001.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 148 139 +255 139 0 +255 156 8 +255 172 24 +255 197 41 +255 213 57 +255 230 74 +255 255 90 +255 255 255 +255 74 106 +255 115 148 +255 164 197 +255 205 238 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/001_0.png b/graphics/battle_anims/sprites/001_0.png new file mode 100755 index 0000000000000000000000000000000000000000..77c454dcb7744ad33bb7f01857fa2f89080c0efc GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^96;>A!VDy@YH9BTQU(D&A+AfNbpP*W_&YRnwfz6g>;M0#|3KiC^}l$^|0PHNpM3{Z4gpUO9@+zB*?PJ-hDc0JPDm(B0D?kB zK^~13?l}zFi3NoXh6i=Tb#5JawLw6~fY;;M#sj<#NxOC^Xr~oAgxYZ2WoMYDE+Bcn Rf2je;NKaQkmvv4FO#tDRKvVz# literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/001_1.png b/graphics/battle_anims/sprites/001_1.png new file mode 100755 index 0000000000000000000000000000000000000000..2cfd6bd0b9267b3f2009261a4e99390d7b9e9b48 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!VDxI2ESSgqznRlLR^Hgo%@P7`+|1}c- zk81wEYWe?}*Z==f|AD|O>woc-|4WYkKl=`-90HymJhTVM3iNbw4AGeQHejb9g8|2) z0t4=E^EKzI1sXf$Ja9S6%+L{z+!H~k`AC5lW q`s&#V&mC@C1e{MA{;6p)`JDOlgfgSS`NJSrGI+ZBxvXg>7x^rXCxRW=~f?mvv4FO#mPhFk}D# literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/074_1.png b/graphics/battle_anims/sprites/074_1.png new file mode 100755 index 0000000000000000000000000000000000000000..827ec5d489a36dd1ee4173ab77b292be4b1d617f GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUT{5M+I4dbAC}_!&CIA2b zKf0xO$&{exV#}l;2`@{AvuBSsH#Y;-!a&?0BeIV-@JYD@< J);T3K0RVG54 zIfotBBBR{&@?<)L??!B8nly*Cbx)Sc#%z%-9@q9oER>p?wzh)Nt?l!d(+T2g20P~* zn0e^EUfy@>O+R}%8745f)+ctIZ)cpV+@jdbqafn-Q}^3v*}R!g-JGY{8BGDX)zj6_ JWt~$(69DcsPT&9l literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/136.png b/graphics/battle_anims/sprites/136.png new file mode 100755 index 0000000000000000000000000000000000000000..cc99103d5d9a72c21f549eece2cee7e09a332327 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^93afX3?$7I7w-U41_3@Hu1T8zL0}ET|NlY%{{zV- z-Oc}(%=y1%%m1@y|37>7|G!~S_x~kcbE?<;?+$v`yk;l+HK1NaPZ!4!j+w~`49se* t3W-T9DLW*z4GbiiIoVQ`XRrt`FlgOjQoMCg>p4&{gQu&X%Q~loCIE27I5GeL literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/137.png b/graphics/battle_anims/sprites/137.png new file mode 100755 index 0000000000000000000000000000000000000000..7f3d266443f7def7192f71ef193b63a3c6227c89 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^3P8Mog&9cBe^M+DqznRlLR^zH{{xw4=O{cooAm$x z8Xy}#xW>es%D}+L;_2cT;?emw%#rVi0*A?-C5kpF$$$RO7Q5}+dXQ!NP3O&;=I$(~ zd9DOq>#h9!`kK~k)2(^OUNS`4GCJ~q{C!+-o1^LKXuGm#l2}trqT`SmsVVJd~jgh+((Sk3HE{wybSLJ>|brXKXdh3uI4SjnjHhpt|oJE+-&Z2 zvCv>Sv2;o<%b`vgk7T{ny$mhYDGZ!<7GDUP|PaWII-r>!{%=07xivg5(b(3YxLW-Z9Bf65#2IHO!3uQ xhkswgZeG&<@!>8#s&%Vbc9dAjf5#*r?|8y zSuiu}i|&!E&?%A2%ZL^^#2YV?ba~~1wTIFdzK=h2V5iN|Prp)lo2r5X6i(FeTsZJ~ zw_tn1udkK-@@Luor%pDz%~4a8bXn=M;ScH0g^W+W8z=vn+A$C0L{C>gmvv4FO#pTK BP6Yq} literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/139.png b/graphics/battle_anims/sprites/139.png new file mode 100755 index 0000000000000000000000000000000000000000..38b74a9e488cb35764ec4c73eb25a868cbc1cf11 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*Q_bsKxR--(2^xf{{R1f zbW8D)DM8J}mPtVpUX~1+5C%UF5O+!jwC z&-8u#3-_FhTKYk&*H~~H(u31yMpH){s+fx1PS@jkW z3y2{284v(fp#kr8{CYs4Y)==*5RRF#XEyRSD2TXTT&)oCitPxePt1WP#+)~6*SyTo zl)b$^$)n=v$~e6#DXADkI{GNt3=>$?e`1eNE^d%Fwd5>Hn@mvv4FO#r{1R_Oo$ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/141.pal b/graphics/battle_anims/sprites/141.pal new file mode 100755 index 0000000000..c5f241feb2 --- /dev/null +++ b/graphics/battle_anims/sprites/141.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 148 139 +98 90 255 +115 106 255 +139 131 255 +164 156 255 +180 180 255 +205 205 255 +230 230 255 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +180 180 255 +205 205 255 +230 230 255 diff --git a/graphics/battle_anims/sprites/141_0.png b/graphics/battle_anims/sprites/141_0.png new file mode 100755 index 0000000000000000000000000000000000000000..631d344c877324b5f0e532f26d848e12ce97c915 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU&6?7k6!pJ2>wkCi|0Q$& zZ`tzy?Aia%p8W>`pb|KMi*H)0eHJKc@9E+g!Z9;BAtB*`MgjwK-?uMJ9I^A*(zZ^Y zzI^FYX35mdg$wo8O)++giRtO}ZQ!{kAf7DD&St>v#2l$0#b9(rn(xu0^jMGup00i_ I>zopr04QHVS^xk5 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/141_1.png b/graphics/battle_anims/sprites/141_1.png new file mode 100755 index 0000000000000000000000000000000000000000..95f24953f061478c6c32c743961ad38ba2563fe7 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^96&6ZRaQU(D&A+A|dx|5>*7iazNZvMYy z&i^f2{+~Vj|Jk$uKmb$%2XOICOSR7eMNK_j978x}CMP`5NJvP?@J|Oa{IwG@^!>fl yHN1HXRogfU4b2i0N)5{r5;zPQXB~QVfPq0JNof6y&Wp!D#(KK?xvXZRaQU(D&A+A|dx|5>*7iazNZvMYy z&i^f2{+~Vj|Jk$uKmb$%2XOICOSR7eMV&oe978x}igqgs9Z(Qp4ri2Ssnv=Q36Ctl zpQp8H^30qBnFVG&R~81%UcK|hEXMN6w|YI-SE|2Bz2Pkx{$Dr4DB~de;SEAo5ylLw PL6&&B`njxgN@xNAsb)q7 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/141_3.png b/graphics/battle_anims/sprites/141_3.png new file mode 100755 index 0000000000000000000000000000000000000000..02ac9d68ee5014677756756f1cc5ba86e277bd0a GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU&6?7k6!pJ2>wkCi|0Q$& zZ`tzy?Aia%p8W>`pb|KMi*H)0eHJKc?CIhd!Z9;B;Q+tItpz33kxVl##_=TFVdQ&MBb@00N&q!TZRaQU(D&A+A|dx|5>*7iazNZvMYy z&i^f2{+~Vj|Jk$uKmb$%2XOICOSR7eMb$iA978x}CMOuAB_t%|nKB41bYMEey2;U} kJ3%2)isx}sV8==xhTn(T?6ZvaXo1Y}boFyt=akR{021Ukga7~l literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/142.png b/graphics/battle_anims/sprites/142.png new file mode 100755 index 0000000000000000000000000000000000000000..130bcf82e6a37f901cf8d3f07e3a5fec7c4b0913 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^96;>A!VDy@YH9BTQU(D&A+A|dx|5>*7iazNZvMYy z&i^f2{+~Vj|Jk$uKmb$%2XOICOSR7eMZG*-9780gEqULZ9!4dFU1~?% z4sxuCT@*EUPQ|;1*%_jevpHR6%-tt1a?RnM^r7AJ_SJuJ{3WnN)I5Kdn6ud#kHk90 X8+&vOKQuha0@>y1>gTe~DWM4fWD`rR literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/144.png b/graphics/battle_anims/sprites/144.png new file mode 100755 index 0000000000000000000000000000000000000000..0699263956ae3b43b91b4e9c60b88fdcfdde5b0d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Q_bsNm2icv;KEC|6ela z|CTNP&z}AN?Ad=H04jk4xcH`}+Gl~HUY;(FAsQ2t6BM`$N=g=dww9W}YURM-%NW7Q z?jqa5FY>TKtA+Cb!xavTjE31=Nk;5WMFq@P9vmnzx3M{(vx3d!{o!VgPs(tZ$}J2IW-elhzg71yd?na$a^Zu`8@Ep7 z_OUyt=x_ggYDf;-eB(FE-n5AxYrD4Rjr%daHmCVldDp%2Jh91wp&#UGPgg&ebxsLQ E0Kq0`g#Z8m literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/147.png b/graphics/battle_anims/sprites/147.png new file mode 100755 index 0000000000000000000000000000000000000000..6dcc9cdffcaba3816343d3406934c45f4b577040 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioT$fDg{@=~;e-6k0H4^`i zYW}}!`Tv>M|Nl|{fxs*4fAN(6OOF0O`z~k=!m-TTY$7ZIhDt9X8uuz2+feZ~j3>Uscrn0bh@7b?Ty&S^rheS2Vuk zdZX{~yzcJwB1iYerptRbi0lZO5}NKfH@Tc`oBG{3=WkE(yAilx!p!0%uM=KDVRKna z`?j&0vBz$%6MoF7%gW`p`GiEGR|r_*nQ-tdfx0UJKYp+=IUo3|sZn9`{M?U~(_a5M zKjZB5Iaemh{F0O@lqvize)w(f*P{o2zifZ^?cb60dlY&F>`&Y&naXL4LhV@pT2 zU+YQ6YuztqE&swBBh!$w`SQA_EGMKR!ltlq*_U(6F>{i9^+b*)Zw{%;bt}K*=xvc_ oE9o=fv0S65^XhQkT8Vt-yf1}1)=&0sumri+)78&qol`;+02F^{%K!iX literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/149.png b/graphics/battle_anims/sprites/149.png new file mode 100755 index 0000000000000000000000000000000000000000..8e52802d7bff5b9b0cc14d057fb76aec7c5cb1b1 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!VDxI2ESSgqznRlLR_<^bSFjqFV6bk-TZ&a zoc~+4{6Bm4|FdWRfdHrk4&dUOmTI2`ik5h~IEH9UoZ7dM_oxGp(@B4}6S)F+Stjmr z;CgR=`TETc?URb#5p8jKe=qZ=9L8&p=c7^S%8;f@}UVgJwJ+k9q7mM511>Z7~ z`d_it72ADTA_-J)nE^L-O|?+3GFx2vFP)g^6^ Ot2|x(T-G@yGywp3VPMq& literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/150.png b/graphics/battle_anims/sprites/150.png new file mode 100755 index 0000000000000000000000000000000000000000..e6c55b57375fa79329eb7f9102979f358e487e80 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioT$fDg{{R2KBZFf%L-$pN ztN$7P-wV3;Zpk~KJXRpB#-Ig9c>2YZ_E=MuB~L><`^ceLg_1EzYDs3 lnU96!e=FQx)2jd0&~8hkao4O_r+q+9_H^}gS?83{1OQ%AU#|cF literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/151.png b/graphics/battle_anims/sprites/151.png new file mode 100755 index 0000000000000000000000000000000000000000..bf78192732dc548d85effdd618282ac764117c72 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^0zllr!VDxo?EWGMqznRlLR^Hh!!zaxWVH$(ST zhO7S>{@)9__io8MpgdL}t;V1al&JD_aSXBOO-_*5ciq{Jl#V3@@Et(6hyaMOoxXLV>q8Z(~L| zFJopqJCjWWoBxl1)5{kw)LX%(B%#Cif@jB40sYJBH5t!?ckExmdxArrVf)sg6N`SI Q>i{{=)78&qol`;+09R8?+W-In literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/153.png b/graphics/battle_anims/sprites/153.png new file mode 100755 index 0000000000000000000000000000000000000000..d3dd12ae1f5d3a0026103ced8cb49fd30248b6d7 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`i0hIm-9YC5H4Oj%cmMzY zAIQcJHYY}W1*&lJba4!kn3|k$fWgPhD?`can3orqhSI5H$J{hd&FFDt@RW36h@82} ykjEiZk)@}XgVSM4f<#xM?ykcZ=Jvg`3}Il1oG;w&aFjEOs#n52}C8r@%;U@i0EVy$4e zLj0R~tG_Re4l>L9S|?T>m>U*lsN8>Vk%#Ehhn7qJ{o`GFS*h*7iazNZvMYy z&i^f2{+~Vj|Jk$uKmb$%2XOICOSR7eMY}v*9780gmQJwcJ8ZzwI&ngkoXYCW#q8Is zr=79QN%Ir5jCL_h*xEa3`w!!KerW~;RRdK)Wf4)$Cw!_*MHj?39j@Zu<7Vi7eIbMY z-fTDZOJu%klyLbN4K|s2lR>QP`fnVY}jzD;`&uS9P2bJNviz lmlEI7<+oBaW8%JC|HoM9Rz5!{FzpD)t)8xaF6*2UngGD~X<+~W literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/156.png b/graphics/battle_anims/sprites/156.png new file mode 100755 index 0000000000000000000000000000000000000000..c0567df8c5bf0af890778dd3fcde6717134d2aa5 GIT binary patch literal 332 zcmV-S0ki&zP)Rs7Vc^0002j zNklUIF1L+US8@igNjj}Q^wheRL$?R+bGgb9( zNJ3^TWJ8eG-MMNkp{aKmLTT#>*6c8pc77oE*3_(kcHIyNL*E)sLb+}Xkr1Z7Wh8|5 z<2^2TOrDV-f!CZEoP=^?d}B%pLVpBiiDU;PtTu2vAYrv(*^#rrn1F=K+QMw&mh+gp zEP$}RGP$!5Lfqgup@b{)gc9BZCctNZ{%66@`-OZspHVOdagf3&hGCBD02T_aBv@*= e7Ash+zrho66fGb-pn9zU0000%=uUL^q|JJFw6~^>|*nh4Xx$#uQNj9*~8eu6{1-oD!M<=+-m? literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/158.png b/graphics/battle_anims/sprites/158.png new file mode 100755 index 0000000000000000000000000000000000000000..a91eaafdb2b5a76ff11d4193695e0af6e79aadaa GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!VDx|E`RzTNErn9gt#u5(hXz=1qCfxvgH5& z|3|kJFPRe5Tx^*XB;jSraQ5uc=H_Og0yr>y$$JyXY4db(43U_cd)APPMUjU!z%e4x zfAfTuYu3KmI#2CZ-sWdk%*#GaneDUei+SY}=SO$+u5UVNdADl$luut9MAyttP575F zRW-OkC61eA-t{?AKP8kkWPBK`dFy^x&fk3VNL1clFU_wt4O~}zjTP#)u9~FxLo}zC pg)#blRI4GIrc9}lwQu6@pZrZZS~s6eeyj{~o~Nsy%Q~loCICFxU_}4` literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/159.pal b/graphics/battle_anims/sprites/159.pal new file mode 100755 index 0000000000..81af310e13 --- /dev/null +++ b/graphics/battle_anims/sprites/159.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 148 139 +255 139 0 +255 156 8 +255 172 24 +255 197 41 +255 213 57 +255 230 74 +255 255 90 +255 255 255 +255 74 106 +255 115 148 +255 164 197 +255 205 238 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/159_0.png b/graphics/battle_anims/sprites/159_0.png new file mode 100755 index 0000000000000000000000000000000000000000..4e9831863b27a747d9b5883916ba3a1c69a9fe94 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUT{5Nne>cPbIUN7jNc=yl z`Twfr|7TwR|401?0A9v~~&)5S4_W2S50M!^FLJj_=Q zd7U|!I_Zt0uWNV6rI}BeJkRa8c>m-k9)^t%rEh94JmC}>uzSrn-YJF74?JSRmK2$p qW%RxFyUe%a>1p+M?0XM+|2LPbmoyMPIcIAJ$RbZyKbLh*2~7YJ;#9)` literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/159_1.png b/graphics/battle_anims/sprites/159_1.png new file mode 100755 index 0000000000000000000000000000000000000000..065ea505292d672847959dc909ee8e8168477609 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^93afX3?$7I7w-U41_3@Hu1ltL|L~> zsKEDAB)#koH$IpZ_fWJ=iI4k!`?Ps1IyLd9kDlEi(QaA!RrZw73cd3i&wQ7kcvdXW TXJ@1Y&_)JNS3j3^P6C_V2BtJ-Hj{*$9?d4blpe(+ zJVHhe;)e`sBp41IWai@zanx~2FqGPn|A9H#;(#iHu$092hYSoyfACCSvg_M7kkOv5 KelF{r5}E*^B{CoY literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/163.png b/graphics/battle_anims/sprites/163.png new file mode 100755 index 0000000000000000000000000000000000000000..29c06f9b7db4286ee4b39788922c88b3bdfb0e4c GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!VDx|E`RzTNErn9gt#u5(hX$(U&HYKfA|0Y zAYuGqb7I6-pbB?S7sn8ZsmTcm2?0S#49se&%B%*?H$850=p-yTuw)HG8Uw2%j{xJN z1Cj}R9qsLm*Ek;q&2{W~J0s7ng8iN2j_HDp44h&N%?p16Z z)|RW?XP<3(_U`Kc|NntX-~cYgu*^b}fq_xR)5S5wqjTyd+oD4T5-o}M8#d-Q6fqy+ zU9@FgQ1B^P)l)-clW^L$-RdU;RNtLgB7X9^azL(*< z&zdd%@8?Ee|0>@!h0pNWAK9kw($8NdEnsD`3gGBrYBFhh%$>pE(by<*hbe<2!;wLp z;d3vuts2;AT3+UBJ}C#I$&WE=v>#N1qW;3}np8 z4fEI}fV$isb~nu5|Cu9-G318g1*bR$T}E961FqHs8gn>z{ItH$?sP7YL6jroAlu;s zWf}q(fF^wqOJQ_dsI1Vsg~5s`%78%(;sDmm4%U1?t@cbSE{HShaXe^DQeb8If2{Wb Y+kwezBHYwZEChv~r>mdKI;Vst04M>KfdBvi literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/167.pal b/graphics/battle_anims/sprites/167.pal new file mode 100755 index 0000000000..5f4852f39e --- /dev/null +++ b/graphics/battle_anims/sprites/167.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 148 139 +98 90 255 +115 106 255 +139 131 255 +164 156 255 +180 180 255 +205 205 255 +230 230 255 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +164 156 255 +180 180 255 +205 205 255 diff --git a/graphics/battle_anims/sprites/168.pal b/graphics/battle_anims/sprites/168.pal new file mode 100755 index 0000000000..a99d113d2e --- /dev/null +++ b/graphics/battle_anims/sprites/168.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 148 139 +255 74 106 +255 98 123 +255 123 148 +255 148 164 +255 172 189 +255 197 205 +255 222 230 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 148 164 +255 172 189 +255 197 205 diff --git a/graphics/battle_anims/sprites/169.pal b/graphics/battle_anims/sprites/169.pal new file mode 100755 index 0000000000..6d037b09f5 --- /dev/null +++ b/graphics/battle_anims/sprites/169.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 148 139 +123 123 123 +139 139 139 +156 156 156 +172 172 172 +197 197 197 +213 213 213 +230 230 230 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +172 172 172 +197 197 197 +213 213 213 diff --git a/graphics/battle_anims/sprites/170.pal b/graphics/battle_anims/sprites/170.pal new file mode 100755 index 0000000000..63ff0a2392 --- /dev/null +++ b/graphics/battle_anims/sprites/170.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 148 139 +255 205 32 +255 205 57 +255 213 90 +255 222 123 +255 230 156 +255 238 189 +255 246 222 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 222 123 +255 230 156 +255 238 189 diff --git a/graphics/battle_anims/sprites/171.png b/graphics/battle_anims/sprites/171.png new file mode 100755 index 0000000000000000000000000000000000000000..7b60d74503fb815dfa47fc803f541cf35eaf5e49 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUT{5K`$P5Y!TC!xx|NsAw zZYf?eC8)XBGAT&H%aY;j*`v+P&Huf!{{Qd(zeeK!QO$YxOtOF)oIPC}LpWw8CnO{U zh@>zuyE-}=c;DnWA;4thGl%t{laD|f1G91j*9itq*3+Di(hQt37+ILL*tc@!urh}* doMBqUz!33-{fMOS4mY5244$rjF6*2UngCy0I}iW> literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/172.pal b/graphics/battle_anims/sprites/172.pal new file mode 100755 index 0000000000..4b1755b0ce --- /dev/null +++ b/graphics/battle_anims/sprites/172.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 148 139 +98 90 255 +115 106 255 +139 131 255 +164 156 255 +180 180 255 +205 205 255 +230 230 255 +213 0 213 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +180 180 255 +205 205 255 +230 230 255 diff --git a/graphics/battle_anims/sprites/173.png b/graphics/battle_anims/sprites/173.png new file mode 100755 index 0000000000000000000000000000000000000000..d50982122f77c32c30fb46503d4b25426c92508b GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*CkWB|93O|pTqHgjl}<> zn*Xm_{(t86|9{kfAn?liUp(dilB566z5^HK8~Hj7A+angFNHA0Nl);TK5Box_hrw< zcQ@|Me_m^?y=m2ibGLd{Z~oO2Z?-Hl;L? zn*Xm_{(t86|9{kfAn?liUp(dilB566z5^NX^U44Cm108ZHHb`j{5V$U~ZEusw zgeNw$bk`cP#jJ6?asF8^`-Y$90bk1<{xaL0XEipFUZi>KeF?})Pgg&ebxsLQ0P&Pm A?*IS* literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/175.png b/graphics/battle_anims/sprites/175.png new file mode 100755 index 0000000000000000000000000000000000000000..042ef87acf79e7024ff2c6aabd17f55508da8692 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUT{5K`$P5Y!TC!xx|NsAw zZYf?eC8)XBGAT&H%aY;j*`v+P&Huf!{{Qd(zeeK!QO$YxOtOF){5@S9LpWyo_F8it zFyL`!eL3Ya%cjzAPlCm6c`jcwh5yLuYL6RiCQq6Vc9`tHVDiA|aqL0OQUm^(ytk*^ tIka_(*j@Fj3%K|K@;3fVe|h&0W2mZH!@IYkDL|tcJYD@<);T3K0RXy9P!0e9 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/176.png b/graphics/battle_anims/sprites/176.png new file mode 100755 index 0000000000000000000000000000000000000000..aaa3c2f96cbd8719d47af080876422c057f6f11f GIT binary patch literal 330 zcmV-Q0k!^#P)Rs7Vc^0002h zNklU9W@=5JOwnO+TV60|Bm~{gh?Z z^eG=8s#Y>)CXg#*Tkg}0i&s#D&jG4_63Jvh0uQ`h8@eM#USLrdPvD*aUqGF`0l{i~ zNOph5JXz}s)X4QX6sO|s_xuCcfc6q>glDFA$Y&LDP|S0ZW!sGiw&iWONTa6A4dJ1A c(=Va(1$ux3`rG&%p8x;=07*qoM6N<$g8!|9KL7v# literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/177.png b/graphics/battle_anims/sprites/177.png new file mode 100755 index 0000000000000000000000000000000000000000..ec1b2246bd7c8eb885f0dba1d5517077421fe2c6 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^0zkZgg&9bG7yqaZqznRlLR^{_YuVMKAzx)6H z|3Ef=usJc}D^P{2r;B5VMQ?I~M2drFVN_05z7%VVz_T)Un5X7Uf zdy2xj04c#bd7FpE7JvQbe~{c&x7?x8n2M{KHYaZfQU(D&A+AfNbOV_|K|xEFEcyTc z|IsbQOQr-h7h5I;NqAW@oIQKAxw-kjSJwak-T&7}{6DHW@198(P(!Y#i(`mI?_2-f zLI)H$lFyYJew@nV^YhfB#aH#JWUJHP2{cYvapGV-!+oE_VJ&m=I6GR|&zx3t%KW&% z{FagIE2p_r7Mv;gqUvTbHO%gc(x#T1x?MUao}{KfiTUJtX|?#}zBQ+2=pN_(xl69* a0PA^0!}A^Of8u}^GkCiCxvXJ$tmdx%t0W*8l(A|JO+TKdL$Jo=Fx^gP5m_V+hC0 zRjws6uXr#x?Hq)B1z5mC41~nDC6d!axrD?Q27@z727bfyqX0u-h+aHMA+}Pe4>2sb zIw&;a5Mom*eM7{#YN>}^sS?s9P#PdQya`1d=Ci~qwVpSCIb+G6rGb)@G`mMu(U=-s z*s$1Fu+mkjA{r~Sl^Kz>c&);}EcI2U=|Q#8W0cQ)P|}(nsr69qFrF&XIc+g=3Meq- z??b%7$P8u4u*F9stlAwcXRVscg(wJVwO_oJ<8=5bf}8{($*e;3M_QiUP;z+X5Suap z<4^gkP$gIM@UU7zB`_eG6Ci$?^9T6=lTQ`h00XE*DWFd)HeNpJqiK!wH9ftQWfLSJ z+;1~~g`a>jE}YFm#5rAnYF*A=#@tbXS5S?+9iwMxHT+UV<3sD@Prc~6+3bgQM|FF$ z-PQej(Y;yiyZOW0-JcKb3DcfY?J3uulkG{{pVi%IfA;M1zF0!gk_nb{B>E8X8#B&nb3`-2F z7!Nav@t(_bV3&Bx`E1SQw|ug%tX4X&>U=LgsYqr0*O!q_9+D1i0^$Wa5AFn9Vk>C~ jocBO=>Wun-&sh)L&ptZijp|RJ3m80I{an^LB{Ts5si<9J literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/183.png b/graphics/battle_anims/sprites/183.png new file mode 100755 index 0000000000000000000000000000000000000000..55b2044b834a840003ba072a2288c2a0215883f5 GIT binary patch literal 546 zcmV+-0^R+IP)$>8oB#j-0000000000b?NdC00054 zNklpF<_2uEc<{m7%m_jWNB%1-Bv#jxf2h z@c=%Q7Ygk?e`gb8JX62F|M_#0o}843mkmr4j%MU@4m@rMIv}*qc}L}}g#vV#9US7n zeoGyo@CodoVGe8o+hY(CSUD>~L#%;`1|@{LfdUF2Sbt!4LnibtkNld{BHE&{)Oggp z5G{?>hMpesr44Rd9k$k9?`|a79FL4tNnk?5U#!vst$|Amgd0}F$2kba4fC^i6HV}m zA359K8L|{}vp-wIB70xi3d%5zGoeB5)?n?gRDmBYe7N1=HCP@HRnx09vN*cynY zXf8zFQx&R~TIRFjrpDA&LYKJE*O~6cRm_BHpYsn^X_LOtP!iVgw2N3nucKRc1_A>w z+|d=x=ghz`g${lNRcp$wphGJ-lTJDV9`neRdd`cT`IsQ)2H(jG(1eONZiU0rr07*qoM6N<$f~uzSod5s; literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/184.png b/graphics/battle_anims/sprites/184.png new file mode 100755 index 0000000000000000000000000000000000000000..99ba7e475068938f21c92ec87995ee63f15a0d6e GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^0zllr!VDxo?EWGMqznRlLR^9Le-JqP|NoNz|EvH1 z5BmRK^Z!wW|5GIXCkgyF&?d%8G=So9_*NGwWVp7QJ-Z)!oQ zqolP}LXXypMWP05;i5j_rac#VjSCoeo#bHK%2;hV<>Iqz42e@#h%{vO2~FkUP5`p1vEf|9?Y@_CJ2>p-ACgpI>=9x0FYPGlXlL|aG=pbH^#_$GAI(V;TUZ$?s?5%v Sn6hOv$h)4delF{r5}E*|VS4ER literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/185.png b/graphics/battle_anims/sprites/185.png new file mode 100755 index 0000000000000000000000000000000000000000..f3a4305c584624c9f1cacb6d0e4f807ce8b4f959 GIT binary patch literal 819 zcmV-31I+x1P)!y^a$x6op3`31@i2nAY-c+(l(wt1<22Od z<+%R;K}a+U!reJ@ea7+q#!lD$#c{*Mw^Ad*Yv*uJIagV~*lj;nC5O9pRf2XHZ>@3u zox%JRA#^bKXBWyBO~~!|lr@4r2w511`+l*mPF&N#lae9uSc@O>+L@C!N@dCB_At-r;3joMsUT)4dBu6!ARgEq$*AVALlrS zy9i|hF~A3Pe8hgP6lac)Yh1gKtmcC+qUM8~7SII`pSqK-dFfV{mX~XzyMG1Lt48;? zje#GAS|5QAQ|NiWCsZfh10P44jUHP*_Q~k6BM&$8FwdoytJl96|*geM>S_3!EfNKYI<&5iT-o4}b`FcCg@3~BR zoIs1X=N+_vvRe5g1`osNo~zI}gojPgVGhBYpo0N7SkQ3}VYOjf8;uaccx@n>LWB?D z$&kMLMFoHIh7Vb!lyQ#L1}cP1snC6uPD8s^&?+4O1i;rz)^@F;cn${{{2X2#7>e?* zbz2l~Pn74mqFO%2nKyc_9IH!b+*th~eI5h$I)0RcD*zn~z$0k?i8(xicE-vYLA&!} z#fDAPK7`USYX4t><>veAV@0#ExRBiZaGw;058*t`(LN*_i)li%X+n&tL$vYziy=$U xF+}UsUvHS)Z)4}^vj2ux09i-;!bkVV<0s>v6SAM=gd+d|002ovPDHLkV1fq8kI4W4 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/186.png b/graphics/battle_anims/sprites/186.png new file mode 100755 index 0000000000000000000000000000000000000000..8fbc31367f27422a274af3111d35591aae2cde85 GIT binary patch literal 599 zcmV-d0;v6oP)&9VuLA4Y7j9&5dTUk|4J$UN-6(JDgR0-c&@>E1$S3f5ynAI&YxTuN1-u5}Z74TlerYm=%D$2heL zJ#f_h(X%X6Cb`9OnSU`6r_<3BB4>V-h`WKj$$|#nne84!!7Wy1HOJg?4*_b}7^#7S zcZl-w!3~TO8~G59fDS`#+o6m(9s>9b&~+c*jXrLz&iH1iaMVUthpp!JNWD-haQ90$ z2D=^K+XVcVsa)iXz)lIWYALjEQ9_!9PWp# z=nbM^{88@>g8krE*v=pTc)d4x2z-tT|Ip{HftbrXQje#A*PGpbMBsHKr`<>w$^5Dv z>dq%|pdSF~L>KA1+ym~*2YDPH1a8{B43lh&4s*W_u7M}Nz9(5g3n{N*tsYdzz#`ln l{j3xz`=hR~Hjc|D&JT#g$i=1X1StRj002ovPDHLkV1oCc3K;+Z literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/187.png b/graphics/battle_anims/sprites/187.png new file mode 100755 index 0000000000000000000000000000000000000000..b0caeb98f3b5e2ef59b842fccb37b3a9e6a15941 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipS0Mc#2)6uxSA6f8<=%S? zbM|sH&ygsuR)~r+^a9GF0dA$p4?v;Yo-U3d9-VI|`SLXx2()@XVKAFfz}qS3(43z6 zcoOg4PS5=8(>xJY>vQgC-v3rx`T0j+*7N#G7PH6R3)Zwmur~#rGHveNb(#AtFUMZL z9n-j?p0_!~dR|0) znAhr-*CRad-u?`iZJVBP-aF2v9bTs|v!tMnsh6ec($D0q*4C%4iiuxW6)!y1sw{Bn zye`WwLEhIFScN9V`*B^(3DDCkINEe(XA>jqYpyBF+0NO!X{M(t-}_m5Pc60Jsm|HD Q9+1yHUHx3vIVCg!03?Bf2LJ#7 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/259.pal b/graphics/battle_anims/sprites/259.pal new file mode 100755 index 0000000000..ead25c0c6c --- /dev/null +++ b/graphics/battle_anims/sprites/259.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +131 49 0 +148 74 32 +164 106 65 +180 131 106 +197 164 139 +213 189 180 +230 222 213 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/288.pal b/graphics/battle_anims/sprites/288.pal new file mode 100755 index 0000000000..f8ea0ca546 --- /dev/null +++ b/graphics/battle_anims/sprites/288.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 148 139 +0 0 0 +255 255 255 +230 255 230 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/particles.png b/graphics/battle_anims/sprites/particles.png new file mode 100755 index 0000000000000000000000000000000000000000..7edcd54ed5ade5b13651d5fd4e24dfe3aa14bbbb GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^96;>A!VDy@YH9BTQU(D&A+AZ9|3P34!~g$5|NjHY zCEd;cm(2OUWy}AwXa7HY_W!?OQ1|~OUURC~{O=BW*SuyY`!%561)eUBAre!Q6Bw9T z71BhQHnLot$#bG1kWs#o)j(5I)4+g>iz~s)vVntHA&oCBA;FN>v~hz(MC8Fqd;zIB zoDMeGsZ7kzSA_~oYzkYO)hsY)b(o03hO-&|4H}INckf6`>?nVKk5^Hm?ESq13@J@1 zW(VHxWl)l1FnrI*)>fTDmC@%HZkh=d#Wzp$PyJYikGq literal 0 HcmV?d00001 diff --git a/graphics/contest/audience.png b/graphics/contest/audience.png new file mode 100755 index 0000000000000000000000000000000000000000..59f8d0add22f07ee9219cf082944d2939ffc543b GIT binary patch literal 2086 zcmV+>2-)|EP)o-c@D000NE zNkl3~^({LOY{@Fs zN3WhruKIo(FYg9*?_Jsyjk_1zB%!NrJR^r|0gG*;1fqTaz7bF4ipv_X)OMCg&Q?6j z18#o}V5!ZMalp(NMs4$>gC|Tfb4rqgECCkU;1Ayq0t0ZV`7tBog0Xfr$m+}hGSlW{ z8I&T+k|HVu%PQXe>Wp{k-H!*BVh)eWo zb9W$=2oCYo6YvOXE;k23!!m6h%S(7dt>6R!HtATF7kZM0j)k$)ov0(Y3Brw(5>#Kc zNGohW+l@L6I<~}8IANp;(La7Ow5*nJ8S@R`uRa3)j;B2E$3D|nT}fMwY1@vJK4Tp_ zRz>(YfAh@243v@;Acn_=2-poyCr39vCSyZ2X=B>vN#FMwwLB5`^E~zX7VQs|3Qew- z7b(%V4B+PUMj)UyW{Nc+C*9_Cu@uy@xqO_bLk=j0Z^UF^*>PBv!w&}+abOY0;scdH z5vw+?OTjFgki9hhHeim+F9(-#1+d(tDx8f)bZkc9b-*JV)3&M(b8`HZOHAz& z2hu1)1%ZIQl%zwO@es<#5YUPX6$xjTMPm|Jo>ZLvC5L#WQI^Xk-336P6x66;*~f35 z|8(vU8kZp<_%+K`R1`fZq8|uiCtWpW2MEw#on=pw_;b zlp}$QL`Vy+_&sVfcsuN%gaqI#;)&yxjFo)>v9F|nnfN$A|K>PCf*PFF$_@jnBUxb$hq_fvW-Hi~O}{k6sJ^yOeMR1v$7))1jUz`(q%; z?%OndmcB#4S@9hJ{wC-gz{qiaPF{}EZ^NhQ;V2d%j;Xxz@!hooyu%kTUAu7ckH(8+ zDgOD}-T3uipJ6oCh5!A37UTVjzMBDGvZYu6{P@{otOs<}LX6+9c=%?(56gfLtDgQ5 z0QlDt;ql_bn*I+Bp%5aP58+<^9|5Q`Fn|>aJXl229{@jMJOEf)T)*u80dajDMR=TO zz(Ye=1{_^Nh?7F#ar_={eyE6d065RDg*d_E!~h<6jZ1(ZPO)Ptgg)GSFo4Yy=_Nm0 z0O$;+F_{83PGu(h?K?x50p8C6>p!OMKvnyOENd{n_%%zm2w3+y!~1?)Z4jDk=f|eN z2~#aoRxQAV8Wf#v0Jx;#dTG}Mv=R|u|5K+X02c)S9F$j1O#ss?zE{S*dH|N^0I=0* zESy>Z34k3~abS;dRS)naCp@_Zz)4vPz{F25e|c0SC;gg$p_{N%*wco+T7Z-~u-3=8 zT@&>H!zSz%!YC@jpdR4aD3~Z7dLpd%8q<_W*kra~TQ{r;I3&1hX!Z8eT7XaS=ZjT> zdR1(a|I4x3fY>Demt&0qu}S`almW3x{;xA27X5<_@_(M4PGrG=So9B!{MX&I{GX+q zG_p)*mt~lUlNkfzo`3MdNPIjs@_*_d6pf~BvTJJj-!ulqJ^#SSf9)R_`EM>04^*2m zAe>76Gu$&Wa@RjtEC0Qj0a3~SAQ)Wu^uB+vLH<_;L?!>xfLP%lY?A*~c9r}`17ekb za8Lf@V2u2)vYX0(PsFSIgS+w{bD7G2V?a#HWOF(553rz)MOVpxi#WR{U3Da821F(Q z(SVrw2jlLTTP~Z)|0;z9bupvfRQ~Jirt+U~>Mr>QwhUl?>}Y*#c4jF5(STr;{I3j% zO8zhV2MTC02w|$_e?GzKq2)h;m(`0dNHH@YtV;eb`v=1Bd4mG9D$4)-N*fSH{-cQ9 z$3f2w2qXVpz2W6y8B5EhgbCL^8edC>^1n0&gpvPfKp6R784w-I$bY?aW-Za{Ksn<< z(YF8)2YV^{2WUW;MyRD>G$Y}`el`cH?I0ij2U285CS zS!FF~(cEZ`l*q$p4vtumBLp`MGG1(&yqI>EXzeaH{Ibg*u0 z0ceG>*vf#Qv5;FC5R_4}l>q_r|J7CogfxKq1_a1|XNPQIK!E)3@MH@E0^~pJbG9%b zQ2xVGU*CYh4Gk097!c1gSn9ViAX0+3<&KX)HfhL#h)(z3p3;Frqur< Q-v9sr07*qoM6N<$g5S^O6951J literal 0 HcmV?d00001 diff --git a/graphics/contest/faces.png b/graphics/contest/faces.png new file mode 100755 index 0000000000000000000000000000000000000000..bba47a91d9c6dce02aea8375394ef3d98aefbcc0 GIT binary patch literal 1028 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+Ta4U|?nl@Ck7Ra{vGTzjyD^=H~9C zq-sa6EKS3x|5?TVEiKO~Fnqhp@V`1~&X%YpQ!Jyhy0@$W8HA~R$-VzsQ~pa>o`t9f zszC;r>i-}8|G)eHRfcXN)o=NKbjtrFj%zH5RR90~5}?XwSy1;QI|gVo5L~@_71_TK z_ZtTNhg$^Kf>r(h?q?umIOqR=U}!MxUBdtjG#~=%I$GTfH2>MR|7YL*-}3JN9I(Rw zXP<#Q3?%*^g_{gvU^jow(f@1K{NFO=|K95VN0a`a4VnW3Sk>ckKhPGC?6Z4@@AfkM zp94fe|C5&dHw3wSjllmXh5sCu&n&af7SGwTzopr07@`+Q~&?~ literal 0 HcmV?d00001 diff --git a/graphics/contest/heart.png b/graphics/contest/heart.png new file mode 100755 index 0000000000000000000000000000000000000000..bd1ede8fcc5c9f7c85caa91055b7d8dd19e4a93b GIT binary patch literal 873 zcmdszF-XHu5Qa}vODPl_9K@-DLj{*82ycvS(OM}bbjs95D3Y}}WwV1w)+|CcGd`R$ zxCC{`7;wqjF=KHmIQ?F%mST%^_PBTNJ>K{3{=2(&>$FtdDH2hsaaPlLFJvpHa6I09 zcp_4$ebK4&6+jq9!=YoEwsvmqs|KtAgow*DNeH&-1%~em!*T+dC0gYD5iA$mBA)Wh z%-bT52yl>)vmzfLa^Y)ItjGgCld1Kse_jk%W=oP}zTc^SRmZH*?8{OfPMW#u0Xz)~ zCGpVM`B!8QIe$7qJVr2v_XQ$OvxYe!nq{6Imgkodq(tB%v=Nzzb??WP@_*>(D%oo~ zQpX{|W7lE&P&4In6Gj;YkqRpwc!3`?`AgovzrKB_8{Fhxqo#EV_m^E->nnXFU+qUJoi)FSM0w9uXZj*KeP3{hke_QE$~APr5gs!OtKo literal 0 HcmV?d00001 diff --git a/graphics/contest/judge.png b/graphics/contest/judge.png new file mode 100755 index 0000000000000000000000000000000000000000..c4dcf520ba2874c820e0b9c48de3ab12438f5546 GIT binary patch literal 593 zcmV-X0z>%Qd$T(K@i?jQuf6$_U4O&gOsGCw9U=l+BT|B0005p zNklrA2(d@V&UQlyidLywHlC<~RV5;2 zQ(dqGs*1K%eMHFnvN=!`K)l)we>noSSDm4XMZsPM*~Ckots*&$p}@%G*2SQNOj zW8?r3K@Xz24gkOx0YC-%MjJ*~Feug5z=mzJRj0yaX~3NNlm;}?fxuS+p1)))$1~L)sEBG0Jf9&FsTyY4hY+X0 z>v56>Ay|I1-jFUDaIwhIaqa@@IQ;rY;11$6O>YCnSc*xqtVm`&Nzf55SD@IGrm+HN fa?mOK&%exX{i;ClSpw*m00000NkvXXu0mjf@S_q6 literal 0 HcmV?d00001 diff --git a/graphics/contest/judge_symbols.png b/graphics/contest/judge_symbols.png new file mode 100755 index 0000000000000000000000000000000000000000..7669fb88b24466f5b6ca518341e5b9e360ac709b GIT binary patch literal 401 zcmV;C0dD?@P)aeO|NsAU_TE9}Y5@QL|GmA%gM*7=VtYYKYAG>Vt&V|u0003T zNklB#Hx?%ZdpXLPP0t7d?mIRLw?xtG+SNIh%d>&_wu zIURzl(aWwz_tt-`pFTtZK0*}5d;sPHKvO0iu-||vpwu0K#whu0rH6gqhzUMS8|~%; zFdu+5<+#NT+zc-e6{r>t9H22uK3nPWe58fy@qs;`edKeS#;;JWSVpRr&nrG0D8Pqf zpBG@h4@7jq4j(0C=ta7Z$n=cQct5zg`HXo*Zu1(w?mZ-#{`dW434LA?`@Fc%s|r#W vA+#Tjy4bgTHb5cO%?|q-%A|8o{%@Zzlh>=f59jT{00000NkvXXu0mjff1I_W literal 0 HcmV?d00001 diff --git a/graphics/contest/misc.png b/graphics/contest/misc.png new file mode 100755 index 0000000000000000000000000000000000000000..5e3b404621a04aae4ac2e18d06d2b1c363a86fda GIT binary patch literal 1680 zcmV;B25bBZd}ha8nkp(!HRu?9K18Orp%`H*&3((Y=VQYd*lJ2N}p`RRSl?5-06 z#75!#CDQ^|pJ#rMqc(F%xw)$bKWtV^Kj8vA$$UzsAmA$l=(UZ60ggyUi(7+ob0`%r z;HM;t3-Ba08{l`TmI81XJR){xf)C2gs*;)?phN?@wtY2a8@s)LT_WX+KmeEHQvhR* z!#>lB89;YtfR+Sa2%qo}G53AUF9-#&1}lQRxg?UuFw&oE`XmsL1i-+utT*7NV~A@% zkw|d9&H14|vER*hAyQCfq2~j%|Cj*4iQ9+jL_oIN zBfQ&+p$|xK%whe$~Yt>$k4v=}khl!*BAh7|f z%ggraEG8T>&Kc9|fpKej6*ZUv;FG{8m_hg{sj)a2C6w7fpv`igvi%8%A~nc^pw8fM z1;G6Q_5}~%C=77;kbU!zA?EQwtPJ{MuI~Xn2?aP0@(;h`C$KaILI6N`0I=&v(?GDt zxHwl}QKAXit_FYt(R_d!hym!(?+dBA-kCvxV8HMRDo!4&{b5c4x}&XqBEW>v?DOtF zs_=yXlBW;}_-H)w{ybkDlb!eTWAgRe1H2?1RY*qy-Xm#vBtL>WO|}S0L-%_G+$I}j zeE}XI>x68$0p!_5T{HmZrP&tN1R7=lID3785(-r~pt>sok9N~lFCb4gZZCLEAnkTE z0Hsp^9qt9757HyR7D-Ddg5erK7J>oN2jE8ys1W7@EYSQcJ^&kbf_-pWz%$ZTg^-Kd z2U}8qM$&G;Is}kV=>u;b^x7R&U^OD(9AoMw>JejAd>>;9aEER{$z$!!ga39doO(Hn zlWq08uklgT|QWH#Q4L`415E0em3Q%q%zzzerKk>|<0x)*=#&s|~6%6p2 z;|544+Hy81K~e#Lo=SuX0Jjr^0G$6@0PukUTup_WfZqcKpcBcquj@~;>u}8C#HgtZ zfU*j{D<>2H^B@vnm;=L{KmfMWmvcm!4p5qku=Y%5Og@o-zts&drng{Cx&0ytz!=^r ztuBuywiqrdxW;h=zLEbgFap5Lmb@;*pA-nj&txoOEzT2J78ip6Q0umZ zZ3{x%LO_NrUDkjrZUEe+ZdAVnZA${tcG<$HACS510ho!ZZG+}zHBq$y@&m{s2>=YE zpaEbJ8v_KGV4OHKf#HZ3Fq0F(gE|i)0*n()7@5iw3AjS$Em=GOen4;{)h% zP#}T^2yp5+S8Kqf;?aFD5#YdF?(j%a@BsJ(i39*2NWip@%}^)8TVrg13}XY*0NXeK zh#x@mPOS>jj01pFZtlTH0h&>b1*qLC?omqb*9(n!fcl-{JpdHy8^xFassS`I;JkU4 z*pU`cZ2~Pc!X_KQj}O!#0e9)Q(uq&$&B%ZUOdT3Oh8Q%3Xlvj0q{_R-AF#*Vglr*BHO3{j}zSz5iok*#{`^C-T~eL-U0qM afPVm`eR*cDW8<3u00008n`5P(@7AVAF?t}uZ#mYb_Z%P^cWYA&szCkVi#O%q*8+JJA^nLvQ- z9*{InbG&o`Qk+saZR{6Fkq5ZO&v5gz%Reo}RjflsT#;IGKhDm~4#nLlLV+HM8nW^H z?f_W~nTnNGMU01SK&CUTVo-6W@Dkdz7mzE{1BkJfHdDk}8H0yj0AO>ut`DH`Dy3ln zpkmzxC;^xN0A5N8cmddS7*OCz?FSgNBLUb>>+Y!mY8^ngSGo`z7}V4B0u0%}2S5wv zwGnkMK=Y-6Ug!f9y>YM+K=$v8#Ml~<0URsqfZVWXEO|GOa(4=kK(1Q{bfg97JO94| zhGa*83=N*q0MIe;ftItGgae(SZ?3bBbagerp0Iv~=EdYX8vDLFH%N*B00)h)ZVjMX z0KQ2OK=}bN1Oj3|pb#U9%^X0*MPaJCHb5E6uzJ{WMLhPDkr#&XLBI{*~Q)BqJ*BO0pKcI`NEU+5o=|x_~`u z=>WA2mLBl~+@0A5H6Zm!58!MvnY3(RRq2a^bwG7N6VUB{zYU!K!Pe^{-m}va4!_00D6p3+>;j!KNjr^MW_uL0Qnc;UMOlWB-RUw z^+IC3kSw}@%8jZr;-Pu<=nw(ZWO^_~z|r!>lOqJolG*93A5c_rfRXfQUUDQI*hqSk z0!Py6nhkt`l+54FA2WbWfPjni83WJ+9e`=SP}nX!es@R!?7)-&N6#*f2!I`!bpigt zbYH-{6u=}AKnem_Bn0>a1JIMw3#byq z_X;G(=f~#>L}qlkR)PQzKhOt8m}p1K*Dpt)^U=3AUq^Ru{|yAJ9)4I6Kp|j>06@Su z1l)xJM1!bMm(lCxWu)OUdh_ivdV3ex1!sd1zDJH;V#%?5#S*4K1SiKQSLavg1-fCk z1OXBpNmt+R#`E&3EKkbgD7ud7vK`>$iU8vWQ8a#!#h-Y31x|1zmsc?UtZv6&%G>eH z${+I^04NAh>cO}y-;Y=J5|?J^NIFEJ&^?RZ_Z8T8Cp=N0F62` z0MPbgpqc0nfa}^_$YK))km*eypi*KpK<32;0X#`t0rEIr2cXF}YhbjUM58t_tZQJx zy8wmp0J>e+;04HZ1?cy}JpsAG=%9@vta>$~iN-cSW*OOt?MMWgDWnbG&}h2Q&M)Tl zLqlExWR?-=+j!Pkwv-MM`F~LBT7JW(@$<#I&xOGyzo@WwK-?0As2(0uLa!0Mh}O8sL_$`~be08*Vi5 zEdZ%wK%w*|0Gq5HuQnUxvhv6Px0FDu2_AqmViSPbpr~yCwGs6OBMP7zi+RI{TX-SP zd|tROpt-!z0Mt2x0J%LBfO0F3V#LPs0vHS6w9v>A?vPd+IUC5zf`2ib? zd(P+AMna?ygg#2zJXH{kQA&K(=`QS2{8^TW;5jadopARFu$ttz*hKc5Asny$!E#yTm!$>)r9_we3ftVy}-W{_ZjRi&i}LTAHMhb oetYrxJd?BY{rWe2p7l=fwb=JK<$nyJo@xR$fto-~;NK!Q6a-Lm4nE{;V{!(=0>IGFeeeo^6#)B}kbeIv3QI6|iaW(rr!r{Buo0ui zjGHiN%Cs4?=FEHXs;4Th8d$Js$+8uz)~wsGY0I`9O>f?PD6d*}we8t=;Lwp{Cr+I? zcj3~NPhY;3R~E)XS@`2VIZu>tE{S)t#iD0#AOIXGsJi5P|-HUp+*YVvF z&1cO5&$1Z)Ycl+w67>K7lK=nz@7;T}xw$(jsoK#iOVcpwI?HQipq?&I7sn8b-m8}b zxf&FB*b@8&-lY1+=IQ^pt$r^s?||`^)_^uY6`@~_OMV*q8nkdmPLgJQl4g}4$jHsS z!Jng;aSI>wb}oDCh_`PJq_I8~+r?&O-N19>4$Dp>j!%*zo_1S$?jGJ19@LQ69^Y^; zKg^i@i`=<60!KHz-0+imLeLk+i>y4m7wr76UBIBZX`kQy?0Y>xS21|H`njxgN@xNA D6p>}Z literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_D1C060.bin b/graphics/unknown/unknown_D1C060.bin new file mode 100755 index 0000000000000000000000000000000000000000..e4776cba40bd905950609efbd98f6185e4633bb2 GIT binary patch literal 2048 zcmeHDK@NZ*3`1Yy|6geqve-$>7NUsJJ=G^QaGe;*wqAqqbf8)>*>&Rp-D?Hzmp?xpLSgyj^PX0o_ pnFg`wU7bRQdL6S?{{P+m)JyJrcO6HSM}|M^mZkmt{{!FtffI=VfIa{K literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_D1C060.png b/graphics/unknown/unknown_D1C060.png new file mode 100755 index 0000000000000000000000000000000000000000..2371241d7940844346033705bb62ff45c39e7e49 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^5xsRjBeBZ*|KCGV2&vnQ3IR`TAL`iG$2Un6l8SHY(KT{;r7>%% zZ_=Vohb}$(3>Y$Eoa+p^P{avSX3SZzWW|~dTXygMIDOB7BPY&eT)1-M&g0dedg*cx za%CN-gy>eMBOgUo&Dj-W!^qc7uFAJOvrJMMsgtYN97BxXMVJ)6X;-iG8M+JYQR*$x zm$wQVncbSNt+*q}uG-~h#jE!+k{#E~1pIPDR?cVb0nBEkT3b6@F zV)8S2^414EeqqTG@Yv+8aqR*A^@qQ`bm40FGu43Yk6OdR7Rd+dD~=jzG08CH@%xK^ z6-daLy7>k3sT*e)U-7Xfur=7eFj{TEcttoe{qW>ju}nv&ZupYLw<2^$oG)X}q-!1w zuVzFu+|H5e*v=ttFSKoP_je7C$MzeAzrFnJuzL!7!ycX=Ob<3K&nS@lnF#Wkr>mdK II;Vst08svF%m4rY literal 0 HcmV?d00001 diff --git a/graphics/unused/old_beatup.png b/graphics/unused/old_beatup.png new file mode 100755 index 0000000000000000000000000000000000000000..e2a0561e27147656d881ab3ec75b8709d231f10a GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!VDxI2ESSgqznRlLR_<^bOV_|K|xEFEcyTc z|JAEYwyX)7(hL;C4$N;a-wKpT_jGX#(U`clFP7_o0#EbN$t`#OPwHG zRhgG=E%UQxm7SlMqn2Kwp}Vs=@2Bmd2DSxbP0l+XkKjfzSZ literal 0 HcmV?d00001 diff --git a/graphics/unused/old_contest_2.bin b/graphics/unused/old_contest_2.bin new file mode 100755 index 0000000000000000000000000000000000000000..06836cc19896dbfa744ad8925a36ecac6c49de29 GIT binary patch literal 2048 zcmeH@Nm2qq5Jg*%K?UT2>BJCU>;ld(W*`m-U)A%oC69eP-a* zWxeJN^I$E_`?GC2bm`HjFFol>N7`bXw)~J0V$@ + +$(unknowngfxdir)/unknown_C19470.4bpp: $(unknowngfxdir)/unknown_C19470.png + $(GFX) $< $@ -num_tiles 36 + +$(btanimgfxdir)/141.4bpp: $(btanimgfxdir)/141_0.4bpp $(btanimgfxdir)/141_1.4bpp $(btanimgfxdir)/141_2.4bpp $(btanimgfxdir)/141_3.4bpp $(btanimgfxdir)/141_4.4bpp + @cat $(btanimgfxdir)/141_0.4bpp $(btanimgfxdir)/141_1.4bpp $(btanimgfxdir)/141_2.4bpp $(btanimgfxdir)/141_3.4bpp $(btanimgfxdir)/141_4.4bpp >$@ + +$(btanimgfxdir)/074.4bpp: $(btanimgfxdir)/074_0.4bpp $(btanimgfxdir)/074_1.4bpp + @cat $(btanimgfxdir)/074_0.4bpp $(btanimgfxdir)/074_1.4bpp >$@ + +$(btanimgfxdir)/159.4bpp: $(btanimgfxdir)/159_0.4bpp $(btanimgfxdir)/159_1.4bpp + @cat $(btanimgfxdir)/159_0.4bpp $(btanimgfxdir)/159_1.4bpp >$@ + +$(btanimgfxdir)/001.4bpp: $(btanimgfxdir)/001_0.4bpp $(btanimgfxdir)/001_1.4bpp + @cat $(btanimgfxdir)/001_0.4bpp $(btanimgfxdir)/001_1.4bpp >$@ From e56f04ae2eead3e4ba68e979633b4e3ec2f03d76 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sun, 24 Dec 2017 00:08:28 -0500 Subject: [PATCH 25/54] sixth wave of graphics.s dumps --- data/graphics.s | 175 ++++++++++++++++++++++++-- graphics/battle_anims/masks/curse.bin | Bin 0 -> 2048 bytes graphics/battle_anims/masks/curse.png | Bin 0 -> 138 bytes graphics/battle_anims/sprites/002.png | Bin 0 -> 251 bytes graphics/battle_anims/sprites/014.png | Bin 0 -> 198 bytes graphics/battle_anims/sprites/189.png | Bin 0 -> 196 bytes graphics/battle_anims/sprites/190.png | Bin 0 -> 463 bytes graphics/battle_anims/sprites/191.png | Bin 0 -> 399 bytes graphics/battle_anims/sprites/192.png | Bin 0 -> 541 bytes graphics/battle_anims/sprites/193.png | Bin 0 -> 358 bytes graphics/battle_anims/sprites/194.png | Bin 0 -> 616 bytes graphics/battle_anims/sprites/195.png | Bin 0 -> 235 bytes graphics/battle_anims/sprites/196.png | Bin 0 -> 726 bytes graphics/battle_anims/sprites/197.png | Bin 0 -> 375 bytes graphics/battle_anims/sprites/198.png | Bin 0 -> 845 bytes graphics/battle_anims/sprites/199.png | Bin 0 -> 229 bytes graphics/battle_anims/sprites/200.png | Bin 0 -> 333 bytes graphics/battle_anims/sprites/201.png | Bin 0 -> 1316 bytes graphics/battle_anims/sprites/202.png | Bin 0 -> 312 bytes graphics/battle_anims/sprites/203.png | Bin 0 -> 323 bytes graphics/battle_anims/sprites/204.png | Bin 0 -> 390 bytes graphics/battle_anims/sprites/205.png | Bin 0 -> 479 bytes graphics/battle_anims/sprites/206.png | Bin 0 -> 747 bytes graphics/battle_interface/window.png | Bin 0 -> 336 bytes graphics/battle_interface/window2.png | Bin 0 -> 296 bytes graphics/battle_interface/window3.png | Bin 0 -> 293 bytes graphics/battle_interface/window4.png | Bin 0 -> 284 bytes graphics/battle_interface/window5.png | Bin 0 -> 297 bytes graphics/unused/shadow.png | Bin 0 -> 170 bytes 29 files changed, 168 insertions(+), 7 deletions(-) create mode 100755 graphics/battle_anims/masks/curse.bin create mode 100755 graphics/battle_anims/masks/curse.png create mode 100755 graphics/battle_anims/sprites/002.png create mode 100755 graphics/battle_anims/sprites/014.png create mode 100755 graphics/battle_anims/sprites/189.png create mode 100755 graphics/battle_anims/sprites/190.png create mode 100755 graphics/battle_anims/sprites/191.png create mode 100755 graphics/battle_anims/sprites/192.png create mode 100755 graphics/battle_anims/sprites/193.png create mode 100755 graphics/battle_anims/sprites/194.png create mode 100755 graphics/battle_anims/sprites/195.png create mode 100755 graphics/battle_anims/sprites/196.png create mode 100755 graphics/battle_anims/sprites/197.png create mode 100755 graphics/battle_anims/sprites/198.png create mode 100755 graphics/battle_anims/sprites/199.png create mode 100755 graphics/battle_anims/sprites/200.png create mode 100755 graphics/battle_anims/sprites/201.png create mode 100755 graphics/battle_anims/sprites/202.png create mode 100755 graphics/battle_anims/sprites/203.png create mode 100755 graphics/battle_anims/sprites/204.png create mode 100755 graphics/battle_anims/sprites/205.png create mode 100755 graphics/battle_anims/sprites/206.png create mode 100755 graphics/battle_interface/window.png create mode 100755 graphics/battle_interface/window2.png create mode 100755 graphics/battle_interface/window3.png create mode 100755 graphics/battle_interface/window4.png create mode 100755 graphics/battle_interface/window5.png create mode 100755 graphics/unused/shadow.png diff --git a/data/graphics.s b/data/graphics.s index 44a587447f..47faf81ffe 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1710,26 +1710,187 @@ gBattleAnimSpriteSheet_186:: gBattleAnimSpritePalette_186:: .incbin "graphics/battle_anims/sprites/186.gbapal.lz" + .align 2 gUnknown_08C1F1C8:: @ 8C1F1C8 - .incbin "baserom.gba", 0xc1f1c8, 0x2a4 + .incbin "graphics/battle_interface/window.4bpp.lz" + .align 2 gUnknown_08C1F46C:: @ 8C1F46C - .incbin "baserom.gba", 0xc1f46c, 0x17c + .incbin "graphics/battle_interface/window2.4bpp.lz" + .align 2 gUnknown_08C1F5E8:: @ 8C1F5E8 - .incbin "baserom.gba", 0xc1f5e8, 0x184 + .incbin "graphics/battle_interface/window3.4bpp.lz" + .align 2 gUnknown_08C1F76C:: @ 8C1F76C - .incbin "baserom.gba", 0xc1f76c, 0x17c + .incbin "graphics/battle_interface/window4.4bpp.lz" + .align 2 gUnknown_08C1F8E8:: @ 8C1F8E8 - .incbin "baserom.gba", 0xc1f8e8, 0xd80 + .incbin "graphics/battle_interface/window5.4bpp.lz" + .align 2 + .incbin "graphics/unused/shadow.4bpp.lz" + + .align 2 + .incbin "graphics/unused/shadow.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_014:: + .incbin "graphics/battle_anims/sprites/014.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_014:: + .incbin "graphics/battle_anims/sprites/014.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_190:: + .incbin "graphics/battle_anims/sprites/190.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_190:: + .incbin "graphics/battle_anims/sprites/190.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_191:: + .incbin "graphics/battle_anims/sprites/191.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_191:: + .incbin "graphics/battle_anims/sprites/191.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_189:: + .incbin "graphics/battle_anims/sprites/189.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_189:: + .incbin "graphics/battle_anims/sprites/189.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_192:: + .incbin "graphics/battle_anims/sprites/192.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_192:: + .incbin "graphics/battle_anims/sprites/192.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_193:: + .incbin "graphics/battle_anims/sprites/193.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_193:: + .incbin "graphics/battle_anims/sprites/193.gbapal.lz" + + .align 2 gUnknown_08C20668:: @ 8C20668 - .incbin "baserom.gba", 0xc20668, 0x1c + .incbin "graphics/battle_anims/masks/curse.4bpp.lz" + .align 2 gUnknown_08C20684:: @ 8C20684 - .incbin "baserom.gba", 0xc20684, 0x1f8c + .incbin "graphics/battle_anims/masks/curse.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_002:: @ 8D20B30 + .incbin "graphics/battle_anims/sprites/002.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_002:: @ 8D20C14 + .incbin "graphics/battle_anims/sprites/002.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_196:: @ 8D20C3C + .incbin "graphics/battle_anims/sprites/196.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_196:: @ 8D20FE0 + .incbin "graphics/battle_anims/sprites/196.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_194:: @ 8D20FF8 + .incbin "graphics/battle_anims/sprites/194.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_194:: @ 8D21330 + .incbin "graphics/battle_anims/sprites/194.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_195:: @ 8D21358 + .incbin "graphics/battle_anims/sprites/195.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_195:: @ 8D21410 + .incbin "graphics/battle_anims/sprites/195.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_197:: @ 8D21430 + .incbin "graphics/battle_anims/sprites/197.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_197:: @ 8D215A0 + .incbin "graphics/battle_anims/sprites/197.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_198:: @ 8D215C8 + .incbin "graphics/battle_anims/sprites/198.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_198:: @ 8D219B8 + .incbin "graphics/battle_anims/sprites/198.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_199:: @ 8D219E0 + .incbin "graphics/battle_anims/sprites/199.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_199:: @ 8D21AA8 + .incbin "graphics/battle_anims/sprites/199.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_200:: @ 8D21AC4 + .incbin "graphics/battle_anims/sprites/200.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_200:: @ 8D21C04 + .incbin "graphics/battle_anims/sprites/200.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_201:: @ 8D21C20 + .incbin "graphics/battle_anims/sprites/201.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_201:: @ 8D22290 + .incbin "graphics/battle_anims/sprites/201.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_204:: @ 8D222B8 + .incbin "graphics/battle_anims/sprites/204.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_204:: @ 8D2242C + .incbin "graphics/battle_anims/sprites/204.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_202:: @ 8D22454 + .incbin "graphics/battle_anims/sprites/202.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_202:: @ 8D225BC + .incbin "graphics/battle_anims/sprites/202.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_203:: @ 8D225E0 + .incbin "graphics/battle_anims/sprites/203.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_203:: @ 8D2278C + .incbin "graphics/battle_anims/sprites/203.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_206:: @ 8D227B0 + .incbin "graphics/battle_anims/sprites/206.4bpp.lz" gUnknown_08C22610:: @ 8C22610 .incbin "baserom.gba", 0xc22610, 0xcd0 diff --git a/graphics/battle_anims/masks/curse.bin b/graphics/battle_anims/masks/curse.bin new file mode 100755 index 0000000000000000000000000000000000000000..1e9623948ef94488541385db8fd2b850153004b9 GIT binary patch literal 2048 pcmZQt literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/masks/curse.png b/graphics/battle_anims/masks/curse.png new file mode 100755 index 0000000000000000000000000000000000000000..03979ee8d2118a0a681010ab366135b35b3a0cba GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^96&6=!VDx$zb{koiUD*!1`PZ!4!j+w~`3j7>Q gj6&S%jmsqX7(y$U6mL!5ItirE)78&qol`;+0PGtoF#rGn literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/002.png b/graphics/battle_anims/sprites/002.png new file mode 100755 index 0000000000000000000000000000000000000000..c2a98f6f598923de052e7ea149b8b558d5387e46 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ipS0MfW|Nndc&+h#{XU_ku z>a$)+OAH;0B{aPlEP+z@n(ysR+B?T_PP67wL!erQjCZdUfK;2Oi(`n!#N>npf)6Z} z8?*|lzB`7nTBpm4IS5;1btrA9_V@U}ro#Bm*gZBT&_|QMu&}ZxhpT#J_x#n0t0t-I z9X#P>@qFiw1=@v!REoH(a3m6LXl&shbv>6 z>I{Y}ay*Q)BD#+jOWaFWkV%SQnz@VNks9la&yD{Yc1bBVxIGpNa1&2Zh+<$+ROSq6 S(!TBkvd+`h&t;ucLK6TW3N0l7 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/189.png b/graphics/battle_anims/sprites/189.png new file mode 100755 index 0000000000000000000000000000000000000000..67fdd45365342ed7ed4ac458a55c939bdfcaa7ac GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*CYmp|Nrk@{dRTDyR*&D zjwanZ8nkzc*ODa1W<$#?pdxhexI5_=P|V-c#W6%D4xEmdDr5A zyMCgL`*l~=ia=Ws)ob!36J>)p23y-n*(2uzkPxXy1RYikByXXS7egc<4WT6b|~=vi^PR6huK5z-sD_kJ3^e}|@} z1{%ikJPpHmInhWu9*%np;KT8d1Pr9_!D`FV1>jB$f(Li*JdGFk%uWPwaL#+@o@M}! z6}>XjA`QVSw(TG_NInYbs+yh6?$)b@qUD$Kp{!kGK7_WlMJ+jSh1{002ovPDHLk FV1jAp%>w`c literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/191.png b/graphics/battle_anims/sprites/191.png new file mode 100755 index 0000000000000000000000000000000000000000..e1442ff5c1b8de2a5a1f59aa90352a3659198b44 GIT binary patch literal 399 zcmV;A0dW3_P)n95u=R^ zI(blcw6Hq#4=TI8g?J5(jCAWC^WGq?QDWFkA%@E5EzR0sg|kD~B&Fy7utl;HL*4FMR%RfZ!1XhZr1#c#y(TjE6Z~2bqO3 tMMScaj!l@Qb^zd7#ETWL<^nEvR&T?Cy{|Q!-|GMX002ovPDHLkV1m|Brn&$C literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/192.png b/graphics/battle_anims/sprites/192.png new file mode 100755 index 0000000000000000000000000000000000000000..1f76354ab3ae5c36b64cc39988b88134e676f48d GIT binary patch literal 541 zcmV+&0^|Ct3QxNLqHxU#=jprutY>x|&BS(G2X6loix+gMs-ba_9%?n3n7SJhS(1mtP zH0g51pvn56(wrg&fw4QPJcw%hx6)j+(Uk>)K_5FDlLMmWa|_&9#a_D+I0OM{1T+Hy z0-AvzScE{MSb6jT1H}NSdeR_35MoQQUjZ=)Dp644TKSQL%dIGAY@;nyPfQVdm0b$JMcZ7I(l3=LXeFh^-~ z+>j_S#54fpnf`=b5VQyshRnb`N20!8&WqY{;3QM_6&pEU4a}8_q+2pgb fGoTPWguiHCXXIfdxoEv;00000NkvXXu0mjfk$~#N literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/193.png b/graphics/battle_anims/sprites/193.png new file mode 100755 index 0000000000000000000000000000000000000000..f3b6bd2c2349d84ecba9a15e69a321dc4bb6a6b9 GIT binary patch literal 358 zcmV-s0h#`ZP)|IKRuv}*30YTkot&1!1BQfjO@YMcN700000_Gy>&0002- zNklx8-z&C%z(q)+ev2TwgfD1|*Ne1=zHhT(HQh1aF zgA(Pa+|h#lzEN-+cxg{OiDuL#-8+E%cXf<4C~n6kQc;i--vmv4k8sCwd@B_)w2}ZW(U<~A)`{T z1(jDASA%rSMP9X|oqmhLrJvwU_WKK7WSlxy&|g^f1@d!Nb(n-U>Hq)$07*qoM6N<$ Ef-;ex>i_@% literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/194.png b/graphics/battle_anims/sprites/194.png new file mode 100755 index 0000000000000000000000000000000000000000..228013658199cacb74858fb67ec6bf534982eeec GIT binary patch literal 616 zcmV-u0+;=XP)Vw4oKmd4d%eY!&DE@Xi%OidVq$YS?(W|I|Nj6000000g+C+S0005= zNklNfQsTn?^OU;yI>z~uhjIELUQpYzN;YMb}C8(SS5c}JE5?+J5YHMRhb8n7C;uRKBqte;yR zylr$n*qSwB9%B8}GB|DM0M0OI$ST~dyHbS;_0KIGnANb^orhSix|S_^!Wac8?>F7= zGhktu2jg6%c=VF;%jPiyg3O4kDvG8w@fiR^t!(9{L^Od}t8?JiS|w|6+xU7s9`-fd zn{!}^rnDAxDsV(<`rRsPfprOJQihj!poTj>2MTBu7<0<-a-fZzRyIjM4K`FU5tH_E z8aV(ukYqf)qH1KL8L$W%xA7=8MZYHlS%hL4w4?Z%{77=vc}D3m_|#yE6OpS!pZi4} zkP<&hW(-cTYmvRmp7h7H@YMM0000vpti`Oy8qRaw&+x!o#|#ApR&J986ArQae|W^e@No{Wr}fEm QZXic_y85}Sb4q9e0P>kf!vFvP literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/196.png b/graphics/battle_anims/sprites/196.png new file mode 100755 index 0000000000000000000000000000000000000000..c3dee2e0a01b94afe68fccf7504382da3befaff2 GIT binary patch literal 726 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipS0MfW|Nnbu&+eTwXHHfY zkc%HYcxGS6z`&H~>EamT(K$Did(vtH9_1%Yg*zOa^cmj#eg948=CkOs^tcyW=5Czu zr`wk2`DB*#3hR~UZ2qzaJwN(CcW=$+`o8~_bxP;TTx~3Zc3W9~+g)!me~!%hdDqx3 z2+1ATG1oPySjfKSuTIcmIXec!Y21uIj?S5o#Pru`fy752L;t@n6S)kHf)^_sW6JJx zSkkDFxopWSr*}(Uv^Uj0Nsbh;u$*?m0;qog&FudxV)Ogt>CkMwL$z3`$vQt*tAsZCs=7u+;5`L+hIO=s;1o$aYN= zI}X3K4{iv!sWN<-oSE`t-L-dxVOJ!#Ep2c~xR>yDC;Nfsj7wK0%crd{KBvtvW0Bn2 z{R|C~zvLVG|1eIN^rezj!SBk?vnO2_|46j1(33r2!(^~<>4i(veWDf}Ti82GH-!7` ziHNW-OP5t`O7UMYTgmLHMR@VYtW6PCCki_?P z{{Pqfe^lYyv;Rl8oSo9VBq^xcPywVL0ume^9ARK!Wb$-z4AGdF8@RjghyqUu_bK=M z%ynL!D}(gH{yo^X;BH6%F3DocmrGm~E7-ZCY+e+;lhfRv|j&-iP8ux9uE4w>d zmwnG2VGf7TzezH=%37;*JNOoC^X}r9*b<#>BEGTm>Z2`_qMp3D7U1%1cT}?R=J%5d ziz7LEmKdQt2^3Ss)zsp literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/198.png b/graphics/battle_anims/sprites/198.png new file mode 100755 index 0000000000000000000000000000000000000000..abe613212349fba1618532fb9dd80f1910acd98c GIT binary patch literal 845 zcmV-T1G4;yP)$>8oB#j-0000000000b?NdC0008m zNklyPm7yC6u_qxTrzsG!a|QN{Q$Ls+wO5$_H#sBMk0IJi()=N>9M7-A<}~o zP%_CO&|CE2sinJqsJ@x!pV2LaLZS45$;@xw-+507`PY&u>yPlzj|w>9v-MU5vt$*o z(qUgLR}qWX1E6tqd3hBpUW@A&=Bq#fCl{vq>`L)^C&6L>Y@#vCFN6=pq`1C#d9_rW z&LC_ME1A+2V~a!uJdT%YxythY5@QNzHmqy;yX^Nm{uP}Hty++WyGlLDecKAsjBwFB zx+g|%o2KbMI6}@oTVWK{e}vro3!A*2Pp!I7M7c=G3q@6hXrdc z!L|b|Nu^5Bnm7QsNcg)4JKGjc(%pfOX6wPJ&~g@EK!JaH9>JkBTFAI`8+mVR1sFdV zyG6HcW_b{M7&u`f5gI3VKE_S*P=Nh55;m3_q?|)$SyM0;+(M#@eQk(TY2;hMt;<;0 zKw%XkOD8fo_4tx zqiF^Lk(!6Htm@vTX-fYbk~WBe-Pg<9ws^*O)dSicxn^7M$p^kGCD1cMH|KtSAbp<{m90k3@z29CSPq=jSawj zJqD%IF1vSP$6Ju!w4gnpJ^)RYg?Z!-)Zv2?AI9M) X?rX00000NkvXXu0mjf1^9*x literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/199.png b/graphics/battle_anims/sprites/199.png new file mode 100755 index 0000000000000000000000000000000000000000..9468fddc92316f6460550880fbf7eeeaa3d54136 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B-qEW^*KFA`WzL-H z=I*4VVlS^GLqniAR&avlmo-qLz|+Ms#G*GjK|$6)asj6V*J4f$u7#W&T0qRXh=Gkw zP*r5X357R8QjcBzTJzuy*a9? zeAPYc&A4T##zB-QGN2(>F*{!DL))o9vzp#u(IdCO#9&PcJ>l0aFCMPEx|(5XbIu{bUtT<4ZeNp&GBx}XqBou4z6(2-5=?W-h zy>L;+YW7xHi6y4jmlTT|m3XNga=AI}hPeGP=bG8|c|}dP4=LGyF1*APY8Fz+{>$f1 z%xul&Vxd-*3oq7uI{LRGZ?!;~N!i(V8D-`dcG;9E{p0AY4ec>M>LACSA1K2M^1P?3 KpUXO@geCw(?1k0< literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/201.png b/graphics/battle_anims/sprites/201.png new file mode 100755 index 0000000000000000000000000000000000000000..4b8cb700cca5459ad4772b60db47cc8d8837d360 GIT binary patch literal 1316 zcmV+<1>5?GP)!-)q}e6vxF9$H80w2`}9q_LeL6p-CXj$2Qn26yhrdw*}MKQXf_*sjVwI z2BmDZ{)~W<1&%W)B%xrXu!n?#>pacvL#q3~>|Dt|q;xRYL)q?&{r&jp=;)rW&y}YA z>m{s|%nHwHCiJp!UzX<~%RS+G5A|)&n*dJ;_XR8QZSgz?T!@!N{ebhHcoJQ4!QB=N z1qc)D2q13&2w;^iyQM(y85el;%lG*ehcR`H5Qh#kVKu)}mhV+Dm9DwNBoyj;`S_D|(-nx7{46q)9oX^(Yi~#VUUVRl+Dt(40KnweE z={K%!<38yszM4KSA_jne%=aTlC;A+xZnP+Lj%GtPl^&jZ^NdeiP?ivYnN{ zz}IcI`mL(~H+~xQxg}Zv>=EhAgK-0o3*4%gxS_Hx%CLk?=hR&y1Rlt9U^?8F=S98E zn*>5ephUb#UZo`UKUq+Ostkd#TM_Vs;H1;M#3}rZK;1nF;=yxf@22S>;erGf!J)8s(2q}Pcf4ZY`grxg3 z2Wnpp@iM6+Q>L^cf7i>;vpmmBOCe@<&{V_S9#q^p`QoPV0JuBVf-JLL_V{FgWCb@l z@0#M**dLncLaAGUlHs;GQNS}_2SZSbN9D+^*(w3kX#xIbbt(z~xxs8vdkouYsSv38 z1@aH_GT0rVK<(_U)d3DIC_8E_!I}KPZN^~-;70|H*CiM`jMaSxmmd^hG#PvX=&wr! zzGQkaK*o3jK{g5Gj%g?bKC(Iu5d}2tUrI?ag*wDD1@TNu7%;XG#vP}5@@5Plk2mDI zc}t--z@u7IN@Hsn}%i95C*%Q4_x z?UR+;(&beO1nkZr6@tN9y7u`vckJ{JOOBO3pIe95Lbh&8@o5!W_OYbHDe+78=P^|G zlh=Y?3jj80>x^aud^YHx6sc2I*O-(}N1)mu+vagdZcmH$-Dx`_bz93i>{PD3N<>R9 z>reIf39wl8LB<;rXIRj&@NqBFBCb!TH?jyg7DPE0YLgv8sKggdbPo5O)Ef*`?M}&< a$-e*(!xIx7ie?-D0000rlB6X;hRvE1SsXy62=Kyb)^i~5u&0Y-h(+()EBpDH3i{PF(uk{@+Dy%kIt_86`1`To{QIB)(^ z>m!$1YmY6o64+ras?==BchPQ24fDq*%`(+r8lvp^i(WYS8uVOwWp?Oh!wd$IUXPVh zzh%NzSFS$iw8lqjccR-0e`W^mN#`UNe6f8mKgE2neC3O~{Jd*_e|_l0zHzEpQgKnn z&(|40o||v_QWas)qi~RkNif1f$x+Gd{XQFg=PU^_Y}S;>;s7c|fPIc#eL&thPZ!4!kIuKDhJ1$%c)lcD%rEUY zV=kc+VXg4%@3Jn9vVx+iTs{>muUP-o^Quw%Rakh+v@BugvrA&CCv&6rA9fDz5Z@8N z)OOIBExIN(#4bYZe{#V22|M#FSBqDeKXu7!RJxS^AgbVk!uAS5CDzq~+7i7H2Q!Xv zxjmM7?DBnI>sgo6htimYmb41Lv~&6_a6VaqDgIW=Co* J%Q~loCIG6i_?P z{{Pqfe^lZB6p8;y0{;y;{xdMl0V;xl(wCq385kG^JzX3_G$y7_aLhVvAmDmDVZ}r< zNrMv?PKPXTeUZzPplAn6aTX<@l zYANFl`v)uXnx|?XI5pex=gah8_VW*LTyKv!QO#VoVu6q!*Kw~;tHPSPWv2@}=1rK& eVZm6Not%?<+WA6lEfWrbg2 z&v>!(TK^o?Y>mB76ZU2an?KM@xWQ?uD&TRVc#7Ja;4L&U7 z;2oRN1#NmdFKEk);$ z3G3aQO-b|8mL1ovhzX0DAHl6~!C^-8nr-V#6wWa(x^Q>~qt!#xpvVU zKE*%NT$Jx-8f$k;$5CO8jS=%^wqKDv!S<-wbJZ1Xe@*|)n*F?@`)DfL QR!}T>y85}Sb4q9e0Cqge9RL6T literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/206.png b/graphics/battle_anims/sprites/206.png new file mode 100755 index 0000000000000000000000000000000000000000..d3584f8553176f2720ee62ceff08000ab8080d0d GIT binary patch literal 747 zcmeAS@N?(olHy`uVBq!ia0vp^0t^g{3@pq*mPgI&S|Ifyz$e5NNdE_dy?g&xSO2%P z{LjE}6)42OaCFMici+CfySL@r+3Ih5E&s1!xH<(a!N33#|F-4Zx9V@-EdPIFxOx_$ ze($#}-QTLCzFBJiXV8Qg1XjQ1-Lv9%_bi{CWq5X!VecHc`D@O8D_-)=viciC(0>L? zut8w;Fl)c9Vfa6V0VED|57c@L3h16C_r4_^{T8(3tYh~Y!>n$IdZ4$S-Me~r@0Kld zx|cL(RVRT$foXR0TVOzJ^K@|x@#tJT`Cwm@fq;WLlQ_5iLVE|Mdna%0oxP*#+lKh% z;_ng;Ri+BRUw4fEM*od-KI(cK+oa~COu8;M)eJj*LW^w zJ=Xc7kY~5jLCrw?$A)xA6^2*?yPA}mCP%xOom-f9UYn(`^(EuvJqvi$e=-R#%Gq|1 zC1S1RZ{HtX2hX;fZi*?^{anj0f5kz8H)bN++JNSz1~p6EE;k*#`rW_sm8tPFVZZqf zH7QX}JEUhH*e9;TTC~zmI3l9sPpz8e^3CsARc%Z?)-{@ZUeO)LyUXIMOwRPo>l!EW zwD$Vj9@(%Z!{EivuZ;oepFV%S{ZST+cngrjUp+f46?(S_ zi^GrYZUZ_z9_ny;RXZbH!#lmbo8GUS?4Wz~JCi$i=l=8Co|SytyRczxh zg*WT@*|OhGy=BU^DcbA3H@~5dt`yJPgTEZ^gnjz_Pxv?UDW5OC_q&o>L21C#)z4*} HQ$iB}k2P2o literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/window.png b/graphics/battle_interface/window.png new file mode 100755 index 0000000000000000000000000000000000000000..0862ca399d54ce6f77b94432f6189a8eed4e386a GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^4nW+%!VDxm*B3)q z?%9V!zxMb@?AZ|OB2(9#`aEuijOxP$Oqe7=46JGmDpdJJbu zzGzP`-?E|o8=K~%uMN^x4O}%p_k>Saq*2fA`I?P$NzklC`VaiPa<7VetbIDkApD`b zlMbi2=Zup~R*WUB3P&ah^g5qVJ;-(FOACw4+3e;|zK43b6CTV9w`HtnpA*2rv`S)A ff~ZEdLlsj->!n-9c{01A!9!w2SO3+qZvY;a5phu8{fo;hH-$}<>giH-W z+aI14%VgQir&9dTkagByCr(X?h=xatLUgzSn%3$v1Tz-xm|dchpykkMRqn)f#$EJ+ zXQQAZ>)95OjDR%@W(HIlygD#RW1{GaDN7U8yq>7syw|20yI3VF;nZ;hCfm(P5{(n* nUhF*((2&QH*4dz19>~HF?Ku4}>{+IDTBgv`C~yFyO!}HwQ-vM%DvY zTH-*DTJZ?2G#t{&0ny3V3?)@)FN#?O9Af i!<6F}oaX0bU|4YMdLlsj->!n-9c{01A!9!w2SO3+qZvY;a5phu8{fo;hH-$}<>giH-W z+aI14%e-=;(wT8Vg_USG)0Bj4?gJqWGVj!6IcIPMEIK!L0@LR}){>xvls?sc6GcsC zFHbyXzKMyqSjUsimvNb(M%a#I&r*%PHy(#gm?9g!B&W4>&r!L3`;tMg!ju((pIFU) cDl#%m{rocQmv75sppzLqUHx3vIVCg!0En?{Z~y=R literal 0 HcmV?d00001 diff --git a/graphics/battle_interface/window5.png b/graphics/battle_interface/window5.png new file mode 100755 index 0000000000000000000000000000000000000000..e48f380a4b5e4e28d64621998a934b7b201c5277 GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^4nW+%!VDxm*B36sI=MdWOTm`ttpox|0RT_NRXoT?ZrxidnW z85#cdd%bq$SQWG^P4k4G)sZ~S6;Z2gA95smH&rkS@GSh+@`B@cyFiM`{K+S_b8XjY r;QznpbIUP7m!m6wYBDg?o#PHRh+Fk3^6x{S`x!i4{an^LB{Ts5fh~Dd literal 0 HcmV?d00001 diff --git a/graphics/unused/shadow.png b/graphics/unused/shadow.png new file mode 100755 index 0000000000000000000000000000000000000000..7d090ad3dfd69d0912b058c9caa0f9acbd6c0e75 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1nO_wL>Q|NnsuVt{Jz z=9@rurk*a2Are!Q6BPIjxHK6X73SzK;drF2sm1B=bm{{KhJ|vTEHl?H>F{N6=5AX! e<64qcj|&3>9~ZCp*L2Y`kVT%ZelF{r5}E*1tR)rz literal 0 HcmV?d00001 From d0659a3ec6a084cee8f1643df34782937f922dc0 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sun, 24 Dec 2017 01:00:53 -0500 Subject: [PATCH 26/54] seventh wave of graphics.s dumps --- asm/battle_anim_80FE840.s | 2 +- data/graphics.s | 348 +++++++++++++++++- graphics/battle_anims/backgrounds/04.bin | Bin 0 -> 1280 bytes graphics/battle_anims/backgrounds/04.png | Bin 0 -> 2672 bytes graphics/battle_anims/backgrounds/05.bin | Bin 0 -> 1280 bytes graphics/battle_anims/backgrounds/06.bin | Bin 0 -> 1280 bytes graphics/battle_anims/backgrounds/07.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/07.png | Bin 0 -> 373 bytes graphics/battle_anims/backgrounds/08.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/09.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/09.png | Bin 0 -> 964 bytes graphics/battle_anims/backgrounds/10.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/18.pal | 19 + graphics/battle_anims/backgrounds/20.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/20.png | Bin 0 -> 1998 bytes graphics/battle_anims/backgrounds/21.bin | Bin 0 -> 4096 bytes graphics/battle_anims/backgrounds/21.png | Bin 0 -> 672 bytes graphics/battle_anims/backgrounds/22.pal | 19 + graphics/battle_anims/backgrounds/attract.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/attract.png | Bin 0 -> 2150 bytes .../battle_anims/backgrounds/scary_face.png | Bin 0 -> 428 bytes graphics/battle_anims/sprites/018.png | Bin 0 -> 172 bytes graphics/battle_anims/sprites/053.png | Bin 0 -> 456 bytes graphics/battle_anims/sprites/064.png | Bin 0 -> 289 bytes graphics/battle_anims/sprites/067.pal | 19 + graphics/battle_anims/sprites/068.pal | 19 + graphics/battle_anims/sprites/087.png | Bin 0 -> 183 bytes graphics/battle_anims/sprites/099.png | Bin 0 -> 334 bytes graphics/battle_anims/sprites/143.png | Bin 0 -> 461 bytes graphics/battle_anims/sprites/188.png | Bin 0 -> 249 bytes graphics/battle_anims/sprites/206.pal | 83 +++++ graphics/battle_anims/sprites/207.png | Bin 0 -> 262 bytes graphics/battle_anims/sprites/208.png | Bin 0 -> 815 bytes graphics/battle_anims/sprites/209.png | Bin 0 -> 620 bytes graphics/battle_anims/sprites/210.png | Bin 0 -> 200 bytes graphics/battle_anims/sprites/211.png | Bin 0 -> 190 bytes graphics/battle_anims/sprites/212.png | Bin 0 -> 354 bytes graphics/battle_anims/sprites/213.png | Bin 0 -> 501 bytes graphics/battle_anims/sprites/214.png | Bin 0 -> 534 bytes graphics/battle_anims/sprites/215.png | Bin 0 -> 357 bytes graphics/battle_anims/sprites/216.pal | 19 + graphics/battle_anims/sprites/217.png | Bin 0 -> 195 bytes graphics/battle_anims/sprites/218.png | Bin 0 -> 239 bytes graphics/battle_anims/sprites/219.pal | 19 + graphics/battle_anims/sprites/220.png | Bin 0 -> 329 bytes graphics/battle_anims/sprites/221.png | Bin 0 -> 521 bytes graphics/battle_anims/sprites/222.png | Bin 0 -> 554 bytes graphics/battle_anims/sprites/223.png | Bin 0 -> 524 bytes graphics/battle_anims/sprites/224.png | Bin 0 -> 300 bytes graphics/battle_anims/sprites/225.png | Bin 0 -> 408 bytes graphics/battle_anims/sprites/226.png | Bin 0 -> 245 bytes graphics/battle_anims/sprites/227.png | Bin 0 -> 269 bytes graphics/battle_anims/sprites/228.png | Bin 0 -> 203 bytes graphics/battle_anims/sprites/229.png | Bin 0 -> 445 bytes graphics/battle_anims/sprites/230.png | Bin 0 -> 481 bytes graphics/battle_anims/sprites/231.png | Bin 0 -> 391 bytes graphics/battle_anims/sprites/232.png | Bin 0 -> 1085 bytes graphics/battle_anims/sprites/233.png | Bin 0 -> 213 bytes graphics/battle_anims/sprites/234.png | Bin 0 -> 333 bytes graphics/battle_anims/sprites/235.png | Bin 0 -> 195 bytes graphics/battle_anims/sprites/236.pal | 19 + graphics/battle_anims/sprites/237.pal | 19 + graphics/battle_anims/sprites/238.png | Bin 0 -> 210 bytes graphics/battle_anims/sprites/239.png | Bin 0 -> 313 bytes graphics/battle_anims/sprites/240.png | Bin 0 -> 258 bytes graphics/battle_anims/sprites/241.png | Bin 0 -> 258 bytes graphics/battle_anims/sprites/242.png | Bin 0 -> 339 bytes graphics/battle_anims/sprites/243.png | Bin 0 -> 160 bytes graphics/battle_anims/sprites/244.png | Bin 0 -> 226 bytes graphics/battle_anims/sprites/245.png | Bin 0 -> 329 bytes graphics/battle_anims/sprites/246.png | Bin 0 -> 758 bytes graphics/battle_anims/sprites/247.png | Bin 0 -> 441 bytes graphics/battle_anims/sprites/248.png | Bin 0 -> 141 bytes graphics/battle_anims/sprites/249.png | Bin 0 -> 175 bytes graphics/battle_anims/sprites/250.png | Bin 0 -> 457 bytes graphics/battle_anims/sprites/251.png | Bin 0 -> 187 bytes graphics/battle_anims/sprites/252.png | Bin 0 -> 323 bytes graphics/battle_anims/sprites/253.png | Bin 0 -> 467 bytes graphics/battle_anims/sprites/254.png | Bin 0 -> 334 bytes graphics/battle_anims/sprites/255.png | Bin 0 -> 208 bytes graphics/battle_anims/sprites/256.png | Bin 0 -> 686 bytes graphics/battle_anims/sprites/257.png | Bin 0 -> 317 bytes graphics/battle_anims/sprites/258.png | Bin 0 -> 290 bytes graphics/battle_anims/sprites/260.png | Bin 0 -> 342 bytes graphics/battle_anims/sprites/261.png | Bin 0 -> 378 bytes graphics/battle_anims/sprites/262.png | Bin 0 -> 249 bytes graphics/battle_anims/sprites/263.png | Bin 0 -> 166 bytes graphics/battle_anims/sprites/264.png | Bin 0 -> 152 bytes graphics/battle_anims/sprites/265.pal | 19 + graphics/battle_anims/sprites/266.png | Bin 0 -> 167 bytes graphics/battle_anims/sprites/267.pal | 19 + graphics/battle_anims/sprites/268.pal | 19 + graphics/battle_anims/sprites/269.png | Bin 0 -> 179 bytes graphics/battle_anims/sprites/270.png | Bin 0 -> 304 bytes graphics/battle_anims/sprites/271.png | Bin 0 -> 172 bytes graphics/battle_anims/sprites/272.png | Bin 0 -> 384 bytes graphics/battle_anims/sprites/273.png | Bin 0 -> 159 bytes graphics/battle_anims/sprites/274.png | Bin 0 -> 261 bytes graphics/battle_anims/sprites/275.png | Bin 0 -> 221 bytes graphics/battle_anims/sprites/276.png | Bin 0 -> 245 bytes graphics/battle_anims/sprites/277.png | Bin 0 -> 684 bytes graphics/battle_anims/sprites/278.png | Bin 0 -> 421 bytes graphics/battle_anims/sprites/279.png | Bin 0 -> 184 bytes graphics/battle_anims/sprites/280.png | Bin 0 -> 601 bytes graphics/battle_anims/sprites/281.png | Bin 0 -> 399 bytes graphics/battle_anims/sprites/282.png | Bin 0 -> 401 bytes graphics/battle_anims/sprites/283.png | Bin 0 -> 323 bytes graphics/battle_anims/sprites/284.png | Bin 0 -> 679 bytes graphics/battle_anims/sprites/285.png | Bin 0 -> 228 bytes graphics/battle_anims/sprites/286.pal | 19 + graphics/battle_anims/sprites/287.pal | 19 + graphics/battle_anims/sprites/effect.pal | 27 ++ graphics/battle_anims/sprites/substitute.png | Bin 0 -> 446 bytes 113 files changed, 699 insertions(+), 8 deletions(-) create mode 100755 graphics/battle_anims/backgrounds/04.bin create mode 100755 graphics/battle_anims/backgrounds/04.png create mode 100755 graphics/battle_anims/backgrounds/05.bin create mode 100755 graphics/battle_anims/backgrounds/06.bin create mode 100755 graphics/battle_anims/backgrounds/07.bin create mode 100755 graphics/battle_anims/backgrounds/07.png create mode 100755 graphics/battle_anims/backgrounds/08.bin create mode 100755 graphics/battle_anims/backgrounds/09.bin create mode 100755 graphics/battle_anims/backgrounds/09.png create mode 100755 graphics/battle_anims/backgrounds/10.bin create mode 100755 graphics/battle_anims/backgrounds/18.pal create mode 100755 graphics/battle_anims/backgrounds/20.bin create mode 100755 graphics/battle_anims/backgrounds/20.png create mode 100755 graphics/battle_anims/backgrounds/21.bin create mode 100755 graphics/battle_anims/backgrounds/21.png create mode 100755 graphics/battle_anims/backgrounds/22.pal create mode 100755 graphics/battle_anims/backgrounds/attract.bin create mode 100755 graphics/battle_anims/backgrounds/attract.png create mode 100755 graphics/battle_anims/backgrounds/scary_face.png create mode 100755 graphics/battle_anims/sprites/018.png create mode 100755 graphics/battle_anims/sprites/053.png create mode 100755 graphics/battle_anims/sprites/064.png create mode 100755 graphics/battle_anims/sprites/067.pal create mode 100755 graphics/battle_anims/sprites/068.pal create mode 100755 graphics/battle_anims/sprites/087.png create mode 100755 graphics/battle_anims/sprites/099.png create mode 100755 graphics/battle_anims/sprites/143.png create mode 100755 graphics/battle_anims/sprites/188.png create mode 100755 graphics/battle_anims/sprites/206.pal create mode 100755 graphics/battle_anims/sprites/207.png create mode 100755 graphics/battle_anims/sprites/208.png create mode 100755 graphics/battle_anims/sprites/209.png create mode 100755 graphics/battle_anims/sprites/210.png create mode 100755 graphics/battle_anims/sprites/211.png create mode 100755 graphics/battle_anims/sprites/212.png create mode 100755 graphics/battle_anims/sprites/213.png create mode 100755 graphics/battle_anims/sprites/214.png create mode 100755 graphics/battle_anims/sprites/215.png create mode 100755 graphics/battle_anims/sprites/216.pal create mode 100755 graphics/battle_anims/sprites/217.png create mode 100755 graphics/battle_anims/sprites/218.png create mode 100755 graphics/battle_anims/sprites/219.pal create mode 100755 graphics/battle_anims/sprites/220.png create mode 100755 graphics/battle_anims/sprites/221.png create mode 100755 graphics/battle_anims/sprites/222.png create mode 100755 graphics/battle_anims/sprites/223.png create mode 100755 graphics/battle_anims/sprites/224.png create mode 100755 graphics/battle_anims/sprites/225.png create mode 100755 graphics/battle_anims/sprites/226.png create mode 100755 graphics/battle_anims/sprites/227.png create mode 100755 graphics/battle_anims/sprites/228.png create mode 100755 graphics/battle_anims/sprites/229.png create mode 100755 graphics/battle_anims/sprites/230.png create mode 100755 graphics/battle_anims/sprites/231.png create mode 100755 graphics/battle_anims/sprites/232.png create mode 100755 graphics/battle_anims/sprites/233.png create mode 100755 graphics/battle_anims/sprites/234.png create mode 100755 graphics/battle_anims/sprites/235.png create mode 100755 graphics/battle_anims/sprites/236.pal create mode 100755 graphics/battle_anims/sprites/237.pal create mode 100755 graphics/battle_anims/sprites/238.png create mode 100755 graphics/battle_anims/sprites/239.png create mode 100755 graphics/battle_anims/sprites/240.png create mode 100755 graphics/battle_anims/sprites/241.png create mode 100755 graphics/battle_anims/sprites/242.png create mode 100755 graphics/battle_anims/sprites/243.png create mode 100755 graphics/battle_anims/sprites/244.png create mode 100755 graphics/battle_anims/sprites/245.png create mode 100755 graphics/battle_anims/sprites/246.png create mode 100755 graphics/battle_anims/sprites/247.png create mode 100755 graphics/battle_anims/sprites/248.png create mode 100755 graphics/battle_anims/sprites/249.png create mode 100755 graphics/battle_anims/sprites/250.png create mode 100755 graphics/battle_anims/sprites/251.png create mode 100755 graphics/battle_anims/sprites/252.png create mode 100755 graphics/battle_anims/sprites/253.png create mode 100755 graphics/battle_anims/sprites/254.png create mode 100755 graphics/battle_anims/sprites/255.png create mode 100755 graphics/battle_anims/sprites/256.png create mode 100755 graphics/battle_anims/sprites/257.png create mode 100755 graphics/battle_anims/sprites/258.png create mode 100755 graphics/battle_anims/sprites/260.png create mode 100755 graphics/battle_anims/sprites/261.png create mode 100755 graphics/battle_anims/sprites/262.png create mode 100755 graphics/battle_anims/sprites/263.png create mode 100755 graphics/battle_anims/sprites/264.png create mode 100755 graphics/battle_anims/sprites/265.pal create mode 100755 graphics/battle_anims/sprites/266.png create mode 100755 graphics/battle_anims/sprites/267.pal create mode 100755 graphics/battle_anims/sprites/268.pal create mode 100755 graphics/battle_anims/sprites/269.png create mode 100755 graphics/battle_anims/sprites/270.png create mode 100755 graphics/battle_anims/sprites/271.png create mode 100755 graphics/battle_anims/sprites/272.png create mode 100755 graphics/battle_anims/sprites/273.png create mode 100755 graphics/battle_anims/sprites/274.png create mode 100755 graphics/battle_anims/sprites/275.png create mode 100755 graphics/battle_anims/sprites/276.png create mode 100755 graphics/battle_anims/sprites/277.png create mode 100755 graphics/battle_anims/sprites/278.png create mode 100755 graphics/battle_anims/sprites/279.png create mode 100755 graphics/battle_anims/sprites/280.png create mode 100755 graphics/battle_anims/sprites/281.png create mode 100755 graphics/battle_anims/sprites/282.png create mode 100755 graphics/battle_anims/sprites/283.png create mode 100755 graphics/battle_anims/sprites/284.png create mode 100755 graphics/battle_anims/sprites/285.png create mode 100755 graphics/battle_anims/sprites/286.pal create mode 100755 graphics/battle_anims/sprites/287.pal create mode 100755 graphics/battle_anims/sprites/effect.pal create mode 100755 graphics/battle_anims/sprites/substitute.png diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index 75879519e0..cd365d7af8 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -14567,7 +14567,7 @@ _08105CCC: lsls r2, 1 adds r0, r2 str r1, [r0] - ldr r0, =gUnknown_08C22610 + ldr r0, =gBattleAnimSpritePalette_206 bl LZDecompressWram movs r4, 0 _08105D00: diff --git a/data/graphics.s b/data/graphics.s index 47faf81ffe..f3f308b45f 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1892,23 +1892,357 @@ gBattleAnimSpritePalette_203:: @ 8D2278C gBattleAnimSpriteSheet_206:: @ 8D227B0 .incbin "graphics/battle_anims/sprites/206.4bpp.lz" -gUnknown_08C22610:: @ 8C22610 - .incbin "baserom.gba", 0xc22610, 0xcd0 + .align 2 +gBattleAnimSpritePalette_206:: @ 8D229BC + .incbin "graphics/battle_anims/sprites/206.gbapal.lz" + .align 2 +gBattleAnimSpriteSheet_205:: @ 8D22A50 + .incbin "graphics/battle_anims/sprites/205.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_205:: @ 8D22C84 + .incbin "graphics/battle_anims/sprites/205.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_207:: @ 8D22CA8 + .incbin "graphics/battle_anims/sprites/207.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_207:: @ 8D22D74 + .incbin "graphics/battle_anims/sprites/207.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_208:: @ 8D22D98 + .incbin "graphics/battle_anims/sprites/208.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_209:: @ 8D23188 + .incbin "graphics/battle_anims/sprites/209.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_209:: @ 8D23490 + .incbin "graphics/battle_anims/sprites/209.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_064:: @ 8D234B0 + .incbin "graphics/battle_anims/sprites/064.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_064:: @ 8D235A0 + .incbin "graphics/battle_anims/sprites/064.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_210:: @ 8D235C4 + .incbin "graphics/battle_anims/sprites/210.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_219:: @ 8D2362C + .incbin "graphics/battle_anims/sprites/219.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_210:: @ 8D2364C + .incbin "graphics/battle_anims/sprites/210.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_216:: @ 8D2366C + .incbin "graphics/battle_anims/sprites/216.gbapal.lz" + + .align 2 gUnknown_08C232E0:: @ 8C232E0 - .incbin "baserom.gba", 0xc232e0, 0xa70 + .incbin "graphics/battle_anims/backgrounds/attract.4bpp.lz" + .align 2 gUnknown_08C23D50:: @ 8C23D50 - .incbin "baserom.gba", 0xc23d50, 0x28 + .incbin "graphics/battle_anims/backgrounds/attract.gbapal.lz" + .align 2 gUnknown_08C23D78:: @ 8C23D78 - .incbin "baserom.gba", 0xc23d78, 0xc58 + .incbin "graphics/battle_anims/backgrounds/attract.bin.lz" + .align 2 +gBattleAnimSpriteSheet_217:: @ 8D243A0 + .incbin "graphics/battle_anims/sprites/217.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_217:: @ 8D24408 + .incbin "graphics/battle_anims/sprites/217.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_212:: @ 8D24428 + .incbin "graphics/battle_anims/sprites/212.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_211:: @ 8D2465C + .incbin "graphics/battle_anims/sprites/211.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_213:: @ 8D246AC + .incbin "graphics/battle_anims/sprites/213.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_211:: @ 8D24918 + .incbin "graphics/battle_anims/sprites/211.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_214:: @ 8D2493C + .incbin "graphics/battle_anims/sprites/214.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_215:: @ 8D24BCC + .incbin "graphics/battle_anims/sprites/215.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_215:: @ 8D24D58 + .incbin "graphics/battle_anims/sprites/215.gbapal.lz" + + .align 2 gUnknown_08C249D0:: @ 8C249D0 - .incbin "baserom.gba", 0xc249d0, 0x28 + .incbin "graphics/battle_anims/backgrounds/scary_face.gbapal.lz" + .align 2 gUnknown_08C249F8:: @ 8C249F8 - .incbin "baserom.gba", 0xc249f8, 0x5c3c + .incbin "graphics/battle_anims/backgrounds/scary_face.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_218:: @ 8D24FD4 + .incbin "graphics/battle_anims/sprites/218.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_218:: @ 8D24FFC + .incbin "graphics/battle_anims/sprites/218.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_087:: @ 8D250A8 + .incbin "graphics/battle_anims/sprites/087.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_087:: @ 8D25100 + .incbin "graphics/battle_anims/sprites/087.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_018:: @ 8D25128 + .incbin "graphics/battle_anims/sprites/018.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_018:: @ 8D25164 + .incbin "graphics/battle_anims/sprites/018.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_220:: @ 8D25180 + .incbin "graphics/battle_anims/sprites/220.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_220:: @ 8D251A8 + .incbin "graphics/battle_anims/sprites/220.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_221:: @ 8D252D4 + .incbin "graphics/battle_anims/sprites/221.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_221:: @ 8D252F4 + .incbin "graphics/battle_anims/sprites/221.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_222:: @ 8D25558 + .incbin "graphics/battle_anims/sprites/222.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_222:: @ 8D25844 + .incbin "graphics/battle_anims/sprites/222.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_223:: @ 8D2586C + .incbin "graphics/battle_anims/sprites/223.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_223:: @ 8D2588C + .incbin "graphics/battle_anims/sprites/223.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_224:: @ 8D25B20 + .incbin "graphics/battle_anims/sprites/224.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_224:: @ 8D25B40 + .incbin "graphics/battle_anims/sprites/224.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_230:: @ 8D25C3C + .incbin "graphics/battle_anims/sprites/230.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_230:: @ 8D25C64 + .incbin "graphics/battle_anims/sprites/230.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_228:: @ 8D25EA8 + .incbin "graphics/battle_anims/sprites/228.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_228:: @ 8D25EC8 + .incbin "graphics/battle_anims/sprites/228.4bpp.lz" + + .align 2 +gBattleAnimBackgroundPalette_04:: @ 8D25F70 + .incbin "graphics/battle_anims/backgrounds/04.gbapal.lz" + + .align 2 +gBattleAnimBackgroundImage_04:: @ 8D25F98 + .incbin "graphics/battle_anims/backgrounds/04.4bpp.lz" + + .align 2 +gBattleAnimBackgroundTilemap_04:: @ 8D26D04 + .incbin "graphics/battle_anims/backgrounds/04.bin.lz" + + .align 2 +gBattleAnimBackgroundTilemap_05:: @ 8D27200 + .incbin "graphics/battle_anims/backgrounds/05.bin.lz" + + .align 2 +gBattleAnimBackgroundTilemap_06:: @ 8D276D0 + .incbin "graphics/battle_anims/backgrounds/06.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_225:: @ 8D27B10 + .incbin "graphics/battle_anims/sprites/225.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_225:: @ 8D27C94 + .incbin "graphics/battle_anims/sprites/225.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_227:: @ 8D27CBC + .incbin "graphics/battle_anims/sprites/227.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_226:: @ 8D27E04 + .incbin "graphics/battle_anims/sprites/226.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_226:: @ 8D27E90 + .incbin "graphics/battle_anims/sprites/226.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_229:: @ 8D27EB4 + .incbin "graphics/battle_anims/sprites/229.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_229:: @ 8D28070 + .incbin "graphics/battle_anims/sprites/229.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_099:: @ 8D28098 + .incbin "graphics/battle_anims/sprites/099.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_099:: @ 8D281B8 + .incbin "graphics/battle_anims/sprites/099.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_232:: @ 8D281E0 + .incbin "graphics/battle_anims/sprites/232.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_231:: @ 8D28718 + .incbin "graphics/battle_anims/sprites/231.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_231:: @ 8D28740 + .incbin "graphics/battle_anims/sprites/231.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_233:: @ 8D28910 + .incbin "graphics/battle_anims/sprites/233.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_233:: @ 8D28994 + .incbin "graphics/battle_anims/sprites/233.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_234:: @ 8D289BC + .incbin "graphics/battle_anims/sprites/234.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_234:: @ 8D28B7C + .incbin "graphics/battle_anims/sprites/234.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_238:: @ 8D28BA0 + .incbin "graphics/battle_anims/sprites/238.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_238:: @ 8D28C08 + .incbin "graphics/battle_anims/sprites/238.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_235:: @ 8D28C2C + .incbin "graphics/battle_anims/sprites/235.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_235:: @ 8D28C7C + .incbin "graphics/battle_anims/sprites/235.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_236:: @ 8D28C98 + .incbin "graphics/battle_anims/sprites/236.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_237:: @ 8D28CB4 + .incbin "graphics/battle_anims/sprites/237.gbapal.lz" + + .align 2 +gBattleAnimBackgroundImage_07:: @ 8D28CD0 + .incbin "graphics/battle_anims/backgrounds/07.4bpp.lz" + + .align 2 +gBattleAnimBackgroundPalette_07:: @ 8D28E78 + .incbin "graphics/battle_anims/backgrounds/07.gbapal.lz" + + .align 2 +gBattleAnimBackgroundPalette_18:: @ 8D28EA0 + .incbin "graphics/battle_anims/backgrounds/18.gbapal.lz" + + .align 2 +gBattleAnimBackgroundTilemap_07:: @ 8D28EC8 + .incbin "graphics/battle_anims/backgrounds/07.bin.lz" + + .align 2 +gBattleAnimBackgroundTilemap_08:: @ 8D29058 + .incbin "graphics/battle_anims/backgrounds/08.bin.lz" + + .align 2 +gBattleAnimBackgroundImage_20:: @ 8D291E4 + .incbin "graphics/battle_anims/backgrounds/20.4bpp.lz" + + .align 2 +gBattleAnimBackgroundPalette_20:: @ 8D29C0C + .incbin "graphics/battle_anims/backgrounds/20.gbapal.lz" + + .align 2 +gBattleAnimBackgroundTilemap_20:: @ 8D29C2C + .incbin "graphics/battle_anims/backgrounds/20.bin.lz" + + .align 2 +gBattleAnimBackgroundTilemap_09:: @ 8D29E30 + .incbin "graphics/battle_anims/backgrounds/09.bin.lz" + + .align 2 +gBattleAnimBackgroundPalette_09:: @ 8D2A128 + .incbin "graphics/battle_anims/backgrounds/09.gbapal.lz" + + .align 2 +gBattleAnimBackgroundPalette_22:: @ 8D2A148 + .incbin "graphics/battle_anims/backgrounds/22.gbapal.lz" + + .align 2 +gBattleAnimBackgroundImage_09:: @ 8D2A168 + .incbin "graphics/battle_anims/backgrounds/09.4bpp.lz" + + .align 2 +gBattleAnimBackgroundTilemap_10:: @ 8D2A6E8 + .incbin "graphics/battle_anims/backgrounds/10.bin.lz" gUnknown_08C2A634:: @ 8C2A634 .incbin "baserom.gba", 0xc2a634, 0xa0 diff --git a/graphics/battle_anims/backgrounds/04.bin b/graphics/battle_anims/backgrounds/04.bin new file mode 100755 index 0000000000000000000000000000000000000000..91230cb0196b5b0044a7e92ba773fa21fc9ee25e GIT binary patch literal 1280 zcmYk31#D1f6os);7o^_O4>)aa+rMp)y3KIg#&8?kaGT*a!)=D^1h*LwBrvu?u)qu_ zFvAHf+wcVT3S*F)+??E;@BQ!I6Gj-74C`twt(MicI#$=REZcG{*YYgi3arqItk_Dd z#1*?DSLg~{zRPpDF2`lNEEneS530J=u$m@Iv?NP5vlL6UG;@}28J208F2kie=h9rN zOL69sU6MEW3d)z@m9?eEWuTC@h;BAx)>MjqFkhlaN({D z|Cg1ua#r3dn2%L7U-L763$Q>7vS16bPz!Y-F4zURKo{WrouBh{6`hZ(pz2+0th6CU_uBbR3QphkOCDTfBDH*73HG`yNBIVm8n8i!igY~D58lW zmN??6Mgj?{rg+6ERxyfJlp+*l~0tzXjm=a15m3u5y&EER}ML?$u*F z&J#SzQ`DnA4QNOs8qQ61D??bKFn)LN~yj%!|(vd??$3%tlnbfY^x=t(bn z(}%wFqdx-}p#JKozUrgi>ZP9Qq3-IYYh33uKKIy{d4*Sbjn^5-AOQORf9boWJG{$#yw3-G$aH2flUdAW4s)5ud={{fg<7Ebny0y%quH9JnVO;L zy3c;ib}xgE_?S=ll*KGzDa%;S3Rbd;)vRGHYqdtJwMr|sLd&&GOSMFcz5VaA_cQ#0 zFZs&5#d*i!|EviA)d>Ip2><_s|NsC0{{TS%0CNxktRMj9IS2p%00000=U%k`000U5 zNkl1&x636Eis7$~zAQ=g;6Hy6q&O`-*6-ovKT`CHua*e=!02!N!9|jum zWoPO@IkgtnFgk6rVo$Kj1aMwqpJD5}dq$(%D~skrX8q^a)zwwi+@#UiKx>0_z`9^N zV12MXup_V!U<0r-vNTOE$v%-KjaI8owhe~vyI|;k2!`&bU<0xXur$45`}9c#8vhRf z5ex*NOwejEf&w5yzt0FqM~t8VqXkLIAjYA>d>CMpongY7D-_?vG++e@?^_!Ycx`kDp(#I|0x9u6oI0sM8H?^F9sJ8Ky3_45%gvLxgEx{bQBQ4lDZW>&j218)a#f{djAIbFYin{QfB;!0TX>5H z5&>9<336M#wdZ~DpE1C>`Y(QEzf_We2q1dA0}s|6dwM)()E!TF0R+Hh31T@41hNI8 zJ=^h`a(ia~Tll%VNVzI3(#2H@e~ zr=%^aOe~;-+JRqI0SJK#gAs5HwpUHg;g6Z!o=&Ajy%dOwl0APZ3{I{tgg_;F{zAY?(stK--2!3wF*`mA2vA=Z_hkXF z=-%{(pU)-$f$fd7bq6eVP^0IXJ?%gK-Fv6~sfIo9a=!RHcz-J9C&H(mkY z#q|t7F*5`xve069Z~`NNMk`$1Gyp4)KLkJmdWSrv8k?QEh@cVGMPCo#^bSdF21Ag@D}|LH$?C zv0OR>IJ6ZA!AD{c0Y>l<04w~iT}BZ0jyN@O{5$@PS)l@m;C*@AgjGnIL5Ff2g_9uQ z$^;u5KY3rCHzNQTc^Kin34k3zhKCru$zKJ44uN4fln`Knq~D)@JUudkpWyKo0IvW$ z05IL7IEcV86F`1h4B+v3g}@s?pEd&QS?#zyvdRn+DZ{m=+dpjqg+>nRtBW32!a9b9qhqAI(} zzVF8b>Q6I&E&#a#xUK?#z-Pz6YydR8dhRwg0&Db#dQbzPBVc!@`;OZk+-zS6 z(ApWGhylU{W&(rT0hW9C(GWNy(Te2OIiE=ckeO-H27o`oczmX22LQkA@b6r|7X+Nk zDHiNn6f}Oqu;7Bgt`~xbz6$KSeGzax<_Lh}UybQoR{HRSCa)DYy&WN#LZ#}lfD-`$ z5COhJMFP_CcK1cV2%HKC01J%y5=0+{gp|<>(zV;G5V(?nQ-L<$VpyQ70=a)sg2^ru zxRStgoxr5i?YvWfhn+HkD+@RkkQI`(<>5mRiN9O zbX`*NFKqB801+66@ioUUIRe4N2touz04F9DnArGAo6xo73Ix#>z+E2VdQCS;5x@!h zT_EVm?{~XK&7Lfnxz#rUh%Lq?B1Iu(I&`pAW$boCU&5k#DL)+4@;AJNi zuDGy2U2APo4$$%9y%Ia$PR$$BoTlL z=nAgeEfv7!QwaXsjcP=R;5i6rjiFo^<253u#sROqLeL2Wd?G1{6aaI9Lf9^-Z$s-@ zKUtN66XLqt+eri5dm2ukqb#wSwRQ^SgXCI0^=4VB+vBm zN)}!RflxDnU?UKWm4KetEN5W^5D6eb%LuM9N#R8T%_s}20?o+(2})EgL6k%(-QJ00wFu+t%?*-NTj)9oeIu4%-vjK;)dY@?a+ zANV84*PQ!eh?zCdnf>8D>+V~k^neffh>!V%QF_W}e5R+0(i1(_BR$juH~*bbraQdLySn49zO7rjsT*#(u3y~wvwqT#L-sxWssSJ8c%Bz{ zk(YRxS9q1zcuiMzMVEC+7j;4Bbxz;uTYaOi^_9MK4TJ80Hn@fjI>Mto#^XG}lRU-K zJi{|Oty4Ow6FRPAI;tc3LZ9n1eX39Nu|9H^=e_23^4QHi+{=C3&jUQjLp;pGI;4X- zp#9pXz1pMQ`cNO}eZ8l5^^SJEbbrwI^4Q2t+{`W9%5B`v9o)&C+M(^*rmfnd&Dx}m zdRuSlO}(MlUvd9-TX?jwogM6C7rWWRUiPt1z3Nf7y40x-wX03*wN7ibMyuVvE45gQ ze9zGD&VJRhj`eI{Bb(UF7PhigEoxSi8r7hB)u~o1v|P)ayTs@A>%N}rg?p18B`jqb z%UQunRTsZ3)!#SCULi&@H4hNN_*DOFU8rf9OD zNt&n$L*BoBG-DXcIL0%9iA-WLla-`IB`98TidBrFHD2R1R%0}J(02dne+gs|gBik5 zhB2HGjAW!D6s|CZDn!8wQlLg^gaYKR;quck4Wl22)1Lu80xigbEyO}C%)%|gA}taT z2uBz~5rSX@ArK=m0s-*HaQI;uT*E7gwit`GIE%LgOSB|QwqztB5ebM#9AXiJXpF}= zjKvs?hTGfYm82Lg)zU28WEqxeS(b%NWI#wq8d5=|U#a4_W6ruq6$U`o2kd0ZGi5ZxVX_$(oSOvqVp^g$OwK6NW3ahj#tF{`eK{cvS zi3*gX45cW+LM*_1%)?yF!EBuM#q05?wK}V}25Yn?Yql0^wN|vC8BJ(J1L{$STCBiw zEOU2Ug2h;be%!}%yl^cZZPsob)@fbVZ9Ud&eb$Fw^q?DE=tKwF(T4R{hqYLP)vjZu LuVVlMuE*maQjS8g literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/06.bin b/graphics/battle_anims/backgrounds/06.bin new file mode 100755 index 0000000000000000000000000000000000000000..ef73f747c9e88e44908e049ab07a4d7e468ecb95 GIT binary patch literal 1280 zcmbu7XLD6m6o%7ish19^3wVG<@+KKNq|!?&y`&nuRIy99E7e}8*RFI+bOZ)0=qNDY z4F7;1asBE!F*h*bqqFAOvuDqKpS|`zr^%bW#aq42+r3?FYE_Gx)ugprqt#lam0F>Q zmT9S$s8d&TOScv6p;I+p>vdl54c_RDYEZrERI3^-)*>y`0?pSv&D9*u)~p~G)^c_9 z5LKC%dxckel~;SUs#K{8m8(oMHAB-iO;a^RlQl^byE3MMK{t1*Lxo=C@?tOXQZH4B ziX|1PP!r@DuW=eHG)AK}>aNtCd_>uvlD*k|kS84+&&jj^$dOu_VUzNt<_n*HCUrH(m*|R)KbG@7O{{8%x4~RnZs;m z5$&qb6DLBGHCv0dTAQ_7J8iVmLNiUQWeuxY#Y$ELCoW?tOX%bZx40cx;&iai*4qZ# zXq#-aZDtc2*}!_%@feTt2oLiR5Ap!_2afx?95G^nCr*^Dw#~NN4%=zFY!^G(!FIN> zmFIbmXL*LFd5R}_f-O8AIKJT={{-nco$Rr_w$Jw40Xt|1IlzAQv6nr(!Rx%ntGvR? zyu^#V!0x*op(iB9Av1U+_7f@hPA1aqw!t@N>5#^n^q>Zx`%h@LyfB z%XXPd!OBH0aGsxn*^m4XjNkJe-*$hyxFht0Y~iY1v+F_rhTXKA+z9qx=Neb}i$8<; YAN(GSzwv8NKFZ%gA8}&;GoO&~FViLW#u+BlsV!-@S+C>SLc1K5)h-zVO{-H`ro_Jq|cFu^z6_$2D$n+r%te zJ~G7}?(u*}JpBvr>CFF{%~+jBI?$eWw55%6GJj_y|B9BhpgGM57yO`#4l%+Q6DJ!n zvcfu3_Dxo>#^kK$oAzB+cy4N!^Pa^z&rOZUdlu{3T^se}5v(@VwYxUPt;-shcCoHr zYsD$w{aY)xxDtO!ah|{K+LGcnKlinLS1%&@bzghc0nE=+CA*fpp7C-j>{JEFu4NS8 zM?Qa=3P#9PPuxd7KjS?Qrp~=9`Q^IpLCme4dskvg>(ixwOLg7z(z#OCCf1yD-iZZR r)|_+Ri3M2JoO7~k)4O)RT^ONP9;?-)G4fP(rrudi`d`AEhZ^|6xyKL{-O|3B#ee}?}{82$$_{0EDdt=pN)z`)4h>EamT(fRiBM!qHk0k(v= zM&96GX8UH`7JU4`?eLSdf~3iF`1+3M<*8jN-{^3JNpzjjE8UhU|95MPoWH*H%2VOf zudmDhaBNsz*|6u#tOmte?ysBo3PsQ7X=#0NoH=8iih@qk3%)7lZ#x|-dKs-gN=!P# zSixbypk|^TS807gcV;uA!CKe%HjDwG$HfvXT|Cot{F%5Ic@h+@K4vVAUE z1Fr9-F&)ePCNv8(IR8Dg%4^l+j++Mdd?%D2Fn(0I>N}q;v$LORPm8J7%2~Tl6)^vh zU6-EfKat_ajdV38#+q3(*|yl-@NS%I;9=a4MxSM_#4!3TsvOb`#ky} PC{R3I{an^LB{Ts5?}d~2 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/08.bin b/graphics/battle_anims/backgrounds/08.bin new file mode 100755 index 0000000000000000000000000000000000000000..8c971684284649a8a96775fccd98c66cbc5cd23d GIT binary patch literal 2048 zcmbtU$yUQK49uw%xb$^nyL6cr0he^8!2kaj34Y4ROY8?cAL2+ewme!YRA!B&!dNCU zm6>b+tg*rpiw^OISG+**jBRIY`M0>iHHNstptGNF!~uKkP!Fe8Io$Wm6a7RW|o zg!QJf)SQ*gqxGh;R2_$EBX7>&|6D>eKl3{>ooT3$?mJKR@LgDPD8)XPXFcRjqQ{) zo7T8aE7(qn`>5q|UhyREY^T^xW1cv#Qrg>2vGEbhIa<=5QB@$;pQ9F&+cQr&)PH)>vnQ zO@1=NEOY!|o&^?JBIE}ga>OwwoN~q=e({?vw%K8qJ@yItJr6wc#9y9y;gxePxa5j! zZn))+ke_?urB_~iSWX~=u*wamRM?;<3c}d8qG@hx!hAsPB-6`VM)-+uk1dk01C4cwy$j literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/09.png b/graphics/battle_anims/backgrounds/09.png new file mode 100755 index 0000000000000000000000000000000000000000..5746191e7eb370bce68431cb923417c368389c09 GIT binary patch literal 964 zcmV;#13UbQP)_F&1>_F^5?7*20wA+(E5fyjO^X$#J*e@4@Ato;g zBm8;owhPx+@orUBra>7~NfaBT_v+fztk;ujV=SpPSqxOKiWivPU~)-c5ZAZPd+)3< zSpuVKt?f{l9zk9wt7X6QK7=q00|wP9V>m%YY8vOfbGErKRANlvT;KPEP$^Vppygv( z%05j~7`m=Cbt+IRpH#!JVHmt%DmXL^zK*r~Fpe>X;H?!R7R5B0q~R9yo+3JTADMaaa2Ey}blfqE~E;yrXhBeHlpL>L1WFj)bFBWV>~bKhiN2s&!;6yvf?(~$CW z$&OD=#})+TG4zDbOklYS+=LN(Ky%1X-G`pf-DKj<$dU*s5!VXb2}yS$C`*|3jQB#7P1^^-)xNA>HVF{&WLm0VPi+lc4*~ z^Kg0(Pcf%x=YZ0C&Bg_}?RswUbw|V@Mf1SLyw>qDdcKj~JxL&GM2HFl-*wi&#qsLN z<@4VNUqn#ASNdLEls3@i6NG2=5=W>&pP`@_^g~~TCxn5k(x;0;7LFr=3_&hGUH{PE z-oG+10#GqQ7zWLco|CU6=@mi%m7{ux@N|Mz6m3zLVw~eV&k+_vm}v4rZUB9p*})$5 zsZJh7SRkGeLa*EX&2z*EL?j3#KqWp= zLb&go<6*sMBil|07p(1wV}c(FG}U%4or)Frj;D2lbXq+(dOwHd;=R)@8Eiike6A_K mv>U+obAsOlzX|?}1b+c6^v{2bbm&+B0000W`Crin%xsHcu@y6EIP9eksmHbOqcAOrN%M=w46V2Vj57-x)8Mi?gK^Ze!)bNpnM z8Kzlhja61yW{E`>2>CvH?6Si)TWqqyIcJ=5!ZAl2azM!Mx#N}_uDRlp3;yzlS6+DL ziANp?`CtF|>Wj}l`RIf9-g)bd*Is$)g&{xp%u`Q1_Q*pI+;`7icieW%O*ahrx@)ew z;<8IFy5PLO{pFlLopr`(Lq6rC6OKFPs3Q(LB7JN#z5ZMNEC zvrRVIV7+yQyw)14)ha8ku-r0BEfI??ve2)F{EG#C_LKSMnQM;OW|?V*A5AySR70L( uvPmYIV7zh08si6}jq<(kj5NZKhx!hAsPB-6`VM)h?~q5l?d^g8_JL>`{o6s880=B3a6wvKFBz30XqYLfN-}Jv`40ul$(jg)!s4X6`v> zt~uw$_k_d<9TG1=q9nSUiTL#7+DWVtO-U;&k z1`K-dgCWB{`eejsqrMn3ZbFd%YSNTxGrpNMx1acT3w~Ji(=WdT`9J#;%l`Uj#j3T) z?Y3;&v1?C|58wXak99>{Wd5MPeyl!?KiYJWsuW?a3Uk&zRdg(gj(O3sE;=@yFB{I6 M(B->K-~uP`AI_`zX8-^I literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/20.png b/graphics/battle_anims/backgrounds/20.png new file mode 100755 index 0000000000000000000000000000000000000000..34f22002a79c7361edc90df559774b7c44c18f2e GIT binary patch literal 1998 zcmV;<2Qm1GP)I(Gtmehd|K0!q00000000000000000000AA?ir000MB zNklg z`UL}){(J7ZSF+0Xk>~eM-Y>memvyPLcSnh_U*9!#pWxT($gudGOvli<nIeFN^?Pd( zmu+bY-T5$0BX0KAh3N%Ynmd7~YsC@=A0Ptm0l<4(Qo4YZ9d)0iB{?Y6v}8J2>b73Lrp( z00b}$1FlB6gO2Fz1p#_IS!PMA8Z$eG)!Z}!rEhlvAaI0b`AWUv2DhNQF0~c;Od1`7FMt+a1A#>KW ziaD65d00sCmGSB>CW2*21U-vFp5h7sx^W{C2kRUabAZ+TwxVN{LckkTAjaT&D#fQz zp7oG_VCHBaqq+pZ<@j%6l==Ya-IZW^p;Gt+tE753Fl{6L@0Cc97Q??ViQ5iyNMNEt z)vKENfkj(bsqzl6((Ap#IS z%nRxh<>5mT0Vefy1QA%9(lE$4Dz_&bmRlGvyYOLNv8rJ)CK13Bh~i|wDD)GJO7Xrb z*4-|+5U?N*r|6u4^wwcv64*f;fdaLy&c&*hcJ?+A$iOVo{DVM=CSR>n;y1Pc++ z6zTy+5rRqi-SwhDlw8-%GcLxC21M)>!SPRIldz^Lo6pRdq)9RV%OtLsaDyN`ueh*i zMRkXz`GEi+;C}H~cOKXBt)Qd|IN5v=p{twEL>UmS#>+&IYzP6G!hQD~Bh8Ahs=!F3 z43Y*Qz^?eTE{ym15l50?=5k9+d`La&!mlfFU{~eg=+jnsNob025H$uYEX{de;0rncqzGO zNxuv}lHBh&Lt6=r!Xg>e#9pqy6=w?6b-7xp#C)FN;o{IhMwjbAPrNny}j9|g5aS68lQy>sW}jX2*c?dS;qLJP+~_pDAv}8R|Jr84KGES zAj_pG#~lG0{K8(wQdQ>|+H_VerRIS!vJ00F-{N%w9Nchjl4P(Xp}~SJ-G_5j>k5J_ zoj{Th*b8|&YG8#gA2axDNGC&UQ!?0>=Jgj2Fi75t5Nx|0!pIP|mVizAuX6+eoA-8n zZTtn{bY4)a4f3njU&lvzK^Uxq*gsg0RsFQCAYl95Pp89f73bHV_K59jUe$SdyqvxA zykYIh<^U095?m+9@`qF05U4?`%li`uemq{zp9N2df%^b7s35`(0qo$mqMYXSCyvm% z^ijpB+Le~GU<20$?vM~6en|wW3POM#WUmV0bpBx~y!|=CiJz_$;5^Lgh0X}D{%iey zJ3&_R%tQndV1Fo|B5L6kfgC=bX4wtv`t$iqmT~95Opxtf`4)c|{+f93%8egyCcsgh z4R1n?K9hib>pB4rM;6JC>-t|?h-9iW#mxj;{U^J9e@lRqHTpC^zf^*26o2~MP5{oC zjd+RczgfmFzM24bFw|r{rr&b4;?Iyb6F`Qo2mSrd1lb)4r~NmC{Oo%(0e?HoD$A$$ gCSWe6<8Ge+0kjW;QgssshNG922EPD>CmNT_Rwd*kP%}hOwE4AoCQn7iZvUv-?C%Rfg>l* zT+IH;jXMvXym<35`;Xpw>8XeAy6GzG{4YA|q@xbnYp1Q*Z?x7*(oze}H8cCECK_v` zp$6&;v+t>^j@oLesfOxiUsF{Tl~qzv1?9~?r>rtcE2X3oikp2*QAHG1NI?bU%-%Y0 j|K1ny1$+Ttz!&%@1>CRy;eL*J^YX$M@CAHEamT(K&U>#dXaJJZ;~(TAuunVNtrSKH;ZKxA$H% ziQm7L>#lh4Y}(&~s zgdW4Fd7d zVlUhNhj|SLj>zd95ZkWEN2B z%#}N5*G%W(Q`1bZaVwj+Q$w$OhIHiiT;ZLaDXKY1tAtV#@|1XGeOp-mJX~_}Y`Q|F zoaRo(X%E}UJqkc0T zsZFtD7U}+Z{5((2{CtOZCZQ5VNLEk;I)aQHQ6@X1 zAkbL>c2s~J6>3L?(DC-o;gtK`AMnmuS4tobElOy+PP!6OA4u^S#Lq>W#7wd-jHXwPXUD#S$~Dr%f1xh1H+6k z>Spimb9_!M!W7fYFzaUTF8gMLMV46Ri<`Z>?0XP?u*NzYZuai7f5&@ZK91JQ{xkC|FlRXA4}bY*{S#U*`|qr<%2&fN|2g5*`Zu&* z_CFCW6U7y-y4kzSeh1+ei6n8`&E8%12MF2Zkjp(cdw1C%Aw1>@B|LSrcb9z?)zlDT zh~xqnxn#W(t@ruAp9UIfBHD0+cy5wl{Uus2-(M$PbdzjICxc9~taqUGvVTiI1LPYX mP|QOfS?@#ZWiL0-kl$!e+e#Pc1^4;|g7?!epkFWW|L+Vl2~hL^ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/attract.png b/graphics/battle_anims/backgrounds/attract.png new file mode 100755 index 0000000000000000000000000000000000000000..c5bba0f89127170ee034a31c0e9f2fcacb3a0d73 GIT binary patch literal 2150 zcmV-s2$}bZP)#1YyIXF#+LB`167 zE&&$6(pqNA87v?Ou zK+59T0y7qc!1erEd>MPQl?blwW)Z9*IKi4lJpsh>et8ew*l{p(oR(a7>p1v{HlO;w@6Bf}bS+%B!hF5P{15!xZZ-kL^|jmScKz1a?{)(Z*NMD+D{}lC z5d~q(CV<$iH|yCHzTfS7F1`oN*=A+tZ9GR)*LUV~$M;&0XaYE;g5ayzAdv6x)8*f0 z{&5N00FvLD`T%4K2m*+i*cF90+t~RA1&GKJz^iJxS#DB$gLGLE5XUHpf|f}D*L4L! z$_cXUrbAiK$})=p1vo+Z5T=FzJA}<{vrE5r^!I~z>E@@If84n#7K?((gTx}(L8Pg#H}G+tneTRamVc-8LzdeFTZqxfIA{;onfZ1LJEfBl zT$ltC2qc(H#`+k~aovN?+du%Jn0#C=1d>rA2%y);DA&0Lz;=-@@^A98{D8|A!5(6w z5fA{^5kl|^65MMpB)!}wfY@*MTkO>?Jz7UOE{m=5m)-8CoC!=4L4dvdC4+NXClLgI zB*5fG;L2~7K z=ZPlRKe*m2x%4Bqn@s?bCSO@Xzm0GAJ7(nbF_m2Y>xXx@pSkw^|@x^n1tx*O`r%xKy%re8 zL+Z_TxB# zOW_B4G4}&l!EYUWciQ+~Cg_`fpb-VAhL@o5@7 z6$H^NHOhGtJ;chWRHqXtfwW$rAoy&S^Vbm+ZM}i?5IP4xQ3!+(qQ5i+&ccyVu081? zbiSz~h)h2aA;DKl-$@Vglk$&{lnFx94}?fSo(24h@DQt_*g~QOqA-%ZJ_a~~2&*>v z0rC)(@2Uwj0sw^Q8@|ZP@*R1Ie`NmW)+7LcQ1yg>03q&mBK^RGJj7n+VzG*V5D*}g z<>e*#0aYuv*f5t%l>!n008n5e9fNcW(l4N62vo7H6bPjs2sME&wtJxn9X&y!dkJmaoh_(Z$74&hqRegLiuyhY3BNmo2amI;`_==CnOA87P? z2_VSl$yLWQ>q6m`IYHDnDpiD)YOLzRgLO;8|GMaHfq^2B0!Tpj#x1K01;H1yyuSg0 zNDJT{YGT%hDuTW#a6Ty2N_KZH1aPJ7O@ELiu+z_!zJ`RZ$QL}4K{AlN=?{`YQR!5z zqkm~xpdip=AW#nztPSJ`aGCBC2Lz1q14ytoDD(O{JdL10K!8M)C+P=dsp>oUiVg`_ z;|H=ny@WrGT@a~jexOR^4DihF1J)d6?<=JQh*FT5XpiH3V3i$j&i9p;B8ixq% z`2|tm<%ou;^#gG~s34fDk@~qcztEah!67mNnfrT2WUrbGbiv`#QT`LC%2y!)7kY}bp$TRrv7fRnk zLSt(61Pjw2EEeD!`bDt?4^b;X!`wJ-u8$zk5tsZya*#mH6+o|#8P?%OYW(2sK>4e>323fB&Klgf-i2J^)mmJs-r^X+-R;F)4FQ~D zJUe9qHB!$Kmsly-1nw&XC!2LqbXLkw$HOzf%vc6V;<_h@y c!KniO0>~CM%V7JDcK`qY07*qoM6N<$f~6btZU6uP literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/scary_face.png b/graphics/battle_anims/backgrounds/scary_face.png new file mode 100755 index 0000000000000000000000000000000000000000..a395485cf445f0b325329706b94bc2dedc229178 GIT binary patch literal 428 zcmV;d0aN~oP)+^E2%*2K>P14UZUUyJZF53FFQNnCqE**Uf1in1=w4Hb(aLd zO9I4jM}T-Bm;?SD4+L=Pe&b_aGQs%3Y*qrugp?yP8598$A=^mV9uAgAadX9ch& z6mth8+UkK(BS19}Z6BjZXm>=eI$$Au0aZi!IRIwD*Qf$m7MGf&JMOd-U?lYDTz5PJ z`0MU~tfBs_fGG(P@mbjkP=CT70B*8`3V$>8oB#j-0000000000b?NdC0003~ zNkljG7#O&zX2m-_+?BHF@nWxeT1|bq7B!~ z;zTr&lbjL5YIlsQYdH4WIqRCIgK*7%d=f`xc>5h!aTCI>80%QMlT|&LJWAG2kym4m yv%XJym&@}NvcJ9l;zKfdJtVi31Ao~De+C~qLx))f5Z$K$0000A-?4{|jd@UT6I$+`dd`op^& zb`IV5T%Xqp@9m1JslB^0lfC)rw0;#{&5QC2uW9(d7O<*ulrB@~UC7g(7s&Y5OvmG# z>$1mIn`=xQpHASuu)^Br2+vu*0~$x(m@iq}KH2_(c;HUW3sRi6pKE@IP2G7w7W2MTJ%~UO%uoHOpuR|Jiol#w$X9ANTKI Y_-Chj%B}9>Ly$i_UHx3vIVCg!0Qwkp2><{9 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/067.pal b/graphics/battle_anims/sprites/067.pal new file mode 100755 index 0000000000..4c3a4265ee --- /dev/null +++ b/graphics/battle_anims/sprites/067.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 197 246 +255 255 255 +230 246 189 +213 246 123 +197 246 57 +180 246 0 +156 222 24 +131 197 49 +106 172 74 +82 148 98 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/068.pal b/graphics/battle_anims/sprites/068.pal new file mode 100755 index 0000000000..3075ab6b65 --- /dev/null +++ b/graphics/battle_anims/sprites/068.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 197 246 +255 255 255 +255 246 164 +255 246 82 +255 246 0 +255 246 0 +246 213 0 +238 180 0 +230 148 0 +230 115 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/087.png b/graphics/battle_anims/sprites/087.png new file mode 100755 index 0000000000000000000000000000000000000000..e0e88687e8f775bfbaac5ab75fa865f66ce7159f GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU1=9aP;OzhZOaA|_{{KJd z|9{Q@M-~20k@%k^@ZXT*KLf)YpduJ3effzW$aeB{aSY*@8QNpW$DqK&6#4aQY+}*X zaIIS|sTukKTsB&|*IPA=IIe6^eUWlTSW03=-%Q0F&p++zy;xdj-16(I{Eb=Heo3-i SzIeK7Q$)4uV@?rz4oZMIhC car^)9$*zopr0G1MtW&i*H literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/143.png b/graphics/battle_anims/sprites/143.png new file mode 100755 index 0000000000000000000000000000000000000000..da3f273acac05a272feb25bfceb47189851432cb GIT binary patch literal 461 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz!VDy5c$8@ZDT4r?5LZhE5Hlz!XvvZ#XV0Dm zvhf2i8|Kvv42%(;E{-7{ooA=!_Ax7RwEb?LEWnp^rux6Jt~}qOckg`6ZZ0!RejS`3 z5D>S%oKHtP>qze{mRKwA>6!=DH0(@dez1*c?mVWPh9`Vq*cWh1n6)O)UAUOpDCYf{ zU8Zxpo-ea+?7lJCF-XwRShX%f`Nze@Y1iCO=5U&-DwOaOLTtm8S(yG z-hFbza_(NqUW54i(i%eRxV)XFG0%Fw>Sh0(&cwT|vD;VH4-PHXuM+=HYaZfQU(D&A+A9B|Ns9-k6xWJWlK`h z6d)Hr;O4Ul0jg;6ba4!^=-oT{E^mVZPfMp?fck|^4GVw2R}(Wh;jh21V*P#9@(b5? z>I*&8m}nT=s@eVYO`*k#OV6ZFORIaI-FZ}srQ&JCu{jy%|L*#;+&#BU60DH9ST z_sm@&`MGQ7vdD*eADbDcwVXd9&$?fVkGo%5k0;J@&z6d}A0Ixr9DMV*^+nd@CFb(R RzPexsd%F6$taD0e0svqm^R3Hb yn@tyte^z+SpXLAQW%ExT!{;WGS-kr`?monHN>V6KE%Bua$f=&LelF{r5}E*U%xE(J literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/208.png b/graphics/battle_anims/sprites/208.png new file mode 100755 index 0000000000000000000000000000000000000000..61bac622e40ead605fd941f3335a809a03797f69 GIT binary patch literal 815 zcmV+~1JL}5P)wExY`|K{fZ|Ns9000000000000001_od2}6|IN++pskfM0008I zNklveg0cM>dLE0}0O6&@78%2Rv0n8%6ZjoRzu;i4i^6KRh zFa(HofC6AgvL1WE6TL-X<=*n9HAjMg`g9L03Brs9NY&njl0~BCh0a6Mu;{_nP zF$4d#2JGm7M|sb604YGymVha|*!1t!dtQo;#mtvV_#IXPm>3dhb`ea}X1yg&T8t&n ze;Xc6_}JC}5@$AF0Dew@HtBr%8 z#sWB@`+cqgGa9ntNFX2YW2WUhhKXx!2UE7Qn0SL8xvc@T3J;4dEdg+P*w=s%T+ezn z{K}sICVEpii?sk9xppZLMkphnNmE;L|PZ13@r1SmjO0lHqY8N%SG z_dJNFXORLl1YbZ$^wWHc=usZ!`VSZE6x|T>=c3W&Bc(&xQvyE9y$aK^-1XoD<^dfU zFM|x8-mL>LvpGFhWhoi(L%=)?;5JrjONW}AYytE+H`99!5UwBGgrLrw^A&(8fsFGp zptc!yT`U5q09y-8IEVCJI|f@m&Sikn`HDf+)=an!sGa~Z)%EI0s*<{sX{{W+zJVGgNEIj}K002ovPDHLkV1ftZVSoSt literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/209.png b/graphics/battle_anims/sprites/209.png new file mode 100755 index 0000000000000000000000000000000000000000..dea2a60bb260c7d7a783766bc88203fbc3f4f8e2 GIT binary patch literal 620 zcmV-y0+aoTP)upY%AGr*uIN+1Dr zBAU{@Gz0LJBYRFj-ZSk}x{a2LihmZ(Atoi_Ap#e~D%vtW1e7A73ajj}hD*5RHgCcu zZyrJrpW!=4c1{4IdH|&Cp;&ql3;)`aX*UwRIm|DOf{di*$Psa5V;m?53|Mc-;@1^) zh-Adg6d><8n%34SCj+>I4)W22JJ22f7F2x<4o7zzv1V8)%IU1@9Klr<7mR`KIR=AN zE0B0pP%c{3XAqrK{vAOCmaAAnXZx>npiD&moXCD80P$zE&VRvE40^~RzxBqo6MZ;g z#99fmvOse$7PTI=Tt;ZEXs3NCG#I^6nFfP5yY(rgvujXi)as>s1mZRY_7p=3@Xufy zr$}F=GlZI4?-6gl$@2Iq3Iv3g*{r}Et)|<)Tjlv}K{T3P=mnHT1IiD$a)3g?o-U3d95a&>8k)D5aHJKRc_st{v46_D@g>Eal|F*7+Kqca{m$Yu2@hS2+H)7q+MpXEysb6qkWH%-hc|c9qiUxp;Y&pv zl8^m=Okn8$#Xes;&axu&T2Im$At7^nal$el5J#lXPW;OXKR;?enb%Er8A1A(^sj6P8nSplA}Kn4RZV`&5>g{wm4t85bYg?aG<)B7fUcGj5^E&&>s^1m-;&0jF@)w6^sJFOp%lFGAnm+hbU z{Fui59c4@hKHu@2_x{TL{@4Bw4zCmYc`@?4Rq7pyD#^H>z6GIOdNIe>F6z@*e>rE$ zhFN-bm(wovzp%t@)FZ>VlrBUih(oV_b^K zrdgaTsCnh$_l`dX#`FiT*T+Npf6Z}(m odj!tid@=6XVmtY1{X6XUF=p`?r?83@-2ugor>mdKI;Vst0D&0VkN^Mx literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/214.png b/graphics/battle_anims/sprites/214.png new file mode 100755 index 0000000000000000000000000000000000000000..9f6fc8d812c5faa0acb4160a00f3102280830ed9 GIT binary patch literal 534 zcmV+x0_pvUP)mUD|5p$6i2y5jR6-zZUDC8UC}L+bcO}mDRq#M8ZNp;Lejl>zsF=+T#Rx@jq^4{IY|M|& zFS558kV63;RXgPXqQZOy%_v(!En7nsIG|GbSbu_QGrwEF;f;f&X)HOI8f~|^CXM6d z!??h-6*gvpUdP@}7D9Y>+ntje)*H&)SxNK4wPD)*kZk|_$$-bT*|RV@ zkHI`cmOmixz$sJr5C60m_uZObrm;@O{xDCa%F-?S6<4j&Z!%R+_bNHXSpAKC{$!0V zh8L!ZXWu;jrXVcd%pzG_prFQJ!^QeTymqdR11on{l#a*LC2Rj|{_Nclc5kurMrvnW^8hL#$-iP7bFn*VZ=tkX5+9aC@ng>IaS$tXgatmPxrx ztCP&jbD!-$WqNR)YdI^>NT#?r9gh?%mre2;eLb6Iu4Sp5GjV%_vxWTTwg;CzGGZh( tium6B6|>4yVfmG_cYVeWmv@n0FY$8fi87WNNhyN@!qe5yWt~$(695#WhJXM7 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/216.pal b/graphics/battle_anims/sprites/216.pal new file mode 100755 index 0000000000..225cf9cf68 --- /dev/null +++ b/graphics/battle_anims/sprites/216.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 238 205 +255 189 164 +255 139 131 +255 90 90 +255 41 57 +213 41 57 +180 41 57 +139 41 57 +106 41 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/217.png b/graphics/battle_anims/sprites/217.png new file mode 100755 index 0000000000000000000000000000000000000000..3583670eb84812800dfde728be95d92273408e56 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU1=9cj|NnOO?6)~{zGY>7 zvvfRaX*k7FGs#lI&=RBt4OB0i_yH*7=jq}Y!Z9;B;Q*VHGxLEh8#}wRnI@!}1(g+Y zG8;~r;uCYHp(jCrSw);_5|i;9-vvD4;wEg`9gLUGv56G&;JY5_^G$tk|C~)~S7+O4h<5jjo zpjvf`;a-MQ8Z-LVNt{{6AR>^qf!#rJ&BBC*pFUl<@S$jfN2Z2Pp#>+~qjFAb5n~pI z&Y+H`tZyC(R9&9fkuGvM-2d{r*?cr;$>{@3PY9;b%%D?GeYn!{}8jIwA>VKK@d*hd?-)|Uw zQrT8N<5fKTOM8p+Bi6N!jqK+?T}%1UZY)&sOuDIGvMBWhhY_Pbn`sW)skNVF50(lA z*l_SxTS{ILn~|Lq|2a~BQEKGT-5b)I%v~x{3!j8zopr0C|*%*8l(j literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/221.png b/graphics/battle_anims/sprites/221.png new file mode 100755 index 0000000000000000000000000000000000000000..f30ca7907739572ec611b67233169554a3e6d94e GIT binary patch literal 521 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|NsBrj$VB?WzDms z=6i-wSCg`UXpUi4mZ7B=P#P8Z+C_#jFfdN>ba4!^=-qq4(Eqi80K)_3S!R*HxgVUF zkmv8>k?1^Cdt$HZyuC+Wo%nW7A}C~CbcoTG|I>Ew$Wszfey=pYXuf~?X@>oRCnpBS z{AN8aCUlp{WMzDi%B}_p))3yik|DCnRTHi(*=K)2B$Z1$JQltvoyC7a_luEgmRME%0ZtR4MDc|4 z&(8#=)^xk_Pmf)mpJ#Ae^k`|t#K$%3uJBE|#(aSFzS3{z3vKDup({e{s@!AltnANO zk!+JAr;*Km!|@K&)(`U^pW>@jdwH+r&!dAJF;nH@7?h%|8Zsp#+kWVqJEVH?ZP+Z; zu%oqnZn3DpNJaWep62Rz>c^BWDSTMZUNygJ1yewSzopr E0JntG<^TWy literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/222.png b/graphics/battle_anims/sprites/222.png new file mode 100755 index 0000000000000000000000000000000000000000..1205494d4d9c77541c8bf55f3248a3ef5e07cac2 GIT binary patch literal 554 zcmV+_0@eMAP)$>8oB#j-0000000000b?NdC0005C zNkl7xV5C`yMNU@U+@z5agRAsO*Ov%!&bV!ky(xD=3St{X7?hsXYVh;lk z(1)s{6x%TssGVAsztBnd%h>^u4}jwoUjepyJaeEQH)ZC+y@AKLugYDlAqgKs?t<X7N(VkUg(VmbX-~YkVgiTN}_uSWRQ-A zuVzA4?3oa_HR8*hm=*2N(-0gH@aN*62XO@cPoPV}oe@~LXOb?I>c8qxDI`eKVsJO% zz_C=-23`U;H^ipE8!osR!38e4z%~GvCAQYA0cX6hMsh$oUR&Fu43>~*$_|;S=Qzrh z9iZQQ<})>CM?LKO^R9H?0GIrZT)PnLt!Af-eKaur9_r@!_1>%q_JJyTQSc61sCQ87 sk@~$U%}OoJu^NJ{k?;PFOa5g(09Wgd$L(kg#sB~S07*qoM6N<$g0htV1poj5 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/223.png b/graphics/battle_anims/sprites/223.png new file mode 100755 index 0000000000000000000000000000000000000000..5f9dbf83e626d78a8a50dbab9d4255fe3911a80e GIT binary patch literal 524 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz!VDy5c$8@ZDT4r?5LY1m|J~7dSLZz2TYYs& z(AjRoHO+=ostv1)4U>uufwE|zL+<$u1_s9Io-U3d9-VKe9?WVn5NK;R6`Y@Z-MN3$ zCCsHaz#UDR*{jZJc!et?Uk|Yio2P)!a(& zojI_y>iwRLrMD|Aj~x2Z(CQ#o#}~?BSNFwTD8ueiT*9-ZfmIXbETtq;_c8jHZ1!5W z?)KiMpt~iX6_taPBom@a{8EBaMcY_c?3&+p=at2wZ>(3<4|4^5-{HyUKb&G7X(}gwjKET9x7IQ@*l4=B3b)5S4FW8&I=TmB{kfi}gD$!02TKUdiwhzm^L zX(hdocX4;i#j{r#J?por1})j~DewE1^VK^QX6QW3H96kPpY)kMY@e{(?n2Kka_bMa z^G~bz@XXSN+n6PC(#k3Y&2P^wS@mh1_vcsr fm#1#zR6E5!?W(3hP3FU&Adh*v`njxgN@xNAbxn0X literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/225.png b/graphics/battle_anims/sprites/225.png new file mode 100755 index 0000000000000000000000000000000000000000..c4efbf2de66def0b2028fc097edf2df2f7a1a914 GIT binary patch literal 408 zcmV;J0cZY+P)&wG*+&WQOy8~shJZo<*7AgwKTdXwk#{L zh02l)%k_-NroC{juZZr1f$0RiBlrVp=%@W0BtO^xhXa)3K&>`TmfUaFJZ&%%IaHHJ zLsvcm?LGp7T`VN7z%d3L)1|^09vma#IXX04#2Wd#*tzu*yl(gYh2{APJTWjlzIo3- z`{=#z9+-@F=RNl;c+owdJo=9C8np3GTntnU{t_Qo@=XU_thxvQ0000eP(?KvsjNi(?4K%;bcG2bP z9`DyLW>_*GdNIdR_{a$$v-nvMTONmULu0jchoN>uW1_al*`NincTO8wO=D|Vlg`V_ adWqqFmVtH3ruj2LuJUyCb6Mw<&;$UW$6ky8 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/227.png b/graphics/battle_anims/sprites/227.png new file mode 100755 index 0000000000000000000000000000000000000000..baa51d106134a9f45f1bbddf78d1966f5ad154d9 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipS0Me4f#cb;cW2K&+p^_q zR@R*V|Nq0ebLO1w)>K%-Aplec0k2NY_zz^w@N{tu@#tK8C6Mc|fdF&hYqqO@^`pHs zw_eZocl^3uzQ@DkSVX_v<2r#GiW6${pB!itWck9h-Hk6t!qFkWAP*#9c!7P6o5F^L zg3Ps!_Dqeuy%HI0cR5(hOp+FezEKv~G3P&XXn?!Iito|NY`0sil-PgQN;)pkT+=I4 z^8GXiQ*L6O!i)FI*_eDj6hGMh^YC<2zWQ70Z=RTyei10N0lC)G)z4*}Q$iB}k!fhi literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/228.png b/graphics/battle_anims/sprites/228.png new file mode 100755 index 0000000000000000000000000000000000000000..e569fea34013255d359ca4ee05f5b8f5d76b374d GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ipS0Md=O4hUHth2>gTavQo z1Z6clW@Q;>MJZ$fr7(fIi+vnWG|bb*F+^ixa>4?^1hY0K_7x2i7b&o;IK;A`#xZaO zL$-#%lp=fS?83{1OOuDG&leN literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/229.png b/graphics/battle_anims/sprites/229.png new file mode 100755 index 0000000000000000000000000000000000000000..be1e038da67e2b9a0f455b11802bee62f838187e GIT binary patch literal 445 zcmV;u0Yd(XP)b>!3`Hpj1`KC0TQn%V#bc)+LW>-uNui}j=qWM^p0aevCJzA&dg)wW zu9Rfia#8|`#m7&IqyU^1)ETvfXaxl`+vxj`>8SIhn3SfWIn7&6rzHTxKT+O5M7#r7 z-U5d*jg@skp!)EvA{*M`^DFhkz-Ns;|6dP?kBaEZIlb4A4t1VBhiN#il&0ZlzKZAV z6Bj@#lTIP`hV2BG^XMDn*29v^dx$s0f?s$3c0=qN?r;@4$d4>|wy=sf<_7{;tl7mifek=z+_+z4yquv#tlzl5#xJd~Uh$wt z-_!z7zV?0F0v?N)$kVv1}Isbr}wCF*b6b*{hB51LS n0G5im@ky{Cm;xCgj|V5`MpYb=geK)dVMv$6y`%i|TeH*kp$pqSVj z5))0XbIsYE$&L_$I}mm*vA!vQ$$ZKG&A`~9{#8M+XYTtXVfi!9zaW75%$;~=6yQ3} zga9nR28ax6=2Yd8z;sIjz6(G_u(_k8LvArua(hew*6I7nH+3imALl^LnF<0)&27b) z{Gxz2#*QceYJieZ^@EVG8^D}VE07Y<0A>l*yo?fd3z#w*1wsN^z$BsC4}*lQf#Hl+ z!6*S57?x1_b5O#@z)*%(7?em;zyOqGZ=NIy_p&HD#3+ex)Sd3f@+U7|5U`4)#pYJ` zuMfL*{)_=0!R8tRkO>5g5+16{0V|6WsG9JP@kQWJCS1`T0pNV2?Qij7=~9m z;xWszHC|)ID*#JYfaq)ybI$RaLWs_q)uEONK2$aD9I8HbiuiTDO`~J^5)V}%! X5&y(YI)DS200000NkvXXu0mjfR^HS{ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/231.png b/graphics/battle_anims/sprites/231.png new file mode 100755 index 0000000000000000000000000000000000000000..7b3474bb974683226f528787b133811713594edc GIT binary patch literal 391 zcmV;20eJq2P)b;@5Zo4A8D0=SAvy_BUxAYEfVAWV*i=X$VN l25?<4DLeBB;_hsIx-PlDu<^?y+N}Tp002ovPDHLkV1lPqq*(v} literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/232.png b/graphics/battle_anims/sprites/232.png new file mode 100755 index 0000000000000000000000000000000000000000..ebdf118e108d47d7665f8ed00c44c15ad6b8a0cb GIT binary patch literal 1085 zcmV-D1j74?P)g5i5Qcdu5PNP?4Q#Jg1ZZ;qQ`yA-}S33Zsnc)oROUV7|i z3jt(()=bgLU$|LE-06PHzXj*5Cb{i^zmX_SUVGXMax-v-;TXuqnvYi*PSSOQc$<&41U!hR zAc(@}DT#e4s5@-qW1#pi4m2=pYF0vCb-n`O<-W5BG{ z?EfF%tMEGl>RXd;IU)0_7`#1|Yqtc79*l=8uw)Hy9(d@R8vLQy4CH~}Sq*y~xFptG zuyYBjy@?5xEU{KIfY(G&i$=QY<2xt0$T*hu{Fu_c&G`OPZJR5I^QQ#O)VYn!;+&d+ zoF6)whFR&}q~Tx|-rQ4wyw*;+aOzAIQEf%8nBQYc^kARZK_Ety4uomK>cM5_Uz{-h zZPiZsp#DK#Wj*D{nl6pvLw6Mf*eWa4GO5h`qdxuyLF%yh!2qHC00000NkvXXu0mjf DGza|} literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/233.png b/graphics/battle_anims/sprites/233.png new file mode 100755 index 0000000000000000000000000000000000000000..e71e97edab5a14177546db60b4ceab5e9672acd2 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRm!VDxC`x5MdltF+`h%1o(4+P(y{eO4%|FbRs z@6GvtulxT|h5u6|{wE3iH{|%wz%U1>2nKG2r27Eb37#&FAsjP9`!@0&P~dQxIpusx zQ=i|Bjg$YrWl9S2=;{B=$MQqej`1J+X`pYdjFpU8Sqk?qH2KjZg*gm@j~ zY;7{$7QN7$pS$(LiQYFm7Hn(Rw13Fev8+9cx8DDTR9WKzopr0GHQN AT>t<8 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/234.png b/graphics/battle_anims/sprites/234.png new file mode 100755 index 0000000000000000000000000000000000000000..e5efece206dc76178c635bf2b82b8ecda923485c GIT binary patch literal 333 zcmeAS@N?(olHy`uVBq!ia0vp^3P9Yz!VDy5c$8@ZDT4r?5LY1m|NsAc@1E^_c6G_U zz0FtGWSyN8wWK+yIm1NdRL_wlnfM-t~GMJQOJlt5W*-Z@H2YD!yS8)S=R*v6+EwE`lTLr U`5I5aO^}~GUHx3vIVCg!08hAwssI20 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/235.png b/graphics/battle_anims/sprites/235.png new file mode 100755 index 0000000000000000000000000000000000000000..1bbd9c02792712115776fb37224ac5555c4e4f81 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^96&6=!VDx$zb{k zTjn&+>CWl~3gQ9=y*WHUIX_Pq#}JO0$q5C8i3tf|Mw|%+LLp_X0_VJrt>e)U;W{`| RYmN=bR!>(ymvv4FO#t{rHKPCk literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/236.pal b/graphics/battle_anims/sprites/236.pal new file mode 100755 index 0000000000..0b587a87c1 --- /dev/null +++ b/graphics/battle_anims/sprites/236.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +139 222 255 +65 148 255 +0 74 255 +0 57 205 +0 49 156 +0 41 106 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/237.pal b/graphics/battle_anims/sprites/237.pal new file mode 100755 index 0000000000..3eddc56129 --- /dev/null +++ b/graphics/battle_anims/sprites/237.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 172 74 +255 90 41 +255 8 8 +213 8 8 +172 8 8 +139 8 8 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/238.png b/graphics/battle_anims/sprites/238.png new file mode 100755 index 0000000000000000000000000000000000000000..1c9565881b61da985a1fee6e384a20de29162587 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!VDzu-cxxDqznRlLR^9Le;|1F?El%T|JUsO z-@W92@sz7c)mx&Hy1l%z91VdAkb!*Uv8Ok!GxTXZ~u?sDG%FDCnp=^Ptn!v$3 r3@Q;?4r)yt*9!y~Q#Q7kH;6Ja)YtMma>_)9gDm!R^>bP0l+XkKRINZ3 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/239.png b/graphics/battle_anims/sprites/239.png new file mode 100755 index 0000000000000000000000000000000000000000..b2c2d72ceea4c588cd9da6758cfd03bfc0e0ba68 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoQ!VDx|6+TY^aRPioT!Hj|5IFn)|C0aztN;HG z`u|_^|51hiQzZT;3H&$Y_|L#F2dD@JN?(5B2eOZNx;TbNOzrj8Bjq}&TESrQrTFW zavyUk<+nCis6YF1$Hr24?rc1to_0Mry1A3t5t+9tR({WOO;hVi^7~`1oFFzc~kA?<-PBV;7c=)jR_Oo$ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/241.png b/graphics/battle_anims/sprites/241.png new file mode 100755 index 0000000000000000000000000000000000000000..21218ceb6dce9ad5fa122f921948ee8cada620dd GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!VDxI2ESSgqznRlLR^9L|NsBb{=YZp|K6$OE(@k+bDUa?QYVZ23Z#ohr8^C4JR928IzhPC|&97 za^hLRvqL1t(8v0aLzg2{&q9W!H(3-)CM}Q%Q3(v-J(SR*nbwr4q;BHDlEW9!rhLa% hDS*wJsVyssk>RKTZ_oLsPuW2(_H^}gS?83{1ORw4Pe1?w literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/242.png b/graphics/battle_anims/sprites/242.png new file mode 100755 index 0000000000000000000000000000000000000000..414225c8f6cc518143d617b5ec02c263d583e10b GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ipS0MfW|Nn2#-o3l}?Ag(K z_qJTUy5#KHDMz$-7}ak*t2)@s)7nRCyS7I zXEt}!b&6-+JoW|9$i^=m0iMb?Y+YX3Zzsx4>9~a&-27=hMNh<08dvxmvv4FO#rFEIz9jZ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/244.png b/graphics/battle_anims/sprites/244.png new file mode 100755 index 0000000000000000000000000000000000000000..09e0c0d6866d39ef4e6fe5f83391bade9810e431 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQU(D&A+A9B?Eh~|o*k_|J0)sM zQq+{BsOqGsq$Hp?RuH{g=`>Ix*VDx@#G*GjL4vh}MUO?L;FR-Hmk*NfP8>L()8Nmz zm@$!6r|pLbhqZx$1^1(A;wFqjYmPNpOyS^?VsCgMkiI~O$J9YFSvZ_yw&)6$C2Xt` z%uAUcoQiaIj_C<(=+4eym^E{u2E+X8Zj5FO413swc3;RoIS1q-Pgg&ebxsLQ0N71H AYybcN literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/245.png b/graphics/battle_anims/sprites/245.png new file mode 100755 index 0000000000000000000000000000000000000000..39618d3946a42eb269175bdce6253380427406f8 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^3P7B|!VDz)cyd<*DT4r?5LY1m|NsAY_r5(l`t9D5 zZ&$m&oz41oH0awJud{O;mo!^e7aIm885#nWLBO>98JB^qE1oWnAr`%FuWaNyq#(eS zp!Txrqic@Ghf)KT@Z)|DZg^JYWU@c~=lv$((Utnw(_cHzW=`G~q8uz<(Z)1;p#o#X zyfftwfKUskL#q^g>@rtM6N({n=r$Oe3i5JYASZi&E9 zXBh+vBta|yHL`C!ve1(_g^t;`Ho$~7dLj!*#487M((6E?Aql|J%R8V>iHD_TNi+D5 zRa~(WROYm}Y_JCO`gZpUH6{GPL+A#k`xFph$`nfUgq^> z&-3+2G%GCd*y znL^eagFg&#{*4LYD&7He3Qhk2wWh_M%7Gk_mo0b^f{5x~;Nmu?*r#b$0f~UyEB4!@<`^#r@T3FPMLsD5Y7sJ3He6iD zF={!=zv|>NFe(x1{J_nYwq6Aems~{Z)i#NNTux(5y&QX- oiEtC)E4}3JzS!={yZ_hv1G*0QWjgiKbN~PV07*qoM6N<$f)$im>Hq)$ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/247.png b/graphics/battle_anims/sprites/247.png new file mode 100755 index 0000000000000000000000000000000000000000..858d4640dbbde73986d2f1345b1d0aff04858adf GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9BKM*{7_W$bH|9iLm zUo+?4l;*w7#Y?iHnxnk3yexqVkU_z!^ivEBj4qxojv*GkTQ52KA2N_&dvNT)vG*0L z&wP$jKE71s&cz-Ni%ByD`&c-ta#~*0ZHv9_82;#>%YN_c>F=-W-}E|BA6lP0ZC=(w zk26O5?3sOB<}BnF_LTK-I;AFb(20NhuSoYKjp^=bO1cwvcFSZ~Z_81dl6zi2^n}ue zNqTQ4_?RceT@X=bb}|py(cH#vQG6jq$K$FXztZFc zz9mx*9bD2Vk!xuFbniO<9?6I;^K$~ibz0vRgw~(i)4+RD+|?@d`jhq9qHmU$+`Rd{ zEqp=_(+%6!4-$twST~%mXTK<#P{ZT!YlE8kiOP3-@73fK@B5#9GEi z-8gme3)g*kcJiw;pJM0vd8OH-;nPm`Um;r7^}DWwC%!$*X~Q6Rz|pII)xL`Aov#== d@7L|oz5gpG%5hSv!Xr@ldb;|#taD0e0svjix*Grh literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/248.png b/graphics/battle_anims/sprites/248.png new file mode 100755 index 0000000000000000000000000000000000000000..5a3fb393fcda383004fd07a4f314f5445f99416d GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^93afX3?$7I7w-U41_3@Hu0Z;m1jAJcj=d5Rb0if0 z|DOUB!2{->JD3cVmhg0O4B?oWoZ!H4jX^_wMtZvXxvX76l#`&7kw+|ZIVjIKU9b#-QxRpwuVWz`@ot^1`UGD4S6n~UOf1syQk;TIK#|ps&oBvKtTpj93SDA7pr}rH471rjEP`cK^(3zR>$9((o4Cl8qY jE)|-Hn@A?K-dSVso2C{Tb^H`ND6lJYKSba3fa?KQm zDMx`KcmO}=6Ct3qo2QFo2*=Fi1P7*t3j=N)Wj&KrYG!7}$zbHv(>tX%wy`H6SyeST zctX#_MH7qy`mRQL1_W?UWt`fi?UvCl&9R*+QImy%q5G78DUZY5tso0MUHx3vIVCg! E0B8g+_5c6? literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/252.png b/graphics/battle_anims/sprites/252.png new file mode 100755 index 0000000000000000000000000000000000000000..2ed8eee4aa6ffa64d6f1d15c4379acaace602a6f GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ipS0Mc#2%cU2e|F3NE#3d; zWc~lY2~-0I`zPu)*%YB* ztLpFA>>QV3RLK#x)+XcaI^CL01%XU+ZtaQTkNoc7WVLmhl!A+o%P~7?79pjxc`XqQ zH*?$*ZtiEEt@-6*+{Rz^s*`&J5AB(Ai0E+PfW+9<^ItPY`@7t`l9I#^@}{S& KpUXO@geCx#afrMC literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/253.png b/graphics/battle_anims/sprites/253.png new file mode 100755 index 0000000000000000000000000000000000000000..22f08ddefe0cb57713a36932c3b961479b539528 GIT binary patch literal 467 zcmV;^0WAKBP)*tJ7yxPj0000000000e^c(i0004A zNklIEC)k52JVED-rE0*{ z%2Eb4iwEACz24uxQ1NUzpXX~jm!Kk`ErO&D#c^h6kJAyWY0sC)&L+O~shaR3=qUJ* zw`ZSsk{aF=w0uATbn!UAc<0QSEoZXAYB#=U&06V433i(DYbo|3OYcR57R4LrB0w#WF6}<<)W}@}ns`+V9$^S(DFrr9 zT;tt)$?c%}z!ZJb(LZ?PpNZO>i-V!Q6hMA~Kv=v$(^U)@$3v&`VA%@D{h&5MPrm$P z#Y4aqHkvaiRmE>*4F9I^7mXeL!y`zazam`m4^K^x{8L?g_AgzsYkwxEoGJhS002ov JPDHLkV1k3*)!qOA literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/254.png b/graphics/battle_anims/sprites/254.png new file mode 100755 index 0000000000000000000000000000000000000000..1aa77e17ffa7fa299468b989136bc0fdd236c91c GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ipS0MfW|NnRQ?%mtF_w156 zdz-7*WF^gs3hMT9thO{P*3?XrkO<=7@B*p>105-&SRmu3r;B5V#>C!<)%G7+H+)$jLh+?O`3%=(m&SpZHV6e@4${7-hw%M zUpTjHl)IoL9oXT;^(T5sNY`Xdx%ei}iPGL0iPFL!M3ScYvu3o;h&L7H^5Jsnd?kG9 z)a+fko}C_!nk!1R_*nOA#7^>xNxZ7kDYP@&>G3 zXJzs4l$*_lyV-NUuBce_ufv_?UPfIl-|@%iSz}$j)ufjN<~%jIouB%R`CB9N&Tosi QiGm#D>FVdQ&MBb@0H7l}-v9sr literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/256.png b/graphics/battle_anims/sprites/256.png new file mode 100755 index 0000000000000000000000000000000000000000..7043d824bdd27fc56f825076dcc2d3bcd2e3db81 GIT binary patch literal 686 zcmV;f0#W^mP)$>8oB#j-0000000000b?NdC0006x zNklXhk4Y38>^qat2)nF4n{yATZiy87@OR#2xTB8OKKhS^yf0>D`(Fh#-y7x_|8i0LCD=CxPw<-d;iJZWI9~5Q#wdS6(;3hwiL%BIwdNap*lj z)_Vacp0h{79ng&qzZ2=0BlfodA~2)XQv~FT+Zi+tBLF0fpdB57?#7HJ1di{riDX>2 z5mW#mVJ`wF5w^gsmI;WN1P;${Csay+2P9EI`v6iknhS3P>QIRAfCK`Lf*hcgz2j&9 z#3gncyn)BUo>?zg#$^d4yK)gg1-`t{_m8YN7x@Nl?!!3II6Hb_}%y0V3qD;eCiH0r?dZApP09LV~bH6es}2 zz6ye7R>Wn2oO)G_s?G#;h&BT#3sm?*8l~t&px&R@nV?Sn>P*nQ!4tuEoeBP^FTGc7 UWY8HUZ~y=R07*qoM6N<$f_;u0K>z>% literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/257.png b/graphics/battle_anims/sprites/257.png new file mode 100755 index 0000000000000000000000000000000000000000..d3fba6c4ff4c7623bdf8602a3bb428ed89331e09 GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^0ze$V!VDxIwZ5yP0w>BR3Nwd$nF8zC~?%L8%0Wu*n$DL3A zXT5m0Rrc@R-uJi8hCLHW3ktj=lN(d|JwCpcS@O8vyN_0D%0b@rboFyt=akR{0Etq1 AiU0rr literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/258.png b/graphics/battle_anims/sprites/258.png new file mode 100755 index 0000000000000000000000000000000000000000..bf50cc099a2de7ed66908b1ea31ef68d1a1b0a3f GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ipS0MfW|Np&buQt!w;+WOV zVVMOKxp(yJ-X%-sbT?NQM9(uYshFJ7oozz%(Sb@it^(+HhIz#j)22*=x6~AxuS2koVe}13! zP~r2(i7)F_I&1!PUA})=p=f7!3-cMJFqcn^(-t;vkUg-C!^hk5fVj}Be|6prM_<|h zj$}SHhqw8iWqO8J*Pg#oUH%~tdv0HOdo)+dn|a%@rOPAbl2^txuMO|t$#koMsh@9^ zTb4qoEc>=yQT;h)8<L4_IlOxE7q*kdJ+BZXM literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/261.png b/graphics/battle_anims/sprites/261.png new file mode 100755 index 0000000000000000000000000000000000000000..12f0b17443ce42478e1daefa9a5cc63f09c71a48 GIT binary patch literal 378 zcmV-=0fqjFP)k=TZ{9f>xlE($j;QQNJ@z z=Uu_Jm5jLRX}nyT6jG3CCArTYKVO{#I)VVYSOLj~_ruM(6B2>#%y| zAf@C9sO`KsAw0;AK&c6){{2(z)lwRVO`m4n-7kGc((%OX$Ak{ Y7w~2=MhALV~EDYsTU2o8VqgtbPT$*G@&X_8|MPk(9NV+xZ%a_=Zt?gHS}$r^4ODpdJnlH+ z-dxbbp|eDh>5EKild8EcM_#lZE7OIYmQNDqdh7V|{d>YN;oPj^4~o+)XV~SK99rtc m@l8#O!J{$L)86g7eI>(LW90|mde69lT;}QO=d#Wzp$P!|0$kky literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/263.png b/graphics/battle_anims/sprites/263.png new file mode 100755 index 0000000000000000000000000000000000000000..53148056cdb1ff40c17b06b4be31595d0f5370a9 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU1=9cj|3CZe|D3b`v$p)V zobw+jf(I~t4Z8`HHuQ9H4B?oWoS?vGAmt!==uiNovm1VmC25<<*`5(JFQ!cqjx%*vIR;TdAc};aLi0jIKb=V%&fo@mVPyWL;Hw_pwfv~Icqey#CQzN#6);p ig&J2jzHXZB%)-EMu9efzK+jtoWVolRpUXO@geCy=5G3*d literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/267.pal b/graphics/battle_anims/sprites/267.pal new file mode 100755 index 0000000000..1973e6f452 --- /dev/null +++ b/graphics/battle_anims/sprites/267.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 255 246 +222 238 230 +197 230 213 +172 213 197 +156 205 189 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/268.pal b/graphics/battle_anims/sprites/268.pal new file mode 100755 index 0000000000..d40d72f690 --- /dev/null +++ b/graphics/battle_anims/sprites/268.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +197 246 246 +148 180 246 +98 123 246 +49 65 246 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/269.png b/graphics/battle_anims/sprites/269.png new file mode 100755 index 0000000000000000000000000000000000000000..d699f4c48e1e98e8f4abfceba3438aef102c9403 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUEk3#g5Bk4m&HtpNvyP5) zEWQ5!{}0sU@PyL{NZEP1IEHY{Oinn!U7_#rGCEt|;YH}`13LFY9X>D~xxp&JXk7L_ zs#^Tejau?@>+W2o9&?E*=S3j3^P61659ecYc5P>y zyL!rA3E^;c`~B<-Gu_pNd-Hewe)>T6A!E(xL~s%Xt#d@YtNbAr`U5U4Qk8qlc$Vj9Ktu j_tBiW53ilMeg6Wte2-*-ldQ~BkpDbg{an^LB{Ts5ctU#r literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/271.png b/graphics/battle_anims/sprites/271.png new file mode 100755 index 0000000000000000000000000000000000000000..d77ca06827bd129d79a1deccdd73d6791c9956f4 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!VDx|E`RzTNErn9gt!9fZ~wnty?1u+(IrdP zRCiB_0*c@PRVO`lfzsxlE{-7*QEVFLlS1aFVB zXEsh!Uj-`|I%Z0Gd<#4Ajzj3vOx+TN>AhF;yK|Ra`jN-MR3-Uef4_c^kmA4lCErWx zwq7*ZvGS`hXP!Av#S1p66ZbAzYaC{H_(Hg)VIre2yO!F2#tn6KiJq055Ayaf6rA0= zMd!vk)~xCu#R}}tUY9k?UT+jX+~Dr~-!X(`9Qv6DfOnixO*X6L?G=Rr?|*(-nx8XUe?nBkE-o!oA=ieG9F;DH zl>zFf9N0=1@uUQ(<~0hte3Ucdkp08f^S-g3SBB-B@&h{t9VVUz*M?pmo#y@&<@-+# x`2DlzIi_#K(D+C02}7@f0~d=&^XGl+)(kd$)7DRv*7XOu($m$?Wt~$(69BVgUjG09 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/275.png b/graphics/battle_anims/sprites/275.png new file mode 100755 index 0000000000000000000000000000000000000000..b1b7b6644e122e74684af01a015d6a4e39209229 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipS0Mc#2(CW+zvk@!?k)e5 z=KOc;zUSDy*RgtzV|BG-ag<}0rDGOQ83g?A`=tkDWq7(chIn))CrGd^X5gOD$z~vO z=7j^}+!felYrGzGFQ=3?t)N)~BY*%0vUc}`FhlcS@f!b+uvyyi(ltGL`_*bam& zkZeq0@M%@{V_u*Y(Bok0;29{egy|&5IXA}~hP%p(8RQul-iV$~s646_39{YO)z4*} HQ$iB}P$EhB literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/276.png b/graphics/battle_anims/sprites/276.png new file mode 100755 index 0000000000000000000000000000000000000000..21d51a22b9f0f9ecb61754307a18bcc4e53ef875 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipS0Mc#2(CW+zvk@!?k)e5 z=KOc;zUSDy*RgtzV|BG-ag<}0rDGOQ83g?A`=tkDHF&x>hIn+oy|j_HK|!E3@r4Gj zutWmWInEYFpNJD}d$(?Rr0?hJQ}edA^5|X3&+c<&pXD)MNY}_<*wxdRUCFbHA%lgB zapD5jNbaNyO&{1I7+si3x)n}K9C_Y&hvC87)8Y=P4Am=Kd9!4jT@DCu;5-n?ctDNe hnD7RcGcFI#tFo7L%GOU1%3BI@m8Ywp%Q~loCIDJkS}y$>8oB#j-0000000000b?NdC0006v zNkl(VT3`L>wq(lwF@l3;T3}`$$cJ$e`3lAThY|1e9HhPObASA7Ge?0v8 z=OY*pE&+1>xrp!yz^|zpuCHeBiv+c(hTqi(4RnlKX1fZ0DxUY$i1)f z1QbB&le-72oIsr(wOPdQEHn5;(J^J0zg-QMTuxBb!z_!Fb$OvE9M`- z{8GIDb}bD^185{QoIp-(F42Iz1=J!nE3q43$GibBgn6(l0kcpE0}%H`J-|g?))~)J z;|o|$0AOi%Jinjg@&vrZJb{hu1fU*?pC+Xf;8_hopEMA!Wmx}Fm3Ew_(g1C2`U6l_HLy+MOd^}$`1IHT zI7uqNlqU`xpEk*MnRr06c6T@@vWF=+$qrox0no=;%W4e-lW50mwO9G4MH*2+6b=#E z*MO*g0Pyk;7d8RiX4?caCmsnnMWKP<5DT*DAHuGB@A`-9!1WeoJHh((_4o#^zq(=h ShY#rh0000UbYWdA-8vr`-8@Jpu=o{|mgkm+$eK+pm8sZ0BFFHe$j1?d8_VJkzbS->%D= z-S%u}@%hE6moGTak&f$K(xuQ5y~=^fZQ%w5jjS~%mNPPcTJ7@JV%hXn*(Ha*OlAr? z&h@liL|~W5`g6Zc*e^uwXP%(VA%doE~sSRA^N3-r`GDIQ~R|e3}=eDw&-Sc-*=fP zxhL()oSxk4p+DIBm+L97_IY?RT}(14;9%@Wm7+4?Dto@$!8g+07|mUlc~>b>@~iFi uW~sYzWeJU6@2=%5iU_|M)&6n0-z)wP7t9uDrcGP|3Rh28KbLh*2~7aNA)*NY literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/279.png b/graphics/battle_anims/sprites/279.png new file mode 100755 index 0000000000000000000000000000000000000000..46933b76efd0350159fcd8db7b48abccc32eb711 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^96+qW!VDx0dzbYADT4r?5Z9v&4F8WZ{GY<`KZ)VL zA;VcihB<}|S%yGq?4VHHBp4{;?CIhd!Z9;B!GVd%;mis?6_LY@EWwP-Wd~T4T9_JI zG(6@CdB|GxZ524$RWa2-qmiR1!Bn-01)78&q Iol`;+04)J6=Kufz literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/280.png b/graphics/battle_anims/sprites/280.png new file mode 100755 index 0000000000000000000000000000000000000000..ce7f086fd2ed3a059694403447cc98682e881a90 GIT binary patch literal 601 zcmV-f0;c_mP)-b2*DzIciEdN;v=k00000000000000000000)qY990005x zNklI;_p|MEZLG_>D5E-%zM`N zQ;Oo>&S7z`s_VAxujBMsEL;MNXg`kAw7|^}oWRSS+*4FRtbAiBS7F-jetGIb|LB*0VU>RBiT`Em|ziHn`kRVm2OnaZ?H=z8+e zQ3fjvZj~w0>?rThv3?wE38*mC4z&1_GQ4rhDm2ViD2Bp5UQIL7U_+GtgXx8ui5))3 zLUod)?iM?PAwCv~i)7q_C5J;(n&*H=S9i)GU>y7)jPEqdOc?(9>G6FiwI%p+qJc}6 zzE)sqraf0+StW!G1-=MlO@Vdmul!mwo;bAKbm?&|Z*w?mO!5M5A*~UAgT2YW68vA@s z|2xto;s%Kf_7JzX*qTY8$E4JaCCH}bUR?~MY6D?!$CbTx9KvY2Ih*|e?czBd>pscp)lXO|&59NTY%N{dY>Q=CezM3iD?~-=4OtV&f^%MXKGWlGqmc-Kt&kQDMTb_Gn=uAg;Z@8zyi gBftKLX#ATP`3)Nj4;Rj4G6030r>mdKI;Vst0K7Y;V*mgE literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/282.png b/graphics/battle_anims/sprites/282.png new file mode 100755 index 0000000000000000000000000000000000000000..d89aab1ade845103dec64ea43910cc3f179ed13e GIT binary patch literal 401 zcmV;C0dD?@P)h%J|HUBxloo2{Hoi=0A?N7Q$0^lPmmA4Hu`Ly{3d3mkzDSPV z(=`2MU1EGGJ(8G8HS{epsum3{6}-*_$9ve-jX7)I1oWTlO7vEGAW8RxN~wm{LZn(W zxHjv zR@NLx$7Y})E}*vX{0*SoIZqeI5RHkg6CL?l6nI>BGkmXLel_R7qcyyXtA*P4YQL{< z(G+C~yL{xy_vl&E;~RFDH0-nUzW;jWxqAz)b^MX_7K`bscvz4&vCc35#SzE+fZN-; zc8Ie*6^vhf&i?^Zzp}MXk*0~5p!S;WZR!Q<+XRy}BmNvJ=-*?^)w`)|PjAaH6RxH1 z;zClFH8Km6nlB1nOXj%6nkAN8ws1kE^0RZpH_cV}C>nW1d* v3!&F77nYnh?R)>cm~in0NI zFn`R-P4mxNO6T*!Ie!WwK!3Wy9pHMlg-`(U4CD&uHO@eyodW?wwcbvfT+bOfWprPJ zur$7c{6oKHjiojnq8uZ>MfuDlw+(Q2U*TT1E{Di#Yj+RI(hby&zMLQW1=Q{il=H)l z|A6^~<$3HQkfGe+r8-ra4!4q-;>|p~n9PmoG*6xIvOF86E1qPK-%8cUzx-Li= zB!&V6h87K?87ILR{M-e^fP+ELz~GG9M=y{7deIAu6O9+p24jZ4fSR2^Y(p@EFA;{R zfYd|=eUl29+Y%y7I+<~%#~PGUQc4<)Qx}q*3rISo-vtby5GAw){7S~A401ge(&PE_ z75sQSlW{p0fj)`H)6;nvP<9$gk-*c7M&qk0aP$0=^K!QfY(#F&48?YPZ!4!jfu$#5)v02BU+SsV<+kI z#ui3#P4R0uxue5^;iQPg{KkWUM_Laaq2t0rVFrf7Jpz|be%JtZ Nho`Hb%Q~loCIE6LOa}k} literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/286.pal b/graphics/battle_anims/sprites/286.pal new file mode 100755 index 0000000000..a2703b853e --- /dev/null +++ b/graphics/battle_anims/sprites/286.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +230 238 255 +205 230 255 +180 222 255 +156 205 255 +131 197 255 +106 189 255 +90 164 230 +82 148 213 +74 123 189 +65 106 172 +57 90 156 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/287.pal b/graphics/battle_anims/sprites/287.pal new file mode 100755 index 0000000000..631948567f --- /dev/null +++ b/graphics/battle_anims/sprites/287.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 197 +255 255 255 +222 246 230 +189 246 205 +156 246 180 +123 238 156 +90 238 131 +57 238 115 +57 238 115 +65 205 90 +74 180 74 +82 148 57 +90 123 41 +106 98 24 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/sprites/effect.pal b/graphics/battle_anims/sprites/effect.pal new file mode 100755 index 0000000000..3dcf4cff6d --- /dev/null +++ b/graphics/battle_anims/sprites/effect.pal @@ -0,0 +1,27 @@ +JASC-PAL +0100 +24 +230 205 8 +230 172 41 +222 148 65 +222 115 90 +213 82 123 +213 57 148 +205 24 172 +205 0 205 +205 0 189 +205 0 164 +205 0 131 +205 0 106 +213 0 82 +213 0 49 +213 0 24 +222 0 0 +222 8 0 +222 41 0 +222 74 0 +222 98 0 +230 131 0 +230 156 0 +230 189 0 +238 222 0 diff --git a/graphics/battle_anims/sprites/substitute.png b/graphics/battle_anims/sprites/substitute.png new file mode 100755 index 0000000000000000000000000000000000000000..0b6dea85009d0d0c4bed59353d70e1f0df206460 GIT binary patch literal 446 zcmV;v0YUzWP)f!3yzJl$^uNxxJ2SgN)TzTp{s)GAA)JHYT!^pvfewC0IDVf8S|`=gf8y)dCTa&U zSAR40ZndJ2=^=OLoA()o%#_1`4A_42z+6CEiipNci+pMXg+$DhGI+@IY52?nkx&Gy z-6iavBUz>>wFG8sJ`0W(N|k_n<{ordFWb1%PVx(lAbK9i+lL0K8PEv$(JV z#Lfk}H;C)Funzf(&0E(W7?5o;8<=2o83YQkEJ|(r@CJIN?kRNB;zMg&lWH!UQlXbu oCbk~GlWeRz{4K+uty4#cAAwY9)xOno0000007*qoM6N<$g7Cn`SpWb4 literal 0 HcmV?d00001 From addfdfbcba14631791d08242860be99fda4fb62e Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sun, 24 Dec 2017 02:54:08 -0500 Subject: [PATCH 27/54] eighth wave of graphics.s dumps --- data/graphics.s | 279 +++++++++++++++--- graphics/battle_anims/backgrounds/11.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/11.png | Bin 0 -> 1714 bytes graphics/battle_anims/backgrounds/12.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/12.png | Bin 0 -> 2504 bytes graphics/battle_anims/backgrounds/13.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/14.bin | Bin 0 -> 2048 bytes graphics/battle_anims/masks/cure_bubbles.bin | Bin 0 -> 2048 bytes graphics/battle_anims/masks/cure_bubbles.png | Bin 0 -> 336 bytes graphics/battle_anims/masks/morning_sun.bin | Bin 0 -> 2048 bytes graphics/battle_anims/masks/morning_sun.png | Bin 0 -> 188 bytes graphics/battle_anims/masks/stat.png | Bin 0 -> 430 bytes graphics/battle_anims/masks/stat1.pal | 19 ++ graphics/battle_anims/masks/stat2.pal | 19 ++ graphics/battle_anims/masks/stat3.pal | 19 ++ graphics/battle_anims/masks/stat4.pal | 19 ++ graphics/battle_anims/masks/stat5.pal | 19 ++ graphics/battle_anims/masks/stat6.pal | 19 ++ graphics/battle_anims/masks/stat7.pal | 19 ++ graphics/battle_anims/masks/stat8.pal | 19 ++ .../battle_anims/masks/stat_tilemap_1.bin | Bin 0 -> 2048 bytes .../battle_anims/masks/stat_tilemap_2.bin | 1 + .../battle_anims/masks/unknown_C2EA50.bin | Bin 0 -> 2048 bytes .../battle_anims/masks/unknown_C2EA50.png | Bin 0 -> 175 bytes graphics/battle_anims/sprites/substitute.bin | Bin 0 -> 2048 bytes graphics/misc/confetti.png | Bin 0 -> 355 bytes graphics/unknown/unknown_C2F9E0.pal | 19 ++ graphics_file_rules.mk | 4 + 28 files changed, 417 insertions(+), 38 deletions(-) create mode 100755 graphics/battle_anims/backgrounds/11.bin create mode 100755 graphics/battle_anims/backgrounds/11.png create mode 100755 graphics/battle_anims/backgrounds/12.bin create mode 100755 graphics/battle_anims/backgrounds/12.png create mode 100755 graphics/battle_anims/backgrounds/13.bin create mode 100755 graphics/battle_anims/backgrounds/14.bin create mode 100755 graphics/battle_anims/masks/cure_bubbles.bin create mode 100755 graphics/battle_anims/masks/cure_bubbles.png create mode 100755 graphics/battle_anims/masks/morning_sun.bin create mode 100755 graphics/battle_anims/masks/morning_sun.png create mode 100755 graphics/battle_anims/masks/stat.png create mode 100755 graphics/battle_anims/masks/stat1.pal create mode 100755 graphics/battle_anims/masks/stat2.pal create mode 100755 graphics/battle_anims/masks/stat3.pal create mode 100755 graphics/battle_anims/masks/stat4.pal create mode 100755 graphics/battle_anims/masks/stat5.pal create mode 100755 graphics/battle_anims/masks/stat6.pal create mode 100755 graphics/battle_anims/masks/stat7.pal create mode 100755 graphics/battle_anims/masks/stat8.pal create mode 100755 graphics/battle_anims/masks/stat_tilemap_1.bin create mode 100755 graphics/battle_anims/masks/stat_tilemap_2.bin create mode 100755 graphics/battle_anims/masks/unknown_C2EA50.bin create mode 100755 graphics/battle_anims/masks/unknown_C2EA50.png create mode 100755 graphics/battle_anims/sprites/substitute.bin create mode 100755 graphics/misc/confetti.png create mode 100755 graphics/unknown/unknown_C2F9E0.pal diff --git a/data/graphics.s b/data/graphics.s index f3f308b45f..7028028d32 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -535,7 +535,10 @@ gBattleAnimSpritePalette_047:: .incbin "graphics/battle_anims/sprites/047.gbapal.lz" @ more unused windows + .align 2 .incbin "graphics/battle_interface/unused_window2.4bpp.lz" + + .align 2 .incbin "graphics/battle_interface/unused_window2bar.4bpp.lz" .align 2 @@ -2244,95 +2247,295 @@ gBattleAnimBackgroundImage_09:: @ 8D2A168 gBattleAnimBackgroundTilemap_10:: @ 8D2A6E8 .incbin "graphics/battle_anims/backgrounds/10.bin.lz" + .align 2 gUnknown_08C2A634:: @ 8C2A634 - .incbin "baserom.gba", 0xc2a634, 0xa0 + .incbin "graphics/battle_anims/masks/morning_sun.4bpp.lz" + .align 2 gUnknown_08C2A6D4:: @ 8C2A6D4 - .incbin "baserom.gba", 0xc2a6d4, 0x18 + .incbin "graphics/battle_anims/masks/morning_sun.gbapal.lz" + .align 2 gUnknown_08C2A6EC:: @ 8C2A6EC - .incbin "baserom.gba", 0xc2a6ec, 0x27d0 + .incbin "graphics/battle_anims/masks/morning_sun.bin.lz" + .align 2 +gBattleAnimBackgroundTilemap_12:: @ 8D2ABB4 + .incbin "graphics/battle_anims/backgrounds/12.bin.lz" + + .align 2 +gBattleAnimBackgroundTilemap_13:: @ 8D2AE7C + .incbin "graphics/battle_anims/backgrounds/13.bin.lz" + + .align 2 +gBattleAnimBackgroundTilemap_14:: @ 8D2B178 + .incbin "graphics/battle_anims/backgrounds/14.bin.lz" + + .align 2 +gBattleAnimBackgroundImage_12:: @ 8D2B408 + .incbin "graphics/battle_anims/backgrounds/12.4bpp.lz" + + .align 2 +gBattleAnimBackgroundPalette_12:: @ 8D2C170 + .incbin "graphics/battle_anims/backgrounds/12.gbapal.lz" + + .align 2 +gBattleAnimBackgroundImage_11:: @ 8D2C190 + .incbin "graphics/battle_anims/backgrounds/11.4bpp.lz" + + .align 2 +gBattleAnimBackgroundPalette_11:: @ 8D2CB2C + .incbin "graphics/battle_anims/backgrounds/11.gbapal.lz" + + .align 2 +gBattleAnimBackgroundTilemap_11:: @ 8D2CB54 + .incbin "graphics/battle_anims/backgrounds/11.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_239:: @ 8D2CE4C + .incbin "graphics/battle_anims/sprites/239.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_239:: @ 8D2CF30 + .incbin "graphics/battle_anims/sprites/239.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_143:: @ 8D2CF58 + .incbin "graphics/battle_anims/sprites/143.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_143:: @ 8D2D188 + .incbin "graphics/battle_anims/sprites/143.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_240:: @ 8D2D1A0 + .incbin "graphics/battle_anims/sprites/240.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_240:: @ 8D2D240 + .incbin "graphics/battle_anims/sprites/240.gbapal.lz" + + .align 2 gSubstituteDollPal:: @ 8C2CEBC - .incbin "baserom.gba", 0xc2cebc, 0x24 + .incbin "graphics/battle_anims/sprites/substitute.gbapal.lz" + .align 2 gSubstituteDollGfx:: @ 8C2CEE0 - .incbin "baserom.gba", 0xc2cee0, 0x240 + .incbin "graphics/battle_anims/sprites/substitute.4bpp.lz" + .align 2 gSubstituteDollTilemap:: @ 8C2D120 - .incbin "baserom.gba", 0xc2d120, 552 - + .incbin "graphics/battle_anims/sprites/substitute.bin.lz" + + .align 2 gUnknown_08C2D348:: @ 8C2D348 - .incbin "baserom.gba", 0xC2D348, 196 - + .incbin "graphics/battle_anims/sprites/241.4bpp.lz" + + .align 2 gUnknown_08C2D40C:: @ 8C2D40C - .incbin "baserom.gba", 0xC2D40C, 28 - + .incbin "graphics/battle_anims/sprites/241.gbapal.lz" + + .align 2 gContestConfetti_Gfx:: @ 8C2D428 - .incbin "baserom.gba", 0xC2D428, 288 - + .incbin "graphics/misc/confetti.4bpp.lz" + + .align 2 gContestConfetti_Pal:: @ 8C2D548 - .incbin "baserom.gba", 0xC2D548, 40 - + .incbin "graphics/misc/confetti.gbapal.lz" + + .align 2 gUnknown_08C2D570:: @ 8C2D570 - .incbin "baserom.gba", 0xC2D570, 316 - + .incbin "graphics/battle_anims/sprites/242.4bpp.lz" + + .align 2 gUnknown_08C2D6AC:: @ 8C2D6AC - .incbin "baserom.gba", 0xC2D6AC, 36 - + .incbin "graphics/battle_anims/sprites/242.gbapal.lz" + + .align 2 gUnknown_08C2D6D0:: @ 8C2D6D0 - .incbin "baserom.gba", 0xC2D6D0, 40 - + .incbin "graphics/battle_anims/sprites/243.4bpp.lz" + + .align 2 gUnknown_08C2D6F8:: @ 8C2D6F8 - .incbin "baserom.gba", 0xC2D6F8, 40 + .incbin "graphics/battle_anims/sprites/243.gbapal.lz" + .align 2 gUnknown_08C2D720:: @ 8C2D720 - .incbin "baserom.gba", 0xc2d720, 0x210 + .incbin "graphics/battle_anims/masks/stat.4bpp.lz" + .align 2 gUnknown_08C2D930:: @ 8C2D930 - .incbin "baserom.gba", 0xc2d930, 0x11c + .incbin "graphics/battle_anims/masks/stat_tilemap_1.bin.lz" + .align 2 gUnknown_08C2DA4C:: @ 8C2DA4C - .incbin "baserom.gba", 0xc2da4c, 0x11c + .incbin "graphics/battle_anims/masks/stat_tilemap_2.bin.lz" + .align 2 gUnknown_08C2DB68:: @ 8C2DB68 - .incbin "baserom.gba", 0xc2db68, 0x20 + .incbin "graphics/battle_anims/masks/stat1.gbapal.lz" + .align 2 gUnknown_08C2DB88:: @ 8C2DB88 - .incbin "baserom.gba", 0xc2db88, 0x20 + .incbin "graphics/battle_anims/masks/stat2.gbapal.lz" + .align 2 gUnknown_08C2DBA8:: @ 8C2DBA8 - .incbin "baserom.gba", 0xc2dba8, 0x20 + .incbin "graphics/battle_anims/masks/stat3.gbapal.lz" + .align 2 gUnknown_08C2DBC8:: @ 8C2DBC8 - .incbin "baserom.gba", 0xc2dbc8, 0x20 + .incbin "graphics/battle_anims/masks/stat4.gbapal.lz" + .align 2 gUnknown_08C2DBE8:: @ 8C2DBE8 - .incbin "baserom.gba", 0xc2dbe8, 0x20 + .incbin "graphics/battle_anims/masks/stat5.gbapal.lz" + .align 2 gUnknown_08C2DC08:: @ 8C2DC08 - .incbin "baserom.gba", 0xc2dc08, 0x20 + .incbin "graphics/battle_anims/masks/stat6.gbapal.lz" + .align 2 gUnknown_08C2DC28:: @ 8C2DC28 - .incbin "baserom.gba", 0xc2dc28, 0x20 + .incbin "graphics/battle_anims/masks/stat7.gbapal.lz" + .align 2 gUnknown_08C2DC48:: @ 8C2DC48 - .incbin "baserom.gba", 0xc2dc48, 0x20 + .incbin "graphics/battle_anims/masks/stat8.gbapal.lz" + .align 2 gUnknown_08C2DC68:: @ 8C2DC68 - .incbin "baserom.gba", 0xc2dc68, 0x13c + .incbin "graphics/battle_anims/masks/cure_bubbles.4bpp.lz" + .align 2 gUnknown_08C2DDA4:: @ 8C2DDA4 - .incbin "baserom.gba", 0xc2dda4, 0x20 + .incbin "graphics/battle_anims/masks/cure_bubbles.gbapal.lz" + .align 2 gUnknown_08C2DDC4:: @ 8C2DDC4 - .incbin "baserom.gba", 0xc2ddc4, 0xc8c + .incbin "graphics/battle_anims/masks/cure_bubbles.bin.lz" + .align 2 +gBattleAnimSpritePalette_245:: @ 8D2E28C + .incbin "graphics/battle_anims/sprites/245.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_245:: @ 8D2E2B4 + .incbin "graphics/battle_anims/sprites/245.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_246:: @ 8D2E458 + .incbin "graphics/battle_anims/sprites/246.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_244:: @ 8D2E900 + .incbin "graphics/battle_anims/sprites/244.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_244:: @ 8D2E9DC + .incbin "graphics/battle_anims/sprites/244.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_247:: @ 8D2E9F8 + .incbin "graphics/battle_anims/sprites/247.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_053:: @ 8D2EBDC + .incbin "graphics/battle_anims/sprites/053.4bpp.lz" + + .align 2 gUnknown_08C2EA50:: @ 8C2EA50 - .incbin "baserom.gba", 0xc2ea50, 0x4c + .incbin "graphics/battle_anims/masks/unknown_C2EA50.4bpp.lz" + .align 2 gUnknown_08C2EA9C:: @ 8C2EA9C - .incbin "baserom.gba", 0xc2ea9c, 0xf6c + .incbin "graphics/battle_anims/masks/unknown_C2EA50.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_248:: @ 8D2EF50 + .incbin "graphics/battle_anims/sprites/248.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_248:: @ 8D2EF68 + .incbin "graphics/battle_anims/sprites/248.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_249:: @ 8D2EF80 + .incbin "graphics/battle_anims/sprites/249.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_249:: @ 8D2EFD0 + .incbin "graphics/battle_anims/sprites/249.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_250:: @ 8D2EFF0 + .incbin "graphics/battle_anims/sprites/250.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_251:: @ 8D2F1E4 + .incbin "graphics/battle_anims/sprites/251.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_251:: @ 8D2F248 + .incbin "graphics/battle_anims/sprites/251.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_252:: @ 8D2F260 + .incbin "graphics/battle_anims/sprites/252.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_252:: @ 8D2F378 + .incbin "graphics/battle_anims/sprites/252.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_253:: @ 8D2F39C + .incbin "graphics/battle_anims/sprites/253.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_253:: @ 8D2F578 + .incbin "graphics/battle_anims/sprites/253.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_254:: @ 8D2F5A0 + .incbin "graphics/battle_anims/sprites/254.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_254:: @ 8D2F6D8 + .incbin "graphics/battle_anims/sprites/254.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_255:: @ 8D2F700 + .incbin "graphics/battle_anims/sprites/255.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_255:: @ 8D2F778 + .incbin "graphics/battle_anims/sprites/255.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_258:: @ 8D2F78C + .incbin "graphics/battle_anims/sprites/258.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_258:: @ 8D2F874 + .incbin "graphics/battle_anims/sprites/258.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_256:: @ 8D2F89C + .incbin "graphics/battle_anims/sprites/256.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_256:: @ 8D2FC28 + .incbin "graphics/battle_anims/sprites/256.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_257:: @ 8D2FC50 + .incbin "graphics/battle_anims/sprites/257.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_257:: @ 8D2FD6C + .incbin "graphics/battle_anims/sprites/257.gbapal.lz" + + .incbin "graphics/unknown/unknown_C2F9E0.gbapal.lz" @ likely a palette @ 8C2FA08 .include "data/graphics/pokemon/graphics.inc" diff --git a/graphics/battle_anims/backgrounds/11.bin b/graphics/battle_anims/backgrounds/11.bin new file mode 100755 index 0000000000000000000000000000000000000000..6aaaae228480dbb89f1960dd7b6c14f6b088fa90 GIT binary patch literal 2048 zcmeIu#aa+h00m(}N|2I9VWb>sk(LJOQjl&0q&r0F(S3xwaOEdwmjCWV5J?o#ydZ{H z;)o}Kmn4$JE0ReeBH*c{kyl*eBSVu0tyK^yrYO>N+_j__s9pzsi2Z7 zs;MF5wS1(GPt?;uBTY2ZLMxwXqn!>q33(UY^w3KmU+8CmL53J+gi*#AXM&JV@|AB) zG0k^om}QQ67FcA7WmZ@v?=PS|C)J@(q?7yBJBSx<*x5G|r{b-$^thd2Nn+&;ru-pnOt+Lu0@ts8$TVknYzBlAK=9*`|Z+vTkg{GQj ry06VJ(=4+MdAtd}G|?nqnQV#?MjBkn{O$H=p=E zb+08|7h@hvt?Ra~EAGBRwsoH8Qs%khYs8H?k5G{8{=Vz_9v_b;eIL_MCIVOp;BvWa zTNQ*!5P%#2av0B!0LJYT0syCY&IJfI$yEr}wN@CP`B``){1<}0m+h_>3lvb`2Qgn?m{b-puHLo*=>0KKgX zymtf^67et?f>as;GM@&x2zqfS3IGvQBY+S*BLIOEWJRGg1dM;0sNWq#2mqi0fdc>p zWdtEO&~(Q^_xhnr6ZKb%vJ&n7KVMB zV|vR_K*T|E1lcM;2=@K?6mwzD0gE75AppV4n}>%~i2!GA2%zd5RRKK_?C(*E>EpFI zGgU{hU!QU2)f4`K1#ln;Akj!C3vsAG@CS=If2IaeV5PY4+xCWMVxhj32!I{A8U}KX zuptl2hs*xuq*8qPXrxsZ!=_tKj~)9&e2f1~1PK+?!l0u13jusmLqJXy6@o)pYY|9g zc&Q81g#`gF0C6dVC+qBTp2pa!4iWkGrw2Z2LP9N#_MSz z1UN9NW1L&-P@S?WKAmIed$c|>yIuDEt2ZawVWXNh%blp&mqbBfrPey;*aw^feD*BR z_9rXc%1mERA`ls5NBku4#WT###1m+U`WCdUmz+thU&?Zu6twrUozrpHxDYI6q6DlX zp5p|5ks1=VU6#k3oB6EcjR_qM`JXbBQ3wQt4wjdp|=gm&dX zjchZ9zz$A2ZuAe#)n%(iL&4%j1?)SsMjq`Mf>hZ1Sq7?n79P#1IlTY}8x=7$&a))Lnr$R(R}J{6CNfnI|JbS?%p(HGX5+uGR#uD16k4;LRvj{m-)8hIBB` zIQf=kW~>2WSlER3zt9FVi&EVY?Rnpd_!uS=01=7oyt}4<>-Ovn-@bj@*YV7Vh>Q&Y zUOXnH+MI4tnB3jg>C&(O!+rq({hK%qaLrm;zKSIA9?TszA16F(C~_xQXUh*k@LoI~ zM-)6p!6HtV7;7<3kJXLrtowT>MZx3oU^|B<01*`ZURzk?ebvY;V@poFJV_wI3~>=r zvma~_DB}LR+DS)ZP%yB#Dd0rVu(P2%tJ59SKBu*Ax>~Q0A&l0k?&%iI1Di zgoA>0w2GSyS6kLN6~%$?PM5&^X5!IJ53+WmSxI^JZcuz%Tj$ZsKt$oXV2a>Ri?OP{ zS{pi=@gP2&CJ%#c3&A~865f@*HJt_`djY6BjAPp#cw^uaVoM3<(Qn>-B6mic14lo~ zZ6z2ySG2%{S$ki}XIoUv-dQ`FK@g@q+WHocURb;wRSTo_Lab`NcE!v!t#7j^S+`8S zO-BP{{fNcno!Ga-DBh1zct?t_(O6+)^N2ufTTeC--K@2x6jN*n2HT{3k?)SN#2v{e zt|4gSCg=MAkOOVhTqgZlBDUcaqK(_zP)@gLkZcsGF(*AynBYRbBtg#zwB7tZjH>LF zB^m_6=-1pmB!%{+m`<&*mBqQ zn~!g!@}LHTxx9?W^JCt&=X;u(q`L>qcURj(mn{rf;zp~a+lF`Qz9%uiV}E$g0crL9 z%l}KTsj=w7!~d37G5-GW@B<1=ei{Yg2jrK6UkZK_1-~Tx4b=OWhO~rhegFUf07*qo IM6N<$g6;AV1poj5 literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/12.bin b/graphics/battle_anims/backgrounds/12.bin new file mode 100755 index 0000000000000000000000000000000000000000..1c0ae690e1a4902330e49d82f63d5b33bb452947 GIT binary patch literal 2048 zcmeIuQ`6N^7>4ov4YKviwr$(CZQHhOYqD#y>m>6a`zy5nZ+vHJw-1}C`kbM1a^i|Bp7;_-D3QdHNGh4+Qb;M4)Y1f0kYCavLDEVmy$mwSB(p5C$|k!Ua>^yQ zI1%|g^2jTn{0b6s+i(RD5;dvfkBYp><=lUta8e$prT4DtD>rEs;i-|uqu7{p_=^ZwR%=gh( zKm83b&>({iG1M@_jWE(Eqr(P~`7y>CXS@j}nq;ymrkZBD8D^SgcGw^?KgV42%(uWo zi!8RpQp+s2!b+>G4tfvr+y2*BYn}Br*l3f@w%BT$?RMB{m)(ElL-yEfpZyLv=#ayX zIO>?=PB`gQ6#QvtoORB57hH77WmjBv&2=~2jDr92w_9$zZ& P;A2YofBbLY-)!JBxgEbm literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/12.png b/graphics/battle_anims/backgrounds/12.png new file mode 100755 index 0000000000000000000000000000000000000000..cd831bb8f7ef18c46d4aeb50c397260a9def87f0 GIT binary patch literal 2504 zcmV;(2{-nMP)|h{{R3000000000000000000000QBPy4000S7 zNklZ#hXFjE040ze zeHo~RF&TycR(yGVjMXAc;@EQdHUk)56bOMNNiN#ExCDjyHyL0lOCJo(In+UZOui3o8N00<|ktmb;MNMj-H77kh+QNnmU;QlOI zI=G_9GJ!~vBN^CN=Ape< z;ur3B6qfC?>Q#U^B>@Mp5C+A!00v=52o&}ZCS_@50Ewh|K`PC;$zEz1mHsQ7~j9TlmB>UxXNPaMvN^EqQ^koPd*$gNDF7 z78x=SSji!rtg-6VjvFh6w;=-?iWxlaep-5a`}Y~_0F9j^qGVkl;?V_*MX(Eb~PvZYcpeXgp^JAhU4@=9ATHJaN9| zstGzXYw?PVkx7)W4=@D*@!~UM@Zt}i_wzZEU4wx@I3>8~Fa%JDpeu8SBYscjpDn-(WVx)#z*r@uELrpzfH$ERnDEg* z0fCpT1Nh=iGDy25wFdw%FfjnOTkH&5fX$Hr-U0-wyuR}as_*J&0r=CqgfZl^ z7=CUeJVfw%017$XhC^=(9hk>@`@#E!o%a^tY65}kb?DTbW9(&jSeh>Le5eJS@o1^@3Oyt`*5Ib z>KM!sO>&r*x~-|h;rpS<1FH`JUtS8pR_u7NzVhMdK#@feA|0@*KuSJgEZHLf8<>@F z$h&Zyf%Ya0XUO9Io2st&2!xY&)fV1V8`Dp7s$t;MHiW_IX0p#D$-5M236?=wwCADJpvZ!=G8z<@WU#9Qn&SEvK?#xlrs3c_1`R?=25?33 zrI)PSA+W9Q$N*98#&QU>8U_?_U_7eVWsXBFcNx_6v{^}5=F6f11J#-OWU*(8H#Q(#vucA5QWOC? z(gOxV0Ey{Y2k?1OF(|$U&}*nln&P&;==<|E8zEN$QiOl<64PnqB6w#ZRkUWgEtK>_Yy?ogJ?LEb|PUu{&DI^~@$pEJn| zeH|zpQ9`r{s4wyW4tt9YUzl2+@ne{nUItF?Q2CzfIzTrV$yvOD* zRKUe43Dh5rk-#klM$prNFo=AHl+=a`I@Fh`SO9-LdJAUfdt^OU&{NhpQJ(=C2)GCP zN^4GxYW2li+Vg`PLFmnR=d3KG{*2RI21+;1CF>VFor)f|e{Nh-n#75JvNF;IOp^8x z#sL;LB>;Y->h3GTxTMkms2u?A9eU)VLMEk4Z9fRiqrE?cBe0V7X6-39hBVk7lJ&AqHH!#$Ve9!fHQzdj{<1+Y_X+4i=9?v z5PG-kxGWlzKk^AiZ;dehe}s-F|UjuVnXb?==!=wbS+~I|Jl7 zG>$QY`x{2%xhc!S0mLK_N%y|1L_0u8S~Cfl?8W&~Hfs)GmPoUq)s7O~1OuztKbOhH z>dFo=I)Fw4BMjsqLw7l~vzx*b^J6-5ylgn#o1xe#PSg?rf3~^h?;eK%J%Fi|U}TD8 zDL4X?EK526l49mm{&cne#Gc^jD2&5ci>v7oG-;W90p<0N({ zA=6GVR5ToM_uScciiIS0fS8FzO>*&|UTxQ#WBq3V+Q_Cj6P{y}(4N{^q<3KT0sKY< z9G|u`)!Fd?jsc4WFi4!&1Ul72`^V?XcC_sTiep5I@A*um z0-5c%Z2@E%8EC%-Ak+Pz187Ec-va;+1Awuq{6PSIqydK(fZs==u@3{UF+d&LhJO2r zCeTNJDpSputqvg40|z`p1l0qW1loOOIu=0L?<{R66g6MlMoEkh=Q+7<0b~a3AOEe* zbDud|#{b}JpZHb#xU%0H#~(cS!P4&qPJZuH>HxyO`PsPB*|_@teFpz40Dl8V*Hn?x SU}ggV00007 zS>?R%1Lajv(T6Ijtct3E{v#jzL^ajbP*W|n)lpYH^)>LRhJn73#+qpAGoNdwxfWV# zrL{J`&{n%Z-(CkDb<)|Fy6CE#?t18{m)`p58|eG#?<)fgG{|5>3^mMfBaAf4Xk!BX zSmS(cya^_nWU?uynr6BgX8OjgK>w}T=9p`q`4(7ck?$^$Yz=R3u7qNn?RMB{m)-W*YoGlN_{q->`o*td{NGMF9qE5_ z$l=f)k2va>KOFa`znpN=?VKcfm!MTz18OuKM3K*YBkx`#<>q R@ch&E1;l43M(Q_kZK1(P*gF+l~7VCrIk@uIptMQQKeK` z$b-tNNLN)g)zwf_Ew$BAS3UJ(`34$lq_HNNYNojsT56@WHrmGW?X=fHN1bHotc$L? z>8^*Kdd2d+_0d;9{S7eCAcGAt)G))1h~-BbWwbHI8fUx-CYofjDW;kh%TG7MOtZ{3 z$6WKwx4=S+EVd+;Uuv1~LPCMhQbI~?Y4cB=WTy)80S6p??bvN8}%WZcu@h`pd`cEzN z_rh;{;Gstzd*Z2Qo_pb+Gnu3$-$v-)dgr|lKKkUdFTVQbyB~h~6(#@nPx;28QW67* nsz=n4GYI+Jh%+g(L;og=K4p)n{4D%`vTwp?uj~o@#}oJs!vMhj literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/masks/cure_bubbles.bin b/graphics/battle_anims/masks/cure_bubbles.bin new file mode 100755 index 0000000000000000000000000000000000000000..fa2f572b637f8c674b13deafa1b82c53701929a0 GIT binary patch literal 2048 zcmbWyxdDSv0D#bM)Fj?3GrAQEP*G95!NiA|5xcPRt8TyQ_N#6`9kn`Yb=2ypt!}^S L_N#8c>h^m9n!O$$ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/masks/cure_bubbles.png b/graphics/battle_anims/masks/cure_bubbles.png new file mode 100755 index 0000000000000000000000000000000000000000..aa7f7b1f28aa4a6d61f4f39ef58b7dcdab75aff7 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ipS0MfW|Np)J|5yM2ZwW+a z-&xLiW|?)>(ef-%3KMW}oLB)Az3u7Z7@{#T_o5-+Ap;)P3vr4bD#oEx?=YlA7%?*! zD_xx%JE68##yvOc$gd|qZu_y@xJtyInZoJMw~Ot;bAIy^w!BYv|YnIq-J-+np#{dqlWex!|$`e@5 z?Apg9Cy~p{r2XAvu5RQllZp3~GhI8kiXM1r>*OMt!~DMCX83{5(??5o>bh|A_S|GX z^n&Zdr7H(3(mf}38D%nuO*p7^BH`DObrY_w-;;Iu*G^>bP0l+XkKIR%D( literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/masks/morning_sun.bin b/graphics/battle_anims/masks/morning_sun.bin new file mode 100755 index 0000000000000000000000000000000000000000..cfa7b80692463d6f9dfb2566526817fd79161f87 GIT binary patch literal 2048 zcmeH{OA5ds5JR3Vub9@0jFOrdTi WFk*lhI5GIYQ9TfYxytIn84L!0OA&7X literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/masks/morning_sun.png b/graphics/battle_anims/masks/morning_sun.png new file mode 100755 index 0000000000000000000000000000000000000000..c10b02782a97085bf3739bdb2b4f136e6e744809 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^3P7yE!VDyH*`KZgQU(D&A+A9B|NsB@zJ1&K?%kYc z?|@wV!06nn3ZM#iPZ!4!jfu$xVInMysqAbT2LuufnYcM-J`g!@#W?Fkfg#J1YmCdd zmoPgsEV;(Aj5~#;jloB?LzTmrC6r;A&xcfjTPB5Th50Wu zZhd*^wZe=!$JdEpnKAj<{ui-!l0Tj(#N_KQ&5Qaw=jo+$*-Qz~RU4Tvxy2SlyxZ5X zQ^&C)YQmGFg>H$x4)tCR}fCAHeR{l_dS>=54v-E_;HfB5TE~wh}aJ|!n!`6Zv z>D}kmUSzQ>o3FCRxOTpzt{d}=3jH+#4u=kZ=|5v*X!$vECD$x#m70vIXpP5DPE{n% zePGbox~gINnTaKgxl;M7v>u#4Ha}GK!@-BmOSxaX_;m3aYf0sgqN|*I*Qc-FuD5{g z5U-nf0QY0DDizbJ%-Z`ev*=IjVJalS9@qF<=Kdk2p{|UbJN8e(vUBJbk?gv3( N>*?y}vd$@?2>?g6v3&pl literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/masks/stat1.pal b/graphics/battle_anims/masks/stat1.pal new file mode 100755 index 0000000000..d4128a31fb --- /dev/null +++ b/graphics/battle_anims/masks/stat1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +222 255 205 +189 255 164 +156 255 123 +115 222 90 +74 197 57 +32 172 24 +0 148 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/masks/stat2.pal b/graphics/battle_anims/masks/stat2.pal new file mode 100755 index 0000000000..434b06e8d8 --- /dev/null +++ b/graphics/battle_anims/masks/stat2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +255 255 189 +255 255 123 +255 255 57 +255 189 41 +255 131 32 +255 65 16 +255 8 8 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/masks/stat3.pal b/graphics/battle_anims/masks/stat3.pal new file mode 100755 index 0000000000..784e5c640e --- /dev/null +++ b/graphics/battle_anims/masks/stat3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +238 222 246 +222 189 246 +205 156 246 +197 123 246 +197 123 246 +164 90 213 +131 57 180 +106 24 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/masks/stat4.pal b/graphics/battle_anims/masks/stat4.pal new file mode 100755 index 0000000000..2868f24792 --- /dev/null +++ b/graphics/battle_anims/masks/stat4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +189 255 255 +123 255 255 +57 255 255 +57 205 238 +57 156 230 +57 106 213 +65 57 205 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/masks/stat5.pal b/graphics/battle_anims/masks/stat5.pal new file mode 100755 index 0000000000..4991b1bd71 --- /dev/null +++ b/graphics/battle_anims/masks/stat5.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +230 230 230 +205 205 205 +180 180 189 +164 164 164 +139 139 148 +115 115 123 +98 98 106 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/masks/stat6.pal b/graphics/battle_anims/masks/stat6.pal new file mode 100755 index 0000000000..f647ff4b34 --- /dev/null +++ b/graphics/battle_anims/masks/stat6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 255 +205 246 230 +156 246 213 +106 246 197 +57 246 180 +32 213 148 +16 180 123 +0 148 98 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/masks/stat7.pal b/graphics/battle_anims/masks/stat7.pal new file mode 100755 index 0000000000..4935eba7c0 --- /dev/null +++ b/graphics/battle_anims/masks/stat7.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 8 8 +255 65 16 +255 131 32 +255 189 41 +255 255 57 +255 255 123 +255 255 189 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/masks/stat8.pal b/graphics/battle_anims/masks/stat8.pal new file mode 100755 index 0000000000..ab1758e374 --- /dev/null +++ b/graphics/battle_anims/masks/stat8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 148 0 +32 172 24 +74 197 57 +115 222 90 +156 255 123 +189 255 164 +222 255 205 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/masks/stat_tilemap_1.bin b/graphics/battle_anims/masks/stat_tilemap_1.bin new file mode 100755 index 0000000000000000000000000000000000000000..1b65e515afd048fd1acb4cef5e0d6d97a955baf2 GIT binary patch literal 2048 zcmbWyIRS%E0Km{sF#xTB0tPq?MmkdrWXhD`4JJO!jM#;hFF$JkZ0sD=o?P5K)K<4& zb^BGfUv>NGsMS%cqgF?4b^BGfUv>Lcx1Ww$9kn`Yb<|e3Uv>Lcw_kPp>8RCFtD{y& PZFT!qw_kPpRkz;@^1Nmr literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/masks/stat_tilemap_2.bin b/graphics/battle_anims/masks/stat_tilemap_2.bin new file mode 100755 index 0000000000..eb336cb748 --- /dev/null +++ b/graphics/battle_anims/masks/stat_tilemap_2.bin @@ -0,0 +1 @@ +$%&'$%&'$%&'$%&'$%&'$%&'$%&'$%&'45674567456745674567456745674567$%&'$%&'$%&'$%&'$%&'$%&'$%&'$%&'45674567456745674567456745674567$%&'$%&'$%&'$%&'$%&'$%&'$%&'$%&'45674567456745674567456745674567$%&'$%&'$%&'$%&'$%&'$%&'$%&'$%&'45674567456745674567456745674567$%&'$%&'$%&'$%&'$%&'$%&'$%&'$%&'45674567456745674567456745674567$%&'$%&'$%&'$%&'$%&'$%&'$%&'$%&'45674567456745674567456745674567$%&'$%&'$%&'$%&'$%&'$%&'$%&'$%&'45674567456745674567456745674567$%&'$%&'$%&'$%&'$%&'$%&'$%&'$%&'45674567456745674567456745674567 \ No newline at end of file diff --git a/graphics/battle_anims/masks/unknown_C2EA50.bin b/graphics/battle_anims/masks/unknown_C2EA50.bin new file mode 100755 index 0000000000000000000000000000000000000000..712c1ee12b953949132e06b147425b99e4442dbb GIT binary patch literal 2048 zcmZQz7}|ib0XHPZXG{&aAu;-y8*oEn^s_YJhQ#O}RWlj_qaiRF0;3@?8Uo~m006Z@ B9E|_~ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/masks/unknown_C2EA50.png b/graphics/battle_anims/masks/unknown_C2EA50.png new file mode 100755 index 0000000000000000000000000000000000000000..d0b372cbb81795ce5926f8b4e5f86df2b098e2dd GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<;!VDy> zB>@6%P7Ojwn|L@LPh|9SMP+Q~Dq7e9unISdVAoAV2Jy9UDJzf1=);T3K0RTrA BF`@tf literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/sprites/substitute.bin b/graphics/battle_anims/sprites/substitute.bin new file mode 100755 index 0000000000000000000000000000000000000000..d30c07d4ef1f4e153b5af07e41aa7135451b85d4 GIT binary patch literal 2048 zcmeH_zfQw25XNtTBxCyquyuun2Pmval`ahr;A=9XO1Wg~ViLA6B$nS3G4nYhRfkSU z{26l6&wuV5JKtv$%`rRhBMuy}Yk(-mzycFfW?tG%WJsAgKnYPd07>Y{3_ud*^(FKB zBeVG!zdzF`a_i_!;rCMq92v+@$dF0{LE|y(mTk4=N>lDtQm#c%GhcPfwyn5-Q#Q3T z(j)?(9`;1{poLb2R}P1u8>7=3&@@KzJMg@&=C0=zt~N; zf)tcbKpnzE7j@o;H4gJrpt(`^+G5YK-mGq-<~p#a_SVuJ$KpvQU(D&A+A9Bzoq3I28Jc~{u>7U z|Np=ESr!A3+Pn8?_qSrlvzGs>w;VNWcJ#^ussw`Vy%#fq)H_cX#}JK)rIYsZwixiZ z?QP&@OX#}NGtsCxz>tG=@`Brnf=-$OyXV+jPq402`p9yu@RN}6%^QntKDSq_yCCtG zw`E7>;su$!TbO^jvomvliV@E&TxYzYcm?~PkfYM(Lf+|nTm0R8yV9jTiJf6xVkG&- zJ+}O4h`iF;d+f~B`Ug!FRIin8oL;B!PWxWXanETo$4@#~7ks=s!Mt86*J9UNnMLzn zHm|RIF|ow8d-v}5tE9y{1SQw)lMMc?7}VyZXC!pyaP#|x0Uw@m_upc_B^G|a zsY@^MthjFTV^({dt45T}yM2-7dIHKubN0nQ?p!)SRQ`f2C$@ + +$(masksgfxdir)/unknown_C2EA50.4bpp: $(masksgfxdir)/unknown_C2EA50.png + $(GFX) $< $@ -num_tiles 14 From c436f01ce993b88ba6e85fb72ba876dffd2fa6a3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 24 Dec 2017 12:18:21 +0100 Subject: [PATCH 28/54] get rid of trainer card pointers --- data/graphics.s | 19 +++++++- data/trainer_card.s | 109 ++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 117 insertions(+), 11 deletions(-) diff --git a/data/graphics.s b/data/graphics.s index c0d0719e47..3e72761061 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -1295,10 +1295,25 @@ gUnknown_08DC0754:: @ 8DC0754 .incbin "baserom.gba", 0xdc0754, 0x440 gUnknown_08DC0B94:: @ 8DC0B94 - .incbin "baserom.gba", 0xdc0b94, 0xb60 + .incbin "baserom.gba", 0xdc0b94, 0x800 + +gUnknown_08DC1394:: @ 8DC1394 + .incbin "baserom.gba", 0xdc1394, 0x2E0 + +gUnknown_08DC1674:: @ 8DC1674 + .incbin "baserom.gba", 0xdc1674, 0x20 + +gUnknown_08DC1694:: @ 8DC1694 + .incbin "baserom.gba", 0xdc1694, 0x20 + +gUnknown_08DC16B4:: @ 8DC16B4 + .incbin "baserom.gba", 0xdc16b4, 0x20 + +gUnknown_08DC16D4:: @ 8DC16D4 + .incbin "baserom.gba", 0xdc16d4, 0x20 gUnknown_08DC16F4:: @ 8DC16F4 - .incbin "baserom.gba", 0xdc16f4, 0x62 + .incbin "baserom.gba", 0xdc16f4, 0x62 gUnknown_08DC1756:: @ 8DC1756 .incbin "baserom.gba", 0xdc1756, 0x60 diff --git a/data/trainer_card.s b/data/trainer_card.s index d97e3f2541..f81bfcad1d 100644 --- a/data/trainer_card.s +++ b/data/trainer_card.s @@ -3,6 +3,15 @@ .section .rodata .align 2, 0 + +.macro unk_trainer_card_struct text1, text2, short1, short2, short3, short4 + .4byte \text1 + .4byte \text2 + .2byte \short1 + .2byte \short2 + .2byte \short3 + .2byte \short4 +.endm gUnknown_0856F018:: @ 856F018 .incbin "baserom.gba", 0x56f018, 0x194 @@ -141,10 +150,25 @@ gUnknown_0856FB74:: @ 856FB74 .incbin "baserom.gba", 0x56fb74, 0x4 gUnknown_0856FB78:: @ 856FB78 - .incbin "baserom.gba", 0x56fb78, 0x44 + .incbin "baserom.gba", 0x56fb78, 0x4 + +gUnknown_0856FB7C:: @ 856FB7C + .incbin "baserom.gba", 0x56fb7c, 0x20 + +gUnknown_0856FB9C:: @ 856FB9C + .incbin "baserom.gba", 0x56fb9c, 0x20 gUnknown_0856FBBC:: @ 856FBBC - .incbin "baserom.gba", 0x56fbbc, 0x1244 + .incbin "baserom.gba", 0x56fbbc, 0xFEC + +gUnknown_08570BA8:: @ 8570BA8 + .incbin "baserom.gba", 0x570ba8, 0x9C + +gUnknown_08570C44:: @ 8570C44 + .incbin "baserom.gba", 0x570c44, 0xBC + +gUnknown_08570D00:: @ 8570D00 + .incbin "baserom.gba", 0x570d00, 0x100 gUnknown_08570E00:: @ 8570E00 .incbin "baserom.gba", 0x570e00, 0x260 @@ -186,22 +210,83 @@ gUnknown_08571454:: @ 8571454 .incbin "baserom.gba", 0x571454, 0x68 gUnknown_085714BC:: @ 85714BC - .incbin "baserom.gba", 0x5714bc, 0x18 + obj_tiles gUnknown_08570BA8, 0x100, 0 + obj_tiles gUnknown_08570D00, 0x400, 1 + obj_tiles gUnknown_08DC1394, 0x380, 2 gUnknown_085714D4:: @ 85714D4 - .incbin "baserom.gba", 0x5714d4, 0x10 + obj_tiles gUnknown_08570C44, 0x100, 4 + obj_tiles NULL, 0, 0 gUnknown_085714E4:: @ 85714E4 - .incbin "baserom.gba", 0x5714e4, 0xd0 + obj_pal gUnknown_08DC1674, 0 + obj_pal gUnknown_08DC1694, 1 + obj_pal gUnknown_08DC16B4, 2 + obj_pal gUnknown_08DC16D4, 3 + obj_pal gUnknown_0856FB7C, 4 + obj_pal gUnknown_0856FB9C, 5 + obj_pal NULL, 0 + obj_pal NULL, 0xFFFF + +gUnknown_08571524:: @ 8571524 + .incbin "baserom.gba", 0x571524, 0x8 + +gUnknown_0857152C:: @ 857152C + .incbin "baserom.gba", 0x57152c, 0x8 + +gUnknown_08571534:: @ 8571534 + .incbin "baserom.gba", 0x571534, 0x8 + +gUnknown_0857153C:: @ 857153C + .incbin "baserom.gba", 0x57153c, 0x8 + +gUnknown_08571544:: @ 8571544 + .incbin "baserom.gba", 0x571544, 0x8 + +gUnknown_0857154C:: @ 857154C + .incbin "baserom.gba", 0x57154c, 0x8 + +gUnknown_08571554:: @ 8571554 + .incbin "baserom.gba", 0x571554, 0x8 + +gUnknown_0857155C:: @ 857155C + .incbin "baserom.gba", 0x57155c, 0xC + +gUnknown_08571568:: @ 8571568 + .incbin "baserom.gba", 0x571568, 0xC + +gUnknown_08571574:: @ 8571574 + .4byte gUnknown_08571524 + .4byte gUnknown_0857152C + +gUnknown_0857157C:: @ 857157C + .4byte gUnknown_08571524 + .4byte gUnknown_0857152C + .4byte gUnknown_08571534 + .4byte gUnknown_0857153C + .4byte gUnknown_08571544 + .4byte gUnknown_0857154C + .4byte gUnknown_08571554 + +gUnknown_08571598:: @ 8571598 + .4byte gUnknown_0857155C + .4byte gUnknown_08571568 + +gUnknown_085715A0:: @ 85715A0 + .incbin "baserom.gba", 0x5715a0, 0x10 + +gUnknown_085715B0:: @ 85715B0 + .4byte gUnknown_085715A0 gUnknown_085715B4:: @ 85715B4 - .incbin "baserom.gba", 0x5715b4, 0x30 + spr_template 0, 0, gUnknown_0852490C, gUnknown_08571574, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 1, 1, gUnknown_08524934, gUnknown_08571598, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085715E4:: @ 85715E4 - .incbin "baserom.gba", 0x5715e4, 0x18 + spr_template 2, 2, gUnknown_0852490C, gUnknown_0857157C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085715FC:: @ 85715FC - .incbin "baserom.gba", 0x5715fc, 0x18 + spr_template 4, 4, gUnknown_0852490C, gUnknown_08571574, NULL, gDummySpriteAffineAnimTable, nullsub_39 gUnknown_08571614:: @ 8571614 .4byte gUnknown_085EDA96 @@ -221,4 +306,10 @@ gUnknown_08571614:: @ 8571614 .4byte gUnknown_085ED931 gUnknown_08571650:: @ 8571650 - .incbin "baserom.gba", 0x571650, 0x70 + unk_trainer_card_struct gUnknown_085EDAB1, gUnknown_085EDB0F, 0x59, 0x28, 1, 0 + unk_trainer_card_struct gUnknown_085EDABE, gUnknown_085EDB4E, 0x21, 0x2A, 1, 0 + unk_trainer_card_struct gUnknown_085EDACA, gUnknown_085EDB8B, 0x78, 0x56, 0, 0 + unk_trainer_card_struct gUnknown_085EDAD8, gUnknown_085EDBC2, 0x72, 0x3B, 0, 0 + unk_trainer_card_struct gUnknown_085EDAE5, gUnknown_085EDC00, 0x19, 0x43, 0, 0 + unk_trainer_card_struct gUnknown_085EDAF4, gUnknown_085EDC45, 0x39, 0x39, 1, 0 + unk_trainer_card_struct gUnknown_085EDB00, gUnknown_085EDC84, 0x86, 0x29, 1, 0 From ee4185865df1e0b567064b4b2572a1d01455b86b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 24 Dec 2017 18:40:24 +0100 Subject: [PATCH 29/54] more data dumped --- data/graphics.s | 8 +- data/pokemon_summary_screen.s | 10 +- data/pokenav.s | 1113 ++++++++++++++++++++++++++++++++- 3 files changed, 1111 insertions(+), 20 deletions(-) diff --git a/data/graphics.s b/data/graphics.s index 3e72761061..b2e4e6b341 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -839,7 +839,13 @@ gUnknown_08D971B0:: @ 8D971B0 .incbin "baserom.gba", 0xd971b0, 0x9D4 gUnknown_08D97B84:: @ 8D97B84 - .incbin "baserom.gba", 0xd97b84, 0x188 + .incbin "baserom.gba", 0xd97b84, 0x68 + +gUnknown_08D97BEC:: @ 8D97BEC + .incbin "baserom.gba", 0xd97bec, 0x108 + +gUnknown_08D97CF4:: @ 8D97CF4 + .incbin "baserom.gba", 0xd97cf4, 0x18 gUnknown_08D97D0C:: @ 8D97D0C .incbin "baserom.gba", 0xd97d0c, 0x830 diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s index fc1c790960..d3cb51fcaa 100644 --- a/data/pokemon_summary_screen.s +++ b/data/pokemon_summary_screen.s @@ -121,7 +121,12 @@ gUnknown_0861F2C0:: @ 861F2C0 .incbin "baserom.gba", 0x61f2c0, 0x18 gUnknown_0861F2D8:: @ 861F2D8 - .incbin "baserom.gba", 0x61f2d8, 0x30 + .4byte gMenuText_Use, sub_81C61E0 + .4byte gMenuText_Toss, sub_81C62C4 + .4byte gMenuText_Give, sub_81C6648 + .4byte gText_Cancel2, sub_81C6258 + .4byte gMenuText_Use, sub_81C679C + .4byte gText_EmptyString2, NULL gUnknown_0861F308:: @ 861F308 .incbin "baserom.gba", 0x61f308, 0x4 @@ -136,7 +141,8 @@ gUnknown_0861F310:: @ 861F310 .incbin "baserom.gba", 0x61f310, 0x4 gUnknown_0861F314:: @ 861F314 - .incbin "baserom.gba", 0x61f314, 0x8 + .4byte sub_81C654C + .4byte sub_81C63D0 gUnknown_0861F31C:: @ 861F31C .incbin "baserom.gba", 0x61f31c, 0xc diff --git a/data/pokenav.s b/data/pokenav.s index 3f07eb0d50..ab6d4f0d25 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -2,7 +2,7 @@ .include "constants/constants.inc" .section .rodata - + gUnknown_0861F3EC:: @ 861F3EC .4byte sub_81C9298 .4byte sub_81C941C @@ -283,7 +283,20 @@ gUnknown_086202CC:: @ 86202CC .incbin "baserom.gba", 0x6202cc, 0x8 gUnknown_086202D4:: @ 86202D4 - .incbin "baserom.gba", 0x6202d4, 0x38 + .4byte gUnknown_085EBCC5 + .4byte gUnknown_085EBCE8 + .4byte gUnknown_085EBD01 + .4byte gUnknown_085EBD1C + .4byte gUnknown_085EBD34 + .4byte gUnknown_085EBD83 + .4byte gUnknown_085EBDA2 + .4byte gUnknown_085EBDBF + .4byte gUnknown_085EBDDB + .4byte gUnknown_085EBDEE + .4byte gUnknown_085EBE06 + .4byte gUnknown_085EBE19 + .4byte gUnknown_085EBE2D + .4byte gUnknown_085EBE41 gUnknown_0862030C:: @ 862030C .incbin "baserom.gba", 0x62030c, 0x3 @@ -298,10 +311,1026 @@ gUnknown_0862036C:: @ 862036C .incbin "baserom.gba", 0x62036c, 0x18 gUnknown_08620384:: @ 8620384 - .incbin "baserom.gba", 0x620384, 0x1ca4 + .incbin "baserom.gba", 0x620384, 0xC + +gUnknown_08620390:: @ 8620390 + .string "Becalm fighting emotions.$" +gUnknown_086203AA:: @ 86203AA + .string "Fragrant GRASS POKéMON.$" + +gUnknown_086203C2:: @ 86203C2 + .string "Soothing aromas make the$" + +gUnknown_086203DB:: @ 86203DB + .string "body and mind healthy.$" + +gUnknown_086203F2:: @ 86203F2 + .string "I’m not very good at this.$" + +gUnknown_0862040D:: @ 862040D + .string "Ruin-exploration partners.$" + +gUnknown_08620428:: @ 8620428 + .string "I am searching for undersea$" + +gUnknown_08620444:: @ 8620444 + .string "ruins and relics.$" + +gUnknown_08620456:: @ 8620456 + .string "Overwhelm with power!$" + +gUnknown_0862046C:: @ 862046C + .string "Craggy ROCK POKéMON.$" + +gUnknown_08620481:: @ 8620481 + .string "In search of ancient lore,$" + +gUnknown_0862049C:: @ 862049C + .string "I travel the world.$" + +gUnknown_086204B0:: @ 86204B0 + .string "I’m going to try hard!$" + +gUnknown_086204C7:: @ 86204C7 + .string "Good swimmer POKéMON.$" + +gUnknown_086204DD:: @ 86204DD + .string "I wish I could swim without$" + +gUnknown_086204F9:: @ 86204F9 + .string "using an inner tube.$" + +gUnknown_0862050E:: @ 862050E + .string "I don’t know. I’ll try hard.$" + +gUnknown_0862052B:: @ 862052B + .string "WATER POKéMON are buddies.$" + +gUnknown_08620546:: @ 8620546 + .string "It’s not like I can’t swim.$" + +gUnknown_08620562:: @ 8620562 + .string "I just like my inner tube.$" + +gUnknown_0862057D:: @ 862057D + .string "We split our duties.$" + +gUnknown_08620592:: @ 8620592 + .string "We like friendly POKéMON.$" + +gUnknown_086205AC:: @ 86205AC + .string "We enjoy POKéMON together$" + +gUnknown_086205C6:: @ 86205C6 + .string "as sister and brother.$" + +gUnknown_086205DD:: @ 86205DD + .string "I finish with power moves!$" + +gUnknown_086205F8:: @ 86205F8 + .string "A mix of different types.$" + +gUnknown_08620612:: @ 8620612 + .string "I aim to become the ultimate$" + +gUnknown_0862062F:: @ 862062F + .string "TRAINER!$" + +gUnknown_08620638:: @ 8620638 + .string "Exploit the foe’s weakness.$" + +gUnknown_08620654:: @ 8620654 + .string "Balance is crucial.$" + +gUnknown_08620668:: @ 8620668 + .string "My goal is to become the$" + +gUnknown_08620681:: @ 8620681 + .string "POKéMON CHAMPION.$" + +gUnknown_08620693:: @ 8620693 + .string "Upset the opponent.$" + +gUnknown_086206A7:: @ 86206A7 + .string "Type doesn’t matter.$" + +gUnknown_086206BC:: @ 86206BC + .string "I’m a top student at the$" + +gUnknown_086206D5:: @ 86206D5 + .string "TRAINER’S SCHOOL.$" + +gUnknown_086206E7:: @ 86206E7 + .string "Slow, steady suffering.$" + +gUnknown_086206FF:: @ 86206FF + .string "Scary to meet at night.$" + +gUnknown_08620717:: @ 8620717 + .string "I see things that others$" + +gUnknown_08620730:: @ 8620730 + .string "can’t see...$" + +gUnknown_0862073D:: @ 862073D + .string "Anything to win.$" + +gUnknown_0862074E:: @ 862074E + .string "Gorgeous type!$" + +gUnknown_0862075D:: @ 862075D + .string "I have a pool specially for$" + +gUnknown_08620779:: @ 8620779 + .string "my POKéMON at home.$" + +gUnknown_0862078D:: @ 862078D + .string "You’ll fall under my spell!$" + +gUnknown_086207A9:: @ 86207A9 + .string "Mature WATER type.$" + +gUnknown_086207BC:: @ 86207BC + .string "I dream of cruising around$" + +gUnknown_086207D7:: @ 86207D7 + .string "the world on a luxury liner.$" + +gUnknown_086207F4:: @ 86207F4 + .string "I’ll lead you astray.$" + +gUnknown_0862080A:: @ 862080A + .string "Cute, of course.$" + +gUnknown_0862081B:: @ 862081B + .string "I love the SAFARI ZONE.$" + +gUnknown_08620833:: @ 8620833 + .string "I seem to end up there.$" + +gUnknown_0862084B:: @ 862084B + .string "Strategy? Who needs it?$" + +gUnknown_08620863:: @ 8620863 + .string "I spent big money on it!$" + +gUnknown_0862087C:: @ 862087C + .string "I, being rich, sleep in a$" + +gUnknown_08620896:: @ 8620896 + .string "custom POKéMON bed.$" + +gUnknown_086208AA:: @ 86208AA + .string "Wrestle down with power.$" + +gUnknown_086208C3:: @ 86208C3 + .string "Took all night to catch.$" + +gUnknown_086208DC:: @ 86208DC + .string "Big, burly, and buff$" + +gUnknown_086208F1:: @ 86208F1 + .string "POKéMON are the best...$" + +gUnknown_08620909:: @ 8620909 + .string "Ram at full speed!$" + +gUnknown_0862091C:: @ 862091C + .string "Funky WATER type!$" + +gUnknown_0862092E:: @ 862092E + .string "If I can’t be out swimming,$" + +gUnknown_0862094A:: @ 862094A + .string "I’ll be pumping weights.$" + +gUnknown_08620963:: @ 8620963 + .string "Grand slam pummeling!$" + +gUnknown_08620979:: @ 8620979 + .string "FIGHTING type.$" + +gUnknown_08620988:: @ 8620988 + .string "Not to brag, but I can bust$" + +gUnknown_086209A4:: @ 86209A4 + .string "ten roof tiles!$" + +gUnknown_086209B4:: @ 86209B4 + .string "Witness karate power!$" + +gUnknown_086209CA:: @ 86209CA + .string "My partners in training!$" + +gUnknown_086209E3:: @ 86209E3 + .string "Let us discuss matters of$" + +gUnknown_086209FD:: @ 86209FD + .string "the world with bare fists!$" + +gUnknown_08620A18:: @ 8620A18 + .string "Rock to stunning sounds!$" + +gUnknown_08620A31:: @ 8620A31 + .string "Electric-and-sound combo!$" + +gUnknown_08620A4B:: @ 8620A4B + .string "My compositions will shock$" + +gUnknown_08620A66:: @ 8620A66 + .string "you and stun you!$" + +gUnknown_08620A78:: @ 8620A78 + .string "I’ll electrify you!$" + +gUnknown_08620A8C:: @ 8620A8C + .string "They’re ELECTRIC!$" + +gUnknown_08620A9E:: @ 8620A9E + .string "I want to make people cry$" + +gUnknown_08620AB8:: @ 8620AB8 + .string "with songs from my heart.$" + +gUnknown_08620AD2:: @ 8620AD2 + .string "Burn it all down!$" + +gUnknown_08620AE4:: @ 8620AE4 + .string "Burn-inducing POKéMON.$" + +gUnknown_08620AFB:: @ 8620AFB + .string "When you light a campfire,$" + +gUnknown_08620B16:: @ 8620B16 + .string "be sure there’s some water.$" + +gUnknown_08620B32:: @ 8620B32 + .string "Hang in and be tenacious!$" + +gUnknown_08620B4C:: @ 8620B4C + .string "I’ll raise any POKéMON.$" + +gUnknown_08620B64:: @ 8620B64 + .string "POKéMON raised in the wild$" + +gUnknown_08620B7F:: @ 8620B7F + .string "grow strong!$" + +gUnknown_08620B8C:: @ 8620B8C + .string "Our love lets us prevail.$" + +gUnknown_08620BA6:: @ 8620BA6 + .string "We’ve had them for years.$" + +gUnknown_08620BC0:: @ 8620BC0 + .string "Married 50 years, we’ve$" + +gUnknown_08620BD8:: @ 8620BD8 + .string "devotedly raised POKéMON.$" + +gUnknown_08620BF2:: @ 8620BF2 + .string "Attack in waves!$" + +gUnknown_08620C03:: @ 8620C03 + .string "BUG POKéMON are cool.$" + +gUnknown_08620C19:: @ 8620C19 + .string "I go into the forest every$" + +gUnknown_08620C34:: @ 8620C34 + .string "day to catch BUG POKéMON.$" + +gUnknown_08620C4E:: @ 8620C4E + .string "Daze and confuse!$" + +gUnknown_08620C60:: @ 8620C60 + .string "Ones with weird powers.$" + +gUnknown_08620C78:: @ 8620C78 + .string "I can see through exactly$" + +gUnknown_08620C92:: @ 8620C92 + .string "what you’re thinking!$" + +gUnknown_08620CA8:: @ 8620CA8 + .string "Battle at full power.$" + +gUnknown_08620CBE:: @ 8620CBE + .string "POKéMON of many mysteries.$" + +gUnknown_08620CD9:: @ 8620CD9 + .string "When we spoke, I was really$" + +gUnknown_08620CF5:: @ 8620CF5 + .string "using telepathy.$" + +gUnknown_08620D06:: @ 8620D06 + .string "Calm and collected.$" + +gUnknown_08620D1A:: @ 8620D1A + .string "POKéMON of distinction.$" + +gUnknown_08620D32:: @ 8620D32 + .string "We enjoy a spot of tea$" + +gUnknown_08620D49:: @ 8620D49 + .string "every day. It’s imported.$" + +gUnknown_08620D63:: @ 8620D63 + .string "I use my head to battle.$" + +gUnknown_08620D7C:: @ 8620D7C + .string "I love any kind of POKéMON!$" + +gUnknown_08620D98:: @ 8620D98 + .string "My daddy gives me spending$" + +gUnknown_08620DB3:: @ 8620DB3 + .string "money if I ace a test.$" + +gUnknown_08620DCA:: @ 8620DCA + .string "My knowledge rules!$" + +gUnknown_08620DDE:: @ 8620DDE + .string "Any smart POKéMON!$" + +gUnknown_08620DF1:: @ 8620DF1 + .string "I want to be a POKéMON$" + +gUnknown_08620E08:: @ 8620E08 + .string "researcher in the future.$" + +gUnknown_08620E22:: @ 8620E22 + .string "We talk it over first.$" + +gUnknown_08620E39:: @ 8620E39 + .string "POKéMON that we both like.$" + +gUnknown_08620E54:: @ 8620E54 + .string "We’re senior and junior$" + +gUnknown_08620E6C:: @ 8620E6C + .string "students into POKéMON!$" + +gUnknown_08620E83:: @ 8620E83 + .string "Go for it, my dears!$" + +gUnknown_08620E98:: @ 8620E98 + .string "I have no likes or dislikes.$" + +gUnknown_08620EB5:: @ 8620EB5 + .string "While out shopping for$" + +gUnknown_08620ECC:: @ 8620ECC + .string "supper, I battle too.$" + +gUnknown_08620EE2:: @ 8620EE2 + .string "I battle with love!$" + +gUnknown_08620EF6:: @ 8620EF6 + .string "A POKéMON raised with love!$" + +gUnknown_08620F12:: @ 8620F12 + .string "It’s important to build$" + +gUnknown_08620F2A:: @ 8620F2A + .string "trust with your POKéMON.$" + +gUnknown_08620F43:: @ 8620F43 + .string "I see through your moves!$" + +gUnknown_08620F5D:: @ 8620F5D + .string "The essence of FIGHTING.$" + +gUnknown_08620F76:: @ 8620F76 + .string "I’m not ready to give way$" + +gUnknown_08620F90:: @ 8620F90 + .string "to the young yet!$" + +gUnknown_08620FA2:: @ 8620FA2 + .string "Attack while defending.$" + +gUnknown_08620FBA:: @ 8620FBA + .string "The FIGHTING type.$" + +gUnknown_08620FCD:: @ 8620FCD + .string "Being old, I have my own$" + +gUnknown_08620FE6:: @ 8620FE6 + .string "style of battling.$" + +gUnknown_08620FF9:: @ 8620FF9 + .string "I do what I can.$" + +gUnknown_0862100A:: @ 862100A + .string "I use different types.$" + +gUnknown_08621021:: @ 8621021 + .string "I’m going to keep working$" + +gUnknown_0862103B:: @ 862103B + .string "until I beat a GYM LEADER.$" + +gUnknown_08621056:: @ 8621056 + .string "I battle patiently.$" + +gUnknown_0862106A:: @ 862106A + .string "WATER POKéMON to battle!$" + +gUnknown_08621083:: @ 8621083 + .string "I’m the world’s only guy to$" + +gUnknown_0862109F:: @ 862109F + .string "catch a huge POKéMON!$" + +gUnknown_086210B5:: @ 86210B5 + .string "Exploit the environment!$" + +gUnknown_086210CE:: @ 86210CE + .string "All hail the WATER type!$" + +gUnknown_086210E7:: @ 86210E7 + .string "I won’t be beaten by some$" + +gUnknown_08621101:: @ 8621101 + .string "beach bum SWIMMER!$" + +gUnknown_08621114:: @ 8621114 + .string "Speed above all!$" + +gUnknown_08621125:: @ 8621125 + .string "I use a speedy POKéMON.$" + +gUnknown_0862113D:: @ 862113D + .string "A marathon is a challenge$" + +gUnknown_08621157:: @ 8621157 + .string "against your own self.$" + +gUnknown_0862116E:: @ 862116E + .string "Defense is crucial.$" + +gUnknown_08621182:: @ 8621182 + .string "My POKéMON is solid.$" + +gUnknown_08621197:: @ 8621197 + .string "I started this for dieting,$" + +gUnknown_086211B3:: @ 86211B3 + .string "but I got right into it.$" + +gUnknown_086211CC:: @ 86211CC + .string "Strike before stricken!$" + +gUnknown_086211E4:: @ 86211E4 + .string "A fast-running POKéMON!$" + +gUnknown_086211FC:: @ 86211FC + .string "If you ran and ran, you’d$" + +gUnknown_08621216:: @ 8621216 + .string "become one with the wind.$" + +gUnknown_08621230:: @ 8621230 + .string "All-out offensive!$" + +gUnknown_08621243:: @ 8621243 + .string "WATER POKéMON rule!$" + +gUnknown_08621257:: @ 8621257 + .string "I must swim over 6 miles$" + +gUnknown_08621270:: @ 8621270 + .string "every day.$" + +gUnknown_0862127B:: @ 862127B + .string "Push and push again!$" + +gUnknown_08621290:: @ 8621290 + .string "The strength of STEEL.$" + +gUnknown_086212A7:: @ 86212A7 + .string "If you’re sweating, get$" + +gUnknown_086212BF:: @ 86212BF + .string "fluids into you regularly.$" + +gUnknown_086212DA:: @ 86212DA + .string "Draw the power of WATER.$" + +gUnknown_086212F3:: @ 86212F3 + .string "Toughened WATER POKéMON.$" + +gUnknown_0862130C:: @ 862130C + .string "Training POKéMON is good,$" + +gUnknown_08621326:: @ 8621326 + .string "but don’t neglect yourself.$" + +gUnknown_08621342:: @ 8621342 + .string "It’s about POKéMON power!$" + +gUnknown_0862135C:: @ 862135C + .string "See the power of DRAGONS!$" + +gUnknown_08621376:: @ 8621376 + .string "I’ll become legendary as the$" + +gUnknown_08621393:: @ 8621393 + .string "strongest one day!$" + +gUnknown_086213A6:: @ 86213A6 + .string "I’ll show you my technique!$" + +gUnknown_086213C2:: @ 86213C2 + .string "Elegantly wheeling BIRDS.$" + +gUnknown_086213DC:: @ 86213DC + .string "My BIRD POKéMON, deliver my$" + +gUnknown_086213F8:: @ 86213F8 + .string "love to that girl!$" + +gUnknown_0862140B:: @ 862140B + .string "You’ll suffer from poison!$" + +gUnknown_08621426:: @ 8621426 + .string "Poisonous POKéMON.$" + +gUnknown_08621439:: @ 8621439 + .string "I undertake training so$" + +gUnknown_08621451:: @ 8621451 + .string "that I may become a ninja.$" + +gUnknown_0862146C:: @ 862146C + .string "The first strike wins!$" + +gUnknown_08621483:: @ 8621483 + .string "Speedy FIGHTING type.$" + +gUnknown_08621499:: @ 8621499 + .string "If my POKéMON lose,$" + +gUnknown_086214AD:: @ 86214AD + .string "I’ll carry on the fight!$" + +gUnknown_086214C6:: @ 86214C6 + .string "Go, go, my POKéMON!$" + +gUnknown_086214DA:: @ 86214DA + .string "I’ll raise anything.$" + +gUnknown_086214EF:: @ 86214EF + .string "UV rays are your skin’s$" + +gUnknown_08621507:: @ 8621507 + .string "enemy. Get protected.$" + +gUnknown_0862151D:: @ 862151D + .string "No mercy!$" + +gUnknown_08621527:: @ 8621527 + .string "Cute WATER POKéMON.$" + +gUnknown_0862153B:: @ 862153B + .string "I have too many fans.$" + +gUnknown_08621551:: @ 8621551 + .string "I was interviewed on TV.$" + +gUnknown_0862156A:: @ 862156A + .string "I think about this & that.$" + +gUnknown_08621585:: @ 8621585 + .string "I like all POKéMON.$" + +gUnknown_08621599:: @ 8621599 + .string "What lies beyond that$" + +gUnknown_086215AF:: @ 86215AF + .string "yonder hill?$" + +gUnknown_086215BC:: @ 86215BC + .string "We battle together!$" + +gUnknown_086215D0:: @ 86215D0 + .string "We train together!$" + +gUnknown_086215E3:: @ 86215E3 + .string "We like the same POKéMON,$" + +gUnknown_086215FD:: @ 86215FD + .string "but different desserts.$" + +gUnknown_08621615:: @ 8621615 + .string "I force things with power!$" + +gUnknown_08621630:: @ 8621630 + .string "WATER and FIGHTING types.$" + +gUnknown_0862164A:: @ 862164A + .string "Seamen are rough spirits!$" + +gUnknown_08621664:: @ 8621664 + .string "Any complaints?$" + +gUnknown_08621674:: @ 8621674 + .string "Up for a fight anytime!$" + +gUnknown_0862168C:: @ 862168C + .string "WATER POKéMON are my faves!$" + +gUnknown_086216A8:: @ 86216A8 + .string "If you want to shout loud,$" + +gUnknown_086216C3:: @ 86216C3 + .string "suck in air with your belly!$" + +gUnknown_086216E0:: @ 86216E0 + .string "Protect POKéMON from harm.$" + +gUnknown_086216FB:: @ 86216FB + .string "I love rare POKéMON.$" + +gUnknown_08621710:: @ 8621710 + .string "I want to collect all the$" + +gUnknown_0862172A:: @ 862172A + .string "world’s rare POKéMON.$" + +gUnknown_08621740:: @ 8621740 + .string "I count on power.$" + +gUnknown_08621752:: @ 8621752 + .string "POKéMON are my children.$" + +gUnknown_0862176B:: @ 862176B + .string "It takes knowledge and$" + +gUnknown_08621782:: @ 8621782 + .string "love to raise POKéMON.$" + +gUnknown_08621799:: @ 8621799 + .string "Full-on attack!$" + +gUnknown_086217A9:: @ 86217A9 + .string "Anything. I’ll raise it.$" + +gUnknown_086217C2:: @ 86217C2 + .string "I give them {POKEBLOCK}S for$" + +gUnknown_086217D9:: @ 86217D9 + .string "going after CONTEST titles.$" + +gUnknown_086217F5:: @ 86217F5 + .string "I raise POKéMON with care.$" + +gUnknown_08621810:: @ 8621810 + .string "Fun-to-raise POKéMON.$" + +gUnknown_08621826:: @ 8621826 + .string "Treat every POKéMON you$" + +gUnknown_0862183E:: @ 862183E + .string "meet with respect.$" + +gUnknown_08621851:: @ 8621851 + .string "I believe in my POKéMON.$" + +gUnknown_0862186A:: @ 862186A + .string "I like strong POKéMON.$" + +gUnknown_08621881:: @ 8621881 + .string "I’m training for rescue$" + +gUnknown_08621899:: @ 8621899 + .string "work with my POKéMON.$" + +gUnknown_086218AF:: @ 86218AF + .string "Attack in waves!$" + +gUnknown_086218C0:: @ 86218C0 + .string "I use different types.$" + +gUnknown_086218D7:: @ 86218D7 + .string "Those who destroy nature$" + +gUnknown_086218F0:: @ 86218F0 + .string "must never be forgiven!$" + +gUnknown_08621908:: @ 8621908 + .string "I’ll show you some guts!$" + +gUnknown_08621921:: @ 8621921 + .string "Cute POKéMON are my faves!$" + +gUnknown_0862193C:: @ 862193C + .string "After a battle, I always$" + +gUnknown_08621955:: @ 8621955 + .string "bathe with my POKéMON.$" + +gUnknown_0862196C:: @ 862196C + .string "Lightning-fast attack!$" + +gUnknown_08621983:: @ 8621983 + .string "BUG POKéMON are number 1!$" + +gUnknown_0862199D:: @ 862199D + .string "If you want to catch BUG$" + +gUnknown_086219B6:: @ 86219B6 + .string "POKéMON, wake up early.$" + +gUnknown_086219CE:: @ 86219CE + .string "I battle with power.$" + +gUnknown_086219E3:: @ 86219E3 + .string "Hard-bodied POKéMON.$" + +gUnknown_086219F8:: @ 86219F8 + .string "I’ve been planning a month$" + +gUnknown_08621A13:: @ 8621A13 + .string "for today’s hike.$" + +gUnknown_08621A25:: @ 8621A25 + .string "I like it hot!$" + +gUnknown_08621A34:: @ 8621A34 + .string "Hot POKéMON!$" + +gUnknown_08621A41:: @ 8621A41 + .string "As much as I love POKéMON,$" + +gUnknown_08621A5C:: @ 8621A5C + .string "I surely like hiking!$" + +gUnknown_08621A72:: @ 8621A72 + .string "Lovey-dovey strategy!$" + +gUnknown_08621A88:: @ 8621A88 + .string "Lovey-dovey POKéMON!$" + +gUnknown_08621A9D:: @ 8621A9D + .string "We’re lovey-dovey!$" + +gUnknown_08621AB0:: @ 8621AB0 + .string "Forever lovey-dovey!$" + +gUnknown_08621AC5:: @ 8621AC5 + .string "We let it all hang out.$" + +gUnknown_08621ADD:: @ 8621ADD + .string "The 1st POKéMON I caught.$" + +gUnknown_08621AF7:: @ 8621AF7 + .string "POKéMON and I have grown$" + +gUnknown_08621B10:: @ 8621B10 + .string "stronger together.$" + +gUnknown_08621B23:: @ 8621B23 + .string "ROCK-type power attack.$" + +gUnknown_08621B3B:: @ 8621B3B + .string "I prefer rock-hard POKéMON.$" + +gUnknown_08621B57:: @ 8621B57 + .string "A LEADER of a big GYM bears$" + +gUnknown_08621B73:: @ 8621B73 + .string "a lot of responsibility.$" + +gUnknown_08621B8C:: @ 8621B8C + .string "Direct physical action!$" + +gUnknown_08621BA4:: @ 8621BA4 + .string "FIGHTING POKéMON rule!$" + +gUnknown_08621BBB:: @ 8621BBB + .string "The world awaits me as the$" + +gUnknown_08621BD6:: @ 8621BD6 + .string "next big wave!$" + +gUnknown_08621BE5:: @ 8621BE5 + .string "I choose to electrify.$" + +gUnknown_08621BFC:: @ 8621BFC + .string "Get shocked by electricity!$" + +gUnknown_08621C18:: @ 8621C18 + .string "One must never throw a$" + +gUnknown_08621C2F:: @ 8621C2F + .string "match. Even I must not.$" + +gUnknown_08621C47:: @ 8621C47 + .string "Battle aggressively.$" + +gUnknown_08621C5C:: @ 8621C5C + .string "Burn with passion!$" + +gUnknown_08621C6F:: @ 8621C6F + .string "Completely wash away daily$" + +gUnknown_08621C8A:: @ 8621C8A + .string "fatigue in hot springs!$" + +gUnknown_08621CA2:: @ 8621CA2 + .string "I flexibly adapt my style.$" + +gUnknown_08621CBD:: @ 8621CBD + .string "Grown in a balanced manner.$" + +gUnknown_08621CD9:: @ 8621CD9 + .string "I walk the 30 minutes from$" + +gUnknown_08621CF4:: @ 8621CF4 + .string "home to here every day.$" + +gUnknown_08621D0C:: @ 8621D0C + .string "I take advantage of speed.$" + +gUnknown_08621D27:: @ 8621D27 + .string "Graceful sky dancers.$" + +gUnknown_08621D3D:: @ 8621D3D + .string "The ultimate would be to$" + +gUnknown_08621D56:: @ 8621D56 + .string "live as one with nature.$" + +gUnknown_08621D6F:: @ 8621D6F + .string "We battle in cooperation.$" + +gUnknown_08621D89:: @ 8621D89 + .string "Always friendly POKéMON.$" + +gUnknown_08621DA2:: @ 8621DA2 + .string "Papa has trouble telling$" + +gUnknown_08621DBB:: @ 8621DBB + .string "the two of us apart!$" + +gUnknown_08621DD0:: @ 8621DD0 + .string "I use splendid waterpower.$" + +gUnknown_08621DEB:: @ 8621DEB + .string "POKéMON of elegance!$" + +gUnknown_08621E00:: @ 8621E00 + .string "The adulation of beautiful$" + +gUnknown_08621E1B:: @ 8621E1B + .string "ladies fills me with energy!$" + +gUnknown_08621E38:: @ 8621E38 + .string "Offense over defense!$" + +gUnknown_08621E4E:: @ 8621E4E + .string "The DARK side’s beauties.$" + +gUnknown_08621E68:: @ 8621E68 + .string "They said I was a punk, but$" + +gUnknown_08621E84:: @ 8621E84 + .string "I’m one of the ELITE FOUR!$" + +gUnknown_08621E9F:: @ 8621E9F + .string "Confuse and confound.$" + +gUnknown_08621EB5:: @ 8621EB5 + .string "There’s nothing definite.$" + +gUnknown_08621ECF:: @ 8621ECF + .string "I wonder how my grandma at$" + +gUnknown_08621EEA:: @ 8621EEA + .string "MT. PYRE is doing?$" + +gUnknown_08621EFD:: @ 8621EFD + .string "I use items for help.$" + +gUnknown_08621F13:: @ 8621F13 + .string "Flaming passion in icy cold!$" + +gUnknown_08621F30:: @ 8621F30 + .string "The ICE type can be better$" + +gUnknown_08621F4B:: @ 8621F4B + .string "trained in this hot land.$" + +gUnknown_08621F65:: @ 8621F65 + .string "Harness strong abilities.$" + +gUnknown_08621F7F:: @ 8621F7F + .string "The raw power of DRAGONS!$" + +gUnknown_08621F99:: @ 8621F99 + .string "I dedicate myself to the$" + +gUnknown_08621FB2:: @ 8621FB2 + .string "POKéMON that saved me.$" + +gUnknown_08621FC9:: @ 8621FC9 + .string "Dignity and respect.$" + +gUnknown_08621FDE:: @ 8621FDE + .string "I prefer POKéMON of grace.$" + +gUnknown_08621FF9:: @ 8621FF9 + .string "I represent beauty as$" + +gUnknown_0862200F:: @ 862200F + .string "well as intelligence.$" + +.align 2 + +@ strategy, mon text, introduction1, introduction2 gUnknown_08622028:: @ 8622028 - .incbin "baserom.gba", 0x622028, 0x4e0 + .4byte gUnknown_08620390, gUnknown_086203AA, gUnknown_086203C2, gUnknown_086203DB + .4byte gUnknown_086203F2, gUnknown_0862040D, gUnknown_08620428, gUnknown_08620444 + .4byte gUnknown_08620456, gUnknown_0862046C, gUnknown_08620481, gUnknown_0862049C + .4byte gUnknown_086204B0, gUnknown_086204C7, gUnknown_086204DD, gUnknown_086204F9 + .4byte gUnknown_0862050E, gUnknown_0862052B, gUnknown_08620546, gUnknown_08620562 + .4byte gUnknown_0862057D, gUnknown_08620592, gUnknown_086205AC, gUnknown_086205C6 + .4byte gUnknown_086205DD, gUnknown_086205F8, gUnknown_08620612, gUnknown_0862062F + .4byte gUnknown_08620638, gUnknown_08620654, gUnknown_08620668, gUnknown_08620681 + .4byte gUnknown_08620693, gUnknown_086206A7, gUnknown_086206BC, gUnknown_086206D5 + .4byte gUnknown_086206E7, gUnknown_086206FF, gUnknown_08620717, gUnknown_08620730 + .4byte gUnknown_0862073D, gUnknown_0862074E, gUnknown_0862075D, gUnknown_08620779 + .4byte gUnknown_0862078D, gUnknown_086207A9, gUnknown_086207BC, gUnknown_086207D7 + .4byte gUnknown_086207F4, gUnknown_0862080A, gUnknown_0862081B, gUnknown_08620833 + .4byte gUnknown_0862084B, gUnknown_08620863, gUnknown_0862087C, gUnknown_08620896 + .4byte gUnknown_086208AA, gUnknown_086208C3, gUnknown_086208DC, gUnknown_086208F1 + .4byte gUnknown_08620909, gUnknown_0862091C, gUnknown_0862092E, gUnknown_0862094A + .4byte gUnknown_08620963, gUnknown_08620979, gUnknown_08620988, gUnknown_086209A4 + .4byte gUnknown_086209B4, gUnknown_086209CA, gUnknown_086209E3, gUnknown_086209FD + .4byte gUnknown_08620A18, gUnknown_08620A31, gUnknown_08620A4B, gUnknown_08620A66 + .4byte gUnknown_08620A78, gUnknown_08620A8C, gUnknown_08620A9E, gUnknown_08620AB8 + .4byte gUnknown_08620AD2, gUnknown_08620AE4, gUnknown_08620AFB, gUnknown_08620B16 + .4byte gUnknown_08620B32, gUnknown_08620B4C, gUnknown_08620B64, gUnknown_08620B7F + .4byte gUnknown_08620B8C, gUnknown_08620BA6, gUnknown_08620BC0, gUnknown_08620BD8 + .4byte gUnknown_08620BF2, gUnknown_08620C03, gUnknown_08620C19, gUnknown_08620C34 + .4byte gUnknown_08620C4E, gUnknown_08620C60, gUnknown_08620C78, gUnknown_08620C92 + .4byte gUnknown_08620CA8, gUnknown_08620CBE, gUnknown_08620CD9, gUnknown_08620CF5 + .4byte gUnknown_08620D06, gUnknown_08620D1A, gUnknown_08620D32, gUnknown_08620D49 + .4byte gUnknown_08620D63, gUnknown_08620D7C, gUnknown_08620D98, gUnknown_08620DB3 + .4byte gUnknown_08620DCA, gUnknown_08620DDE, gUnknown_08620DF1, gUnknown_08620E08 + .4byte gUnknown_08620E22, gUnknown_08620E39, gUnknown_08620E54, gUnknown_08620E6C + .4byte gUnknown_08620E83, gUnknown_08620E98, gUnknown_08620EB5, gUnknown_08620ECC + .4byte gUnknown_08620EE2, gUnknown_08620EF6, gUnknown_08620F12, gUnknown_08620F2A + .4byte gUnknown_08620F43, gUnknown_08620F5D, gUnknown_08620F76, gUnknown_08620F90 + .4byte gUnknown_08620FA2, gUnknown_08620FBA, gUnknown_08620FCD, gUnknown_08620FE6 + .4byte gUnknown_08620FF9, gUnknown_0862100A, gUnknown_08621021, gUnknown_0862103B + .4byte gUnknown_08621056, gUnknown_0862106A, gUnknown_08621083, gUnknown_0862109F + .4byte gUnknown_086210B5, gUnknown_086210CE, gUnknown_086210E7, gUnknown_08621101 + .4byte gUnknown_08621114, gUnknown_08621125, gUnknown_0862113D, gUnknown_08621157 + .4byte gUnknown_0862116E, gUnknown_08621182, gUnknown_08621197, gUnknown_086211B3 + .4byte gUnknown_086211CC, gUnknown_086211E4, gUnknown_086211FC, gUnknown_08621216 + .4byte gUnknown_08621230, gUnknown_08621243, gUnknown_08621257, gUnknown_08621270 + .4byte gUnknown_0862127B, gUnknown_08621290, gUnknown_086212A7, gUnknown_086212BF + .4byte gUnknown_086212DA, gUnknown_086212F3, gUnknown_0862130C, gUnknown_08621326 + .4byte gUnknown_08621342, gUnknown_0862135C, gUnknown_08621376, gUnknown_08621393 + .4byte gUnknown_086213A6, gUnknown_086213C2, gUnknown_086213DC, gUnknown_086213F8 + .4byte gUnknown_0862140B, gUnknown_08621426, gUnknown_08621439, gUnknown_08621451 + .4byte gUnknown_0862146C, gUnknown_08621483, gUnknown_08621499, gUnknown_086214AD + .4byte gUnknown_086214C6, gUnknown_086214DA, gUnknown_086214EF, gUnknown_08621507 + .4byte gUnknown_0862151D, gUnknown_08621527, gUnknown_0862153B, gUnknown_08621551 + .4byte gUnknown_0862156A, gUnknown_08621585, gUnknown_08621599, gUnknown_086215AF + .4byte gUnknown_086215BC, gUnknown_086215D0, gUnknown_086215E3, gUnknown_086215FD + .4byte gUnknown_08621615, gUnknown_08621630, gUnknown_0862164A, gUnknown_08621664 + .4byte gUnknown_08621674, gUnknown_0862168C, gUnknown_086216A8, gUnknown_086216C3 + .4byte gUnknown_086216E0, gUnknown_086216FB, gUnknown_08621710, gUnknown_0862172A + .4byte gUnknown_08621740, gUnknown_08621752, gUnknown_0862176B, gUnknown_08621782 + .4byte gUnknown_08621799, gUnknown_086217A9, gUnknown_086217C2, gUnknown_086217D9 + .4byte gUnknown_086217F5, gUnknown_08621810, gUnknown_08621826, gUnknown_0862183E + .4byte gUnknown_08621851, gUnknown_0862186A, gUnknown_08621881, gUnknown_08621899 + .4byte gUnknown_086218AF, gUnknown_086218C0, gUnknown_086218D7, gUnknown_086218F0 + .4byte gUnknown_08621908, gUnknown_08621921, gUnknown_0862193C, gUnknown_08621955 + .4byte gUnknown_0862196C, gUnknown_08621983, gUnknown_0862199D, gUnknown_086219B6 + .4byte gUnknown_086219CE, gUnknown_086219E3, gUnknown_086219F8, gUnknown_08621A13 + .4byte gUnknown_08621A25, gUnknown_08621A34, gUnknown_08621A41, gUnknown_08621A5C + .4byte gUnknown_08621A72, gUnknown_08621A88, gUnknown_08621A9D, gUnknown_08621AB0 + .4byte gUnknown_08621AC5, gUnknown_08621ADD, gUnknown_08621AF7, gUnknown_08621B10 + .4byte gUnknown_08621B23, gUnknown_08621B3B, gUnknown_08621B57, gUnknown_08621B73 + .4byte gUnknown_08621B8C, gUnknown_08621BA4, gUnknown_08621BBB, gUnknown_08621BD6 + .4byte gUnknown_08621BE5, gUnknown_08621BFC, gUnknown_08621C18, gUnknown_08621C2F + .4byte gUnknown_08621C47, gUnknown_08621C5C, gUnknown_08621C6F, gUnknown_08621C8A + .4byte gUnknown_08621CA2, gUnknown_08621CBD, gUnknown_08621CD9, gUnknown_08621CF4 + .4byte gUnknown_08621D0C, gUnknown_08621D27, gUnknown_08621D3D, gUnknown_08621D56 + .4byte gUnknown_08621D6F, gUnknown_08621D89, gUnknown_08621DA2, gUnknown_08621DBB + .4byte gUnknown_08621DD0, gUnknown_08621DEB, gUnknown_08621E00, gUnknown_08621E1B + .4byte gUnknown_08621E38, gUnknown_08621E4E, gUnknown_08621E68, gUnknown_08621E84 + .4byte gUnknown_08621E9F, gUnknown_08621EB5, gUnknown_08621ECF, gUnknown_08621EEA + .4byte gUnknown_08621EFD, gUnknown_08621F13, gUnknown_08621F30, gUnknown_08621F4B + .4byte gUnknown_08621F65, gUnknown_08621F7F, gUnknown_08621F99, gUnknown_08621FB2 + .4byte gUnknown_08621FC9, gUnknown_08621FDE, gUnknown_08621FF9, gUnknown_0862200F gUnknown_08622508:: @ 8622508 .incbin "baserom.gba", 0x622508, 0x2 @@ -316,7 +1345,10 @@ gUnknown_08622530:: @ 8622530 .incbin "baserom.gba", 0x622530, 0xa4 gUnknown_086225D4:: @ 86225D4 - .incbin "baserom.gba", 0x6225d4, 0x10c + .incbin "baserom.gba", 0x6225d4, 0xC4 + +gUnknown_08622698:: @ 8622698 + .incbin "baserom.gba", 0x622698, 0x48 gUnknown_086226E0:: @ 86226E0 .incbin "baserom.gba", 0x6226e0, 0x20 @@ -361,7 +1393,9 @@ gUnknown_086227E0:: @ 86227E0 .incbin "baserom.gba", 0x6227e0, 0x8 gUnknown_086227E8:: @ 86227E8 - .incbin "baserom.gba", 0x6227e8, 0xc + .4byte gUnknown_085EC017 + .4byte gUnknown_085EC01C + .4byte gUnknown_085EC022 gUnknown_086227F4:: @ 86227F4 .incbin "baserom.gba", 0x6227f4, 0x14 @@ -373,13 +1407,26 @@ gUnknown_08622810:: @ 8622810 .incbin "baserom.gba", 0x622810, 0x8 gUnknown_08622818:: @ 8622818 - .incbin "baserom.gba", 0x622818, 0x18 + obj_pal gUnknown_08622698, 12 + obj_pal NULL, 0 + +gUnknown_08622828:: @ 8622828 + .2byte 0x8000 + .2byte 0x0 + .2byte 0x400 + .2byte 0x0 gUnknown_08622830:: @ 8622830 - .incbin "baserom.gba", 0x622830, 0x20 + spr_template 7, 12, gUnknown_08622828, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81CC34C +gUnknown_08622848:: @ 8622848 + .2byte 0x0 + .2byte 0xC000 + .2byte 0x400 + .2byte 0x0 + gUnknown_08622850:: @ 8622850 - .incbin "baserom.gba", 0x622850, 0x18 + spr_template 8, 13, gUnknown_08622848, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_08622868:: @ 8622868 .incbin "baserom.gba", 0x622868, 0x20 @@ -549,7 +1596,10 @@ gUnknown_086233A0:: @ 86233A0 .incbin "baserom.gba", 0x6233a0, 0x14 gUnknown_086233B4:: @ 86233B4 - .incbin "baserom.gba", 0x6233b4, 0x10 + .4byte sub_81CF134 + .4byte sub_81CF1C4 + .4byte sub_81CF1D8 + .4byte sub_81CF278 gUnknown_086233C4:: @ 86233C4 .incbin "baserom.gba", 0x6233c4, 0x20 @@ -591,7 +1641,9 @@ gUnknown_086235D4:: @ 86235D4 .incbin "baserom.gba", 0x6235d4, 0x4 gUnknown_086235D8:: @ 86235D8 - .incbin "baserom.gba", 0x6235d8, 0xc + .4byte sub_81CFB8C + .4byte sub_81CFC2C + .4byte sub_81CFC40 gUnknown_086235E4:: @ 86235E4 .incbin "baserom.gba", 0x6235e4, 0x20 @@ -612,7 +1664,13 @@ gUnknown_086237B4:: @ 86237B4 .incbin "baserom.gba", 0x6237b4, 0x4 gUnknown_086237B8:: @ 86237B8 - .incbin "baserom.gba", 0x6237b8, 0x1c + .4byte NULL + .4byte sub_81CFFFC + .4byte sub_81D0074 + .4byte sub_81D00EC + .4byte sub_81D0164 + .4byte sub_81D01DC + .4byte sub_81D021C gUnknown_086237D4:: @ 86237D4 .incbin "baserom.gba", 0x6237d4, 0x8 @@ -663,7 +1721,12 @@ gUnknown_08624B98:: @ 8624B98 .incbin "baserom.gba", 0x624b98, 0x8 gUnknown_08624BA0:: @ 8624BA0 - .incbin "baserom.gba", 0x624ba0, 0x18 + .4byte NULL + .4byte sub_81D0C84 + .4byte sub_81D0D2C + .4byte sub_81D0D8C + .4byte sub_81D0E00 + .4byte sub_81D0C54 gUnknown_08624BB8:: @ 8624BB8 .incbin "baserom.gba", 0x624bb8, 0x8 @@ -814,16 +1877,32 @@ gUnknown_08625324:: @ 8625324 .4byte sub_81D17E4 gUnknown_08625338:: @ 8625338 - .incbin "baserom.gba", 0x625338, 0x14 + .4byte sub_81D1840 + .4byte sub_81D1844 + .4byte sub_81D1848 + .4byte sub_81D184C + .4byte sub_81D1850 gUnknown_0862534C:: @ 862534C - .incbin "baserom.gba", 0x62534c, 0x14 + .4byte sub_81D1888 + .4byte sub_81D188C + .4byte sub_81D1890 + .4byte sub_81D1894 + .4byte sub_81D1898 gUnknown_08625360:: @ 8625360 - .incbin "baserom.gba", 0x625360, 0x14 + .4byte sub_81D18D0 + .4byte sub_81D18DC + .4byte sub_81D18FC + .4byte sub_81D1908 + .4byte sub_81D1914 gUnknown_08625374:: @ 8625374 - .incbin "baserom.gba", 0x625374, 0x14 + .4byte sub_81D1AB0 + .4byte sub_81D1ABC + .4byte sub_81D1ADC + .4byte sub_81D1AF4 + .4byte sub_81D1B00 gUnknown_08625388:: @ 8625388 .incbin "baserom.gba", 0x625388, 0x60 From 9ee677d5674f49a116e48d32f74cd5a84dfa26ed Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 24 Dec 2017 19:08:55 +0100 Subject: [PATCH 30/54] commit --- src/battle_ai_script_commands.c | 206 ++++++++++++++++---------------- 1 file changed, 103 insertions(+), 103 deletions(-) diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 44be0a4d9b..7a30de75ba 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -723,14 +723,14 @@ static void BattleAICmd_score(void) static void BattleAICmd_if_hp_less_than(void) { - u16 index; + u16 bank; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) < gAIScriptPtr[2]) + if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) < gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); else gAIScriptPtr += 7; @@ -738,14 +738,14 @@ static void BattleAICmd_if_hp_less_than(void) static void BattleAICmd_if_hp_more_than(void) { - u16 index; + u16 bank; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) > gAIScriptPtr[2]) + if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) > gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); else gAIScriptPtr += 7; @@ -753,14 +753,14 @@ static void BattleAICmd_if_hp_more_than(void) static void BattleAICmd_if_hp_equal(void) { - u16 index; + u16 bank; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) == gAIScriptPtr[2]) + if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) == gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); else gAIScriptPtr += 7; @@ -768,14 +768,14 @@ static void BattleAICmd_if_hp_equal(void) static void BattleAICmd_if_hp_not_equal(void) { - u16 index; + u16 bank; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) != gAIScriptPtr[2]) + if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) != gAIScriptPtr[2]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3); else gAIScriptPtr += 7; @@ -783,17 +783,17 @@ static void BattleAICmd_if_hp_not_equal(void) static void BattleAICmd_if_status(void) { - u16 index; - u32 arg; + u16 bank; + u32 status; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - arg = AIScriptRead32(gAIScriptPtr + 2); + status = AIScriptRead32(gAIScriptPtr + 2); - if ((gBattleMons[index].status1 & arg) != 0) + if ((gBattleMons[bank].status1 & status) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -801,17 +801,17 @@ static void BattleAICmd_if_status(void) static void BattleAICmd_if_not_status(void) { - u16 index; - u32 arg; + u16 bank; + u32 status; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - arg = AIScriptRead32(gAIScriptPtr + 2); + status = AIScriptRead32(gAIScriptPtr + 2); - if ((gBattleMons[index].status1 & arg) == 0) + if ((gBattleMons[bank].status1 & status) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -819,17 +819,17 @@ static void BattleAICmd_if_not_status(void) static void BattleAICmd_if_status2(void) { - u16 index; - u32 arg; + u16 bank; + u32 status; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - arg = AIScriptRead32(gAIScriptPtr + 2); + status = AIScriptRead32(gAIScriptPtr + 2); - if ((gBattleMons[index].status2 & arg) != 0) + if ((gBattleMons[bank].status2 & status) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -837,17 +837,17 @@ static void BattleAICmd_if_status2(void) static void BattleAICmd_if_not_status2(void) { - u16 index; - u32 arg; + u16 bank; + u32 status; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - arg = AIScriptRead32(gAIScriptPtr + 2); + status = AIScriptRead32(gAIScriptPtr + 2); - if ((gBattleMons[index].status2 & arg) == 0) + if ((gBattleMons[bank].status2 & status) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -855,17 +855,17 @@ static void BattleAICmd_if_not_status2(void) static void BattleAICmd_if_status3(void) { - u16 index; - u32 arg; + u16 bank; + u32 status; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - arg = AIScriptRead32(gAIScriptPtr + 2); + status = AIScriptRead32(gAIScriptPtr + 2); - if ((gStatuses3[index] & arg) != 0) + if ((gStatuses3[bank] & status) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -873,17 +873,17 @@ static void BattleAICmd_if_status3(void) static void BattleAICmd_if_not_status3(void) { - u16 index; - u32 arg; + u16 bank; + u32 status; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - arg = AIScriptRead32(gAIScriptPtr + 2); + status = AIScriptRead32(gAIScriptPtr + 2); - if ((gStatuses3[index] & arg) == 0) + if ((gStatuses3[bank] & status) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -891,18 +891,18 @@ static void BattleAICmd_if_not_status3(void) static void BattleAICmd_if_side_affecting(void) { - u16 index; - u32 arg1, arg2; + u16 bank; + u32 side, status; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - arg1 = GetBankIdentity(index) & 1; - arg2 = AIScriptRead32(gAIScriptPtr + 2); + side = GET_BANK_SIDE(bank); + status = AIScriptRead32(gAIScriptPtr + 2); - if ((gSideAffecting[arg1] & arg2) != 0) + if ((gSideAffecting[side] & status) != 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -910,18 +910,18 @@ static void BattleAICmd_if_side_affecting(void) static void BattleAICmd_if_not_side_affecting(void) { - u16 index; - u32 arg1, arg2; + u16 bank; + u32 side, status; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - arg1 = GetBankIdentity(index) & 1; - arg2 = AIScriptRead32(gAIScriptPtr + 2); + side = GET_BANK_SIDE(bank); + status = AIScriptRead32(gAIScriptPtr + 2); - if ((gSideAffecting[arg1] & arg2) == 0) + if ((gSideAffecting[side] & status) == 0) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); else gAIScriptPtr += 10; @@ -1146,9 +1146,9 @@ static void BattleAICmd_get_type(void) gAIScriptPtr += 2; } -static u8 BattleAI_GetWantedBank(u8 index) +static u8 BattleAI_GetWantedBank(u8 bank) { - switch (index) + switch (bank) { case AI_USER: return sBank_AI; @@ -1300,7 +1300,7 @@ static void BattleAICmd_nullsub_2B(void) static void BattleAICmd_count_alive_pokemon(void) { - u8 index; + u8 bank; u8 bankOnField1, bankOnField2; struct Pokemon *party; int i; @@ -1308,11 +1308,11 @@ static void BattleAICmd_count_alive_pokemon(void) AI_THINKING_STRUCT->funcResult = 0; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - if (GetBankSide(index) == SIDE_PLAYER) + if (GetBankSide(bank) == SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -1320,14 +1320,14 @@ static void BattleAICmd_count_alive_pokemon(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { u32 status; - bankOnField1 = gBattlePartyID[index]; - status = GetBankIdentity(index) ^ 2; + bankOnField1 = gBattlePartyID[bank]; + status = GetBankIdentity(bank) ^ 2; bankOnField2 = gBattlePartyID[GetBankByIdentity(status)]; } else // in singles there's only one bank by side { - bankOnField1 = gBattlePartyID[index]; - bankOnField2 = gBattlePartyID[index]; + bankOnField1 = gBattlePartyID[bank]; + bankOnField2 = gBattlePartyID[bank]; } for (i = 0; i < 6; i++) @@ -1358,60 +1358,60 @@ static void BattleAICmd_get_considered_move_effect(void) static void BattleAICmd_get_ability(void) { - u8 index; + u8 bank; if (gAIScriptPtr[1] == AI_USER) - index = sBank_AI; + bank = sBank_AI; else - index = gBankTarget; + bank = gBankTarget; - if(gActiveBank != index) + if(gActiveBank != bank) { - if(BATTLE_HISTORY->abilities[index] != 0) + if(BATTLE_HISTORY->abilities[bank] != 0) { - AI_THINKING_STRUCT->funcResult = BATTLE_HISTORY->abilities[index]; + AI_THINKING_STRUCT->funcResult = BATTLE_HISTORY->abilities[bank]; gAIScriptPtr += 2; return; } // abilities that prevent fleeing. - if (gBattleMons[index].ability == ABILITY_SHADOW_TAG - || gBattleMons[index].ability == ABILITY_MAGNET_PULL - || gBattleMons[index].ability == ABILITY_ARENA_TRAP) + if (gBattleMons[bank].ability == ABILITY_SHADOW_TAG + || gBattleMons[bank].ability == ABILITY_MAGNET_PULL + || gBattleMons[bank].ability == ABILITY_ARENA_TRAP) { - AI_THINKING_STRUCT->funcResult = gBattleMons[index].ability; + AI_THINKING_STRUCT->funcResult = gBattleMons[bank].ability; gAIScriptPtr += 2; return; } - if (gBaseStats[gBattleMons[index].species].ability1 != ABILITY_NONE) + if (gBaseStats[gBattleMons[bank].species].ability1 != ABILITY_NONE) { - if (gBaseStats[gBattleMons[index].species].ability2 != ABILITY_NONE) + if (gBaseStats[gBattleMons[bank].species].ability2 != ABILITY_NONE) { // AI has no knowledge of opponent, so it guesses which ability. if (Random() & 1) { - AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability1; + AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[bank].species].ability1; } else { - AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability2; + AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[bank].species].ability2; } } else { - AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability1; // it's definitely ability 1. + AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[bank].species].ability1; // it's definitely ability 1. } } else { - AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[index].species].ability2; // AI cant actually reach this part since every mon has at least 1 ability. + AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[bank].species].ability2; // AI cant actually reach this part since every mon has at least 1 ability. } } else { // The AI knows its own ability. - AI_THINKING_STRUCT->funcResult = gBattleMons[index].ability; + AI_THINKING_STRUCT->funcResult = gBattleMons[bank].ability; } gAIScriptPtr += 2; } @@ -1569,19 +1569,19 @@ static void BattleAICmd_if_status_in_party(void) struct Pokemon *party; int i; u32 statusToCompareTo; - u8 index; + u8 bank; switch(gAIScriptPtr[1]) { case AI_USER: - index = sBank_AI; + bank = sBank_AI; break; default: - index = gBankTarget; + bank = gBankTarget; break; } - party = (GetBankSide(index) == 0) ? gPlayerParty : gEnemyParty; + party = (GetBankSide(bank) == 0) ? gPlayerParty : gEnemyParty; statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2); @@ -1606,19 +1606,19 @@ static void BattleAICmd_if_status_not_in_party(void) struct Pokemon *party; int i; u32 statusToCompareTo; - u8 index; + u8 bank; switch(gAIScriptPtr[1]) { case 1: - index = sBank_AI; + bank = sBank_AI; break; default: - index = gBankTarget; + bank = gBankTarget; break; } - party = (GetBankSide(index) == 0) ? gPlayerParty : gEnemyParty; + party = (GetBankSide(bank) == 0) ? gPlayerParty : gEnemyParty; statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2); @@ -2280,9 +2280,9 @@ static void BattleAICmd_if_target_is_ally(void) static void BattleAICmd_if_flash_fired(void) { - u8 index = BattleAI_GetWantedBank(gAIScriptPtr[1]); + u8 bank = BattleAI_GetWantedBank(gAIScriptPtr[1]); - if(gBattleResources->flags->flags[index] & UNKNOWN_FLAG_FLASH_FIRE) + if(gBattleResources->flags->flags[bank] & UNKNOWN_FLAG_FLASH_FIRE) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; From b2eadfa16c60b962c3b4706da951a85246c6306c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 24 Dec 2017 19:15:51 +0100 Subject: [PATCH 31/54] spaces to tabs --- data/graphics.s | 182 +++---- data/party_menu.s | 86 +-- data/pokedex.s | 8 +- data/pokedex_entries.inc | 460 ++++++++-------- data/pokemon_storage_system.s | 8 +- data/pokenav.s | 820 ++++++++++++++--------------- data/record_mixing.s | 2 +- data/reset_rtc_screen.s | 8 +- data/rom_8486FEC.s | 8 +- data/rom_8525F58.s | 18 +- data/save.s | 28 +- data/script_menu.s | 2 +- data/script_pokemon_util_80F87D8.s | 2 +- data/specials.inc | 6 +- data/strings.s | 12 +- data/text_window.s | 168 +++--- data/trade.s | 8 +- data/trainer_card.s | 134 ++--- data/trainer_money.inc | 112 ++-- data/type_effectiveness.inc | 192 +++---- data/unk_sprite_file.s | 24 +- data/use_pokeblock.s | 2 +- data/wild_encounter.s | 8 +- 23 files changed, 1149 insertions(+), 1149 deletions(-) diff --git a/data/graphics.s b/data/graphics.s index b2e4e6b341..7fffaba3f0 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -126,23 +126,23 @@ gUnknown_08C0237C:: @ 8C0237C gUnknown_08C093F0:: @ 8C093F0 .incbin "baserom.gba", 0xc093f0, 0x87ac - .align 2 + .align 2 gBattleInterface_BallStatusBarPal:: @ 8C11B9C .incbin "graphics/battle_interface/ball_status_bar.gbapal" - .align 2 + .align 2 gBattleInterface_BallDisplayPal:: @ 8C11BBC .incbin "graphics/battle_interface/ball_display.gbapal" - .align 2 + .align 2 gHealthboxElementsGfxTable:: @ 8C11BDC .incbin "baserom.gba", 0xc11bdc, 0x840 - .align 2 + .align 2 gBattleInterface_BallDisplayGfx:: @ 8C1241C .incbin "graphics/battle_interface/ball_display.4bpp" - .align 2 + .align 2 gUnknown_08C1249C:: @ 8C1249C .incbin "baserom.gba", 0xc1249c, 0x49f4 @@ -253,28 +253,28 @@ gSubstituteDollGfx:: @ 8C2CEE0 gSubstituteDollTilemap:: @ 8C2D120 .incbin "baserom.gba", 0xc2d120, 552 - + gUnknown_08C2D348:: @ 8C2D348 .incbin "baserom.gba", 0xC2D348, 196 - + gUnknown_08C2D40C:: @ 8C2D40C .incbin "baserom.gba", 0xC2D40C, 28 - + gContestConfetti_Gfx:: @ 8C2D428 .incbin "baserom.gba", 0xC2D428, 288 - + gContestConfetti_Pal:: @ 8C2D548 .incbin "baserom.gba", 0xC2D548, 40 - + gUnknown_08C2D570:: @ 8C2D570 .incbin "baserom.gba", 0xC2D570, 316 - + gUnknown_08C2D6AC:: @ 8C2D6AC .incbin "baserom.gba", 0xC2D6AC, 36 - + gUnknown_08C2D6D0:: @ 8C2D6D0 .incbin "baserom.gba", 0xC2D6D0, 40 - + gUnknown_08C2D6F8:: @ 8C2D6F8 .incbin "baserom.gba", 0xC2D6F8, 40 @@ -821,31 +821,31 @@ gUnknown_08D96AB4:: @ 8D96AB4 .incbin "baserom.gba", 0xd96ab4, 0xec gUnknown_08D96BA0:: @ 8D96BA0 - .incbin "baserom.gba", 0xd96ba0, 0x138 + .incbin "baserom.gba", 0xd96ba0, 0x138 gUnknown_08D96CD8:: @ 8D96CD8 - .incbin "baserom.gba", 0xd96cd8, 0x294 + .incbin "baserom.gba", 0xd96cd8, 0x294 gUnknown_08D96F6C:: @ 8D96F6C - .incbin "baserom.gba", 0xd96f6c, 0x24 + .incbin "baserom.gba", 0xd96f6c, 0x24 gUnknown_08D96F90:: @ 8D96F90 - .incbin "baserom.gba", 0xd96f90, 0x1F8 + .incbin "baserom.gba", 0xd96f90, 0x1F8 gUnknown_08D97188:: @ 8D97188 - .incbin "baserom.gba", 0xd97188, 0x28 + .incbin "baserom.gba", 0xd97188, 0x28 gUnknown_08D971B0:: @ 8D971B0 - .incbin "baserom.gba", 0xd971b0, 0x9D4 + .incbin "baserom.gba", 0xd971b0, 0x9D4 gUnknown_08D97B84:: @ 8D97B84 - .incbin "baserom.gba", 0xd97b84, 0x68 + .incbin "baserom.gba", 0xd97b84, 0x68 gUnknown_08D97BEC:: @ 8D97BEC - .incbin "baserom.gba", 0xd97bec, 0x108 + .incbin "baserom.gba", 0xd97bec, 0x108 gUnknown_08D97CF4:: @ 8D97CF4 - .incbin "baserom.gba", 0xd97cf4, 0x18 + .incbin "baserom.gba", 0xd97cf4, 0x18 gUnknown_08D97D0C:: @ 8D97D0C .incbin "baserom.gba", 0xd97d0c, 0x830 @@ -897,9 +897,9 @@ gMenuMoneyPal:: @ 8D9B0C8 gBuyMenuFrame_Tilemap:: @ 8D9B0F0 .incbin "baserom.gba", 0xd9b0f0, 0x140 - + gMenuMoneyGfx:: @ 8D9B230 - .incbin "baserom.gba", 0xd9b230, 0x84 + .incbin "baserom.gba", 0xd9b230, 0x84 gMenuPokeblock_Gfx:: @ 8D9B2B4 .incbin "baserom.gba", 0xd9b2b4, 0x1bc @@ -1154,7 +1154,7 @@ gUnknown_08DAAFEC:: @ 8DAAFEC .include "data/graphics/decorations/decoration_graphics.inc" @ 8DBA14C - .incbin "baserom.gba", 0xdba14c, 0x3cc + .incbin "baserom.gba", 0xdba14c, 0x3cc gUnknown_08DBA518:: @ 8DBA518 .incbin "baserom.gba", 0xdba518, 0x80 @@ -1301,25 +1301,25 @@ gUnknown_08DC0754:: @ 8DC0754 .incbin "baserom.gba", 0xdc0754, 0x440 gUnknown_08DC0B94:: @ 8DC0B94 - .incbin "baserom.gba", 0xdc0b94, 0x800 + .incbin "baserom.gba", 0xdc0b94, 0x800 gUnknown_08DC1394:: @ 8DC1394 - .incbin "baserom.gba", 0xdc1394, 0x2E0 + .incbin "baserom.gba", 0xdc1394, 0x2E0 gUnknown_08DC1674:: @ 8DC1674 - .incbin "baserom.gba", 0xdc1674, 0x20 + .incbin "baserom.gba", 0xdc1674, 0x20 gUnknown_08DC1694:: @ 8DC1694 - .incbin "baserom.gba", 0xdc1694, 0x20 + .incbin "baserom.gba", 0xdc1694, 0x20 gUnknown_08DC16B4:: @ 8DC16B4 - .incbin "baserom.gba", 0xdc16b4, 0x20 + .incbin "baserom.gba", 0xdc16b4, 0x20 gUnknown_08DC16D4:: @ 8DC16D4 - .incbin "baserom.gba", 0xdc16d4, 0x20 + .incbin "baserom.gba", 0xdc16d4, 0x20 gUnknown_08DC16F4:: @ 8DC16F4 - .incbin "baserom.gba", 0xdc16f4, 0x62 + .incbin "baserom.gba", 0xdc16f4, 0x62 gUnknown_08DC1756:: @ 8DC1756 .incbin "baserom.gba", 0xdc1756, 0x60 @@ -1467,43 +1467,43 @@ gUnknown_08DC7D84:: @ 8DC7D84 .incbin "baserom.gba", 0xdc7d84, 0x17c gUnknown_08DC7F00:: @ 8DC7F00 - .incbin "baserom.gba", 0xdc7f00, 0xA0 + .incbin "baserom.gba", 0xdc7f00, 0xA0 gUnknown_08DC7FA0:: @ 8DC7FA0 - .incbin "baserom.gba", 0xdc7fa0, 0x13C + .incbin "baserom.gba", 0xdc7fa0, 0x13C gUnknown_08DC80DC:: @ 8DC80DC - .incbin "baserom.gba", 0xdc80dc, 0x12C + .incbin "baserom.gba", 0xdc80dc, 0x12C gUnknown_08DC8208:: @ 8DC8208 - .incbin "baserom.gba", 0xdc8208, 0x184 + .incbin "baserom.gba", 0xdc8208, 0x184 gUnknown_08DC838C:: @ 8DC838C - .incbin "baserom.gba", 0xdc838c, 0x120 + .incbin "baserom.gba", 0xdc838c, 0x120 gUnknown_08DC84AC:: @ 8DC84AC - .incbin "baserom.gba", 0xdc84ac, 0x1A0 + .incbin "baserom.gba", 0xdc84ac, 0x1A0 gUnknown_08DC864C:: @ 8DC864C - .incbin "baserom.gba", 0xdc864c, 0x1AC + .incbin "baserom.gba", 0xdc864c, 0x1AC gUnknown_08DC87F8:: @ 8DC87F8 - .incbin "baserom.gba", 0xdc87f8, 0x2AC + .incbin "baserom.gba", 0xdc87f8, 0x2AC gUnknown_08DC8AA4:: @ 8DC8AA4 - .incbin "baserom.gba", 0xdc8aa4, 0x170 + .incbin "baserom.gba", 0xdc8aa4, 0x170 gUnknown_08DC8C14:: @ 8DC8C14 - .incbin "baserom.gba", 0xdc8c14, 0x13C + .incbin "baserom.gba", 0xdc8c14, 0x13C gUnknown_08DC8D50:: @ 8DC8D50 - .incbin "baserom.gba", 0xdc8d50, 0x114 + .incbin "baserom.gba", 0xdc8d50, 0x114 gUnknown_08DC8E64:: @ 8DC8E64 - .incbin "baserom.gba", 0xdc8e64, 0x100 + .incbin "baserom.gba", 0xdc8e64, 0x100 gUnknown_08DC8F64:: @ 8DC8F64 - .incbin "baserom.gba", 0xdc8f64, 0x15C + .incbin "baserom.gba", 0xdc8f64, 0x15C gUnknown_08DC90C0:: @ 8DC90C0 .incbin "baserom.gba", 0xdc90c0, 0x20 @@ -1515,53 +1515,53 @@ gUnknown_08DC9130:: @ 8DC9130 .incbin "baserom.gba", 0xdc9130, 0xb8 gUnknown_08DC91E8:: @ 8DC91E8 - .incbin "baserom.gba", 0xdc91e8, 0x20 + .incbin "baserom.gba", 0xdc91e8, 0x20 gUnknown_08DC9208:: @ 8DC9208 - .incbin "baserom.gba", 0xdc9208, 0x400 + .incbin "baserom.gba", 0xdc9208, 0x400 gUnknown_08DC9608:: @ 8DC9608 .incbin "baserom.gba", 0xdc9608, 0x20 gUnknown_08DC9628:: @ 8DC9628 .incbin "baserom.gba", 0xdc9628, 0x320 - + gBerryBlenderMiscPalette:: @ 8DCAB88 .incbin "graphics/berry_blender/misc.gbapal" - + gBerryBlenderArrowPalette:: @ 8DC9948 .incbin "graphics/berry_blender/arrow.gbapal" gUnknown_8DC9988:: @ 8DC9988 - .incbin "baserom.gba", 0xdc9988, 0x200 - + .incbin "baserom.gba", 0xdc9988, 0x200 + .align 2 gBerryBlenderMarubatsuTiles:: @ 8DC9B88 .incbin "graphics/berry_blender/marubatsu.4bpp" - + .align 2 gBerryBlenderParticlesTiles:: @ 8E90818 .incbin "graphics/berry_blender/particles.4bpp" - + .space 0x120 .align 2 gBerryBlenderCountdownNumbersTiles:: @ 8DC9F88 .incbin "graphics/berry_blender/countdown_numbers.4bpp" - + .align 2 gBerryBlenderStartTiles:: @ 8DCA588 .incbin "graphics/berry_blender/start.4bpp" - - .space 0x200 - + + .space 0x200 + .align 2 gBerryBlenderArrowTiles:: @ 8DCAB88 .incbin "graphics/berry_blender/arrow.4bpp" gUnknown_08DCB388:: @ 8DCB388 .incbin "baserom.gba", 0xdcb388, 0xA28 - + gUnknown_08DCBDB0:: @ 8DCBDB0 .incbin "baserom.gba", 0xdcbdb0, 0x20 @@ -1584,19 +1584,19 @@ gUnknown_08DCC648:: @ 8DCC648 .incbin "baserom.gba", 0xdcc648, 0x2c0 gUnknown_08DCC908:: @ 8DCC908 - .incbin "baserom.gba", 0xdcc908, 0x290 + .incbin "baserom.gba", 0xdcc908, 0x290 gUnknown_08DCCB98:: @ 8DCCB98 - .incbin "baserom.gba", 0xdccb98, 0x20 + .incbin "baserom.gba", 0xdccb98, 0x20 gUnknown_08DCCBB8:: @ 8DCCBB8 - .incbin "baserom.gba", 0xdccbb8, 0x184 + .incbin "baserom.gba", 0xdccbb8, 0x184 gUnknown_08DCCD3C:: @ 8DCCD3C - .incbin "baserom.gba", 0xdccd3c, 0x20 + .incbin "baserom.gba", 0xdccd3c, 0x20 gUnknown_08DCCD5C:: @ 8DCCD5C - .incbin "baserom.gba", 0xdccd5c, 0x200 + .incbin "baserom.gba", 0xdccd5c, 0x200 gUnknown_08DCCF5C:: @ 8DCCF5C .incbin "baserom.gba", 0xdccf5c, 0x20 @@ -1623,28 +1623,28 @@ gUnknown_08DCEC70:: @ 8DCEC70 .incbin "baserom.gba", 0xdcec70, 0x13e0 gUnknown_08DD0050:: @ 8DD0050 - .incbin "baserom.gba", 0xdd0050, 0x1A08 + .incbin "baserom.gba", 0xdd0050, 0x1A08 gUnknown_08DD1A58:: @ 8DD1A58 - .incbin "baserom.gba", 0xdd1a58, 0x60 + .incbin "baserom.gba", 0xdd1a58, 0x60 gUnknown_08DD1AB8:: @ 8DD1AB8 - .incbin "baserom.gba", 0xdd1ab8, 0x4C0 + .incbin "baserom.gba", 0xdd1ab8, 0x4C0 gUnknown_08DD1F78:: @ 8DD1F78 - .incbin "baserom.gba", 0xdd1f78, 0x98 + .incbin "baserom.gba", 0xdd1f78, 0x98 gUnknown_08DD2010:: @ 8DD2010 - .incbin "baserom.gba", 0xdd2010, 0x1A0 + .incbin "baserom.gba", 0xdd2010, 0x1A0 gUnknown_08DD21B0:: @ 8DD21B0 - .incbin "baserom.gba", 0xdd21b0, 0xDC + .incbin "baserom.gba", 0xdd21b0, 0xDC gUnknown_08DD228C:: @ 8DD228C - .incbin "baserom.gba", 0xdd228c, 0x180 + .incbin "baserom.gba", 0xdd228c, 0x180 gUnknown_08DD240C:: @ 8DD240C - .incbin "baserom.gba", 0xdd240c, 0x60 + .incbin "baserom.gba", 0xdd240c, 0x60 gUnknown_08DD246C:: @ 8DD246C .incbin "baserom.gba", 0xdd246c, 0x674 @@ -1709,7 +1709,7 @@ gUnknown_08DD4BF0:: @ 8DD4BF0 gUnknown_08DD4C4C:: @ 8DD4C4C .incbin "baserom.gba", 0xdd4c4c, 0xac - .align 2 + .align 2 gUnknown_08DD4CF8:: @ 8DD4CF8 .incbin "graphics/interface/unk_change_case.4bpp.lz" @@ -1743,61 +1743,61 @@ gUnknown_08DD7300:: @ 8DD7300 .incbin "baserom.gba", 0xdd7300, 0x60 gUnknown_08DD7360:: @ 8DD7360 - .incbin "baserom.gba", 0xdd7360, 0x1420 + .incbin "baserom.gba", 0xdd7360, 0x1420 gUnknown_08DD8780:: @ 8DD8780 - .incbin "baserom.gba", 0xdd8780, 0x40 + .incbin "baserom.gba", 0xdd8780, 0x40 gUnknown_08DD87C0:: @ 8DD87C0 - .incbin "baserom.gba", 0xdd87c0, 0x720 + .incbin "baserom.gba", 0xdd87c0, 0x720 gUnknown_08DD8EE0:: @ 8DD8EE0 - .incbin "baserom.gba", 0xdd8ee0, 0x1a0 + .incbin "baserom.gba", 0xdd8ee0, 0x1a0 gUnknown_08DD9080:: @ 8DD9080 - .incbin "baserom.gba", 0xdd9080, 0x60 + .incbin "baserom.gba", 0xdd9080, 0x60 gUnknown_08DD90E0:: @ 8DD90E0 - .incbin "baserom.gba", 0xdd90e0, 0x638 + .incbin "baserom.gba", 0xdd90e0, 0x638 gUnknown_08DD9718:: @ 8DD9718 - .incbin "baserom.gba", 0xdd9718, 0x15c + .incbin "baserom.gba", 0xdd9718, 0x15c gUnknown_08DD9874:: @ 8DD9874 - .incbin "baserom.gba", 0xdd9874, 0x40 + .incbin "baserom.gba", 0xdd9874, 0x40 gUnknown_08DD98B4:: @ 8DD98B4 - .incbin "baserom.gba", 0xdd98b4, 0x5a4 + .incbin "baserom.gba", 0xdd98b4, 0x5a4 gUnknown_08DD9E58:: @ 8DD9E58 - .incbin "baserom.gba", 0xdd9e58, 0x194 + .incbin "baserom.gba", 0xdd9e58, 0x194 gUnknown_08DD9FEC:: @ 8DD9FEC - .incbin "baserom.gba", 0xdd9fec, 0x40 + .incbin "baserom.gba", 0xdd9fec, 0x40 gUnknown_08DDA02C:: @ 8DDA02C - .incbin "baserom.gba", 0xdda02c, 0x610 + .incbin "baserom.gba", 0xdda02c, 0x610 gUnknown_08DDA63C:: @ 8DDA63C - .incbin "baserom.gba", 0xdda63c, 0x1c4 + .incbin "baserom.gba", 0xdda63c, 0x1c4 gUnknown_08DDA800:: @ 8DDA800 - .incbin "baserom.gba", 0xdda800, 0x40 + .incbin "baserom.gba", 0xdda800, 0x40 gUnknown_08DDA840:: @ 8DDA840 - .incbin "baserom.gba", 0xdda840, 0x600 + .incbin "baserom.gba", 0xdda840, 0x600 gUnknown_08DDAE40:: @ 8DDAE40 - .incbin "baserom.gba", 0xddae40, 0x1a0 + .incbin "baserom.gba", 0xddae40, 0x1a0 gUnknown_08DDAFE0:: @ 8DDAFE0 - .incbin "baserom.gba", 0xddafe0, 0x40 + .incbin "baserom.gba", 0xddafe0, 0x40 gUnknown_08DDB020:: @ 8DDB020 - .incbin "baserom.gba", 0xddb020, 0x2a4 + .incbin "baserom.gba", 0xddb020, 0x2a4 gUnknown_08DDB2C4:: @ 8DDB2C4 - .incbin "baserom.gba", 0xddb2c4, 0x120 + .incbin "baserom.gba", 0xddb2c4, 0x120 gUnknown_08DDB3E4:: @ 8DDB3E4 .incbin "baserom.gba", 0xddb3e4, 0x80 diff --git a/data/party_menu.s b/data/party_menu.s index a21b985c1b..95d9bb78e4 100644 --- a/data/party_menu.s +++ b/data/party_menu.s @@ -167,50 +167,50 @@ gUnknown_08615AF1:: @ 8615AF1 gUnknown_08615AF4:: @ 8615AF4 .4byte gUnknown_085E9E43 - .4byte gUnknown_085EA010 - .4byte gUnknown_085EA02A - .4byte gUnknown_085E9E55 - .4byte gUnknown_085E9E64 - .4byte gUnknown_085E9E79 - .4byte gUnknown_085E9E8F - .4byte gUnknown_085E9EBC - .4byte gUnknown_085E9ED4 - .4byte gUnknown_085E9EE9 - .4byte gUnknown_085E9FDB - .4byte gUnknown_085EA046 - .4byte gUnknown_085EA05B - .4byte gUnknown_085E9F01 - .4byte gUnknown_085E9F58 - .4byte gUnknown_085E9F6F - .4byte gUnknown_085E9F81 - .4byte gUnknown_085E9F90 - .4byte gUnknown_085E9FA7 - .4byte gUnknown_085E9FC2 - .4byte gText_EmptyString2 - .4byte gUnknown_085E9EA6 - .4byte gUnknown_085E9F16 - .4byte gUnknown_085E9F2A - .4byte gUnknown_085E9F42 - .4byte gUnknown_085E9FF9 - .4byte gUnknown_085EA073 + .4byte gUnknown_085EA010 + .4byte gUnknown_085EA02A + .4byte gUnknown_085E9E55 + .4byte gUnknown_085E9E64 + .4byte gUnknown_085E9E79 + .4byte gUnknown_085E9E8F + .4byte gUnknown_085E9EBC + .4byte gUnknown_085E9ED4 + .4byte gUnknown_085E9EE9 + .4byte gUnknown_085E9FDB + .4byte gUnknown_085EA046 + .4byte gUnknown_085EA05B + .4byte gUnknown_085E9F01 + .4byte gUnknown_085E9F58 + .4byte gUnknown_085E9F6F + .4byte gUnknown_085E9F81 + .4byte gUnknown_085E9F90 + .4byte gUnknown_085E9FA7 + .4byte gUnknown_085E9FC2 + .4byte gText_EmptyString2 + .4byte gUnknown_085E9EA6 + .4byte gUnknown_085E9F16 + .4byte gUnknown_085E9F2A + .4byte gUnknown_085E9F42 + .4byte gUnknown_085E9FF9 + .4byte gUnknown_085EA073 gUnknown_08615B60:: @ 8615B60 - .4byte gUnknown_085EA091 - .4byte gUnknown_085EA099 - .4byte gUnknown_085EA09E - .4byte gUnknown_085EA0A4 - .4byte gUnknown_085EA0AB - .4byte gUnknown_085EA0E7 - .4byte gUnknown_085EA0B1 - .4byte gUnknown_085EA0B6 - .4byte gUnknown_085EA0BF - .4byte gUnknown_085EA0C5 - .4byte gUnknown_085EA0CF - .4byte gUnknown_085EA0D7 - .4byte gUnknown_085EA0DC + .4byte gUnknown_085EA091 + .4byte gUnknown_085EA099 + .4byte gUnknown_085EA09E + .4byte gUnknown_085EA0A4 + .4byte gUnknown_085EA0AB + .4byte gUnknown_085EA0E7 + .4byte gUnknown_085EA0B1 + .4byte gUnknown_085EA0B6 + .4byte gUnknown_085EA0BF + .4byte gUnknown_085EA0C5 + .4byte gUnknown_085EA0CF + .4byte gUnknown_085EA0D7 + .4byte gUnknown_085EA0DC gUnknown_08615B94:: @ 8615B94 - .incbin "baserom.gba", 0x615b94, 0x74 + .incbin "baserom.gba", 0x615b94, 0x74 gUnknown_08615C08:: @ 8615C08 .incbin "baserom.gba", 0x615c08, 0x130 @@ -228,13 +228,13 @@ gUnknown_08615D9C:: @ 8615D9C .incbin "baserom.gba", 0x615d9c, 0x70 gUnknown_08615E0C:: @ 8615E0C - .incbin "baserom.gba", 0x615e0c, 0x24 + .incbin "baserom.gba", 0x615e0c, 0x24 gUnknown_08615E30:: @ 8615E30 - .incbin "baserom.gba", 0x615e30, 0x40 + .incbin "baserom.gba", 0x615e30, 0x40 gUnknown_08615E70:: @ 8615E70 - .incbin "baserom.gba", 0x615e70, 0x40 + .incbin "baserom.gba", 0x615e70, 0x40 gUnknown_08615EB0:: @ 8615EB0 obj_tiles gUnknown_08615E30, 0x40, 55120 diff --git a/data/pokedex.s b/data/pokedex.s index d0c286ab6d..004f4484d7 100644 --- a/data/pokedex.s +++ b/data/pokedex.s @@ -1,8 +1,8 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section .rodata - .align 2, 0 + .section .rodata + .align 2, 0 .macro unk_dex_struct texts, a2, a3, a4 .4byte \texts diff --git a/data/pokedex_entries.inc b/data/pokedex_entries.inc index 76eedf023d..ce98a7b265 100644 --- a/data/pokedex_entries.inc +++ b/data/pokedex_entries.inc @@ -1,11 +1,11 @@ .align 2 gPokedexEntries:: @ 856B5B0 .string "UNKNOWN$", 12 - pokedex_entry 0, 0, gDummyPokedexText, 256, 0, 256, 0 + pokedex_entry 0, 0, gDummyPokedexText, 256, 0, 256, 0 .string "SEED$", 12 pokedex_entry 7, 69, gBulbasaurPokedexText, 356, 17, 256, 0 .string "SEED$", 12 - pokedex_entry 10, 130, gIvysaurPokedexText, 335, 13, 256, 0 + pokedex_entry 10, 130, gIvysaurPokedexText, 335, 13, 256, 0 .string "SEED$", 12 pokedex_entry 20, 1000, gVenusaurPokedexText, 256, 0, 388, 6 .string "LIZARD$", 12 @@ -23,37 +23,37 @@ gPokedexEntries:: @ 856B5B0 .string "WORM$", 12 pokedex_entry 3, 29, gCaterpiePokedexText, 549, 22, 256, 0 .string "COCOON$", 12 - pokedex_entry 7, 99, gMetapodPokedexText, 350, 18, 256, 0 + pokedex_entry 7, 99, gMetapodPokedexText, 350, 18, 256, 0 .string "BUTTERFLY$", 12 pokedex_entry 11, 320, gButterfreePokedexText, 312, 2, 256, 0 .string "HAIRY BUG$", 12 - pokedex_entry 3, 32, gWeedlePokedexText, 455, 22, 256, 0 + pokedex_entry 3, 32, gWeedlePokedexText, 455, 22, 256, 0 .string "COCOON$", 12 - pokedex_entry 6, 100, gKakunaPokedexText, 424, 17, 256, 0 + pokedex_entry 6, 100, gKakunaPokedexText, 424, 17, 256, 0 .string "POISON BEE$", 12 pokedex_entry 10, 295, gBeedrillPokedexText, 366, 2, 256, 0 .string "TINY BIRD$", 12 - pokedex_entry 3, 18, gPidgeyPokedexText, 508, -3, 256, 0 + pokedex_entry 3, 18, gPidgeyPokedexText, 508, -3, 256, 0 .string "BIRD$", 12 pokedex_entry 11, 300, gPidgeottoPokedexText, 331, 10, 256, 0 .string "BIRD$", 12 - pokedex_entry 15, 395, gPidgeotPokedexText, 269, 0, 256, 0 + pokedex_entry 15, 395, gPidgeotPokedexText, 269, 0, 256, 0 .string "MOUSE$", 12 - pokedex_entry 3, 35, gRattataPokedexText, 481, 21, 256, 0 + pokedex_entry 3, 35, gRattataPokedexText, 481, 21, 256, 0 .string "MOUSE$", 12 pokedex_entry 7, 185, gRaticatePokedexText, 459, 18, 256, 0 .string "TINY BIRD$", 12 - pokedex_entry 3, 20, gSpearowPokedexText, 571, 22, 256, 0 + pokedex_entry 3, 20, gSpearowPokedexText, 571, 22, 256, 0 .string "BEAK$", 12 - pokedex_entry 12, 380, gFearowPokedexText, 278, 1, 256, 0 + pokedex_entry 12, 380, gFearowPokedexText, 278, 1, 256, 0 .string "SNAKE$", 12 - pokedex_entry 20, 69, gEkansPokedexText, 298, 12, 256, 0 + pokedex_entry 20, 69, gEkansPokedexText, 298, 12, 256, 0 .string "COBRA$", 12 - pokedex_entry 35, 650, gArbokPokedexText, 256, 0, 296, 2 + pokedex_entry 35, 650, gArbokPokedexText, 256, 0, 296, 2 .string "MOUSE$", 12 - pokedex_entry 4, 60, gPikachuPokedexText, 479, 19, 256, 0 + pokedex_entry 4, 60, gPikachuPokedexText, 479, 19, 256, 0 .string "MOUSE$", 12 - pokedex_entry 8, 300, gRaichuPokedexText, 426, 13, 256, 0 + pokedex_entry 8, 300, gRaichuPokedexText, 426, 13, 256, 0 .string "MOUSE$", 12 pokedex_entry 6, 120, gSandshrewPokedexText, 365, 18, 256, 0 .string "MOUSE$", 12 @@ -75,7 +75,7 @@ gPokedexEntries:: @ 856B5B0 .string "FAIRY$", 12 pokedex_entry 13, 400, gClefablePokedexText, 256, 5, 256, 0 .string "FOX$", 12 - pokedex_entry 6, 99, gVulpixPokedexText, 542, 19, 256, 0 + pokedex_entry 6, 99, gVulpixPokedexText, 542, 19, 256, 0 .string "FOX$", 12 pokedex_entry 11, 199, gNinetalesPokedexText, 339, 10, 256, 0 .string "BALLOON$", 12 @@ -83,37 +83,37 @@ gPokedexEntries:: @ 856B5B0 .string "BALLOON$", 12 pokedex_entry 10, 120, gWigglytuffPokedexText, 328, 11, 256, 0 .string "BAT$", 12 - pokedex_entry 8, 75, gZubatPokedexText, 362, -5, 256, 0 + pokedex_entry 8, 75, gZubatPokedexText, 362, -5, 256, 0 .string "BAT$", 12 - pokedex_entry 16, 550, gGolbatPokedexText, 256, 1, 256, 0 + pokedex_entry 16, 550, gGolbatPokedexText, 256, 1, 256, 0 .string "WEED$", 12 - pokedex_entry 5, 54, gOddishPokedexText, 423, 19, 256, 0 + pokedex_entry 5, 54, gOddishPokedexText, 423, 19, 256, 0 .string "WEED$", 12 - pokedex_entry 8, 86, gGloomPokedexText, 329, 13, 256, 0 + pokedex_entry 8, 86, gGloomPokedexText, 329, 13, 256, 0 .string "FLOWER$", 12 pokedex_entry 12, 186, gVileplumePokedexText, 256, 4, 256, 0 .string "MUSHROOM$", 12 - pokedex_entry 3, 54, gParasPokedexText, 593, 22, 256, 0 + pokedex_entry 3, 54, gParasPokedexText, 593, 22, 256, 0 .string "MUSHROOM$", 12 pokedex_entry 10, 295, gParasectPokedexText, 307, 8, 256, 0 .string "INSECT$", 12 - pokedex_entry 10, 300, gVenonatPokedexText, 360, 0, 256, -1 + pokedex_entry 10, 300, gVenonatPokedexText, 360, 0, 256, -1 .string "POISON MOTH$", 12 pokedex_entry 15, 125, gVenomothPokedexText, 285, 2, 256, 1 .string "MOLE$", 12 - pokedex_entry 2, 8, gDiglettPokedexText, 833, 25, 256, 0 + pokedex_entry 2, 8, gDiglettPokedexText, 833, 25, 256, 0 .string "MOLE$", 12 - pokedex_entry 7, 333, gDugtrioPokedexText, 406, 18, 256, 0 + pokedex_entry 7, 333, gDugtrioPokedexText, 406, 18, 256, 0 .string "SCRATCH CAT$", 12 - pokedex_entry 4, 42, gMeowthPokedexText, 480, 19, 256, 0 + pokedex_entry 4, 42, gMeowthPokedexText, 480, 19, 256, 0 .string "CLASSY CAT$", 12 - pokedex_entry 10, 320, gPersianPokedexText, 320, 10, 256, 0 + pokedex_entry 10, 320, gPersianPokedexText, 320, 10, 256, 0 .string "DUCK$", 12 - pokedex_entry 8, 196, gPsyduckPokedexText, 369, 15, 256, 0 + pokedex_entry 8, 196, gPsyduckPokedexText, 369, 15, 256, 0 .string "DUCK$", 12 - pokedex_entry 17, 766, gGolduckPokedexText, 256, 1, 273, 1 + pokedex_entry 17, 766, gGolduckPokedexText, 256, 1, 273, 1 .string "PIG MONKEY$", 12 - pokedex_entry 5, 280, gMankeyPokedexText, 404, 19, 256, 0 + pokedex_entry 5, 280, gMankeyPokedexText, 404, 19, 256, 0 .string "PIG MONKEY$", 12 pokedex_entry 10, 320, gPrimeapePokedexText, 326, 10, 256, 0 .string "PUPPY$", 12 @@ -121,23 +121,23 @@ gPokedexEntries:: @ 856B5B0 .string "LEGENDARY$", 12 pokedex_entry 19, 1550, gArcaninePokedexText, 256, 1, 312, 4 .string "TADPOLE$", 12 - pokedex_entry 6, 124, gPoliwagPokedexText, 369, 20, 256, 0 + pokedex_entry 6, 124, gPoliwagPokedexText, 369, 20, 256, 0 .string "TADPOLE$", 12 pokedex_entry 10, 200, gPoliwhirlPokedexText, 288, 11, 256, 0 .string "TADPOLE$", 12 pokedex_entry 13, 540, gPoliwrathPokedexText, 256, 6, 256, 0 .string "PSI$", 12 - pokedex_entry 9, 195, gAbraPokedexText, 363, 14, 256, 0 + pokedex_entry 9, 195, gAbraPokedexText, 363, 14, 256, 0 .string "PSI$", 12 - pokedex_entry 13, 565, gKadabraPokedexText, 256, 3, 256, 0 + pokedex_entry 13, 565, gKadabraPokedexText, 256, 3, 256, 0 .string "PSI$", 12 pokedex_entry 15, 480, gAlakazamPokedexText, 256, 3, 256, 0 .string "SUPERPOWER$", 12 - pokedex_entry 8, 195, gMachopPokedexText, 342, 14, 256, 0 + pokedex_entry 8, 195, gMachopPokedexText, 342, 14, 256, 0 .string "SUPERPOWER$", 12 - pokedex_entry 15, 705, gMachokePokedexText, 323, 9, 257, 0 + pokedex_entry 15, 705, gMachokePokedexText, 323, 9, 257, 0 .string "SUPERPOWER$", 12 - pokedex_entry 16, 1300, gMachampPokedexText, 280, 1, 269, -1 + pokedex_entry 16, 1300, gMachampPokedexText, 280, 1, 269, -1 .string "FLOWER$", 12 pokedex_entry 7, 40, gBellsproutPokedexText, 354, 16, 256, 0 .string "FLYCATCHER$", 12 @@ -149,19 +149,19 @@ gPokedexEntries:: @ 856B5B0 .string "JELLYFISH$", 12 pokedex_entry 16, 550, gTentacruelPokedexText, 256, 0, 312, 1 .string "ROCK$", 12 - pokedex_entry 4, 200, gGeodudePokedexText, 347, 18, 256, 0 + pokedex_entry 4, 200, gGeodudePokedexText, 347, 18, 256, 0 .string "ROCK$", 12 pokedex_entry 10, 1050, gGravelerPokedexText, 256, 2, 256, 0 .string "MEGATON$", 12 - pokedex_entry 14, 3000, gGolemPokedexText, 256, 3, 296, 2 + pokedex_entry 14, 3000, gGolemPokedexText, 256, 3, 296, 2 .string "FIRE HORSE$", 12 - pokedex_entry 10, 300, gPonytaPokedexText, 283, 8, 256, 0 + pokedex_entry 10, 300, gPonytaPokedexText, 283, 8, 256, 0 .string "FIRE HORSE$", 12 pokedex_entry 17, 950, gRapidashPokedexText, 256, 0, 289, 1 .string "DOPEY$", 12 pokedex_entry 12, 360, gSlowpokePokedexText, 256, 10, 256, 0 .string "HERMIT CRAB$", 12 - pokedex_entry 16, 785, gSlowbroPokedexText, 256, 6, 296, 2 + pokedex_entry 16, 785, gSlowbroPokedexText, 256, 6, 296, 2 .string "MAGNET$", 12 pokedex_entry 3, 60, gMagnemitePokedexText, 288, -9, 256, 0 .string "MAGNET$", 12 @@ -169,39 +169,39 @@ gPokedexEntries:: @ 856B5B0 .string "WILD DUCK$", 12 pokedex_entry 8, 150, gFarfetchdPokedexText, 330, 2, 293, 2 .string "TWIN BIRD$", 12 - pokedex_entry 14, 392, gDoduoPokedexText, 256, 3, 257, -1 + pokedex_entry 14, 392, gDoduoPokedexText, 256, 3, 257, -1 .string "TRIPLE BIRD$", 12 - pokedex_entry 18, 852, gDodrioPokedexText, 256, 0, 268, 0 + pokedex_entry 18, 852, gDodrioPokedexText, 256, 0, 268, 0 .string "SEA LION$", 12 - pokedex_entry 11, 900, gSeelPokedexText, 297, 8, 256, 0 + pokedex_entry 11, 900, gSeelPokedexText, 297, 8, 256, 0 .string "SEA LION$", 12 - pokedex_entry 17, 1200, gDewgongPokedexText, 256, 0, 275, 0 + pokedex_entry 17, 1200, gDewgongPokedexText, 256, 0, 275, 0 .string "SLUDGE$", 12 - pokedex_entry 9, 300, gGrimerPokedexText, 258, 10, 256, 0 + pokedex_entry 9, 300, gGrimerPokedexText, 258, 10, 256, 0 .string "SLUDGE$", 12 - pokedex_entry 12, 300, gMukPokedexText, 256, 2, 256, 0 + pokedex_entry 12, 300, gMukPokedexText, 256, 2, 256, 0 .string "BIVALVE$", 12 pokedex_entry 3, 40, gShellderPokedexText, 675, 24, 256, 0 .string "BIVALVE$", 12 pokedex_entry 15, 1325, gCloysterPokedexText, 256, 0, 269, 1 .string "GAS$", 12 - pokedex_entry 13, 1, gGastlyPokedexText, 256, 0, 256, 0 + pokedex_entry 13, 1, gGastlyPokedexText, 256, 0, 256, 0 .string "GAS$", 12 - pokedex_entry 16, 1, gHaunterPokedexText, 256, 2, 293, 2 + pokedex_entry 16, 1, gHaunterPokedexText, 256, 2, 293, 2 .string "SHADOW$", 12 - pokedex_entry 15, 405, gGengarPokedexText, 256, 2, 302, 2 + pokedex_entry 15, 405, gGengarPokedexText, 256, 2, 302, 2 .string "ROCK SNAKE$", 12 - pokedex_entry 88, 2100, gOnixPokedexText, 256, 1, 515, 14 + pokedex_entry 88, 2100, gOnixPokedexText, 256, 1, 515, 14 .string "HYPNOSIS$", 12 - pokedex_entry 10, 324, gDrowzeePokedexText, 274, 6, 256, 0 + pokedex_entry 10, 324, gDrowzeePokedexText, 274, 6, 256, 0 .string "HYPNOSIS$", 12 - pokedex_entry 16, 756, gHypnoPokedexText, 256, 3, 257, 0 + pokedex_entry 16, 756, gHypnoPokedexText, 256, 3, 257, 0 .string "RIVER CRAB$", 12 - pokedex_entry 4, 65, gKrabbyPokedexText, 469, 20, 256, 0 + pokedex_entry 4, 65, gKrabbyPokedexText, 469, 20, 256, 0 .string "PINCER$", 12 - pokedex_entry 13, 600, gKinglerPokedexText, 256, 2, 256, 0 + pokedex_entry 13, 600, gKinglerPokedexText, 256, 2, 256, 0 .string "BALL$", 12 - pokedex_entry 5, 104, gVoltorbPokedexText, 364, -8, 256, 0 + pokedex_entry 5, 104, gVoltorbPokedexText, 364, -8, 256, 0 .string "BALL$", 12 pokedex_entry 12, 666, gElectrodePokedexText, 256, 0, 256, 0 .string "EGG$", 12 @@ -209,9 +209,9 @@ gPokedexEntries:: @ 856B5B0 .string "COCONUT$", 12 pokedex_entry 20, 1200, gExeggutorPokedexText, 256, 0, 309, 5 .string "LONELY$", 12 - pokedex_entry 4, 65, gCubonePokedexText, 545, 21, 256, 0 + pokedex_entry 4, 65, gCubonePokedexText, 545, 21, 256, 0 .string "BONE KEEPER$", 12 - pokedex_entry 10, 450, gMarowakPokedexText, 293, 12, 256, 0 + pokedex_entry 10, 450, gMarowakPokedexText, 293, 12, 256, 0 .string "KICKING$", 12 pokedex_entry 15, 498, gHitmonleePokedexText, 256, 3, 259, 1 .string "PUNCHING$", 12 @@ -219,101 +219,101 @@ gPokedexEntries:: @ 856B5B0 .string "LICKING$", 12 pokedex_entry 12, 655, gLickitungPokedexText, 256, 4, 256, 0 .string "POISON GAS$", 12 - pokedex_entry 6, 10, gKoffingPokedexText, 369, -1, 256, 0 + pokedex_entry 6, 10, gKoffingPokedexText, 369, -1, 256, 0 .string "POISON GAS$", 12 - pokedex_entry 12, 95, gWeezingPokedexText, 305, 3, 256, 0 + pokedex_entry 12, 95, gWeezingPokedexText, 305, 3, 256, 0 .string "SPIKES$", 12 - pokedex_entry 10, 1150, gRhyhornPokedexText, 267, 6, 256, 0 + pokedex_entry 10, 1150, gRhyhornPokedexText, 267, 6, 256, 0 .string "DRILL$", 12 - pokedex_entry 19, 1200, gRhydonPokedexText, 256, 1, 299, 2 + pokedex_entry 19, 1200, gRhydonPokedexText, 256, 1, 299, 2 .string "EGG$", 12 - pokedex_entry 11, 346, gChanseyPokedexText, 257, 7, 256, 0 + pokedex_entry 11, 346, gChanseyPokedexText, 257, 7, 256, 0 .string "VINE$", 12 - pokedex_entry 10, 350, gTangelaPokedexText, 304, 1, 256, 0 + pokedex_entry 10, 350, gTangelaPokedexText, 304, 1, 256, 0 .string "PARENT$", 12 pokedex_entry 22, 800, gKangaskhanPokedexText, 256, 0, 387, 8 .string "DRAGON$", 12 - pokedex_entry 4, 80, gHorseaPokedexText, 399, -1, 256, 0 + pokedex_entry 4, 80, gHorseaPokedexText, 399, -1, 256, 0 .string "DRAGON$", 12 - pokedex_entry 12, 250, gSeadraPokedexText, 299, 3, 256, 0 + pokedex_entry 12, 250, gSeadraPokedexText, 299, 3, 256, 0 .string "GOLDFISH$", 12 - pokedex_entry 6, 150, gGoldeenPokedexText, 379, 4, 256, 0 + pokedex_entry 6, 150, gGoldeenPokedexText, 379, 4, 256, 0 .string "GOLDFISH$", 12 - pokedex_entry 13, 390, gSeakingPokedexText, 256, 3, 256, 0 + pokedex_entry 13, 390, gSeakingPokedexText, 256, 3, 256, 0 .string "STAR SHAPE$", 12 - pokedex_entry 8, 345, gStaryuPokedexText, 326, 1, 256, 0 + pokedex_entry 8, 345, gStaryuPokedexText, 326, 1, 256, 0 .string "MYSTERIOUS$", 12 - pokedex_entry 11, 800, gStarmiePokedexText, 301, 3, 256, 0 + pokedex_entry 11, 800, gStarmiePokedexText, 301, 3, 256, 0 .string "BARRIER$", 12 - pokedex_entry 13, 545, gMrmimePokedexText, 258, 6, 256, 0 + pokedex_entry 13, 545, gMrmimePokedexText, 258, 6, 256, 0 .string "MANTIS$", 12 - pokedex_entry 15, 560, gScytherPokedexText, 256, 1, 293, 2 + pokedex_entry 15, 560, gScytherPokedexText, 256, 1, 293, 2 .string "HUMAN SHAPE$", 12 - pokedex_entry 14, 406, gJynxPokedexText, 256, 3, 300, 1 + pokedex_entry 14, 406, gJynxPokedexText, 256, 3, 300, 1 .string "ELECTRIC$", 12 pokedex_entry 11, 300, gElectabuzzPokedexText, 351, 8, 256, 0 .string "SPITFIRE$", 12 - pokedex_entry 13, 445, gMagmarPokedexText, 277, 5, 256, 0 + pokedex_entry 13, 445, gMagmarPokedexText, 277, 5, 256, 0 .string "STAG BEETLE$", 12 - pokedex_entry 15, 550, gPinsirPokedexText, 256, 2, 257, 0 + pokedex_entry 15, 550, gPinsirPokedexText, 256, 2, 257, 0 .string "WILD BULL$", 12 - pokedex_entry 14, 884, gTaurosPokedexText, 256, 0, 256, 0 + pokedex_entry 14, 884, gTaurosPokedexText, 256, 0, 256, 0 .string "FISH$", 12 pokedex_entry 9, 100, gMagikarpPokedexText, 310, 4, 256, 0 .string "ATROCIOUS$", 12 pokedex_entry 65, 2350, gGyaradosPokedexText, 256, 6, 481, 13 .string "TRANSPORT$", 12 - pokedex_entry 25, 2200, gLaprasPokedexText, 257, 10, 423, 8 + pokedex_entry 25, 2200, gLaprasPokedexText, 257, 10, 423, 8 .string "TRANSFORM$", 12 - pokedex_entry 3, 40, gDittoPokedexText, 633, 23, 256, 0 + pokedex_entry 3, 40, gDittoPokedexText, 633, 23, 256, 0 .string "EVOLUTION$", 12 - pokedex_entry 3, 65, gEeveePokedexText, 476, 18, 256, 0 + pokedex_entry 3, 65, gEeveePokedexText, 476, 18, 256, 0 .string "BUBBLE JET$", 12 pokedex_entry 10, 290, gVaporeonPokedexText, 316, 8, 256, 0 .string "LIGHTNING$", 12 - pokedex_entry 8, 245, gJolteonPokedexText, 283, 8, 256, 0 + pokedex_entry 8, 245, gJolteonPokedexText, 283, 8, 256, 0 .string "FLAME$", 12 - pokedex_entry 9, 250, gFlareonPokedexText, 306, 12, 256, 0 + pokedex_entry 9, 250, gFlareonPokedexText, 306, 12, 256, 0 .string "VIRTUAL$", 12 - pokedex_entry 8, 365, gPorygonPokedexText, 328, 15, 256, 0 + pokedex_entry 8, 365, gPorygonPokedexText, 328, 15, 256, 0 .string "SPIRAL$", 12 - pokedex_entry 4, 75, gOmanytePokedexText, 521, 22, 256, 0 + pokedex_entry 4, 75, gOmanytePokedexText, 521, 22, 256, 0 .string "SPIRAL$", 12 - pokedex_entry 10, 350, gOmastarPokedexText, 307, 7, 256, 0 + pokedex_entry 10, 350, gOmastarPokedexText, 307, 7, 256, 0 .string "SHELLFISH$", 12 - pokedex_entry 5, 115, gKabutoPokedexText, 454, 21, 256, 0 + pokedex_entry 5, 115, gKabutoPokedexText, 454, 21, 256, 0 .string "SHELLFISH$", 12 pokedex_entry 13, 405, gKabutopsPokedexText, 271, 3, 256, 0 .string "FOSSIL$", 12 pokedex_entry 18, 590, gAerodactylPokedexText, 256, 0, 302, 4 .string "SLEEPING$", 12 - pokedex_entry 21, 4600, gSnorlaxPokedexText, 256, 4, 423, 11 + pokedex_entry 21, 4600, gSnorlaxPokedexText, 256, 4, 423, 11 .string "FREEZE$", 12 pokedex_entry 17, 554, gArticunoPokedexText, 256, 0, 309, 2 .string "ELECTRIC$", 12 - pokedex_entry 16, 526, gZapdosPokedexText, 256, 0, 318, 3 + pokedex_entry 16, 526, gZapdosPokedexText, 256, 0, 318, 3 .string "FLAME$", 12 - pokedex_entry 20, 600, gMoltresPokedexText, 270, 0, 387, 8 + pokedex_entry 20, 600, gMoltresPokedexText, 270, 0, 387, 8 .string "DRAGON$", 12 - pokedex_entry 18, 33, gDratiniPokedexText, 256, 8, 386, 6 + pokedex_entry 18, 33, gDratiniPokedexText, 256, 8, 386, 6 .string "DRAGON$", 12 pokedex_entry 40, 165, gDragonairPokedexText, 256, 0, 411, 5 .string "DRAGON$", 12 pokedex_entry 22, 2100, gDragonitePokedexText, 256, 0, 309, 4 .string "GENETIC$", 12 - pokedex_entry 20, 1220, gMewtwoPokedexText, 256, 0, 309, 4 + pokedex_entry 20, 1220, gMewtwoPokedexText, 256, 0, 309, 4 .string "NEW SPECIES$", 12 - pokedex_entry 4, 40, gMewPokedexText, 457, -2, 256, 0 + pokedex_entry 4, 40, gMewPokedexText, 457, -2, 256, 0 .string "LEAF$", 12 pokedex_entry 9, 64, gChikoritaPokedexText, 512, 20, 256, 0 .string "LEAF$", 12 - pokedex_entry 12, 158, gBayleefPokedexText, 296, 4, 256, 0 + pokedex_entry 12, 158, gBayleefPokedexText, 296, 4, 256, 0 .string "HERB$", 12 pokedex_entry 18, 1005, gMeganiumPokedexText, 256, 0, 277, 1 .string "FIRE MOUSE$", 12 pokedex_entry 5, 79, gCyndaquilPokedexText, 539, 21, 256, 0 .string "VOLCANO$", 12 - pokedex_entry 9, 190, gQuilavaPokedexText, 329, 11, 256, 0 + pokedex_entry 9, 190, gQuilavaPokedexText, 329, 11, 256, 0 .string "VOLCANO$", 12 pokedex_entry 17, 795, gTyphlosionPokedexText, 256, 0, 268, 1 .string "BIG JAW$", 12 @@ -323,51 +323,51 @@ gPokedexEntries:: @ 856B5B0 .string "BIG JAW$", 12 pokedex_entry 23, 888, gFeraligatrPokedexText, 256, 0, 342, 7 .string "SCOUT$", 12 - pokedex_entry 8, 60, gSentretPokedexText, 439, 12, 256, 0 + pokedex_entry 8, 60, gSentretPokedexText, 439, 12, 256, 0 .string "LONG BODY$", 12 - pokedex_entry 18, 325, gFurretPokedexText, 346, 11, 256, 0 + pokedex_entry 18, 325, gFurretPokedexText, 346, 11, 256, 0 .string "OWL$", 12 pokedex_entry 7, 212, gHoothootPokedexText, 380, -2, 256, 0 .string "OWL$", 12 - pokedex_entry 16, 408, gNoctowlPokedexText, 278, 3, 256, 0 + pokedex_entry 16, 408, gNoctowlPokedexText, 278, 3, 256, 0 .string "FIVE STAR$", 12 - pokedex_entry 10, 108, gLedybaPokedexText, 256, 4, 256, 0 + pokedex_entry 10, 108, gLedybaPokedexText, 256, 4, 256, 0 .string "FIVE STAR$", 12 - pokedex_entry 14, 356, gLedianPokedexText, 256, 2, 256, 0 + pokedex_entry 14, 356, gLedianPokedexText, 256, 2, 256, 0 .string "STRING SPIT$", 12 pokedex_entry 5, 85, gSpinarakPokedexText, 414, 21, 256, 0 .string "LONG LEG$", 12 - pokedex_entry 11, 335, gAriadosPokedexText, 316, 8, 256, 0 + pokedex_entry 11, 335, gAriadosPokedexText, 316, 8, 256, 0 .string "BAT$", 12 - pokedex_entry 18, 750, gCrobatPokedexText, 256, 0, 281, 1 + pokedex_entry 18, 750, gCrobatPokedexText, 256, 0, 281, 1 .string "ANGLER$", 12 pokedex_entry 5, 120, gChinchouPokedexText, 424, -2, 256, 0 .string "LIGHT$", 12 - pokedex_entry 12, 225, gLanturnPokedexText, 269, 6, 256, 0 + pokedex_entry 12, 225, gLanturnPokedexText, 269, 6, 256, 0 .string "TINY MOUSE$", 12 - pokedex_entry 3, 20, gPichuPokedexText, 508, 20, 256, 0 + pokedex_entry 3, 20, gPichuPokedexText, 508, 20, 256, 0 .string "STAR SHAPE$", 12 - pokedex_entry 3, 30, gCleffaPokedexText, 462, 23, 256, 0 + pokedex_entry 3, 30, gCleffaPokedexText, 462, 23, 256, 0 .string "BALLOON$", 12 pokedex_entry 3, 10, gIgglybuffPokedexText, 457, -1, 256, 0 .string "SPIKE BALL$", 12 - pokedex_entry 3, 15, gTogepiPokedexText, 507, 23, 256, 0 + pokedex_entry 3, 15, gTogepiPokedexText, 507, 23, 256, 0 .string "HAPPINESS$", 12 - pokedex_entry 6, 32, gTogeticPokedexText, 424, 17, 256, 0 + pokedex_entry 6, 32, gTogeticPokedexText, 424, 17, 256, 0 .string "TINY BIRD$", 12 - pokedex_entry 2, 20, gNatuPokedexText, 610, 25, 256, 0 + pokedex_entry 2, 20, gNatuPokedexText, 610, 25, 256, 0 .string "MYSTIC$", 12 - pokedex_entry 15, 150, gXatuPokedexText, 256, 6, 318, 4 + pokedex_entry 15, 150, gXatuPokedexText, 256, 6, 318, 4 .string "WOOL$", 12 - pokedex_entry 6, 78, gMareepPokedexText, 379, 18, 256, 0 + pokedex_entry 6, 78, gMareepPokedexText, 379, 18, 256, 0 .string "WOOL$", 12 - pokedex_entry 8, 133, gFlaaffyPokedexText, 372, 15, 256, 0 + pokedex_entry 8, 133, gFlaaffyPokedexText, 372, 15, 256, 0 .string "LIGHT$", 12 pokedex_entry 14, 615, gAmpharosPokedexText, 256, 4, 256, 0 .string "FLOWER$", 12 pokedex_entry 4, 58, gBellossomPokedexText, 472, 21, 256, 0 .string "AQUA MOUSE$", 12 - pokedex_entry 4, 85, gMarillPokedexText, 476, 20, 256, 0 + pokedex_entry 4, 85, gMarillPokedexText, 476, 20, 256, 0 .string "AQUA RABBIT$", 12 pokedex_entry 8, 285, gAzumarillPokedexText, 448, 16, 256, 0 .string "IMITATION$", 12 @@ -375,49 +375,49 @@ gPokedexEntries:: @ 856B5B0 .string "FROG$", 12 pokedex_entry 11, 339, gPolitoedPokedexText, 289, 6, 256, 0 .string "COTTONWEED$", 12 - pokedex_entry 4, 5, gHoppipPokedexText, 562, -7, 256, 0 + pokedex_entry 4, 5, gHoppipPokedexText, 562, -7, 256, 0 .string "COTTONWEED$", 12 pokedex_entry 6, 10, gSkiploomPokedexText, 387, 0, 256, 0 .string "COTTONWEED$", 12 pokedex_entry 8, 30, gJumpluffPokedexText, 418, -4, 256, 0 .string "LONG TAIL$", 12 - pokedex_entry 8, 115, gAipomPokedexText, 363, 6, 256, 0 + pokedex_entry 8, 115, gAipomPokedexText, 363, 6, 256, 0 .string "SEED$", 12 - pokedex_entry 3, 18, gSunkernPokedexText, 541, 0, 256, 0 + pokedex_entry 3, 18, gSunkernPokedexText, 541, 0, 256, 0 .string "SUN$", 12 pokedex_entry 8, 85, gSunfloraPokedexText, 444, 15, 256, 0 .string "CLEAR WING$", 12 - pokedex_entry 12, 380, gYanmaPokedexText, 274, -1, 256, 0 + pokedex_entry 12, 380, gYanmaPokedexText, 274, -1, 256, 0 .string "WATER FISH$", 12 - pokedex_entry 4, 85, gWooperPokedexText, 479, 21, 256, 0 + pokedex_entry 4, 85, gWooperPokedexText, 479, 21, 256, 0 .string "WATER FISH$", 12 pokedex_entry 14, 750, gQuagsirePokedexText, 256, 4, 256, 0 .string "SUN$", 12 - pokedex_entry 9, 265, gEspeonPokedexText, 363, 14, 256, 0 + pokedex_entry 9, 265, gEspeonPokedexText, 363, 14, 256, 0 .string "MOONLIGHT$", 12 - pokedex_entry 10, 270, gUmbreonPokedexText, 317, 11, 256, 0 + pokedex_entry 10, 270, gUmbreonPokedexText, 317, 11, 256, 0 .string "DARKNESS$", 12 - pokedex_entry 5, 21, gMurkrowPokedexText, 401, -8, 256, 1 + pokedex_entry 5, 21, gMurkrowPokedexText, 401, -8, 256, 1 .string "ROYAL$", 12 pokedex_entry 20, 795, gSlowkingPokedexText, 256, 0, 309, 5 .string "SCREECH$", 12 pokedex_entry 7, 10, gMisdreavusPokedexText, 407, -8, 256, 0 .string "SYMBOL$", 12 - pokedex_entry 5, 50, gUnownPokedexText, 411, 2, 256, 0 + pokedex_entry 5, 50, gUnownPokedexText, 411, 2, 256, 0 .string "PATIENT$", 12 pokedex_entry 13, 285, gWobbuffetPokedexText, 274, 4, 256, 0 .string "LONG NECK$", 12 pokedex_entry 15, 415, gGirafarigPokedexText, 281, 1, 256, 0 .string "BAGWORM$", 12 - pokedex_entry 6, 72, gPinecoPokedexText, 445, 2, 256, 0 + pokedex_entry 6, 72, gPinecoPokedexText, 445, 2, 256, 0 .string "BAGWORM$", 12 pokedex_entry 12, 1258, gForretressPokedexText, 293, 5, 256, 0 .string "LAND SNAKE$", 12 pokedex_entry 15, 140, gDunsparcePokedexText, 316, 17, 256, 0 .string "FLYSCORPION$", 12 - pokedex_entry 11, 648, gGligarPokedexText, 350, -1, 256, 0 + pokedex_entry 11, 648, gGligarPokedexText, 350, -1, 256, 0 .string "IRON SNAKE$", 12 - pokedex_entry 92, 4000, gSteelixPokedexText, 256, 0, 516, 13 + pokedex_entry 92, 4000, gSteelixPokedexText, 256, 0, 516, 13 .string "FAIRY$", 12 pokedex_entry 6, 78, gSnubbullPokedexText, 465, 19, 256, 0 .string "FAIRY$", 12 @@ -425,27 +425,27 @@ gPokedexEntries:: @ 856B5B0 .string "BALLOON$", 12 pokedex_entry 5, 39, gQwilfishPokedexText, 430, 0, 256, 0 .string "PINCER$", 12 - pokedex_entry 18, 1180, gScizorPokedexText, 278, 1, 256, 0 + pokedex_entry 18, 1180, gScizorPokedexText, 278, 1, 256, 0 .string "MOLD$", 12 - pokedex_entry 6, 205, gShucklePokedexText, 485, 18, 256, 0 + pokedex_entry 6, 205, gShucklePokedexText, 485, 18, 256, 0 .string "SINGLE HORN$", 12 pokedex_entry 15, 540, gHeracrossPokedexText, 256, 0, 256, 0 .string "SHARP CLAW$", 12 - pokedex_entry 9, 280, gSneaselPokedexText, 413, -3, 256, 0 + pokedex_entry 9, 280, gSneaselPokedexText, 413, -3, 256, 0 .string "LITTLE BEAR$", 12 pokedex_entry 6, 88, gTeddiursaPokedexText, 455, 19, 256, 0 .string "HIBERNATOR$", 12 pokedex_entry 18, 1258, gUrsaringPokedexText, 256, 0, 256, 0 .string "LAVA$", 12 - pokedex_entry 7, 350, gSlugmaPokedexText, 329, 15, 256, 0 + pokedex_entry 7, 350, gSlugmaPokedexText, 329, 15, 256, 0 .string "LAVA$", 12 pokedex_entry 8, 550, gMagcargoPokedexText, 332, 15, 256, 0 .string "PIG$", 12 - pokedex_entry 4, 65, gSwinubPokedexText, 324, 20, 256, 0 + pokedex_entry 4, 65, gSwinubPokedexText, 324, 20, 256, 0 .string "SWINE$", 12 pokedex_entry 11, 558, gPiloswinePokedexText, 306, 10, 256, 0 .string "CORAL$", 12 - pokedex_entry 6, 50, gCorsolaPokedexText, 410, 15, 256, 0 + pokedex_entry 6, 50, gCorsolaPokedexText, 410, 15, 256, 0 .string "JET$", 12 pokedex_entry 6, 120, gRemoraidPokedexText, 316, 4, 256, 0 .string "JET$", 12 @@ -453,7 +453,7 @@ gPokedexEntries:: @ 856B5B0 .string "DELIVERY$", 12 pokedex_entry 9, 160, gDelibirdPokedexText, 293, 11, 256, 0 .string "KITE$", 12 - pokedex_entry 21, 2200, gMantinePokedexText, 256, 0, 342, 7 + pokedex_entry 21, 2200, gMantinePokedexText, 256, 0, 342, 7 .string "ARMOR BIRD$", 12 pokedex_entry 17, 505, gSkarmoryPokedexText, 256, 0, 271, 1 .string "DARK$", 12 @@ -461,11 +461,11 @@ gPokedexEntries:: @ 856B5B0 .string "DARK$", 12 pokedex_entry 14, 350, gHoundoomPokedexText, 256, 4, 256, 0 .string "DRAGON$", 12 - pokedex_entry 18, 1520, gKingdraPokedexText, 256, 0, 287, 0 + pokedex_entry 18, 1520, gKingdraPokedexText, 256, 0, 287, 0 .string "LONG NOSE$", 12 - pokedex_entry 5, 335, gPhanpyPokedexText, 465, 21, 256, 0 + pokedex_entry 5, 335, gPhanpyPokedexText, 465, 21, 256, 0 .string "ARMOR$", 12 - pokedex_entry 11, 1200, gDonphanPokedexText, 313, 9, 256, 0 + pokedex_entry 11, 1200, gDonphanPokedexText, 313, 9, 256, 0 .string "VIRTUAL$", 12 pokedex_entry 6, 325, gPorygon2PokedexText, 320, 17, 256, 0 .string "BIG HORN$", 12 @@ -473,51 +473,51 @@ gPokedexEntries:: @ 856B5B0 .string "PAINTER$", 12 pokedex_entry 12, 580, gSmearglePokedexText, 287, 5, 256, 0 .string "SCUFFLE$", 12 - pokedex_entry 7, 210, gTyroguePokedexText, 292, 9, 256, 0 + pokedex_entry 7, 210, gTyroguePokedexText, 292, 9, 256, 0 .string "HANDSTAND$", 12 pokedex_entry 14, 480, gHitmontopPokedexText, 256, 2, 257, 0 .string "KISS$", 12 pokedex_entry 4, 60, gSmoochumPokedexText, 440, 20, 256, 0 .string "ELECTRIC$", 12 - pokedex_entry 6, 235, gElekidPokedexText, 363, 14, 256, 0 + pokedex_entry 6, 235, gElekidPokedexText, 363, 14, 256, 0 .string "LIVE COAL$", 12 - pokedex_entry 7, 214, gMagbyPokedexText, 284, 13, 256, 0 + pokedex_entry 7, 214, gMagbyPokedexText, 284, 13, 256, 0 .string "MILK COW$", 12 - pokedex_entry 12, 755, gMiltankPokedexText, 280, 5, 256, 0 + pokedex_entry 12, 755, gMiltankPokedexText, 280, 5, 256, 0 .string "HAPPINESS$", 12 - pokedex_entry 15, 468, gBlisseyPokedexText, 256, 4, 310, 3 + pokedex_entry 15, 468, gBlisseyPokedexText, 256, 4, 310, 3 .string "THUNDER$", 12 - pokedex_entry 19, 1780, gRaikouPokedexText, 256, 0, 345, 7 + pokedex_entry 19, 1780, gRaikouPokedexText, 256, 0, 345, 7 .string "VOLCANO$", 12 - pokedex_entry 21, 1980, gEnteiPokedexText, 259, 0, 345, 7 + pokedex_entry 21, 1980, gEnteiPokedexText, 259, 0, 345, 7 .string "AURORA$", 12 - pokedex_entry 20, 1870, gSuicunePokedexText, 269, 0, 345, 7 + pokedex_entry 20, 1870, gSuicunePokedexText, 269, 0, 345, 7 .string "ROCK SKIN$", 12 pokedex_entry 6, 720, gLarvitarPokedexText, 472, 18, 256, 0 .string "HARD SHELL$", 12 - pokedex_entry 12, 1520, gPupitarPokedexText, 292, 8, 256, 0 + pokedex_entry 12, 1520, gPupitarPokedexText, 292, 8, 256, 0 .string "ARMOR$", 12 pokedex_entry 20, 2020, gTyranitarPokedexText, 256, 0, 345, 7 .string "DIVING$", 12 - pokedex_entry 52, 2160, gLugiaPokedexText, 256, 0, 721, 19 + pokedex_entry 52, 2160, gLugiaPokedexText, 256, 0, 721, 19 .string "RAINBOW$", 12 - pokedex_entry 38, 1990, gHoOhPokedexText, 256, 0, 610, 17 + pokedex_entry 38, 1990, gHoOhPokedexText, 256, 0, 610, 17 .string "TIME TRAVEL$", 12 - pokedex_entry 6, 50, gCelebiPokedexText, 393, -10, 256, 0 + pokedex_entry 6, 50, gCelebiPokedexText, 393, -10, 256, 0 .string "WOOD GECKO$", 12 - pokedex_entry 5, 50, gTreeckoPokedexText, 541, 19, 256, 0 + pokedex_entry 5, 50, gTreeckoPokedexText, 541, 19, 256, 0 .string "WOOD GECKO$", 12 - pokedex_entry 9, 216, gGrovylePokedexText, 360, 5, 256, 0 + pokedex_entry 9, 216, gGrovylePokedexText, 360, 5, 256, 0 .string "FOREST$", 12 pokedex_entry 17, 522, gSceptilePokedexText, 256, -1, 275, 2 .string "CHICK$", 12 - pokedex_entry 4, 25, gTorchicPokedexText, 566, 19, 256, 0 + pokedex_entry 4, 25, gTorchicPokedexText, 566, 19, 256, 0 .string "YOUNG FOWL$", 12 pokedex_entry 9, 195, gCombuskenPokedexText, 343, 5, 256, 0 .string "BLAZE$", 12 pokedex_entry 19, 520, gBlazikenPokedexText, 256, 0, 301, 4 .string "MUD FISH$", 12 - pokedex_entry 4, 76, gMudkipPokedexText, 535, 20, 256, 0 + pokedex_entry 4, 76, gMudkipPokedexText, 535, 20, 256, 0 .string "MUD FISH$", 12 pokedex_entry 7, 280, gMarshtompPokedexText, 340, 7, 256, 0 .string "MUD FISH$", 12 @@ -529,91 +529,91 @@ gPokedexEntries:: @ 856B5B0 .string "TINYRACCOON$", 12 pokedex_entry 4, 175, gZigzagoonPokedexText, 560, 22, 256, 0 .string "RUSHING$", 12 - pokedex_entry 5, 325, gLinoonePokedexText, 321, 7, 256, 0 + pokedex_entry 5, 325, gLinoonePokedexText, 321, 7, 256, 0 .string "WORM$", 12 - pokedex_entry 3, 36, gWurmplePokedexText, 711, 24, 256, 0 + pokedex_entry 3, 36, gWurmplePokedexText, 711, 24, 256, 0 .string "COCOON$", 12 - pokedex_entry 6, 100, gSilcoonPokedexText, 431, 19, 256, 0 + pokedex_entry 6, 100, gSilcoonPokedexText, 431, 19, 256, 0 .string "BUTTERFLY$", 12 pokedex_entry 10, 284, gBeautiflyPokedexText, 298, -1, 256, 0 .string "COCOON$", 12 - pokedex_entry 7, 115, gCascoonPokedexText, 391, 20, 256, 0 + pokedex_entry 7, 115, gCascoonPokedexText, 391, 20, 256, 0 .string "POISON MOTH$", 12 - pokedex_entry 12, 316, gDustoxPokedexText, 269, 1, 256, 0 + pokedex_entry 12, 316, gDustoxPokedexText, 269, 1, 256, 0 .string "WATER WEED$", 12 - pokedex_entry 5, 26, gLotadPokedexText, 406, 19, 256, 0 + pokedex_entry 5, 26, gLotadPokedexText, 406, 19, 256, 0 .string "JOLLY$", 12 - pokedex_entry 12, 325, gLombrePokedexText, 277, 9, 256, 0 + pokedex_entry 12, 325, gLombrePokedexText, 277, 9, 256, 0 .string "CAREFREE$", 12 pokedex_entry 15, 550, gLudicoloPokedexText, 256, 0, 268, -1 .string "ACORN$", 12 - pokedex_entry 5, 40, gSeedotPokedexText, 472, 20, 256, 0 + pokedex_entry 5, 40, gSeedotPokedexText, 472, 20, 256, 0 .string "WILY$", 12 - pokedex_entry 10, 280, gNuzleafPokedexText, 299, 10, 256, 0 + pokedex_entry 10, 280, gNuzleafPokedexText, 299, 10, 256, 0 .string "WICKED$", 12 - pokedex_entry 13, 596, gShiftryPokedexText, 290, 4, 256, 0 + pokedex_entry 13, 596, gShiftryPokedexText, 290, 4, 256, 0 .string "TINYSWALLOW$", 12 - pokedex_entry 3, 23, gTaillowPokedexText, 465, 21, 256, 0 + pokedex_entry 3, 23, gTaillowPokedexText, 465, 21, 256, 0 .string "SWALLOW$", 12 - pokedex_entry 7, 198, gSwellowPokedexText, 428, 15, 256, 0 + pokedex_entry 7, 198, gSwellowPokedexText, 428, 15, 256, 0 .string "SEAGULL$", 12 - pokedex_entry 6, 95, gWingullPokedexText, 295, -2, 256, 0 + pokedex_entry 6, 95, gWingullPokedexText, 295, -2, 256, 0 .string "WATER BIRD$", 12 pokedex_entry 12, 280, gPelipperPokedexText, 288, 1, 256, 0 .string "FEELING$", 12 - pokedex_entry 4, 66, gRaltsPokedexText, 457, -3, 256, 0 + pokedex_entry 4, 66, gRaltsPokedexText, 457, -3, 256, 0 .string "EMOTION$", 12 - pokedex_entry 8, 202, gKirliaPokedexText, 354, 0, 256, 0 + pokedex_entry 8, 202, gKirliaPokedexText, 354, 0, 256, 0 .string "EMBRACE$", 12 pokedex_entry 16, 484, gGardevoirPokedexText, 256, 0, 256, 0 .string "POND SKATER$", 12 - pokedex_entry 5, 17, gSurskitPokedexText, 375, 17, 256, 0 + pokedex_entry 5, 17, gSurskitPokedexText, 375, 17, 256, 0 .string "EYEBALL$", 12 pokedex_entry 8, 36, gMasquerainPokedexText, 378, 8, 256, 0 .string "MUSHROOM$", 12 pokedex_entry 4, 45, gShroomishPokedexText, 513, 22, 256, 0 .string "MUSHROOM$", 12 - pokedex_entry 12, 392, gBreloomPokedexText, 324, 6, 256, 0 + pokedex_entry 12, 392, gBreloomPokedexText, 324, 6, 256, 0 .string "SLACKER$", 12 - pokedex_entry 8, 240, gSlakothPokedexText, 291, 16, 256, 0 + pokedex_entry 8, 240, gSlakothPokedexText, 291, 16, 256, 0 .string "WILD MONKEY$", 12 pokedex_entry 14, 465, gVigorothPokedexText, 301, 2, 256, 0 .string "LAZY$", 12 - pokedex_entry 20, 1305, gSlakingPokedexText, 256, 2, 300, 1 + pokedex_entry 20, 1305, gSlakingPokedexText, 256, 2, 300, 1 .string "TRAINEE$", 12 - pokedex_entry 5, 55, gNincadaPokedexText, 405, 21, 256, 0 + pokedex_entry 5, 55, gNincadaPokedexText, 405, 21, 256, 0 .string "NINJA$", 12 - pokedex_entry 8, 120, gNinjaskPokedexText, 383, -9, 256, 0 + pokedex_entry 8, 120, gNinjaskPokedexText, 383, -9, 256, 0 .string "SHED$", 12 pokedex_entry 8, 12, gShedinjaPokedexText, 372, -8, 256, 0 .string "WHISPER$", 12 - pokedex_entry 6, 163, gWhismurPokedexText, 373, 17, 256, 0 + pokedex_entry 6, 163, gWhismurPokedexText, 373, 17, 256, 0 .string "BIG VOICE$", 12 - pokedex_entry 10, 405, gLoudredPokedexText, 356, 10, 256, 0 + pokedex_entry 10, 405, gLoudredPokedexText, 356, 10, 256, 0 .string "LOUD NOISE$", 12 - pokedex_entry 15, 840, gExploudPokedexText, 284, 1, 256, 0 + pokedex_entry 15, 840, gExploudPokedexText, 284, 1, 256, 0 .string "GUTS$", 12 pokedex_entry 10, 864, gMakuhitaPokedexText, 256, 10, 256, 0 .string "ARM THRUST$", 12 pokedex_entry 23, 2538, gHariyamaPokedexText, 256, 0, 343, 7 .string "POLKA DOT$", 12 - pokedex_entry 2, 20, gAzurillPokedexText, 603, 23, 256, 0 + pokedex_entry 2, 20, gAzurillPokedexText, 603, 23, 256, 0 .string "COMPASS$", 12 pokedex_entry 10, 970, gNosepassPokedexText, 256, 9, 289, 3 .string "KITTEN$", 12 - pokedex_entry 6, 110, gSkittyPokedexText, 492, 19, 256, 0 + pokedex_entry 6, 110, gSkittyPokedexText, 492, 19, 256, 0 .string "PRIM$", 12 pokedex_entry 11, 326, gDelcattyPokedexText, 322, 10, 256, 0 .string "DARKNESS$", 12 - pokedex_entry 5, 110, gSableyePokedexText, 451, 17, 256, 0 + pokedex_entry 5, 110, gSableyePokedexText, 451, 17, 256, 0 .string "DECEIVER$", 12 - pokedex_entry 6, 115, gMawilePokedexText, 466, 17, 256, 0 + pokedex_entry 6, 115, gMawilePokedexText, 466, 17, 256, 0 .string "IRON ARMOR$", 12 - pokedex_entry 4, 600, gAronPokedexText, 419, 23, 256, 0 + pokedex_entry 4, 600, gAronPokedexText, 419, 23, 256, 0 .string "IRON ARMOR$", 12 - pokedex_entry 9, 1200, gLaironPokedexText, 275, 12, 256, 0 + pokedex_entry 9, 1200, gLaironPokedexText, 275, 12, 256, 0 .string "IRON ARMOR$", 12 - pokedex_entry 21, 3600, gAggronPokedexText, 256, -1, 350, 6 + pokedex_entry 21, 3600, gAggronPokedexText, 256, -1, 350, 6 .string "MEDITATE$", 12 pokedex_entry 6, 112, gMedititePokedexText, 465, 17, 256, 0 .string "MEDITATE$", 12 @@ -623,61 +623,61 @@ gPokedexEntries:: @ 856B5B0 .string "DISCHARGE$", 12 pokedex_entry 15, 402, gManectricPokedexText, 256, 3, 257, 0 .string "CHEERING$", 12 - pokedex_entry 4, 42, gPluslePokedexText, 515, -9, 256, 0 + pokedex_entry 4, 42, gPluslePokedexText, 515, -9, 256, 0 .string "CHEERING$", 12 - pokedex_entry 4, 42, gMinunPokedexText, 512, -7, 256, 0 + pokedex_entry 4, 42, gMinunPokedexText, 512, -7, 256, 0 .string "FIREFLY$", 12 - pokedex_entry 7, 177, gVolbeatPokedexText, 442, 16, 256, 0 + pokedex_entry 7, 177, gVolbeatPokedexText, 442, 16, 256, 0 .string "FIREFLY$", 12 pokedex_entry 6, 177, gIllumisePokedexText, 572, 19, 256, 0 .string "THORN$", 12 - pokedex_entry 3, 20, gRoseliaPokedexText, 677, 20, 256, 0 + pokedex_entry 3, 20, gRoseliaPokedexText, 677, 20, 256, 0 .string "STOMACH$", 12 - pokedex_entry 4, 103, gGulpinPokedexText, 593, 23, 256, 0 + pokedex_entry 4, 103, gGulpinPokedexText, 593, 23, 256, 0 .string "POISON BAG$", 12 - pokedex_entry 17, 800, gSwalotPokedexText, 256, 6, 345, 3 + pokedex_entry 17, 800, gSwalotPokedexText, 256, 6, 345, 3 .string "SAVAGE$", 12 pokedex_entry 8, 208, gCarvanhaPokedexText, 362, 0, 256, 0 .string "BRUTAL$", 12 pokedex_entry 18, 888, gSharpedoPokedexText, 256, 0, 317, 3 .string "BALL WHALE$", 12 - pokedex_entry 20, 1300, gWailmerPokedexText, 256, 2, 493, 0 + pokedex_entry 20, 1300, gWailmerPokedexText, 256, 2, 493, 0 .string "FLOAT WHALE$", 12 - pokedex_entry 145, 3980, gWailordPokedexText, 256, 0, 1352, 18 + pokedex_entry 145, 3980, gWailordPokedexText, 256, 0, 1352, 18 .string "NUMB$", 12 - pokedex_entry 7, 240, gNumelPokedexText, 342, 17, 256, 0 + pokedex_entry 7, 240, gNumelPokedexText, 342, 17, 256, 0 .string "ERUPTION$", 12 pokedex_entry 19, 2200, gCameruptPokedexText, 256, 7, 345, 6 .string "COAL$", 12 - pokedex_entry 5, 804, gTorkoalPokedexText, 390, 9, 256, 0 + pokedex_entry 5, 804, gTorkoalPokedexText, 390, 9, 256, 0 .string "BOUNCE$", 12 - pokedex_entry 7, 306, gSpoinkPokedexText, 423, 17, 256, 0 + pokedex_entry 7, 306, gSpoinkPokedexText, 423, 17, 256, 0 .string "MANIPULATE$", 12 - pokedex_entry 9, 715, gGrumpigPokedexText, 358, 10, 256, 0 + pokedex_entry 9, 715, gGrumpigPokedexText, 358, 10, 256, 0 .string "SPOT PANDA$", 12 - pokedex_entry 11, 50, gSpindaPokedexText, 321, 4, 256, 0 + pokedex_entry 11, 50, gSpindaPokedexText, 321, 4, 256, 0 .string "ANT PIT$", 12 pokedex_entry 7, 150, gTrapinchPokedexText, 298, 17, 256, 0 .string "VIBRATION$", 12 - pokedex_entry 11, 153, gVibravaPokedexText, 370, 11, 256, 0 + pokedex_entry 11, 153, gVibravaPokedexText, 370, 11, 256, 0 .string "MYSTIC$", 12 - pokedex_entry 20, 820, gFlygonPokedexText, 256, 0, 268, 1 + pokedex_entry 20, 820, gFlygonPokedexText, 256, 0, 268, 1 .string "CACTUS$", 12 - pokedex_entry 4, 513, gCacneaPokedexText, 455, 20, 256, 0 + pokedex_entry 4, 513, gCacneaPokedexText, 455, 20, 256, 0 .string "SCARECROW$", 12 pokedex_entry 13, 774, gCacturnePokedexText, 327, 5, 256, 0 .string "COTTON BIRD$", 12 - pokedex_entry 4, 12, gSwabluPokedexText, 422, -8, 256, 0 + pokedex_entry 4, 12, gSwabluPokedexText, 422, -8, 256, 0 .string "HUMMING$", 12 - pokedex_entry 11, 206, gAltariaPokedexText, 327, 0, 256, 0 + pokedex_entry 11, 206, gAltariaPokedexText, 327, 0, 256, 0 .string "CAT FERRET$", 12 pokedex_entry 13, 403, gZangoosePokedexText, 256, 3, 256, 0 .string "FANG SNAKE$", 12 - pokedex_entry 27, 525, gSeviperPokedexText, 275, 7, 256, 0 + pokedex_entry 27, 525, gSeviperPokedexText, 275, 7, 256, 0 .string "METEORITE$", 12 pokedex_entry 10, 1680, gLunatonePokedexText, 300, 3, 256, 0 .string "METEORITE$", 12 - pokedex_entry 12, 1540, gSolrockPokedexText, 328, 0, 256, 0 + pokedex_entry 12, 1540, gSolrockPokedexText, 328, 0, 256, 0 .string "WHISKERS$", 12 pokedex_entry 4, 19, gBarboachPokedexText, 581, -3, 256, 0 .string "WHISKERS$", 12 @@ -687,90 +687,90 @@ gPokedexEntries:: @ 856B5B0 .string "ROGUE$", 12 pokedex_entry 11, 328, gCrawdauntPokedexText, 365, 9, 256, 0 .string "CLAY DOLL$", 12 - pokedex_entry 5, 215, gBaltoyPokedexText, 457, 21, 256, 0 + pokedex_entry 5, 215, gBaltoyPokedexText, 457, 21, 256, 0 .string "CLAY DOLL$", 12 - pokedex_entry 15, 1080, gClaydolPokedexText, 256, 3, 280, 1 + pokedex_entry 15, 1080, gClaydolPokedexText, 256, 3, 280, 1 .string "SEA LILY$", 12 - pokedex_entry 10, 238, gLileepPokedexText, 305, 8, 256, 0 + pokedex_entry 10, 238, gLileepPokedexText, 305, 8, 256, 0 .string "BARNACLE$", 12 - pokedex_entry 15, 604, gCradilyPokedexText, 267, 0, 256, 0 + pokedex_entry 15, 604, gCradilyPokedexText, 267, 0, 256, 0 .string "OLD SHRIMP$", 12 - pokedex_entry 7, 125, gAnorithPokedexText, 296, 4, 256, 0 + pokedex_entry 7, 125, gAnorithPokedexText, 296, 4, 256, 0 .string "PLATE$", 12 - pokedex_entry 15, 682, gArmaldoPokedexText, 312, 3, 271, 0 + pokedex_entry 15, 682, gArmaldoPokedexText, 312, 3, 271, 0 .string "FISH$", 12 - pokedex_entry 6, 74, gFeebasPokedexText, 423, -4, 256, 0 + pokedex_entry 6, 74, gFeebasPokedexText, 423, -4, 256, 0 .string "TENDER$", 12 - pokedex_entry 62, 1620, gMiloticPokedexText, 256, 0, 360, 7 + pokedex_entry 62, 1620, gMiloticPokedexText, 256, 0, 360, 7 .string "WEATHER$", 12 - pokedex_entry 3, 8, gCastformPokedexText, 435, -5, 256, 0 + pokedex_entry 3, 8, gCastformPokedexText, 435, -5, 256, 0 .string "COLOR SWAP$", 12 - pokedex_entry 10, 220, gKecleonPokedexText, 316, 10, 256, 0 + pokedex_entry 10, 220, gKecleonPokedexText, 316, 10, 256, 0 .string "PUPPET$", 12 - pokedex_entry 6, 23, gShuppetPokedexText, 440, 20, 256, 0 + pokedex_entry 6, 23, gShuppetPokedexText, 440, 20, 256, 0 .string "MARIONETTE$", 12 - pokedex_entry 11, 125, gBanettePokedexText, 262, 9, 256, 0 + pokedex_entry 11, 125, gBanettePokedexText, 262, 9, 256, 0 .string "REQUIEM$", 12 - pokedex_entry 8, 150, gDuskullPokedexText, 406, -4, 256, 0 + pokedex_entry 8, 150, gDuskullPokedexText, 406, -4, 256, 0 .string "BECKON$", 12 pokedex_entry 16, 306, gDusclopsPokedexText, 256, 3, 299, 1 .string "FRUIT$", 12 - pokedex_entry 20, 1000, gTropiusPokedexText, 256, 0, 344, 7 + pokedex_entry 20, 1000, gTropiusPokedexText, 256, 0, 344, 7 .string "WIND CHIME$", 12 pokedex_entry 6, 10, gChimechoPokedexText, 505, 0, 256, 0 .string "DISASTER$", 12 - pokedex_entry 12, 470, gAbsolPokedexText, 301, 3, 256, 0 + pokedex_entry 12, 470, gAbsolPokedexText, 301, 3, 256, 0 .string "BRIGHT$", 12 - pokedex_entry 6, 140, gWynautPokedexText, 484, 19, 256, 0 + pokedex_entry 6, 140, gWynautPokedexText, 484, 19, 256, 0 .string "SNOW HAT$", 12 - pokedex_entry 7, 168, gSnoruntPokedexText, 380, 15, 256, 0 + pokedex_entry 7, 168, gSnoruntPokedexText, 380, 15, 256, 0 .string "FACE$", 12 - pokedex_entry 15, 2565, gGlaliePokedexText, 256, 3, 344, 0 + pokedex_entry 15, 2565, gGlaliePokedexText, 256, 3, 344, 0 .string "CLAP$", 12 - pokedex_entry 8, 395, gSphealPokedexText, 315, 16, 256, 0 + pokedex_entry 8, 395, gSphealPokedexText, 315, 16, 256, 0 .string "BALL ROLL$", 12 - pokedex_entry 11, 876, gSealeoPokedexText, 338, 13, 256, 0 + pokedex_entry 11, 876, gSealeoPokedexText, 338, 13, 256, 0 .string "ICE BREAK$", 12 - pokedex_entry 14, 1506, gWalreinPokedexText, 316, 4, 256, 0 + pokedex_entry 14, 1506, gWalreinPokedexText, 316, 4, 256, 0 .string "BIVALVE$", 12 pokedex_entry 4, 525, gClamperlPokedexText, 691, 22, 256, 0 .string "DEEP SEA$", 12 - pokedex_entry 17, 270, gHuntailPokedexText, 307, 1, 256, 0 + pokedex_entry 17, 270, gHuntailPokedexText, 307, 1, 256, 0 .string "SOUTH SEA$", 12 pokedex_entry 18, 226, gGorebyssPokedexText, 278, 5, 256, 0 .string "LONGEVITY$", 12 pokedex_entry 10, 234, gRelicanthPokedexText, 316, 7, 256, 0 .string "RENDEZVOUS$", 12 - pokedex_entry 6, 87, gLuvdiscPokedexText, 371, 2, 256, 0 + pokedex_entry 6, 87, gLuvdiscPokedexText, 371, 2, 256, 0 .string "ROCK HEAD$", 12 - pokedex_entry 6, 421, gBagonPokedexText, 448, 18, 256, 0 + pokedex_entry 6, 421, gBagonPokedexText, 448, 18, 256, 0 .string "ENDURANCE$", 12 - pokedex_entry 11, 1105, gShelgonPokedexText, 311, 12, 256, 0 + pokedex_entry 11, 1105, gShelgonPokedexText, 311, 12, 256, 0 .string "DRAGON$", 12 pokedex_entry 15, 1026, gSalamencePokedexText, 256, 0, 256, 0 .string "IRON BALL$", 12 - pokedex_entry 6, 952, gBeldumPokedexText, 414, -1, 256, 0 + pokedex_entry 6, 952, gBeldumPokedexText, 414, -1, 256, 0 .string "IRON CLAW$", 12 - pokedex_entry 12, 2025, gMetangPokedexText, 256, 6, 256, 0 + pokedex_entry 12, 2025, gMetangPokedexText, 256, 6, 256, 0 .string "IRON LEG$", 12 pokedex_entry 16, 5500, gMetagrossPokedexText, 256, 4, 447, 9 .string "ROCK PEAK$", 12 pokedex_entry 17, 2300, gRegirockPokedexText, 256, 2, 309, 1 .string "ICEBERG$", 12 - pokedex_entry 18, 1750, gRegicePokedexText, 256, 0, 301, 2 + pokedex_entry 18, 1750, gRegicePokedexText, 256, 0, 301, 2 .string "IRON$", 12 pokedex_entry 19, 2050, gRegisteelPokedexText, 256, 0, 359, 6 .string "EON$", 12 - pokedex_entry 14, 400, gLatiasPokedexText, 304, 3, 256, 0 + pokedex_entry 14, 400, gLatiasPokedexText, 304, 3, 256, 0 .string "EON$", 12 - pokedex_entry 20, 600, gLatiosPokedexText, 256, 0, 294, 3 + pokedex_entry 20, 600, gLatiosPokedexText, 256, 0, 294, 3 .string "SEA BASIN$", 12 - pokedex_entry 45, 3520, gKyogrePokedexText, 256, 0, 614, 13 + pokedex_entry 45, 3520, gKyogrePokedexText, 256, 0, 614, 13 .string "CONTINENT$", 12 - pokedex_entry 35, 9500, gGroudonPokedexText, 256, 0, 515, 14 + pokedex_entry 35, 9500, gGroudonPokedexText, 256, 0, 515, 14 .string "SKY HIGH$", 12 pokedex_entry 70, 2065, gRayquazaPokedexText, 256, 0, 448, 12 .string "WISH$", 12 - pokedex_entry 3, 11, gJirachiPokedexText, 608, -8, 256, 0 + pokedex_entry 3, 11, gJirachiPokedexText, 608, -8, 256, 0 .string "DNA$", 12 - pokedex_entry 17, 608, gDeoxysPokedexText, 256, 0, 290, 2 + pokedex_entry 17, 608, gDeoxysPokedexText, 256, 0, 290, 2 diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s index 4c630c9239..22b065e630 100644 --- a/data/pokemon_storage_system.s +++ b/data/pokemon_storage_system.s @@ -1,8 +1,8 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section .rodata - .align 2, 0 + .section .rodata + .align 2, 0 gUnknown_0857173C:: @ 857173C .incbin "baserom.gba", 0x57173c, 0x20 diff --git a/data/pokenav.s b/data/pokenav.s index ab6d4f0d25..54cad17072 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -174,14 +174,14 @@ gUnknown_0861FAD4:: @ 861FAD4 gUnknown_0861FADC:: obj_image_anim_frame 0, 8 - obj_image_anim_frame 16, 8 - obj_image_anim_frame 32, 8 - obj_image_anim_frame 48, 8 - obj_image_anim_frame 64, 8 - obj_image_anim_frame 80, 8 - obj_image_anim_frame 96, 8 - obj_image_anim_frame 112, 8 - obj_image_anim_jump 0 + obj_image_anim_frame 16, 8 + obj_image_anim_frame 32, 8 + obj_image_anim_frame 48, 8 + obj_image_anim_frame 64, 8 + obj_image_anim_frame 80, 8 + obj_image_anim_frame 96, 8 + obj_image_anim_frame 112, 8 + obj_image_anim_jump 0 gUnknown_0861FB00:: .4byte gUnknown_0861FADC @@ -283,20 +283,20 @@ gUnknown_086202CC:: @ 86202CC .incbin "baserom.gba", 0x6202cc, 0x8 gUnknown_086202D4:: @ 86202D4 - .4byte gUnknown_085EBCC5 - .4byte gUnknown_085EBCE8 - .4byte gUnknown_085EBD01 - .4byte gUnknown_085EBD1C - .4byte gUnknown_085EBD34 - .4byte gUnknown_085EBD83 - .4byte gUnknown_085EBDA2 - .4byte gUnknown_085EBDBF - .4byte gUnknown_085EBDDB - .4byte gUnknown_085EBDEE - .4byte gUnknown_085EBE06 - .4byte gUnknown_085EBE19 - .4byte gUnknown_085EBE2D - .4byte gUnknown_085EBE41 + .4byte gUnknown_085EBCC5 + .4byte gUnknown_085EBCE8 + .4byte gUnknown_085EBD01 + .4byte gUnknown_085EBD1C + .4byte gUnknown_085EBD34 + .4byte gUnknown_085EBD83 + .4byte gUnknown_085EBDA2 + .4byte gUnknown_085EBDBF + .4byte gUnknown_085EBDDB + .4byte gUnknown_085EBDEE + .4byte gUnknown_085EBE06 + .4byte gUnknown_085EBE19 + .4byte gUnknown_085EBE2D + .4byte gUnknown_085EBE41 gUnknown_0862030C:: @ 862030C .incbin "baserom.gba", 0x62030c, 0x3 @@ -311,943 +311,943 @@ gUnknown_0862036C:: @ 862036C .incbin "baserom.gba", 0x62036c, 0x18 gUnknown_08620384:: @ 8620384 - .incbin "baserom.gba", 0x620384, 0xC + .incbin "baserom.gba", 0x620384, 0xC gUnknown_08620390:: @ 8620390 - .string "Becalm fighting emotions.$" + .string "Becalm fighting emotions.$" gUnknown_086203AA:: @ 86203AA - .string "Fragrant GRASS POKéMON.$" + .string "Fragrant GRASS POKéMON.$" gUnknown_086203C2:: @ 86203C2 - .string "Soothing aromas make the$" + .string "Soothing aromas make the$" gUnknown_086203DB:: @ 86203DB - .string "body and mind healthy.$" + .string "body and mind healthy.$" gUnknown_086203F2:: @ 86203F2 - .string "I’m not very good at this.$" + .string "I’m not very good at this.$" gUnknown_0862040D:: @ 862040D - .string "Ruin-exploration partners.$" + .string "Ruin-exploration partners.$" gUnknown_08620428:: @ 8620428 - .string "I am searching for undersea$" + .string "I am searching for undersea$" gUnknown_08620444:: @ 8620444 - .string "ruins and relics.$" + .string "ruins and relics.$" gUnknown_08620456:: @ 8620456 - .string "Overwhelm with power!$" + .string "Overwhelm with power!$" gUnknown_0862046C:: @ 862046C - .string "Craggy ROCK POKéMON.$" + .string "Craggy ROCK POKéMON.$" gUnknown_08620481:: @ 8620481 - .string "In search of ancient lore,$" + .string "In search of ancient lore,$" gUnknown_0862049C:: @ 862049C - .string "I travel the world.$" + .string "I travel the world.$" gUnknown_086204B0:: @ 86204B0 - .string "I’m going to try hard!$" + .string "I’m going to try hard!$" gUnknown_086204C7:: @ 86204C7 - .string "Good swimmer POKéMON.$" + .string "Good swimmer POKéMON.$" gUnknown_086204DD:: @ 86204DD - .string "I wish I could swim without$" + .string "I wish I could swim without$" gUnknown_086204F9:: @ 86204F9 - .string "using an inner tube.$" + .string "using an inner tube.$" gUnknown_0862050E:: @ 862050E - .string "I don’t know. I’ll try hard.$" + .string "I don’t know. I’ll try hard.$" gUnknown_0862052B:: @ 862052B - .string "WATER POKéMON are buddies.$" + .string "WATER POKéMON are buddies.$" gUnknown_08620546:: @ 8620546 - .string "It’s not like I can’t swim.$" + .string "It’s not like I can’t swim.$" gUnknown_08620562:: @ 8620562 - .string "I just like my inner tube.$" + .string "I just like my inner tube.$" gUnknown_0862057D:: @ 862057D - .string "We split our duties.$" + .string "We split our duties.$" gUnknown_08620592:: @ 8620592 - .string "We like friendly POKéMON.$" + .string "We like friendly POKéMON.$" gUnknown_086205AC:: @ 86205AC - .string "We enjoy POKéMON together$" + .string "We enjoy POKéMON together$" gUnknown_086205C6:: @ 86205C6 - .string "as sister and brother.$" + .string "as sister and brother.$" gUnknown_086205DD:: @ 86205DD - .string "I finish with power moves!$" + .string "I finish with power moves!$" gUnknown_086205F8:: @ 86205F8 - .string "A mix of different types.$" + .string "A mix of different types.$" gUnknown_08620612:: @ 8620612 - .string "I aim to become the ultimate$" + .string "I aim to become the ultimate$" gUnknown_0862062F:: @ 862062F - .string "TRAINER!$" + .string "TRAINER!$" gUnknown_08620638:: @ 8620638 - .string "Exploit the foe’s weakness.$" + .string "Exploit the foe’s weakness.$" gUnknown_08620654:: @ 8620654 - .string "Balance is crucial.$" + .string "Balance is crucial.$" gUnknown_08620668:: @ 8620668 - .string "My goal is to become the$" + .string "My goal is to become the$" gUnknown_08620681:: @ 8620681 - .string "POKéMON CHAMPION.$" + .string "POKéMON CHAMPION.$" gUnknown_08620693:: @ 8620693 - .string "Upset the opponent.$" + .string "Upset the opponent.$" gUnknown_086206A7:: @ 86206A7 - .string "Type doesn’t matter.$" + .string "Type doesn’t matter.$" gUnknown_086206BC:: @ 86206BC - .string "I’m a top student at the$" + .string "I’m a top student at the$" gUnknown_086206D5:: @ 86206D5 - .string "TRAINER’S SCHOOL.$" + .string "TRAINER’S SCHOOL.$" gUnknown_086206E7:: @ 86206E7 - .string "Slow, steady suffering.$" + .string "Slow, steady suffering.$" gUnknown_086206FF:: @ 86206FF - .string "Scary to meet at night.$" + .string "Scary to meet at night.$" gUnknown_08620717:: @ 8620717 - .string "I see things that others$" + .string "I see things that others$" gUnknown_08620730:: @ 8620730 - .string "can’t see...$" + .string "can’t see...$" gUnknown_0862073D:: @ 862073D - .string "Anything to win.$" + .string "Anything to win.$" gUnknown_0862074E:: @ 862074E - .string "Gorgeous type!$" + .string "Gorgeous type!$" gUnknown_0862075D:: @ 862075D - .string "I have a pool specially for$" + .string "I have a pool specially for$" gUnknown_08620779:: @ 8620779 - .string "my POKéMON at home.$" + .string "my POKéMON at home.$" gUnknown_0862078D:: @ 862078D - .string "You’ll fall under my spell!$" + .string "You’ll fall under my spell!$" gUnknown_086207A9:: @ 86207A9 - .string "Mature WATER type.$" + .string "Mature WATER type.$" gUnknown_086207BC:: @ 86207BC - .string "I dream of cruising around$" + .string "I dream of cruising around$" gUnknown_086207D7:: @ 86207D7 - .string "the world on a luxury liner.$" + .string "the world on a luxury liner.$" gUnknown_086207F4:: @ 86207F4 - .string "I’ll lead you astray.$" + .string "I’ll lead you astray.$" gUnknown_0862080A:: @ 862080A - .string "Cute, of course.$" + .string "Cute, of course.$" gUnknown_0862081B:: @ 862081B - .string "I love the SAFARI ZONE.$" + .string "I love the SAFARI ZONE.$" gUnknown_08620833:: @ 8620833 - .string "I seem to end up there.$" + .string "I seem to end up there.$" gUnknown_0862084B:: @ 862084B - .string "Strategy? Who needs it?$" + .string "Strategy? Who needs it?$" gUnknown_08620863:: @ 8620863 - .string "I spent big money on it!$" + .string "I spent big money on it!$" gUnknown_0862087C:: @ 862087C - .string "I, being rich, sleep in a$" + .string "I, being rich, sleep in a$" gUnknown_08620896:: @ 8620896 - .string "custom POKéMON bed.$" + .string "custom POKéMON bed.$" gUnknown_086208AA:: @ 86208AA - .string "Wrestle down with power.$" + .string "Wrestle down with power.$" gUnknown_086208C3:: @ 86208C3 - .string "Took all night to catch.$" + .string "Took all night to catch.$" gUnknown_086208DC:: @ 86208DC - .string "Big, burly, and buff$" + .string "Big, burly, and buff$" gUnknown_086208F1:: @ 86208F1 - .string "POKéMON are the best...$" + .string "POKéMON are the best...$" gUnknown_08620909:: @ 8620909 - .string "Ram at full speed!$" + .string "Ram at full speed!$" gUnknown_0862091C:: @ 862091C - .string "Funky WATER type!$" + .string "Funky WATER type!$" gUnknown_0862092E:: @ 862092E - .string "If I can’t be out swimming,$" + .string "If I can’t be out swimming,$" gUnknown_0862094A:: @ 862094A - .string "I’ll be pumping weights.$" + .string "I’ll be pumping weights.$" gUnknown_08620963:: @ 8620963 - .string "Grand slam pummeling!$" + .string "Grand slam pummeling!$" gUnknown_08620979:: @ 8620979 - .string "FIGHTING type.$" + .string "FIGHTING type.$" gUnknown_08620988:: @ 8620988 - .string "Not to brag, but I can bust$" + .string "Not to brag, but I can bust$" gUnknown_086209A4:: @ 86209A4 - .string "ten roof tiles!$" + .string "ten roof tiles!$" gUnknown_086209B4:: @ 86209B4 - .string "Witness karate power!$" + .string "Witness karate power!$" gUnknown_086209CA:: @ 86209CA - .string "My partners in training!$" + .string "My partners in training!$" gUnknown_086209E3:: @ 86209E3 - .string "Let us discuss matters of$" + .string "Let us discuss matters of$" gUnknown_086209FD:: @ 86209FD - .string "the world with bare fists!$" + .string "the world with bare fists!$" gUnknown_08620A18:: @ 8620A18 - .string "Rock to stunning sounds!$" + .string "Rock to stunning sounds!$" gUnknown_08620A31:: @ 8620A31 - .string "Electric-and-sound combo!$" + .string "Electric-and-sound combo!$" gUnknown_08620A4B:: @ 8620A4B - .string "My compositions will shock$" + .string "My compositions will shock$" gUnknown_08620A66:: @ 8620A66 - .string "you and stun you!$" + .string "you and stun you!$" gUnknown_08620A78:: @ 8620A78 - .string "I’ll electrify you!$" + .string "I’ll electrify you!$" gUnknown_08620A8C:: @ 8620A8C - .string "They’re ELECTRIC!$" + .string "They’re ELECTRIC!$" gUnknown_08620A9E:: @ 8620A9E - .string "I want to make people cry$" + .string "I want to make people cry$" gUnknown_08620AB8:: @ 8620AB8 - .string "with songs from my heart.$" + .string "with songs from my heart.$" gUnknown_08620AD2:: @ 8620AD2 - .string "Burn it all down!$" + .string "Burn it all down!$" gUnknown_08620AE4:: @ 8620AE4 - .string "Burn-inducing POKéMON.$" + .string "Burn-inducing POKéMON.$" gUnknown_08620AFB:: @ 8620AFB - .string "When you light a campfire,$" + .string "When you light a campfire,$" gUnknown_08620B16:: @ 8620B16 - .string "be sure there’s some water.$" + .string "be sure there’s some water.$" gUnknown_08620B32:: @ 8620B32 - .string "Hang in and be tenacious!$" + .string "Hang in and be tenacious!$" gUnknown_08620B4C:: @ 8620B4C - .string "I’ll raise any POKéMON.$" + .string "I’ll raise any POKéMON.$" gUnknown_08620B64:: @ 8620B64 - .string "POKéMON raised in the wild$" + .string "POKéMON raised in the wild$" gUnknown_08620B7F:: @ 8620B7F - .string "grow strong!$" + .string "grow strong!$" gUnknown_08620B8C:: @ 8620B8C - .string "Our love lets us prevail.$" + .string "Our love lets us prevail.$" gUnknown_08620BA6:: @ 8620BA6 - .string "We’ve had them for years.$" + .string "We’ve had them for years.$" gUnknown_08620BC0:: @ 8620BC0 - .string "Married 50 years, we’ve$" + .string "Married 50 years, we’ve$" gUnknown_08620BD8:: @ 8620BD8 - .string "devotedly raised POKéMON.$" + .string "devotedly raised POKéMON.$" gUnknown_08620BF2:: @ 8620BF2 - .string "Attack in waves!$" + .string "Attack in waves!$" gUnknown_08620C03:: @ 8620C03 - .string "BUG POKéMON are cool.$" + .string "BUG POKéMON are cool.$" gUnknown_08620C19:: @ 8620C19 - .string "I go into the forest every$" + .string "I go into the forest every$" gUnknown_08620C34:: @ 8620C34 - .string "day to catch BUG POKéMON.$" + .string "day to catch BUG POKéMON.$" gUnknown_08620C4E:: @ 8620C4E - .string "Daze and confuse!$" + .string "Daze and confuse!$" gUnknown_08620C60:: @ 8620C60 - .string "Ones with weird powers.$" + .string "Ones with weird powers.$" gUnknown_08620C78:: @ 8620C78 - .string "I can see through exactly$" + .string "I can see through exactly$" gUnknown_08620C92:: @ 8620C92 - .string "what you’re thinking!$" + .string "what you’re thinking!$" gUnknown_08620CA8:: @ 8620CA8 - .string "Battle at full power.$" + .string "Battle at full power.$" gUnknown_08620CBE:: @ 8620CBE - .string "POKéMON of many mysteries.$" + .string "POKéMON of many mysteries.$" gUnknown_08620CD9:: @ 8620CD9 - .string "When we spoke, I was really$" + .string "When we spoke, I was really$" gUnknown_08620CF5:: @ 8620CF5 - .string "using telepathy.$" + .string "using telepathy.$" gUnknown_08620D06:: @ 8620D06 - .string "Calm and collected.$" + .string "Calm and collected.$" gUnknown_08620D1A:: @ 8620D1A - .string "POKéMON of distinction.$" + .string "POKéMON of distinction.$" gUnknown_08620D32:: @ 8620D32 - .string "We enjoy a spot of tea$" + .string "We enjoy a spot of tea$" gUnknown_08620D49:: @ 8620D49 - .string "every day. It’s imported.$" + .string "every day. It’s imported.$" gUnknown_08620D63:: @ 8620D63 - .string "I use my head to battle.$" + .string "I use my head to battle.$" gUnknown_08620D7C:: @ 8620D7C - .string "I love any kind of POKéMON!$" + .string "I love any kind of POKéMON!$" gUnknown_08620D98:: @ 8620D98 - .string "My daddy gives me spending$" + .string "My daddy gives me spending$" gUnknown_08620DB3:: @ 8620DB3 - .string "money if I ace a test.$" + .string "money if I ace a test.$" gUnknown_08620DCA:: @ 8620DCA - .string "My knowledge rules!$" + .string "My knowledge rules!$" gUnknown_08620DDE:: @ 8620DDE - .string "Any smart POKéMON!$" + .string "Any smart POKéMON!$" gUnknown_08620DF1:: @ 8620DF1 - .string "I want to be a POKéMON$" + .string "I want to be a POKéMON$" gUnknown_08620E08:: @ 8620E08 - .string "researcher in the future.$" + .string "researcher in the future.$" gUnknown_08620E22:: @ 8620E22 - .string "We talk it over first.$" + .string "We talk it over first.$" gUnknown_08620E39:: @ 8620E39 - .string "POKéMON that we both like.$" + .string "POKéMON that we both like.$" gUnknown_08620E54:: @ 8620E54 - .string "We’re senior and junior$" + .string "We’re senior and junior$" gUnknown_08620E6C:: @ 8620E6C - .string "students into POKéMON!$" + .string "students into POKéMON!$" gUnknown_08620E83:: @ 8620E83 - .string "Go for it, my dears!$" + .string "Go for it, my dears!$" gUnknown_08620E98:: @ 8620E98 - .string "I have no likes or dislikes.$" + .string "I have no likes or dislikes.$" gUnknown_08620EB5:: @ 8620EB5 - .string "While out shopping for$" + .string "While out shopping for$" gUnknown_08620ECC:: @ 8620ECC - .string "supper, I battle too.$" + .string "supper, I battle too.$" gUnknown_08620EE2:: @ 8620EE2 - .string "I battle with love!$" + .string "I battle with love!$" gUnknown_08620EF6:: @ 8620EF6 - .string "A POKéMON raised with love!$" + .string "A POKéMON raised with love!$" gUnknown_08620F12:: @ 8620F12 - .string "It’s important to build$" + .string "It’s important to build$" gUnknown_08620F2A:: @ 8620F2A - .string "trust with your POKéMON.$" + .string "trust with your POKéMON.$" gUnknown_08620F43:: @ 8620F43 - .string "I see through your moves!$" + .string "I see through your moves!$" gUnknown_08620F5D:: @ 8620F5D - .string "The essence of FIGHTING.$" + .string "The essence of FIGHTING.$" gUnknown_08620F76:: @ 8620F76 - .string "I’m not ready to give way$" + .string "I’m not ready to give way$" gUnknown_08620F90:: @ 8620F90 - .string "to the young yet!$" + .string "to the young yet!$" gUnknown_08620FA2:: @ 8620FA2 - .string "Attack while defending.$" + .string "Attack while defending.$" gUnknown_08620FBA:: @ 8620FBA - .string "The FIGHTING type.$" + .string "The FIGHTING type.$" gUnknown_08620FCD:: @ 8620FCD - .string "Being old, I have my own$" + .string "Being old, I have my own$" gUnknown_08620FE6:: @ 8620FE6 - .string "style of battling.$" + .string "style of battling.$" gUnknown_08620FF9:: @ 8620FF9 - .string "I do what I can.$" + .string "I do what I can.$" gUnknown_0862100A:: @ 862100A - .string "I use different types.$" + .string "I use different types.$" gUnknown_08621021:: @ 8621021 - .string "I’m going to keep working$" + .string "I’m going to keep working$" gUnknown_0862103B:: @ 862103B - .string "until I beat a GYM LEADER.$" + .string "until I beat a GYM LEADER.$" gUnknown_08621056:: @ 8621056 - .string "I battle patiently.$" + .string "I battle patiently.$" gUnknown_0862106A:: @ 862106A - .string "WATER POKéMON to battle!$" + .string "WATER POKéMON to battle!$" gUnknown_08621083:: @ 8621083 - .string "I’m the world’s only guy to$" + .string "I’m the world’s only guy to$" gUnknown_0862109F:: @ 862109F - .string "catch a huge POKéMON!$" + .string "catch a huge POKéMON!$" gUnknown_086210B5:: @ 86210B5 - .string "Exploit the environment!$" + .string "Exploit the environment!$" gUnknown_086210CE:: @ 86210CE - .string "All hail the WATER type!$" + .string "All hail the WATER type!$" gUnknown_086210E7:: @ 86210E7 - .string "I won’t be beaten by some$" + .string "I won’t be beaten by some$" gUnknown_08621101:: @ 8621101 - .string "beach bum SWIMMER!$" + .string "beach bum SWIMMER!$" gUnknown_08621114:: @ 8621114 - .string "Speed above all!$" + .string "Speed above all!$" gUnknown_08621125:: @ 8621125 - .string "I use a speedy POKéMON.$" + .string "I use a speedy POKéMON.$" gUnknown_0862113D:: @ 862113D - .string "A marathon is a challenge$" + .string "A marathon is a challenge$" gUnknown_08621157:: @ 8621157 - .string "against your own self.$" + .string "against your own self.$" gUnknown_0862116E:: @ 862116E - .string "Defense is crucial.$" + .string "Defense is crucial.$" gUnknown_08621182:: @ 8621182 - .string "My POKéMON is solid.$" + .string "My POKéMON is solid.$" gUnknown_08621197:: @ 8621197 - .string "I started this for dieting,$" + .string "I started this for dieting,$" gUnknown_086211B3:: @ 86211B3 - .string "but I got right into it.$" + .string "but I got right into it.$" gUnknown_086211CC:: @ 86211CC - .string "Strike before stricken!$" + .string "Strike before stricken!$" gUnknown_086211E4:: @ 86211E4 - .string "A fast-running POKéMON!$" + .string "A fast-running POKéMON!$" gUnknown_086211FC:: @ 86211FC - .string "If you ran and ran, you’d$" + .string "If you ran and ran, you’d$" gUnknown_08621216:: @ 8621216 - .string "become one with the wind.$" + .string "become one with the wind.$" gUnknown_08621230:: @ 8621230 - .string "All-out offensive!$" + .string "All-out offensive!$" gUnknown_08621243:: @ 8621243 - .string "WATER POKéMON rule!$" + .string "WATER POKéMON rule!$" gUnknown_08621257:: @ 8621257 - .string "I must swim over 6 miles$" + .string "I must swim over 6 miles$" gUnknown_08621270:: @ 8621270 - .string "every day.$" + .string "every day.$" gUnknown_0862127B:: @ 862127B - .string "Push and push again!$" + .string "Push and push again!$" gUnknown_08621290:: @ 8621290 - .string "The strength of STEEL.$" + .string "The strength of STEEL.$" gUnknown_086212A7:: @ 86212A7 - .string "If you’re sweating, get$" + .string "If you’re sweating, get$" gUnknown_086212BF:: @ 86212BF - .string "fluids into you regularly.$" + .string "fluids into you regularly.$" gUnknown_086212DA:: @ 86212DA - .string "Draw the power of WATER.$" + .string "Draw the power of WATER.$" gUnknown_086212F3:: @ 86212F3 - .string "Toughened WATER POKéMON.$" + .string "Toughened WATER POKéMON.$" gUnknown_0862130C:: @ 862130C - .string "Training POKéMON is good,$" + .string "Training POKéMON is good,$" gUnknown_08621326:: @ 8621326 - .string "but don’t neglect yourself.$" + .string "but don’t neglect yourself.$" gUnknown_08621342:: @ 8621342 - .string "It’s about POKéMON power!$" + .string "It’s about POKéMON power!$" gUnknown_0862135C:: @ 862135C - .string "See the power of DRAGONS!$" + .string "See the power of DRAGONS!$" gUnknown_08621376:: @ 8621376 - .string "I’ll become legendary as the$" + .string "I’ll become legendary as the$" gUnknown_08621393:: @ 8621393 - .string "strongest one day!$" + .string "strongest one day!$" gUnknown_086213A6:: @ 86213A6 - .string "I’ll show you my technique!$" + .string "I’ll show you my technique!$" gUnknown_086213C2:: @ 86213C2 - .string "Elegantly wheeling BIRDS.$" + .string "Elegantly wheeling BIRDS.$" gUnknown_086213DC:: @ 86213DC - .string "My BIRD POKéMON, deliver my$" + .string "My BIRD POKéMON, deliver my$" gUnknown_086213F8:: @ 86213F8 - .string "love to that girl!$" + .string "love to that girl!$" gUnknown_0862140B:: @ 862140B - .string "You’ll suffer from poison!$" + .string "You’ll suffer from poison!$" gUnknown_08621426:: @ 8621426 - .string "Poisonous POKéMON.$" + .string "Poisonous POKéMON.$" gUnknown_08621439:: @ 8621439 - .string "I undertake training so$" + .string "I undertake training so$" gUnknown_08621451:: @ 8621451 - .string "that I may become a ninja.$" + .string "that I may become a ninja.$" gUnknown_0862146C:: @ 862146C - .string "The first strike wins!$" + .string "The first strike wins!$" gUnknown_08621483:: @ 8621483 - .string "Speedy FIGHTING type.$" + .string "Speedy FIGHTING type.$" gUnknown_08621499:: @ 8621499 - .string "If my POKéMON lose,$" + .string "If my POKéMON lose,$" gUnknown_086214AD:: @ 86214AD - .string "I’ll carry on the fight!$" + .string "I’ll carry on the fight!$" gUnknown_086214C6:: @ 86214C6 - .string "Go, go, my POKéMON!$" + .string "Go, go, my POKéMON!$" gUnknown_086214DA:: @ 86214DA - .string "I’ll raise anything.$" + .string "I’ll raise anything.$" gUnknown_086214EF:: @ 86214EF - .string "UV rays are your skin’s$" + .string "UV rays are your skin’s$" gUnknown_08621507:: @ 8621507 - .string "enemy. Get protected.$" + .string "enemy. Get protected.$" gUnknown_0862151D:: @ 862151D - .string "No mercy!$" + .string "No mercy!$" gUnknown_08621527:: @ 8621527 - .string "Cute WATER POKéMON.$" + .string "Cute WATER POKéMON.$" gUnknown_0862153B:: @ 862153B - .string "I have too many fans.$" + .string "I have too many fans.$" gUnknown_08621551:: @ 8621551 - .string "I was interviewed on TV.$" + .string "I was interviewed on TV.$" gUnknown_0862156A:: @ 862156A - .string "I think about this & that.$" + .string "I think about this & that.$" gUnknown_08621585:: @ 8621585 - .string "I like all POKéMON.$" + .string "I like all POKéMON.$" gUnknown_08621599:: @ 8621599 - .string "What lies beyond that$" + .string "What lies beyond that$" gUnknown_086215AF:: @ 86215AF - .string "yonder hill?$" + .string "yonder hill?$" gUnknown_086215BC:: @ 86215BC - .string "We battle together!$" + .string "We battle together!$" gUnknown_086215D0:: @ 86215D0 - .string "We train together!$" + .string "We train together!$" gUnknown_086215E3:: @ 86215E3 - .string "We like the same POKéMON,$" + .string "We like the same POKéMON,$" gUnknown_086215FD:: @ 86215FD - .string "but different desserts.$" + .string "but different desserts.$" gUnknown_08621615:: @ 8621615 - .string "I force things with power!$" + .string "I force things with power!$" gUnknown_08621630:: @ 8621630 - .string "WATER and FIGHTING types.$" + .string "WATER and FIGHTING types.$" gUnknown_0862164A:: @ 862164A - .string "Seamen are rough spirits!$" + .string "Seamen are rough spirits!$" gUnknown_08621664:: @ 8621664 - .string "Any complaints?$" + .string "Any complaints?$" gUnknown_08621674:: @ 8621674 - .string "Up for a fight anytime!$" + .string "Up for a fight anytime!$" gUnknown_0862168C:: @ 862168C - .string "WATER POKéMON are my faves!$" + .string "WATER POKéMON are my faves!$" gUnknown_086216A8:: @ 86216A8 - .string "If you want to shout loud,$" + .string "If you want to shout loud,$" gUnknown_086216C3:: @ 86216C3 - .string "suck in air with your belly!$" + .string "suck in air with your belly!$" gUnknown_086216E0:: @ 86216E0 - .string "Protect POKéMON from harm.$" + .string "Protect POKéMON from harm.$" gUnknown_086216FB:: @ 86216FB - .string "I love rare POKéMON.$" + .string "I love rare POKéMON.$" gUnknown_08621710:: @ 8621710 - .string "I want to collect all the$" + .string "I want to collect all the$" gUnknown_0862172A:: @ 862172A - .string "world’s rare POKéMON.$" + .string "world’s rare POKéMON.$" gUnknown_08621740:: @ 8621740 - .string "I count on power.$" + .string "I count on power.$" gUnknown_08621752:: @ 8621752 - .string "POKéMON are my children.$" + .string "POKéMON are my children.$" gUnknown_0862176B:: @ 862176B - .string "It takes knowledge and$" + .string "It takes knowledge and$" gUnknown_08621782:: @ 8621782 - .string "love to raise POKéMON.$" + .string "love to raise POKéMON.$" gUnknown_08621799:: @ 8621799 - .string "Full-on attack!$" + .string "Full-on attack!$" gUnknown_086217A9:: @ 86217A9 - .string "Anything. I’ll raise it.$" + .string "Anything. I’ll raise it.$" gUnknown_086217C2:: @ 86217C2 - .string "I give them {POKEBLOCK}S for$" + .string "I give them {POKEBLOCK}S for$" gUnknown_086217D9:: @ 86217D9 - .string "going after CONTEST titles.$" + .string "going after CONTEST titles.$" gUnknown_086217F5:: @ 86217F5 - .string "I raise POKéMON with care.$" + .string "I raise POKéMON with care.$" gUnknown_08621810:: @ 8621810 - .string "Fun-to-raise POKéMON.$" + .string "Fun-to-raise POKéMON.$" gUnknown_08621826:: @ 8621826 - .string "Treat every POKéMON you$" + .string "Treat every POKéMON you$" gUnknown_0862183E:: @ 862183E - .string "meet with respect.$" + .string "meet with respect.$" gUnknown_08621851:: @ 8621851 - .string "I believe in my POKéMON.$" + .string "I believe in my POKéMON.$" gUnknown_0862186A:: @ 862186A - .string "I like strong POKéMON.$" + .string "I like strong POKéMON.$" gUnknown_08621881:: @ 8621881 - .string "I’m training for rescue$" + .string "I’m training for rescue$" gUnknown_08621899:: @ 8621899 - .string "work with my POKéMON.$" + .string "work with my POKéMON.$" gUnknown_086218AF:: @ 86218AF - .string "Attack in waves!$" + .string "Attack in waves!$" gUnknown_086218C0:: @ 86218C0 - .string "I use different types.$" + .string "I use different types.$" gUnknown_086218D7:: @ 86218D7 - .string "Those who destroy nature$" + .string "Those who destroy nature$" gUnknown_086218F0:: @ 86218F0 - .string "must never be forgiven!$" + .string "must never be forgiven!$" gUnknown_08621908:: @ 8621908 - .string "I’ll show you some guts!$" + .string "I’ll show you some guts!$" gUnknown_08621921:: @ 8621921 - .string "Cute POKéMON are my faves!$" + .string "Cute POKéMON are my faves!$" gUnknown_0862193C:: @ 862193C - .string "After a battle, I always$" + .string "After a battle, I always$" gUnknown_08621955:: @ 8621955 - .string "bathe with my POKéMON.$" + .string "bathe with my POKéMON.$" gUnknown_0862196C:: @ 862196C - .string "Lightning-fast attack!$" + .string "Lightning-fast attack!$" gUnknown_08621983:: @ 8621983 - .string "BUG POKéMON are number 1!$" + .string "BUG POKéMON are number 1!$" gUnknown_0862199D:: @ 862199D - .string "If you want to catch BUG$" + .string "If you want to catch BUG$" gUnknown_086219B6:: @ 86219B6 - .string "POKéMON, wake up early.$" + .string "POKéMON, wake up early.$" gUnknown_086219CE:: @ 86219CE - .string "I battle with power.$" + .string "I battle with power.$" gUnknown_086219E3:: @ 86219E3 - .string "Hard-bodied POKéMON.$" + .string "Hard-bodied POKéMON.$" gUnknown_086219F8:: @ 86219F8 - .string "I’ve been planning a month$" + .string "I’ve been planning a month$" gUnknown_08621A13:: @ 8621A13 - .string "for today’s hike.$" + .string "for today’s hike.$" gUnknown_08621A25:: @ 8621A25 - .string "I like it hot!$" + .string "I like it hot!$" gUnknown_08621A34:: @ 8621A34 - .string "Hot POKéMON!$" + .string "Hot POKéMON!$" gUnknown_08621A41:: @ 8621A41 - .string "As much as I love POKéMON,$" + .string "As much as I love POKéMON,$" gUnknown_08621A5C:: @ 8621A5C - .string "I surely like hiking!$" + .string "I surely like hiking!$" gUnknown_08621A72:: @ 8621A72 - .string "Lovey-dovey strategy!$" + .string "Lovey-dovey strategy!$" gUnknown_08621A88:: @ 8621A88 - .string "Lovey-dovey POKéMON!$" + .string "Lovey-dovey POKéMON!$" gUnknown_08621A9D:: @ 8621A9D - .string "We’re lovey-dovey!$" + .string "We’re lovey-dovey!$" gUnknown_08621AB0:: @ 8621AB0 - .string "Forever lovey-dovey!$" + .string "Forever lovey-dovey!$" gUnknown_08621AC5:: @ 8621AC5 - .string "We let it all hang out.$" + .string "We let it all hang out.$" gUnknown_08621ADD:: @ 8621ADD - .string "The 1st POKéMON I caught.$" + .string "The 1st POKéMON I caught.$" gUnknown_08621AF7:: @ 8621AF7 - .string "POKéMON and I have grown$" + .string "POKéMON and I have grown$" gUnknown_08621B10:: @ 8621B10 - .string "stronger together.$" + .string "stronger together.$" gUnknown_08621B23:: @ 8621B23 - .string "ROCK-type power attack.$" + .string "ROCK-type power attack.$" gUnknown_08621B3B:: @ 8621B3B - .string "I prefer rock-hard POKéMON.$" + .string "I prefer rock-hard POKéMON.$" gUnknown_08621B57:: @ 8621B57 - .string "A LEADER of a big GYM bears$" + .string "A LEADER of a big GYM bears$" gUnknown_08621B73:: @ 8621B73 - .string "a lot of responsibility.$" + .string "a lot of responsibility.$" gUnknown_08621B8C:: @ 8621B8C - .string "Direct physical action!$" + .string "Direct physical action!$" gUnknown_08621BA4:: @ 8621BA4 - .string "FIGHTING POKéMON rule!$" + .string "FIGHTING POKéMON rule!$" gUnknown_08621BBB:: @ 8621BBB - .string "The world awaits me as the$" + .string "The world awaits me as the$" gUnknown_08621BD6:: @ 8621BD6 - .string "next big wave!$" + .string "next big wave!$" gUnknown_08621BE5:: @ 8621BE5 - .string "I choose to electrify.$" + .string "I choose to electrify.$" gUnknown_08621BFC:: @ 8621BFC - .string "Get shocked by electricity!$" + .string "Get shocked by electricity!$" gUnknown_08621C18:: @ 8621C18 - .string "One must never throw a$" + .string "One must never throw a$" gUnknown_08621C2F:: @ 8621C2F - .string "match. Even I must not.$" + .string "match. Even I must not.$" gUnknown_08621C47:: @ 8621C47 - .string "Battle aggressively.$" + .string "Battle aggressively.$" gUnknown_08621C5C:: @ 8621C5C - .string "Burn with passion!$" + .string "Burn with passion!$" gUnknown_08621C6F:: @ 8621C6F - .string "Completely wash away daily$" + .string "Completely wash away daily$" gUnknown_08621C8A:: @ 8621C8A - .string "fatigue in hot springs!$" + .string "fatigue in hot springs!$" gUnknown_08621CA2:: @ 8621CA2 - .string "I flexibly adapt my style.$" + .string "I flexibly adapt my style.$" gUnknown_08621CBD:: @ 8621CBD - .string "Grown in a balanced manner.$" + .string "Grown in a balanced manner.$" gUnknown_08621CD9:: @ 8621CD9 - .string "I walk the 30 minutes from$" + .string "I walk the 30 minutes from$" gUnknown_08621CF4:: @ 8621CF4 - .string "home to here every day.$" + .string "home to here every day.$" gUnknown_08621D0C:: @ 8621D0C - .string "I take advantage of speed.$" + .string "I take advantage of speed.$" gUnknown_08621D27:: @ 8621D27 - .string "Graceful sky dancers.$" + .string "Graceful sky dancers.$" gUnknown_08621D3D:: @ 8621D3D - .string "The ultimate would be to$" + .string "The ultimate would be to$" gUnknown_08621D56:: @ 8621D56 - .string "live as one with nature.$" + .string "live as one with nature.$" gUnknown_08621D6F:: @ 8621D6F - .string "We battle in cooperation.$" + .string "We battle in cooperation.$" gUnknown_08621D89:: @ 8621D89 - .string "Always friendly POKéMON.$" + .string "Always friendly POKéMON.$" gUnknown_08621DA2:: @ 8621DA2 - .string "Papa has trouble telling$" + .string "Papa has trouble telling$" gUnknown_08621DBB:: @ 8621DBB - .string "the two of us apart!$" + .string "the two of us apart!$" gUnknown_08621DD0:: @ 8621DD0 - .string "I use splendid waterpower.$" + .string "I use splendid waterpower.$" gUnknown_08621DEB:: @ 8621DEB - .string "POKéMON of elegance!$" + .string "POKéMON of elegance!$" gUnknown_08621E00:: @ 8621E00 - .string "The adulation of beautiful$" + .string "The adulation of beautiful$" gUnknown_08621E1B:: @ 8621E1B - .string "ladies fills me with energy!$" + .string "ladies fills me with energy!$" gUnknown_08621E38:: @ 8621E38 - .string "Offense over defense!$" + .string "Offense over defense!$" gUnknown_08621E4E:: @ 8621E4E - .string "The DARK side’s beauties.$" + .string "The DARK side’s beauties.$" gUnknown_08621E68:: @ 8621E68 - .string "They said I was a punk, but$" + .string "They said I was a punk, but$" gUnknown_08621E84:: @ 8621E84 - .string "I’m one of the ELITE FOUR!$" + .string "I’m one of the ELITE FOUR!$" gUnknown_08621E9F:: @ 8621E9F - .string "Confuse and confound.$" + .string "Confuse and confound.$" gUnknown_08621EB5:: @ 8621EB5 - .string "There’s nothing definite.$" + .string "There’s nothing definite.$" gUnknown_08621ECF:: @ 8621ECF - .string "I wonder how my grandma at$" + .string "I wonder how my grandma at$" gUnknown_08621EEA:: @ 8621EEA - .string "MT. PYRE is doing?$" + .string "MT. PYRE is doing?$" gUnknown_08621EFD:: @ 8621EFD - .string "I use items for help.$" + .string "I use items for help.$" gUnknown_08621F13:: @ 8621F13 - .string "Flaming passion in icy cold!$" + .string "Flaming passion in icy cold!$" gUnknown_08621F30:: @ 8621F30 - .string "The ICE type can be better$" + .string "The ICE type can be better$" gUnknown_08621F4B:: @ 8621F4B - .string "trained in this hot land.$" + .string "trained in this hot land.$" gUnknown_08621F65:: @ 8621F65 - .string "Harness strong abilities.$" + .string "Harness strong abilities.$" gUnknown_08621F7F:: @ 8621F7F - .string "The raw power of DRAGONS!$" + .string "The raw power of DRAGONS!$" gUnknown_08621F99:: @ 8621F99 - .string "I dedicate myself to the$" + .string "I dedicate myself to the$" gUnknown_08621FB2:: @ 8621FB2 - .string "POKéMON that saved me.$" + .string "POKéMON that saved me.$" gUnknown_08621FC9:: @ 8621FC9 - .string "Dignity and respect.$" + .string "Dignity and respect.$" gUnknown_08621FDE:: @ 8621FDE - .string "I prefer POKéMON of grace.$" + .string "I prefer POKéMON of grace.$" gUnknown_08621FF9:: @ 8621FF9 - .string "I represent beauty as$" + .string "I represent beauty as$" gUnknown_0862200F:: @ 862200F - .string "well as intelligence.$" + .string "well as intelligence.$" .align 2 @@ -1345,10 +1345,10 @@ gUnknown_08622530:: @ 8622530 .incbin "baserom.gba", 0x622530, 0xa4 gUnknown_086225D4:: @ 86225D4 - .incbin "baserom.gba", 0x6225d4, 0xC4 + .incbin "baserom.gba", 0x6225d4, 0xC4 gUnknown_08622698:: @ 8622698 - .incbin "baserom.gba", 0x622698, 0x48 + .incbin "baserom.gba", 0x622698, 0x48 gUnknown_086226E0:: @ 86226E0 .incbin "baserom.gba", 0x6226e0, 0x20 @@ -1432,73 +1432,73 @@ gUnknown_08622868:: @ 8622868 .incbin "baserom.gba", 0x622868, 0x20 gUnknown_08622888:: @ 8622888 - .incbin "baserom.gba", 0x622888, 0x1F4 + .incbin "baserom.gba", 0x622888, 0x1F4 gUnknown_08622A7C:: @ 8622A7C - .incbin "baserom.gba", 0x622a7c, 0x44 + .incbin "baserom.gba", 0x622a7c, 0x44 gUnknown_08622AC0:: @ 8622AC0 - .incbin "baserom.gba", 0x622ac0, 0x48 + .incbin "baserom.gba", 0x622ac0, 0x48 gUnknown_08622B08:: @ 8622B08 - .incbin "baserom.gba", 0x622b08, 0x50 + .incbin "baserom.gba", 0x622b08, 0x50 gUnknown_08622B58:: @ 8622B58 - .incbin "baserom.gba", 0x622b58, 0x60 + .incbin "baserom.gba", 0x622b58, 0x60 gUnknown_08622BB8:: @ 8622BB8 - .incbin "baserom.gba", 0x622bb8, 0x4C + .incbin "baserom.gba", 0x622bb8, 0x4C gUnknown_08622C04:: @ 8622C04 - .incbin "baserom.gba", 0x622c04, 0x54 + .incbin "baserom.gba", 0x622c04, 0x54 gUnknown_08622C58:: @ 8622C58 - .incbin "baserom.gba", 0x622c58, 0x54 + .incbin "baserom.gba", 0x622c58, 0x54 gUnknown_08622CAC:: @ 8622CAC - .incbin "baserom.gba", 0x622cac, 0x40 + .incbin "baserom.gba", 0x622cac, 0x40 gUnknown_08622CEC:: @ 8622CEC - .incbin "baserom.gba", 0x622cec, 0x58 + .incbin "baserom.gba", 0x622cec, 0x58 gUnknown_08622D44:: @ 8622D44 - .incbin "baserom.gba", 0x622d44, 0x54 + .incbin "baserom.gba", 0x622d44, 0x54 gUnknown_08622D98:: @ 8622D98 - .incbin "baserom.gba", 0x622d98, 0x30 + .incbin "baserom.gba", 0x622d98, 0x30 gUnknown_08622DC8:: @ 8622DC8 - .incbin "baserom.gba", 0x622dc8, 0x4C + .incbin "baserom.gba", 0x622dc8, 0x4C gUnknown_08622E14:: @ 8622E14 - .incbin "baserom.gba", 0x622e14, 0x58 + .incbin "baserom.gba", 0x622e14, 0x58 gUnknown_08622E6C:: @ 8622E6C - .incbin "baserom.gba", 0x622e6c, 0x30 + .incbin "baserom.gba", 0x622e6c, 0x30 gUnknown_08622E9C:: @ 8622E9C - .incbin "baserom.gba", 0x622e9c, 0x38 + .incbin "baserom.gba", 0x622e9c, 0x38 gUnknown_08622ED4:: @ 8622ED4 - .incbin "baserom.gba", 0x622ed4, 0x40 + .incbin "baserom.gba", 0x622ed4, 0x40 gUnknown_08622F14:: @ 8622F14 - .incbin "baserom.gba", 0x622f14, 0x48 + .incbin "baserom.gba", 0x622f14, 0x48 gUnknown_08622F5C:: @ 8622F5C - .incbin "baserom.gba", 0x622f5c, 0x44 + .incbin "baserom.gba", 0x622f5c, 0x44 gUnknown_08622FA0:: @ 8622FA0 - .incbin "baserom.gba", 0x622fa0, 0x38 + .incbin "baserom.gba", 0x622fa0, 0x38 gUnknown_08622FD8:: @ 8622FD8 - .incbin "baserom.gba", 0x622fd8, 0x48 + .incbin "baserom.gba", 0x622fd8, 0x48 gUnknown_08623020:: @ 8623020 - .incbin "baserom.gba", 0x623020, 0x5C + .incbin "baserom.gba", 0x623020, 0x5C gUnknown_0862307C:: @ 862307C - .incbin "baserom.gba", 0x62307c, 0x5C + .incbin "baserom.gba", 0x62307c, 0x5C gUnknown_086230D8:: @ 86230D8 .incbin "baserom.gba", 0x6230d8, 0xc @@ -1694,28 +1694,28 @@ gUnknown_086237F8:: @ 86237F8 .include "data/text/gift_ribbon_descriptions.inc" gUnknown_08623FF8:: @ 8623FF8 - .incbin "baserom.gba", 0x623ff8, 0x20 + .incbin "baserom.gba", 0x623ff8, 0x20 gUnknown_08624018:: @ 8624018 - .incbin "baserom.gba", 0x624018, 0x20 + .incbin "baserom.gba", 0x624018, 0x20 gUnknown_08624038:: @ 8624038 - .incbin "baserom.gba", 0x624038, 0x20 + .incbin "baserom.gba", 0x624038, 0x20 gUnknown_08624058:: @ 8624058 - .incbin "baserom.gba", 0x624058, 0x20 + .incbin "baserom.gba", 0x624058, 0x20 gUnknown_08624078:: @ 8624078 - .incbin "baserom.gba", 0x624078, 0x20 + .incbin "baserom.gba", 0x624078, 0x20 gUnknown_08624098:: @ 8624098 - .incbin "baserom.gba", 0x624098, 0x20 + .incbin "baserom.gba", 0x624098, 0x20 gUnknown_086240B8:: @ 86240B8 - .incbin "baserom.gba", 0x6240b8, 0x1C8 + .incbin "baserom.gba", 0x6240b8, 0x1C8 gUnknown_08624280:: @ 8624280 - .incbin "baserom.gba", 0x624280, 0x918 + .incbin "baserom.gba", 0x624280, 0x918 gUnknown_08624B98:: @ 8624B98 .incbin "baserom.gba", 0x624b98, 0x8 @@ -1767,93 +1767,93 @@ gUnknown_08624CB0:: @ 8624CB0 .incbin "baserom.gba", 0x624cb0, 0x54 gUnknown_08624D04:: @ 8624D04 - .incbin "baserom.gba", 0x624d04, 0x78 + .incbin "baserom.gba", 0x624d04, 0x78 gUnknown_08624D7C:: @ 8624D7C - .incbin "baserom.gba", 0x624d7c, 0x60 + .incbin "baserom.gba", 0x624d7c, 0x60 gUnknown_08624DDC:: @ 8624DDC - .incbin "baserom.gba", 0x624ddc, 0x14 + .incbin "baserom.gba", 0x624ddc, 0x14 gUnknown_08624DF0:: @ 8624DF0 - .incbin "baserom.gba", 0x624df0, 0x2C + .incbin "baserom.gba", 0x624df0, 0x2C gUnknown_08624E1C:: @ 8624E1C - .incbin "baserom.gba", 0x624e1c, 0x50 + .incbin "baserom.gba", 0x624e1c, 0x50 gUnknown_08624E6C:: @ 8624E6C - .incbin "baserom.gba", 0x624e6c, 0x90 + .incbin "baserom.gba", 0x624e6c, 0x90 gUnknown_08624EFC:: @ 8624EFC - .incbin "baserom.gba", 0x624efc, 0x90 + .incbin "baserom.gba", 0x624efc, 0x90 gUnknown_08624F8C:: @ 8624F8C - .incbin "baserom.gba", 0x624f8c, 0x60 + .incbin "baserom.gba", 0x624f8c, 0x60 gUnknown_08624FEC:: @ 8624FEC - .incbin "baserom.gba", 0x624fec, 0x54 + .incbin "baserom.gba", 0x624fec, 0x54 gUnknown_08625040:: @ 8625040 - .incbin "baserom.gba", 0x625040, 0x38 + .incbin "baserom.gba", 0x625040, 0x38 gUnknown_08625078:: @ 8625078 - .incbin "baserom.gba", 0x625078, 0x3C + .incbin "baserom.gba", 0x625078, 0x3C gUnknown_086250B4:: @ 86250B4 - .incbin "baserom.gba", 0x6250b4, 0x3C + .incbin "baserom.gba", 0x6250b4, 0x3C gUnknown_086250F0:: @ 86250F0 - .incbin "baserom.gba", 0x6250f0, 0x3C + .incbin "baserom.gba", 0x6250f0, 0x3C gUnknown_0862512C:: @ 862512C - .incbin "baserom.gba", 0x62512c, 0x3C + .incbin "baserom.gba", 0x62512c, 0x3C gUnknown_08625168:: @ 8625168 - .incbin "baserom.gba", 0x625168, 0x3C + .incbin "baserom.gba", 0x625168, 0x3C gUnknown_086251A4:: @ 86251A4 - .incbin "baserom.gba", 0x6251a4, 0x3C + .incbin "baserom.gba", 0x6251a4, 0x3C gUnknown_086251E0:: @ 86251E0 - .incbin "baserom.gba", 0x6251e0, 0x24 + .incbin "baserom.gba", 0x6251e0, 0x24 gUnknown_08625204:: @ 8625204 - .incbin "baserom.gba", 0x625204, 0x24 + .incbin "baserom.gba", 0x625204, 0x24 gUnknown_08625228:: @ 8625228 - .incbin "baserom.gba", 0x625228, 0x24 + .incbin "baserom.gba", 0x625228, 0x24 gUnknown_0862524C:: @ 862524C - .incbin "baserom.gba", 0x62524c, 0x24 + .incbin "baserom.gba", 0x62524c, 0x24 gUnknown_08625270:: @ 8625270 - .incbin "baserom.gba", 0x625270, 0x24 + .incbin "baserom.gba", 0x625270, 0x24 gUnknown_08625294:: @ 8625294 - .incbin "baserom.gba", 0x625294, 0x14 + .incbin "baserom.gba", 0x625294, 0x14 gUnknown_086252A8:: @ 86252A8 .4byte gUnknown_08624D7C - .4byte gUnknown_08624DF0 - .4byte gUnknown_08624F8C - .4byte gUnknown_08624EFC - .4byte gUnknown_08624FEC - .4byte gUnknown_08624DDC - .4byte gUnknown_08624E1C - .4byte gUnknown_08624E6C - .4byte gUnknown_08625040 - .4byte gUnknown_08625078 - .4byte gUnknown_086250B4 - .4byte gUnknown_086250F0 - .4byte gUnknown_0862512C - .4byte gUnknown_08625168 - .4byte gUnknown_086251A4 - .4byte gUnknown_086251E0 - .4byte gUnknown_08625204 - .4byte gUnknown_08625228 - .4byte gUnknown_0862524C - .4byte gUnknown_08625270 - .4byte gUnknown_08625294 + .4byte gUnknown_08624DF0 + .4byte gUnknown_08624F8C + .4byte gUnknown_08624EFC + .4byte gUnknown_08624FEC + .4byte gUnknown_08624DDC + .4byte gUnknown_08624E1C + .4byte gUnknown_08624E6C + .4byte gUnknown_08625040 + .4byte gUnknown_08625078 + .4byte gUnknown_086250B4 + .4byte gUnknown_086250F0 + .4byte gUnknown_0862512C + .4byte gUnknown_08625168 + .4byte gUnknown_086251A4 + .4byte gUnknown_086251E0 + .4byte gUnknown_08625204 + .4byte gUnknown_08625228 + .4byte gUnknown_0862524C + .4byte gUnknown_08625270 + .4byte gUnknown_08625294 gUnknown_086252FC:: @ 86252FC .4byte sub_81D1628 diff --git a/data/record_mixing.s b/data/record_mixing.s index 6531633a50..0ef0a776a9 100644 --- a/data/record_mixing.s +++ b/data/record_mixing.s @@ -2,7 +2,7 @@ .include "constants/constants.inc" .section .rodata - .align 2, 0 + .align 2, 0 gUnknown_0858CF8C:: @ 858CF8C .incbin "baserom.gba", 0x58cf8c, 0x2 diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s index f680a87bc8..37c532497e 100644 --- a/data/reset_rtc_screen.s +++ b/data/reset_rtc_screen.s @@ -1,8 +1,8 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section .rodata - .align 2, 0 + .section .rodata + .align 2, 0 gUnknown_08510404:: @ 8510404 struct BgTemplate .4byte 0x000001f0 diff --git a/data/rom_8486FEC.s b/data/rom_8486FEC.s index 9b7834a32a..850ae5032d 100644 --- a/data/rom_8486FEC.s +++ b/data/rom_8486FEC.s @@ -1,8 +1,8 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section .rodata - .align 2, 0 + .section .rodata + .align 2, 0 gUnknown_8486FEC:: @ 8486FEC .incbin "baserom.gba", 0x486fec, 0xFFA0 diff --git a/data/rom_8525F58.s b/data/rom_8525F58.s index 808300deb5..d95af7e20a 100644 --- a/data/rom_8525F58.s +++ b/data/rom_8525F58.s @@ -1,34 +1,34 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section .rodata + .section .rodata - .align 2 + .align 2 gUnknown_08525F58:: @ 8525F58 .byte 0x48, 0x50, 0x00, 0x00, 0xb0, 0x28, 0x00, 0x00 .byte 0x30, 0x28, 0x00, 0x00, 0x70, 0x50, 0x00, 0x00 .byte 0x20, 0x50, 0x00, 0x00, 0xc8, 0x28, 0x00, 0x00 .byte 0x5a, 0x58, 0x00, 0x00, 0x98, 0x20, 0x00, 0x00 - .align 2 + .align 2 gCastformFrontSpriteCoords:: @ 8525F78 .byte 0x44, 0x11, 0x00, 0x00, 0x66, 0x09, 0x00, 0x00 .byte 0x46, 0x09, 0x00, 0x00, 0x86, 0x08, 0x00, 0x00 - .align 2 + .align 2 gUnknown_08525F88:: @ 8525F88 .byte 0x0d, 0x0e, 0x0d, 0x0d - .align 2 + .align 2 gUnknown_08525F8C:: @ 8525F8C .byte 0x00, 0x00, 0x00, 0x00 - .align 2 + .align 2 gUnknown_08525F90:: @ 8525F90 spr_template 0xd755, 0xd755, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy spr_template 0xd756, 0xd756, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - .align 2 + .align 2 gUnknown_08525FC0:: @ 8525FC0 obj_tiles gMiscBlank_Gfx, 0x0800, 0xd755 obj_tiles gMiscBlank_Gfx, 0x0800, 0xd756 diff --git a/data/save.s b/data/save.s index 15e201baa0..23a8d3928d 100644 --- a/data/save.s +++ b/data/save.s @@ -4,17 +4,17 @@ .section .rodata gSaveSectionOffsets:: @ 85CDC00 - .2byte 0, 0xF2C - .2byte 0, 0xF80 - .2byte 0xF80, 0xF80 - .2byte 0x1F00, 0xF80 - .2byte 0x2E80, 0xF08 - .2byte 0, 0xF80 - .2byte 0xF80, 0xF80 - .2byte 0x1F00, 0xF80 - .2byte 0x2E80, 0xF80 - .2byte 0x3E00, 0xF80 - .2byte 0x4D80, 0xF80 - .2byte 0x5D00, 0xF80 - .2byte 0x6C80, 0xF80 - .2byte 0x7C00, 0x7D0 + .2byte 0, 0xF2C + .2byte 0, 0xF80 + .2byte 0xF80, 0xF80 + .2byte 0x1F00, 0xF80 + .2byte 0x2E80, 0xF08 + .2byte 0, 0xF80 + .2byte 0xF80, 0xF80 + .2byte 0x1F00, 0xF80 + .2byte 0x2E80, 0xF80 + .2byte 0x3E00, 0xF80 + .2byte 0x4D80, 0xF80 + .2byte 0x5D00, 0xF80 + .2byte 0x6C80, 0xF80 + .2byte 0x7C00, 0x7D0 diff --git a/data/script_menu.s b/data/script_menu.s index cf4a5df014..33c185d394 100644 --- a/data/script_menu.s +++ b/data/script_menu.s @@ -728,7 +728,7 @@ gUnknown_0858BAF0:: @ 858BAF0 gUnknown_0858BB68:: @ 858BB68 .byte 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F - .align 2 + .align 2 gUnknown_0858BB70:: @ 858BB70 .4byte gText_SomeonesPC .4byte gText_LanettesPC diff --git a/data/script_pokemon_util_80F87D8.s b/data/script_pokemon_util_80F87D8.s index 360a6f50aa..dcf9edeea9 100644 --- a/data/script_pokemon_util_80F87D8.s +++ b/data/script_pokemon_util_80F87D8.s @@ -2,6 +2,6 @@ .include "constants/constants.inc" .section .rodata - .align 2, 0 + .align 2, 0 gUnknown_0858D8EC:: @ 858D8EC .byte 3, 4, 5, 14 diff --git a/data/specials.inc b/data/specials.inc index abc0a6e6c3..15aa2b7a67 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -1,11 +1,11 @@ .macro def_special ptr .set SPECIAL_\ptr, __special__ .set __special__, __special__ + 1 - .4byte \ptr - .endm + .4byte \ptr + .endm .set __special__, 0 - .align 2 + .align 2 gSpecials:: @ 81DBA64 def_special HealPlayerParty def_special sub_809D2BC diff --git a/data/strings.s b/data/strings.s index 1d6444cd83..5eb2b13eed 100644 --- a/data/strings.s +++ b/data/strings.s @@ -304,13 +304,13 @@ gText_UnkWeight:: @ 85E86D0 .string "????.? lbs.$" gUnknown_085E86DC:: @ 85E86DC - .string " POKéMON$" + .string " POKéMON$" gUnknown_085E86FB:: @ 85E86FB - .string "{CLEAR_TO 0x0C} ’ ”$" + .string "{CLEAR_TO 0x0C} ’ ”$" gUnknown_085E8709:: @ 85E8709 - .string " . lbs.$" + .string " . lbs.$" gUnknown_085E871A:: @ 85E871A .string "$" @@ -1923,7 +1923,7 @@ gUnknown_085EAFE8:: @ 85EAFE8 .string "MUDKIP DOLL 1,000 COINS$" gUnknown_085EB002:: @ 85EB002 - .string " 50 COINS ¥1,000$" + .string " 50 COINS ¥1,000$" gUnknown_085EB017:: @ 85EB017 .string "500 COINS ¥10,000$" @@ -2121,7 +2121,7 @@ gText_MenuOptionExit:: @ 85EB285 .string "EXIT$" gUnknown_085EB28A:: @ 85EB28A - .string " " + .string " " gUnknown_085EB28C:: @ 85EB28C .string "5BP$" @@ -4800,7 +4800,7 @@ gText_AcceptThisPkmn:: @ 85EECF0 .string "Accept this POKéMON?$" gUnknown_085EED05:: @ 85EED05 - .string " $" + .string " $" gText_SamePkmnInPartyAlready:: @ 85EED0A .string "Same {PKMN} in party already.$" diff --git a/data/text_window.s b/data/text_window.s index 26c231f909..716425100a 100644 --- a/data/text_window.s +++ b/data/text_window.s @@ -1,170 +1,170 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section .rodata - .align 2, 0 + .section .rodata + .align 2, 0 gUnknown_0850E87C:: @ 850E87C - .incbin "baserom.gba", 0x50e87c, 0x120 + .incbin "baserom.gba", 0x50e87c, 0x120 gUnknown_0850E99C:: @ 850E99C - .incbin "baserom.gba", 0x50e99c, 0x120 + .incbin "baserom.gba", 0x50e99c, 0x120 gUnknown_0850EABC:: @ 850EABC - .incbin "baserom.gba", 0x50eabc, 0x120 + .incbin "baserom.gba", 0x50eabc, 0x120 gUnknown_0850EBDC:: @ 850EBDC - .incbin "baserom.gba", 0x50ebdc, 0x120 + .incbin "baserom.gba", 0x50ebdc, 0x120 gUnknown_0850ECFC:: @ 850ECFC - .incbin "baserom.gba", 0x50ecfc, 0x120 + .incbin "baserom.gba", 0x50ecfc, 0x120 gUnknown_0850EE1C:: @ 850EE1C - .incbin "baserom.gba", 0x50ee1c, 0x120 + .incbin "baserom.gba", 0x50ee1c, 0x120 gUnknown_0850EF3C:: @ 850EF3C - .incbin "baserom.gba", 0x50ef3c, 0x120 + .incbin "baserom.gba", 0x50ef3c, 0x120 gUnknown_0850F05C:: @ 850F05C - .incbin "baserom.gba", 0x50f05c, 0x120 + .incbin "baserom.gba", 0x50f05c, 0x120 gUnknown_0850F17C:: @ 850F17C - .incbin "baserom.gba", 0x50f17c, 0x120 + .incbin "baserom.gba", 0x50f17c, 0x120 gUnknown_0850F29C:: @ 850F29C - .incbin "baserom.gba", 0x50f29c, 0x120 + .incbin "baserom.gba", 0x50f29c, 0x120 gUnknown_0850F3BC:: @ 850F3BC - .incbin "baserom.gba", 0x50f3bc, 0x120 + .incbin "baserom.gba", 0x50f3bc, 0x120 gUnknown_0850F4DC:: @ 850F4DC - .incbin "baserom.gba", 0x50f4dc, 0x120 + .incbin "baserom.gba", 0x50f4dc, 0x120 gUnknown_0850F5FC:: @ 850F5FC - .incbin "baserom.gba", 0x50f5fc, 0x120 + .incbin "baserom.gba", 0x50f5fc, 0x120 gUnknown_0850F71C:: @ 850F71C - .incbin "baserom.gba", 0x50f71c, 0x120 + .incbin "baserom.gba", 0x50f71c, 0x120 gUnknown_0850F83C:: @ 850F83C - .incbin "baserom.gba", 0x50f83c, 0x120 + .incbin "baserom.gba", 0x50f83c, 0x120 gUnknown_0850F95C:: @ 850F95C - .incbin "baserom.gba", 0x50f95c, 0x120 + .incbin "baserom.gba", 0x50f95c, 0x120 gUnknown_0850FA7C:: @ 850FA7C - .incbin "baserom.gba", 0x50fa7c, 0x120 + .incbin "baserom.gba", 0x50fa7c, 0x120 gUnknown_0850FB9C:: @ 850FB9C - .incbin "baserom.gba", 0x50fb9c, 0x120 + .incbin "baserom.gba", 0x50fb9c, 0x120 gUnknown_0850FCBC:: @ 850FCBC - .incbin "baserom.gba", 0x50fcbc, 0x120 + .incbin "baserom.gba", 0x50fcbc, 0x120 gUnknown_0850FDDC:: @ 850FDDC - .incbin "baserom.gba", 0x50fddc, 0x120 + .incbin "baserom.gba", 0x50fddc, 0x120 gUnknown_0850FEFC:: @ 850FEFC - .incbin "baserom.gba", 0x50fefc, 0x20 + .incbin "baserom.gba", 0x50fefc, 0x20 gUnknown_0850FF1C:: @ 850FF1C - .incbin "baserom.gba", 0x50ff1c, 0x20 + .incbin "baserom.gba", 0x50ff1c, 0x20 gUnknown_0850FF3C:: @ 850FF3C - .incbin "baserom.gba", 0x50ff3c, 0x20 + .incbin "baserom.gba", 0x50ff3c, 0x20 gUnknown_0850FF5C:: @ 850FF5C - .incbin "baserom.gba", 0x50ff5c, 0x20 + .incbin "baserom.gba", 0x50ff5c, 0x20 gUnknown_0850FF7C:: @ 850FF7C - .incbin "baserom.gba", 0x50ff7c, 0x20 + .incbin "baserom.gba", 0x50ff7c, 0x20 gUnknown_0850FF9C:: @ 850FF9C - .incbin "baserom.gba", 0x50ff9c, 0x20 + .incbin "baserom.gba", 0x50ff9c, 0x20 gUnknown_0850FFBC:: @ 850FFBC - .incbin "baserom.gba", 0x50ffbc, 0x20 + .incbin "baserom.gba", 0x50ffbc, 0x20 gUnknown_0850FFDC:: @ 850FFDC - .incbin "baserom.gba", 0x50ffdc, 0x20 + .incbin "baserom.gba", 0x50ffdc, 0x20 gUnknown_0850FFFC:: @ 850FFFC - .incbin "baserom.gba", 0x50fffc, 0x20 + .incbin "baserom.gba", 0x50fffc, 0x20 gUnknown_0851001C:: @ 851001C - .incbin "baserom.gba", 0x51001c, 0x20 + .incbin "baserom.gba", 0x51001c, 0x20 gUnknown_0851003C:: @ 851003C - .incbin "baserom.gba", 0x51003c, 0x20 + .incbin "baserom.gba", 0x51003c, 0x20 gUnknown_0851005C:: @ 851005C - .incbin "baserom.gba", 0x51005c, 0x20 + .incbin "baserom.gba", 0x51005c, 0x20 gUnknown_0851007C:: @ 851007C - .incbin "baserom.gba", 0x51007c, 0x20 + .incbin "baserom.gba", 0x51007c, 0x20 gUnknown_0851009C:: @ 851009C - .incbin "baserom.gba", 0x51009c, 0x20 + .incbin "baserom.gba", 0x51009c, 0x20 gUnknown_085100BC:: @ 85100BC - .incbin "baserom.gba", 0x5100bc, 0x20 + .incbin "baserom.gba", 0x5100bc, 0x20 gUnknown_085100DC:: @ 85100DC - .incbin "baserom.gba", 0x5100dc, 0x20 + .incbin "baserom.gba", 0x5100dc, 0x20 gUnknown_085100FC:: @ 85100FC - .incbin "baserom.gba", 0x5100fc, 0x20 + .incbin "baserom.gba", 0x5100fc, 0x20 gUnknown_0851011C:: @ 851011C - .incbin "baserom.gba", 0x51011c, 0x20 + .incbin "baserom.gba", 0x51011c, 0x20 gUnknown_0851013C:: @ 851013C - .incbin "baserom.gba", 0x51013c, 0x20 + .incbin "baserom.gba", 0x51013c, 0x20 gUnknown_0851015C:: @ 851015C - .incbin "baserom.gba", 0x51015c, 0x20 + .incbin "baserom.gba", 0x51015c, 0x20 gUnknown_0851017C:: @ 851017C - .incbin "baserom.gba", 0x51017c, 0xA0 + .incbin "baserom.gba", 0x51017c, 0xA0 gUnknown_0851021C:: @ 851021C .4byte gUnknown_0850E87C - .4byte gUnknown_0850FEFC - .4byte gUnknown_0850E99C - .4byte gUnknown_0850FF1C - .4byte gUnknown_0850EABC - .4byte gUnknown_0850FF3C - .4byte gUnknown_0850EBDC - .4byte gUnknown_0850FF5C - .4byte gUnknown_0850ECFC - .4byte gUnknown_0850FF7C - .4byte gUnknown_0850EE1C - .4byte gUnknown_0850FF9C - .4byte gUnknown_0850EF3C - .4byte gUnknown_0850FFBC - .4byte gUnknown_0850F05C - .4byte gUnknown_0850FFDC - .4byte gUnknown_0850F17C - .4byte gUnknown_0850FFFC - .4byte gUnknown_0850F29C - .4byte gUnknown_0851001C - .4byte gUnknown_0850F3BC - .4byte gUnknown_0851003C - .4byte gUnknown_0850F4DC - .4byte gUnknown_0851005C - .4byte gUnknown_0850F5FC - .4byte gUnknown_0851007C - .4byte gUnknown_0850F71C - .4byte gUnknown_0851009C - .4byte gUnknown_0850F83C - .4byte gUnknown_085100BC - .4byte gUnknown_0850F95C - .4byte gUnknown_085100DC - .4byte gUnknown_0850FA7C - .4byte gUnknown_085100FC - .4byte gUnknown_0850FB9C - .4byte gUnknown_0851011C - .4byte gUnknown_0850FCBC - .4byte gUnknown_0851013C - .4byte gUnknown_0850FDDC - .4byte gUnknown_0851015C + .4byte gUnknown_0850FEFC + .4byte gUnknown_0850E99C + .4byte gUnknown_0850FF1C + .4byte gUnknown_0850EABC + .4byte gUnknown_0850FF3C + .4byte gUnknown_0850EBDC + .4byte gUnknown_0850FF5C + .4byte gUnknown_0850ECFC + .4byte gUnknown_0850FF7C + .4byte gUnknown_0850EE1C + .4byte gUnknown_0850FF9C + .4byte gUnknown_0850EF3C + .4byte gUnknown_0850FFBC + .4byte gUnknown_0850F05C + .4byte gUnknown_0850FFDC + .4byte gUnknown_0850F17C + .4byte gUnknown_0850FFFC + .4byte gUnknown_0850F29C + .4byte gUnknown_0851001C + .4byte gUnknown_0850F3BC + .4byte gUnknown_0851003C + .4byte gUnknown_0850F4DC + .4byte gUnknown_0851005C + .4byte gUnknown_0850F5FC + .4byte gUnknown_0851007C + .4byte gUnknown_0850F71C + .4byte gUnknown_0851009C + .4byte gUnknown_0850F83C + .4byte gUnknown_085100BC + .4byte gUnknown_0850F95C + .4byte gUnknown_085100DC + .4byte gUnknown_0850FA7C + .4byte gUnknown_085100FC + .4byte gUnknown_0850FB9C + .4byte gUnknown_0851011C + .4byte gUnknown_0850FCBC + .4byte gUnknown_0851013C + .4byte gUnknown_0850FDDC + .4byte gUnknown_0851015C diff --git a/data/trade.s b/data/trade.s index b392fbc244..8c6d1cb8ae 100644 --- a/data/trade.s +++ b/data/trade.s @@ -1,8 +1,8 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section .rodata - .align 2, 0 + .section .rodata + .align 2, 0 gUnknown_0832C6A8:: @ 832C6A8 .incbin "baserom.gba", 0x32C6A8, 0x18 diff --git a/data/trainer_card.s b/data/trainer_card.s index f81bfcad1d..46895d9b19 100644 --- a/data/trainer_card.s +++ b/data/trainer_card.s @@ -1,8 +1,8 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section .rodata - .align 2, 0 + .section .rodata + .align 2, 0 .macro unk_trainer_card_struct text1, text2, short1, short2, short3, short4 .4byte \text1 @@ -14,31 +14,31 @@ .endm gUnknown_0856F018:: @ 856F018 - .incbin "baserom.gba", 0x56f018, 0x194 + .incbin "baserom.gba", 0x56f018, 0x194 gUnknown_0856F1AC:: @ 856F1AC - .incbin "baserom.gba", 0x56f1ac, 0x60 + .incbin "baserom.gba", 0x56f1ac, 0x60 gUnknown_0856F20C:: @ 856F20C - .incbin "baserom.gba", 0x56f20c, 0x60 + .incbin "baserom.gba", 0x56f20c, 0x60 gUnknown_0856F26C:: @ 856F26C - .incbin "baserom.gba", 0x56f26c, 0x60 + .incbin "baserom.gba", 0x56f26c, 0x60 gUnknown_0856F2CC:: @ 856F2CC - .incbin "baserom.gba", 0x56f2cc, 0x60 + .incbin "baserom.gba", 0x56f2cc, 0x60 gUnknown_0856F32C:: @ 856F32C - .incbin "baserom.gba", 0x56f32c, 0x60 + .incbin "baserom.gba", 0x56f32c, 0x60 gUnknown_0856F38C:: @ 856F38C - .incbin "baserom.gba", 0x56f38c, 0x60 + .incbin "baserom.gba", 0x56f38c, 0x60 gUnknown_0856F3EC:: @ 856F3EC - .incbin "baserom.gba", 0x56f3ec, 0x60 + .incbin "baserom.gba", 0x56f3ec, 0x60 gUnknown_0856F44C:: @ 856F44C - .incbin "baserom.gba", 0x56f44c, 0x60 + .incbin "baserom.gba", 0x56f44c, 0x60 gUnknown_0856F4AC:: @ 856F4AC .incbin "baserom.gba", 0x56f4ac, 0x20 @@ -81,26 +81,26 @@ gUnknown_0856FAC4:: @ 856FAC4 gUnknown_0856FAE4:: @ 856FAE4 .4byte gUnknown_08DD1A58 - .4byte gUnknown_0856F1AC - .4byte gUnknown_0856F26C - .4byte gUnknown_0856F32C - .4byte gUnknown_0856F3EC + .4byte gUnknown_0856F1AC + .4byte gUnknown_0856F26C + .4byte gUnknown_0856F32C + .4byte gUnknown_0856F3EC gUnknown_0856FAF8:: @ 856FAF8 .4byte gUnknown_08DD240C - .4byte gUnknown_0856F20C - .4byte gUnknown_0856F2CC - .4byte gUnknown_0856F38C - .4byte gUnknown_0856F44C + .4byte gUnknown_0856F20C + .4byte gUnknown_0856F2CC + .4byte gUnknown_0856F38C + .4byte gUnknown_0856F44C gUnknown_0856FB0C:: @ 856FB0C .incbin "baserom.gba", 0x56fb0c, 0x3 gUnknown_0856FB0F:: @ 856FB0F - .incbin "baserom.gba", 0x56fb0f, 0x3 + .incbin "baserom.gba", 0x56fb0f, 0x3 gUnknown_0856FB12:: @ 856FB12 - .incbin "baserom.gba", 0x56fb12, 0x6 + .incbin "baserom.gba", 0x56fb12, 0x6 gUnknown_0856FB18:: @ 856FB18 .incbin "baserom.gba", 0x56fb18, 0x8 @@ -150,25 +150,25 @@ gUnknown_0856FB74:: @ 856FB74 .incbin "baserom.gba", 0x56fb74, 0x4 gUnknown_0856FB78:: @ 856FB78 - .incbin "baserom.gba", 0x56fb78, 0x4 + .incbin "baserom.gba", 0x56fb78, 0x4 gUnknown_0856FB7C:: @ 856FB7C - .incbin "baserom.gba", 0x56fb7c, 0x20 + .incbin "baserom.gba", 0x56fb7c, 0x20 gUnknown_0856FB9C:: @ 856FB9C - .incbin "baserom.gba", 0x56fb9c, 0x20 + .incbin "baserom.gba", 0x56fb9c, 0x20 gUnknown_0856FBBC:: @ 856FBBC - .incbin "baserom.gba", 0x56fbbc, 0xFEC + .incbin "baserom.gba", 0x56fbbc, 0xFEC gUnknown_08570BA8:: @ 8570BA8 - .incbin "baserom.gba", 0x570ba8, 0x9C + .incbin "baserom.gba", 0x570ba8, 0x9C gUnknown_08570C44:: @ 8570C44 - .incbin "baserom.gba", 0x570c44, 0xBC + .incbin "baserom.gba", 0x570c44, 0xBC gUnknown_08570D00:: @ 8570D00 - .incbin "baserom.gba", 0x570d00, 0x100 + .incbin "baserom.gba", 0x570d00, 0x100 gUnknown_08570E00:: @ 8570E00 .incbin "baserom.gba", 0x570e00, 0x260 @@ -219,45 +219,45 @@ gUnknown_085714D4:: @ 85714D4 obj_tiles NULL, 0, 0 gUnknown_085714E4:: @ 85714E4 - obj_pal gUnknown_08DC1674, 0 - obj_pal gUnknown_08DC1694, 1 - obj_pal gUnknown_08DC16B4, 2 - obj_pal gUnknown_08DC16D4, 3 - obj_pal gUnknown_0856FB7C, 4 - obj_pal gUnknown_0856FB9C, 5 - obj_pal NULL, 0 - obj_pal NULL, 0xFFFF + obj_pal gUnknown_08DC1674, 0 + obj_pal gUnknown_08DC1694, 1 + obj_pal gUnknown_08DC16B4, 2 + obj_pal gUnknown_08DC16D4, 3 + obj_pal gUnknown_0856FB7C, 4 + obj_pal gUnknown_0856FB9C, 5 + obj_pal NULL, 0 + obj_pal NULL, 0xFFFF gUnknown_08571524:: @ 8571524 - .incbin "baserom.gba", 0x571524, 0x8 + .incbin "baserom.gba", 0x571524, 0x8 gUnknown_0857152C:: @ 857152C - .incbin "baserom.gba", 0x57152c, 0x8 + .incbin "baserom.gba", 0x57152c, 0x8 gUnknown_08571534:: @ 8571534 - .incbin "baserom.gba", 0x571534, 0x8 + .incbin "baserom.gba", 0x571534, 0x8 gUnknown_0857153C:: @ 857153C - .incbin "baserom.gba", 0x57153c, 0x8 + .incbin "baserom.gba", 0x57153c, 0x8 gUnknown_08571544:: @ 8571544 - .incbin "baserom.gba", 0x571544, 0x8 + .incbin "baserom.gba", 0x571544, 0x8 gUnknown_0857154C:: @ 857154C - .incbin "baserom.gba", 0x57154c, 0x8 + .incbin "baserom.gba", 0x57154c, 0x8 gUnknown_08571554:: @ 8571554 - .incbin "baserom.gba", 0x571554, 0x8 + .incbin "baserom.gba", 0x571554, 0x8 gUnknown_0857155C:: @ 857155C - .incbin "baserom.gba", 0x57155c, 0xC + .incbin "baserom.gba", 0x57155c, 0xC gUnknown_08571568:: @ 8571568 - .incbin "baserom.gba", 0x571568, 0xC + .incbin "baserom.gba", 0x571568, 0xC gUnknown_08571574:: @ 8571574 - .4byte gUnknown_08571524 - .4byte gUnknown_0857152C + .4byte gUnknown_08571524 + .4byte gUnknown_0857152C gUnknown_0857157C:: @ 857157C .4byte gUnknown_08571524 @@ -269,14 +269,14 @@ gUnknown_0857157C:: @ 857157C .4byte gUnknown_08571554 gUnknown_08571598:: @ 8571598 - .4byte gUnknown_0857155C - .4byte gUnknown_08571568 + .4byte gUnknown_0857155C + .4byte gUnknown_08571568 gUnknown_085715A0:: @ 85715A0 - .incbin "baserom.gba", 0x5715a0, 0x10 + .incbin "baserom.gba", 0x5715a0, 0x10 gUnknown_085715B0:: @ 85715B0 - .4byte gUnknown_085715A0 + .4byte gUnknown_085715A0 gUnknown_085715B4:: @ 85715B4 spr_template 0, 0, gUnknown_0852490C, gUnknown_08571574, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy @@ -290,20 +290,20 @@ gUnknown_085715FC:: @ 85715FC gUnknown_08571614:: @ 8571614 .4byte gUnknown_085EDA96 - .4byte gUnknown_085ED932 - .4byte gUnknown_085ED94D - .4byte gUnknown_085ED961 - .4byte gUnknown_085ED977 - .4byte gUnknown_085ED993 - .4byte gUnknown_085ED9AF - .4byte gUnknown_085ED9C7 - .4byte gUnknown_085ED9E5 - .4byte gUnknown_085EDA02 - .4byte gUnknown_085EDA21 - .4byte gUnknown_085EDA3C - .4byte gUnknown_085EDA5E - .4byte gUnknown_085EDA78 - .4byte gUnknown_085ED931 + .4byte gUnknown_085ED932 + .4byte gUnknown_085ED94D + .4byte gUnknown_085ED961 + .4byte gUnknown_085ED977 + .4byte gUnknown_085ED993 + .4byte gUnknown_085ED9AF + .4byte gUnknown_085ED9C7 + .4byte gUnknown_085ED9E5 + .4byte gUnknown_085EDA02 + .4byte gUnknown_085EDA21 + .4byte gUnknown_085EDA3C + .4byte gUnknown_085EDA5E + .4byte gUnknown_085EDA78 + .4byte gUnknown_085ED931 gUnknown_08571650:: @ 8571650 unk_trainer_card_struct gUnknown_085EDAB1, gUnknown_085EDB0F, 0x59, 0x28, 1, 0 diff --git a/data/trainer_money.inc b/data/trainer_money.inc index 1e06668bde..00aaa6cfb9 100644 --- a/data/trainer_money.inc +++ b/data/trainer_money.inc @@ -1,59 +1,59 @@ @ This is a factor in how much money you get for beating a trainer. .align 2 gTrainerMoneyTable:: @ 831AEB8 - .byte TRAINER_CLASS_NAME_TEAM_AQUA, 5, 0, 0 - .byte TRAINER_CLASS_NAME_AQUA_ADMIN, 10, 0, 0 - .byte TRAINER_CLASS_NAME_AQUA_LEADER, 20, 0, 0 - .byte TRAINER_CLASS_NAME_AROMA_LADY, 10, 0, 0 - .byte TRAINER_CLASS_NAME_RUIN_MANIAC, 15, 0, 0 - .byte TRAINER_CLASS_NAME_INTERVIEWER, 12, 0, 0 - .byte TRAINER_CLASS_NAME_TUBER_1, 1, 0, 0 - .byte TRAINER_CLASS_NAME_TUBER_2, 1, 0, 0 - .byte TRAINER_CLASS_NAME_SIS_AND_BRO, 3, 0, 0 - .byte TRAINER_CLASS_NAME_COOLTRAINER_1, 12, 0, 0 - .byte TRAINER_CLASS_NAME_HEX_MANIAC, 6, 0, 0 - .byte TRAINER_CLASS_NAME_LADY, 50, 0, 0 - .byte TRAINER_CLASS_NAME_BEAUTY, 20, 0, 0 - .byte TRAINER_CLASS_NAME_RICH_BOY, 50, 0, 0 - .byte TRAINER_CLASS_NAME_POKEMANIAC, 15, 0, 0 - .byte TRAINER_CLASS_NAME_SWIMMER_M, 2, 0, 0 - .byte TRAINER_CLASS_NAME_BLACK_BELT, 8, 0, 0 - .byte TRAINER_CLASS_NAME_GUITARIST, 8, 0, 0 - .byte TRAINER_CLASS_NAME_KINDLER, 8, 0, 0 - .byte TRAINER_CLASS_NAME_CAMPER, 4, 0, 0 - .byte TRAINER_CLASS_NAME_OLD_COUPLE, 10, 0, 0 - .byte TRAINER_CLASS_NAME_BUG_MANIAC, 15, 0, 0 - .byte TRAINER_CLASS_NAME_PSYCHIC, 6, 0, 0 - .byte TRAINER_CLASS_NAME_GENTLEMAN, 20, 0, 0 - .byte TRAINER_CLASS_NAME_ELITE_FOUR, 25, 0, 0 - .byte TRAINER_CLASS_NAME_LEADER, 25, 0, 0 - .byte TRAINER_CLASS_NAME_SCHOOL_KID, 5, 0, 0 - .byte TRAINER_CLASS_NAME_SR_AND_JR, 4, 0, 0 - .byte TRAINER_CLASS_NAME_POKEFAN, 20, 0, 0 - .byte TRAINER_CLASS_NAME_EXPERT, 10, 0, 0 - .byte TRAINER_CLASS_NAME_YOUNGSTER, 4, 0, 0 - .byte TRAINER_CLASS_NAME_CHAMPION, 50, 0, 0 - .byte TRAINER_CLASS_NAME_FISHERMAN, 10, 0, 0 - .byte TRAINER_CLASS_NAME_TRIATHLETE, 10, 0, 0 - .byte TRAINER_CLASS_NAME_DRAGON_TAMER, 12, 0, 0 - .byte TRAINER_CLASS_NAME_BIRD_KEEPER, 8, 0, 0 - .byte TRAINER_CLASS_NAME_NINJA_BOY, 3, 0, 0 - .byte TRAINER_CLASS_NAME_BATTLE_GIRL, 6, 0, 0 - .byte TRAINER_CLASS_NAME_PARASOL_LADY, 10, 0, 0 - .byte TRAINER_CLASS_NAME_SWIMMER_F, 2, 0, 0 - .byte TRAINER_CLASS_NAME_PICNICKER, 4, 0, 0 - .byte TRAINER_CLASS_NAME_TWINS, 3, 0, 0 - .byte TRAINER_CLASS_NAME_SAILOR, 8, 0, 0 - .byte TRAINER_CLASS_NAME_COLLECTOR, 15, 0, 0 - .byte TRAINER_CLASS_NAME_PKMN_TRAINER_3, 15, 0, 0 - .byte TRAINER_CLASS_NAME_PKMN_BREEDER, 10, 0, 0 - .byte TRAINER_CLASS_NAME_PKMN_RANGER, 12, 0, 0 - .byte TRAINER_CLASS_NAME_TEAM_MAGMA, 5, 0, 0 - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN, 10, 0, 0 - .byte TRAINER_CLASS_NAME_MAGMA_LEADER, 20, 0, 0 - .byte TRAINER_CLASS_NAME_LASS, 4, 0, 0 - .byte TRAINER_CLASS_NAME_BUG_CATCHER, 4, 0, 0 - .byte TRAINER_CLASS_NAME_HIKER, 10, 0, 0 - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE, 8, 0, 0 - .byte TRAINER_CLASS_LEADER_1, 10, 0, 0 - .byte -1, 5, 0, 0 + .byte TRAINER_CLASS_NAME_TEAM_AQUA, 5, 0, 0 + .byte TRAINER_CLASS_NAME_AQUA_ADMIN, 10, 0, 0 + .byte TRAINER_CLASS_NAME_AQUA_LEADER, 20, 0, 0 + .byte TRAINER_CLASS_NAME_AROMA_LADY, 10, 0, 0 + .byte TRAINER_CLASS_NAME_RUIN_MANIAC, 15, 0, 0 + .byte TRAINER_CLASS_NAME_INTERVIEWER, 12, 0, 0 + .byte TRAINER_CLASS_NAME_TUBER_1, 1, 0, 0 + .byte TRAINER_CLASS_NAME_TUBER_2, 1, 0, 0 + .byte TRAINER_CLASS_NAME_SIS_AND_BRO, 3, 0, 0 + .byte TRAINER_CLASS_NAME_COOLTRAINER_1, 12, 0, 0 + .byte TRAINER_CLASS_NAME_HEX_MANIAC, 6, 0, 0 + .byte TRAINER_CLASS_NAME_LADY, 50, 0, 0 + .byte TRAINER_CLASS_NAME_BEAUTY, 20, 0, 0 + .byte TRAINER_CLASS_NAME_RICH_BOY, 50, 0, 0 + .byte TRAINER_CLASS_NAME_POKEMANIAC, 15, 0, 0 + .byte TRAINER_CLASS_NAME_SWIMMER_M, 2, 0, 0 + .byte TRAINER_CLASS_NAME_BLACK_BELT, 8, 0, 0 + .byte TRAINER_CLASS_NAME_GUITARIST, 8, 0, 0 + .byte TRAINER_CLASS_NAME_KINDLER, 8, 0, 0 + .byte TRAINER_CLASS_NAME_CAMPER, 4, 0, 0 + .byte TRAINER_CLASS_NAME_OLD_COUPLE, 10, 0, 0 + .byte TRAINER_CLASS_NAME_BUG_MANIAC, 15, 0, 0 + .byte TRAINER_CLASS_NAME_PSYCHIC, 6, 0, 0 + .byte TRAINER_CLASS_NAME_GENTLEMAN, 20, 0, 0 + .byte TRAINER_CLASS_NAME_ELITE_FOUR, 25, 0, 0 + .byte TRAINER_CLASS_NAME_LEADER, 25, 0, 0 + .byte TRAINER_CLASS_NAME_SCHOOL_KID, 5, 0, 0 + .byte TRAINER_CLASS_NAME_SR_AND_JR, 4, 0, 0 + .byte TRAINER_CLASS_NAME_POKEFAN, 20, 0, 0 + .byte TRAINER_CLASS_NAME_EXPERT, 10, 0, 0 + .byte TRAINER_CLASS_NAME_YOUNGSTER, 4, 0, 0 + .byte TRAINER_CLASS_NAME_CHAMPION, 50, 0, 0 + .byte TRAINER_CLASS_NAME_FISHERMAN, 10, 0, 0 + .byte TRAINER_CLASS_NAME_TRIATHLETE, 10, 0, 0 + .byte TRAINER_CLASS_NAME_DRAGON_TAMER, 12, 0, 0 + .byte TRAINER_CLASS_NAME_BIRD_KEEPER, 8, 0, 0 + .byte TRAINER_CLASS_NAME_NINJA_BOY, 3, 0, 0 + .byte TRAINER_CLASS_NAME_BATTLE_GIRL, 6, 0, 0 + .byte TRAINER_CLASS_NAME_PARASOL_LADY, 10, 0, 0 + .byte TRAINER_CLASS_NAME_SWIMMER_F, 2, 0, 0 + .byte TRAINER_CLASS_NAME_PICNICKER, 4, 0, 0 + .byte TRAINER_CLASS_NAME_TWINS, 3, 0, 0 + .byte TRAINER_CLASS_NAME_SAILOR, 8, 0, 0 + .byte TRAINER_CLASS_NAME_COLLECTOR, 15, 0, 0 + .byte TRAINER_CLASS_NAME_PKMN_TRAINER_3, 15, 0, 0 + .byte TRAINER_CLASS_NAME_PKMN_BREEDER, 10, 0, 0 + .byte TRAINER_CLASS_NAME_PKMN_RANGER, 12, 0, 0 + .byte TRAINER_CLASS_NAME_TEAM_MAGMA, 5, 0, 0 + .byte TRAINER_CLASS_NAME_MAGMA_ADMIN, 10, 0, 0 + .byte TRAINER_CLASS_NAME_MAGMA_LEADER, 20, 0, 0 + .byte TRAINER_CLASS_NAME_LASS, 4, 0, 0 + .byte TRAINER_CLASS_NAME_BUG_CATCHER, 4, 0, 0 + .byte TRAINER_CLASS_NAME_HIKER, 10, 0, 0 + .byte TRAINER_CLASS_NAME_YOUNG_COUPLE, 8, 0, 0 + .byte TRAINER_CLASS_LEADER_1, 10, 0, 0 + .byte -1, 5, 0, 0 diff --git a/data/type_effectiveness.inc b/data/type_effectiveness.inc index a246155921..0739199c2e 100644 --- a/data/type_effectiveness.inc +++ b/data/type_effectiveness.inc @@ -1,119 +1,119 @@ @ format: attacking type, defending type, damage multiplier @ the multiplier is a (decimal) fixed-point number: -@ 20 is ×2.0 -@ 05 is ×0.5 -@ 00 is ×0 +@ 20 is ×2.0 +@ 05 is ×0.5 +@ 00 is ×0 gTypeEffectiveness:: @ 831ACE8 - .byte TYPE_NORMAL, TYPE_ROCK, 5 - .byte TYPE_NORMAL, TYPE_STEEL, 5 - .byte TYPE_FIRE, TYPE_FIRE, 5 - .byte TYPE_FIRE, TYPE_WATER, 5 - .byte TYPE_FIRE, TYPE_GRASS, 20 - .byte TYPE_FIRE, TYPE_ICE, 20 - .byte TYPE_FIRE, TYPE_BUG, 20 - .byte TYPE_FIRE, TYPE_ROCK, 5 - .byte TYPE_FIRE, TYPE_DRAGON, 5 - .byte TYPE_FIRE, TYPE_STEEL, 20 - .byte TYPE_WATER, TYPE_FIRE, 20 - .byte TYPE_WATER, TYPE_WATER, 5 - .byte TYPE_WATER, TYPE_GRASS, 5 - .byte TYPE_WATER, TYPE_GROUND, 20 - .byte TYPE_WATER, TYPE_ROCK, 20 - .byte TYPE_WATER, TYPE_DRAGON, 5 - .byte TYPE_ELECTRIC, TYPE_WATER, 20 + .byte TYPE_NORMAL, TYPE_ROCK, 5 + .byte TYPE_NORMAL, TYPE_STEEL, 5 + .byte TYPE_FIRE, TYPE_FIRE, 5 + .byte TYPE_FIRE, TYPE_WATER, 5 + .byte TYPE_FIRE, TYPE_GRASS, 20 + .byte TYPE_FIRE, TYPE_ICE, 20 + .byte TYPE_FIRE, TYPE_BUG, 20 + .byte TYPE_FIRE, TYPE_ROCK, 5 + .byte TYPE_FIRE, TYPE_DRAGON, 5 + .byte TYPE_FIRE, TYPE_STEEL, 20 + .byte TYPE_WATER, TYPE_FIRE, 20 + .byte TYPE_WATER, TYPE_WATER, 5 + .byte TYPE_WATER, TYPE_GRASS, 5 + .byte TYPE_WATER, TYPE_GROUND, 20 + .byte TYPE_WATER, TYPE_ROCK, 20 + .byte TYPE_WATER, TYPE_DRAGON, 5 + .byte TYPE_ELECTRIC, TYPE_WATER, 20 .byte TYPE_ELECTRIC, TYPE_ELECTRIC, 5 - .byte TYPE_ELECTRIC, TYPE_GRASS, 5 + .byte TYPE_ELECTRIC, TYPE_GRASS, 5 .byte TYPE_ELECTRIC, TYPE_GROUND, 0 .byte TYPE_ELECTRIC, TYPE_FLYING, 20 .byte TYPE_ELECTRIC, TYPE_DRAGON, 5 - .byte TYPE_GRASS, TYPE_FIRE, 5 - .byte TYPE_GRASS, TYPE_WATER, 20 - .byte TYPE_GRASS, TYPE_GRASS, 5 - .byte TYPE_GRASS, TYPE_POISON, 5 - .byte TYPE_GRASS, TYPE_GROUND, 20 - .byte TYPE_GRASS, TYPE_FLYING, 5 - .byte TYPE_GRASS, TYPE_BUG, 5 - .byte TYPE_GRASS, TYPE_ROCK, 20 - .byte TYPE_GRASS, TYPE_DRAGON, 5 - .byte TYPE_GRASS, TYPE_STEEL, 5 - .byte TYPE_ICE, TYPE_WATER, 5 - .byte TYPE_ICE, TYPE_GRASS, 20 - .byte TYPE_ICE, TYPE_ICE, 5 - .byte TYPE_ICE, TYPE_GROUND, 20 - .byte TYPE_ICE, TYPE_FLYING, 20 - .byte TYPE_ICE, TYPE_DRAGON, 20 - .byte TYPE_ICE, TYPE_STEEL, 5 - .byte TYPE_ICE, TYPE_FIRE, 5 + .byte TYPE_GRASS, TYPE_FIRE, 5 + .byte TYPE_GRASS, TYPE_WATER, 20 + .byte TYPE_GRASS, TYPE_GRASS, 5 + .byte TYPE_GRASS, TYPE_POISON, 5 + .byte TYPE_GRASS, TYPE_GROUND, 20 + .byte TYPE_GRASS, TYPE_FLYING, 5 + .byte TYPE_GRASS, TYPE_BUG, 5 + .byte TYPE_GRASS, TYPE_ROCK, 20 + .byte TYPE_GRASS, TYPE_DRAGON, 5 + .byte TYPE_GRASS, TYPE_STEEL, 5 + .byte TYPE_ICE, TYPE_WATER, 5 + .byte TYPE_ICE, TYPE_GRASS, 20 + .byte TYPE_ICE, TYPE_ICE, 5 + .byte TYPE_ICE, TYPE_GROUND, 20 + .byte TYPE_ICE, TYPE_FLYING, 20 + .byte TYPE_ICE, TYPE_DRAGON, 20 + .byte TYPE_ICE, TYPE_STEEL, 5 + .byte TYPE_ICE, TYPE_FIRE, 5 .byte TYPE_FIGHTING, TYPE_NORMAL, 20 - .byte TYPE_FIGHTING, TYPE_ICE, 20 + .byte TYPE_FIGHTING, TYPE_ICE, 20 .byte TYPE_FIGHTING, TYPE_POISON, 5 .byte TYPE_FIGHTING, TYPE_FLYING, 5 .byte TYPE_FIGHTING, TYPE_PSYCHIC, 5 - .byte TYPE_FIGHTING, TYPE_BUG, 5 - .byte TYPE_FIGHTING, TYPE_ROCK, 20 - .byte TYPE_FIGHTING, TYPE_DARK, 20 - .byte TYPE_FIGHTING, TYPE_STEEL, 20 - .byte TYPE_POISON, TYPE_GRASS, 20 + .byte TYPE_FIGHTING, TYPE_BUG, 5 + .byte TYPE_FIGHTING, TYPE_ROCK, 20 + .byte TYPE_FIGHTING, TYPE_DARK, 20 + .byte TYPE_FIGHTING, TYPE_STEEL, 20 + .byte TYPE_POISON, TYPE_GRASS, 20 .byte TYPE_POISON, TYPE_POISON, 5 .byte TYPE_POISON, TYPE_GROUND, 5 - .byte TYPE_POISON, TYPE_ROCK, 5 - .byte TYPE_POISON, TYPE_GHOST, 5 - .byte TYPE_POISON, TYPE_STEEL, 0 - .byte TYPE_GROUND, TYPE_FIRE, 20 + .byte TYPE_POISON, TYPE_ROCK, 5 + .byte TYPE_POISON, TYPE_GHOST, 5 + .byte TYPE_POISON, TYPE_STEEL, 0 + .byte TYPE_GROUND, TYPE_FIRE, 20 .byte TYPE_GROUND, TYPE_ELECTRIC, 20 - .byte TYPE_GROUND, TYPE_GRASS, 5 + .byte TYPE_GROUND, TYPE_GRASS, 5 .byte TYPE_GROUND, TYPE_POISON, 20 .byte TYPE_GROUND, TYPE_FLYING, 0 - .byte TYPE_GROUND, TYPE_BUG, 5 - .byte TYPE_GROUND, TYPE_ROCK, 20 - .byte TYPE_GROUND, TYPE_STEEL, 20 + .byte TYPE_GROUND, TYPE_BUG, 5 + .byte TYPE_GROUND, TYPE_ROCK, 20 + .byte TYPE_GROUND, TYPE_STEEL, 20 .byte TYPE_FLYING, TYPE_ELECTRIC, 5 - .byte TYPE_FLYING, TYPE_GRASS, 20 + .byte TYPE_FLYING, TYPE_GRASS, 20 .byte TYPE_FLYING, TYPE_FIGHTING, 20 - .byte TYPE_FLYING, TYPE_BUG, 20 - .byte TYPE_FLYING, TYPE_ROCK, 5 - .byte TYPE_FLYING, TYPE_STEEL, 5 + .byte TYPE_FLYING, TYPE_BUG, 20 + .byte TYPE_FLYING, TYPE_ROCK, 5 + .byte TYPE_FLYING, TYPE_STEEL, 5 .byte TYPE_PSYCHIC, TYPE_FIGHTING, 20 .byte TYPE_PSYCHIC, TYPE_POISON, 20 .byte TYPE_PSYCHIC, TYPE_PSYCHIC, 5 - .byte TYPE_PSYCHIC, TYPE_DARK, 0 - .byte TYPE_PSYCHIC, TYPE_STEEL, 5 - .byte TYPE_BUG, TYPE_FIRE, 5 - .byte TYPE_BUG, TYPE_GRASS, 20 - .byte TYPE_BUG, TYPE_FIGHTING, 5 - .byte TYPE_BUG, TYPE_POISON, 5 - .byte TYPE_BUG, TYPE_FLYING, 5 - .byte TYPE_BUG, TYPE_PSYCHIC, 20 - .byte TYPE_BUG, TYPE_GHOST, 5 - .byte TYPE_BUG, TYPE_DARK, 20 - .byte TYPE_BUG, TYPE_STEEL, 5 - .byte TYPE_ROCK, TYPE_FIRE, 20 - .byte TYPE_ROCK, TYPE_ICE, 20 - .byte TYPE_ROCK, TYPE_FIGHTING, 5 - .byte TYPE_ROCK, TYPE_GROUND, 5 - .byte TYPE_ROCK, TYPE_FLYING, 20 - .byte TYPE_ROCK, TYPE_BUG, 20 - .byte TYPE_ROCK, TYPE_STEEL, 5 - .byte TYPE_GHOST, TYPE_NORMAL, 0 - .byte TYPE_GHOST, TYPE_PSYCHIC, 20 - .byte TYPE_GHOST, TYPE_DARK, 5 - .byte TYPE_GHOST, TYPE_STEEL, 5 - .byte TYPE_GHOST, TYPE_GHOST, 20 + .byte TYPE_PSYCHIC, TYPE_DARK, 0 + .byte TYPE_PSYCHIC, TYPE_STEEL, 5 + .byte TYPE_BUG, TYPE_FIRE, 5 + .byte TYPE_BUG, TYPE_GRASS, 20 + .byte TYPE_BUG, TYPE_FIGHTING, 5 + .byte TYPE_BUG, TYPE_POISON, 5 + .byte TYPE_BUG, TYPE_FLYING, 5 + .byte TYPE_BUG, TYPE_PSYCHIC, 20 + .byte TYPE_BUG, TYPE_GHOST, 5 + .byte TYPE_BUG, TYPE_DARK, 20 + .byte TYPE_BUG, TYPE_STEEL, 5 + .byte TYPE_ROCK, TYPE_FIRE, 20 + .byte TYPE_ROCK, TYPE_ICE, 20 + .byte TYPE_ROCK, TYPE_FIGHTING, 5 + .byte TYPE_ROCK, TYPE_GROUND, 5 + .byte TYPE_ROCK, TYPE_FLYING, 20 + .byte TYPE_ROCK, TYPE_BUG, 20 + .byte TYPE_ROCK, TYPE_STEEL, 5 + .byte TYPE_GHOST, TYPE_NORMAL, 0 + .byte TYPE_GHOST, TYPE_PSYCHIC, 20 + .byte TYPE_GHOST, TYPE_DARK, 5 + .byte TYPE_GHOST, TYPE_STEEL, 5 + .byte TYPE_GHOST, TYPE_GHOST, 20 .byte TYPE_DRAGON, TYPE_DRAGON, 20 - .byte TYPE_DRAGON, TYPE_STEEL, 5 - .byte TYPE_DARK, TYPE_FIGHTING, 5 - .byte TYPE_DARK, TYPE_PSYCHIC, 20 - .byte TYPE_DARK, TYPE_GHOST, 20 - .byte TYPE_DARK, TYPE_DARK, 5 - .byte TYPE_DARK, TYPE_STEEL, 5 - .byte TYPE_STEEL, TYPE_FIRE, 5 - .byte TYPE_STEEL, TYPE_WATER, 5 - .byte TYPE_STEEL, TYPE_ELECTRIC, 5 - .byte TYPE_STEEL, TYPE_ICE, 20 - .byte TYPE_STEEL, TYPE_ROCK, 20 - .byte TYPE_STEEL, TYPE_STEEL, 5 - .byte 0xFE, 0xFE, 0 - .byte TYPE_NORMAL, TYPE_GHOST, 0 - .byte TYPE_FIGHTING, TYPE_GHOST, 0 - .byte 0xFF, 0xFF, 0 + .byte TYPE_DRAGON, TYPE_STEEL, 5 + .byte TYPE_DARK, TYPE_FIGHTING, 5 + .byte TYPE_DARK, TYPE_PSYCHIC, 20 + .byte TYPE_DARK, TYPE_GHOST, 20 + .byte TYPE_DARK, TYPE_DARK, 5 + .byte TYPE_DARK, TYPE_STEEL, 5 + .byte TYPE_STEEL, TYPE_FIRE, 5 + .byte TYPE_STEEL, TYPE_WATER, 5 + .byte TYPE_STEEL, TYPE_ELECTRIC, 5 + .byte TYPE_STEEL, TYPE_ICE, 20 + .byte TYPE_STEEL, TYPE_ROCK, 20 + .byte TYPE_STEEL, TYPE_STEEL, 5 + .byte 0xFE, 0xFE, 0 + .byte TYPE_NORMAL, TYPE_GHOST, 0 + .byte TYPE_FIGHTING, TYPE_GHOST, 0 + .byte 0xFF, 0xFF, 0 diff --git a/data/unk_sprite_file.s b/data/unk_sprite_file.s index d4e53df1e4..2d5c9c12a6 100644 --- a/data/unk_sprite_file.s +++ b/data/unk_sprite_file.s @@ -7,36 +7,36 @@ gUnknown_0862AD54:: @ 862AD54 .incbin "baserom.gba", 0x62ad54, 0x1dc gUnknown_0862AF30:: @ 862AF30 - .incbin "baserom.gba", 0x62af30, 0x1AC + .incbin "baserom.gba", 0x62af30, 0x1AC gUnknown_0862B0DC:: @ 862B0DC - .incbin "baserom.gba", 0x62b0dc, 0x460 + .incbin "baserom.gba", 0x62b0dc, 0x460 gUnknown_0862B53C:: @ 862B53C - .incbin "baserom.gba", 0x62b53c, 0x1E0 + .incbin "baserom.gba", 0x62b53c, 0x1E0 gUnknown_0862B71C:: @ 862B71C - .incbin "baserom.gba", 0x62b71c, 0x8 + .incbin "baserom.gba", 0x62b71c, 0x8 gUnknown_0862B724:: @ 862B724 - obj_tiles gUnknown_0862B0DC, 0x1800, 11920 + obj_tiles gUnknown_0862B0DC, 0x1800, 11920 gUnknown_0862B72C:: @ 862B72C - obj_pal gUnknown_0862B53C, 11920 + obj_pal gUnknown_0862B53C, 11920 gUnknown_0862B734:: @ 862B734 - .incbin "baserom.gba", 0x62b734, 0x8 + .incbin "baserom.gba", 0x62b734, 0x8 gUnknown_0862B73C:: @ 862B73C - .incbin "baserom.gba", 0x62b73c, 0x8 + .incbin "baserom.gba", 0x62b73c, 0x8 gUnknown_0862B744:: @ 862B744 - .incbin "baserom.gba", 0x62b744, 0x8 + .incbin "baserom.gba", 0x62b744, 0x8 gUnknown_0862B74C:: @ 862B74C - .4byte gUnknown_0862B734 - .4byte gUnknown_0862B73C - .4byte gUnknown_0862B744 + .4byte gUnknown_0862B734 + .4byte gUnknown_0862B73C + .4byte gUnknown_0862B744 gUnknown_0862B758:: @ 862B758 spr_template 11920, 11920, gUnknown_0862B71C, gUnknown_0862B74C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/data/use_pokeblock.s b/data/use_pokeblock.s index ed9a6c29a5..2afc4a3096 100644 --- a/data/use_pokeblock.s +++ b/data/use_pokeblock.s @@ -2,7 +2,7 @@ .include "constants/constants.inc" .section .rodata - + gUnknown_085DFA60:: @ 85DFA60 .incbin "baserom.gba", 0x5dfa60, 0x20 diff --git a/data/wild_encounter.s b/data/wild_encounter.s index 0b46e3d35f..914471769b 100644 --- a/data/wild_encounter.s +++ b/data/wild_encounter.s @@ -1,9 +1,9 @@ #include "constants/species.h" - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section .rodata - .align 2, 0 + .section .rodata + .align 2, 0 @ 85507E4 .include "data/wild_mons.inc" From 71b522b21285b0d47d21f48b33c2f8f5abe339c7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 24 Dec 2017 19:26:44 +0100 Subject: [PATCH 32/54] trailing spaces --- data/graphics.s | 128 +++++++++++++++++----------------- data/pokedex.s | 4 +- data/pokemon_storage_system.s | 6 +- data/pokenav.s | 24 +++---- data/strings.s | 2 +- data/trade.s | 2 +- data/trainer_card.s | 2 +- data/use_pokeblock.s | 2 +- 8 files changed, 85 insertions(+), 85 deletions(-) diff --git a/data/graphics.s b/data/graphics.s index 7fffaba3f0..01c2bfee94 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -20,7 +20,7 @@ gUnknown_08C01644:: @ 8C01644 gUnknown_08C01724:: @ 8C01724 .incbin "baserom.gba", 0xc01724, 0x18 - + .align 2 gInterfaceGfx_PokeBall:: .incbin "graphics/interface/ball/poke.4bpp.lz" @ 0xBC @@ -253,28 +253,28 @@ gSubstituteDollGfx:: @ 8C2CEE0 gSubstituteDollTilemap:: @ 8C2D120 .incbin "baserom.gba", 0xc2d120, 552 - + gUnknown_08C2D348:: @ 8C2D348 .incbin "baserom.gba", 0xC2D348, 196 - + gUnknown_08C2D40C:: @ 8C2D40C .incbin "baserom.gba", 0xC2D40C, 28 - + gContestConfetti_Gfx:: @ 8C2D428 .incbin "baserom.gba", 0xC2D428, 288 - + gContestConfetti_Pal:: @ 8C2D548 .incbin "baserom.gba", 0xC2D548, 40 - + gUnknown_08C2D570:: @ 8C2D570 .incbin "baserom.gba", 0xC2D570, 316 - + gUnknown_08C2D6AC:: @ 8C2D6AC .incbin "baserom.gba", 0xC2D6AC, 36 - + gUnknown_08C2D6D0:: @ 8C2D6D0 .incbin "baserom.gba", 0xC2D6D0, 40 - + gUnknown_08C2D6F8:: @ 8C2D6F8 .incbin "baserom.gba", 0xC2D6F8, 40 @@ -897,7 +897,7 @@ gMenuMoneyPal:: @ 8D9B0C8 gBuyMenuFrame_Tilemap:: @ 8D9B0F0 .incbin "baserom.gba", 0xd9b0f0, 0x140 - + gMenuMoneyGfx:: @ 8D9B230 .incbin "baserom.gba", 0xd9b230, 0x84 @@ -906,16 +906,16 @@ gMenuPokeblock_Gfx:: @ 8D9B2B4 gMenuPokeblock_Pal:: @ 8D9B470 .incbin "baserom.gba", 0xd9b470, 0x70 - + gMenuPokeblockDevice_Gfx:: @ 8D9B4E0 .incbin "baserom.gba", 0xd9b4e0, 0x2c0 - + gMenuPokeblockDevice_Pal:: @ 8D9B7A0 .incbin "baserom.gba", 0xd9b7a0, 0x28 gMenuPokeblock_Tilemap:: @ 8D9B7C8 .incbin "baserom.gba", 0xd9b7c8, 0x148 - + .align 2 gPokeblock_Gfx:: .incbin "graphics/pokeblock/pokeblock.4bpp.lz" @@ -996,25 +996,25 @@ gUnknown_08D9C13C:: @ 8D9C13C gUnknown_08DA1E78:: @ 8DA1E78 .incbin "baserom.gba", 0xda1e78, 0xBE4 - + gUnknown_08DA2A5C:: @ 8DA2A5C .incbin "baserom.gba", 0xDA2A5C, 0xCC - + gUnknown_08DA2B28:: @ 8DA2B28 .incbin "baserom.gba", 0xDA2B28, 0x1F4 - + gUnknown_08DA2D1C:: @ 8DA2D1C .incbin "baserom.gba", 0xDA2D1C, 0x534 - + gUnknown_08DA3250:: @ 8DA3250 .incbin "baserom.gba", 0xDA3250, 0x54 - + gUnknown_08DA32A4:: @ 8DA32A4 .incbin "baserom.gba", 0xDA32A4, 0xCC - + gUnknown_08DA3370:: @ 8DA3370 .incbin "baserom.gba", 0xDA3370, 0x28 - + gUnknown_08DA3398:: @ 8DA3398 .incbin "baserom.gba", 0xDA3398, 0x28 @@ -1032,10 +1032,10 @@ gUnknown_08DA3988:: @ 8DA3988 gUnknown_08DA3A88:: @ 8DA3A88 .incbin "baserom.gba", 0xda3a88, 0x138 - + gUnknown_08DA3BC0:: @ 8DA3BC0 .incbin "baserom.gba", 0xDA3BC0, 0xBC - + gUnknown_08DA3C7C:: @ 8DA3C7C .incbin "baserom.gba", 0xDA3C7C, 0x18 @@ -1053,10 +1053,10 @@ gUnknown_08DA4F70:: @ 8DA4F70 gUnknown_08DA60B8:: @ 8DA60B8 .incbin "baserom.gba", 0xda60b8, 0x388 - + gUnknown_08DA6440:: @ 8DA6440 .incbin "baserom.gba", 0xDA6440, 0x46C - + gUnknown_08DA68AC:: @ 8DA68AC .incbin "baserom.gba", 0xDA68AC, 0x110 @@ -1098,34 +1098,34 @@ gUnknown_08DA8D6C:: @ 8DA8D6C gUnknown_08DA8E84:: @ 8DA8E84 .incbin "baserom.gba", 0xda8e84, 0x54 - + gUnknown_08DA8ED8:: @ 8DA8ED8 .incbin "baserom.gba", 0xDA8ED8, 0x798 - + gUnknown_08DA9670:: @ 8DA9670 .incbin "baserom.gba", 0xDA9670, 0x44 - + gUnknown_08DA96B4:: @ 8DA96B4 .incbin "baserom.gba", 0xDA96B4, 0x248 - + gUnknown_08DA98FC:: @ 8DA98FC .incbin "baserom.gba", 0xDA98FC, 0xCA8 - + gUnknown_08DAA5A4:: @ 8DAA5A4 .incbin "baserom.gba", 0xDAA5A4, 0x1F0 - + gUnknown_08DAA794:: @ 8DAA794 .incbin "baserom.gba", 0xDAA794, 0x98 - + gUnknown_08DAA82C:: @ 8DAA82C .incbin "baserom.gba", 0xDAA82C, 0x28 - + gUnknown_08DAA854:: @ 8DAA854 .incbin "baserom.gba", 0xDAA854, 0x28 - + gUnknown_08DAA87C:: @ 8DAA87C .incbin "baserom.gba", 0xDAA87C, 0x28 - + gUnknown_08DAA8A4:: @ 8DAA8A4 .incbin "baserom.gba", 0xDAA8A4, 0x10 @@ -1332,7 +1332,7 @@ gUnknown_08DC1876:: @ 8DC1876 gUnknown_08DC1934:: @ 8DC1934 .incbin "baserom.gba", 0xdc1934, 0xA18 - + gUnknown_08DC234C:: @ 8DC234C .incbin "baserom.gba", 0xDC234C, 0x6BC @@ -1525,43 +1525,43 @@ gUnknown_08DC9608:: @ 8DC9608 gUnknown_08DC9628:: @ 8DC9628 .incbin "baserom.gba", 0xdc9628, 0x320 - + gBerryBlenderMiscPalette:: @ 8DCAB88 .incbin "graphics/berry_blender/misc.gbapal" - + gBerryBlenderArrowPalette:: @ 8DC9948 .incbin "graphics/berry_blender/arrow.gbapal" gUnknown_8DC9988:: @ 8DC9988 .incbin "baserom.gba", 0xdc9988, 0x200 - + .align 2 gBerryBlenderMarubatsuTiles:: @ 8DC9B88 .incbin "graphics/berry_blender/marubatsu.4bpp" - + .align 2 gBerryBlenderParticlesTiles:: @ 8E90818 .incbin "graphics/berry_blender/particles.4bpp" - + .space 0x120 .align 2 gBerryBlenderCountdownNumbersTiles:: @ 8DC9F88 .incbin "graphics/berry_blender/countdown_numbers.4bpp" - + .align 2 gBerryBlenderStartTiles:: @ 8DCA588 .incbin "graphics/berry_blender/start.4bpp" - + .space 0x200 - + .align 2 gBerryBlenderArrowTiles:: @ 8DCAB88 .incbin "graphics/berry_blender/arrow.4bpp" gUnknown_08DCB388:: @ 8DCB388 .incbin "baserom.gba", 0xdcb388, 0xA28 - + gUnknown_08DCBDB0:: @ 8DCBDB0 .incbin "baserom.gba", 0xdcbdb0, 0x20 @@ -1687,7 +1687,7 @@ gUnknown_08DD46E0:: @ 8DD46E0 gUnknown_08DD47A0:: @ 8DD47A0 .incbin "baserom.gba", 0xdd47a0, 0xc0 - + gUnknown_08DD4860:: @ 8DD4860 .incbin "baserom.gba", 0xdd4860, 0x20 @@ -1743,61 +1743,61 @@ gUnknown_08DD7300:: @ 8DD7300 .incbin "baserom.gba", 0xdd7300, 0x60 gUnknown_08DD7360:: @ 8DD7360 - .incbin "baserom.gba", 0xdd7360, 0x1420 + .incbin "baserom.gba", 0xdd7360, 0x1420 gUnknown_08DD8780:: @ 8DD8780 - .incbin "baserom.gba", 0xdd8780, 0x40 + .incbin "baserom.gba", 0xdd8780, 0x40 gUnknown_08DD87C0:: @ 8DD87C0 - .incbin "baserom.gba", 0xdd87c0, 0x720 + .incbin "baserom.gba", 0xdd87c0, 0x720 gUnknown_08DD8EE0:: @ 8DD8EE0 - .incbin "baserom.gba", 0xdd8ee0, 0x1a0 + .incbin "baserom.gba", 0xdd8ee0, 0x1a0 gUnknown_08DD9080:: @ 8DD9080 - .incbin "baserom.gba", 0xdd9080, 0x60 + .incbin "baserom.gba", 0xdd9080, 0x60 gUnknown_08DD90E0:: @ 8DD90E0 - .incbin "baserom.gba", 0xdd90e0, 0x638 + .incbin "baserom.gba", 0xdd90e0, 0x638 gUnknown_08DD9718:: @ 8DD9718 - .incbin "baserom.gba", 0xdd9718, 0x15c + .incbin "baserom.gba", 0xdd9718, 0x15c gUnknown_08DD9874:: @ 8DD9874 - .incbin "baserom.gba", 0xdd9874, 0x40 + .incbin "baserom.gba", 0xdd9874, 0x40 gUnknown_08DD98B4:: @ 8DD98B4 - .incbin "baserom.gba", 0xdd98b4, 0x5a4 + .incbin "baserom.gba", 0xdd98b4, 0x5a4 gUnknown_08DD9E58:: @ 8DD9E58 - .incbin "baserom.gba", 0xdd9e58, 0x194 + .incbin "baserom.gba", 0xdd9e58, 0x194 gUnknown_08DD9FEC:: @ 8DD9FEC - .incbin "baserom.gba", 0xdd9fec, 0x40 + .incbin "baserom.gba", 0xdd9fec, 0x40 gUnknown_08DDA02C:: @ 8DDA02C - .incbin "baserom.gba", 0xdda02c, 0x610 + .incbin "baserom.gba", 0xdda02c, 0x610 gUnknown_08DDA63C:: @ 8DDA63C - .incbin "baserom.gba", 0xdda63c, 0x1c4 + .incbin "baserom.gba", 0xdda63c, 0x1c4 gUnknown_08DDA800:: @ 8DDA800 - .incbin "baserom.gba", 0xdda800, 0x40 + .incbin "baserom.gba", 0xdda800, 0x40 gUnknown_08DDA840:: @ 8DDA840 - .incbin "baserom.gba", 0xdda840, 0x600 + .incbin "baserom.gba", 0xdda840, 0x600 gUnknown_08DDAE40:: @ 8DDAE40 - .incbin "baserom.gba", 0xddae40, 0x1a0 + .incbin "baserom.gba", 0xddae40, 0x1a0 gUnknown_08DDAFE0:: @ 8DDAFE0 - .incbin "baserom.gba", 0xddafe0, 0x40 + .incbin "baserom.gba", 0xddafe0, 0x40 gUnknown_08DDB020:: @ 8DDB020 - .incbin "baserom.gba", 0xddb020, 0x2a4 + .incbin "baserom.gba", 0xddb020, 0x2a4 gUnknown_08DDB2C4:: @ 8DDB2C4 - .incbin "baserom.gba", 0xddb2c4, 0x120 + .incbin "baserom.gba", 0xddb2c4, 0x120 gUnknown_08DDB3E4:: @ 8DDB3E4 .incbin "baserom.gba", 0xddb3e4, 0x80 diff --git a/data/pokedex.s b/data/pokedex.s index 004f4484d7..3b783be34e 100644 --- a/data/pokedex.s +++ b/data/pokedex.s @@ -3,7 +3,7 @@ .section .rodata .align 2, 0 - + .macro unk_dex_struct texts, a2, a3, a4 .4byte \texts .byte \a2, \a3, \a4 @@ -30,7 +30,7 @@ gUnknown_0855D2BE:: @ 855D2BE sText_TenDashes:: @ 855D2FE .string "----------$" - + .align 2 gUnknown_0855D30C:: @ 855D30C diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s index 22b065e630..e419db55a4 100644 --- a/data/pokemon_storage_system.s +++ b/data/pokemon_storage_system.s @@ -45,10 +45,10 @@ gUnknown_085724A4:: @ 85724A4 gUnknown_085724BC:: @ 85724BC .incbin "baserom.gba", 0x5724bc, 0x18 - + gUnknown_085724D4:: @ 85724D4 .incbin "baserom.gba", 0x5724d4, 0x20 - + gUnknown_085724F4:: @ 85724F4 .incbin "baserom.gba", 0x5724f4, 0x200 @@ -107,7 +107,7 @@ gUnknown_0857276C:: @ 857276C gUnknown_08572864:: @ 8572864 window_template 0, 0x18, 0xB, 5, 4, 0xF, 0x5C - + .align 2 gOamData_857286C:: @ 857286C .2byte 0x0000 diff --git a/data/pokenav.s b/data/pokenav.s index 54cad17072..89ec3c3a6d 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -2,7 +2,7 @@ .include "constants/constants.inc" .section .rodata - + gUnknown_0861F3EC:: @ 861F3EC .4byte sub_81C9298 .4byte sub_81C941C @@ -109,10 +109,10 @@ gUnknown_0861F3EC:: @ 861F3EC .4byte sub_81CFE70 .4byte sub_81CFA48 .4byte sub_81CFE98 - + gUnknown_0861F590:: @ 861F590 .incbin "baserom.gba", 0x61F590, 0x20 - + gUnknown_0861F5B0:: @ 861F5B0 .incbin "baserom.gba", 0x61f5b0, 0x454 @@ -165,13 +165,13 @@ gUnknown_0861FA9C:: @ 861FA9C .4byte gUnknown_08DC838C, 2 .4byte gUnknown_08DC80DC, 0 .4byte gUnknown_08DC8D50, 0 - + gUnknown_0861FAD4:: @ 861FAD4 .2byte 0x0 .2byte 0x8000 .2byte 0x0 .2byte 0x0 - + gUnknown_0861FADC:: obj_image_anim_frame 0, 8 obj_image_anim_frame 16, 8 @@ -182,7 +182,7 @@ gUnknown_0861FADC:: obj_image_anim_frame 96, 8 obj_image_anim_frame 112, 8 obj_image_anim_jump 0 - + gUnknown_0861FB00:: .4byte gUnknown_0861FADC @@ -194,13 +194,13 @@ gUnknown_0861FB1C:: .2byte 0xC000 .2byte 0x400 .2byte 0x0 - + gUnknown_0861FB24:: .2byte 0x4000 .2byte 0x8000 .2byte 0x400 .2byte 0x0 - + gUnknown_0861FB2C:: @ 861FB2C spr_template 2, 1, gUnknown_0861FB1C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy @@ -1409,7 +1409,7 @@ gUnknown_08622810:: @ 8622810 gUnknown_08622818:: @ 8622818 obj_pal gUnknown_08622698, 12 obj_pal NULL, 0 - + gUnknown_08622828:: @ 8622828 .2byte 0x8000 .2byte 0x0 @@ -1424,7 +1424,7 @@ gUnknown_08622848:: @ 8622848 .2byte 0xC000 .2byte 0x400 .2byte 0x0 - + gUnknown_08622850:: @ 8622850 spr_template 8, 13, gUnknown_08622848, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy @@ -1543,7 +1543,7 @@ gUnknown_08623118:: @ 8623118 .4byte 0xE, gUnknown_08622ED4 .4byte 0xF, gUnknown_08622F14 .4byte 0x1000F, gUnknown_08622F5C - + gUnknown_086231C8:: @ 86231C8 .2byte 0x4000 .2byte 0x4000 @@ -1765,7 +1765,7 @@ gUnknown_08624C80:: @ 8624C80 gUnknown_08624CB0:: @ 8624CB0 .incbin "baserom.gba", 0x624cb0, 0x54 - + gUnknown_08624D04:: @ 8624D04 .incbin "baserom.gba", 0x624d04, 0x78 diff --git a/data/strings.s b/data/strings.s index 5eb2b13eed..a206b0663a 100644 --- a/data/strings.s +++ b/data/strings.s @@ -2,7 +2,7 @@ .include "constants/constants.inc" .section .rodata - + gExpandedPlaceholder_Empty:: @ 85E8218 .string "$" diff --git a/data/trade.s b/data/trade.s index 8c6d1cb8ae..7308b92a3a 100644 --- a/data/trade.s +++ b/data/trade.s @@ -3,7 +3,7 @@ .section .rodata .align 2, 0 - + gUnknown_0832C6A8:: @ 832C6A8 .incbin "baserom.gba", 0x32C6A8, 0x18 diff --git a/data/trainer_card.s b/data/trainer_card.s index 46895d9b19..8e49b040f6 100644 --- a/data/trainer_card.s +++ b/data/trainer_card.s @@ -3,7 +3,7 @@ .section .rodata .align 2, 0 - + .macro unk_trainer_card_struct text1, text2, short1, short2, short3, short4 .4byte \text1 .4byte \text2 diff --git a/data/use_pokeblock.s b/data/use_pokeblock.s index 2afc4a3096..7a2f26233b 100644 --- a/data/use_pokeblock.s +++ b/data/use_pokeblock.s @@ -2,7 +2,7 @@ .include "constants/constants.inc" .section .rodata - + gUnknown_085DFA60:: @ 85DFA60 .incbin "baserom.gba", 0x5dfa60, 0x20 From 47ab4efef0b910ce085be718761edba14a7eb487 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 24 Dec 2017 19:47:27 +0100 Subject: [PATCH 33/54] fix tab-killed strings --- data/strings.s | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/data/strings.s b/data/strings.s index a206b0663a..c354c82efc 100644 --- a/data/strings.s +++ b/data/strings.s @@ -2,7 +2,7 @@ .include "constants/constants.inc" .section .rodata - + gExpandedPlaceholder_Empty:: @ 85E8218 .string "$" @@ -304,13 +304,13 @@ gText_UnkWeight:: @ 85E86D0 .string "????.? lbs.$" gUnknown_085E86DC:: @ 85E86DC - .string " POKéMON$" + .string " POKéMON$" gUnknown_085E86FB:: @ 85E86FB - .string "{CLEAR_TO 0x0C} ’ ”$" + .string "{CLEAR_TO 0x0C} ’ ”$" gUnknown_085E8709:: @ 85E8709 - .string " . lbs.$" + .string " . lbs.$" gUnknown_085E871A:: @ 85E871A .string "$" @@ -1923,7 +1923,7 @@ gUnknown_085EAFE8:: @ 85EAFE8 .string "MUDKIP DOLL 1,000 COINS$" gUnknown_085EB002:: @ 85EB002 - .string " 50 COINS ¥1,000$" + .string " 50 COINS ¥1,000$" gUnknown_085EB017:: @ 85EB017 .string "500 COINS ¥10,000$" @@ -2121,7 +2121,7 @@ gText_MenuOptionExit:: @ 85EB285 .string "EXIT$" gUnknown_085EB28A:: @ 85EB28A - .string " " + .string " " gUnknown_085EB28C:: @ 85EB28C .string "5BP$" @@ -4800,7 +4800,7 @@ gText_AcceptThisPkmn:: @ 85EECF0 .string "Accept this POKéMON?$" gUnknown_085EED05:: @ 85EED05 - .string " $" + .string " $" gText_SamePkmnInPartyAlready:: @ 85EED0A .string "Same {PKMN} in party already.$" @@ -5393,4 +5393,3 @@ gText_Berry:: @ 85EFCDF gText_Berries:: @ 85EFCE5 .string "BERRIES$" - From 2c7112ce8fea1d94c624dbd164892009d4c455c2 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sun, 24 Dec 2017 22:39:43 -0500 Subject: [PATCH 34/54] ninth wave of graphics.s dumps --- data/graphics.s | 207 ++++++++++++------ graphics/battle_terrain/building/anim_map.bin | Bin 0 -> 2048 bytes .../battle_terrain/building/anim_tiles.png | Bin 0 -> 308 bytes graphics/battle_terrain/building/map.bin | Bin 0 -> 4096 bytes graphics/battle_terrain/building/palette.pal | 51 +++++ graphics/battle_terrain/building/palette2.pal | 51 +++++ graphics/battle_terrain/building/palette3.pal | 51 +++++ graphics/battle_terrain/building/tiles.png | Bin 0 -> 709 bytes graphics/battle_terrain/cave/anim_map.bin | Bin 0 -> 2048 bytes graphics/battle_terrain/cave/anim_tiles.png | Bin 0 -> 1416 bytes graphics/battle_terrain/cave/groudon.pal | 51 +++++ graphics/battle_terrain/cave/map.bin | Bin 0 -> 4096 bytes graphics/battle_terrain/cave/palette.pal | 51 +++++ graphics/battle_terrain/cave/tiles.png | Bin 0 -> 864 bytes .../battle_terrain/long_grass/anim_map.bin | Bin 0 -> 2048 bytes .../battle_terrain/long_grass/anim_tiles.png | Bin 0 -> 1127 bytes graphics/battle_terrain/long_grass/map.bin | Bin 0 -> 4096 bytes .../battle_terrain/long_grass/palette.pal | 51 +++++ graphics/battle_terrain/long_grass/tiles.png | Bin 0 -> 900 bytes graphics/battle_terrain/plain/palette.pal | 51 +++++ .../battle_terrain/pond_water/anim_map.bin | Bin 0 -> 2048 bytes .../battle_terrain/pond_water/anim_tiles.png | Bin 0 -> 592 bytes graphics/battle_terrain/pond_water/map.bin | Bin 0 -> 4096 bytes .../battle_terrain/pond_water/palette.pal | 51 +++++ graphics/battle_terrain/pond_water/tiles.png | Bin 0 -> 732 bytes graphics/battle_terrain/rock/anim_map.bin | Bin 0 -> 2048 bytes graphics/battle_terrain/rock/anim_tiles.png | Bin 0 -> 760 bytes graphics/battle_terrain/rock/map.bin | Bin 0 -> 4096 bytes graphics/battle_terrain/rock/palette.pal | 51 +++++ graphics/battle_terrain/rock/tiles.png | Bin 0 -> 725 bytes graphics/battle_terrain/sand/anim_map.bin | Bin 0 -> 2048 bytes graphics/battle_terrain/sand/anim_tiles.png | Bin 0 -> 644 bytes graphics/battle_terrain/sand/map.bin | Bin 0 -> 4096 bytes graphics/battle_terrain/sand/palette.pal | 51 +++++ graphics/battle_terrain/sand/tiles.png | Bin 0 -> 805 bytes graphics/battle_terrain/sky/anim_map.bin | Bin 0 -> 2048 bytes graphics/battle_terrain/sky/anim_tiles.png | Bin 0 -> 961 bytes graphics/battle_terrain/sky/map.bin | Bin 0 -> 4096 bytes graphics/battle_terrain/sky/palette.pal | 51 +++++ graphics/battle_terrain/sky/tiles.png | Bin 0 -> 820 bytes .../stadium/battle_frontier.pal | 51 +++++ graphics/battle_terrain/stadium/map.bin | Bin 0 -> 4096 bytes graphics/battle_terrain/stadium/palette1.pal | 51 +++++ graphics/battle_terrain/stadium/palette2.pal | 51 +++++ graphics/battle_terrain/stadium/palette3.pal | 51 +++++ graphics/battle_terrain/stadium/palette4.pal | 51 +++++ graphics/battle_terrain/stadium/palette5.pal | 51 +++++ graphics/battle_terrain/stadium/palette6.pal | 51 +++++ graphics/battle_terrain/stadium/palette7.pal | 51 +++++ graphics/battle_terrain/stadium/tiles.png | Bin 0 -> 712 bytes .../battle_terrain/tall_grass/anim_map.bin | Bin 0 -> 2048 bytes .../battle_terrain/tall_grass/anim_tiles.png | Bin 0 -> 793 bytes graphics/battle_terrain/tall_grass/map.bin | Bin 0 -> 4096 bytes .../battle_terrain/tall_grass/palette.pal | 51 +++++ graphics/battle_terrain/tall_grass/tiles.png | Bin 0 -> 739 bytes .../battle_terrain/underwater/anim_map.bin | Bin 0 -> 2048 bytes .../battle_terrain/underwater/anim_tiles.png | Bin 0 -> 506 bytes graphics/battle_terrain/underwater/map.bin | Bin 0 -> 4096 bytes .../battle_terrain/underwater/palette.pal | 51 +++++ graphics/battle_terrain/underwater/tiles.png | Bin 0 -> 773 bytes graphics/battle_terrain/water/anim_map.bin | Bin 0 -> 2048 bytes graphics/battle_terrain/water/anim_tiles.png | Bin 0 -> 887 bytes graphics/battle_terrain/water/kyogre.pal | 51 +++++ graphics/battle_terrain/water/map.bin | Bin 0 -> 4096 bytes graphics/battle_terrain/water/palette.pal | 51 +++++ graphics/battle_terrain/water/tiles.png | Bin 0 -> 766 bytes graphics/battle_transitions/vs.png | Bin 0 -> 343 bytes graphics/battle_transitions/vs_frame.bin | Bin 0 -> 2048 bytes graphics/battle_transitions/vs_frame.png | Bin 0 -> 317 bytes graphics_file_rules.mk | 4 + 70 files changed, 1315 insertions(+), 69 deletions(-) create mode 100755 graphics/battle_terrain/building/anim_map.bin create mode 100755 graphics/battle_terrain/building/anim_tiles.png create mode 100755 graphics/battle_terrain/building/map.bin create mode 100755 graphics/battle_terrain/building/palette.pal create mode 100755 graphics/battle_terrain/building/palette2.pal create mode 100755 graphics/battle_terrain/building/palette3.pal create mode 100755 graphics/battle_terrain/building/tiles.png create mode 100755 graphics/battle_terrain/cave/anim_map.bin create mode 100755 graphics/battle_terrain/cave/anim_tiles.png create mode 100755 graphics/battle_terrain/cave/groudon.pal create mode 100755 graphics/battle_terrain/cave/map.bin create mode 100755 graphics/battle_terrain/cave/palette.pal create mode 100755 graphics/battle_terrain/cave/tiles.png create mode 100755 graphics/battle_terrain/long_grass/anim_map.bin create mode 100755 graphics/battle_terrain/long_grass/anim_tiles.png create mode 100755 graphics/battle_terrain/long_grass/map.bin create mode 100755 graphics/battle_terrain/long_grass/palette.pal create mode 100755 graphics/battle_terrain/long_grass/tiles.png create mode 100755 graphics/battle_terrain/plain/palette.pal create mode 100755 graphics/battle_terrain/pond_water/anim_map.bin create mode 100755 graphics/battle_terrain/pond_water/anim_tiles.png create mode 100755 graphics/battle_terrain/pond_water/map.bin create mode 100755 graphics/battle_terrain/pond_water/palette.pal create mode 100755 graphics/battle_terrain/pond_water/tiles.png create mode 100755 graphics/battle_terrain/rock/anim_map.bin create mode 100755 graphics/battle_terrain/rock/anim_tiles.png create mode 100755 graphics/battle_terrain/rock/map.bin create mode 100755 graphics/battle_terrain/rock/palette.pal create mode 100755 graphics/battle_terrain/rock/tiles.png create mode 100755 graphics/battle_terrain/sand/anim_map.bin create mode 100755 graphics/battle_terrain/sand/anim_tiles.png create mode 100755 graphics/battle_terrain/sand/map.bin create mode 100755 graphics/battle_terrain/sand/palette.pal create mode 100755 graphics/battle_terrain/sand/tiles.png create mode 100755 graphics/battle_terrain/sky/anim_map.bin create mode 100755 graphics/battle_terrain/sky/anim_tiles.png create mode 100755 graphics/battle_terrain/sky/map.bin create mode 100755 graphics/battle_terrain/sky/palette.pal create mode 100755 graphics/battle_terrain/sky/tiles.png create mode 100755 graphics/battle_terrain/stadium/battle_frontier.pal create mode 100755 graphics/battle_terrain/stadium/map.bin create mode 100755 graphics/battle_terrain/stadium/palette1.pal create mode 100755 graphics/battle_terrain/stadium/palette2.pal create mode 100755 graphics/battle_terrain/stadium/palette3.pal create mode 100755 graphics/battle_terrain/stadium/palette4.pal create mode 100755 graphics/battle_terrain/stadium/palette5.pal create mode 100755 graphics/battle_terrain/stadium/palette6.pal create mode 100755 graphics/battle_terrain/stadium/palette7.pal create mode 100755 graphics/battle_terrain/stadium/tiles.png create mode 100755 graphics/battle_terrain/tall_grass/anim_map.bin create mode 100755 graphics/battle_terrain/tall_grass/anim_tiles.png create mode 100755 graphics/battle_terrain/tall_grass/map.bin create mode 100755 graphics/battle_terrain/tall_grass/palette.pal create mode 100755 graphics/battle_terrain/tall_grass/tiles.png create mode 100755 graphics/battle_terrain/underwater/anim_map.bin create mode 100755 graphics/battle_terrain/underwater/anim_tiles.png create mode 100755 graphics/battle_terrain/underwater/map.bin create mode 100755 graphics/battle_terrain/underwater/palette.pal create mode 100755 graphics/battle_terrain/underwater/tiles.png create mode 100755 graphics/battle_terrain/water/anim_map.bin create mode 100755 graphics/battle_terrain/water/anim_tiles.png create mode 100755 graphics/battle_terrain/water/kyogre.pal create mode 100755 graphics/battle_terrain/water/map.bin create mode 100755 graphics/battle_terrain/water/palette.pal create mode 100755 graphics/battle_terrain/water/tiles.png create mode 100755 graphics/battle_transitions/vs.png create mode 100755 graphics/battle_transitions/vs_frame.bin create mode 100755 graphics/battle_transitions/vs_frame.png diff --git a/data/graphics.s b/data/graphics.s index 7028028d32..c350cef72d 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -2551,212 +2551,281 @@ gMonIcon_QuestionMark:: @ 8D774D0 gMonFootprint_QuestionMark:: @ 8D778D0 .incbin "graphics/pokemon/footprints/question_mark_footprint.1bpp" + .align 2 gUnknown_08D778F0:: @ 8D778F0 - .incbin "baserom.gba", 0xd778f0, 0xe8 + .incbin "graphics/battle_transitions/vs_frame.4bpp.lz" + .align 2 gUnknown_08D779D8:: @ 8D779D8 - .incbin "baserom.gba", 0xd779d8, 0x10c + .incbin "graphics/battle_transitions/vs_frame.bin.lz" + .align 2 gUnknown_08D77AE4:: @ 8D77AE4 - .incbin "baserom.gba", 0xd77ae4, 0x28 + .incbin "graphics/battle_transitions/vs_frame.gbapal.lz" + .align 2 gUnknown_08D77B0C:: @ 8D77B0C - .incbin "baserom.gba", 0xd77b0c, 0x25c + .incbin "graphics/battle_transitions/vs.4bpp.lz" + .align 2 gBattleTerrainTiles_TallGrass:: @ 8D77D68 - .incbin "baserom.gba", 0xd77d68, 0x5b0 + .incbin "graphics/battle_terrain/tall_grass/tiles.4bpp.lz" + .align 2 gBattleTerrainPalette_TallGrass:: @ 8D78318 - .incbin "baserom.gba", 0xd78318, 0x38 + .incbin "graphics/battle_terrain/tall_grass/palette.gbapal.lz" + .align 2 gBattleTerrainTilemap_TallGrass:: @ 8D78350 - .incbin "baserom.gba", 0xd78350, 0x2b0 + .incbin "graphics/battle_terrain/tall_grass/map.bin.lz" + .align 2 gBattleTerrainTiles_LongGrass:: @ 8D78600 - .incbin "baserom.gba", 0xd78600, 0x678 + .incbin "graphics/battle_terrain/long_grass/tiles.4bpp.lz" + .align 2 gBattleTerrainPalette_LongGrass:: @ 8D78C78 - .incbin "baserom.gba", 0xd78C78, 0x40 + .incbin "graphics/battle_terrain/long_grass/palette.gbapal.lz" + .align 2 gBattleTerrainTilemap_LongGrass:: @ 8D78CB8 - .incbin "baserom.gba", 0xd78CB8, 0x2b0 + .incbin "graphics/battle_terrain/long_grass/map.bin.lz" + .align 2 gBattleTerrainTiles_Sand:: @ 8D78F68 - .incbin "baserom.gba", 0xd78f68, 0x5f8 + .incbin "graphics/battle_terrain/sand/tiles.4bpp.lz" + .align 2 gBattleTerrainPalette_Sand:: @ 8D79560 - .incbin "baserom.gba", 0xd79560, 0x48 + .incbin "graphics/battle_terrain/sand/palette.gbapal.lz" + .align 2 gBattleTerrainTilemap_Sand:: @ 8D795A8 - .incbin "baserom.gba", 0xd795A8, 0x2b0 + .incbin "graphics/battle_terrain/sand/map.bin.lz" + .align 2 gBattleTerrainTiles_Underwater:: @ 8D79858 - .incbin "baserom.gba", 0xd79858, 0x5b8 + .incbin "graphics/battle_terrain/underwater/tiles.4bpp.lz" + .align 2 gBattleTerrainPalette_Underwater:: @ 8D79E10 - .incbin "baserom.gba", 0xd79E10, 0x48 + .incbin "graphics/battle_terrain/underwater/palette.gbapal.lz" + .align 2 gBattleTerrainTilemap_Underwater:: @ 8D79E58 - .incbin "baserom.gba", 0xd79e58, 0x2b0 + .incbin "graphics/battle_terrain/underwater/map.bin.lz" + .align 2 gBattleTerrainTiles_Water:: @ 8D7A108 - .incbin "baserom.gba", 0xd7a108, 0x5d4 + .incbin "graphics/battle_terrain/water/tiles.4bpp.lz" + .align 2 gBattleTerrainPalette_Water:: @ 8D7A6DC - .incbin "baserom.gba", 0xd7a6DC, 0x44 + .incbin "graphics/battle_terrain/water/palette.gbapal.lz" + .align 2 gBattleTerrainTilemap_Water:: @ 8D7A720 - .incbin "baserom.gba", 0xd7a720, 0x2b0 + .incbin "graphics/battle_terrain/water/map.bin.lz" + .align 2 gBattleTerrainTiles_PondWater:: @ 8D7A9D0 - .incbin "baserom.gba", 0xd7a9D0, 0x5a8 + .incbin "graphics/battle_terrain/pond_water/tiles.4bpp.lz" + .align 2 gBattleTerrainPalette_PondWater:: @ 8D7AF78 - .incbin "baserom.gba", 0xd7af78, 0x40 + .incbin "graphics/battle_terrain/pond_water/palette.gbapal.lz" + .align 2 gBattleTerrainTilemap_PondWater:: @ 8D7AFB8 - .incbin "baserom.gba", 0xd7aFB8, 0x2b0 + .incbin "graphics/battle_terrain/pond_water/map.bin.lz" + .align 2 gBattleTerrainTiles_Rock:: @ 8D7B268 - .incbin "baserom.gba", 0xd7b268, 0x5c0 + .incbin "graphics/battle_terrain/rock/tiles.4bpp.lz" + .align 2 gBattleTerrainPalette_Rock:: @ 8D7B828 - .incbin "baserom.gba", 0xd7b828, 0x3c + .incbin "graphics/battle_terrain/rock/palette.gbapal.lz" + .align 2 gBattleTerrainTilemap_Rock:: @ 8D7B864 - .incbin "baserom.gba", 0xd7b864, 0x2b0 + .incbin "graphics/battle_terrain/rock/map.bin.lz" + .align 2 gBattleTerrainTiles_Cave:: @ 8D7BB14 - .incbin "baserom.gba", 0xd7bb14, 0x5f8 + .incbin "graphics/battle_terrain/cave/tiles.4bpp.lz" + .align 2 gBattleTerrainPalette_Cave:: @ 8D7C10C - .incbin "baserom.gba", 0xd7c10c, 0x48 + .incbin "graphics/battle_terrain/cave/palette.gbapal.lz" + .align 2 gBattleTerrainTilemap_Cave:: @ 8D7C154 - .incbin "baserom.gba", 0xd7c154, 0x2b0 + .incbin "graphics/battle_terrain/cave/map.bin.lz" + .align 2 gBattleTerrainPalette_Plain:: @ 8D7C404 - .incbin "baserom.gba", 0xd7c404, 0x3c + .incbin "graphics/battle_terrain/plain/palette.gbapal.lz" + .align 2 gBattleTerrainTiles_Building:: @ 8D7C440 - .incbin "baserom.gba", 0xd7c440, 0x5ac + .incbin "graphics/battle_terrain/building/tiles.4bpp.lz" + .align 2 gBattleTerrainPalette_Frontier:: @ 8D7C9EC - .incbin "baserom.gba", 0xd7c9ec, 0x3c + .incbin "graphics/battle_terrain/stadium/battle_frontier.gbapal.lz" @ this is also used for link battles + .align 2 gBattleTerrainTilemap_Building:: @ 8D7CA28 - .incbin "baserom.gba", 0xd7ca28, 0x2b0 + .incbin "graphics/battle_terrain/building/map.bin.lz" + .align 2 gBattleTerrainTiles_Stadium:: @ 8D7CCD8 - .incbin "baserom.gba", 0xd7ccd8, 0x608 + .incbin "graphics/battle_terrain/stadium/tiles.4bpp.lz" + .align 2 gBattleTerrainTilemap_Stadium:: @ 8D7D2E0 - .incbin "baserom.gba", 0xd7d2e0, 0x2b0 + .incbin "graphics/battle_terrain/stadium/map.bin.lz" + .align 2 gBattleTerrainTiles_Rayquaza:: @ 8D7D590 - .incbin "baserom.gba", 0xd7d590, 0x674 + .incbin "graphics/battle_terrain/sky/tiles.4bpp.lz" + .align 2 gBattleTerrainTilemap_Rayquaza:: @ 8D7DC04 - .incbin "baserom.gba", 0xd7dc04, 0x2b0 + .incbin "graphics/battle_terrain/sky/map.bin.lz" + .align 2 gBattleTerrainPalette_Building:: @ 8D7DEB4 - .incbin "baserom.gba", 0xd7deb4, 0x40 + .incbin "graphics/battle_terrain/building/palette.gbapal.lz" + .align 2 gBattleTerrainPalette_Kyogre:: @ 8D7DEF4 - .incbin "baserom.gba", 0xd7def4, 0x3c + .incbin "graphics/battle_terrain/water/kyogre.gbapal.lz" + .align 2 gBattleTerrainPalette_Groudon:: @ 8D7DF30 - .incbin "baserom.gba", 0xd7df30, 0x58 + .incbin "graphics/battle_terrain/cave/groudon.gbapal.lz" + .align 2 gBattleTerrainPalette_BuildingGym:: @ 8D7DF88 - .incbin "baserom.gba", 0xd7df88, 0x3c + .incbin "graphics/battle_terrain/building/palette2.gbapal.lz" + .align 2 gBattleTerrainPalette_BuildingLeader:: @ 8D7DFC4 - .incbin "baserom.gba", 0xd7dfc4, 0x3c + .incbin "graphics/battle_terrain/building/palette3.gbapal.lz" + .align 2 gBattleTerrainPalette_StadiumAqua:: @ 8D7E000 - .incbin "baserom.gba", 0xd7e000, 0x60 + .incbin "graphics/battle_terrain/stadium/palette1.gbapal.lz" + .align 2 gBattleTerrainPalette_StadiumMagma:: @ 8D7E060 - .incbin "baserom.gba", 0xd7e060, 0x6c + .incbin "graphics/battle_terrain/stadium/palette2.gbapal.lz" + .align 2 gBattleTerrainPalette_StadiumSidney:: @ 8D7E0CC - .incbin "baserom.gba", 0xd7e0cc, 0x50 + .incbin "graphics/battle_terrain/stadium/palette3.gbapal.lz" + .align 2 gBattleTerrainPalette_StadiumPhoebe:: @ 8D7E11C - .incbin "baserom.gba", 0xd7e11c, 0x48 + .incbin "graphics/battle_terrain/stadium/palette4.gbapal.lz" + .align 2 gBattleTerrainPalette_StadiumGlacia:: @ 8D7E164 - .incbin "baserom.gba", 0xd7e164, 0x44 + .incbin "graphics/battle_terrain/stadium/palette5.gbapal.lz" + .align 2 gBattleTerrainPalette_StadiumDrake:: @ 8D7E1A8 - .incbin "baserom.gba", 0xd7e1a8, 0x50 + .incbin "graphics/battle_terrain/stadium/palette6.gbapal.lz" + .align 2 gBattleTerrainPalette_StadiumWallace:: @ 8D7E1F8 - .incbin "baserom.gba", 0xd7e1f8, 0x3c + .incbin "graphics/battle_terrain/stadium/palette7.gbapal.lz" + .align 2 gBattleTerrainPalette_Rayquaza:: @ 8D7E234 - .incbin "baserom.gba", 0xd7e234, 0x4c + .incbin "graphics/battle_terrain/sky/palette.gbapal.lz" + .align 2 gBattleTerrainAnimTiles_TallGrass:: @ 8D7E280 - .incbin "baserom.gba", 0xd7e280, 0x588 + .incbin "graphics/battle_terrain/tall_grass/anim_tiles.4bpp.lz" + .align 2 gBattleTerrainAnimTilemap_TallGrass:: @ 8D7E808 - .incbin "baserom.gba", 0xd7e808, 0x1bc + .incbin "graphics/battle_terrain/tall_grass/anim_map.bin.lz" + .align 2 gBattleTerrainAnimTiles_LongGrass:: @ 8D7E9C4 - .incbin "baserom.gba", 0xd7e9C4, 0x710 + .incbin "graphics/battle_terrain/long_grass/anim_tiles.4bpp.lz" + .align 2 gBattleTerrainAnimTilemap_LongGrass:: @ 8D7F0D4 - .incbin "baserom.gba", 0xd7F0D4, 0x238 + .incbin "graphics/battle_terrain/long_grass/anim_map.bin.lz" + .align 2 gBattleTerrainAnimTiles_Sand:: @ 8D7F30C - .incbin "baserom.gba", 0xd7F30c, 0x544 + .incbin "graphics/battle_terrain/sand/anim_tiles.4bpp.lz" + .align 2 gBattleTerrainAnimTilemap_Sand:: @ 8D7F850 - .incbin "baserom.gba", 0xd7F850, 0x1a8 + .incbin "graphics/battle_terrain/sand/anim_map.bin.lz" + .align 2 gBattleTerrainAnimTiles_Underwater:: @ 8D7F9F8 - .incbin "baserom.gba", 0xd7f9f8, 0x4cc + .incbin "graphics/battle_terrain/underwater/anim_tiles.4bpp.lz" + .align 2 gBattleTerrainAnimTilemap_Underwater:: @ 8D7FEC4 - .incbin "baserom.gba", 0xd7fec4, 0x190 + .incbin "graphics/battle_terrain/underwater/anim_map.bin.lz" + .align 2 gBattleTerrainAnimTiles_Water:: @ 8D80054 - .incbin "baserom.gba", 0xd80054, 0x60c + .incbin "graphics/battle_terrain/water/anim_tiles.4bpp.lz" + .align 2 gBattleTerrainAnimTilemap_Water:: @ 8D80660 - .incbin "baserom.gba", 0xd80660, 0x1a4 + .incbin "graphics/battle_terrain/water/anim_map.bin.lz" + .align 2 gBattleTerrainAnimTiles_PondWater:: @ 8D80804 - .incbin "baserom.gba", 0xd80804, 0x54c + .incbin "graphics/battle_terrain/pond_water/anim_tiles.4bpp.lz" + .align 2 gBattleTerrainAnimTilemap_PondWater:: @ 8D80D50 - .incbin "baserom.gba", 0xd80d50, 0x14C + .incbin "graphics/battle_terrain/pond_water/anim_map.bin.lz" + .align 2 gBattleTerrainAnimTiles_Rock:: @ 8D80E9C - .incbin "baserom.gba", 0xd80e9c, 0x5e0 + .incbin "graphics/battle_terrain/rock/anim_tiles.4bpp.lz" + .align 2 gBattleTerrainAnimTilemap_Rock:: @ 8D8147C - .incbin "baserom.gba", 0xd8147C, 0x194 + .incbin "graphics/battle_terrain/rock/anim_map.bin.lz" + .align 2 gBattleTerrainAnimTiles_Cave:: @ 8D81610 - .incbin "baserom.gba", 0xd81610, 0x81c + .incbin "graphics/battle_terrain/cave/anim_tiles.4bpp.lz" + .align 2 gBattleTerrainAnimTilemap_Cave:: @ 8D81E2C - .incbin "baserom.gba", 0xd81e2c, 0x2a8 + .incbin "graphics/battle_terrain/cave/anim_map.bin.lz" + .align 2 gBattleTerrainAnimTiles_Building:: @ 8D820D4 - .incbin "baserom.gba", 0xd820d4, 0x410 + .incbin "graphics/battle_terrain/building/anim_tiles.4bpp.lz" + .align 2 gBattleTerrainAnimTilemap_Building:: @ 8D824E4 - .incbin "baserom.gba", 0xd824e4, 0x124 + .incbin "graphics/battle_terrain/building/anim_map.bin.lz" + .align 2 gBattleTerrainAnimTiles_Rayquaza:: @ 8D82608 - .incbin "baserom.gba", 0xd82608, 0x668 + .incbin "graphics/battle_terrain/sky/anim_tiles.4bpp.lz" + .align 2 gBattleTerrainAnimTilemap_Rayquaza:: @ 8D82C70 - .incbin "baserom.gba", 0xd82c70, 0x2a0 + .incbin "graphics/battle_terrain/sky/anim_map.bin.lz" gUnknown_08D82F10:: @ 8D82F10 .incbin "baserom.gba", 0xd82f10, 0x5ec diff --git a/graphics/battle_terrain/building/anim_map.bin b/graphics/battle_terrain/building/anim_map.bin new file mode 100755 index 0000000000000000000000000000000000000000..432e41c2f7f34e1c82aebe7f0445864baae7be8b GIT binary patch literal 2048 zcmeHFNfLk{46D2Fs{H>|Qn6-=Ivzb(a)EA1GYBN`YX=sr4HDAD5v{t5>+k8%pBRo# zo2osWW|dYYE<0j!$mNxH%ubKZR^9x)jFOMpr<*C#4X8@1y&7uCaB4)PGS^Mtxf{mP OA153L2f~3b9M}L87;(-3 literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/building/anim_tiles.png b/graphics/battle_terrain/building/anim_tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..a627523d848c12075bd2cb45a06accd76047c7fa GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLEz2?0JKu0Z<#|Nr-nE_ruv%e!Z1 zpPgOu?cK9`SGPR7x&|l(1mC{R`Sxwgw{K^^eS7xp+c%&HR`oyyVC7iUe>>a#|J{;r z_vZY6x90!1Ef8h6$p13yqJeVpo-U3d8I5nxZ{%z+5OEC@lszDN$DxGbV7`9G@AXLm z-BTQoyqaV5LGNei*Ur>EK7#MRo&C`#0Ohn>RPIVC0@m>h5rB;x7n=d#Wzp$P!^QI72Z literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/building/map.bin b/graphics/battle_terrain/building/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..d7bee60353130554304bf46e6b6268c799fe24c1 GIT binary patch literal 4096 zcmeIzMUDeO5JXWAGc)=PGcz+YGuZb(#GJtDMO*Snu8L(TQkj1dk(Q37lz93Tl$k(* zLPd&|C{?Chg-TVb)u>e$Nv>XlMopTvXw{}&hfZC(_2`w1^wX!`fI&lsjTkj%+=NL} zrp-k9XU&v_Ttr>cOO1|`Sug(PlOi;1Oj&93BV+ J0*PEV_#ZI{@Bjb+ literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/building/palette.pal b/graphics/battle_terrain/building/palette.pal new file mode 100755 index 0000000000..219cef5650 --- /dev/null +++ b/graphics/battle_terrain/building/palette.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +255 255 255 +222 197 164 +238 222 180 +238 230 205 +230 205 164 +246 238 230 +222 213 180 +230 213 172 +0 0 0 +0 0 0 +246 246 156 +246 246 180 +246 246 205 +246 246 230 +246 246 246 +0 0 0 +255 255 255 +222 197 164 +238 222 180 +238 230 205 +230 205 164 +246 238 230 +222 213 180 +246 246 205 +0 0 0 +0 0 0 +246 246 156 +246 246 180 +246 246 205 +246 246 230 +246 246 246 +0 0 0 +246 205 139 +255 238 164 +246 222 156 +255 238 172 +255 246 180 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/building/palette2.pal b/graphics/battle_terrain/building/palette2.pal new file mode 100755 index 0000000000..3ca2e0b0c0 --- /dev/null +++ b/graphics/battle_terrain/building/palette2.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +255 255 255 +205 189 148 +222 213 172 +238 230 197 +205 197 156 +246 238 222 +213 205 164 +222 213 156 +0 0 0 +0 0 0 +213 189 148 +230 213 180 +238 230 213 +246 238 230 +246 246 246 +0 0 0 +255 255 255 +205 189 148 +222 213 172 +238 230 197 +205 197 156 +246 238 222 +213 205 164 +222 213 156 +0 0 0 +0 0 0 +213 189 148 +230 213 180 +238 230 213 +246 238 230 +246 246 246 +0 0 0 +164 197 246 +205 246 255 +180 222 255 +189 230 255 +197 238 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/building/palette3.pal b/graphics/battle_terrain/building/palette3.pal new file mode 100755 index 0000000000..cebf5e6870 --- /dev/null +++ b/graphics/battle_terrain/building/palette3.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +255 255 255 +205 189 148 +222 213 172 +238 230 197 +205 197 156 +246 238 222 +213 205 164 +222 213 156 +0 0 0 +0 0 0 +213 189 148 +230 213 180 +238 230 213 +246 238 230 +246 246 246 +0 0 0 +255 255 255 +205 189 148 +222 213 172 +238 230 197 +205 197 156 +246 238 222 +213 205 164 +222 213 156 +0 0 0 +0 0 0 +213 189 148 +230 213 180 +238 230 213 +246 238 230 +246 246 246 +0 0 0 +255 222 65 +255 255 180 +255 238 74 +255 246 115 +255 255 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/building/tiles.png b/graphics/battle_terrain/building/tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..9a031c2974b1934b47d4388fc1039f3d2b9d1ceb GIT binary patch literal 709 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLEz2?0JKu0Z<#|Nr-nE_ruv%e!Z1 zpPgOu?cK9`SGPR7x&|l(1mC{R`Sxwgw{K^^eS7xp+c%&HR`oyyVC7iUe>>a#|J{;r z_vZY6x90!1Ef8h6$p13yq8S(%KX|%0hGaCpoo1bN*g>G}J6GETW)7B@i*J;66i5dM ztZP2IO|L0%zE=4u(W2HE#n6D&Z!-2=vP(;SYt<<6EI4sb#=p5YkJ}45ZTv7HXqs5o zfqL$Sii`r{OY^Ch1G>??M<*XatJbtp;IW|?L za&P6u%!=#_kDl~O{<&tqjw3DT&0C=|i|w|isti&yj^7e_v3&i@BaO4eD~|m)^$^iu zD0TRw_#rQ$fSK#Bl!jo(`a|z`g(fchX~_QY$ovG63tWqS_jPP%Xm#Jprq#H6$`76D zrc{9$4!-Yi^oShU=C9zz5N5gFpmnLoiUT4VK`d-ljc+TNyeIDIt`gjx%**+kL3BlN zL96BwZU?6C-6t03{V}qnoITa z`zrf*A917@%&%AY;GQk8k^A0>%I69XRivKIsT2>&U%YP4C+47*Z_L*xy8RE@zi#=B zzANI7Dj!X8cvijW<*8sE+k+)f^ImW-ub!;vP@CdvW`1|(n&P=kS3a(+2#;BDVEvkd l(;qn(E@a|4Y=A(<&GMcs**kiUy9k2Pg{P~Z%Q~loCIIs`PrU#D literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/cave/anim_map.bin b/graphics/battle_terrain/cave/anim_map.bin new file mode 100755 index 0000000000000000000000000000000000000000..0ab486890d3bdd74a68541988efb06eea3898894 GIT binary patch literal 2048 zcmeH_RZ|uK5JivOU^fVgg4o@96fiJR1iQPtun18U6uY~-ySw!-={LUd0y91^!+dvN z@4d5gc9Gx|9{~!dpKgYkW=TN>wk|Y3jp@u_CbO8$9OpXE`7B@|i&)GOmi{d$MQO@d z)^e7o0u`x5WvWosYK9ofGM2M~m8@d5Yh3F(*SmoX1Gn*N;(;2lEpT&-R=%^+{rF-$zwNrh#=CYHZ#iRwji1qTN-OCTGNKMv?JfW z?qfd(IOrh{d&Hw2<2WZc$th0Lo(^`jlb!8iSGv*N9`>}Cz3pRP`*Fszp7T5xyyzt_ zd&R3>^SU><=`C+7{T*PO@g_LXK@N6^i4Jv`!yVyB?|9dH-uHnIedJ@G_|#`U_k}Ng zp3>{wGwb)4g!;6x`m*(px-jcvm*ci literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/cave/anim_tiles.png b/graphics/battle_terrain/cave/anim_tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..464a2058b55b075e7d546a7ca4d66374a2bf3274 GIT binary patch literal 1416 zcmbW1`#aQm6vsc`nPGAtjX`pm^+-s&xfB~}#+_slr9s5FG@}Mnv6B6UT@$&iWR^y0 z8o7-7b!Xo`d`&kU=FsF;|9U6)+j>FGb%^PF>D@8^BabACKmeZ1XN6m=8<04g5t z&VDk&Ukinlbqh?&XBqN+y!>5c6t<-I3rU=8QVWaHQ4`+5p|`L|LJnP~$3&ExY`>Pm z@D3J5$e{>p=>KD%;z=x|`?X|~L@nu4B9`oeOn*z6^KB|KzlCy$pBMmCvxhU$KjzA8 zv0dJ~0~lCEY-Tu$3nJZ>GY{k9`uwR%J)5OHP+%}l0xT}WfgLw1gE>8qBUO7w=JOOo z4Ktfk#C~X$g1xYAR+OSUkj`2dh_YE7*_I|<)>hF> zAp%u`X*76>1CJhpfv1L=1t^3nKdK7#=nlL$JqdxQw27PvD#>V%KwY&i*c4#o|IkB0 z1fwzwd@d5as57@irhzA;O(|KKfUL2X()Z7yRv5KudN;x{=u_A$*)$B^ zx2?ydKTFDEq`G|n5mMBS_i|+`za$DAb=B^I{RaTD+EL41tboRZ z{?-=6N9Uzk3Bt9KTIl&fDybRQh@_mvKTd?pA*WNzhnMLC%#cSY~NA+(0LH z?f^A8YIsUwWOs4(N%!6dg8lbs8IQPbm%9r_5E)x-b=UH+$9>QY)n!kjxBoB3EFHm- zSJoFKM()%&_``7OpQxUL2JV8kgwvf!W|>=jS*k74aSMnSaAm{ywY}L z+hLk9@h?G@(RO!CK;=;GE8D8FV!*#9sUYoUsd>gz)CmwBBKm^rU-9kigk zxLokU{8$4#Moz51$&-Q)n&i~(^Yv?wpHP8ae%7>*+Hv)q{eq^y12(q27&(=!R3nJ@ zfkp3j5Y|SvTV_QSu^#H|pBt>6TVz!(kIPXfAWCJ3RCl4oV!0z4a7ODS;stHN6<$00 z!sH>sa(Nrw2DFBw@%)`fI8b=Quw}gl+5NBLNnF+qFPzq;CL*k*f|2^sQ2TP)L+IC4 zpea29+1EHIHhNpHsG!tSHKuxZvdQpaB`lr^B7nRRsk@S)mEDE5FXYlz)*Zl5MX#Nw z6)np{^BI(}8FSCrGqn76ppk@WGA*I{J>NuO3wWXg}+^OQf{*@s(?4F19Va?v(Mn5*eR3U=EH6SauZd3yjyil zzvNrOD@?&1X zso*bVEVT_Z5F$(?5u!BFObe~F5u=?B;!bm&bkR)@y(H+Pp8*CLVwe#|8DreZLy`$5 znPQq5Qlyz>jtuiGu*i~=7t5@$${JbL*ZJCp` zcTLjXCB<9jL>*mH3}oNCnzg1oXv>tOy>qgTF3CE&rkD)%SzeA)ii5UvM_t|0{Osx+ zpb0=W1OY`LvOqxy;E4^o#=yYT?djqelF|5f+Qz)w1_Etgx!9~q(jFX?Q(iukn>&)* zLf{VrCriF8mvgcBdd5edt9Shr{l!(=y3c9(f)mR=Rj8EOTDE(nO4wW z?fm7T(@M2?R;GiWMLzFX$h6^aY3J;%+oxxJlSp%z|NQMzEyturrU3RM`EP?tCvJWl zY0Y;z=KmVUgI^rF9rko*&Z@056<9A9nkVLy%Qv&X{gz{5|HoXbx@#t7=Bp=^`kTpR zsn4vl4my6uWXo2r`6c|*)Kues=h%mEoVxEMZ8V$Vn%}29wnuCCcq;BbJa5LW{%5j{ zpR8K>ZyLSdZ8xW!=ZXLa&+}TB2j{qNe79iQerd{wCw_v}{mviDRLwSSHr-RvW?QEk zvf%td>tAxmAA~tE$*cbj%yZk{l;&^8_Ro-&XY14&pA{Q?k2r7Mu{-kGIe`oOoeL$R zel(wb^e)Z8d8UQ^3nuU2chLva3d_57&hoNkt@`FMJI%2C^RidRob5watX?SQgO`SjdAOCWp{_h%QuMS2oF}7&@@9^OMmj_d}Pw1#UYiaRV zWl~YxPu&aa4c|JwTz~Oj+jO1BT5ApeTZ%uNuJeae_9V-rP_DbE9?o0wYc#)w*y9`y~?@q)NWG;3p3i~1LP;*i#lmFq{OTNn<#LQ>D@-g^x t>}NODe_s4`nROZWRx~JZG$ByW1OA8SYJWt(3sM3lP)}Dsmvv4FO#ot}m%RW0 literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/long_grass/anim_map.bin b/graphics/battle_terrain/long_grass/anim_map.bin new file mode 100755 index 0000000000000000000000000000000000000000..bd86cce6c89ee47b89377b9a808358e1ce02f2ab GIT binary patch literal 2048 zcmeIx*E<$)7{}okAq^U&sUb=cl{ApMWHivyK$$I-L`sPYC8d-WCH<@Zgx_HY@B5tI zN6+WFzL7|jpE&UnERiTlvZYciv)l?RrAiYC_$sTdu~xba>ttGQgN-)XY>O;gg?yXs zcF49N>@)g*pP{@nycfdi#4k>Zi5l0&wKqnM8TZyZ6W*Kj!ADa*`D|LqzxZm#H{bp6(=W5;{PxGZ VzZU!x@+eL{!l{XZc8yUJub?cPwikjw@VcmoJ@LoN zX2uemJB3_8{=!39#O`3>`|HXO&wG6P%n*?zcAj)JABn`i@XE?4zB4;?*|sT>_(;&V zU>U;j?dq;1X-CzX-LbE=B3Jy+pcN)H7;5}9eRWKB+3I2FZLd<<*$lzvfjB{P&V{>} z(st80$)FP7v26-HJLsRCU4aua?-uZ!FJ}plW4l}6`HM*2T1>XNbs(LqWLU|A{sva# z<8x_rB*{nL5PFnM>?B`7-RRC=+pw0@U~M7abW7?<=AxV8Go?N5bWS1=gHcDyxi^cw zmA4~(I(^ydns1v}r1dI~_x<7M&&Ze16P|<{93&>i)19@b3(LeQ+^1S(E{H>)P1X^# zmPrpE6~|>AhXu?$_tQxR$2oHDK)q3n?`Qesxz;rHArCr=Os1!9JCP^kFuI|K4u4Bx zN^U2cUkCf>aoDZlZ`lCp;XpekSgCCL9y9YWTK*mkz(p_-|J{Y~vjNzL{l%CAl*9Tn z3aB&xNchmBV8U5M=8&0m-7Xts?2H|ggK8to+RSIO`?v`V71Uk-#05@2OTCW#&;ZjX zNkV?07`mz&5DSHr2uMjMlm-IPliIp1APhK#E{!8ter?_rT0K9AA}T)?M?K%P4vg#}?UNMQ>+R1)xDo~`F5 zyes{!yb*?eXJRkeLM6bk#}j_w8RwdG?aJWBprniTCa-mlTtfPn9l}!C=FLLcT(Dg^ zEjzruBnfo0QdmozCN1&@vQ_!ht+){acrpa!zyo0PaP0j(*fOKvYMgVW5M)c~V2l7c z49)XHaOurn?&1X zso*bVEVT_Z5F$(?5u!BFObe~F5u=?B;!bm&bkR)@y(H+Pp8*CLVwe#|8DreZLy`$5 znPQq5Qlyz>jtuiGu*i~=7t5@$${JbL*uFl1tlhfA)_b}*hGaCpo#ve-V<^z}n~PbI{esWqzZpX7lgsz;mI%bP&p2k?e0YJh z#QT~BF^b_QL^pA%?e?7dYN31ifxC|aP9LZF-jtV(#~! z33zc|M(FP@>0QOvD`U-L>}9w_8y3#~*88f>o>^{vN!I&V#rLKYx@QXsOqzJo|NA=g zMU$h2ukJdnFLZ1LTffQ9^z?#~4^LSiD77fvy!%8m=Hi`Kx((aRKRo}~KD{HV>#-8+ zgD=bd7O}0K7U0LA#;|9}6M>D&49^<>RVQDI-oiIonW1i%N}~V^FT-mg&V_6Yj{omP zur*9%;;A)aU=vM<>RTvS&+sAnj|)Sqw}e(g|GsITlbwoxc>e3S8YR8Bj8RxqP=G^z z0h_=9>1Vqic-UpQZ)_-M@u>0ida~UfB^~qk3US7P-jQK>B1X}>tj;9w^ zC`YfA;@fT(x%jLk|6_YaR;@)0I#UDhJ4q~C5W^C|7$C^MsVD2nhe&&-oO{YLPMasm zq%r({AeyhDyPZLYHK1tcD{H?MA$m<*Mf}9 zOP4+`o8>l%@t7~rtdv~a;9J)o@0=i0yncSwh8nN)$NnscD%di${pp*-TV*(A+1*q3 zJzm~Cb5>tM+dt+5_g5aA6RN@9cZZ$3ENRlYiSG~X@xG?f`gFR^FRMqBM1>;DPIj3_ zRGpk8^6#Un_U-H5EtNIwwXAys4s5>ifc=H^i&myp7+~Il`w#M)MO<7$WI>7B)78&q Iol`;+0A^H%4FCWD literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/plain/palette.pal b/graphics/battle_terrain/plain/palette.pal new file mode 100755 index 0000000000..2377b77299 --- /dev/null +++ b/graphics/battle_terrain/plain/palette.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +238 255 230 +156 230 156 +230 230 148 +230 238 164 +189 230 148 +230 246 180 +205 230 172 +172 238 172 +0 0 0 +0 0 0 +164 222 246 +180 230 230 +197 238 222 +213 246 213 +230 255 205 +0 0 0 +238 255 230 +156 230 156 +230 230 148 +230 238 164 +189 230 148 +230 246 180 +205 230 172 +172 238 172 +0 0 0 +0 0 0 +164 222 246 +180 230 230 +197 238 222 +213 246 213 +230 255 205 +0 0 0 +74 189 65 +172 230 172 +106 205 90 +131 213 115 +156 213 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/pond_water/anim_map.bin b/graphics/battle_terrain/pond_water/anim_map.bin new file mode 100755 index 0000000000000000000000000000000000000000..00aee51352769ceaa49384d5280779fbad688127 GIT binary patch literal 2048 zcmeIx#|^?z5CqUq&X{B}#$?KP{Z~Z^7AIt}JEzgyp0r7dgg|WtW*VAW+B&*=`UZwZ v#wMmRReNb}VQD3|wz0LdcW`u4IIG$(u5Rugo?hO*?LYs%6c+*^@UH?NvFC`f literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/pond_water/anim_tiles.png b/graphics/battle_terrain/pond_water/anim_tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..08568455f9aecc23b6339c4dd5a95c03d7000aa4 GIT binary patch literal 592 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLEz2?0JKu0Z<#|Nlu#o-O&7bo76B z@!2hB{~w)lZ_2a(_qwnC2g=@i1_bY(y?giW8xVj*NL7FK+y5z7-&OB@7B%IbVb)#& zuQ@Tc*ufEA`FqS&yNq^X+SUZ@UDW zZ#fsS>dACNrR8nDdEQ$yoR_^&y}E~WQPR{WS7KalX0>lWl#wIBpBS_Ka`((j+UFi` zF#6ydDR3;9LoZw1_#>zL$#a1_Mfe{a_ByEfPC!J`Y1xBq$L1Y+vBo8J`rK)!r|#I# zpHs2a^}tMi=b(c5i}&rlZKG9SDSYHW*OLq7)057)uCrTuQS%Isv16az4@F<=7e1Pk zX7J2$k9rw?{O0C&1+S)UJyE2o@B2eF+}zsz^byU<>IdqFliB@O@SAgI2){i)d&&HV z`O(w9|NSZUxORTSf2sCObJ#yjd^r2~51)j%Pp`7qpV)e|Kt6BL&(Hv~>s9(^+s~UE znasKEX|2{((IY>$1{b{T{$;WCzG}p(pTB?ZD7gPo5*XMh;D`17bA~4`pZWHFHb~sl L)z4*}Q$iB}m_H#j literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/pond_water/map.bin b/graphics/battle_terrain/pond_water/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..61f358f53211adb317e138da4d207772c896e39f GIT binary patch literal 4096 zcmeH|*G@uF5Jj&b*idZP%fbeVWm~ZK0@x6HSK$9Y!Y?4_;c76sbN1t8WpdWT>?&1X zso*bVEVT_Z5F$(?5u!BFObe~F5u=?B;!bm&bkR)@y(H+Pp8*CLVwe#|8DreZLy`$5 znPQq5Qlyz>jtuiGu*i~=7t5@$${JbL*vVOoD6WMSUH^y44*XK%c$6!@~vdx_cipS!zj(~q&tJf9UAy3{%J z>gork438qSH%5m&y=&?f81{A7*AFbyROPZYUjJpDxtq zXczQ4m#%-yEucAnYsF^$8yyo$t6tniPcggaFH9onF5p{=>7m3QKaH%p>I{b0^ zyS1{r$Z%F;)0#$s#tK;g$R!rGy7&$?pO?1WxRpb}>Koy@5hz!SMw31X;DE8w{BKxj*%2GrlVjVqYTN zrTd^O^Y^NSDZAviut!NLJ=khuD-bk$l^lQCiX~f1jm6g(mP=Yk#J#=wf^QY$;!IH;Gl&!0o`hQ)_J_A1&Jw!?Zg^k}uw9io5O1 zIkmPdCmsiX(6b0`oP6bh_XkCbV8$i|4g~6Wz`n;k?PFVM(UIL6a73I&@7xELgH)&4w*I_8d5BZ&Ha8BYxKz@nJG+#z$v3 X^m^vP^?Ua_<h4lIiqft~jS_(sAOVSYfvFL*vPh8}2Z%MLhVMxo64?uhS}pYze=%%$0Ds z&Us!(=4XWs!;%K&-c7euj(R3^y??Wq)o;FN1j7e`PYPVSBLkP5zgBH8z2Ti9r_}l< z0W81nulcGc%CWmtgL%`RtH=FwQs%mxzS+-LA#|YY>QtNg_omh_TH=}>&U9jPMUzGE z4RNt(yZ`Gm>>~wnJ@JajydL#;^ET{vv{7%} zdSK<9ho2^%GTv8V9?oyL_O#9k&iki+oI5ARw(dsGe*d*0Q5iw)DMz9&^xZV~Of1~R zaX^^yGQWx%`}TRBe`ZboV%`w!VR*ai{ojfeP5hDy(=zV)t+Fyr;Vn9$c;Xz>CGY%@ zOh>)W*^}Jbz1dz^Z0_xjztE<)@!Sz77FM|@<<;#Ud^S{`U_IpM)Z41IFGy*_JCc zE&Q0yUz%@d%_Lqwoju8Xo^Z`wkrVgZWgF|X_nnMeVcS}_x{vpNJA}HwQ Zb7{xQ>AzZil43!r$?&1X zso*bVEVT_Z5F$(?5u!BFObe~F5u=?B;!bm&bkR)@y(H+Pp8*CLVwe#|8DreZLy`$5 znPQq5Qlyz>jtuiGu*i~=7t5@$${JbL*<|}G%F1bLwp%9L{^b;fwUaGVNO`9t zYEii5`e?3pY?CI#srcu}b4Edw^c>;1a+&_57G*A|P^CtlORj{gmHpbs8#KA*hFex;)UM&wxjw@F#|hc;uaeDcMHE#JibHs6^8&>$N> SqnOVFERvQafh2+BOyCCsF=+h& literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/sand/anim_tiles.png b/graphics/battle_terrain/sand/anim_tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..79c774acfafe9dae7cf3f73665a0a5a70fc525eb GIT binary patch literal 644 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLEz2?0JKu0Z<#|Fc)GM!kF2{q5VD zXV0?!|KI!WS@Zw@&wx@u@a|ppyLVH7Qs2I9`S$H7Pz0#{-qoOQ-++R9pFJ!7|NkgZ z4O~4~6AE$ksMnG?3is|cqln_*sBDj9XJBAl@9E+glF|5fN^H>~1D=-Ln#LWw7z&uO zOaAY^I;mbseHoA6^4g1b1_GYD=cgXn`9EMs)`V@{KgBt(ea_xczJFuu7QPAhJO0_k zpMU=2t1`<>zB<(%d(Wn(UWR= zy0uS~AO9($oXRlE`Ok*ATO9k;I}Di&yet}9uHXM4U{f{E{S2F+;YG_;41QcpY`5J+ z9Rxc1A~z{qo2fWmz_zrZCt%Sro-8Y)0$zqCY)uFBozq`@>{aCX>2M?KhJr|5)<*_Y zjg_}=T#VZKcH!1tS!bWExfC6~W%1jq=K^eFw(IW;*v-luT6OX*N6qY{7pu&_Enjl1 zqdLU$TEAhLy}En;I>9No;zD-LiJh0Q)34;zzR6S51>AS_ozPx9?ZG3*H|GTJShi%l zZM`+w@qFUs%)nPc&wgcm5a8`k+rQ3n)%Vqz1}pyW-~OG=^7qWrh7Vu)Kh)JHA2@kl z%U6-*yE)6#7w2R9YbBfRFIShiv*NNT>-Dysw_B3U*7zQK$9Zt|!)4*_<}-cNCZ9|( cLZUKV?@#q@Na`%-$p*!$r>mdKI;Vst07D=j&;S4c literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/sand/map.bin b/graphics/battle_terrain/sand/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..d7bee60353130554304bf46e6b6268c799fe24c1 GIT binary patch literal 4096 zcmeIzMUDeO5JXWAGc)=PGcz+YGuZb(#GJtDMO*Snu8L(TQkj1dk(Q37lz93Tl$k(* zLPd&|C{?Chg-TVb)u>e$Nv>XlMopTvXw{}&hfZC(_2`w1^wX!`fI&lsjTkj%+=NL} zrp-k9XU&v_Ttr>cOO1|`Sug(PlOi;1Oj&93BV+ J0*PEV_#ZI{@Bjb+ literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/sand/palette.pal b/graphics/battle_terrain/sand/palette.pal new file mode 100755 index 0000000000..20f4c3f7c4 --- /dev/null +++ b/graphics/battle_terrain/sand/palette.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +255 255 205 +213 213 90 +238 238 139 +246 246 172 +230 230 106 +255 255 189 +238 230 131 +255 255 230 +0 0 0 +0 0 0 +238 238 123 +238 238 148 +246 246 172 +246 246 180 +246 246 197 +0 0 0 +255 255 205 +222 213 82 +246 246 148 +246 246 189 +230 230 115 +255 255 197 +238 238 123 +255 255 230 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +197 197 74 +164 156 32 +222 222 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/sand/tiles.png b/graphics/battle_terrain/sand/tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..a4f7342be469fbf36a3c128690c0936a5253f3ce GIT binary patch literal 805 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLEz2?0JKu0Z<#|Fc)GM!kF2{q5VD zXV0?!|KI!WS@Zw@&wx@u@a|ppyLVH7Qs2I9`S$H7Pz0#{-qoOQ-++R9pFJ!7|NkgZ z4O~4~6AE$ksMnG?3is|cqln_*sBDj9XJB9o@N{tu$!L5#%|Gj|fxxlSR`#Xr6E3jI zm`6^ZmBY>TY^`_GNxg2Nn&t_y{8zNUaP4&pS1fs+m8KK<|4zE4risD+v(-1|`5P<0 zmgY{hTw-I#<1B8-v%UXjGQ*K>%?IBPU#PXxzEpPj?RHH?L5W>OZ=B56aNFGfvGn*x ze+l>bC!WS?H5}b>RR3MIa`%gWKdvsF`1Qd|G5N;{YfIIfW^O4jc4&?UThm3eX@_07{#m%M7A6q-h1?H0CHcEN&NYdgJU?8;#b~8^ zRrs;pFPfrGE)jlF#5QrEwtt=8neSWTOpmy(_%KnlW?J6tOL<1F@4w0|=$k+7{WNo} p4_dZAQhz2^E@t96Y=A(U8|?!oNAj;ZZ0rF_cAl<&F6*2UngFvKV8Q?Z literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/sky/anim_map.bin b/graphics/battle_terrain/sky/anim_map.bin new file mode 100755 index 0000000000000000000000000000000000000000..c1712cdd86ff28292f94175f58dd079d3af05000 GIT binary patch literal 2048 zcmeIw*H;e!0LAg2nY}3^D*iBFSEvk-hgQD_gb@BHOYpYc@K?_^$6Sf#nQwuG7FleGBug!`Tyjyjl+wy5tDN#eR8UbRl~qwy zHPx-KQi@elt(Inuwbog0gN-)XY>OIds-?C%>Z&JHnED!MsF84uHL=w;>9*Tpr(Jg2 zBg0<%WZLh5gPLllxd<(^)JkiS+KAFtJMDGQ(IJN&anv!#op91Ar=4-uIpL@RJVQdwEOVxlX zuj@W`Eg`+K<7Z2U0#TJVx61Jf0ZM5KflBShQI4YL-q<&?YI3QzagB5zmv7t~$tnSC z)*pHRrH`Q;Vc6Ay)E`6)smyL&>>00gH2 zMrPB}i^wg|Z{t3W)ewCYcdf1ZHtA>HXtPSu z#2NqtV$mxfQu-?)<@#9I5PeB;#)0M-fVHy4z6NZ)YAKVBL7U>O8AbpOGjE*lx&YlG zLP>q9Zz13{4G#cKb14T)%MUN+Kw>R_C2Wd@KcH>{AlC`NhAU3#Ze3)#Lt1xO`>t}x zJ_`LssEFf@{S-ln{N#7EB@ZV>Q}4s_ejCKoBtAzTX6A(fzQ3mjH{f|f<^W5y$2`!DA%JCSoW<_yj{qe$j&*U(3(MR}0hp{I&A@<}lI6!c7U&>0Rs3 z3E0;|Lh-xyokwf^Qo8nzlXiWP*CtShO?)zzyJGMLqd0yv2X-5Xb0Q3Lz(wBox(h0m3KsdjJ zlIFMO0A0g@-Wxa~c-jCp!Dz!$KNa!_dCpx6!3DypWPIt!#q5ZU;7Tf-Wj{ja0>=Mw zj@&xz+Ko5ufPcI>H6P4pUbXVu4GGXt2V54bwzmw}etg)Gv~;i!N(f@s^~0{~5b(V` j*XOs~a?35Z{6F#wos?){Mf$#K00000NkvXXu0mjffMwMK literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/sky/map.bin b/graphics/battle_terrain/sky/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..d7bee60353130554304bf46e6b6268c799fe24c1 GIT binary patch literal 4096 zcmeIzMUDeO5JXWAGc)=PGcz+YGuZb(#GJtDMO*Snu8L(TQkj1dk(Q37lz93Tl$k(* zLPd&|C{?Chg-TVb)u>e$Nv>XlMopTvXw{}&hfZC(_2`w1^wX!`fI&lsjTkj%+=NL} zrp-k9XU&v_Ttr>cOO1|`Sug(PlOi;1Oj&93BV+ J0*PEV_#ZI{@Bjb+ literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/sky/palette.pal b/graphics/battle_terrain/sky/palette.pal new file mode 100755 index 0000000000..1a547d6a1f --- /dev/null +++ b/graphics/battle_terrain/sky/palette.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +213 238 255 +222 230 255 +148 205 255 +172 213 255 +197 222 255 +197 230 255 +172 213 255 +230 246 255 +205 222 246 +238 246 255 +164 213 255 +180 222 255 +197 230 255 +213 238 255 +230 246 255 +0 0 0 +180 238 255 +222 230 255 +148 205 255 +172 213 255 +197 222 255 +197 230 255 +172 213 255 +230 246 255 +205 222 246 +238 246 255 +148 197 255 +164 205 255 +189 222 255 +205 230 255 +230 246 255 +0 0 0 +222 238 255 +230 238 255 +238 246 255 +246 246 255 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +139 172 205 +197 230 255 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/sky/tiles.png b/graphics/battle_terrain/sky/tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..461bba6754ff5351700ef1a42a154ecdc46c90ba GIT binary patch literal 820 zcmV-41Izr0P)cRO2V>}gFDy{<3H_u^P`z>lw}5s81ME~RR*Z4?YF@(3u~YC0#Ey@ zyty33vaGfbeT0Z$Uyj>)l-p^7r+ao?*Xsy%&4JuL!~`xGa(=xt$JH1v)|;;s#-Ij& zzE4FXA1Qz&3=?+Ul6c-pn7TPzW z=vw3rf4KJ?-5^8O|7QC}&4Xb0WNKgn_+Z!{TRxD-v3NAd(B$U$XIq900%&v|m{Yl9 z4P^e1Yl5#E*>Mm06s3bm2+r$ zx;hCCfLob|!Oz`v6>v(sV3>em=jmk*<`*`J>rhT{LxKQ$$bwP`f`Zh5Rf2CI2+D%= zpqG+n4+Z670_xUC(r6)os2V|DiE=xRM>$(8s&~2Q@eg;}M*I7eMelH8|xijM)B5ADq#NBAwwZytmW%cIGUM zOd}~A%Ee$Nv>XlMopTvXw{}&hfZC(_2`w1^wX!`fI&lsjTkj%+=NL} zrp-k9XU&v_Ttr>cOO1|`Sug(PlOi;1Oj&93BV+ J0*PEV_#ZI{@Bjb+ literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/stadium/palette1.pal b/graphics/battle_terrain/stadium/palette1.pal new file mode 100755 index 0000000000..8252e3c5ea --- /dev/null +++ b/graphics/battle_terrain/stadium/palette1.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +230 246 255 +65 131 213 +131 197 255 +148 205 246 +82 148 222 +172 213 246 +106 172 238 +98 164 246 +82 148 230 +98 164 246 +65 164 213 +106 189 230 +139 205 238 +180 230 238 +205 238 246 +0 0 0 +255 255 255 +189 189 156 +213 213 197 +230 230 213 +197 197 180 +238 238 222 +205 205 189 +197 197 180 +0 0 0 +0 0 0 +222 230 230 +230 230 238 +230 238 238 +238 246 246 +246 246 255 +0 0 0 +255 213 65 +255 246 197 +255 213 82 +255 230 115 +255 246 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/stadium/palette2.pal b/graphics/battle_terrain/stadium/palette2.pal new file mode 100755 index 0000000000..48b2d851bd --- /dev/null +++ b/graphics/battle_terrain/stadium/palette2.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +222 222 222 +222 106 0 +156 148 156 +172 164 172 +197 106 49 +189 180 189 +172 123 98 +238 131 0 +230 115 0 +246 131 0 +139 139 139 +156 148 156 +180 172 180 +197 189 197 +205 197 213 +0 0 0 +255 255 255 +189 189 156 +213 213 197 +230 230 213 +197 197 180 +238 238 222 +205 205 189 +197 197 180 +0 0 0 +0 0 0 +222 230 230 +230 230 238 +230 238 238 +238 246 246 +246 246 255 +0 0 0 +123 205 164 +189 255 230 +139 222 180 +156 238 197 +172 255 213 +0 0 0 +213 49 0 +255 222 139 +213 106 57 +246 180 16 +255 197 90 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/stadium/palette3.pal b/graphics/battle_terrain/stadium/palette3.pal new file mode 100755 index 0000000000..10c5b50d60 --- /dev/null +++ b/graphics/battle_terrain/stadium/palette3.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +230 246 230 +222 197 148 +246 222 172 +230 222 189 +230 205 156 +213 230 205 +238 213 164 +246 222 172 +238 205 164 +230 213 164 +65 172 156 +98 197 180 +139 213 213 +164 230 222 +197 238 230 +0 0 0 +230 246 230 +205 172 131 +238 213 164 +238 222 189 +213 180 139 +238 230 222 +222 197 148 +230 205 156 +222 189 148 +230 213 164 +65 172 156 +98 197 180 +139 213 213 +164 230 222 +197 238 230 +0 0 0 +255 213 65 +255 246 197 +255 213 82 +255 230 115 +255 246 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/stadium/palette4.pal b/graphics/battle_terrain/stadium/palette4.pal new file mode 100755 index 0000000000..201de5471b --- /dev/null +++ b/graphics/battle_terrain/stadium/palette4.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +230 246 230 +197 156 205 +230 205 238 +205 222 230 +205 172 213 +213 213 230 +213 189 222 +213 156 238 +205 164 222 +230 180 238 +65 172 156 +98 197 180 +139 213 213 +164 230 222 +197 238 230 +0 0 0 +230 246 230 +197 139 205 +230 205 238 +205 222 230 +205 156 213 +213 213 230 +213 180 222 +213 156 238 +205 156 213 +230 180 238 +65 172 156 +98 197 180 +139 213 213 +164 230 222 +197 238 230 +0 0 0 +189 90 230 +230 213 246 +189 115 230 +197 139 230 +213 189 230 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/stadium/palette5.pal b/graphics/battle_terrain/stadium/palette5.pal new file mode 100755 index 0000000000..16f50d89bb --- /dev/null +++ b/graphics/battle_terrain/stadium/palette5.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +230 246 230 +139 172 238 +180 213 255 +180 213 255 +148 180 238 +189 222 255 +164 197 246 +164 197 255 +148 180 246 +180 213 255 +65 172 156 +98 197 180 +139 213 213 +164 230 222 +197 238 230 +0 0 0 +230 246 230 +131 164 230 +180 213 255 +180 213 255 +148 180 238 +189 222 255 +164 197 246 +164 197 255 +148 180 246 +180 213 255 +65 172 156 +98 197 180 +139 213 213 +164 230 222 +197 238 230 +0 0 0 +90 148 238 +172 238 255 +106 172 238 +123 189 246 +164 222 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/stadium/palette6.pal b/graphics/battle_terrain/stadium/palette6.pal new file mode 100755 index 0000000000..118a6a3bba --- /dev/null +++ b/graphics/battle_terrain/stadium/palette6.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +230 246 230 +246 156 90 +197 197 197 +197 205 205 +230 164 123 +197 222 213 +213 180 156 +255 189 90 +255 172 90 +255 172 32 +65 172 156 +98 197 180 +139 213 213 +164 230 222 +197 238 230 +0 0 0 +230 246 230 +230 115 32 +164 164 164 +172 189 180 +205 131 74 +180 213 205 +180 148 115 +255 148 32 +246 131 32 +255 172 32 +65 172 156 +98 197 180 +139 213 213 +164 230 222 +197 238 230 +0 0 0 +238 189 49 +255 255 131 +238 197 57 +246 222 74 +255 246 98 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/stadium/palette7.pal b/graphics/battle_terrain/stadium/palette7.pal new file mode 100755 index 0000000000..891151f87e --- /dev/null +++ b/graphics/battle_terrain/stadium/palette7.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +230 246 255 +65 172 172 +131 238 213 +148 238 197 +82 189 180 +172 255 205 +106 205 197 +98 205 205 +82 189 189 +98 205 197 +65 164 213 +106 189 230 +139 205 238 +180 230 238 +205 238 246 +0 0 0 +230 246 255 +65 172 172 +131 238 213 +148 238 197 +82 189 180 +172 255 205 +106 205 197 +98 205 205 +82 189 189 +98 205 197 +65 164 213 +106 189 230 +139 205 238 +180 230 238 +205 238 246 +0 0 0 +246 172 0 +255 238 131 +255 180 16 +255 197 41 +255 238 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/stadium/tiles.png b/graphics/battle_terrain/stadium/tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..ece531ec077e11555a2d1aafb92571316a544fc1 GIT binary patch literal 712 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLEz2?0JKu0Z#vum1xYTn)3dv#0qyJz=+ z+JPGH?VW;E{r{_u|Gypme>Ld;v*Q2Xnt>+Z0SAOHd}m-_{OsxC7?RQWcG^b2!v+Fv zf4Qa#@C$Huo@236UbN0*!3yK7r(2nwZqBqSf4%tw*B++z2SQ4D?c!zTCoi|)&!iA{WlFQoyLC-ZT4S!qS}|?nI3C4yQ@PjqK`Q_6{Z#so`uG55Oq}ldCNDkwR-l8mwp@f-qDDA zDP?-$_#CbmZ@qW(A9-Wcag*g*WLT3+AJYW(Bl`vB*RmC?jgM?-TGuGlSfT#)JAFYY%)}?|*$6k5%hlOV-1@34+;^ohLQM%x&JhrMZJGPkruU zo2|DO-uJ1_pI80ymxeW$S^SsXXE*R)SpWV=cH^$Ub072S_&6V^6i zT|l+&+lr5Orlmzy6$O7y^NNYyUfkHT^Ye{^pIp)xTdxpun{BS!&KLfk(~7g_`-j<$ zyAK*v$sGC2&r-LNjd@?w_mn%99u}P{b0_|HdUZd;Nd6|jTg;{srOfF%(al%9r+Gf? z*N;56(~t4fkAOXzejyLsvp%e>2%ocp;jjS@0=ax(z5Cx!+v{eJ2Pk!Ty85}Sb4q9e E01aeKd;kCd literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/tall_grass/anim_map.bin b/graphics/battle_terrain/tall_grass/anim_map.bin new file mode 100755 index 0000000000000000000000000000000000000000..8e7d784f3787b2c46f7928e141daf3212e3f2c8b GIT binary patch literal 2048 zcmeIwMN&gi5J1s~1`7mtf+x7U9o*eD``-mS;0+l4s^2|4ldfAGLOO{qApCR7l&esw zDpZGznoz4Q)N7E{s3`=0drq?!t=hEf(5Xwe9=-bX8;}?CK|_X(7&T^GLD7UsQ>M+B zH7Dlt7A#t_Y{jZI>o#oKvTet%JuzqBfkQ`*oj7&o+=WY5uHCp5^E>w*JbLo%#j7{( YK79J}?MF$>6a9PX@o9myK%xu$0>yAyApigX literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/tall_grass/anim_tiles.png b/graphics/battle_terrain/tall_grass/anim_tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..85aed13bb294fc1ea92970d742cc2cc5dad68238 GIT binary patch literal 793 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLEz2?0JKu0ZvfY;}V1>*IUB z{9pPpTA}09Z-+Va&Ih{uWNI)KSoU1{!4tCtKfQS7=Nz_fEbru48gAAy+;TITzk%&a zX?ER=!!;}&;uG8yw)w5`2y2el7FU?Y_)vJkoJ)TWzLd3iGn;WC^QSAX^QPx5|Ie7A zyYo^(jDyGm4u(?28y606o#r^e@#5YFhDWj%QVTqn`}#3XsA2W{w}WB9-;AJ5&DIWa zj*SZHt0TGQnk#4(6nz#}@D-bz%RDKT{rRzGb!m|YExRNnJ<1s-$+>R#mU~d|+7R>m z!6glJ?PV-j6<;hurOa%)g}^K|udS?83{1OTs+ BQn>&C literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/tall_grass/map.bin b/graphics/battle_terrain/tall_grass/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..61f358f53211adb317e138da4d207772c896e39f GIT binary patch literal 4096 zcmeH|*G@uF5Jj&b*idZP%fbeVWm~ZK0@x6HSK$9Y!Y?4_;c76sbN1t8WpdWT>?&1X zso*bVEVT_Z5F$(?5u!BFObe~F5u=?B;!bm&bkR)@y(H+Pp8*CLVwe#|8DreZLy`$5 znPQq5Qlyz>jtuiGu*i~=7t5@$${JbL*zn{T7wKx7+P}jJJ-X!}EoYLt^=n0A z<<-grJvr`>6;iKm-kiRWDSQ8}A4eHo4<_5HB#6j`@J?x*Z7EjZ_RAt&Uj5UG(+Act zKEK8J!J=oe>M^G3cRUu1(>=c>?6#fK8qFs8zk(RHve7VyM4YX3w#m)R-X3^Wz z{P7QSWBjUvoXZ9F&Mf2S%2V=6e^kHl%l!=F`8W90YEovpoU+>#!|P?gDTk~6&%~#9 zUkjDU$#Hq)$ literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/underwater/anim_map.bin b/graphics/battle_terrain/underwater/anim_map.bin new file mode 100755 index 0000000000000000000000000000000000000000..616c2a24225a8a8f40792bb95920a9f97068a8d3 GIT binary patch literal 2048 zcmeH_TTcQp6oeZ^eG#Gpnt&27e?T9(>9?|2#M}S>H}>r5*-MPP@Ipej4{dj*Gt)^O zE{z>%;Fi0X;*9gnd2(aOe9uF{e&p$&Q^Hd9Q`&SQYrrtB1iR*jQP@|1O;=xssw>Of z?cFq;k2vN8w0_Lq}b}=w8s(QLOhGaCpy%Lz$Y{0{ou%wk)qKxqjU%;z3dt=X3 zFW3CO|CCI`^({+;N^X7oRPQg^Td&Txbk)D+;Ln?@1V6s!UUOG*z4+By_qVTDt{$kJ z_TZb6kIPbqs~<};SMQoF&9(77^9*aPcL!eWoGH8~e4FXC2QyZ_{Cw5#hR7?~>@BO_ z%(-mFy!ph#tcMcGFLkfX`DVu2QpcAOoY-TSyZT!2LJiyhcI8_xn(WqG;Mttj{_WDu zm(t?GZcG3Dv93E263@D6@?`!cSPkgV6uWQE%&Ho>K z{1eZ+imexqIvM@hq`vp_#&t`rMC`X-b#gz?Up8<38u$K!>eSq=J2siI>#SR|c3Swg gu=sE>?&1X zso*bVEVT_Z5F$(?5u!BFObe~F5u=?B;!bm&bkR)@y(H+Pp8*CLVwe#|8DreZLy`$5 znPQq5Qlyz>jtuiGu*i~=7t5@$${JbL*w0_Lq}b}=w88F;!lhGaCpo#vgzN&mxP-tHZi8`U%kp` z(W+~|pO|)TQ7=94eVvy2Vjb7Wwei^u0xM4KS-X5qAGb`{In(Dn2X=C&>}q7vl6+mW zCv|h8*eNl6vz{ev>~H7D8-G)>nv^8Ge8Z)Eb4{}^T`2T%W_(#EBXLoXgN4ILGcbd3 zX8V@=Zho7XOe%Iv;9AAzc1(}lqSd%mFyq!9PBo#aO+UNrEF_ptXT08CDwsXjSx2Db!bcrpnaz?NwFOI^ z6Bd4Uj~6?Ym{GR<1j9S_i(zF<50{lb=iu0}mWQvo%J`?qM?;P`QyqBwiX$2$RSx91 z{Ib|xXVAc_Drm4;^a5{c!f(g9+qS4VcyHFV&0TdyRCSBrtSqD8m}vhXuG_ojb03_s zJI^{|-l3Zk{Hx>^^YWcOcUaUe;K}joZ&$zMU6@$IBKw1#sXn+_FP_oPqFDaRjZR0a z^m(m$)7Pl9{+q6|cTVBSpiY(PYdmLrPh0PJ-+P+x!85FEynE)w`NeD!TCb}gd2!#n y<};6-Kd9{pXpCQZaQTDSf`v>RO$rEfsYyO+R$R4!^jTj}((-imb6Mw<&;$SgZ(h;> literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/water/anim_map.bin b/graphics/battle_terrain/water/anim_map.bin new file mode 100755 index 0000000000000000000000000000000000000000..2b5f7a548888b9d74e1c167a0c6ee4bafbe673a4 GIT binary patch literal 2048 zcmeIxNi#!H6h+~ih6q6rJwc*Rw9z;5;Syc=|Nq7)WuoepkwM-$lYMH<)~*wTbo<#r z=*@sZ1w)F4jVKv4W?YYk@H;P?FlkD~v>CJJ%v-Q%$+D^yNqp6sn!0rxHf`CqV^>4d zo_zcjKE@opU U{`LO%@B1k@O{sy@K%W`-218|*tpET3 literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/water/anim_tiles.png b/graphics/battle_terrain/water/anim_tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..b505640291ee960eed95ecaf0e32371e79a20143 GIT binary patch literal 887 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLEz2?0JKu0Z<#|Nl`_?oGM+Zp*W8 zS!B>AsLNtr}-A$HsER9`f%?qh4fulm^x}3wRSf6K4<8vWWB%b zhoXwtvboD5+46HD7j^pgGpx91FyWKm;qb4L4EvdOOf0K!xA>?1VA(Eam2DqeHg)b} z_sD5bX}R$D$)CFHtGhir3=8$N(pTU1i)GMYOtJmXC}F_WILAiIt0Hdg0TwPb^bimnw64nrw+~v)m12UYIx3aZ|bE>UvdNvEZbnR;`h4k?@I+gr98-cvTf5uRVSW9 z`}S@VJ7Ctr7{&eOK3i4n&2!JIbJ;EgWz4gZ6DZy+&vRj&qfx@to$3!1uQ#x8F`Vo; zH+}gmn?Gls%o8w3|Ev@3y^Bq!<$+_V-`a`+S5(ooa7 z?WX202R1(SEuv>;9Z9h`B+$Ugv_N>*pC7@3IrDi0oCTI7JLbhcnA>_hlHJsRb3u(y z(S>>==?OZ|f_wEh=Pi@c@Yq(MI$vCMk7V0@20wja`K8kfCUG+Fo}-;0#&z_0&9a$2 zC(=znsdZ%bUN2xe5tw(oW7*vJR);lblqbImUEQHCrq3{|MXF4*>VCFrN@-o9x~SsC zq!+97Q>;|wU#~xFe#mXAVeRXw7oHaFjM1BZ8i}%xs%N}rDPfXrCYJ$9x}L6nF6*2U FngHW6j9>r& literal 0 HcmV?d00001 diff --git a/graphics/battle_terrain/water/kyogre.pal b/graphics/battle_terrain/water/kyogre.pal new file mode 100755 index 0000000000..eaa19730fb --- /dev/null +++ b/graphics/battle_terrain/water/kyogre.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +246 246 189 +90 148 222 +148 213 238 +180 222 222 +106 172 230 +172 213 213 +123 189 230 +205 222 197 +0 0 0 +0 0 0 +172 139 82 +189 156 106 +213 197 148 +230 213 164 +238 230 180 +0 0 0 +246 246 189 +90 148 222 +148 213 238 +180 222 222 +106 172 230 +172 213 213 +123 189 230 +205 222 197 +0 0 0 +0 0 0 +172 139 82 +189 156 106 +213 197 148 +230 213 164 +238 230 180 +0 0 0 +98 164 230 +131 197 255 +172 238 255 +255 255 255 +205 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_terrain/water/map.bin b/graphics/battle_terrain/water/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..61f358f53211adb317e138da4d207772c896e39f GIT binary patch literal 4096 zcmeH|*G@uF5Jj&b*idZP%fbeVWm~ZK0@x6HSK$9Y!Y?4_;c76sbN1t8WpdWT>?&1X zso*bVEVT_Z5F$(?5u!BFObe~F5u=?B;!bm&bkR)@y(H+Pp8*CLVwe#|8DreZLy`$5 znPQq5Qlyz>jtuiGu*i~=7t5@$${JbL*PMbB;Rm(m$- zY`*hoi~pgUYo`~^$mzFavb@n=7wx=bZCSys7fUzmIHk-K+hmc%?rM&lq@TMl^Cw3ry^D$MwN zmN1=F(IBy;IpLmK&3a}TCwF$?$u5rFR@XXIo*73sX-t|X%_#W6YR4v(4yDNJxh)fR zOlEq=e#Vk(mq(kOpt7#uvmcZ1_y=hAgCy~QVk6f2%NE&cP%JIwgSq^DO(Hc8+;U0H?lhoYvpcLfk>gTe~DWM4f!3|jp literal 0 HcmV?d00001 diff --git a/graphics/battle_transitions/vs.png b/graphics/battle_transitions/vs.png new file mode 100755 index 0000000000000000000000000000000000000000..5491990f650ea84b50d8d1ce4000406eaff5a029 GIT binary patch literal 343 zcmV-d0jU0oP)TB0003VNklC_B9IO!!)^&j!8NYFb~3;&xV~^pAVBwl79dT434kWB0_+A5 z?Ew7&xdVU>uphAJfaWEf29}p_9B5j?aX{h)FSr9zQLi0dT)|(1sDc5l0lN+WItAzi z&3ltf;qPwvrwppcl=M z0b^5;ljWyK`5%IKwXq%45umO65QG-+F(9*m{tK5qmdPr=Jk|02kalwj!aIr-jM533 pHE9HpateT+E>@F%#0K#v-~(Xdp!tQrOjiH^002ovPDHLkV1kv>h86$- literal 0 HcmV?d00001 diff --git a/graphics/battle_transitions/vs_frame.bin b/graphics/battle_transitions/vs_frame.bin new file mode 100755 index 0000000000000000000000000000000000000000..2ad1539649a0194c0349f5be5c181e90c8490903 GIT binary patch literal 2048 zcmZQgU_*oK2@E6vjs#9L$Tg~eH2jDT0qz7IG{{R*`XSn)QH7%+Fd71*Aut*OC?Nm< DnI0`4 literal 0 HcmV?d00001 diff --git a/graphics/battle_transitions/vs_frame.png b/graphics/battle_transitions/vs_frame.png new file mode 100755 index 0000000000000000000000000000000000000000..0b38c8960d945627464377f51811bdfdb8d21b3e GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^5ZkJeps3F6Jxexu4(P**ATD{^qVfhi&=$#WULyk1zi} zf5EHEpB$|kjMilG+`n|mu91N`+s(3N@%k^Fii-|ODo%d4gys6-TZ|@xX;RUgS1JS& zwB4RBX>?$i63oYx%P7!iC@^Eob|;I3@KsY33#V8yO|W>!=^^u(Wy4Yfz9W_ad^Z*r z@SWfW;$k4a&B1456=3o1#GF0`7WNkb1`U;rJPGrdnP+TgXJ=rz{<7q;-M%Z|fPP}| MboFyt=akR{0Ev2mnE(I) literal 0 HcmV?d00001 diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 06d84753aa..6172da9c7e 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -10,6 +10,7 @@ unusedgfxdir := graphics/unused unknowngfxdir := graphics/unknown btintgfxdir := graphics/battle_interface masksgfxdir := graphics/battle_anims/masks +bttransgfxdir := graphics/battle_transitions $(monstillfrontdir)/castform_still_front_pic.4bpp: $(monstillfrontdir)/castform_normal_form_still_front_pic.4bpp \ $(monstillfrontdir)/castform_sunny_form_still_front_pic.4bpp \ @@ -352,3 +353,6 @@ $(btanimgfxdir)/001.4bpp: $(btanimgfxdir)/001_0.4bpp $(btanimgfxdir)/001_1.4bpp $(masksgfxdir)/unknown_C2EA50.4bpp: $(masksgfxdir)/unknown_C2EA50.png $(GFX) $< $@ -num_tiles 14 + +$(bttransgfxdir)/vs_frame.4bpp: $(bttransgfxdir)/vs_frame.png + $(GFX) $< $@ -num_tiles 16 From d6bac7f9f8382da4bbe6dd5bead54b79660a13bd Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Mon, 25 Dec 2017 15:51:01 -0500 Subject: [PATCH 35/54] tenth wave of graphics.s dumps (battle_frontier) --- data/graphics.s | 75 ++++-- graphics/battle_frontier/battle_tilemap1.bin | Bin 0 -> 4096 bytes graphics/battle_frontier/battle_tilemap2.bin | Bin 0 -> 4096 bytes graphics/battle_frontier/dome_anim1.pal | 19 ++ graphics/battle_frontier/dome_anim2.pal | 19 ++ graphics/battle_frontier/dome_anim3.pal | 19 ++ graphics/battle_frontier/dome_anim4.pal | 19 ++ graphics/battle_frontier/misc1.png | Bin 0 -> 1606 bytes graphics/battle_frontier/options.png | Bin 0 -> 576 bytes graphics/battle_frontier/options_pal1.pal | 259 +++++++++++++++++++ graphics/battle_frontier/options_pal2.pal | 259 +++++++++++++++++++ graphics/battle_frontier/options_pal3.pal | 19 ++ graphics/battle_frontier/pyramid_light.pal | 115 ++++++++ graphics/battle_frontier/symbols.png | Bin 0 -> 277 bytes graphics/battle_frontier/text.pal | 19 ++ graphics/battle_frontier/text_pp.pal | 19 ++ graphics/battle_frontier/tourney_bg.png | Bin 0 -> 983 bytes graphics/battle_frontier/tourney_line.png | Bin 0 -> 349 bytes graphics/unknown/unknown_D83900.bin | Bin 0 -> 2048 bytes graphics/unknown/unknown_D83B2C.bin | Bin 0 -> 2048 bytes graphics/unknown/unknown_D83C3C.bin | Bin 0 -> 2048 bytes graphics/unknown/unknown_D84970.bin | Bin 0 -> 8192 bytes graphics/unknown/unknown_D84F00.bin | 1 + 23 files changed, 821 insertions(+), 21 deletions(-) create mode 100755 graphics/battle_frontier/battle_tilemap1.bin create mode 100755 graphics/battle_frontier/battle_tilemap2.bin create mode 100755 graphics/battle_frontier/dome_anim1.pal create mode 100755 graphics/battle_frontier/dome_anim2.pal create mode 100755 graphics/battle_frontier/dome_anim3.pal create mode 100755 graphics/battle_frontier/dome_anim4.pal create mode 100755 graphics/battle_frontier/misc1.png create mode 100755 graphics/battle_frontier/options.png create mode 100755 graphics/battle_frontier/options_pal1.pal create mode 100755 graphics/battle_frontier/options_pal2.pal create mode 100755 graphics/battle_frontier/options_pal3.pal create mode 100755 graphics/battle_frontier/pyramid_light.pal create mode 100755 graphics/battle_frontier/symbols.png create mode 100755 graphics/battle_frontier/text.pal create mode 100755 graphics/battle_frontier/text_pp.pal create mode 100755 graphics/battle_frontier/tourney_bg.png create mode 100755 graphics/battle_frontier/tourney_line.png create mode 100755 graphics/unknown/unknown_D83900.bin create mode 100755 graphics/unknown/unknown_D83B2C.bin create mode 100755 graphics/unknown/unknown_D83C3C.bin create mode 100755 graphics/unknown/unknown_D84970.bin create mode 100755 graphics/unknown/unknown_D84F00.bin diff --git a/data/graphics.s b/data/graphics.s index 8af8bb48aa..cd84bd242b 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -2829,67 +2829,100 @@ gBattleTerrainAnimTilemap_Rayquaza:: @ 8D82C70 .align 2 gUnknown_08D82F10:: @ 8D82F10 - .incbin "baserom.gba", 0xd82f10, 0x5ec + .incbin "graphics/battle_frontier/tourney_bg.4bpp.lz" + .align 2 gUnknown_08D834FC:: @ 8D834FC - .incbin "baserom.gba", 0xd834fc, 0x404 + .incbin "graphics/battle_frontier/tourney_line.4bpp.lz" @ the red glow mask for the tourney advancement lines + .align 2 gUnknown_08D83900:: @ 8D83900 - .incbin "baserom.gba", 0xd83900, 0x22c + .incbin "graphics/unknown/unknown_D83900.bin.lz" @ tilemaps likely + .align 2 gUnknown_08D83B2C:: @ 8D83B2C - .incbin "baserom.gba", 0xd83b2c, 0x110 + .incbin "graphics/unknown/unknown_D83B2C.bin.lz" + .align 2 gUnknown_08D83C3C:: @ 8D83C3C - .incbin "baserom.gba", 0xd83c3c, 0x114 + .incbin "graphics/unknown/unknown_D83C3C.bin.lz" + .align 2 gUnknown_08D83D50:: @ 8D83D50 - .incbin "baserom.gba", 0xd83d50, 0xc20 + .incbin "graphics/battle_frontier/misc1.4bpp.lz" + .align 2 gUnknown_08D84970:: @ 8D84970 - .incbin "baserom.gba", 0xd84970, 0x590 + .incbin "graphics/unknown/unknown_D84970.bin.lz" + .align 2 gUnknown_08D84F00:: @ 8D84F00 - .incbin "baserom.gba", 0xd84f00, 0x458 + .incbin "graphics/unknown/unknown_D84F00.bin.lz" + .align 2 +gBattleFrontierGfx_DomeOptions:: @ 8D85058 + .incbin "graphics/battle_frontier/options.4bpp.lz" + + .align 2 gUnknown_08D85358:: @ 8D85358 - .incbin "baserom.gba", 0xd85358, 0xec + .incbin "graphics/battle_frontier/options_pal1.gbapal.lz" + .align 2 gUnknown_08D85444:: @ 8D85444 - .incbin "baserom.gba", 0xd85444, 0x84 + .incbin "graphics/battle_frontier/options_pal2.gbapal.lz" @ pokeball pal + .align 2 gUnknown_08D854C8:: @ 8D854C8 - .incbin "baserom.gba", 0xd854c8, 0x120 + .incbin "graphics/battle_frontier/options_pal3.gbapal.lz" @ arrow pal + .align 2 +gUnknown_08D854E8:: @ 8D854E8 + .incbin "graphics/battle_frontier/symbols.4bpp.lz" + + .align 2 gUnknown_08D855E8:: @ 8D855E8 - .incbin "baserom.gba", 0xd855e8, 0x18 + .incbin "graphics/battle_frontier/symbols.gbapal.lz" + .align 2 gUnknown_08D85600:: @ 8D85600 - .incbin "baserom.gba", 0xd85600, 0x20 + .incbin "graphics/battle_frontier/text.gbapal.lz" @ text palette for frontier text. + .align 2 gUnknown_08D85620:: @ 8D85620 - .incbin "baserom.gba", 0xd85620, 0x20 + .incbin "graphics/battle_frontier/text_pp.gbapal" @ text palette for PP text + @ dome anim pals + + .align 2 gUnknown_08D85640:: @ 8D85640 - .incbin "baserom.gba", 0xd85640, 0x20 + .incbin "graphics/battle_frontier/dome_anim1.gbapal" + .align 2 gUnknown_08D85660:: @ 8D85660 - .incbin "baserom.gba", 0xd85660, 0x20 + .incbin "graphics/battle_frontier/dome_anim2.gbapal" + .align 2 gUnknown_08D85680:: @ 8D85680 - .incbin "baserom.gba", 0xd85680, 0x20 + .incbin "graphics/battle_frontier/dome_anim3.gbapal" + .align 2 gUnknown_08D856A0:: @ 8D856A0 - .incbin "baserom.gba", 0xd856a0, 0x28 + .incbin "graphics/battle_frontier/dome_anim4.gbapal" + @ 8D856C0 + .2byte 0x013F, 0x0119, 0x0113, 0x010E @ unused? + + .align 2 gUnknown_08D856C8:: @ 8D856C8 - .incbin "baserom.gba", 0xd856c8, 0xe0 + .incbin "graphics/battle_frontier/pyramid_light.gbapal" @ unfaded pal for the player light in battle pyramid + .align 2 gUnknown_08D857A8:: @ 8D857A8 - .incbin "baserom.gba", 0xd857a8, 0x274 + .incbin "graphics/battle_frontier/battle_tilemap1.bin.lz" + .align 2 gUnknown_08D85A1C:: @ 8D85A1C - .incbin "baserom.gba", 0xd85a1c, 0x234 + .incbin "graphics/battle_frontier/battle_tilemap2.bin.lz" gUnknown_08D85C50:: @ 8D85C50 .incbin "baserom.gba", 0xd85c50, 0x60 diff --git a/graphics/battle_frontier/battle_tilemap1.bin b/graphics/battle_frontier/battle_tilemap1.bin new file mode 100755 index 0000000000000000000000000000000000000000..c38b76d4a2c5dd0f71264708c40ddcd64220db51 GIT binary patch literal 4096 zcmeIz$4){)7zJPy3)L<~Q9pY@rCKQJtH6E#hah23?&2;;%s*#2Iho|kBqxz%%3QY0 zL{;+0VrZfe;9R5Lk;qw)IakuKzrBLsoBN-24ZD QwS4+`Gz3B*1VSLU0HQN75C8xG literal 0 HcmV?d00001 diff --git a/graphics/battle_frontier/battle_tilemap2.bin b/graphics/battle_frontier/battle_tilemap2.bin new file mode 100755 index 0000000000000000000000000000000000000000..7cc984cffd02b6e7621f257f246b3f890ebdda09 GIT binary patch literal 4096 zcmeIz$q|Dv5JXWz`Jn)2wb?O?ZOo$lgK!8ssC-hZ&pOPjnjV93%7t4_6bVScSAmd- zm>UTx894euKJ2!5~Ze$M~^ literal 0 HcmV?d00001 diff --git a/graphics/battle_frontier/dome_anim1.pal b/graphics/battle_frontier/dome_anim1.pal new file mode 100755 index 0000000000..f25d4150e4 --- /dev/null +++ b/graphics/battle_frontier/dome_anim1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 148 8 +82 82 106 +115 115 131 +156 156 164 +189 189 197 +255 255 255 +115 131 98 +90 82 82 +205 222 197 +82 131 156 +115 164 197 +164 205 222 +131 106 82 +255 123 32 +156 139 106 +255 222 131 diff --git a/graphics/battle_frontier/dome_anim2.pal b/graphics/battle_frontier/dome_anim2.pal new file mode 100755 index 0000000000..32a85e03c5 --- /dev/null +++ b/graphics/battle_frontier/dome_anim2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 148 8 +82 82 106 +115 115 131 +156 156 164 +189 189 197 +255 255 255 +115 131 98 +90 82 82 +205 222 197 +82 131 156 +115 164 197 +164 205 222 +131 106 82 +255 156 65 +156 139 106 +255 189 98 diff --git a/graphics/battle_frontier/dome_anim3.pal b/graphics/battle_frontier/dome_anim3.pal new file mode 100755 index 0000000000..214dadb488 --- /dev/null +++ b/graphics/battle_frontier/dome_anim3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 148 8 +82 82 106 +115 115 131 +156 156 164 +189 189 197 +255 255 255 +115 131 98 +90 82 82 +205 222 197 +82 131 156 +115 164 197 +164 205 222 +131 106 82 +255 189 98 +156 139 106 +255 156 65 diff --git a/graphics/battle_frontier/dome_anim4.pal b/graphics/battle_frontier/dome_anim4.pal new file mode 100755 index 0000000000..c96254979d --- /dev/null +++ b/graphics/battle_frontier/dome_anim4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 148 8 +82 82 106 +115 115 131 +156 156 164 +189 189 197 +255 255 255 +115 131 98 +90 82 82 +205 222 197 +82 131 156 +115 164 197 +164 205 222 +131 106 82 +255 222 131 +156 139 106 +255 123 32 diff --git a/graphics/battle_frontier/misc1.png b/graphics/battle_frontier/misc1.png new file mode 100755 index 0000000000000000000000000000000000000000..a3c225c89d2706063d62e497e5a6541e6e896385 GIT binary patch literal 1606 zcmV-M2D$l(P)jF?V+3R%)H&Vt6fQnuY6<6+LiP^JM(^N{oR71phzi_mM|1At+jeO zEAGwt%Sn>ZZ$dBI@74kM5E?XrxxTO#K-7Tbfk1MwF_3XI0qT;CfLB@e5Fo4KTL8WK zuOoy5^mrM-I4@!eK-ykf|0LAF9GJ2b6$F5bGw{#AatMGXBfmWZn$B#bz`zIM3&X*{ zE3X4S3EGxH4H%eiK;Azv+NCpeYYVW)d{u&!^ns2XuqFd;t0VDBuPp)^R2gJ5q|pK# zd4Mb8Q`xagfVGo(8-Sr~PNYUB9&!mqF)sm1Kaq!YA_50!tkWX~!1F}=8Vx<*z$^iL z{I_VwfrfIg?s+{wH%O|S7wGgpAs8Tio-WZ7E4Ex~~vt;t|7 z`76aw`m<~3K)jFVX+FqHAX~~HDI8EV!U019;%?xm_!8qMep)sCqQjUZ7)1cP3QSxH ztZ65e`_3VT?g;JEDo&mPpp}2V@S+BkF_DZ4zkQmxKlM0~nFU)1Fgz4S%D*!5BOhf5L;SU06FDFrqV*~&2!FL>bGV!)nYbVJz$z*^v$Y10$;9aH2K8v+ThMzp_7<8qV3ea42s zUQ+G{CqIUE0G;fBd-+$W0HC+G_x>bu zS9E~eo&P_ekXut9NSeUe*4FkzfGtE5uqEJXD1rM1u(br#Mqw>*)&%DDVJut?1jrVj z)Pb!AFt^=+R96Sinm}_RA>|o2yq8j>q{NK?8gJ7;$hkD~V-sMzTA8gtfkBkqag@{m zQ~>26z&4k$3eXzv{R({G>>&UuSPRVUOe(-EnAf*609zGcKehpd>jM9uO*aZ|Eo=Zp z5&nMerN_Ofm%7(J_p_^h)X&_iM?cqqato$L{FJ80Q52=}T0e`j?26920e5}6GGDbP zfMnCpvc3S3F8TsWD?nFHwSve2baeu_{aOGCFp#E^%K!;bL}dmu1`b>M;4Lzj=NYMX;5i^w00YRquoA!@0m?q`0Pced;BBu_g3d4k zTpt{B4RlNZ`rwLdSP4i5((^PLQI$bNQzHq)$07*qoM6N<$ Ef_U86!~g&Q literal 0 HcmV?d00001 diff --git a/graphics/battle_frontier/options.png b/graphics/battle_frontier/options.png new file mode 100755 index 0000000000000000000000000000000000000000..0d8cec998dc5dd3b8a49799de258ebc9dda6ecff GIT binary patch literal 576 zcmV-G0>Ax{L2IS2q5jSKtqF*3fW+PhBSs3&U!ez;l z-Z9}2_o zXR-fTLlmGGh93#UM6m3Rzybs;Y0R)x*B!vAgw=&GmOKUS(ZxDYAWT{8W3kiaSw5hZ znWzESY$tj^!gjikZ6h|1RbTa*A9DS#2eIijL=N(<|CWGH1k36O6oA8$#tcPTR{*CH zR^{AS^60on<+US6n6lW%VyDZqyrn|QEBq*R2A>fZU$4IKfM&c6X!*d z6J)Lg<}!hV)H^p!GgzmQZ^^Xf>jk)fy}tyj!(nz5W9Gq_N_3fecXM}h3EFa2lM9WJ z^7xmfrYl*tWh)t&^_oeG@3Q1iYp7uWF}P)L%{5SyfH4dNH%%4SZF#$HPCK5C```2t z|F8rX==fe!_77V}T=rPU5VINB+S(BD?gpCyrFa7BI0qIUa|UTj41wS$_TTmoMR0+N z?=@xrP}<|Nd+nXiW}viE&f{J6Dg#RK1ZY183LbL?X^MA_;3w+u_{SeyY>xDY!b?X0 O0000yx literal 0 HcmV?d00001 diff --git a/graphics/battle_frontier/options_pal1.pal b/graphics/battle_frontier/options_pal1.pal new file mode 100755 index 0000000000..eec4c7d71a --- /dev/null +++ b/graphics/battle_frontier/options_pal1.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +0 0 0 +255 172 65 +255 255 131 +222 213 180 +255 255 255 +230 222 222 +197 197 197 +213 57 49 +230 230 213 +255 246 205 +255 82 49 +164 24 0 +0 0 0 +106 106 106 +0 0 0 +0 0 0 +0 0 0 +90 172 131 +106 156 123 +123 222 139 +246 255 255 +0 0 0 +246 255 246 +0 0 0 +0 0 0 +0 0 0 +230 238 246 +222 255 238 +189 238 197 +123 123 123 +115 197 156 +0 0 0 +0 0 0 +197 205 230 +32 115 139 +255 255 255 +222 238 222 +0 0 0 +131 197 139 +0 0 0 +139 156 197 +115 139 189 +0 90 82 +106 164 139 +57 115 90 +189 222 197 +0 0 0 +0 0 0 +0 0 0 +205 205 246 +230 238 230 +213 213 255 +156 156 222 +238 238 255 +189 189 238 +230 230 255 +222 222 255 +197 197 246 +189 189 238 +180 180 230 +172 172 230 +164 164 222 +156 156 222 +0 0 0 +0 0 0 +131 148 180 +213 230 246 +189 189 222 +90 98 115 +230 238 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +197 238 222 +255 205 205 +205 222 255 +222 255 255 +246 230 164 +0 0 0 +189 246 180 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +0 0 0 +0 255 0 +164 180 180 +255 74 0 +246 255 246 +246 255 255 +0 0 0 +246 255 246 +0 0 0 +0 0 0 +0 0 0 +230 238 246 +0 0 0 +189 238 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 213 106 +255 74 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +246 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_frontier/options_pal2.pal b/graphics/battle_frontier/options_pal2.pal new file mode 100755 index 0000000000..4a7c1f786e --- /dev/null +++ b/graphics/battle_frontier/options_pal2.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +230 230 213 +246 246 246 +0 0 0 +255 74 74 +197 197 197 +106 123 123 +0 0 0 +0 0 0 +189 189 197 +0 0 0 +0 0 0 +238 238 246 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +230 230 213 +180 246 205 +131 197 172 +0 0 0 +246 246 246 +82 123 74 +148 213 189 +222 246 222 +90 156 131 +115 180 156 +255 123 98 +189 65 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +230 230 213 +230 172 90 +123 82 57 +255 213 156 +0 0 0 +189 131 49 +197 197 246 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +131 131 131 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_frontier/options_pal3.pal b/graphics/battle_frontier/options_pal3.pal new file mode 100755 index 0000000000..912d5e9ec5 --- /dev/null +++ b/graphics/battle_frontier/options_pal3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +246 230 189 +0 0 0 +246 230 180 +255 255 230 +0 0 0 +0 0 0 +246 230 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +0 0 0 diff --git a/graphics/battle_frontier/pyramid_light.pal b/graphics/battle_frontier/pyramid_light.pal new file mode 100755 index 0000000000..d2492ce34d --- /dev/null +++ b/graphics/battle_frontier/pyramid_light.pal @@ -0,0 +1,115 @@ +JASC-PAL +0100 +112 +57 0 8 +82 82 106 +82 238 246 +41 156 246 +0 74 255 +49 49 98 +90 82 123 +106 98 139 +123 123 156 +139 148 172 +164 172 197 +255 156 0 +156 115 57 +65 82 115 +255 8 0 +255 230 0 +57 0 8 +82 82 106 +82 238 246 +41 156 246 +0 74 255 +57 57 98 +90 82 123 +115 106 131 +139 131 139 +180 172 148 +189 189 189 +255 156 0 +156 115 57 +65 82 115 +255 8 0 +255 230 0 +57 0 8 +82 82 106 +82 238 246 +41 156 246 +0 74 255 +65 65 106 +90 82 123 +123 115 123 +164 148 131 +222 205 131 +222 205 180 +255 156 0 +156 115 57 +65 82 115 +255 8 0 +255 230 0 +57 0 8 +82 82 106 +82 238 246 +41 156 246 +0 74 255 +74 82 115 +90 82 123 +139 123 123 +189 172 123 +246 222 123 +255 230 172 +255 156 0 +156 115 57 +65 82 115 +255 8 0 +255 230 0 +57 0 8 +82 82 106 +82 238 246 +41 156 246 +0 74 255 +82 90 123 +106 98 139 +156 148 139 +189 172 131 +246 230 139 +255 238 197 +255 156 0 +156 115 57 +65 82 115 +255 8 0 +255 230 0 +57 0 8 +82 82 106 +82 238 246 +41 156 246 +0 74 255 +90 98 131 +131 123 156 +180 172 156 +205 189 148 +246 238 172 +255 246 222 +255 156 0 +156 115 57 +65 82 115 +255 8 0 +255 230 0 +57 0 8 +82 82 106 +82 238 246 +41 156 246 +0 74 255 +106 115 139 +156 148 172 +205 197 172 +230 213 172 +255 246 205 +255 255 246 +255 156 0 +148 123 65 +65 82 115 +255 8 0 +255 230 0 diff --git a/graphics/battle_frontier/symbols.png b/graphics/battle_frontier/symbols.png new file mode 100755 index 0000000000000000000000000000000000000000..8e4c01e97bd7fa7c9fdb402a4354743ab9592f06 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!VDxI2ESSgqznRlLR|m<{~r_-CtzoX{W zt5<=-xIy!O1_sGmwX;AK3p`yMLo_BX?SIXCSb?WSb{1n&C#MeEiYGh?Ti@6R*FF1k zRvkCEJeRCdP~CcqVNKxdhNsQ5T6oR|>}<%o{I@#f_`Mgb7Kc}aUR8gc`A*5;P`1av z1MBj$*bQ}W?KixT$bLk-CNH;sU2VO}yIl`v*6rV^p!$*HNHfScp00i_>zopr0KZ6R A2mk;8 literal 0 HcmV?d00001 diff --git a/graphics/battle_frontier/text.pal b/graphics/battle_frontier/text.pal new file mode 100755 index 0000000000..574999b725 --- /dev/null +++ b/graphics/battle_frontier/text.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 0 0 +131 0 0 +255 164 98 +131 82 49 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +131 131 131 +74 74 74 +74 74 74 +255 255 255 +213 213 205 diff --git a/graphics/battle_frontier/text_pp.pal b/graphics/battle_frontier/text_pp.pal new file mode 100755 index 0000000000..8c2a274188 --- /dev/null +++ b/graphics/battle_frontier/text_pp.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 197 0 +255 246 139 +255 131 0 +255 238 115 +230 24 0 +246 222 156 +74 74 74 +222 222 222 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/battle_frontier/tourney_bg.png b/graphics/battle_frontier/tourney_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..f60dd49d36b72d70eca0d308df6a5fc256151522 GIT binary patch literal 983 zcmV;|11S87P)8nu5XS`+$dFAokfEKTdKJ)uYbHTs9wI>t4n!WxSvc?&GI{q>7|4=n zNFN~2&^waHFWIuFCXEZ|56F~k-jB!QhmI}^Pzl;sGWOj(FBuEJ@9ErMQ4gW&_Yz3IyOM7g+$@ z575j5WF7#QGdM1}0qEO&02mPfN?ve&Q*gB|l)5Pdlv-z;7w7QfnNm5D1VlU`YSbe&7v;-;Fb1KpgZ6dMPX1wc3Y7+~^vvJAB?SqwU6KZ3I99>2eI9 zw4ONt5K!nvQ(ZDr2*76oY?eKM5qf}#FOdg7dme1q0RVb|2IUnDKkn){M1Y4GZM5cXApUtizG0 zFbq4!+~lZM4Z4oTR0e2^WoSM*=o2VH2tQp*v*Ox?N*M?+7f`boRH@-f_n#-Rsb{>Uw$q^aEPOr;kJ zL0doU?Lr57v?~V3l02eT+?X~``vEkWbmkz<-O&C)5$U>L{uHOJl-5x|XXW+-0x0DP zLjX6GmoY#PK#m0@F;FUSVF+MCdzAtNWnQ`%0+=xWNCDP&O&9~?41h+0dNjT&x51S1!nRifc9lw0^s=e?f?P-G6V<&$UFcoM0=A3 zP#)j}fTJ&%(*cM>0689T+Xq~X1fUQgV|#&sQO0iuP%%LLYruU;xsmOG!coWrL@ua& zfCycHhb(~DKau2d%K#ubcPq1P`x0&_;{n0|Oc=}yGV8An+*DnLs0fg` zt-B1-rkmOC1)t=KX#kfdnkevmKspa{0JCPznl)>d)gK36zjZh7k&FNU002ovPDHLk FV1iNinUw$l literal 0 HcmV?d00001 diff --git a/graphics/battle_frontier/tourney_line.png b/graphics/battle_frontier/tourney_line.png new file mode 100755 index 0000000000000000000000000000000000000000..f543dd18eb7e0925a3ba958225cc06bbefeee885 GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLDIg8-ipS0MfWYSw=*AWaky@fN5C zDtzJT;uwt3ci3-0`%@PBzwt$=XUwR|(S$YXZFQ{{y&&{FOBH)A|xatIsS=kBKyG#ZJj;E`i%Q~loCIFUWYa##u literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_D83900.bin b/graphics/unknown/unknown_D83900.bin new file mode 100755 index 0000000000000000000000000000000000000000..7f3e36737ecff1b39fe6756499c7fe515262c270 GIT binary patch literal 2048 zcmeH{Id8&15QVWUge;mV=7(YKfPn{?+XN{`X^?XKfSh&i)H(Z{zbm_Io7fV~rVaWk zujcKWd1KolC#1@8DqQ9gm#9n?swRl)9m=J0DUTv1JmwJ>LkgVdJV^>vl!)^YjcKy1 z_mqB05knqupL^URi5sf(cCXf(}A| zOStR!Cp!q-b^J}?FFNp43Zi!lTJsC7oL~#v*ukz)8`|^B3HGp$0~|`Nt2Mt$?Fh#> z!70vgF0<6i-^2wjafNH#;1+kd*Ph?R10L~&XT0E5sP*^%hIf466JPjN3F_|O2&cBg w^mX?i>^^w^HTN%er`%QQ@&=v#*EowTHYkZatF8S0HtFxk|JRyz0{=OIA1dCp`2YX_ literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_D83B2C.bin b/graphics/unknown/unknown_D83B2C.bin new file mode 100755 index 0000000000000000000000000000000000000000..34175237e6bd4f26ac1a138ec79e0f2e798430c8 GIT binary patch literal 2048 zcmeH|u?+wq48!1q_S+6U9{B+83_;2mIT9h%^pvW$*L65^$949u3%j$)0jQzcYyuK{$&5X1ONX&54_arPyhe` literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_D83C3C.bin b/graphics/unknown/unknown_D83C3C.bin new file mode 100755 index 0000000000000000000000000000000000000000..acf7cf6ad522b8f8ff5fbce35e47ce75db230395 GIT binary patch literal 2048 zcmeH|F%AGA3NA5gsO1E@TBO;99WiMNM>E%8QL z;x|w~f%@T`?RIA`ZK(?+6`B5$&PjLvd(N5e&YT%wwVx>VzzE1*M9KDh00(ghhfxuL zBN$Zr<2Zqn7zv=Rz$ushA}--FuHb3_uA$ZrAB;Zqk;H7X^kV>9B{fu&Z3n2|b=B&_ zD*k3{^D&H2mIy^Gi-yVHr&;N{5%w{J&5{r-y|ihF{C&EWzAfj?@@amzQVUwpiWtR| z?Oe62wq^8Ik2>0iIO_85{x^Cv{w+9)W7wU`C5V43{#`hYGuSUPF>{gnu=^gR;}0QL z8}n$2=?RsnLN%(XiYkdHWRHJsMCz^o!r#a7--CKIpb<@IqDE?-~7i7xDvbWtbuQm_0aA8(&_r60tm

wP>b!r0=zzeE00`_5Xeam)pAX1=o)C`y2EXv|lJAz_o;b&jew5uj=cjzVBoB+~-}4<# za*9(TDPHlogE7vp`D~6iK7E4cI3dh9vU($Bq~gi=2VV5>mOmEMr#Zt*oDpex2UBl* zv0G0ZGNK>s^`AB}#*&eVr{i9|oyR99i>&pNfBEA#=8S|?`}DayzId`&`aq_pHgO#>={g*4cUjOsfdA Date: Mon, 25 Dec 2017 22:00:56 -0500 Subject: [PATCH 36/54] eleventh wave of graphics.s dumps --- asm/battle_anim_80FE840.s | 16 +- asm/contest.s | 2 +- asm/intro.s | 58 +-- data/graphics.s | 415 +++++++++++++++--- data/smokescreen.s | 2 +- graphics/battle_anims/backgrounds/02.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/02.png | Bin 0 -> 2426 bytes graphics/battle_anims/backgrounds/15.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/15.png | Bin 0 -> 1859 bytes graphics/battle_anims/backgrounds/16.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/16.png | Bin 0 -> 634 bytes graphics/battle_anims/backgrounds/17.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/17.png | Bin 0 -> 388 bytes graphics/battle_anims/backgrounds/24.pal | 19 + graphics/battle_anims/backgrounds/fog.bin | Bin 0 -> 2048 bytes .../backgrounds/sandstorm_brew.bin | Bin 0 -> 2048 bytes .../backgrounds/sandstorm_brew.png | Bin 0 -> 997 bytes .../backgrounds/scary_face_contest.bin | Bin 0 -> 2048 bytes .../backgrounds/scary_face_opponent.bin | Bin 0 -> 2048 bytes .../backgrounds/scary_face_player.bin | Bin 0 -> 2048 bytes graphics/battle_anims/backgrounds/water.png | Bin 0 -> 3793 bytes .../battle_anims/backgrounds/water_muddy.pal | 19 + .../battle_interface/enemy_mon_shadow.png | Bin 0 -> 154 bytes graphics/contest/applause.png | Bin 0 -> 291 bytes graphics/contest/applause_meter.png | Bin 0 -> 184 bytes graphics/contest/nextturn.png | Bin 0 -> 195 bytes graphics/contest/nextturn_numbers.png | Bin 0 -> 181 bytes graphics/contest/nextturn_random.png | Bin 0 -> 158 bytes graphics/intro/intro1_text.pal | 51 +++ graphics/intro/intro3.pal | 259 +++++++++++ graphics/intro/intro3_clouds.png | Bin 0 -> 1360 bytes graphics/intro/intro3_clouds1.bin | Bin 0 -> 4096 bytes graphics/intro/intro3_clouds2.bin | Bin 0 -> 4096 bytes graphics/intro/intro3_clouds2.png | Bin 0 -> 468 bytes graphics/intro/intro3_clouds3.bin | Bin 0 -> 2048 bytes graphics/intro/intro3_clouds4.bin | Bin 0 -> 2048 bytes graphics/intro/intro3_groudon.bin | Bin 0 -> 8192 bytes graphics/intro/intro3_groudon.png | Bin 0 -> 2166 bytes graphics/intro/intro3_kyogre.bin | Bin 0 -> 8192 bytes graphics/intro/intro3_kyogre.png | Bin 0 -> 1946 bytes graphics/intro/intro3_rayquaza.bin | Bin 0 -> 2048 bytes graphics/intro/intro3_rayquaza.png | Bin 0 -> 1138 bytes graphics/intro/legend_bg.png | Bin 0 -> 474 bytes graphics/intro/legend_bg1.bin | Bin 0 -> 2048 bytes graphics/intro/legend_bg2.bin | 1 + graphics/unknown/unknown_D8C374.bin | Bin 0 -> 2048 bytes graphics/unknown/unknown_D8C5C4.bin | Bin 0 -> 2048 bytes graphics/unknown/unknown_E6BC04.bin | Bin 0 -> 1280 bytes 48 files changed, 731 insertions(+), 111 deletions(-) create mode 100755 graphics/battle_anims/backgrounds/02.bin create mode 100755 graphics/battle_anims/backgrounds/02.png create mode 100755 graphics/battle_anims/backgrounds/15.bin create mode 100755 graphics/battle_anims/backgrounds/15.png create mode 100755 graphics/battle_anims/backgrounds/16.bin create mode 100755 graphics/battle_anims/backgrounds/16.png create mode 100755 graphics/battle_anims/backgrounds/17.bin create mode 100755 graphics/battle_anims/backgrounds/17.png create mode 100755 graphics/battle_anims/backgrounds/24.pal create mode 100755 graphics/battle_anims/backgrounds/fog.bin create mode 100755 graphics/battle_anims/backgrounds/sandstorm_brew.bin create mode 100755 graphics/battle_anims/backgrounds/sandstorm_brew.png create mode 100755 graphics/battle_anims/backgrounds/scary_face_contest.bin create mode 100755 graphics/battle_anims/backgrounds/scary_face_opponent.bin create mode 100755 graphics/battle_anims/backgrounds/scary_face_player.bin create mode 100755 graphics/battle_anims/backgrounds/water.png create mode 100755 graphics/battle_anims/backgrounds/water_muddy.pal create mode 100755 graphics/battle_interface/enemy_mon_shadow.png create mode 100755 graphics/contest/applause.png create mode 100755 graphics/contest/applause_meter.png create mode 100755 graphics/contest/nextturn.png create mode 100755 graphics/contest/nextturn_numbers.png create mode 100755 graphics/contest/nextturn_random.png create mode 100755 graphics/intro/intro1_text.pal create mode 100755 graphics/intro/intro3.pal create mode 100755 graphics/intro/intro3_clouds.png create mode 100755 graphics/intro/intro3_clouds1.bin create mode 100755 graphics/intro/intro3_clouds2.bin create mode 100755 graphics/intro/intro3_clouds2.png create mode 100755 graphics/intro/intro3_clouds3.bin create mode 100755 graphics/intro/intro3_clouds4.bin create mode 100755 graphics/intro/intro3_groudon.bin create mode 100755 graphics/intro/intro3_groudon.png create mode 100755 graphics/intro/intro3_kyogre.bin create mode 100755 graphics/intro/intro3_kyogre.png create mode 100755 graphics/intro/intro3_rayquaza.bin create mode 100755 graphics/intro/intro3_rayquaza.png create mode 100755 graphics/intro/legend_bg.png create mode 100755 graphics/intro/legend_bg1.bin create mode 100755 graphics/intro/legend_bg2.bin create mode 100755 graphics/unknown/unknown_D8C374.bin create mode 100755 graphics/unknown/unknown_D8C5C4.bin create mode 100755 graphics/unknown/unknown_E6BC04.bin diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index cd365d7af8..1055c8944e 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -15557,7 +15557,7 @@ _0810653A: lsls r0, 24 cmp r0, 0 beq _08106578 - ldr r1, =gUnknown_08D93960 + ldr r1, =gBattleAnimBackgroundTilemap_ScaryFaceContest b _0810658A .pool _08106578: @@ -15568,7 +15568,7 @@ _08106578: lsrs r0, 24 cmp r0, 0x1 bne _0810659C - ldr r1, =gUnknown_08D93598 + ldr r1, =gBattleAnimBackgroundTilemap_ScaryFacePlayer _0810658A: mov r0, sp movs r2, 0 @@ -15576,7 +15576,7 @@ _0810658A: b _081065A6 .pool _0810659C: - ldr r1, =gUnknown_08D9377C + ldr r1, =gBattleAnimBackgroundTilemap_ScaryFaceOpponent mov r0, sp movs r2, 0 bl sub_80A6D60 @@ -18097,7 +18097,7 @@ _081079E0: _081079EA: mov r0, sp ldrb r0, [r0, 0x9] - ldr r1, =gUnknown_08D94AB8 + ldr r1, =gBattleAnimBackgroundImage_Surf mov r2, sp ldrh r2, [r2, 0xA] bl sub_80A6CC0 @@ -18106,7 +18106,7 @@ _081079EA: ldrsh r0, [r0, r1] cmp r0, 0 bne _08107A24 - ldr r0, =gUnknown_08D95DD8 + ldr r0, =gBattleAnimBackgroundPalette_Surf mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 @@ -18115,7 +18115,7 @@ _081079EA: b _08107A32 .pool _08107A24: - ldr r0, =gUnknown_08D8FB9C + ldr r0, =gBattleAnimBackgroundImageMuddyWater_Pal mov r1, sp ldrb r1, [r1, 0x8] lsls r1, 4 @@ -26969,7 +26969,7 @@ _0810C0E2: mov r3, sp ldrh r3, [r3, 0xA] bl LoadBgTiles - ldr r1, =gUnknown_08D932E0 + ldr r1, =gBattleAnimFogTilemap mov r0, sp movs r2, 0 bl sub_80A6D60 @@ -27251,7 +27251,7 @@ _0810C366: mov r3, sp ldrh r3, [r3, 0xA] bl LoadBgTiles - ldr r1, =gUnknown_08D932E0 + ldr r1, =gBattleAnimFogTilemap mov r0, sp movs r2, 0 bl sub_80A6D60 diff --git a/asm/contest.s b/asm/contest.s index 1eb0834dfa..a07e57b89d 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -11731,7 +11731,7 @@ _080DD956: ldr r1, [r0] movs r0, 0x13 ldrsb r0, [r1, r0] - ldr r4, =gUnknown_08D8EC24 + ldr r4, =gContestApplauseMeterGfx cmp r5, r0 bge _080DD966 adds r4, 0x40 diff --git a/asm/intro.s b/asm/intro.s index 32b52ed06e..d9f6e558ff 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -1945,24 +1945,24 @@ task_intro_13: @ 816DD28 ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] - ldr r0, =gUnknown_08D88494 + ldr r0, =gIntro3GroudonGfx movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram - ldr r0, =gUnknown_08D88D40 + ldr r0, =gIntro3GroudonTilemap ldr r1, =0x0600c000 bl LZDecompressVram - ldr r0, =gUnknown_08D89F7C + ldr r0, =gIntro3LegendBgGfx ldr r1, =0x06004000 bl LZDecompressVram - ldr r0, =gUnknown_08D8A818 + ldr r0, =gIntro3GroudonBgTilemap ldr r1, =0x0600e000 bl LZDecompressVram ldr r0, =gBattleAnimPicTable + 0x1D0 bl LoadCompressedObjectPicUsingHeap ldr r0, =gBattleAnimPaletteTable + 0x1D0 bl LoadCompressedObjectPaletteUsingHeap - ldr r0, =gUnknown_08D85CD0 + ldr r0, =gIntro3BgPal ldr r1, =gPlttBufferUnfaded movs r2, 0x80 lsls r2, 1 @@ -2229,7 +2229,7 @@ _0816DFF4: strh r0, [r4, 0xC] movs r1, 0xE ldrsh r0, [r4, r1] - ldr r1, =gUnknown_08D85CD0 + ldr r1, =gIntro3BgPal adds r0, r1 ldr r1, =gPlttBufferFaded + 0x3E movs r2, 0x1 @@ -2271,7 +2271,7 @@ _0816E046: strh r0, [r4, 0xC] movs r2, 0xE ldrsh r0, [r4, r2] - ldr r1, =gUnknown_08D85CD0 + ldr r1, =gIntro3BgPal adds r0, r1 ldr r1, =gPlttBufferFaded + 0x3E movs r2, 0x1 @@ -2571,14 +2571,14 @@ task_intro_19: @ 816E2A0 lsls r4, 24 lsrs r4, 24 bl ResetSpriteData - ldr r0, =gUnknown_08D89224 + ldr r0, =gIntro3KyogreGfx movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram - ldr r0, =gUnknown_08D89ABC + ldr r0, =gIntro3KyogreTilemap ldr r1, =0x0600c000 bl LZDecompressVram - ldr r0, =gUnknown_08D8A934 + ldr r0, =gIntro3KyogreBgTilemap ldr r1, =0x0600e000 bl LZDecompressVram ldr r0, =gUnknown_085E4C88 @@ -2888,7 +2888,7 @@ _0816E56E: strh r0, [r5, 0xC] movs r2, 0xE ldrsh r0, [r5, r2] - ldr r1, =gUnknown_08D85CD0 + ldr r1, =gIntro3BgPal adds r0, r1 ldr r1, =gPlttBufferFaded + 0x5E movs r2, 0x1 @@ -2932,7 +2932,7 @@ _0816E5BC: strh r0, [r5, 0xC] movs r2, 0xE ldrsh r0, [r5, r2] - ldr r1, =gUnknown_08D85CD0 + ldr r1, =gIntro3BgPal adds r0, r1 ldr r1, =gPlttBufferFaded + 0x5E movs r2, 0x1 @@ -3319,7 +3319,7 @@ task_intro_21: @ 816E888 movs r0, 0x1A movs r1, 0 bl SetGpuReg - ldr r4, =gUnknown_08D8AA54 + ldr r4, =gIntro3CloudsGfx movs r1, 0xC0 lsls r1, 19 adds r0, r4, 0 @@ -3327,7 +3327,7 @@ task_intro_21: @ 816E888 ldr r1, =0x06004000 adds r0, r4, 0 bl LZDecompressVram - ldr r0, =gUnknown_08D8B6E8 + ldr r0, =gIntro3Clouds3Tilemap ldr r1, =0x0600e000 bl LZDecompressVram ldr r1, =gTasks @@ -3349,10 +3349,10 @@ task_intro_22: @ 816E954 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_08D8B180 + ldr r0, =gIntro3Clouds1Tilemap ldr r1, =0x0600c000 bl LZDecompressVram - ldr r0, =gUnknown_08D8B440 + ldr r0, =gIntro3Clouds2Tilemap ldr r1, =0x0600d000 bl LZDecompressVram ldr r1, =gTasks @@ -3509,16 +3509,16 @@ task_intro_25: @ 816EAB8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_08D8C16C + ldr r0, =gIntro3RayquazaTilemap ldr r1, =0x0600e000 bl LZDecompressVram - ldr r0, =gUnknown_08D8CCC8 + ldr r0, =gIntro3Clouds4Tilemap ldr r1, =0x0600c000 bl LZDecompressVram - ldr r0, =gUnknown_08D8BA74 + ldr r0, =gIntro3RayquazaGfx ldr r1, =0x06004000 bl LZDecompressVram - ldr r0, =gUnknown_08D8C838 + ldr r0, =gIntro3Clouds2Gfx movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram @@ -3725,7 +3725,7 @@ _0816ECA0: _0816ECAC: movs r1, 0x30 ldrsh r0, [r4, r1] - ldr r1, =gUnknown_08D85CD0 + ldr r1, =gIntro3BgPal adds r0, r1 ldr r1, =gPlttBufferFaded + 0xBA movs r2, 0x1 @@ -3757,7 +3757,7 @@ _0816ECDC: strh r0, [r4, 0x32] movs r1, 0x30 ldrsh r0, [r4, r1] - ldr r1, =gUnknown_08D85CD0 + ldr r1, =gIntro3BgPal adds r0, r1 ldr r1, =gPlttBufferFaded + 0xBA movs r2, 0x1 @@ -4007,7 +4007,7 @@ _0816EEF4: movs r2, 0x2 ldrsh r0, [r5, r2] lsls r0, 1 - ldr r1, =gUnknown_08D85E72 + ldr r1, =gIntro3BgPal + 0x1A2 adds r0, r1 ldr r1, =gPlttBufferFaded + 0xBC movs r2, 0x1 @@ -4043,7 +4043,7 @@ _0816EF34: movs r1, 0x2 ldrsh r0, [r5, r1] lsls r0, 1 - ldr r1, =gUnknown_08D85E72 + ldr r1, =gIntro3BgPal + 0x1A2 adds r0, r1 ldr r1, =gPlttBufferFaded + 0xB0 movs r2, 0x1 @@ -4080,7 +4080,7 @@ _0816EF80: movs r1, 0x2 ldrsh r0, [r5, r1] lsls r0, 1 - ldr r1, =gUnknown_08D85E52 + ldr r1, =gIntro3BgPal + 0x182 adds r0, r1 ldr r1, =gPlttBufferFaded + 0xB8 movs r2, 0x1 @@ -4148,7 +4148,7 @@ _0816F00A: movs r0, 0x50 movs r1, 0x10 bl BlendPalette - ldr r4, =gUnknown_08D85E7C + ldr r4, =gIntro3BgPal + 0x1AC ldr r5, =gPlttBufferFaded + 0xBC adds r0, r4, 0 adds r1, r5, 0 @@ -5617,7 +5617,7 @@ _0816FBB4: cmp r0, 0 beq _0816FC14 lsls r0, 1 - ldr r4, =gUnknown_08D85C50 + ldr r4, =gIntro1GameFreakTextFadePal adds r0, r4 ldr r5, =gPlttBufferFaded + 0x23E adds r1, r5, 0 @@ -5651,7 +5651,7 @@ _0816FC14: movs r1, 0x30 ldrsh r0, [r6, r1] lsls r0, 1 - ldr r4, =gUnknown_08D85C50 + ldr r4, =gIntro1GameFreakTextFadePal adds r0, r4 ldr r5, =gPlttBufferFaded + 0x23E adds r1, r5, 0 @@ -5696,7 +5696,7 @@ _0816FC6C: cmp r0, 0x9 bgt _0816FCE6 lsls r0, 1 - ldr r4, =gUnknown_08D85C50 + ldr r4, =gIntro1GameFreakTextFadePal adds r0, r4 ldr r5, =gPlttBufferFaded + 0x23E adds r1, r5, 0 diff --git a/data/graphics.s b/data/graphics.s index cd84bd242b..7327681582 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -2924,25 +2924,17 @@ gUnknown_08D857A8:: @ 8D857A8 gUnknown_08D85A1C:: @ 8D85A1C .incbin "graphics/battle_frontier/battle_tilemap2.bin.lz" -gUnknown_08D85C50:: @ 8D85C50 - .incbin "baserom.gba", 0xd85c50, 0x60 + .align 2 +gIntro1GameFreakTextFadePal:: @ 8D85C50 + .incbin "graphics/intro/intro1_text.gbapal" @ game freak text blue fade .align 2 gIntro2BrendanNoTurnPal:: @ 8D85CB0 .incbin "graphics/intro/intro2_brendan_noturn.gbapal" .align 2 -gUnknown_08D85CD0:: @ 8D85CD0 - .incbin "baserom.gba", 0xd85cd0, 0x182 - -gUnknown_08D85E52:: @ 8D85E52 - .incbin "baserom.gba", 0xd85e52, 0x20 - -gUnknown_08D85E72:: @ 8D85E72 - .incbin "baserom.gba", 0xd85e72, 0xa - -gUnknown_08D85E7C:: @ 8D85E7C - .incbin "baserom.gba", 0xd85e7c, 0x54 +gIntro3BgPal:: @ 8D85CD0 + .incbin "graphics/intro/intro3.gbapal" .align 2 gIntro2VolbeatPal:: @ 8D85ED0 @@ -2985,38 +2977,48 @@ gIntro2MayNoTurnGfx:: @ 8D87CA4 .incbin "graphics/intro/intro2_may_noturn.4bpp.lz" .align 2 -gUnknown_08D88494:: @ 8D88494 - .incbin "baserom.gba", 0xd88494, 0x8ac +gIntro3GroudonGfx:: @ 8D88494 + .incbin "graphics/intro/intro3_groudon.8bpp.lz" -gUnknown_08D88D40:: @ 8D88D40 - .incbin "baserom.gba", 0xd88d40, 0x4e4 + .align 2 +gIntro3GroudonTilemap:: @ 8D88D40 + .incbin "graphics/intro/intro3_groudon.bin.lz" -gUnknown_08D89224:: @ 8D89224 - .incbin "baserom.gba", 0xd89224, 0x898 + .align 2 +gIntro3KyogreGfx:: @ 8D89224 + .incbin "graphics/intro/intro3_kyogre.8bpp.lz" -gUnknown_08D89ABC:: @ 8D89ABC - .incbin "baserom.gba", 0xd89abc, 0x4c0 + .align 2 +gIntro3KyogreTilemap:: @ 8D89ABC + .incbin "graphics/intro/intro3_kyogre.bin.lz" -gUnknown_08D89F7C:: @ 8D89F7C - .incbin "baserom.gba", 0xd89f7c, 0x89c + .align 2 +gIntro3LegendBgGfx:: @ 8D89F7C + .incbin "graphics/intro/legend_bg.4bpp.lz" @ groudon/kyogre/bg -gUnknown_08D8A818:: @ 8D8A818 - .incbin "baserom.gba", 0xd8a818, 0x11c + .align 2 +gIntro3GroudonBgTilemap:: @ 8D8A818 + .incbin "graphics/intro/legend_bg1.bin.lz" -gUnknown_08D8A934:: @ 8D8A934 - .incbin "baserom.gba", 0xd8a934, 0x120 + .align 2 +gIntro3KyogreBgTilemap:: @ 8D8A934 + .incbin "graphics/intro/legend_bg2.bin.lz" -gUnknown_08D8AA54:: @ 8D8AA54 - .incbin "baserom.gba", 0xd8aa54, 0x72c + .align 2 +gIntro3CloudsGfx:: @ 8D8AA54 + .incbin "graphics/intro/intro3_clouds.4bpp.lz" -gUnknown_08D8B180:: @ 8D8B180 - .incbin "baserom.gba", 0xd8b180, 0x2c0 + .align 2 +gIntro3Clouds1Tilemap:: @ 8D8B180 + .incbin "graphics/intro/intro3_clouds1.bin.lz" -gUnknown_08D8B440:: @ 8D8B440 - .incbin "baserom.gba", 0xd8b440, 0x2a8 + .align 2 +gIntro3Clouds2Tilemap:: @ 8D8B440 + .incbin "graphics/intro/intro3_clouds2.bin.lz" -gUnknown_08D8B6E8:: @ 8D8B6E8 - .incbin "baserom.gba", 0xd8b6e8, 0x124 + .align 2 +gIntro3Clouds3Tilemap:: @ 8D8B6E8 + .incbin "graphics/intro/intro3_clouds3.bin.lz" .align 2 gIntro3LightningGfx:: @ 8D8B80C @@ -3027,17 +3029,27 @@ gIntro3LightningPal:: @ 8D8BA54 .incbin "graphics/intro/intro3_lightning.gbapal" .align 2 -gUnknown_08D8BA74:: @ 8D8BA74 - .incbin "baserom.gba", 0xd8ba74, 0x6f8 +gIntro3RayquazaGfx:: @ 8D8BA74 + .incbin "graphics/intro/intro3_rayquaza.4bpp.lz" -gUnknown_08D8C16C:: @ 8D8C16C - .incbin "baserom.gba", 0xd8c16c, 0x6cc + .align 2 +gIntro3RayquazaTilemap:: @ 8D8C16C + .incbin "graphics/intro/intro3_rayquaza.bin.lz" -gUnknown_08D8C838:: @ 8D8C838 - .incbin "baserom.gba", 0xd8c838, 0x490 + @ seems to be 2 unused tilemaps + .align 2 + .incbin "graphics/unknown/unknown_D8C374.bin.lz" -gUnknown_08D8CCC8:: @ 8D8CCC8 - .incbin "baserom.gba", 0xd8ccc8, 0x27c + .align 2 + .incbin "graphics/unknown/unknown_D8C5C4.bin.lz" + + .align 2 +gIntro3Clouds2Gfx:: @ 8D8C838 + .incbin "graphics/intro/intro3_clouds2.4bpp.lz" @ clouds 2, during the rayquaza flash + + .align 2 +gIntro3Clouds4Tilemap:: @ 8D8CCC8 + .incbin "graphics/intro/intro3_clouds4.bin.lz" @ this is the tilemap for clouds 2, but clouds .align 2 gIntro2BubblesGfx:: @ 8D8CF44 @@ -3056,31 +3068,156 @@ gIntro1SparkleGfx:: @ 8D8D208 .incbin "graphics/intro/intro1_sparkle.4bpp.lz" .align 2 - .incbin "baserom.gba", 0xd8d2a4, 0x16c +gBattleAnimSpriteSheet_261:: + .incbin "graphics/battle_anims/sprites/261.4bpp.lz" + .align 2 gUnknown_08D8D410:: @ 8D8D410 - .incbin "baserom.gba", 0xd8d410, 0x17c + .incbin "graphics/battle_anims/backgrounds/sandstorm_brew.bin.lz" + .align 2 gUnknown_08D8D58C:: @ 8D8D58C - .incbin "baserom.gba", 0xd8d58c, 0x52c + .incbin "graphics/battle_anims/backgrounds/sandstorm_brew.4bpp.lz" -gUnknown_08D8DAB8:: @ 8D8DAB8 - .incbin "baserom.gba", 0xd8dab8, 0xefc + .align 2 +gUnknown_08D8DAB8:: @ 8E68580 + .incbin "graphics/battle_anims/sprites/261.gbapal.lz" + .align 2 +gBattleAnimSpriteSheet_260:: @ 8E685A8 + .incbin "graphics/battle_anims/sprites/260.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_260:: @ 8E68764 + .incbin "graphics/battle_anims/sprites/260.gbapal.lz" + + .align 2 +gBattleAnimBackgroundImage_15:: @ 8E6877C + .incbin "graphics/battle_anims/backgrounds/15.4bpp.lz" + + .align 2 +gBattleAnimBackgroundPalette_15:: @ 8E690EC + .incbin "graphics/battle_anims/backgrounds/15.gbapal.lz" + + .align 2 +gBattleAnimBackgroundTilemap_15:: @ 8E69110 + .incbin "graphics/battle_anims/backgrounds/15.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_262:: @ 8E69308 + .incbin "graphics/battle_anims/sprites/262.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_262:: @ 8E693DC + .incbin "graphics/battle_anims/sprites/262.gbapal.lz" + + .align 2 +gContestNextTurnGfx:: + .incbin "graphics/contest/nextturn.4bpp.lz" + + .align 2 gUnknown_08D8E9B4:: @ 8D8E9B4 - .incbin "baserom.gba", 0xd8e9b4, 0x80 + .incbin "graphics/contest/nextturn_numbers.4bpp" + .align 2 gUnknown_08D8EA34:: @ 8D8EA34 - .incbin "baserom.gba", 0xd8ea34, 0x1f0 + .incbin "graphics/contest/nextturn_random.4bpp" -gUnknown_08D8EC24:: @ 8D8EC24 - .incbin "baserom.gba", 0xd8ec24, 0xf78 + .align 2 +gBattleAnimSpriteSheet_264:: @ 8E695B8 + .incbin "graphics/battle_anims/sprites/264.4bpp.lz" -gUnknown_08D8FB9C:: @ 8D8FB9C - .incbin "baserom.gba", 0xd8fb9c, 0x24 + .align 2 +gBattleAnimSpritePalette_264:: @ 8E695D8 + .incbin "graphics/battle_anims/sprites/264.gbapal.lz" -gUnknown_08D8FBC0:: @ 8D8FBC0 - .incbin "baserom.gba", 0xd8fbc0, 0x30 + .align 2 +gBattleAnimSpritePalette_265:: @ 8E695F0 + .incbin "graphics/battle_anims/sprites/265.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_067:: @ 8E69608 + .incbin "graphics/battle_anims/sprites/067.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_068:: @ 8E69628 + .incbin "graphics/battle_anims/sprites/068.gbapal.lz" + + .align 2 +gContestApplauseGfx:: @ 8D8EAE4 + .incbin "graphics/contest/applause.4bpp.lz" + + .align 2 +gContestApplauseMeterGfx:: @ 8D8EC24 + .incbin "graphics/contest/applause_meter.4bpp" + + .align 2 +gContestPal:: @ 8D8ECA4 + .incbin "graphics/contest/nextturn.gbapal" + + .align 2 +gBattleAnimSpriteSheet_272:: @ 8E6982C + .incbin "graphics/battle_anims/sprites/272.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_272:: @ 8E69A48 + .incbin "graphics/battle_anims/sprites/272.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_273:: @ 8E69A6C + .incbin "graphics/battle_anims/sprites/273.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_269:: @ 8E69A94 + .incbin "graphics/battle_anims/sprites/269.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_269:: @ 8E69AE8 + .incbin "graphics/battle_anims/sprites/269.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_274:: @ 8E69B00 + .incbin "graphics/battle_anims/sprites/274.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_275:: @ 8E69C80 + .incbin "graphics/battle_anims/sprites/275.4bpp.lz" + + .align 2 +gBattleAnimSpriteSheet_276:: @ 8E69DEC + .incbin "graphics/battle_anims/sprites/276.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_274:: @ 8E69F54 + .incbin "graphics/battle_anims/sprites/274.gbapal.lz" + + .align 2 +gBattleAnimBackgroundImage_17:: @ 8E69F7C + .incbin "graphics/battle_anims/backgrounds/17.4bpp.lz" + + .align 2 +gBattleAnimBackgroundPalette_17:: @ 8E6A0D8 + .incbin "graphics/battle_anims/backgrounds/17.gbapal.lz" + + .align 2 +gBattleAnimBackgroundTilemap_17:: @ 8E6A100 + .incbin "graphics/battle_anims/backgrounds/17.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_280:: @ 8E6A2E8 + .incbin "graphics/battle_anims/sprites/280.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_280:: @ 8E6A6E4 + .incbin "graphics/battle_anims/sprites/280.gbapal.lz" + + .align 2 +gBattleAnimBackgroundImageMuddyWater_Pal:: @ 8D8FB9C + .incbin "graphics/battle_anims/backgrounds/water_muddy.gbapal.lz" + + .align 2 +gEnemyMonShadow_Gfx:: @ 8D8FBC0 + .incbin "graphics/battle_interface/enemy_mon_shadow.4bpp.lz" .align 2 gBattleInterface_BallStatusBarGfx:: @ 8D8FBF0 @@ -3090,34 +3227,168 @@ gBattleInterface_BallStatusBarGfx:: @ 8D8FBF0 gMonIcon_Egg:: @ 8D8FC74 .incbin "graphics/pokemon/icons/egg_icon.4bpp" - .incbin "baserom.gba", 0xd90074, 0x1524 + .align 2 +gBattleAnimBackgroundImage_02:: @ 8E6ABDC + .incbin "graphics/battle_anims/backgrounds/02.4bpp.lz" + .align 2 +gBattleAnimBackgroundPalette_02:: @ 8E6B8A4 + .incbin "graphics/battle_anims/backgrounds/02.gbapal.lz" + + .align 2 +gBattleAnimBackgroundTilemap_02:: @ 8E6B8C0 + .incbin "graphics/battle_anims/backgrounds/02.bin.lz" + + .align 2 +gBattleAnimSpritePalette_287:: @ 8E6BBB4 + .incbin "graphics/battle_anims/sprites/287.gbapal.lz" + + .align 2 +gBattleAnimBackgroundPalette_24:: @ 8E6BBDC + .incbin "graphics/battle_anims/backgrounds/24.gbapal.lz" + + .align 2 + .incbin "graphics/unknown/unknown_E6BC04.bin.lz" @ TODO: rename + + .align 2 sBlenderCenterGfx:: @ 8D91598 - .incbin "baserom.gba", 0xd91598, 0x820 + .incbin "graphics/berry_blender/center.8bpp.lz" + .align 2 gUnknown_08D91DB8:: @ 8D91DB8 - .incbin "baserom.gba", 0xd91db8, 0xa34 + .incbin "graphics/berry_blender/outer.4bpp.lz" + .align 2 gUnknown_08D927EC:: @ 8D927EC - .incbin "baserom.gba", 0xd927ec, 0xaf4 + .incbin "graphics/berry_blender/outer_map.bin.lz" -gUnknown_08D932E0:: @ 8D932E0 - .incbin "baserom.gba", 0xd932e0, 0x2b8 + .align 2 +gBattleAnimBackgroundPalette_16:: @ 8E6D668 + .incbin "graphics/battle_anims/backgrounds/16.gbapal.lz" -gUnknown_08D93598:: @ 8D93598 - .incbin "baserom.gba", 0xd93598, 0x1e4 + .align 2 +gBattleAnimBackgroundImage_16:: @ 8E6D690 + .incbin "graphics/battle_anims/backgrounds/16.4bpp.lz" -gUnknown_08D9377C:: @ 8D9377C - .incbin "baserom.gba", 0xd9377c, 0x1e4 + .align 2 +gBattleAnimBackgroundTilemap_16:: @ 8E6D8F0 + .incbin "graphics/battle_anims/backgrounds/16.bin.lz" -gUnknown_08D93960:: @ 8D93960 - .incbin "baserom.gba", 0xd93960, 0x1158 + .align 2 +gBattleAnimSpritePalette_277:: @ 8E6DA2C + .incbin "graphics/battle_anims/sprites/277.gbapal.lz" -gUnknown_08D94AB8:: @ 8D94AB8 - .incbin "baserom.gba", 0xd94ab8, 0x1320 + .align 2 +gBattleAnimSpriteSheet_277:: @ 8E6DA54 + .incbin "graphics/battle_anims/sprites/277.4bpp.lz" -gUnknown_08D95DD8:: @ 8D95DD8 - .incbin "baserom.gba", 0xd95dd8, 0x28 + .align 2 +gBattleAnimFogTilemap:: @ 8E6DE48 + .incbin "graphics/battle_anims/backgrounds/fog.bin.lz" + + .align 2 +gBattleAnimSpritePalette_283:: @ 8E6DFC0 + .incbin "graphics/battle_anims/sprites/283.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_283:: @ 8E6DFDC + .incbin "graphics/battle_anims/sprites/283.4bpp.lz" + + .align 2 +gBattleAnimBackgroundTilemap_ScaryFacePlayer:: @ 8D93598 + .incbin "graphics/battle_anims/backgrounds/scary_face_player.bin.lz" + + .align 2 +gBattleAnimBackgroundTilemap_ScaryFaceOpponent:: @ 8D9377C + .incbin "graphics/battle_anims/backgrounds/scary_face_opponent.bin.lz" + + .align 2 +gBattleAnimBackgroundTilemap_ScaryFaceContest:: @ 8D93960 + .incbin "graphics/battle_anims/backgrounds/scary_face_contest.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_263:: @ 8E6E6AC + .incbin "graphics/battle_anims/sprites/263.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_263:: @ 8E6E6EC + .incbin "graphics/battle_anims/sprites/263.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_266:: @ 8E6E704 + .incbin "graphics/battle_anims/sprites/266.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_266:: @ 8E6E744 + .incbin "graphics/battle_anims/sprites/266.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_267:: @ 8E6E75C + .incbin "graphics/battle_anims/sprites/267.gbapal.lz" + + .align 2 +gBattleAnimSpritePalette_268:: @ 8E6E774 + .incbin "graphics/battle_anims/sprites/268.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_278:: @ 8E6E78C + .incbin "graphics/battle_anims/sprites/278.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_278:: @ 8E6E998 + .incbin "graphics/battle_anims/sprites/278.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_279:: @ 8E6E9B4 + .incbin "graphics/battle_anims/sprites/279.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_279:: @ 8E6EA00 + .incbin "graphics/battle_anims/sprites/279.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_281:: @ 8E6EA1C + .incbin "graphics/battle_anims/sprites/281.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_281:: @ 8E6EBA4 + .incbin "graphics/battle_anims/sprites/281.gbapal.lz" + + .align 2 +gBattleAnimBackgroundImage_21:: @ 8E6EBC4 + .incbin "graphics/battle_anims/backgrounds/21.4bpp.lz" + + .align 2 +gBattleAnimBackgroundPalette_21:: @ 8E6EEB8 + .incbin "graphics/battle_anims/backgrounds/21.gbapal.lz" + + .align 2 +gBattleAnimBackgroundTilemap_21:: @ 8E6EED4 + .incbin "graphics/battle_anims/backgrounds/21.bin.lz" + + .align 2 +gBattleAnimSpriteSheet_284:: @ 8E6F1C0 + .incbin "graphics/battle_anims/sprites/284.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_284:: @ 8E6F53C + .incbin "graphics/battle_anims/sprites/284.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_285:: @ 8E6F558 + .incbin "graphics/battle_anims/sprites/285.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_285:: @ 8E6F5F8 + .incbin "graphics/battle_anims/sprites/285.gbapal.lz" + + .align 2 +gBattleAnimBackgroundImage_Surf:: @ 8D94AB8 + .incbin "graphics/battle_anims/backgrounds/water.4bpp.lz" + + .align 2 +gBattleAnimBackgroundPalette_Surf:: @ 8D95DD8 + .incbin "graphics/battle_anims/backgrounds/water.gbapal.lz" gUnknown_08D95E00:: @ 8D95E00 .incbin "baserom.gba", 0xd95e00, 0x2d0 diff --git a/data/smokescreen.s b/data/smokescreen.s index 3e60284315..aeb8e685b8 100644 --- a/data/smokescreen.s +++ b/data/smokescreen.s @@ -53,7 +53,7 @@ gUnknown_0831C688:: @ 831C688 .align 2 gSpriteSheet_EnemyShadow:: @ 831C6A0 - obj_tiles gUnknown_08D8FBC0, 0x0080, 0xd759 + obj_tiles gEnemyMonShadow_Gfx, 0x0080, 0xd759 .align 2 gUnknown_0831C6A8:: @ 831C6A8 diff --git a/graphics/battle_anims/backgrounds/02.bin b/graphics/battle_anims/backgrounds/02.bin new file mode 100755 index 0000000000000000000000000000000000000000..fabe87b3f47fcf85b4622cb9981322813b37000f GIT binary patch literal 2048 zcmajeR|5zH7yv*dLMhq%$|gITtV9{fDkUqF$lj7IGuoL&rEFzIWtEZDut)Y@*(38O ze9!lM2_%%r0}^{s5=lKIndDM<*dtPURD!@Clgi^#OCzmx(#s&DOft(Nt8B81oF_af zhn#ZBEswnN$*+K?6jVrIkrz=^F~vQtgpx`rt&FnDDX)TOR1|q7l~qyIv#NPcbu~Qi z1vS-DTOBWoysnqjQ(prOHS)4oH1?|3H1WEonu)x*7Fv2kE3LKhrnj{9wszWkM+Y56 z-brU&bk$9FJ@nK|Z+-Oju72LrU*rP}G{|5>3^mOAh8tm|QAQi%17k%#&WAqou}^&J zGoSmycoR%C$z)S}De|vOHO<$)@vZ5;^Sv2nnq{^*=9(w+`F`-D1r}Olu_b=8)G|N& z#jloIA@Y@0S?xE!TVt(t*89T-8*Q@L7JrKTFMs>TR@-d1!%n;Gw#Q!k{A<4hB0uPm z!;U!WnBz`3>6FvXIP0AA{uB8H7hQ7M6<1wz-3>SW@0Q!{xa*$Cqu-H7zax)+M;`r- rJo+7Z^gHtCcjVFU$fMtpN53PFen%etjy(DudGtH-=y&AN@5t{1-K%~d literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/02.png b/graphics/battle_anims/backgrounds/02.png new file mode 100755 index 0000000000000000000000000000000000000000..c4519d909e6bef51547c0ad5c582072d7dfa78af GIT binary patch literal 2426 zcmV-=35E8FP)h1mha}l{Fn74A zDgX_cwhF=L!y=FdEJ0=omQwJx04G&o-*=lF2I-XR_1!+o~RE_WxHGmPw2KF}LCM-xRnh0C3fg6FnfPKW?POC|PN#z66 zpb^YLf@#)Y;_Xz`2&Mjw^oP@t~RH3bVIzTR;?n{Pc-`HZhPXl^j6D z=H={zEKqGp#msOA(t*zfF#!XJzfV|xRQHRjD5g5CYcK?N)AfV@lfTSC6*ZPjuv|PI z>&N4mRuj$+tJlDG{eTUKAVeE*rJWIl0m3%{d%c9=7Km{YVCzY6vdBOPy#_$Y^3P{? z6ouHJrf~w@bQ1k}2tZZ2%J0g_CF@Qw?0LGI>BOrjbJ_X^mKcmDuG@ytGSeE~O zwx=x=&cfQClCmv1M}mnXf&jeeEW{bH^C=lj#RT&o1Tts>CP2b=JtY+(&DeZGAPdtU z_xqg)+Bu-dq!K(k5&lQOGc_YDW$QBq)k*d!6LcCpG44vx4&(Eu4H5wa&%X$Y5|H>b z!-F*-BQ%2F_I#Qd+Dq?_U?D$nf*#<`ZqSV21Z9$UUgnHKP@@Ji!{hM~0y4sH8zcfW zc!GeG$aBLf@$y@G$3(!mxv!Yfg6EVzuia# z_5&v%4W6z6?**Jf3!LnEA(#p@_+<^0z_(-4Q;@CTM!11sAWtNMUm}>MY`a7NI)V|K z&j?ny|Q34<%B&`XlQNI^l1Z>9!@S(lHZt&Dl zMTvVtjS%Aj5X=|Z4(y50AkWHYFTD(q(_yxxv9mnDitN|e`5|j=lhycftq)O0pZ;(@o815Pp1VPRP z1SBio_C0aVD~^D(e;mhegac{2*A1whB7vqK*q5w=B5W~h4gf^J5uYQ%!a;`BFoZV; z#=6A?Wc z01z7)Gw(YDrl+PYITY|HTauNlrB<&Wf$(qy9T9*M7mWu6eGDz3W$WJ^0V4o#t+^)& zNUDG+i(~{Mz!XScw1XheK?G_7X*e78lvDgftrE$ z!%ZdNmrMaB;6N-0Xy2S4c7(Va_^5^(ZUKOE<=HA?_XJ5x5f=rZ_X2Hrs0Jw8<8DAg zBz>MG;AmLDg%~CStj8B(f+y2s^M>wQ7;DqSG4+UqJzyN{<0U^XB1(4VrcH&h7 zs9?=aD$$UV$#{2ecx=)==rounvjcZTG_V$q?gzAI3epiNVZ5DbMle6nkQ7@)t7QWY@VbP<_0mHL2uPkabA4Ks zWGBMr2wfj(@*JVBp4wz{k|@F*ChIE&gh9J0Jp!N38+5l!QQK&F{7wvbcpo~cJ}M8q|J&jstB6OsRn+@w0XLM14619x5MmrEV$@N>R7VcHDA&j&*%x? z8iWfADc7jOJcB~|eY#}U_!0f6E`5J9WAIb=(A&OVY5)KL07*qoM6N<$f{*YT?*IS* literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/15.bin b/graphics/battle_anims/backgrounds/15.bin new file mode 100755 index 0000000000000000000000000000000000000000..5b0aff44bb6e89435d27a47609fff9fb5a419e79 GIT binary patch literal 2048 zcmeIuS3eeD0LI}L;UtmB=Bn(yLn$ID$}D^Dk<~EMSN9p7=al>8|GQ4_ge1vQJd!F+ zx6LO7Dpd(}vlgw|wCm96wNUrz_rZWc9}W2=)Z->hnlkOX zA7+Gl)tYr1Hf`CqBh)8Oo%!XrKmIxw>REHEd(sLM852AHtMSPd4%c7x<@;PMea`ztBcWx#y){rGeV;CeJr#o)fS z8yKiZjJ+|wJHCDdQ2l;9Q5TE)wUn2P{R$uzszo2hcN~Dv8l5*2{Bp0gylnZu2+RRo z)n8A>_W}Fu_U$)a`$V-*cMoU9`(LPm1*#7lAb$IeYJHOOalB~IHgJ%O!XQ4K7@$9Y zxVgt9#PK(h{hE{#K>rsq7+lH8qA|YekH-LtOEu>t(f?SUP5{()W^npdPUiPx*&mE= z5+;^|&j1h=c{=}5+Xl8WIHlSoAv`j=xJiob9~p35ky6XP+?~NyU#=2#xg&WqFIIn` zE1|1Vw8 z0kj1gcaxP5V9IJz>pR(3p2wJHE-t*S3@%atecW9;#lCFdpK0xr)_(1yR$7umr!vBI zM`J64iJI&9&H;MSSdGW^f88IvOMchwDDKlbgH1GZQCP;yB+?(10Tfo$#aEgWHMRbm zL{~qI&Ew0Q^Rf%R1*o}7sGgqpY7+(ET75OkW0&am7GFVFW#R9i8A+B{oQ9gr1@jME}ZW3DH@8xK8sni8`z`hVS%%^JEcC&S` zl@NJA#KifY5S^o?lF9%T^sjpWdf0oddtBw&o$iUR;cFQ5fPe&F07gr$T($4;^rDDE<T+VbTZUCf}icP<={yWG;fy%5x8E`J99#1Vmba=#P?RFAAPhfipm~>V- z_`@a8V;SHRRp0Y^HKIx`R4y#wRU((b8YrVM)h}Em*y_)M!WRMN?YTt&;7#fhpz7`G zZavMv$>;?j$N(&YDP!`pOMoaALjaWu?Ha-w5TXm<&1YWrEf8taW|AWnvtr5Yo&hdh zW!64R)s#_PwCM>ralpREnFahP)~QSSjIom4KG^nMW0L+EFh$ri2?#v}<(17VJYaMl zZ2>9+B899Nl{Nr>V@rq^5&)9`vWoCxQ4YYaW){F0)X-HDK(Gd|dq*ZajhCc1WiA0< zpp44i9OGPJ_6QlAcNKn10pLDXnh6Vpm1tz@lL58@LDc|wnoc78RBg>HVCqg$HFbbr z7rNjIK2qihJxzR?eZ(L;N^QY-3xIHdS@OeSwP!|vRO`LO0l%wrd(7!%|IE!HRo6iH zy2U61M#mzo;2#J0R8J@at{or%WGl`L!2;M)8PFNXQ1D8Gd{TS`JOjqrNt^7kCm=Ea z1Aqbb%vn0>(Uyv9dtb)W&Y2cHp;IWZo7%b4={(_7iZF0k-Z68U765OTpb0_yK!`>I(pj zy;ALv71jy6=wc55n3fWApk_dOvzM{@n3tF$hWKhKiuZgQFhw-0WcCEma{x6-hoPB9 z0VV_1@4L2Lhf!>HPp|HPVu%y6LbwJNz>Yp|+fP0L2EcF)Ag2xBv01OA+6M5=nanAq z40z8myq5sROa``yF%E?^E}dHdZM>O$I|9=UM|RsaGe9|@g#=6y4WMp$DLu;ohJshh zzL|jx@W?f*4v5fYivDapjX1;fZK}>nX7Vc z1Iz&|$iA2HD$1-3P=vFkJAunA({um;002ovPDHLkV1jM!UeN#m literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/16.bin b/graphics/battle_anims/backgrounds/16.bin new file mode 100755 index 0000000000000000000000000000000000000000..54740367af7ae92b34a64718538d24fd027f53e9 GIT binary patch literal 2048 zcmcIk*%E><48;3ja8MC%-T(herw?t@D{0F(JOJ73=4^W$(TLA3>2bn2iTSz%E*KHh zS{RMB`P!H-tux|^A+TyR|81l3oVFs?3vYqddAJ+pgRh6H99lx+|KF6rV!uf<2 zSv$53JZn`@UvIWMcjhX#?Y6w#CAxfFhl09fU)tB2x%j!}*12S=*b|IS@rFA={K)Bl zoznx)Dt=m7A@(NX{idPvY+R3yY-fICb@S$Xho0)@4XyvM=$T5|ZddGyZLk$HrF$sF UnS$F>O7okd80Y5pEM&L%0dMDnfdBvi literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/16.png b/graphics/battle_anims/backgrounds/16.png new file mode 100755 index 0000000000000000000000000000000000000000..6b0aa49736fab8687b77079d720509695094e43a GIT binary patch literal 634 zcmV-=0)_pFP)5lFiDHcSzwr4tfEn5!hfN6`R_sR*kV# zZ5tPE1SVGDVg-4Zq)?$^a%N|>tVs;^Rv-88oV{~}#7D#OQ3T+l0Basr5E<41xCSO3 zRG_5d3Vgk|T{C+Udi|g(SRW6RB!JP#8~}U;6^j5NQZ)lqJ!n6$4TR*u4dCsSl*POa zP3qsSU`GnlCivlW$(5Ea=0gdx$8VWRpKW)yv%00w{5AY|$QNZag)ykdU8RtppviwFbg8IZP~$ z3C6x!W&#+75rsvy_d|QoxKZIxHnnCUh^*3fsYGArMyK-_zXK?8z{091ouOE<{9p|R z8W}TVvR>+$A1=@k`+fSzGCZZ}&sEThmNiKA+%vrZpyM^A=odE4Z>ndycJ4}f=wG|v zDbmW}7*eCK<6x@ER+ zcx2uoy=fKMj>;B1~jK8nv%PyWVoWC^q!;>G3e*}KJ<|m#p zoc~DpA>@C2@~G%D@Vh2|HS0apbP7Csg9=lAzrM*=@o&aI0zYOvDy(_=vPRf@%aA?I zc|?F68M3Q9jlQh$9Ud8iIfQJ;vqp66Reb8hEyo6rj`jY_&L2z@lfA{$mA`m(BYK#= zR{q(K*rOF4s(Hj}@l(YkLd`1|#)rPk`!oM4JMiWG zh&=QKedqn@mMP=Q`w@BRtK`RwPwxk-QT^@t*d!`mntzWUDqfn;`SyI39XE_y)vx=J z^XYug>r7#fJo^LnOEWp2&iB&bV}GO>@ahF;%oBTmZSd{-)Qgx;a4A->cXJh_`op8J=*P=tK{B0uoxoX(H>PWP`Ow0Z8vGCub&^{)tRp1ZN+ zx&O#3LgcZ(l)tji??3k+c}1W;@eTW{=I82ulUD@ip-+6P_ZNJom%RF$?k`Q}zyI$) DgKCi? literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/17.png b/graphics/battle_anims/backgrounds/17.png new file mode 100755 index 0000000000000000000000000000000000000000..5f9dd14ddf8ba0faf8f069ed227a9226cd5e84bd GIT binary patch literal 388 zcmeAS@N?(olHy`uVBq!ia0vp^91IMM3@pq*Rt>9GB9Jl&@Ck7R(n)*oWi7c^-F>gQ z_}-MLd;k9fQP%&nNoUtgxw?j7Z!^Q1D26$fK!qUidsDd#&>((K7sn8b-n*0b_8l@1 zX!$N$!yAyM*~QJv$Raz~^(J%@YQ0WtaiE6(kF_w1$Xgg30dx)y8d z58aw^No#*V(9_>yr*(e6;(xyUo79us1y{E$x%Tz%_Ae^0ijUurc@)92;?e9)W=ey7=lAbfeKGJ#f%2-AuCmt_HL$0yT^Ko4 zJ~Qg+Y_Z8Y+P@C}TxqL(;x@xo303ARU-wnl7~DwOaPz^9@&k1(3lx<^nXkOyMY4VG c_WH@Cti{nk1&=SDum}`Hp00i_>zopr0M>4^=>Px# literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/24.pal b/graphics/battle_anims/backgrounds/24.pal new file mode 100755 index 0000000000..5eec18c675 --- /dev/null +++ b/graphics/battle_anims/backgrounds/24.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 197 74 +255 205 98 +255 213 123 +255 222 148 +255 230 172 +255 238 197 +255 246 222 +255 255 255 +255 189 74 +255 238 180 +255 230 139 +255 222 106 +255 213 74 +0 0 0 +0 0 0 diff --git a/graphics/battle_anims/backgrounds/fog.bin b/graphics/battle_anims/backgrounds/fog.bin new file mode 100755 index 0000000000000000000000000000000000000000..1f9d53f95fce8a6de753a812c67e4385da36c646 GIT binary patch literal 2048 zcmb8sHF84%0L0L5h%qrUGc(&UTun!JzulIaQTGBugozO4hZu1JvlApqk>-~_GGuW( zN1g&jN|dQk#qAn(8Z>Fqrb8FEd-NGFWW<;WQ{0|0XTg#cYc_0gd&iywM^2o%aK-H# zcOLxngl$6x~-mWtEb!Q>9%^h gt)6bX-uk=V`n%rxyWaY{-uk=V`n%rxyWaYL0q+ui9{>OV literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/sandstorm_brew.bin b/graphics/battle_anims/backgrounds/sandstorm_brew.bin new file mode 100755 index 0000000000000000000000000000000000000000..64e6d85847e156def36b0f71038b6a83d351e298 GIT binary patch literal 2048 zcmd_mw^l*{00dETl8k`loFpq5fnS?Xx8LTSt*NKF6CzB6C^6zBNRlE=h7Ypj$WtH` z(2JBPQ{j^;HR^oPph=519lG=g>U{|{gC{S7y6e>+u2+A!Uj5;E^@n=gAL?;`sK@=G9`}dq)nBexf4N@$<$Cp(dfXrC qaet`C{h=QBhwIf}u2+A#Uj5~I^_P0wAL?;`sK@=G9{0z)`~LyZTz($_ literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/sandstorm_brew.png b/graphics/battle_anims/backgrounds/sandstorm_brew.png new file mode 100755 index 0000000000000000000000000000000000000000..87d5d41ea55918f902fd78c45ef25ca9d7d52814 GIT binary patch literal 997 zcmVUAEW0<2G*3p@OIhGS40~Yck z>cV<1Bq+gXyqdAF)x&k)g-@+Ye7T%944K*6&pE&J?88uGC7J-}thyH?aK$h#00J~z z1PiDOQI~cvmoQZpuY)10gxaAj$7f^!2F5WIXT@>%`38z97%fa6LHpzC5lb9M7JST1 zbT(j<&~WQyiWX$=$E%I@s}cD$r{v~Fy1GMHiSBypF%C8rolv4P`1~4LOm;L9z#|v$ zfJr>aE;0?fQEKX$f`IhVKmt35#}9GgUWyxaGZoQT##BY^WYuqSt8Th-ayCfF7}KE> za$=$ocal-2bK(0M=5$h%1HyWwgynsQ2*rJAA|!hUc_dMr+;yR$HavMcNwr(6uB|Pk=Bv5MP$PWSE-&ID1 zZuZeNg{=De{{HRZRt@H1%L$tvKLBXjE<^;zJ?KiC1MJ&6sJ&sz8P!yB(b!ES=up&X=Y8FxzG|7u!RpfSuF7}wJYskb{ryhv7KFy?C?xtu(`)Em3zh3GlnT0!`HQkEJd&B44 zviiSDP0yyoS;`6EWtZ^1uy~neNqC-*u{{&ryz0|Qbn%hd+oo`w^2ude&-7oZx?5N5 zQtVNZvACmsTZ45*xBpmd>eZnl)L22nY`*#MDe~pEBC!0{;QM0zeaTUhWJIa_&Kbfm zw?BwS&dHQxbv8|^RtXBM%LwS1)CSHWV{1fjo1A$$p*&+gu%OKyM1AyaQO3jJ8o~MM zdyP(m&uui_Jm}4|l_)te(@*m8Jo4%-X(%V91Cu6DE!wIdot@kYBN8 z!s{H1|%^y9={^D^+y4SWI0 C?PECr literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/scary_face_opponent.bin b/graphics/battle_anims/backgrounds/scary_face_opponent.bin new file mode 100755 index 0000000000000000000000000000000000000000..dfaaf5f2ff9811b3f4e81cc1cb0e942a89d5f77f GIT binary patch literal 2048 zcmeIx$#OwK0EOX;8$+@&1z}@~7&d0Y8o^8bi~qrcC+JeCN~zLk{dJu>)g2o@^Y05p zBuJ7XzUI;C*s(^b literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/scary_face_player.bin b/graphics/battle_anims/backgrounds/scary_face_player.bin new file mode 100755 index 0000000000000000000000000000000000000000..690305126a297c8f7b72ca8af5328b0460f60d52 GIT binary patch literal 2048 zcmeIyw+;d^6hu)2CO3p7H)NKjA;+5hQ@5B82ezU@7NS8~PvgSp$r@R0X Q4ZUZ-j)_*(z@Inp0NoQ~H2?qr literal 0 HcmV?d00001 diff --git a/graphics/battle_anims/backgrounds/water.png b/graphics/battle_anims/backgrounds/water.png new file mode 100755 index 0000000000000000000000000000000000000000..7740f99f8bf1709ec65e21e97b9a6386b40e7d22 GIT binary patch literal 3793 zcmV;?4lePDP)wExY`|K{fZ|NsADTK{uu|HZ}s?(YBp|Nj6000000LMF{6000hL zNklZ056=e~$?xI=@ksuZz1L4p>QiO|OW{dn;LBYF|>Q;x3ye{5_+{4YKCz9B_QBd6$tO^(R9 z=biiU-rVyTYpL-)(Wp4O(TW_gg>mjX^+qF?T(?Ms*Ixj*t7+P5tEI^Z0ltTsTg-bE z0)~4YVi5pFGh2C!&FtOcq)KDFd7ek!#Q;+_y{j;$)0YAu_FkE2?1^;+?-w(eVzBj< z>GW-DcPaqH_Elx?RRF=`LKk>yHWweR0N@^5mi@}aE5oi_fql6OAO!XzfSI|9L4#-X zeHvG*u&dU`{1;pyD!Dfz0pR+Tw|8d%_ZoGvr-@(o${-+os*E~5lMw|l3&9+~uaAAd zPCoh7s$ZYrPp>lZ$@4iFO9+w$gf7g%O9c>Mc0UO4Hu3q=hxfPwhR-ZY?pc74dq^U7 zuYu`V8cCfJE@1?AL2@&F(OQcWWsISEkdsIf5Ar z8l>!*0wRw%O!&HvYoD{>ovx2r5KqU;X)I{s{_W`-p-`WYUlu^0j)YSk_6Vg~r^npP(ujHY}-5v-D>!g zs;Y<^(WM=m65F?0LZOMUNhBx;Nd*mwBzcPn%K%fc@9r{%KoSTb3WF4W#D0`c5taaU zr(9bY(-WqSyAc9n%w2`hoHR%RF<%wzbpkb`=7z5&@X6@nwK; z?Cgrq0138_r>&g_0O+=q7lSw;f1 zc3Kj5&dJ;F9z5uD9y|bxmJm~6tjLD->AYjeU*M&#t0vQ5i3x%%o9#{LlgU!vtlMYkh zL>>kH#8dk|6`}#YYh&*2J`-rSJMC`o!9JrQ3IfnjyNl-)M}@s;fF33;+=NlaaSGY> z{az2gfWkxgP^(Ys>cLYgj<`M|0CszinM1GB$=Oc({{8jdK_Qy~g@>R}3+myM%O!ji z4bbi}hnoj(*0R%l{{Bx!;NZ^;FL?vK$7u3H(5ji0mYrkVVFn9JpyUhhf!G5gRA7lg+Qe*Aea z0^qgXw;TsX8w3W|pN=v}rwNFj0H6@q2@ec@B;~_dfV2((9wx~EmSs9l@3AD3!^oMa z;F~V${XD?QfB|gBv5YkJ4Si#Xzf9}vUN*}Vwt2sk^~6E!^8UCCuuF!H`7Fz}4N4~U zs}2xM!=guR6eD&_dDP+AJ?7o6;}*{B3jpXREei}RGu1Z?{i=;%3=B&Dyq@L#6`OX0 z5$aay1HsXdshG8TSf_R(;wrL_CNrZ8OhE5M4S+;xE zRrc@jqU*DEzqR{HpX$kE3h~$CiarJq$w*o>+<5+2xzU|9Hws7pee7=Q?kXBTfN6-F zL3&~nc z&4iR2YOJrXGwz+@* z{{8L&C@_Onw%4|{;uzZH<{>^>V|TEoC_X~~+Vkg30|;&Bde2;6zYeH>#dw}Am;`~A zNF=n&0Ug4cG%-x9k*)@uF`1KT@{%`uk5D2{VXwtBUZG)2)>Qid9R`5J+z9}O2m}^s zc7r|ui|f7KfAr6ZzlRHIk)x5}UWVIl>G6D@t$FmtUfh7~7ra!S_Vmx6K0VYFfTq>e zPJvcvB0UzE9EGR~fkH2k+7I~sd7l%eg#c?LP-}-Oqr6(Qne8l~lHrpR(mxS@l(iHT z2T|icr%Qdjq90yyP`PtDJ|_B=ghnCrh{x3Ry!)Oh8ZkQ-%-MI+l&)wAEq;14+I?X< zJu|d3e}@hB%Jc=pFLe7?UdEPhiN&T7W4>fpRu(^yKbHFc*uocQZRZobSiUnBanB6n zMbtNE?>hsq5(&3FE)i>@xgF0Gl3j`9yfl6*x=0mU$nZ?~wfC8;J$WL6jL=mJ!lDY5 z(!6kBiTLtpLc!OXP=yNNO#NN#0vdUFFjebN+O-C+9NJb4!Xgf}aI|%kmpf}?h%#vN z8jEe8wqML#I33ZG2Uy{Lqh5tRN4r?ADwXZm{x<*-GU9!?TxR7{<`W9~d#iPCx(J|7 z1S0JlM`8F#4qAL^xuL4|wiQ6@Jq(cf`VsFq3=m2$c|1SEv$6Z|#V@&VsRr`(X2UOg zRREMql@Oo;0)@g409fTyp;jvzAn>KB;KL30U-$C)VhBJYEV_z;nB)1vV9Wd)zC@4D zHNaquHnS3nhG)W{u>D>a0>m!x%M8G?mM31GPrCBlGIIzpw)yECl3-t!S~uzI_+&=T zLh@d{S}M6{cDYsbAhFPPyW8iF_ZHH}yS&ebLae>H)Arm9bbOJ)r9I3v1zCx8zj!L53+*{Cgh4%scHV7bc_-qOcP=2KnYv&?m@_9FpSl;>t1~rrq zVPX)-OVGzf!bK^U3nxFrFIO@r-o1TM)F9$Vgo%T~^R zN^Gz(axu5-h$h0tA7Vlw!oEslR9=mE-MCCa$mis|*v;iENTS>f;QWAnWn7WR?U)_s zxMS)J(vK3vUk{R$t9O6|g9IG=aP&25aFYna^y!qCaFF3Vj&po)Uw((@QV zDZ1k=d4&IJTKZ{%_My>exQbaD7|MOfra5O8wEoGqfxy@0`QP;ujL z%O3k)spMP-;V-!kXgekn;AA$SA~C>aco9H_Gsmu1+>xXUnTJ@gud#%51VFTDGyrdS zykL;_(#S2MYB4g-5JDcYhaB6mEq=p@1o$=hDgZZMgr)6B=A9vgd1XMj$>Q+pw4c)CZIc1k?~*BJ6+15gYN#2C?wBlSur~Mw36# zx%|vKtV_{t6Ho?UoCly0rXBLHEJJGugFmt^AawXZ$bi6~?kFjimY4GYE9oJhJfQ3x zGY#sFfqiABn$J~4u?r+dz~eUo`j5N z=X3)Atio(D!8Vc@dV&~*>(BhM$pSJ7Wz9%u0ajk4TrAdxTxdug zggpM~aXt#sIs3*}P1fN$z8Uc0LTcIm6;j19>&s*onfgrh^$k&-X0lcX16(IldXNIZ zPfPZq=uD-`SfuI+0niAy$2pwFm%(3Iyg}Rd^+1P)`f1S~ECImb5qr_AEJD}#EF{j3 zCqHc@2)Z_zgnkPc{1gDPo1??tQW|pCkYkK~98HIaHJ;VbKlS6O%L&nsp9L(3DK--n zFExTsMjCew0K@VS;+>Tk2p|l7j-&41POL#&^V|wx?RX|=G$oT$1JE_nY!6u$*Vdrg z;yT`y^c5Kj1_?d!Spb7X>h(+$L2riQIBkfejB6i@W~M{LArVK~Q4c_6K%M1%u*GlF zx$rzx5H{}I$t}M27e0a%S9>(_#a>EYud-R zHHE;h3797m{7Hbwa%j;y%h$8EP*c$Y`vf0fXxc}<0IbO|f()^{9B7B^+8p5JDS*Zt zIL&f=GjjjTpG|JF9A~y9=L9gL(4J2hw6)^}02MM#?)a#vrez*(Q2iKV-XLjnofn4RK=almVS8eSY-8gO9j_^AR_h3kf)C z@X^MA-_d?RHu|^2AjHCm3&Mx;@D(1e`z@qd{b)_RZYrVJ4C>NB`RaTm1mHG5a=7lt zJ{8q(cA|Dh#gY51iq2^wW3%7E`9v%NYHcJ9sqecgIoiU}1}$U(eST;jw*RY(I?6q@ zo?%Gj`6VV|CA3~$_*s2b6vU|%k{`@j58Pe!dH(DF|3Cfh|M%`)-Ewqq zarKnupsXYXO9smz$N$e5{?D1>c=kU7!+$Vj$eQw>-|C(aP>-soi(?4K%;W?Hrfnt$ w9tjN%CMpdRS{qr~OiUUy8y2!24k*cH>^r1>)Ao4EOrQn^Pgg&ebxsLQ02<3O`v3p{ literal 0 HcmV?d00001 diff --git a/graphics/contest/applause.png b/graphics/contest/applause.png new file mode 100755 index 0000000000000000000000000000000000000000..35067b7e7f7b11958e866feaa93942d604eefa34 GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQU(D&A+A7rN|eC2y~Y3U761P~ z=f9!ERRM-?bMF0ThyqGsg4VcokAb4=JY5_^EPD4&?&dwLz~ge5O?NKCR_-NA&{h%jlXv VZ%W$cdS#G*JYD@<);T3K0Ra0kYe)b9 literal 0 HcmV?d00001 diff --git a/graphics/contest/applause_meter.png b/graphics/contest/applause_meter.png new file mode 100755 index 0000000000000000000000000000000000000000..8a4fce8c08e105c10962437030b861cb5a88a870 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!VDzu-cxxDqznRlLR^9Llqi93dyD_yEB^m~ z&VNIRs{#z)=G^v#3yZU*i>HgT35$yhuVIN0 zTf?`A*+qhxu~|XDK!L$!+nyt>2lp<%+q!Vk;>9f5jMG?GAI_Fz@ZnQ5?40CU1+v7` L)z4*}Q$iB}qKz@L literal 0 HcmV?d00001 diff --git a/graphics/contest/nextturn.png b/graphics/contest/nextturn.png new file mode 100755 index 0000000000000000000000000000000000000000..1d79d0608c66f019ffd9e2149f320affacdbbdce GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^4nWMo!VDyL`#gCAqznRlLR^9Llqi93dyD_yEB^m~ z&VNIRs{#z)=G^zopr0Ep;7eEl;Pq=#V l|KjF_%p3}9W`3?e$HH*pgjlV@9R?YYQJ$`TF6*2UngAp?G2;LL literal 0 HcmV?d00001 diff --git a/graphics/intro/intro1_text.pal b/graphics/intro/intro1_text.pal new file mode 100755 index 0000000000..574921c0db --- /dev/null +++ b/graphics/intro/intro1_text.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +24 57 255 +49 74 255 +74 98 255 +98 123 255 +123 139 255 +148 164 255 +172 189 255 +197 205 255 +222 230 255 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +24 57 255 +24 57 230 +32 57 213 +41 65 197 +49 65 172 +49 65 156 +57 74 139 +65 74 115 +74 74 98 +82 82 82 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +24 57 255 +41 65 246 +57 82 238 +74 98 230 +90 106 222 +106 123 213 +123 139 205 +139 148 197 +156 164 189 +180 180 180 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/intro3.pal b/graphics/intro/intro3.pal new file mode 100755 index 0000000000..909fae91dd --- /dev/null +++ b/graphics/intro/intro3.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +139 148 255 +0 0 0 +49 0 0 +238 123 0 +238 131 0 +238 139 0 +238 148 0 +238 156 0 +238 164 0 +238 172 0 +238 180 0 +238 189 0 +238 197 0 +238 213 0 +255 255 255 +0 32 205 +139 148 255 +0 0 0 +0 0 255 +8 16 255 +24 41 255 +41 57 255 +57 82 255 +74 98 255 +90 123 255 +106 148 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +180 0 0 +0 0 0 +65 0 0 +255 255 255 +82 0 0 +32 0 0 +0 0 0 +0 0 0 +0 0 0 +255 123 0 +172 82 57 +164 65 49 +156 57 41 +148 41 32 +139 32 24 +115 0 0 +0 32 205 +0 0 0 +0 41 82 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +139 172 255 +106 148 222 +82 123 189 +49 98 156 +24 74 123 +0 49 98 +180 0 0 +0 0 0 +0 0 0 +0 16 0 +82 115 98 +115 148 131 +131 172 148 +156 180 172 +255 255 197 +255 246 123 +180 164 98 +98 156 57 +123 164 131 +164 57 49 +172 205 246 +255 246 123 +0 0 0 +139 148 255 +0 0 0 +41 74 49 +82 115 98 +115 148 131 +131 172 148 +156 180 172 +172 205 246 +197 230 255 +213 246 255 +238 255 255 +255 197 106 +255 213 131 +255 222 156 +255 246 123 +255 255 197 +0 0 0 +74 82 82 +90 98 106 +106 123 131 +123 139 164 +139 164 189 +156 180 213 +172 205 246 +0 0 0 +0 0 0 +238 255 255 +255 197 106 +255 213 131 +255 222 156 +255 246 123 +255 255 197 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +74 82 82 +90 74 74 +106 65 65 +123 65 57 +139 57 49 +164 57 49 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +74 82 82 +106 115 90 +139 148 98 +180 180 106 +213 213 115 +255 246 123 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +74 82 82 +106 115 115 +139 148 148 +180 180 180 +213 213 213 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 32 205 +32 24 164 +65 16 123 +106 8 82 +139 0 41 +180 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/intro/intro3_clouds.png b/graphics/intro/intro3_clouds.png new file mode 100755 index 0000000000000000000000000000000000000000..aaa77f4a9cb94788b79de5b04a7b921a44664530 GIT binary patch literal 1360 zcmV-W1+V&vP)wa*r2an~h!+DT?xA zwg`R|>zP^eGhZSpcb!|~#)79VuOG_l_5kLh0iIu9U$y{-eS}*D`1u;v?}LD=1SI)L z*aZN5lz?Xhyfgtom>Q532r6s>thb;t;h6w04S*p4fOH~Lz^kB!5CAVuo`o?$esRDb z6=1+7fHQz6QUE-2z>5ZOQV8%0+yvmYSPH;DHGkk~bPy08OC)JQ_p=22?i6umf!hi~ zgD)xt#;p%9Jn1!f3>m z0A(1OiDYbfB~uOpMhxE`pt+eqT+spvD7?tGb4tJ(P&%<)P#A!$Fd)NNl{EG&1yC1+ zs;Ejp$Ud&Xf1Ln`vaSJgD53IUS2Y$1fH7C)SRHN^plodd5dH#wu8T7D25hcmt_?Dl zN=aC!Z20syez;X2GgzBFI} z1mwcU0G7zc2me0LPa*<+Ff-EdcYKdwdLO2GC9BQUgo{7$tz*Qv-kito1?zU?reC1~8aoqx3*4Tgt{J8D@}qRDiWHt514SCt^r;JkVU;(OR8;F1;h#O+XRB8+u#&;aT5SZ1OD zoS}*l0A?kU6S=UQ50dxT1R&CJxZiKVgHFrp;K|-262SjR>F5umZhYzegA@RTj~9QS zP^OA{dly2b0E`0gHee`I{(o3vMbZH2YD*_va`Nzly8;j|fFxikO+*{?RMpl*r;YIU zEMNcuFed@MHXxk=tZxM@Q2Y2_0pM)_Bj(k^fIgje<+yqhU_iR!Fkq;v%{f4tZR%t= z`1m=_`lgQM8F^q8{~Tb&!-kSfhZLBS{G$M0%TgIqru72~P`i2zu!f<^J`M;OK(BmH z141jtH>r;Rde({`0>p#!8vqLfC~F@O`hoK3{}rHV|4}FYYe3)VD2D;VHsCMu+L-v( SVyc<|0000rr*x9;3~@aQRF|Ln!9H}5`t`tlvSk2~k#To4EX UK_CbOfglhBf%ITd-)!vK6brKCx!qhD}?x?F9Q>d-feTbmZ7cus?O? z+=WY5uH6LtTX*g~c=Y7iOR#_S=G})+U%veW`@%moUc>^iKr9do!~(HEED#IC0%YsME(K#}lAKPvguHV>gb9wSDK7%^gm z9yw=UzKBF;zDL;dMN%y=??7z{L7o6zLYSAbp9Szegn3Om^64JdpN^p#*fY-#L@Ek+ zkJJ|o7X#iF;DFP3E(Ss05@C4bbFxx zg@QY1d95oq3Ijla0?-^d01ScyKnbmZ?;cnnfBx6S0?WtSql*M~COLuEQPctA29g(u z-GQ@*ZouRPVs}9954dOGUPd?I-iiHBWB=pa|1|o~Lh=IBKLNkq^$?6NJ*@Nq0000< KMNUMnLSTZM7s&|# literal 0 HcmV?d00001 diff --git a/graphics/intro/intro3_clouds3.bin b/graphics/intro/intro3_clouds3.bin new file mode 100755 index 0000000000000000000000000000000000000000..c47ade01fd46b700ac82fd6fee8a9c66b407a45b GIT binary patch literal 2048 zcmZQz7{Q=`p@5qL$S|z+^AzwF@D=dm2_O9amno1fkSmZUTfa_$Zh>BbKH2(h3TzAP m3hc?&PdH`Z_y5q)PeJZ)0QsK+{R|ZAr^xbA&7&bO8Ug^faJ)eP literal 0 HcmV?d00001 diff --git a/graphics/intro/intro3_clouds4.bin b/graphics/intro/intro3_clouds4.bin new file mode 100755 index 0000000000000000000000000000000000000000..99bea908cacbe24cf6f1e0649cae0ffe89a04133 GIT binary patch literal 2048 zcmeIxw^EgH5QcHi9h^%cYWorX*pjgX4neFQ;2}5U*pQPAIoTLM1$9Og44^Y!f|uYW zXv++9nBglZV7LCgv%52!BpIUD*_I-j_9mUfB_s=AYY;wpY?}~Fowe44DW;iW zmO18GV38%3S-HaZ+GDp}cG_XP+GeXQ5>{DboeehGVw)Xy*<=3-Kk04}83o^2`;NU2@R{=bdxb8K<2JpE%(&UpVEAuYBV> xKRD-tpZvPypS$m#yY9H{mYZ(4?wYG1-v9oN>Hoy^e`ESYlyP787r4V0_y-<5gQoxh literal 0 HcmV?d00001 diff --git a/graphics/intro/intro3_groudon.bin b/graphics/intro/intro3_groudon.bin new file mode 100755 index 0000000000000000000000000000000000000000..c0472196fbf59ab75fac45951775a7249fed28c7 GIT binary patch literal 8192 zcmZQzAOb90w0H@_Ga?k?P_l8;<}F*dZRg**Up+`NvQ2 z@lQzjfI~4B;liTglG3vBipr|$n%cVh>o?@&7ZhMohfAojskx=Kt-YhOtGlPSumAZA zJ^c;1)M68#IBD{fsne#v56@qwU(1J zW$n|T(e~+R`;^L=a@06_gaG3x7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7 Lfzc2c_8|ZO`P1*- literal 0 HcmV?d00001 diff --git a/graphics/intro/intro3_groudon.png b/graphics/intro/intro3_groudon.png new file mode 100755 index 0000000000000000000000000000000000000000..3e4c6852b12526abe13a1d6901eca5dbdbf2e120 GIT binary patch literal 2166 zcmdUvdr*^C7QpXEf+RpRh;aiAB@rpaYBgHX00Rl2JOsf2D&ZZWtWgmNqA`X<(7F;R zf^ijy3ME?5Ac_&UG=WqXEDKm!h*(`9U6Ar9A5ILfjQZ_|bY{1+o&K@^?VY)gbI$La zbI-Xm_iV(@K!UZSH2{DR92CGocj>~!VbIlND47QU10q7Bw#noOs$l>CivXMtU>Shr z09F8431Ag~)d1E4xD~*9fFKBh7B)l#R2-&~%}_AuaynH;B@0k3wQIpf=Pcy)|Xg2g`nj>~&qAd}10YPDXk|IN4ll{>YIN>;LoB0i2I z1N47C`mdn>QD`ljRRLhh2o7LJ9aBt}$MA-!wgFUr1LmTK>o3!3L{Rk>d3>rUW?TeDq`6{dDDt{c45p19*ud?3w?XI+r) zPFT9$l1kfP@7TL-T^;!DCz>=zR}miYvDxnAp@1|F}$n!0w-Qk=X8AR`s|z& zkAz<(b*+5^V>CC?F+oE%se8|oJS`)RBosIQ{m&mgjEHdq*2doTkfATFpfogaBCw@q zw1>!wT$=GTdj0Ubro`KH=+cpwGLgCYup#bT&8eRq#2yYQE|Bhs@UF1Cotn@)JvkR< ziuZlM4$6U6r5_M-E_`JvfI2pTSQ~g{$koDq6W=l$L8i8^^q~p5a^=v#1jG0+`r@eb z4noSffEu-X^-pB=ial|4sb(V0#eLj4OYH#8x4O3XrGmb34`bSGVnHcU`XTNmJFv30 z7Uuzifc$X%XIG!iRyA9_+AQ~?5;1?pI4A9zQnXr+`7JHBm z$|@2y&fqq4?}{v!0mGf4a-YlbRo>Rp?{9Ac`(wd|k)u#vk5^m644%bZLE{um|2P(_ zecTXJu4KDshhcv%^2^F`#S*FMY&ZQzi|Ko~q@%r&Bi2wy1dwhtZj0K~2KbZxHKPS<*_NQHm3*Zl@k#>quTMHr2kWBeS>Lv%#q|tcR^TwdD-ws7)SiA2!Q0 z@l6@m)aR$Nyyv-n>mRT}=IPkVxS`L88clepfhzs}sTgNHUdW0rs=s;1O&xFCl=8r_ zU%H2)^(%dIvG)^zci%JhgXG2}L=<0U?-0j%eS`y--awI~h5_Hz22kR)?1>EUZF}}# z8tafh$5MSCtb~@QZ2`6r=DS-(hXG}?w6mQ6HZQNY=;Uo0Eyk$)DdB60CnY(g%J!o9 zGaxC*{-!Leg{WJ8;zI+q+LIw%!SZ`U*7X~$UUyuE$Er7z7yjMgZ94;Q`6cE33w{tS A3;+NC literal 0 HcmV?d00001 diff --git a/graphics/intro/intro3_kyogre.bin b/graphics/intro/intro3_kyogre.bin new file mode 100755 index 0000000000000000000000000000000000000000..b5bdbb37ccd6f5f8d1ba28aedb137b7df39d5dab GIT binary patch literal 8192 zcmZQz7zLvtFo;5cm5rT)lLGgMiit}|T99vms+zinriZ7Ow~w!%Kgq@f1_g(NhJ{B& zMn%WO#>JDWKOr$GIVCkMJtH$KJ0~|UpH%$?g+;|BrDf$6l~vU>wRQER>ThUlYHn$5 zYwzgn>h9_7>nBw|!^BBTmn~nha@EXPv**m6H=ktv3=CVhZQrqT7a1C%T8=s6h6@)jUB2=KkAhLD(GVC7fzc2c4FR%3fDr`9(h1Q7)=z-}5dBb+WOtzGCfy%s z+DZ1tKE;gD02!-KCXlpDT&NM~B7j(_yOzL|II?r(SB?wff@R1X&w zNFM?KsBCm~qMWD4@A&?Lf4RNC*J}iXsDHIxQVW7PD(}{x82!dV#|CeQc zLs&paBMB%(K8e61;JJ8RCaT3Z%-aaG`CR`RTp^mGo5rdl()qe>EI_0$#GeP%0gXv# z@;DqJk1rM?NF6f95)0^bK8YpZ2uMU>!x*YT!G-%1+=&0=QES}*A{|3uG;tjRk#dl3 zKFXs4>f%PD`Op~*7Kg%_ z(#M4W$ZX%}MDdK|4`1GKJ>OE@smska^d{0(l?aVe*PCKyEti@#{k-<|YEJWmzT}p& z!(6SggTrQ6zw!40OTDI^8{hb)bk)ZrE`i=6yz80z@l32lF|#tNHPd2b3--R;yI)8d|Z_OFvesW3vvWWm&6xIMcF^Kb(n3Yc?LX=bqAH zzCYF1NFVSBNXzwzTBBK37qP};(J_CA5hD<3ycf%U#I|#)KL7aK%Vi2<;kJe?qwKqO zisY0Ik^#hi6Ox|Y5tct==PP?AqS=6~-BX64^1%>RFZ^V9!J&MGH?_4nx`UvtcDJ_; z+!{OFy1XN3OI}%zy+c6UxCE zBW}|puQWY>WmJTH?`);A-8oN{L(161wMkFXmITq(E|pDxp)GMgiy1O=9gi>?{_Yv1 zF;Q`pEy=JPiiuv;jw^O-!Vp7B3$K;knVH_?Ukeev9En=HM2LvL%+d%-Sh*rW(}HJE}%-#>Qy&!gJC7 z+QHZxHTzhP5;0aXWl0?^8p>E1B~H6Za)r`yV&V?Osj|k%X<~J?DD^NeIJByyZy@~P z2IlCZHF|?sr;1k;a@}j~UORhPJ>LsOcq_dVeeGQ~s^bDB1())P19I=u43_9p!}s@F z@5TE+J)kVPB0rKYH(8LF(u~pYoxTQ{dPP^S*lcG=Ft&{CCrycnnUMu+`D zboSb52*^=ry#Wx0ZE3%=9*OMmo0P>sxE(T3E^mN4ITDbqGo%l~(k1JHF6Cj{q6R>C zp^r_!w(=<*;H8rHd+g!O1Yo=CjCriPE7s0N`YJjiBQooBa;W}Vfhv%MY`28lv_Ym7 zj-6C|J%mvapOeFGICr_dIIkuP0w%d8B_`Ceb>JSUba^$ zZ^EUe{@#bS;;^YIbJDG|S!8j!(7iyux=8fIFYbuVOwG}K2G)vVT!-+gMOlC%*~JtS zmSqg4EegDYW_PSN+_|egIzJ(13lSd82tQP z@aFah(ULIwfIOkRU$ebCiRFtdyLztpEST|Mq*dq+(*6IeVmoq&YFH&G!HHdjJ3cM%gbA000C1 zNkl0M@S_2`fb%02)8VNzeM^x*8P9#_~1p!*$ zl)A10K*C3P6X)ikY61p8ClTVrz9L}U1tl#a*~0=WaAm~$B0DzZbp#XFc3QwG$2<(!;PBc<1lqFrM7dwF7_!>G9 zU&0zn0E8p&0KQ-OTEJZZ5yBcuK%4@a0RRLs6qbOfXMl8-chX1+u>eG_fY}E*wNfle z;k*D?E`i?j-*v=tFl_;1F2ayWeyk3FB`-K366OFD5U2)`Jp&@uGmd7r0nm@|U;vGe zK^3tvnl}L99v`|H04l2j?*{^yW*yM$-co5y&xUE6qLt z2>8R+zeoZA9)SQL!S4WoslCB5g^8aT`n+Q+V?CIxMy)$FS-Todt4D`30FPDZE#O#c_AbFtJT^lH8H^$^Km|aGS)(Vz z(9teG^^_GUufg~M;D{kV^azcneo;U>?dAaau}iFp5$AW>&jF%R1Wc|G{S8)Q_T z`(!{g+?}(%GfvE-6#!=MWC^&5@&c*=AWWQC+krIzJi7Wl_H_U@S3B%i0R23%egp_& zarvKsTu^=v*f9>k0XP5$-~b$e18@KizyUY_2cS0o0y0WMiIcL&cPs}{8YsdN(2llmBo}4~4i~FE|UIg!qW=78?4Anll4U&Ox zqUZd}6_{Df<9Ulw-E?AMXAx7e@P^jK9IPDb7p65AMlX%qR&=j%n^ww#k|uKpW&24t z*m!0?J8$*y#SxK|cZ@YWNpl0@1=n`(k~;ai`}AYyxvi_G1_vv9u6>}>-+uC()z6pu z4l`Nju1I&#*qq>Hb9@E+1S9TcM~Zu-8k1*6sQGI0d!%dEvizwPSn|x__D;zidHms` z^BBJyE&C=j<Ao+x&mmjR< z+7?o(`HgWQTYYbFJcsifuMd@Toc|mAZffD-<)gN`{i@rq zy8Wu#Pe-keS{=1IYOC9?y8Wu#ue$wo)at0!QLCf2y8Wu#ue$xJ+fPTWj#?eHI%=!i Mue$xJ+poI)ey6-95C8xG literal 0 HcmV?d00001 diff --git a/graphics/intro/legend_bg2.bin b/graphics/intro/legend_bg2.bin new file mode 100755 index 0000000000..a151b458e1 --- /dev/null +++ b/graphics/intro/legend_bg2.bin @@ -0,0 +1 @@ +&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@$@%@&@'@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@4@5@6@7@@@@@ \ No newline at end of file diff --git a/graphics/unknown/unknown_D8C374.bin b/graphics/unknown/unknown_D8C374.bin new file mode 100755 index 0000000000000000000000000000000000000000..960ba873ee0aacb19534d10efd8d9f47979db240 GIT binary patch literal 2048 zcmeIxNmI`O7{GBx5{f=U_N7L)5?LeLv?;Q;st{R9vSlwVWKY&)_Y!&u9rF%ybL8g8 z>Bl(K)J&QG(U|`{hv%8+dA^6|JM#pBaD)x~mj=d&Fjk~-qKr4eMA2eQGC9O+r{p;rkzyrE9Z;rRg@Xz?}_c&ObY9V7CAR4e`P(-TiU^V|!aUh4A7Yj3>u T&U+vJ!VfkQuEPfYeFMJ%KO)fa literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_D8C5C4.bin b/graphics/unknown/unknown_D8C5C4.bin new file mode 100755 index 0000000000000000000000000000000000000000..69dbe982a648a9cc4e14093d7cfc872a950e2cdd GIT binary patch literal 2048 zcmeIuXIl<%6u@CKBt2zB8F9-ddkYy+_8!?=nU!oZviBxsl@&$y?5p_*f4%K`uJiWX z=eo`>A`+cwfksoHiKd!qu7#Fjw9;A|vD%8$PW*p-nIKVn9dy)5lFqtFmZGa}y6Yh| zc%i3W=q*hjef87d00Rv&*bwQ42K_L@jWE(Eqm41vIO9z)(Igorn-cU>WtwKX8D`2d z%WTz42DHciyW}8}uK1ROge=zWC~!?|%5{m*4*Q Pt3K!>(T!+<1{C-QL7@O} literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_E6BC04.bin b/graphics/unknown/unknown_E6BC04.bin new file mode 100755 index 0000000000000000000000000000000000000000..91230cb0196b5b0044a7e92ba773fa21fc9ee25e GIT binary patch literal 1280 zcmYk31#D1f6os);7o^_O4>)aa+rMp)y3KIg#&8?kaGT*a!)=D^1h*LwBrvu?u)qu_ zFvAHf+wcVT3S*F)+??E;@BQ!I6Gj-74C`twt(MicI#$=REZcG{*YYgi3arqItk_Dd z#1*?DSLg~{zRPpDF2`lNEEneS530J=u$m@Iv?NP5vlL6UG;@}28J208F2kie=h9rN zOL69sU6MEW3d)z@m9?eEWuTC@h;BAx)>MjqFkhlaN({D z|Cg1ua#r3dn2%L7U-L763$Q>7vS16bPz!Y-F4zURKo{WrouBh{6`hZ(pz2+0th6CU_uBbR3QphkOCDTfBDH*73HG`yNBIVm8n8i!igY~D58lW zmN??6Mgj?{rg+6ERxyfJlp+*l~0tzXjm=a15m3u5y&EER}ML?$u*F z&J#SzQ`DnA4QNOs8qQ61D??bKFn)LN~yj%!|(vd??$3%tlnbfY^x=t(bn z(}%wFqdx-}p#JKozUrgi>ZP9Qq3-IYYh33uKKIy{d4*Sbjn^5-AOQORf9boWJG{$#yw3-G$aH2flUdAW4s)5ud={{fg<7Ebny0y%quH9JnVO;L zy3c;ib}xgE_?S=ll*KGzDa%;S3Rbd;)vRGHYqdtJwMr|sLd&&GOSMFcz5VaA_cQ#0 zFZs&5#d Date: Tue, 26 Dec 2017 01:39:01 -0500 Subject: [PATCH 37/54] twelfth wave of graphics.s dumps --- asm/item_menu.s | 6 +- asm/party_menu.s | 6 +- asm/pokemon_summary_screen.s | 2 +- data/graphics.s | 124 ++++++++---- data/party_menu.s | 8 +- graphics/interface/bag_screen.png | Bin 0 -> 548 bytes graphics/interface/bag_screen_female.pal | 35 ++++ graphics/interface/bag_screen_male.pal | 35 ++++ graphics/interface/party_menu_misc.bin | Bin 0 -> 2048 bytes graphics/interface/party_menu_misc.pal | 179 ++++++++++++++++++ graphics/interface/party_menu_misc.png | Bin 0 -> 613 bytes graphics/interface/party_menu_pokeball.png | Bin 0 -> 330 bytes .../interface/party_menu_pokeball_small.png | Bin 0 -> 261 bytes graphics/interface/status_icons.png | Bin 0 -> 455 bytes graphics/interface/status_screen.bin | Bin 0 -> 2048 bytes graphics/interface/status_screen.pal | 131 +++++++++++++ graphics/interface/status_screen.png | Bin 0 -> 1633 bytes graphics/interface/status_tilemap0.bin | Bin 0 -> 2048 bytes graphics/interface/status_tilemap1.bin | Bin 0 -> 2048 bytes graphics/interface/status_tilemap2.bin | Bin 0 -> 2048 bytes graphics/interface/status_tilemap3.bin | Bin 0 -> 2048 bytes graphics/interface/summary_frames.png | Bin 0 -> 273 bytes graphics/misc/bag.pal | 19 ++ graphics/misc/bag_female.png | Bin 0 -> 1460 bytes graphics/misc/bag_male.png | Bin 0 -> 1637 bytes graphics/types/bug.png | Bin 0 -> 204 bytes graphics/types/contest_beauty.png | Bin 0 -> 224 bytes graphics/types/contest_cool.png | Bin 0 -> 213 bytes graphics/types/contest_cute.png | Bin 0 -> 214 bytes graphics/types/contest_smart.png | Bin 0 -> 223 bytes graphics/types/contest_tough.png | Bin 0 -> 217 bytes graphics/types/dark.png | Bin 0 -> 219 bytes graphics/types/dragon.png | Bin 0 -> 223 bytes graphics/types/electric.png | Bin 0 -> 227 bytes graphics/types/fight.png | Bin 0 -> 227 bytes graphics/types/fire.png | Bin 0 -> 216 bytes graphics/types/flying.png | Bin 0 -> 229 bytes graphics/types/ghost.png | Bin 0 -> 233 bytes graphics/types/grass.png | Bin 0 -> 230 bytes graphics/types/ground.png | Bin 0 -> 231 bytes graphics/types/ice.png | Bin 0 -> 208 bytes graphics/types/move_types_1.pal | 19 ++ graphics/types/move_types_2.pal | 19 ++ graphics/types/move_types_3.pal | 19 ++ graphics/types/mystery.png | Bin 0 -> 215 bytes graphics/types/normal.png | Bin 0 -> 221 bytes graphics/types/poison.png | Bin 0 -> 236 bytes graphics/types/psychic.png | Bin 0 -> 234 bytes graphics/types/rock.png | Bin 0 -> 220 bytes graphics/types/steel.png | Bin 0 -> 221 bytes graphics/types/water.png | Bin 0 -> 218 bytes graphics/unknown/unknown_D95E00.bin | Bin 0 -> 4096 bytes graphics/unknown/unknown_D960D0.bin | 1 + graphics/unknown/unknown_D963A4.bin | 1 + graphics_file_rules.mk | 16 ++ src/pokemon_summary_screen.c | 4 +- 56 files changed, 575 insertions(+), 49 deletions(-) create mode 100755 graphics/interface/bag_screen.png create mode 100755 graphics/interface/bag_screen_female.pal create mode 100755 graphics/interface/bag_screen_male.pal create mode 100755 graphics/interface/party_menu_misc.bin create mode 100755 graphics/interface/party_menu_misc.pal create mode 100755 graphics/interface/party_menu_misc.png create mode 100755 graphics/interface/party_menu_pokeball.png create mode 100755 graphics/interface/party_menu_pokeball_small.png create mode 100755 graphics/interface/status_icons.png create mode 100755 graphics/interface/status_screen.bin create mode 100755 graphics/interface/status_screen.pal create mode 100755 graphics/interface/status_screen.png create mode 100755 graphics/interface/status_tilemap0.bin create mode 100755 graphics/interface/status_tilemap1.bin create mode 100755 graphics/interface/status_tilemap2.bin create mode 100755 graphics/interface/status_tilemap3.bin create mode 100755 graphics/interface/summary_frames.png create mode 100755 graphics/misc/bag.pal create mode 100755 graphics/misc/bag_female.png create mode 100755 graphics/misc/bag_male.png create mode 100755 graphics/types/bug.png create mode 100755 graphics/types/contest_beauty.png create mode 100755 graphics/types/contest_cool.png create mode 100755 graphics/types/contest_cute.png create mode 100755 graphics/types/contest_smart.png create mode 100755 graphics/types/contest_tough.png create mode 100755 graphics/types/dark.png create mode 100755 graphics/types/dragon.png create mode 100755 graphics/types/electric.png create mode 100755 graphics/types/fight.png create mode 100755 graphics/types/fire.png create mode 100755 graphics/types/flying.png create mode 100755 graphics/types/ghost.png create mode 100755 graphics/types/grass.png create mode 100755 graphics/types/ground.png create mode 100755 graphics/types/ice.png create mode 100755 graphics/types/move_types_1.pal create mode 100755 graphics/types/move_types_2.pal create mode 100755 graphics/types/move_types_3.pal create mode 100755 graphics/types/mystery.png create mode 100755 graphics/types/normal.png create mode 100755 graphics/types/poison.png create mode 100755 graphics/types/psychic.png create mode 100755 graphics/types/rock.png create mode 100755 graphics/types/steel.png create mode 100755 graphics/types/water.png create mode 100755 graphics/unknown/unknown_D95E00.bin create mode 100755 graphics/unknown/unknown_D960D0.bin create mode 100755 graphics/unknown/unknown_D963A4.bin diff --git a/asm/item_menu.s b/asm/item_menu.s index 49f5879394..9aedd3f5b2 100755 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -637,7 +637,7 @@ _081AB0E8: .4byte _081AB1A8 _081AB0FC: bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08D9A620 + ldr r1, =gBagScreen_Gfx movs r0, 0 str r0, [sp] movs r0, 0x2 @@ -670,14 +670,14 @@ _081AB13C: ldrb r0, [r0, 0x8] cmp r0, 0 beq _081AB164 - ldr r0, =gUnknown_08D9A5D4 + ldr r0, =gBagScreenFemale_Pal movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette b _081AB1AE .pool _081AB164: - ldr r0, =gUnknown_08D9A588 + ldr r0, =gBagScreenMale_Pal movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette diff --git a/asm/party_menu.s b/asm/party_menu.s index 4a70ab1da6..a336b5d63b 100755 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -487,7 +487,7 @@ _081B05F0: .4byte _081B0694 _081B0610: ldr r4, =gUnknown_0203CEE0 - ldr r0, =gUnknown_08D967EC + ldr r0, =gPartyMenuMisc_Gfx mov r1, sp bl malloc_and_decompress adds r1, r0, 0 @@ -505,14 +505,14 @@ _081B0638: lsls r0, 24 cmp r0, 0 bne _081B06B4 - ldr r0, =gUnknown_08D96BA0 + ldr r0, =gPartyMenuMisc_Tilemap ldr r1, =gUnknown_0203CEE4 ldr r1, [r1] bl LZDecompressWram b _081B069A .pool _081B0658: - ldr r0, =gUnknown_08D96AB4 + ldr r0, =gPartyMenuMisc_Pal movs r2, 0xB0 lsls r2, 1 movs r1, 0 diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 5ae458d6d9..51f322e1ed 100755 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -2411,7 +2411,7 @@ _081C5264: .4byte _081C52D4 _081C5278: bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08D9A620 + ldr r1, =gBagScreen_Gfx movs r0, 0 str r0, [sp] movs r0, 0x2 diff --git a/data/graphics.s b/data/graphics.s index 7327681582..f7ce42517c 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -3390,77 +3390,129 @@ gBattleAnimBackgroundImage_Surf:: @ 8D94AB8 gBattleAnimBackgroundPalette_Surf:: @ 8D95DD8 .incbin "graphics/battle_anims/backgrounds/water.gbapal.lz" + .align 2 gUnknown_08D95E00:: @ 8D95E00 - .incbin "baserom.gba", 0xd95e00, 0x2d0 + .incbin "graphics/unknown/unknown_D95E00.bin.lz" + .align 2 gUnknown_08D960D0:: @ 8D960D0 - .incbin "baserom.gba", 0xd960d0, 0x2d4 + .incbin "graphics/unknown/unknown_D960D0.bin.lz" + .align 2 gUnknown_08D963A4:: @ 8D963A4 - .incbin "baserom.gba", 0xd963a4, 0x448 + .incbin "graphics/unknown/unknown_D963A4.bin.lz" -gUnknown_08D967EC:: @ 8D967EC - .incbin "baserom.gba", 0xd967ec, 0x2c8 + .align 2 +gBattleAnimSpritePalette_286:: @ 8E71200 + .incbin "graphics/battle_anims/sprites/286.gbapal.lz" -gUnknown_08D96AB4:: @ 8D96AB4 - .incbin "baserom.gba", 0xd96ab4, 0xec + .align 2 +gBattleAnimSpriteSheet_188:: @ 8E71228 + .incbin "graphics/battle_anims/sprites/188.4bpp.lz" -gUnknown_08D96BA0:: @ 8D96BA0 - .incbin "baserom.gba", 0xd96ba0, 0x138 + .align 2 +gBattleAnimSpritePalette_188:: @ 8E7133C + .incbin "graphics/battle_anims/sprites/188.gbapal.lz" -gUnknown_08D96CD8:: @ 8D96CD8 - .incbin "baserom.gba", 0xd96cd8, 0x294 + .align 2 +gPartyMenuMisc_Gfx:: @ 8D967EC + .incbin "graphics/interface/party_menu_misc.4bpp.lz" -gUnknown_08D96F6C:: @ 8D96F6C - .incbin "baserom.gba", 0xd96f6c, 0x24 + .align 2 +gPartyMenuMisc_Pal:: @ 8D96AB4 + .incbin "graphics/interface/party_menu_misc.gbapal.lz" -gUnknown_08D96F90:: @ 8D96F90 - .incbin "baserom.gba", 0xd96f90, 0x1F8 + .align 2 +gPartyMenuMisc_Tilemap:: @ 8D96BA0 + .incbin "graphics/interface/party_menu_misc.bin.lz" -gUnknown_08D97188:: @ 8D97188 - .incbin "baserom.gba", 0xd97188, 0x28 + .align 2 +gPartyMenuPokeball_Gfx:: @ 8D96CD8 + .incbin "graphics/interface/party_menu_pokeball.4bpp.lz" -gUnknown_08D971B0:: @ 8D971B0 - .incbin "baserom.gba", 0xd971b0, 0x9D4 + .align 2 +gPartyMenuPokeballSmall_Gfx:: @ 8D96E58 + .incbin "graphics/interface/party_menu_pokeball_small.4bpp.lz" @ unused -gUnknown_08D97B84:: @ 8D97B84 - .incbin "baserom.gba", 0xd97b84, 0x68 + .align 2 +gPartyMenuPokeball_Pal:: @ 8D96F6C + .incbin "graphics/interface/party_menu_pokeball.gbapal.lz" + .align 2 +gStatusGfx_Icons:: @ 8D96F90 + .incbin "graphics/interface/status_icons.4bpp.lz" + + .align 2 +gStatusPal_Icons:: @ 8D97188 + .incbin "graphics/interface/status_icons.gbapal.lz" + + .align 2 +gMoveTypes_Gfx:: @ 8D971B0 + .incbin "graphics/types/move_types.4bpp.lz" + + .align 2 +gMoveTypes_Pal:: @ 8D97B84 + .incbin "graphics/types/move_types.gbapal.lz" + + .align 2 gUnknown_08D97BEC:: @ 8D97BEC - .incbin "baserom.gba", 0xd97bec, 0x108 + .incbin "graphics/interface/summary_frames.4bpp.lz" + .align 2 gUnknown_08D97CF4:: @ 8D97CF4 - .incbin "baserom.gba", 0xd97cf4, 0x18 + .incbin "graphics/interface/summary_frames.gbapal.lz" + .align 2 gUnknown_08D97D0C:: @ 8D97D0C - .incbin "baserom.gba", 0xd97d0c, 0x830 + .incbin "graphics/interface/status_screen.4bpp.lz" + .align 2 gUnknown_08D9853C:: @ 8D9853C - .incbin "baserom.gba", 0xd9853c, 0xf0 + .incbin "graphics/interface/status_screen.gbapal.lz" + .align 2 gUnknown_08D9862C:: @ 8D9862C - .incbin "baserom.gba", 0xd9862c, 0x1d0 + .incbin "graphics/interface/status_screen.bin.lz" + .align 2 gUnknown_08D987FC:: @ 8D987FC - .incbin "baserom.gba", 0xd987fc, 0x190 + .incbin "graphics/interface/status_tilemap1.bin.lz" + .align 2 gUnknown_08D9898C:: @ 8D9898C - .incbin "baserom.gba", 0xd9898c, 0x19c + .incbin "graphics/interface/status_tilemap2.bin.lz" + .align 2 gUnknown_08D98B28:: @ 8D98B28 - .incbin "baserom.gba", 0xd98b28, 0x1a0 + .incbin "graphics/interface/status_tilemap3.bin.lz" + .align 2 gUnknown_08D98CC8:: @ 8D98CC8 - .incbin "baserom.gba", 0xd98cc8, 0x18c0 + .incbin "graphics/interface/status_tilemap0.bin.lz" -gUnknown_08D9A588:: @ 8D9A588 - .incbin "baserom.gba", 0xd9a588, 0x4c + .align 2 +gBagMaleTiles:: @ 8E75024 + .incbin "graphics/misc/bag_male.4bpp.lz" -gUnknown_08D9A5D4:: @ 8D9A5D4 - .incbin "baserom.gba", 0xd9a5d4, 0x4c + .align 2 +gBagFemaleTiles:: @ 8E75BA0 + .incbin "graphics/misc/bag_female.4bpp.lz" -gUnknown_08D9A620:: @ 8D9A620 - .incbin "baserom.gba", 0xd9a620, 0x26c + .align 2 +gBagPalette:: @ 8E76700 + .incbin "graphics/misc/bag.gbapal.lz" + + .align 2 +gBagScreenMale_Pal:: @ 8D9A588 + .incbin "graphics/interface/bag_screen_male.gbapal.lz" + + .align 2 +gBagScreenFemale_Pal:: @ 8D9A5D4 + .incbin "graphics/interface/bag_screen_female.gbapal.lz" + + .align 2 +gBagScreen_Gfx:: @ 8D9A620 + .incbin "graphics/interface/bag_screen.4bpp.lz" gUnknown_08D9A88C:: @ 8D9A88C .incbin "baserom.gba", 0xd9a88c, 0x544 diff --git a/data/party_menu.s b/data/party_menu.s index 95d9bb78e4..8013e5614b 100644 --- a/data/party_menu.s +++ b/data/party_menu.s @@ -246,10 +246,10 @@ gUnknown_08615EC0:: @ 8615EC0 .incbin "baserom.gba", 0x615ec0, 0x38 gUnknown_08615EF8:: @ 8615EF8 - obj_tiles gUnknown_08D96CD8, 0x400, 1200 + obj_tiles gPartyMenuPokeball_Gfx, 0x400, 1200 gUnknown_08615F00:: @ 8615F00 - obj_pal gUnknown_08D96F6C, 1200 + obj_pal gPartyMenuPokeball_Pal, 1200 gUnknown_08615F08:: @ 8615F08 .incbin "baserom.gba", 0x615f08, 0x68 @@ -261,10 +261,10 @@ gUnknown_08615F78:: @ 8615F78 .incbin "baserom.gba", 0x615f78, 0x80 gUnknown_08615FF8:: @ 8615FF8 - obj_tiles gUnknown_08D96F90, 0x400, 1202 + obj_tiles gStatusGfx_Icons, 0x400, 1202 gUnknown_08616000:: @ 8616000 - obj_pal gUnknown_08D97188, 1202 + obj_pal gStatusPal_Icons, 1202 gUnknown_08616008:: @ 8616008 .incbin "baserom.gba", 0x616008, 0x18 diff --git a/graphics/interface/bag_screen.png b/graphics/interface/bag_screen.png new file mode 100755 index 0000000000000000000000000000000000000000..e634cdb272b6693be2f8890da7db3b0db820d885 GIT binary patch literal 548 zcmV+<0^9wGP)yyKTcT5Qe#efo$LjGJ;{RU>E6q3N(P#qz<@(D_2o*NW6dw6%G<0NSP{t z7jVJeV4>WRlK2o6L}k84FWx8qM@m8vpAqlH4j?OvH|U|OEiyUc@uDu+!S&)CAs+z| z?j`iY5TtAcM}?>^Wp3}6kw99&*5po5b^<^}AOr$$?uK1Xqp-|;K^I|X1zB3a*@%l2e9|-myqJ%Bm|X?XE2FY5cFW0z^sA}R$&sU meK1Xs*oo5wiErV534Q=dohIL&FaWv$0000+j(}6XSwkqY-iC$1!^fEI!V?rdLlpvkCkTI?&($ TFK&kcdSXU_AD5P<|KGp?HnU1V literal 0 HcmV?d00001 diff --git a/graphics/interface/party_menu_misc.pal b/graphics/interface/party_menu_misc.pal new file mode 100755 index 0000000000..0b4b30f81c --- /dev/null +++ b/graphics/interface/party_menu_misc.pal @@ -0,0 +1,179 @@ +JASC-PAL +0100 +176 +123 156 115 +255 255 255 +106 106 106 +0 0 0 +65 205 255 +0 139 189 +49 189 238 +255 156 148 +189 90 82 +222 123 115 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +139 148 123 +74 74 98 +65 156 148 +139 156 41 +205 213 123 +180 180 90 +82 65 74 +32 16 24 +255 0 255 +255 0 255 +255 255 255 +230 238 139 +98 90 0 +255 0 255 +255 0 255 +115 90 180 +139 148 123 +255 115 49 +65 156 148 +139 156 41 +205 213 123 +180 180 90 +82 65 74 +82 82 90 +255 0 255 +255 0 255 +255 255 255 +123 205 180 +57 148 123 +255 0 255 +255 0 255 +164 115 246 +123 156 115 +74 74 98 +115 115 115 +255 255 255 +131 197 222 +57 148 222 +41 123 180 +131 197 222 +41 123 180 +115 255 172 +90 213 131 +65 205 255 +0 98 148 +82 82 82 +255 213 82 +255 180 65 +123 156 115 +74 74 98 +115 115 115 +255 255 255 +213 197 90 +197 164 24 +156 156 32 +213 197 90 +156 156 32 +255 230 57 +205 172 8 +255 156 148 +156 65 57 +82 82 82 +255 213 82 +255 180 65 +123 156 115 +74 74 98 +115 115 115 +255 255 255 +213 164 32 +197 106 16 +164 74 0 +213 164 32 +164 74 0 +255 115 49 +197 57 0 +255 0 255 +255 0 255 +82 82 82 +255 213 82 +255 180 65 +123 156 115 +255 115 49 +115 115 115 +255 255 255 +180 255 164 +123 222 131 +123 156 98 +255 115 49 +255 115 49 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +82 82 82 +255 213 82 +255 180 65 +57 156 255 +255 115 49 +115 115 115 +255 255 255 +172 238 255 +123 213 238 +74 172 205 +255 115 49 +255 115 49 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +82 82 82 +255 213 82 +255 180 65 +57 156 255 +255 115 49 +115 115 115 +255 255 255 +246 246 148 +246 230 98 +222 197 32 +255 115 49 +255 115 49 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +82 82 82 +255 213 82 +255 180 65 +57 156 255 +255 115 49 +115 115 115 +255 255 255 +255 213 222 +255 189 148 +238 164 131 +255 115 49 +255 115 49 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +82 82 82 +255 213 82 +255 180 65 +57 156 255 +255 255 115 +115 115 115 +255 255 255 +180 255 164 +123 222 131 +131 172 106 +255 255 115 +255 255 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +82 82 82 +255 213 82 +255 180 65 diff --git a/graphics/interface/party_menu_misc.png b/graphics/interface/party_menu_misc.png new file mode 100755 index 0000000000000000000000000000000000000000..c58f3aae98d8e7eb47f33be3d95b71bd78570b98 GIT binary patch literal 613 zcmV-r0-F7aP)Y$m<%VHF{;1%{$fdg60Jpc~%nM2;=Km{zcatXjbxx=iw$A1>{cr#et(c9XR@T4m9!} z2Sb4AcCfS)w#Q*kqfFmfKO7(n_;CkID`z34w@!gW0Pu*VgR~yRfblb{5LOcKx1;|B zwp;$7P!-7DR-_wvKgJsfR>A<@YaVxpnRi?CTmH zeZZ;SpQ<=OIXJ-Oa1NYTaaopS0N6kU4XpXUDCGY}xEnTRFL#3-Fu{9n(jo$2&%F1S2gZJfg_$q zPq=vYG6eYxJY}0A8+hGM^yzGlmC3)^wd;P`cV0G$e|c=r+$!&i`OmGJ9jg?N9x4`! zW{%KWz?pX9!zP=!^Rf*ZENdCAi8^w8>}a3C#WBZgUzk~F;cg~P=FXf>1AFdHgSx+t zSH=HLj9T>WO0?5olU^3Km#re)zMd((2`d}aIuw*&7Z%tuO#B|TzG2fr$MCa@iUqcQ z>xr>HQ0;DVVkc{bm+E|t*;?0Q8>ck7Y!hj=3(?=izjpuKFZ&mmt0z8eDYh?-1_g(w LtDnm{r-UW|2-$xj literal 0 HcmV?d00001 diff --git a/graphics/interface/party_menu_pokeball_small.png b/graphics/interface/party_menu_pokeball_small.png new file mode 100755 index 0000000000000000000000000000000000000000..d2eec4d45bb94812fbb5e4c48233bfa801c877d1 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^0zjO=!VDyz{eM3hNErn9gt%%pp9M0JK~`4tw=LB` zbnn?aAll-{a5RWv%igm<a_}+jk&*Kda*H%@x2k!*`S(4R zP~*@8(F@hPg!WuG_=u%uPQPDhnpgaF1q+UX;vLGK3xW*Yz4l%HmB0S$;*P#uE7mBT sQEE^NaG&)+UB)8r@XJ5F-qZhG7uWPJ?oGaT_7un`p00i_>zopr0Ja!tIRF3v literal 0 HcmV?d00001 diff --git a/graphics/interface/status_icons.png b/graphics/interface/status_icons.png new file mode 100755 index 0000000000000000000000000000000000000000..fe802d7f66659b1fdb5ca33e5fffcf920ab29145 GIT binary patch literal 455 zcmV;&0XY7NP)f$}&4cPmsZ^Og%s*voSJvbQfmE%tqn> zopOM{2`ZkO=hUgi&Xe-w{PaGSR}@9D(j1S)6dMJtgwo=HLDO3(C4^2uX_7NQ2TCjG zKYomplOBy x_+}V~al{aE0u2^`vB@e@I7Wy=v$g*regTrm{cS=+310vJ002ovPDHLkV1hL5#PR?D literal 0 HcmV?d00001 diff --git a/graphics/interface/status_screen.bin b/graphics/interface/status_screen.bin new file mode 100755 index 0000000000000000000000000000000000000000..771d4db932064368af4479d06d55c017edd340e2 GIT binary patch literal 2048 zcmeH`NlwEs6ox;Q&{}GtsD!qvg1Y1aNNgX&0$4FEfKyOTzzj>~ay(`@26ik#a1zDc zu%Z5xD3bjt_Wzzmvc|kD$f7L8&$6t@Y9{EhCRwb@hHT1K{A|mP>}F#8Ivs}^ z{4SwG#2!5kIOK?9PB`U^b1pQ!V4vv()-N%UpcF)m5O^?Zbp8LNZN4KWogKM544Ks{ zrgHr%n;yvp^Pvp9D?YIHDDs+fcSyenx)=%}SPkyF9ZU5C($DyW* n^Z)UaH_e{9>QTRhuYzxE*H=|>{me?+|M4XlzJ>|>(*(W%_*`3* literal 0 HcmV?d00001 diff --git a/graphics/interface/status_screen.pal b/graphics/interface/status_screen.pal new file mode 100755 index 0000000000..badbfe53b3 --- /dev/null +++ b/graphics/interface/status_screen.pal @@ -0,0 +1,131 @@ +JASC-PAL +0100 +128 +180 180 115 +74 65 57 +255 255 255 +222 230 246 +213 213 189 +246 255 255 +115 106 98 +98 156 222 +74 148 189 +57 148 164 +32 148 139 +16 148 115 +156 222 164 +98 180 139 +49 139 115 +0 106 98 +180 180 115 +74 65 57 +255 255 255 +90 106 0 +123 139 32 +255 246 205 +115 106 98 +90 222 123 +90 205 98 +90 189 74 +98 172 49 +98 156 24 +238 164 255 +189 156 164 +148 148 82 +106 148 0 +180 180 115 +74 65 57 +255 255 255 +172 180 172 +205 205 197 +246 255 238 +115 106 98 +238 222 24 +213 189 57 +189 164 98 +164 139 131 +139 115 172 +205 222 123 +172 172 148 +139 131 180 +115 90 213 +180 180 115 +74 65 57 +255 255 255 +0 0 0 +0 0 0 +246 255 246 +115 106 98 +222 24 238 +189 16 238 +164 8 238 +131 8 246 +106 0 246 +172 222 222 +139 148 230 +106 74 238 +82 0 255 +180 180 115 +74 65 57 +148 32 172 +189 106 213 +230 189 255 +255 255 255 +213 148 246 +189 139 205 +255 230 255 +230 180 213 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +115 98 90 +180 180 115 +74 65 57 +255 255 255 +222 230 246 +246 246 222 +246 255 255 +115 106 98 +255 205 74 +230 164 98 +205 123 123 +180 82 148 +156 41 172 +230 156 255 +197 98 238 +164 49 222 +131 0 205 +98 180 106 +0 0 0 +213 213 205 +255 255 255 +98 98 98 +230 8 8 +255 189 115 +65 205 255 +0 139 189 +255 156 148 +189 90 82 +139 246 255 +24 164 213 +255 189 180 +213 115 106 +0 0 0 +98 180 106 +0 0 0 +213 213 205 +255 255 255 +98 98 98 +230 8 8 +255 189 115 +238 238 172 +164 164 98 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 0 0 +164 0 0 +255 255 255 diff --git a/graphics/interface/status_screen.png b/graphics/interface/status_screen.png new file mode 100755 index 0000000000000000000000000000000000000000..2f9f8db855b60a1e9702b81b5ab03768adb106d4 GIT binary patch literal 1633 zcmV-n2A=teP)un?mjKyfS81={me;aV8~p`$ zf=dAw3|pN}Zj>%}Dy&YrJtR#EMaRtS%r3uqJPJX8AanfEl6*L`^X}~0g8^6y_Hj5I z2FA?Ej0tW>&Ms!$dVYS9&gYBN8MX}^;1yV4emf_d6#)GH9Imh6bX5x&S`W^hH35DE zxOZU=-z$2s^ngVJU<~)>wE*kELjc=&5P z{mZlQ*%$%GJI6cA#d5J7U_QTup+$fo*jd8-wi$5m0ayJ1YY$jm&*ytkUp}m$?Jfx3 z!jSvC8IbyVkedC=7v^mIB29lCrN=uj)8*o22Y?${tJGZY8FTx=q|lb$y@k`~ER92F zvS@|ogv>U;8DDnV$N*1U00%k1^9*qF?&e(v7`6ap4lpDDY5_Ho1H>(WUvhv00>DZI zQ_6rRuP6o)W`M^b0kG|W0r=eWI>2c3-S8Q_76e~;Ko~x<0Brl20r=e01VWx)ZkM)cBw2f#?{rNnx`7GuHp0aUAAqtR#KY`h+XY>$RTbM1KjOq1c?yIeag z;P#Ulq+1#;FmQ%*kU^@a)2W{R5q7X|0e~+T0n-!+)9@#-_pr}!hl|+^_xG^RaDNZ` zEUX3S>7VI?0Eg+}VRHBYKynC{KA;cSPC8iH2Iy)P091yPH%Ey+!NnsuVz1dLyw*B7 zdUL`v5F0lB5BP5Zph_s%CU}fsi?D7)x@dIE-Ywlq20D_F+oXh(h89@@Ks(-&G88oc z9l1?w`-SrNZ9CtJS^y9TJ%tx_0BE-!mH=TWVMB&w0AAF3AXR-Is7R=;A=Ck&IgSK6 zk@a@zeQd!HYO?@6F13uM!V7050JcbbSIY{(DnNM!)P07u5_!dB4zOL^%ZafKyCV0(b=wAdbpuq}M3~1c*EUgO&vks(A#VSRL3901%h^ zKyLtmPzoXFN(eGjKrJAqyQo>Km^{GdS7i#Yx+s}sg}`IVDn@32E=F33{4s}4HouJk zuLBvC24q)2UJHfbIsya>1%IMX2(jeRh%)OF!Y+N?Vs>>8fFLDu2(nKIN=yF5ve*ZO z99L@*85N0|V$1VF?pG0^HE4%1UMb1i)x?Gz=KvbVc-{S^nBzJpDFoHfJrgOEg?)`?vSeDVN%R-TNb1(+ckiEj;k{Q85Ihw6g2?&GL`zuSodbdVoSjzZ7T%kOHE7VetUb$pfo^$gKnD$bh(G z2)m?aS_jzj;THs(0JJy|H1Ws0V5i!UUkWq>XmJp`iJw=AP8NPC(B?tp|Ghv}0ZZsa zO+*+9HBoNdH+$d~fbfGyP+aDu^f-7 zj}%#QuKawSt##Sh)I+@y1T(gD89RDcZwImYHUozi^UPJk=2u7^6nl&~;E*GZIpLHu z&bcs*l6{tQWceBkIckYwhNJ?sHg5LMr|n#^=v3rZn6hU6Sn}rUGy<%eb@ArA^a8A# z^}aW6{atd!H8iNt%ir&tAAZ^J$Cljz`(-!NTNd3fyIH(s;r`>r!gt!6 m?@#xa?M!!>*I!Gu4X)^NZEz!ge;qCgA^kt4UN&$l4eSA1nuW*! literal 0 HcmV?d00001 diff --git a/graphics/interface/status_tilemap2.bin b/graphics/interface/status_tilemap2.bin new file mode 100755 index 0000000000000000000000000000000000000000..f835047d19de549fe4392687f459e0c397e519b1 GIT binary patch literal 2048 zcmeH_OK!qI5Jb5O!V1|Co)ioB0&#=f#9qbRkMIdm!k>KLHrQ@P*my<)v5Amfi?O<0 z)~M>$YX9$fqIHp6H-9B&z#BtGjG6Gxl#fKQ->06F%iob8Q;1hm=<6;J5tsjgW~KkwoL#p@O%o`hZ91&A~MUXGDGFX!*+?QN`H<4;-rFgs7YJ24P5y>d`>FgUeo1uv%k}<7(#c8M fj_J=dWk0pQ7uqG+X63Ki&i?IGR?{kh`%B;eG*-3C literal 0 HcmV?d00001 diff --git a/graphics/interface/status_tilemap3.bin b/graphics/interface/status_tilemap3.bin new file mode 100755 index 0000000000000000000000000000000000000000..9c11ccc4f021a38f8e3750da1250e8e503fe843e GIT binary patch literal 2048 zcmeH_J8r^25QaIzSGd@MCc*-mgaTwk0XN_#rh?or;TeTj!Yj#buy-}m67NbuX%Mo% zVyzkf)@tS}m2U5O;_*-TZa!qh3$KisFlEM^1#c;%;F$*tUp`W?CLzp`1g00Ow({kx z)HDNHIR=60)u>bC-4pol{32paqQde8DpX0?^kUlH`S&bGY+ruAXSa8`dQCoa^_?Xv z)@;~nN3+@opX}Ik;K+$DzWH(bTd@r7U=V-BRQGB8ZCZv(Ugj^Rx=-V8npY|MFI^1R l;9)WM>bIP-kKrSe%6CS~4>fY3+%-+SAp~Wt~$(697?zT8jVx literal 0 HcmV?d00001 diff --git a/graphics/misc/bag.pal b/graphics/misc/bag.pal new file mode 100755 index 0000000000..3c7c2370aa --- /dev/null +++ b/graphics/misc/bag.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +115 255 139 +98 222 123 +82 197 106 +74 164 90 +57 139 74 +49 106 57 +32 82 41 +24 49 24 +8 24 8 +156 255 131 +213 213 222 +189 189 197 +98 98 115 +255 255 255 +0 0 0 diff --git a/graphics/misc/bag_female.png b/graphics/misc/bag_female.png new file mode 100755 index 0000000000000000000000000000000000000000..65446e269858bf98357f39973f93008add628289 GIT binary patch literal 1460 zcmV;l1xxygP)m8G6o56v$aI4*&JQ@n8gEEQAya|cqTrz&5{ZPT`ws`ihNk;h-F#!W zIzZ9l&?Wv0_Zv!)d?ZD^=c2$BZ3?~Nj?w!f%Caqfd5>8(#S}zb2ov9v*^1re`3>V3 zbD^`WRwg7Xd5Y+?%bM6reVRdjkk&wdnuriwsT5GE^29}&w}7hPI#&Mtoe2Qs!U4BF zYkxLOA6IUMcQzegwME|AIcD$76jI*^2yTzOeQ>}+Rr67BwF2Pgx>}50NVVdRcL1=( z?f48=D;9v&I6t2+BH(sWv3wAWudX5>U+1G(<^d>ga>2Rzu;jVVQNZz)iB-KWE0+jUZp_J_kCdNc&|C;4>JpKBRLDPTi}Q3OaF zr~^=AfDFJ62R0s<;lP6jE^*+a2ePhq-&`)kX!v!v-)$~rE$pZs)^oP>rV?AhNe+Y^~ z_`{uve#IgDf!&y3q(6i;i|~g5fce7^82dv22!H5-(FRS1W@30a_>W4L37DG#j$%z%v*<;Noc$Dc8vJO-d2wF7^+XY4z3c(*aY?~FYS{h{kV z9gk20IUak5N&R6|1NpZ8u*ZOS{lCP3=mdR%0=xqZWGYZh@&5|45^-VwcDI!XEZh5o zf6_jrY48Uq6AXdKAE3}62l>b!0B9+H@RbP4A3`Mp_lJD|aDSLZwG7lBX7B)^{Gkj0 z?hn@h2&#Vp0M);MGw_P&UtCw_TB>SA^e+nTg6dxs!W1g{WgPEc6mX-~ME@dGBB=fa zyxfNBUqB_Iq52mfL1g~|DiKNjAprhrsQv|Wl?JkZ!Cb9^>|emUN%k*1K=m(hAoMS2 z;C%p0nV_Zm7YqswbpL_?qJ`B~B3@tpA?jZMup{~x8$d}taD~P?OTt@0s6}A{)cV1tIzI#*mj~myZ=Ex8GzpZ zFk_-VyZ^xeXZJryfiBGf*b#tVTW2^B{Na)Sf zNklO|4eVC;^ z=@k<8(%zCiG@-ZMC)k(h%*c}F&o^=tnkH=ZLDrGy$ET52()ZhMG@E^d_`?5obbS7_ z`85~=o;FQ$O-6Rm@K|10flEG)mV4_ASbl`inp*dOcq~2olLgrF;U)G83oys{oCO13 zz(9;KUWyFxEK`Ep2w-6TO%t?0N;nM+38NmkcJt5xvhb?k2Rh3)IxvsUqHZ78 z$h~s)3t|zu0cr_$$t95iM3EaJLGVj5kKBz0Tt%*n`iKBvyIMuvxVzo1G+==lkafU@ z0ayhb2A~+X*F5$R172uAyh7~PeE#~?65|AIJuO4Vfe>Tw=7C+qj?m7-r4D##731eO4}V~9i(-#{Z2;%1tOYjPW$a-Ea4-YdKm7dVOO~PCl4t4c z#8)8>UcX9kE`T)v1lW7?CdP>gELvb4V?waEYXSL8RlWdlkYT)G3HX*TALk**yEXfM z9Z;IE1bi!$Z{I_hVGiK6@AGlI!<$?NiX_ZDEJeJ@1L^*DNaDvT;Q4`c**b*yNgxAB z;1d-{694Y6f{I8f^@BhISdP1Qeixz7zfpmd+)DtvyOjq(!GVHw<6=X3N*!9D53#X- zAAnDykbzX4LJOn=P#D0$1e8auQxsLn`-xNMaxRelAmIhOdp>) zoJjevBuUsFO7k)6)Rfj$!p~z+*2XZ8nnlTfRN(Mu7Lz|r{vaio{9*Ek$Kemv34d_t z34f^QxIZ|QR-^vFib-9K_ya3gb$$2N?hg(xBX{rY{!sBU!%Dx^A2@Ir^M^`|kNCs9 zEXb%oID-*b^x$v`aJqtS^@l_63^sqL0YLSKik$F=@<2}cL!F-Thx#A*1N{vAVNOPB zHV^h_AQ$5a*nKsUWX`Tfa@p7k4$y)$iOoRf?L|#~vl>VX(8Ri%MGF)GvKdI1BEl8} zIRZt9Ee5jaQe+kb>3}@57)S@u)M6kK0MD`;r}+m03kiS>L;)ZJ8TLSd+N~sjfd#vv z#(+h^qay&INJUsP@XKjPkU$1Pr2qtjgzWoT1P4q_%EHxgoDo~lKv3BM6}obDfEfr1 zJ0M4(fuN4anPIrDX&?x#+6Ty%181gzpqAj{%pWv>8;G!rFc%+yU>t$7s}9f=C2j$< zZGY;5k(q$u4{I^<)t}-6HV__nx8egfkO5d4f+6btc?T?Qf`MBATMdN8lefp(4R$c( z;;wZtAOPxM^kH-`P60)l?bKbYH-*~409qU$(!t2u(G4>Y0(LNh<9+9cf!d(>BpnQH z0`J$sINhKy1Vg>M9cp$kW=d3Lkq(ncQ^P=ld{&32Ibt zr=qkPfO2MpQ`2e?3;^JIzzE?FfL?T2a^Y!qeV8ryskW4}e={b3nEXLXF!{se50BU% z|S)h2f$pv z*lU2My4-Exfe3;9_JwHJuIKmfe|pcZ)Z{RgsF zZyf#ohe9vV`uh*&0)@JM0hXKT{RedilRr%UFq{0L13rR3)EZ#;162sqA2w7WOn=x& zHEjm@1AE}mH@~furJLK^am*c!|EvlSxcrApWUL6l>}7QTwVPC|9^8=`D;KbP0l+XkK`G`ub literal 0 HcmV?d00001 diff --git a/graphics/types/contest_beauty.png b/graphics/types/contest_beauty.png new file mode 100755 index 0000000000000000000000000000000000000000..b52fe3ca47a7eeab2f51191b2899c95ab3b3395e GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1mjd-VUBDc_2t=44Iz zHs{{GtN-75SqA-&>i&Op%ao*~C5}t(HSe7=Wl3{&@&Et-cbFcu1?tK6ba4!kn3~$Z zk?*hqkIUYav*8m(%QODlA3pos-s1YgiCQO^bqXIv9?MDn?X&02T{XUJ?rTAD(R@pn zaEUmEH8$-(z`Qu7zeM}QANJ`@3oV+uA4zzHRHuL9J8{lRp=#|n8J^F3Z=dV@{PDMb Y;MP{&cNw)hKx-L1UHx3vIVCg!0Nf>D6aWAK literal 0 HcmV?d00001 diff --git a/graphics/types/contest_cool.png b/graphics/types/contest_cool.png new file mode 100755 index 0000000000000000000000000000000000000000..f0ca72323009e51795bd13a6f23e53f22d291b8b GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1o(f7S3?v*A%g&1Xlm z_AasP&NBS}zk1D@>U;N&7Dst`Ia==Bdljgxxw`oO|NkCw+!8=ef~SjPh{V*^^9MN_ z40u`}c5ttdmU!R!;@|0%hLq-TQLR~3AM9CvIVz}Ty*_ruL3nxEqh;J8F+K~+n3ZIn zS2!GEsAYUDpRrl!!=pxx6$>t9QU(A3 literal 0 HcmV?d00001 diff --git a/graphics/types/contest_cute.png b/graphics/types/contest_cute.png new file mode 100755 index 0000000000000000000000000000000000000000..eeb86c431be05f1289f2322bd99691e3ee7992db GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1mjd-VUBDc_2t=44Iz zHs{{GtN-75SqA-&>i&Op%ao*~C5}t(HSe7=Wl3{&@&Et-cbFcu1?oxkba4!kn3~#e z$k*V&!IJs)X+~j0R(fWQr0Ac7k3Kw{&r5u6=m_-sxF;^2%gz1qfHun_4wo0|57rel zFU^Skvb3k+sc56)fuIutg%J_`Dc;6rxmh=Z_;;K Mr>mdKI;Vst01C=i{r~^~ literal 0 HcmV?d00001 diff --git a/graphics/types/contest_smart.png b/graphics/types/contest_smart.png new file mode 100755 index 0000000000000000000000000000000000000000..7659cc4f291c987aa09c8c80dbb435e32da30535 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1mj`ah}qY*19QW3lCb zFUu)=m;7I|SK;0>!|EvlSxcrApWUL6l>}7QTwVPC|9^8=`D;KU;N&7Dst`Ia==Bdljgxxw`oO|NkCw+!8=eil>WXh{V*?{*Am1 z4jitTJ*KT2t-~%IvfWY?C)U7wKscG_N7wuh94ri4k7wR^c;E<6#EV0{JwG}Hw3eL` z6MXdU9@9#W@bgZ;bA-OU4GU;N&7Dst`Ia==Bdljgxxw`oO|NkCw+!8=enx~6nh{V*?en-9r z1s;}alaH6>di4!W1<(IlEO&}uOj~G!1t+ghL{vvr+fBoZhx(@Ocr3^{M@5mN%b|x$ z+n42bbmt|PCf5VLPfmPy>(j`Z9)86=w0z^zMXo;%`qkgd*dufN{daSYrOPZ7g)~9V OXYh3Ob6Mw<&;$U(mr!|EvlSxcrApWUL6l>}7QTwVPC|9^8=`D;KBD<6WO`n?!TA6JF87~ T$xb~ppsfs^u6{1-oD!MU;N&7Dst`Ia==Bdljgxxw`oO|NkCw+!8=eo~Mgrh{V*?ervu4 z1p$}shSx-n@vU3Z`u)PG&*xaDNx!lBp&2HZA`~}+x8slG`2%|HTxTZLc@(WrXgGaG z!$(shE4Num^v*)oFpW7sT@FTPntu`7m=u3h`}po(=Faj9PF(2umzZtiZU;N&7Dst`Ia==Bdljgxxw`oO|NkCw+!8=eo~Mgrh{V*?{w@$d%)&aF8=PJhG%j1V!lTag zpw1elC5L<`OrQ2RwmU#lyqZN^QEsapyJYv8e1mz7f4Bc- Xy_t}fF3EorU;N&7Dst`Ia==Bdljgxxw`oO|NkCw+!8=evZsq0uvPhP+h`Gl^I3W_mBngYE(*$E4KnXNxIbjO?tx1GfxvW&|_ zu{1iYQuySf&M!;2{GXT$>V>(^pVY#r@i&Op%ao*~C5}t(HSe7=Wl3{&@&Et-cbFcu1?nmAba4!kn3{V2 zB5#8N56cB9@c{D;|C%rUo&J*HI&V~TQqqCn3J(u1budYb+O4ytaQfT|j*YvyX77v? zozCFQ+`9UZ&3$L?7MiwA_z^}XJfCDVfCpsWl5JcjFhUREcc!|EvlSxcrApWUL6l>}7QTwVPC|9^8=`D;KwA0~qr)qP`8Q0&@2E?5s@Jo)7@v;2@#4WDPn(Oa4o<9dQaN@= z&s(G!Au{3K198WSjF#4_&J_!7C;qE;k%;$v=#iM%CvtYyt%_SZ=|0`DTk9|W(%kcZ b-G0UeU*jtTL#(a>Eobm_^>bP0l+XkK9Ryj= literal 0 HcmV?d00001 diff --git a/graphics/types/ground.png b/graphics/types/ground.png new file mode 100755 index 0000000000000000000000000000000000000000..d3f6787b29a0a580e5e184a1f3ce4522ac832ac0 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1o(f7S3?v*A%g&1Xlm z_AasP&NBS}zk1D@>U;N&7Dst`Ia==Bdljgxxw`oO|NkCw+!8=ek*AAeh{V*?enY+% z10I&`yME6oE%_*}Az;dSsrJU#U+jFxOjwphIei~i26+Ea&3dA@Dtv>>Yo65Q?st;}q-I~dHFL=x`E5O~ax literal 0 HcmV?d00001 diff --git a/graphics/types/ice.png b/graphics/types/ice.png new file mode 100755 index 0000000000000000000000000000000000000000..5ff2f69aa7845da1ad97254ac48f73a06e2b06ee GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1mjd-VUBDc_2t=44Iz zHs{{GtN-75SqA-&>i&Op%ao*~C5}t(HSe7=Wl3{&@&Et-cbFcu1?q|Rba4!kn3~$J zDAW+Z;o@o5-|oBdMWwErvS|K>4z||!w~x%e$=DIKYpcQKL#>TF9tu8^Dy%))a+%>b zi}RHUTH6!cl@mf0!jI@q+CIbW)3ll!anC3ITD;-!zWofFkL8{BubkZmw1&ac)z4*} HQ$iB}#qe1+ literal 0 HcmV?d00001 diff --git a/graphics/types/move_types_1.pal b/graphics/types/move_types_1.pal new file mode 100755 index 0000000000..951aa69cb9 --- /dev/null +++ b/graphics/types/move_types_1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 213 49 +246 131 49 +197 49 41 +230 197 106 +189 164 57 +139 106 49 +255 255 123 +172 172 123 +222 222 197 +115 90 74 +74 65 57 +189 189 213 +0 0 0 +131 123 115 +255 255 255 diff --git a/graphics/types/move_types_2.pal b/graphics/types/move_types_2.pal new file mode 100755 index 0000000000..08dcea47c3 --- /dev/null +++ b/graphics/types/move_types_2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +205 197 255 +172 148 246 +115 90 156 +106 148 246 +156 222 222 +213 255 238 +74 57 82 +255 90 139 +255 197 180 +148 98 98 +164 65 164 +222 131 189 +148 148 164 +131 123 115 +255 255 255 diff --git a/graphics/types/move_types_3.pal b/graphics/types/move_types_3.pal new file mode 100755 index 0000000000..4db37235b3 --- /dev/null +++ b/graphics/types/move_types_3.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +197 255 98 +123 205 82 +90 131 65 +115 57 255 +74 57 148 +189 164 255 +172 189 32 +222 230 49 +123 148 16 +106 164 148 +115 205 180 +32 106 98 +0 0 0 +131 123 115 +255 255 255 diff --git a/graphics/types/mystery.png b/graphics/types/mystery.png new file mode 100755 index 0000000000000000000000000000000000000000..a2ea01d556a3d6b1a638c078c3dc702e1013b9bf GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1mj`ah}qY*19QW3lCb zFUu)=m;7I|SK;0>!|EvlSxcrApWUL6l>}7QTwVPC|9^8=`D;K&o zHRe)O$(h6=HMycCA;*6STa|sTU;N&7Dst`Ia==Bdljgxxw`oO|NkCw+!8=ehNp{Th{V*?enY+n z0}j{7uTQQz%9IwH%i&Op%ao*~C5}t(HSe7=Wl3{&@&Et-cbFcu1?nmHba4!kn3~#e z$j7Y6!*X}&$>hti6Wf>G;JBo2?-*tOV9D1+Z_ORjiIH*!Y@3b0-#>JGUqpqppM+C~ z;H#Ne+8y78tdo4Gx$AkK!D5#cEz3imaDEdx`&U08>Ac@n*^GlX)!DMS82L6C21{RW kx4r%=b$jl^!k>Q`Q%$$bxLT}o4(J31Pgg&ebxsLQ0L;8&#sB~S literal 0 HcmV?d00001 diff --git a/graphics/types/psychic.png b/graphics/types/psychic.png new file mode 100755 index 0000000000000000000000000000000000000000..975d1fb553b1abdb287a6b63b496049766c62680 GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1mjd-VUBDc_2t=44Iz zHs{{GtN-75SqA-&>i&Op%ao*~C5}t(HSe7=Wl3{&@&Et-cbFcu1?nmFba4!kn3~#e z$mit9;gb3F$zs-stn^G9$*Tp-*ACuz^IcSBPl{SX*^@6fcHESe7C+2*IBU(DzP>9H zUTAGwF=^eD4lj=%9OpX=lzJnigcWaiDgF@VsNq%@y382gqa#|jm4$KH^2?L`{>Xp3 i^?mi+`_kw4zqhyLnHSNt>8U)>0Sun5elF{r5}E*RCSx=J literal 0 HcmV?d00001 diff --git a/graphics/types/rock.png b/graphics/types/rock.png new file mode 100755 index 0000000000000000000000000000000000000000..3793597f94d29e898af980f3f64a74e3d97b6b27 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1o(f7S3?v*A%g&1Xlm z_AasP&NBS}zk1D@>U;N&7Dst`Ia==Bdljgxxw`oO|NkCw+!8=ex~Gd{h{V*?enY+n z0}fZop65juq&t!eFU~GsYW`zt*5$TeY)e7%6VnzkN((ywHIov&)xsZpYW{Evfum5 Q9iWvAp00i_>zopr0Cz%Hc>n+a literal 0 HcmV?d00001 diff --git a/graphics/types/steel.png b/graphics/types/steel.png new file mode 100755 index 0000000000000000000000000000000000000000..29748639c5d345adfdba463631daf0462f309394 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!VDx^^%AmxltF+`h%1o(f7S3?v*A%g&1Xlm z_AasP&NBS}zk1D@>U;N&7Dst`Ia==Bdljgxxw`oO|NkCw+!8=ehNp{Th{V*?en+kb z2M*V}+g`rOZPpXvc`RzxP@^w!f62;(W$g-fKUOFyU%s{RM3_~XCbQ-gDY>44?4~{) zf%zwbPA}^(SjNGn7*m)Ii&Op%ao*~C5}t(HSe7=Wl3{&@&Et-cbFcu1?oxlba4!kn3~#e z$ag@2!!>f(w~(@{d~g3+8`S4BC~fpys4w*Rvi}5)&379ouM@IZq2l9_oGN;C-5!_r z8%{{wk{_q~Fmc&%X+c8THTFlda%VD$sK7Y7O%{D!K S#lt`g89ZJ6T-G@yGywoXgE}r{{dg~at{Ci literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_D960D0.bin b/graphics/unknown/unknown_D960D0.bin new file mode 100755 index 0000000000..6a6f7c0492 --- /dev/null +++ b/graphics/unknown/unknown_D960D0.bin @@ -0,0 +1 @@ +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000€ÀĀŀƀǀȀɀʀˀ̀̀000000000000000000ЀрҀӀԀՀր׀؀ـڀۀ܀݀ހ߀0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/graphics/unknown/unknown_D963A4.bin b/graphics/unknown/unknown_D963A4.bin new file mode 100755 index 0000000000..6312b86450 --- /dev/null +++ b/graphics/unknown/unknown_D963A4.bin @@ -0,0 +1 @@ +τ΄̈́̄˄ʄɄȄDŽƄńĄÄ„߄ބ݄܄ۄڄل؄ׄքՄԄӄ҄фЄ \ No newline at end of file diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 6172da9c7e..86f2436a95 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -11,6 +11,10 @@ unknowngfxdir := graphics/unknown btintgfxdir := graphics/battle_interface masksgfxdir := graphics/battle_anims/masks bttransgfxdir := graphics/battle_transitions +typesdir := graphics/types + +types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark +contest_types := cool beauty cute smart tough $(monstillfrontdir)/castform_still_front_pic.4bpp: $(monstillfrontdir)/castform_normal_form_still_front_pic.4bpp \ $(monstillfrontdir)/castform_sunny_form_still_front_pic.4bpp \ @@ -356,3 +360,15 @@ $(masksgfxdir)/unknown_C2EA50.4bpp: $(masksgfxdir)/unknown_C2EA50.png $(bttransgfxdir)/vs_frame.4bpp: $(bttransgfxdir)/vs_frame.png $(GFX) $< $@ -num_tiles 16 + +$(menudir)/party_menu_misc.4bpp: $(menudir)/party_menu_misc.png + $(GFX) $< $@ -num_tiles 62 + +$(typesdir)/move_types.4bpp: $(types:%=$(typesdir)/%.4bpp) $(contest_types:%=$(typesdir)/contest_%.4bpp) + @cat $^ >$@ + +$(typesdir)/move_types.gbapal: $(typesdir)/move_types_1.gbapal $(typesdir)/move_types_2.gbapal $(typesdir)/move_types_3.gbapal + @cat $(typesdir)/move_types_1.gbapal $(typesdir)/move_types_2.gbapal $(typesdir)/move_types_3.gbapal >$@ + +$(menudir)/bag_screen.4bpp: $(menudir)/bag_screen.png + $(GFX) $< $@ -num_tiles 53 diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index ba0c4dde71..45aaf0e08b 100755 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -93,7 +93,7 @@ extern struct CompressedSpriteSheet gUnknown_0861D074; extern struct CompressedSpriteSheet gUnknown_0861D0F8; extern struct CompressedSpritePalette gUnknown_0861D100; extern struct CompressedSpritePalette gUnknown_0861D07C; -extern u8 gUnknown_08D97B84; +extern u8 gMoveTypes_Pal; extern u8 gUnknown_08D97D0C; extern void reset_temp_tile_data_buffers(); extern void decompress_and_copy_tile_data_to_vram(u8 a, void* tiledata, u8 b, u8 c, u8 d); @@ -648,7 +648,7 @@ u8 sub_81BFEB0() gUnknown_0203CF1C->unk40F0++; break; case 12: - LoadCompressedPalette(&gUnknown_08D97B84, 0x1D0, 0x60); + LoadCompressedPalette(&gMoveTypes_Pal, 0x1D0, 0x60); gUnknown_0203CF1C->unk40F0 = 0; return 1; } From 8a338f44db2151412c383f4495ddd0d1fe23e984 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Tue, 26 Dec 2017 22:37:36 -0500 Subject: [PATCH 38/54] thirteenth wave of graphics.s dumps --- asm/rayquaza_scene.s | 62 ++-- data/graphics.s | 325 +++++++++++------- graphics/interface/bag_pyramid.pal | 35 ++ graphics/interface/bag_pyramid.png | Bin 0 -> 778 bytes graphics/interface/bag_swap.png | Bin 0 -> 159 bytes graphics/interface/berry_tag.bin | Bin 0 -> 2048 bytes graphics/interface/berry_tag_title.bin | Bin 0 -> 2048 bytes graphics/interface/check_berry.pal | 99 ++++++ graphics/interface/check_berry.png | Bin 0 -> 743 bytes graphics/interface/check_berry_circle.png | Bin 0 -> 233 bytes graphics/interface/mart_frame.bin | Bin 0 -> 2048 bytes graphics/interface/mart_frame.png | Bin 0 -> 314 bytes graphics/interface/money.png | Bin 0 -> 210 bytes graphics/interface/pokeblock.bin | Bin 0 -> 2048 bytes graphics/interface/pokeblock_case_frame.pal | 99 ++++++ graphics/interface/pokeblock_case_frame.png | Bin 0 -> 426 bytes graphics/interface/pokeblock_device.png | Bin 0 -> 530 bytes .../interface/pokeblock_feeding_bg_map.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/chase.pal | 67 ++++ graphics/rayquaza_scene/chase_bg.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/chase_bg.png | Bin 0 -> 336 bytes graphics/rayquaza_scene/chase_streaks.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/chase_streaks.png | Bin 0 -> 279 bytes graphics/rayquaza_scene/clouds.pal | 35 ++ graphics/rayquaza_scene/clouds.png | Bin 0 -> 964 bytes graphics/rayquaza_scene/clouds1.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/clouds2.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/clouds3.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/groudon.png | Bin 0 -> 1578 bytes graphics/rayquaza_scene/groudon_claw.png | Bin 0 -> 445 bytes graphics/rayquaza_scene/groudon_left.png | Bin 0 -> 1153 bytes graphics/rayquaza_scene/groudon_shoulder.png | Bin 0 -> 259 bytes graphics/rayquaza_scene/groudon_tail.png | Bin 0 -> 168 bytes graphics/rayquaza_scene/hush_bg.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/hush_bg.pal | 51 +++ graphics/rayquaza_scene/hush_bg.png | Bin 0 -> 339 bytes graphics/rayquaza_scene/hush_ring.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/hush_ring.png | Bin 0 -> 385 bytes graphics/rayquaza_scene/hush_ring_map.bin | Bin 0 -> 256 bytes graphics/rayquaza_scene/kyogre.png | Bin 0 -> 1110 bytes graphics/rayquaza_scene/kyogre_fin.png | Bin 0 -> 261 bytes graphics/rayquaza_scene/kyogre_right.png | Bin 0 -> 505 bytes graphics/rayquaza_scene/kyogre_shoulder.png | Bin 0 -> 179 bytes graphics/rayquaza_scene/overcast.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/overcast.png | Bin 0 -> 3705 bytes graphics/rayquaza_scene/overcast2.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/overcast2.pal | 35 ++ graphics/rayquaza_scene/overcast2.png | Bin 0 -> 2408 bytes graphics/rayquaza_scene/rayquaza.bin | Bin 0 -> 1024 bytes graphics/rayquaza_scene/rayquaza.png | Bin 0 -> 3187 bytes graphics/rayquaza_scene/rayquaza_chase.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/rayquaza_chase.png | Bin 0 -> 2184 bytes graphics/rayquaza_scene/rayquaza_chase2.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/rayquaza_fly1.png | Bin 0 -> 815 bytes graphics/rayquaza_scene/rayquaza_flyin.png | Bin 0 -> 391 bytes graphics/rayquaza_scene/rayquaza_hover.png | Bin 0 -> 2370 bytes graphics/rayquaza_scene/rayquaza_light.bin | Bin 0 -> 2048 bytes graphics/rayquaza_scene/rayquaza_light.png | Bin 0 -> 534 bytes graphics/rayquaza_scene/rayquaza_tail.png | Bin 0 -> 264 bytes graphics/rayquaza_scene/smoke.png | Bin 0 -> 242 bytes graphics/rayquaza_scene/splash.png | Bin 0 -> 205 bytes graphics/unknown/unknown_D9A88C.bin | Bin 0 -> 2048 bytes graphics/unknown/unknown_D9AE04.bin | Bin 0 -> 2048 bytes graphics/unknown/unknown_D9AF44.pal | 19 + graphics_file_rules.mk | 20 ++ include/graphics.h | 46 +-- src/rayquaza_scene.c | 46 +-- 67 files changed, 742 insertions(+), 197 deletions(-) create mode 100755 graphics/interface/bag_pyramid.pal create mode 100755 graphics/interface/bag_pyramid.png create mode 100755 graphics/interface/bag_swap.png create mode 100755 graphics/interface/berry_tag.bin create mode 100755 graphics/interface/berry_tag_title.bin create mode 100755 graphics/interface/check_berry.pal create mode 100755 graphics/interface/check_berry.png create mode 100755 graphics/interface/check_berry_circle.png create mode 100755 graphics/interface/mart_frame.bin create mode 100755 graphics/interface/mart_frame.png create mode 100755 graphics/interface/money.png create mode 100755 graphics/interface/pokeblock.bin create mode 100755 graphics/interface/pokeblock_case_frame.pal create mode 100755 graphics/interface/pokeblock_case_frame.png create mode 100755 graphics/interface/pokeblock_device.png create mode 100755 graphics/interface/pokeblock_feeding_bg_map.bin create mode 100755 graphics/rayquaza_scene/chase.pal create mode 100755 graphics/rayquaza_scene/chase_bg.bin create mode 100755 graphics/rayquaza_scene/chase_bg.png create mode 100755 graphics/rayquaza_scene/chase_streaks.bin create mode 100755 graphics/rayquaza_scene/chase_streaks.png create mode 100755 graphics/rayquaza_scene/clouds.pal create mode 100755 graphics/rayquaza_scene/clouds.png create mode 100755 graphics/rayquaza_scene/clouds1.bin create mode 100755 graphics/rayquaza_scene/clouds2.bin create mode 100755 graphics/rayquaza_scene/clouds3.bin create mode 100755 graphics/rayquaza_scene/groudon.png create mode 100755 graphics/rayquaza_scene/groudon_claw.png create mode 100755 graphics/rayquaza_scene/groudon_left.png create mode 100755 graphics/rayquaza_scene/groudon_shoulder.png create mode 100755 graphics/rayquaza_scene/groudon_tail.png create mode 100755 graphics/rayquaza_scene/hush_bg.bin create mode 100755 graphics/rayquaza_scene/hush_bg.pal create mode 100755 graphics/rayquaza_scene/hush_bg.png create mode 100755 graphics/rayquaza_scene/hush_ring.bin create mode 100755 graphics/rayquaza_scene/hush_ring.png create mode 100755 graphics/rayquaza_scene/hush_ring_map.bin create mode 100755 graphics/rayquaza_scene/kyogre.png create mode 100755 graphics/rayquaza_scene/kyogre_fin.png create mode 100755 graphics/rayquaza_scene/kyogre_right.png create mode 100755 graphics/rayquaza_scene/kyogre_shoulder.png create mode 100755 graphics/rayquaza_scene/overcast.bin create mode 100755 graphics/rayquaza_scene/overcast.png create mode 100755 graphics/rayquaza_scene/overcast2.bin create mode 100755 graphics/rayquaza_scene/overcast2.pal create mode 100755 graphics/rayquaza_scene/overcast2.png create mode 100755 graphics/rayquaza_scene/rayquaza.bin create mode 100755 graphics/rayquaza_scene/rayquaza.png create mode 100755 graphics/rayquaza_scene/rayquaza_chase.bin create mode 100755 graphics/rayquaza_scene/rayquaza_chase.png create mode 100755 graphics/rayquaza_scene/rayquaza_chase2.bin create mode 100755 graphics/rayquaza_scene/rayquaza_fly1.png create mode 100755 graphics/rayquaza_scene/rayquaza_flyin.png create mode 100755 graphics/rayquaza_scene/rayquaza_hover.png create mode 100755 graphics/rayquaza_scene/rayquaza_light.bin create mode 100755 graphics/rayquaza_scene/rayquaza_light.png create mode 100755 graphics/rayquaza_scene/rayquaza_tail.png create mode 100755 graphics/rayquaza_scene/smoke.png create mode 100755 graphics/rayquaza_scene/splash.png create mode 100755 graphics/unknown/unknown_D9A88C.bin create mode 100755 graphics/unknown/unknown_D9AE04.bin create mode 100755 graphics/unknown/unknown_D9AF44.pal diff --git a/asm/rayquaza_scene.s b/asm/rayquaza_scene.s index e6147333c7..ab04d8660a 100755 --- a/asm/rayquaza_scene.s +++ b/asm/rayquaza_scene.s @@ -1119,7 +1119,7 @@ sub_81D706C: @ 81D706C push {r4,lr} sub sp, 0x4 bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08DA33C0 + ldr r1, =gRaySceneClouds_Gfx movs r0, 0 str r0, [sp] movs r2, 0 @@ -1130,22 +1130,22 @@ _081D7082: lsls r0, 24 cmp r0, 0 bne _081D7082 - ldr r0, =gUnknown_08DA3988 + ldr r0, =gRaySceneClouds2_Tilemap ldr r4, =gUnknown_0203CF60 ldr r1, [r4] adds r1, 0x4 bl LZDecompressWram - ldr r0, =gUnknown_08DA3824 + ldr r0, =gRaySceneClouds1_Tilemap ldr r1, [r4] ldr r2, =0x00000804 adds r1, r2 bl LZDecompressWram - ldr r0, =gUnknown_08DA3A88 + ldr r0, =gRaySceneClouds3_Tilemap ldr r1, [r4] ldr r2, =0x00001004 adds r1, r2 bl LZDecompressWram - ldr r0, =gUnknown_08DA37E8 + ldr r0, =gRaySceneClouds_Pal movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette @@ -2811,20 +2811,20 @@ sub_81D7E9C: @ 81D7E9C push {r4,lr} sub sp, 0x4 bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08DA33C0 + ldr r1, =gRaySceneClouds_Gfx movs r4, 0 str r4, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DA4F70 + ldr r1, =gRaySceneOvercast_Gfx str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DA3C94 + ldr r1, =gRaySceneRayquaza_Gfx str r4, [sp] movs r0, 0x2 movs r2, 0 @@ -2835,22 +2835,22 @@ _081D7ED0: lsls r0, 24 cmp r0, 0 bne _081D7ED0 - ldr r0, =gUnknown_08DA3988 + ldr r0, =gRaySceneClouds2_Tilemap ldr r4, =gUnknown_0203CF60 ldr r1, [r4] adds r1, 0x4 bl LZDecompressWram - ldr r0, =gUnknown_08DA60B8 + ldr r0, =gRaySceneOvercast_Tilemap ldr r1, [r4] ldr r2, =0x00000804 adds r1, r2 bl LZDecompressWram - ldr r0, =gUnknown_08DA4DEC + ldr r0, =gRaySceneRayquaza_Tilemap ldr r1, [r4] ldr r2, =0x00001004 adds r1, r2 bl LZDecompressWram - ldr r0, =gUnknown_08DA4DA8 + ldr r0, =gRaySceneRayquaza_Pal movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette @@ -3354,14 +3354,14 @@ sub_81D8358: @ 81D8358 push {r4-r7,lr} sub sp, 0xC bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08DA7528 + ldr r1, =gRaySceneRayquazaLight_Gfx movs r4, 0 str r4, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DA69BC + ldr r1, =gRaySceneOvercast2_Gfx str r4, [sp] movs r0, 0x1 movs r2, 0 @@ -3374,12 +3374,12 @@ _081D8380: lsrs r6, r0, 24 cmp r6, 0 bne _081D8380 - ldr r0, =gUnknown_08DA7AAC + ldr r0, =gRaySceneRayquazaLight_Tilemap ldr r5, =gUnknown_0203CF60 ldr r1, [r5] adds r1, 0x4 bl LZDecompressWram - ldr r0, =gUnknown_08DA7784 + ldr r0, =gRaySceneOvercast2_Tilemap ldr r1, [r5] ldr r4, =0x00001804 adds r1, r4 @@ -3406,7 +3406,7 @@ _081D8380: ldr r2, =0x010000d0 adds r0, r7, 0 bl CpuFastSet - ldr r0, =gUnknown_08DA7744 + ldr r0, =gRaySceneOvercast2_Pal movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette @@ -3961,20 +3961,20 @@ sub_81D88D0: @ 81D88D0 push {r4,lr} sub sp, 0x4 bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08DA80BC + ldr r1, =gRaySceneRayquazaChase_Gfx movs r4, 0 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DA7EAC + ldr r1, =gRaySceneChaseStreaks_Gfx str r4, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DA7C30 + ldr r1, =gRaySceneChaseBg_Gfx str r4, [sp] movs r0, 0x3 movs r2, 0 @@ -3985,27 +3985,27 @@ _081D8904: lsls r0, 24 cmp r0, 0 bne _081D8904 - ldr r0, =gUnknown_08DA8D6C + ldr r0, =gRayChaseRayquazaChase2_Tilemap ldr r4, =gUnknown_0203CF60 ldr r1, [r4] adds r1, 0x4 bl LZDecompressWram - ldr r0, =gUnknown_08DA8B40 + ldr r0, =gRayChaseRayquazaChase_Tilemap ldr r1, [r4] ldr r2, =0x00000804 adds r1, r2 bl LZDecompressWram - ldr r0, =gUnknown_08DA7FB4 + ldr r0, =gRaySceneChaseStreaks_Tilemap ldr r1, [r4] ldr r2, =0x00001004 adds r1, r2 bl LZDecompressWram - ldr r0, =gUnknown_08DA7D6C + ldr r0, =gRaySceneChaseBg_Tilemap ldr r1, [r4] ldr r2, =0x00001804 adds r1, r2 bl LZDecompressWram - ldr r0, =gUnknown_08DA8E84 + ldr r0, =gRaySceneChase_Pal movs r1, 0 movs r2, 0x80 bl LoadCompressedPalette @@ -4407,14 +4407,14 @@ sub_81D8CC4: @ 81D8CC4 push {r4,lr} sub sp, 0x4 bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08DAAB24 + ldr r1, =gRaySceneHushRing_Gfx movs r4, 0 str r4, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DAA8B4 + ldr r1, =gRaySceneHushBg_Gfx str r4, [sp] movs r0, 0 movs r2, 0 @@ -4425,22 +4425,22 @@ _081D8CEA: lsls r0, 24 cmp r0, 0 bne _081D8CEA - ldr r0, =gUnknown_08DAAE54 + ldr r0, =gRaySceneHushRing_Tilemap ldr r4, =gUnknown_0203CF60 ldr r1, [r4] ldr r2, =0x00000804 adds r1, r2 bl LZDecompressWram - ldr r0, =gUnknown_08DAAC1C + ldr r0, =gRaySceneHushBg_Tilemap ldr r1, [r4] adds r1, 0x4 bl LZDecompressWram - ldr r0, =gUnknown_08DAAF98 + ldr r0, =gRaySceneHushRing_Map ldr r1, [r4] ldr r2, =0x00001004 adds r1, r2 bl LZDecompressWram - ldr r0, =gUnknown_08DAAFEC + ldr r0, =gRaySceneHushBg_Pal movs r1, 0 movs r2, 0x60 bl LoadCompressedPalette diff --git a/data/graphics.s b/data/graphics.s index f7ce42517c..0e6ec9d384 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -3514,44 +3514,69 @@ gBagScreenFemale_Pal:: @ 8D9A5D4 gBagScreen_Gfx:: @ 8D9A620 .incbin "graphics/interface/bag_screen.4bpp.lz" + .align 2 gUnknown_08D9A88C:: @ 8D9A88C - .incbin "baserom.gba", 0xd9a88c, 0x544 + .incbin "graphics/unknown/unknown_D9A88C.bin.lz" + .align 2 +gBattleFrontierGfx_PyramidBag:: @ 8D9A9EC + .incbin "graphics/interface/bag_pyramid.4bpp.lz" + + .align 2 gUnknown_08D9ADD0:: @ 8D9ADD0 - .incbin "baserom.gba", 0xd9add0, 0x34 + .incbin "graphics/interface/bag_pyramid.gbapal.lz" @ female palette is first and male is second. + .align 2 gUnknown_08D9AE04:: @ 8D9AE04 - .incbin "baserom.gba", 0xd9ae04, 0x140 + .incbin "graphics/unknown/unknown_D9AE04.bin.lz" @ tilemap? + .align 2 gUnknown_08D9AF44:: @ 8D9AF44 - .incbin "baserom.gba", 0xd9af44, 0x78 + .incbin "graphics/unknown/unknown_D9AF44.gbapal.lz" + .align 2 +gBagSwapLineGfx:: @ 8D9AF6C + .incbin "graphics/interface/bag_swap.4bpp.lz" + + .align 2 +gBagSwapLinePal:: @ 8D9AFAC + .incbin "graphics/interface/bag_swap.gbapal.lz" + + .align 2 gBuyMenuFrame_Gfx:: @ 8D9AFBC - .incbin "baserom.gba", 0xd9afbc, 0x10c + .incbin "graphics/interface/mart_frame.4bpp.lz" + .align 2 gMenuMoneyPal:: @ 8D9B0C8 - .incbin "baserom.gba", 0xd9b0c8, 0x28 + .incbin "graphics/interface/mart_frame.gbapal.lz" + .align 2 gBuyMenuFrame_Tilemap:: @ 8D9B0F0 - .incbin "baserom.gba", 0xd9b0f0, 0x140 + .incbin "graphics/interface/mart_frame.bin.lz" + .align 2 gMenuMoneyGfx:: @ 8D9B230 - .incbin "baserom.gba", 0xd9b230, 0x84 + .incbin "graphics/interface/money.4bpp.lz" + .align 2 gMenuPokeblock_Gfx:: @ 8D9B2B4 - .incbin "baserom.gba", 0xd9b2b4, 0x1bc + .incbin "graphics/interface/pokeblock_case_frame.4bpp.lz" + .align 2 gMenuPokeblock_Pal:: @ 8D9B470 - .incbin "baserom.gba", 0xd9b470, 0x70 + .incbin "graphics/interface/pokeblock_case_frame.gbapal.lz" + .align 2 gMenuPokeblockDevice_Gfx:: @ 8D9B4E0 - .incbin "baserom.gba", 0xd9b4e0, 0x2c0 + .incbin "graphics/interface/pokeblock_device.4bpp.lz" + .align 2 gMenuPokeblockDevice_Pal:: @ 8D9B7A0 - .incbin "baserom.gba", 0xd9b7a0, 0x28 + .incbin "graphics/interface/pokeblock_device.gbapal.lz" + .align 2 gMenuPokeblock_Tilemap:: @ 8D9B7C8 - .incbin "baserom.gba", 0xd9b7c8, 0x148 + .incbin "graphics/interface/pokeblock.bin.lz" .align 2 gPokeblock_Gfx:: @@ -3613,176 +3638,236 @@ gPokeblockWhite_Pal:: gPokeblockGold_Pal:: .incbin "graphics/pokeblock/gold.gbapal.lz" + .align 2 gUnknown_08D9BA44:: @ 8D9BA44 - .incbin "baserom.gba", 0xd9ba44, 0x100 + .incbin "graphics/interface/pokeblock_feeding_bg_map.bin.lz" + .align 2 gUnknown_08D9BB44:: @ 8D9BB44 - .incbin "baserom.gba", 0xd9bb44, 0x3ac + .incbin "graphics/interface/check_berry.4bpp.lz" + .align 2 gUnknown_08D9BEF0:: @ 8D9BEF0 - .incbin "baserom.gba", 0xd9bef0, 0xa8 + .incbin "graphics/interface/check_berry.gbapal.lz" + .align 2 gUnknown_08D9BF98:: @ 8D9BF98 - .incbin "baserom.gba", 0xd9bf98, 0x1a4 + .incbin "graphics/interface/berry_tag.bin.lz" + .align 2 gUnknown_08D9C13C:: @ 8D9C13C - .incbin "baserom.gba", 0xd9c13c, 0x26c + .incbin "graphics/interface/berry_tag_title.bin.lz" + + .align 2 +gBerryCheckCircle_Gfx:: @ 8D9C24C + .incbin "graphics/interface/check_berry_circle.4bpp.lz" @ 8D9C3A8 .include "data/graphics/berries/berry_graphics.inc" -gUnknown_08DA1E78:: @ 8DA1E78 - .incbin "baserom.gba", 0xda1e78, 0xBE4 + .align 2 +gRaySceneGroudon_Gfx:: @ 8DA1E78 + .incbin "graphics/rayquaza_scene/groudon.4bpp.lz" -gUnknown_08DA2A5C:: @ 8DA2A5C - .incbin "baserom.gba", 0xDA2A5C, 0xCC + .align 2 +gRaySceneGroudon2_Gfx:: @ 8DA2A5C + .incbin "graphics/rayquaza_scene/groudon_shoulder.4bpp.lz" -gUnknown_08DA2B28:: @ 8DA2B28 - .incbin "baserom.gba", 0xDA2B28, 0x1F4 + .align 2 +gRaySceneGroudon3_Gfx:: @ 8DA2B28 + .incbin "graphics/rayquaza_scene/groudon_claw.4bpp.lz" -gUnknown_08DA2D1C:: @ 8DA2D1C - .incbin "baserom.gba", 0xDA2D1C, 0x534 + .align 2 +gRaySceneKyogre_Gfx:: @ 8DA2D1C + .incbin "graphics/rayquaza_scene/kyogre.4bpp.lz" -gUnknown_08DA3250:: @ 8DA3250 - .incbin "baserom.gba", 0xDA3250, 0x54 + .align 2 +gRaySceneKyogre2_Gfx:: @ 8DA3250 + .incbin "graphics/rayquaza_scene/kyogre_shoulder.4bpp.lz" -gUnknown_08DA32A4:: @ 8DA32A4 - .incbin "baserom.gba", 0xDA32A4, 0xCC + .align 2 +gRaySceneKyogre3_Gfx:: @ 8DA32A4 + .incbin "graphics/rayquaza_scene/kyogre_fin.4bpp.lz" -gUnknown_08DA3370:: @ 8DA3370 - .incbin "baserom.gba", 0xDA3370, 0x28 + .align 2 +gRaySceneGroudon_Pal:: @ 8DA3370 + .incbin "graphics/rayquaza_scene/groudon.gbapal.lz" -gUnknown_08DA3398:: @ 8DA3398 - .incbin "baserom.gba", 0xDA3398, 0x28 + .align 2 +gRaySceneKyogre_Pal:: @ 8DA3398 + .incbin "graphics/rayquaza_scene/kyogre.gbapal.lz" -gUnknown_08DA33C0:: @ 8DA33C0 - .incbin "baserom.gba", 0xda33c0, 0x428 + .align 2 +gRaySceneClouds_Gfx:: @ 8DA33C0 + .incbin "graphics/rayquaza_scene/clouds.4bpp.lz" -gUnknown_08DA37E8:: @ 8DA37E8 - .incbin "baserom.gba", 0xda37e8, 0x3c + .align 2 +gRaySceneClouds_Pal:: @ 8DA37E8 + .incbin "graphics/rayquaza_scene/clouds.gbapal.lz" @ pal 1 clouds, pal 2 rain -gUnknown_08DA3824:: @ 8DA3824 - .incbin "baserom.gba", 0xda3824, 0x164 + .align 2 +gRaySceneClouds1_Tilemap:: @ 8DA3824 + .incbin "graphics/rayquaza_scene/clouds1.bin.lz" -gUnknown_08DA3988:: @ 8DA3988 - .incbin "baserom.gba", 0xda3988, 0x100 + .align 2 +gRaySceneClouds2_Tilemap:: @ 8DA3988 + .incbin "graphics/rayquaza_scene/clouds2.bin.lz" -gUnknown_08DA3A88:: @ 8DA3A88 - .incbin "baserom.gba", 0xda3a88, 0x138 + .align 2 +gRaySceneClouds3_Tilemap:: @ 8DA3A88 + .incbin "graphics/rayquaza_scene/clouds3.bin.lz" -gUnknown_08DA3BC0:: @ 8DA3BC0 - .incbin "baserom.gba", 0xDA3BC0, 0xBC + .align 2 +gRaySceneSmoke_Gfx:: @ 8DA3BC0 + .incbin "graphics/rayquaza_scene/smoke.4bpp.lz" -gUnknown_08DA3C7C:: @ 8DA3C7C - .incbin "baserom.gba", 0xDA3C7C, 0x18 + .align 2 +gRaySceneSmoke_Pal:: @ 8DA3C7C + .incbin "graphics/rayquaza_scene/smoke.gbapal.lz" -gUnknown_08DA3C94:: @ 8DA3C94 - .incbin "baserom.gba", 0xda3c94, 0x1114 + .align 2 +gRaySceneRayquaza_Gfx:: @ 8DA3C94 + .incbin "graphics/rayquaza_scene/rayquaza.8bpp.lz" -gUnknown_08DA4DA8:: @ 8DA4DA8 - .incbin "baserom.gba", 0xda4da8, 0x44 + .align 2 +gRaySceneRayquaza_Pal:: @ 8DA4DA8 + .incbin "graphics/rayquaza_scene/rayquaza.gbapal.lz" -gUnknown_08DA4DEC:: @ 8DA4DEC - .incbin "baserom.gba", 0xda4dec, 0x184 + .align 2 +gRaySceneRayquaza_Tilemap:: @ 8DA4DEC + .incbin "graphics/rayquaza_scene/rayquaza.bin.lz" -gUnknown_08DA4F70:: @ 8DA4F70 - .incbin "baserom.gba", 0xda4f70, 0x1148 + .align 2 +gRaySceneOvercast_Gfx:: @ 8DA4F70 + .incbin "graphics/rayquaza_scene/overcast.4bpp.lz" @ uses pal 2 of gRaySceneRayquaza_Pal -gUnknown_08DA60B8:: @ 8DA60B8 - .incbin "baserom.gba", 0xda60b8, 0x388 + .align 2 +gRaySceneOvercast_Tilemap:: @ 8DA60B8 + .incbin "graphics/rayquaza_scene/overcast.bin.lz" -gUnknown_08DA6440:: @ 8DA6440 - .incbin "baserom.gba", 0xDA6440, 0x46C + .align 2 +gRaySceneRayquazaFly1_Gfx:: @ 8DA6440 + .incbin "graphics/rayquaza_scene/rayquaza_fly1.4bpp.lz" -gUnknown_08DA68AC:: @ 8DA68AC - .incbin "baserom.gba", 0xDA68AC, 0x110 + .align 2 +gRaySceneRayquazaTail_Gfx:: @ 8DA68AC + .incbin "graphics/rayquaza_scene/rayquaza_tail_fix.4bpp.lz" @ for some reason there are an extra 0xC bytes at the end of the original 4bpp, so in order to produce the correct lz, we have to cat the bytes at the end with a make rule. not sure why those bytes are there, it may have been a bug in Game Freak's software. -gUnknown_08DA69BC:: @ 8DA69BC - .incbin "baserom.gba", 0xda69bc, 0xb6c + .align 2 +gRaySceneOvercast2_Gfx:: @ 8DA69BC + .incbin "graphics/rayquaza_scene/overcast2.4bpp.lz" -gUnknown_08DA7528:: @ 8DA7528 - .incbin "baserom.gba", 0xda7528, 0x21c + .align 2 +gRaySceneRayquazaLight_Gfx:: @ 8DA7528 + .incbin "graphics/rayquaza_scene/rayquaza_light.4bpp.lz" @ uses pal 2 of gRaySceneOvercast2_Pal -gUnknown_08DA7744:: @ 8DA7744 - .incbin "baserom.gba", 0xda7744, 0x40 + .align 2 +gRaySceneOvercast2_Pal:: @ 8DA7744 + .incbin "graphics/rayquaza_scene/overcast2.gbapal.lz" -gUnknown_08DA7784:: @ 8DA7784 - .incbin "baserom.gba", 0xda7784, 0x328 + .align 2 +gRaySceneOvercast2_Tilemap:: @ 8DA7784 + .incbin "graphics/rayquaza_scene/overcast2.bin.lz" -gUnknown_08DA7AAC:: @ 8DA7AAC - .incbin "baserom.gba", 0xda7aac, 0x184 + .align 2 +gRaySceneRayquazaLight_Tilemap:: @ 8DA7AAC + .incbin "graphics/rayquaza_scene/rayquaza_light.bin.lz" -gUnknown_08DA7C30:: @ 8DA7C30 - .incbin "baserom.gba", 0xda7c30, 0x13c + .align 2 +gRaySceneChaseBg_Gfx:: @ 8DA7C30 + .incbin "graphics/rayquaza_scene/chase_bg.4bpp.lz" -gUnknown_08DA7D6C:: @ 8DA7D6C - .incbin "baserom.gba", 0xda7d6c, 0x140 + .align 2 +gRaySceneChaseBg_Tilemap:: @ 8DA7D6C + .incbin "graphics/rayquaza_scene/chase_bg.bin.lz" -gUnknown_08DA7EAC:: @ 8DA7EAC - .incbin "baserom.gba", 0xda7eac, 0x108 + .align 2 +gRaySceneChaseStreaks_Gfx:: @ 8DA7EAC + .incbin "graphics/rayquaza_scene/chase_streaks.4bpp.lz" -gUnknown_08DA7FB4:: @ 8DA7FB4 - .incbin "baserom.gba", 0xda7fb4, 0x108 + .align 2 +gRaySceneChaseStreaks_Tilemap:: @ 8DA7FB4 + .incbin "graphics/rayquaza_scene/chase_streaks.bin.lz" -gUnknown_08DA80BC:: @ 8DA80BC - .incbin "baserom.gba", 0xda80bc, 0xa84 + .align 2 +gRaySceneRayquazaChase_Gfx:: @ 8DA80BC + .incbin "graphics/rayquaza_scene/rayquaza_chase.4bpp.lz" -gUnknown_08DA8B40:: @ 8DA8B40 - .incbin "baserom.gba", 0xda8b40, 0x22c + .align 2 +gRayChaseRayquazaChase_Tilemap:: @ 8DA8B40 + .incbin "graphics/rayquaza_scene/rayquaza_chase.bin.lz" -gUnknown_08DA8D6C:: @ 8DA8D6C - .incbin "baserom.gba", 0xda8d6c, 0x118 + .align 2 +gRayChaseRayquazaChase2_Tilemap:: @ 8DA8D6C + .incbin "graphics/rayquaza_scene/rayquaza_chase2.bin.lz" -gUnknown_08DA8E84:: @ 8DA8E84 - .incbin "baserom.gba", 0xda8e84, 0x54 + .align 2 +gRaySceneChase_Pal:: @ 8DA8E84 + .incbin "graphics/rayquaza_scene/chase.gbapal.lz" -gUnknown_08DA8ED8:: @ 8DA8ED8 - .incbin "baserom.gba", 0xDA8ED8, 0x798 + .align 2 +gRaySceneGroudonLeft_Gfx:: @ 8DA8ED8 + .incbin "graphics/rayquaza_scene/groudon_left.4bpp.lz" -gUnknown_08DA9670:: @ 8DA9670 - .incbin "baserom.gba", 0xDA9670, 0x44 + .align 2 +gRaySceneGroudonTail_Gfx:: @ 8DA9670 + .incbin "graphics/rayquaza_scene/groudon_tail.4bpp.lz" -gUnknown_08DA96B4:: @ 8DA96B4 - .incbin "baserom.gba", 0xDA96B4, 0x248 + .align 2 +gRaySceneKyogreRight_Gfx:: @ 8DA96B4 + .incbin "graphics/rayquaza_scene/kyogre_right.4bpp.lz" -gUnknown_08DA98FC:: @ 8DA98FC - .incbin "baserom.gba", 0xDA98FC, 0xCA8 + .align 2 +gRaySceneRayquazaHover_Gfx:: @ 8DA98FC + .incbin "graphics/rayquaza_scene/rayquaza_hover.4bpp.lz" -gUnknown_08DAA5A4:: @ 8DAA5A4 - .incbin "baserom.gba", 0xDAA5A4, 0x1F0 + .align 2 +gRaySceneRayquazaFlyIn_Gfx:: @ 8DAA5A4 + .incbin "graphics/rayquaza_scene/rayquaza_flyin.4bpp.lz" -gUnknown_08DAA794:: @ 8DAA794 - .incbin "baserom.gba", 0xDAA794, 0x98 + .align 2 +gRaySceneSplash_Gfx:: @ 8DAA794 + .incbin "graphics/rayquaza_scene/splash.4bpp.lz" -gUnknown_08DAA82C:: @ 8DAA82C - .incbin "baserom.gba", 0xDAA82C, 0x28 + .align 2 +gRaySceneGroudonLeft_Pal:: @ 8DAA82C + .incbin "graphics/rayquaza_scene/groudon_left.gbapal.lz" -gUnknown_08DAA854:: @ 8DAA854 - .incbin "baserom.gba", 0xDAA854, 0x28 + .align 2 +gRaySceneKyogreRight_Pal:: @ 8DAA854 + .incbin "graphics/rayquaza_scene/kyogre_right.gbapal.lz" -gUnknown_08DAA87C:: @ 8DAA87C - .incbin "baserom.gba", 0xDAA87C, 0x28 + .align 2 +gRaySceneRayquazaHover_Pal:: @ 8DAA87C + .incbin "graphics/rayquaza_scene/rayquaza_hover.gbapal.lz" -gUnknown_08DAA8A4:: @ 8DAA8A4 - .incbin "baserom.gba", 0xDAA8A4, 0x10 + .align 2 +gRaySceneSplash_Pal:: @ 8DAA8A4 + .incbin "graphics/rayquaza_scene/splash.gbapal.lz" -gUnknown_08DAA8B4:: @ 8DAA8B4 - .incbin "baserom.gba", 0xdaa8b4, 0x270 + .align 2 +gRaySceneHushBg_Gfx:: @ 8DAA8B4 + .incbin "graphics/rayquaza_scene/hush_bg.4bpp.lz" -gUnknown_08DAAB24:: @ 8DAAB24 - .incbin "baserom.gba", 0xdaab24, 0xf8 + .align 2 +gRaySceneHushRing_Gfx:: @ 8DAAB24 + .incbin "graphics/rayquaza_scene/hush_ring.8bpp.lz" -gUnknown_08DAAC1C:: @ 8DAAC1C - .incbin "baserom.gba", 0xdaac1c, 0x238 + .align 2 +gRaySceneHushBg_Tilemap:: @ 8DAAC1C + .incbin "graphics/rayquaza_scene/hush_bg.bin.lz" -gUnknown_08DAAE54:: @ 8DAAE54 - .incbin "baserom.gba", 0xdaae54, 0x144 + .align 2 +gRaySceneHushRing_Tilemap:: @ 8DAAE54 + .incbin "graphics/rayquaza_scene/hush_ring.bin.lz" -gUnknown_08DAAF98:: @ 8DAAF98 - .incbin "baserom.gba", 0xdaaf98, 0x54 + .align 2 +gRaySceneHushRing_Map:: @ 8DAAF98 + .incbin "graphics/rayquaza_scene/hush_ring_map.bin.lz" -gUnknown_08DAAFEC:: @ 8DAAFEC - .incbin "baserom.gba", 0xdaafec, 0x6c + .align 2 +gRaySceneHushBg_Pal:: @ 8DAAFEC + .incbin "graphics/rayquaza_scene/hush_bg.gbapal.lz" @ 8DAB058 .include "data/graphics/items/item_graphics.inc" diff --git a/graphics/interface/bag_pyramid.pal b/graphics/interface/bag_pyramid.pal new file mode 100755 index 0000000000..200b001b5e --- /dev/null +++ b/graphics/interface/bag_pyramid.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +115 197 164 +255 197 106 +230 172 90 +205 148 74 +180 123 65 +164 98 49 +139 74 32 +115 49 24 +90 24 8 +74 0 0 +255 222 123 +164 131 255 +213 205 255 +98 98 115 +255 255 255 +0 0 0 +115 197 164 +255 197 106 +230 172 90 +205 148 74 +180 123 65 +164 98 49 +139 74 32 +115 49 24 +90 24 8 +74 0 0 +255 222 123 +255 49 0 +255 213 172 +98 98 115 +255 255 255 +0 0 0 diff --git a/graphics/interface/bag_pyramid.png b/graphics/interface/bag_pyramid.png new file mode 100755 index 0000000000000000000000000000000000000000..42b7090570c74fe90c684cbaa54e663a1fa1ccca GIT binary patch literal 778 zcmV+l1NHogP)SXZv9v9sQ4B>~Ovl$K>OI{F^wABYHrz za!~WN`D4h(csM=;5W>^(HyyZ$5XN*8=mA2ORh#%Xx-VD=6H=S-t|IAq00<#`_TE>$ z;W)zFKPH!}ldAN*^GN`N2g9$^sV9LGGrF7vMGVLFNPdIc zoeZZ_Ao+7RrxNJn?krqPAz+wWXWr)$_=2tQC9rkwU6#P@=?F55tJMsK^~GDSyi&Jx z)LmS~%X++;&DX99^kJJ}9f=jkXEHcJjcZ6Ur^;Zcb&H9qC957N}4$!;=Di}a8 zfSqXbR??p5IAnwt@JoC2(DGx9sXZ+C?OFlb#58h-~`e*ml2 zbCCd88Mp`;D;qI}V44WgGGMR^rz_hK!Zw!h|EwwjwcA2$45|e+Cbo~lcC;XPC(=Z0 z7($3hfFN{5KO{n=8>9oS+uLT@qXs~$xIu3(#O@&nSOo(AlSoqW<3a~eJIRYIickVW zq?r&|B5Vz4i(L-(VxtCzNOoD8Wcw6ep$3qJNE0o16gd!EEqH<=poAwSfR$`-GqKx? zVl9!*dCtUcOG%GJtOo^b)w-F8~G(c@?ZF z9o2UO_9~k4ZBV%jeD67UaHF`9Dq$ErM;K~utY0UwI{UBj6RN;P;oj>sj{pDw07*qo IM6N<$f~@{r00000 literal 0 HcmV?d00001 diff --git a/graphics/interface/bag_swap.png b/graphics/interface/bag_swap.png new file mode 100755 index 0000000000000000000000000000000000000000..a9bed1e8affebd0d39be57b9be404bcef95e270d GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!VDx|E`RzTNErn9gt!7}BEg(FbM9#}2&}sK z9;iXf)5S4FVrp{20p@>)CFK)({udmx7H~-W)9h*6V07=H@$6j>WJMGtLYNr-ZC1TM TefGnXAZt8b{an^LB{Ts5_LnC0 literal 0 HcmV?d00001 diff --git a/graphics/interface/berry_tag.bin b/graphics/interface/berry_tag.bin new file mode 100755 index 0000000000000000000000000000000000000000..fc809d6a79bfb760dba209cf2e51472952d7fa18 GIT binary patch literal 2048 zcmeH`*;0cr07cIX0YU{AtktR%yV};>R=aBb|F5zrl)yu2#)pnG2M}Cu5QD6D>O@D1Vbc++u_Nnv-J+A-cgS}@zph2jI2nja-FZsvi LTqaN^pqIcmyd)Va literal 0 HcmV?d00001 diff --git a/graphics/interface/berry_tag_title.bin b/graphics/interface/berry_tag_title.bin new file mode 100755 index 0000000000000000000000000000000000000000..560eb6cfafbe233045dda8abdeb6e467e0c4fb8a GIT binary patch literal 2048 zcmZQ{U~+IqgG?@r4#YqPAaHSDLDTK*z~bWKKnw)w9|fZ!Fd71*Aut*OqaiRF0`w07 E0N4%~sQ>@~ literal 0 HcmV?d00001 diff --git a/graphics/interface/check_berry.pal b/graphics/interface/check_berry.pal new file mode 100755 index 0000000000..f4f6cb4e30 --- /dev/null +++ b/graphics/interface/check_berry.pal @@ -0,0 +1,99 @@ +JASC-PAL +0100 +96 +0 0 0 +255 255 255 +238 246 238 +222 238 230 +213 230 213 +197 230 205 +189 222 189 +172 213 180 +164 213 172 +148 156 123 +115 106 90 +90 57 65 +222 49 8 +213 106 74 +205 164 139 +213 213 213 +0 0 0 +255 255 255 +213 246 205 +172 246 156 +139 246 106 +106 213 74 +74 180 41 +41 148 8 +246 230 8 +222 197 8 +205 164 8 +189 131 8 +172 98 8 +90 82 106 +172 98 8 +0 0 172 +0 0 0 +246 246 222 +230 213 222 +222 180 222 +205 148 222 +197 123 222 +180 90 222 +172 57 222 +156 24 222 +148 0 222 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +246 246 255 +230 238 246 +213 230 246 +197 222 238 +180 213 238 +164 205 230 +148 197 230 +131 189 230 +0 0 0 +0 0 0 +0 0 0 +246 230 8 +222 197 8 +205 164 8 +189 131 8 +0 0 0 +189 131 65 +197 131 98 +222 189 131 +123 82 24 +0 0 0 +0 0 0 +180 123 123 +238 222 172 +189 131 65 +65 32 0 +255 0 0 +106 180 213 +41 123 164 +123 148 49 +246 246 246 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +230 123 139 +164 49 115 +0 0 0 +0 0 0 diff --git a/graphics/interface/check_berry.png b/graphics/interface/check_berry.png new file mode 100755 index 0000000000000000000000000000000000000000..56fc2966bc0668a60d6fc18d0271daf34728e4a8 GIT binary patch literal 743 zcmV?P)T3R_l-Z2Q(YD&$di`CWD#%p^<0007V zNklXvwnTuZV3h&_OC6*GJJfR6Pu)$hBs^R#z5HYr=>04x_g4^Z-rF_zwcTF?2bjU{Q*a!#yRLMw?Mh+(tjY>a z!R-wErr<*bcl$$k0eoJSB~`F{x(4z?Qo+Z=1yJV4kDh||Dk#t543v|<1JzXij&FFa zPpaAm4|L06&gEZ>ON8!vLC>O#@MS3cg(cQ9AjIkpuR@2klH^ z;{be&k#vhAkm5XG9AEP0D5Vw;9^pyAB(I>gk?aHvL%?zAoD>{p#9&UN0GjcU$PQTt zkj5Z?7Gs2@@xHP$79Z^7DH^d2H-bSU9%qN!-N;;UDb;PW&VYe_%415Ym z30H|nBA#ji*+-t{(6tY!V)1>l+)o8dX_T{C4)b#Ycyl%?Z6LyoIiUT2qdU%h(uSa!7=P)~`ci(`mK=i5nV zc@HRXv`RAEt)Ii!;LEPi%e=+<%O$m6UZ38zy;u1V^3Ubk!)?=zdBmkH7FE2yzq4w= z2D7L@3;V{t#q{ixRHbYD~UI%h-mF9D2yo76l{Kj~excG=-akC$;P gmpq-M;(6^Uqkdn2rI^E2HlY0sp00i_>zopr06c$W&t$ME4rB;+M%K8 z3;TaQHouv|_x=j z|NqU+&7`EHdwY9xVq!r#DLHD3YP2!`=A{44q~^4H|IGl+v;hC+00000A0E3f0002R zNkl#_l@)df8bnen#t~i7M!Jw+@lOjh} z_zyb(4(WgbCHKCT31_o7sC{<;prPk+L7=L(Z>WlJIX zn>1$dQgeNKp0p}0Yf>O7-M%FitTfqLkiHfV1&F>arG8V|b5cL;2T!VJ*XFxp+@^ZTkfK;rfi(`ny)V;lm zd#fb(!}mtz_9emTpBlTm+S{fn35c=vou1`q zsN-bZa&Xy)1>GI;eBV`zTsJWsoYrJLm1|!5^?!Ad>iY|rcbXWt*Y|W@0$J$k>gTe~ HDWM4f77SC( literal 0 HcmV?d00001 diff --git a/graphics/interface/pokeblock.bin b/graphics/interface/pokeblock.bin new file mode 100755 index 0000000000000000000000000000000000000000..1719bb5a6fd98a323d64a6474118065ea2728a08 GIT binary patch literal 2048 zcmeH{*$TrT5Jit&k~T^Ar*27?wEh1-tOkk?j-XKLL-l}&Gndi1Fp3dlhXSRMA~v_c zEX9PWLpkWBh|Mj(q@OW&s3Pi{pUQ;2U)Gx2tha8vr;q<>`&ZL=SOodEWaVL s{XGYcoH)~Jy6E~>Zrtg4@YKA5^c%Jwc1V-K&WdW7KY7a?_~#D10SuK7nE(I) literal 0 HcmV?d00001 diff --git a/graphics/interface/pokeblock_case_frame.pal b/graphics/interface/pokeblock_case_frame.pal new file mode 100755 index 0000000000..ef58ae7780 --- /dev/null +++ b/graphics/interface/pokeblock_case_frame.pal @@ -0,0 +1,99 @@ +JASC-PAL +0100 +96 +0 0 0 +123 205 189 +238 246 255 +213 230 255 +255 0 0 +115 131 238 +90 90 98 +123 180 189 +131 131 164 +0 0 0 +0 0 0 +197 197 197 +205 65 24 +255 123 90 +255 180 148 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +238 246 255 +0 0 0 +0 0 0 +90 90 98 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +197 197 197 +106 139 189 +148 213 255 +180 238 255 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +255 238 238 +0 0 0 +0 0 0 +90 90 98 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +197 197 197 +205 90 172 +255 156 197 +255 197 213 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +106 180 115 +148 246 98 +205 255 139 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +180 180 49 +246 230 49 +255 255 148 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +148 148 139 +222 222 222 +238 238 238 +255 255 255 diff --git a/graphics/interface/pokeblock_case_frame.png b/graphics/interface/pokeblock_case_frame.png new file mode 100755 index 0000000000000000000000000000000000000000..ffc658821ab5a83d96da9ad8147ab39b4d15a785 GIT binary patch literal 426 zcmV;b0agBqP)h(#zwFxg0003s zNklb>k6b4{lfvK6(8Rw;dVz9-Dnq(h zsw&FkK}-lB_ZN+HGz4}cBEPd4hKRu+{OdW`v?eT;{jtL0!<8d z{{fJO35W;B1h5Z0s67a7?8EJn&8vn0sJD;;a4`VN`m0NUPPhyK5FUsO=(x+U_c!$% z0JEOYt(czsrDUr49SGmR9L}UQ7wo(M+BN`7A(&^tvb|M+^LJ^1QVKzE#86O5IRW@p z>Jv)_0YKd@%om)C;BxsoSMZ|sb(_kw`LG8xl@|v-@?fw)7XcpOm7Y!`jxhs9Dc#5c zx{SM$D?m@M!-V4z{1EIgx$(HfTYd>FIj;q`qliHdK-#|nCIT}l{#dxpZ;^}ve{z@$ ULgllsF8}}l07*qoM6N<$f@(mwumAu6 literal 0 HcmV?d00001 diff --git a/graphics/interface/pokeblock_device.png b/graphics/interface/pokeblock_device.png new file mode 100755 index 0000000000000000000000000000000000000000..65b29a8b365ca62d147576042a83dfea5f648642 GIT binary patch literal 530 zcmV+t0`2{YP)6v3@&U|tSw+( z;e7HFJZs0Bvd*W{K%@(srOF10P1WGjeI?9+T1XoT)>MPNs4pp?O{9xDPn9PmsT%{| z5o7`cgrrK6-V6z(C$J!Y5p$5eh~_n`l+rBldow9)-FG-W-@O>PQaD*7G(k1&hi3!V z6GUc9vxOX>eb|~?jk_)hyY1~00{;>n1K-jw4cy2i`7DRnf%@Q2DXbF UoEpsdw*UYD07*qoM6N<$f;zY3^8f$< literal 0 HcmV?d00001 diff --git a/graphics/interface/pokeblock_feeding_bg_map.bin b/graphics/interface/pokeblock_feeding_bg_map.bin new file mode 100755 index 0000000000000000000000000000000000000000..9feebf8bcc760d0487b3aad84b26446cff2ededf GIT binary patch literal 2048 mcmYdNNTLWPDo_R!6h`4_2#kinXb22U2r!I-(GVEHApihNyg+aO literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/chase.pal b/graphics/rayquaza_scene/chase.pal new file mode 100755 index 0000000000..960724b941 --- /dev/null +++ b/graphics/rayquaza_scene/chase.pal @@ -0,0 +1,67 @@ +JASC-PAL +0100 +64 +156 156 255 +57 82 57 +65 131 65 +74 148 123 +90 189 139 +148 222 180 +98 90 106 +172 41 57 +230 74 49 +246 98 98 +197 148 98 +222 213 238 +255 255 255 +222 205 0 +255 238 0 +24 24 24 +156 156 255 +0 106 222 +57 148 230 +123 180 238 +189 222 246 +230 255 255 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 131 148 +255 255 246 +16 98 222 +115 255 230 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 131 148 +255 255 246 +255 205 0 +255 255 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/rayquaza_scene/chase_bg.bin b/graphics/rayquaza_scene/chase_bg.bin new file mode 100755 index 0000000000000000000000000000000000000000..c2daff206979199fe03b0b1176c36652c25b4e01 GIT binary patch literal 2048 zcmeIy+YW*-5Jgd|B3>YF3hMv=De;65jBV(YrzT{cSK67Ljyt%r3pdq~6K5(e)Lgl7 z=Rp&#mM7{wTeI-?v!R=Pp7xW^)xCVa9^|bv|Mut<8 literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/chase_bg.png b/graphics/rayquaza_scene/chase_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..896c0b0468d3e226c95220302bc14660fc329439 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^3P5bY!VDyvno?sxoB*E?*Ew_kGi2Sfobs%C%e%ez zzCHU70zgSz;Bo#j1)$t*PZ!4!jft_B9J6wJ)(TKSE*uL$=@2c^}rx%#8d2UV&Ao57?(<)({bAGEwE=t<0S_A1Ni5K2Gl&Ry z;L!Tdw1JsNjKxCW0YkXXj>GIN_5x04LtD<6+yn)Ir>mdK II;Vst00Cxy#Q*>R literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/chase_streaks.bin b/graphics/rayquaza_scene/chase_streaks.bin new file mode 100755 index 0000000000000000000000000000000000000000..cabc53fec20c94b1c79e84c162228e26c3408a9e GIT binary patch literal 2048 zcmdT^u?+wq2y@Uy2Vda-E1en#8QLfb#sPz+P#_j70jFA{Sv~BuLB|8@@$lNJbs^`; ziz?2SoStmm%2rR#slBKQorYyOfybu9vhgaO<<)Rdp+#-9qT*GqJD#6@wg{y>r#IW5 Jy0^EKzb%Q?f?fas literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/chase_streaks.png b/graphics/rayquaza_scene/chase_streaks.png new file mode 100755 index 0000000000000000000000000000000000000000..a7e21625977f57246bb620380e254467f1189393 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9!VDyr{d%Sk5(w}Kab;+p^8f!gfuwuI|DOTH z2!cz|y32uz7J0fjhGTe!bV-@QQ^u{J_uWd2tB`Uwid` z;Ez?ky7H_pZERsId6T&8u`P33 v!mjoV+jopxwaW_kFdDyl(f?`t$Lr4-IhM(8Fj!W-2jnGBS3j3^P6PK}s<(IZ8@WVq$7@bAyYNlmGw#L+uxT0009| zNklDo+Urrb1YX7 zsRj6VS8{A8$1%gsU7XnaX;=TQ)=I&C!^|^AemD643RC|D1y`O9O@` z!EL85)zc-vpv$+IB3NT##;+jGc|QXINoJ&30)&-w^-)&zL3V9d5MpQ}7E)UH_oOyM zk>ZCzRdux1m0;Cr0ou|E!Ywj27lNX7Slj7RSTehcWCI~Nt4+6PDzS)M>(j8>1R2&d zE+F03^>HB$u0W`whl_F|DJtW%)6y1(@1e|x!v-n~1Q=egHXrL@p zl=@4AVVcJ3`~^m7p9O?BHYi(-v*G8TX|{8DM39#>H$TIBSp(cY6(plcW~gK^mOtzsCw!u zSAX)B0DgeUs#+>(k)C6@(Ao#nk^Fb;HrFb-uySQG3;H({=n~|%%gr#!*v6bGKG&AcV`61IZg!9q^MkP{hNl1A4RNNhJNgRx4jh>0vy{okN% zy=HfjouR8mEe=0m5u1y7oZ>XA*{IUqG%#EG*g}}I2|Ybf&O<(VhU~u6I7dOZG>^L= z>EF+g>F_YLmODA{OmCEXd_)2#9gmjEdAxuw_t>i!u#`PbBm^A&0%{22sUdFxzB0sb z%~6Iu9lu_hYKFY0@vL>dGSs=2ryYinrKGn|&>c>=v-Qd%mG=w(<1;Rxo*^<WDG~zIm&Z95*s=O9$LhXOvSR5R`2@B+VjJh_;Ghx`axvHY;hD&;hf}`gjz- zTeX6I!B)_nQk&Wc)Gwf)u)x_P{~I+!--|7wVhCpY7=Rl{{?ing#G~K_`b}&(#LiH0000i_?c-|*foY#y7#<`lO%#ogP7xQKBV zBPXw*sHCi-Drv84`0%NzrR_`7-qq7LFf=muEouKTH8YpiODn(rr1jdy)=pX<9G#q{ h_0>%z4^NTQ#OR1I5o007zZkLakzHpCWDC4=ffu~F%aH&8 literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/clouds2.bin b/graphics/rayquaza_scene/clouds2.bin new file mode 100755 index 0000000000000000000000000000000000000000..073c45ac759467ec19c0a3ebb14fd17680204d81 GIT binary patch literal 2048 ncmZSlz&NBK!zdUHfzc2cun-v9r3d4O0SmZMi$_CX5QG2#V*a$j literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/clouds3.bin b/graphics/rayquaza_scene/clouds3.bin new file mode 100755 index 0000000000000000000000000000000000000000..9b9eb4611004c398e657b25a4e153af9dd047371 GIT binary patch literal 2048 zcmZP&;1b{#U_gST@#K>5HCA000HG zNklQrN3b zf5J893LV%@AdrQ)a!9d%go~|34!paHkMql$-n*tOeDvl!Z}diAsnvRZ zaoOtOFZr=|~ z@}^inPehC&e~NWVHQ-G#qEzO%@TKU3ygo^R5s3?Yz#?NH!2ZV3vAZQ7Km;bhz=ceH zw}Aj67Eq+~(;+P4D0<}p6E@zV0P|D)gGA@s^7sor9#J}E04Jygyop2ty2Sw`VtQFl za3>QCl2igS3or>d@WU_g>1`Q!5lLWxbwFS|zJ2@GA~7Ojw)TsNCBQj9`{Ideu_Z%oEND^Lv`Dutidrz#fq<{e#E8+L=T~-}3!t}Q1DIe~uqC`7=To+P__O5#OaU+BZD~va9kI~@7~fU_ zem|-*Uf)-MBL!d?v)mm=pbO$?=>x8!?E%t-IGkXbPl*ozv6IOYR*8J+j<-;Pm?7oB zUKQvrB)~SJ?E#d8T0lu)TTR+8D}a(9G*%bUQW7p7Y5+?DyIb4<3G}Bc0ItysfY4YA zG*OMlV2DLD2BR?;t(692?d#II%lxp8lNnH883A+4Z$2)2B7kKdADgmtrGu@IXZD1 zi~ALUsSB{^bUG@7(5Qfg1b6}pNi9HGf-}%Np#j;?ryS~+G&+D_xP-n11U-zthLQ>} zR}v`5mbe5$LH3s#3@qYugR#HLV62f91_N`J zfU3a&I-Hpqss;m}mP-u=9umt9#;ijx(j^8XIKCT3%M1nr@lu1ah&!`%nZa04GlSP) z6m(WG7?yu1M%q94UndIVAN;Qqh4Bym*NGt2{-Ne|LS6qk{$T~s_=mwovMUO)sgAw$h93KDB#K>5HCA0003< zNklZuF3H(!uM;x>`(Wyz zFlc)uLLA=`zfjzCfQWf-Ili|^5O4#eBVFp)m zY&U_UMNs|j10oIJ2BZy}+_fG!=_*JY5a8W(0Rzn~3RusIL8eU>DtH*@b%YE`!JsYj zvf}l^1W1G%BqHA!B`*sUlq^a&`g4e;6G((3omcr?`$B4fHlg5rsE!*EAfuW=a;Soc zU&8Sik|08gfUIKy{-c>AR18kX?%$Le5|O#BN4#K>5HCA000CG zNklljA6vs1lwcg@J>2OkEf}xU)SW_vPSUMqAEKrK*U}YdTdP5cr`2-A9 zh#?seRmFgZex+Oqwn$Vx{&#i(UwqDrASbm|bwA&G&-ar1={lXibnHFd228dAa?28X z`;&HJk7Qer(P%^@+4=NH%ADN9-l>!_VGzWNhIx^;T#i!_~D0W^_) zU7j3Vd?bqXBDDo%5;0c4H|WzjD!sqHUyo3Xa}w*%tGi*SFh8`O#{wcU0R{lNQ~Z8# zQUka^0zLwS07&4^a8X|%j(pD72oRny`OD!+Jwh=iDu{G|{=y@l*?tFO5|8nN1r{9u z`P2GK^rWH!06jZA!oO+*C?<-O6inAHKoBX)r78jMwY8BRX0b;Fi849Q?j{2W0}wYg zqtb7&tAHR`;^lA?z(%JzGdf0Zd1etF;Wc-s%RmFzbCFquhbBgMdU+Uvpa>A?dtv8@ zB21O0U;8xAtN^z~ywUv{2Kl3G!Smw=z$6(4m_-T=RaOA{Y5B=|k2cV8e!=a=Zv4Yz zXCVKBflO4pfxs}@4P>0R8^|fnl2!xBaUk+pi-916v3auDKyt{%_a{W(90tM(4&+w= z{KGqoM!^`zB=*OwM6-c-`#4briPJ>53!snwKLlx_?}CU6xV z9&bcIlcXFogiPB^c3CI92q|<^4vq?)MFdBw6S{kFtN}nJaK1>)W*;m729jojL#3bh zbMdL3X=xzq?86~+2(9=svo?Z^fvhhK;4A9cf>E8#=Yz11a^k3G3r2bL^0E{RKf7AZ zEx{-O(@aISp zBH-uqD{pn#1ehd)g||WqO4W12BdPQuboqn2)d$xN#xH$v_``2~xHiDX4Tfmf zhmJybAcjjHDq!l=hcZH!hkb`WR5utr=sWbG@&~s*l>UH|H)z&}>IOrfyv_Phovdzs zsQkgL57iBZTOTTaaO*>PgW=YP>IS3Khp<5(ZuP+EL)hQchg*P4V5bke(Kdbp^t#3i TNt>@400000NkvXXu0mjfoqQCh literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/groudon_shoulder.png b/graphics/rayquaza_scene/groudon_shoulder.png new file mode 100755 index 0000000000000000000000000000000000000000..c4c5f08b6c81c65a11c71c5d689d4fb5e0e357fe GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Ew_kpSAQ_GiAw~>h9{O zr2o~;)e4&b6*SjqTK+$4c=YJm|3I*J@0=_{OG`@u0fCp@^Spt2`#fD7Lo_DtyK%K`qQLy!5S$U%=j+o{z^??s{r)^U$*!KR2G9vUC;ulJ6%Q6kF=U&i%Za%8>d| zW?`sI+wtI|QID$sF`T((q#?pqe!#)@`w`BfHU`TRqS|h&*j0A5XR;Svm^PKiNmz0x zJLjgj$*QbLyV$H3nl&f$n^t>!?EY|_f8_@A6<fYl&Ak#+L#3MiW>}X!zbjpZ@j@XPxR>0*~+i4 zfrc7sywi^vF=Rl0%TF}bi(d7%)4%b`3sWXr{#`T8wa{{>U$S7%jCY&=+rP(t_xl9? GcLE>xH6nWe literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/hush_bg.pal b/graphics/rayquaza_scene/hush_bg.pal new file mode 100755 index 0000000000..b0b0602dd4 --- /dev/null +++ b/graphics/rayquaza_scene/hush_bg.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +156 156 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 164 197 +8 172 180 +24 189 156 +41 197 131 +57 205 106 +82 230 90 +115 255 82 +164 255 139 +213 255 197 +255 255 255 +0 0 0 +156 156 255 +74 74 189 +82 82 197 +90 90 197 +98 98 205 +106 106 205 +115 115 213 +131 131 213 +139 139 222 +148 148 222 +156 156 230 +164 164 230 +172 172 238 +180 180 238 +197 197 246 +0 0 0 +156 156 255 +57 82 57 +65 131 65 +74 148 123 +90 189 139 +148 222 180 +98 90 106 +172 41 57 +230 74 49 +246 98 98 +197 148 98 +222 213 238 +255 255 255 +222 205 0 +255 238 0 +24 24 24 diff --git a/graphics/rayquaza_scene/hush_bg.png b/graphics/rayquaza_scene/hush_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..7ead765b95196aa0c5b0476a07f8f66d63cebe1f GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^FMwErg&9aPiLL<&7zFr)xXzjLAIL<2B}X~dY?0VI zNAqa2<=L#DXHmufgO>d7zWV>@|NkJBj+{cPfz&-u7sn8f&Z|=n3N{%CxE4Rk4WfF(yc)@+g3 zJ4f?qv*p>Wpl4CV|AUtN@4ou~=>Pv9l|c1gUVDRrjz&ctO-eeOm36kb_-b?W)$ZNUTGw0coCC}EZdADWDyQ4?HLDX9YSvod5dQGX0+S@(l-j<}OtTmdJ&%6x3B_$o5 zl63FtJD|z;&NBRe#~>jgVVS)+5U6d9r;B5VMeo|FfqVxPIGk+-zuVv2lq2sEuYU4F z@}g7|*CSisbeQb9{&xAb-RFWCKApM$a3V)yQ&Vm5nYn+xa~8}DSG=LNWu-|aFQ@6E zirs21Gvb-~Z(ln!kzGcBbMn;GR4I>DrU!VIPW~c4rE1ou%VJip5up<<{QZ+I#N%|n z^~4g@J`09tE!QqEhqG0D`F?U)z-)i#7gCu`RRYJ0Ht@_fyD#uc@BIFBUafck;`#(t U6Ll9{o(Bp=Pgg&ebxsLQ0C`lblmGw# literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/hush_ring_map.bin b/graphics/rayquaza_scene/hush_ring_map.bin new file mode 100755 index 0000000000000000000000000000000000000000..812fda11de5320a4e91d9531a964ac96506c0a34 GIT binary patch literal 256 zcmZQzpaNiIVrF4wgB!%o0b+7;!34M=3?3Mt7sB9!@ueUPX&7Gy!r+JT#l%4@2}u~A PK|oMQSVR=grGx^8Dk}f000Bw zNklg-0bYTulLTLchRxoN(LCN z^xMN%VQ9~X;o;%onA-E>2~-$Q?fL0!5{_vRu+i;4w6_N7N4?%t2k@x3$JjFm5Cm<; zP8>iOzFYlr0hCSvaR7|XD5Va9VdRK)&;>73%3ySRq+>YPmB4+>%SZvE+Ba2zvIMY} z1Mc-8iUFbN`T@??LkTm$kUaOyoMa%X;DwzSsCkK|0Fi*{k`R&_4{N>mc%iAsLjYuJ zGo#F^_ktY}8C&ey5(bkD1R#*B=6O4WSB>>USmfYh@tH-7& zoAYO$ydM@swnQ7NAN@U*CS=a{HBiSXagxE{pfB?<&2|1+0z+I7A<)L=;DFTjQ~?3N zs@SMruZylvHhJh&fKs393b0BAd{OO*EuJd?*ViEXDF6wP=P-Q} z*LUq@8X$c+C5P#+;vBc+@TCE2`x@{?iH00Li6x2wXaGL$;OG<29UzI|bUL#h#UihM z%&vULIz{Cxqytpao{yx|=_t!NxyfgM^09craC{cYd^g?Kj80U(qw@J4D4nWZSroUY zc0C1@VW&^cG$s}%9l|+kh#bI<@zDh}mKFdWeexV$WPzmtrqYk{LKh+hKm${0$EB&z zb*wTGl{2>=I%iHltaEt!;LNu2Xb09Q@IyJy7y5x6<0sd*=Kv<&I1+Y9`=J64#xRpF z@`K)Qs~@u4{WpFXpW_F5@qS?c=7$RIr^64y8J)WPAnaiGLq)hLD%fsMl#K0?`}s4m z-TK_l0dPEIwmaG0qDP-bpFu;Vdx`XQ8l;C4UA_cVTvALi%yA-?c8epnBJ z2xon;v;dW$4FSZ7g{VM z1|SNsgapL!5BhHqC_=%A8wyKnukdg+&rV6>ql^%Atc2D%Jtpx|=K^g^G1Rq2|ec clu)R{9|98O{}w`ot^fc407*qoM6N<$f=v<%>Hq)$ literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/kyogre_fin.png b/graphics/rayquaza_scene/kyogre_fin.png new file mode 100755 index 0000000000000000000000000000000000000000..9d4f62da96a75fe82cc2bf09db7d7dfe8f0ffb7e GIT binary patch literal 261 zcmV+g0s8)lP)^8Dk}f0001x zNkl*%u-tuuCHVv?xxc&tFM_{)#!Yde00000 LNkvXXu0mjfSZZs6 literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/kyogre_right.png b/graphics/rayquaza_scene/kyogre_right.png new file mode 100755 index 0000000000000000000000000000000000000000..d5e1749e92f2907666357a8eeb3ad0ecc1d1a544 GIT binary patch literal 505 zcmV^8Dk}f0004m zNklBOIpUVF;kd2A&WmKVnqVG zl~^*6m$I=mPFP?mHSgIj$p?Tyg1aR5_`Yk)31eTUx+Xo9_HjtM@yOb1NgB~|Hat6b z7KMI#k3jZ?5Em94Nr?mGg&AbEJGR8;%X%csUG{`HH9dS4 z;>v<0Audk>tnT}fWm`AkZUXS62PIKJV8sEPQfZ=?j|_rfHv&x^7zs#?ok&j|U`+!1 zTDx;lq!~15m7_i{5EpNwMdI(M{A;}A#Moyo48xWM3W(GW@wVC_0SQRZ13=7M4uE;< zfYq@F+Jw%R7CZQHhO+qP5Nwr$(C&Aoe@Ch2tgA?-{*G;==e z?7r`B&hB&G)u2goX*F6+(zS-a;kCq-0frc1ObSde#SC*Suw>nj^|*by>v}e@QSEPq zb%Gr!0l@}a?6AiHM>erJ!Mc_$Y-JnU*}+cLJCO=!TyVvW)VSk88a(mB8y|e}V;8#< z_&w}pANx7LK@O?jp8x_0BA5_D2_u{cB1ua+(i25AhZTK z#VAe*N>Yl_l%Xu;xW|1S@Q_D5<_S-E#&cfql2^P|eR(QSkxEpi3RS5_b!t$PTGXZv zb*aZ2-tvz3eBdLW_{Xhg0msnQ|u@o!O&CvS0*Uz;b?dd>A<#{JM(}k{dqdPrFDTs)T*ovLli-S0dlcH0J zv$!Pk@u#CFz35FJ`qGd7xQd&k7I*QGG~y{<;w?Uk_Z2_!Pvi$MkUU+m`(tp4Hehgz7$9N_%kx5Ku3R9UztdeG!qQWIYA|>r_yq4+A zU?#Je%^c=3kNGTMA?YN&qM{`FXRAAvYX18Ei&)GOma>fHtY9UpSj`&N>UJp=^DC|T VfBpaeX@4~XT@J~WoWOsWz&8L}u9W}) literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/overcast.png b/graphics/rayquaza_scene/overcast.png new file mode 100755 index 0000000000000000000000000000000000000000..4ad9be8d224365c0ced2c0154b2616c1141aadf6 GIT binary patch literal 3705 zcmV-<4uR*dKf!000gI zNkl{z@KMZ|Smt~p7mDgD9Fg#oY%CWMns;Z`c5@8mB#iey4l7A}9@OVC-zInsR^0KVu<`gIsO8E_x zdK_;e&^Yj@+|v85!{23*y{xjLDArdX<5i150;O?Km=TP?=M4w4z`eNq36$qI;8dg} zNT;{;Afe_BCdb*@w)+Vv%j&wR>k6uyC~vYll@SQl_ZLc#D$h1_-A_OjSMxB%3DUkV z{z0M@q*#zhCi288$@4ilzuC>_woZP8q1l$6L9{{g9hjN3=B z44ln@*Gi0?X#UaC2`KH7PlzZ;Np(d;!qU16Zg@cnP*C!|Mq4a2R+cb?m(gk4!%<$oCtxY7AE+smPI;v5-e!D0*YUT14Y3RE$$7E z?qNWK#x6#h@!9thUy9*ehV1@m@7XdDEJG2-!PTb_IdZ z{pLDGV%=LPi3X8&Xe5I@kMoT3FYo6NDVC8D3!c^^DC1+Nx7MYYhTc62k}1f?hoPr6 z*xxwrexmlaiAGqK4xy~U|FsWDK60Yro#!hI1w<=as6Bipj^&%u`A09>c|=zpY+X28 zh-#%{j0^vE-HO$KDOEFe92YA*cM0VBGn`%py$2lc_Cuptn@C&Mr#yI~>p@bQP0|81jQ)MSvQe3M8lT*|9{`JZ z!71EBnV8`!>sK5;G|~jewxew)G;r?)q&jEy5}~N0HG$E6;7CuF3sEi%D6fpvB|;qp zpv!8!Zlg}uS}hmXc3wckFdB^d=McoSCb|xh1=U~oZ$RSaN#Mfv^k#z@L3r@C5p!#w z>XyQcKragq4Gl#F8W|x?tXF&4{}@;xI~H2WP14qeFVh z^IDlyjl-?<+7KiW@fcWIhQ~mp21M5l2@$A5%TQkB0wcx{5bmNhjX)F}6A6IjObij? zg_4YUk=Yb!%Z}Ff;rBCY@M2Wo8i}`EH+GNq0?Nz#T{;0|(syBF>O7NI!sj{HNkGLM&_w5tFLq zTLX*KnYXK&QyJB7U{ZF3R4t_+^DQ;mG+&*@MXLfs)tftgu&G`SBek#o!-^~@hp88z z2%mkwYC&5r;ZPb+7q#WR&ufdQtd@hE7CzDbLghi`XEQhV=dYbQQH91Z2vpP0(Jm znnlaQi@xuXQ2>I7ypuj8;bz&ZNZvBGBz% z=N_|u_PI!@qb^vC9w;f!8Hk&Hbv#-pNktc>%8O`YL=)>(>1k5> z38?0lNa@bflQKFK2yIoRQeG0A@x4`NM7x1IJ@Hf^ubNp=(r4Q2{pV{|+li|WK#U!Q z${Dd1jCiZlJ=Ip0MS$4zRo^22q+S?wc#zxTUsXdw-AsdXS}Zcb&(W!}JT5!bbW(-8qOTeLNSUzUBho`FmQ(0-U)A9kTA zYK<2~X%0PKs=Z1i%Z3UxpK~gV=NM$610ImmySv>qyT{UTY(5!XLPgwsG29|V;MoYp zlI_v_AE0sQ+82vcKW@H4b&AH`2(hgG0Fo;ZxRf5RzQowXu$?R;lrSn>B(%WWb&pR* z-PfGpL>Xxd$>Eg?TTIgo6BwI!AY+u`B&yL=hnw!se3-k^N$i1Rzoa%wG0+5lH_D#4 z!J+4kF?6`}#!SaewcDkZm{ z^YQ^C^Po~rCZ<14D(@p|S2CW$=r{t=^AqT1hJwDz3n81g&98*YER?Yl&5w5+?@+uo zrg|~%Ndm4k&to!K2q}-+eeI6|5I+mWG4C(asV>XD`%k0D;K@?q$Sv+==eo$Qxg5t} z;E>;bz_A(|0aEfee=zt*NyOPOLTWAZqU@giM9COw4Ou8qGLFBF#ZapS0!O5u1Jb-s z8D$D|=_Z-xGsK(ya6%g8WSF`OOZf|Eyd;#&ye0G-5dIA1bY6z(rj}931{qq>pfjao zW7I&XkqlH=K7>UIs@74GWx}zYPT(VuUdWA5U5mW3fCCS?-vLKPBvfR9m9xjnMvC@O z6v|wcEy529Q(?b%3j|^c3kGRKR21cp#whGwCvOULX*w>G`^&3~`zuiM2}IL-C#v$Q z;=2^;?iPpK>e69mpK2z-mG{sotO{=&zi?Xrn;MH^E*T(p^YN;ff1cu3XxKRQMm4teN$ z)o9sTTlk)Bs&2xe?!>UoII_jbl4E?leQ&VyJZFNj@?~=gx zYykYHmw`^7jv=f}Xiz#Y%Q9KNR^RDH9YtBCFj#lEqE{Ym_c}fkAQbb*;RBG2Jv#ra z5X+Qnr1a~T{WT76Q#g?_GsS{x*oDc3O61x26=^BWqun3IaeSY~jRA7dt+>rhg!ASSH4354 ziscFF&_2scl`wG<|H?_Mk`?-aG^mBvPH`Pu%zHAiMHEiuq7x~!xZAe*>()uTkHsps zgR?n1&|6PrGwvV)5lAx7^xCKrD4hy>84SN5jYBV^z~L{}G@_*~&DoPm+v&7AK{{~A zWr_Odfq=w!94seaic#BHfsz6GE_ypy_)Xzh4|!A841cjGKrH3t`AlG-QF+##+qzH2 zXwoxni%E;(329Gr^SwC^JD2Kj;^>cL+{RZE*L&2fRK4`uY1-2$j?gyGi<~Ryb6Efl zgK>wp(qW+f(tBC~*`tKg@dHAQDGYh_G7Z2S6T9p+eXeO+&Y?8#;c2@@vo>qwQ4Vns zl+C4-N34&gEtGNNRZJAOm>TUO&AQd2?4lOlJum_4JNeA5DDza=*C@3}hiBJ0C2F$K zpbIVLSV>tU<|WF$Myir1-WbvMqq6Ng4t0~1HIOeEA)GgnP?lw%j3`?hqAUtjRk1E~ zS_pfyJNUrMHx(j~8BTD4UQ^aRVRV=To*exldB4>S>wa+(1Jq*P=qEENw=SIMQzvy@ z-fkb2%;i>Q$@+~8dzqHJHkbM+9XR+!YyTxEk)y76bSPE)kV2bCau^gS@#aZf2Syrn zhkQ0GoU9XSFKaEix`agD3 zjeNHx+0$Kn{(DcAnE_uEY3}zh9<`>|Rk=pq#-hG`@ko-P`<;~;da$=V1WEk(J)ne< z6$)3-_&p$dV{&;$P+al*K&5@BrZh%|_uD{ua8U&a%KLprZ?lgy#r!7F%Sxv+zk~BX XOTayk#CHu200000NkvXXu0mjfT9p0? literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/overcast2.bin b/graphics/rayquaza_scene/overcast2.bin new file mode 100755 index 0000000000000000000000000000000000000000..0c2e5ec453a6149142c88118e63b0bb13b7fed8a GIT binary patch literal 2048 zcmeIw)lytR07cPFa)N6F*9h+J62S%!FoQz`*GX`9i{ZoHhI=3Q0OpCRsr}lktNK*C z;r6I|!c)XE-0{E@FTC-=7eD+7Adn!=I8%@U6(E24$yYw|mX|!`A$J)sf6fbD@`_+W z2qlbgB8Vi4Xkv&Zj&sfxr&z@(T2YErgu)f3P=zSi^sjltTiy{*0*NG%ObV%_kxmAg zWO2cTvXrR|r7KOTN>Q?sl&A#7n?9Qya>*l~0tzXjm=a1UqnrvVsp67LRjE=HDp#3G zRia`QsZa&VH~o7)@R3hcQ$sCv)MKH6Mw)1*g;uV(Qmb0jtR^+8K^E1kPPM90wdvdV zOgkNPV#P)m-Sp5)AN>q4$Pm|DYe<6{P`~=rs~&Z$OEy{6Y5FgG zrkG}iS?0LmMsu3gjHWfENlj>6V;a?nhD~qB&JTVv&jO1qvCImqtg+4pn{460p)GA{ zL+e`8s#dhDB`s<}^Y`A)HamCs*x6-|eGWL}h+|GT<(6BW>V#t*ai|0BYfrl}&hD80 i7Z1<)Kfj&G@PC}h@PD1i@c*31@UC17xE6T43;YMz3#sJ* literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/overcast2.pal b/graphics/rayquaza_scene/overcast2.pal new file mode 100755 index 0000000000..6987c2cc11 --- /dev/null +++ b/graphics/rayquaza_scene/overcast2.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +164 205 180 +255 255 255 +197 197 197 +106 164 197 +98 148 172 +82 123 148 +74 106 123 +49 82 90 +139 148 148 +49 65 74 +49 49 57 +74 74 82 +98 98 106 +115 115 131 +156 164 164 +0 0 0 +164 205 180 +255 255 255 +197 255 222 +139 255 180 +82 255 148 +24 246 106 +24 205 82 +32 164 57 +41 123 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/rayquaza_scene/overcast2.png b/graphics/rayquaza_scene/overcast2.png new file mode 100755 index 0000000000000000000000000000000000000000..c9dea200273880367fdb5eec6a514ce9f89161c6 GIT binary patch literal 2408 zcmV-u377VXP)dz4CQdofa4i5QHB!H#%js#Mh;3^CK)k}??Y6YrBs;rtgz^LQV|zK_xA99?uyyBKZG+3Og0 zJFW50ve|TtcUnCIjqzz5vNhV|(Hi_^EpW+eYfq<>_OZ;wIXwFbs9gyCE+#N#@Zxh8 zm^Q*_a{=F`WB~0~#@r8}GB)2VKHJ>$DeZ$DPBu?vT1qKN>#2NU^yA><97HXLvk+kg99++{pPNq1pGHYBCJX1d`+wKQ-X(y8qAjqZ@|R?#=R>d%ANkH3M8Ws zQB2k07M;y-IpmaHUf{gAa-BQ1>AK?m_Xbl6Upoh}>l*dJAVSn$4wn%>&riD=x86Wv_$W5lux2j>6C^cS zT|53X&GUS}BjNLAuF*9{gb-*m;(Ch^gOwBwfy@Ggc)IR-g>_--$O%?S2*MjgImkQ; zvodCphnlu1mQogvL@rTZ=eY>duRvxdLZ=Xe6|={lSy2n5F+sv`zibw5r;-aBPLIXRNvt#lSRBKJ%PlHp7v$T}A198_$ z97V;@5rjVU&a$>qpH=!4!*KIz3Q|q)^eBJdif1%ev$Bl#sh5oEONPoVDZENEk4xzr`w)hKj$xVkV!Oi=P(t>bQl_^Y4K&;s@sq?fvNF+`7bT+x!y$#aL$M(xjL~MSgvphg#XSfGI!hA&y{V;ES((86vPQCH($>44(eu;D{M413|T zlwBtit@+p(4W^cG_B2(8p-+LyEZy%A+pxt?u1FKe<$GbNbuGAhZJkPrI)ni=()as$ z9`JGDBU24aUW$mm5o_Oaq&R*dwsGJ0c^vm$hryfJT4DtvQJJEzzOvG)1eFY4&qyIA z!_b!-#}0zQ{tO*j4!5q`u2N{dS}V765^x}O7;*MD$EGbFcUy<~uis{gt{BiNM5~u} z17Zy24H%!d9%3vvBx(QexwgrYAHXIgbb!?v&ZQtKMaLd{4&eSK3kE3d3Y6Hgg{oVy z)~rASWfNMsqIiZ32KQ82JRBZC3O6fgfvFoIffoiCHsb<{guMtWhfD-`-ops}b~+pm z$C}5JWD@JeX$-W>Soeq^OT;+g?uTjamSs6Kq-vcc^l{iTEaJbDilOCV8i0A4n4kSb z;6Z>!irfxNf4OC;I(xEW$SMNX(Q@Z76h=}iIxfHA0NIZ+k>c)s_pliDpnDaxHE8y5 zI1_mWu(p-V;lA&OVF%l-zrLMhnx^J0D*TS_H*Wws5~Pz#P9c`O2`yY8x1@zMsYkaA-HO<5=q=r$mts;7A%; z$E|YIoc#gDk#4||zJwiZNR|s}R!x22xQH<;&_OnltN@J{l-n>wOrSk(p+=Kx4>B^n ze<}fE6V(r~jUz%f^sH4j#Qive(y3#kgv)(XSk+SXmK*1b52rDL8UwB$#$}M5{QTg+ zbg1ERvR2eFhhp*a#YNi@D?Q4zpAz<3bv(AXA{a?#DOZ2{BscV(Y6IY7j$9$pN)8GMeg+6LJ*l)oCowwOimG>s76i^Z9&OODJ&mdih7rA1$L!j^;j=hgM(51vKO2 z6~cQ~ID0SITGRrU2drs5&*2j_Xx*y2Y65CB(P2~fQICeqH7(=@T$AEHSZQ<3u;`-7 z(sNzmD}`Sf*Q}TtOIPF6Jn-!ze4|`_vGEVaH7gICZryp!A?4%niiDzLD?NOr{Nb!- zRs~~}NBMksP`0U}pCirNj9I;wogAZF#@ylQ9G^eSE#kq4YBAOnM;re?d_kU{6MX*B z14SW)x^?M#y%gB_5vt?=_g0Ax>JDq3DbH)D&W~#z9?K5EvD_-af56s9k1}Dtic+=? zS7nPGKjr6Vj%#)f=i?7ZMwOdDtrs7j<8y9a9)9I0>K(nFq@RGlidcbFi6{p6`5VuE z0X~%I&2K;c1pE)q-*Ntm^Cz62an{$+lBb;Gl1GgDEz+H_&>Pkm^Y|~EAAvu~%O@O< zcoB)qZdwq$m{OEJM74YZ{sD);^?f;Fg~Kb1o!$yxeKcOnq|s9?pMZbFS%GBbLOzx5 zeOc!E{t=_>wW8G(_-CA-+o?dl=VQg^hV$0dog8(j6G#ZXRB~hjAt@y-Ba20aoVwe*OW0LBS#DYC^-pBO;@sV`Agt6B3h>Q!b+^NKH%6 z$jr*l$<50zC@d;2xq>ENT2@|BSyj!zP*Yo1-_Y1}6-~amrM0cSqqD2Kr?;J$L>BK6wU) Li7^Stm>!|2N~y;VQI&OATX@S;E< zVD$mPB9NDtFYBun0KxxPLPB~4u0UI-Q%jE0MfnS z{K!AM?u>xA-GQTpo26}cDO=L+;L$i0Y1Doq3V%Ug^`GgYE+47MxYH_u@SGj+k08Gm zrz|LdiUB~k26I2Aqg3BwDcmDEXTVqV=DuV?j5P?rlE?&YirMrs0#pIB^S|?w9^BMB zv%Ur`3dfn1xbwRon9~KB(0#!M&s9DC0?izZ?I9u?{ev{%aKR4Hy@Qb}<(cKbKB_5u z5MVyFT-6IjxH~~k>|OPEPSZkvg7dXcN(2rl6#zO zdFsnX{*c{vV?z2DFUp}C+Q3$0nDh+n;vVC}EwO13K zHVzSEU^jZ4MpZ~**>XqupF$?14R;TjPe!8(wj^l)8jlktl(nF1y|pa95KYZF66qZCcX}6~aHh^IcHz-a(eQp=U)n%K4fMwZK`Epl@SrDB_4ec(!SYRx zOO#mK2Q8{92Yf(?!l;5HO|tu;8Ax|Uq>gcw0{Nns)B+onrXe@fAmOF8x%xA`JG0W( zRN^Dblb@MVZ~H$58av)dfh*oxTz>Hix&<<^ zJiI1$hid9kNn6Qnfa9%-12_;yhDgp)v|B7N(tixkW7wf9g)BhT(X1Zqa+Nyew|#tr_@D#cA{huHNna#7n6Hs1_pd_F2i(=j zWjq~+qf34!pZ#Gpm?1jb45lPD{yXCKpAzu8i9A5U*6Ot0j0ObY!G7y>HXI#TI<;Q3 z1qrG(BvqLum%AU-y|{^i0;SGmXKPfV>#ygcIb2i6nBVa za%y+-iKI|XUvBa)T}{z|utS$4qGtL%w8rZ{WIvyT}JV+)mQn6oH6BI~95ZGWY5N zE8MEw*khj-3hry;YgjjxoO;T1BCbJeW+J8`Wa9@8FF3Iegn za2wnaY3GKD8V073RSeA}+ykp8eusj}&<125X1wK>B|T!yPRubjquF#W2&0S0Sn>Ho z(_|bUMElaFLhT9$;(JW^IW)&W9Z5zfT1RPWRwe#|;7i&T5kkxQCmEX8H2`gC@S ztAP_wFKA^8>Hf25&!)`1NRs#WGvLyD5sTOJoRZ}tiNVAJy0xOSSyNpv3{h3T^|w5l zrdz3%9t_;%Zs+riVLNGCqlXdw{P3webn=jnoq2rcs2VJ@3;&U@F9u8|AgPVd%uc%& zPrOr8{)6r7L@EI>O4ib6Jq5g)`*rm!rRgu1znFb4(!X06+>IYpQUrmrS=xCKLey>g zqJZ_%IeN#)L&t-XKo9A>ZOjCCN)=4GgAq4`FFW=hg9at>@N-LcRog(J#B$6P#tg#7 zXQok~KnH@Mz8Df`= z${|H5&nuDbBN7XT!N4}#oge4u$~f>O=BCP_yA&FlBHAjoHiw*!X?Dp9>$SMWej{^_ zdJA2e=}(r^g1pUt9bG(R9upA@m4XeF7n)H%oIkBY`{|j{-&B^?zt@F4*W{?!&-w-T`ZEX_;;atwu^A6-ItpW zSm=mqgA;ZQ$XM`#rjYR!)yLxf+l7~#al&<)2Fzs%&h=>ELOn~rDHZx416W}!_;{jA~YQog_iW0 z=bd#5QjD9w$T^)584{pa9u7=OwkjwF*@bkKQR4TK}``9a6E%EnEb#QEa*CmO?o zcA4bG!}CmR#WPmVMbTpYU6uVxO15=)(Ny~@0cm5Y@@!AEzMZohIcC&5!v^^K~?_L#m8p7a!EBoaxJSJAq_dg zJW*V4(6a$`Kv0Emv8m3Za!*vhy?L@Qw)eS(KzJH8nXW*3b|R97DcY#CAEMb$C%S%> zUEYEp6>wD`ibL_@3ZM1rX_(pPnfR}+@0YWI!=@$?@(`8t_JN$iV&2Ex(8(Ob=Bf~n zAKw;Jz0F}&19k*b)+H2h_OveyEuMD}#|z~|-7X6RszUwR-bzg=TL~Py3qe8wVpT3GZ z&%Ko6y;BG>jkM1A*)@78q)wZo8ECd>@WPkXCH>94ZV@AMT-oz|(p0APLBZ+v#=FMc zA!wxsGj5R?6y~bWZK)h>DQ!T}oDv;H7kg0txWcuVgrcvpBLWp-z76$5gC|t+BJIR{ z(!}o#+(!MT{R#sAX&>!5qkld&eV`_qS59lqO+)I^EA25NI~%J_tIdLaH{E<@2m;>Y zaLphIWWt{nx1@w|)Jm3A#+VHPy_7a9q19}K6)=n)VDhmANQ|O2c zLc+*0)fEjWSu`c07| z)@7&rZ%{w^nLpfXIZzlf*~(GSlDVJQpg{*Mak;bKrx+sY`PB`Q_E0#n=ZWDvVde$CWAHlh)4< z&~wCz)^R^#PYO!>Wna>*2cb>bWQf7ug(LD)`sha(fZ#KEej4*Dri&iuN|olfKhc$doM*mt88R)f&?4iJ z?ZuW@YMJG-tdMP`RaS@EYbJ;sxz<`I&w3kdw8>^$LT$F%_K(_bM{wucX_wvh*sDOH zeW5?>SEN{pQe_S}s9c3gha7gqQO834D%ENncfv`h)T&dj!D(llbxvcbPm^ZnU2sv0 zR&6f1?24~GdOY_cf;EY}^vY|! z-UQX#$vSfC)9;=41|l2r;Ghpa`eZ1+PP`HeBo>(Q3(WG_7hk8nLy}?NeE;wN1uP6M A6#xJL literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/rayquaza_chase.png b/graphics/rayquaza_scene/rayquaza_chase.png new file mode 100755 index 0000000000000000000000000000000000000000..154a105a8082508157b82576cc546bbc7be8c3e9 GIT binary patch literal 2184 zcmV;32zU31P)e)I02mk;Cvc?l000OR zNklt!{KlQgpwV#%mO5}O#yY% z%?yYl2)Wtj@sN)Z^{xqT0XQ*4na}iDM^Gcr>iBGU@;gS5mW6J z@ju4HlP5v&A)A1h(qI7ZN&MNY%Yu>VR8k6R;uZ8T06h*O{1sNlZ39FI?eAR%nyQ>r%;){7_)XwQGBiM>e* zI39lu17}YXK+(fTU3UJrVql}o06G6jTudhG4IJ>N3>#|2z(%*}u!9MX^R)(Q+pL#? zudIQ>mWhA?Q`QS7$Qk%DF~It|3J^6>bp71I)>k4dDSnyFw#oBhF9$-}`A zP1*FAM%>_R#dLUpr~&Xzy>!^z>t??XMV|(kH9)s{(=w<~(6Jw-W-Y+kETw?HHULL| zO9PO`000pi*B0m^a_p2j9BkA4K|JFO;DCp{T81??Ae8C&_c;JhQ?nv%T7r(@3G0=5 zq4j#)S?4%wKnpDvcHK0D4g<)5T5#2r$O1S93n=*1hq9}(CM+oi8n=xFWx&@4d|N%X zU;(aP(x{;W0WEEzQ2Cj{qR`3RO8YG@=pdBPBB)nNJt;jsRn&@ND|g$`mxZE9pjw0h zrnCB_*KG>V%j>n@X6}vw1#j2r+Yc%@Fo0GSCOj{zcgivwLsS||d@o-CC< z>5(V30!U-ffK*QUTU3Gp5&+rj^}0Dkp(~TH&5f7H@!p!ph+ANoLXrUUG!5W)* z4an(rtsM;cxE}gVqpu;AMU{ym%0#ft*q_nM0;O{>=cs@@vh+}>R*kBh389?PLyp%@ z$YmD}^fczG3+h&1mW-^>O(Ou{&AoN6yEg!6e6^^mif-vDQI#nmOjFR|epzq27aW3G z2th8AF|1TqHms^)^d0~#ZD+bS0J`wJbPhPBZp+-gFo0iug9w&7cyeL&wBR{Ku`&mo z-*#&jP;Y4cj~YP!vwDG)Ir-Nej`w<@y?qfhSU+oaGh-mt!+>IdALR_REWix{eDm>K z0?d58Y(suolTyJQh4H`VLQDJ8a_m zIVHLjN;?a9<}8zutNSiN%>{|I=qe%rcX%C9O0lwv6fk|zV>h0fec@*p4|^;_Q5611SI;AUiG48t(dt1k?ce`aD6bN)ya0^@gokzQ`U+7wPg|li zEoa^WM)3aCbJz0#sJsL4(YIpD>0Dn%8X#p^zp=6e02Tn$TY11Wb;_b&C0Xh!=G)DxWsYiR>WYGPY!_m{L`8Z<0Sq^~e9lb#aJIa)Y5C);HZ@SPlNVkLUSqsxHNJG)a2Fa zDJ1%SaBX#hKT$C8r)v}ahG4B%D+qy@OAuyFPZfTMc?_>KnLW^V8b zxF9h{X?{G&+T@0=F78$XGl$FoT0-1u!1Ts$d_sXA)_6EMU*jtSfHO|6gZ`N0M#^17tk{27(4cB_<+0 literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/rayquaza_fly1.png b/graphics/rayquaza_scene/rayquaza_fly1.png new file mode 100755 index 0000000000000000000000000000000000000000..40dd0a6e3c0eea2651f409f24b8575f26f376ac6 GIT binary patch literal 815 zcmV+~1JL}5P)e)I02mk;Cvc?l0008I zNklljA6vywvkkLHnkQty!j!a18a8jufQX3qflmSIvnE4D*JeaNOR6Yv} z9|7?dy0@qqE0H>Gq(}^yvs-mK|8FQ8Jt>q}$!0qyL+C)v zQZzE#)p|wilbiL5(j0a~h5*CNn*Nt4@{0EXl9e4^beS4 zRfd+b*?yZLxY#NHffvy~aPUJka`8g}9WW7JHf88e;AH8c12FV!bd#$XhX`bA2!hST zi5!9;B`7d_08z2x1MBL($Ae(}%*yNcco2j_MH`Fa4i8w6sf`epOx)su`Hf`GZGsvP za>l!b5!i}R;{hk3e<~)dH?qP5t@XJqd*ZvzLxl(H^|@4D{=ybQg$MC?B>Q>U^DGW( tJQzt;vX*_S+~PsiZ=UV{k9hF^oWEii;BA-^Tr2e)I02mk;Cvc?l0003J zNklAs=6bJAmOU4j;s}&ESP>__QtBAQbIQ6rnv=HY~$j9mTanL2JA})^S z#U=ND2ayg!uzll?m-k-YUE+DYiPeIZAM#kXklz5puLe#<+xPtf)*yZZhc1YO%EmT$ z+Qf?uaU2gIV<08e@C0Sg0FRVS0fsdLu~X9o;7!c{0s}t)8HoDB#|dnS@11XqDm{}b3t&l&7H!RT`7_PVI{N%C`J#EVHWb5;yQfF*?!C<42Tz@ zYefRLYR;?jHWS`vLXx*}z!?O0)J*nU_^T0V24%_4P(ED)ePTd!jbeTsxNe!S45xe)I02mk;Cvc?l000Qh zNklWo8EG1!PFREWH8yd7sJ+&s7E{6*%5LYrN92({MjANKOGVZ z1wSFAnfKY>`~SY*_f`;6N!&QrM<+r>QZ56U$JSHz65zc`;Poe#_N)q!z|txsNWP_E z6>y4()2e0!t_xZffB|S~RT*bHpsnte=eNBz&=gND%NN)8IdJXPVhPat?fzPifZyB2 z`Em$Y94IP8lp&xZbOLVKuAD1H@?D$*2+LWbg(%Dc0dYACP{pJKpuRlqXKLW^K|I^n zIKX@AbZapK@DZpF4|QvI_+j|sBG58J!26wUt$Gn~v5XcA$52vqi?ySW7iuYDJdY;K zlB41FF+J=}JAP`@jEVl0f>ei#11FB~I%D0acBhUx4p`0LZ+e$FB7aRRHNZJ?~|pWFi6_gY^yA$oPwSO+`IPz2~s;_3X)*w=hWo zRnnY2<=Y||)J)sRy`QHxyf`lIq&T${7uY30zY=I}x&6xR{!&0RptX_Z|~dv4J*NSB~^tW5O6)N~G6R&3I#9s(bh z1G^z`SRUXY1l}kO@lyfn8>KzL0q;ivyqS6>P+vk^QvXz%Ps_NmjA}`M+7*G%N$cHk zZ((^r+zJKK3JqgztpISYh%IMh90E!KKng!~;VI*CP_qgqh1dcGHtvKoPRRnho**{* zj%jrn->PenDWN_b{-F(h2iW*?9w5j9yKet2Cx908@9;K~@4Q$-{f|z|xwfaZTnPK1 z3Ho9-fD6NY{~1DGU{^#~%gD(t53s+l(rynV6@iuQYmW!eG*vy3;5Bz6$gSTx571zI zkOJBVmE2%SE*!3D%;OF0!bTowW7BJ}<+nMoH6H0XpkYirjWq}mf3pRqk*$N+1A}Uy zQxW3zfuiJr0az0@{nZWbcTN=rV_@M%40H%+xApDE9Qc=_d}~CN*uED7O$W@$>fZT1 zu3dp+P2)*<{`h1D7>h!1ZlBavmch{tCG>j>!Q)7uYi~I~li(cK-&kJ^Nq`A}2KEbJ>QZ@W!NJN0xx9~zy zH?U_QuR&@k(#8e@gv?+}b(Y$n1IPhB0jgI8Q2xtdLQDaz3?MNTufZ_h`%tH!EP!wT z5O2T|X6*@;5x6G6wWy*E6*249P#-u7te-^yV>!){hCSC(*8T8UU=;xMgARF|b>u*k zfSez!ADBA8>JD;0R15&?fu+haMbfU0^ZVp3SRK%?$K8`wD>?oMXVjEl+CRELZN9`FxW_5Q+Cwe0I^7Pf!R4+G30~oSMEinSv**u@LA9TuO zs~!)E95_p>76%ML^1QvMt9y2!pY5cEe2IWx@@|Rygj#9%-truHjf5^eLwH?$)}HUi z|Ne>qDk14rjq?3v?9Jw-9|FT+jEJByRl=!0ySMZ2_P~A#*M^5-K`m;tD)^)EEQHvl zPJT&)6#^o4JGDUS-ubE@5;SUErU(4OVx24ZibKjv!l2qXCfU2w5%cc;>N+d+e~Vvuc2l%dQpvFVclG?nOfq zrB?b~r(iQqIgFA6ZOWt+dX%}tD6<%IlTz$a2#7z`q|^ ztT8gy`EM44r0{+-f4E4ep#Kl&S%pUtBy-@HC0~EUz!Ml%0)y_jQ{{46Ed@GNmtw78 z%e1P1CT^K_CGejubF%^vm+S!;6<=tvt>(be{eD>p=D?((%K`L@$AY;w{sQs4HWm{# zm$r{K$;J{xrC$W_x-~xaK3QTXSYXW~yC8k)-S!i;De@1}JD(Zx_cSH`VX9x^A0({u o4h8?+)`C?hX4Qo07*qoM6N<$f-}c_761SM literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/rayquaza_light.bin b/graphics/rayquaza_scene/rayquaza_light.bin new file mode 100755 index 0000000000000000000000000000000000000000..97808b8b9c7089eb0822c5faea78cf332eb9a979 GIT binary patch literal 2048 zcmeIx*KPta5QX7Q0)Ywbhb$#@0x9&~+xx#2LV_r}EXKY=Xzg2n9?!9DS&urNc;WT@=;>{w9utz;Nv8~;rk4u1SbXkpAm%YTsf(883NhA&Wb<#xV*VSe)kl_*p3tbW{O!BTkwn<}-dT3E4G h_)qFI6k6D@RroKym0H-bS9r6(<*)V=@DsR?1P(wx7?S`1 literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/rayquaza_light.png b/graphics/rayquaza_scene/rayquaza_light.png new file mode 100755 index 0000000000000000000000000000000000000000..4640149f32a8b6d06fc0e298fca7d7a259e9a2ea GIT binary patch literal 534 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*Cl7S{Qv*|=>L1&|F;DF zpCa)sOX6&h!V*i(YE7ULOmO!61RVwj#)Y0Pjv*eMTc;S79X8--+nO4dm++J=FkXMc zb>S=Lczv$E$tz2BH!yJfB;R7Vq`+`!Bcs6~ z0i*a7SM}c61zR0%MrV2jDQ$kFrRya$Q`ux8mxTnwRV&rAyKYshGTykS&3S-nZ_p}N z&Q}KPcLFBKCVb+ExwgR4qC!&if{ac;9;X6R+}Z}Fj)vgHX}Jum(ipZ{&e-+RO5Hd? z_~|*%?$Q9$i%}cvW_`JNmd8Ss=?_nZs#jFh9gRl2XsvBaT^d5pXlH6(+r@G@{r~36 z(RBe&Osyw}&IE zU?{`*q(kO2hr(fLhs^JS4xbO0Mx`&xoWt}gL+Uzn_TxI%tTV9=JpcLsFv!dmJ~~ZQ QkP#Gxp00i_>zopr09-E7FaQ7m literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/rayquaza_tail.png b/graphics/rayquaza_scene/rayquaza_tail.png new file mode 100755 index 0000000000000000000000000000000000000000..7e0577df15569122e3974c00edaa5557dc66d8ab GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0zlls!VDy3UX;}UDT4r?5Z5_#{#yoFIyO6cO{tFB z+dbvpmZYexHJX;sybQl3B^{lTbnoiB|NsBrJInC@9fO2~gnGe}Pe8qsJzX3_EP9g@ z6a=Rjb2v$ew)O?MEly^f5vY`OgDad+mKC=v4l;jrZ<5{eTL(P1Xb-9ZU;3aG8h#UcLJ5 z+qY-Wo&ja>0Lf*I?|{;^o-U3d5>s>g9`YVl;ArvP?XkF$+adPAJYj|3>w`pkGe5oS zzr!it@*&(kh2v;$zQYd1z84+_p`lZgs z)Jx%q>Tl*4oiCWT&CV-(EhEq6Q&HL_l6xkdU$UmneqnK^>SC|cbzhkrPN~WJ@$3u* Oxzp3t&t;ucLK6U=Syd7M literal 0 HcmV?d00001 diff --git a/graphics/rayquaza_scene/splash.png b/graphics/rayquaza_scene/splash.png new file mode 100755 index 0000000000000000000000000000000000000000..406af9da3f0fc19937aa47d3e885f273e2007f82 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^4nQoy!VDyL%z9Q1qznRlLR{y}`40p@9+6g|WC&obQ|)PTP-w{0a^ld@??~g=G(mx9fppVx-z5x1O$>MU zzR+_h)^96v3z1K(>KA;MEh4A5T!>d4zhuQ4>(qvXR7HHb|2`4golLb;Twl(S9)_Q@ZODz}mhP9oVAoLmsejVpQYMd!7Df9-E7JkP<)pMUO;#Qr}2 U$Arbf3K3Im=ko~@3jDgj4*w`3>i_@% literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_D9AF44.pal b/graphics/unknown/unknown_D9AF44.pal new file mode 100755 index 0000000000..dcfdcf2efd --- /dev/null +++ b/graphics/unknown/unknown_D9AF44.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 98 115 +255 255 255 +205 205 205 +164 164 164 +123 123 123 +98 98 115 +41 57 65 +57 106 139 +41 82 115 +255 255 205 +255 230 139 +255 32 32 +106 213 180 +41 164 123 +189 156 90 +0 0 0 diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 86f2436a95..fb0664c00a 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -12,6 +12,7 @@ btintgfxdir := graphics/battle_interface masksgfxdir := graphics/battle_anims/masks bttransgfxdir := graphics/battle_transitions typesdir := graphics/types +raydir := graphics/rayquaza_scene types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark contest_types := cool beauty cute smart tough @@ -372,3 +373,22 @@ $(typesdir)/move_types.gbapal: $(typesdir)/move_types_1.gbapal $(typesdir)/move_ $(menudir)/bag_screen.4bpp: $(menudir)/bag_screen.png $(GFX) $< $@ -num_tiles 53 + +$(raydir)/rayquaza.8bpp: $(raydir)/rayquaza.png + $(GFX) $< $@ -num_tiles 227 + +$(raydir)/overcast.4bpp: $(raydir)/overcast.png + $(GFX) $< $@ -num_tiles 313 + +$(raydir)/rayquaza_fly1.4bpp: $(raydir)/rayquaza_fly1.png + $(GFX) $< $@ -num_tiles 124 + +$(raydir)/rayquaza_tail_fix.4bpp: $(raydir)/rayquaza_tail.4bpp + cp $< $@ + head -c 12 /dev/zero >> $@ + +$(raydir)/chase_streaks.4bpp: $(raydir)/chase_streaks.png + $(GFX) $< $@ -num_tiles 19 + +$(raydir)/rayquaza_chase.4bpp: $(raydir)/rayquaza_chase.png + $(GFX) $< $@ -num_tiles 155 diff --git a/include/graphics.h b/include/graphics.h index 8f58a5f7ec..a12fb7ab81 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2651,28 +2651,28 @@ extern const u8 gUnknown_08DC234C[]; extern const u8 gUnknown_08DC16F4[]; // rayquaza scene gfx -extern const u8 gUnknown_08DA1E78[]; -extern const u8 gUnknown_08DA2A5C[]; -extern const u8 gUnknown_08DA2B28[]; -extern const u8 gUnknown_08DA2D1C[]; -extern const u8 gUnknown_08DA3250[]; -extern const u8 gUnknown_08DA32A4[]; -extern const u8 gUnknown_08DA3370[]; -extern const u8 gUnknown_08DA3398[]; -extern const u8 gUnknown_08DA3BC0[]; -extern const u8 gUnknown_08DA3C7C[]; -extern const u8 gUnknown_08DA4DA8[]; -extern const u8 gUnknown_08DA6440[]; -extern const u8 gUnknown_08DA68AC[]; -extern const u8 gUnknown_08DA8ED8[]; -extern const u8 gUnknown_08DA9670[]; -extern const u8 gUnknown_08DA96B4[]; -extern const u8 gUnknown_08DA98FC[]; -extern const u8 gUnknown_08DAA5A4[]; -extern const u8 gUnknown_08DAA794[]; -extern const u8 gUnknown_08DAA82C[]; -extern const u8 gUnknown_08DAA854[]; -extern const u8 gUnknown_08DAA87C[]; -extern const u8 gUnknown_08DAA8A4[]; +extern const u8 gRaySceneGroudon_Gfx[]; +extern const u8 gRaySceneGroudon2_Gfx[]; +extern const u8 gRaySceneGroudon3_Gfx[]; +extern const u8 gRaySceneKyogre_Gfx[]; +extern const u8 gRaySceneKyogre2_Gfx[]; +extern const u8 gRaySceneKyogre3_Gfx[]; +extern const u8 gRaySceneGroudon_Pal[]; +extern const u8 gRaySceneKyogre_Pal[]; +extern const u8 gRaySceneSmoke_Gfx[]; +extern const u8 gRaySceneSmoke_Pal[]; +extern const u8 gRaySceneRayquaza_Pal[]; +extern const u8 gRaySceneRayquazaFly1_Gfx[]; +extern const u8 gRaySceneRayquazaTail_Gfx[]; +extern const u8 gRaySceneGroudonLeft_Gfx[]; +extern const u8 gRaySceneGroudonTail_Gfx[]; +extern const u8 gRaySceneKyogreRight_Gfx[]; +extern const u8 gRaySceneRayquazaHover_Gfx[]; +extern const u8 gRaySceneRayquazaFlyIn_Gfx[]; +extern const u8 gRaySceneSplash_Gfx[]; +extern const u8 gRaySceneGroudonLeft_Pal[]; +extern const u8 gRaySceneKyogreRight_Pal[]; +extern const u8 gRaySceneRayquazaHover_Pal[]; +extern const u8 gRaySceneSplash_Pal[]; #endif //GUARD_GRAPHICS_H diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 577294f0c3..ce87473952 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -431,12 +431,12 @@ static const union AnimCmd *const sSpriteAnimTable_862A8BC[] = const struct CompressedSpriteSheet gUnknown_0862A8C4 = { - gUnknown_08DA1E78, 0x3000, 30505 + gRaySceneGroudon_Gfx, 0x3000, 30505 }; const struct CompressedSpritePalette gUnknown_0862A8CC = { - gUnknown_08DA3370, 30505 + gRaySceneGroudon_Pal, 30505 }; const struct SpriteTemplate gUnknown_0862A8D4 = @@ -463,7 +463,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A8F4[] = const struct CompressedSpriteSheet gUnknown_0862A8F8 = { - gUnknown_08DA2A5C, 0x200, 30506 + gRaySceneGroudon2_Gfx, 0x200, 30506 }; const struct SpriteTemplate gUnknown_0862A900 = @@ -490,7 +490,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A920[] = const struct CompressedSpriteSheet gUnknown_0862A924 = { - gUnknown_08DA2B28, 0x400, 30507 + gRaySceneGroudon3_Gfx, 0x400, 30507 }; const struct SpriteTemplate gUnknown_0862A92C = @@ -582,12 +582,12 @@ static const union AnimCmd *const sSpriteAnimTable_862A9B0[] = const struct CompressedSpriteSheet gUnknown_0862A9D4 = { - gUnknown_08DA2D1C, 0xF00, 30508 + gRaySceneKyogre_Gfx, 0xF00, 30508 }; const struct CompressedSpritePalette gUnknown_0862A9DC = { - gUnknown_08DA3398, 30508 + gRaySceneKyogre_Pal, 30508 }; const struct SpriteTemplate gUnknown_0862A9E4 = @@ -617,7 +617,7 @@ static const union AnimCmd *const sSpriteAnimTable_862AA10[] = const struct CompressedSpriteSheet gUnknown_0862AA14 = { - gUnknown_08DA3250, 0xC0, 30509 + gRaySceneKyogre2_Gfx, 0xC0, 30509 }; const struct SpriteTemplate gUnknown_0862AA1C = @@ -633,7 +633,7 @@ const struct SpriteTemplate gUnknown_0862AA1C = const struct CompressedSpriteSheet gUnknown_0862AA34 = { - gUnknown_08DA32A4, 0x200, 30510 + gRaySceneKyogre3_Gfx, 0x200, 30510 }; const struct SpriteTemplate gUnknown_0862AA3C = @@ -704,12 +704,12 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_862AA8C[] = const struct CompressedSpriteSheet gUnknown_0862AA90 = { - gUnknown_08DA3BC0, 0x100, 30555 + gRaySceneSmoke_Gfx, 0x100, 30555 }; const struct CompressedSpritePalette gUnknown_0862AA98 = { - gUnknown_08DA3C7C, 30555 + gRaySceneSmoke_Pal, 30555 }; const struct SpriteTemplate gUnknown_0862AAA0 = @@ -803,17 +803,17 @@ static const union AnimCmd *const sSpriteAnimTable_862AAF8[] = const struct CompressedSpriteSheet gUnknown_0862AAFC = { - gUnknown_08DA6440, 0x1000, 30556 + gRaySceneRayquazaFly1_Gfx, 0x1000, 30556 }; const struct CompressedSpriteSheet gUnknown_0862AB04 = { - gUnknown_08DA68AC, 0x200, 30557 + gRaySceneRayquazaTail_Gfx, 0x200, 30557 }; const struct CompressedSpritePalette gUnknown_0862AB0C = { - gUnknown_08DA4DA8, 30556 + gRaySceneRayquaza_Pal, 30556 }; const struct SpriteTemplate gUnknown_0862AB14 = @@ -1017,52 +1017,52 @@ static const union AnimCmd *const sSpriteAnimTable_862AC24[] = const struct CompressedSpriteSheet gUnknown_0862AC28 = { - gUnknown_08DA8ED8, 0x1800, 30565 + gRaySceneGroudonLeft_Gfx, 0x1800, 30565 }; const struct CompressedSpriteSheet gUnknown_0862AC30 = { - gUnknown_08DA9670, 0x80, 30566 + gRaySceneGroudonTail_Gfx, 0x80, 30566 }; const struct CompressedSpriteSheet gUnknown_0862AC38 = { - gUnknown_08DA96B4, 0x600, 30568 + gRaySceneKyogreRight_Gfx, 0x600, 30568 }; const struct CompressedSpriteSheet gUnknown_0862AC40 = { - gUnknown_08DA98FC, 0x2000, 30569 + gRaySceneRayquazaHover_Gfx, 0x2000, 30569 }; const struct CompressedSpriteSheet gUnknown_0862AC48 = { - gUnknown_08DAA5A4, 0x800, 30570 + gRaySceneRayquazaFlyIn_Gfx, 0x800, 30570 }; const struct CompressedSpriteSheet gUnknown_0862AC50 = { - gUnknown_08DAA794, 0x300, 30571 + gRaySceneSplash_Gfx, 0x300, 30571 }; const struct CompressedSpritePalette gUnknown_0862AC58 = { - gUnknown_08DAA82C, 30565 + gRaySceneGroudonLeft_Pal, 30565 }; const struct CompressedSpritePalette gUnknown_0862AC60 = { - gUnknown_08DAA854, 30568 + gRaySceneKyogreRight_Pal, 30568 }; const struct CompressedSpritePalette gUnknown_0862AC68 = { - gUnknown_08DAA87C, 30569 + gRaySceneRayquazaHover_Pal, 30569 }; const struct CompressedSpritePalette gUnknown_0862AC70 = { - gUnknown_08DAA8A4, 30571 + gRaySceneSplash_Pal, 30571 }; const struct SpriteTemplate gUnknown_0862AC78 = From 03a2a3b81bba374bdf3a74a37a4dc3e2d17a196f Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Thu, 28 Dec 2017 17:15:37 -0500 Subject: [PATCH 39/54] fourteenth wave of graphics.s dumps --- asm/battle_frontier_2.s | 12 +- asm/pokedex.s | 28 +- asm/roulette.s | 4 +- data/graphics.s | 376 ++++++++++++++------- data/pokemon_summary_screen.s | 19 +- data/trainer_card.s | 24 +- graphics/battle_frontier/factory_menu.bin | Bin 0 -> 2048 bytes graphics/battle_frontier/factory_menu1.png | Bin 0 -> 309 bytes graphics/battle_frontier/factory_menu2.png | Bin 0 -> 234 bytes graphics/frontier_pass/cursor.png | Bin 0 -> 226 bytes graphics/frontier_pass/gold.pal | 19 ++ graphics/frontier_pass/map_cursor.png | Bin 0 -> 240 bytes graphics/frontier_pass/medals.png | Bin 0 -> 651 bytes graphics/frontier_pass/silver.pal | 19 ++ graphics/interface/powacc_tilemap.bin | Bin 0 -> 160 bytes graphics/interface/summary.bin | Bin 0 -> 128 bytes graphics/interface/unk_tilemap.bin | Bin 0 -> 160 bytes graphics/mail/bead/map.bin | Bin 0 -> 1280 bytes graphics/mail/bead/palette.pal | 19 ++ graphics/mail/bead/tiles.png | Bin 0 -> 263 bytes graphics/mail/dream/map.bin | Bin 0 -> 1280 bytes graphics/mail/dream/palette.pal | 19 ++ graphics/mail/dream/tiles.png | Bin 0 -> 351 bytes graphics/mail/fab/map.bin | Bin 0 -> 1280 bytes graphics/mail/fab/palette.pal | 19 ++ graphics/mail/fab/tiles.png | Bin 0 -> 388 bytes graphics/mail/glitter/map.bin | Bin 0 -> 1280 bytes graphics/mail/glitter/palette.pal | 19 ++ graphics/mail/glitter/tiles.png | Bin 0 -> 548 bytes graphics/mail/harbor/map.bin | Bin 0 -> 1280 bytes graphics/mail/harbor/palette.pal | 19 ++ graphics/mail/harbor/tiles.png | Bin 0 -> 366 bytes graphics/mail/mech/map.bin | Bin 0 -> 1280 bytes graphics/mail/mech/palette.pal | 19 ++ graphics/mail/mech/tiles.png | Bin 0 -> 299 bytes graphics/mail/orange/map.bin | Bin 0 -> 1280 bytes graphics/mail/orange/palette.pal | 19 ++ graphics/mail/orange/tiles.png | Bin 0 -> 439 bytes graphics/mail/retro/map.bin | Bin 0 -> 1280 bytes graphics/mail/retro/palette.pal | 19 ++ graphics/mail/retro/tiles.png | Bin 0 -> 615 bytes graphics/mail/shadow/map.bin | Bin 0 -> 1280 bytes graphics/mail/shadow/palette.pal | 19 ++ graphics/mail/shadow/tiles.png | Bin 0 -> 400 bytes graphics/mail/tropic/map.bin | Bin 0 -> 1280 bytes graphics/mail/tropic/palette.pal | 19 ++ graphics/mail/tropic/tiles.png | Bin 0 -> 389 bytes graphics/mail/wave/map.bin | Bin 0 -> 1280 bytes graphics/mail/wave/palette.pal | 19 ++ graphics/mail/wave/tiles.png | Bin 0 -> 409 bytes graphics/mail/wood/map.bin | Bin 0 -> 1280 bytes graphics/mail/wood/palette.pal | 19 ++ graphics/mail/wood/tiles.png | Bin 0 -> 518 bytes graphics/pokedex/fade.pal | 51 +++ graphics/pokedex/hoenn_bg.pal | 99 ++++++ graphics/pokedex/menu.png | Bin 0 -> 2045 bytes graphics/pokedex/menu2.png | Bin 0 -> 1044 bytes graphics/pokedex/national_bg.pal | 99 ++++++ graphics/pokedex/noball_unused.png | Bin 0 -> 160 bytes graphics/pokedex/search1.bin | Bin 0 -> 1280 bytes graphics/pokedex/search2.bin | Bin 0 -> 1280 bytes graphics/pokedex/search_menu.pal | 67 ++++ graphics/pokedex/search_menu.png | Bin 0 -> 1116 bytes graphics/pokedex/text.pal | 51 +++ graphics/pokedex/tilemap1.bin | Bin 0 -> 768 bytes graphics/pokedex/tilemap2.bin | Bin 0 -> 768 bytes graphics/pokedex/tilemap3.bin | Bin 0 -> 1280 bytes graphics/pokedex/tilemap4.bin | Bin 0 -> 1280 bytes graphics/pokedex/tilemap5.bin | Bin 0 -> 1280 bytes graphics/pokedex/tilemap6.bin | Bin 0 -> 192 bytes graphics/pokedex/tilemap7.bin | Bin 0 -> 192 bytes graphics/pokedex/tilemap8.bin | Bin 0 -> 1280 bytes graphics/pokedex/tilemap9.bin | Bin 0 -> 1280 bytes graphics/roulette/center.png | Bin 0 -> 589 bytes graphics/roulette/credit.png | Bin 0 -> 325 bytes graphics/roulette/headers.png | Bin 0 -> 1060 bytes graphics/roulette/multiplier.png | Bin 0 -> 399 bytes graphics/roulette/numbers.png | Bin 0 -> 300 bytes graphics/roulette/wheel.png | Bin 0 -> 3248 bytes graphics/roulette/window.png | Bin 0 -> 1077 bytes include/graphics.h | 4 +- src/mail.c | 96 +++--- src/pokedex.c | 4 +- src/pokemon_summary_screen.c | 18 +- 84 files changed, 995 insertions(+), 223 deletions(-) create mode 100755 graphics/battle_frontier/factory_menu.bin create mode 100755 graphics/battle_frontier/factory_menu1.png create mode 100755 graphics/battle_frontier/factory_menu2.png create mode 100755 graphics/frontier_pass/cursor.png create mode 100755 graphics/frontier_pass/gold.pal create mode 100755 graphics/frontier_pass/map_cursor.png create mode 100755 graphics/frontier_pass/medals.png create mode 100755 graphics/frontier_pass/silver.pal create mode 100755 graphics/interface/powacc_tilemap.bin create mode 100755 graphics/interface/summary.bin create mode 100755 graphics/interface/unk_tilemap.bin create mode 100755 graphics/mail/bead/map.bin create mode 100755 graphics/mail/bead/palette.pal create mode 100755 graphics/mail/bead/tiles.png create mode 100755 graphics/mail/dream/map.bin create mode 100755 graphics/mail/dream/palette.pal create mode 100755 graphics/mail/dream/tiles.png create mode 100755 graphics/mail/fab/map.bin create mode 100755 graphics/mail/fab/palette.pal create mode 100755 graphics/mail/fab/tiles.png create mode 100755 graphics/mail/glitter/map.bin create mode 100755 graphics/mail/glitter/palette.pal create mode 100755 graphics/mail/glitter/tiles.png create mode 100755 graphics/mail/harbor/map.bin create mode 100755 graphics/mail/harbor/palette.pal create mode 100755 graphics/mail/harbor/tiles.png create mode 100755 graphics/mail/mech/map.bin create mode 100755 graphics/mail/mech/palette.pal create mode 100755 graphics/mail/mech/tiles.png create mode 100755 graphics/mail/orange/map.bin create mode 100755 graphics/mail/orange/palette.pal create mode 100755 graphics/mail/orange/tiles.png create mode 100755 graphics/mail/retro/map.bin create mode 100755 graphics/mail/retro/palette.pal create mode 100755 graphics/mail/retro/tiles.png create mode 100755 graphics/mail/shadow/map.bin create mode 100755 graphics/mail/shadow/palette.pal create mode 100755 graphics/mail/shadow/tiles.png create mode 100755 graphics/mail/tropic/map.bin create mode 100755 graphics/mail/tropic/palette.pal create mode 100755 graphics/mail/tropic/tiles.png create mode 100755 graphics/mail/wave/map.bin create mode 100755 graphics/mail/wave/palette.pal create mode 100755 graphics/mail/wave/tiles.png create mode 100755 graphics/mail/wood/map.bin create mode 100755 graphics/mail/wood/palette.pal create mode 100755 graphics/mail/wood/tiles.png create mode 100755 graphics/pokedex/fade.pal create mode 100755 graphics/pokedex/hoenn_bg.pal create mode 100755 graphics/pokedex/menu.png create mode 100755 graphics/pokedex/menu2.png create mode 100755 graphics/pokedex/national_bg.pal create mode 100755 graphics/pokedex/noball_unused.png create mode 100755 graphics/pokedex/search1.bin create mode 100755 graphics/pokedex/search2.bin create mode 100755 graphics/pokedex/search_menu.pal create mode 100755 graphics/pokedex/search_menu.png create mode 100755 graphics/pokedex/text.pal create mode 100755 graphics/pokedex/tilemap1.bin create mode 100755 graphics/pokedex/tilemap2.bin create mode 100755 graphics/pokedex/tilemap3.bin create mode 100755 graphics/pokedex/tilemap4.bin create mode 100755 graphics/pokedex/tilemap5.bin create mode 100755 graphics/pokedex/tilemap6.bin create mode 100755 graphics/pokedex/tilemap7.bin create mode 100755 graphics/pokedex/tilemap8.bin create mode 100755 graphics/pokedex/tilemap9.bin create mode 100755 graphics/roulette/center.png create mode 100755 graphics/roulette/credit.png create mode 100755 graphics/roulette/headers.png create mode 100755 graphics/roulette/multiplier.png create mode 100755 graphics/roulette/numbers.png create mode 100755 graphics/roulette/wheel.png create mode 100755 graphics/roulette/window.png diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index a63267e489..3c2a101163 100755 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -189,7 +189,7 @@ _0819A69C: bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes - ldr r0, =gUnknown_08DC0754 + ldr r0, =gFrontierFactorySelectMenu_Gfx ldr r5, =gUnknown_0203CE2C ldr r1, [r5] movs r2, 0x88 @@ -211,7 +211,7 @@ _0819A69C: movs r2, 0x60 movs r3, 0 bl LoadBgTiles - ldr r0, =gUnknown_08DC0B94 + ldr r0, =gFrontierFactorySelectMenu_Tilemap ldr r4, =gUnknown_0203CE34 ldr r1, [r4] movs r2, 0x80 @@ -223,7 +223,7 @@ _0819A69C: movs r0, 0x1 movs r3, 0 bl LoadBgTilemap - ldr r0, =gUnknown_08DC0714 + ldr r0, =gFrontierFactorySelectMenu_Pal movs r1, 0 movs r2, 0x40 bl LoadPalette @@ -6646,7 +6646,7 @@ _0819DDA8: bl ResetTasks bl FreeAllSpritePalettes bl dp13_810BB8C - ldr r0, =gUnknown_08DC0754 + ldr r0, =gFrontierFactorySelectMenu_Gfx ldr r5, =gUnknown_0203CE40 ldr r1, [r5] movs r2, 0x88 @@ -6668,7 +6668,7 @@ _0819DDA8: movs r2, 0x60 movs r3, 0 bl LoadBgTiles - ldr r0, =gUnknown_08DC0B94 + ldr r0, =gFrontierFactorySelectMenu_Tilemap ldr r4, =gUnknown_0203CE48 ldr r1, [r4] movs r2, 0x80 @@ -6680,7 +6680,7 @@ _0819DDA8: movs r0, 0x1 movs r3, 0 bl LoadBgTilemap - ldr r0, =gUnknown_08DC0714 + ldr r0, =gFrontierFactorySelectMenu_Pal movs r1, 0 movs r2, 0x40 bl LoadPalette diff --git a/asm/pokedex.s b/asm/pokedex.s index ac35c3f7b8..147f8921b5 100644 --- a/asm/pokedex.s +++ b/asm/pokedex.s @@ -2054,7 +2054,7 @@ _080BC56E: adds r1, r0, 0 movs r0, 0 bl SetBgTilemapBuffer - ldr r1, =gUnknown_08DC1934 + ldr r1, =gPokedexMenu_Gfx movs r2, 0x80 lsls r2, 6 str r6, [sp] @@ -2291,14 +2291,14 @@ sub_80BC844: @ 80BC844 lsrs r0, 24 cmp r0, 0x1 bne _080BC858 - ldr r0, =gUnknown_08DC17B6 + ldr r0, =gPokedexHoennBg_Pal + 0x2 b _080BC862 .pool _080BC858: bl IsNationalPokedexEnabled cmp r0, 0 bne _080BC870 - ldr r0, =gUnknown_08DC16F4 + 2 + ldr r0, =gPokedexText_Pal + 2 _080BC862: movs r1, 0x1 movs r2, 0xBE @@ -2306,7 +2306,7 @@ _080BC862: b _080BC87A .pool _080BC870: - ldr r0, =gUnknown_08DC1876 + ldr r0, =gPokedexNationalBg_Pal + 0x2 movs r1, 0x1 movs r2, 0xBE bl LoadPalette @@ -6369,7 +6369,7 @@ _080BEACA: b _080BEDA0 .pool _080BEAF0: - ldr r1, =gUnknown_08DC1934 + ldr r1, =gPokedexMenu_Gfx movs r2, 0x80 lsls r2, 6 movs r0, 0 @@ -7257,7 +7257,7 @@ _080BF2B6: b _080BF5B2 .pool _080BF310: - ldr r1, =gUnknown_08DC1934 + ldr r1, =gPokedexMenu_Gfx movs r2, 0x80 lsls r2, 6 movs r0, 0 @@ -7856,7 +7856,7 @@ _080BF88E: b _080BFB94 .pool _080BF8D8: - ldr r1, =gUnknown_08DC1934 + ldr r1, =gPokedexMenu_Gfx movs r2, 0x80 lsls r2, 6 movs r0, 0 @@ -8543,7 +8543,7 @@ _080BFE92: b _080C0074 .pool _080BFF0C: - ldr r1, =gUnknown_08DC1934 + ldr r1, =gPokedexMenu_Gfx movs r2, 0x80 lsls r2, 6 movs r0, 0 @@ -8751,14 +8751,14 @@ _080C00E8: ands r1, r0 cmp r1, 0 beq _080C0114 - ldr r0, =gUnknown_08DC16F4 + 2 + ldr r0, =gPokedexText_Pal + 2 movs r1, 0x31 movs r2, 0xE bl LoadPalette b _080C011E .pool _080C0114: - ldr r0, =gUnknown_08DC1756 + ldr r0, =gPokedexCaughtScreenFade_Pal + 0x2 movs r1, 0x31 movs r2, 0xE bl LoadPalette @@ -11135,7 +11135,7 @@ _080C1332: bl DeactivateAllTextPrinters movs r0, 0 bl PutWindowTilemap - ldr r1, =gUnknown_08DC3304 + ldr r1, =gPokedexSearchMenu_Gfx movs r2, 0x80 lsls r2, 6 str r5, [sp] @@ -11145,7 +11145,7 @@ _080C1332: bl IsNationalPokedexEnabled cmp r0, 0 bne _080C13E4 - ldr r1, =gUnknown_08DC3A0C + ldr r1, =gPokedexSearch2_Tilemap movs r0, 0x3 movs r2, 0 movs r3, 0 @@ -11153,13 +11153,13 @@ _080C1332: b _080C13F0 .pool _080C13E4: - ldr r1, =gUnknown_08DC3870 + ldr r1, =gPokedexSearch1_Tilemap movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer _080C13F0: - ldr r0, =gUnknown_08DC3286 + ldr r0, =gPokedexSearchMenu_Pal + 0x2 movs r1, 0x1 movs r2, 0x7E bl LoadPalette diff --git a/asm/roulette.s b/asm/roulette.s index 85d857f39f..347dfec764 100644 --- a/asm/roulette.s +++ b/asm/roulette.s @@ -452,14 +452,14 @@ _08140662: lsls r2, 1 movs r1, 0 bl LoadPalette - ldr r1, =gUnknown_08DBC2E8 + ldr r1, =gRouletteMenuTiles movs r4, 0 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DBCA14 + ldr r1, =gRouletteWheelTiles str r4, [sp] movs r0, 0x2 movs r2, 0 diff --git a/data/graphics.s b/data/graphics.s index 0e6ec9d384..37771d4c50 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -3875,11 +3875,33 @@ gRaySceneHushBg_Pal:: @ 8DAAFEC @ 8DB7AA0 .include "data/graphics/decorations/decoration_graphics.inc" -@ 8DBA14C - .incbin "baserom.gba", 0xdba14c, 0x3cc + .align 2 +gBattleAnimSpritePalette_282:: @ 8E7E7D0 + .incbin "graphics/battle_anims/sprites/282.gbapal.lz" + .align 2 +gBattleAnimSpriteSheet_282:: @ 8E7E7F8 + .incbin "graphics/battle_anims/sprites/282.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_270:: @ 8E7E9E0 + .incbin "graphics/battle_anims/sprites/270.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_270:: @ 8E7E9FC + .incbin "graphics/battle_anims/sprites/270.4bpp.lz" + + .align 2 +gBattleAnimSpritePalette_271:: @ 8E7EB24 + .incbin "graphics/battle_anims/sprites/271.gbapal.lz" + + .align 2 +gBattleAnimSpriteSheet_271:: @ 8E7EB3C + .incbin "graphics/battle_anims/sprites/271.4bpp.lz" + + .align 2 gUnknown_08DBA518:: @ 8DBA518 - .incbin "baserom.gba", 0xdba518, 0x80 + .incbin "graphics/misc/cable_car_bg.gbapal" .align 2 gCableCar_Pal:: @ 8DBA598 @@ -3887,7 +3909,7 @@ gCableCar_Pal:: @ 8DBA598 .align 2 gUnknown_08DBA5B8:: @ 8DBA5B8 - .incbin "baserom.gba", 0xdba5b8, 0x19d8 + .incbin "graphics/misc/cable_car_bg.4bpp.lz" .align 2 gCableCar_Gfx:: @ 8DBBF90 @@ -3902,203 +3924,303 @@ gCableCarCord_Gfx:: @ 8DBC2C0 .incbin "graphics/misc/cable_car_cord.4bpp.lz" .align 2 -gUnknown_08DBC2E8:: @ 8DBC2E8 - .incbin "baserom.gba", 0xdbc2e8, 0x72c +gRouletteMenuTiles:: @ 8DBC2E8 + .incbin "graphics/roulette/window.4bpp.lz" -gUnknown_08DBCA14:: @ 0x08DBCA14 - .incbin "baserom.gba", 0xdbca14, 0x1e04 + .align 2 +gRouletteWheelTiles:: + .incbin "graphics/roulette/wheel.8bpp.lz" -gUnknown_08DBE818:: @ 0x08DBE818 - .incbin "baserom.gba", 0xdbe818, 0x20 + .align 2 +gRouletteCenter_Gfx:: + .incbin "graphics/roulette/center.4bpp.lz" -gUnknown_08DBE838:: @ 0x08DBE838 - .incbin "baserom.gba", 0xdbe838, 0x20 + .align 2 +gRouletteHeadersTiles:: @ 8E824BC + .incbin "graphics/roulette/headers.4bpp.lz" -gUnknown_08DBE858:: @ 0x08DBE858 - .incbin "baserom.gba", 0xdbe858, 0x20 + .align 2 +gRouletteCreditTiles:: @ 8E82AE0 + .incbin "graphics/roulette/credit.4bpp.lz" -gUnknown_08DBE878:: @ 0x08DBE878 - .incbin "baserom.gba", 0xdbe878, 0x20 + .align 2 +gRouletteNumbersTiles:: @ 8E82C30 + .incbin "graphics/roulette/numbers.4bpp.lz" -gUnknown_08DBE898:: @ 0x08DBE898 - .incbin "baserom.gba", 0xdbe898, 0x20 + .align 2 +gRouletteMultiplierTiles:: @ 8E82D14 + .incbin "graphics/roulette/multiplier.4bpp.lz" -gUnknown_08DBE8B8:: @ 0x08DBE8B8 - .incbin "baserom.gba", 0xdbe8b8, 0x20 + .align 2 +gMailPalette_Orange:: @ 0x08DBE818 + .incbin "graphics/mail/orange/palette.gbapal" -gUnknown_08DBE8D8:: @ 0x08DBE8D8 - .incbin "baserom.gba", 0xdbe8d8, 0x20 + .align 2 +gMailPalette_Harbor:: @ 0x08DBE838 + .incbin "graphics/mail/harbor/palette.gbapal" -gUnknown_08DBE8F8:: @ 0x08DBE8F8 - .incbin "baserom.gba", 0xdbe8f8, 0x20 + .align 2 +gMailPalette_Glitter:: @ 0x08DBE858 + .incbin "graphics/mail/glitter/palette.gbapal" -gUnknown_08DBE918:: @ 0x08DBE918 - .incbin "baserom.gba", 0xdbe918, 0x20 + .align 2 +gMailPalette_Mech:: @ 0x08DBE878 + .incbin "graphics/mail/mech/palette.gbapal" -gUnknown_08DBE938:: @ 0x08DBE938 - .incbin "baserom.gba", 0xdbe938, 0x20 + .align 2 +gMailPalette_Wood:: @ 0x08DBE898 + .incbin "graphics/mail/wood/palette.gbapal" -gUnknown_08DBE958:: @ 0x08DBE958 - .incbin "baserom.gba", 0xdbe958, 0x20 + .align 2 +gMailPalette_Wave:: @ 0x08DBE8B8 + .incbin "graphics/mail/wave/palette.gbapal" -gUnknown_08DBE978:: @ 0x08DBE978 - .incbin "baserom.gba", 0xdbe978, 0x20 + .align 2 +gMailPalette_Bead:: @ 0x08DBE8D8 + .incbin "graphics/mail/bead/palette.gbapal" -gUnknown_08DBE998:: @ 0x08DBE998 - .incbin "baserom.gba", 0xdbe998, 0x1a0 + .align 2 +gMailPalette_Shadow:: @ 0x08DBE8F8 + .incbin "graphics/mail/shadow/palette.gbapal" -gUnknown_08DBEB38:: @ 0x08DBEB38 - .incbin "baserom.gba", 0xdbeb38, 0x13c + .align 2 +gMailPalette_Tropic:: @ 0x08DBE918 + .incbin "graphics/mail/tropic/palette.gbapal" -gUnknown_08DBEC74:: @ 0x08DBEC74 - .incbin "baserom.gba", 0xdbec74, 0x210 + .align 2 +gMailPalette_Dream:: @ 0x08DBE938 + .incbin "graphics/mail/dream/palette.gbapal" -gUnknown_08DBEE84:: @ 0x08DBEE84 - .incbin "baserom.gba", 0xdbee84, 0xd8 + .align 2 +gMailPalette_Fab:: @ 0x08DBE958 + .incbin "graphics/mail/fab/palette.gbapal" -gUnknown_08DBEF5C:: @ 0x08DBEF5C - .incbin "baserom.gba", 0xdbef5c, 0x1f8 + .align 2 +gMailPalette_Retro:: @ 0x08DBE978 + .incbin "graphics/mail/retro/palette.gbapal" -gUnknown_08DBF154:: @ 0x08DBF154 - .incbin "baserom.gba", 0xdbf154, 0x180 + .align 2 +gMailTiles_Orange:: @ 0x08DBE998 + .incbin "graphics/mail/orange/tiles.4bpp.lz" -gUnknown_08DBF2D4:: @ 0x08DBF2D4 - .incbin "baserom.gba", 0xdbf2d4, 0xa8 + .align 2 +gMailTiles_Harbor:: @ 0x08DBEB38 + .incbin "graphics/mail/harbor/tiles.4bpp.lz" -gUnknown_08DBF37C:: @ 0x08DBF37C - .incbin "baserom.gba", 0xdbf37c, 0x190 + .align 2 +gMailTiles_Glitter:: @ 0x08DBEC74 + .incbin "graphics/mail/glitter/tiles.4bpp.lz" -gUnknown_08DBF50C:: @ 0x08DBF50C - .incbin "baserom.gba", 0xdbf50c, 0x140 + .align 2 +gMailTiles_Mech:: @ 0x08DBEE84 + .incbin "graphics/mail/mech/tiles.4bpp.lz" -gUnknown_08DBF64C:: @ 0x08DBF64C - .incbin "baserom.gba", 0xdbf64c, 0x168 + .align 2 +gMailTiles_Wood:: @ 0x08DBEF5C + .incbin "graphics/mail/wood/tiles.4bpp.lz" -gUnknown_08DBF7B4:: @ 0x08DBF7B4 - .incbin "baserom.gba", 0xdbf7b4, 0x150 + .align 2 +gMailTiles_Wave:: @ 0x08DBF154 + .incbin "graphics/mail/wave/tiles.4bpp.lz" -gUnknown_08DBF904:: @ 0x08DBF904 - .incbin "baserom.gba", 0xdbf904, 0x2a0 + .align 2 +gMailTiles_Bead:: @ 0x08DBF2D4 + .incbin "graphics/mail/bead/tiles.4bpp.lz" -gUnknown_08DBFBA4:: @ 0x08DBFBA4 - .incbin "baserom.gba", 0xdbfba4, 0xd8 + .align 2 +gMailTiles_Shadow:: @ 0x08DBF37C + .incbin "graphics/mail/shadow/tiles.4bpp.lz" -gUnknown_08DBFC7C:: @ 0x08DBFC7C - .incbin "baserom.gba", 0xdbfc7c, 0xe0 + .align 2 +gMailTiles_Tropic:: @ 0x08DBF50C + .incbin "graphics/mail/tropic/tiles.4bpp.lz" -gUnknown_08DBFD5C:: @ 0x08DBFD5C - .incbin "baserom.gba", 0xdbfd5c, 0x10c + .align 2 +gMailTiles_Dream:: @ 0x08DBF64C + .incbin "graphics/mail/dream/tiles.4bpp.lz" -gUnknown_08DBFE68:: @ 0x08DBFE68 - .incbin "baserom.gba", 0xdbfe68, 0xdc + .align 2 +gMailTiles_Fab:: @ 0x08DBF7B4 + .incbin "graphics/mail/fab/tiles.4bpp.lz" -gUnknown_08DBFF44:: @ 0x08DBFF44 - .incbin "baserom.gba", 0xdbff44, 0xf0 + .align 2 +gMailTiles_Retro:: @ 0x08DBF904 + .incbin "graphics/mail/retro/tiles.4bpp.lz" -gUnknown_08DC0034:: @ 0x08DC0034 - .incbin "baserom.gba", 0xdc0034, 0xe0 + .align 2 +gMailTilemap_Orange:: @ 0x08DBFBA4 + .incbin "graphics/mail/orange/map.bin.lz" -gUnknown_08DC0114:: @ 0x08DC0114 - .incbin "baserom.gba", 0xdc0114, 0xe0 + .align 2 +gMailTilemap_Harbor:: @ 0x08DBFC7C + .incbin "graphics/mail/harbor/map.bin.lz" -gUnknown_08DC01F4:: @ 0x08DC01F4 - .incbin "baserom.gba", 0xdc01f4, 0x10c + .align 2 +gMailTilemap_Glitter:: @ 0x08DBFD5C + .incbin "graphics/mail/glitter/map.bin.lz" -gUnknown_08DC0300:: @ 0x08DC0300 - .incbin "baserom.gba", 0xdc0300, 0xf0 + .align 2 +gMailTilemap_Mech:: @ 0x08DBFE68 + .incbin "graphics/mail/mech/map.bin.lz" -gUnknown_08DC03F0:: @ 0x08DC03F0 - .incbin "baserom.gba", 0xdc03f0, 0xf8 + .align 2 +gMailTilemap_Wood:: @ 0x08DBFF44 + .incbin "graphics/mail/wood/map.bin.lz" -gUnknown_08DC04E8:: @ 0x08DC04E8 - .incbin "baserom.gba", 0xdc04e8, 0x118 + .align 2 +gMailTilemap_Wave:: @ 0x08DC0034 + .incbin "graphics/mail/wave/map.bin.lz" -gUnknown_08DC0600:: @ 0x08DC0600 - .incbin "baserom.gba", 0xdc0600, 0x114 + .align 2 +gMailTilemap_Bead:: @ 0x08DC0114 + .incbin "graphics/mail/bead/map.bin.lz" -gUnknown_08DC0714:: @ 8DC0714 - .incbin "baserom.gba", 0xdc0714, 0x40 + .align 2 +gMailTilemap_Shadow:: @ 0x08DC01F4 + .incbin "graphics/mail/shadow/map.bin.lz" -gUnknown_08DC0754:: @ 8DC0754 - .incbin "baserom.gba", 0xdc0754, 0x440 + .align 2 +gMailTilemap_Tropic:: @ 0x08DC0300 + .incbin "graphics/mail/tropic/map.bin.lz" -gUnknown_08DC0B94:: @ 8DC0B94 - .incbin "baserom.gba", 0xdc0b94, 0x800 + .align 2 +gMailTilemap_Dream:: @ 0x08DC03F0 + .incbin "graphics/mail/dream/map.bin.lz" -gUnknown_08DC1394:: @ 8DC1394 - .incbin "baserom.gba", 0xdc1394, 0x2E0 + .align 2 +gMailTilemap_Fab:: @ 0x08DC04E8 + .incbin "graphics/mail/fab/map.bin.lz" -gUnknown_08DC1674:: @ 8DC1674 - .incbin "baserom.gba", 0xdc1674, 0x20 + .align 2 +gMailTilemap_Retro:: @ 0x08DC0600 + .incbin "graphics/mail/retro/map.bin.lz" -gUnknown_08DC1694:: @ 8DC1694 - .incbin "baserom.gba", 0xdc1694, 0x20 + .align 2 +gFrontierFactorySelectMenu_Pal:: @ 8DC0714 + .incbin "graphics/battle_frontier/factory_menu1.gbapal" + .incbin "graphics/battle_frontier/factory_menu2.gbapal" -gUnknown_08DC16B4:: @ 8DC16B4 - .incbin "baserom.gba", 0xdc16b4, 0x20 + .align 2 +gFrontierFactorySelectMenu_Gfx:: @ 8DC0754 + .incbin "graphics/battle_frontier/factory_menu1.4bpp" + .incbin "graphics/battle_frontier/factory_menu2.4bpp" -gUnknown_08DC16D4:: @ 8DC16D4 - .incbin "baserom.gba", 0xdc16d4, 0x20 + .align 2 +gFrontierFactorySelectMenu_Tilemap:: @ 8DC0B94 + .incbin "graphics/battle_frontier/factory_menu.bin" -gUnknown_08DC16F4:: @ 8DC16F4 - .incbin "baserom.gba", 0xdc16f4, 0x62 + .align 2 +gFrontierPassMedals_Gfx:: @ 8DC1394 + .incbin "graphics/frontier_pass/medals.4bpp.lz" @ battle frontier medals -gUnknown_08DC1756:: @ 8DC1756 - .incbin "baserom.gba", 0xdc1756, 0x60 + .align 2 +gFrontierPassCursor_Pal:: @ 8DC1674 + .incbin "graphics/frontier_pass/cursor.gbapal" @ frontier pass cursor pal -gUnknown_08DC17B6:: @ 8DC17B6 - .incbin "baserom.gba", 0xdc17b6, 0xc0 + .align 2 +gFrontierPassMapCursor_Pal:: @ 8DC1694 + .incbin "graphics/frontier_pass/map_cursor.gbapal" @ frontier pass map cursor pal -gUnknown_08DC1876:: @ 8DC1876 - .incbin "baserom.gba", 0xdc1876, 0xbe + .align 2 +gFrontierPassMedalsSilver_Pal:: @ 8DC16B4 + .incbin "graphics/frontier_pass/silver.gbapal" -gUnknown_08DC1934:: @ 8DC1934 - .incbin "baserom.gba", 0xdc1934, 0xA18 + .align 2 +gFrontierPassMedalsGold_Pal:: @ 8DC16D4 + .incbin "graphics/frontier_pass/gold.gbapal" -gUnknown_08DC234C:: @ 8DC234C - .incbin "baserom.gba", 0xDC234C, 0x6BC + .align 2 +gPokedexText_Pal:: @ 8DC16F4 + .incbin "graphics/pokedex/text.gbapal" + .align 2 +gPokedexCaughtScreenFade_Pal:: @ 8DC1756 + .incbin "graphics/pokedex/fade.gbapal" + + .align 2 +gPokedexHoennBg_Pal:: @ 8DC17B6 + .incbin "graphics/pokedex/hoenn_bg.gbapal" + + .align 2 +gPokedexNationalBg_Pal:: @ 8DC1876 + .incbin "graphics/pokedex/national_bg.gbapal" + + .align 2 +gPokedexMenu_Gfx:: @ 8DC1934 + .incbin "graphics/pokedex/menu.4bpp.lz" + + .align 2 +gPokedexMenu2_Gfx:: @ 8DC234C + .incbin "graphics/pokedex/menu2.4bpp.lz" + + .align 2 + .incbin "graphics/pokedex/noball_unused.4bpp.lz" @ unused + + @ these are a series of 9 tilemaps used for something pokedex related. + + .align 2 gUnknown_08DC2A08:: @ 8DC2A08 - .incbin "baserom.gba", 0xdc2a08, 0x114 + .incbin "graphics/pokedex/tilemap1.bin.lz" + .align 2 gUnknown_08DC2B1C:: @ 8DC2B1C - .incbin "baserom.gba", 0xdc2b1c, 0x140 + .incbin "graphics/pokedex/tilemap2.bin.lz" + .align 2 gUnknown_08DC2C5C:: @ 8DC2C5C - .incbin "baserom.gba", 0xdc2c5c, 0x150 + .incbin "graphics/pokedex/tilemap3.bin.lz" + .align 2 gUnknown_08DC2DAC:: @ 8DC2DAC - .incbin "baserom.gba", 0xdc2dac, 0xc0 + .incbin "graphics/pokedex/tilemap4.bin.lz" + .align 2 gUnknown_08DC2E6C:: @ 8DC2E6C - .incbin "baserom.gba", 0xdc2e6c, 0xf0 + .incbin "graphics/pokedex/tilemap5.bin.lz" + .align 2 gUnknown_08DC2F5C:: @ 8DC2F5C - .incbin "baserom.gba", 0xdc2f5c, 0x90 + .incbin "graphics/pokedex/tilemap6.bin.lz" + .align 2 gUnknown_08DC2FEC:: @ 8DC2FEC - .incbin "baserom.gba", 0xdc2fec, 0x94 + .incbin "graphics/pokedex/tilemap7.bin.lz" + .align 2 gUnknown_08DC3080:: @ 8DC3080 - .incbin "baserom.gba", 0xdc3080, 0x118 + .incbin "graphics/pokedex/tilemap8.bin.lz" + .align 2 gUnknown_08DC3198:: @ 8DC3198 - .incbin "baserom.gba", 0xdc3198, 0xee + .incbin "graphics/pokedex/tilemap9.bin.lz" @ all tilemaps -gUnknown_08DC3286:: @ 8DC3286 - .incbin "baserom.gba", 0xdc3286, 0x7e + .align 2 +gPokedexSearchMenu_Pal:: @ 8DC3284 + .incbin "graphics/pokedex/search_menu.gbapal" -gUnknown_08DC3304:: @ 8DC3304 - .incbin "baserom.gba", 0xdc3304, 0x56c + .align 2 +gPokedexSearchMenu_Gfx:: @ 8DC3304 + .incbin "graphics/pokedex/search_menu.4bpp.lz" -gUnknown_08DC3870:: @ 8DC3870 - .incbin "baserom.gba", 0xdc3870, 0x19c + .align 2 +gPokedexSearch1_Tilemap:: @ 8DC3870 + .incbin "graphics/pokedex/search1.bin.lz" -gUnknown_08DC3A0C:: @ 8DC3A0C - .incbin "baserom.gba", 0xdc3a0c, 0x2c8 + .align 2 +gPokedexSearch2_Tilemap:: @ 8DC3A0C + .incbin "graphics/pokedex/search2.bin.lz" -gUnknown_08DC3CD4:: @ 8DC3CD4 - .incbin "baserom.gba", 0xdc3cd4, 0x80 + .align 2 +gSummaryScreenPowAcc_Tilemap:: @ 8DC3B94 + .incbin "graphics/interface/powacc_tilemap.bin" @ pow/acc tilemap + + .align 2 +gUnknown_08DC3C34:: @ 8DC3C34 + .incbin "graphics/interface/unk_tilemap.bin" @ probably trade summary screen related? cant check + + .align 2 +gSummaryScreenWindow_Tilemap:: @ 8DC3CD4 + .incbin "graphics/interface/summary.bin" .align 2 gIntroCopyright_Pal:: @ 8DC3D54 diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s index d3cb51fcaa..6594987435 100644 --- a/data/pokemon_summary_screen.s +++ b/data/pokemon_summary_screen.s @@ -18,12 +18,27 @@ gUnknown_0861CBEC:: @ 861CBEC gUnknown_0861CBF8:: @ 861CBF8 .incbin "baserom.gba", 0x61cbf8, 0xc + .align 2 gUnknown_0861CC04:: @ 861CC04 - .incbin "baserom.gba", 0x61cc04, 0xc + .4byte gSummaryScreenPowAcc_Tilemap + .byte 0x00 + .byte 0x00 + .byte 0x0A + .byte 0x07 + .byte 0x00 + .byte 0x2D + .align 2 gUnknown_0861CC10:: @ 861CC10 - .incbin "baserom.gba", 0x61cc10, 0xc + .4byte gUnknown_08DC3C34 + .byte 0x00 + .byte 0x00 + .byte 0x0A + .byte 0x07 + .byte 0x00 + .byte 0x2D + .align 2 gUnknown_0861CC1C:: @ 861CC1C .incbin "baserom.gba", 0x61cc1c, 0x8 diff --git a/data/trainer_card.s b/data/trainer_card.s index 8e49b040f6..4f344c961f 100644 --- a/data/trainer_card.s +++ b/data/trainer_card.s @@ -161,14 +161,16 @@ gUnknown_0856FB9C:: @ 856FB9C gUnknown_0856FBBC:: @ 856FBBC .incbin "baserom.gba", 0x56fbbc, 0xFEC -gUnknown_08570BA8:: @ 8570BA8 - .incbin "baserom.gba", 0x570ba8, 0x9C + .align 2 +gFrontierPassCursor_Gfx:: @ 8570BA8 + .incbin "graphics/frontier_pass/cursor.4bpp.lz" gUnknown_08570C44:: @ 8570C44 .incbin "baserom.gba", 0x570c44, 0xBC -gUnknown_08570D00:: @ 8570D00 - .incbin "baserom.gba", 0x570d00, 0x100 + .align 2 +gFrontierPassMapCursor_Gfx:: @ 8570D00 + .incbin "graphics/frontier_pass/map_cursor.4bpp.lz" gUnknown_08570E00:: @ 8570E00 .incbin "baserom.gba", 0x570e00, 0x260 @@ -210,19 +212,19 @@ gUnknown_08571454:: @ 8571454 .incbin "baserom.gba", 0x571454, 0x68 gUnknown_085714BC:: @ 85714BC - obj_tiles gUnknown_08570BA8, 0x100, 0 - obj_tiles gUnknown_08570D00, 0x400, 1 - obj_tiles gUnknown_08DC1394, 0x380, 2 + obj_tiles gFrontierPassCursor_Gfx, 0x100, 0 + obj_tiles gFrontierPassMapCursor_Gfx, 0x400, 1 + obj_tiles gFrontierPassMedals_Gfx, 0x380, 2 gUnknown_085714D4:: @ 85714D4 obj_tiles gUnknown_08570C44, 0x100, 4 obj_tiles NULL, 0, 0 gUnknown_085714E4:: @ 85714E4 - obj_pal gUnknown_08DC1674, 0 - obj_pal gUnknown_08DC1694, 1 - obj_pal gUnknown_08DC16B4, 2 - obj_pal gUnknown_08DC16D4, 3 + obj_pal gFrontierPassCursor_Pal, 0 + obj_pal gFrontierPassMapCursor_Pal, 1 + obj_pal gFrontierPassMedalsSilver_Pal, 2 + obj_pal gFrontierPassMedalsGold_Pal, 3 obj_pal gUnknown_0856FB7C, 4 obj_pal gUnknown_0856FB9C, 5 obj_pal NULL, 0 diff --git a/graphics/battle_frontier/factory_menu.bin b/graphics/battle_frontier/factory_menu.bin new file mode 100755 index 0000000000000000000000000000000000000000..767257ac2755950ff194612aadea423cc54d38a4 GIT binary patch literal 2048 zcmeH`+YW*-5JVRhtWtF~^$H^V|4-U!xCpj{Hu_*<=Ygi->`XV^8O^LpDV7n9i}Vr> zt;kwI=!$J!@Ggg#Qkl|H%bml*qkb(^z}>7l%s=3zm-ciZ(Jt^8_R+lO2L8<90)ORj zeS*(brf&Y?jB|#6q3#@}!tj+U)r0+2a%Ffa!iD_y>9L<~X-7+y8v U+kbYM{CCLaPj$qf|NZ_w0cZp*IRF3v literal 0 HcmV?d00001 diff --git a/graphics/battle_frontier/factory_menu1.png b/graphics/battle_frontier/factory_menu1.png new file mode 100755 index 0000000000000000000000000000000000000000..52f073ff3081c164655a460c9fdc5b9b13800c8b GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^JAjyjg&D-UuF(jj3<7*YT!AzY{J+PbscGrx7!(zi z1QEd`*Ia$pyk@VEhuRXL+yPG)#}JK)t&=YDHXHD;Zf@G^sB6fO)MCV#_3b`GC+Cae z9QJUor?o6eZyq~nvMMf7I-*qdbX(H<(*5qG!e_g#hY(&Sq&{-^ot+PB^w7na%?wC}P_u52m) z=JV*)m8+Erd|xX*E60c@oA0RTUwQgO4Zp?l`{$Yqo2J}8x_0Nv;1!#Fm_IL>=hwr} j_i(eRIWt#jj>tdOyzJ@QX4aQ|1o_j`)z4*}Q$iB}f>3vE literal 0 HcmV?d00001 diff --git a/graphics/battle_frontier/factory_menu2.png b/graphics/battle_frontier/factory_menu2.png new file mode 100755 index 0000000000000000000000000000000000000000..0d103927e439ad225fe8028b15a5a095cedfccca GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^5kSnr!VDz)O;tYtDT4r?5LX}#2TRthdH3zzy=Tw% z9zELJ+zb@o`|R7AtIwwFJ=?ry@Bjb*fg-;a&+q|KrJgR1ArezdCv4fSnm)b$^qH7L zQ+7<;`snoTj>QgBZf|Oi}@n#9S*29kF-wJ3-9F`v>A|7j%ssf{DnXzM3t X!}{xT85zR*AQyYO`njxgN@xNAEY@4# literal 0 HcmV?d00001 diff --git a/graphics/frontier_pass/cursor.png b/graphics/frontier_pass/cursor.png new file mode 100755 index 0000000000000000000000000000000000000000..3a7af3dd220a3fb421e5cc05551a4422470eb02c GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!VDx|E`RzTNErn9gt!9f|NsA=J$rV^k|ovE z)k#UkmWGzkzWqV({*DUI*>ffh4(y85}Sb4q9e0O3Mir2qf` literal 0 HcmV?d00001 diff --git a/graphics/frontier_pass/gold.pal b/graphics/frontier_pass/gold.pal new file mode 100755 index 0000000000..6db1463821 --- /dev/null +++ b/graphics/frontier_pass/gold.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 164 65 +255 255 255 +205 205 205 +164 164 164 +230 164 8 +230 139 8 +230 123 16 +255 230 131 +255 213 65 +255 205 8 +238 189 8 +222 172 16 +205 156 16 +197 139 24 +164 106 32 +139 82 41 diff --git a/graphics/frontier_pass/map_cursor.png b/graphics/frontier_pass/map_cursor.png new file mode 100755 index 0000000000000000000000000000000000000000..c20bbb59a08afb401c1b7c5311b71741a899da18 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|NsAI&z@bfWJz^( zby89>kn_K|_`iYzQ276|?j%jeq$T%)x{rDluklLC`X<`>0H~+h)5S5wqWA73YoP`O z9+&OSk1r)=y7%ec@8EP=*qe9wjIzobKZb~;w;o*cwu&-b``&1>{Ec=bQ_pw46{6R+ zY6l;TthwxLKGomIAdhvPUtoOyJiTXbu_-nS`3;(j{xEwKpV}96M_`fNfmy#<)|kGU kcrB6d-VCJ%lk2Y;CNPKmG%GI=1UiGk)78&qol`;+02&Hnga7~l literal 0 HcmV?d00001 diff --git a/graphics/frontier_pass/medals.png b/graphics/frontier_pass/medals.png new file mode 100755 index 0000000000000000000000000000000000000000..1c0d366882fa849b497f390559c87481e760b0de GIT binary patch literal 651 zcmV;60(AX}P)1gh6otnXRS;D9k&|c08>F%16i8GNJVuZl&0>4k6dYs?7~f|+2%3@NJNn)jf-)!8qS@KDEN_cHO0|r?#?&oo)tpW9&eutRBhj+1*?4; zdNSBpE}ZQyPsM}Tg|nU6E3v1i&bIYL?2Z+YAD@dPXOR!Ym1H67!t6LAD>L!qm__TU z*m}<5?7Mi_Oo>cuCB)4nHSI5lLLA*p+Mic^{ZR<3!^rWQhv<$+zO8uXAw-@_?`YTo z&qw1(dGH*tFyN^Kc(N$K!y+@_QKm051D=HmA?t$YiF70z%%i2$6_3^%d5XNBMjmy0 z>z9v2?SkLl`6~953&Apvva`$5e-MeX<5B6sQ;9l@ku3cIcyRceXMfOs{RTV@d~h9k zj`RHWeR=9y>rZoR3S#h&&J_`!m4XOZJD`9s5(YgQsf8 z_16;B+r(46|6hLCpO~KsQI(%OHF?ZW=qDi=h(gg?5&S6}SuF6RWU#>VjLxvwAK7T! z%?q{BpW?4Pmw)g~oylw)Jm)So?j`fM?%aXrDskuzEUb{Z!aHxDl#O%D>eQ`Fpi VK|58&B_2ZZ+$pPJY|Ozx^aJ<}A-wn8O2+GiR`1uwzgp3Nk zncU1mKGzsW{?FgP|L8qa*#F?p$*=m8x5=+M@{t*09Qm8(X5iiW&^*JEyZIX5#9!6m P{i&BeujP)8jO zNFN4(dQkw2R1p;$%oHr^hpWE)aacFx8uEM~^Tn4oXMAr{k36q9_46I^rl{^to(b|? zzI0G6mv=NlM`e?k$u0_N6T=UkiCHk*pPEmbY|4+(UE}He^hd`heF37kUL*(P$IJi# N002ovPDHLkV1n?0b9(>) literal 0 HcmV?d00001 diff --git a/graphics/mail/dream/map.bin b/graphics/mail/dream/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..bc28d88640cad09f3d817f463bfdfa44fa89d11f GIT binary patch literal 1280 zcmeH`$qs-Z3`8f2GOoBU|No)L8v821Ec_wT#~B%1kZDZaGsirO{Qenff{|_OrY{0 xGF^`oJa`5ML*c=W91`tv>(&002ovPDHLkV1i5pnF#;@ literal 0 HcmV?d00001 diff --git a/graphics/mail/fab/map.bin b/graphics/mail/fab/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..b11121bdf5346bccf0f762cef84d7b7b7b89f272 GIT binary patch literal 1280 zcmeH{TMNS=6oZ4N65Hc?ng9Q{t}XO3)`4!1n;!?CLLi<9e0v-`SKupf+$fz35F-Q9im?AibS|952X%3xq%x=!3}3)JsT+!E|`M^MvNsm|`qnY~_Rir(=Z zUn=B!8jkwj*)Du<-tSW!8CN&$UanYu`|%YH@3r$%PpkjAm)lezJ7JUWx`R@tsrB4* zRdb6f_nlp0eX6XHJ$QzSR?H-=JD=P7WCecjuu;%|Y_oa&3jy(Ip&K~n{*qoMs@r08 zDWvq&ms<&(I|_W~ZJpqHKyZ^*_|~hd;wKzx(3x9u>d2qak6y`_1?DU~;(y#b)8mWW z;;E9CV%CaEt*v?V(%{s!I=RIbamQCXo9$U+_Ux~@vD?zU7d||BZ(1Y-@2@Xq$dqH50}4D(S3j3^P6ya^dd^fGJsIj%z_-#kUVTdEG_;Oa4|z@YQ_S(2?57BMP4-jF@tW+X2>C64 zJO8-s(8-1LL#OIP^@BO9@PCA@egJ3LO@EOv49iC6_rdZ;IK~D zcwm4=zy{yWxJmq+BPm5H9U2D;-gaSh>;cV)9S7h@i(?Lw;P}>Na|Vu(0LAe0VSuv>t)UnkaQS#MN~rq*_s0& zKaZ|~d}@cIXpa}VWDP8nbT0000|@d*;E literal 0 HcmV?d00001 diff --git a/graphics/mail/harbor/palette.pal b/graphics/mail/harbor/palette.pal new file mode 100755 index 0000000000..1a8795c335 --- /dev/null +++ b/graphics/mail/harbor/palette.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 164 189 +24 172 255 +255 255 148 +115 205 255 +74 172 255 +16 57 230 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +98 197 197 +57 148 148 +82 82 82 +139 139 139 +205 205 205 +255 255 255 diff --git a/graphics/mail/harbor/tiles.png b/graphics/mail/harbor/tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..b0a09ef690fdfe516f46ecfebb396ee55ab861d0 GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^JAjyjg&D-UuF(jj3<7*YT)UU-m00ut|Nkk)Xa9Sx z`7dDk3@8H!Nk@-bPMH!E6x7|_efI2Gpt^UyYj*;re|ow&hGO!!LPwA$MTey=-b^nXF4`}42WzVe|v4zuj9+@e+V z@4=4zInx(yd9<|Ub(eX@k&Hj}A4E=vci3!x{zvrWr_kLw-&T}Pcz96Imhrsvv)Jc- zN1jAx&V4Xld1;}a%K_nyTR!+cTk=r-X^h_D!;Po6+P^(m&sZcCa@;#)em^LTJYD@< J);T3K0RaB~t2+Py literal 0 HcmV?d00001 diff --git a/graphics/mail/mech/map.bin b/graphics/mail/mech/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..d749740085ee8176954665e35c833e9e035f764b GIT binary patch literal 1280 zcmeH_-44JI424gq)v)(}-B}h5F-Q9im?AibS|IZCKdk9pz&C|s(L}F^`#NC326$D%|8<|!F zFFs&cvOuwrG4CMjiAG^1_in8QJ`AuvD#p!j-4yiu*D=)vw2YJ@h)z4*}Q$iB}SGIp6 literal 0 HcmV?d00001 diff --git a/graphics/mail/orange/map.bin b/graphics/mail/orange/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..be4dbf9c56403ecac4f182fdc0ed4dd7a194dc4b GIT binary patch literal 1280 zcmeH`ITC;%3;=g9fCCb;z6b4`)fTb{mHD>7C2Dku488hJc9%+YX#!fX-4-j9WSLo8Ul0`03 z2_Z2?(D$Al0ut^27RULL_&F8=^NA6{bDGhk1TYCyZ-&O4$wLcJS+e2-BmC|}VQiCE z7+ZUdO^*k={T-zlN{RCpt)+2Dir5BB%NXp3lT6BtafNc@+%;aiGv4lHj}2RQ^Ubu3 z?gnFgv9l4URlw#J=G_?E+HV|=(~623G#6{`Iu97e5hpN|35;kr>RRCEEThE~a;leU z+dSU`rCH21XEkl!E=Ha4d&H$y_<-v1_Mlgp z*4ex)ei+xNBi6{VdOSERS6NwRGgW+rHDBWR$ur&^o;bxZViWO2GhKt-;W{0?!2Ohh he!!nN9$W7P<6r1g7~1mb7@`0G002ovPDHLkV1fdR$zA{e literal 0 HcmV?d00001 diff --git a/graphics/mail/retro/map.bin b/graphics/mail/retro/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..30ee05ba21d853837df630307cd6df05064518ea GIT binary patch literal 1280 zcmds%*$#ss5JgWAm9})>_r)&q|3BEoW*TXH5PfJ`ZYIOanR`h9XuA|qEoEd{Dne=T z)#SBw<%U#_4(9JXkZQvFDZ~B0&YN%dRY1l z7&0oRBwFTv_QZQXDPtx~nK5Udk!2qapqF+PRCTsmHd^78c13BKic&t D5d}Eu literal 0 HcmV?d00001 diff --git a/graphics/mail/retro/palette.pal b/graphics/mail/retro/palette.pal new file mode 100755 index 0000000000..707bdff931 --- /dev/null +++ b/graphics/mail/retro/palette.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 164 189 +246 106 41 +255 246 156 +255 205 65 +148 238 82 +172 106 49 +189 164 57 +123 213 246 +0 0 0 +255 230 90 +98 197 197 +57 148 148 +82 82 82 +139 139 139 +205 205 205 +255 255 255 diff --git a/graphics/mail/retro/tiles.png b/graphics/mail/retro/tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..da96ad4867dc827c18b467de0007892898124f45 GIT binary patch literal 615 zcmV-t0+{`YP)<&0000mP)t-si=@5w zYAOHrod3;1l!kP$;OhZVt<{Y-*i zSN-D!;~kAO&$1DGT~)8T+6V!CK%YT3CFRTc1@KzDdPU9s0iaRMi36>J1|UWESZ@WbG>KiE!=HF@-y~rau|Ks37fN+F-IFLEi`1 zQSBin1lW4`i(v^kMwlDf0G=XLy0d^7xus(!T>P`Yj-#0W_2L&JPh+&S_cSx(PzyWjeyeh1r@ZL=}K z+f{7mgDLyiuW%zW^RXS;Qv=_<_0TS7irr`$ZdY*9MIegDDG7I6K_Vz z_Y5vp4a0SUUI!MxiQECZ7;aK+E(uK&CAcOV7s)?YG>8AuD;^RhGsy3rD^d4{h~egv zJVt&2={k+2t)^#?N~H`7>l#vb756EWG?xpCz}BZYWfN6RJ? zJv+7}tvbEKSJtdprhKu|;2JEPm&YuVjM*5zS~1@})c5=WV>Twt!N2EU*+A_7|Nq~} v|89Pt{7Y1*p~)4T_379jqD6;3;h*`5`%|dV1uHh}Fz-1J67D|~`PT3Pn(G?> literal 0 HcmV?d00001 diff --git a/graphics/mail/shadow/palette.pal b/graphics/mail/shadow/palette.pal new file mode 100755 index 0000000000..f08b838c5c --- /dev/null +++ b/graphics/mail/shadow/palette.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 164 189 +139 139 164 +123 123 139 +106 106 123 +90 90 98 +0 0 0 +0 0 0 +0 0 0 +213 65 16 +148 49 0 +98 197 197 +57 148 148 +82 82 82 +139 139 139 +205 205 205 +255 255 255 diff --git a/graphics/mail/shadow/tiles.png b/graphics/mail/shadow/tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..cdc63cde1c9c2cf47772b6c521376b98463d795f GIT binary patch literal 400 zcmV;B0dM|^P)V7P5JkB{vTZ8gz*?6sQ*y9e!A%a3E2N6t4)_9S`$#NYz=H5+059Hr zEf%uo>HirA;zeI|~62$>ta% zpAKvdn#Bf4RXH_a=wSdjQtavugT=0g)a6?XM9&7>NTJKudgJK2AFG6=WgP?bf&imH zp?u|X4NAhA5FGu}<3T69R~3_mOYvI2N%ViKS(qO6N};jWMffWMSqnbR~E uH6LEcJAfN6rz$NAfUmZVZfB9EC;b5}*JKTfBYpD#00001sx5Jh!>Z3ctYt8r~q_y7^8Ul1Y}$ktY@9qkFM3oIsA$Q9DM^nKE1 zMyp_xkbL;?2g?usj1Z&`k`UXr!XLsB@?Eklej|t*A@XT4pbA;x$+}!wpaGjIZu#%yg zAuU6+j@OIB0+FhtIdKjh<-uJqZ?8LK{T~u$V>6&q4~We{QJvv=iC*t@xXRBuZLLEu z)jZiOXGL{}T(TlygD(310HKYs4e5Ka1;X3A2Q^BQ(o7ZjB9yT%md~@-sgRBI3&J%3 jWtu`)Z!Qy>z=5YP#66N0%#DO=00000NkvXXu0mjf_qesT literal 0 HcmV?d00001 diff --git a/graphics/mail/wave/map.bin b/graphics/mail/wave/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..0af44f798610451d37d70f049167281e2b8559ad GIT binary patch literal 1280 zcmeH`Q44?|41|xeva%?0>;M1L>_Hqf2=%c%#C!1D!JI(tBKQK4iMa=w0v&>9oS9-H z`CR(G|MThnzTQ8!xgB69=cji5TNrfc!!OdDUR~x7uoy7~UUTpK42K14;Gb^84sEA= Mvc5p%;{4T}7dtN`PXGV_ literal 0 HcmV?d00001 diff --git a/graphics/mail/wave/palette.pal b/graphics/mail/wave/palette.pal new file mode 100755 index 0000000000..dd9bbfae4d --- /dev/null +++ b/graphics/mail/wave/palette.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 164 189 +0 172 246 +65 90 156 +106 131 197 +197 222 255 +82 156 197 +230 246 255 +0 0 0 +0 0 0 +0 0 0 +98 197 197 +57 148 148 +82 82 82 +139 139 139 +205 205 205 +255 255 255 diff --git a/graphics/mail/wave/tiles.png b/graphics/mail/wave/tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..6b5af8a01cfaf1076114c6946495de0682d5752c GIT binary patch literal 409 zcmV;K0cQS*P)8(?w)PqvjSJbPFKd7DdEJzTHQEA$rLdttJyGM(Y!U`ze2 zh}g^r14?neIl9CEz_tAEpo!%VA4F2GzBo;NncZJF2++$4^gM$O-v1F9=xTR@+IkK{y*8E7~FY5Aw^3A~Sym*;28Kp$E< zTw`jPN50AtM!(qth!YWMP0GS(*=u*McrF!XT2PT?$1~QibMOQc2fscL%$QcN6n#&pF$VBN*DnNRW02EN+ zGz*z#1+spw&%mGzHy&>-km3Y%z4HRlttmV%N09Re^^o2A!2#HA00000NkvXXu0mjf D5nQoe literal 0 HcmV?d00001 diff --git a/graphics/mail/wood/map.bin b/graphics/mail/wood/map.bin new file mode 100755 index 0000000000000000000000000000000000000000..4338a31c8a58ab172a0f64ba6c1095f3726b6744 GIT binary patch literal 1280 zcmeH{>kh&o3`S2F)1r94U*7*Y9myJ3gC=$VjC^StD5r&n0AoiWX1_wzx(z}iMK$T> zHEFzfp|QNAoO-LVWliJ7TfW7wVSPW{n)Cm8e+Pc4|F180R(=0=*YN%}GAFZO$%^%d nJn#7pTXyU@aQuoFPMo=L<;H|*MfWc6vwo0>Um@%NG0r~#4v`Kj literal 0 HcmV?d00001 diff --git a/graphics/mail/wood/palette.pal b/graphics/mail/wood/palette.pal new file mode 100755 index 0000000000..9ed9369186 --- /dev/null +++ b/graphics/mail/wood/palette.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 164 189 +139 131 74 +164 180 82 +189 180 106 +222 205 106 +180 156 65 +246 213 156 +189 164 90 +222 164 123 +255 205 180 +98 197 197 +57 148 148 +82 82 82 +139 139 139 +205 205 205 +255 255 255 diff --git a/graphics/mail/wood/tiles.png b/graphics/mail/wood/tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..a55029facdb033e39a3375080152473d7e86841c GIT binary patch literal 518 zcmV+h0{Q)kP)0oV}!4-lTi~&9q|0#W|FeQc_Zji;K<8&Hw-ZTQ7Xi0004z zNkl|MK%(8%qE#)DxXjtC2^Vqd4(mTnr+V(@hf65V)F92^^MXEaBV5j{n-;?uE zVuIje=wOoTl9|p->y2c!B51_jBVY5yd|``DQ+H3hWuEK(g{IFcq=5iLDi|U8%{Il9 zp0jQ_R3OV>fX-|Xmrw=V=AT#euT7lHx=}y_x z>f@aeq_M}vcgVn0?(3l?#Fw0W3J=4mcXk>2a6(+EgVRAXm`Z1K(w&ab#umWPKGJEt z2I^|NtwzfT!@_v8V;X;#7%Rol@`|bRFwimH#twkv)&L4 z>bX)y>}x3QZ!k&6ZWy5gmJH=gub@g*L%Nx3pa~S4en)Z*o>U#jm4os|x)TlY(s5bx zk!eX+v+AnOQD*vRz$)rn^?94_eoO}Wx;|{qpAotjr{ku60l8`6#DoS56951J07*qo IM6N<$g5MeXQUCw| literal 0 HcmV?d00001 diff --git a/graphics/pokedex/fade.pal b/graphics/pokedex/fade.pal new file mode 100755 index 0000000000..26da98a84c --- /dev/null +++ b/graphics/pokedex/fade.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +123 131 0 +255 255 255 +255 238 0 +255 189 0 +255 115 0 +98 98 115 +41 57 65 +41 57 106 +0 0 41 +255 255 255 +238 246 57 +255 0 189 +49 213 74 +24 131 32 +189 156 90 +0 0 0 +123 131 0 +255 255 255 +197 32 32 +189 189 189 +164 164 164 +98 98 115 +41 57 65 +41 57 106 +0 0 41 +255 255 255 +238 246 57 +189 0 0 +74 148 180 +8 90 131 +189 156 90 +0 0 0 +123 131 0 +255 255 255 +197 32 32 +189 189 189 +164 164 164 +98 98 115 +41 57 65 +41 57 106 +0 0 41 +255 255 255 +238 246 57 +255 0 189 +180 205 246 +49 139 255 +189 156 90 +0 0 0 diff --git a/graphics/pokedex/hoenn_bg.pal b/graphics/pokedex/hoenn_bg.pal new file mode 100755 index 0000000000..41196a2698 --- /dev/null +++ b/graphics/pokedex/hoenn_bg.pal @@ -0,0 +1,99 @@ +JASC-PAL +0100 +96 +123 131 0 +255 255 255 +222 222 222 +189 189 189 +164 164 164 +98 98 115 +41 57 65 +98 98 115 +49 49 65 +255 255 255 +238 246 57 +255 0 189 +123 148 32 +41 82 0 +189 156 90 +0 0 0 +123 131 0 +255 255 255 +197 32 32 +189 189 189 +164 164 164 +98 98 115 +41 57 65 +98 98 115 +49 49 65 +255 255 255 +238 246 57 +255 0 189 +123 148 32 +41 82 0 +189 156 90 +0 0 0 +123 131 0 +255 255 255 +197 32 32 +189 189 189 +164 164 164 +98 98 115 +41 57 65 +98 98 115 +49 49 65 +255 255 255 +238 246 57 +255 0 189 +180 205 246 +49 139 255 +189 156 90 +0 0 0 +123 131 0 +255 255 255 +255 238 0 +255 189 0 +255 115 0 +98 98 115 +41 57 65 +98 98 115 +49 49 65 +255 255 255 +238 246 57 +255 0 189 +123 148 32 +41 82 0 +189 156 90 +0 0 0 +123 131 0 +255 255 255 +197 32 32 +189 189 189 +164 164 164 +98 98 115 +41 57 65 +98 98 115 +49 49 65 +255 255 255 +238 246 57 +180 0 0 +74 148 180 +8 90 131 +189 156 90 +0 0 0 +123 131 0 +255 255 255 +197 32 32 +189 189 189 +164 164 164 +98 98 115 +41 57 65 +98 98 115 +49 49 65 +255 255 255 +238 246 57 +180 0 0 +180 205 246 +49 139 255 +189 156 90 +0 0 0 diff --git a/graphics/pokedex/menu.png b/graphics/pokedex/menu.png new file mode 100755 index 0000000000000000000000000000000000000000..fea195312c06171e1717ec26aca2933805ea317f GIT binary patch literal 2045 zcmVKgCM<}S^xk5SrGW^000Mw zNkll*O6vwr+b7|O~Y6Q^gAwc^Hf-2dHqQfcBz#)UV*hZ&B$do0627Bbd zv1`W+UNm?sGSDzQ2#5e3^bHC`2%5nV*!O?$?s!L?RMPI!rxSfV@_xGa?!Cu5y4NEq zNfMGjNM4mE)G{n5B)Eol`tujssFZSD+7mkG6HQ_PiKZLA8R`f?Q?q`heSp?cfKr(Q zC=v^xW(J@w0Qf2--=Fld?98chrph5shPWapcP`3aG0QUa44Uz*sw*b_w z3J|DZ?~mJnY}OeNs*rrwMui_qScSV}hg6?;T|Huey%q9V{?IXbg1+3pd4<0s2T;KQ z@I^QJx;wo-(v2=YsfPu>*aE1eVrX?6L!A!ri%}K+q#MGTT2N5YrW>8=~&;bmrE)>V2vAS`fzIqDA!z2sR4@{>Ky_~jT>(5 z&-@#J3f;T*0sOsP!~tZ6O~7JZx0FjV5q<_13jl1E#ab_naU6h7m%0YrX#B!0>7hda zEXY3|7?A)=jH2{}0gE!G!g8@;gWIKE2Y|JF;(!}Wt`E4W2pUWR*+9qrK$jXt<5=IW z_00kw-v$e9#Q+}d%8w4F?lK_3Gw8wjKmflxz`N?})_bGF7C>SF@9wA9+X!!_F=+tq zsp)z=ep|exl8ZB7h3Um`?j7 zSbSIjRA2yXH{ubf007%PXY^3Ou0-$p95dd4?2cR=nT0Qz2kbShXIAc|vvnaV?e zeHu+XVHFer_=W(h1_LOUOx?VGY5=5+HjS9qM#Knogg`dHKoQHc9DrFtvmxP3jUm8$ zrgGo|=%sCm*M@eGH3kD<};NWZ%Q0D^^iuAkU(*`g|1b_|)=aLOYg=Riz z0!AYNfIt95<8uSJ3;`w|%th}_z~IONUWf`NwKekrY~TZw1EdBpz-vifsaQV<@bk@F0iT7xxa)0lGcjpSjnd3^0DsS_SjV zWqFd6=K07g)vf@oPku!m`ackmsQ?h&FBGl?c_QVtaBfxjGYeFR?-y*#+|(shke&VK z;;#JyH}W%9*79@0>c&EwRM^|PUqBXZYxFw0K7Nbd%>QmxnGbLXCX6<5kPdm zKs9OMR{^T_g8(3VrucpVslm3RD83p6baQ1Nu=jri*u}P=Sh@jz`hioLpV~SB-WveV ziUn}EXh{j)5+S7zHV#-TP`w6V=r*hwVEou*1-nEbA0#f<)h58Lk9yx`J!AqC^vXoT z2+w6@>n2Jpz$F7#A>)Uu1!xa|{cj!x(AOC8j;8gd28=lUIe>Z8k6@P61H3l?%qIMz z2FzfC6h<@vHXoM$!3d1{hxB}q|Asn%%?L{I+9WlVrV6HdsI>#+)&?e}uofyey2w&t z2S8r_(NQV@@XBDM&`KrZ2Z0J4@rZk=AS0NS0a{U%TO~vRx`RYj=n61CaCr1kfQf^{ b#HjEOB!6_L#;B%&00000NkvXXu0mjfTJeaY literal 0 HcmV?d00001 diff --git a/graphics/pokedex/menu2.png b/graphics/pokedex/menu2.png new file mode 100755 index 0000000000000000000000000000000000000000..529914813499a91842f1832feda77864a89c0f4a GIT binary patch literal 1044 zcmV+v1nc{WP)KgCM<}S^xk5SrGW^000A@ zNklE(is5*h}e}?&R50JB@(zk)KTtsS#XD~pTK~RX92=+5YK2g*f zf=Vo0zQ4b>_khUdZ~S8l=TRmAZ#Nu)c;0TT;s7a#iUF)3Dh{AXakr~f052^bWZ z;yEht3*tTXI|f&kEf@0R?d{hFHgFGkC~chEXm2xv3G&Q<$9W!9;thEa$J=?xj|#-w z1dxrB0j)9s$EtBGHrNaQ2of(Jczk5~5`hdUb5W=$IfPs*A{Uto0b(s713mK-0kwbu zL8?TqZa^X+Q1y~hO-KMT0Boa*LG=P^l)Qi%%{A#WJ&94|fJ7|xAIq1`lTYPG`}6#u zUOl9PEk6wK{NQiLm=3GPvDo0uP~dyzM-Dkr#{~WfkZR6|sZ0Qs9mtshDIG}sy#v(k z$UW^qkSeeOaRihHC6xdeBoKj9rSP9Qnmey*vOd1bKY}xYdgx2b5 zwgaR!^+mox7XArX*o@x_%)~B%x&qS-5>u}8IHU~$+kkcG#(C&MU7|u8jcM|t4N93c z(%QJX0yKNYxyqhDwtQN^(=0y)q^tmB1!x8+G*D;@X#jtf{9^#0@i4ta8yH|Y?Am1j zmvv?_dw&;aDqK=;CDdOi)5wxoX>;ad=3qEPfgBvrl)p`vCz*(SNi zfDTYxk^(iS22=x7!>eEeKmg>s4hmZ4V=P~F$nT$SANa1Owd@W+GYd{Y@cV^J8b1A+ zL2MIhT0P*nzJPf#v>hK^8`^2n`9zDu^?ir&@QJbUa6YkFj+lBwY*LG+1^tlfD-X60 zRxMhU%T!hW!?L6~53b$@0gNYTXW5q%i$hcLIQT4V2Cqji2QI{*ZBXDnR)*Ln-DQ>28LV>0U6)#x;j8@44$rjF6*2U FngGLkIqd)d literal 0 HcmV?d00001 diff --git a/graphics/pokedex/search1.bin b/graphics/pokedex/search1.bin new file mode 100755 index 0000000000000000000000000000000000000000..83bf29becfd2303d13548b608384e6e1845e1354 GIT binary patch literal 1280 zcmd6l$4-#-YwmkXHQdnfb`qW9iAzmCl&vv3$`R=l%$o2#Q&&Tx(k zT;dAXIK&Z-ae~vZpTH!hFpU{xL@q>FZ+OQCKJkTbJmLw@c)@GfuVVw7*uu6UU&U(H zu$Fa9vp0r%=CWrZz35;kyV%VhrkEdtGUWT%&jAi{$kIQ{InHx|i!i$|L+N3BrNcy_doK=R|yMz R*K?!!rE*l#0>_oV`5(znjZOdn literal 0 HcmV?d00001 diff --git a/graphics/pokedex/search2.bin b/graphics/pokedex/search2.bin new file mode 100755 index 0000000000000000000000000000000000000000..838007715d86a7e7121c6e2c95346143d38d5351 GIT binary patch literal 1280 zcmd6l$4&z=6h%$sNsKg_xqpxqp~GE-7JBc54xx$Od++=@Gi>68GnTxgc`a zb6nsOSGdLvj&O_91r!b8f%wi5jQ3(;9cYNRzU--rkp74wpyy7jYH?WB9kgmF&e>FAD5t4}00i466+&OMZZZ9O5uX9R2fL;3Ai}?C2lm7{@um zNzI?lmuF$?e}$`D<2p;4Ka(%d!q$HcbF5_@>ovc=2b;f*?d)JDyEMPP2b+Hvd)UVT z4pAk{B=7$gceuv`9v$;$r+%C4*I%0J)2xag;@+wp*2SPva PYzi!(w5XSvZLdP@<7eZr^zCnbdKsz=sAQaNlNdvhX9q3h)xMvcw1n{OT zT{0wI@&N94$A6L{8*0)sCClXLr~63WS(^>4hh;DWyBS&WoqC^mEc-kRe0aOLx#n-W ze=`hjU>Wc{1i*)NfFDJ)8Q`jLepj#wU@D=w3O1Ked~*O|p8;Hd3SrIxAyWE2BjGwr zfInIGF-iD$KyiQ#1D($TW)dQxAK6L3eRjrQsO8>SpvN`QqSFDKAI{#70mI%H(dM~z&C1b_+#uwTo5Hu#O_ zz&ASrh@1e{VkQD$N9vOwRVpXJEJ?8W)=99r@e=s)$&a>U0JOpiYPkdK=1gy;cqWCfe{PcjexjzqpLI?nCD@qyTihu{WO`mE6078|r zR1zm4Wdy|Br%m6c+_%{EW>h1JqSR70jii&-6F|3%iQmTD$HoUPB@O^e%aRCnqbfO) zu=Tel0M9{g@GI2_0#pDXjH(psBp~KK0J|I$V14d0K!`>WKs$hYy@}<^xFTSp1WI4q zjUw3W;l%H_2m}e1^WPX7R-w{L z*L>6(mH@AJ-BRDuPV}#MZ_fn}SeN@t7T*!yY94TRnAlU_uX=ol0xz;tZFsd^(tDy0 zfQQHFz^~_FX~viP0O;@LdH&Qd<^FPC0&srF1Q5vlvccZxrWha;uJDn#!f=$pcS&Sf zsriy5lp4DpCww#xcBXou8!iguJO@;$6eZ$)pp&O8`LVGzT># zAYK5341k)V_khaFngFC6O(G;{jzQ}Hs7L~ULQ*<63lf^KgmOUw*AgjR7&AbFWUple z)bto$g#LzJb$pTaP;p00000BdteDP=F~jQN&}u_4d?xZ^K~mw6^sY#~OQOEs@^9MEmNaO{uo0uijGOrFwKZb^

0VkD`O5gQSC`gQSC`gQT|@dW)eq6M8cN2AxdaUblCS+1a$T z1I9qyw%3xEkQ70O$ZZpcE<~C~MYNmYH6a=hhzusd27R#|COco)Y3Psp z1&n?Bb$$io^&1$kAHn?J*QuhjKHb*+=jvmhAC>uR>~+8E+Z|lZ-<)OJ@8maOy!lla QuU~}m`uux*|Ng!C2cR)2X#fBK literal 0 HcmV?d00001 diff --git a/graphics/pokedex/tilemap5.bin b/graphics/pokedex/tilemap5.bin new file mode 100755 index 0000000000000000000000000000000000000000..283aa518c50e371e53fe27d97b6effc19aa89977 GIT binary patch literal 1280 zcmeH_K@No=3m$n3|beWLjET+t?BS`=N literal 0 HcmV?d00001 diff --git a/graphics/pokedex/tilemap8.bin b/graphics/pokedex/tilemap8.bin new file mode 100755 index 0000000000000000000000000000000000000000..dbfea3ba53ee310b824098224cf3322d0a492fbc GIT binary patch literal 1280 zcmeH{u?@m75JfLiiYrbe8)O9+DNsyfW-H=D```Is`Aj23qMs9AvtnSaWsh`1UL(;ZN`9aIKUZs6#a93T literal 0 HcmV?d00001 diff --git a/graphics/pokedex/tilemap9.bin b/graphics/pokedex/tilemap9.bin new file mode 100755 index 0000000000000000000000000000000000000000..6a72a88bc4bf21b1913ec74f3b1c54f16fc476de GIT binary patch literal 1280 zcmZP+U?dwd00H^B83iEv<#{;B0P-9#{roKV8Df#(eHJDLB*?-9l4n7M_gVOXE{E99 z&w{KQ#75H1zy#DE%fiNh3S&q0;|;$|fh>Vefv$j+0jmPY3BO8#DuI~-vjTPo>;mgY ejXe+#5r6V591NsGd8qqAX;cGPViOqv#{odt1AjIvij7wZ1t8Gqa<#Ik zR3ZX&J(s6ejTq1XBH&<7Ws`pTmV#wK;#D@5)A=p_@Bx(;)_Q(&ZFddQ3ZfO zM3C<-n~;dX(h7Kf69M&uUk9M*_%9t<(cO$ty9Pzvx*a0<5(xJVLGDg!h}07L^ISw?`SAQiAAQowS2 zmwtHavs?mXD`x;}Y4vT#Nn48nqTc})B1i`bARQJKatL;&>qUSR@ba5pfoUDw^9Km{ zPhDCllv)8b08y!Rv%&}jTG-7x1}59B4Kv0#b(4m%EC-3uOOD%gX b{<-}CaUglwFBfL700000NkvXXu0mjf8e;d< literal 0 HcmV?d00001 diff --git a/graphics/roulette/credit.png b/graphics/roulette/credit.png new file mode 100755 index 0000000000000000000000000000000000000000..687d4793445e8419339fefbb1490e8a58ea049a2 GIT binary patch literal 325 zcmV-L0lNN)P)s?o!RP2>;Cp>rn7|0002c zNklBOoCHMOg* z`Y{Yco}v>3_(kYLq;C#aHD?r%>!28cRWgA>d%JuDm%Ve~URB2n;=Y#JO~5r-?MRBq zkpsvYl9~Y{5MvtR3UTcr4Is4yvB80v1%!3LftU!_L7(<~lDmf|(Hls-Cy&1MUaG^m zZz1VsP{eVdK|>~fg^>XaQ=s`AwvT!PSX(Nwb^s5pUzWE&Sb$0g)c}r_nmc~;>uux- X;&S?b6CNdb00000NkvXXu0mjfK@y3^ literal 0 HcmV?d00001 diff --git a/graphics/roulette/headers.png b/graphics/roulette/headers.png new file mode 100755 index 0000000000000000000000000000000000000000..70f5fec90e1b09f7b2db7ee332fec1adce48bf76 GIT binary patch literal 1060 zcmV+<1l#+GP)Q~Pj&+hZ=M2Np=%2*C~p&SEryugEI%*RS06)cf3 zCI(6WHJL>@O)f%v?g2hSKv4)wV-HAWD{o~F5UKaxWm2Jy_1C}ug0Apio1V$l924ro|ClhZViVQ9?1IMM0 z%DDZIj7o=3!`@`LBtO~G7yxK>tT6exRPlai(tZ756(+bqh4B%9!ll_q_{)n-uvNk8SSoU;?U+8QUsuLB1T5(Riz6K0JQqF zp$qgu^QJ+4L;&>>U9K|VBk;*_5A->G(_A&5-!h} zv1L(68eD*s_N*|9yj!KDNNrEHSh0X2F5unO0FYEa&?PWR_P%|@Hq^&;(#QM&s2B5~ zk2dS0Xl;94wD}elMN3w|g9-Dtr=UmQF4}f+?Xt_wvZV_+mcbSP+@39$1^~JILO-{e z)ZEZ~nWM)GzTW=AwF%!`j|w z0EB&34vS8xl@<$I*u|iyf4nx(M@RScas?~ORk!MxK1x$^eRN&7LVa8k(4jt7W!D)X zJ(&g4Y4#~+!DW_#=QDCCrw%r@HnszfGKMWRE-<*nuPJERt=9(Z{ve{I2v&m89CK^23mtp=5lCc4RTqs+bW443)aqRX`^zn52-6Kkh8$(LtL$zE`q)JSeY_6yUyzIq0M`f2 eG24GoAHM<1O%vMWf%?_}0000s?o!RP2>;Cp>rn7|0003R zNklb;z6o6q5J;?(v85rt;6(LJV8BIwls9?(lK=RJSIS?!!S+gN^%PDez z3|xQ)UV`5XL}I8A9)H=6{mF_DADWDT5JIzY38A}<-8Jkdw=sP-zyw&>YS5C+=;|R~ zV(JNX=%`P=hXTd+aNzh??vCEP+}-v6)8k9)QCmQd*sey*gUmn=63`>I%RciME7fNn zK2#pDwe}r6zSkSs7SO|o%7e^6k6D@?mI%b5oW=rJ#foO$?Ac^CkAy+s?o!RP2>;Cp>rn7|0002D zNklySQpB)C?w4u zkQ7LY1Hc^=+iv>~@Bfv8< zYak?f%Q%l?3QG8$sLJ(M@`ZgX^W~QB-S`g+CN=VwLEfIvb0iqPt*DEAeDq7GYP^*E yYad%a2C}mE(M#Ez9^Los{q^<#v+u_Het%C0i_>(@9H>wL0000XkXskyTGGyp$R#nM2-_{85z?saP%}+J7|T zb|WgcT*oaHBiSiCOoPlJJEn-y$T}mPv-kOD@AJ=jKcDqJYrUWE^Lu~qvz~w645Ej# zysV}y008o?E{>-Vk9yAZAr@t|2yeKnUk>Oc3L~V0rIkiro6ZnG7wir!jtF%FEaO= z$lsoKSs$7sKoINO{5R(%5Nstp8=B%lP(C!Zyv1MEbA^W_UL*-C<^Riie&@ei{}%pI zUqUSV|I_$i{ueao#e#U>`(chS$JLl>596}^Su}sf9M8Y6g2rQ$8yI2v`73^=8m1We z`Ty=8h{q7LGuqj7Hl38u~e18&lObJvzL~X=mme_p}J}QG>&CTiV9MI7Jc6*T)TB%~&f3v3wEQ zZ=_X(<{PLV89^98c#gwzJjBXWN8q;JGLv4Y<>REyWUyP-s{a5_?IC6@4V}?5I*9V{ z%r|h+44Fqq>AG!3_0X?KX?kgrhM;VRJppCm8j<(X#T(mji+MK<@T*C(V^eOT1@J|v z8$mpoH+W`h^nf;Y}E;2BMCr>U@;mQ+1U{m3lw$>}G`YOt?Q?079_O^?@Y{sf+CQUqx| z(RzGUB!OZJr`6g0kTdPYxzG(~JMg_>H~4uW@h5anHR*O_m@ArR(@z7wHLb|n$M#+7 zen_gHiZ?PNE)D((wlpw|{f7*Awka^^Cm8W^u|FKV>LD%{Z>)i-A5KrT0<`>t`<0}(J?_&}Tk|{H`ZE8NT|PY48xD(w!Sks8O0*L< z6mgX14RXf7YV2Eeyb>O{JLGDiT&$}SbsR5h=AiJjH-NSQtZgdJ-HQ7tBij^5J)j22 zCIjb^_cKvqLo`DL%@r+K1S&~gqR2u_>!NCGI_*_p2nv3K5DzrQFMY1uG_F!tT~w(x z6aM0-rO(#tHO~r$kzJL&0G=&9PkqmfG`#wF=^9@rrdesVSZm*e#o(bflXOK+C3+|^ z`Aj7BVaTwm=7$`64`v=^vWIuz*N`o0!i=bal1G6-`w`fXeFt@NRg~l#Lzl*iS8)$*%l2c#2b+5x4fb%lQ?KYC8lP{jpE^$=mpjWKOBVV}TO6q{)bGDP zQ~FqNDehWaG+1gTOU7B0mzGk1Nnz~#=etHDCogn9)$W~VuIYVJP=+0J@7J)OOsTRe z$ttwpWy}jb9=kXFYvUPE;qCl1n{v6b%$>g&D1LCTqVdsr__6W9s9aGGRv05IFl5@r z*$vh7q$K_7EVb4MYx1tP6N!rR#-d$NQFZ~Fsy1eFcJ0F!M#;AveOv2xc)b*KG=7dH0c7b&w}I9Yq0c5u^ue@|!nz3Xm1zV!wa3K0Jt?f#Z<} z6;5RXPq0siC*Z;qTy@(HN+wKM2Bv#wKwUOMS%FMch%pQo|EQ*P;?o$UrW9RnC@jcn zBJ}U?dVl}c_MR)MH)Bp*!b|VOsuQ4J;k{PKy>{jZD2wB`ooHY)yA9rW6~Ddue(E+) zmx$rye0-s&=W26sh{Zui6{Uh7;z5G~9L$G#>2$KUMdaOtM>3#U*{a()1os5lnTdnXnyzQ zYcDO&VGmQ`?*`j*)$im&*rg{&MWLd_E_t5o;!37R> z=0dZSnjaY!fkg>1oJnaY@NH~SONyFtG5?%w{Re96F|_=Sb$Dm{yk_A*bVpf5R|9`n zPGFU>+{=iN9iKWxTN^CFxWw@@3j@xbql$G1TD<%7@;)t{y4{T#i?cg5&OE;Y&CbH% zEwqk%QufT}-6ERv!`Rb`Iw+|1CVC=O+WIg^Af!fmPQ8duTb)b!v8u?qEMN@`&kR!% z@d&A%ZUY5!rDP@e)`m(m{ff+-Mdx@OcW}-hNLG0k+&}kVy#93O_5#Ege6@(j%XV5) zRlco(gLTXjOI5mhTg-Ij<8}3 zt^^(^NU_>=Vj44H_;~k7>pWU?zy>Gse&e1j^ARafjy~qTT`y}mc1eT=WuEcj!pRGlp)a^2Z?7hOq8fN{R7mT z^=x2xJ1joH)15-MHw9Bevl&G@H1sI*dDO7Qr2rZ7gW?cax9+nPZ6G*-4`%4dxf>HB zb>U0IrxpS-YCVPj8-6VGl5pzik~y+R4|Uk4ld>vzLI0jrWBhI(p}Cx%#>fTEbkn0e z{^EM#VC{k?HM#1XiDn*b*dNt{-xp6*u18l6sYjB52d zu>X^`lAY@tt#PcZ4p@DtuR7v2{7kFL$z7W$(THrqwO4{e9=E{aQPxxkaY5rjOq^hD z@u|knp)_zxqs2a}1-?xtbL7>o5TQSUViwc2_w%Z&OZpd4U*2^m>=|gJt7ad;&%WU$ zBL+@>)wMcgQ$ZO-F@u?^FZWeG{;Fcl@ug%ZIqgiuBI$z~Zq-}*bSr!4o9AD(s-1A)r*~JFHcGbcd)!y|LVB zSeIYREUZ&J5BTVp7MFP#2?029KaXj~;wOOfrvVoN)mzCgdK=A6ij83%YsWvA0&3u@AOVPSBr4_58$jo?9gTAU5v(&{|(c~@G3!^mVk z4%TiggHy{J0a0$Z-hsL@xqI95K7$nx@mTMPU3Y5K-hqu&2T;yM8+L4F-5cU&d V+Q8tgVaZJdaCP!s?o!RP2>;Cp>rn7|000BP zNklljA6vu6;3`n82DHBp!HN^`XO=ncKp1c%QGK2T#8$kI4r6X(DkemVY z4PfaE8So62nlEr_q|TW4?tISK$vNk9E45Yr)$6-E-~0J;=X-Wy!&o5e+M_D`KSFhM zWf+}tp>j|*)0O4rf!wor;sIb5KfWjd@{^%5%R8sCyp+l!tWE(%M5hdx#d}AVcQ!y- z-k%>Ri?Dh6R^|IwRi6Tj?)fc_IGV#IMfGh9QL;#4~L)h0sWSMr~TcQfZk3! zfZ6M{o5a@3SX@YLH&b~#YXHg#MFSw}1^_1k%JRO)D2uRq1As?V%UP3+WolBBT3)1(U?4Ito`0w9iBc9l)>e5q|hD8TG)lG)aD zIRN{B!JTgkW@pe2{~Zj*`f|Yfgj%+>H6@N?6KE%70)BmxIa>=x5VLYz1wdySe7Qa$ zo5UbCaTb4s=k%c?{vrYhp=X38pKKE1z~6+90?KoMx!auSV4Lm0=b%;{ zwi7ODuF$H=0KS)+06N7E92bvZ==zE(KXnO!KvCuAJ`oVYdWSH1af~(!M!63K4<-jh z-YAF;g3$9uUCIy6kbP!@cKk|b(dKm#A@?#g~L0)Su_hU!xQ3>_@Sw!EwWi2M#_^Gm|f4&kcfJFE|FHVW(< z?d8q9{r~{VIq~)YlJ5~>xfU?@Yu2?Sl}iEnFsokt*>DMf4YcaTA1;>wcInH4su$+) zNDm;qhtLCT^BeoK72qKOBvJ;fjeJ?$S Date: Thu, 28 Dec 2017 22:05:30 -0500 Subject: [PATCH 40/54] fifteenth wave of graphics.s dumps --- asm/item_menu.s | 2 +- asm/menu.s | 8 +- asm/mon_markings.s | 4 +- asm/pokedex_area_screen.s | 2 +- asm/pokenav.s | 26 +-- data/graphics.s | 231 ++++++++++++------- data/pokedex_area_screen.s | 2 +- data/pokenav.s | 32 +-- graphics/berry_blender/arrow_old.png | Bin 0 -> 228 bytes graphics/contest/clink_tilemap1.bin | Bin 0 -> 40 bytes graphics/contest/clink_tilemap10.bin | 1 + graphics/contest/clink_tilemap11.bin | Bin 0 -> 24 bytes graphics/contest/clink_tilemap2.bin | Bin 0 -> 40 bytes graphics/contest/clink_tilemap3.bin | Bin 0 -> 40 bytes graphics/contest/clink_tilemap4.bin | Bin 0 -> 40 bytes graphics/contest/clink_tilemap5.bin | Bin 0 -> 20 bytes graphics/contest/clink_tilemap6.bin | Bin 0 -> 20 bytes graphics/contest/clink_tilemap7.bin | 1 + graphics/contest/clink_tilemap8.bin | 1 + graphics/contest/clink_tilemap9.bin | 1 + graphics/interface/hm.png | Bin 0 -> 184 bytes graphics/interface_fr/menu.png | Bin 0 -> 1904 bytes graphics/interface_fr/menu1.pal | 19 ++ graphics/interface_fr/menu2.pal | 19 ++ graphics/interface_fr/menu3.pal | 19 ++ graphics/pokedex/area_unknown.png | Bin 0 -> 397 bytes graphics/pokenav/cancel.pal | 35 +++ graphics/pokenav/cancel.png | Bin 0 -> 180 bytes graphics/pokenav/condition.bin | Bin 0 -> 2048 bytes graphics/pokenav/condition.png | Bin 0 -> 1603 bytes graphics/pokenav/header.bin | Bin 0 -> 2048 bytes graphics/pokenav/header.png | Bin 0 -> 479 bytes graphics/pokenav/left_headers/beauty.png | Bin 0 -> 315 bytes graphics/pokenav/left_headers/condition.png | Bin 0 -> 287 bytes graphics/pokenav/left_headers/cool.png | Bin 0 -> 259 bytes graphics/pokenav/left_headers/cute.png | Bin 0 -> 293 bytes graphics/pokenav/left_headers/hoenn_map.png | Bin 0 -> 444 bytes graphics/pokenav/left_headers/main_menu.png | Bin 0 -> 298 bytes graphics/pokenav/left_headers/match_call.png | Bin 0 -> 298 bytes graphics/pokenav/left_headers/palette.pal | 83 +++++++ graphics/pokenav/left_headers/party.png | Bin 0 -> 323 bytes graphics/pokenav/left_headers/ribbons.png | Bin 0 -> 274 bytes graphics/pokenav/left_headers/search.png | Bin 0 -> 300 bytes graphics/pokenav/left_headers/smart.png | Bin 0 -> 308 bytes graphics/pokenav/left_headers/tough.png | Bin 0 -> 287 bytes graphics/pokenav/marker.png | Bin 0 -> 353 bytes graphics/pokenav/message.bin | Bin 0 -> 1280 bytes graphics/pokenav/message.png | Bin 0 -> 159 bytes graphics/pokenav/options/beauty.png | Bin 0 -> 259 bytes graphics/pokenav/options/cancel.png | Bin 0 -> 273 bytes graphics/pokenav/options/condition.png | Bin 0 -> 295 bytes graphics/pokenav/options/cool.png | Bin 0 -> 212 bytes graphics/pokenav/options/cute.png | Bin 0 -> 228 bytes graphics/pokenav/options/hoenn_map.png | Bin 0 -> 305 bytes graphics/pokenav/options/match_call.png | Bin 0 -> 304 bytes graphics/pokenav/options/options.bin | 1 + graphics/pokenav/options/options.pal | 83 +++++++ graphics/pokenav/options/party.png | Bin 0 -> 318 bytes graphics/pokenav/options/ribbons.png | Bin 0 -> 291 bytes graphics/pokenav/options/search.png | Bin 0 -> 286 bytes graphics/pokenav/options/smart.png | Bin 0 -> 256 bytes graphics/pokenav/options/switch_off.png | Bin 0 -> 314 bytes graphics/pokenav/options/tough.png | Bin 0 -> 239 bytes graphics/pokenav/zoom.png | Bin 0 -> 536 bytes graphics_file_rules.mk | 8 + 65 files changed, 459 insertions(+), 119 deletions(-) create mode 100755 graphics/berry_blender/arrow_old.png create mode 100755 graphics/contest/clink_tilemap1.bin create mode 100755 graphics/contest/clink_tilemap10.bin create mode 100755 graphics/contest/clink_tilemap11.bin create mode 100755 graphics/contest/clink_tilemap2.bin create mode 100755 graphics/contest/clink_tilemap3.bin create mode 100755 graphics/contest/clink_tilemap4.bin create mode 100755 graphics/contest/clink_tilemap5.bin create mode 100755 graphics/contest/clink_tilemap6.bin create mode 100755 graphics/contest/clink_tilemap7.bin create mode 100755 graphics/contest/clink_tilemap8.bin create mode 100755 graphics/contest/clink_tilemap9.bin create mode 100755 graphics/interface/hm.png create mode 100755 graphics/interface_fr/menu.png create mode 100755 graphics/interface_fr/menu1.pal create mode 100755 graphics/interface_fr/menu2.pal create mode 100755 graphics/interface_fr/menu3.pal create mode 100755 graphics/pokedex/area_unknown.png create mode 100755 graphics/pokenav/cancel.pal create mode 100755 graphics/pokenav/cancel.png create mode 100755 graphics/pokenav/condition.bin create mode 100755 graphics/pokenav/condition.png create mode 100755 graphics/pokenav/header.bin create mode 100755 graphics/pokenav/header.png create mode 100755 graphics/pokenav/left_headers/beauty.png create mode 100755 graphics/pokenav/left_headers/condition.png create mode 100755 graphics/pokenav/left_headers/cool.png create mode 100755 graphics/pokenav/left_headers/cute.png create mode 100755 graphics/pokenav/left_headers/hoenn_map.png create mode 100755 graphics/pokenav/left_headers/main_menu.png create mode 100755 graphics/pokenav/left_headers/match_call.png create mode 100755 graphics/pokenav/left_headers/palette.pal create mode 100755 graphics/pokenav/left_headers/party.png create mode 100755 graphics/pokenav/left_headers/ribbons.png create mode 100755 graphics/pokenav/left_headers/search.png create mode 100755 graphics/pokenav/left_headers/smart.png create mode 100755 graphics/pokenav/left_headers/tough.png create mode 100755 graphics/pokenav/marker.png create mode 100755 graphics/pokenav/message.bin create mode 100755 graphics/pokenav/message.png create mode 100755 graphics/pokenav/options/beauty.png create mode 100755 graphics/pokenav/options/cancel.png create mode 100755 graphics/pokenav/options/condition.png create mode 100755 graphics/pokenav/options/cool.png create mode 100755 graphics/pokenav/options/cute.png create mode 100755 graphics/pokenav/options/hoenn_map.png create mode 100755 graphics/pokenav/options/match_call.png create mode 100755 graphics/pokenav/options/options.bin create mode 100755 graphics/pokenav/options/options.pal create mode 100755 graphics/pokenav/options/party.png create mode 100755 graphics/pokenav/options/ribbons.png create mode 100755 graphics/pokenav/options/search.png create mode 100755 graphics/pokenav/options/smart.png create mode 100755 graphics/pokenav/options/switch_off.png create mode 100755 graphics/pokenav/options/tough.png create mode 100755 graphics/pokenav/zoom.png diff --git a/asm/item_menu.s b/asm/item_menu.s index 9aedd3f5b2..db3d38668e 100755 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -1164,7 +1164,7 @@ _081AB570: lsrs r0, 16 cmp r0, 0x7 bhi _081AB5BE - ldr r1, =gUnknown_08DC6378 + ldr r1, =gBagMenuHMIcon_Gfx subs r3, r7, 0x1 lsls r3, 16 lsrs r3, 16 diff --git a/asm/menu.s b/asm/menu.s index 64644504ef..fac6ed72a0 100755 --- a/asm/menu.s +++ b/asm/menu.s @@ -5257,15 +5257,15 @@ sub_819A2BC: @ 819A2BC cmp r1, 0x2 beq _0819A2E4 _0819A2D2: - ldr r0, =gUnknown_08DC4318 + ldr r0, =gFireRedMenuElements1_Pal b _0819A2E6 .pool _0819A2DC: - ldr r0, =gUnknown_08DC4338 + ldr r0, =gFireRedMenuElements2_Pal b _0819A2E6 .pool _0819A2E4: - ldr r0, =gUnknown_08DC4358 + ldr r0, =gFireRedMenuElements3_Pal _0819A2E6: adds r1, r2, 0 movs r2, 0x20 @@ -5292,7 +5292,7 @@ blit_move_info_icon: @ 819A2F8 adds r1, r4 ldrh r5, [r1, 0x2] lsls r5, 5 - ldr r4, =gUnknown_08DC4378 + ldr r4, =gFireRedMenuElements_Gfx adds r5, r4 movs r4, 0x80 str r4, [sp] diff --git a/asm/mon_markings.s b/asm/mon_markings.s index 7c927399f4..1624fddca8 100644 --- a/asm/mon_markings.s +++ b/asm/mon_markings.s @@ -480,7 +480,7 @@ sub_811FC80: @ 811FC80 adds r0, 0x1E strh r5, [r0] add r1, sp, 0x20 - ldr r0, =gUnknown_08DC9628 + ldr r0, =gPokenavConditionMarker_Gfx str r0, [sp, 0x20] movs r0, 0xC8 lsls r0, 2 @@ -503,7 +503,7 @@ sub_811FC80: @ 811FC80 add r0, sp, 0x34 strh r6, [r0] add r1, sp, 0x38 - ldr r0, =gUnknown_08DC9608 + ldr r0, =gPokenavConditionMarker_Pal str r0, [sp, 0x38] adds r0, r6, 0x1 strh r0, [r1, 0x4] diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index a222c43f9e..5f9e019748 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -1781,7 +1781,7 @@ sub_813D8A8: @ 813D8A8 str r1, [sp] ldr r0, =0x00030600 str r0, [sp, 0x4] - ldr r0, =gUnknown_08DC4140 + ldr r0, =gPokedexAreaScreenAreaUnknown_Gfx bl LZ77UnCompWram mov r0, sp bl LoadSpriteSheet diff --git a/asm/pokenav.s b/asm/pokenav.s index a011178687..35df4d6b75 100755 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -683,7 +683,7 @@ _081C77B0: movs r0, 0 bl sub_81C763C adds r4, r0, 0 - ldr r1, =gUnknown_08DC7B80 + ldr r1, =gPokenavHeader_Gfx movs r0, 0 str r0, [sp] movs r2, 0 @@ -693,12 +693,12 @@ _081C77B0: movs r0, 0 adds r1, r4, 0 bl SetBgTilemapBuffer - ldr r1, =gUnknown_08DC7D84 + ldr r1, =gPokenavHeader_Tilemap movs r0, 0 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer - ldr r0, =gUnknown_08DC7B60 + ldr r0, =gPokenavHeader_Pal movs r1, 0 movs r2, 0x20 bl sub_81C7944 @@ -1571,7 +1571,7 @@ sub_81C7E58: @ 81C7E58 bl sub_8034974 adds r5, r0, 0 lsls r4, 5 - ldr r0, =gUnknown_08DC7F00 + ldr r0, =gPokenavLeftHeader_Pal adds r4, r0 movs r0, 0x1 bl IndexOfSpritePaletteTag @@ -1653,7 +1653,7 @@ sub_81C7F24: @ 81C7F24 bl sub_8034974 adds r5, r0, 0 lsls r4, 5 - ldr r0, =gUnknown_08DC7F00 + ldr r0, =gPokenavLeftHeader_Pal adds r4, r0 movs r0, 0x2 bl IndexOfSpritePaletteTag @@ -5198,7 +5198,7 @@ _081C9A5C: ldr r0, =gUnknown_08620194 movs r1, 0x3 bl sub_81C7B54 - ldr r1, =gUnknown_08DC90E0 + ldr r1, =gPokenavMessageBox_Gfx movs r0, 0 str r0, [sp] movs r0, 0x1 @@ -5209,14 +5209,14 @@ _081C9A5C: adds r1, 0x8C movs r0, 0x1 bl SetBgTilemapBuffer - ldr r1, =gUnknown_08DC9130 + ldr r1, =gPokenavMessageBox_Tilemap movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x1 bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_08DC90C0 + ldr r0, =gPokenavMessageBox_Pal movs r1, 0x10 movs r2, 0x20 bl sub_81C7944 @@ -11374,7 +11374,7 @@ sub_81CCA1C: @ 81CCA1C movs r1, 0x10 movs r2, 0x20 bl sub_81C7944 - ldr r0, =gUnknown_08DC91E8 + ldr r0, =gHoennMapZoomIcons_Pal movs r1, 0x30 movs r2, 0x20 bl sub_81C7944 @@ -13941,7 +13941,7 @@ _081CDF18: ldr r1, =0x0000040b movs r0, 0x52 bl SetGpuReg - ldr r1, =gUnknown_08DC6548 + ldr r1, =gPokenavCondition_Gfx movs r0, 0 str r0, [sp] movs r0, 0x3 @@ -13973,7 +13973,7 @@ _081CDFB8: beq _081CDFC4 b _081CE2C0 _081CDFC4: - ldr r0, =gUnknown_08DC6DFC + ldr r0, =gPokenavCondition_Tilemap adds r4, r5, 0x4 adds r1, r4, 0 bl LZ77UnCompVram @@ -13983,7 +13983,7 @@ _081CDFC4: bl sub_81CDD5C cmp r0, 0x1 bne _081CDFF2 - ldr r1, =gUnknown_08DC7070 + ldr r1, =gPokenavOptions_Tilemap movs r0, 0x9 str r0, [sp] movs r0, 0x4 @@ -13995,7 +13995,7 @@ _081CDFC4: _081CDFF2: movs r0, 0x3 bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_08DC6528 + ldr r0, =gPokenavCondition_Pal movs r1, 0x10 movs r2, 0x20 bl sub_81C7944 diff --git a/data/graphics.s b/data/graphics.s index 2ac0915c97..528b88d2da 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -4236,149 +4236,218 @@ gIntroCopyright_Tilemap:: @ 8DC3FD4 .incbin "graphics/intro/copyright.bin.lz" .align 2 -gUnknown_08DC4120:: @ 8DC4120 - .incbin "baserom.gba", 0xdc4120, 0x20 +gPokedexAreaScreenAreaUnknown_Pal:: @ 8DC4120 + .incbin "graphics/pokedex/area_unknown.gbapal" -gUnknown_08DC4140:: @ 8DC4140 - .incbin "baserom.gba", 0xdc4140, 0x1d8 + .align 2 +gPokedexAreaScreenAreaUnknown_Gfx:: @ 8DC4140 + .incbin "graphics/pokedex/area_unknown.4bpp.lz" -gUnknown_08DC4318:: @ 8DC4318 - .incbin "baserom.gba", 0xdc4318, 0x20 + @ seems to be fire red leftovers, but the menu elements is reused in the item menu for TM descriptions. -gUnknown_08DC4338:: @ 8DC4338 - .incbin "baserom.gba", 0xdc4338, 0x20 + .align 2 +gFireRedMenuElements1_Pal:: @ 8DC4318 + .incbin "graphics/interface_fr/menu1.gbapal" -gUnknown_08DC4358:: @ 8DC4358 - .incbin "baserom.gba", 0xdc4358, 0x20 + .align 2 +gFireRedMenuElements2_Pal:: @ 8DC4338 + .incbin "graphics/interface_fr/menu2.gbapal" -gUnknown_08DC4378:: @ 8DC4378 - .incbin "baserom.gba", 0xdc4378, 0x2000 + .align 2 +gFireRedMenuElements3_Pal:: @ 8DC4358 + .incbin "graphics/interface_fr/menu3.gbapal" -gUnknown_08DC6378:: @ 8DC6378 - .incbin "baserom.gba", 0xdc6378, 0x80 + .align 2 +gFireRedMenuElements_Gfx:: @ 8DC4378 + .incbin "graphics/interface_fr/menu.4bpp" @ the types are reused for item menu + .align 2 +gBagMenuHMIcon_Gfx:: @ 8DC6378 + .incbin "graphics/interface/hm.4bpp" + + @ contest link stuff, appears to be a set of tilemaps + + .align 2 gUnknown_08DC63F8:: @ 8DC63F8 - .incbin "baserom.gba", 0xdc63f8, 0x28 + .incbin "graphics/contest/clink_tilemap1.bin" + .align 2 gUnknown_08DC6420:: @ 8DC6420 - .incbin "baserom.gba", 0xdc6420, 0x28 + .incbin "graphics/contest/clink_tilemap2.bin" + .align 2 gUnknown_08DC6448:: @ 8DC6448 - .incbin "baserom.gba", 0xdc6448, 0x28 + .incbin "graphics/contest/clink_tilemap3.bin" + .align 2 gUnknown_08DC6470:: @ 8DC6470 - .incbin "baserom.gba", 0xdc6470, 0x28 + .incbin "graphics/contest/clink_tilemap4.bin" + .align 2 gUnknown_08DC6498:: @ 8DC6498 - .incbin "baserom.gba", 0xdc6498, 0x14 + .incbin "graphics/contest/clink_tilemap5.bin" + .align 2 gUnknown_08DC64AC:: @ 8DC64AC - .incbin "baserom.gba", 0xdc64ac, 0x14 + .incbin "graphics/contest/clink_tilemap6.bin" + .align 2 gUnknown_08DC64C0:: @ 8DC64C0 - .incbin "baserom.gba", 0xdc64c0, 0x14 + .incbin "graphics/contest/clink_tilemap7.bin" + .align 2 gUnknown_08DC64D4:: @ 8DC64D4 - .incbin "baserom.gba", 0xdc64d4, 0x14 + .incbin "graphics/contest/clink_tilemap8.bin" + .align 2 gUnknown_08DC64E8:: @ 8DC64E8 - .incbin "baserom.gba", 0xdc64e8, 0x14 + .incbin "graphics/contest/clink_tilemap9.bin" + .align 2 gUnknown_08DC64FC:: @ 8DC64FC - .incbin "baserom.gba", 0xdc64fc, 0x14 + .incbin "graphics/contest/clink_tilemap10.bin" + .align 2 gUnknown_08DC6510:: @ 8DC6510 - .incbin "baserom.gba", 0xdc6510, 0x18 + .incbin "graphics/contest/clink_tilemap11.bin" -gUnknown_08DC6528:: @ 8DC6528 - .incbin "baserom.gba", 0xdc6528, 0x20 + @ pokenav -gUnknown_08DC6548:: @ 8DC6548 - .incbin "baserom.gba", 0xdc6548, 0x8b4 + .align 2 +gPokenavCondition_Pal:: @ 8DC6528 + .incbin "graphics/pokenav/condition.gbapal" -gUnknown_08DC6DFC:: @ 8DC6DFC - .incbin "baserom.gba", 0xdc6dfc, 0x274 + .align 2 +gPokenavCondition_Gfx:: @ 8DC6548 + .incbin "graphics/pokenav/condition.4bpp.lz" -gUnknown_08DC7070:: @ 8DC7070 - .incbin "baserom.gba", 0xdc7070, 0xaf0 + .align 2 +gPokenavCondition_Tilemap:: @ 8DC6DFC + .incbin "graphics/pokenav/condition.bin.lz" -gUnknown_08DC7B60:: @ 8DC7B60 - .incbin "baserom.gba", 0xdc7b60, 0x20 + .align 2 +gPokenavOptions_Tilemap:: @ 8DC7070 + .incbin "graphics/pokenav/options/options.bin" -gUnknown_08DC7B80:: @ 8DC7B80 - .incbin "baserom.gba", 0xdc7b80, 0x204 + .align 2 +gPokenavOptions_Gfx:: + .incbin "graphics/pokenav/options/options.4bpp.lz" -gUnknown_08DC7D84:: @ 8DC7D84 - .incbin "baserom.gba", 0xdc7d84, 0x17c + .align 2 +gPokenavOptions_Pal:: + .incbin "graphics/pokenav/options/options.gbapal" -gUnknown_08DC7F00:: @ 8DC7F00 - .incbin "baserom.gba", 0xdc7f00, 0xA0 + .align 2 +gPokenavHeader_Pal:: @ 8DC7B60 + .incbin "graphics/pokenav/header.gbapal" -gUnknown_08DC7FA0:: @ 8DC7FA0 - .incbin "baserom.gba", 0xdc7fa0, 0x13C + .align 2 +gPokenavHeader_Gfx:: @ 8DC7B80 + .incbin "graphics/pokenav/header.4bpp.lz" @ TODO: use width 9 and makefile rule for cleanliness, make wasnt behaving, didnt want to apply num_tiles to this -gUnknown_08DC80DC:: @ 8DC80DC - .incbin "baserom.gba", 0xdc80dc, 0x12C + .align 2 +gPokenavHeader_Tilemap:: @ 8DC7D84 + .incbin "graphics/pokenav/header.bin.lz" -gUnknown_08DC8208:: @ 8DC8208 - .incbin "baserom.gba", 0xdc8208, 0x184 + .align 2 +gPokenavLeftHeader_Pal:: @ 8DC7F00 + .incbin "graphics/pokenav/left_headers/palette.gbapal" -gUnknown_08DC838C:: @ 8DC838C - .incbin "baserom.gba", 0xdc838c, 0x120 + .align 2 +gPokenavLeftHeaderBeauty_Gfx:: @ 8DC7FA0 + .incbin "graphics/pokenav/left_headers/beauty.4bpp.lz" -gUnknown_08DC84AC:: @ 8DC84AC - .incbin "baserom.gba", 0xdc84ac, 0x1A0 + .align 2 +gPokenavLeftHeaderSmart_Gfx:: @ 8DC80DC + .incbin "graphics/pokenav/left_headers/smart.4bpp.lz" -gUnknown_08DC864C:: @ 8DC864C - .incbin "baserom.gba", 0xdc864c, 0x1AC + .align 2 +gPokenavLeftHeaderCondition_Gfx:: @ 8DC8208 + .incbin "graphics/pokenav/left_headers/condition.4bpp.lz" -gUnknown_08DC87F8:: @ 8DC87F8 - .incbin "baserom.gba", 0xdc87f8, 0x2AC + .align 2 +gPokenavLeftHeaderCute_Gfx:: @ 8DC838C + .incbin "graphics/pokenav/left_headers/cute.4bpp.lz" -gUnknown_08DC8AA4:: @ 8DC8AA4 - .incbin "baserom.gba", 0xdc8aa4, 0x170 + .align 2 +gPokenavLeftHeaderMatchCall_Gfx:: @ 8DC84AC + .incbin "graphics/pokenav/left_headers/match_call.4bpp.lz" -gUnknown_08DC8C14:: @ 8DC8C14 - .incbin "baserom.gba", 0xdc8c14, 0x13C + .align 2 +gPokenavLeftHeaderMainMenu_Gfx:: @ 8DC864C + .incbin "graphics/pokenav/left_headers/main_menu.4bpp.lz" -gUnknown_08DC8D50:: @ 8DC8D50 - .incbin "baserom.gba", 0xdc8d50, 0x114 + .align 2 +gPokenavLeftHeaderHoennMap_Gfx:: @ 8DC87F8 + .incbin "graphics/pokenav/left_headers/hoenn_map.4bpp.lz" -gUnknown_08DC8E64:: @ 8DC8E64 - .incbin "baserom.gba", 0xdc8e64, 0x100 + .align 2 +gPokenavLeftHeaderRibbons_Gfx:: @ 8DC8AA4 + .incbin "graphics/pokenav/left_headers/ribbons.4bpp.lz" -gUnknown_08DC8F64:: @ 8DC8F64 - .incbin "baserom.gba", 0xdc8f64, 0x15C + .align 2 +gPokenavLeftHeaderSearch_Gfx:: @ 8DC8C14 + .incbin "graphics/pokenav/left_headers/search.4bpp.lz" -gUnknown_08DC90C0:: @ 8DC90C0 - .incbin "baserom.gba", 0xdc90c0, 0x20 + .align 2 +gPokenavLeftHeaderTough_Gfx:: @ 8DC8D50 + .incbin "graphics/pokenav/left_headers/tough.4bpp.lz" -gUnknown_08DC90E0:: @ 8DC90E0 - .incbin "baserom.gba", 0xdc90e0, 0x50 + .align 2 +gPokenavLeftHeaderCool_Gfx:: @ 8DC8E64 + .incbin "graphics/pokenav/left_headers/cool.4bpp.lz" -gUnknown_08DC9130:: @ 8DC9130 - .incbin "baserom.gba", 0xdc9130, 0xb8 + .align 2 +gPokenavLeftHeaderParty_Gfx:: @ 8DC8F64 + .incbin "graphics/pokenav/left_headers/party.4bpp.lz" -gUnknown_08DC91E8:: @ 8DC91E8 - .incbin "baserom.gba", 0xdc91e8, 0x20 + .align 2 +gPokenavMessageBox_Pal:: @ 8DC90C0 + .incbin "graphics/pokenav/message.gbapal" -gUnknown_08DC9208:: @ 8DC9208 - .incbin "baserom.gba", 0xdc9208, 0x400 + .align 2 +gPokenavMessageBox_Gfx:: @ 8DC90E0 + .incbin "graphics/pokenav/message.4bpp.lz" -gUnknown_08DC9608:: @ 8DC9608 - .incbin "baserom.gba", 0xdc9608, 0x20 + .align 2 +gPokenavMessageBox_Tilemap:: @ 8DC9130 + .incbin "graphics/pokenav/message.bin.lz" -gUnknown_08DC9628:: @ 8DC9628 - .incbin "baserom.gba", 0xdc9628, 0x320 + .align 2 +gHoennMapZoomIcons_Pal:: @ 8DC91E8 + .incbin "graphics/pokenav/zoom.gbapal" + .align 2 +gHoennMapZoomIcons_Gfx:: @ 8DC9208 + .incbin "graphics/pokenav/zoom.4bpp.lz" + + .align 2 +gPokenavConditionCancel_Pal:: + .incbin "graphics/pokenav/cancel.gbapal" + + .align 2 +gPokenavConditionCancel_Gfx:: + .incbin "graphics/pokenav/cancel.4bpp" + + .align 2 +gPokenavConditionMarker_Pal:: @ 8DC9608 + .incbin "graphics/pokenav/marker.gbapal" + + .align 2 +gPokenavConditionMarker_Gfx:: @ 8DC9628 + .incbin "graphics/pokenav/marker.4bpp" + + .align 2 gBerryBlenderMiscPalette:: @ 8DCAB88 .incbin "graphics/berry_blender/misc.gbapal" + .align 2 gBerryBlenderArrowPalette:: @ 8DC9948 .incbin "graphics/berry_blender/arrow.gbapal" -gUnknown_8DC9988:: @ 8DC9988 - .incbin "baserom.gba", 0xdc9988, 0x200 + .align 2 +gBerryBlenderBetaArrow_Gfx:: @ 8DC9988 + .incbin "graphics/berry_blender/arrow_old.4bpp" @ unused .align 2 gBerryBlenderMarubatsuTiles:: @ 8DC9B88 diff --git a/data/pokedex_area_screen.s b/data/pokedex_area_screen.s index e55f03fab7..77d17a0479 100644 --- a/data/pokedex_area_screen.s +++ b/data/pokedex_area_screen.s @@ -79,7 +79,7 @@ AreaMarkerTiles:: @ 85B406C .align 2 gUnknown_085B40EC:: @ 85B40EC - obj_pal gUnknown_08DC4120, 0x0003 + obj_pal gPokedexAreaScreenAreaUnknown_Pal, 0x0003 .align 2 gOamData_85B40F4:: @ 85B40F4 diff --git a/data/pokenav.s b/data/pokenav.s index 89ec3c3a6d..82eee2446e 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -147,24 +147,24 @@ gUnknown_0861FA54:: @ 861FA54 obj_pal NULL, 0 gUnknown_0861FA64:: @ 861FA64 - obj_tiles gUnknown_08DC87F8, 0xC00, 2 + obj_tiles gPokenavLeftHeaderHoennMap_Gfx, 0xC00, 2 gUnknown_0861FA6C:: @ 861FA6C - obj_tiles gUnknown_08DC864C, 0x20, 3 - obj_tiles gUnknown_08DC8208, 0x20, 1 - obj_tiles gUnknown_08DC8AA4, 0x20, 2 - obj_tiles gUnknown_08DC84AC, 0x20, 4 - obj_tiles gUnknown_08DC87F8, 0x20, 0 - obj_tiles gUnknown_08DC87F8, 0x40, 0 + obj_tiles gPokenavLeftHeaderMainMenu_Gfx, 0x20, 3 + obj_tiles gPokenavLeftHeaderCondition_Gfx, 0x20, 1 + obj_tiles gPokenavLeftHeaderRibbons_Gfx, 0x20, 2 + obj_tiles gPokenavLeftHeaderMatchCall_Gfx, 0x20, 4 + obj_tiles gPokenavLeftHeaderHoennMap_Gfx, 0x20, 0 + obj_tiles gPokenavLeftHeaderHoennMap_Gfx, 0x40, 0 gUnknown_0861FA9C:: @ 861FA9C - .4byte gUnknown_08DC8F64, 1 - .4byte gUnknown_08DC8C14, 1 - .4byte gUnknown_08DC8E64, 4 - .4byte gUnknown_08DC7FA0, 1 - .4byte gUnknown_08DC838C, 2 - .4byte gUnknown_08DC80DC, 0 - .4byte gUnknown_08DC8D50, 0 + .4byte gPokenavLeftHeaderParty_Gfx, 1 + .4byte gPokenavLeftHeaderSearch_Gfx, 1 + .4byte gPokenavLeftHeaderCool_Gfx, 4 + .4byte gPokenavLeftHeaderBeauty_Gfx, 1 + .4byte gPokenavLeftHeaderCute_Gfx, 2 + .4byte gPokenavLeftHeaderSmart_Gfx, 0 + .4byte gPokenavLeftHeaderTough_Gfx, 0 gUnknown_0861FAD4:: @ 861FAD4 .2byte 0x0 @@ -1511,10 +1511,10 @@ gUnknown_086230E4:: @ 86230E4 .4byte sub_81CC95C gUnknown_086230F8:: @ 86230F8 - obj_tiles gUnknown_08DC9208, 0x800, 6 + obj_tiles gHoennMapZoomIcons_Gfx, 0x800, 6 gUnknown_08623100:: @ 8623100 - obj_pal gUnknown_08DC91E8, 11 + obj_pal gHoennMapZoomIcons_Pal, 11 obj_pal NULL, 0 gUnknown_08623110:: @ 8623110 diff --git a/graphics/berry_blender/arrow_old.png b/graphics/berry_blender/arrow_old.png new file mode 100755 index 0000000000000000000000000000000000000000..12d57c07e4b03852e2e2257a49069f3b4e982a3f GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!VDxI2ESSgqznRlLR^9L|NsB5-g~#@=(8zn z?iEit8&rMNFlq1qEoc81C;c~MIP2)RS3+WnfPj}}HwQyd`huPDKt1`ME{-7@6VFcA zD9E75!SeEep6A;36Jot{3_rCpoBaH7|Hxd{hi*!XHgTkz-bwXp7dRkxDMn(2K|rFf zF@sumh1t_tSCT!~6@O4s_b;`*@!24Odz~Inh{TEw%LExFo7za%_`cexa{cOboBH4L b-+#6#71`7IBHXbbXf=bUtDnm{r-UW|*5X=6 literal 0 HcmV?d00001 diff --git a/graphics/contest/clink_tilemap1.bin b/graphics/contest/clink_tilemap1.bin new file mode 100755 index 0000000000000000000000000000000000000000..e22f2183944b66b77daf98aa91a1d68d8cedfa03 GIT binary patch literal 40 qcmV~$fdPOJ006L^qI5vwE8+m9*V}^4E;>}rts73sB`c=KYx(?bU}rts73sB`c=KYx(?gbOvbv literal 0 HcmV?d00001 diff --git a/graphics/contest/clink_tilemap3.bin b/graphics/contest/clink_tilemap3.bin new file mode 100755 index 0000000000000000000000000000000000000000..d4bb7bae701f2594fc5f51e33ff291d654ae0bed GIT binary patch literal 40 qcmV~$fdPOJ006MvqjW&xA>sg~*V}^4E;>}rts73sB`c=KYx(?lhz6Sg literal 0 HcmV?d00001 diff --git a/graphics/contest/clink_tilemap4.bin b/graphics/contest/clink_tilemap4.bin new file mode 100755 index 0000000000000000000000000000000000000000..32f24abd665e7ee85c977eb49f56331116c050b0 GIT binary patch literal 40 qcmV~$!2y5}006*yD-DoXkQhK|_3nbrE;>}rts73sB`c=KYx(?F2nAaJ literal 0 HcmV?d00001 diff --git a/graphics/contest/clink_tilemap5.bin b/graphics/contest/clink_tilemap5.bin new file mode 100755 index 0000000000000000000000000000000000000000..cc07b0f1ab42e0a003c1c6312d6e92aaf1353912 GIT binary patch literal 20 bcmZQ#U}j)pU}a!q5MmH!5MdBy5MuxU1B3v1 literal 0 HcmV?d00001 diff --git a/graphics/contest/clink_tilemap6.bin b/graphics/contest/clink_tilemap6.bin new file mode 100755 index 0000000000000000000000000000000000000000..f3939831e12f93ee3f3c8a89594dff9490e3d721 GIT binary patch literal 20 ccmX@WaFF2;!(oOa3>O$KGF)P~%y5MP097alTGXMYofA#9wy>p`e zGcat~vIQst1nhb@vj(;;b!K|4-S{`O+O^sI#YwV+hC0FVdQ&MBb@0O1Bq1poj5 literal 0 HcmV?d00001 diff --git a/graphics/interface_fr/menu.png b/graphics/interface_fr/menu.png new file mode 100755 index 0000000000000000000000000000000000000000..a04c981d5d4b4abc92491723d7f17d38186e8628 GIT binary patch literal 1904 zcmV-$2aouPP)-sUlT%~G7+-fEQgq(P*ttb5+x#l56C|5}Sudy7FqLI3~%Fpnj9000L2 zNklYf9 zhyYUWG_C?91SIz%#C!otlqkL+a<&Kpq{(dlGrM=>?TL11H$lK5Zy)#g-OTRH+}=e| zw6ztfB=xMa_I3PdvYu70ti|!xlW{#eAdcg^561P(@-QxadH2z{o*nQ_aYX^Xo>^A> zg)6TM`0RRdrCb@;Gs`>0l`l%4kL%X}6t6pgt7n&TsZ^eTvdv~G}}1$s<9dfY>|M*>)<^$y9_StpFa8#~e)yYgI+&Py5j^ja+=&)+R) zmI4lOEgyg&fb+86+yPb< z5c6i2I5h!Rx#CtkF#+0h?NAh`;W~@!1YjlsvE?{1K{Ox*q$VgpH8}LvKrH|cFA@Mu z@PI!O6F6(aA?y@@Hhn(>n3x4gxd`tuKx5qv;(?`c-|~f<1?)&?ft<9deX~tB1waQE zba5c13<6z@`$RRJ1?u9L%)%=iDU_Tey~>rte$JKW5=G&lyj9G|$5$&Ec@pM_D4dpJ zAeBJE{1CF$5%e#Hv<%;cFb^wj8RrUa+0s$DZ67~Y{ z%Y#$w69AfhmlF&*06OQA8$2N16aa2-Ojk8H#h(|jp(TJFXu!LsPrH2&&;)TiF@Ze* z&wZmB*i%s-A?5+n_LBV8a! zF#urUv`Dl-3#a%CV25`4v_lo@?|1-Fna*#M8^myZFta0t>w}qHc`i}(VLc-+!hSf& zA2l=bdsKgggwxy%B&u7k+o9!#RNNT4KBM0l%Fb$4UMKY7Wd;slxoJn1Pe!Z&AL;I; z!3@ItMtxwJ6NUo1g$A z5Vm3hi3wb9AiiV_3|HlyNFpu;NY*=H9fJy!q`dx)CNA5rGu73kdV>VeY#!r&Cp2O@ z8M$!-KuvHORJfvmzclI%0QE*)2T)9C44cirFo0Qc6WN@Errzzt#rnU?zG0v?fHr+S@+N5dmJ8qyJo3Dl%xzlu-*(eVfyjYt83 zgpL$CPR^0Scn@7UblsdQ&n1e&m#XY~;m-66YqcmMlFyJ?30HB`mPIt@ab*<2c$*zXfPM=*8mIvX<>i!vPH3 zxMhqiZ^wY2zpahB_bI{~wSFMr$7m@4fw9R305syLAon%$)0d1?iy!Yj{bldo(}4iw z%K*#8D0(rTnsgt5)s;r9>XRfSP5~r<@9sVQLAD4_^27wR>}kD@L|8{!bd5=XsFVV( zKD_%xHU-F9z!e4ngrEeZYoq|9l(7bgLboj<3&^!DA1vlHDC7a@K&mVd)&aT|rOavI zrlEzuX%!}BA(e1F5TpZl5^f4dXcfY{i-hZeY(97~)f4CPUlSMXtqC{HNP!|!e?(cx zIiiTs7h4H<1ZMs)9GGSKV0;~%QP9^52}t<@DJzNWEehD5l|Ti`11Ni3t}zKl&&mO; zYG~4c4*=E!SX-9?$OEQoFlhh>fIkbeN@mDI#-Wg`Iq00001{5vB2U}Q1%me& z{(rf4$3M)&JY$K@g^<_G&*(dXv$)wD-y&ifpcFG;klTC{!d3*hC@G!ihkhhfKf#?&#!(2?qdXgD+ zCiwFQ@n1+kkj(m|`OQU!>n$FtsUHQnl>HtRZ!i>#3TP6DFRuN3;`2V6sX3efKkkoa zJS!Pr&X{}n^LMj|^DzgjR)3du+{kV!aD>}=Kn{#?|pmr?Ek%Y-@g6-|DPc#38?a9Uu8LvviEdx43U_coS?vL zz;%exrNNVvZvoT)um4}aeqH}-J-_e|mM2V=^Cz%4XiW(SeWASi2frA@tdE@Sx)Sde b$S^QWI3ii`_+QRupivB-u6{1-oD!M^^nUL{HYfnQB^@oK24mIR4vtD~-Z>T4im{)QT9 ztcj+YX|9EqT4}9~w%TbQkY5KWI_jjeF1kw9O?N${N!L@aD8J&CBirqxuYUR)V4y(; z8)B$oh8tm|j3~cEc_Pzg$}-v*V`Up>ya^_nWU?uynik;CkYlDUPDyyxr);jBLura{jY>Tb7*=~oOcG+!@z4qDffP(>kp~H?i>X_qB zIO&wrikxv)v2y|bc^6!C$z@kub<^%*kmS(>$6tH!00Y0e!-#YByu?E?YWQ5-Y@IOktB1E3M`l&73G0-EYT2sn8zB)AnYcN#H*{KJ#J z&+n`Xc*?)(pY;3WgcAVJkVek?1VAU;X>0;)qW}V+1UG=r4nT*eeF-?>=_&wnKmyQ- z$2SLT^P__TfKIpovJQHHb2ns3505=ON&x@`0QQ9h>;l-bWIhL&&$25@qnMGpjAjk+ zy7>`1`@9WsAOX(+e103JC=EJ=gL7ph>Od;+=!HY&Q8+*eIv~I^dPh!#coFD; z(;S3}0Bo}jniIPoy{HM6bU+YJlA>e>J}oMPY%Vjuw@4Kzfg4bL*4>uEFrFJv02e^&+2$3&zt zbpvD+pA<2ah^TriqNv1B7E;#)q*W4VTwI9(Ba8VXj`82E587+tpeKRp#TIo0z}Hu0cf?NwQ01}my(k4ei!uwX&2Yb;`*1o7w7>GZ9hMOg=y{e#y6u%!VWek=fIH2|Frz^(wi8UL;V zrso1MsR8K6#sG|7^DXoM!=MP5{)s;Ld~#+2>I!y8r~DiAV5~~O+oKOWolHzXUBT{X zgn&0=6M#POZ|i`%0$fC49=9ltiU%a&oB(GApsoM`KL72rIv{w<@74h|1?T}ru|wl4 zA87pae49@unh#b560l_fP!j3@G7G?A%K}av-W#hd`K^@$52 zTs~uiYXp=%_i*4J`1Rjn(Ohnf=>Xbv!(}NgqG|W-feE1NhhouOZq4Zc+V=C9-2cPZ zwc>&Bfvz0NYjy?reHe=U%Lnut)c}Wc1RP=qNUSj+iNy}21SsL!BfumFFwYJEaeMO7 zyC#4lfFvwb5J~_kkN|Z&N|4%O0=Tmv_iz*8LZI6oUdI&8$OU^AWF5#hvuuX<0I&zygo0CfD@DPL z0C-oiEdFPsQlJKV2?fK9Iu_BV^Nj#>R{>Z-!M~0aV0Iz}Uu^&Y002ovPDHLkV1hP# B%U%Eg literal 0 HcmV?d00001 diff --git a/graphics/pokenav/header.bin b/graphics/pokenav/header.bin new file mode 100755 index 0000000000000000000000000000000000000000..f405a6dfcfbbacf7f2864d071d019e9c9a0a0084 GIT binary patch literal 2048 zcmeH{w+;d^5JcY*Og1@(Bj*hN|849d9nc_(D`>z=^fV zkR>PCe6@P=HX=ulK6wfhDd8pk^M5^@XO7|nYvkG{iBA4c2o)LEt1iC@`>A znjKU=a6PE%EnTSOPF>S86xv&Osp%)-mMR^^A^m;<<(I@U-xM98@>+cjpacgDbRVj? zwiH~MH>m9Zvrx$YSzFEJXlX^adi3B>%q(fbVp%J%3e_}H|C{Il)oV$@u25*H9NG5) zYaoxHAo>#7BKQ7J{6YHzsHPVwhltmUwQ}72Gcq&oen`WI%DZZ`3ZULkqpWxBw!`)Laz`xrj4{x-EJ&}Ele z#4fwB+Ck>Ph8@fej0WG;e#fb~$Vd;!o0M?FchpU=aPc z*yj0#<7|4zIepkJ*&lkUaA1P7{F?KO0!4EUq%b7>W4JKc<8{Ux_ZuMJdAj9R z|6S6vDL^rXte|^GxBL%sT#|J38;B1EK$RB%+#-PNRh}-6As(G?r)(5#G2mgzbbNK7 z>&`OSm96;?S3hY8QnH63DH78gStCi1La?ICtCEu_rBH&Nk4 zN7@m_9Y^0Y*esH~$oNrGibaU|6t94LlzyWMTYjxU2}Amc6>l82^30yCC_V3E+o_Pt zdsz0l$W&atlK-pT!F>AXZRZ$rqKnv%EHz|1vX7ssld+X?D&rddLSY-*HH8g%zp6$5 aEEDZt`~F4K+#|vuA9%X@xvXZfdYM=E{-7BmUz|xU*&L+jrz?rv47$Eem=48 z14(JdCChFq#_xCD_3uujYM4uheng_)pW1}LXIu$pX9PZdwchfK)w}L<(^BWX2`gn| qHhgT8GIL=0&2)$7_x;D_-*+&0yo!BdtMGk0$f=&LelF{r5}E+N&tQ%K literal 0 HcmV?d00001 diff --git a/graphics/pokenav/left_headers/cute.png b/graphics/pokenav/left_headers/cute.png new file mode 100755 index 0000000000000000000000000000000000000000..6da0f49733e144418fe2405091abb19f782da867 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;4BxV{{;yeb*2@vZfdQb(drt+df!qzAE{-7f@Rpir-tulOlzg;TqnZ-8Wcqyyqo51~<*C8tN7vtFwZ)2vV)*3v2 z{_x(~vBjCkDZ$v<|JLC%3fty8X6!%D5U@ZXAlR5~`Tv5ad=5+>*zDg+*i^k-?4D!a zT)KAV>jwbejMG literal 0 HcmV?d00001 diff --git a/graphics/pokenav/left_headers/hoenn_map.png b/graphics/pokenav/left_headers/hoenn_map.png new file mode 100755 index 0000000000000000000000000000000000000000..7ee6c8e99af847a70ef11f0ab989de115223385d GIT binary patch literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^4nUm1!VDziUuWJ1QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;3<^iHrub3-NU;wDHJLiQp0|TSGr;B5VN9WsVrv(oy@VMM-Gs+n}rIQ4F5fOHnUY;Mi>Py26k-)|?xvn3D_g%@8W4N3gt=<^DaPGVL=NYZ5Q?D}`T}^Yd ze-K-ud0j1%VWONs{SwA4-!4ga9Is=X;C|nMx7(kWw_#hqRn&snhu95Sml_6Cu!ub3 zkPYf)N|HUrB(g_TrR8+HTBw@%t+UDr%YVy1Z-@@9pTfUGFQQ~c-=~E~Vh{G7KByso z!RPCS_=fl2zB}(_((G;2(Oz(xJ-L?g#Hv6$ljnQY4=TtnVRifIu*1ec=75I$5q*9+ gL8-vP=ZEcIb7syfn=2~uMHLjnp00i_>zopr0Dq~j*8l(j literal 0 HcmV?d00001 diff --git a/graphics/pokenav/left_headers/main_menu.png b/graphics/pokenav/left_headers/main_menu.png new file mode 100755 index 0000000000000000000000000000000000000000..713de58b3f292b32a18e14c71473ce6e51c8a3b4 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipS0MfW|No#MuQhAdd^>9R z|6S6vDL^rXEo-XpU0u>#?FHh%08k|hSB3$QyVcXhF~pIN#4sjxMj!IRZ))raUr@zfv*|TkRVBxgt@4d4Kglw-^GWPKxKKGEIQsX5f8x0vo0wk< ztm6;3-|+6aV=D92)gROLR7Gr&I-O;__L<=hwUY;Dnm+dX&&%`rQ)N^-gN0*%>H+nL jHUAxVT|U3~!R|W@$_by>C$zjX1Nq0()z4*}Q$iB}*pzw< literal 0 HcmV?d00001 diff --git a/graphics/pokenav/left_headers/match_call.png b/graphics/pokenav/left_headers/match_call.png new file mode 100755 index 0000000000000000000000000000000000000000..5de8e41ab10f87d2011a03223db45f8175e23795 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipS0MfW|No#MuQhAdd^>9R z|6S6vDL^rX|Bed(r$lW5F;PJF;bYZ6fvuh{jv*eMZ?Bx@J*>dP_Fzpye!~1c%PcEf z*Im%ej^py2y(^3V=>dNik1w8TjvMYa0` f&E416bp8{=Fa2Mj-y1yT#!heW>AV2pWu@7_xX>rmiJ~aHSc-Nu73yQ NOHWrnmvv4FO#pLAg^vIL literal 0 HcmV?d00001 diff --git a/graphics/pokenav/left_headers/ribbons.png b/graphics/pokenav/left_headers/ribbons.png new file mode 100755 index 0000000000000000000000000000000000000000..ed4f94b93089aba06d5078100227eb3603dc3cac GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipS0MfW|No#MuQhAdd^>9R z|6S6vDL^rXZ&_LY*DN{fE#WG*63IA) zH79TbTf9!1R@e!y`co1@Kg1`0(M&4ToA=Ma?|$aV|L!#M=eBqVe-UtD z_;u!LlbZB}+PGy#MfwKw_Wv~!YnMB+i<`ytrQR0*gv;+2OpyuHyIbP0l+XkK4K{cN literal 0 HcmV?d00001 diff --git a/graphics/pokenav/left_headers/smart.png b/graphics/pokenav/left_headers/smart.png new file mode 100755 index 0000000000000000000000000000000000000000..e959df2b8ac268b326ec98add68432f822e910e9 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;3<^iHrub3-NU;wDHJLiQpkh|a0#WBR9_w1yNyoU{VShgOr-^9Qv z9_QR9zFB+S1W}vR6)YW^r!+6kykf5Y@T*A3yp^XIbgt%aNL*HUSUiAJ@hi(R-UtRa zH-&c>8)I+g2(0`1_TCrXMeW}bu1ES_JvA|lrSg~Hl9&C0XBzb9E%1FH>*$?Z&uH$e zp26v1xAD8&KbE!r6PC*#+;vTJ)fM--i%uz(c4@tC(mZABvRGz9p!kASZg&ma8D13C uIGj)rDY0bnv22)f*q%?{;RM4S_2b+#72SCiV&~5X`OMSR&t;ucLK6U>sdj<@ literal 0 HcmV?d00001 diff --git a/graphics/pokenav/left_headers/tough.png b/graphics/pokenav/left_headers/tough.png new file mode 100755 index 0000000000000000000000000000000000000000..fbb4715729633cf3495a51ded0226ace1fb57de5 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;3<^iHrub3-NU;wDHJLiQpkh{v$#WBR9_w2=kyoU`qSOeC72oz`7 z$RVa(()z~U$x}&H;!<{Kbj-bjKmYWUTP|*#{#lm6NaL=;misJzzyC5Cv=lb~5SeSV zt;p)iTk9!rxAUcQPkE4$*!W^ugL#LY@r{2zZ8zm&6}2Mv3yH39krW52+A;f?gY3O|N^SBI8!pTCXQwNSj6d9~|!r;~S4rL% zHa>}JnU$6ou@{kyDZnb?Gs zl@T`g_TDPh{mjIz9?X{h+Ow{xU1aw4&Fj^E)S6B7yrY)=|89!PKDl*{+b7g(x1#dlo2;6@33w{}Cvm<>}%W!Z9;B;Q+&_#7u_?SuL8*>Yi$<1_1}OR_5@q jx!q9pb#7FU=vHCaA0YX>ZTrEWAmcn;{an^LB{Ts5z$`05 literal 0 HcmV?d00001 diff --git a/graphics/pokenav/options/beauty.png b/graphics/pokenav/options/beauty.png new file mode 100755 index 0000000000000000000000000000000000000000..194cc0c5395adea3d35685fbbc7fe38938bd180c GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;3|T?(QA$$SaYUmL)S@`Mve!sWpi?_ z|6)mNd#7%5xcKr^@r7q1o=Yb)Es#jHSm+YIhHLMZ`3H-BvtDC2`(ViOK|Vc$SFmrH ypr7Xk_ZpVRtZxdQe&eo5mfO$#ztW|`x?g&=J7Z>o`*m56D?MHPT-G@yGywqWlVwQ& literal 0 HcmV?d00001 diff --git a/graphics/pokenav/options/cancel.png b/graphics/pokenav/options/cancel.png new file mode 100755 index 0000000000000000000000000000000000000000..4093674a48d4e3b0bfe860764fbcbf7093d3ddd3 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;3|rPz-@Ce`x!McFfdQaO7Oo5fAa{FWe4iY*;kr5t4& zwjbcpNj&sFR=?riZHD_h^mGo#&CUyQah-A^DK+EeAITCsdq$hqeV;j%Id(enJ27W4 zy-RH4oS9hF#39%6{$Xvy7X>%jgwH=Y_f0(h{(yZyhy3RXh8u_fF_dKRnAFZmYb#w};>oCTHTbmi3NY zOcwL)ohN?&6Eo0OJ77L9qb1~G)2fH7776bEYj@cFSBCQ4g@0AvGu9vAGULDK{OQ5- k3}2oPv+e$|Pph?IT=0eeZhKql5s*(jUHx3vIVCg!01Lu+8vpZfdcWKE{-7Bn<=527`VZN|NAirUCwD77m z1=@F}czoBKq@X3WWOK~kb7Cv)CM}qC-gr)wn<3+oH%!Vrd%52*H?%ujuIl0wKds?8 u@!8~s%YF*#ocnLM#lrsJzvTZPKON`oa1_&*7g==>WVffQpUXO@geCxKTuUYZ literal 0 HcmV?d00001 diff --git a/graphics/pokenav/options/cute.png b/graphics/pokenav/options/cute.png new file mode 100755 index 0000000000000000000000000000000000000000..9aad1e9614778fd99bace58e612dd3fc87c02035 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;4BxV{{;yeb*2@vZfdQb(drt+df!usg7sn8b-nSPH@*Ys&U=0Xs;5~KH z^!DZWgQ9abt?(6I@OE#fgUy~5j2)}^y#gLSmMqg_N_=PP5VAymniXS~fsptE)*0SA z77D&of0UTKRjU4s9iMJkz>2SqXWiRo9qVtf_}9Pi=tto-wQFi?-aKZRwn}Ux$MUJG PK`!xh^>bP0l+XkK)3aAV literal 0 HcmV?d00001 diff --git a/graphics/pokenav/options/hoenn_map.png b/graphics/pokenav/options/hoenn_map.png new file mode 100755 index 0000000000000000000000000000000000000000..00e9724dc6d433efb941c97b8793317e2e6521d7 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;3<^iHrub3-NU;wDHJLiQpkh{mz#WBR9_v(d%yoU`qSOdZucpY?{ zj&PjinyI=tWag&(etaA6YOM_k)%vx3`3we^;%Jitb8>Clb8qKO5_)q+^xf+y2cFCY zPfQKOExvE~b#%9_K_O$Rb=8zjTTb5T$;ixZsf^g){^q)Tg1ozt&749ZqcTUMma8GX zpIGExwXiQW3Mu~}7&3v!Bq8kBWPv4ro@QuGRuFwP`Lc|)1YhHmCl>6N^7r?Am|Fd1 r!9B+szDv!q=L&iE?>zqhz*AefhGe0P`Fe5>K;H6n^>bP0l+XkK4taW1 literal 0 HcmV?d00001 diff --git a/graphics/pokenav/options/match_call.png b/graphics/pokenav/options/match_call.png new file mode 100755 index 0000000000000000000000000000000000000000..6c7effc9b0244ead9bb964e59f947925d0d2054b GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;4F4S!{!fY80%D?o?8C>ZfdacdT^vI!daqu%$a&a+hb3Tb!L0*_x^HB( zq_m!y6zH{VP0Hkeo2`GQTso!L;-2H}zU9~=&amFEa(#~@B6cb;^UD3+r(oEF+ mfQ&eEHuCpX)g0$Vq6Z>0>qwDXmM87$o@1ePt;gKVQ(Vla~ zuE%2HJ7&CQV=!PS>+iDd^7Y;#c4~pJI7eyFwxqsuOaGnO;QP^CW20%-mqnAq6j%c; zh(>g9M>sxz%Cq#Sp5zWjrEA^S^}ek8*1eo(k-!Fq37aQ`Iohx>|2$yI=~TCvd7oKe z!>ljXx}4wH`jS0s?%Z(y%lDt5l5N^YYo8An?BtqEj>$jd-5~JAed6?8IUo;uy85}S Ib4q9e04{=m(*OVf literal 0 HcmV?d00001 diff --git a/graphics/pokenav/options/ribbons.png b/graphics/pokenav/options/ribbons.png new file mode 100755 index 0000000000000000000000000000000000000000..6b7daaa6a87cd71d52c728f9fadd0fd6e6e8953c GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;4F4S!{!fY80%D?o?8C>ZfdcD1T^vI!df!es&C9IFJpuLtl)uorv6TsQxZQvur%8$PKiupKAKj`_PsV;Ni}H^SKRffkx``yYv&z! zz!>b_%zpcmN*4PJi{eLi?cP4CoGjAcF35Sk{=l`b<_#iW6ps45;FC~%z_8Ffp-v`Y z2VczH#f=sf3@(0?+2u|98CBl%wRk8!G_!f7ueHciq;P??#r3b|A9`)-*#CT**aL+nn{L$*Pne(9@mb(dL}-xnhOhKdwE;$`^2M zYCFLB!Zm?q@650S_DPSM;<}$~6MyjZ^t504%}g&3IcO=oZFf3;^m aZ0tAZFl3HnesA#tb3-NU;wDHJLiQpklXF);uvDl`}V>?&cg;gtO08m>~Adn zH0!LVc15dCzj6E4i(!@ s@qKKQ63)LB|8c~oj{V=~jt>_7=B?HoS!wg*Pk>zM>FVdQ&MBb@0MVXhjQ{`u literal 0 HcmV?d00001 diff --git a/graphics/pokenav/options/switch_off.png b/graphics/pokenav/options/switch_off.png new file mode 100755 index 0000000000000000000000000000000000000000..01b5393838732e7e13e670d6fefdfe5da649f9ac GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;3|rPz-@Ce`x!McFfdQaO7Oo5fAor-Ji(`mI@6`*|LWdQ2SOV55+-+F9 zLoLLrDR$Y@DUs6ZZWH1sp7gmgqcXW=i{hGnhgeqstm4^vP1QRnc%rPHQnwT51z{eR z*9UD}zFm;xszrjEI^r0MUR)>q5 zHuOjc-nv#TX8Cjm-v-Vbne03NH?mcfx%%Jmix&GM63FCivB}_A;H4e4b011qdWd-1 zDlqX`e7KOza%=_PgvRUPb`3@c@<08Mub6#Yv{UBAy#GOqE`a>!>FVdQ&MBb@0GsW3 At^fc4 literal 0 HcmV?d00001 diff --git a/graphics/pokenav/options/tough.png b/graphics/pokenav/options/tough.png new file mode 100755 index 0000000000000000000000000000000000000000..bea12edbe6f4b36fb167289e38b1061478f19893 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+A9B|Ns9%L0)Uttoe4- z@c+A{XH$S;3|rPz-@Ce`x!McFfdQaO7Oo5fAh*iX#WBR9_w9v)oCgdzSOda4q(e4& zG;61{zOi>Qb#l~wG9ix3bkgC)Q-3h-()YM<^Sberru3C3s{9qMC@XCL+fh(#0L1{bgKFLY=A8fk=H}*eASpqEO3i~(@54q?0004_ zNkl?vHB#%$gKXJ20jo9}4>JKsbGI;HXS9W0wa0yG-bnTsFna0a{q9`bTs zU{hEw6g~r*&McM=@RJ&IPB|eXjTlpsMK%f2;N}6OQF@6~9(j;08{-kk+Dtr*1n>gn zWI(2c(kH+aY54*iEMOsXFXY`yjF@>pd5hjWF%}b{JC__X$U5xo_mAap`U!RQt0000$@ + +$(pknvoptionsdir)/options.4bpp: $(pknvoptionsdir)/hoenn_map.4bpp $(pknvoptionsdir)/condition.4bpp $(pknvoptionsdir)/match_call.4bpp $(pknvoptionsdir)/ribbons.4bpp $(pknvoptionsdir)/switch_off.4bpp $(pknvoptionsdir)/party.4bpp $(pknvoptionsdir)/search.4bpp $(pknvoptionsdir)/cool.4bpp $(pknvoptionsdir)/beauty.4bpp $(pknvoptionsdir)/cute.4bpp $(pknvoptionsdir)/smart.4bpp $(pknvoptionsdir)/tough.4bpp $(pknvoptionsdir)/cancel.4bpp + @cat $^ >$@ + +$(pknvdir)/header.4bpp: $(pknvdir)/header.png + $(GFX) $< $@ -num_tiles 53 From 06aa07306e36e5674eeb0114120829e9ae114c25 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Fri, 29 Dec 2017 20:25:32 -0500 Subject: [PATCH 41/54] sixteenth wave of graphics.s dumps --- asm/easy_chat.s | 6 +- asm/link.s | 6 +- asm/naming_screen.s | 4 +- asm/pokemon_storage_system.s | 4 +- asm/slot_machine.s | 8 +- asm/trainer_card.s | 8 +- asm/use_pokeblock.s | 10 +- data/graphics.s | 432 ++++++++++++++---- data/slot_machine.s | 68 ++- data/trainer_card.s | 42 +- data/use_pokeblock.s | 6 +- graphics/easy_chat/cursor.png | Bin 0 -> 199 bytes graphics/easy_chat/mode.png | Bin 0 -> 420 bytes graphics/easy_chat/rwindow.png | Bin 0 -> 419 bytes graphics/easy_chat/window.bin | Bin 0 -> 2048 bytes graphics/easy_chat/window.png | Bin 0 -> 313 bytes graphics/interface/wallclock.png | Bin 0 -> 1195 bytes graphics/interface/wallclock1.bin | Bin 0 -> 1280 bytes graphics/interface/wallclock2.bin | Bin 0 -> 1280 bytes graphics/interface/wallclock_female.pal | 19 + graphics/interface/wallclock_male.pal | 19 + graphics/link/link1.pal | 19 + graphics/link/link2.pal | 19 + graphics/link/link_winedge.bin | Bin 0 -> 1280 bytes graphics/link/link_winedge.png | Bin 0 -> 189 bytes graphics/link/misc.bin | Bin 0 -> 1280 bytes graphics/link/misc.png | Bin 0 -> 513 bytes graphics/naming_screen/cursor.png | Bin 0 -> 223 bytes graphics/naming_screen/keyboard_button.png | Bin 0 -> 89 bytes graphics/naming_screen/menu.pal | 99 ++++ graphics/naming_screen/menu.png | Bin 0 -> 441 bytes .../naming_screen/right_pointing_triangle.png | Bin 0 -> 95 bytes graphics/naming_screen/roptions.png | Bin 0 -> 309 bytes graphics/naming_screen/rwindow.png | Bin 0 -> 480 bytes graphics/naming_screen/underscore.png | Bin 0 -> 81 bytes graphics/pokeblock/use_screen/condition.png | Bin 0 -> 287 bytes graphics/pokeblock/use_screen/graph.bin | Bin 0 -> 1280 bytes graphics/pokeblock/use_screen/graph.png | Bin 0 -> 1571 bytes graphics/pokeblock/use_screen/nature.pal | 51 +++ graphics/pokeblock/use_screen/updown.png | Bin 0 -> 234 bytes graphics/pokemon_storage/menu.png | Bin 0 -> 1242 bytes graphics/slot_machine/bolt.png | Bin 0 -> 146 bytes graphics/slot_machine/duck.png | Bin 0 -> 162 bytes graphics/slot_machine/large_bolt/0.png | Bin 0 -> 211 bytes graphics/slot_machine/large_bolt/1.png | Bin 0 -> 217 bytes graphics/slot_machine/menu.bin | Bin 0 -> 1280 bytes graphics/slot_machine/menu.pal | 83 ++++ graphics/slot_machine/menu.png | Bin 0 -> 2396 bytes graphics/slot_machine/numbers/0.png | Bin 0 -> 155 bytes graphics/slot_machine/numbers/1.png | Bin 0 -> 137 bytes graphics/slot_machine/numbers/2.png | Bin 0 -> 153 bytes graphics/slot_machine/numbers/3.png | Bin 0 -> 144 bytes graphics/slot_machine/numbers/4.png | Bin 0 -> 150 bytes graphics/slot_machine/numbers/5.png | Bin 0 -> 153 bytes graphics/slot_machine/numbers/6.png | Bin 0 -> 156 bytes graphics/slot_machine/numbers/7.png | Bin 0 -> 147 bytes graphics/slot_machine/numbers/8.png | Bin 0 -> 152 bytes graphics/slot_machine/numbers/9.png | Bin 0 -> 155 bytes graphics/slot_machine/pika_aura.png | Bin 0 -> 273 bytes graphics/slot_machine/reel_pikachu.png | Bin 0 -> 2210 bytes graphics/slot_machine/reel_symbols/1.png | Bin 0 -> 260 bytes graphics/slot_machine/reel_symbols/2.png | Bin 0 -> 259 bytes graphics/slot_machine/reel_symbols/3.png | Bin 0 -> 275 bytes graphics/slot_machine/reel_symbols/4.png | Bin 0 -> 249 bytes graphics/slot_machine/reel_symbols/5.png | Bin 0 -> 291 bytes graphics/slot_machine/reel_symbols/6.png | Bin 0 -> 259 bytes graphics/slot_machine/reel_symbols/7.png | Bin 0 -> 227 bytes graphics/slot_machine/reel_time.png | Bin 0 -> 1050 bytes .../slot_machine/reel_time_explosion/0.png | Bin 0 -> 308 bytes .../slot_machine/reel_time_explosion/1.png | Bin 0 -> 459 bytes graphics/slot_machine/reel_time_numbers/0.png | Bin 0 -> 149 bytes graphics/slot_machine/reel_time_numbers/1.png | Bin 0 -> 144 bytes graphics/slot_machine/reel_time_numbers/2.png | Bin 0 -> 156 bytes graphics/slot_machine/reel_time_numbers/3.png | Bin 0 -> 149 bytes graphics/slot_machine/reel_time_numbers/4.png | Bin 0 -> 149 bytes graphics/slot_machine/reel_time_numbers/5.png | Bin 0 -> 155 bytes graphics/slot_machine/shadow.png | Bin 0 -> 182 bytes graphics/slot_machine/slots_layout.bin | Bin 0 -> 1280 bytes graphics/slot_machine/smoke.png | Bin 0 -> 201 bytes graphics/slot_machine/spr6.pal | 19 + graphics/trainer_card/0star.pal | 51 +++ graphics/trainer_card/0star_fr.pal | 51 +++ graphics/trainer_card/card.png | Bin 0 -> 970 bytes graphics/trainer_card/card_fr.png | Bin 0 -> 1467 bytes graphics/unknown/unknown_DD19F8.bin | 1 + graphics/unknown/unknown_DD1A18.png | Bin 0 -> 131 bytes graphics/unknown/unknown_DD1F78.bin | 1 + graphics/unknown/unknown_DD2010.bin | Bin 0 -> 1200 bytes graphics/unknown/unknown_DD21B0.bin | Bin 0 -> 1200 bytes graphics/unknown/unknown_DD228C.bin | Bin 0 -> 1200 bytes graphics/unknown/unknown_DD2AE0.bin | 1 + graphics/unknown/unknown_DD2B78.bin | Bin 0 -> 1200 bytes graphics/unknown/unknown_DD2D30.bin | Bin 0 -> 1200 bytes graphics/unknown/unknown_DD2E5C.bin | Bin 0 -> 1200 bytes graphics/unknown/unknown_DD36C8.bin | Bin 0 -> 528 bytes graphics/unknown/unknown_DD4544.bin | Bin 0 -> 1280 bytes graphics/unknown/unknown_DD4620.bin | Bin 0 -> 1280 bytes graphics/unknown/unknown_DD46E0.bin | Bin 0 -> 1280 bytes graphics/unknown/unknown_DD47A0.bin | Bin 0 -> 1280 bytes include/graphics.h | 6 +- src/wallclock.c | 10 +- 101 files changed, 906 insertions(+), 137 deletions(-) create mode 100755 graphics/easy_chat/cursor.png create mode 100755 graphics/easy_chat/mode.png create mode 100755 graphics/easy_chat/rwindow.png create mode 100755 graphics/easy_chat/window.bin create mode 100755 graphics/easy_chat/window.png create mode 100755 graphics/interface/wallclock.png create mode 100755 graphics/interface/wallclock1.bin create mode 100755 graphics/interface/wallclock2.bin create mode 100755 graphics/interface/wallclock_female.pal create mode 100755 graphics/interface/wallclock_male.pal create mode 100755 graphics/link/link1.pal create mode 100755 graphics/link/link2.pal create mode 100755 graphics/link/link_winedge.bin create mode 100755 graphics/link/link_winedge.png create mode 100755 graphics/link/misc.bin create mode 100755 graphics/link/misc.png create mode 100755 graphics/naming_screen/cursor.png create mode 100755 graphics/naming_screen/keyboard_button.png create mode 100755 graphics/naming_screen/menu.pal create mode 100755 graphics/naming_screen/menu.png create mode 100755 graphics/naming_screen/right_pointing_triangle.png create mode 100755 graphics/naming_screen/roptions.png create mode 100755 graphics/naming_screen/rwindow.png create mode 100755 graphics/naming_screen/underscore.png create mode 100755 graphics/pokeblock/use_screen/condition.png create mode 100755 graphics/pokeblock/use_screen/graph.bin create mode 100755 graphics/pokeblock/use_screen/graph.png create mode 100755 graphics/pokeblock/use_screen/nature.pal create mode 100755 graphics/pokeblock/use_screen/updown.png create mode 100755 graphics/pokemon_storage/menu.png create mode 100755 graphics/slot_machine/bolt.png create mode 100755 graphics/slot_machine/duck.png create mode 100755 graphics/slot_machine/large_bolt/0.png create mode 100755 graphics/slot_machine/large_bolt/1.png create mode 100755 graphics/slot_machine/menu.bin create mode 100755 graphics/slot_machine/menu.pal create mode 100755 graphics/slot_machine/menu.png create mode 100755 graphics/slot_machine/numbers/0.png create mode 100755 graphics/slot_machine/numbers/1.png create mode 100755 graphics/slot_machine/numbers/2.png create mode 100755 graphics/slot_machine/numbers/3.png create mode 100755 graphics/slot_machine/numbers/4.png create mode 100755 graphics/slot_machine/numbers/5.png create mode 100755 graphics/slot_machine/numbers/6.png create mode 100755 graphics/slot_machine/numbers/7.png create mode 100755 graphics/slot_machine/numbers/8.png create mode 100755 graphics/slot_machine/numbers/9.png create mode 100755 graphics/slot_machine/pika_aura.png create mode 100755 graphics/slot_machine/reel_pikachu.png create mode 100755 graphics/slot_machine/reel_symbols/1.png create mode 100755 graphics/slot_machine/reel_symbols/2.png create mode 100755 graphics/slot_machine/reel_symbols/3.png create mode 100755 graphics/slot_machine/reel_symbols/4.png create mode 100755 graphics/slot_machine/reel_symbols/5.png create mode 100755 graphics/slot_machine/reel_symbols/6.png create mode 100755 graphics/slot_machine/reel_symbols/7.png create mode 100755 graphics/slot_machine/reel_time.png create mode 100755 graphics/slot_machine/reel_time_explosion/0.png create mode 100755 graphics/slot_machine/reel_time_explosion/1.png create mode 100755 graphics/slot_machine/reel_time_numbers/0.png create mode 100755 graphics/slot_machine/reel_time_numbers/1.png create mode 100755 graphics/slot_machine/reel_time_numbers/2.png create mode 100755 graphics/slot_machine/reel_time_numbers/3.png create mode 100755 graphics/slot_machine/reel_time_numbers/4.png create mode 100755 graphics/slot_machine/reel_time_numbers/5.png create mode 100755 graphics/slot_machine/shadow.png create mode 100755 graphics/slot_machine/slots_layout.bin create mode 100755 graphics/slot_machine/smoke.png create mode 100755 graphics/slot_machine/spr6.pal create mode 100755 graphics/trainer_card/0star.pal create mode 100755 graphics/trainer_card/0star_fr.pal create mode 100755 graphics/trainer_card/card.png create mode 100755 graphics/trainer_card/card_fr.png create mode 100755 graphics/unknown/unknown_DD19F8.bin create mode 100755 graphics/unknown/unknown_DD1A18.png create mode 100755 graphics/unknown/unknown_DD1F78.bin create mode 100755 graphics/unknown/unknown_DD2010.bin create mode 100755 graphics/unknown/unknown_DD21B0.bin create mode 100755 graphics/unknown/unknown_DD228C.bin create mode 100755 graphics/unknown/unknown_DD2AE0.bin create mode 100755 graphics/unknown/unknown_DD2B78.bin create mode 100755 graphics/unknown/unknown_DD2D30.bin create mode 100755 graphics/unknown/unknown_DD2E5C.bin create mode 100755 graphics/unknown/unknown_DD36C8.bin create mode 100755 graphics/unknown/unknown_DD4544.bin create mode 100755 graphics/unknown/unknown_DD4620.bin create mode 100755 graphics/unknown/unknown_DD46E0.bin create mode 100755 graphics/unknown/unknown_DD47A0.bin diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 3a359c9fa1..b7a35d964e 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -3966,14 +3966,14 @@ _0811BFE0: b _0811C124 .pool _0811C044: - ldr r1, =gUnknown_08DCBDD0 + ldr r1, =gEasyChatWindow_Gfx movs r0, 0 str r0, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree - ldr r1, =gUnknown_08DCBF10 + ldr r1, =gEasyChatWindow_Tilemap movs r0, 0x3 movs r2, 0 movs r3, 0 @@ -5810,7 +5810,7 @@ sub_811CF04: @ 811CF04 sub_811CF64: @ 811CF64 push {r4,lr} bl ResetPaletteFade - ldr r0, =gUnknown_08DCBDB0 + ldr r0, =gEasyChatMode_Pal movs r1, 0 movs r2, 0x20 bl LoadPalette diff --git a/asm/link.s b/asm/link.s index a6e580d5c3..a270c8f62f 100644 --- a/asm/link.s +++ b/asm/link.s @@ -44695,11 +44695,11 @@ sub_80205B4: @ 80205B4 task_tutorial_story_unknown: @ 8020604 push {r4,r5,lr} sub sp, 0x4 - ldr r0, =gUnknown_08DD4860 + ldr r0, =gLinkMiscMenu_Pal movs r1, 0 movs r2, 0x20 bl LoadPalette - ldr r1, =gUnknown_08DD4880 + ldr r1, =gLinkMiscMenu_Gfx movs r0, 0 str r0, [sp] movs r0, 0x2 @@ -44727,7 +44727,7 @@ task_tutorial_story_unknown: @ 8020604 movs r2, 0x8 bl CpuFastSet _0802064E: - ldr r1, =gUnknown_08DD4AB8 + ldr r1, =gLinkMiscMenu_Tilemap movs r0, 0x2 movs r2, 0 movs r3, 0 diff --git a/asm/naming_screen.s b/asm/naming_screen.s index cded48783b..07ec0662f9 100644 --- a/asm/naming_screen.s +++ b/asm/naming_screen.s @@ -3712,7 +3712,7 @@ _080E4C4A: thumb_func_start choose_name_or_words_screen_load_bg_tile_patterns choose_name_or_words_screen_load_bg_tile_patterns: @ 80E4C54 push {r4-r6,lr} - ldr r0, =gUnknown_08DD3838 + ldr r0, =gNamingScreenMenu_Gfx ldr r6, =gUnknown_02039F94 ldr r1, [r6] ldr r4, =0x00001810 @@ -3760,7 +3760,7 @@ sub_80E4CB8: @ 80E4CB8 thumb_func_start choose_name_or_words_screen_apply_bg_pals choose_name_or_words_screen_apply_bg_pals: @ 80E4CC8 push {lr} - ldr r0, =gUnknown_08DD3778 + ldr r0, =gNamingScreenMenu_Pal movs r1, 0 movs r2, 0xC0 bl LoadPalette diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 162f4b4e2a..00a8b4d92e 100755 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -5343,7 +5343,7 @@ sub_80CA044: @ 80CA044 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates - ldr r1, =gUnknown_08DD2FE8 + ldr r1, =gPSSMenu_Gfx movs r0, 0 str r0, [sp] movs r0, 0x1 @@ -6104,7 +6104,7 @@ sub_80CA704: @ 80CA704 ldr r1, [r4] adds r1, 0xB0 bl LZ77UnCompWram - ldr r0, =gUnknown_08DD36A8 + ldr r0, =gPSSMenu_Pal movs r1, 0x10 movs r2, 0x20 bl LoadPalette diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 24e7556486..800b66a55d 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -10588,7 +10588,7 @@ sub_812F7E4: @ 812F7E4 bl Alloc adds r1, r0, 0 str r1, [r4] - ldr r0, =gUnknown_08DD0050 + ldr r0, =gSlotMachineReelTime_Gfx bl LZDecompressWram ldr r4, =gUnknown_0203AAD8 movs r0, 0xD8 @@ -10715,14 +10715,14 @@ sub_812F908: @ 812F908 bl Alloc adds r1, r0, 0 str r1, [r4] - ldr r0, =gUnknown_08DCDB30 + ldr r0, =gSlotMachineMenu_Gfx bl LZDecompressWram ldr r1, [r4] movs r0, 0x2 adds r2, r5, 0 movs r3, 0 bl LoadBgTiles - ldr r0, =gUnknown_08DCDA90 + ldr r0, =gSlotMachineMenu_Pal movs r1, 0 movs r2, 0xA0 bl LoadPalette @@ -10748,7 +10748,7 @@ sub_812F958: @ 812F958 thumb_func_start sub_812F968 sub_812F968: @ 812F968 push {lr} - ldr r1, =gUnknown_08DCE770 + ldr r1, =gSlotMachineMenu_Tilemap movs r2, 0xA0 lsls r2, 3 movs r0, 0x2 diff --git a/asm/trainer_card.s b/asm/trainer_card.s index 3c1b46dcc9..ab1b199e7f 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -601,12 +601,12 @@ _080C2C04: ldrb r0, [r0] cmp r0, 0 beq _080C2C28 - ldr r0, =gUnknown_08DD1AB8 + ldr r0, =gEmeraldTrainerCard_Gfx ldr r2, =0x000019a8 b _080C2C4A .pool _080C2C28: - ldr r0, =gUnknown_08DD246C + ldr r0, =gFireRedTrainerCard_Gfx ldr r2, =0x000019a8 b _080C2C4A .pool @@ -3317,7 +3317,7 @@ _080C4418: ldrb r0, [r0] cmp r0, 0 beq _080C447C - ldr r1, =gUnknown_0856FAE4 + ldr r1, =gEmeraldTrainerCardStarPals ldr r3, =0x00000535 adds r0, r2, r3 ldrb r0, [r0] @@ -3344,7 +3344,7 @@ _080C4418: b _080C44B2 .pool _080C447C: - ldr r1, =gUnknown_0856FAF8 + ldr r1, =gFireRedTrainerCardStarPals ldr r3, =0x00000535 adds r0, r2, r3 ldrb r0, [r0] diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s index b01f1eff44..60c11524af 100755 --- a/asm/use_pokeblock.s +++ b/asm/use_pokeblock.s @@ -2397,7 +2397,7 @@ _08167A74: b _08167B7E .pool _08167A9C: - ldr r0, =gUnknown_08DCCF7C + ldr r0, =gUsePokeblockGraph_Gfx ldr r1, =gUnknown_0203BCA4 _08167AA0: ldr r1, [r1] @@ -2405,11 +2405,11 @@ _08167AA0: b _08167B7E .pool _08167AB0: - ldr r0, =gUnknown_08DCD81C + ldr r0, =gUsePokeblockGraph_Tilemap ldr r1, =gUnknown_0203BCA0 ldr r1, [r1] bl LZ77UnCompVram - ldr r0, =gUnknown_08DCCF5C + ldr r0, =gUsePokeblockGraph_Pal movs r1, 0x20 movs r2, 0x20 bl LoadPalette @@ -2431,7 +2431,7 @@ _08167AEC: ldr r1, [r0] movs r0, 0x1 bl SetBgTilemapBuffer - ldr r1, =gUnknown_08DCDA30 + ldr r1, =gUsePokeblockNatureWin_Pal movs r0, 0xC str r0, [sp] movs r0, 0x4 @@ -3259,7 +3259,7 @@ sub_8168248: @ 8168248 ldr r0, [r0] str r0, [sp, 0x8] str r1, [sp, 0xC] - ldr r0, =gUnknown_08DCCBB8 + ldr r0, =gUsePokeblockCondition_Gfx str r0, [sp] ldr r1, =0xffff0000 ldr r0, [sp, 0x4] diff --git a/data/graphics.s b/data/graphics.s index 528b88d2da..9e15903f84 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -4469,159 +4469,429 @@ gBerryBlenderStartTiles:: @ 8DCA588 .space 0x200 - .align 2 + .align 2 gBerryBlenderArrowTiles:: @ 8DCAB88 .incbin "graphics/berry_blender/arrow.4bpp" -gUnknown_08DCB388:: @ 8DCB388 - .incbin "baserom.gba", 0xdcb388, 0xA28 + .space 0x2C0 -gUnknown_08DCBDB0:: @ 8DCBDB0 - .incbin "baserom.gba", 0xdcbdb0, 0x20 + .align 2 +gEasyChatCursor_Pal:: + .incbin "graphics/easy_chat/cursor.gbapal" -gUnknown_08DCBDD0:: @ 8DCBDD0 - .incbin "baserom.gba", 0xdcbdd0, 0x140 + .align 2 +gEasyChatCursor_Gfx:: @ 8DCB668 + .incbin "graphics/easy_chat/cursor.4bpp.lz" -gUnknown_08DCBF10:: @ 8DCBF10 - .incbin "baserom.gba", 0xdcbf10, 0x10c + .align 2 +gEasyChatRightWindow_Pal:: + .incbin "graphics/easy_chat/rwindow.gbapal" -gUnknown_08DCC01C:: @ 8DCC01C - .incbin "baserom.gba", 0xdcc01c, 0x20 + .align 2 +gEasyChatRightWindow_Gfx:: + .incbin "graphics/easy_chat/rwindow.4bpp.lz" -gUnknown_08DCC03C:: @ 8DCC03C - .incbin "baserom.gba", 0xdcc03c, 0x20 + .align 2 +gEasyChatMode_Gfx:: @ 8DCBAB0 + .incbin "graphics/easy_chat/mode.4bpp.lz" -gUnknown_08DCC05C:: @ 8DCC05C - .incbin "baserom.gba", 0xdcc05c, 0x5ec + .align 2 +gEasyChatMode_Pal:: @ 8DCBDB0 + .incbin "graphics/easy_chat/mode.gbapal" + .align 2 +gEasyChatWindow_Gfx:: @ 8DCBDD0 + .incbin "graphics/easy_chat/window.4bpp.lz" @ uses mode pal + + .align 2 +gEasyChatWindow_Tilemap:: @ 8DCBF10 + .incbin "graphics/easy_chat/window.bin.lz" + + .align 2 +gWallclockMale_Pal:: @ 8DCC01C + .incbin "graphics/interface/wallclock_male.gbapal" + + .align 2 +gWallclockFemale_Pal:: @ 8DCC03C + .incbin "graphics/interface/wallclock_female.gbapal" + + .align 2 +gWallclock_Gfx:: @ 8DCC05C + .incbin "graphics/interface/wallclock.4bpp.lz" + + .align 2 gUnknown_08DCC648:: @ 8DCC648 - .incbin "baserom.gba", 0xdcc648, 0x2c0 + .incbin "graphics/interface/wallclock1.bin.lz" + .align 2 gUnknown_08DCC908:: @ 8DCC908 - .incbin "baserom.gba", 0xdcc908, 0x290 + .incbin "graphics/interface/wallclock2.bin.lz" -gUnknown_08DCCB98:: @ 8DCCB98 - .incbin "baserom.gba", 0xdccb98, 0x20 + .align 2 +gUsePokeblockCondition_Pal:: @ 8DCCB98 + .incbin "graphics/pokeblock/use_screen/condition.gbapal" -gUnknown_08DCCBB8:: @ 8DCCBB8 - .incbin "baserom.gba", 0xdccbb8, 0x184 + .align 2 +gUsePokeblockCondition_Gfx:: @ 8DCCBB8 + .incbin "graphics/pokeblock/use_screen/condition.4bpp.lz" -gUnknown_08DCCD3C:: @ 8DCCD3C - .incbin "baserom.gba", 0xdccd3c, 0x20 + .align 2 +gUsePokeblockUpDown_Pal:: @ 8DCCD3C + .incbin "graphics/pokeblock/use_screen/updown.gbapal" -gUnknown_08DCCD5C:: @ 8DCCD5C - .incbin "baserom.gba", 0xdccd5c, 0x200 + .align 2 +gUsePokeblockUpDown_Gfx:: @ 8DCCD5C + .incbin "graphics/pokeblock/use_screen/updown.4bpp" -gUnknown_08DCCF5C:: @ 8DCCF5C - .incbin "baserom.gba", 0xdccf5c, 0x20 + .align 2 +gUsePokeblockGraph_Pal:: @ 8DCCF5C + .incbin "graphics/pokeblock/use_screen/graph.gbapal" -gUnknown_08DCCF7C:: @ 8DCCF7C - .incbin "baserom.gba", 0xdccf7c, 0x8a0 + .align 2 +gUsePokeblockGraph_Gfx:: @ 8DCCF7C + .incbin "graphics/pokeblock/use_screen/graph.4bpp.lz" -gUnknown_08DCD81C:: @ 8DCD81C - .incbin "baserom.gba", 0xdcd81c, 0x214 + .align 2 +gUsePokeblockGraph_Tilemap:: @ 8DCD81C + .incbin "graphics/pokeblock/use_screen/graph.bin.lz" -gUnknown_08DCDA30:: @ 8DCDA30 - .incbin "baserom.gba", 0xdcda30, 0x60 + .align 2 +gUsePokeblockNatureWin_Pal:: @ 8DCDA30 + .incbin "graphics/pokeblock/use_screen/nature.gbapal" -gUnknown_08DCDA90:: @ 8DCDA90 - .incbin "baserom.gba", 0xdcda90, 0xa0 + @ slot machine -gUnknown_08DCDB30:: @ 8DCDB30 - .incbin "baserom.gba", 0xdcdb30, 0xc40 + .align 2 +gSlotMachineMenu_Pal:: @ 8DCDA90 + .incbin "graphics/slot_machine/menu.gbapal" -gUnknown_08DCE770:: @ 8DCE770 - .incbin "baserom.gba", 0xdce770, 0x500 + .align 2 +gSlotMachineMenu_Gfx:: @ 8DCDB30 + .incbin "graphics/slot_machine/menu.4bpp.lz" + .align 2 +gSlotMachineMenu_Tilemap:: @ 8DCE770 + .incbin "graphics/slot_machine/menu.bin" + + .align 2 gUnknown_08DCEC70:: @ 8DCEC70 - .incbin "baserom.gba", 0xdcec70, 0x13e0 + .incbin "graphics/slot_machine/slots_layout.bin" -gUnknown_08DD0050:: @ 8DD0050 - .incbin "baserom.gba", 0xdd0050, 0x1A08 + .align 2 +gUnknown_08DCF170:: + .incbin "graphics/slot_machine/reel_symbols/1.gbapal" -gUnknown_08DD1A58:: @ 8DD1A58 - .incbin "baserom.gba", 0xdd1a58, 0x60 + .align 2 +gUnknown_08DCF190:: + .incbin "graphics/slot_machine/reel_pikachu.gbapal" -gUnknown_08DD1AB8:: @ 8DD1AB8 - .incbin "baserom.gba", 0xdd1ab8, 0x4C0 + .align 2 +gUnknown_08DCF1B0:: + .incbin "graphics/slot_machine/shadow.gbapal" + .align 2 +gSlotMachineReelTime_Pal:: + .incbin "graphics/slot_machine/reel_time.gbapal" + + .align 2 +gUnknown_08DCF1F0:: + .incbin "graphics/slot_machine/smoke.gbapal" @ also duck and pika aura + + .align 2 +gUnknown_08DCF210:: + .incbin "graphics/slot_machine/reel_time_explosion/0.gbapal" + + .align 2 +gUnknown_08DCF230:: + .incbin "graphics/slot_machine/spr6.gbapal" @ huh? + + .align 2 +gSlotMachineReelSymbol1Tiles:: @ 8DCF250 + .incbin "graphics/slot_machine/reel_symbols/1.4bpp" + + .align 2 +gSlotMachineReelSymbol2Tiles:: + .incbin "graphics/slot_machine/reel_symbols/2.4bpp" + + .align 2 +gSlotMachineReelSymbol3Tiles:: + .incbin "graphics/slot_machine/reel_symbols/3.4bpp" + + .align 2 +gSlotMachineReelSymbol4Tiles:: + .incbin "graphics/slot_machine/reel_symbols/4.4bpp" + + .align 2 +gSlotMachineReelSymbol5Tiles:: + .incbin "graphics/slot_machine/reel_symbols/5.4bpp" + + .align 2 +gSlotMachineReelSymbol6Tiles:: + .incbin "graphics/slot_machine/reel_symbols/6.4bpp" + + .align 2 +gSlotMachineReelSymbol7Tiles:: + .incbin "graphics/slot_machine/reel_symbols/7.4bpp" + + .align 2 +gSlotMachineReelTime_Gfx:: @ 8DD0050 + .incbin "graphics/slot_machine/reel_time.4bpp.lz" + + .align 2 +gSlotMachineNumber0Tiles:: + .incbin "graphics/slot_machine/numbers/0.4bpp" + + .align 2 +gSlotMachineNumber1Tiles:: + .incbin "graphics/slot_machine/numbers/1.4bpp" + + .align 2 +gSlotMachineNumber2Tiles:: + .incbin "graphics/slot_machine/numbers/2.4bpp" + + .align 2 +gSlotMachineNumber3Tiles:: + .incbin "graphics/slot_machine/numbers/3.4bpp" + + .align 2 +gSlotMachineNumber4Tiles:: + .incbin "graphics/slot_machine/numbers/4.4bpp" + + .align 2 +gSlotMachineNumber5Tiles:: + .incbin "graphics/slot_machine/numbers/5.4bpp" + + .align 2 +gSlotMachineNumber6Tiles:: + .incbin "graphics/slot_machine/numbers/6.4bpp" + + .align 2 +gSlotMachineNumber7Tiles:: + .incbin "graphics/slot_machine/numbers/7.4bpp" + + .align 2 +gSlotMachineNumber8Tiles:: + .incbin "graphics/slot_machine/numbers/8.4bpp" + + .align 2 +gSlotMachineNumber9Tiles:: + .incbin "graphics/slot_machine/numbers/9.4bpp" + + .align 2 +gSlotMachineReelTimeBolt:: + .incbin "graphics/slot_machine/bolt.4bpp" + + .align 2 +gSlotMachineReelTimeDuck:: + .incbin "graphics/slot_machine/duck.4bpp" + + .align 2 +gSlotMachineReelTimeSmoke:: + .incbin "graphics/slot_machine/smoke.4bpp" + + .align 2 +gSlotMachineReelTimeNumber0:: + .incbin "graphics/slot_machine/reel_time_numbers/0.4bpp" + + .align 2 +gSlotMachineReelTimeNumber1:: + .incbin "graphics/slot_machine/reel_time_numbers/1.4bpp" + + .align 2 +gSlotMachineReelTimeNumber2:: + .incbin "graphics/slot_machine/reel_time_numbers/2.4bpp" + + .align 2 +gSlotMachineReelTimeNumber3:: + .incbin "graphics/slot_machine/reel_time_numbers/3.4bpp" + + .align 2 +gSlotMachineReelTimeNumber4:: + .incbin "graphics/slot_machine/reel_time_numbers/4.4bpp" + + .align 2 +gSlotMachineReelTimeNumber5:: + .incbin "graphics/slot_machine/reel_time_numbers/5.4bpp" + + .align 2 +gSlotMachineReelTimeLargeBolt0:: + .incbin "graphics/slot_machine/large_bolt/0.4bpp" + + .align 2 +gSlotMachineReelTimeLargeBolt1:: + .incbin "graphics/slot_machine/large_bolt/1.4bpp" + + .align 2 +gSlotMachineReelTimeExplosion0:: + .incbin "graphics/slot_machine/reel_time_explosion/0.4bpp" + + .align 2 +gSlotMachineReelTimeExplosion1:: + .incbin "graphics/slot_machine/reel_time_explosion/1.4bpp" + + .align 2 +gSlotMachineReelTimeShadow:: + .incbin "graphics/slot_machine/shadow.4bpp" + + .align 2 +gSlotMachineReelTimePikaAura:: + .incbin "graphics/slot_machine/pika_aura.4bpp" + + .align 2 +gUnknown_08DD19F8:: + .incbin "graphics/unknown/unknown_DD19F8.bin" @ might be a palette? + + .align 2 +gUnknown_08DD1A18:: + .incbin "graphics/unknown/unknown_DD1A18.4bpp" + + @ trainer card + + .align 2 +gEmeraldTrainerCard0Star_Pal:: @ 8DD1A58 + .incbin "graphics/trainer_card/0star.gbapal" + + .align 2 +gEmeraldTrainerCard_Gfx:: @ 8DD1AB8 + .incbin "graphics/trainer_card/card.4bpp.lz" + + @ what are these? lz compressed files used for something, cant tell if tilemaps + + .align 2 gUnknown_08DD1F78:: @ 8DD1F78 - .incbin "baserom.gba", 0xdd1f78, 0x98 + .incbin "graphics/unknown/unknown_DD1F78.bin.lz" + .align 2 gUnknown_08DD2010:: @ 8DD2010 - .incbin "baserom.gba", 0xdd2010, 0x1A0 + .incbin "graphics/unknown/unknown_DD2010.bin.lz" + .align 2 gUnknown_08DD21B0:: @ 8DD21B0 - .incbin "baserom.gba", 0xdd21b0, 0xDC + .incbin "graphics/unknown/unknown_DD21B0.bin.lz" + .align 2 gUnknown_08DD228C:: @ 8DD228C - .incbin "baserom.gba", 0xdd228c, 0x180 + .incbin "graphics/unknown/unknown_DD228C.bin.lz" -gUnknown_08DD240C:: @ 8DD240C - .incbin "baserom.gba", 0xdd240c, 0x60 + .align 2 +gFireRedTrainerCard0Star_Pal:: @ 8DD240C + .incbin "graphics/trainer_card/0star_fr.gbapal" -gUnknown_08DD246C:: @ 8DD246C - .incbin "baserom.gba", 0xdd246c, 0x674 + .align 2 +gFireRedTrainerCard_Gfx:: @ 8DD246C + .incbin "graphics/trainer_card/card_fr.4bpp.lz" + @ more of these weird compressed files, probably for the FR trainer card + + .align 2 gUnknown_08DD2AE0:: @ 8DD2AE0 - .incbin "baserom.gba", 0xdd2ae0, 0x98 + .incbin "graphics/unknown/unknown_DD2AE0.bin.lz" + .align 2 gUnknown_08DD2B78:: @ 8DD2B78 - .incbin "baserom.gba", 0xdd2b78, 0x1b8 + .incbin "graphics/unknown/unknown_DD2B78.bin.lz" + .align 2 gUnknown_08DD2D30:: @ 8DD2D30 - .incbin "baserom.gba", 0xdd2d30, 0x12c + .incbin "graphics/unknown/unknown_DD2D30.bin.lz" + .align 2 gUnknown_08DD2E5C:: @ 8DD2E5C - .incbin "baserom.gba", 0xdd2e5c, 0x18c + .incbin "graphics/unknown/unknown_DD2E5C.bin.lz" -gUnknown_08DD2FE8:: @ 8DD2FE8 - .incbin "baserom.gba", 0xdd2fe8, 0x6c0 + @ pokemon storage system -gUnknown_08DD36A8:: @ 8DD36A8 - .incbin "baserom.gba", 0xdd36a8, 0x20 + .align 2 +gPSSMenu_Gfx:: @ 8DD2FE8 + .incbin "graphics/pokemon_storage/menu.4bpp.lz" + .align 2 +gPSSMenu_Pal:: @ 8DD36A8 + .incbin "graphics/pokemon_storage/menu.gbapal" @ pal for the options in the gfx + + .align 2 gUnknown_08DD36C8:: @ 8DD36C8 - .incbin "baserom.gba", 0xdd36c8, 0xb0 + .incbin "graphics/unknown/unknown_DD36C8.bin.lz" -gUnknown_08DD3778:: @ 8DD3778 - .incbin "baserom.gba", 0xdd3778, 0xc0 + @ naming screen -gUnknown_08DD3838:: @ 8DD3838 - .incbin "baserom.gba", 0xdd3838, 0xd0c + .align 2 +gNamingScreenMenu_Pal:: @ 8DD3778 + .incbin "graphics/naming_screen/menu.gbapal" + .align 2 +gNamingScreenMenu_Gfx:: @ 8DD3838 + .incbin "graphics/naming_screen/menu.4bpp.lz" + + .align 2 +gNamingScreenRWindow_Gfx:: + .incbin "graphics/naming_screen/rwindow.4bpp" + + .align 2 +gNamingScreenROptions_Gfx:: + .incbin "graphics/naming_screen/roptions.4bpp" + + .align 2 +gNamingScreenCursor_Gfx:: + .incbin "graphics/naming_screen/cursor.4bpp" + + .align 2 +gNamingScreenKeyboardButton_Gfx:: + .incbin "graphics/naming_screen/keyboard_button.4bpp" + + .align 2 +gNamingScreenRightPointingTriangleTiles:: + .incbin "graphics/naming_screen/right_pointing_triangle.4bpp" + + .align 2 +gNamingScreenUnderscoreTiles:: + .incbin "graphics/naming_screen/underscore.4bpp" + + .align 2 gUnknown_08DD4544:: @ 8DD4544 - .incbin "baserom.gba", 0xdd4544, 0xdc + .incbin "graphics/unknown/unknown_DD4544.bin.lz" + .align 2 gUnknown_08DD4620:: @ 8DD4620 - .incbin "baserom.gba", 0xdd4620, 0xc0 + .incbin "graphics/unknown/unknown_DD4620.bin.lz" + .align 2 gUnknown_08DD46E0:: @ 8DD46E0 - .incbin "baserom.gba", 0xdd46e0, 0xc0 + .incbin "graphics/unknown/unknown_DD46E0.bin.lz" + .align 2 gUnknown_08DD47A0:: @ 8DD47A0 - .incbin "baserom.gba", 0xdd47a0, 0xc0 + .incbin "graphics/unknown/unknown_DD47A0.bin.lz" -gUnknown_08DD4860:: @ 8DD4860 - .incbin "baserom.gba", 0xdd4860, 0x20 + @ link -gUnknown_08DD4880:: @ 8DD4880 - .incbin "baserom.gba", 0xdd4880, 0x238 + .align 2 +gLinkMiscMenu_Pal:: @ 8DD4860 + .incbin "graphics/link/misc.gbapal" -gUnknown_08DD4AB8:: @ 8DD4AB8 - .incbin "baserom.gba", 0xdd4ab8, 0xf8 + .align 2 +gLinkMiscMenu_Gfx:: @ 8DD4880 + .incbin "graphics/link/misc.4bpp.lz" @ dont know where this is used + .align 2 +gLinkMiscMenu_Tilemap:: @ 8DD4AB8 + .incbin "graphics/link/misc.bin.lz" + + .align 2 gUnknown_08DD4BB0:: @ 8DD4BB0 - .incbin "baserom.gba", 0xdd4bb0, 0x20 + .incbin "graphics/link/link1.gbapal" + .align 2 gUnknown_08DD4BD0:: @ 8DD4BD0 - .incbin "baserom.gba", 0xdd4bd0, 0x20 + .incbin "graphics/link/link2.gbapal" + .align 2 gUnknown_08DD4BF0:: @ 8DD4BF0 - .incbin "baserom.gba", 0xdd4bf0, 0x5c + .incbin "graphics/link/link_winedge.4bpp.lz" + .align 2 gUnknown_08DD4C4C:: @ 8DD4C4C - .incbin "baserom.gba", 0xdd4c4c, 0xac + .incbin "graphics/link/link_winedge.bin.lz" .align 2 gUnknown_08DD4CF8:: @ 8DD4CF8 diff --git a/data/slot_machine.s b/data/slot_machine.s index 08989ccdc1..d68d4c2439 100644 --- a/data/slot_machine.s +++ b/data/slot_machine.s @@ -241,8 +241,63 @@ gUnknown_085A8264:: @ 85A8264 gUnknown_085A82CC:: @ 85A82CC .incbin "baserom.gba", 0x5a82cc, 0x68 + @ 50 F2 DC 08 00 02 00 00 + @ 50 F4 DC 08 00 02 01 00 + @ 50 F6 DC 08 00 02 02 00 + @ 50 F8 DC 08 00 02 03 00 + @ 50 FA DC 08 00 02 04 00 + @ 50 FC DC 08 00 02 05 00 + @ 50 FE DC 08 00 02 06 00 + @ B8 07 DD 08 40 00 07 00 + @ F8 07 DD 08 40 00 08 00 + @ 38 08 DD 08 40 00 09 00 + @ 78 08 DD 08 40 00 0A 00 + @ B8 08 DD 08 40 00 0B 00 + @ F8 08 DD 08 40 00 0C 00 + @ 38 09 DD 08 40 00 0D 00 + @ 78 09 DD 08 40 00 0E 00 + @ B8 09 DD 08 40 00 0F 00 + @ F8 09 DD 08 40 00 10 00 + + .align 2 gUnknown_085A8334:: @ 85A8334 - .incbin "baserom.gba", 0x5a8334, 0xb0 + .4byte gSlotMachineReelSymbol1Tiles + .2byte 0x0200, 0x0000 + .4byte gSlotMachineReelSymbol2Tiles + .2byte 0x0200, 0x0001 + .4byte gSlotMachineReelSymbol3Tiles + .2byte 0x0200, 0x0002 + .4byte gSlotMachineReelSymbol4Tiles + .2byte 0x0200, 0x0003 + .4byte gSlotMachineReelSymbol5Tiles + .2byte 0x0200, 0x0004 + .4byte gSlotMachineReelSymbol6Tiles + .2byte 0x0200, 0x0005 + .4byte gSlotMachineReelSymbol7Tiles + .2byte 0x0200, 0x0006 + .4byte gSlotMachineNumber0Tiles + .2byte 0x0040, 0x0007 + .4byte gSlotMachineNumber1Tiles + .2byte 0x0040, 0x0008 + .4byte gSlotMachineNumber2Tiles + .2byte 0x0040, 0x0009 + .4byte gSlotMachineNumber3Tiles + .2byte 0x0040, 0x000A + .4byte gSlotMachineNumber4Tiles + .2byte 0x0040, 0x000B + .4byte gSlotMachineNumber5Tiles + .2byte 0x0040, 0x000C + .4byte gSlotMachineNumber6Tiles + .2byte 0x0040, 0x000D + .4byte gSlotMachineNumber7Tiles + .2byte 0x0040, 0x000E + .4byte gSlotMachineNumber8Tiles + .2byte 0x0040, 0x000F + .4byte gSlotMachineNumber9Tiles + .2byte 0x0040, 0x0010 + + .align 2 + .incbin "baserom.gba", 0x5a83bc, 0x28 gUnknown_085A83E4:: @ 85A83E4 .incbin "baserom.gba", 0x5a83e4, 0x24 @@ -277,8 +332,17 @@ gUnknown_085A8520:: @ 85A8520 gUnknown_085A8524:: @ 85A8524 .incbin "baserom.gba", 0x5a8524, 0x20 + .align 2 gUnknown_085A8544:: @ 85A8544 - .incbin "baserom.gba", 0x5a8544, 0x48 + .4byte gUnknown_08DCF170, 0 + .4byte gUnknown_08DCF190, 1 + .4byte gUnknown_08DCF1B0, 2 + .4byte gSlotMachineReelTime_Pal, 3 + .4byte gUnknown_08DCF1F0, 4 + .4byte gUnknown_08DCF210, 5 + .4byte gUnknown_08DCF230, 6 + .4byte gUnknown_08DCF1F0, 7 + .4byte 0, 0 gUnknown_085A858C:: @ 85A858C .incbin "baserom.gba", 0x5a858c, 0x1154 diff --git a/data/trainer_card.s b/data/trainer_card.s index 4f344c961f..88d9b40f31 100644 --- a/data/trainer_card.s +++ b/data/trainer_card.s @@ -16,28 +16,28 @@ gUnknown_0856F018:: @ 856F018 .incbin "baserom.gba", 0x56f018, 0x194 -gUnknown_0856F1AC:: @ 856F1AC +gEmeraldTrainerCard1Star_Pal:: @ 856F1AC .incbin "baserom.gba", 0x56f1ac, 0x60 -gUnknown_0856F20C:: @ 856F20C +gFireRedTrainerCard1Star_Pal:: @ 856F20C .incbin "baserom.gba", 0x56f20c, 0x60 -gUnknown_0856F26C:: @ 856F26C +gEmeraldTrainerCard2Star_Pal:: @ 856F26C .incbin "baserom.gba", 0x56f26c, 0x60 -gUnknown_0856F2CC:: @ 856F2CC +gFireRedTrainerCard2Star_Pal:: @ 856F2CC .incbin "baserom.gba", 0x56f2cc, 0x60 -gUnknown_0856F32C:: @ 856F32C +gEmeraldTrainerCard3Star_Pal:: @ 856F32C .incbin "baserom.gba", 0x56f32c, 0x60 -gUnknown_0856F38C:: @ 856F38C +gFireRedTrainerCard3Star_Pal:: @ 856F38C .incbin "baserom.gba", 0x56f38c, 0x60 -gUnknown_0856F3EC:: @ 856F3EC +gEmeraldTrainerCard4Star_Pal:: @ 856F3EC .incbin "baserom.gba", 0x56f3ec, 0x60 -gUnknown_0856F44C:: @ 856F44C +gFireRedTrainerCard4Star_Pal:: @ 856F44C .incbin "baserom.gba", 0x56f44c, 0x60 gUnknown_0856F4AC:: @ 856F4AC @@ -79,19 +79,21 @@ gUnknown_0856FAB4:: @ 856FAB4 gUnknown_0856FAC4:: @ 856FAC4 .incbin "baserom.gba", 0x56fac4, 0x20 -gUnknown_0856FAE4:: @ 856FAE4 - .4byte gUnknown_08DD1A58 - .4byte gUnknown_0856F1AC - .4byte gUnknown_0856F26C - .4byte gUnknown_0856F32C - .4byte gUnknown_0856F3EC + .align 2 +gEmeraldTrainerCardStarPals:: @ 856FAE4 + .4byte gEmeraldTrainerCard0Star_Pal + .4byte gEmeraldTrainerCard1Star_Pal + .4byte gEmeraldTrainerCard2Star_Pal + .4byte gEmeraldTrainerCard3Star_Pal + .4byte gEmeraldTrainerCard4Star_Pal -gUnknown_0856FAF8:: @ 856FAF8 - .4byte gUnknown_08DD240C - .4byte gUnknown_0856F20C - .4byte gUnknown_0856F2CC - .4byte gUnknown_0856F38C - .4byte gUnknown_0856F44C + .align 2 +gFireRedTrainerCardStarPals:: @ 856FAF8 + .4byte gFireRedTrainerCard0Star_Pal + .4byte gFireRedTrainerCard1Star_Pal + .4byte gFireRedTrainerCard2Star_Pal + .4byte gFireRedTrainerCard3Star_Pal + .4byte gFireRedTrainerCard4Star_Pal gUnknown_0856FB0C:: @ 856FB0C .incbin "baserom.gba", 0x56fb0c, 0x3 diff --git a/data/use_pokeblock.s b/data/use_pokeblock.s index 7a2f26233b..ffb7802d90 100644 --- a/data/use_pokeblock.s +++ b/data/use_pokeblock.s @@ -47,10 +47,10 @@ sContestStatNames:: @ 85DFD04 .4byte gText_Beauty3 gUnknown_085DFD18:: @ 85DFD18 - obj_tiles gUnknown_08DCCD5C, 0x200, 0 + obj_tiles gUsePokeblockUpDown_Gfx, 0x200, 0 gUnknown_085DFD20:: @ 85DFD20 - obj_pal gUnknown_08DCCD3C, 0 + obj_pal gUsePokeblockUpDown_Pal, 0 gUnknown_085DFD28:: @ 85DFD28 .incbin "baserom.gba", 0x5dfd28, 0x34 @@ -62,5 +62,5 @@ gUnknown_085DFDA0:: @ 85DFDA0 .incbin "baserom.gba", 0x5dfda0, 0x18 gUnknown_085DFDB8:: @ 85DFDB8 - .4byte gUnknown_08DCCB98 + .4byte gUsePokeblockCondition_Pal .4byte 1 diff --git a/graphics/easy_chat/cursor.png b/graphics/easy_chat/cursor.png new file mode 100755 index 0000000000000000000000000000000000000000..502ea2d696b2e942d2d39dbe533d18e6f6a4069b GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^4nW+%!VDxm*B3b|{{J(eaKNOt(|NksdEgYE3Kl}#d1bMnRhD5Z!o#x2JpuoZMmHq4g^JQF0 zT}wYKFesMWvt!MygMRiKxqN*cG*nKMGT$i>m6$Fpz{UB6+2+Bk1xq+gou(Z4&mg~p i%crYA*@g4V;S`4Za%_plUQ+`>R(ZPmxvXsZp*XPhX3Df z`TzeaPy`uh8X6WC7jN0S<=)kM|Ns9_Ig;~_fq_xq)5S3)qV?^xv%H5Dcv_7ezRh3G zEV0L-Ud-bq)4CYum0Xi@t1_-SS9TShT;9(6L-VxJSLL-AJeZxTURDM0oa3F)H|rpq z!u%ultHcZ$C)YToaXTECA$x&wll=rvgVV}W?j5_#ctS@=`IqadPZx8I@BTQn`<+!o zPYVlA0)s<`OHYPX0xLtWR0`*9#gqq+t|%OTTfVU+So!O*E#ZF5R=kZX^;cPI>&oA% zxR6&X&+lc&GINHn+j6gs9kXNHXT~@woaE%4Fq7d{ycL78!zD(p1pP))h0Pu-lAUk4 z9obU8FVdQ I&MBb@0D9S|u>b%7 literal 0 HcmV?d00001 diff --git a/graphics/easy_chat/rwindow.png b/graphics/easy_chat/rwindow.png new file mode 100755 index 0000000000000000000000000000000000000000..6319f9a5d4fb36099a8add44a80d7495dde1be21 GIT binary patch literal 419 zcmV;U0bKrxP)Qd0l!wEzFrb8~aFy|mud-v9sqvg|Q~0003l zNklqTKMlp`1nbCqtiD14X`T<-qXy8%DIRN> zX8`)?DTRF~+CeFl^kIA1Nz(udFkqrP8NjN6W?)mqQL|?N7-W(~H3*9s;M8z)BQ;H* zveh~tXcZXcJS9pgp)Y4X)JZ?5fd*>tC_@bF%zy^K0dziK^%VE>fgHf(1na-a<}3#= zH|Th1mhgeWJkxB+Q3mOwfn85(4Q+Px8oc?iYsx*;Fk6?}@9)iji%*0Dsh5)DRHpy{ N002ovPDHLkV1kDfw)6l1 literal 0 HcmV?d00001 diff --git a/graphics/easy_chat/window.bin b/graphics/easy_chat/window.bin new file mode 100755 index 0000000000000000000000000000000000000000..c18d45d3fa435d4e7342b95696a5ee84ac7be310 GIT binary patch literal 2048 zcmY#nP#lG$AuwPeAi*F>CX@oZS%HC(OsGT^{Td9KWJ0Y03-i$&PrVQr==4XaPlmet KDfRzI*AD>lLT>>8 literal 0 HcmV?d00001 diff --git a/graphics/easy_chat/window.png b/graphics/easy_chat/window.png new file mode 100755 index 0000000000000000000000000000000000000000..269971224ee168ca338ed7d7fdab207061feeb0d GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0y~yV2l8=Iarv1q~Gpe20+Rnz$e5NNdMnk{J-1sY_;M4 zcU%7dzX}vV2AYP3#l^*2_HMa%_1^#g|5J|S`~ylK@pN$vvFP19#Zc&wf`IGJLq!bf zH@5T{FDfgEw6gYmo@rVZ=ft0oClGtBXIaA%rS&%-oj>rHe}TwnJ&wS=!rxq0)^y(x zyv)2KMlStKXl7*nCWVmp2~!wf)Ld?nGt@o3^F&cx+%+by4SuJKij`((Udy_3%+J_VUbHH*{$leQ?xU&4 z*IQ2aH+_Bn`uqGxdE6)Z;)?aAuh*U|Ec@Qc`wL?{OY7}9z3!PH?|QoWxvXq8u#~WfG7G{vCO3Mo@;sGT~ z)kr|3+Oz{47{H`6W&xSHn9|=@V?lAy0B8?0G3pFhfU2~f{(ZA7yGOc*HGp0eVmM?0 zR6o!|kHl?g*;#@m$iUM(0L=6JB>>K#jpBvi0LOFES4Liz=gA#t8;q3#M;&yQ?w7ye zAYq0PAX9IRepBxN0F>o+TKocY3(;<0pPMQcEI`etP=8Mk7VziAO6Rqhz7_YzVxH=@ z)SJmSpeEQqn?6OiEFtk5`D>BC`r=+bhJ|U1-Ohdj7ib{RV;I1jp|F6KAASN;(9gvE zQ12{^oP`AdH39>mKidfbP(&Q6PqA!wsfaw_xWWXWepvZBxHj?tlK@mc$bcIp7C;G9 zQ2|Oj%I~~UW&xByJpdjc+DzLVfLeeCnt_4_Amsos1CT(|Kq93%f}921OAH|664;Rt z_DH)B!X0T0;5bg;Tv9;W{6lpg9WekXA+#X+djy2X`W;-v0O%pizi2%vk=c9D3|`{n~LR(rv{ zzyeO72eVD5zZL*`pV#_Zyw193CUwFYERf=aYa z2G=eDFczSO&_rA5rXWe4Di_}+31b1LU|<0sMu4a45Bu9IKwvCT2`peW0(|YwjryAd z&=~O!pnb{rKH#4uu7R#0>i`ERsU4t)#C_HsAgJMLQ@;$ruVJK*0P$wRIUF+pvyGd8 zcso-Q)^x1*>!26iz6`q{Tg^Z~WdR@8`aN9l_WSZHAMh6gfG%Dz0Hg2Au0KdSF#x+b zvw+7izrKtl^$p*w4I_`sx$|pf(}`Ja7eVUN|BE-oWB6*7dj)pgh1M53v5f0MA`E z#eW0r+2=wn2UzbvS!;x@p;{8K+yAi%ApK9v0?g)#06$+2_!lGyn&HoEr5peN002ov JPDHLkV1kmt9S;Bi literal 0 HcmV?d00001 diff --git a/graphics/interface/wallclock1.bin b/graphics/interface/wallclock1.bin new file mode 100755 index 0000000000000000000000000000000000000000..49f21ed5be9a71a3c2ef236d8128af809e066ab6 GIT binary patch literal 1280 zcmb8vM^_p^6b0Z5T;L{o=0s|mIf9^R3u&6RKuS#6P&H*kCuJi&<OF+?*ie52VQvTp_`-js_gb#iM5JU)Jgc)Lx z0s86V<{InYMg&ppAci=0v4=hGGR_!x7-fXpOCwy~|2`5(B84 z_gDHXj*vqh1r+fX$2jI&7Fl4PIUX^)(w9(11y$5g#|chx$`jUEW0e(_Sz75EXrhHS zI_RQ@KKksj%MROYvB}0te}(~u7-5VFrkG*IDJL9r#32VfTkSQ_P$P{s(Nr_dY-$r5 z+sKACurph{ZI{o#p{81DtD~-Z>Z@-(>srU!*0QEGR{E04s;H`(>UxLw_<)b7Tg|Fg zv9gs``mBzWQ(grX^$DNx1z%CLg5@n|N0z}A?Mz$I;e#K3`sgL;;d%Z&0th06Fd~Q|h8UxaFw78x z44iTPI1)%Ag)}m_!ZogW#SGI-G06nu2P+)kKZ_jlD4>WEZg7iR-mt_X3(PaetfMcZ zf+}jLqk%iz!0grg(1AFYU!!}!NI{H2a7-EDmCYWM| z8K<0Z%n^qiu2Q?*FsCJwAMyj?Xhn;uAjO3wqYIjQS3_U%4d3wt4Xazts#dYGqjw>vyb3C+q$m8uFFd1UMJrg|a+W>ACzMo5X=U_+ z-}r;S$XMD^mb8S$&+q{S6;fCcMHN%bq872Rg)C?nc!!I<3LfYGwLWsoBg!kE{PLU6 byhihw+b;0|m(KpgkFsC&|Gks@ztR5#gat%2 literal 0 HcmV?d00001 diff --git a/graphics/interface/wallclock_female.pal b/graphics/interface/wallclock_female.pal new file mode 100755 index 0000000000..a7909e2e04 --- /dev/null +++ b/graphics/interface/wallclock_female.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 65 90 +222 230 238 +213 213 222 +205 205 213 +197 197 205 +255 197 255 +255 156 255 +255 115 255 +255 82 255 +74 180 189 +255 230 49 +90 90 123 +123 123 172 +65 65 90 +255 255 255 +0 0 0 diff --git a/graphics/interface/wallclock_male.pal b/graphics/interface/wallclock_male.pal new file mode 100755 index 0000000000..1582ebfd25 --- /dev/null +++ b/graphics/interface/wallclock_male.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 65 90 +222 230 238 +213 213 222 +205 205 213 +197 197 205 +164 180 255 +115 139 255 +74 98 255 +32 65 255 +74 180 189 +255 230 49 +90 90 123 +123 123 172 +65 65 90 +255 255 255 +0 0 0 diff --git a/graphics/link/link1.pal b/graphics/link/link1.pal new file mode 100755 index 0000000000..a86815b0e7 --- /dev/null +++ b/graphics/link/link1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +213 205 205 +255 255 255 +255 255 255 +41 41 41 +255 156 82 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/link/link2.pal b/graphics/link/link2.pal new file mode 100755 index 0000000000..a8c95a3c04 --- /dev/null +++ b/graphics/link/link2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 197 98 +41 131 222 +0 82 172 +197 255 106 +172 230 49 +246 246 213 +255 49 49 +255 148 148 +131 164 213 +238 238 90 +65 65 65 +115 115 115 +172 172 172 +230 230 255 +0 0 0 +255 255 255 diff --git a/graphics/link/link_winedge.bin b/graphics/link/link_winedge.bin new file mode 100755 index 0000000000000000000000000000000000000000..f3e264d05eae298d53f88763b5a627bc63ad2d76 GIT binary patch literal 1280 zcmZQ5V4w&x79b!K8746oARx=Aev(4~5qiu8qv1z-S{@BQL#}KsU=>M!W z&kVnPyZYbI@c)!4%}cJndl%*C=vZ7_yk^asXV3lvb^QPTzanw_c_7Qf)5S4FVrp^% z1Cyh`gnI`*$aB~wEtD+K3{qL*!O6igQ6xE(B z^5RWOM$U(hf|81wh8AV6LKu!Zw#=P$nyt6{GuPt^dq2yxqq6>}pFzdauiO7-Wxe1m Z@n+fLj|4yeV@EI9&vG!c%Achgd;y(P2f6?N literal 0 HcmV?d00001 diff --git a/graphics/link/misc.png b/graphics/link/misc.png new file mode 100755 index 0000000000000000000000000000000000000000..ae6ba4d02b9847d10de7a64c45dc1b34b13d06b0 GIT binary patch literal 513 zcmV+c0{;DpP)Ty>UBt;#*J%G%eAzZZCtbWe`vC|{nMVrI)`+f#r!KIlJaubG{uIvdO4zy zA-@x4bNBH8sFZzkJnRW%UD(jzuy-J5vpJNes!UZH)yC|b%VqD#S{tD_blDs#;~&f+ zP?0MM#9B8>0Sfl8rUWoFDw$E~IYP-#)>E>V^&}4z2j}hixTdCM=+If0%}wcP{pKNw zy_0x{^v}>V)->l!;arfvkg@vd$gr5EgGW&+v2m>L92^k6u=)7$i;&h*tRAYc;i;bc zB}cJq4yZClvhs@@y5w;SeT413pah5#L!1-BBFkd|(bc&T@=9h>;zjazY!~+Umk^*} zubkPNLpV#X#GNt}gUHfb4wR|5S2Iub=P2u!Lt00000NkvXXu0mjf Drjqy0 literal 0 HcmV?d00001 diff --git a/graphics/naming_screen/cursor.png b/graphics/naming_screen/cursor.png new file mode 100755 index 0000000000000000000000000000000000000000..3d92ef6f49717486d8ff0f648413d930d1809810 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0zhoR!VDzYlu|i?ltF+`h-=oItN%GT?pb2ZGpQVO0fjv*3LlYjK{YAkH{&%?a% mh47{sc5L$*XZw{n*t#W;9V7IttV3~^TMHj*f}6Am#wVJ3k2GgfXut@d4DEy`&)K-dZ_1IXO8wCMx8h0002M zNklpcCPt2~@m$aSv zhmedhi&;YI7@}zj!Hn208i0_tJDRwR7$NEt;c|0LF|Au#V;u0%(DBWHwLGvA=&Dpj z=tL69L^_Fb$0~&gK(dq@Qm$q1bs=eOkOIBF=RN1POFru#hv0W9$`YiI00000NkvXX Hu0mjfSs;q> literal 0 HcmV?d00001 diff --git a/graphics/naming_screen/rwindow.png b/graphics/naming_screen/rwindow.png new file mode 100755 index 0000000000000000000000000000000000000000..9571abb805b971600754b099f256070b9d06bf33 GIT binary patch literal 480 zcmV<60U!Q}P)y`&)K-dZ_1IXO8wCMx8h0004N zNkl?Z9m zUwmhu>#M8F^z|?ZP!GBTeEHbuQGWtHsg2$&Fe8(G&IE>zR9doPF<9YVQ=s z#Ot%&Mo)PnL)Ygi&PbfQP`F8_!fwh8Xu=`wnNarxQ-Rn>5EG|IM2qu~ph+<7oEh@! zr1Uai8?!_=xh>J?zICuJ`wpU-D9{MA@pq>*<`7-V^TKLs zvsTjZ0u?E`e@<7UVuOSOfS|y5zB&WLhm*vpd@|%QsXF7%* W7Sj2R!hq8N0000zrUCM dqxjjGN`}haa*r%_8^wUsdb;|#taD0e0syhf70Cbq literal 0 HcmV?d00001 diff --git a/graphics/pokeblock/use_screen/condition.png b/graphics/pokeblock/use_screen/condition.png new file mode 100755 index 0000000000000000000000000000000000000000..aaece5a38d0f57498ca0fcd8bbbdd26ff4403307 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipS0MfW|No#MuQhAdd^>9R z|6S6vDL^rXte|^GxBL%sT#|J38;B1EK$RB%+#-PNRh}-6As(G?r)(5#G2mgzbbNK7 z>&`OSm96;?S3hY8QnH63DH78gStCi1La?ICtCEu_rBH&Nk4 zN7@m_9Y^0Y*esH~$oNrGibaU|6t94LlzyWMTYjxU2}Amc6>l82^30yCC_V3E+o_Pt zdsz0l$W&atlK-pT!F>AXZRZ$rqKnv%EHz|1vX7ssld+X?D&rddLSY-*HH8g%zp6$5 aEEDZt`~F4K+#|vuA9%X@xvX=H(iYSO+nK@_XB#~q_$0)Lya;w5}&O=_>Ox7~+`$^^iDWr0cLmVcJbTT+X zCPy*Z|2QW&Nj5p0BA3&gA&-2{a*hHD4eocI3tZ$9m$|}Ku5q1WN+{(9W!yCI6;x8i zEpAgy4Yl0iE_K|ap8Gs7@Q-**1C2ECgl3-7!ZTWF<2miTFz~N<%^Tj*!8_jbflj*U zriWho_-Nq!8Q?R63^B|Iql_`m1e1K>E8h(KG&9WdojHE+lV8m9n+5*xmqq>=czdnT zN;$|;tK_8Ba@HET$W?AyD|cD`inYo^>*T5R@{+fFv_Zb|lfMGAQGwcI;5Q3NLE55V zg(y^E3Ri?86{W4(X5gb0qwR{-4#jDw;+3FXO4M%c(O&H{@Sm8n89M`S?I!=Dw*=Er BwYdNQ literal 0 HcmV?d00001 diff --git a/graphics/pokeblock/use_screen/graph.png b/graphics/pokeblock/use_screen/graph.png new file mode 100755 index 0000000000000000000000000000000000000000..3b4b64473b3c0af6227b0b196a52de68ee404a35 GIT binary patch literal 1571 zcmV+;2Hg3HP)$9yoOx@jE9Yo7zyK22vbi15r66ODY+<~df)K)@bpW~)gmDnYp=e7gi2cQYZUqoN z2&vsT1_1MA6x3N@%&0*sIAa}k@Uv(?b}2Y!R)GIgW#;Qb0b2zd;IkU=gB5Vhpc~-c z=?0uR5ZeGW@_U}zeINiki2W`A=lrW~0CWPL@|5#VKvx|I0Y|?G33dg{o<@uy|Kw=s z@;l1{p7O7UN5dgGVFdtmq>=L>0niD18oK}+D1ZPc!49Bz3&7*)Py&v4x(t9EkN|Yz z@$~^4{9v~Ppc6KLtb+mI+zoj$z~caqQUE{+fE^(Ly8yO4$ufX!o?lQJ#f%g%nl-=) ziX(P*c^_a`0-gc5{5DQe3^3=|Bg82N=gLUbfmGno3x~?1aDWoDOMqu|Moxry5$J%^ z9E6DgY_MB2Ck76^s0o&IKoE}Pc;N(%O#~ngy;H)nJ`yUqoaEcZC;8h z1y2x zkWqY6#!w=n`cyf{KnJ9C5@=jpivcZ*#UqY(H@aM{Wbbwy*AY!9hWDGd^YKU8 zd_ZYXZbt9|jka>Ql)>45m0@IS^%|>q`6!j z0L@u(hkoT305()WzdDov|5|`ZIa&a{o>~VIQ2$523PfS<6#$-+hJNFXl91{E!=r8u zh_rVti&j9D$G(0NwE?)G(CVPhW9@rc3e7CaEcDh^H9(byT6t6f{5D|U3aDdOo*Dp{ zgKt`ZzMj3(2iE{tV}}}`%%fVuktvG;;Ih@$nyCON9+V%nhjy99!`AAZr<2J%XngGh zjh~%v@aeSSgHeG5tQ!E7gf@W80I=9q0k19N)2jk7iblJ8Wk6xSm0wO3vjW7{CoYI^ z`HT%N5m5Eq#({t0*Z+t`bG0$n1kk1%E=y?$dThoRWNd`Pcx3$T|VU=KS$VvGSvEO#I!Knd420j33jIc5Nee@{L- zmjqA*kc5Q_LJ1%R5}=Mp2~t~30DBhX9&RFB@SC=c*D*zNa>1MhSqHMs4V&Qu0PKP* zW?LOBVgC()a_ca<;r8)lgTe~DWM4fT##SU literal 0 HcmV?d00001 diff --git a/graphics/pokemon_storage/menu.png b/graphics/pokemon_storage/menu.png new file mode 100755 index 0000000000000000000000000000000000000000..204c075048b0dde47dac3136c04e3178c3bb4fd1 GIT binary patch literal 1242 zcmV<01SR{4P)IleSGAT>^Ku`4n~$~ zX)eJbey92)zy<%jJmxLHY}~#^z^mFn|MljH0CmUn^e!)t`!f@O9fCtw|5!|2oaU8( z{-Ff86<{R~OBf!=VP4{hw#k5l#LMOCfKGrTDy(gdgwN9`ukKk(Rsfm? zxMaYVy&=?qL4QrK0&tT!)$*)1$Lq!jo_{v7%lu+K8qk;tP>ZAlNaa%kAQ1(`!*C{{*8}*$ z1Qb$6MFC&z;U~gDfK61i0Npa60V6B1X9q4Cz{p-Oy}D0h1$a3EXbswc?^S2GRuJdv zpW42dedpzKJ*oNqsga%6N6-E1>YX8d`*{7SwnqeP&;YP8totZ;uHI&){r=_ZV|}BR zf*-xcPCC`rxo!ZD*MHSFYANtqfV5?k6nMs+t6149`AUf+IX4*-va>1@X8Rtdk27o?~)+}-{r~_0P2?yfHDNUy#ge1 zNI~8JFnnmXRR}d89#HV22HY~71D}R8tU}-#up7!kz1U8@zz=TK_qNW$4hoAD5W-cx zB;Iut7yxr2DL|aEG)wQy>uV zSp#4bD6=cbjFs3-_M^~uSAakRez7a)sme?NP8XOeoIql zr`3eNaSg!oV!i0DciS~JAU!e!+>Mw4U`O`n;^f=ovu*pW0SFGIh3OYac$G8&P%u=B zoiv4BighG`qXpP;C@t(E6(SX!#|h5Ab0kF##-YFf~94 z=!76Jgct!2%mPp$Bq{_O07GCHLO-At!V!QQA#l!~J_oA6V+dTvBI#rS#EoV_6?hiw z>zI*+sq4VD%DQhMw$(bY7u*SZ!EFGxSHH1$L-U>VUt_eDH8KahD*ylh07*qoM6N<$ Ef)}7M&Hw-a literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/bolt.png b/graphics/slot_machine/bolt.png new file mode 100755 index 0000000000000000000000000000000000000000..1afda230852182ddac7e875c37e923f79ae4e849 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^93afX3?$7I7w-U41_3@Hu8xk?|AFA$l>b*5{;y$J z;>GZv;Xg9EckkZWvuBqqSrZkNrK#zt_IXkuP_L|~i(?4K%;bay24;c8GY1ajmdKI;Vst0AbxUJOBUy literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/duck.png b/graphics/slot_machine/duck.png new file mode 100755 index 0000000000000000000000000000000000000000..1bf2afc30037bdfdbc1d96b4421250722ad540df GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^93afX3?$7I7w-U41_3@Hu8xk?|AFA$l>b*5{;y$J z;>GZv;Xg9EckkZWvuBqqSrZkNrK#zt_IXkuP_M41i(?4K%;W?P-h_mNP_xtoj!nj# w2??fbLOhD=7CIOvhqHyHPYz&fyKsSlq2Mr^&Rc(APgg&ebxsLQ0LcP5mH+?% literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/large_bolt/0.png b/graphics/slot_machine/large_bolt/0.png new file mode 100755 index 0000000000000000000000000000000000000000..6d833c264dbf82a538f0f0a388fd2ca8eb489b78 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!VDx|E`RzTNErn9gt$67R{sZrcT@gfW%$2_ zVTl*Re}@0a=-$11XV0EpvSdwERFwaqZ{$5-z`>FkaYRVi z-j^n@A3mN!Nv8%d@y0-&uV(@hJb6Mw<&;$VRmsH09 literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/large_bolt/1.png b/graphics/slot_machine/large_bolt/1.png new file mode 100755 index 0000000000000000000000000000000000000000..706f3fe8bb27d6cfbc5f2da6353d21826d0231d2 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!VDx|E`RzTNErn9gt$67R{sZrcT@gfW%$2_ zVTl*Re}@0a=-$11XV0EpvSdwERFrzzY~($lz~d5V9>;Q0 zSiwxew&=va)h!S5XI&_$Vn5-OqA$C#TX>7WoCQaPcoq~MV)8ankW#Nn;Cy~!=Mm$r z*S5Wkd+D#My81GYQ^U7&PyTkDR96tbz`~mH%--gWe$rd9BDcQ<$w2!UJYD@<);T3K F0RX^BT6X{d literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/menu.bin b/graphics/slot_machine/menu.bin new file mode 100755 index 0000000000000000000000000000000000000000..a7ec9550817686a50aa1b08fca42911e1c10a255 GIT binary patch literal 1280 zcmaKq$5RwR7{y=12ds)kueMo7%sD3%&<`CX4N56#0rlcpi@!i}xRJwO1meXUZsu?^ zd$o6Zw`Z*Fa$eQU>zViKc~kQZ$U!+IhvkSIm4X+ri2E5W(gF#8RE?-%HKYdBfJ&k? zrX)chQ*v6)$XPij=cRza5*}o<4I)<=m{j{ee0!MO#G82wcUb;L zen2+Wkbcr%%Tn{W}A(4^8S=Ctn9p2*uKH?KT>w-e$ WiG1+|uki+NL83quiXy$P3HiTAz@jw( literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/menu.pal b/graphics/slot_machine/menu.pal new file mode 100755 index 0000000000..56a9d31d02 --- /dev/null +++ b/graphics/slot_machine/menu.pal @@ -0,0 +1,83 @@ +JASC-PAL +0100 +80 +0 0 0 +57 57 49 +230 230 230 +255 255 255 +131 213 172 +49 123 74 +90 172 106 +255 0 255 +90 172 106 +255 164 41 +255 98 57 +255 197 156 +172 57 0 +0 65 24 +98 98 90 +0 0 0 +222 222 222 +255 255 255 +131 213 172 +255 90 0 +222 41 0 +255 90 0 +222 41 0 +255 90 0 +222 41 0 +255 90 0 +222 41 0 +255 90 0 +222 41 0 +255 0 255 +156 0 0 +0 0 0 +0 0 0 +255 255 255 +74 74 213 +115 172 255 +115 164 74 +156 238 74 +230 65 24 +255 164 41 +255 238 32 +131 213 172 +189 189 189 +156 156 156 +123 123 123 +90 90 90 +65 65 65 +0 0 0 +255 0 255 +255 255 255 +65 164 82 +139 230 139 +139 230 139 +148 238 148 +164 246 164 +180 246 180 +189 246 189 +205 255 205 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 +222 222 222 +65 90 213 +90 172 106 +255 255 255 +131 213 172 +0 98 115 +90 90 0 +90 90 0 +156 16 0 +156 16 0 +106 156 246 +205 205 0 +205 205 0 +246 106 74 +246 106 74 +0 0 0 diff --git a/graphics/slot_machine/menu.png b/graphics/slot_machine/menu.png new file mode 100755 index 0000000000000000000000000000000000000000..08aa5989d66f9d6d13f9bcc69801542bffacfce8 GIT binary patch literal 2396 zcmV-i38VIjP)NwJGrOo(pbx-?@r!W4mx;3|Wg!AvlOfkR?;=GN;Z)|>D5ef4TI`Y}Jw zDg4Yzdi9Q;kDgz8UhULs5GRp3WYw|Jt7QQaQZ`-{AVWx^B?l0>9zb>>$C@BJkV8XQ z4bTe1uZ8$k7)~)B489WLmxIA{4Zz#(u?9qrbJaQ2fLE2VDF9$V*zJA|Ksbc~gHGow z0F(*RhnU#(AhHyI0MG&)rY!`37T^GYbRh{rdXO(jpdOvAk-iYn^8IH*-1U84-s|lO z@$+6!#ilh6sB+;)_pSzf>o}L*7aH(g5#Yo+3#0CdJ@KH5j zryQUy*qZ@7Z-2{m@BgOVesqcPj~KtfxaMG%PtD#D^gp@UuCibouO)m1> zPup(pY)WrA078K22Rsk8jKZAYnNG)q^EpufU%dzEeqaEW4S-Y+atuwSbn)nSamd%X z=u1pTlABuE6d>sbJXd!Z$D>GyIP$zWn%?Iv!wYdkzIN}o!l=zt$*txXK++G41w$JE zIf)~A8DGk+IBK`!i^;|2Yu9c4tKI%G4wYSz0`SH8bDhS=24G9L5H)ehekeWkBLc*Y z&DV%;)JA{P21wPB2)M(S<#4){#=we4;RJxo{V?(_Q?yPen1R*JE{_4I*=|0QwTAJdM)it~`xO5&-wLoFuSrrX)rQWD0;@7*+sq z8{4rJ4_PCql*EOVE#PL4$I`Y@BjHfmx(<@3XHN%ldkH{V~TMd5sTnB2jH;?2%bNG{wK&Ee-HT#a_47|=r{vl9iU$z4DmdG<0=cX z06wYc7vXR`5AaA>#R5L5$V6z*13YEIN)|v7Rw&R6;OTl;$pX}YWuYXL1$*0`(I;T@ zhcXL3y~qM2V<4rCrUro4HEwuynozJHs%HT@jYFx^sGU#KSf>ej3qHN58^r`NN*juD zA=TgZ(6xTZTkvc2GG?D^#SCyFxz)T}CDrSjahQ|nf`CW`Z3gH{ZnbT`Ma%)}n=&WR zudD3YGr-$!_k>%`nXhE^&s3QZzzR$)&<12$+6n*`P6~L77+_lmAh}i)g181iDJH$W zo2JnOYP_MFNnVnMl9iE~<4+`PC}T?t0cfjn+FJ+Z3q*SPCT91NBW7fI1j&XdlNLozBpb0N{4K&Vs&WEU;+-0mHGS0Rz0* zsX7>M2qoiGbJCsxR2|F#R1CDk(7}Ce;{v8)^a0Yt8Gv<= z1z^R;ix~U8G<%hWNR9c9!S6L7;14n?h#Trhug-X*+g&G(8o)Hd0uAVNvP!vyr4-QP zAPZo$`OxP9LtPj6F2>@h0sMES2w=W#Sp+aCF~75QE1w5+I{X!oF<`~94oU&Y1Q>Wh zC;;XyU>%gWpb85s`^jzADk&&_P=Ke&+G1tLb8@~Akm!8um+N!hS_r^J*Mz>muX1@!T)&Q~>l_I+fA;Y* zfOS2&m4(r@bjQ7#|Jwq<(+uEg72xSIfUr`)%!PFT84IjyYg&+xK`CHS3`(<*>=a;W z7T&uK-n$Y%fQM;q`M?0BQC}keXBSR|=%1hVg*X=t_4TPZZ}<%%_@__x4EC656aZ)a zpx-#{2LX=f1T+F%gZRaQU(D&A+BfFtoaWD)&JiyyxYrg zw40$hh~YoOe<!ZRaQU(D&A+BfFtoaWD)&JiyyxYrg zw40$hh~YoOe<ZRaQU(D&A+BfFtoaWD)&JiyyxYrg zw40$hh~YoOe<KQy;{an^LB{Ts51pqV6 literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/numbers/3.png b/graphics/slot_machine/numbers/3.png new file mode 100755 index 0000000000000000000000000000000000000000..ea5f1e496f0eabc22ba028a724ff2f1ed3943fa0 GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^96&6ZRaQU(D&A+BfFtoaWD)&JiyyxYrg zw40$hh~YoOe<ZRaQU(D&A+BfFtoaWD)&JiyyxYrg zw40$hh~YoOe<ZRaQU(D&A+BfFtoaWD)&JiyyxYrg zw40$hh~YoOe<KQy;{an^LB{Ts53L!K9 literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/numbers/6.png b/graphics/slot_machine/numbers/6.png new file mode 100755 index 0000000000000000000000000000000000000000..95a9ae0ff93e94efea800f1ec6d5cd74b1ca5f37 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^96&6ZRaQU(D&A+BfFtoaWD)&JiyyxYrg zw40$hh~YoOe<ZRaQU(D&A+BfFtoaWD)&JiyyxYrg zw40$hh~YoOe<ZRaQU(D&A+BfFtoaWD)&JiyyxYrg zw40$hh~YoOe<ZRaQU(D&A+BfFtoaWD)&JiyyxYrg zw40$hh~YoOe<5zH!qvXzPoWH=vS1Z^#i6?EE$Ij8~8Rj ze1BNM_`Upr<_^}byGa#HsRACnDvYTPhmxjiWZ#=rqVnODUVFHQhhmShmhAIwnJqER zyH#ZCXB~eT9CWe#^NH*A?}D`cK9slKqTBLxQS?K74PlizOSkdgTGhT)reT!?(47pP Lu6{1-oD!M<#_M+d literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/reel_pikachu.png b/graphics/slot_machine/reel_pikachu.png new file mode 100755 index 0000000000000000000000000000000000000000..29b004c84ca8ce20efbf5d4158ca76bd59548456 GIT binary patch literal 2210 zcmV;T2wnGyP)>+000Or zNkl3~ahr?54zBi3npgtV__~D&R z!UrbU#OKHm4=jL5oG^VN0*GB8SW^fDu!Bk|2Ef>%20%p-$XL0+3}c5C*2@S1h{e$b zbnCminnw{11Bi48OlM7gCII+@{Xm~#rgE+WfY;HD{?fExM4b5(yQUy{Q4~u86gTTm z5I+}G?f^1oVq>CtVG4~%<^dZUfFgj*nE9fv`iN?2vl{(GY19V8{J} zhcXt=W*oQxn5MXYUzm}Kg_i=BvM5YH7YO*nFbRs{{c{sR2(k8wy3_=X0|HDE+q5iJ zW)OJbe3zEO%!Uhq5UI2QxEuof*nXewW+-|kb5{V<4I%D#^%CoqqV8!g9?`Y*64Bf!g;j~NF>48kZ7jsd|N&ZUIiXF-&5z~QN9F;XtV z%b{)o-a))PRV}a{)F}hhb)+2z$>%V_rkogyG5`Jo0HqEAFgF&&UF&hBFSX>5B(IcO zxNAKLFA`eV6zaccLC8OV(!$1D5TmP#)NyVshO^2w!i#+m8js@mhXz0oB7wCaQ!D;q zt65Hn#$Z6%0SODF9WZnl7Kkrdkjet57H}L!ZN8efEyVlva4@xj(Bf^RnbCt98uix( zf>E4K{TCQu=hb)iVW~CTi-0}N%BC8JNv{0>^l{q@-+@#xB>Y}zq8%vTU=ShlW*kyZ zSi`L_>W@Us84OZ?>ylXifPJj3ONzNB>Pi!O9AZwp13;qbCTX*un^kNQLz{pk1yRMZ|(Ml;tPgt$ycKQ#XdP_$BKg(3i=Cd39; zR04{3{WcJozade67m#YAy(sM$ObEToR`wrUWsw`CK}%D7Cds6wHa-UKAw{SKjYL`M zRe0l>6pB1I2Lo|-)Jy*mAXRG)26jiIk`B=6fLI$TcYsAFh-)LWLtqMB$z}|Iz9!XT zQd@O(7Hb3~DSL|j)PSpt!R^m_knqoA&eTtW#}8oK!R?1ntgimG|45@K;c<^Uc)xzK zLm*MOY2JU5?1`4F8YRijk~`6wEMi3~^}X5($sLMK;ik}w_^&hntXTR;D8Q5@IlsERGG;zp))xx zmAgxd8QA9&u)2>)Zg)+~wcK(cc3t4z$SLe=`M;I12~i)e1GxFU4r~tBo8b4<{Qxsp zHQfNX;$H)3Uw9RGn4#nhKB>{;_EP}&Q2yocN3>FXpk2Ytr?}%TmqH)6wU4Sx5Z4xJ=md$o`W$P{4+zDhGTIf*v5?c>;q0s(}NWU}NxZ97hsUME$6phVE>*nJ={%pE45Uzz* zZPJtdK0d9I{($JBmtsj#-hPZvQc52{X|DhNT`$Q}E)fuer!H?le1!D(M*{LBL1lDS z`b;^$Cb)Cje#`cQK^O@?zKtG@zoF zq*Qsa8g>B&z#~?`Z{2J4M^jR)Aw%1 zh~1gH7&tYxmp1<9aWwU;2MJAmh8Cpa>gj$1ZH%=UY>4e8e`AwK#tvV(Q>=cGqX4k} zs4I#&f*JzJ2oSuUYP^=OE8%ejcp1A}83V!*hxG;TZ#;bgaJ7vf8U?tUkzS#fFRs7f zvGLw0(5ZFpN*;J=&vh;U^}$}xELcEa&lp?h-<>o-{n?nkDG!iUi_8U%jM-(1mhm~A z6)6O`<5{DsYt%lJ)VuYC5b&;Xi_E6nT*upYBW`~=GQ?JNZ&&PpohUC#xFzSJH1yM_ z;KqMu;TE8b%x!l*)u%M8VVD!vn{$6OTI4?h820!?Ce#3#o)%MQWv<9%YJhw|s*a9J z3G}NX#vW5EkS+#>G-m+)|YOaC^xLL%`1xIKm0LCe)g<|QwAVIbV z0de!Zq(iNx=W}R{#W3|f0R;if?_dadSUgjJ0=>?W0pep=RBBrwz|~K}oUW6Kl~NbZ kYA}z0u0Af=sQ;||139l>8&3HO#{d8T07*qoM6N<$f=8MSssI20 literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/reel_symbols/1.png b/graphics/slot_machine/reel_symbols/1.png new file mode 100755 index 0000000000000000000000000000000000000000..73e9d33453a130c985dab69f5c3be5da39b6b6e7 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Z=?jS65f>-MaXHi+Rz)l?ejVh^d4b_faE%makox@&8=IHr-aq@#v~o|r!jcC`njxgN@xNA Dp+#yi literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/reel_symbols/2.png b/graphics/slot_machine/reel_symbols/2.png new file mode 100755 index 0000000000000000000000000000000000000000..866f4cead09288dfdb8febe8a9e561db6da3f4fc GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Z=?jS65f>-Ma*nq=j zZ)3aStM&G0*h1Ahp8V9UWT={lnw_MHKz>QmA_uj4r{wDHx}PLE;(J?0j+ zRSd5UopRYu%(*R&mdALA-_@qeh^%TUx@Gv~xp{!XCF7(8A5T-G@yGywoT CfojJ9 literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/reel_symbols/3.png b/graphics/slot_machine/reel_symbols/3.png new file mode 100755 index 0000000000000000000000000000000000000000..9641dc4c50a83a080d0e8712b2e2fa3257710a82 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Z=?jS65f>-Ma1wvBxIFuQ?wWeSFN>zPb?vMFY>9K)ny}_! T*^d=Kmoj*|`njxgN@xNAGAVXO literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/reel_symbols/4.png b/graphics/slot_machine/reel_symbols/4.png new file mode 100755 index 0000000000000000000000000000000000000000..b3319e0e4ee3f3e5ebadd34903a48cd20f7b879f GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Z=?jS65f>-MaXT<}Yc!%>n7uD>=gJ=%G2s=iPiQ#I4`UBCS=&7JdGyK=!iTd9c+r4>qDd<|!X zZG|RGYE+98UEFxsel}yte23(u%avaiFuQP0NZ7qnb5-#6d(5rrk&!>A811cpF2MDf s<>&9H9es;;9s2z=`uXbpO}D=?->3{f_)Y($570dfp00i_>zopr0C3W3kN^Mx literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/reel_symbols/5.png b/graphics/slot_machine/reel_symbols/5.png new file mode 100755 index 0000000000000000000000000000000000000000..16ae0f3187906b344c750d2a3ce15e4f3692019f GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Z=?jS65f>-MapWc?Lo_DtonXk2NtJ9;MhR(+>YsMI zxu1Tm!vBi@LPU=#v*oX*9XAag?Mqs<-MaU4o$rqr@7(8A5T-G@yGywpL CscJ3& literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/reel_symbols/7.png b/graphics/slot_machine/reel_symbols/7.png new file mode 100755 index 0000000000000000000000000000000000000000..e6535b38026e29c9e8345da3886fac9273761db3 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*Z=?jS65f>-MaYpupo& z+7xBw(0(G_-l)Vrc2yDc63<)W&0000mP)t-stgOZV z|NsC0#rEz1y_^7IN&x?AQoTw+i#ahl?yLZ;lmKc${{a7#l$=^xYAGo}w!)-E000A} zNkl&g24J^Z?m--&O8^gxZn_f_Q`Sc+@5sjibj$`~V-I zlv0wmT#o{hRn+Q!UXiyN1AM!a8@&E*4(oa|3PciVehNCN8Nl%`#siTDfS`nY#DG&s zG(TJV`!AO8fQUq0o9yF=erpUkiGD>B_KjM3lm64 zpde)l1vqYfF{0%u*9QfNNZ^xR`N?*s1JNwF2a<&jgiQ310+Lyf3gZG1i7n23D91Yy z;ItA@IU_(w0kNJzkIKpAp$fln);j)ekbB}%I>S{5AmJQBEX#j&t~GuTie@gWvc3GgLYD>#Bc zB#R~au`U?2UH+5ngCu} z09q~ykev_tsMF?-UVeC=KgFoI;YdKbf;chQk5S!)8}^Lh0PG1)46KA{Eo8u*I|yKD zsZFH*m!1iuvI67ArG`D+!l3v7Uq5d3?=w*X0i!1?J$iSTi*T(zpf^xt2pB<0c>BWx zCD*&e;989(p9NAK;_M!@2ec*X4*<*{0T3kA;F^@`aWac9dxp8&-26Vc*>ZjR_A?H+ z!z=)*#QNa(_h0K#?&oj!6Wu!p>UL*4E>bij0CG2_*Emo?bh+LPi3YTER0-sIx!$?G z8eiUTEOP~Tzg^zVh1LQ31<8t`0^}sbUo2q*f>pfL!FI@d)CF84O*9Du2v}dF>g+!F zHIZGDuQB)np9a)sKmL5IhxTUa0G>hf-ANvpmyjPU*T<#VmpibXU=M5#%RpYDZXM0v zjx``RBh3GqZ~&Jv(FDLP93wFEk(89crJyb&haPlyxtONb|DQ?x zZw8WC|Nk%f4+IQYP|O}xkly{CE{-7@6I&-*^R*c8xaf+{QC{>Rj(g{fCHIt`uqYnC zSMj;g)yX>aPs(`-=PxSX#dEgL`g-mB`}r%UPV=#05Y}DC^wZAQtJ^Ei@y^_%hH>o~ zwO=GT{xF{K5mFFgFm{{ND4?DYALMy_=j;U`PYn-URSFeo+?pD3Rb*@Vn`7T@Sj}=b zJ)5r6t}GI-r+M$&hjjPYOJT=%NICOr96Qq_I?0vw@S(5OJ?G2Y7EQez`u4=*xVNjm kNzYh!>xEi5d;c$n6n@8xBK{msK(8=(y85}Sb4q9e0KM6UC;$Ke literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/reel_time_explosion/1.png b/graphics/slot_machine/reel_time_explosion/1.png new file mode 100755 index 0000000000000000000000000000000000000000..33492bc45c5c528e260372777f4a95ebaf82f458 GIT binary patch literal 459 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ipS0Me&i{bwghG$U>|DQ?x zZw8WC|Nk%f4+IQYP|O}xpkBr>PZ!4!jftU?eDj(O1X|x}-AulI^RR);f=1VA2kSg{ z>3HmPT>Xrp;|asWLmRChZ|PPtJ|v%SQ*ZX{yXK~?mAOx{@1{Rs;d%D-G5-y(IFW6F z3|HBXCLIfMNPL>UlA%?7vy-KShUlH}5Y{ig9U37_E{k^cvb=NeeAhJL*O#5CPHRj; zlov!lJ0dsb@@I$k|M-PGw0)sJ*V~h?!Dik6W>u+5f*WO z*$$g$5&7pM1uyZQep=tc0%Lve4J4m+dNdx6=3QOlXS4+lgZ*{sj}?dIb>dPn%SO<`P-aAD?JzSc9* p$1<9#&7M}yyDRg}F+{ZTwn3xlVtpUXO@geCy04m?Ew literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/reel_time_numbers/3.png b/graphics/slot_machine/reel_time_numbers/3.png new file mode 100755 index 0000000000000000000000000000000000000000..281273f7d71569cc10440c6dd25718e32e837b2d GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUb#$!$4+QU~{J+ZZe+|PD zFNXgN|B=zXd-u+sJ-cMdny9EOO-)C&&yxaydKElf978x}CjZdjVEXi5Qi12-f1dx2 j4H0ZH;-Onk|7U0L_4l^)er{$6RLkJ$>gTe~DWM4f1-v*J%a|bx4YPfe;hy^44$rjF6*2UngEbeJnH}e literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/shadow.png b/graphics/slot_machine/shadow.png new file mode 100755 index 0000000000000000000000000000000000000000..a7862ab30537d692ee396a49f4c313abf468ba1e GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^4nQox!VDxsPNql!DT4r?5Z5(V*ZcbE2ZMG&LPL{eNx;>UH#VaSYLzn4HkiyxXIJ zk@?P128~O5W_&7tA9rB6>{Wp^zb2kJpvfQX7{HiUxk8&mYr!2}mc5=93pm(KAD%cQ be3#+cMk^myhKI^P!x%hW{an^LB{Ts5u&xqLaprK!OPmE$GAR=>E@Lt(EszU~ zL#?dHiM&`81yK|X4ClCTIOj}Jlm)pc^D-y1vK|d+L=&3Pf>yL?T^W^K-3ji!#TnYs zfldSv;QHEb=QGSwrV1vAA&g%1p&$LckN5Jha4$S-!5BYk2ou8o@&+`xd!*_otFY}L(Mt51FWe?9kN}BQ% za~}L5bI#^z!Gk|cnr+&lUD|W}71PuGc7E?y)%i`+n9U&_(J`GkzU8ATu>1^_Nvn>p z|N82vOtSn?D`@D3aJa-3u5p7~+~FM`_{0~!ac}D7`?|G`9z)2~AMl7LJmUqg@Ua?J P%j%e)y_tI1583_?X`mZ` literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/smoke.png b/graphics/slot_machine/smoke.png new file mode 100755 index 0000000000000000000000000000000000000000..d38690d91ae94e6ad2cce3bcd3c48691da91a852 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUb#$!$4+QU~{J+ZZe+|PD zFNXgN|B=zXd-u+sJ-cMdny9EOO-)C&&yxaydP6*2978x}x^^4#H5l+PALeUL|6jj+ zbLh%5BAxtS^i_HT_WmgGI}^q*_o6hzvIqQ2AM~}B+>CJ%vk~UFS~2N_Rqqm(E~{EUK literal 0 HcmV?d00001 diff --git a/graphics/slot_machine/spr6.pal b/graphics/slot_machine/spr6.pal new file mode 100755 index 0000000000..4f74a30792 --- /dev/null +++ b/graphics/slot_machine/spr6.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 98 90 +255 189 16 +131 0 0 +197 65 16 +197 65 16 +197 65 16 +197 65 16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +0 0 0 diff --git a/graphics/trainer_card/0star.pal b/graphics/trainer_card/0star.pal new file mode 100755 index 0000000000..f49b7f2c50 --- /dev/null +++ b/graphics/trainer_card/0star.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +139 98 115 +255 255 255 +230 255 222 +164 164 164 +123 123 123 +98 98 115 +41 57 65 +57 106 139 +65 139 197 +180 230 156 +148 238 131 +131 222 115 +82 172 74 +106 189 255 +205 205 205 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +106 180 213 +41 123 164 +0 0 0 +0 0 0 +98 98 115 +255 255 255 +230 230 238 +164 164 164 +123 123 123 +255 255 255 +230 230 238 +164 164 164 +123 123 123 +255 255 255 +230 230 238 +164 164 164 +123 123 123 +106 189 255 +205 205 205 +0 0 0 diff --git a/graphics/trainer_card/0star_fr.pal b/graphics/trainer_card/0star_fr.pal new file mode 100755 index 0000000000..1e83a252c2 --- /dev/null +++ b/graphics/trainer_card/0star_fr.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +139 98 115 +230 246 246 +222 238 255 +213 230 246 +197 213 230 +246 205 148 +164 164 164 +98 98 115 +246 213 139 +180 205 148 +106 164 222 +90 156 205 +57 115 156 +255 246 189 +255 255 255 +131 189 230 +139 98 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +189 148 16 +255 213 82 +82 205 180 +49 156 148 +197 197 197 +90 90 90 +139 98 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +189 148 16 +255 213 82 +230 148 82 +213 98 41 +197 197 197 +90 90 90 diff --git a/graphics/trainer_card/card.png b/graphics/trainer_card/card.png new file mode 100755 index 0000000000000000000000000000000000000000..eab827246486e0896e1a177031788aff632c844f GIT binary patch literal 970 zcmV;*12z1KP)V!Zn9;Bc000A3 zNkl7S z01L(%5EhikAQgU<`iT$VUbv{5hwtH>&U{-##rhH7z?fw;X@-p z(>OqCL4tC_=q%XhCFniq34{eZp9f`l7DiF$+3j3bms6IP@S>pgUq|kx`*a!$sESTXt3!pxVsQzOBIBCH~P{kIm?C_lgWJbYe&{+#4 zQCQ#RLsn<yv!rzZ+nQzbVCDgCP3&0M)@d5}JfMEMN7Fh5;2weMl)3fd zmr9AO1-@|0_C?Y^#sYM}n_MCR;D+@Bt{ea}B9{lSu3mfZJS?Nu0`$PiM4F!ieAjcL z-vVgiEkuCYS}>`Q1?+vU^WuW@Q2^rC1q_ixdk3&{pft0(7m$kcCnXCdYQxo&Y8b%y z+1tMhHZ!=?`BYAI*GvT5n$YdGN7T+=4Y#nH3fNDzkOjcwXbWl>O&*|?L4eOf3v&T; zVo;+#0NTKum;|`X<^K=>`oA5T|2e>J3Sb5L1m}wZD7^ps0P&JW{{gQIz(2t)jW6L`jZy;m_(A9SaD9m^TuM0&P{?Nhz<=uBq!dE7 zczb~BLCO|BLLA)tR^1BmHMa1K03pSp#Y3uFDG&m8s;z#n-r?I6fU*F*DnN@7+-rc) zr5Y-`790TLlNhwBts{`F0cbyG04@HcjsV;$z~QJZsM5m`-XBj|IO-qwohanJ&|Z`U s=;!+!V8SrI3Sd$yqb5xz)YR$x2Rd}Eei#`R>i_@%07*qoM6N<$f;4EoO8@`> literal 0 HcmV?d00001 diff --git a/graphics/trainer_card/card_fr.png b/graphics/trainer_card/card_fr.png new file mode 100755 index 0000000000000000000000000000000000000000..2fea60d09bc33f50d0b67f27f8287ea270d00a0b GIT binary patch literal 1467 zcmV;s1w{IZP) zNklc!=;+G%3_xQu^^~f@^9$P`? z>Sa-stHPSrdgsdDx-#>{zEa1o(;th)7gv9))Nfuu4R=~8Q#uR$uGDvzr8T`H0S$qQ z0PU>;7nwC95E1yPA4ahI{{+r2A;GKMm=WMQoahN^qTmUj#C>uoyLv{0I0B{A&=p7U zfvk5+29Z4fU`*CALLC9MZ7=^R3Xt^HWYp(X&O^yM%=-ZIA6g$!o4$Cbbs%t+RRULK zWfcJnP`NC(Iwr_}s04hymS6~iclsh@0`@`fMv`@`1y4X3Xhbv!v_=UCE(C$ABa8uo zwgsbm0w*8|T$qAP459#nZ8L!saCMmnhyeUx1bF>75}=Ou9rg4CTM(3XIdkqe68uH~ zkM<$H&1=CD5P}q_BY+bjfOadOZ5~*HvXua90RjpWPYJSC0=x$ToQ)v(xf20dtq26a|&* z0wSi#6AZ%shT!XalXKZ6te=835pe% zIUfX37;r2`V(|JYOly1qkK5<{D0WG!fJ-^&dGCH>r&%CyGr6fJP#pUWp7)|Z9Su@I z=7A*WyVwu#9EkC=tWzes6}T}^IX(`j_O;M=v4@bz%44*(E@vL{w?mHBkS=% zZ$$dr$@5!`oCuuQ1bC>{A5Wg0kqA7O+p>HvH9n~3GVzVf|6{R4Q-STae8vaWbm{lR z2jPNKmz6Ny2Hcha0&NAJQ-T11c_velM^p?!$ryCglLVUp!1A1?0;L-~Az&B0&%};& zVgz_QFak*!-GDH0qlQH zfc(&ui9CLd0Iz-C4$@Q($4>=X*8=Z}T?K9$2vnm$>vGQXTVpF8f}Uqpo9!errF7H4 z(_A#&bwmg}#%-A}yw9b;Peme7#BCC}UO%+S~}>Ue#MgUtUG^eTKVY zAOOTzz+>0gRYdRzFGm88)!8slgm71s0%jwy0yccEjr$vcTVc2>3W2$g_3FGrl44Q}90ccd_h5 zP)$J+6o^8a2Z=!CMDGKi2Rh9IC$QJVTBs)&x0qN9^-eBrIG|9^>L VLWzQB#S#Dj002ovPDHLkV1j^0q>umr literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_DD19F8.bin b/graphics/unknown/unknown_DD19F8.bin new file mode 100755 index 0000000000..6338ade28d --- /dev/null +++ b/graphics/unknown/unknown_DD19F8.bin @@ -0,0 +1 @@ +33333333333333333333333333333333 \ No newline at end of file diff --git a/graphics/unknown/unknown_DD1A18.png b/graphics/unknown/unknown_DD1A18.png new file mode 100755 index 0000000000000000000000000000000000000000..8b4a564bffef8a2b471f6172f8e2fa81acd42a10 GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c!VDytB9fK>DT4r?5LZXX>iNl}(ePO52pXJ&i5FVu;nX*iyZ|0+^t^y0Fc%2oq-A6> zdZV+tmt1kp4Y%BJ&kAWxAj6Ga%L9)*@yrXayz$Nl zpM0@yl|pSt9QDX(Gk44(gFWKmAoZfs%f-u!mnW3F|DmRg#^*treso*P@6XsW46tc@Gi zJvY>7)3|CKnXqBqbF1_A)K}kl)>WzRC_uWe?LYa?)}B}O7BZdbX^+fIW*}EX_vBXo GWqkwa2RUB= literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_DD2AE0.bin b/graphics/unknown/unknown_DD2AE0.bin new file mode 100755 index 0000000000..c0914427db --- /dev/null +++ b/graphics/unknown/unknown_DD2AE0.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/graphics/unknown/unknown_DD2B78.bin b/graphics/unknown/unknown_DD2B78.bin new file mode 100755 index 0000000000000000000000000000000000000000..c83a6e494a34b961b6cc802e6ef2c3e9817785b2 GIT binary patch literal 1200 zcmbW$*G|G<9ES1d;44-wcv3V`6M__tXyS@{?=9}VZl$GS68D>wb4t$u;(EdB7p3 zp6}i%dvD7J9y!ih_q%V(zT5W0mX7uE4>_Ot%vy^G+w8E*9#>p*!z~RSipX~%NXRZh yLgcf-jMYPS3B8E)mdh=cTOqejt|7NlZoR!h!xE;RqQpljVH%+6f&4Qx1Mv&|cWdha literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_DD2D30.bin b/graphics/unknown/unknown_DD2D30.bin new file mode 100755 index 0000000000000000000000000000000000000000..14840e5e469c2f14a661593a57ee7d878dc9a1f4 GIT binary patch literal 1200 zcmd^;xekI*5JgXLidWF^3H%|DC_*$L2(mTqviz(FVr2oZH7Aoh&B<+Mz+k0;Az-m) zqrqA%u}L{gG~8rFM?*_1jm*t%a4qF1SMAud Tmz~T_*K|zF1VgPfFnaR^6lN2U literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_DD2E5C.bin b/graphics/unknown/unknown_DD2E5C.bin new file mode 100755 index 0000000000000000000000000000000000000000..3169533c0542e6dee44d0721343f3876705aa698 GIT binary patch literal 1200 zcmbW$M^D2r7=Ynd#f2bosno(bGzD>Eh`smT8!mv@{3$kVPYeNVe;sz>HdH;>ie4o- z#E-v3Q6NrzgyI5{q-c&%N+g9xh5-f{Vwe#|8DpFS4mskOHoq5MYkDIiJl`&`$P&w} zu*w?iTyw)MciMjQQ`4_+T^t%CNH1(Q{(+9_{m16i$e eLfM2J{{yi40%`dlDukvRtyZHKGWfud@XZGF zgg&-k5D81iC!B<{@R0VhDtsgNHOv-5*l$y6wuD*acCLo2?H@E8% zI`M4%Xdb@9*@;``M@0U=VoiTVuzl#~{KGqZ<-h&G1a^My|B9s@Os-uFs%X6*7lX@2 AivR!s literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_DD4620.bin b/graphics/unknown/unknown_DD4620.bin new file mode 100755 index 0000000000000000000000000000000000000000..bc4260b1f1de6853108d9e551117b579a896ac4e GIT binary patch literal 1280 zcmZQz7zLvtKv@U~2nZ4dg#?5Ju-POcAW9Sz7myfG{W1cw6xlC^RW}0zvHl;f`XvRV Ph=S5M!Vg=TB329lDG47K literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_DD46E0.bin b/graphics/unknown/unknown_DD46E0.bin new file mode 100755 index 0000000000000000000000000000000000000000..64095dce5c0c3e9e038084e66d5c5da761d6fda4 GIT binary patch literal 1280 zcmZQz7zLvtKv@U~Cl Nh=S5M!jFLh006>OEO-C_ literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_DD47A0.bin b/graphics/unknown/unknown_DD47A0.bin new file mode 100755 index 0000000000000000000000000000000000000000..847486432f838113bd1ddda0c0a3b1c5e14a78ed GIT binary patch literal 1280 zcmZQz7zLvtKv@U~7zh#tg$#rZu-PPHAW9SzH;@=m{W1o!6xlC^RW}0zvHl;f`Xvpd Ph=S5M!Vg=TB329lTd+CU literal 0 HcmV?d00001 diff --git a/include/graphics.h b/include/graphics.h index a3feb92573..81aa43b82b 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2545,9 +2545,9 @@ extern const u8 gUnknown_08DB9F08[]; extern const u8 gUnknown_08DB9FFC[]; extern const u8 gUnknown_08DBA020[]; extern const u8 gUnknown_08DBA12C[]; -extern const u8 gUnknown_08DCC05C[]; -extern const u16 gUnknown_08DCC01C[]; -extern const u16 gUnknown_08DCC03C[]; +extern const u8 gWallclock_Gfx[]; +extern const u16 gWallclockMale_Pal[]; +extern const u16 gWallclockFemale_Pal[]; extern const u8 gUnknown_08DCC648[]; extern const u8 gUnknown_08DCC908[]; extern const u8 gUnknown_08DD87C0[]; diff --git a/src/wallclock.c b/src/wallclock.c index 8975767191..ea6137c5d5 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -92,8 +92,8 @@ static const struct CompressedSpriteSheet gUnknown_085B2208 = { }; static const u32 filler_85B2210[2] = {}; static const struct SpritePalette gUnknown_085B2218[] = { - { gUnknown_08DCC01C, TAG_PAL_WALL_CLOCK_HAND }, - { gUnknown_08DCC03C, 0x1001 }, + { gWallclockMale_Pal, TAG_PAL_WALL_CLOCK_HAND }, + { gWallclockFemale_Pal, 0x1001 }, {} }; static const struct OamData Unknown_085B2230 = { @@ -561,14 +561,14 @@ static void LoadWallClockGraphics(void) DmaFillLarge16(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000); DmaClear32(3, (void *)OAM, OAM_SIZE); DmaClear16(3, (void *)PLTT, PLTT_SIZE); - LZ77UnCompVram(gUnknown_08DCC05C, (void *)VRAM); + LZ77UnCompVram(gWallclock_Gfx, (void *)VRAM); if (gSpecialVar_0x8004 == 0) { - LoadPalette(gUnknown_08DCC01C, 0x00, 0x20); + LoadPalette(gWallclockMale_Pal, 0x00, 0x20); } else { - LoadPalette(gUnknown_08DCC03C, 0x00, 0x20); + LoadPalette(gWallclockFemale_Pal, 0x00, 0x20); } LoadPalette(GetOverworldTextboxPalettePtr(), 0xe0, 0x20); LoadPalette(sUnknown_085B21D4, 0xc0, 0x08); From 48378f791c5cf0ee10931626ef5b01aed26238bb Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sat, 30 Dec 2017 01:09:06 -0500 Subject: [PATCH 42/54] last wave of graphics.s dumps --- asm/trade.s | 10 +- data/graphics.s | 235 +++++++++++++----- graphics/berry_crusher/tiles.bin | 1 + graphics/berry_crusher/tiles.pal | 147 +++++++++++ graphics/berry_crusher/tiles.png | Bin 0 -> 2151 bytes graphics/berry_fix/gba_small.bin | Bin 0 -> 2048 bytes graphics/berry_fix/gba_small.pal | 35 +++ graphics/berry_fix/gba_small.png | Bin 0 -> 982 bytes graphics/berry_fix/gba_transfer.bin | Bin 0 -> 2048 bytes graphics/berry_fix/gba_transfer.pal | 35 +++ graphics/berry_fix/gba_transfer.png | Bin 0 -> 900 bytes graphics/berry_fix/gba_transfer_error.bin | Bin 0 -> 2048 bytes graphics/berry_fix/gba_transfer_error.pal | 35 +++ graphics/berry_fix/gba_transfer_error.png | Bin 0 -> 1014 bytes graphics/berry_fix/gba_transfer_highlight.bin | Bin 0 -> 2048 bytes graphics/berry_fix/gba_transfer_highlight.pal | 35 +++ graphics/berry_fix/gba_transfer_highlight.png | Bin 0 -> 1060 bytes graphics/berry_fix/logo.bin | Bin 0 -> 2048 bytes graphics/berry_fix/logo.pal | 51 ++++ graphics/berry_fix/logo.png | Bin 0 -> 811 bytes graphics/berry_fix/window.bin | Bin 0 -> 2048 bytes graphics/berry_fix/window.pal | 35 +++ graphics/berry_fix/window.png | Bin 0 -> 211 bytes graphics/frontier_pass/tilemap1.bin | Bin 0 -> 36 bytes graphics/frontier_pass/tilemap2.bin | Bin 0 -> 36 bytes graphics/frontier_pass/tiles.bin | Bin 0 -> 1280 bytes graphics/frontier_pass/tiles.pal | 131 ++++++++++ graphics/frontier_pass/tiles.png | Bin 0 -> 4011 bytes graphics/frontier_pass/tiles2.png | Bin 0 -> 2765 bytes graphics/interface/textbox.png | Bin 0 -> 198 bytes graphics/link/gba.png | Bin 0 -> 1253 bytes graphics/link/gba_pal2.pal | 51 ++++ graphics/pokemon_storage/pss_window.pal | 35 +++ graphics/pokemon_storage/pss_window.png | Bin 0 -> 381 bytes graphics/pokemon_storage/pss_window2.bin | Bin 0 -> 720 bytes graphics/pokemon_storage/pss_window2.pal | 35 +++ graphics/pokemon_storage/pss_window2.png | Bin 0 -> 392 bytes graphics/pokenav/ribbons.bin | Bin 0 -> 1280 bytes graphics/pokenav/ribbons.png | Bin 0 -> 291 bytes graphics/title_screen/title_screen1.bin | Bin 0 -> 2048 bytes graphics/title_screen/title_screen2.bin | Bin 0 -> 1024 bytes graphics/trade/buttons.png | Bin 0 -> 227 bytes graphics/trade/menu.pal | 51 ++++ graphics/trade/menu.png | Bin 0 -> 608 bytes graphics/unknown/unknown_DDB444.pal | 19 ++ graphics/unknown/unknown_DDCF04.bin | Bin 0 -> 2048 bytes graphics/unknown/unknown_DDD704.bin | Bin 0 -> 36 bytes graphics/unknown/unknown_DDD908.bin | 1 + graphics/unknown/unknown_DDD920.bin | 1 + graphics/unknown/unknown_DDD938.bin | 1 + graphics/unknown/unknown_DDDB80.bin | Bin 0 -> 720 bytes graphics/unused/unused_DDCEE4.bin | Bin 0 -> 32 bytes include/graphics.h | 36 +-- src/berry_fix_program.c | 72 +++--- src/egg_hatch.c | 8 +- src/unk_81BAD84.c | 36 +-- 56 files changed, 953 insertions(+), 143 deletions(-) create mode 100755 graphics/berry_crusher/tiles.bin create mode 100755 graphics/berry_crusher/tiles.pal create mode 100755 graphics/berry_crusher/tiles.png create mode 100755 graphics/berry_fix/gba_small.bin create mode 100755 graphics/berry_fix/gba_small.pal create mode 100755 graphics/berry_fix/gba_small.png create mode 100755 graphics/berry_fix/gba_transfer.bin create mode 100755 graphics/berry_fix/gba_transfer.pal create mode 100755 graphics/berry_fix/gba_transfer.png create mode 100755 graphics/berry_fix/gba_transfer_error.bin create mode 100755 graphics/berry_fix/gba_transfer_error.pal create mode 100755 graphics/berry_fix/gba_transfer_error.png create mode 100755 graphics/berry_fix/gba_transfer_highlight.bin create mode 100755 graphics/berry_fix/gba_transfer_highlight.pal create mode 100755 graphics/berry_fix/gba_transfer_highlight.png create mode 100755 graphics/berry_fix/logo.bin create mode 100755 graphics/berry_fix/logo.pal create mode 100755 graphics/berry_fix/logo.png create mode 100755 graphics/berry_fix/window.bin create mode 100755 graphics/berry_fix/window.pal create mode 100755 graphics/berry_fix/window.png create mode 100755 graphics/frontier_pass/tilemap1.bin create mode 100755 graphics/frontier_pass/tilemap2.bin create mode 100755 graphics/frontier_pass/tiles.bin create mode 100755 graphics/frontier_pass/tiles.pal create mode 100755 graphics/frontier_pass/tiles.png create mode 100755 graphics/frontier_pass/tiles2.png create mode 100755 graphics/interface/textbox.png create mode 100755 graphics/link/gba.png create mode 100755 graphics/link/gba_pal2.pal create mode 100755 graphics/pokemon_storage/pss_window.pal create mode 100755 graphics/pokemon_storage/pss_window.png create mode 100755 graphics/pokemon_storage/pss_window2.bin create mode 100755 graphics/pokemon_storage/pss_window2.pal create mode 100755 graphics/pokemon_storage/pss_window2.png create mode 100755 graphics/pokenav/ribbons.bin create mode 100755 graphics/pokenav/ribbons.png create mode 100755 graphics/title_screen/title_screen1.bin create mode 100755 graphics/title_screen/title_screen2.bin create mode 100755 graphics/trade/buttons.png create mode 100755 graphics/trade/menu.pal create mode 100755 graphics/trade/menu.png create mode 100755 graphics/unknown/unknown_DDB444.pal create mode 100755 graphics/unknown/unknown_DDCF04.bin create mode 100755 graphics/unknown/unknown_DDD704.bin create mode 100755 graphics/unknown/unknown_DDD908.bin create mode 100755 graphics/unknown/unknown_DDD920.bin create mode 100755 graphics/unknown/unknown_DDD938.bin create mode 100755 graphics/unknown/unknown_DDDB80.bin create mode 100755 graphics/unused/unused_DDCEE4.bin diff --git a/asm/trade.s b/asm/trade.s index f576be1222..bfca20a704 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -8105,11 +8105,11 @@ _0807B668: ldr r1, =0x00005206 movs r0, 0xC bl SetGpuReg - ldr r0, =gUnknown_08DD7300 + ldr r0, =gTradeGba2_Pal movs r1, 0x10 movs r2, 0x60 bl LoadPalette - ldr r3, =gUnknown_08DD7360 + ldr r3, =gTradeGba_Gfx ldr r4, =0x06004000 movs r5, 0xA1 lsls r5, 5 @@ -8168,7 +8168,7 @@ _0807B726: ldr r1, =0x80000800 str r1, [r0, 0x8] ldr r0, [r0, 0x8] - ldr r3, =gUnknown_08DD7360 + ldr r3, =gTradeGba_Gfx movs r4, 0xC0 lsls r4, 19 movs r5, 0xA1 @@ -8446,11 +8446,11 @@ _0807B9FC: ldr r1, =0x00005206 movs r0, 0xC bl SetGpuReg - ldr r0, =gUnknown_08DD7300 + ldr r0, =gTradeGba2_Pal movs r1, 0x10 movs r2, 0x60 bl LoadPalette - ldr r3, =gUnknown_08DD7360 + ldr r3, =gTradeGba_Gfx ldr r4, =0x06004000 movs r5, 0xA1 lsls r5, 5 diff --git a/data/graphics.s b/data/graphics.s index 9e15903f84..7cb4b0e540 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -4920,95 +4920,183 @@ gTilesetPalettes_General:: @ 8DD4E10 gTilesetTiles_General:: @ 8DD5010 .incbin "data/tilesets/primary/general/tiles.4bpp.lz" -@ 8DD72E0 - .incbin "baserom.gba", 0xdd72e0, 0x20 + @ trade/egg hatch -gUnknown_08DD7300:: @ 8DD7300 - .incbin "baserom.gba", 0xdd7300, 0x60 + .align 2 +gTradeGba_Pal:: @ 8DD72E0 + .incbin "graphics/link/gba.gbapal" -gUnknown_08DD7360:: @ 8DD7360 - .incbin "baserom.gba", 0xdd7360, 0x1420 + .align 2 +gTradeGba2_Pal:: @ 8DD7300 + .incbin "graphics/link/gba_pal2.gbapal" @ used for in-game trade GBA? -gUnknown_08DD8780:: @ 8DD8780 - .incbin "baserom.gba", 0xdd8780, 0x40 + .align 2 +gTradeGba_Gfx:: @ 8DD7360 + .incbin "graphics/link/gba.4bpp" -gUnknown_08DD87C0:: @ 8DD87C0 - .incbin "baserom.gba", 0xdd87c0, 0x720 + @ 8DD8760 + .space 0x20 @ blank palette?? -gUnknown_08DD8EE0:: @ 8DD8EE0 - .incbin "baserom.gba", 0xdd8ee0, 0x1a0 + @ berry fix program -gUnknown_08DD9080:: @ 8DD9080 - .incbin "baserom.gba", 0xdd9080, 0x60 + .align 2 +gBerryFixGameboy_Pal:: @ 8DD8780 + .incbin "graphics/berry_fix/gba_small.gbapal" -gUnknown_08DD90E0:: @ 8DD90E0 - .incbin "baserom.gba", 0xdd90e0, 0x638 + .align 2 +gBerryFixGameboy_Gfx:: @ 8DD87C0 + .incbin "graphics/berry_fix/gba_small.4bpp.lz" -gUnknown_08DD9718:: @ 8DD9718 - .incbin "baserom.gba", 0xdd9718, 0x15c + .align 2 +gBerryFixGameboy_Tilemap:: @ 8DD8EE0 + .incbin "graphics/berry_fix/gba_small.bin.lz" -gUnknown_08DD9874:: @ 8DD9874 - .incbin "baserom.gba", 0xdd9874, 0x40 + .align 2 +gBerryFixGameboyLogo_Pal:: @ 8DD9080 + .incbin "graphics/berry_fix/logo.gbapal" -gUnknown_08DD98B4:: @ 8DD98B4 - .incbin "baserom.gba", 0xdd98b4, 0x5a4 + .align 2 +gBerryFixGameboyLogo_Gfx:: @ 8DD90E0 + .incbin "graphics/berry_fix/logo.4bpp.lz" -gUnknown_08DD9E58:: @ 8DD9E58 - .incbin "baserom.gba", 0xdd9e58, 0x194 + .align 2 +gBerryFixGameboyLogo_Tilemap:: @ 8DD9718 + .incbin "graphics/berry_fix/logo.bin.lz" -gUnknown_08DD9FEC:: @ 8DD9FEC - .incbin "baserom.gba", 0xdd9fec, 0x40 + .align 2 +gBerryFixGbaTransfer_Pal:: @ 8DD9874 + .incbin "graphics/berry_fix/gba_transfer.gbapal" -gUnknown_08DDA02C:: @ 8DDA02C - .incbin "baserom.gba", 0xdda02c, 0x610 + .align 2 +gBerryFixGbaTransfer_Gfx:: @ 8DD98B4 + .incbin "graphics/berry_fix/gba_transfer.4bpp.lz" -gUnknown_08DDA63C:: @ 8DDA63C - .incbin "baserom.gba", 0xdda63c, 0x1c4 + .align 2 +gBerryFixGbaTransfer_Tilemap:: @ 8DD9E58 + .incbin "graphics/berry_fix/gba_transfer.bin.lz" -gUnknown_08DDA800:: @ 8DDA800 - .incbin "baserom.gba", 0xdda800, 0x40 + .align 2 +gBerryFixGbaTransferHighlight_Pal:: @ 8DD9FEC + .incbin "graphics/berry_fix/gba_transfer_highlight.gbapal" -gUnknown_08DDA840:: @ 8DDA840 - .incbin "baserom.gba", 0xdda840, 0x600 + .align 2 +gBerryFixGbaTransferHighlight_Gfx:: @ 8DDA02C + .incbin "graphics/berry_fix/gba_transfer_highlight.4bpp.lz" -gUnknown_08DDAE40:: @ 8DDAE40 - .incbin "baserom.gba", 0xddae40, 0x1a0 + .align 2 +gBerryFixGbaTransferHighlight_Tilemap:: @ 8DDA63C + .incbin "graphics/berry_fix/gba_transfer_highlight.bin.lz" -gUnknown_08DDAFE0:: @ 8DDAFE0 - .incbin "baserom.gba", 0xddafe0, 0x40 + .align 2 +gBerryFixGbaTransferError_Pal:: @ 8DDA800 + .incbin "graphics/berry_fix/gba_transfer_error.gbapal" -gUnknown_08DDB020:: @ 8DDB020 - .incbin "baserom.gba", 0xddb020, 0x2a4 + .align 2 +gBerryFixGbaTransferError_Gfx:: @ 8DDA840 + .incbin "graphics/berry_fix/gba_transfer_error.4bpp.lz" -gUnknown_08DDB2C4:: @ 8DDB2C4 - .incbin "baserom.gba", 0xddb2c4, 0x120 + .align 2 +gBerryFixGbaTransferError_Tilemap:: @ 8DDAE40 + .incbin "graphics/berry_fix/gba_transfer_error.bin.lz" + .align 2 +gBerryFixWindow_Pal:: @ 8DDAFE0 + .incbin "graphics/berry_fix/window.gbapal" + + .align 2 +gBerryFixWindow_Gfx:: @ 8DDB020 + .incbin "graphics/berry_fix/window.4bpp.lz" @ why the absurd length? + + .align 2 +gBerryFixWindow_Tilemap:: @ 8DDB2C4 + .incbin "graphics/berry_fix/window.bin.lz" + + @ more trade stuff? + + .align 2 gUnknown_08DDB3E4:: @ 8DDB3E4 - .incbin "baserom.gba", 0xddb3e4, 0x80 + .incbin "graphics/trade/menu.gbapal" + .align 2 +gUnknown_08DDB444:: @ 8DDB444 + .incbin "graphics/unknown/unknown_DDB444.gbapal" + + .align 2 gUnknown_08DDB464:: @ 8DDB464 - .incbin "baserom.gba", 0xddb464, 0x1aa0 + .incbin "graphics/trade/menu.4bpp" + .align 2 +gUnknown_08DDC6E4:: @ 8DDC6E4 + .incbin "graphics/trade/buttons.4bpp" + + .align 2 + .incbin "graphics/unused/unused_DDCEE4.bin" @ unused + + .align 2 gUnknown_08DDCF04:: @ 8DDCF04 - .incbin "baserom.gba", 0xddcf04, 0x800 + .incbin "graphics/unknown/unknown_DDCF04.bin" @ tilemap + .align 2 gUnknown_08DDD704:: @ 8DDD704 - .incbin "baserom.gba", 0xddd704, 0x24 + .incbin "graphics/unknown/unknown_DDD704.bin" @ textbox tilemap?? + .align 2 gUnknown_08DDD728:: @ 8DDD728 - .incbin "baserom.gba", 0xddd728, 0x20 + .incbin "graphics/interface/textbox.gbapal" @ textbox palette? + .align 2 gUnknown_08DDD748:: @ 8DDD748 - .incbin "baserom.gba", 0xddd748, 0x8c8 + .incbin "graphics/interface/textbox.4bpp" + .align 2 +gUnknown_08DDD908:: + .incbin "graphics/unknown/unknown_DDD908.bin.lz" + + .align 2 +gUnknown_08DDD920:: + .incbin "graphics/unknown/unknown_DDD920.bin.lz" + + .align 2 +gUnknown_08DDD938:: + .incbin "graphics/unknown/unknown_DDD938.bin.lz" + + .align 2 +gUnknown_08DDD950:: + .incbin "graphics/pokemon_storage/pss_window.gbapal" + + .align 2 +gUnknown_08DDD990:: + .incbin "graphics/pokemon_storage/pss_window.4bpp.lz" + + .align 2 +gUnknown_08DDDB80:: @ 8DDDB80 + .incbin "graphics/unknown/unknown_DDDB80.bin.lz" + + .align 2 +gUnknown_08DDDC8C:: + .incbin "graphics/pokemon_storage/pss_window2.gbapal" + + .align 2 +gUnknown_08DDDCCC:: + .incbin "graphics/pokemon_storage/pss_window2.4bpp.lz" + + .align 2 +gUnknown_08DDDEDC:: + .incbin "graphics/pokemon_storage/pss_window2.bin.lz" + + @ pokenav + + .align 2 gUnknown_08DDE010:: @ 8DDE010 - .incbin "baserom.gba", 0xdde010, 0x20 + .incbin "graphics/pokenav/ribbons.gbapal" + .align 2 gUnknown_08DDE030:: @ 8DDE030 - .incbin "baserom.gba", 0xdde030, 0xfc + .incbin "graphics/pokenav/ribbons.4bpp.lz" + .align 2 gUnknown_08DDE12C:: @ 8DDE12C - .incbin "baserom.gba", 0xdde12c, 0xcc + .incbin "graphics/pokenav/ribbons.bin.lz" .align 2 gMonIconPalettes:: @ 8DDE1F8 @@ -5027,7 +5115,7 @@ gTitleScreenEmeraldVersionPal:: @ 8DDE438 .align 2 gUnknown_08DDE458:: @ 8DDE458 - .incbin "baserom.gba", 0xdde458, 0x238 + .incbin "graphics/title_screen/title_screen1.bin.lz" gTitleScreenPokemonLogoGfx:: @ 8DDE690 .incbin "graphics/title_screen/pokemon_logo.8bpp.lz" @@ -5046,31 +5134,54 @@ gTitleScreenPressStartGfx:: @ 8DE03E8 .align 2 gUnknown_08DE0644:: @ 8DE0644 - .incbin "baserom.gba", 0xde0644, 0x184 + .incbin "graphics/title_screen/title_screen2.bin.lz" + @ more trainer card stuff + + .align 2 gUnknown_08DE07C8:: @ 8DE07C8 - .incbin "baserom.gba", 0xde07c8, 0x100 + .incbin "graphics/frontier_pass/tiles.gbapal" @ size in LoadPalette calls is reported as 0xD0 << 1, which is 0x1A0, but this is wrong? todo, investigate? (frontier pass pal) + .align 2 gUnknown_08DE08C8:: @ 8DE08C8 - .incbin "baserom.gba", 0xde08c8, 0x17bc + .incbin "graphics/frontier_pass/tiles.4bpp.lz" + .align 2 gUnknown_08DE2084:: @ 8DE2084 - .incbin "baserom.gba", 0xde2084, 0xfdc + .incbin "graphics/frontier_pass/tiles2.8bpp.lz" + .align 2 gUnknown_08DE3060:: @ 8DE3060 - .incbin "baserom.gba", 0xde3060, 0x2f0 + .incbin "graphics/frontier_pass/tiles.bin.lz" + .align 2 gUnknown_08DE3350:: @ 8DE3350 - .incbin "baserom.gba", 0xde3350, 0x24 + .incbin "graphics/frontier_pass/tilemap1.bin" + .align 2 gUnknown_08DE3374:: @ 8DE3374 - .incbin "baserom.gba", 0xde3374, 0x24 + .incbin "graphics/frontier_pass/tilemap2.bin" + @ berry crusher + + .align 2 gUnknown_08DE3398:: @ 8DE3398 - .incbin "baserom.gba", 0xde3398, 0x120 + .incbin "graphics/berry_crusher/tiles.gbapal" + .align 2 gUnknown_08DE34B8:: @ 8DE34B8 - .incbin "baserom.gba", 0xde34b8, 0xb1c + .incbin "graphics/berry_crusher/tiles.4bpp.lz" + .align 2 gUnknown_08DE3FD4:: @ 8DE3FD4 - .incbin "baserom.gba", 0xde3fd4 + .incbin "graphics/berry_crusher/tiles.bin.lz" + + @ random garbage at the end. why, game freak? + .space 0x54BAC + .byte 0x0D, 0x00, 0x58, 0x02 @ why? + @ E38BC8 + .space 0x1145 + .byte 0x02 @ whyyyyy? + .space 0x3242 + .byte 0x40 @ WHYYYYYYYY + .space 0x13 diff --git a/graphics/berry_crusher/tiles.bin b/graphics/berry_crusher/tiles.bin new file mode 100755 index 0000000000..c6cc0edb17 --- /dev/null +++ b/graphics/berry_crusher/tiles.bin @@ -0,0 +1 @@ +L@L@L@L@L@L@L@L@L@M@\@\@\@\@\@\@\@\@\@]@N@N@N@N@N@N@N@N@N@O@^@^@^@^@^@^@^@^@^@_@````````````````````nDm@m@m@m@m@m@m@m@m@~D}@}@}@}@}@}@}@}@}@d`````````d````````` \ No newline at end of file diff --git a/graphics/berry_crusher/tiles.pal b/graphics/berry_crusher/tiles.pal new file mode 100755 index 0000000000..13ea34e59e --- /dev/null +++ b/graphics/berry_crusher/tiles.pal @@ -0,0 +1,147 @@ +JASC-PAL +0100 +144 +98 172 180 +255 213 156 +255 197 139 +255 164 106 +238 131 82 +222 123 74 +213 98 49 +197 82 41 +156 213 189 +123 180 156 +222 156 255 +172 123 222 +255 0 255 +255 0 255 +230 230 255 +65 74 90 +156 148 172 +255 213 156 +255 197 139 +255 164 106 +238 131 82 +222 123 74 +213 98 49 +197 82 41 +255 238 0 +230 189 0 +180 180 180 +139 139 139 +255 0 255 +255 0 255 +230 230 255 +65 74 90 +156 148 172 +255 213 156 +255 197 139 +255 164 106 +238 131 82 +222 123 74 +213 98 49 +197 82 41 +197 213 246 +255 255 255 +238 238 246 +205 205 213 +255 0 255 +255 0 255 +230 230 255 +65 74 90 +255 180 255 +164 172 172 +98 106 115 +123 131 139 +139 148 156 +148 222 164 +156 189 222 +197 213 246 +180 164 115 +205 189 148 +213 205 172 +230 222 189 +246 238 205 +139 123 74 +74 131 189 +65 74 90 +0 0 0 +148 222 164 +164 230 172 +180 238 189 +197 246 205 +213 255 222 +238 255 238 +255 255 255 +65 180 238 +255 255 255 +0 197 57 +255 255 255 +246 213 0 +255 0 255 +246 238 205 +139 123 74 +255 164 106 +164 172 172 +98 106 115 +123 131 139 +139 148 156 +115 156 189 +156 189 222 +197 213 246 +180 164 115 +205 189 148 +213 205 172 +230 222 189 +246 238 205 +139 123 74 +74 131 189 +65 74 90 +0 0 0 +148 222 164 +164 230 172 +180 238 189 +197 246 205 +213 255 222 +238 255 238 +255 255 255 +189 65 255 +255 255 255 +123 123 123 +255 0 255 +246 238 205 +139 123 74 +180 189 189 +255 255 255 +0 0 255 +164 172 172 +98 106 115 +123 131 139 +139 148 156 +115 156 189 +156 189 222 +148 222 164 +180 164 115 +205 189 148 +213 205 172 +230 222 189 +246 238 205 +139 123 74 +74 131 189 +65 74 90 +98 172 180 +41 41 57 +213 213 222 +205 205 205 +238 238 238 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/berry_crusher/tiles.png b/graphics/berry_crusher/tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..6e43adb27bf0226c4d175b9dee89bb4b0566856b GIT binary patch literal 2151 zcmV-t2$=VYP)EpR z{W^eEN;EXWQ1TZ5-D$vpqCN71cJRnkgR`RD=yf4qQ9A2L1LwhmRw=7sUCqEq32T<^$WO->z$L7e zN+nwcuraXY@f6waHL~QIZ98@f6-8TH;6Rf?{1?z+h0mK}+r5TMu9ut);6fBdGJyIg zgqy6;9uokHOGk4-0f2wa1e;}qDO!g?5Y}MIp$-5h0m|NTNNmchPypEpLC{1A12sJ| z;0p#=VE#Z@!J%mZ2y1Bo1eyVqyz?CJ(6cRZ8X(~DMGD|Cc#u6W4LG+Pwqjyi;nX~i ziS14RwM4>Hgtp88vkWkGp7{geAsrNeaFqe5gnIO}|5x;c{9Bw4*0~n04ThidN}|H> z(QO8>sepdJA4MrZ>ARTcApS*7w}SxB;S%aO0O1dW6yQ<$22DFBl&`<(he(EuWv#ApPdTwaJ}e;EL~Gireeb=*p%-UlRxiu+j{ zN757lfC(NhP=*Pyq`?^ait*`WqeDd_>_;FI04z~iAf=SVV5A5ffd38vKypR^5Txf& z0dee#ePg5uqX9Li!T>Hu;N;<(aR3;Dw^A;n|4**V5oC5@I1T_Mc$LZ(0dU<486YBt z;{jGZ*S$g_pnyt6d`m;h7y-Z-8jUZJzyWT#Y)A%-;V1w|SY2Jcd(}-06%>a3l<}kl z)oPUhc&-MZpy4Y7m#&-!Fa>Eq0TuWvfr}ptU<^=!N|53|Iv!AXg9^Z^833sUX88c4 z&|qKp-D(zK82_OA-^K`lRQGqQSF?c03;;i6fU4cU@P}UC&;ov5^;R%2ON7x)0DE-Kwx0{w+4;TU zc_g=%b;dAoYg3y5P+BB+49 z4%eRpAOa}C(*i)iy=?(FodFO5as12^A`}2tfiHrP>Y&|G1aJZx0q`m$DUbkW8o&g| zge-uD0J)F=QLGAxc^-5Cw0oo&O!FfZkO)XbC;ILKVPm+iw)vj(Hok<8FF+?hTd)Sj8_IgBU~*LyiEP`l~q7VPYI> z7mC>zGPr>USd%udaF7Y(fOg#02g(42Yj6Z^Zt~_cL2y9yJQ@iw{;gK8Qw1D>4HXBF z?oBU&17_e1{A4o-6a*LOG`n<1fYd!83jNI z^bVl|)Zr4RCnSKv%cZ3(!QfeJ(X5UDfCPNI>H!`q&=Mp-;b;j72O0n*p~b)1b}j%2 z^cAlI)KS4EEwEgGQD9BNK^g!t5Cs7xwDSOlXjZa->!@HeU z8z*pvktQ7V72|+c*RF?jw>72B+Rg$*CS^c%TwClV#|{`j;>QN;3xE0sIVoUYULJoe zI1aG552o>_Z?EG3;7bH2ILRNqC&>>1d4PSfobc}{{&=CuSCF_T0Pep{{h?8^+#JB7 zKoNjHt2qQf z`h}Ts0IGob1OR`2JO*H~BLE-(f7wd_#iArZx;H3*y(9ttfZ>n;*gatsK)o+8fWsZc zJz-`vK-?DyV8$6HfaIQ_2P~@h1q8@RlkW-n0AB%I9;yIA&;wHUg)~6EC*%Os`vQE8 zO6AG-1TBC%Zp65su*KhfiSO}XP@XeQG6OCa_!|2P&LVu@{9w|C-eJZ89RYYsUVTFV z6rqgWO2u)=br&2-kEjJ~>~*o_#TI{e>wA249?A-i2lN0Ca{y@w4^O0E;{`~Emnq&6 zD4=;V1w8~r2xv1vcp?QGU8sd!Xfp7QKmg6wi4^p@Pz&gYtv>;T(Mc3+bYH|OpxKHJ z@poKaG&+Fz*^mG_0?-x!+a4FtlL65?D3Abk2{5*TjV`T1aQwFZE(#dnEdsoEQP87+ zqclLH06%j9gFg{a*D7G!xyQD1PXTOn8Q^o+gOJ5CEk5NxW^~U?W(nX193*geDAVFY z0Wu)-Ob>YN{Z9q2z4|c<#DDv4L(Um- zA$prNz2=fDu6=G8i`u)u?>5+LX6hSxv!Ia^UcXRpA(?u)dRICmk5Rt{`@2^UA$jue MAHAXt{O1iU0pYAW?f?J) literal 0 HcmV?d00001 diff --git a/graphics/berry_fix/gba_small.pal b/graphics/berry_fix/gba_small.pal new file mode 100755 index 0000000000..0e177217f5 --- /dev/null +++ b/graphics/berry_fix/gba_small.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +255 255 255 +32 32 32 +172 172 172 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +164 213 90 +238 230 197 +148 197 213 +32 57 98 +106 148 197 +90 106 156 +255 255 255 +164 213 90 +32 32 32 +123 123 205 +255 255 255 +74 74 115 +197 197 197 +98 98 189 +106 106 197 +98 123 57 +131 131 131 +222 41 0 +189 123 41 +180 180 222 +0 0 0 +0 0 0 diff --git a/graphics/berry_fix/gba_small.png b/graphics/berry_fix/gba_small.png new file mode 100755 index 0000000000000000000000000000000000000000..3bf1f3e36125e66567ebd606ab6c8830fd83e7b2 GIT binary patch literal 982 zcmV;{11bE8P)8nu5P+Dq(c4>ld&CBFLBk<{k$KS9x>C3;}AO zgEJLSm&|^H0DhO=k)nQGJIK_59}qj1sE^0HlPJ#vNR1_>J^fE>!3f!qrMgexYY!Vj zDGj`a1PtdwJW&luK5fVu8wTXhKFOA}#FR88T_J9ScoxVMB<)ut+195*KEL4S9tlLU zUKf$HiIKF6A*&TVRfhC8{52%oG<~h)1SRS*m#lOQS|E`$O@G%V+s#RkzS>_cDXWqA zl)`d_QVYh0j4dwJ;*POG0_O>7Z+r+MwGup5$;ncPE6$Z-h>3-jB`u|Nw%G+7$NMNbh-;^ep{OiM#`4l9J!PQ7qC75?G3xPe_Rfi=~OPV>+ z)q8*+Q_?J7A?fH7nPea^_f?5Lxil*=Cu3cXXgr+vw0AJulWWL!G>*n_aaj_LD-!r= zC0W5j%6S-urIO(#M$-Qxr^yeHKxPXp-a6n%O%a6padVv)=~$; zz#jE5+`HoN5W}14;DDsIr_?1G$0RxL zlfVaJ_uu9EDZ&1*CDcGQ_Q`Ur#JrOvzIG(Rm5$d*xn6(4St#oSNt$%K^C~y>P)FRKgSI= zx7?AZz&%CHH>Jui@j#i1OO+aR%{QgWZ}7;I=QnxgMe|Lm@?UB3Mw<>@dh{7+zA06{ zWXOnjmoXE~c3${+y6;P-!sqZ$`1@-8t8o04Scl}x(Zxo{kjx_g4EpyWK11^DzJD}D J9r({3*aE05IDh~E literal 0 HcmV?d00001 diff --git a/graphics/berry_fix/gba_transfer.pal b/graphics/berry_fix/gba_transfer.pal new file mode 100755 index 0000000000..0e177217f5 --- /dev/null +++ b/graphics/berry_fix/gba_transfer.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +255 255 255 +32 32 32 +172 172 172 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +164 213 90 +238 230 197 +148 197 213 +32 57 98 +106 148 197 +90 106 156 +255 255 255 +164 213 90 +32 32 32 +123 123 205 +255 255 255 +74 74 115 +197 197 197 +98 98 189 +106 106 197 +98 123 57 +131 131 131 +222 41 0 +189 123 41 +180 180 222 +0 0 0 +0 0 0 diff --git a/graphics/berry_fix/gba_transfer.png b/graphics/berry_fix/gba_transfer.png new file mode 100755 index 0000000000000000000000000000000000000000..9b7eb5571f9aae6e1955563fe8737f086316ae37 GIT binary patch literal 900 zcmV-~1AF|5P)8nu5P@u>?~as2{Wx2v>H}iOy3fbsk*35L5OlETe2nkR6F&UtwNft}@Pv<3DGZf* zQ0i3ymGE&QtNP|{ygoiQIgDb5;7)mL>)#G4Pdm)T5jPdD;m#ivbaA#=vDX-xP zBg)>0dqOy(>Tj9?^y^^zR|v86VM?W(<5CUpy9Fs1N@3H7rdu#S;WZ_JCjPxCEU90h zC0Sca_$3s%q^3VFA`&KxmVky3dJ_eq6L=-yH2DPz^Gz0nuVw;8*9CZS!Z;Y*eg*qc>652Ijr8GAu%oMJdCltZG?X(RhG_~n+z8(9*bXgPNqZ1}yb(;MGVYS57 zw!+19i5Y$~A%$G%hYZ(h`eR)QltHI#BG({nBU*;px}HH;VYZ%=fHl-Jpdb`=iG)@S zC@e)Ov}-`28oLcB)nU3?4UL0zzg6m0Ov+z{yWv|)D}u)^uY=6dUn_Jf^(JGHHl=ZpsIfP^;?Hr;V6 z0BqbD_Jra?@Fll@4yYz7?>1cm-Y-fa&;OJ{?FdBhP6xB0ApCdqZw4elFvkE2D8hBy zFkdLr<4~|xLhNqM4pxr@zd(czJ-2k{gc8;TE!^=XD;w1WSL<3mL}vx1A}hS*L_5RK z3HccTpB>=gBErprw1w*;!#k}>OTcG`PX$~>JA@Nx=YGb2BJ}k1^z`)f^z`)f^z`)n a1O5W9H$^B_5+{%V0000Ho4zDX>wbQ z4rG%Y9x-BGaBiwFDKGg$f}yx8$X{D@oO3}{beo$#M8*1PGORP< zizypGR`j`2>u-^#K#^^B*kzA>;k#1nA9F&9vQLFm&V=tutzVnj7J}QtLOk zrAdoB+H~l0FML;Oea!=pJo!BHB5X7F;Pkhz>8T~Fe_~m;=e)!CpK276ccZJZ(jnW}ize`&C-4pIUq594 literal 0 HcmV?d00001 diff --git a/graphics/berry_fix/gba_transfer_error.pal b/graphics/berry_fix/gba_transfer_error.pal new file mode 100755 index 0000000000..0e177217f5 --- /dev/null +++ b/graphics/berry_fix/gba_transfer_error.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +255 255 255 +32 32 32 +172 172 172 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +164 213 90 +238 230 197 +148 197 213 +32 57 98 +106 148 197 +90 106 156 +255 255 255 +164 213 90 +32 32 32 +123 123 205 +255 255 255 +74 74 115 +197 197 197 +98 98 189 +106 106 197 +98 123 57 +131 131 131 +222 41 0 +189 123 41 +180 180 222 +0 0 0 +0 0 0 diff --git a/graphics/berry_fix/gba_transfer_error.png b/graphics/berry_fix/gba_transfer_error.png new file mode 100755 index 0000000000000000000000000000000000000000..d8db4bfb95fe8872f799b3f7589ee8efbc8e5064 GIT binary patch literal 1014 zcmV8nu5Xbon)@Ia;=#Rufr!clNtAf$Fs$akk2qR+xn0s6xT;$UGoM7{4Tu@N}^=BXoqh413_%xPyag}kCKD{wQ97Ha)|$h2fX>w3$33d$OGQ? zIWW-rR_kXCDuA~=i2-of?aB@=&VUSSYVaMpVV>={hPIS#zPJjwRRq=s>aqY@!CGzX zLt5cZLJpgI|Cc7Z{pZm<;hy=!I?1t4B|NcSdIhX&B71<*THV~5Jh%W0G(IY zPXL1(OQnpk$V_j0vgqsq49+RjNP0kLzkg*8!1g(<fz`YyvKBD&eA!i?PYob|8z*Ro zyv9^P@e`^=;A(mT!1cBrAPYc3`09h1r__h`v%P{%D+95Lr{*>lxHrM_7`TcT0IWhP zGFYz1H&a~&#)}C6xV-=z*Py9m0K76V);OaDkSGWEqqgBmV~`;@7v8V}FiJ|mC=vd+ ze+2->>M{emql6st1B0_V`n)IrbnuTHZOM31aqtc;09ZrC!4m?!_r>oMV`RDmi7vID(ioGu;3v3o zF@SMOLxp6z!y6j`NpTqQNy1_GNF;z0uH0j8%L_>PTLy5#8acovJPE+%!`iR|c88bz zOY7Z%{)Df;1`dZ`rvQHH9}XOZPgQ`00R#{%1K%0Q>@igtaLNE$+CKqxqK(@ZG8Gr@UI}99fI04{$6ufAK*u;9^B6E0Y)dKh)^+y2TfH(yJ)ET#Q3=3daR48hDnRoH0308s*4K6oC-?-Q*h8HLihDw%MvWRZ kYSgGvqehJyHTrM*4eXe#uL5B9j{pDw07*qoM6N<$f>v>6l~ggT5c#vrG0y^vEV0ZAtA<~}O)Hka#yT5phHSCTj^WpE)0*Y)vPYxm zH)+u}{5o!0xBPt$IOK?9PB`U^bHn#>Q{VC>7hG}`a?OolOF9Hr8mNxrOKycm|C(O) pezg83-Tr@w&xAa5b@3%+LLO6p1p0R;?i2D9{(m~99r({3_y#vNMFRi; literal 0 HcmV?d00001 diff --git a/graphics/berry_fix/gba_transfer_highlight.pal b/graphics/berry_fix/gba_transfer_highlight.pal new file mode 100755 index 0000000000..0e177217f5 --- /dev/null +++ b/graphics/berry_fix/gba_transfer_highlight.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +0 0 0 +255 255 255 +32 32 32 +172 172 172 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +164 213 90 +238 230 197 +148 197 213 +32 57 98 +106 148 197 +90 106 156 +255 255 255 +164 213 90 +32 32 32 +123 123 205 +255 255 255 +74 74 115 +197 197 197 +98 98 189 +106 106 197 +98 123 57 +131 131 131 +222 41 0 +189 123 41 +180 180 222 +0 0 0 +0 0 0 diff --git a/graphics/berry_fix/gba_transfer_highlight.png b/graphics/berry_fix/gba_transfer_highlight.png new file mode 100755 index 0000000000000000000000000000000000000000..9fb9b6a48b22e6c9de50ab571dbccc21b1313058 GIT binary patch literal 1060 zcmV+<1l#+GP)Qay257S-13-qiw_=9f)&oRT@z8=stl&!qPNLj)Ln$r^>V>HT zF1?=v*at|k4wq8ir6~c8_#!L`deTkP^pg&j`gsACH)R6c(!9Z0Jc19cZ5e3DY3Kok z1WRGmcR+jXqN|nYX`^Sc06@P)c7_#=)t;aalwoJ;gSw^G^VsN0Ysmmv;JUSrJ!u{E zl#18_*IkGM;hqVy(d;0C%<#rkk^@xyohA!I;p71F**K#aym$#{o>2uCJ^=k%VT=p0 zKqs{dV2=rC7z5q=Dv+jQDWU0HsjdS03;dosfQrBN0q}7%p`HPnEGl5YUMJM}mvQ8P z!MFe*5y$G0m!)X{;Q=QIj2;&Zyy^j%XMmg}7U)yM8u!P5+0+2@%e%2W0H`S~8UVQm z1DsM_2y7X+l(=RG0NgxF?)YH<%K%_FDFFh)gO6&uK$l+ufc9P#fizCX>S2KzF%_SWH`YL-|hCV0+d0~k%Gsc0fxm4F#~vjF7MS7?@2#{1>gv73Z)d~ zxIT~p5AmkxF%ier4D53$3}H8|Q!yKyavhPTolYkQirK;-fnbs#lO!fXTmU*r3SmH! zPU@Z@0Nk}$vT(|~d)9XsYcb4Epi*#R*sJ;G+C^`;a-|;eM6s89Tow#>*9*QL;8fV! zryLpK6mO{g8ZI?U*xo9(kOOTdddi6`{@M|MuP9Ir1>w`1e<>0G!94~LKoGv? zhWUU^k5j=~#qs<~&tdfl@C~Bq;5SQm3~&k#39HIBKNqf1W#MXlfX#LkkTMF-56c(psK*R&9LSNr!0J@dKbV|RjXF5 eTD5BZBmD-zc&>NrJyOX40000kHoj2w|SyqOFh4<+*;DB>zBLIwcoxr=|}w!6D18x+*SIkV3H3jTE|aBY`YBLe)T!b}C4qD_0HF zh2kbqgf0pS7I&6{cH>7F5Wk?9Kxmt3V&;YZ1K%@ADik+`DY&=~WM(+`-shfs?%YW% zMueR2b75*~YD1~N*0AWKoU4bw*lAIL3YC-MdVTk-#Pz7fZ~OG5dXGrlW00+89*y|r zN%3w(;yweh^8bjB)I4-+X)!C#Tvo)%iRBa|;W)g;9cND4r{_c;rtiquktC3{T-Qy* z-EJlE0hNyJCjqRAc)b10;IDX|fsz0eV}~R6WRj6DGQ#VENV*XeszJ`GqA#Y$udvO} z-~q5{`=fB(S&BRE3by`=wGU=78(bde zJ(LE-ZkJh#60==*s(A8hAZ~QS1B`$fl@V|OEeo3(Vj@ZGqseOdGaY>Ei7WW!p~6`* zTn_6hc2^g;7H$cGTz(+t>O=85w~PC#1&lL!Eq+(-;u(uA#V*rZ?uoTidz*ts)K+~V z_HQrT{ZO2fL|+`|Gl^qj`@q6y%mn$C?$=ilO@uqnN%GyR;ryZahSy!#;%uo}tt5|1 zlKHe%tJQLndhEK3Y>#n3F}U1l>VV@@!7tmX55q|)_WYE-*%bG`4^fHHN^9vTu16?d z6AL@H!+jbXe1jtqw=PwXz1N-SiTnR^QHW6ktnZHZibv+&u#z!002ovPDHLkV1lw#j`#oo literal 0 HcmV?d00001 diff --git a/graphics/berry_fix/window.bin b/graphics/berry_fix/window.bin new file mode 100755 index 0000000000000000000000000000000000000000..cbbfd7ebcc3ec8a35f19d4c6b4e66593b73789ee GIT binary patch literal 2048 zcmeH`!47~h2t#3$h2#GJYaJT1#GB8Z6q;~r+O(iuF=Py9YhS}JQUPo@KlL|JfcA{< vca6y}UIEN6|Ga@U`M=X=?M34j_Jy?Ec4Nd(9E?BP5)2G{!44-|GG@w>s0$cf7acXxNU!W|0N4X%HNOovKk z$P7iLPu1PL`ug7YUROK78H5X5;Rbhjz!P5Zh7Wu(9WyW!4n}6d5y?owMr^`nY{5lb z!ev+<2l&As0SH78f)RpHgdrReh{SBn!Q4N79-NSiJRHO!9L5nmz(YJTd=#P)V<)jF zw6hX}IK&%16=^6%nT?bq9kqZQb5JG{$#y#HU`(*H4^@F}11IbZN4U-32H@Gaks_-fR^-u~-QXL`>M{K!xI%rE@P rZ~V?5{K;ReM}zVGw?pW#lTLJ+?5%a7+wjBxm+@803&tmhmBs%CEN<-L literal 0 HcmV?d00001 diff --git a/graphics/frontier_pass/tiles.pal b/graphics/frontier_pass/tiles.pal new file mode 100755 index 0000000000..2bfcff098b --- /dev/null +++ b/graphics/frontier_pass/tiles.pal @@ -0,0 +1,131 @@ +JASC-PAL +0100 +128 +57 74 74 +255 255 255 +205 205 205 +164 164 164 +123 123 123 +98 98 115 +57 74 74 +230 246 255 +98 41 65 +255 255 230 +230 230 197 +255 32 32 +98 164 222 +82 139 197 +74 115 172 +74 98 106 +139 98 115 +255 255 255 +230 255 222 +164 164 164 +123 123 123 +98 98 115 +41 57 65 +57 106 139 +65 139 197 +180 230 156 +148 238 131 +131 222 115 +82 172 74 +106 189 255 +205 205 205 +0 0 0 +139 98 115 +238 255 246 +213 238 230 +164 164 164 +123 123 123 +98 98 115 +41 57 65 +57 106 139 +65 139 197 +189 213 205 +148 180 164 +106 148 123 +65 115 90 +106 189 255 +205 205 205 +0 0 0 +139 98 115 +255 246 230 +246 230 213 +205 156 90 +180 131 65 +98 98 115 +41 57 65 +57 106 139 +65 139 197 +230 189 139 +205 156 115 +180 131 82 +156 106 41 +106 189 255 +205 205 205 +0 0 0 +139 98 115 +246 246 255 +230 230 238 +189 189 197 +156 156 156 +156 106 41 +41 57 65 +57 106 139 +65 139 197 +230 230 238 +189 189 197 +156 156 156 +123 123 123 +106 189 255 +205 205 205 +0 0 0 +139 98 115 +246 246 222 +246 238 172 +164 164 164 +123 123 123 +98 98 115 +41 57 65 +57 106 139 +65 139 197 +246 230 139 +230 213 49 +213 197 57 +156 115 57 +106 189 255 +205 205 205 +0 0 0 +0 0 0 +106 131 238 +139 164 213 +189 205 205 +213 197 131 +246 222 164 +172 131 131 +148 98 106 +115 106 148 +106 123 197 +197 230 230 +139 189 131 +106 156 74 +148 222 189 +238 156 131 +238 246 255 +0 0 0 +123 148 189 +65 74 106 +106 98 115 +82 90 180 +139 123 139 +164 172 189 +106 148 131 +180 205 213 +156 156 156 +213 238 230 +255 255 255 +213 180 172 +222 230 238 +213 205 156 +0 0 0 diff --git a/graphics/frontier_pass/tiles.png b/graphics/frontier_pass/tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..520c34b3dd9716fbe9b1632a26830aeb4241945a GIT binary patch literal 4011 zcmX9>c{J4h_kVw83>wCuv1Kj$k|o&^#=d7T<3W}gB#G=h^`Y!VQcogFLb6063^IgL z2#H6MLCF@A6dp7`&+q%kJ@<89=XLJup4T7uoSRNKV~#-|K?49VmKG)s2OS0g0xZY_ zls@5o`=F^3Y>1{hR#r?Vb8v95tgI|9F3!s(9v#SDX6<%Y$JR>4P}l~sY@Md`gDtC$ zR&gk%G39y2O{4sm5!Gp$X%`j$EXgDls0K><3uj;9Hyhn_Q+s0;l5nS@N})9U-fL#W z*}okB$W=?0?W@^lbbO1M*;;LzsGD!|r9J#NzE!+KQ?)R)rMzYKyTm; z15+s)i5!lSb^&rDhjFm3^nyfq*#MF%STfcNQ3HUkTWReFdQYfiNx({T)EC}BQshp? zVFIrlS@tyIi!Ydjf;l{P%*N0|%PnUU-IfEAL;0XkQJ9i4GERCvKf>xD%1OxV*{~v2 zUCe!3ro;HCT-Ef2CHw>U^#bsYPY8FF8QBMv-j*3Kvt2XCCkZ0*uM0%?9)U4Oo@#^t za5B-)OBtUV&SXL*pM*)VwNCEGyDO}!>vP4XxPYLFCc5F*8DYYQaDUe(3(YflPB2CJ z6vzsinA?voO>r=f2|J+JB#z4RUWAHjq2GTe!-c{h^b@hG3Pe#@VUj^2Op!>cT7J-C zEwWpU#6x^=m-JwOL`%tf7B8|ozh7102922y(Gl;99?TdFOZ7(=uFagk8BRy6PAj~Ppk>?m zM|%zywZ5yITq&#jNTMmXYt_g#Dg3ila0LN(WP>^(2vlO&}gQ$dM1Z>h^iXrSbKMAsvibr@gDGZm<{meSS5!)!Jz8XJ2$@6AL zh+IgD4&8?%oG1z4*74PlE_+n|xE@%Imk@JqN91z_z5u0NAI$lBUbdyKwQJ%}hzeQW zC-{@N?Lu51HS)vbmQAL7FQjvIa?9dAH=mwLPDR1yDw@@%50Af?U~l=huXyO4X7ntj zRZFJ%;uK;8kLx_Slq%p!JUu0u*%>s^7}(*e#LZ#y!#a1ZvpduEEvrFFY4e2!{$Yf@ zEh`%E+q{e9hZ?TKm8{?%;ID0@U8@Zqffl7fO?USmW)ZH|xgtfe)wd#m#yKG7T4sqpuM%eAgDg0gjsXOb$q7t36bovq45a*S7Mpb6(7RK?pIx1 zZQ5Xt+xx1CaJtlnBP*)H(`efSK*D4A?jo)uSxZ8KnSARv$oYUSIT9qo4n8C8?O6?; zgf5&-1c2`UHT~?OG8XN&F+%8SwL%5e{oUJJ%1qWL1JfOrAhx(Yr=1^X$!iXenG-~b zzZ8hZk3W&tO0&N`*%*25fD$yrpvN0tt#ao*K(l~*n_QoxAtJ)bunf;|UdQ408PLx} z3&XG#@^Rq#EiEaJ0J#TGZTf=59<(5-W4?Q}k2w z=xSBCaW%C3SSS>GQ^$~9BFDleX3pvAVOm;}Q%+0ywSyXSNCd+QTz86H#$`3cPqrVE zL03r=>(7-plv5k#91PK{P?Hlk$ir4O(--b!%w1w{lU!H{p=*w#7ZZ6c;JInch+%Fb zDboZ3^Z27e7s@wSDqDJW6DQdQ`D)Jn`Yh*&^7P2n5>Sayj!>TcYh)<>j<5U=wMT$Z z-|F1HdG3enx27TKJp~8x0C{h#FIQ>OM^zkAgw66&w^gM`WxjJI!%lcCQQ=$;LSHsg zx&H*>?+kGB5TFU7W{5jk^f6kbD6Dd*WHHX?80^JU=%?tcI!KU{dUwr8UHy39__GLc zr4I@9?1=LNSwdypSC$x)GXWV_YiS@-QHgw>gDcs_-Z1BwQ{rB9={AZKNc7vSJ@tL!)vx{BTz}8aq%HR`82lMH%17jG-HNJ zniWj|zs7AV5w|NIk)H*m3=E5)Pq@qm_n$bp5(H?w?rOl0injn4*KDz2f&mMGThlPq z=34@dH>0}zn}fcLiw7(J5DVyhpTH?8KwC$eBWX-YES9l9+>4C=*z^lAUQ3<^e#vu9 z>wLr9=`%VdUyp1yb2)eNb{#c_7G+PnkL#!2qk1Ggwo zEDX~x7{32lj4|0V(-i6x9(t%Hy+qxOWik2cv!CnonO*ufwcy^`fA)KVDOdB8m)j`BF5gX9H5HFReUX?Xm>$R+Oq{c`_FyztVJd z!_a*qH#a6%L2wG!@3R^1FXFgGCvN+`Y}3-B>;3&_>+Av%2UUegg^dnW^jSKYoqdu3SKd-W@>2R+N{G5I z?|UD{yP*{CzJlFupzWW}PKX-J*&5UxTZ&QdXoVQ~96+-RUqsS!CRsy3-QJ+siAnLLNcpWlwG;Kzyu^aE> zjK$)klC0@}c6eBn06F_yVG92XOW6w5*=s$#tu_#Z$(QJ8jvLJAbS0yW{G76keKF zMgew5T1m`va?yxPEmq?@PY0$$*s-`FH1_v!?b%#&4=JKF@>tg60>7~r^>yvKvwS$fW(&?oP@-hc*h}B~jrvbu;X2=cpCa;nbN}as ze8i2bxnS50eM=cnQ7cX^;IN_gf>!UoypP!FDT|KEO+RInJQs*42i&=Xu8j+=w!;a< zFYU}QTP=Jo5cg1w)Aq1&>p=LBTzt;N);qzDhW4crk?2bUtYdtfZBWeAk5IY0JKjSU zs|eZ!WA$*-2dxi~2I{?T0L^+gd~R7JHXfm8`R8b`uZ_BDr;zJI#II`@iSfIGSJ0l* zZT|0MU*{q5QYSRNf`8B-ZzphqLoDk9=b0Jv`AC3Cgdab)VDa|~MkDeu@RNr|)&&da zQ}T62%*BTz&;Rze9%_FemSUh;8qAHo^6h5jme!22jeu%cL zxuw*Fk9nhm@`B+AI{({l1vxz_@zb&BzKR&eBKOMYeedb}Ns+R!6j*UPJ|jt24e3#f zq-l=@1=p%>Kj&a5g(sb&^XyW7VOP^a7G=HfC%IQ~aJN&}9YhHQ{gpPJzUF!B90^rk z$WlT4e3C@wy2;E#g~kMckfdS>NN67>*bGUjpSP!7F2DH;c#frGLB^HW5AKX zHa3SRHO5Lj?oiu4iO>$~g-$9W;`iI_LgmT8AY18{MWVrBIR?k}AHFdeL1fgS`qVAB z4+yt+vSv7<9z0Wqiv{e7hN;$Ftdps|D72 zCJy^m(tc9I+~!_kN@=_Qfzd`IT(oBtKf*_RWe5Xm&ncevO{H;?hVvHf6Um%&D8iwT zE=6vlgrL!V#PZ5ex3Al?SzV=**!V>E3~d`tXou;waoc3wxR=7(#%5OK`aNNXa7$W$T2P% zp*Zx%3ooMmt6nqK5~e4e2wNNlJ~8f5zG#v3d<91Pnhl@!D|FRC3hE@fh+^e`_9lrJ zYsmTsem1z4K6C|bg{p3kw@T?bGsOAwedgYYpnWQ6#cJYvCky{HeMfep{dTW{ar6tmmRA{VI~}2HwygY_ zCdHXsXf3C0W=F%Sm|{E=?z)53hqYU(iwW9&=$X#HF1=2_e5LNw%{%*lxXLMRj9p#a zpR^#^ji!z1>wC_#x;M9dEGN(WY+Tw1>TOMDL~IT4uz-_YEvf&zL+h HA}9SHC%H7n literal 0 HcmV?d00001 diff --git a/graphics/frontier_pass/tiles2.png b/graphics/frontier_pass/tiles2.png new file mode 100755 index 0000000000000000000000000000000000000000..6bd420a8dfaafa89dff5ab4ff3f2216661f9b2d2 GIT binary patch literal 2765 zcmZXW4K&kjAIGo%#*lfvi;>nUuc5qE7BNMdyrl>!BUz@r4bjr3xud4MM4^?XNp5s| zPcN%+TSX?_HBt=GR9HopLjPyabIx-=_jB&+oa_3X^E;pO`+dK^>zwOcXMDZg)t2Zl z0RX5Gcewh=BSXI9l#%jtBq3`U0Epr1xyKFf;Q_<2P$=YbxilIrJe(@eNMvxhnF|a{ zBoYCP!-aFjek_3pwb~<`!V0I#c?m53i#Nl&;3+H@mY`9>E|4;rVya)Y2Zi_Vn(|(9 zUJA=ZQprDgo=8~G$fXp}T&Tf+=V6&dCJ_nQ!HrB8xt_o3OL#0Ho7%|qV^hrj&dX$S zp;8`Cz?LtH+5hJ^FqqF6mN<(emkYk6t;FA1nsv zmlCu|8!x~4ZMV%xVfO2qix!_l>5Jc{W@ct;;JKOdW;K2v>xemHz5gex!NVs)!(KSg zf9!jNIZ+vTueCw&txyq&>IWC4eH-JgL3zPcuVFAcH)fC8XYGBR z6iEw2aJ=-a!teTM`aJ4+bR69Nm|WFaf46YL7&HPLJo;V>9dV`U3cu}S><=eJPPAH8 zQcg57ZKd;S*H_-Jp_}U%Kr=#gC<;w*0AnYIEz?>!uA5PyHcA;s^t#(#WXVWQF3GqM z^|2`#cxZ4|8~5tP0n`K(cp^|Cq%t7L8rsA~HwHJAY<<~qtoGdk5&|!+6|VleY>5WemGJ1Oy=1pWO3>6(Ppt86hg?h^diQCB^VlAqc0{!WJd*Dg<1_)o;SAzxJ zcFhQ%IRn)7rf%qFD@0N^0B^;{U`NGV7V!4zLcZT;@4x-+(U%6Ga{n)kfNgrcTUXpQ z0)xZZkf(U^0IJa%lj(Cri4((Zw?lJo=@Fh9?c5drXRsoy0F-@|p75q7y-}nr?rc)_ zHUMW?D@QGN1wT(4u2GsEa)*HxbycZj6R{I*pV- zHI!hthRHc4s*DOgi1Vj+Gj>FIc0q&@BFJ?EW1&jFl&|(NGuH-BpVJ(S&^SS^kT|%! z8sIc~k$e;wqZxt|W*rw!BQ|7np{37_kWaOJ4bgyMtnSrD9vn7R96p!$ybpjF{a(`n zYGjE^q~;q-Okgpphza;U87umd+>nvL7~rmdnMLo~b%XTE6b>;p`2(0Lyig`~W1fVU zV(qo+_f9188*mUmaMlpC7l6-xia-q{DuOuD@3FcC$V7T=b^ftXZ3yk&KmV+xy1v!9n~y$KQU^kv#g8GHdQZ%+sl31h7b_5uiiTbe9|$Ai&sudr**zyD zgE*~%bn7OlbG*UJ&Tgr`0`L-QmHBP20J)}Df<$~X&D-?47o_KWwGj*p=p>cV>Ob<@2M9x*-Y53u*l;K)xy# z;7v5OHDfqi7)@VyTBhwNFP|Bo&&g|0-L>g;#P(yOtMs%G-i!dy2r;}jFygO<)$b)K z#lAK_OP$P$kX|4pC>IgerZ?RC8i2hKScz&O9@%5z#?D;mF;s!fK85&;`aeCtoDq1@ zU)hEI>B~W5{12~rD3$aMYm(E8g%x3Lp+&Dvs9?cns&ce z8FS2*U-xOu>?uV#0P4cLQX96lbT#msY94Annlk|-Rdr$y)ThpuiQv;$-#u=?&lfG) zAC-);qiv<*`mb(b&$XK>aasSNr_Rv&@$a7 zp6!f%ePL5qY2l~_)}SV1%YmGMr~J&hWqo~blonG#A5gAXp?I4-kvFf`A~sNf^MxDm zx_YLu&wAH{Rztd{lqT}-VdexMHJbJKZzlNBOIBTKb3O}czc@3rx_YRKUru`5jTeiq z)*TEANC)qYy~-9sZv$ZxSG#Bp>LTe@kaJd%|yVNP28NdDI90 zs)NwfAw5TruPsgAwsAN8WQs3R5Oq(WWjp)f%+MbUbj#Rytl>lUDPCc1Lg8nfiPiwb zsRf%QvVgXI!AfhzG5&-n{OnU}3a#!Jw$8#u&80pnbLD7*dPfzVsM<@A ze%(P1Nlzijv4WHPg}z2rTP@BwV=&XN=vn%u$&_O{b93%yd#cZkuMNEAj_qOWeSnOg zF&YWO2gYXlC}Hd=(GAxgCUZ=(r=EyC1EbF-Q#iRFO(s{4bF%j)N4jJ=A7G`@ZB;&e z=jng`bNs9Gjf{oKQYzUn=kSu$j(zG6$@4MKQax5Z)P;NtD(|P{ooS8^I`%Ai3&(W7 zWyL!;vFb#2#QgzRhnRPk)mz1(ITkY8xNC||EoJGtjgO3JW9`4&-mM}ZP@&z&1{sis zEzTVaBqvrKIVq?cE_~RwKdl*?nvu?OC(yzM5^c^0VC+k)OhEQs+ZbBcc$X;j+(={}{A>N+EPJR2KY jn=+p-oY$>65Dg>L`={&=EtJvaUn4+t^LD+pm2~P~mJSQy literal 0 HcmV?d00001 diff --git a/graphics/interface/textbox.png b/graphics/interface/textbox.png new file mode 100755 index 0000000000000000000000000000000000000000..ed8cd92ee2007a7de1f8e2a1f5981fb7275cda00 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^1whQf!VDxY?@zk|qznRlLR^c_F8Tlee^OG?)vITp zad7J9XCaSV}|nw)Te zx#IoaYTiZX84m6%&)0tt>}}s$evrjT!S8XbPj7kW#S_)vWjm_MtIb8;)P8^Wj#bIz vUM>5zAHR5H-Y~yXiF+*9a_n-82@`|tu?ds9PGx@u8qVP9>gTe~DWM4f@P}70 literal 0 HcmV?d00001 diff --git a/graphics/link/gba.png b/graphics/link/gba.png new file mode 100755 index 0000000000000000000000000000000000000000..1a0909468706eedb5c963c6f6e3bed503b0878f5 GIT binary patch literal 1253 zcmVt&6oy%{%b>_`lob0+TR^tPZnhAkiQKTrK$A4wLN=qgQNgTfRxUh| z5jQI2T^hAKp0VB_euaGnWe;v7NCKiZ>2{Aj6N$$8@Sh(S0`a^?B#vmd^SmizhmA)* zG(?VoKgAt@B$?5uOvqG}4+6TV>u3Oygi`bcp`OgU(*1Pen#yN`ay0&sfDl3fmgVSOOt2%)KEj`wAml9t z`vUS`3Ip&13i9uTRl%of0`F5o*858Ul5&CW56Dcw3giCI08Y6FqaO!w0a}6pq?j9Y z;0C;F0K~`76<}~V{&xTv1jg=SF^U4fIN;0;P;)uOavW;_J`Ilc1b|W-AjL;442y0+ zddcpV7Qi68##uJr1CToaY&Br43jp<}U+sV+R%G1(s6T(p#x}rRI0g^cZUC>pxC@y! zadlJyayEva4ikC(Ma~Kv01WINMqYopo?G)^4*;*<2KXd)#LwVBmJ&CB48W;sL-6HR z8JCL@fSmxSzXVM2DN!4{xtezY>g)Nx2oV1K1Rw{C_W|%$4nUUSq7%Tx?&T;U&Bh&o zoWV&(Z;BA#Au1E|Ro(%}m#9+E01r6wOxU)O=KM&R0?7n08Heg;5=ZM3M>F^ z;*Jms3X1~o_g-b8i6XU$BLf+ z+}*bcmgveiN5d97$~TNi94ansS5Joui;UK#vrC2nxv<}R_kxsf&;Mh*_QLF(c24MTlnw=|ve=ZtV5=M_en1)s8eCry9 z{716_2yzYt==foXaX5T4*_ogD=j%gSe@T<+@ng)TKj8k=b$=rKbLD6L8aDw4Q+zA{ zn_>UuOH81k?Kf9`<_~e*LjX+RvMB%$pa8##LBPE$Kl4s;-9rHwdD8!(`0Bm*X7gX0 zIBHY?CY;7~!1ieez|#WwfXPqXcnNrrfE^Wp0x6&$@`P|GK7((@G?@GYI~sDq2Gx9$ P00000NkvXXu0mjfN-{sf literal 0 HcmV?d00001 diff --git a/graphics/link/gba_pal2.pal b/graphics/link/gba_pal2.pal new file mode 100755 index 0000000000..e2fb95b4ae --- /dev/null +++ b/graphics/link/gba_pal2.pal @@ -0,0 +1,51 @@ +JASC-PAL +0100 +48 +0 0 0 +255 57 8 +255 90 8 +255 131 8 +255 172 8 +255 213 8 +255 255 8 +255 255 131 +255 255 255 +255 255 0 +65 0 0 +115 16 0 +172 32 0 +230 57 8 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +222 230 238 +189 205 230 +156 180 222 +131 131 139 +98 98 123 +65 74 106 +41 49 90 +230 230 230 +205 205 205 +180 180 180 +156 156 156 +213 180 106 +205 156 82 +49 255 106 +0 0 0 +255 255 255 +222 230 238 +189 205 230 +156 180 222 +0 16 172 +32 32 106 +16 16 90 +0 0 74 +255 255 189 +230 230 164 +205 205 148 +189 180 115 +139 139 90 +74 74 57 +8 32 32 diff --git a/graphics/pokemon_storage/pss_window.pal b/graphics/pokemon_storage/pss_window.pal new file mode 100755 index 0000000000..bfd913069b --- /dev/null +++ b/graphics/pokemon_storage/pss_window.pal @@ -0,0 +1,35 @@ +JASC-PAL +0100 +32 +255 255 255 +74 205 139 +172 106 148 +49 0 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +213 213 213 +156 156 156 +255 255 255 +164 164 164 +82 82 82 +255 255 255 +57 164 148 +230 180 148 +49 0 148 +0 0 0 +255 148 148 +255 230 131 +255 189 115 +0 0 0 +0 0 0 +0 0 0 +213 213 213 +156 156 156 +255 255 255 +164 164 164 +82 82 82 diff --git a/graphics/pokemon_storage/pss_window.png b/graphics/pokemon_storage/pss_window.png new file mode 100755 index 0000000000000000000000000000000000000000..59cc0b5d2d2572b0252efc9b98da1544b56ba2ca GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^89;2n!VDz&-z#x|H~~H(uK)l4_d46XCTofz!xW$x zCb)X_>YO=qfXbFESrQZ!wB43Hl7WGd!_&nv#G~`-RY$%i0|C|x^BkC}#lIB93B6{` zNs8cp6?as+!^hh@d4|#4BP{hXCO5)QnJ_yQTvl!CzjZ`niuyD83n9N}wJmeHXYs<- zeczAi^ZNd*c)H;2uD}_stYM8&d{vKpI~L3F_8IYYvDQZAG_DJ>cbUB*Q1iqVpBpQf zqiT%f81HINcFq@!iZ43p@}%-FVdQ&MBb@0609BX8-^I literal 0 HcmV?d00001 diff --git a/graphics/pokemon_storage/pss_window2.bin b/graphics/pokemon_storage/pss_window2.bin new file mode 100755 index 0000000000000000000000000000000000000000..f348e6e1ec7e04f336a0936867587f55982311d6 GIT binary patch literal 720 zcma*kXHUa06ouiiH@r+Cu`Y0d0AZKWCT*c~s#5#^{|&K|Hcmd!=EzcHKR$L8&-1)5 zW|(D;c@|h?iDgz;WsP+<*kp^C*ax=RVV6DjIp8qO5yzZx%GuZn=Ui}!a>X?__}p^G zJpm6q@?_n!yiAc-d6SBhNUCWfb>~a53#B|Ep&HlEsc-oaGu*xXf-~z4`L)BfMQ6;Y z$9>Pcq@k`gtw}xhS!3QM4MQF1K!&l)8uKpM-_oWwr8Tjyqit;n5g#?E-N?iw=}T37LtM1Hl9C>X7keZ`r=F9;qTe4(HP*Bk9&(94R7#M{;T^vI^I^SMBDAc4Nz!0$Cf&HD#m;e6{ykIX{ z_HoXX?_B>Cnp{h+Ug5NM!3>k3`lI9|$@YFvnL_;D;Yvf)P?2kQ+xhRCYt z@&_2-a0&cl_%rwE?P_~LeufZ-8j}ev3}4k|Tiv@~94E^4?wM%f-8_qD+jsBY+G)8! zt0d-()wD~hMpyRBbzD@u$hfD$Les)z*T%!9JSD44I4U9^tV%c&%lcP(0oN1bb_;Em z1%?axdj-RU3|BTpFK}{bI(DV*)ix$a7fZ%Zvrj%}Wn$}nYkXr1gOSWlCI-bP0l+XkK!epSU literal 0 HcmV?d00001 diff --git a/graphics/pokenav/ribbons.bin b/graphics/pokenav/ribbons.bin new file mode 100755 index 0000000000000000000000000000000000000000..ce0b74f60801cd268f077f75abd53d3c611e7c67 GIT binary patch literal 1280 zcmds$ITC;%3`N;gT=`mY|C6fYh8ZM{S}?BwiXV8BU}2*O$OI~y2`klT611P^g_jAG zKi*0`d9x$At<;k@dpA!#FSGkSPp1-;itSBU%YlLn@*0Mr*e$8O!|LCmXBaZckDyG8 Pnf8XEIDcR`P5F~yW(IXOyFYHHQZtpBvt-p$QoVsroI=Ktp2NDSb!00024 zNklT&G`TS9T4o^bN2FX5IA%8G6OE{cR_%FVIVPt zVYUPeyNlm2WS5;ebJrfHVIYN@@7^cMWoJO(ECIvboxO|KFqq3gW*xqJ`9ILGuc2TN z4^sG}0}T5A{|AS|9{h&ETm}gedyrvaXzJzznm!PmIgJW*Pqn8iU-Tj9d zVU#f(CQ?iZrIb-l7v1#GOCS9VFvt+~j5EO`Q%p0Xt5Hc6)znZ+of2sz3oNq4GAp#Q zs>=_fYEe9Gw9`Q+vjpi4)rG>9<_OBX;u{N@VGsK<$s(H^a#>@Y4K~?gn;mwQY^&U_ z{sa<9BAFDNq>@HD8SJso0f!uM%n7HQan1#otm;s?$RnQu+!Rt2!F0tnH{5c^Jr6wc zr0CDQ@M;U$SCoJ8ogwLxCaL0-6iJpONt6U}h>e@V(TWsFp}3_$@+D7PcJj?$L#bOK ze({M{JaN?Y;KhfZiqD$O(j<)%kcJP8W;aEA4FqVUiROq!eT(R}8#$M#Qq0 oYW)Z2o8!&S_G=MGw_n{{ZG=|W@`u(RkNzEhSZ}jMb=%wg4(Nc&Gynhq literal 0 HcmV?d00001 diff --git a/graphics/title_screen/title_screen2.bin b/graphics/title_screen/title_screen2.bin new file mode 100755 index 0000000000000000000000000000000000000000..0e6b7e7759ff3e98ff30abe2a9a585d9a2259379 GIT binary patch literal 1024 zcmZQzWMXDvWn<^yMC+6cQE@6%&_`l#-T_m6KOcR8m$^Ra4i{)Y8_`)zddH zG%_|ZH8Z!cw6eCbwX=6{baHlab#wRd^z!!c_45x13RUz zF>}`JIdkXDU$Ah|;w4L$Enl&6)#^2C*R9{Mant54TeofBv2)k%J$v`4B?Ad$&|6lb!e=!EAC(qNxF~p-Y`GIA# zs7yjbP1Xgh9AaD+-086g)-{xeF#Z)y=s&Z&oPDbD%LNSyi&P~7oShgCp7A#L zZEP^-e?Q|tg?35)WqoE45rM`Gd#`FSTK*2a;MvrN*0Drgw2MFS%>) zm6fXXfOUio*YiZFkEqnV!meJ4KtyWdr2=!HH>vfBErU{-mx?;|A(dSrF{w*0b-E9! zQOfX5z0_iOsRTM*jL<@QN8XTEgjO`IZtf;R_nsmDQiJd(r4DlV4pM3m_9k_UDC8QU z9X{|*jP(qYX43 zKHTupLn%8-vIH(u#!0$N{e+YigHpzRPbI1DkZPl!IaQ5nrhI+RbE@O&>$-HeUkc;@ zSQ*@=FqEpC+|6cdFTO^DHG(r4$Yw uZb99Kk0)nBM5Qz+&M9U}eF>W8QpfoJl$n|+%e(Y` YdY6MwxcGj%^TsEf?aj)5X<)PlZZWV8hX4Qo literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_DDD704.bin b/graphics/unknown/unknown_DDD704.bin new file mode 100755 index 0000000000000000000000000000000000000000..35486613792613d9c1b22300c8e3f05bca2a814f GIT binary patch literal 36 acmZo*XavJ1hGvEd2*@&tVImYxVgUfQItkeT literal 0 HcmV?d00001 diff --git a/graphics/unknown/unknown_DDD908.bin b/graphics/unknown/unknown_DDD908.bin new file mode 100755 index 0000000000..cb0a2fda16 --- /dev/null +++ b/graphics/unknown/unknown_DDD908.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/graphics/unknown/unknown_DDD920.bin b/graphics/unknown/unknown_DDD920.bin new file mode 100755 index 0000000000..cb0a2fda16 --- /dev/null +++ b/graphics/unknown/unknown_DDD920.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/graphics/unknown/unknown_DDD938.bin b/graphics/unknown/unknown_DDD938.bin new file mode 100755 index 0000000000..cb0a2fda16 --- /dev/null +++ b/graphics/unknown/unknown_DDD938.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/graphics/unknown/unknown_DDDB80.bin b/graphics/unknown/unknown_DDDB80.bin new file mode 100755 index 0000000000000000000000000000000000000000..d538583f6050efa890ac4f4a5df90f05f29b81a6 GIT binary patch literal 720 zcmb`^$xZ@66ouht5K$C8zYcUSOqyPFEvS>bIr)-G-Lfpp z8WJK*geVupxFpUM*Ce>%mLw^T#656Fnhf_m@W>Ncay*mgg#txN|4u0LN(JSODm85C zG&T};y3&&$`3;=@(JkdKa2z)>h~w4zF6Hm7izuW3YH?j?M uGo9*GW`1XT@7?Q8ce3}plV+iFoy+2+b>C~R1LHW;{hjyUzU12=133VPGkCrL literal 0 HcmV?d00001 diff --git a/graphics/unused/unused_DDCEE4.bin b/graphics/unused/unused_DDCEE4.bin new file mode 100755 index 0000000000000000000000000000000000000000..481183cbd6b4282ab8484ba569b483249d014aac GIT binary patch literal 32 PcmbO^6DQyV$}j)`I93t( literal 0 HcmV?d00001 diff --git a/include/graphics.h b/include/graphics.h index 81aa43b82b..85e31aec99 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2550,24 +2550,24 @@ extern const u16 gWallclockMale_Pal[]; extern const u16 gWallclockFemale_Pal[]; extern const u8 gUnknown_08DCC648[]; extern const u8 gUnknown_08DCC908[]; -extern const u8 gUnknown_08DD87C0[]; -extern const u8 gUnknown_08DD8EE0[]; -extern const u16 gUnknown_08DD8780[]; -extern const u8 gUnknown_08DD90E0[]; -extern const u8 gUnknown_08DD9718[]; -extern const u16 gUnknown_08DD9080[]; -extern const u8 gUnknown_08DD98B4[]; -extern const u8 gUnknown_08DD9E58[]; -extern const u16 gUnknown_08DD9874[]; -extern const u8 gUnknown_08DDA02C[]; -extern const u8 gUnknown_08DDA63C[]; -extern const u16 gUnknown_08DD9FEC[]; -extern const u8 gUnknown_08DDA840[]; -extern const u8 gUnknown_08DDAE40[]; -extern const u16 gUnknown_08DDA800[]; -extern const u8 gUnknown_08DDB020[]; -extern const u8 gUnknown_08DDB2C4[]; -extern const u16 gUnknown_08DDAFE0[]; +extern const u8 gBerryFixGameboy_Gfx[]; +extern const u8 gBerryFixGameboy_Tilemap[]; +extern const u16 gBerryFixGameboy_Pal[]; +extern const u8 gBerryFixGameboyLogo_Gfx[]; +extern const u8 gBerryFixGameboyLogo_Tilemap[]; +extern const u16 gBerryFixGameboyLogo_Pal[]; +extern const u8 gBerryFixGbaTransfer_Gfx[]; +extern const u8 gBerryFixGbaTransfer_Tilemap[]; +extern const u16 gBerryFixGbaTransfer_Pal[]; +extern const u8 gBerryFixGbaTransferHighlight_Gfx[]; +extern const u8 gBerryFixGbaTransferHighlight_Tilemap[]; +extern const u16 gBerryFixGbaTransferHighlight_Pal[]; +extern const u8 gBerryFixGbaTransferError_Gfx[]; +extern const u8 gBerryFixGbaTransferError_Tilemap[]; +extern const u16 gBerryFixGbaTransferError_Pal[]; +extern const u8 gBerryFixWindow_Gfx[]; +extern const u8 gBerryFixWindow_Tilemap[]; +extern const u16 gBerryFixWindow_Pal[]; extern const u8 gBattleTextboxTiles[]; extern const u8 gBattleTextboxTilemap[]; diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index 1954905431..3b2bfb5f7e 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -81,50 +81,50 @@ static const u8 *const gUnknown_08618160[] = { Unknown_08617EA3 }; -extern const u8 gUnknown_08DD87C0[]; -extern const u8 gUnknown_08DD8EE0[]; -extern const u8 gUnknown_08DD8780[]; -extern const u8 gUnknown_08DD90E0[]; -extern const u8 gUnknown_08DD9718[]; -extern const u8 gUnknown_08DD9080[]; -extern const u8 gUnknown_08DD98B4[]; -extern const u8 gUnknown_08DD9E58[]; -extern const u8 gUnknown_08DD9874[]; -extern const u8 gUnknown_08DDA02C[]; -extern const u8 gUnknown_08DDA63C[]; -extern const u8 gUnknown_08DD9FEC[]; -extern const u8 gUnknown_08DDA840[]; -extern const u8 gUnknown_08DDAE40[]; -extern const u8 gUnknown_08DDA800[]; -extern const u8 gUnknown_08DDB020[]; -extern const u8 gUnknown_08DDB2C4[]; -extern const u8 gUnknown_08DDAFE0[]; +extern const u8 gBerryFixGameboy_Gfx[]; +extern const u8 gBerryFixGameboy_Tilemap[]; +extern const u8 gBerryFixGameboy_Pal[]; +extern const u8 gBerryFixGameboyLogo_Gfx[]; +extern const u8 gBerryFixGameboyLogo_Tilemap[]; +extern const u8 gBerryFixGameboyLogo_Pal[]; +extern const u8 gBerryFixGbaTransfer_Gfx[]; +extern const u8 gBerryFixGbaTransfer_Tilemap[]; +extern const u8 gBerryFixGbaTransfer_Pal[]; +extern const u8 gBerryFixGbaTransferHighlight_Gfx[]; +extern const u8 gBerryFixGbaTransferHighlight_Tilemap[]; +extern const u8 gBerryFixGbaTransferHighlight_Pal[]; +extern const u8 gBerryFixGbaTransferError_Gfx[]; +extern const u8 gBerryFixGbaTransferError_Tilemap[]; +extern const u8 gBerryFixGbaTransferError_Pal[]; +extern const u8 gBerryFixWindow_Gfx[]; +extern const u8 gBerryFixWindow_Tilemap[]; +extern const u8 gBerryFixWindow_Pal[]; static const u8 *const gUnknown_08618178[][3] = { { - gUnknown_08DD87C0, - gUnknown_08DD8EE0, - gUnknown_08DD8780 + gBerryFixGameboy_Gfx, + gBerryFixGameboy_Tilemap, + gBerryFixGameboy_Pal }, { - gUnknown_08DD90E0, - gUnknown_08DD9718, - gUnknown_08DD9080 + gBerryFixGameboyLogo_Gfx, + gBerryFixGameboyLogo_Tilemap, + gBerryFixGameboyLogo_Pal }, { - gUnknown_08DD98B4, - gUnknown_08DD9E58, - gUnknown_08DD9874 + gBerryFixGbaTransfer_Gfx, + gBerryFixGbaTransfer_Tilemap, + gBerryFixGbaTransfer_Pal }, { - gUnknown_08DDA02C, - gUnknown_08DDA63C, - gUnknown_08DD9FEC + gBerryFixGbaTransferHighlight_Gfx, + gBerryFixGbaTransferHighlight_Tilemap, + gBerryFixGbaTransferHighlight_Pal }, { - gUnknown_08DDA840, - gUnknown_08DDAE40, - gUnknown_08DDA800 + gBerryFixGbaTransferError_Gfx, + gBerryFixGbaTransferError_Tilemap, + gBerryFixGbaTransferError_Pal }, { - gUnknown_08DDB020, - gUnknown_08DDB2C4, - gUnknown_08DDAFE0 + gBerryFixWindow_Gfx, + gBerryFixWindow_Tilemap, + gBerryFixWindow_Pal }, }; diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 721ba4a4f0..1aff894b99 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -51,8 +51,8 @@ extern const struct CompressedSpriteSheet gMonFrontPicTable[]; extern const u8 gBattleTextboxTiles[]; extern const u8 gBattleTextboxTilemap[]; extern const u8 gBattleTextboxPalette[]; -extern const u16 gUnknown_08DD7300[]; // palette, gameboy advance -extern const u32 gUnknown_08DD7360[]; // tileset gameboy advance +extern const u16 gTradeGba2_Pal[]; // palette, gameboy advance +extern const u32 gTradeGba_Gfx[]; // tileset gameboy advance extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle extern const u8 gText_HatchedFromEgg[]; extern const u8 gText_NickHatchPrompt[]; @@ -548,8 +548,8 @@ static void CB2_EggHatch_0(void) break; case 7: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - LoadPalette(gUnknown_08DD7300, 0x10, 0xA0); - LoadBgTiles(1, gUnknown_08DD7360, 0x1420, 0); + LoadPalette(gTradeGba2_Pal, 0x10, 0xA0); + LoadBgTiles(1, gTradeGba_Gfx, 0x1420, 0); CopyToBgTilemapBuffer(1, gUnknown_08331F60, 0x1000, 0); CopyBgTilemapBufferToVram(1); gMain.state++; diff --git a/src/unk_81BAD84.c b/src/unk_81BAD84.c index 9ba98dd87a..c0d891c12a 100644 --- a/src/unk_81BAD84.c +++ b/src/unk_81BAD84.c @@ -7,29 +7,29 @@ const struct { const u16 *pltt; } gUnknown_08617128[] = { { - gUnknown_08DD87C0, - gUnknown_08DD8EE0, - gUnknown_08DD8780 + gBerryFixGameboy_Gfx, + gBerryFixGameboy_Tilemap, + gBerryFixGameboy_Pal }, { - gUnknown_08DD90E0, - gUnknown_08DD9718, - gUnknown_08DD9080 + gBerryFixGameboyLogo_Gfx, + gBerryFixGameboyLogo_Tilemap, + gBerryFixGameboyLogo_Pal }, { - gUnknown_08DD98B4, - gUnknown_08DD9E58, - gUnknown_08DD9874 + gBerryFixGbaTransfer_Gfx, + gBerryFixGbaTransfer_Tilemap, + gBerryFixGbaTransfer_Pal }, { - gUnknown_08DDA02C, - gUnknown_08DDA63C, - gUnknown_08DD9FEC + gBerryFixGbaTransferHighlight_Gfx, + gBerryFixGbaTransferHighlight_Tilemap, + gBerryFixGbaTransferHighlight_Pal }, { - gUnknown_08DDA840, - gUnknown_08DDAE40, - gUnknown_08DDA800 + gBerryFixGbaTransferError_Gfx, + gBerryFixGbaTransferError_Tilemap, + gBerryFixGbaTransferError_Pal }, { - gUnknown_08DDB020, - gUnknown_08DDB2C4, - gUnknown_08DDAFE0 + gBerryFixWindow_Gfx, + gBerryFixWindow_Tilemap, + gBerryFixWindow_Pal } }; From 5ae6461cc5c43bbeca4cd38efcb340207f762303 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 30 Dec 2017 12:19:02 +0100 Subject: [PATCH 43/54] commit --- src/battle_ai_script_commands.c | 177 ++++++++++++++++---------------- 1 file changed, 87 insertions(+), 90 deletions(-) diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 7a30de75ba..f03381f703 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -104,30 +104,30 @@ static void BattleAICmd_if_less_than(void); static void BattleAICmd_if_more_than(void); static void BattleAICmd_if_equal(void); static void BattleAICmd_if_not_equal(void); -static void BattleAICmd_if_less_than_32(void); -static void BattleAICmd_if_more_than_32(void); -static void BattleAICmd_if_equal_32(void); -static void BattleAICmd_if_not_equal_32(void); +static void BattleAICmd_if_less_than_ptr(void); +static void BattleAICmd_if_more_than_ptr(void); +static void BattleAICmd_if_equal_ptr(void); +static void BattleAICmd_if_not_equal_ptr(void); static void BattleAICmd_if_move(void); static void BattleAICmd_if_not_move(void); static void BattleAICmd_if_in_bytes(void); static void BattleAICmd_if_not_in_bytes(void); static void BattleAICmd_if_in_hwords(void); static void BattleAICmd_if_not_in_hwords(void); -static void BattleAICmd_if_user_can_damage(void); -static void BattleAICmd_if_user_cant_damage(void); +static void BattleAICmd_if_user_has_attacking_move(void); +static void BattleAICmd_if_user_has_no_attacking_moves(void); static void BattleAICmd_get_turn_count(void); static void BattleAICmd_get_type(void); -static void BattleAICmd_get_last_used_bank_move_power(void); -static void BattleAICmd_is_most_powerful_move(void); +static void BattleAICmd_get_considered_move_power(void); +static void BattleAICmd_get_how_powerful_move_is(void); static void BattleAICmd_get_last_used_bank_move(void); -static void BattleAICmd_if_arg_equal(void); -static void BattleAICmd_if_arg_not_equal(void); -static void BattleAICmd_if_would_go_first(void); -static void BattleAICmd_if_would_not_go_first(void); +static void BattleAICmd_if_equal_(void); +static void BattleAICmd_if_not_equal_(void); +static void BattleAICmd_if_user_goes(void); +static void BattleAICmd_if_user_doesnt_go(void); static void BattleAICmd_nullsub_2A(void); static void BattleAICmd_nullsub_2B(void); -static void BattleAICmd_count_alive_pokemon(void); +static void BattleAICmd_count_usable_party_mons(void); static void BattleAICmd_get_considered_move(void); static void BattleAICmd_get_considered_move_effect(void); static void BattleAICmd_get_ability(void); @@ -147,17 +147,17 @@ static void BattleAICmd_if_stat_level_not_equal(void); static void BattleAICmd_if_can_faint(void); static void BattleAICmd_if_cant_faint(void); static void BattleAICmd_if_has_move(void); -static void BattleAICmd_if_dont_have_move(void); -static void BattleAICmd_if_move_effect(void); -static void BattleAICmd_if_not_move_effect(void); +static void BattleAICmd_if_doesnt_have_move(void); +static void BattleAICmd_if_has_move_with_effect(void); +static void BattleAICmd_if_doesnt_have_move_with_effect(void); static void BattleAICmd_if_any_move_disabled_or_encored(void); static void BattleAICmd_if_curr_move_disabled_or_encored(void); static void BattleAICmd_flee(void); -static void BattleAICmd_if_random_100(void); +static void BattleAICmd_if_random_safari_flee(void); static void BattleAICmd_watch(void); static void BattleAICmd_get_hold_effect(void); static void BattleAICmd_get_gender(void); -static void BattleAICmd_is_first_turn(void); +static void BattleAICmd_is_first_turn_for(void); static void BattleAICmd_get_stockpile_count(void); static void BattleAICmd_is_double_battle(void); static void BattleAICmd_get_used_held_item(void); @@ -172,7 +172,7 @@ static void BattleAICmd_nullsub_55(void); static void BattleAICmd_nullsub_56(void); static void BattleAICmd_nullsub_57(void); static void BattleAICmd_call(void); -static void BattleAICmd_jump(void); +static void BattleAICmd_goto(void); static void BattleAICmd_end(void); static void BattleAICmd_if_level_cond(void); static void BattleAICmd_if_target_taunted(void); @@ -215,30 +215,30 @@ static const BattleAICmdFunc sBattleAICmdTable[] = BattleAICmd_if_more_than, // 0x12 BattleAICmd_if_equal, // 0x13 BattleAICmd_if_not_equal, // 0x14 - BattleAICmd_if_less_than_32, // 0x15 - BattleAICmd_if_more_than_32, // 0x16 - BattleAICmd_if_equal_32, // 0x17 - BattleAICmd_if_not_equal_32, // 0x18 + BattleAICmd_if_less_than_ptr, // 0x15 + BattleAICmd_if_more_than_ptr, // 0x16 + BattleAICmd_if_equal_ptr, // 0x17 + BattleAICmd_if_not_equal_ptr, // 0x18 BattleAICmd_if_move, // 0x19 BattleAICmd_if_not_move, // 0x1A BattleAICmd_if_in_bytes, // 0x1B BattleAICmd_if_not_in_bytes, // 0x1C BattleAICmd_if_in_hwords, // 0x1D BattleAICmd_if_not_in_hwords, // 0x1E - BattleAICmd_if_user_can_damage, // 0x1F - BattleAICmd_if_user_cant_damage, // 0x20 + BattleAICmd_if_user_has_attacking_move, // 0x1F + BattleAICmd_if_user_has_no_attacking_moves, // 0x20 BattleAICmd_get_turn_count, // 0x21 BattleAICmd_get_type, // 0x22 - BattleAICmd_get_last_used_bank_move_power, // 0x23 - BattleAICmd_is_most_powerful_move, // 0x24 + BattleAICmd_get_considered_move_power, // 0x23 + BattleAICmd_get_how_powerful_move_is, // 0x24 BattleAICmd_get_last_used_bank_move, // 0x25 - BattleAICmd_if_arg_equal, // 0x26 - BattleAICmd_if_arg_not_equal, // 0x27 - BattleAICmd_if_would_go_first, // 0x28 - BattleAICmd_if_would_not_go_first, // 0x29 + BattleAICmd_if_equal_, // 0x26 + BattleAICmd_if_not_equal_, // 0x27 + BattleAICmd_if_user_goes, // 0x28 + BattleAICmd_if_user_doesnt_go, // 0x29 BattleAICmd_nullsub_2A, // 0x2A BattleAICmd_nullsub_2B, // 0x2B - BattleAICmd_count_alive_pokemon, // 0x2C + BattleAICmd_count_usable_party_mons, // 0x2C BattleAICmd_get_considered_move, // 0x2D BattleAICmd_get_considered_move_effect, // 0x2E BattleAICmd_get_ability, // 0x2F @@ -258,17 +258,17 @@ static const BattleAICmdFunc sBattleAICmdTable[] = BattleAICmd_if_can_faint, // 0x3D BattleAICmd_if_cant_faint, // 0x3E BattleAICmd_if_has_move, // 0x3F - BattleAICmd_if_dont_have_move, // 0x40 - BattleAICmd_if_move_effect, // 0x41 - BattleAICmd_if_not_move_effect, // 0x42 + BattleAICmd_if_doesnt_have_move, // 0x40 + BattleAICmd_if_has_move_with_effect, // 0x41 + BattleAICmd_if_doesnt_have_move_with_effect, // 0x42 BattleAICmd_if_any_move_disabled_or_encored, // 0x43 BattleAICmd_if_curr_move_disabled_or_encored, // 0x44 BattleAICmd_flee, // 0x45 - BattleAICmd_if_random_100, // 0x46 + BattleAICmd_if_random_safari_flee, // 0x46 BattleAICmd_watch, // 0x47 BattleAICmd_get_hold_effect, // 0x48 BattleAICmd_get_gender, // 0x49 - BattleAICmd_is_first_turn, // 0x4A + BattleAICmd_is_first_turn_for, // 0x4A BattleAICmd_get_stockpile_count, // 0x4B BattleAICmd_is_double_battle, // 0x4C BattleAICmd_get_used_held_item, // 0x4D @@ -283,7 +283,7 @@ static const BattleAICmdFunc sBattleAICmdTable[] = BattleAICmd_nullsub_56, // 0x56 BattleAICmd_nullsub_57, // 0x57 BattleAICmd_call, // 0x58 - BattleAICmd_jump, // 0x59 + BattleAICmd_goto, // 0x59 BattleAICmd_end, // 0x5A BattleAICmd_if_level_cond, // 0x5B BattleAICmd_if_target_taunted, // 0x5C @@ -959,41 +959,41 @@ static void BattleAICmd_if_not_equal(void) gAIScriptPtr += 6; } -static void BattleAICmd_if_less_than_32(void) +static void BattleAICmd_if_less_than_ptr(void) { - const u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); + const u8 *value = AIScriptReadPtr(gAIScriptPtr + 1); - if (AI_THINKING_STRUCT->funcResult < *temp) + if (AI_THINKING_STRUCT->funcResult < *value) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); else gAIScriptPtr += 9; } -static void BattleAICmd_if_more_than_32(void) +static void BattleAICmd_if_more_than_ptr(void) { - const u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); + const u8 *value = AIScriptReadPtr(gAIScriptPtr + 1); - if (AI_THINKING_STRUCT->funcResult > *temp) + if (AI_THINKING_STRUCT->funcResult > *value) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); else gAIScriptPtr += 9; } -static void BattleAICmd_if_equal_32(void) +static void BattleAICmd_if_equal_ptr(void) { - const u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); + const u8 *value = AIScriptReadPtr(gAIScriptPtr + 1); - if (AI_THINKING_STRUCT->funcResult == *temp) + if (AI_THINKING_STRUCT->funcResult == *value) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); else gAIScriptPtr += 9; } -static void BattleAICmd_if_not_equal_32(void) +static void BattleAICmd_if_not_equal_ptr(void) { - const u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); + const u8 *value = AIScriptReadPtr(gAIScriptPtr + 1); - if (AI_THINKING_STRUCT->funcResult != *temp) + if (AI_THINKING_STRUCT->funcResult != *value) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); else gAIScriptPtr += 9; @@ -1083,7 +1083,7 @@ static void BattleAICmd_if_not_in_hwords(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); } -static void BattleAICmd_if_user_can_damage(void) +static void BattleAICmd_if_user_has_attacking_move(void) { s32 i; @@ -1099,7 +1099,7 @@ static void BattleAICmd_if_user_can_damage(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); } -static void BattleAICmd_if_user_cant_damage(void) +static void BattleAICmd_if_user_has_no_attacking_moves(void) { s32 i; @@ -1168,23 +1168,23 @@ static void BattleAICmd_is_of_type(void) if(gBattleMons[bank].type1 == gAIScriptPtr[2] || gBattleMons[bank].type2 == gAIScriptPtr[2]) { - AI_THINKING_STRUCT->funcResult = 1; + AI_THINKING_STRUCT->funcResult = TRUE; } else { - AI_THINKING_STRUCT->funcResult = 0; + AI_THINKING_STRUCT->funcResult = FALSE; } gAIScriptPtr += 3; } -static void BattleAICmd_get_last_used_bank_move_power(void) +static void BattleAICmd_get_considered_move_power(void) { AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power; gAIScriptPtr += 1; } -static void BattleAICmd_is_most_powerful_move(void) +static void BattleAICmd_get_how_powerful_move_is(void) { s32 i, checkedMove; s32 moveDmgs[4]; @@ -1258,7 +1258,7 @@ static void BattleAICmd_get_last_used_bank_move(void) gAIScriptPtr += 2; } -static void BattleAICmd_if_arg_equal(void) +static void BattleAICmd_if_equal_(void) // same as if_equal { if (gAIScriptPtr[1] == AI_THINKING_STRUCT->funcResult) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -1266,7 +1266,7 @@ static void BattleAICmd_if_arg_equal(void) gAIScriptPtr += 6; } -static void BattleAICmd_if_arg_not_equal(void) +static void BattleAICmd_if_not_equal_(void) // same as if_not_equal { if (gAIScriptPtr[1] != AI_THINKING_STRUCT->funcResult) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -1274,7 +1274,7 @@ static void BattleAICmd_if_arg_not_equal(void) gAIScriptPtr += 6; } -static void BattleAICmd_if_would_go_first(void) +static void BattleAICmd_if_user_goes(void) { if (GetWhoStrikesFirst(sBank_AI, gBankTarget, TRUE) == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -1282,7 +1282,7 @@ static void BattleAICmd_if_would_go_first(void) gAIScriptPtr += 6; } -static void BattleAICmd_if_would_not_go_first(void) +static void BattleAICmd_if_user_doesnt_go(void) { if (GetWhoStrikesFirst(sBank_AI, gBankTarget, TRUE) != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); @@ -1298,7 +1298,7 @@ static void BattleAICmd_nullsub_2B(void) { } -static void BattleAICmd_count_alive_pokemon(void) +static void BattleAICmd_count_usable_party_mons(void) { u8 bank; u8 bankOnField1, bankOnField2; @@ -1319,10 +1319,10 @@ static void BattleAICmd_count_alive_pokemon(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - u32 status; + u32 identity; bankOnField1 = gBattlePartyID[bank]; - status = GetBankIdentity(bank) ^ 2; - bankOnField2 = gBattlePartyID[GetBankByIdentity(status)]; + identity = GetBankIdentity(bank) ^ BIT_MON; + bankOnField2 = gBattlePartyID[GetBankByIdentity(identity)]; } else // in singles there's only one bank by side { @@ -1330,7 +1330,7 @@ static void BattleAICmd_count_alive_pokemon(void) bankOnField2 = gBattlePartyID[bank]; } - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { if (i != bankOnField1 && i != bankOnField2 && GetMonData(&party[i], MON_DATA_HP) != 0 @@ -1365,9 +1365,9 @@ static void BattleAICmd_get_ability(void) else bank = gBankTarget; - if(gActiveBank != bank) + if (gActiveBank != bank) { - if(BATTLE_HISTORY->abilities[bank] != 0) + if (BATTLE_HISTORY->abilities[bank] != 0) { AI_THINKING_STRUCT->funcResult = BATTLE_HISTORY->abilities[bank]; gAIScriptPtr += 2; @@ -1581,11 +1581,11 @@ static void BattleAICmd_if_status_in_party(void) break; } - party = (GetBankSide(bank) == 0) ? gPlayerParty : gEnemyParty; + party = (GetBankSide(bank) == SIDE_PLAYER) ? gPlayerParty : gEnemyParty; statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2); - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { u16 species = GetMonData(&party[i], MON_DATA_SPECIES); u16 hp = GetMonData(&party[i], MON_DATA_HP); @@ -1622,7 +1622,7 @@ static void BattleAICmd_if_status_not_in_party(void) statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2); - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { u16 species = GetMonData(&party[i], MON_DATA_SPECIES); u16 hp = GetMonData(&party[i], MON_DATA_HP); @@ -1786,14 +1786,14 @@ static void BattleAICmd_if_cant_faint(void) static void BattleAICmd_if_has_move(void) { int i; - const u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); + const u16 *movePtr = (u16 *)(gAIScriptPtr + 2); - switch(gAIScriptPtr[1]) + switch (gAIScriptPtr[1]) { case AI_USER: for (i = 0; i < 4; i++) { - if (gBattleMons[sBank_AI].moves[i] == *temp_ptr) + if (gBattleMons[sBank_AI].moves[i] == *movePtr) break; } if (i == 4) @@ -1807,7 +1807,7 @@ static void BattleAICmd_if_has_move(void) return; } case AI_USER_PARTNER: - if (gBattleMons[sBank_AI ^ 2].hp == 0) + if (gBattleMons[sBank_AI ^ BIT_MON].hp == 0) { gAIScriptPtr += 8; return; @@ -1816,7 +1816,7 @@ static void BattleAICmd_if_has_move(void) { for (i = 0; i < 4; i++) { - if (gBattleMons[sBank_AI ^ 2].moves[i] == *temp_ptr) + if (gBattleMons[sBank_AI ^ BIT_MON].moves[i] == *movePtr) break; } } @@ -1834,7 +1834,7 @@ static void BattleAICmd_if_has_move(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] == *temp_ptr) + if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] == *movePtr) break; } if (i == 4) @@ -1850,10 +1850,10 @@ static void BattleAICmd_if_has_move(void) } } -static void BattleAICmd_if_dont_have_move(void) +static void BattleAICmd_if_doesnt_have_move(void) { int i; - const u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); + const u16 *movePtr = (u16 *)(gAIScriptPtr + 2); switch(gAIScriptPtr[1]) { @@ -1861,7 +1861,7 @@ static void BattleAICmd_if_dont_have_move(void) case AI_USER_PARTNER: // UB: no separate check for user partner for (i = 0; i < 4; i++) { - if (gBattleMons[sBank_AI].moves[i] == *temp_ptr) + if (gBattleMons[sBank_AI].moves[i] == *movePtr) break; } if (i != 4) @@ -1878,7 +1878,7 @@ static void BattleAICmd_if_dont_have_move(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { - if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] == *temp_ptr) + if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] == *movePtr) break; } if (i != 4) @@ -1894,7 +1894,7 @@ static void BattleAICmd_if_dont_have_move(void) } } -static void BattleAICmd_if_move_effect(void) +static void BattleAICmd_if_has_move_with_effect(void) { int i; @@ -1927,7 +1927,7 @@ static void BattleAICmd_if_move_effect(void) } } -static void BattleAICmd_if_not_move_effect(void) +static void BattleAICmd_if_doesnt_have_move_with_effect(void) { int i; @@ -2023,7 +2023,7 @@ static void BattleAICmd_flee(void) AI_THINKING_STRUCT->aiAction |= (AI_ACTION_DONE | AI_ACTION_FLEE | AI_ACTION_DO_NOT_ATTACK); } -static void BattleAICmd_if_random_100(void) +static void BattleAICmd_if_random_safari_flee(void) { u8 safariFleeRate = gBattleStruct->field_7B * 5; // safari flee rate, from 0-20 @@ -2041,7 +2041,6 @@ static void BattleAICmd_watch(void) static void BattleAICmd_get_hold_effect(void) { u8 bank; - u16 status; if (gAIScriptPtr[1] == AI_USER) bank = sBank_AI; @@ -2049,9 +2048,7 @@ static void BattleAICmd_get_hold_effect(void) bank = gBankTarget; if (gActiveBank != bank) - { AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(BATTLE_HISTORY->itemEffects[bank]); - } else AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(gBattleMons[bank].item); @@ -2093,7 +2090,7 @@ static void BattleAICmd_get_gender(void) gAIScriptPtr += 2; } -static void BattleAICmd_is_first_turn(void) +static void BattleAICmd_is_first_turn_for(void) { u8 bank; @@ -2212,7 +2209,7 @@ static void BattleAICmd_call(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); } -static void BattleAICmd_jump(void) +static void BattleAICmd_goto(void) { gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); } @@ -2272,7 +2269,7 @@ static void BattleAICmd_if_target_not_taunted(void) static void BattleAICmd_if_target_is_ally(void) { - if((sBank_AI & 1) == (gBankTarget & 1)) + if ((sBank_AI & BIT_SIDE) == (gBankTarget & BIT_SIDE)) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1); else gAIScriptPtr += 5; @@ -2282,7 +2279,7 @@ static void BattleAICmd_if_flash_fired(void) { u8 bank = BattleAI_GetWantedBank(gAIScriptPtr[1]); - if(gBattleResources->flags->flags[bank] & UNKNOWN_FLAG_FLASH_FIRE) + if (gBattleResources->flags->flags[bank] & UNKNOWN_FLAG_FLASH_FIRE) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; From ca29ad22e8522910e906863e3ab0bfe1f0686d48 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 30 Dec 2017 16:04:31 +0100 Subject: [PATCH 44/54] dump trainer ai scripts --- asm/macros/battle_ai_script.inc | 619 ++++++ data/battle_ai_scripts.s | 3436 ++++++++++++++++++++++++++++++- include/constants/battle_ai.h | 52 + src/battle_ai_script_commands.c | 80 +- 4 files changed, 4083 insertions(+), 104 deletions(-) create mode 100644 asm/macros/battle_ai_script.inc create mode 100644 include/constants/battle_ai.h diff --git a/asm/macros/battle_ai_script.inc b/asm/macros/battle_ai_script.inc new file mode 100644 index 0000000000..5e81686bf9 --- /dev/null +++ b/asm/macros/battle_ai_script.inc @@ -0,0 +1,619 @@ + .macro if_random_less_than param0, param1 + .byte 0x0 + .byte \param0 + .4byte \param1 + .endm + + .macro if_random_greater_than param0, param1 + .byte 0x1 + .byte \param0 + .4byte \param1 + .endm + + .macro if_random_equal param0, param1 + .byte 0x2 + .byte \param0 + .4byte \param1 + .endm + + .macro if_random_not_equal param0, param1 + .byte 0x3 + .byte \param0 + .4byte \param1 + .endm + + .macro score param0 + .byte 0x4 + .byte \param0 + .endm + + .macro if_hp_less_than bank, param1, param2 + .byte 0x5 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro if_hp_more_than bank, param1, param2 + .byte 0x6 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro if_hp_equal bank, param1, param2 + .byte 0x7 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro if_hp_not_equal bank, param1, param2 + .byte 0x8 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro if_status bank, status1, param2 + .byte 0x9 + .byte \bank + .4byte \status1 + .4byte \param2 + .endm + + .macro if_not_status bank, status1, param2 + .byte 0xa + .byte \bank + .4byte \status1 + .4byte \param2 + .endm + + .macro if_status2 bank, status2, param2 + .byte 0xb + .byte \bank + .4byte \status2 + .4byte \param2 + .endm + + .macro if_not_status2 bank, status2, param2 + .byte 0xc + .byte \bank + .4byte \status2 + .4byte \param2 + .endm + + .macro if_status3 bank, status3, param2 + .byte 0xd + .byte \bank + .4byte \status3 + .4byte \param2 + .endm + + .macro if_not_status3 bank, status3, param2 + .byte 0xe + .byte \bank + .4byte \status3 + .4byte \param2 + .endm + + .macro if_side_affecting bank, sidestatus, param2 + .byte 0xf + .byte \bank + .4byte \sidestatus + .4byte \param2 + .endm + + .macro if_not_side_affecting bank, sidestatus, param2 + .byte 0x10 + .byte \bank + .4byte \sidestatus + .4byte \param2 + .endm + + .macro if_less_than param0, param1 + .byte 0x11 + .byte \param0 + .4byte \param1 + .endm + + .macro if_more_than param0, param1 + .byte 0x12 + .byte \param0 + .4byte \param1 + .endm + + .macro if_equal param0, param1 + .byte 0x13 + .byte \param0 + .4byte \param1 + .endm + + .macro if_not_equal param0, param1 + .byte 0x14 + .byte \param0 + .4byte \param1 + .endm + + .macro if_less_than_ptr param0, param1 + .byte 0x15 + .4byte \param0 + .4byte \param1 + .endm + + .macro if_more_than_ptr param0, param1 + .byte 0x16 + .4byte \param0 + .4byte \param1 + .endm + + .macro if_equal_ptr param0, param1 + .byte 0x17 + .4byte \param0 + .4byte \param1 + .endm + + .macro if_not_equal_ptr param0, param1 + .byte 0x18 + .4byte \param0 + .4byte \param1 + .endm + + .macro if_move param0, param1 + .byte 0x19 + .2byte \param0 + .4byte \param1 + .endm + + .macro if_not_move param0, param1 + .byte 0x1a + .2byte \param0 + .4byte \param1 + .endm + + .macro if_in_bytes param0, param1 + .byte 0x1b + .4byte \param0 + .4byte \param1 + .endm + + .macro if_not_in_bytes param0, param1 + .byte 0x1c + .4byte \param0 + .4byte \param1 + .endm + + .macro if_in_hwords param0, param1 + .byte 0x1d + .4byte \param0 + .4byte \param1 + .endm + + .macro if_not_in_hwords param0, param1 + .byte 0x1e + .4byte \param0 + .4byte \param1 + .endm + + .macro if_user_has_attacking_move param0 + .byte 0x1f + .4byte \param0 + .endm + + .macro if_user_has_no_attacking_moves param0 + .byte 0x20 + .4byte \param0 + .endm + + .macro get_turn_count + .byte 0x21 + .endm + + .macro get_type param0 + .byte 0x22 + .byte \param0 + .endm + + .macro get_considered_move_power + .byte 0x23 + .endm + + .macro get_how_powerful_move_is + .byte 0x24 + .endm + + .macro get_last_used_bank_move bank + .byte 0x25 + .byte \bank + .endm + + .macro if_equal_ param0, param1 + .byte 0x26 + .byte \param0 + .4byte \param1 + .endm + + .macro if_not_equal_ param0, param1 + .byte 0x27 + .byte \param0 + .4byte \param1 + .endm + + .macro if_user_goes param0, param1 + .byte 0x28 + .byte \param0 + .4byte \param1 + .endm + + .macro if_user_doesnt_go param0, param1 + .byte 0x29 + .byte \param0 + .4byte \param1 + .endm + + .macro nullsub_2A + .byte 0x2a + .endm + + .macro nullsub_2B + .byte 0x2b + .endm + + .macro count_usable_party_mons bank + .byte 0x2c + .byte \bank + .endm + + .macro get_considered_move + .byte 0x2d + .endm + + .macro get_considered_move_effect + .byte 0x2e + .endm + + .macro get_ability bank + .byte 0x2f + .byte \bank + .endm + + .macro get_highest_type_effectiveness + .byte 0x30 + .endm + + .macro if_type_effectiveness param0, param1 + .byte 0x31 + .byte \param0 + .4byte \param1 + .endm + + .macro nullsub_32 + .byte 0x32 + .endm + + .macro nullsub_33 + .byte 0x33 + .endm + + .macro if_status_in_party bank, status1, param2 + .byte 0x34 + .byte \bank + .4byte \status1 + .4byte \param2 + .endm + + .macro if_status_not_in_party bank, status1, param2 + .byte 0x35 + .byte \bank + .4byte \status1 + .4byte \param2 + .endm + + .macro get_weather + .byte 0x36 + .endm + + .macro if_effect param0, param1 + .byte 0x37 + .byte \param0 + .4byte \param1 + .endm + + .macro if_not_effect param0, param1 + .byte 0x38 + .byte \param0 + .4byte \param1 + .endm + + .macro if_stat_level_less_than bank, stat, param2, param3 + .byte 0x39 + .byte \bank + .byte \stat + .byte \param2 + .4byte \param3 + .endm + + .macro if_stat_level_more_than bank, stat, param2, param3 + .byte 0x3a + .byte \bank + .byte \stat + .byte \param2 + .4byte \param3 + .endm + + .macro if_stat_level_equal bank, stat, param2, param3 + .byte 0x3b + .byte \bank + .byte \stat + .byte \param2 + .4byte \param3 + .endm + + .macro if_stat_level_not_equal bank, stat, param2, param3 + .byte 0x3c + .byte \bank + .byte \stat + .byte \param2 + .4byte \param3 + .endm + + .macro if_can_faint param0 + .byte 0x3d + .4byte \param0 + .endm + + .macro if_cant_faint param0 + .byte 0x3e + .4byte \param0 + .endm + + .macro if_has_move bank, param1, param2 + .byte 0x3f + .byte \bank + .2byte \param1 + .4byte \param2 + .endm + + .macro if_doesnt_have_move bank, param1, param2 + .byte 0x40 + .byte \bank + .2byte \param1 + .4byte \param2 + .endm + + .macro if_has_move_with_effect bank, param1, param2 + .byte 0x41 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro if_doesnt_have_move_with_effect bank, param1, param2 + .byte 0x42 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro if_any_move_disabled_or_encored bank, param1, param2 + .byte 0x43 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro if_curr_move_disabled_or_encored param0, param1 + .byte 0x44 + .byte \param0 + .4byte \param1 + .endm + + .macro flee + .byte 0x45 + .endm + + .macro if_random_safari_flee param0 + .byte 0x46 + .4byte \param0 + .endm + + .macro watch + .byte 0x47 + .endm + + .macro get_hold_effect bank + .byte 0x48 + .byte \bank + .endm + + .macro get_gender bank + .byte 0x49 + .byte \bank + .endm + + .macro is_first_turn_for bank + .byte 0x4a + .byte \bank + .endm + + .macro get_stockpile_count bank + .byte 0x4b + .byte \bank + .endm + + .macro is_double_battle + .byte 0x4c + .endm + + .macro get_used_held_item bank + .byte 0x4d + .byte \bank + .endm + + .macro get_move_type_from_result + .byte 0x4e + .endm + + .macro get_move_power_from_result + .byte 0x4f + .endm + + .macro get_move_effect_from_result + .byte 0x50 + .endm + + .macro get_protect_count bank + .byte 0x51 + .byte \bank + .endm + + .macro nullsub_52 + .byte 0x52 + .endm + + .macro nullsub_53 + .byte 0x53 + .endm + + .macro nullsub_54 + .byte 0x54 + .endm + + .macro nullsub_55 + .byte 0x55 + .endm + + .macro nullsub_56 + .byte 0x56 + .endm + + .macro nullsub_57 + .byte 0x57 + .endm + + .macro call param0 + .byte 0x58 + .4byte \param0 + .endm + + .macro goto param0 + .byte 0x59 + .4byte \param0 + .endm + + .macro end + .byte 0x5a + .endm + + .macro if_level_cond param0, param1 + .byte 0x5b + .byte \param0 + .4byte \param1 + .endm + + .macro if_target_taunted param0 + .byte 0x5c + .4byte \param0 + .endm + + .macro if_target_not_taunted param0 + .byte 0x5d + .4byte \param0 + .endm + + .macro if_target_is_ally param0 + .byte 0x5e + .4byte \param0 + .endm + + .macro is_of_type bank, type + .byte 0x5f + .byte \bank + .byte \type + .endm + + .macro check_ability bank, ability + .byte 0x60 + .byte \bank + .byte \ability + .endm + + .macro if_flash_fired bank, param1 + .byte 0x61 + .byte \bank + .4byte \param1 + .endm + + .macro if_holds_item bank, param1, param2 + .byte 0x62 + .byte \bank + .2byte \param1 + .4byte \param2 + .endm + +@ useful script macros + .macro get_curr_move_type + get_type AI_TYPE_MOVE + .endm + + .macro get_user_type1 + get_type AI_TYPE1_USER + .endm + + .macro get_user_type2 + get_type AI_TYPE2_USER + .endm + + .macro get_target_type1 + get_type AI_TYPE1_TARGET + .endm + + .macro get_target_type2 + get_type AI_TYPE2_TARGET + .endm + + .macro if_ability bank, ability, ptr + check_ability \bank, \ability + if_equal 1, \ptr + .endm + + .macro if_no_ability bank, ability, ptr + check_ability \bank, \ability + if_equal 0, \ptr + .endm + + .macro if_type bank, type, ptr + is_of_type \bank, \type + if_equal 1, \ptr + .endm + + .macro if_no_type bank, type, ptr + is_of_type \bank, \type + if_equal 0, \ptr + .endm + + .macro if_target_faster ptr + if_user_goes 1, \ptr + .endm + + .macro if_user_faster ptr + if_user_goes 0, \ptr + .endm + + .macro if_double_battle ptr + is_double_battle + if_equal 1, \ptr + .endm + + .macro if_not_double_battle ptr + is_double_battle + if_equal 0, \ptr + .endm + + .macro if_any_move_disabled bank, ptr + if_any_move_disabled_or_encored \bank, 0, \ptr + .endm + + .macro if_any_move_encored bank, ptr + if_any_move_disabled_or_encored \bank, 1, \ptr + .endm diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 834c4bf9d4..2b9b6864b1 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -1,81 +1,3393 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "include/constants/battle_ai.h" + .include "include/constants/abilities.h" + .include "include/constants/items.h" + .include "include/constants/moves.h" + .include "include/constants/battle_move_effects.h" + .include "include/constants/hold_effects.h" + .include "constants/battle_constants.inc" + .include "constants/type_constants.inc" + .include "asm/macros/battle_ai_script.inc" .section script_data, "aw", %progbits .align 2 gBattleAI_ScriptsTable:: @ 82DBEF8 - .4byte gBattleAIScript_82DBF78 - .4byte gBattleAIScript_82DDE3F - .4byte gBattleAIScript_82DC7B0 - .4byte gBattleAIScript_82DDE71 - .4byte gBattleAIScript_82DDEDD - .4byte gBattleAIScript_82DDEC8 - .4byte gBattleAIScript_82DDF09 - .4byte gBattleAIScript_82DDFB4 - .4byte gBattleAIScript_82DE193 - .4byte gBattleAIScript_82DE2ED - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE34E - .4byte gBattleAIScript_82DE309 - .4byte gBattleAIScript_82DE337 - .4byte gBattleAIScript_82DE33E + .4byte AI_CheckBadMove + .4byte AI_CheckViability + .4byte AI_TryToFaint + .4byte AI_SetupFirstTurn + .4byte AI_Risky + .4byte AI_PreferStrongestMove + .4byte AI_PreferBatonPass + .4byte AI_DoubleBattle + .4byte AI_HPAware + .4byte AI_Unknown + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Ret + .4byte AI_Roaming + .4byte AI_Safari + .4byte AI_FirstBattle -gBattleAIScript_82DBF78:: @ 82DBF78 - .incbin "baserom.gba", 0x2dbf78, 0x838 +AI_CheckBadMove: + if_target_is_ally AI_Ret + if_move MOVE_FISSURE, BattleAIScript_82DBF92 + if_move MOVE_HORN_DRILL, BattleAIScript_82DBF92 + get_how_powerful_move_is + if_equal 0, BattleAIScript_82DBFFE -gBattleAIScript_82DC7B0:: @ 82DC7B0 - .incbin "baserom.gba", 0x2dc7b0, 0x168F +BattleAIScript_82DBF92: + if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 + get_ability AI_TARGET + if_equal ABILITY_VOLT_ABSORB, BattleAIScript_82DBFBD + if_equal ABILITY_WATER_ABSORB, BattleAIScript_82DBFCA + if_equal ABILITY_FLASH_FIRE, BattleAIScript_82DBFD7 + if_equal ABILITY_WONDER_GUARD, BattleAIScript_82DBFE4 + if_equal ABILITY_LEVITATE, BattleAIScript_82DBFEF + goto BattleAIScript_82DBFF7 -gBattleAIScript_82DDE3F:: @ 82DDE3F - .incbin "baserom.gba", 0x2dde3f, 0x32 +BattleAIScript_82DBFBD: + get_curr_move_type + if_equal_ TYPE_ELECTRIC, Score_Minus12 + goto BattleAIScript_82DBFF7 -gBattleAIScript_82DDE71:: @ 82DDE71 - .incbin "baserom.gba", 0x2dde71, 0x57 +BattleAIScript_82DBFCA: + get_curr_move_type + if_equal_ TYPE_WATER, Score_Minus12 + goto BattleAIScript_82DBFF7 -gBattleAIScript_82DDEC8:: @ 82DDEC8 - .incbin "baserom.gba", 0x2ddec8, 0x15 +BattleAIScript_82DBFD7: + get_curr_move_type + if_equal_ TYPE_FIRE, Score_Minus12 + goto BattleAIScript_82DBFF7 -gBattleAIScript_82DDEDD:: @ 82DDEDD - .incbin "baserom.gba", 0x2ddedd, 0x2c +BattleAIScript_82DBFE4: + if_type_effectiveness AI_EFFECTIVENESS_x2, BattleAIScript_82DBFF7 + goto Score_Minus10 -gBattleAIScript_82DDF09:: @ 82DDF09 - .incbin "baserom.gba", 0x2ddf09, 0xab +BattleAIScript_82DBFEF: + get_curr_move_type + if_equal_ TYPE_GROUND, Score_Minus10 -gBattleAIScript_82DDFB4:: @ 82DDFB4 - .incbin "baserom.gba", 0x2ddfb4, 0x1df +BattleAIScript_82DBFF7: + get_how_powerful_move_is + if_equal 0, BattleAIScript_82DBFFE -gBattleAIScript_82DE193:: @ 82DE193 - .incbin "baserom.gba", 0x2de193, 0x15a +BattleAIScript_82DBFFE: + get_ability AI_TARGET + if_not_equal ABILITY_SOUNDPROOF, BattleAIScript_82DC045 + if_move MOVE_GROWL, Score_Minus10 + if_move MOVE_ROAR, Score_Minus10 + if_move MOVE_SING, Score_Minus10 + if_move MOVE_SUPERSONIC, Score_Minus10 + if_move MOVE_SCREECH, Score_Minus10 + if_move MOVE_SNORE, Score_Minus10 + if_move MOVE_UPROAR, Score_Minus10 + if_move MOVE_METAL_SOUND, Score_Minus10 + if_move MOVE_GRASS_WHISTLE, Score_Minus10 -gBattleAIScript_82DE2ED:: @ 82DE2ED - .incbin "baserom.gba", 0x2de2ed, 0x1c +BattleAIScript_82DC045: + if_effect EFFECT_SLEEP, BattleAIScript_82DC2D4 + if_effect EFFECT_EXPLOSION, BattleAIScript_82DC2F7 + if_effect EFFECT_DREAM_EATER, BattleAIScript_82DC330 + if_effect EFFECT_ATTACK_UP, BattleAIScript_82DC348 + if_effect EFFECT_DEFENSE_UP, BattleAIScript_82DC351 + if_effect EFFECT_SPEED_UP, BattleAIScript_82DC35A + if_effect EFFECT_SPECIAL_ATTACK_UP, BattleAIScript_82DC363 + if_effect EFFECT_SPECIAL_DEFENSE_UP, BattleAIScript_82DC36C + if_effect EFFECT_ACCURACY_UP, BattleAIScript_82DC375 + if_effect EFFECT_EVASION_UP, BattleAIScript_82DC37E + if_effect EFFECT_ATTACK_DOWN, BattleAIScript_82DC387 + if_effect EFFECT_DEFENSE_DOWN, BattleAIScript_82DC39C + if_effect EFFECT_SPEED_DOWN, BattleAIScript_82DC3A9 + if_effect EFFECT_SPECIAL_ATTACK_DOWN, BattleAIScript_82DC3BF + if_effect EFFECT_SPECIAL_DEFENSE_DOWN, BattleAIScript_82DC3CC + if_effect EFFECT_ACCURACY_DOWN, BattleAIScript_82DC3D9 + if_effect EFFECT_EVASION_DOWN, BattleAIScript_82DC3EE + if_effect EFFECT_HAZE, BattleAIScript_82DC405 + if_effect EFFECT_BIDE, BattleAIScript_82DC4ED + if_effect EFFECT_ROAR, BattleAIScript_82DC47B + if_effect EFFECT_TOXIC, BattleAIScript_82DC48C + if_effect EFFECT_LIGHT_SCREEN, BattleAIScript_82DC4C5 + if_effect EFFECT_OHKO, BattleAIScript_82DC4D0 + if_effect EFFECT_RAZOR_WIND, BattleAIScript_82DC4ED + if_effect EFFECT_SUPER_FANG, BattleAIScript_82DC4ED + if_effect EFFECT_MIST, BattleAIScript_82DC507 + if_effect EFFECT_FOCUS_ENERGY, BattleAIScript_82DC512 + if_effect EFFECT_CONFUSE, BattleAIScript_82DC51D + if_effect EFFECT_ATTACK_UP_2, BattleAIScript_82DC348 + if_effect EFFECT_DEFENSE_UP_2, BattleAIScript_82DC351 + if_effect EFFECT_SPEED_UP_2, BattleAIScript_82DC35A + if_effect EFFECT_SPECIAL_ATTACK_UP_2, BattleAIScript_82DC363 + if_effect EFFECT_SPECIAL_DEFENSE_UP_2, BattleAIScript_82DC36C + if_effect EFFECT_ACCURACY_UP_2, BattleAIScript_82DC375 + if_effect EFFECT_EVASION_UP_2, BattleAIScript_82DC37E + if_effect EFFECT_ATTACK_DOWN_2, BattleAIScript_82DC387 + if_effect EFFECT_DEFENSE_DOWN_2, BattleAIScript_82DC39C + if_effect EFFECT_SPEED_DOWN_2, BattleAIScript_82DC3A9 + if_effect EFFECT_SPECIAL_ATTACK_DOWN_2, BattleAIScript_82DC3BF + if_effect EFFECT_SPECIAL_DEFENSE_DOWN_2, BattleAIScript_82DC3CC + if_effect EFFECT_ACCURACY_DOWN_2, BattleAIScript_82DC3D9 + if_effect EFFECT_EVASION_DOWN_2, BattleAIScript_82DC3EE + if_effect EFFECT_REFLECT, BattleAIScript_82DC53A + if_effect EFFECT_POISON, BattleAIScript_82DC48C + if_effect EFFECT_PARALYZE, BattleAIScript_82DC545 + if_effect EFFECT_SUBSTITUTE, BattleAIScript_82DC568 + if_effect EFFECT_RECHARGE, BattleAIScript_82DC4ED + if_effect EFFECT_LEECH_SEED, BattleAIScript_82DC57A + if_effect EFFECT_DISABLE, BattleAIScript_82DC595 + if_effect EFFECT_LEVEL_DAMAGE, BattleAIScript_82DC4ED + if_effect EFFECT_PSYWAVE, BattleAIScript_82DC4ED + if_effect EFFECT_COUNTER, BattleAIScript_82DC4ED + if_effect EFFECT_ENCORE, BattleAIScript_82DC59D + if_effect EFFECT_SNORE, BattleAIScript_82DC5A5 + if_effect EFFECT_SLEEP_TALK, BattleAIScript_82DC5A5 + if_effect EFFECT_FLAIL, BattleAIScript_82DC4ED + if_effect EFFECT_MEAN_LOOK, BattleAIScript_82DC5B0 + if_effect EFFECT_NIGHTMARE, BattleAIScript_82DC31B + if_effect EFFECT_MINIMIZE, BattleAIScript_82DC37E + if_effect EFFECT_CURSE, BattleAIScript_82DC5BB + if_effect EFFECT_SPIKES, BattleAIScript_82DC5CC + if_effect EFFECT_FORESIGHT, BattleAIScript_82DC5D7 + if_effect EFFECT_PERISH_SONG, BattleAIScript_82DC5E2 + if_effect EFFECT_SANDSTORM, BattleAIScript_82DC5ED + if_effect EFFECT_SWAGGER, BattleAIScript_82DC51D + if_effect EFFECT_ATTRACT, BattleAIScript_82DC5F5 + if_effect EFFECT_RETURN, BattleAIScript_82DC4ED + if_effect EFFECT_PRESENT, BattleAIScript_82DC4ED + if_effect EFFECT_FRUSTRATION, BattleAIScript_82DC4ED + if_effect EFFECT_SAFEGUARD, BattleAIScript_82DC635 + if_effect EFFECT_MAGNITUDE, BattleAIScript_82DC4E5 + if_effect EFFECT_BATON_PASS, BattleAIScript_82DC650 + if_effect EFFECT_SONICBOOM, BattleAIScript_82DC4ED + if_effect EFFECT_RAIN_DANCE, BattleAIScript_82DC659 + if_effect EFFECT_SUNNY_DAY, BattleAIScript_82DC661 + if_effect EFFECT_BELLY_DRUM, BattleAIScript_82DC341 + if_effect EFFECT_PSYCH_UP, BattleAIScript_82DC405 + if_effect EFFECT_MIRROR_COAT, BattleAIScript_82DC4ED + if_effect EFFECT_SKULL_BASH, BattleAIScript_82DC4ED + if_effect EFFECT_FUTURE_SIGHT, BattleAIScript_82DC669 + if_effect EFFECT_TELEPORT, Score_Minus10 + if_effect EFFECT_DEFENSE_CURL, BattleAIScript_82DC351 + if_effect EFFECT_FAKE_OUT, BattleAIScript_82DC680 + if_effect EFFECT_STOCKPILE, BattleAIScript_82DC689 + if_effect EFFECT_SPIT_UP, BattleAIScript_82DC692 + if_effect EFFECT_SWALLOW, BattleAIScript_82DC692 + if_effect EFFECT_HAIL, BattleAIScript_82DC6A1 + if_effect EFFECT_TORMENT, BattleAIScript_82DC6A9 + if_effect EFFECT_FLATTER, BattleAIScript_82DC51D + if_effect EFFECT_WILL_O_WISP, BattleAIScript_82DC6B4 + if_effect EFFECT_MEMENTO, BattleAIScript_82DC640 + if_effect EFFECT_FOCUS_PUNCH, BattleAIScript_82DC4ED + if_effect EFFECT_HELPING_HAND, BattleAIScript_82DC6E3 + if_effect EFFECT_TRICK, BattleAIScript_82DC6EB + if_effect EFFECT_INGRAIN, BattleAIScript_82DC6F4 + if_effect EFFECT_SUPERPOWER, BattleAIScript_82DC4ED + if_effect EFFECT_RECYCLE, BattleAIScript_82DC6FF + if_effect EFFECT_KNOCK_OFF, BattleAIScript_82DC6EB + if_effect EFFECT_ENDEAVOR, BattleAIScript_82DC4ED + if_effect EFFECT_IMPRISON, BattleAIScript_82DC708 + if_effect EFFECT_REFRESH, BattleAIScript_82DC713 + if_effect EFFECT_LOW_KICK, BattleAIScript_82DC4ED + if_effect EFFECT_MUD_SPORT, BattleAIScript_82DC71E + if_effect EFFECT_TICKLE, BattleAIScript_82DC729 + if_effect EFFECT_COSMIC_POWER, BattleAIScript_82DC73A + if_effect EFFECT_BULK_UP, BattleAIScript_82DC74B + if_effect EFFECT_WATER_SPORT, BattleAIScript_82DC75C + if_effect EFFECT_CALM_MIND, BattleAIScript_82DC767 + if_effect EFFECT_DRAGON_DANCE, BattleAIScript_82DC778 + end -gBattleAIScript_82DE309:: @ 82DE309 - .incbin "baserom.gba", 0x2de309, 0x2e +BattleAIScript_82DC2D4: + get_ability AI_TARGET + if_equal ABILITY_INSOMNIA, Score_Minus10 + if_equal ABILITY_VITAL_SPIRIT, Score_Minus10 + if_status AI_TARGET, STATUS_ANY, Score_Minus10 + if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 + end -gBattleAIScript_82DE337:: @ 82DE337 - .incbin "baserom.gba", 0x2de337, 0x7 +BattleAIScript_82DC2F7: + if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 + get_ability AI_TARGET + if_equal ABILITY_DAMP, Score_Minus10 + count_usable_party_mons AI_USER + if_not_equal 0, BattleAIScript_82DC31A + count_usable_party_mons AI_TARGET + if_not_equal 0, Score_Minus10 + goto Score_Minus1 -gBattleAIScript_82DE33E:: @ 82DE33E - .incbin "baserom.gba", 0x2de33e, 0x10 +BattleAIScript_82DC31A: + end -gBattleAIScript_82DE34E:: @ 82DE34E - .incbin "baserom.gba", 0x2de34e, 0x2 +BattleAIScript_82DC31B: + if_status2 AI_TARGET, STATUS2_NIGHTMARE, Score_Minus10 + if_not_status AI_TARGET, STATUS_SLEEP, Score_Minus8 + end + +BattleAIScript_82DC330: + if_not_status AI_TARGET, STATUS_SLEEP, Score_Minus8 + if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 + end + +BattleAIScript_82DC341: + if_hp_less_than AI_USER, 51, Score_Minus10 + +BattleAIScript_82DC348: + if_stat_level_equal AI_USER, ATK, 12, Score_Minus10 + end + +BattleAIScript_82DC351: + if_stat_level_equal AI_USER, DEF, 12, Score_Minus10 + end + +BattleAIScript_82DC35A: + if_stat_level_equal AI_USER, SPEED, 12, Score_Minus10 + end + +BattleAIScript_82DC363: + if_stat_level_equal AI_USER, SPATK, 12, Score_Minus10 + end + +BattleAIScript_82DC36C: + if_stat_level_equal AI_USER, SPDEF, 12, Score_Minus10 + end + +BattleAIScript_82DC375: + if_stat_level_equal AI_USER, ACC, 12, Score_Minus10 + end + +BattleAIScript_82DC37E: + if_stat_level_equal AI_USER, EVASION, 12, Score_Minus10 + end + +BattleAIScript_82DC387: + if_stat_level_equal AI_TARGET, ATK, 0, Score_Minus10 + get_ability AI_TARGET + if_equal ABILITY_HYPER_CUTTER, Score_Minus10 + goto BattleAIScript_82DC3F6 + +BattleAIScript_82DC39C: + if_stat_level_equal AI_TARGET, DEF, 0, Score_Minus10 + goto BattleAIScript_82DC3F6 + +BattleAIScript_82DC3A9: + if_stat_level_equal AI_TARGET, SPEED, 0, Score_Minus10 + if_ability AI_TARGET, ABILITY_SPEED_BOOST, Score_Minus10 + goto BattleAIScript_82DC3F6 + +BattleAIScript_82DC3BF: + if_stat_level_equal AI_TARGET, SPATK, 0, Score_Minus10 + goto BattleAIScript_82DC3F6 + +BattleAIScript_82DC3CC: + if_stat_level_equal AI_TARGET, SPDEF, 0, Score_Minus10 + goto BattleAIScript_82DC3F6 + +BattleAIScript_82DC3D9: + if_stat_level_equal AI_TARGET, ACC, 0, Score_Minus10 + get_ability AI_TARGET + if_equal ABILITY_KEEN_EYE, Score_Minus10 + goto BattleAIScript_82DC3F6 + +BattleAIScript_82DC3EE: + if_stat_level_equal AI_TARGET, EVASION, 0, Score_Minus10 + +BattleAIScript_82DC3F6: + get_ability AI_TARGET + if_equal ABILITY_CLEAR_BODY, Score_Minus10 + if_equal ABILITY_WHITE_SMOKE, Score_Minus10 + end + +BattleAIScript_82DC405: + if_stat_level_less_than AI_USER, ATK, 6, BattleAIScript_82DC47A + if_stat_level_less_than AI_USER, DEF, 6, BattleAIScript_82DC47A + if_stat_level_less_than AI_USER, SPEED, 6, BattleAIScript_82DC47A + if_stat_level_less_than AI_USER, SPATK, 6, BattleAIScript_82DC47A + if_stat_level_less_than AI_USER, SPDEF, 6, BattleAIScript_82DC47A + if_stat_level_less_than AI_USER, ACC, 6, BattleAIScript_82DC47A + if_stat_level_less_than AI_USER, EVASION, 6, BattleAIScript_82DC47A + if_stat_level_more_than AI_TARGET, ATK, 6, BattleAIScript_82DC47A + if_stat_level_more_than AI_TARGET, DEF, 6, BattleAIScript_82DC47A + if_stat_level_more_than AI_TARGET, SPEED, 6, BattleAIScript_82DC47A + if_stat_level_more_than AI_TARGET, SPATK, 6, BattleAIScript_82DC47A + if_stat_level_more_than AI_TARGET, SPDEF, 6, BattleAIScript_82DC47A + if_stat_level_more_than AI_TARGET, ACC, 6, BattleAIScript_82DC47A + if_stat_level_more_than AI_TARGET, EVASION, 6, BattleAIScript_82DC47A + goto Score_Minus10 + +BattleAIScript_82DC47A: + end + +BattleAIScript_82DC47B: + count_usable_party_mons AI_TARGET + if_equal 0, Score_Minus10 + get_ability AI_TARGET + if_equal ABILITY_SUCTION_CUPS, Score_Minus10 + end + +BattleAIScript_82DC48C: + get_target_type1 + if_equal TYPE_STEEL, Score_Minus10 + if_equal TYPE_POISON, Score_Minus10 + get_target_type2 + if_equal TYPE_STEEL, Score_Minus10 + if_equal TYPE_POISON, Score_Minus10 + get_ability AI_TARGET + if_equal ABILITY_IMMUNITY, Score_Minus10 + if_status AI_TARGET, STATUS_ANY, Score_Minus10 + if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 + end + +BattleAIScript_82DC4C5: + if_side_affecting AI_USER, SIDE_STATUS_LIGHTSCREEN, Score_Minus8 + end + +BattleAIScript_82DC4D0: + if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 + get_ability AI_TARGET + if_equal ABILITY_STURDY, Score_Minus10 + if_level_cond 1, Score_Minus10 + end + +BattleAIScript_82DC4E5: + get_ability AI_TARGET + if_equal ABILITY_LEVITATE, Score_Minus10 + +BattleAIScript_82DC4ED: + if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 + get_ability AI_TARGET + if_not_equal ABILITY_WONDER_GUARD, BattleAIScript_82DC506 + if_type_effectiveness AI_EFFECTIVENESS_x2, BattleAIScript_82DC506 + goto Score_Minus10 + +BattleAIScript_82DC506: + end + +BattleAIScript_82DC507: + if_side_affecting AI_USER, SIDE_STATUS_MIST, Score_Minus8 + end + +BattleAIScript_82DC512: + if_status2 AI_USER, STATUS2_FOCUS_ENERGY, Score_Minus10 + end + +BattleAIScript_82DC51D: + if_status2 AI_TARGET, STATUS2_CONFUSION, Score_Minus5 + get_ability AI_TARGET + if_equal ABILITY_OWN_TEMPO, Score_Minus10 + if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 + end + +BattleAIScript_82DC53A: + if_side_affecting AI_USER, SIDE_STATUS_REFLECT, Score_Minus8 + end + +BattleAIScript_82DC545: + if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 + get_ability AI_TARGET + if_equal ABILITY_LIMBER, Score_Minus10 + if_status AI_TARGET, STATUS_ANY, Score_Minus10 + if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 + end + +BattleAIScript_82DC568: + if_status2 AI_USER, STATUS2_SUBSTITUTE, Score_Minus8 + if_hp_less_than AI_USER, 26, Score_Minus10 + end + +BattleAIScript_82DC57A: + if_status3 AI_TARGET, STATUS3_LEECHSEED, Score_Minus10 + get_target_type1 + if_equal TYPE_GRASS, Score_Minus10 + get_target_type2 + if_equal TYPE_GRASS, Score_Minus10 + end + +BattleAIScript_82DC595: + if_any_move_disabled AI_TARGET, Score_Minus8 + end + +BattleAIScript_82DC59D: + if_any_move_encored AI_TARGET, Score_Minus8 + end + +BattleAIScript_82DC5A5: + if_not_status AI_USER, STATUS_SLEEP, Score_Minus8 + end + +BattleAIScript_82DC5B0: + if_status2 AI_TARGET, STATUS2_ESCAPE_PREVENTION, Score_Minus10 + end + +BattleAIScript_82DC5BB: + if_stat_level_equal AI_USER, ATK, 12, Score_Minus10 + if_stat_level_equal AI_USER, DEF, 12, Score_Minus8 + end + +BattleAIScript_82DC5CC: + if_side_affecting AI_TARGET, SIDE_STATUS_SPIKES, Score_Minus10 + end + +BattleAIScript_82DC5D7: + if_status2 AI_TARGET, STATUS2_FORESIGHT, Score_Minus10 + end + +BattleAIScript_82DC5E2: + if_status3 AI_TARGET, STATUS3_PERISH_SONG, Score_Minus10 + end + +BattleAIScript_82DC5ED: + get_weather + if_equal AI_WEATHER_SANDSTORM, Score_Minus8 + end + +BattleAIScript_82DC5F5: + if_status2 AI_TARGET, STATUS2_INFATUATION, Score_Minus10 + get_ability AI_TARGET + if_equal ABILITY_OBLIVIOUS, Score_Minus10 + get_gender AI_USER + if_equal 0, BattleAIScript_82DC61A + if_equal 254, BattleAIScript_82DC627 + goto Score_Minus10 + +BattleAIScript_82DC61A: + get_gender AI_TARGET + if_equal 254, BattleAIScript_82DC634 + goto Score_Minus10 + +BattleAIScript_82DC627: + get_gender AI_TARGET + if_equal 0, BattleAIScript_82DC634 + goto Score_Minus10 + +BattleAIScript_82DC634: + end + +BattleAIScript_82DC635: + if_side_affecting AI_USER, SIDE_STATUS_SAFEGUARD, Score_Minus8 + end + +BattleAIScript_82DC640: + if_stat_level_equal AI_TARGET, ATK, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, SPATK, 0, Score_Minus8 + +BattleAIScript_82DC650: + count_usable_party_mons AI_USER + if_equal 0, Score_Minus10 + end + +BattleAIScript_82DC659: + get_weather + if_equal AI_WEATHER_RAIN, Score_Minus8 + end + +BattleAIScript_82DC661: + get_weather + if_equal AI_WEATHER_SUN, Score_Minus8 + end + +BattleAIScript_82DC669: + if_side_affecting AI_TARGET, SIDE_STATUS_FUTUREATTACK, Score_Minus12 + if_side_affecting AI_USER, SIDE_STATUS_FUTUREATTACK, Score_Minus12 + score +5 + end + +BattleAIScript_82DC680: + is_first_turn_for AI_USER + if_equal 0, Score_Minus10 + end + +BattleAIScript_82DC689: + get_stockpile_count AI_USER + if_equal 3, Score_Minus10 + end + +BattleAIScript_82DC692: + if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 + get_stockpile_count AI_USER + if_equal 0, Score_Minus10 + end + +BattleAIScript_82DC6A1: + get_weather + if_equal AI_WEATHER_HAIL, Score_Minus8 + end + +BattleAIScript_82DC6A9: + if_status2 AI_TARGET, STATUS2_TORMENT, Score_Minus10 + end + +BattleAIScript_82DC6B4: + get_ability AI_TARGET + if_equal ABILITY_WATER_VEIL, Score_Minus10 + if_status AI_TARGET, STATUS_ANY, Score_Minus10 + if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10 + if_type_effectiveness AI_EFFECTIVENESS_x0_5, Score_Minus10 + if_type_effectiveness AI_EFFECTIVENESS_x0_25, Score_Minus10 + if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10 + end + +BattleAIScript_82DC6E3: + if_not_double_battle Score_Minus10 + end + +BattleAIScript_82DC6EB: + get_ability AI_TARGET + if_equal ABILITY_STICKY_HOLD, Score_Minus10 + end + +BattleAIScript_82DC6F4: + if_status3 AI_USER, STATUS3_ROOTED, Score_Minus10 + end + +BattleAIScript_82DC6FF: + get_used_held_item AI_USER + if_equal 0, Score_Minus10 + end + +BattleAIScript_82DC708: + if_status3 AI_USER, STATUS3_IMPRISONED_OTHERS, Score_Minus10 + end + +BattleAIScript_82DC713: + if_not_status AI_USER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, Score_Minus10 + end + +BattleAIScript_82DC71E: + if_status3 AI_USER, STATUS3_MUDSPORT, Score_Minus10 + end + +BattleAIScript_82DC729: + if_stat_level_equal AI_TARGET, ATK, 0, Score_Minus10 + if_stat_level_equal AI_TARGET, DEF, 0, Score_Minus8 + end + +BattleAIScript_82DC73A: + if_stat_level_equal AI_USER, DEF, 12, Score_Minus10 + if_stat_level_equal AI_USER, SPDEF, 12, Score_Minus8 + end + +BattleAIScript_82DC74B: + if_stat_level_equal AI_USER, ATK, 12, Score_Minus10 + if_stat_level_equal AI_USER, DEF, 12, Score_Minus8 + end + +BattleAIScript_82DC75C: + if_status3 AI_USER, STATUS3_WATERSPORT, Score_Minus10 + end + +BattleAIScript_82DC767: + if_stat_level_equal AI_USER, SPATK, 12, Score_Minus10 + if_stat_level_equal AI_USER, SPDEF, 12, Score_Minus8 + end + +BattleAIScript_82DC778: + if_stat_level_equal AI_USER, ATK, 12, Score_Minus10 + if_stat_level_equal AI_USER, SPEED, 12, Score_Minus8 + end + +Score_Minus1: + score -1 + end + +Score_Minus2: + score -2 + end + +Score_Minus3: + score -3 + end + +Score_Minus5: + score -5 + end + +Score_Minus8: + score -8 + end + +Score_Minus10: + score -10 + end + +Score_Minus12: + score -12 + end + +Score_Minus30: + score -30 + end + +Score_Plus1: + score +1 + end + +Score_Plus2: + score +2 + end + +Score_Plus3: + score +3 + end + +Score_Plus5: + score +5 + end + +Score_Plus10: + score +10 + end + +AI_TryToFaint: + if_target_is_ally AI_Ret + if_effect EFFECT_SLEEP, BattleAIScript_82DCA92 + if_effect EFFECT_ABSORB, BattleAIScript_82DCAAE + if_effect EFFECT_EXPLOSION, BattleAIScript_82DCAC8 + if_effect EFFECT_DREAM_EATER, BattleAIScript_82DCB26 + if_effect EFFECT_MIRROR_MOVE, BattleAIScript_82DCB3A + if_effect EFFECT_ATTACK_UP, BattleAIScript_82DCBBC + if_effect EFFECT_DEFENSE_UP, BattleAIScript_82DCBF7 + if_effect EFFECT_SPEED_UP, BattleAIScript_82DCC5D + if_effect EFFECT_SPECIAL_ATTACK_UP, BattleAIScript_82DCC73 + if_effect EFFECT_SPECIAL_DEFENSE_UP, BattleAIScript_82DCCAE + if_effect EFFECT_ACCURACY_UP, BattleAIScript_82DCD14 + if_effect EFFECT_EVASION_UP, BattleAIScript_82DCD2E + if_effect EFFECT_ALWAYS_HIT, BattleAIScript_82DCDC8 + if_effect EFFECT_ATTACK_DOWN, BattleAIScript_82DCDF8 + if_effect EFFECT_DEFENSE_DOWN, BattleAIScript_82DCE4A + if_effect EFFECT_SPEED_DOWN, BattleAIScript_82DCE81 + if_effect EFFECT_SPECIAL_ATTACK_DOWN, BattleAIScript_82DCE97 + if_effect EFFECT_SPECIAL_DEFENSE_DOWN, BattleAIScript_82DCEEB + if_effect EFFECT_ACCURACY_DOWN, BattleAIScript_82DCF0C + if_effect EFFECT_EVASION_DOWN, BattleAIScript_82DCFA0 + if_effect EFFECT_HAZE, BattleAIScript_82DCFC1 + if_effect EFFECT_BIDE, BattleAIScript_82DD084 + if_effect EFFECT_ROAR, BattleAIScript_82DD08E + if_effect EFFECT_CONVERSION, BattleAIScript_82DD0C6 + if_effect EFFECT_RESTORE_HP, BattleAIScript_82DD0F7 + if_effect EFFECT_TOXIC, BattleAIScript_82DD150 + if_effect EFFECT_LIGHT_SCREEN, BattleAIScript_82DD18F + if_effect EFFECT_REST, BattleAIScript_82DD1BE + if_effect EFFECT_OHKO, BattleAIScript_82DD21E + if_effect EFFECT_RAZOR_WIND, BattleAIScript_82DDA0B + if_effect EFFECT_SUPER_FANG, BattleAIScript_82DD21F + if_effect EFFECT_TRAP, BattleAIScript_82DD229 + if_effect EFFECT_HIGH_CRITICAL, BattleAIScript_82DD25F + if_effect EFFECT_CONFUSE, BattleAIScript_82DD296 + if_effect EFFECT_ATTACK_UP_2, BattleAIScript_82DCBBC + if_effect EFFECT_DEFENSE_UP_2, BattleAIScript_82DCBF7 + if_effect EFFECT_SPEED_UP_2, BattleAIScript_82DCC5D + if_effect EFFECT_SPECIAL_ATTACK_UP_2, BattleAIScript_82DCC73 + if_effect EFFECT_SPECIAL_DEFENSE_UP_2, BattleAIScript_82DCCAE + if_effect EFFECT_ACCURACY_UP_2, BattleAIScript_82DCD14 + if_effect EFFECT_EVASION_UP_2, BattleAIScript_82DCD2E + if_effect EFFECT_ATTACK_DOWN_2, BattleAIScript_82DCDF8 + if_effect EFFECT_DEFENSE_DOWN_2, BattleAIScript_82DCE4A + if_effect EFFECT_SPEED_DOWN_2, BattleAIScript_82DCE81 + if_effect EFFECT_SPECIAL_ATTACK_DOWN_2, BattleAIScript_82DCE97 + if_effect EFFECT_SPECIAL_DEFENSE_DOWN_2, BattleAIScript_82DCEEB + if_effect EFFECT_ACCURACY_DOWN_2, BattleAIScript_82DCF0C + if_effect EFFECT_EVASION_DOWN_2, BattleAIScript_82DCFA0 + if_effect EFFECT_REFLECT, BattleAIScript_82DD2D3 + if_effect EFFECT_POISON, BattleAIScript_82DD303 + if_effect EFFECT_PARALYZE, BattleAIScript_82DD314 + if_effect EFFECT_SWAGGER, BattleAIScript_82DD286 + if_effect EFFECT_SPEED_DOWN_HIT, BattleAIScript_82DCE6B + if_effect EFFECT_SKY_ATTACK, BattleAIScript_82DDA0B + if_effect EFFECT_VITAL_THROW, BattleAIScript_82DD331 + if_effect EFFECT_SUBSTITUTE, BattleAIScript_82DD354 + if_effect EFFECT_RECHARGE, BattleAIScript_82DD3EA + if_effect EFFECT_LEECH_SEED, BattleAIScript_82DD150 + if_effect EFFECT_DISABLE, BattleAIScript_82DD412 + if_effect EFFECT_COUNTER, BattleAIScript_82DD431 + if_effect EFFECT_ENCORE, BattleAIScript_82DD4E3 + if_effect EFFECT_PAIN_SPLIT, BattleAIScript_82DD54B + if_effect EFFECT_SNORE, BattleAIScript_82DD577 + if_effect EFFECT_LOCK_ON, BattleAIScript_82DD57A + if_effect EFFECT_SLEEP_TALK, BattleAIScript_82DD583 + if_effect EFFECT_DESTINY_BOND, BattleAIScript_82DD590 + if_effect EFFECT_FLAIL, BattleAIScript_82DD5C6 + if_effect EFFECT_HEAL_BELL, BattleAIScript_82DD60B + if_effect EFFECT_THIEF, BattleAIScript_82DD622 + if_effect EFFECT_MEAN_LOOK, BattleAIScript_82DD229 + if_effect EFFECT_MINIMIZE, BattleAIScript_82DCD2E + if_effect EFFECT_CURSE, BattleAIScript_82DD645 + if_effect EFFECT_PROTECT, BattleAIScript_82DD694 + if_effect EFFECT_FORESIGHT, BattleAIScript_82DD75D + if_effect EFFECT_ENDURE, BattleAIScript_82DD78B + if_effect EFFECT_BATON_PASS, BattleAIScript_82DD7A9 + if_effect EFFECT_PURSUIT, BattleAIScript_82DD845 + if_effect EFFECT_MORNING_SUN, BattleAIScript_82DD0DD + if_effect EFFECT_SYNTHESIS, BattleAIScript_82DD0DD + if_effect EFFECT_MOONLIGHT, BattleAIScript_82DD0DD + if_effect EFFECT_RAIN_DANCE, BattleAIScript_82DD87B + if_effect EFFECT_SUNNY_DAY, BattleAIScript_82DD8BA + if_effect EFFECT_BELLY_DRUM, BattleAIScript_82DD8E3 + if_effect EFFECT_PSYCH_UP, BattleAIScript_82DD8F2 + if_effect EFFECT_MIRROR_COAT, BattleAIScript_82DD95A + if_effect EFFECT_SKULL_BASH, BattleAIScript_82DDA0B + if_effect EFFECT_SOLARBEAM, BattleAIScript_82DDA0B + if_effect EFFECT_SEMI_INVULNERABLE, BattleAIScript_82DDA2F + if_effect EFFECT_SOFTBOILED, BattleAIScript_82DD0F7 + if_effect EFFECT_FAKE_OUT, BattleAIScript_82DDAB9 + if_effect EFFECT_SPIT_UP, BattleAIScript_82DDABC + if_effect EFFECT_SWALLOW, BattleAIScript_82DD0F7 + if_effect EFFECT_HAIL, BattleAIScript_82DDACD + if_effect EFFECT_FLATTER, BattleAIScript_82DD28E + if_effect EFFECT_MEMENTO, BattleAIScript_82DCAC8 + if_effect EFFECT_FACADE, BattleAIScript_82DDAF6 + if_effect EFFECT_FOCUS_PUNCH, BattleAIScript_82DDB03 + if_effect EFFECT_SMELLINGSALT, BattleAIScript_82DDB5C + if_effect EFFECT_TRICK, BattleAIScript_82DDB6E + if_effect EFFECT_ROLE_PLAY, BattleAIScript_82DDBB9 + if_effect EFFECT_SUPERPOWER, BattleAIScript_82DDBF0 + if_effect EFFECT_MAGIC_COAT, BattleAIScript_82DDC20 + if_effect EFFECT_RECYCLE, BattleAIScript_82DDC53 + if_effect EFFECT_REVENGE, BattleAIScript_82DDC72 + if_effect EFFECT_BRICK_BREAK, BattleAIScript_82DDCA0 + if_effect EFFECT_KNOCK_OFF, BattleAIScript_82DDCB2 + if_effect EFFECT_ENDEAVOR, BattleAIScript_82DDCCA + if_effect EFFECT_ERUPTION, BattleAIScript_82DDCF6 + if_effect EFFECT_SKILL_SWAP, BattleAIScript_82DDBB9 + if_effect EFFECT_IMPRISON, BattleAIScript_82DDD1E + if_effect EFFECT_REFRESH, BattleAIScript_82DDD2F + if_effect EFFECT_SNATCH, BattleAIScript_82DDD3E + if_effect EFFECT_BLAZE_KICK, BattleAIScript_82DD25F + if_effect EFFECT_MUD_SPORT, BattleAIScript_82DDDA8 + if_effect EFFECT_OVERHEAT, BattleAIScript_82DDDCE + if_effect EFFECT_TICKLE, BattleAIScript_82DCE4A + if_effect EFFECT_COSMIC_POWER, BattleAIScript_82DCCAE + if_effect EFFECT_BULK_UP, BattleAIScript_82DCBF7 + if_effect EFFECT_POISON_TAIL, BattleAIScript_82DD25F + if_effect EFFECT_WATER_SPORT, BattleAIScript_82DDDF6 + if_effect EFFECT_CALM_MIND, BattleAIScript_82DCCAE + if_effect EFFECT_DRAGON_DANCE, BattleAIScript_82DDE1C + end + +BattleAIScript_82DCA92: + if_has_move_with_effect AI_TARGET, EFFECT_DREAM_EATER, BattleAIScript_82DCAA5 + if_has_move_with_effect AI_TARGET, EFFECT_NIGHTMARE, BattleAIScript_82DCAA5 + goto BattleAIScript_82DCAAD + +BattleAIScript_82DCAA5: + if_random_less_than 128, BattleAIScript_82DCAAD + score +1 + +BattleAIScript_82DCAAD: + end + +BattleAIScript_82DCAAE: + if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DCABF + if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DCABF + goto BattleAIScript_82DCAC7 + +BattleAIScript_82DCABF: + if_random_less_than 50, BattleAIScript_82DCAC7 + score -3 + +BattleAIScript_82DCAC7: + end + +BattleAIScript_82DCAC8: + if_stat_level_less_than AI_TARGET, EVASION, 7, BattleAIScript_82DCAE2 + score -1 + if_stat_level_less_than AI_TARGET, EVASION, 10, BattleAIScript_82DCAE2 + if_random_less_than 128, BattleAIScript_82DCAE2 + score -1 + +BattleAIScript_82DCAE2: + if_hp_less_than AI_USER, 80, BattleAIScript_82DCAFA + if_target_faster BattleAIScript_82DCAFA + if_random_less_than 50, BattleAIScript_82DCB25 + goto Score_Minus3 + +BattleAIScript_82DCAFA: + if_hp_more_than AI_USER, 50, BattleAIScript_82DCB1D + if_random_less_than 128, BattleAIScript_82DCB09 + score +1 + +BattleAIScript_82DCB09: + if_hp_more_than AI_USER, 30, BattleAIScript_82DCB25 + if_random_less_than 50, BattleAIScript_82DCB25 + score +1 + goto BattleAIScript_82DCB25 + +BattleAIScript_82DCB1D: + if_random_less_than 50, BattleAIScript_82DCB25 + score -1 + +BattleAIScript_82DCB25: + end + +BattleAIScript_82DCB26: + if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DCB37 + if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DCB37 + goto BattleAIScript_82DCB39 + +BattleAIScript_82DCB37: + score -1 + +BattleAIScript_82DCB39: + end + +BattleAIScript_82DCB3A: + if_target_faster BattleAIScript_82DCB58 + get_last_used_bank_move AI_TARGET + if_not_in_hwords sMovesTable_82DCB6C, BattleAIScript_82DCB58 + if_random_less_than 128, BattleAIScript_82DCB6B + score +2 + goto BattleAIScript_82DCB6B + +BattleAIScript_82DCB58: + get_last_used_bank_move AI_TARGET + if_in_hwords sMovesTable_82DCB6C, BattleAIScript_82DCB6B + if_random_less_than 80, BattleAIScript_82DCB6B + score -1 + +BattleAIScript_82DCB6B: + end + +sMovesTable_82DCB6C: + .2byte MOVE_SLEEP_POWDER + .2byte MOVE_LOVELY_KISS + .2byte MOVE_SPORE + .2byte MOVE_HYPNOSIS + .2byte MOVE_SING + .2byte MOVE_GRASS_WHISTLE + .2byte MOVE_SHADOW_PUNCH + .2byte MOVE_SAND_ATTACK + .2byte MOVE_SMOKESCREEN + .2byte MOVE_TOXIC + .2byte MOVE_GUILLOTINE + .2byte MOVE_HORN_DRILL + .2byte MOVE_FISSURE + .2byte MOVE_SHEER_COLD + .2byte MOVE_CROSS_CHOP + .2byte MOVE_AEROBLAST + .2byte MOVE_CONFUSE_RAY + .2byte MOVE_SWEET_KISS + .2byte MOVE_SCREECH + .2byte MOVE_COTTON_SPORE + .2byte MOVE_SCARY_FACE + .2byte MOVE_FAKE_TEARS + .2byte MOVE_METAL_SOUND + .2byte MOVE_THUNDER_WAVE + .2byte MOVE_GLARE + .2byte MOVE_POISON_POWDER + .2byte MOVE_SHADOW_BALL + .2byte MOVE_DYNAMIC_PUNCH + .2byte MOVE_HYPER_BEAM + .2byte MOVE_EXTREME_SPEED + .2byte MOVE_THIEF + .2byte MOVE_COVET + .2byte MOVE_ATTRACT + .2byte MOVE_SWAGGER + .2byte MOVE_TORMENT + .2byte MOVE_FLATTER + .2byte MOVE_TRICK + .2byte MOVE_SUPERPOWER + .2byte MOVE_SKILL_SWAP + .2byte -1 + +BattleAIScript_82DCBBC: + if_stat_level_less_than AI_USER, ATK, 9, BattleAIScript_82DCBD1 + if_random_less_than 100, BattleAIScript_82DCBE0 + score -1 + goto BattleAIScript_82DCBE0 + +BattleAIScript_82DCBD1: + if_hp_not_equal AI_USER, 100, BattleAIScript_82DCBE0 + if_random_less_than 128, BattleAIScript_82DCBE0 + score +2 + +BattleAIScript_82DCBE0: + if_hp_more_than AI_USER, 70, BattleAIScript_82DCBF6 + if_hp_less_than AI_USER, 40, BattleAIScript_82DCBF4 + if_random_less_than 40, BattleAIScript_82DCBF6 + +BattleAIScript_82DCBF4: + score -2 + +BattleAIScript_82DCBF6: + end + +BattleAIScript_82DCBF7: + if_stat_level_less_than AI_USER, DEF, 9, BattleAIScript_82DCC0C + if_random_less_than 100, BattleAIScript_82DCC1B + score -1 + goto BattleAIScript_82DCC1B + +BattleAIScript_82DCC0C: + if_hp_not_equal AI_USER, 100, BattleAIScript_82DCC1B + if_random_less_than 128, BattleAIScript_82DCC1B + score +2 + +BattleAIScript_82DCC1B: + if_hp_less_than AI_USER, 70, BattleAIScript_82DCC28 + if_random_less_than 200, BattleAIScript_82DCC52 + +BattleAIScript_82DCC28: + if_hp_less_than AI_USER, 40, BattleAIScript_82DCC50 + get_last_used_bank_move AI_TARGET + get_move_power_from_result + if_equal 0, BattleAIScript_82DCC4A + get_last_used_bank_move AI_TARGET + get_move_type_from_result + if_not_in_bytes sTypesTable_82DCC53, BattleAIScript_82DCC50 + if_random_less_than 60, BattleAIScript_82DCC52 + +BattleAIScript_82DCC4A: + if_random_less_than 60, BattleAIScript_82DCC52 + +BattleAIScript_82DCC50: + score -2 + +BattleAIScript_82DCC52: + end + +sTypesTable_82DCC53: + .byte TYPE_NORMAL + .byte TYPE_FIGHTING + .byte TYPE_POISON + .byte TYPE_GROUND + .byte TYPE_FLYING + .byte TYPE_ROCK + .byte TYPE_BUG + .byte TYPE_GHOST + .byte TYPE_STEEL + .byte -1 + +BattleAIScript_82DCC5D: + if_target_faster BattleAIScript_82DCC6A + score -3 + goto BattleAIScript_82DCC72 + +BattleAIScript_82DCC6A: + if_random_less_than 70, BattleAIScript_82DCC72 + score +3 + +BattleAIScript_82DCC72: + end + +BattleAIScript_82DCC73: + if_stat_level_less_than AI_USER, SPATK, 9, BattleAIScript_82DCC88 + if_random_less_than 100, BattleAIScript_82DCC97 + score -1 + goto BattleAIScript_82DCC97 + +BattleAIScript_82DCC88: + if_hp_not_equal AI_USER, 100, BattleAIScript_82DCC97 + if_random_less_than 128, BattleAIScript_82DCC97 + score +2 + +BattleAIScript_82DCC97: + if_hp_more_than AI_USER, 70, BattleAIScript_82DCCAD + if_hp_less_than AI_USER, 40, BattleAIScript_82DCCAB + if_random_less_than 70, BattleAIScript_82DCCAD + +BattleAIScript_82DCCAB: + score -2 + +BattleAIScript_82DCCAD: + end + +BattleAIScript_82DCCAE: + if_stat_level_less_than AI_USER, SPDEF, 9, BattleAIScript_82DCCC3 + if_random_less_than 100, BattleAIScript_82DCCD2 + score -1 + goto BattleAIScript_82DCCD2 + +BattleAIScript_82DCCC3: + if_hp_not_equal AI_USER, 100, BattleAIScript_82DCCD2 + if_random_less_than 128, BattleAIScript_82DCCD2 + score +2 + +BattleAIScript_82DCCD2: + if_hp_less_than AI_USER, 70, BattleAIScript_82DCCDF + if_random_less_than 200, BattleAIScript_82DCD09 + +BattleAIScript_82DCCDF: + if_hp_less_than AI_USER, 40, BattleAIScript_82DCD07 + get_last_used_bank_move AI_TARGET + get_move_power_from_result + if_equal 0, BattleAIScript_82DCD01 + get_last_used_bank_move AI_TARGET + get_move_type_from_result + if_in_bytes sTypesTable_82DCD0A, BattleAIScript_82DCD07 + if_random_less_than 60, BattleAIScript_82DCD09 + +BattleAIScript_82DCD01: + if_random_less_than 60, BattleAIScript_82DCD09 + +BattleAIScript_82DCD07: + score -2 + +BattleAIScript_82DCD09: + end + +sTypesTable_82DCD0A: + .byte TYPE_NORMAL + .byte TYPE_FIGHTING + .byte TYPE_POISON + .byte TYPE_GROUND + .byte TYPE_FLYING + .byte TYPE_ROCK + .byte TYPE_BUG + .byte TYPE_GHOST + .byte TYPE_STEEL + .byte -1 + +BattleAIScript_82DCD14: + if_stat_level_less_than AI_USER, ACC, 9, BattleAIScript_82DCD24 + if_random_less_than 50, BattleAIScript_82DCD24 + score -2 + +BattleAIScript_82DCD24: + if_hp_more_than AI_USER, 70, BattleAIScript_82DCD2D + score -2 + +BattleAIScript_82DCD2D: + end + +BattleAIScript_82DCD2E: + if_hp_less_than AI_USER, 90, BattleAIScript_82DCD3D + if_random_less_than 100, BattleAIScript_82DCD3D + score +3 + +BattleAIScript_82DCD3D: + if_stat_level_less_than AI_USER, EVASION, 9, BattleAIScript_82DCD4D + if_random_less_than 128, BattleAIScript_82DCD4D + score -1 + +BattleAIScript_82DCD4D: + if_not_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DCD6C + if_hp_more_than AI_USER, 50, BattleAIScript_82DCD64 + if_random_less_than 80, BattleAIScript_82DCD6C + +BattleAIScript_82DCD64: + if_random_less_than 50, BattleAIScript_82DCD6C + score +3 + +BattleAIScript_82DCD6C: + if_not_status3 AI_TARGET, STATUS3_LEECHSEED, BattleAIScript_82DCD7E + if_random_less_than 70, BattleAIScript_82DCD7E + score +3 + +BattleAIScript_82DCD7E: + if_not_status3 AI_USER, STATUS3_ROOTED, BattleAIScript_82DCD90 + if_random_less_than 128, BattleAIScript_82DCD90 + score +2 + +BattleAIScript_82DCD90: + if_not_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DCDA2 + if_random_less_than 70, BattleAIScript_82DCDA2 + score +3 + +BattleAIScript_82DCDA2: + if_hp_more_than AI_USER, 70, BattleAIScript_82DCDC7 + if_stat_level_equal AI_USER, EVASION, 6, BattleAIScript_82DCDC7 + if_hp_less_than AI_USER, 40, BattleAIScript_82DCDC5 + if_hp_less_than AI_TARGET, 40, BattleAIScript_82DCDC5 + if_random_less_than 70, BattleAIScript_82DCDC7 + +BattleAIScript_82DCDC5: + score -2 + +BattleAIScript_82DCDC7: + end + +BattleAIScript_82DCDC8: + if_stat_level_more_than AI_TARGET, EVASION, 10, BattleAIScript_82DCDED + if_stat_level_less_than AI_USER, ACC, 2, BattleAIScript_82DCDED + if_stat_level_more_than AI_TARGET, EVASION, 8, BattleAIScript_82DCDEF + if_stat_level_less_than AI_USER, ACC, 4, BattleAIScript_82DCDEF + goto BattleAIScript_82DCDF7 + +BattleAIScript_82DCDED: + score +1 + +BattleAIScript_82DCDEF: + if_random_less_than 100, BattleAIScript_82DCDF7 + score +1 + +BattleAIScript_82DCDF7: + end + +BattleAIScript_82DCDF8: + if_stat_level_equal AI_TARGET, ATK, 6, BattleAIScript_82DCE1B + score -1 + if_hp_more_than AI_USER, 90, BattleAIScript_82DCE0B + score -1 + +BattleAIScript_82DCE0B: + if_stat_level_more_than AI_TARGET, ATK, 3, BattleAIScript_82DCE1B + if_random_less_than 50, BattleAIScript_82DCE1B + score -2 + +BattleAIScript_82DCE1B: + if_hp_more_than AI_TARGET, 70, BattleAIScript_82DCE24 + score -2 + +BattleAIScript_82DCE24: + get_target_type1 + if_in_bytes sTypesTable_82DCE43, BattleAIScript_82DCE42 + get_target_type2 + if_in_bytes sTypesTable_82DCE43, BattleAIScript_82DCE42 + if_random_less_than 50, BattleAIScript_82DCE42 + score -2 + +BattleAIScript_82DCE42: + end + +sTypesTable_82DCE43: + .byte TYPE_NORMAL + .byte TYPE_FIGHTING + .byte TYPE_GROUND + .byte TYPE_ROCK + .byte TYPE_BUG + .byte TYPE_STEEL + .byte -1 + +BattleAIScript_82DCE4A: + if_hp_less_than AI_USER, 70, BattleAIScript_82DCE59 + if_stat_level_more_than AI_TARGET, DEF, 3, BattleAIScript_82DCE61 + +BattleAIScript_82DCE59: + if_random_less_than 50, BattleAIScript_82DCE61 + score -2 + +BattleAIScript_82DCE61: + if_hp_more_than AI_TARGET, 70, BattleAIScript_82DCE6A + score -2 + +BattleAIScript_82DCE6A: + end + +BattleAIScript_82DCE6B: + if_move MOVE_ICY_WIND, BattleAIScript_82DCE81 + if_move MOVE_ROCK_TOMB, BattleAIScript_82DCE81 + if_move MOVE_MUD_SHOT, BattleAIScript_82DCE81 + end + +BattleAIScript_82DCE81: + if_target_faster BattleAIScript_82DCE8E + score -3 + goto BattleAIScript_82DCE96 + +BattleAIScript_82DCE8E: + if_random_less_than 70, BattleAIScript_82DCE96 + score +2 + +BattleAIScript_82DCE96: + end + +BattleAIScript_82DCE97: + if_stat_level_equal AI_TARGET, ATK, 6, BattleAIScript_82DCEBA + score -1 + if_hp_more_than AI_USER, 90, BattleAIScript_82DCEAA + score -1 + +BattleAIScript_82DCEAA: + if_stat_level_more_than AI_TARGET, SPATK, 3, BattleAIScript_82DCEBA + if_random_less_than 50, BattleAIScript_82DCEBA + score -2 + +BattleAIScript_82DCEBA: + if_hp_more_than AI_TARGET, 70, BattleAIScript_82DCEC3 + score -2 + +BattleAIScript_82DCEC3: + get_target_type1 + if_in_bytes sTypesTable_82DCEE2, BattleAIScript_82DCEE1 + get_target_type2 + if_in_bytes sTypesTable_82DCEE2, BattleAIScript_82DCEE1 + if_random_less_than 50, BattleAIScript_82DCEE1 + score -2 + +BattleAIScript_82DCEE1: + end + +sTypesTable_82DCEE2: + .byte TYPE_FIRE + .byte TYPE_WATER + .byte TYPE_GRASS + .byte TYPE_ELECTRIC + .byte TYPE_PSYCHIC + .byte TYPE_ICE + .byte TYPE_DRAGON + .byte TYPE_DARK + .byte -1 + +BattleAIScript_82DCEEB: + if_hp_less_than AI_USER, 70, BattleAIScript_82DCEFA + if_stat_level_more_than AI_TARGET, SPDEF, 3, BattleAIScript_82DCF02 + +BattleAIScript_82DCEFA: + if_random_less_than 50, BattleAIScript_82DCF02 + score -2 + +BattleAIScript_82DCF02: + if_hp_more_than AI_TARGET, 70, BattleAIScript_82DCF0B + score -2 + +BattleAIScript_82DCF0B: + end + +BattleAIScript_82DCF0C: + if_hp_less_than AI_USER, 70, BattleAIScript_82DCF1A + if_hp_more_than AI_TARGET, 70, BattleAIScript_82DCF22 + +BattleAIScript_82DCF1A: + if_random_less_than 100, BattleAIScript_82DCF22 + score -1 + +BattleAIScript_82DCF22: + if_stat_level_more_than AI_USER, ACC, 4, BattleAIScript_82DCF32 + if_random_less_than 80, BattleAIScript_82DCF32 + score -2 + +BattleAIScript_82DCF32: + if_not_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DCF44 + if_random_less_than 70, BattleAIScript_82DCF44 + score +2 + +BattleAIScript_82DCF44: + if_not_status3 AI_TARGET, STATUS3_LEECHSEED, BattleAIScript_82DCF56 + if_random_less_than 70, BattleAIScript_82DCF56 + score +2 + +BattleAIScript_82DCF56: + if_not_status3 AI_USER, STATUS3_ROOTED, BattleAIScript_82DCF68 + if_random_less_than 128, BattleAIScript_82DCF68 + score +1 + +BattleAIScript_82DCF68: + if_not_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DCF7A + if_random_less_than 70, BattleAIScript_82DCF7A + score +2 + +BattleAIScript_82DCF7A: + if_hp_more_than AI_USER, 70, BattleAIScript_82DCF9F + if_stat_level_equal AI_TARGET, ACC, 6, BattleAIScript_82DCF9F + if_hp_less_than AI_USER, 40, BattleAIScript_82DCF9D + if_hp_less_than AI_TARGET, 40, BattleAIScript_82DCF9D + if_random_less_than 70, BattleAIScript_82DCF9F + +BattleAIScript_82DCF9D: + score -2 + +BattleAIScript_82DCF9F: + end + +BattleAIScript_82DCFA0: + if_hp_less_than AI_USER, 70, BattleAIScript_82DCFAF + if_stat_level_more_than AI_TARGET, EVASION, 3, BattleAIScript_82DCFB7 + +BattleAIScript_82DCFAF: + if_random_less_than 50, BattleAIScript_82DCFB7 + score -2 + +BattleAIScript_82DCFB7: + if_hp_more_than AI_TARGET, 70, BattleAIScript_82DCFC0 + score -2 + +BattleAIScript_82DCFC0: + end + +BattleAIScript_82DCFC1: + if_stat_level_more_than AI_USER, ATK, 8, BattleAIScript_82DD016 + if_stat_level_more_than AI_USER, DEF, 8, BattleAIScript_82DD016 + if_stat_level_more_than AI_USER, SPATK, 8, BattleAIScript_82DD016 + if_stat_level_more_than AI_USER, SPDEF, 8, BattleAIScript_82DD016 + if_stat_level_more_than AI_USER, EVASION, 8, BattleAIScript_82DD016 + if_stat_level_less_than AI_TARGET, ATK, 4, BattleAIScript_82DD016 + if_stat_level_less_than AI_TARGET, DEF, 4, BattleAIScript_82DD016 + if_stat_level_less_than AI_TARGET, SPATK, 4, BattleAIScript_82DD016 + if_stat_level_less_than AI_TARGET, SPDEF, 4, BattleAIScript_82DD016 + if_stat_level_less_than AI_TARGET, ACC, 4, BattleAIScript_82DD016 + goto BattleAIScript_82DD01E + +BattleAIScript_82DD016: + if_random_less_than 50, BattleAIScript_82DD01E + score -3 + +BattleAIScript_82DD01E: + if_stat_level_more_than AI_TARGET, ATK, 8, BattleAIScript_82DD07B + if_stat_level_more_than AI_TARGET, DEF, 8, BattleAIScript_82DD07B + if_stat_level_more_than AI_TARGET, SPATK, 8, BattleAIScript_82DD07B + if_stat_level_more_than AI_TARGET, SPDEF, 8, BattleAIScript_82DD07B + if_stat_level_more_than AI_TARGET, EVASION, 8, BattleAIScript_82DD07B + if_stat_level_less_than AI_USER, ATK, 4, BattleAIScript_82DD07B + if_stat_level_less_than AI_USER, DEF, 4, BattleAIScript_82DD07B + if_stat_level_less_than AI_USER, SPATK, 4, BattleAIScript_82DD07B + if_stat_level_less_than AI_USER, SPDEF, 4, BattleAIScript_82DD07B + if_stat_level_less_than AI_USER, ACC, 4, BattleAIScript_82DD07B + if_random_less_than 50, BattleAIScript_82DD083 + score -1 + goto BattleAIScript_82DD083 + +BattleAIScript_82DD07B: + if_random_less_than 50, BattleAIScript_82DD083 + score +3 + +BattleAIScript_82DD083: + end + +BattleAIScript_82DD084: + if_hp_more_than AI_USER, 90, BattleAIScript_82DD08D + score -2 + +BattleAIScript_82DD08D: + end + +BattleAIScript_82DD08E: + if_stat_level_more_than AI_TARGET, ATK, 8, BattleAIScript_82DD0BD + if_stat_level_more_than AI_TARGET, DEF, 8, BattleAIScript_82DD0BD + if_stat_level_more_than AI_TARGET, SPATK, 8, BattleAIScript_82DD0BD + if_stat_level_more_than AI_TARGET, SPDEF, 8, BattleAIScript_82DD0BD + if_stat_level_more_than AI_TARGET, EVASION, 8, BattleAIScript_82DD0BD + score -3 + goto BattleAIScript_82DD0C5 + +BattleAIScript_82DD0BD: + if_random_less_than 128, BattleAIScript_82DD0C5 + score +2 + +BattleAIScript_82DD0C5: + end + +BattleAIScript_82DD0C6: + if_hp_more_than AI_USER, 90, BattleAIScript_82DD0CF + score -2 + +BattleAIScript_82DD0CF: + get_turn_count + if_equal 0, BattleAIScript_82DD0DC + if_random_less_than 200, Score_Minus2 + +BattleAIScript_82DD0DC: + end + +BattleAIScript_82DD0DD: + get_weather + if_equal AI_WEATHER_HAIL, BattleAIScript_82DD0F5 + if_equal AI_WEATHER_RAIN, BattleAIScript_82DD0F5 + if_equal AI_WEATHER_SANDSTORM, BattleAIScript_82DD0F5 + goto BattleAIScript_82DD0F7 + +BattleAIScript_82DD0F5: + score -2 + +BattleAIScript_82DD0F7: + if_hp_equal AI_USER, 100, BattleAIScript_82DD11F + if_target_faster BattleAIScript_82DD126 + score -8 + goto BattleAIScript_82DD14F + +AI_CV_Heal2: + if_hp_less_than AI_USER, 50, BattleAIScript_82DD13A + if_hp_more_than AI_USER, 80, BattleAIScript_82DD11F + if_random_less_than 70, BattleAIScript_82DD13A + +BattleAIScript_82DD11F: + score -3 + goto BattleAIScript_82DD14F + +BattleAIScript_82DD126: + if_hp_less_than AI_USER, 70, BattleAIScript_82DD13A + if_random_less_than 30, BattleAIScript_82DD13A + score -3 + goto BattleAIScript_82DD14F + +BattleAIScript_82DD13A: + if_doesnt_have_move_with_effect AI_TARGET, EFFECT_SNATCH, BattleAIScript_82DD147 + if_random_less_than 100, BattleAIScript_82DD14F + +BattleAIScript_82DD147: + if_random_less_than 20, BattleAIScript_82DD14F + score +2 + +BattleAIScript_82DD14F: + end + +BattleAIScript_82DD150: + if_user_has_no_attacking_moves BattleAIScript_82DD173 + if_hp_more_than AI_USER, 50, BattleAIScript_82DD164 + if_random_less_than 50, BattleAIScript_82DD164 + score -3 + +BattleAIScript_82DD164: + if_hp_more_than AI_TARGET, 50, BattleAIScript_82DD173 + if_random_less_than 50, BattleAIScript_82DD173 + score -3 + +BattleAIScript_82DD173: + if_has_move_with_effect AI_USER, EFFECT_SPECIAL_DEFENSE_UP, BattleAIScript_82DD186 + if_has_move_with_effect AI_USER, EFFECT_PROTECT, BattleAIScript_82DD186 + goto BattleAIScript_82DD18E + +BattleAIScript_82DD186: + if_random_less_than 60, BattleAIScript_82DD18E + score +2 + +BattleAIScript_82DD18E: + end + +BattleAIScript_82DD18F: + if_hp_less_than AI_USER, 50, BattleAIScript_82DD1B2 + get_target_type1 + if_in_bytes sTypesTable_82DD1B5, BattleAIScript_82DD1B4 + get_target_type2 + if_in_bytes sTypesTable_82DD1B5, BattleAIScript_82DD1B4 + if_random_less_than 50, BattleAIScript_82DD1B4 + +BattleAIScript_82DD1B2: + score -2 + +BattleAIScript_82DD1B4: + end + +sTypesTable_82DD1B5: + .byte TYPE_FIRE + .byte TYPE_WATER + .byte TYPE_GRASS + .byte TYPE_ELECTRIC + .byte TYPE_PSYCHIC + .byte TYPE_ICE + .byte TYPE_DRAGON + .byte TYPE_DARK + .byte -1 + +BattleAIScript_82DD1BE: + if_target_faster BattleAIScript_82DD1ED + if_hp_not_equal AI_USER, 100, BattleAIScript_82DD1D2 + score -8 + goto BattleAIScript_82DD21D + +BattleAIScript_82DD1D2: + if_hp_less_than AI_USER, 40, BattleAIScript_82DD208 + if_hp_more_than AI_USER, 50, BattleAIScript_82DD1E6 + if_random_less_than 70, BattleAIScript_82DD208 + +BattleAIScript_82DD1E6: + score -3 + goto BattleAIScript_82DD21D + +BattleAIScript_82DD1ED: + if_hp_less_than AI_USER, 60, BattleAIScript_82DD208 + if_hp_more_than AI_USER, 70, BattleAIScript_82DD201 + if_random_less_than 50, BattleAIScript_82DD208 + +BattleAIScript_82DD201: + score -3 + goto BattleAIScript_82DD21D + +BattleAIScript_82DD208: + if_doesnt_have_move_with_effect AI_TARGET, EFFECT_SNATCH, BattleAIScript_82DD215 + if_random_less_than 50, BattleAIScript_82DD21D + +BattleAIScript_82DD215: + if_random_less_than 10, BattleAIScript_82DD21D + score +3 + +BattleAIScript_82DD21D: + end + +BattleAIScript_82DD21E: + end + +BattleAIScript_82DD21F: + if_hp_more_than AI_TARGET, 50, BattleAIScript_82DD228 + score -1 + +BattleAIScript_82DD228: + end + +BattleAIScript_82DD229: + if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DD256 + if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DD256 + if_status3 AI_TARGET, STATUS3_PERISH_SONG, BattleAIScript_82DD256 + if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD256 + goto BattleAIScript_82DD25E + +BattleAIScript_82DD256: + if_random_less_than 128, BattleAIScript_82DD25E + score +1 + +BattleAIScript_82DD25E: + end + +BattleAIScript_82DD25F: + if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DD285 + if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DD285 + if_type_effectiveness AI_EFFECTIVENESS_x2, BattleAIScript_82DD27D + if_type_effectiveness AI_EFFECTIVENESS_x4, BattleAIScript_82DD27D + if_random_less_than 128, BattleAIScript_82DD285 + +BattleAIScript_82DD27D: + if_random_less_than 128, BattleAIScript_82DD285 + score +1 + +BattleAIScript_82DD285: + end + +BattleAIScript_82DD286: + if_has_move AI_USER, MOVE_PSYCH_UP, BattleAIScript_82DD2B8 + +BattleAIScript_82DD28E: + if_random_less_than 128, BattleAIScript_82DD296 + score +1 + +BattleAIScript_82DD296: + if_hp_more_than AI_TARGET, 70, BattleAIScript_82DD2B7 + if_random_less_than 128, BattleAIScript_82DD2A5 + score -1 + +BattleAIScript_82DD2A5: + if_hp_more_than AI_TARGET, 50, BattleAIScript_82DD2B7 + score -1 + if_hp_more_than AI_TARGET, 30, BattleAIScript_82DD2B7 + score -1 + +BattleAIScript_82DD2B7: + end + +BattleAIScript_82DD2B8: + if_stat_level_more_than AI_TARGET, ATK, 3, BattleAIScript_82DD2D0 + score +3 + get_turn_count + if_not_equal 0, BattleAIScript_82DD2D2 + score +2 + goto BattleAIScript_82DD2D2 + +BattleAIScript_82DD2D0: + score -5 + +BattleAIScript_82DD2D2: + end + +BattleAIScript_82DD2D3: + if_hp_less_than AI_USER, 50, BattleAIScript_82DD2F6 + get_target_type1 + if_in_bytes sTypesTable_82DD2F9, BattleAIScript_82DD2F8 + get_target_type2 + if_in_bytes sTypesTable_82DD2F9, BattleAIScript_82DD2F8 + if_random_less_than 50, BattleAIScript_82DD2F8 + +BattleAIScript_82DD2F6: + score -2 + +BattleAIScript_82DD2F8: + end + +sTypesTable_82DD2F9: + .byte TYPE_NORMAL + .byte TYPE_FIGHTING + .byte TYPE_FLYING + .byte TYPE_POISON + .byte TYPE_GROUND + .byte TYPE_ROCK + .byte TYPE_BUG + .byte TYPE_GHOST + .byte TYPE_STEEL + .byte -1 + +BattleAIScript_82DD303: + if_hp_less_than AI_USER, 50, BattleAIScript_82DD311 + if_hp_more_than AI_TARGET, 50, BattleAIScript_82DD313 + +BattleAIScript_82DD311: + score -1 + +BattleAIScript_82DD313: + end + +BattleAIScript_82DD314: + if_target_faster BattleAIScript_82DD328 + if_hp_more_than AI_USER, 70, BattleAIScript_82DD330 + score -1 + goto BattleAIScript_82DD330 + +BattleAIScript_82DD328: + if_random_less_than 20, BattleAIScript_82DD330 + score +3 + +BattleAIScript_82DD330: + end + +BattleAIScript_82DD331: + if_target_faster BattleAIScript_82DD353 + if_hp_more_than AI_USER, 60, BattleAIScript_82DD353 + if_hp_less_than AI_USER, 40, BattleAIScript_82DD34B + if_random_less_than 180, BattleAIScript_82DD353 + +BattleAIScript_82DD34B: + if_random_less_than 50, BattleAIScript_82DD353 + score -1 + +BattleAIScript_82DD353: + end + +BattleAIScript_82DD354: + if_hp_more_than AI_USER, 90, BattleAIScript_82DD381 + if_hp_more_than AI_USER, 70, BattleAIScript_82DD379 + if_hp_more_than AI_USER, 50, BattleAIScript_82DD371 + if_random_less_than 100, BattleAIScript_82DD371 + score -1 + +BattleAIScript_82DD371: + if_random_less_than 100, BattleAIScript_82DD379 + score -1 + +BattleAIScript_82DD379: + if_random_less_than 100, BattleAIScript_82DD381 + score -1 + +BattleAIScript_82DD381: + if_target_faster BattleAIScript_82DD3E9 + get_last_used_bank_move AI_TARGET + get_move_effect_from_result + if_equal EFFECT_SLEEP, BattleAIScript_82DD3B9 + if_equal EFFECT_TOXIC, BattleAIScript_82DD3B9 + if_equal EFFECT_POISON, BattleAIScript_82DD3B9 + if_equal EFFECT_PARALYZE, BattleAIScript_82DD3B9 + if_equal EFFECT_WILL_O_WISP, BattleAIScript_82DD3B9 + if_equal EFFECT_CONFUSE, BattleAIScript_82DD3C8 + if_equal EFFECT_LEECH_SEED, BattleAIScript_82DD3D7 + goto BattleAIScript_82DD3E9 + +BattleAIScript_82DD3B9: + if_not_status AI_TARGET, STATUS_ANY, BattleAIScript_82DD3E1 + goto BattleAIScript_82DD3E9 + +BattleAIScript_82DD3C8: + if_not_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DD3E1 + goto BattleAIScript_82DD3E9 + +BattleAIScript_82DD3D7: + if_status3 AI_TARGET, STATUS3_LEECHSEED, BattleAIScript_82DD3E9 + +BattleAIScript_82DD3E1: + if_random_less_than 100, BattleAIScript_82DD3E9 + score +1 + +BattleAIScript_82DD3E9: + end + +BattleAIScript_82DD3EA: + if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DD40F + if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DD40F + if_target_faster BattleAIScript_82DD408 + if_hp_more_than AI_USER, 40, BattleAIScript_82DD40F + goto BattleAIScript_82DD411 + +BattleAIScript_82DD408: + if_hp_less_than AI_USER, 60, BattleAIScript_82DD411 + +BattleAIScript_82DD40F: + score -1 + +BattleAIScript_82DD411: + end + +BattleAIScript_82DD412: + if_target_faster BattleAIScript_82DD430 + get_last_used_bank_move AI_TARGET + get_move_power_from_result + if_equal 0, BattleAIScript_82DD428 + score +1 + goto BattleAIScript_82DD430 + +BattleAIScript_82DD428: + if_random_less_than 100, BattleAIScript_82DD430 + score -1 + +BattleAIScript_82DD430: + end + +BattleAIScript_82DD431: + if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DD4D6 + if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD4D6 + if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DD4D6 + if_hp_more_than AI_USER, 30, BattleAIScript_82DD45E + if_random_less_than 10, BattleAIScript_82DD45E + score -1 + +BattleAIScript_82DD45E: + if_hp_more_than AI_USER, 50, BattleAIScript_82DD46D + if_random_less_than 100, BattleAIScript_82DD46D + score -1 + +BattleAIScript_82DD46D: + if_has_move AI_USER, MOVE_MIRROR_COAT, BattleAIScript_82DD4CD + get_last_used_bank_move AI_TARGET + get_move_power_from_result + if_equal 0, BattleAIScript_82DD4A4 + if_target_not_taunted BattleAIScript_82DD48B + if_random_less_than 100, BattleAIScript_82DD48B + score +1 + +BattleAIScript_82DD48B: + get_last_used_bank_move AI_TARGET + get_move_type_from_result + if_not_in_bytes sTypesTable_82DD4D9, BattleAIScript_82DD4D6 + if_random_less_than 100, BattleAIScript_82DD4D8 + score +1 + goto BattleAIScript_82DD4D8 + +BattleAIScript_82DD4A4: + if_target_not_taunted BattleAIScript_82DD4B1 + if_random_less_than 100, BattleAIScript_82DD4B1 + score +1 + +BattleAIScript_82DD4B1: + get_target_type1 + if_in_bytes sTypesTable_82DD4D9, BattleAIScript_82DD4D8 + get_target_type2 + if_in_bytes sTypesTable_82DD4D9, BattleAIScript_82DD4D8 + if_random_less_than 50, BattleAIScript_82DD4D8 + +BattleAIScript_82DD4CD: + if_random_less_than 100, BattleAIScript_82DD4D5 + score +4 + +BattleAIScript_82DD4D5: + end + +BattleAIScript_82DD4D6: + score -1 + +BattleAIScript_82DD4D8: + end + +sTypesTable_82DD4D9: + .byte TYPE_NORMAL + .byte TYPE_FIGHTING + .byte TYPE_FLYING + .byte TYPE_POISON + .byte TYPE_GROUND + .byte TYPE_ROCK + .byte TYPE_BUG + .byte TYPE_GHOST + .byte TYPE_STEEL + .byte -1 + +BattleAIScript_82DD4E3: + if_any_move_disabled AI_TARGET, BattleAIScript_82DD4FC + if_target_faster BattleAIScript_82DD509 + get_last_used_bank_move AI_TARGET + get_move_effect_from_result + if_not_in_bytes sMoveEffectsTable_82DD50C, BattleAIScript_82DD509 + +BattleAIScript_82DD4FC: + if_random_less_than 30, BattleAIScript_82DD50B + score +3 + goto BattleAIScript_82DD50B + +BattleAIScript_82DD509: + score -2 + +BattleAIScript_82DD50B: + end + +sMoveEffectsTable_82DD50C: + .byte EFFECT_DREAM_EATER + .byte EFFECT_ATTACK_UP + .byte EFFECT_DEFENSE_UP + .byte EFFECT_SPEED_UP + .byte EFFECT_SPECIAL_ATTACK_UP + .byte EFFECT_HAZE + .byte EFFECT_ROAR + .byte EFFECT_CONVERSION + .byte EFFECT_TOXIC + .byte EFFECT_LIGHT_SCREEN + .byte EFFECT_REST + .byte EFFECT_SUPER_FANG + .byte EFFECT_SPECIAL_DEFENSE_UP_2 + .byte EFFECT_CONFUSE + .byte EFFECT_POISON + .byte EFFECT_PARALYZE + .byte EFFECT_LEECH_SEED + .byte EFFECT_SPLASH + .byte EFFECT_ATTACK_UP_2 + .byte EFFECT_ENCORE + .byte EFFECT_CONVERSION_2 + .byte EFFECT_LOCK_ON + .byte EFFECT_HEAL_BELL + .byte EFFECT_MEAN_LOOK + .byte EFFECT_NIGHTMARE + .byte EFFECT_PROTECT + .byte EFFECT_SKILL_SWAP + .byte EFFECT_FORESIGHT + .byte EFFECT_PERISH_SONG + .byte EFFECT_SANDSTORM + .byte EFFECT_ENDURE + .byte EFFECT_SWAGGER + .byte EFFECT_ATTRACT + .byte EFFECT_SAFEGUARD + .byte EFFECT_RAIN_DANCE + .byte EFFECT_SUNNY_DAY + .byte EFFECT_BELLY_DRUM + .byte EFFECT_PSYCH_UP + .byte EFFECT_FUTURE_SIGHT + .byte EFFECT_FAKE_OUT + .byte EFFECT_STOCKPILE + .byte EFFECT_SPIT_UP + .byte EFFECT_SWALLOW + .byte EFFECT_HAIL + .byte EFFECT_TORMENT + .byte EFFECT_WILL_O_WISP + .byte EFFECT_FOLLOW_ME + .byte EFFECT_CHARGE + .byte EFFECT_TRICK + .byte EFFECT_ROLE_PLAY + .byte EFFECT_INGRAIN + .byte EFFECT_RECYCLE + .byte EFFECT_KNOCK_OFF + .byte EFFECT_SKILL_SWAP + .byte EFFECT_IMPRISON + .byte EFFECT_REFRESH + .byte EFFECT_GRUDGE + .byte EFFECT_TEETER_DANCE + .byte EFFECT_MUD_SPORT + .byte EFFECT_WATER_SPORT + .byte EFFECT_DRAGON_DANCE + .byte EFFECT_CAMOUFLAGE + .byte -1 + +BattleAIScript_82DD54B: + if_hp_less_than AI_TARGET, 80, BattleAIScript_82DD574 + if_target_faster BattleAIScript_82DD566 + if_hp_more_than AI_USER, 40, BattleAIScript_82DD574 + score +1 + goto BattleAIScript_82DD576 + +BattleAIScript_82DD566: + if_hp_more_than AI_USER, 60, BattleAIScript_82DD574 + score +1 + goto BattleAIScript_82DD576 + +BattleAIScript_82DD574: + score -1 + +BattleAIScript_82DD576: + end + +BattleAIScript_82DD577: + score +2 + end + +BattleAIScript_82DD57A: + if_random_less_than 128, BattleAIScript_82DD582 + score +2 + +BattleAIScript_82DD582: + end + +BattleAIScript_82DD583: + if_status AI_USER, STATUS_SLEEP, Score_Plus10 + score -5 + end + +BattleAIScript_82DD590: + score -1 + if_target_faster BattleAIScript_82DD5C5 + if_hp_more_than AI_USER, 70, BattleAIScript_82DD5C5 + if_random_less_than 128, BattleAIScript_82DD5A7 + score +1 + +BattleAIScript_82DD5A7: + if_hp_more_than AI_USER, 50, BattleAIScript_82DD5C5 + if_random_less_than 128, BattleAIScript_82DD5B6 + score +1 + +BattleAIScript_82DD5B6: + if_hp_more_than AI_USER, 30, BattleAIScript_82DD5C5 + if_random_less_than 100, BattleAIScript_82DD5C5 + score +2 + +BattleAIScript_82DD5C5: + end + +BattleAIScript_82DD5C6: + if_target_faster BattleAIScript_82DD5E6 + if_hp_more_than AI_USER, 33, BattleAIScript_82DD608 + if_hp_more_than AI_USER, 20, BattleAIScript_82DD60A + if_hp_less_than AI_USER, 8, BattleAIScript_82DD5F9 + goto BattleAIScript_82DD5FB + +BattleAIScript_82DD5E6: + if_hp_more_than AI_USER, 60, BattleAIScript_82DD608 + if_hp_more_than AI_USER, 40, BattleAIScript_82DD60A + goto BattleAIScript_82DD5FB + +BattleAIScript_82DD5F9: + score +1 + +BattleAIScript_82DD5FB: + if_random_less_than 100, BattleAIScript_82DD60A + score +1 + goto BattleAIScript_82DD60A + +BattleAIScript_82DD608: + score -1 + +BattleAIScript_82DD60A: + end + +BattleAIScript_82DD60B: + if_status AI_TARGET, STATUS_ANY, BattleAIScript_82DD621 + if_status_in_party AI_TARGET, STATUS_ANY, BattleAIScript_82DD621 + score -5 + +BattleAIScript_82DD621: + end + +BattleAIScript_82DD622: + get_hold_effect AI_TARGET + if_not_in_bytes sHoldEffectsTable_82DD63D, BattleAIScript_82DD63A + if_random_less_than 50, BattleAIScript_82DD63C + score +1 + goto BattleAIScript_82DD63C + +BattleAIScript_82DD63A: + score -2 + +BattleAIScript_82DD63C: + end + +sHoldEffectsTable_82DD63D: + .byte HOLD_EFFECT_CURE_SLP + .byte HOLD_EFFECT_CURE_STATUS + .byte HOLD_EFFECT_RESTORE_HP + .byte HOLD_EFFECT_EVASION_UP + .byte HOLD_EFFECT_LEFTOVERS + .byte HOLD_EFFECT_LIGHT_BALL + .byte HOLD_EFFECT_THICK_CLUB + .byte -1 + +BattleAIScript_82DD645: + get_user_type1 + if_equal TYPE_GHOST, BattleAIScript_82DD68A + get_user_type2 + if_equal TYPE_GHOST, BattleAIScript_82DD68A + if_stat_level_more_than AI_USER, DEF, 9, BattleAIScript_82DD693 + if_random_less_than 128, BattleAIScript_82DD665 + score +1 + +BattleAIScript_82DD665: + if_stat_level_more_than AI_USER, DEF, 7, BattleAIScript_82DD693 + if_random_less_than 128, BattleAIScript_82DD675 + score +1 + +BattleAIScript_82DD675: + if_stat_level_more_than AI_USER, DEF, 6, BattleAIScript_82DD693 + if_random_less_than 128, BattleAIScript_82DD693 + score +1 + goto BattleAIScript_82DD693 + +BattleAIScript_82DD68A: + if_hp_more_than AI_USER, 80, BattleAIScript_82DD693 + score -1 + +BattleAIScript_82DD693: + end + +BattleAIScript_82DD694: + get_protect_count AI_USER + if_more_than 1, BattleAIScript_82DD75A + if_status AI_USER, STATUS_TOXIC_POISON, BattleAIScript_82DD751 + if_status2 AI_USER, STATUS2_CURSED, BattleAIScript_82DD751 + if_status3 AI_USER, STATUS3_PERISH_SONG, BattleAIScript_82DD751 + if_status2 AI_USER, STATUS2_INFATUATION, BattleAIScript_82DD751 + if_status3 AI_USER, STATUS3_LEECHSEED, BattleAIScript_82DD751 + if_status3 AI_USER, STATUS3_YAWN, BattleAIScript_82DD751 + if_has_move_with_effect AI_TARGET, EFFECT_RESTORE_HP, BattleAIScript_82DD751 + if_has_move_with_effect AI_TARGET, EFFECT_DEFENSE_CURL, BattleAIScript_82DD751 + if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DD730 + if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DD730 + if_status3 AI_TARGET, STATUS3_PERISH_SONG, BattleAIScript_82DD730 + if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD730 + if_status3 AI_TARGET, STATUS3_LEECHSEED, BattleAIScript_82DD730 + if_status3 AI_TARGET, STATUS3_YAWN, BattleAIScript_82DD730 + get_last_used_bank_move AI_TARGET + get_move_effect_from_result + if_not_equal EFFECT_LOCK_ON, BattleAIScript_82DD730 + goto BattleAIScript_82DD732 + +BattleAIScript_82DD730: + score +2 + +BattleAIScript_82DD732: + if_random_less_than 128, BattleAIScript_82DD73A + score -1 + +BattleAIScript_82DD73A: + get_protect_count AI_USER + if_equal 0, BattleAIScript_82DD75C + score -1 + if_random_less_than 128, BattleAIScript_82DD75C + score -1 + goto BattleAIScript_82DD75C + +BattleAIScript_82DD751: + get_last_used_bank_move AI_TARGET + get_move_effect_from_result + if_not_equal EFFECT_LOCK_ON, BattleAIScript_82DD75C + +BattleAIScript_82DD75A: + score -2 + +BattleAIScript_82DD75C: + end + +BattleAIScript_82DD75D: + get_user_type1 + if_equal TYPE_GHOST, BattleAIScript_82DD77C + get_user_type2 + if_equal TYPE_GHOST, BattleAIScript_82DD77C + if_stat_level_more_than AI_USER, EVASION, 8, BattleAIScript_82DD782 + score -2 + goto BattleAIScript_82DD78A + +BattleAIScript_82DD77C: + if_random_less_than 80, BattleAIScript_82DD78A + +BattleAIScript_82DD782: + if_random_less_than 80, BattleAIScript_82DD78A + score +2 + +BattleAIScript_82DD78A: + end + +BattleAIScript_82DD78B: + if_hp_less_than AI_USER, 4, BattleAIScript_82DD799 + if_hp_less_than AI_USER, 35, BattleAIScript_82DD7A0 + +BattleAIScript_82DD799: + score -1 + goto BattleAIScript_82DD7A8 + +BattleAIScript_82DD7A0: + if_random_less_than 70, BattleAIScript_82DD7A8 + score +1 + +BattleAIScript_82DD7A8: + end + +BattleAIScript_82DD7A9: + if_stat_level_more_than AI_USER, ATK, 8, BattleAIScript_82DD7D6 + if_stat_level_more_than AI_USER, DEF, 8, BattleAIScript_82DD7D6 + if_stat_level_more_than AI_USER, SPATK, 8, BattleAIScript_82DD7D6 + if_stat_level_more_than AI_USER, SPDEF, 8, BattleAIScript_82DD7D6 + if_stat_level_more_than AI_USER, EVASION, 8, BattleAIScript_82DD7D6 + goto BattleAIScript_82DD7FC + +BattleAIScript_82DD7D6: + if_target_faster BattleAIScript_82DD7E8 + if_hp_more_than AI_USER, 60, BattleAIScript_82DD844 + goto BattleAIScript_82DD7EF + +BattleAIScript_82DD7E8: + if_hp_more_than AI_USER, 70, BattleAIScript_82DD844 + +BattleAIScript_82DD7EF: + if_random_less_than 80, BattleAIScript_82DD844 + score +2 + goto BattleAIScript_82DD844 + +BattleAIScript_82DD7FC: + if_stat_level_more_than AI_USER, ATK, 7, BattleAIScript_82DD829 + if_stat_level_more_than AI_USER, DEF, 7, BattleAIScript_82DD829 + if_stat_level_more_than AI_USER, SPATK, 7, BattleAIScript_82DD829 + if_stat_level_more_than AI_USER, SPDEF, 7, BattleAIScript_82DD829 + if_stat_level_more_than AI_USER, EVASION, 7, BattleAIScript_82DD829 + goto BattleAIScript_82DD842 + +BattleAIScript_82DD829: + if_target_faster BattleAIScript_82DD83B + if_hp_more_than AI_USER, 60, BattleAIScript_82DD842 + goto BattleAIScript_82DD844 + +BattleAIScript_82DD83B: + if_hp_less_than AI_USER, 70, BattleAIScript_82DD844 + +BattleAIScript_82DD842: + score -2 + +BattleAIScript_82DD844: + end + +BattleAIScript_82DD845: + is_first_turn_for AI_USER + if_not_equal 0, BattleAIScript_82DD87A + get_target_type1 + if_equal TYPE_GHOST, BattleAIScript_82DD872 + get_target_type1 + if_equal TYPE_PSYCHIC, BattleAIScript_82DD872 + get_target_type2 + if_equal TYPE_GHOST, BattleAIScript_82DD872 + get_target_type2 + if_equal TYPE_PSYCHIC, BattleAIScript_82DD872 + goto BattleAIScript_82DD87A + +BattleAIScript_82DD872: + if_random_less_than 128, BattleAIScript_82DD87A + score +1 + +BattleAIScript_82DD87A: + end + +BattleAIScript_82DD87B: + if_user_faster BattleAIScript_82DD889 + get_ability AI_USER + if_equal ABILITY_SWIFT_SWIM, BattleAIScript_82DD8B0 + +BattleAIScript_82DD889: + if_hp_less_than AI_USER, 40, BattleAIScript_82DD8B7 + get_weather + if_equal AI_WEATHER_HAIL, BattleAIScript_82DD8B0 + if_equal AI_WEATHER_SUN, BattleAIScript_82DD8B0 + if_equal AI_WEATHER_SANDSTORM, BattleAIScript_82DD8B0 + get_ability AI_USER + if_equal ABILITY_RAIN_DISH, BattleAIScript_82DD8B0 + goto BattleAIScript_82DD8B9 + +BattleAIScript_82DD8B0: + score +1 + goto BattleAIScript_82DD8B9 + +BattleAIScript_82DD8B7: + score -1 + +BattleAIScript_82DD8B9: + end + +BattleAIScript_82DD8BA: + if_hp_less_than AI_USER, 40, BattleAIScript_82DD8E0 + get_weather + if_equal AI_WEATHER_HAIL, BattleAIScript_82DD8D9 + if_equal AI_WEATHER_RAIN, BattleAIScript_82DD8D9 + if_equal AI_WEATHER_SANDSTORM, BattleAIScript_82DD8D9 + goto BattleAIScript_82DD8E2 + +BattleAIScript_82DD8D9: + score +1 + goto BattleAIScript_82DD8E2 + +BattleAIScript_82DD8E0: + score -1 + +BattleAIScript_82DD8E2: + end + +BattleAIScript_82DD8E3: + if_hp_less_than AI_USER, 90, BattleAIScript_82DD8EF + goto BattleAIScript_82DD8F1 + +BattleAIScript_82DD8EF: + score -2 + +BattleAIScript_82DD8F1: + end + +BattleAIScript_82DD8F2: + if_stat_level_more_than AI_TARGET, ATK, 8, BattleAIScript_82DD91F + if_stat_level_more_than AI_TARGET, DEF, 8, BattleAIScript_82DD91F + if_stat_level_more_than AI_TARGET, SPATK, 8, BattleAIScript_82DD91F + if_stat_level_more_than AI_TARGET, SPDEF, 8, BattleAIScript_82DD91F + if_stat_level_more_than AI_TARGET, EVASION, 8, BattleAIScript_82DD91F + goto BattleAIScript_82DD957 + +BattleAIScript_82DD91F: + if_stat_level_less_than AI_USER, ATK, 7, BattleAIScript_82DD954 + if_stat_level_less_than AI_USER, DEF, 7, BattleAIScript_82DD954 + if_stat_level_less_than AI_USER, SPATK, 7, BattleAIScript_82DD954 + if_stat_level_less_than AI_USER, SPDEF, 7, BattleAIScript_82DD954 + if_stat_level_less_than AI_USER, EVASION, 7, BattleAIScript_82DD952 + if_random_less_than 50, BattleAIScript_82DD959 + goto BattleAIScript_82DD957 + +BattleAIScript_82DD952: + score +1 + +BattleAIScript_82DD954: + score +1 + end + +BattleAIScript_82DD957: + score -2 + +BattleAIScript_82DD959: + end + +BattleAIScript_82DD95A: + if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DD9FF + if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD9FF + if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DD9FF + if_hp_more_than AI_USER, 30, BattleAIScript_82DD987 + if_random_less_than 10, BattleAIScript_82DD987 + score -1 + +BattleAIScript_82DD987: + if_hp_more_than AI_USER, 50, BattleAIScript_82DD996 + if_random_less_than 100, BattleAIScript_82DD996 + score -1 + +BattleAIScript_82DD996: + if_has_move AI_USER, MOVE_COUNTER, BattleAIScript_82DD9F6 + get_last_used_bank_move AI_TARGET + get_move_power_from_result + if_equal 0, BattleAIScript_82DD9CD + if_target_not_taunted BattleAIScript_82DD9B4 + if_random_less_than 100, BattleAIScript_82DD9B4 + score +1 + +BattleAIScript_82DD9B4: + get_last_used_bank_move AI_TARGET + get_move_type_from_result + if_not_in_bytes sTypesTable_82DDA02, BattleAIScript_82DD9FF + if_random_less_than 100, BattleAIScript_82DDA01 + score +1 + goto BattleAIScript_82DDA01 + +BattleAIScript_82DD9CD: + if_target_not_taunted BattleAIScript_82DD9DA + if_random_less_than 100, BattleAIScript_82DD9DA + score +1 + +BattleAIScript_82DD9DA: + get_target_type1 + if_in_bytes sTypesTable_82DDA02, BattleAIScript_82DDA01 + get_target_type2 + if_in_bytes sTypesTable_82DDA02, BattleAIScript_82DDA01 + if_random_less_than 50, BattleAIScript_82DDA01 + +BattleAIScript_82DD9F6: + if_random_less_than 100, BattleAIScript_82DD9FE + score +4 + +BattleAIScript_82DD9FE: + end + +BattleAIScript_82DD9FF: + score -1 + +BattleAIScript_82DDA01: + end + +sTypesTable_82DDA02: + .byte TYPE_FIRE + .byte TYPE_WATER + .byte TYPE_GRASS + .byte TYPE_ELECTRIC + .byte TYPE_PSYCHIC + .byte TYPE_ICE + .byte TYPE_DRAGON + .byte TYPE_DARK + .byte -1 + +BattleAIScript_82DDA0B: + if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DDA2C + if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DDA2C + if_has_move_with_effect AI_TARGET, EFFECT_PROTECT, BattleAIScript_82DDA2C + if_hp_more_than AI_USER, 38, BattleAIScript_82DDA2E + score -1 + goto BattleAIScript_82DDA2E + +BattleAIScript_82DDA2C: + score -2 + +BattleAIScript_82DDA2E: + end + +BattleAIScript_82DDA2F: + if_doesnt_have_move_with_effect AI_TARGET, EFFECT_PROTECT, BattleAIScript_82DDA3D + score -1 + goto BattleAIScript_82DDAB4 + +BattleAIScript_82DDA3D: + if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DDAAC + if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DDAAC + if_status3 AI_TARGET, STATUS3_LEECHSEED, BattleAIScript_82DDAAC + get_weather + if_equal AI_WEATHER_HAIL, BattleAIScript_82DDA6D + if_equal AI_WEATHER_SANDSTORM, BattleAIScript_82DDA88 + goto BattleAIScript_82DDA98 + +BattleAIScript_82DDA6D: + get_user_type1 + if_in_bytes sTypesTable_82DDAB5, BattleAIScript_82DDAAC + get_user_type2 + if_in_bytes sTypesTable_82DDAB5, BattleAIScript_82DDAAC + goto BattleAIScript_82DDA98 + +BattleAIScript_82DDA88: + get_user_type1 + if_equal TYPE_ICE, BattleAIScript_82DDAAC + get_user_type2 + if_equal TYPE_ICE, BattleAIScript_82DDAAC + +BattleAIScript_82DDA98: + if_target_faster BattleAIScript_82DDAB4 + get_last_used_bank_move AI_TARGET + get_move_effect_from_result + if_not_equal EFFECT_LOCK_ON, BattleAIScript_82DDAAC + goto BattleAIScript_82DDAB4 + +BattleAIScript_82DDAAC: + if_random_less_than 80, BattleAIScript_82DDAB4 + score +1 + +BattleAIScript_82DDAB4: + end + +sTypesTable_82DDAB5: + .byte TYPE_GROUND + .byte TYPE_ROCK + .byte TYPE_STEEL + .byte -1 + +BattleAIScript_82DDAB9: + score +2 + end + +BattleAIScript_82DDABC: + get_stockpile_count AI_USER + if_less_than 2, BattleAIScript_82DDACC + if_random_less_than 80, BattleAIScript_82DDACC + score +2 + +BattleAIScript_82DDACC: + end + +BattleAIScript_82DDACD: + if_hp_less_than AI_USER, 40, BattleAIScript_82DDAF3 + get_weather + if_equal AI_WEATHER_SUN, BattleAIScript_82DDAEC + if_equal AI_WEATHER_RAIN, BattleAIScript_82DDAEC + if_equal AI_WEATHER_SANDSTORM, BattleAIScript_82DDAEC + goto BattleAIScript_82DDAF5 + +BattleAIScript_82DDAEC: + score +1 + goto BattleAIScript_82DDAF5 + +BattleAIScript_82DDAF3: + score -1 + +BattleAIScript_82DDAF5: + end + +BattleAIScript_82DDAF6: + if_not_status AI_TARGET, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleAIScript_82DDB02 + score +1 + +BattleAIScript_82DDB02: + end + +BattleAIScript_82DDB03: + if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DDB42 + if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DDB42 + if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DDB59 + if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DDB49 + if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DDB49 + is_first_turn_for AI_USER + if_not_equal 0, BattleAIScript_82DDB5B + if_random_less_than 100, BattleAIScript_82DDB5B + score +1 + goto BattleAIScript_82DDB5B + +BattleAIScript_82DDB42: + score -1 + goto BattleAIScript_82DDB5B + +BattleAIScript_82DDB49: + if_random_less_than 100, BattleAIScript_82DDB5B + if_status2 AI_USER, STATUS2_SUBSTITUTE, Score_Plus5 + +BattleAIScript_82DDB59: + score +1 + +BattleAIScript_82DDB5B: + end + +BattleAIScript_82DDB5C: + if_status AI_TARGET, STATUS_PARALYSIS, BattleAIScript_82DDB6B + goto BattleAIScript_82DDB6D + +BattleAIScript_82DDB6B: + score +1 + +BattleAIScript_82DDB6D: + end + +BattleAIScript_82DDB6E: + get_hold_effect AI_USER + if_in_bytes sHoldEffectsTable_82DDBB7, BattleAIScript_82DDB89 + if_in_bytes sHoldEffectsTable_82DDBAF, BattleAIScript_82DDB9B + +BattleAIScript_82DDB82: + score -3 + goto BattleAIScript_82DDBAE + +BattleAIScript_82DDB89: + get_hold_effect AI_TARGET + if_in_bytes sHoldEffectsTable_82DDBB7, BattleAIScript_82DDB82 + score +5 + goto BattleAIScript_82DDBAE + +BattleAIScript_82DDB9B: + get_hold_effect AI_TARGET + if_in_bytes sHoldEffectsTable_82DDBAF, BattleAIScript_82DDB82 + if_random_less_than 50, BattleAIScript_82DDBAE + score +2 + +BattleAIScript_82DDBAE: + end + +sHoldEffectsTable_82DDBAF: + .byte HOLD_EFFECT_CONFUSE_SPICY + .byte HOLD_EFFECT_CONFUSE_DRY + .byte HOLD_EFFECT_CONFUSE_SWEET + .byte HOLD_EFFECT_CONFUSE_BITTER + .byte HOLD_EFFECT_CONFUSE_SOUR + .byte HOLD_EFFECT_MACHO_BRACE + .byte HOLD_EFFECT_CHOICE_BAND + .byte -1 + +sHoldEffectsTable_82DDBB7: + .byte HOLD_EFFECT_CHOICE_BAND + .byte -1 + +BattleAIScript_82DDBB9: + get_ability AI_USER + if_in_bytes sAbilitiesTable_82DDBDF, BattleAIScript_82DDBCF + get_ability AI_TARGET + if_in_bytes sAbilitiesTable_82DDBDF, BattleAIScript_82DDBD6 + +BattleAIScript_82DDBCF: + score -1 + goto BattleAIScript_82DDBDE + +BattleAIScript_82DDBD6: + if_random_less_than 50, BattleAIScript_82DDBDE + score +2 + +BattleAIScript_82DDBDE: + end + +sAbilitiesTable_82DDBDF: + .byte ABILITY_SPEED_BOOST + .byte ABILITY_BATTLE_ARMOR + .byte ABILITY_SAND_VEIL + .byte ABILITY_STATIC + .byte ABILITY_FLASH_FIRE + .byte ABILITY_WONDER_GUARD + .byte ABILITY_EFFECT_SPORE + .byte ABILITY_SWIFT_SWIM + .byte ABILITY_HUGE_POWER + .byte ABILITY_RAIN_DISH + .byte ABILITY_CUTE_CHARM + .byte ABILITY_SHED_SKIN + .byte ABILITY_MARVEL_SCALE + .byte ABILITY_PURE_POWER + .byte ABILITY_CHLOROPHYLL + .byte ABILITY_SHIELD_DUST + .byte -1 + +BattleAIScript_82DDBF0: + if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DDC1D + if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DDC1D + if_stat_level_less_than AI_USER, ATK, 6, BattleAIScript_82DDC1D + if_target_faster BattleAIScript_82DDC16 + if_hp_more_than AI_USER, 40, BattleAIScript_82DDC1D + goto BattleAIScript_82DDC1F + +BattleAIScript_82DDC16: + if_hp_less_than AI_USER, 60, BattleAIScript_82DDC1F + +BattleAIScript_82DDC1D: + score -1 + +BattleAIScript_82DDC1F: + end + +BattleAIScript_82DDC20: + if_hp_more_than AI_TARGET, 30, BattleAIScript_82DDC2F + if_random_less_than 100, BattleAIScript_82DDC2F + score -1 + +BattleAIScript_82DDC2F: + is_first_turn_for AI_USER + if_equal 0, BattleAIScript_82DDC4A + if_random_less_than 150, BattleAIScript_82DDC52 + score +1 + goto BattleAIScript_82DDC52 + +AI_CV_MagicCoat3: + if_random_less_than 50, BattleAIScript_82DDC52 + +BattleAIScript_82DDC4A: + if_random_less_than 30, BattleAIScript_82DDC52 + score -1 + +BattleAIScript_82DDC52: + end + +BattleAIScript_82DDC53: + get_used_held_item AI_USER + if_not_in_bytes sItemsTable_82DDC6E, BattleAIScript_82DDC6B + if_random_less_than 50, BattleAIScript_82DDC6D + score +1 + goto BattleAIScript_82DDC6D + +BattleAIScript_82DDC6B: + score -2 + +BattleAIScript_82DDC6D: + end + +sItemsTable_82DDC6E: + .byte ITEM_CHESTO_BERRY + .byte ITEM_LUM_BERRY + .byte ITEM_STARF_BERRY + .byte -1 + +BattleAIScript_82DDC72: + if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DDC9D + if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DDC9D + if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DDC9D + if_random_less_than 180, BattleAIScript_82DDC9D + score +2 + goto BattleAIScript_82DDC9F + +BattleAIScript_82DDC9D: + score -2 + +BattleAIScript_82DDC9F: + end + +BattleAIScript_82DDCA0: + if_side_affecting AI_TARGET, SIDE_STATUS_REFLECT, BattleAIScript_82DDCAF + goto BattleAIScript_82DDCB1 + +BattleAIScript_82DDCAF: + score +1 + +BattleAIScript_82DDCB1: + end + +BattleAIScript_82DDCB2: + if_hp_less_than AI_TARGET, 30, BattleAIScript_82DDCC9 + is_first_turn_for AI_USER + if_more_than 0, BattleAIScript_82DDCC9 + if_random_less_than 180, BattleAIScript_82DDCC9 + score +1 + +BattleAIScript_82DDCC9: + end + +BattleAIScript_82DDCCA: + if_hp_less_than AI_TARGET, 70, BattleAIScript_82DDCF3 + if_target_faster BattleAIScript_82DDCE5 + if_hp_more_than AI_USER, 40, BattleAIScript_82DDCF3 + score +1 + goto BattleAIScript_82DDCF5 + +BattleAIScript_82DDCE5: + if_hp_more_than AI_USER, 50, BattleAIScript_82DDCF3 + score +1 + goto BattleAIScript_82DDCF5 + +BattleAIScript_82DDCF3: + score -1 + +BattleAIScript_82DDCF5: + end + +BattleAIScript_82DDCF6: + if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DDD1B + if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DDD1B + if_target_faster BattleAIScript_82DDD14 + if_hp_more_than AI_TARGET, 50, BattleAIScript_82DDD1D + goto BattleAIScript_82DDD1B + +BattleAIScript_82DDD14: + if_hp_more_than AI_TARGET, 70, BattleAIScript_82DDD1D + +BattleAIScript_82DDD1B: + score -1 + +BattleAIScript_82DDD1D: + end + +BattleAIScript_82DDD1E: + is_first_turn_for AI_USER + if_more_than 0, BattleAIScript_82DDD2E + if_random_less_than 100, BattleAIScript_82DDD2E + score +2 + +BattleAIScript_82DDD2E: + end + +BattleAIScript_82DDD2F: + if_hp_less_than AI_TARGET, 50, BattleAIScript_82DDD3B + goto BattleAIScript_82DDD3D + +BattleAIScript_82DDD3B: + score -1 + +BattleAIScript_82DDD3D: + end + +BattleAIScript_82DDD3E: + is_first_turn_for AI_USER + if_equal 1, BattleAIScript_82DDD85 + if_random_less_than 30, BattleAIScript_82DDDA7 + if_target_faster BattleAIScript_82DDD6B + if_hp_not_equal AI_USER, 100, BattleAIScript_82DDD9F + if_hp_less_than AI_TARGET, 70, BattleAIScript_82DDD9F + if_random_less_than 60, BattleAIScript_82DDDA7 + goto BattleAIScript_82DDD9F + +BattleAIScript_82DDD6B: + if_hp_more_than AI_TARGET, 25, BattleAIScript_82DDD9F + if_has_move_with_effect AI_TARGET, EFFECT_RESTORE_HP, BattleAIScript_82DDD85 + if_has_move_with_effect AI_TARGET, EFFECT_DEFENSE_CURL, BattleAIScript_82DDD85 + goto BattleAIScript_82DDD92 + +BattleAIScript_82DDD85: + if_random_less_than 150, BattleAIScript_82DDDA7 + score +2 + goto BattleAIScript_82DDDA7 + +BattleAIScript_82DDD92: + if_random_less_than 230, BattleAIScript_82DDD9F + score +1 + goto BattleAIScript_82DDDA7 + +BattleAIScript_82DDD9F: + if_random_less_than 30, BattleAIScript_82DDDA7 + score -2 + +BattleAIScript_82DDDA7: + end + +BattleAIScript_82DDDA8: + if_hp_less_than AI_USER, 50, BattleAIScript_82DDDCB + get_target_type1 + if_equal TYPE_ELECTRIC, BattleAIScript_82DDDC4 + get_target_type2 + if_equal TYPE_ELECTRIC, BattleAIScript_82DDDC4 + goto BattleAIScript_82DDDCB + +BattleAIScript_82DDDC4: + score +1 + goto BattleAIScript_82DDDCD + +BattleAIScript_82DDDCB: + score -1 + +BattleAIScript_82DDDCD: + end + +BattleAIScript_82DDDCE: + if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DDDF3 + if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DDDF3 + if_target_faster BattleAIScript_82DDDEC + if_hp_more_than AI_USER, 60, BattleAIScript_82DDDF5 + goto BattleAIScript_82DDDF3 + +BattleAIScript_82DDDEC: + if_hp_more_than AI_USER, 80, BattleAIScript_82DDDF5 + +BattleAIScript_82DDDF3: + score -1 + +BattleAIScript_82DDDF5: + end + +BattleAIScript_82DDDF6: + if_hp_less_than AI_USER, 50, BattleAIScript_82DDE19 + get_target_type1 + if_equal TYPE_FIRE, BattleAIScript_82DDE12 + get_target_type2 + if_equal TYPE_FIRE, BattleAIScript_82DDE12 + goto BattleAIScript_82DDE19 + +BattleAIScript_82DDE12: + score +1 + goto BattleAIScript_82DDE1B + +BattleAIScript_82DDE19: + score -1 + +BattleAIScript_82DDE1B: + end + +BattleAIScript_82DDE1C: + if_target_faster BattleAIScript_82DDE36 + if_hp_more_than AI_USER, 50, BattleAIScript_82DDE3E + if_random_less_than 70, BattleAIScript_82DDE3E + score -1 + goto BattleAIScript_82DDE3E + +BattleAIScript_82DDE36: + if_random_less_than 128, BattleAIScript_82DDE3E + score +1 + +BattleAIScript_82DDE3E: + end + +AI_CheckViability: + if_target_is_ally AI_Ret + if_can_faint BattleAIScript_82DDE60 + get_how_powerful_move_is + if_equal 1, Score_Minus1 + if_type_effectiveness AI_EFFECTIVENESS_x4, BattleAIScript_82DDE57 + end + +BattleAIScript_82DDE57: + if_random_less_than 80, BattleAIScript_82DDE70 + score +2 + end + +BattleAIScript_82DDE60: + if_effect EFFECT_EXPLOSION, BattleAIScript_82DDE70 + if_not_effect EFFECT_QUICK_ATTACK, BattleAIScript_82DDE6E + score +2 + +BattleAIScript_82DDE6E: + score +4 + +BattleAIScript_82DDE70: + end + +AI_SetupFirstTurn: + if_target_is_ally AI_Ret + get_turn_count + if_not_equal 0, BattleAIScript_82DDE8F + get_considered_move_effect + if_not_in_bytes sMoveEffectsTable_82DDE90, BattleAIScript_82DDE8F + if_random_less_than 80, BattleAIScript_82DDE8F + score +2 + +BattleAIScript_82DDE8F: + end + +sMoveEffectsTable_82DDE90: + .byte EFFECT_ATTACK_UP + .byte EFFECT_DEFENSE_UP + .byte EFFECT_SPEED_UP + .byte EFFECT_SPECIAL_ATTACK_UP + .byte EFFECT_SPECIAL_DEFENSE_UP + .byte EFFECT_ACCURACY_UP + .byte EFFECT_EVASION_UP + .byte EFFECT_ATTACK_DOWN + .byte EFFECT_DEFENSE_DOWN + .byte EFFECT_SPEED_DOWN + .byte EFFECT_SPECIAL_ATTACK_DOWN + .byte EFFECT_SPECIAL_DEFENSE_DOWN + .byte EFFECT_ACCURACY_DOWN + .byte EFFECT_EVASION_DOWN + .byte EFFECT_CONVERSION + .byte EFFECT_LIGHT_SCREEN + .byte EFFECT_SPECIAL_DEFENSE_UP_2 + .byte EFFECT_FOCUS_ENERGY + .byte EFFECT_CONFUSE + .byte EFFECT_ATTACK_UP_2 + .byte EFFECT_DEFENSE_UP_2 + .byte EFFECT_SPEED_UP_2 + .byte EFFECT_SPECIAL_ATTACK_UP_2 + .byte EFFECT_SPECIAL_DEFENSE_UP_2 + .byte EFFECT_ACCURACY_UP_2 + .byte EFFECT_EVASION_UP_2 + .byte EFFECT_ATTACK_DOWN_2 + .byte EFFECT_DEFENSE_DOWN_2 + .byte EFFECT_SPEED_DOWN_2 + .byte EFFECT_SPECIAL_ATTACK_DOWN_2 + .byte EFFECT_SPECIAL_DEFENSE_DOWN_2 + .byte EFFECT_ACCURACY_DOWN_2 + .byte EFFECT_EVASION_DOWN_2 + .byte EFFECT_REFLECT + .byte EFFECT_POISON + .byte EFFECT_PARALYZE + .byte EFFECT_SUBSTITUTE + .byte EFFECT_LEECH_SEED + .byte EFFECT_MINIMIZE + .byte EFFECT_CURSE + .byte EFFECT_SWAGGER + .byte EFFECT_CAMOUFLAGE + .byte EFFECT_YAWN + .byte EFFECT_DEFENSE_CURL + .byte EFFECT_TORMENT + .byte EFFECT_FLATTER + .byte EFFECT_WILL_O_WISP + .byte EFFECT_INGRAIN + .byte EFFECT_IMPRISON + .byte EFFECT_TEETER_DANCE + .byte EFFECT_TICKLE + .byte EFFECT_COSMIC_POWER + .byte EFFECT_BULK_UP + .byte EFFECT_CALM_MIND + .byte EFFECT_CAMOUFLAGE + .byte -1 + +AI_PreferStrongestMove: + if_target_is_ally AI_Ret + get_how_powerful_move_is + if_not_equal 0, BattleAIScript_82DDEDC + if_random_less_than 100, BattleAIScript_82DDEDC + score +2 + +BattleAIScript_82DDEDC: + end + +AI_Risky: + if_target_is_ally AI_Ret + get_considered_move_effect + if_not_in_bytes sMoveEffectsTable_82DDEF5, BattleAIScript_82DDEF4 + if_random_less_than 128, BattleAIScript_82DDEF4 + score +2 + +BattleAIScript_82DDEF4: + end + +sMoveEffectsTable_82DDEF5: + .byte EFFECT_SLEEP + .byte EFFECT_EXPLOSION + .byte EFFECT_MIRROR_MOVE + .byte EFFECT_OHKO + .byte EFFECT_HIGH_CRITICAL + .byte EFFECT_CONFUSE + .byte EFFECT_METRONOME + .byte EFFECT_PSYWAVE + .byte EFFECT_COUNTER + .byte EFFECT_DESTINY_BOND + .byte EFFECT_SWAGGER + .byte EFFECT_ATTRACT + .byte EFFECT_PRESENT + .byte EFFECT_ALL_STATS_UP_HIT + .byte EFFECT_BELLY_DRUM + .byte EFFECT_MIRROR_COAT + .byte EFFECT_FOCUS_PUNCH + .byte EFFECT_REVENGE + .byte EFFECT_TEETER_DANCE + .byte -1 + +AI_PreferBatonPass: + if_target_is_ally AI_Ret + count_usable_party_mons AI_USER + if_equal 0, BattleAIScript_82DDFB3 + get_how_powerful_move_is + if_not_equal 0, BattleAIScript_82DDFB3 + if_has_move_with_effect AI_USER, EFFECT_BATON_PASS, BattleAIScript_82DDF2A + if_random_less_than 80, BattleAIScript_82DDEF4 + +BattleAIScript_82DDF2A: + if_move MOVE_SWORDS_DANCE, BattleAIScript_82DDF54 + if_move MOVE_DRAGON_DANCE, BattleAIScript_82DDF54 + if_move MOVE_CALM_MIND, BattleAIScript_82DDF54 + if_effect EFFECT_PROTECT, BattleAIScript_82DDF67 + if_move MOVE_BATON_PASS, BattleAIScript_82DDF7B + if_random_less_than 20, BattleAIScript_82DDEF4 + score +3 + +BattleAIScript_82DDF54: + get_turn_count + if_equal 0, Score_Plus5 + if_hp_less_than AI_USER, 60, Score_Minus10 + goto Score_Plus1 + +BattleAIScript_82DDF67: + get_last_used_bank_move AI_USER + if_in_hwords sMovesTable_82DDF75, Score_Minus2 + score +2 + end + +sMovesTable_82DDF75: + .2byte MOVE_PROTECT + .2byte MOVE_DETECT + .2byte -1 + +BattleAIScript_82DDF7B: + get_turn_count + if_equal 0, Score_Minus2 + if_stat_level_more_than AI_USER, ATK, 8, Score_Plus3 + if_stat_level_more_than AI_USER, ATK, 7, Score_Plus2 + if_stat_level_more_than AI_USER, ATK, 6, Score_Plus1 + if_stat_level_more_than AI_USER, SPATK, 8, Score_Plus3 + if_stat_level_more_than AI_USER, SPATK, 7, Score_Plus2 + if_stat_level_more_than AI_USER, SPATK, 6, Score_Plus1 + end + +BattleAIScript_82DDFB3: + end + +AI_DoubleBattle: + if_target_is_ally AI_TryOnAlly + if_move MOVE_SKILL_SWAP, BattleAIScript_82DE04B + get_curr_move_type + if_move MOVE_EARTHQUAKE, BattleAIScript_82DE010 + if_move MOVE_MAGNITUDE, BattleAIScript_82DE010 + if_equal 13, BattleAIScript_82DE062 + if_equal 10, BattleAIScript_82DE079 + get_ability AI_USER + if_not_equal ABILITY_GUTS, BattleAIScript_82DDFF5 + if_has_move AI_USER_PARTNER, MOVE_HELPING_HAND, BattleAIScript_82DDFED + end + +BattleAIScript_82DDFED: + get_how_powerful_move_is + if_not_equal 0, Score_Plus1 + end + +BattleAIScript_82DDFF5: + if_status AI_USER, STATUS_ANY, BattleAIScript_82DE000 + end + +BattleAIScript_82DE000: + get_how_powerful_move_is + if_equal 0, Score_Minus5 + score +1 + if_equal 2, Score_Plus2 + end + +BattleAIScript_82DE010: + if_ability AI_USER_PARTNER, ABILITY_LEVITATE, Score_Plus2 + if_type AI_USER_PARTNER, TYPE_FLYING, Score_Plus2 + if_type AI_USER_PARTNER, TYPE_FIRE, Score_Minus10 + if_type AI_USER_PARTNER, TYPE_ELECTRIC, Score_Minus10 + if_type AI_USER_PARTNER, TYPE_POISON, Score_Minus10 + if_type AI_USER_PARTNER, TYPE_ROCK, Score_Minus10 + goto Score_Minus3 + +BattleAIScript_82DE04B: + get_ability AI_USER + if_equal ABILITY_TRUANT, Score_Plus5 + get_ability AI_TARGET + if_equal ABILITY_SHADOW_TAG, Score_Plus2 + if_equal ABILITY_PURE_POWER, Score_Plus2 + end + +BattleAIScript_82DE062: + if_no_ability AI_TARGET_PARTNER, ABILITY_LIGHTNING_ROD, BattleAIScript_82DE078 + score -2 + if_no_type AI_TARGET_PARTNER, TYPE_GROUND, BattleAIScript_82DE078 + score -8 + +BattleAIScript_82DE078: + end + +BattleAIScript_82DE079: + if_flash_fired AI_USER, BattleAIScript_82DE080 + end + +BattleAIScript_82DE080: + goto Score_Plus1 + +AI_TryOnAlly: + get_how_powerful_move_is + if_equal 0, BattleAIScript_82DE0B2 + get_curr_move_type + if_equal TYPE_FIRE, BattleAIScript_82DE099 + +AI_DiscourageOnAlly: + goto Score_Minus30 + +BattleAIScript_82DE099: + if_ability AI_USER_PARTNER, ABILITY_FLASH_FIRE, BattleAIScript_82DE0A7 + goto AI_DiscourageOnAlly + +BattleAIScript_82DE0A7: + if_flash_fired AI_USER_PARTNER, AI_DiscourageOnAlly + goto Score_Plus3 + +BattleAIScript_82DE0B2: + if_move MOVE_SKILL_SWAP, BattleAIScript_82DE0DA + if_move MOVE_WILL_O_WISP, BattleAIScript_82DE14F + if_move MOVE_TOXIC, BattleAIScript_82DE14F + if_move MOVE_HELPING_HAND, BattleAIScript_82DE16D + if_move MOVE_SWAGGER, BattleAIScript_82DE178 + goto Score_Minus30_ + +BattleAIScript_82DE0DA: + get_ability AI_TARGET + if_equal ABILITY_TRUANT, Score_Plus10 + get_ability AI_USER + if_not_equal ABILITY_LEVITATE, BattleAIScript_82DE107 + get_ability AI_TARGET + if_equal ABILITY_LEVITATE, Score_Minus30_ + get_target_type1 + if_not_equal TYPE_ELECTRIC, BattleAIScript_82DE107 + score +1 + get_target_type2 + if_not_equal TYPE_ELECTRIC, BattleAIScript_82DE107 + score +1 + end + +BattleAIScript_82DE107: + if_not_equal 14, Score_Minus30_ + if_has_move AI_USER_PARTNER, MOVE_FIRE_BLAST, BattleAIScript_82DE14A + if_has_move AI_USER_PARTNER, MOVE_THUNDER, BattleAIScript_82DE14A + if_has_move AI_USER_PARTNER, MOVE_CROSS_CHOP, BattleAIScript_82DE14A + if_has_move AI_USER_PARTNER, MOVE_HYDRO_PUMP, BattleAIScript_82DE14A + if_has_move AI_USER_PARTNER, MOVE_DYNAMIC_PUNCH, BattleAIScript_82DE14A + if_has_move AI_USER_PARTNER, MOVE_BLIZZARD, BattleAIScript_82DE14A + if_has_move AI_USER_PARTNER, MOVE_MEGAHORN, BattleAIScript_82DE14A + goto Score_Minus30_ + +BattleAIScript_82DE14A: + goto Score_Plus3 + +BattleAIScript_82DE14F: + get_ability AI_TARGET + if_not_equal ABILITY_GUTS, Score_Minus30_ + if_status AI_TARGET, STATUS_ANY, Score_Minus30_ + if_hp_less_than AI_USER, 91, Score_Minus30_ + goto Score_Plus5 + +BattleAIScript_82DE16D: + if_random_less_than 64, Score_Minus1 + goto Score_Plus2 + +BattleAIScript_82DE178: + if_holds_item AI_TARGET, ITEM_PERSIM_BERRY, BattleAIScript_82DE185 + goto Score_Minus30_ + +BattleAIScript_82DE185: + if_stat_level_more_than AI_TARGET, ATK, 7, BattleAIScript_82DE18F + score +3 + +BattleAIScript_82DE18F: + end + +Score_Minus30_: + score -30 + end + +AI_HPAware: + if_target_is_ally AI_TryOnAlly + if_hp_more_than AI_USER, 70, BattleAIScript_82DE1B5 + if_hp_more_than AI_USER, 30, BattleAIScript_82DE1C4 + get_considered_move_effect + if_in_bytes sMoveEffectsTable_82DE258, BattleAIScript_82DE1D3 + goto BattleAIScript_82DE1DB + +BattleAIScript_82DE1B5: + get_considered_move_effect + if_in_bytes sMoveEffectsTable_82DE21F, BattleAIScript_82DE1D3 + goto BattleAIScript_82DE1DB + +BattleAIScript_82DE1C4: + get_considered_move_effect + if_in_bytes sMoveEffectsTable_82DE22D, BattleAIScript_82DE1D3 + goto BattleAIScript_82DE1DB + +BattleAIScript_82DE1D3: + if_random_less_than 50, BattleAIScript_82DE1DB + score -2 + +BattleAIScript_82DE1DB: + if_hp_more_than AI_TARGET, 70, BattleAIScript_82DE1F8 + if_hp_more_than AI_TARGET, 30, BattleAIScript_82DE207 + get_considered_move_effect + if_in_bytes sMoveEffectsTable_82DE2B1, BattleAIScript_82DE216 + goto BattleAIScript_82DE21E + +BattleAIScript_82DE1F8: + get_considered_move_effect + if_in_bytes sMoveEffectsTable_82DE288, BattleAIScript_82DE216 + goto BattleAIScript_82DE21E + +BattleAIScript_82DE207: + get_considered_move_effect + if_in_bytes sMoveEffectsTable_82DE289, BattleAIScript_82DE216 + goto BattleAIScript_82DE21E + +BattleAIScript_82DE216: + if_random_less_than 50, BattleAIScript_82DE21E + score -2 + +BattleAIScript_82DE21E: + end + +sMoveEffectsTable_82DE21F: + .byte EFFECT_EXPLOSION + .byte EFFECT_RESTORE_HP + .byte EFFECT_REST + .byte EFFECT_DESTINY_BOND + .byte EFFECT_FLAIL + .byte EFFECT_ENDURE + .byte EFFECT_MORNING_SUN + .byte EFFECT_SYNTHESIS + .byte EFFECT_MOONLIGHT + .byte EFFECT_SOFTBOILED + .byte EFFECT_MEMENTO + .byte EFFECT_GRUDGE + .byte EFFECT_OVERHEAT + .byte -1 + +sMoveEffectsTable_82DE22D: + .byte EFFECT_EXPLOSION + .byte EFFECT_ATTACK_UP + .byte EFFECT_DEFENSE_UP + .byte EFFECT_SPEED_UP + .byte EFFECT_SPECIAL_ATTACK_UP + .byte EFFECT_SPECIAL_DEFENSE_UP + .byte EFFECT_ACCURACY_UP + .byte EFFECT_EVASION_UP + .byte EFFECT_ATTACK_DOWN + .byte EFFECT_DEFENSE_DOWN + .byte EFFECT_SPEED_DOWN + .byte EFFECT_SPECIAL_ATTACK_DOWN + .byte EFFECT_SPECIAL_DEFENSE_DOWN + .byte EFFECT_ACCURACY_DOWN + .byte EFFECT_EVASION_DOWN + .byte EFFECT_BIDE + .byte EFFECT_CONVERSION + .byte EFFECT_LIGHT_SCREEN + .byte EFFECT_MIST + .byte EFFECT_FOCUS_ENERGY + .byte EFFECT_ATTACK_UP_2 + .byte EFFECT_DEFENSE_UP_2 + .byte EFFECT_SPEED_UP_2 + .byte EFFECT_SPECIAL_ATTACK_UP_2 + .byte EFFECT_SPECIAL_DEFENSE_UP_2 + .byte EFFECT_ACCURACY_UP_2 + .byte EFFECT_EVASION_UP_2 + .byte EFFECT_ATTACK_DOWN_2 + .byte EFFECT_DEFENSE_DOWN_2 + .byte EFFECT_SPEED_DOWN_2 + .byte EFFECT_SPECIAL_ATTACK_DOWN_2 + .byte EFFECT_SPECIAL_DEFENSE_DOWN_2 + .byte EFFECT_ACCURACY_DOWN_2 + .byte EFFECT_EVASION_DOWN_2 + .byte EFFECT_CONVERSION_2 + .byte EFFECT_SAFEGUARD + .byte EFFECT_BELLY_DRUM + .byte EFFECT_TICKLE + .byte EFFECT_COSMIC_POWER + .byte EFFECT_BULK_UP + .byte EFFECT_CALM_MIND + .byte EFFECT_DRAGON_DANCE + .byte -1 + +sMoveEffectsTable_82DE258: + .byte EFFECT_ATTACK_UP + .byte EFFECT_DEFENSE_UP + .byte EFFECT_SPEED_UP + .byte EFFECT_SPECIAL_ATTACK_UP + .byte EFFECT_SPECIAL_DEFENSE_UP + .byte EFFECT_ACCURACY_UP + .byte EFFECT_EVASION_UP + .byte EFFECT_ATTACK_DOWN + .byte EFFECT_DEFENSE_DOWN + .byte EFFECT_SPEED_DOWN + .byte EFFECT_SPECIAL_ATTACK_DOWN + .byte EFFECT_SPECIAL_DEFENSE_DOWN + .byte EFFECT_ACCURACY_DOWN + .byte EFFECT_EVASION_DOWN + .byte EFFECT_BIDE + .byte EFFECT_CONVERSION + .byte EFFECT_LIGHT_SCREEN + .byte EFFECT_MIST + .byte EFFECT_FOCUS_ENERGY + .byte EFFECT_ATTACK_UP_2 + .byte EFFECT_DEFENSE_UP_2 + .byte EFFECT_SPEED_UP_2 + .byte EFFECT_SPECIAL_ATTACK_UP_2 + .byte EFFECT_SPECIAL_DEFENSE_UP_2 + .byte EFFECT_ACCURACY_UP_2 + .byte EFFECT_EVASION_UP_2 + .byte EFFECT_ATTACK_DOWN_2 + .byte EFFECT_DEFENSE_DOWN_2 + .byte EFFECT_SPEED_DOWN_2 + .byte EFFECT_SPECIAL_ATTACK_DOWN_2 + .byte EFFECT_SPECIAL_DEFENSE_DOWN_2 + .byte EFFECT_ACCURACY_DOWN_2 + .byte EFFECT_EVASION_DOWN_2 + .byte EFFECT_RAGE + .byte EFFECT_CONVERSION_2 + .byte EFFECT_LOCK_ON + .byte EFFECT_SAFEGUARD + .byte EFFECT_BELLY_DRUM + .byte EFFECT_PSYCH_UP + .byte EFFECT_MIRROR_COAT + .byte EFFECT_SOLARBEAM + .byte EFFECT_ERUPTION + .byte EFFECT_TICKLE + .byte EFFECT_COSMIC_POWER + .byte EFFECT_BULK_UP + .byte EFFECT_CALM_MIND + .byte EFFECT_DRAGON_DANCE + .byte -1 + +sMoveEffectsTable_82DE288: + .byte -1 + +sMoveEffectsTable_82DE289: + .byte EFFECT_ATTACK_UP + .byte EFFECT_DEFENSE_UP + .byte EFFECT_SPEED_UP + .byte EFFECT_SPECIAL_ATTACK_UP + .byte EFFECT_SPECIAL_DEFENSE_UP + .byte EFFECT_ACCURACY_UP + .byte EFFECT_EVASION_UP + .byte EFFECT_ATTACK_DOWN + .byte EFFECT_DEFENSE_DOWN + .byte EFFECT_SPEED_DOWN + .byte EFFECT_SPECIAL_ATTACK_DOWN + .byte EFFECT_SPECIAL_DEFENSE_DOWN + .byte EFFECT_ACCURACY_DOWN + .byte EFFECT_EVASION_DOWN + .byte EFFECT_MIST + .byte EFFECT_FOCUS_ENERGY + .byte EFFECT_ATTACK_UP_2 + .byte EFFECT_DEFENSE_UP_2 + .byte EFFECT_SPEED_UP_2 + .byte EFFECT_SPECIAL_ATTACK_UP_2 + .byte EFFECT_SPECIAL_DEFENSE_UP_2 + .byte EFFECT_ACCURACY_UP_2 + .byte EFFECT_EVASION_UP_2 + .byte EFFECT_ATTACK_DOWN_2 + .byte EFFECT_DEFENSE_DOWN_2 + .byte EFFECT_SPEED_DOWN_2 + .byte EFFECT_SPECIAL_ATTACK_DOWN_2 + .byte EFFECT_SPECIAL_DEFENSE_DOWN_2 + .byte EFFECT_ACCURACY_DOWN_2 + .byte EFFECT_EVASION_DOWN_2 + .byte EFFECT_POISON + .byte EFFECT_PAIN_SPLIT + .byte EFFECT_PERISH_SONG + .byte EFFECT_SAFEGUARD + .byte EFFECT_TICKLE + .byte EFFECT_COSMIC_POWER + .byte EFFECT_BULK_UP + .byte EFFECT_CALM_MIND + .byte EFFECT_DRAGON_DANCE + .byte -1 + +sMoveEffectsTable_82DE2B1: + .byte EFFECT_SLEEP + .byte EFFECT_EXPLOSION + .byte EFFECT_ATTACK_UP + .byte EFFECT_DEFENSE_UP + .byte EFFECT_SPEED_UP + .byte EFFECT_SPECIAL_ATTACK_UP + .byte EFFECT_SPECIAL_DEFENSE_UP + .byte EFFECT_ACCURACY_UP + .byte EFFECT_EVASION_UP + .byte EFFECT_ATTACK_DOWN + .byte EFFECT_DEFENSE_DOWN + .byte EFFECT_SPEED_DOWN + .byte EFFECT_SPECIAL_ATTACK_DOWN + .byte EFFECT_SPECIAL_DEFENSE_DOWN + .byte EFFECT_ACCURACY_DOWN + .byte EFFECT_EVASION_DOWN + .byte EFFECT_BIDE + .byte EFFECT_CONVERSION + .byte EFFECT_TOXIC + .byte EFFECT_LIGHT_SCREEN + .byte EFFECT_OHKO + .byte EFFECT_SUPER_FANG + .byte EFFECT_SUPER_FANG + .byte EFFECT_MIST + .byte EFFECT_FOCUS_ENERGY + .byte EFFECT_CONFUSE + .byte EFFECT_ATTACK_UP_2 + .byte EFFECT_DEFENSE_UP_2 + .byte EFFECT_SPEED_UP_2 + .byte EFFECT_SPECIAL_ATTACK_UP_2 + .byte EFFECT_SPECIAL_DEFENSE_UP_2 + .byte EFFECT_ACCURACY_UP_2 + .byte EFFECT_EVASION_UP_2 + .byte EFFECT_ATTACK_DOWN_2 + .byte EFFECT_DEFENSE_DOWN_2 + .byte EFFECT_SPEED_DOWN_2 + .byte EFFECT_SPECIAL_ATTACK_DOWN_2 + .byte EFFECT_SPECIAL_DEFENSE_DOWN_2 + .byte EFFECT_ACCURACY_DOWN_2 + .byte EFFECT_EVASION_DOWN_2 + .byte EFFECT_POISON + .byte EFFECT_PARALYZE + .byte EFFECT_PAIN_SPLIT + .byte EFFECT_CONVERSION_2 + .byte EFFECT_LOCK_ON + .byte EFFECT_SPITE + .byte EFFECT_PERISH_SONG + .byte EFFECT_SWAGGER + .byte EFFECT_FURY_CUTTER + .byte EFFECT_ATTRACT + .byte EFFECT_SAFEGUARD + .byte EFFECT_PSYCH_UP + .byte EFFECT_MIRROR_COAT + .byte EFFECT_WILL_O_WISP + .byte EFFECT_TICKLE + .byte EFFECT_COSMIC_POWER + .byte EFFECT_BULK_UP + .byte EFFECT_CALM_MIND + .byte EFFECT_DRAGON_DANCE + .byte -1 + +AI_Unknown: + if_target_is_ally AI_TryOnAlly + if_not_effect EFFECT_SUNNY_DAY, BattleAIScript_82DE308 + if_equal 0, BattleAIScript_82DE308 + is_first_turn_for AI_USER + if_equal 0, BattleAIScript_82DE308 + score +5 + +BattleAIScript_82DE308: + end + +AI_Roaming: + if_status2 AI_USER, STATUS2_WRAPPED, BattleAIScript_82DE336 + if_status2 AI_USER, STATUS2_ESCAPE_PREVENTION, BattleAIScript_82DE336 + get_ability AI_TARGET + if_equal ABILITY_SHADOW_TAG, BattleAIScript_82DE336 + get_ability AI_USER + if_equal ABILITY_LEVITATE, BattleAIScript_82DE335 + get_ability AI_TARGET + if_equal ABILITY_ARENA_TRAP, BattleAIScript_82DE336 + +BattleAIScript_82DE335: + flee + +BattleAIScript_82DE336: + end + +AI_Safari: + if_random_safari_flee BattleAIScript_82DE33D + watch + +BattleAIScript_82DE33D: + flee + +AI_FirstBattle: + if_hp_equal AI_TARGET, 20, BattleAIScript_82DE34D + if_hp_less_than AI_TARGET, 20, BattleAIScript_82DE34D + end + +BattleAIScript_82DE34D: + flee + +AI_Ret: + end diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h new file mode 100644 index 0000000000..9d89d75f08 --- /dev/null +++ b/include/constants/battle_ai.h @@ -0,0 +1,52 @@ +#ifndef GUARD_BATTLE_AI_H +#define GUARD_BATTLE_AI_H + +// banks enum +#define AI_TARGET 0 +#define AI_USER 1 +#define AI_TARGET_PARTNER 2 +#define AI_USER_PARTNER 3 + +// get_type command +#define AI_TYPE1_TARGET 0 +#define AI_TYPE1_USER 1 +#define AI_TYPE2_TARGET 2 +#define AI_TYPE2_USER 3 +#define AI_TYPE_MOVE 4 + +// type effectiveness +#define AI_EFFECTIVENESS_x4 160 +#define AI_EFFECTIVENESS_x2 80 +#define AI_EFFECTIVENESS_x1 40 +#define AI_EFFECTIVENESS_x0_5 20 +#define AI_EFFECTIVENESS_x0_25 10 +#define AI_EFFECTIVENESS_x0 0 + +// ai weather enum +#define AI_WEATHER_SUN 0 +#define AI_WEATHER_RAIN 1 +#define AI_WEATHER_SANDSTORM 2 +#define AI_WEATHER_HAIL 3 + +// get_how_powerful_move_is +#define MOVE_POWER_DISCOURAGED 0 +#define MOVE_NOT_MOST_POWERFUL 1 +#define MOVE_MOST_POWERFUL 2 + +// script's table id to bit +#define AI_SCRIPT_CHECK_BAD_MOVE (1 << 0) +#define AI_SCRIPT_CHECK_VIABILITY (1 << 1) +#define AI_SCRIPT_TRY_TO_FAINT (1 << 2) +#define AI_SCRIPT_SETUP_FIRST_TURN (1 << 3) +#define AI_SCRIPT_RISKY (1 << 4) +#define AI_SCRIPT_PREFER_STRONGEST_MOVE (1 << 5) +#define AI_SCRIPT_PREFER_BATON_PASS (1 << 6) +#define AI_SCRIPT_DOUBLE_BATTLE (1 << 7) +#define AI_SCRIPT_HP_AWARE (1 << 8) +#define AI_SCRIPT_UNKNOWN (1 << 9) +// 10 - 28 are not used +#define AI_SCRIPT_ROAMING (1 << 29) +#define AI_SCRIPT_SAFARI (1 << 30) +#define AI_SCRIPT_FIRST_BATTLE (1 << 31) + +#endif // GUARD_BATTLE_AI_H diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index f03381f703..42cf0595f1 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -9,6 +9,7 @@ #include "constants/battle_move_effects.h" #include "constants/moves.h" #include "util.h" +#include "constants/battle_ai.h" #define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24) #define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8) @@ -26,14 +27,6 @@ #define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gBattleResources->ai)) #define BATTLE_HISTORY ((struct BattleHistory *)(gBattleResources->battleHistory)) -enum -{ - AI_TARGET, - AI_USER, - AI_TARGET_PARTNER, - AI_USER_PARTNER -}; - // AI states enum { @@ -374,32 +367,34 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves) // decide a random target bank in doubles if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gBankTarget = (Random() & 2) + (GetBankSide(gActiveBank) ^ 1); + gBankTarget = (Random() & BIT_MON) + (GetBankSide(gActiveBank) ^ BIT_SIDE); if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget ^= 2; + gBankTarget ^= BIT_MON; } // in singles there's only one choice else - gBankTarget = sBank_AI ^ 1; + { + gBankTarget = sBank_AI ^ BIT_SIDE; + } if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) AI_THINKING_STRUCT->aiFlags = GetAiScriptsInRecordedBattle(); else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - AI_THINKING_STRUCT->aiFlags = 0x40000000; + AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_SAFARI; else if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) - AI_THINKING_STRUCT->aiFlags = 0x20000000; + AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_ROAMING; else if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) - AI_THINKING_STRUCT->aiFlags = 0x80000000; + AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_FIRST_BATTLE; else if (gBattleTypeFlags & BATTLE_TYPE_FACTORY) AI_THINKING_STRUCT->aiFlags = GetAiScriptsInBattleFactory(); else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x4000000 | BATTLE_TYPE_SECRET_BASE)) - AI_THINKING_STRUCT->aiFlags = 7; // the smartest possible set + AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_TRY_TO_FAINT; else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent_A].aiFlags | gTrainers[gTrainerBattleOpponent_B].aiFlags; else AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent_A].aiFlags; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - AI_THINKING_STRUCT->aiFlags |= 0x80; // act smart in doubles and don't attack your partner + AI_THINKING_STRUCT->aiFlags |= AI_SCRIPT_DOUBLE_BATTLE; // act smart in doubles and don't attack your partner } u8 BattleAI_ChooseMoveOrAction(void) @@ -1127,19 +1122,19 @@ static void BattleAICmd_get_type(void) switch (typeVar) { - case 1: // player primary type + case AI_TYPE1_USER: // AI user primary type AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type1; break; - case 0: // enemy primary type + case AI_TYPE1_TARGET: // target primary type AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type1; break; - case 3: // player secondary type + case AI_TYPE2_USER: // AI user secondary type AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type2; break; - case 2: // enemy secondary type + case AI_TYPE2_TARGET: // target secondary type AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type2; break; - case 4: // type of move being pointed to + case AI_TYPE_MOVE: // type of move being pointed to AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; break; } @@ -1236,13 +1231,13 @@ static void BattleAICmd_get_how_powerful_move_is(void) } if (checkedMove == 4) - AI_THINKING_STRUCT->funcResult = 2; // is the most powerful + AI_THINKING_STRUCT->funcResult = MOVE_MOST_POWERFUL; // is the most powerful else - AI_THINKING_STRUCT->funcResult = 1; // not most powerful + AI_THINKING_STRUCT->funcResult = MOVE_NOT_MOST_POWERFUL; // not most powerful } else { - AI_THINKING_STRUCT->funcResult = 0; // highly discouraged in terms of power + AI_THINKING_STRUCT->funcResult = MOVE_POWER_DISCOURAGED; // highly discouraged in terms of power } gAIScriptPtr++; @@ -1493,7 +1488,7 @@ static void BattleAICmd_get_highest_type_effectiveness(void) for (i = 0; i < 4; i++) { - gBattleMoveDamage = 40; + gBattleMoveDamage = AI_EFFECTIVENESS_x1; gCurrentMove = gBattleMons[sBank_AI].moves[i]; if (gCurrentMove) @@ -1502,16 +1497,16 @@ static void BattleAICmd_get_highest_type_effectiveness(void) // reduce by 1/3. if (gBattleMoveDamage == 120) - gBattleMoveDamage = 80; + gBattleMoveDamage = AI_EFFECTIVENESS_x2; if (gBattleMoveDamage == 240) - gBattleMoveDamage = 160; + gBattleMoveDamage = AI_EFFECTIVENESS_x4; if (gBattleMoveDamage == 30) - gBattleMoveDamage = 20; + gBattleMoveDamage = AI_EFFECTIVENESS_x0_5; if (gBattleMoveDamage == 15) - gBattleMoveDamage = 10; + gBattleMoveDamage = AI_EFFECTIVENESS_x0_25; if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) - gBattleMoveDamage = 0; + gBattleMoveDamage = AI_EFFECTIVENESS_x0; if (AI_THINKING_STRUCT->funcResult < gBattleMoveDamage) AI_THINKING_STRUCT->funcResult = gBattleMoveDamage; @@ -1530,22 +1525,22 @@ static void BattleAICmd_if_type_effectiveness(void) gBattleMoveFlags = 0; gCritMultiplier = 1; - gBattleMoveDamage = 40; + gBattleMoveDamage = AI_EFFECTIVENESS_x1; gCurrentMove = AI_THINKING_STRUCT->moveConsidered; TypeCalc(gCurrentMove, sBank_AI, gBankTarget); if (gBattleMoveDamage == 120) - gBattleMoveDamage = 80; + gBattleMoveDamage = AI_EFFECTIVENESS_x2; if (gBattleMoveDamage == 240) - gBattleMoveDamage = 160; + gBattleMoveDamage = AI_EFFECTIVENESS_x4; if (gBattleMoveDamage == 30) - gBattleMoveDamage = 20; + gBattleMoveDamage = AI_EFFECTIVENESS_x0_5; if (gBattleMoveDamage == 15) - gBattleMoveDamage = 10; + gBattleMoveDamage = AI_EFFECTIVENESS_x0_25; if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) - gBattleMoveDamage = 0; + gBattleMoveDamage = AI_EFFECTIVENESS_x0; // store gBattleMoveDamage in a u8 variable because gAIScriptPtr[1] is a u8. damageVar = gBattleMoveDamage; @@ -1618,7 +1613,7 @@ static void BattleAICmd_if_status_not_in_party(void) break; } - party = (GetBankSide(bank) == 0) ? gPlayerParty : gEnemyParty; + party = (GetBankSide(bank) == SIDE_PLAYER) ? gPlayerParty : gEnemyParty; statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2); @@ -1640,13 +1635,13 @@ static void BattleAICmd_if_status_not_in_party(void) static void BattleAICmd_get_weather(void) { if (gBattleWeather & WEATHER_RAIN_ANY) - AI_THINKING_STRUCT->funcResult = 1; + AI_THINKING_STRUCT->funcResult = AI_WEATHER_RAIN; if (gBattleWeather & WEATHER_SANDSTORM_ANY) - AI_THINKING_STRUCT->funcResult = 2; + AI_THINKING_STRUCT->funcResult = AI_WEATHER_SANDSTORM; if (gBattleWeather & WEATHER_SUN_ANY) - AI_THINKING_STRUCT->funcResult = 0; + AI_THINKING_STRUCT->funcResult = AI_WEATHER_SUN; if (gBattleWeather & WEATHER_HAIL_ANY) - AI_THINKING_STRUCT->funcResult = 3; + AI_THINKING_STRUCT->funcResult = AI_WEATHER_HAIL; gAIScriptPtr += 1; } @@ -1904,7 +1899,7 @@ static void BattleAICmd_if_has_move_with_effect(void) case AI_USER_PARTNER: for (i = 0; i < 4; i++) { - if(gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBank_AI].moves[i]].effect == gAIScriptPtr[2]) + if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBank_AI].moves[i]].effect == gAIScriptPtr[2]) break; } if (i == 4) @@ -1916,6 +1911,7 @@ static void BattleAICmd_if_has_move_with_effect(void) case AI_TARGET_PARTNER: for (i = 0; i < 4; i++) { + // UB: checks sBank_AI instead of gBankTarget if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankTarget].moves[i]].effect == gAIScriptPtr[2]) break; } From 59e40c293efefaa0f4d414b81592dda754859945 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sun, 31 Dec 2017 02:13:32 -0500 Subject: [PATCH 45/54] requests --- data/pokenav.s | 8 ++--- data/slot_machine.s | 87 ++++++++++++++------------------------------- data/trainer_card.s | 8 +++-- 3 files changed, 35 insertions(+), 68 deletions(-) diff --git a/data/pokenav.s b/data/pokenav.s index 82eee2446e..35fdafee5f 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -144,7 +144,7 @@ gUnknown_0861FA4C:: @ 861FA4C gUnknown_0861FA54:: @ 861FA54 obj_pal gUnknown_0861F590, 0 - obj_pal NULL, 0 + null_obj_pal gUnknown_0861FA64:: @ 861FA64 obj_tiles gPokenavLeftHeaderHoennMap_Gfx, 0xC00, 2 @@ -1408,7 +1408,7 @@ gUnknown_08622810:: @ 8622810 gUnknown_08622818:: @ 8622818 obj_pal gUnknown_08622698, 12 - obj_pal NULL, 0 + null_obj_pal gUnknown_08622828:: @ 8622828 .2byte 0x8000 @@ -1515,7 +1515,7 @@ gUnknown_086230F8:: @ 86230F8 gUnknown_08623100:: @ 8623100 obj_pal gHoennMapZoomIcons_Pal, 11 - obj_pal NULL, 0 + null_obj_pal gUnknown_08623110:: @ 8623110 .incbin "baserom.gba", 0x623110, 0x8 @@ -1761,7 +1761,7 @@ gUnknown_08624C80:: @ 8624C80 obj_pal gUnknown_08624038, 17 obj_pal gUnknown_08624058, 18 obj_pal gUnknown_08624078, 19 - obj_pal NULL, 0 + null_obj_pal gUnknown_08624CB0:: @ 8624CB0 .incbin "baserom.gba", 0x624cb0, 0x54 diff --git a/data/slot_machine.s b/data/slot_machine.s index d68d4c2439..df1f71be96 100644 --- a/data/slot_machine.s +++ b/data/slot_machine.s @@ -241,60 +241,25 @@ gUnknown_085A8264:: @ 85A8264 gUnknown_085A82CC:: @ 85A82CC .incbin "baserom.gba", 0x5a82cc, 0x68 - @ 50 F2 DC 08 00 02 00 00 - @ 50 F4 DC 08 00 02 01 00 - @ 50 F6 DC 08 00 02 02 00 - @ 50 F8 DC 08 00 02 03 00 - @ 50 FA DC 08 00 02 04 00 - @ 50 FC DC 08 00 02 05 00 - @ 50 FE DC 08 00 02 06 00 - @ B8 07 DD 08 40 00 07 00 - @ F8 07 DD 08 40 00 08 00 - @ 38 08 DD 08 40 00 09 00 - @ 78 08 DD 08 40 00 0A 00 - @ B8 08 DD 08 40 00 0B 00 - @ F8 08 DD 08 40 00 0C 00 - @ 38 09 DD 08 40 00 0D 00 - @ 78 09 DD 08 40 00 0E 00 - @ B8 09 DD 08 40 00 0F 00 - @ F8 09 DD 08 40 00 10 00 - .align 2 gUnknown_085A8334:: @ 85A8334 - .4byte gSlotMachineReelSymbol1Tiles - .2byte 0x0200, 0x0000 - .4byte gSlotMachineReelSymbol2Tiles - .2byte 0x0200, 0x0001 - .4byte gSlotMachineReelSymbol3Tiles - .2byte 0x0200, 0x0002 - .4byte gSlotMachineReelSymbol4Tiles - .2byte 0x0200, 0x0003 - .4byte gSlotMachineReelSymbol5Tiles - .2byte 0x0200, 0x0004 - .4byte gSlotMachineReelSymbol6Tiles - .2byte 0x0200, 0x0005 - .4byte gSlotMachineReelSymbol7Tiles - .2byte 0x0200, 0x0006 - .4byte gSlotMachineNumber0Tiles - .2byte 0x0040, 0x0007 - .4byte gSlotMachineNumber1Tiles - .2byte 0x0040, 0x0008 - .4byte gSlotMachineNumber2Tiles - .2byte 0x0040, 0x0009 - .4byte gSlotMachineNumber3Tiles - .2byte 0x0040, 0x000A - .4byte gSlotMachineNumber4Tiles - .2byte 0x0040, 0x000B - .4byte gSlotMachineNumber5Tiles - .2byte 0x0040, 0x000C - .4byte gSlotMachineNumber6Tiles - .2byte 0x0040, 0x000D - .4byte gSlotMachineNumber7Tiles - .2byte 0x0040, 0x000E - .4byte gSlotMachineNumber8Tiles - .2byte 0x0040, 0x000F - .4byte gSlotMachineNumber9Tiles - .2byte 0x0040, 0x0010 + obj_tiles gSlotMachineReelSymbol1Tiles, 0x0200, 0x0000 + obj_tiles gSlotMachineReelSymbol2Tiles, 0x0200, 0x0001 + obj_tiles gSlotMachineReelSymbol3Tiles, 0x0200, 0x0002 + obj_tiles gSlotMachineReelSymbol4Tiles, 0x0200, 0x0003 + obj_tiles gSlotMachineReelSymbol5Tiles, 0x0200, 0x0004 + obj_tiles gSlotMachineReelSymbol6Tiles, 0x0200, 0x0005 + obj_tiles gSlotMachineReelSymbol7Tiles, 0x0200, 0x0006 + obj_tiles gSlotMachineNumber0Tiles, 0x0040, 0x0007 + obj_tiles gSlotMachineNumber1Tiles, 0x0040, 0x0008 + obj_tiles gSlotMachineNumber2Tiles, 0x0040, 0x0009 + obj_tiles gSlotMachineNumber3Tiles, 0x0040, 0x000A + obj_tiles gSlotMachineNumber4Tiles, 0x0040, 0x000B + obj_tiles gSlotMachineNumber5Tiles, 0x0040, 0x000C + obj_tiles gSlotMachineNumber6Tiles, 0x0040, 0x000D + obj_tiles gSlotMachineNumber7Tiles, 0x0040, 0x000E + obj_tiles gSlotMachineNumber8Tiles, 0x0040, 0x000F + obj_tiles gSlotMachineNumber9Tiles, 0x0040, 0x0010 .align 2 .incbin "baserom.gba", 0x5a83bc, 0x28 @@ -334,15 +299,15 @@ gUnknown_085A8524:: @ 85A8524 .align 2 gUnknown_085A8544:: @ 85A8544 - .4byte gUnknown_08DCF170, 0 - .4byte gUnknown_08DCF190, 1 - .4byte gUnknown_08DCF1B0, 2 - .4byte gSlotMachineReelTime_Pal, 3 - .4byte gUnknown_08DCF1F0, 4 - .4byte gUnknown_08DCF210, 5 - .4byte gUnknown_08DCF230, 6 - .4byte gUnknown_08DCF1F0, 7 - .4byte 0, 0 + obj_pal gUnknown_08DCF170, 0 + obj_pal gUnknown_08DCF190, 1 + obj_pal gUnknown_08DCF1B0, 2 + obj_pal gSlotMachineReelTime_Pal, 3 + obj_pal gUnknown_08DCF1F0, 4 + obj_pal gUnknown_08DCF210, 5 + obj_pal gUnknown_08DCF230, 6 + obj_pal gUnknown_08DCF1F0, 7 + null_obj_pal gUnknown_085A858C:: @ 85A858C .incbin "baserom.gba", 0x5a858c, 0x1154 diff --git a/data/trainer_card.s b/data/trainer_card.s index 88d9b40f31..08bf4d8fa1 100644 --- a/data/trainer_card.s +++ b/data/trainer_card.s @@ -220,7 +220,7 @@ gUnknown_085714BC:: @ 85714BC gUnknown_085714D4:: @ 85714D4 obj_tiles gUnknown_08570C44, 0x100, 4 - obj_tiles NULL, 0, 0 + null_obj_tiles gUnknown_085714E4:: @ 85714E4 obj_pal gFrontierPassCursor_Pal, 0 @@ -229,8 +229,10 @@ gUnknown_085714E4:: @ 85714E4 obj_pal gFrontierPassMedalsGold_Pal, 3 obj_pal gUnknown_0856FB7C, 4 obj_pal gUnknown_0856FB9C, 5 - obj_pal NULL, 0 - obj_pal NULL, 0xFFFF + null_obj_pal + + @ this doesnt look like its part of the same table. + .4byte 0x0, 0xFFFF gUnknown_08571524:: @ 8571524 .incbin "baserom.gba", 0x571524, 0x8 From 4f950d698c241af92d81b0e1a55e3fd0a85cb83a Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 31 Dec 2017 16:28:57 +0100 Subject: [PATCH 46/54] dump battle animation scripts --- asm/battle_anim_80A9C70.s | 2 +- asm/battle_anim_80FE840.s | 6 +- asm/battle_anim_815A0D4.s | 12 +- asm/battle_anim_sound_tasks.s | 6 +- asm/macros/battle_anim_script.inc | 268 + data/battle_anim_scripts.s | 10937 +++++++++++++++++++- data/battle_scripts_1.s | 1 + include/battle.h | 46 - include/battle_anim.h | 8 - include/constants/battle_anim.h | 85 + src/battle_anim.c | 55 +- src/battle_controller_link_opponent.c | 1 + src/battle_controller_link_partner.c | 1 + src/battle_controller_opponent.c | 1 + src/battle_controller_player.c | 1 + src/battle_controller_player_partner.c | 1 + src/battle_controller_recorded_opponent.c | 1 + src/battle_controller_recorded_player.c | 1 + src/battle_controller_safari.c | 1 + src/battle_controller_wally.c | 1 + src/battle_gfx_sfx_util.c | 11 +- src/battle_script_commands.c | 1 + src/battle_util.c | 1 + 23 files changed, 11339 insertions(+), 109 deletions(-) create mode 100644 asm/macros/battle_anim_script.inc create mode 100644 include/constants/battle_anim.h diff --git a/asm/battle_anim_80A9C70.s b/asm/battle_anim_80A9C70.s index bdb1a51ec8..c471cc7297 100644 --- a/asm/battle_anim_80A9C70.s +++ b/asm/battle_anim_80A9C70.s @@ -867,7 +867,7 @@ LaunchStatusAnimation: @ 80AA364 strb r4, [r0] ldr r0, =gAnimBankTarget strb r4, [r0] - ldr r0, =gUnknown_082C92FC + ldr r0, =gBattleAnims_Statuses movs r2, 0 bl LaunchBattleAnimation ldr r0, =task0A_80788BC diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index 75879519e0..f00facdb34 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -17067,8 +17067,8 @@ sub_8107144: @ 8107144 .pool thumb_func_end sub_8107144 - thumb_func_start update_fury_cutter_counter_copy -update_fury_cutter_counter_copy: @ 8107168 + thumb_func_start sub_8107168 +sub_8107168: @ 8107168 push {lr} lsls r0, 24 lsrs r0, 24 @@ -17081,7 +17081,7 @@ update_fury_cutter_counter_copy: @ 8107168 pop {r0} bx r0 .pool - thumb_func_end update_fury_cutter_counter_copy + thumb_func_end sub_8107168 thumb_func_start sub_8107188 sub_8107188: @ 8107188 diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s index 611e4b0677..d583f1e850 100755 --- a/asm/battle_anim_815A0D4.s +++ b/asm/battle_anim_815A0D4.s @@ -639,8 +639,8 @@ _0815A5AC: .pool thumb_func_end sub_815A52C - thumb_func_start c3_80DE6F0 -c3_80DE6F0: @ 815A5C8 + thumb_func_start sub_815A5C8 +sub_815A5C8: @ 815A5C8 lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks @@ -656,7 +656,7 @@ c3_80DE6F0: @ 815A5C8 strb r0, [r1] bx lr .pool - thumb_func_end c3_80DE6F0 + thumb_func_end sub_815A5C8 thumb_func_start sub_815A5F0 sub_815A5F0: @ 815A5F0 @@ -3271,8 +3271,8 @@ _0815BAFC: .pool thumb_func_end sub_815B7D0 - thumb_func_start c3_80DFBE4 -c3_80DFBE4: @ 815BB18 + thumb_func_start sub_815BB18 +sub_815BB18: @ 815BB18 push {r4,lr} lsls r0, 24 lsrs r0, 24 @@ -3297,7 +3297,7 @@ c3_80DFBE4: @ 815BB18 pop {r0} bx r0 .pool - thumb_func_end c3_80DFBE4 + thumb_func_end sub_815BB18 thumb_func_start sub_815BB58 sub_815BB58: @ 815BB58 diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s index 4bfd7ae682..949934e1d1 100644 --- a/asm/battle_anim_sound_tasks.s +++ b/asm/battle_anim_sound_tasks.s @@ -150,8 +150,8 @@ _08158C4C: .pool thumb_func_end sub_8158C04 - thumb_func_start mas_80DCF38 -mas_80DCF38: @ 8158C58 + thumb_func_start sub_8158C58 +sub_8158C58: @ 8158C58 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -230,7 +230,7 @@ mas_80DCF38: @ 8158C58 pop {r0} bx r0 .pool - thumb_func_end mas_80DCF38 + thumb_func_end sub_8158C58 thumb_func_start sub_8158D08 sub_8158D08: @ 8158D08 diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc new file mode 100644 index 0000000000..b26d1218d6 --- /dev/null +++ b/asm/macros/battle_anim_script.inc @@ -0,0 +1,268 @@ +@ commands + + .macro loadspritegfx param0 + .byte 0x0 + .2byte \param0 + .endm + + .macro unloadspritegfx param0 + .byte 0x1 + .2byte \param0 + .endm + + .macro createsprite template, priority, argv:vararg + .byte 0x02 + .4byte \template + .byte \priority + .byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2 +.Lsprite_\@_1: + .2byte \argv +.Lsprite_\@_2: + .endm + + .macro createvisualtask addr, priority, argv:vararg + .byte 0x03 + .4byte \addr + .byte \priority + .byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2 +.Lcreatetask_\@_1: + .2byte \argv +.Lcreatetask_\@_2: + .endm + + .macro delay param0 + .byte 0x4 + .byte \param0 + .endm + + .macro waitforvisualfinish + .byte 0x5 + .endm + + .macro hang1 + .byte 0x6 + .endm + + .macro hang2 + .byte 0x7 + .endm + + .macro end + .byte 0x8 + .endm + + .macro playse param0 + .byte 0x9 + .2byte \param0 + .endm + + .macro monbg bank + .byte 0xa + .byte \bank + .endm + + .macro clearmonbg bank + .byte 0xb + .byte \bank + .endm + + .macro setalpha param0 + .byte 0xc + .2byte \param0 + .endm + + .macro blendoff + .byte 0xd + .endm + + .macro call param0 + .byte 0xe + .4byte \param0 + .endm + + .macro return + .byte 0xf + .endm + + .macro setarg param0, param1 + .byte 0x10 + .byte \param0 + .2byte \param1 + .endm + + .macro choosetwoturnanim param0, param1 + .byte 0x11 + .4byte \param0 + .4byte \param1 + .endm + + .macro jumpifmoveturn param0, param1 + .byte 0x12 + .byte \param0 + .4byte \param1 + .endm + + .macro goto param0 + .byte 0x13 + .4byte \param0 + .endm + + .macro fadetobg param0 + .byte 0x14 + .byte \param0 + .endm + + .macro restorebg + .byte 0x15 + .endm + + .macro waitbgfadeout + .byte 0x16 + .endm + + .macro waitbgfadein + .byte 0x17 + .endm + + .macro changebg param0 + .byte 0x18 + .byte \param0 + .endm + + .macro playsewithpan param0, param1 + .byte 0x19 + .2byte \param0 + .byte \param1 + .endm + + .macro setpan param0 + .byte 0x1a + .byte \param0 + .endm + + .macro panse_1B param0, param1, param2, param3, param4 + .byte 0x1b + .2byte \param0 + .byte \param1 + .byte \param2 + .byte \param3 + .byte \param4 + .endm + + .macro loopsewithpan param0, param1, param2, param3 + .byte 0x1c + .2byte \param0 + .byte \param1 + .byte \param2 + .byte \param3 + .endm + + .macro waitplaysewithpan param0, param1, param2 + .byte 0x1d + .2byte \param0 + .byte \param1 + .byte \param2 + .endm + + .macro setbldcnt param0 + .byte 0x1e + .2byte \param0 + .endm + + .macro createsoundtask addr, argv:vararg + .byte 0x1F + .4byte \addr + .byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2 +.Lcreatetask_1F_\@_1: + .2byte \argv +.Lcreatetask_1F_\@_2: + .endm + + .macro waitsound + .byte 0x20 + .endm + + .macro jumpargeq param0, param1, param2 + .byte 0x21 + .byte \param0 + .2byte \param1 + .4byte \param2 + .endm + + .macro monbg_22 bank + .byte 0x22 + .byte \bank + .endm + + .macro clearmonbg_23 bank + .byte 0x23 + .byte \bank + .endm + + .macro jumpifcontest param0 + .byte 0x24 + .4byte \param0 + .endm + + .macro fadetobgfromset param0, param1, param2 + .byte 0x25 + .byte \param0 + .byte \param1 + .byte \param2 + .endm + + .macro panse_26 param0, param1, param2, param3, param4 + .byte 0x26 + .2byte \param0 + .byte \param1 + .byte \param2 + .byte \param3 + .byte \param4 + .endm + + .macro panse_27 param0, param1, param2, param3, param4 + .byte 0x27 + .2byte \param0 + .byte \param1 + .byte \param2 + .byte \param3 + .byte \param4 + .endm + + .macro monbgprio_28 bank + .byte 0x28 + .byte \bank + .endm + + .macro monbgprio_29 + .byte 0x29 + .endm + + .macro monbgprio_2A bank + .byte 0x2a + .byte \bank + .endm + + .macro invisible bank + .byte 0x2b + .byte \bank + .endm + + .macro visible bank + .byte 0x2c + .byte \bank + .endm + + .macro doublebattle_2D bank + .byte 0x2d + .byte \bank + .endm + + .macro doublebattle_2E bank + .byte 0x2e + .byte \bank + .endm + + .macro stopsound + .byte 0x2f + .endm diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index e979438405..0d3c7a4707 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1,19 +1,10936 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros/battle_anim_script.inc" + .include "include/constants/battle_anim.h" + .include "include/constants/songs.h" .section script_data, "aw", %progbits +.align 2 gUnknown_082C8D64:: @ 82C8D64 - .incbin "baserom.gba", 0x2c8d64, 0x8 + .2byte 0x2F, 0xC3, 0x140, 0xFFFF +.align 2 gBattleAnims_Moves:: @ 82C8D6C - .incbin "baserom.gba", 0x2c8d6c, 0x590 + .4byte Move_NONE + .4byte Move_POUND + .4byte Move_KARATE_CHOP + .4byte Move_DOUBLE_SLAP + .4byte Move_COMET_PUNCH + .4byte Move_MEGA_PUNCH + .4byte Move_PAY_DAY + .4byte Move_FIRE_PUNCH + .4byte Move_ICE_PUNCH + .4byte Move_THUNDER_PUNCH + .4byte Move_SCRATCH + .4byte Move_VICE_GRIP + .4byte Move_GUILLOTINE + .4byte Move_RAZOR_WIND + .4byte Move_SWORDS_DANCE + .4byte Move_CUT + .4byte Move_GUST + .4byte Move_WING_ATTACK + .4byte Move_WHIRLWIND + .4byte Move_FLY + .4byte Move_BIND + .4byte Move_SLAM + .4byte Move_VINE_WHIP + .4byte Move_STOMP + .4byte Move_DOUBLE_KICK + .4byte Move_MEGA_KICK + .4byte Move_JUMP_KICK + .4byte Move_ROLLING_KICK + .4byte Move_SAND_ATTACK + .4byte Move_HEADBUTT + .4byte Move_HORN_ATTACK + .4byte Move_FURY_ATTACK + .4byte Move_HORN_DRILL + .4byte Move_TACKLE + .4byte Move_BODY_SLAM + .4byte Move_WRAP + .4byte Move_TAKE_DOWN + .4byte Move_THRASH + .4byte Move_DOUBLE_EDGE + .4byte Move_TAIL_WHIP + .4byte Move_POISON_STING + .4byte Move_TWINEEDLE + .4byte Move_PIN_MISSILE + .4byte Move_LEER + .4byte Move_BITE + .4byte Move_GROWL + .4byte Move_ROAR + .4byte Move_SING + .4byte Move_SUPERSONIC + .4byte Move_SONIC_BOOM + .4byte Move_DISABLE + .4byte Move_ACID + .4byte Move_EMBER + .4byte Move_FLAMETHROWER + .4byte Move_MIST + .4byte Move_WATER_GUN + .4byte Move_HYDRO_PUMP + .4byte Move_SURF + .4byte Move_ICE_BEAM + .4byte Move_BLIZZARD + .4byte Move_PSYBEAM + .4byte Move_BUBBLE_BEAM + .4byte Move_AURORA_BEAM + .4byte Move_HYPER_BEAM + .4byte Move_PECK + .4byte Move_DRILL_PECK + .4byte Move_SUBMISSION + .4byte Move_LOW_KICK + .4byte Move_COUNTER + .4byte Move_SEISMIC_TOSS + .4byte Move_STRENGTH + .4byte Move_ABSORB + .4byte Move_MEGA_DRAIN + .4byte Move_LEECH_SEED + .4byte Move_GROWTH + .4byte Move_RAZOR_LEAF + .4byte Move_SOLAR_BEAM + .4byte Move_POISON_POWDER + .4byte Move_STUN_SPORE + .4byte Move_SLEEP_POWDER + .4byte Move_PETAL_DANCE + .4byte Move_STRING_SHOT + .4byte Move_DRAGON_RAGE + .4byte Move_FIRE_SPIN + .4byte Move_THUNDER_SHOCK + .4byte Move_THUNDERBOLT + .4byte Move_THUNDER_WAVE + .4byte Move_THUNDER + .4byte Move_ROCK_THROW + .4byte Move_EARTHQUAKE + .4byte Move_FISSURE + .4byte Move_DIG + .4byte Move_TOXIC + .4byte Move_CONFUSION + .4byte Move_PSYCHIC + .4byte Move_HYPNOSIS + .4byte Move_MEDITATE + .4byte Move_AGILITY + .4byte Move_QUICK_ATTACK + .4byte Move_RAGE + .4byte Move_TELEPORT + .4byte Move_NIGHT_SHADE + .4byte Move_MIMIC + .4byte Move_SCREECH + .4byte Move_DOUBLE_TEAM + .4byte Move_RECOVER + .4byte Move_HARDEN + .4byte Move_MINIMIZE + .4byte Move_SMOKESCREEN + .4byte Move_CONFUSE_RAY + .4byte Move_WITHDRAW + .4byte Move_DEFENSE_CURL + .4byte Move_BARRIER + .4byte Move_LIGHT_SCREEN + .4byte Move_HAZE + .4byte Move_REFLECT + .4byte Move_FOCUS_ENERGY + .4byte Move_BIDE + .4byte Move_METRONOME + .4byte Move_MIRROR_MOVE @ doesn't have an actual animation + .4byte Move_SELF_DESTRUCT + .4byte Move_EGG_BOMB + .4byte Move_LICK + .4byte Move_SMOG + .4byte Move_SLUDGE + .4byte Move_BONE_CLUB + .4byte Move_FIRE_BLAST + .4byte Move_WATERFALL + .4byte Move_CLAMP + .4byte Move_SWIFT + .4byte Move_SKULL_BASH + .4byte Move_SPIKE_CANNON + .4byte Move_CONSTRICT + .4byte Move_AMNESIA + .4byte Move_KINESIS + .4byte Move_SOFT_BOILED + .4byte Move_HI_JUMP_KICK + .4byte Move_GLARE + .4byte Move_DREAM_EATER + .4byte Move_POISON_GAS + .4byte Move_BARRAGE + .4byte Move_LEECH_LIFE + .4byte Move_LOVELY_KISS + .4byte Move_SKY_ATTACK + .4byte Move_TRANSFORM + .4byte Move_BUBBLE + .4byte Move_DIZZY_PUNCH + .4byte Move_SPORE + .4byte Move_FLASH + .4byte Move_PSYWAVE + .4byte Move_SPLASH + .4byte Move_ACID_ARMOR + .4byte Move_CRABHAMMER + .4byte Move_EXPLOSION + .4byte Move_FURY_SWIPES + .4byte Move_BONEMERANG + .4byte Move_REST + .4byte Move_ROCK_SLIDE + .4byte Move_HYPER_FANG + .4byte Move_SHARPEN + .4byte Move_CONVERSION + .4byte Move_TRI_ATTACK + .4byte Move_SUPER_FANG + .4byte Move_SLASH + .4byte Move_SUBSTITUTE + .4byte Move_STRUGGLE + .4byte Move_SKETCH + .4byte Move_TRIPLE_KICK + .4byte Move_THIEF + .4byte Move_SPIDER_WEB + .4byte Move_MIND_READER + .4byte Move_NIGHTMARE + .4byte Move_FLAME_WHEEL + .4byte Move_SNORE + .4byte Move_CURSE + .4byte Move_FLAIL + .4byte Move_CONVERSION_2 + .4byte Move_AEROBLAST + .4byte Move_COTTON_SPORE + .4byte Move_REVERSAL + .4byte Move_SPITE + .4byte Move_POWDER_SNOW + .4byte Move_PROTECT + .4byte Move_MACH_PUNCH + .4byte Move_SCARY_FACE + .4byte Move_FAINT_ATTACK + .4byte Move_SWEET_KISS + .4byte Move_BELLY_DRUM + .4byte Move_SLUDGE_BOMB + .4byte Move_MUD_SLAP + .4byte Move_OCTAZOOKA + .4byte Move_SPIKES + .4byte Move_ZAP_CANNON + .4byte Move_FORESIGHT + .4byte Move_DESTINY_BOND + .4byte Move_PERISH_SONG + .4byte Move_ICY_WIND + .4byte Move_DETECT + .4byte Move_BONE_RUSH + .4byte Move_LOCK_ON + .4byte Move_OUTRAGE + .4byte Move_SANDSTORM + .4byte Move_GIGA_DRAIN + .4byte Move_ENDURE + .4byte Move_CHARM + .4byte Move_ROLLOUT + .4byte Move_FALSE_SWIPE + .4byte Move_SWAGGER + .4byte Move_MILK_DRINK + .4byte Move_SPARK + .4byte Move_FURY_CUTTER + .4byte Move_STEEL_WING + .4byte Move_MEAN_LOOK + .4byte Move_ATTRACT + .4byte Move_SLEEP_TALK + .4byte Move_HEAL_BELL + .4byte Move_RETURN + .4byte Move_PRESENT + .4byte Move_FRUSTRATION + .4byte Move_SAFEGUARD + .4byte Move_PAIN_SPLIT + .4byte Move_SACRED_FIRE + .4byte Move_MAGNITUDE + .4byte Move_DYNAMIC_PUNCH + .4byte Move_MEGAHORN + .4byte Move_DRAGON_BREATH + .4byte Move_BATON_PASS + .4byte Move_ENCORE + .4byte Move_PURSUIT + .4byte Move_RAPID_SPIN + .4byte Move_SWEET_SCENT + .4byte Move_IRON_TAIL + .4byte Move_METAL_CLAW + .4byte Move_VITAL_THROW + .4byte Move_MORNING_SUN + .4byte Move_SYNTHESIS + .4byte Move_MOONLIGHT + .4byte Move_HIDDEN_POWER + .4byte Move_CROSS_CHOP + .4byte Move_TWISTER + .4byte Move_RAIN_DANCE + .4byte Move_SUNNY_DAY + .4byte Move_CRUNCH + .4byte Move_MIRROR_COAT + .4byte Move_PSYCH_UP + .4byte Move_EXTREME_SPEED + .4byte Move_ANCIENT_POWER + .4byte Move_SHADOW_BALL + .4byte Move_FUTURE_SIGHT + .4byte Move_ROCK_SMASH + .4byte Move_WHIRLPOOL + .4byte Move_BEAT_UP + .4byte Move_FAKE_OUT + .4byte Move_UPROAR + .4byte Move_STOCKPILE + .4byte Move_SPIT_UP + .4byte Move_SWALLOW + .4byte Move_HEAT_WAVE + .4byte Move_HAIL + .4byte Move_TORMENT + .4byte Move_FLATTER + .4byte Move_WILL_O_WISP + .4byte Move_MEMENTO + .4byte Move_FACADE + .4byte Move_FOCUS_PUNCH + .4byte Move_SMELLING_SALT + .4byte Move_FOLLOW_ME + .4byte Move_NATURE_POWER @ doesnt have an actual animation + .4byte Move_CHARGE + .4byte Move_TAUNT + .4byte Move_HELPING_HAND + .4byte Move_TRICK + .4byte Move_ROLE_PLAY + .4byte Move_WISH + .4byte Move_ASSIST + .4byte Move_INGRAIN + .4byte Move_SUPERPOWER + .4byte Move_MAGIC_COAT + .4byte Move_RECYCLE + .4byte Move_REVENGE + .4byte Move_BRICK_BREAK + .4byte Move_YAWN + .4byte Move_KNOCK_OFF + .4byte Move_ENDEAVOR + .4byte Move_ERUPTION + .4byte Move_SKILL_SWAP + .4byte Move_IMPRISON + .4byte Move_REFRESH + .4byte Move_GRUDGE + .4byte Move_SNATCH + .4byte Move_SECRET_POWER + .4byte Move_DIVE + .4byte Move_ARM_THRUST + .4byte Move_CAMOUFLAGE + .4byte Move_TAIL_GLOW + .4byte Move_LUSTER_PURGE + .4byte Move_MIST_BALL + .4byte Move_FEATHER_DANCE + .4byte Move_TEETER_DANCE + .4byte Move_BLAZE_KICK + .4byte Move_MUD_SPORT + .4byte Move_ICE_BALL + .4byte Move_NEEDLE_ARM + .4byte Move_SLACK_OFF + .4byte Move_HYPER_VOICE + .4byte Move_POISON_FANG + .4byte Move_CRUSH_CLAW + .4byte Move_BLAST_BURN + .4byte Move_HYDRO_CANNON + .4byte Move_METEOR_MASH + .4byte Move_ASTONISH + .4byte Move_WEATHER_BALL + .4byte Move_AROMATHERAPY + .4byte Move_FAKE_TEARS + .4byte Move_AIR_CUTTER + .4byte Move_OVERHEAT + .4byte Move_ODOR_SLEUTH + .4byte Move_ROCK_TOMB + .4byte Move_SILVER_WIND + .4byte Move_METAL_SOUND + .4byte Move_GRASS_WHISTLE + .4byte Move_TICKLE + .4byte Move_COSMIC_POWER + .4byte Move_WATER_SPOUT + .4byte Move_SIGNAL_BEAM + .4byte Move_SHADOW_PUNCH + .4byte Move_EXTRASENSORY + .4byte Move_SKY_UPPERCUT + .4byte Move_SAND_TOMB + .4byte Move_SHEER_COLD + .4byte Move_MUDDY_WATER + .4byte Move_BULLET_SEED + .4byte Move_AERIAL_ACE + .4byte Move_ICICLE_SPEAR + .4byte Move_IRON_DEFENSE + .4byte Move_BLOCK + .4byte Move_HOWL + .4byte Move_DRAGON_CLAW + .4byte Move_FRENZY_PLANT + .4byte Move_BULK_UP + .4byte Move_BOUNCE + .4byte Move_MUD_SHOT + .4byte Move_POISON_TAIL + .4byte Move_COVET + .4byte Move_VOLT_TACKLE + .4byte Move_MAGICAL_LEAF + .4byte Move_WATER_SPORT + .4byte Move_CALM_MIND + .4byte Move_LEAF_BLADE + .4byte Move_DRAGON_DANCE + .4byte Move_ROCK_BLAST + .4byte Move_SHOCK_WAVE + .4byte Move_WATER_PULSE + .4byte Move_DOOM_DESIRE + .4byte Move_PSYCHO_BOOST + .4byte Move_COUNT @ cannot be reached, because last move is Psycho Boost -gUnknown_082C92FC:: @ 82C92FC - .incbin "baserom.gba", 0x2c92fc, 0x24 +.align 2 +gBattleAnims_Statuses:: @ 82C92FC + .4byte Status_Poison + .4byte Status_Confusion + .4byte Status_Burn + .4byte Status_Infatuation + .4byte Status_Sleep + .4byte Status_Paralysis + .4byte Status_Freeze + .4byte Status_Curse + .4byte Status_Nightmare -gUnknown_082C9320:: @ 82C9320 - .incbin "baserom.gba", 0x2c9320, 0x5c +.align 2 +gBattleAnims_VariousTable:: @ 82C9320 + .4byte Anim_CastformTransform + .4byte Anim_StatChange + .4byte Anim_SubsituteOff + .4byte Anim_SubsituteOn + .4byte Anim_Table_4 + .4byte Anim_ItemKnockOff + .4byte Status_Wrap + .4byte Anim_ItemEffect + .4byte Anim_SmokeBallEscape + .4byte Anim_HangedOn + .4byte Anim_Rain + .4byte Anim_Sun + .4byte Anim_Sandstorm + .4byte Anim_Hail + .4byte Status_LeechSeed + .4byte Anim_Hit + .4byte Anim_ItemSteal + .4byte Anim_SnatchMove + .4byte Anim_FutureSightHit + .4byte Anim_DoomDesireHit + .4byte Anim_Table_x14 + .4byte Status_Ingrain + .4byte Anim_WishHeal -gUnknown_082C937C:: @ 82C937C - .incbin "baserom.gba", 0x2c937c, 0xf32c +.align 2 +gBattleAnims_Special:: @ 82C937C + .4byte Anim_LevelUp + .4byte Anim_SwitchOutPlayer + .4byte Anim_SwitchOutOpponent + .4byte Anim_BallThrow + .4byte Anim_SafariBallThrow + .4byte Anim_SubstituteToMon + .4byte Anim_MonToSubstitute + +Move_NONE: +Move_MIRROR_MOVE: +Move_POUND: + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W003, +63 + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_DOUBLE_SLAP: + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + choosetwoturnanim AnimScript_82C93F4, AnimScript_82C9408 + +AnimScript_82C93DA: + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + playsewithpan SE_W003, +63 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +AnimScript_82C93F4: + createsprite 0x8597358, 0x2, -8, 0, 1, 2 + goto AnimScript_82C93DA + +AnimScript_82C9408: + createsprite 0x8597358, 0x2, 8, 0, 1, 2 + goto AnimScript_82C93DA + +Move_POISON_POWDER: + loadspritegfx 0x2751 + loadspritegfx 0x27A6 + loopsewithpan SE_W077, +63, 0xA, 0x6 + createsprite 0x8592148, 0x82, -30, -22, 117, 80, 5, 1 + createsprite 0x8592148, 0x82, 10, -22, 117, 80, -5, 1 + createsprite 0x8592148, 0x82, -25, -22, 117, 112, 5, 3 + delay 0xF + createsprite 0x8592148, 0x82, -5, -22, 117, 80, -5, 1 + createsprite 0x8592148, 0x82, 5, -22, 117, 96, 5, 1 + createsprite 0x8592148, 0x82, 0, -22, 117, 69, -5, 1 + createsprite 0x8592148, 0x82, -15, -22, 117, 112, 5, 2 + delay 0x1E + createsprite 0x8592148, 0x82, -15, -22, 117, 112, 5, 2 + createsprite 0x8592148, 0x82, 15, -22, 117, 80, -5, 1 + createsprite 0x8592148, 0x82, -10, -22, 117, 96, 7, 2 + createsprite 0x8592148, 0x82, -5, -22, 117, 90, -8, 0 + delay 0x14 + createsprite 0x8592148, 0x82, -10, -22, 117, 80, -5, 1 + createsprite 0x8592148, 0x82, 0, -22, 117, 89, 5, 2 + createsprite 0x8592148, 0x82, 20, -22, 117, 112, -8, 2 + createsprite 0x8592148, 0x82, 5, -22, 117, 80, 5, 1 + waitforvisualfinish + end + +Move_STUN_SPORE: + loadspritegfx 0x2754 + loopsewithpan SE_W077, +63, 0xA, 0x6 + createsprite 0x8592130, 0x82, -30, -22, 117, 80, 5, 1 + createsprite 0x8592130, 0x82, 10, -22, 117, 80, -5, 1 + createsprite 0x8592130, 0x82, -25, -22, 117, 112, 5, 3 + delay 0xF + createsprite 0x8592130, 0x82, -5, -22, 117, 80, -5, 1 + createsprite 0x8592130, 0x82, 5, -22, 117, 96, 5, 1 + createsprite 0x8592130, 0x82, 0, -22, 117, 69, -5, 1 + createsprite 0x8592130, 0x82, -15, -22, 117, 112, 5, 2 + delay 0x1E + createsprite 0x8592130, 0x82, -15, -22, 117, 112, 5, 2 + createsprite 0x8592130, 0x82, 15, -22, 117, 80, -5, 1 + createsprite 0x8592130, 0x82, -10, -22, 117, 96, 7, 2 + createsprite 0x8592130, 0x82, -5, -22, 117, 90, -8, 0 + delay 0x14 + createsprite 0x8592130, 0x82, -10, -22, 117, 80, -5, 1 + createsprite 0x8592130, 0x82, 0, -22, 117, 89, 5, 2 + createsprite 0x8592130, 0x82, 20, -22, 117, 112, -8, 2 + createsprite 0x8592130, 0x82, 5, -22, 117, 80, 5, 1 + waitforvisualfinish + end + +Move_SLEEP_POWDER: + loadspritegfx 0x2753 + loopsewithpan SE_W077, +63, 0xA, 0x6 + createsprite 0x8592118, 0x82, -30, -22, 117, 80, 5, 1 + createsprite 0x8592118, 0x82, 10, -22, 117, 80, -5, 1 + createsprite 0x8592118, 0x82, -25, -22, 117, 112, 5, 3 + delay 0xF + createsprite 0x8592118, 0x82, -5, -22, 117, 80, -5, 1 + createsprite 0x8592118, 0x82, 5, -22, 117, 96, 5, 1 + createsprite 0x8592118, 0x82, 0, -22, 117, 69, -5, 1 + createsprite 0x8592118, 0x82, -15, -22, 117, 112, 5, 2 + delay 0x1E + createsprite 0x8592118, 0x82, -15, -22, 117, 112, 5, 2 + createsprite 0x8592118, 0x82, 15, -22, 117, 80, -5, 1 + createsprite 0x8592118, 0x82, -10, -22, 117, 96, 7, 2 + createsprite 0x8592118, 0x82, -5, -22, 117, 90, -8, 0 + delay 0x14 + createsprite 0x8592118, 0x82, -10, -22, 117, 80, -5, 1 + createsprite 0x8592118, 0x82, 0, -22, 117, 89, 5, 2 + createsprite 0x8592118, 0x82, 20, -22, 117, 112, -8, 2 + createsprite 0x8592118, 0x82, 5, -22, 117, 80, 5, 1 + waitforvisualfinish + end + +Move_SWIFT: + loadspritegfx 0x27BE + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W129, -64 + createsprite 0x8592404, 0x83, 20, -10, 20, 0, 22, 20, 1 + delay 0x5 + playsewithpan SE_W129, -64 + createsprite 0x8592404, 0x83, 20, -10, 20, 5, 22, -18, 1 + delay 0x5 + playsewithpan SE_W129, -64 + createsprite 0x8592404, 0x83, 20, -10, 20, -10, 22, 15, 1 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 18, 1 + createvisualtask sub_80D52D0, 0x2, 3, 2, 0, 18, 1 + delay 0x5 + playsewithpan SE_W129, -64 + createsprite 0x8592404, 0x83, 20, -10, 20, 0, 22, -20, 1 + delay 0x5 + playsewithpan SE_W129, -64 + createsprite 0x8592404, 0x83, 20, -10, 20, 0, 22, 12, 1 + delay 0x5 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_STRENGTH: + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W036, -64 + createvisualtask sub_80D5644, 0x5, 0, 2, 0, 96, 30 + waitforvisualfinish + delay 0xA + createsprite 0x857FE58, 0x2, 0, 0, 4 + createvisualtask sub_80D5830, 0x2, 1, 18, 6, 2, 4 + delay 0x4 + playsewithpan SE_W025B, +63 + createsprite 0x8597358, 0x3, 16, 12, 1, 1 + delay 0x4 + playsewithpan SE_W025B, +63 + createsprite 0x8597358, 0x3, -16, -12, 1, 1 + delay 0x4 + playsewithpan SE_W025B, +63 + createsprite 0x8597358, 0x3, 3, 4, 1, 1 + waitforvisualfinish + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_TACKLE: + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + createsprite 0x857FE28, 0x2, 4, 4 + delay 0x6 + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + playsewithpan SE_W004, +63 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_BODY_SLAM: + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W036, -64 + createsprite 0x857FE40, 0x2, 6, 1, 0 + waitforvisualfinish + delay 0xB + createsprite 0x857FE70, 0x2, 0, 26, 0, 0, 5 + delay 0x6 + createsprite 0x8597358, 0x4, -10, 0, 1, 0 + loopsewithpan SE_W025B, +63, 0xA, 0x2 + delay 0x1 + createsprite 0x857FE70, 0x2, 1, -28, 0, 0, 3 + waitforvisualfinish + createvisualtask sub_80D5484, 0x2, 1, 4, 0, 12, 1 + waitforvisualfinish + delay 0xA + createsprite 0x857FE58, 0x2, 0, 0, 6 + delay 0x5 + createsprite 0x857FE58, 0x2, 1, 0, 6 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_SUPERSONIC: + loadspritegfx 0x27B3 + monbg ANIM_ATK_PARTNER + monbgprio_2A ANIM_ATTACKER + setalpha 0x80C + createvisualtask sub_80D52D0, 0x2, 0, 2, 0, 8, 1 + call AnimScript_82C99FF + call AnimScript_82C99FF + call AnimScript_82C99FF + call AnimScript_82C99FF + call AnimScript_82C99FF + call AnimScript_82C99FF + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + end + +AnimScript_82C99FF: + playsewithpan SE_W048, -64 + createsprite 0x8593428, 0x82, 16, 0, 0, 0, 30, 0 + delay 0x2 + return + +Move_SCREECH: + loadspritegfx 0x27B4 + createvisualtask sub_80D52D0, 0x2, 0, 3, 0, 2, 1 + call AnimScript_82C9A4C + call AnimScript_82C9A4C + delay 0x10 + createvisualtask sub_80D5EB8, 0x5, 0, 6, 2048, 2, 1 + waitforvisualfinish + end + +AnimScript_82C9A4C: + playsewithpan SE_W103, -64 + createsprite 0x8593440, 0x82, 16, 0, 0, 0, 30, 0 + delay 0x2 + return + +Move_FLAME_WHEEL: + loadspritegfx 0x272D + monbg ANIM_DEF_PARTNER + monbgprio_2A ANIM_TARGET + createsprite 0x8595584, 0x3, 0, 0, 56, 0 + playsewithpan SE_W172, -64 + delay 0x2 + createsprite 0x8595584, 0x3, 0, 0, 56, 4 + playsewithpan SE_W172, -64 + delay 0x2 + createsprite 0x8595584, 0x3, 0, 0, 56, 8 + playsewithpan SE_W172, -64 + delay 0x2 + createsprite 0x8595584, 0x3, 0, 0, 56, 12 + playsewithpan SE_W172, -64 + delay 0x2 + createsprite 0x8595584, 0x3, 0, 0, 56, 16 + playsewithpan SE_W172, -64 + delay 0x2 + createsprite 0x8595584, 0x3, 0, 0, 56, 20 + playsewithpan SE_W172, -64 + delay 0x2 + createsprite 0x8595584, 0x3, 0, 0, 56, 24 + playsewithpan SE_W172, -64 + waitforvisualfinish + createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 6 + delay 0x4 + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 8, 1 + createvisualtask sub_80A7B98, 0x3, 1, 31, 12, 1, 1 + playsewithpan SE_W172B, +63 + call AnimScript_82D2D18 + delay 0x7 + createsprite 0x857FE58, 0x2, 0, 0, 9 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +AnimScript_82C9B50: + createsprite 0x8595584, 0x3, 0, 0, 50 + delay 0x4 + return + +Move_PIN_MISSILE: + loadspritegfx 0x27B1 + loadspritegfx 0x2797 + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W026, -64 + createsprite 0x8596A5C, 0x2, 20, -8, -8, -8, 20, -32 + delay 0xF + createsprite 0x8596A5C, 0x2, 20, -8, 8, 8, 20, -40 + delay 0x4 + playsewithpan SE_W030, +63 + createsprite 0x8597358, 0x3, -8, -8, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 + delay 0x9 + createsprite 0x8596A5C, 0x2, 20, -8, 0, 0, 20, -32 + delay 0x4 + playsewithpan SE_W030, +63 + createsprite 0x8597358, 0x3, 8, 8, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 + delay 0xE + playsewithpan SE_W030, +63 + createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_ICICLE_SPEAR: + loadspritegfx 0x2816 + loadspritegfx 0x2797 + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W196, -64 + createsprite 0x8596A74, 0x2, 20, -8, -8, -8, 20, -32 + delay 0xF + createsprite 0x8596A74, 0x2, 20, -8, 8, 8, 20, -40 + delay 0x4 + playsewithpan SE_W030, +63 + createsprite 0x8597358, 0x3, -8, -8, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 + delay 0x9 + createsprite 0x8596A74, 0x2, 20, -8, 0, 0, 20, -32 + delay 0x4 + playsewithpan SE_W030, +63 + createsprite 0x8597358, 0x3, 8, 8, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 + delay 0xE + playsewithpan SE_W030, +63 + createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_TAKE_DOWN: + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createvisualtask sub_80D5C50, 0x5, 0, -24, 8, 23, 10, 40, 10 + delay 0x23 + createsprite 0x859728C, 0x2, 31, 3, 1, 0, 10, 0, 0 + createsprite 0x8597358, 0x4, -10, 0, 1, 0 + playsewithpan SE_W025B, +63 + delay 0x1 + createsprite 0x857FE70, 0x2, 1, -16, 0, 0, 4 + waitforvisualfinish + createvisualtask sub_80D5484, 0x2, 1, 4, 0, 12, 1 + waitforvisualfinish + delay 0x2 + createsprite 0x857FE58, 0x2, 0, 0, 5 + delay 0x3 + createsprite 0x857FE58, 0x2, 1, 0, 7 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_DOUBLE_EDGE: + loadspritegfx 0x2797 + playsewithpan SE_W129, -64 + createsprite 0x859728C, 0x2, 2, 4, 2, 0x7FFF, 10, 0, 0 + waitforvisualfinish + delay 0xA + playsewithpan SE_W207, -64 + waitplaysewithpan SE_W207, -64, 0x8 + createvisualtask sub_80D5830, 0x2, 0, 18, 6, 2, 4 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 0, 16, 16, 0x7FFF + createsprite 0x857FE70, 0x2, 0, 20, 0, 0, 4 + delay 0x3 + waitforvisualfinish + playsewithpan SE_W025B, +63 + createsprite 0x8597358, 0x84, -10, 0, 1, 0 + createsprite 0x857FE70, 0x2, 1, -32, 0, 0, 3 + waitforvisualfinish + createvisualtask sub_80D6134, 0x2, 8, -256, 0, 0 + createvisualtask sub_80D6134, 0x2, 8, -256, 1, 0 + createvisualtask sub_80D5484, 0x2, 0, 4, 0, 12, 1 + createvisualtask sub_80D5484, 0x2, 1, 4, 0, 12, 1 + createsprite 0x8597274, 0x2, 1, 2, 16, 0, 0x7FFF + waitforvisualfinish + createvisualtask sub_80D6134, 0x2, 8, -256, 0, 1 + createvisualtask sub_80D6134, 0x2, 8, -256, 1, 1 + waitforvisualfinish + createsprite 0x857FE58, 0x2, 0, 0, 5 + delay 0x3 + createsprite 0x857FE58, 0x2, 1, 0, 7 + waitforvisualfinish + end + +Move_POISON_STING: + loadspritegfx 0x27B1 + loadspritegfx 0x2797 + loadspritegfx 0x27A6 + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W013B, -64 + createsprite 0x8596A44, 0x82, 20, 0, -8, 0, 20 + waitforvisualfinish + createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 5, 1 + playsewithpan SE_W030, +63 + waitforvisualfinish + call AnimScript_82D7A71 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_TWINEEDLE: + loadspritegfx 0x27B1 + loadspritegfx 0x2797 + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 0x80C + loopsewithpan SE_W013B, -64, 0x6, 0x2 + createsprite 0x8596A44, 0x82, 10, -4, 0, -4, 20 + createsprite 0x8596A44, 0x82, 20, 12, 10, 12, 20 + delay 0x14 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 5, 1 + createsprite 0x8597370, 0x3, 0, -4, 1, 3 + loopsewithpan SE_W030, +63, 0x5, 0x2 + delay 0x1 + createsprite 0x8597370, 0x3, 10, 12, 1, 3 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_FIRE_BLAST: + loadspritegfx 0x272D + createsoundtask sub_8158B30, 144, 145 + call AnimScript_82C9FE9 + call AnimScript_82C9FE9 + call AnimScript_82C9FE9 + delay 0x18 + createvisualtask sub_8116620, 0xA, 1, 3, 0, 8, 0 + waitforvisualfinish + delay 0x13 + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 20, 1 + call AnimScript_82CA02D + delay 0x3 + call AnimScript_82CA02D + delay 0x3 + call AnimScript_82CA02D + delay 0x3 + call AnimScript_82CA02D + delay 0x3 + call AnimScript_82CA02D + delay 0x3 + call AnimScript_82CA02D + delay 0x3 + call AnimScript_82CA02D + delay 0x3 + call AnimScript_82CA02D + delay 0x3 + call AnimScript_82CA02D + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 1, 2, 8, 0, 0 + waitforvisualfinish + end + +AnimScript_82C9FE9: + createsprite 0x859551C, 0x82, 0, 0, 0 + createsprite 0x859551C, 0x82, 0, 0, 51 + createsprite 0x859551C, 0x82, 0, 0, 102 + createsprite 0x859551C, 0x82, 0, 0, 153 + createsprite 0x859551C, 0x82, 0, 0, 204 + delay 0x5 + return + +AnimScript_82CA02D: + createsprite 0x859556C, 0x82, 0, 0, 10, 0, -2 + createsprite 0x859556C, 0x82, 0, 0, 13, -2, 0 + createsprite 0x859556C, 0x82, 0, 0, 13, 2, 0 + createsprite 0x859556C, 0x82, 0, 0, 15, -2, 2 + createsprite 0x859556C, 0x82, 0, 0, 15, 2, 2 + return + +Move_LEECH_SEED: + loadspritegfx 0x2716 + playsewithpan SE_W077, -64 + createsprite 0x85922BC, 0x82, 15, 0, 0, 24, 35, -32 + delay 0x8 + playsewithpan SE_W077, -64 + createsprite 0x85922BC, 0x82, 15, 0, -16, 24, 35, -40 + delay 0x8 + playsewithpan SE_W077, -64 + createsprite 0x85922BC, 0x82, 15, 0, 16, 24, 35, -37 + delay 0xC + loopsewithpan SE_W039, +63, 0xA, 0x8 + waitforvisualfinish + end + +Move_EMBER: + loadspritegfx 0x272D + loopsewithpan SE_W052, -64, 0x5, 0x2 + createsprite 0x85954D4, 0x82, 20, 0, -16, 24, 20, 1 + delay 0x4 + createsprite 0x85954D4, 0x82, 20, 0, 0, 24, 20, 1 + delay 0x4 + createsprite 0x85954D4, 0x82, 20, 0, 16, 24, 20, 1 + delay 0x10 + playsewithpan SE_W172, +63 + call AnimScript_82CA135 + call AnimScript_82CA135 + call AnimScript_82CA135 + end + +AnimScript_82CA135: + createsprite 0x85954EC, 0x82, -24, 24, 24, 24, 20, 1, 1 + delay 0x4 + return + +Move_MEGA_PUNCH: + loadspritegfx 0x2797 + loadspritegfx 0x279F + monbg ANIM_TARGET + delay 0x2 + createsprite 0x8597274, 0x2, 1, 0, 0, 16, 0 + setalpha 0x80C + playsewithpan SE_W025, +63 + createsprite 0x8595F48, 0x3, 0, 0, 0, 50 + createvisualtask sub_8116620, 0xA, 4, 2, 0, 7, 0x7FFF + delay 0x32 + call AnimScript_82CA1E9 + createsprite 0x8597358, 0x2, 0, 0, 1, 0 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 22, 1 + createvisualtask sub_8116620, 0xA, 4, 2, 0, 0, 0x7FFF + createsprite 0x859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 + playsewithpan SE_W233B, +63 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + delay 0x2 + restorebg + waitbgfadein + end + +AnimScript_82CA1E9: + delay 0x2 + createvisualtask sub_8117E60, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82CA220 + createvisualtask sub_815A8C8, 0x2 + jumpargeq 0x7, 0x0, AnimScript_82CA212 + jumpargeq 0x7, 0x1, AnimScript_82CA219 + +AnimScript_82CA211: + return + +AnimScript_82CA212: + changebg BG_IMPACT_OPPONENT + goto AnimScript_82CA211 + +AnimScript_82CA219: + changebg BG_IMPACT_PLAYER + goto AnimScript_82CA211 + +AnimScript_82CA220: + changebg BG_IMPACT_CONTESTS + goto AnimScript_82CA211 + +Move_MEGA_KICK: + loadspritegfx 0x2797 + loadspritegfx 0x279F + monbg ANIM_TARGET + delay 0x2 + createsprite 0x8597274, 0x2, 1, 0, 0, 16, 0 + setalpha 0x80C + playsewithpan SE_W025, +63 + createsprite 0x8595F48, 0x3, 0, 0, 1, 50 + createvisualtask sub_8116620, 0xA, 4, 2, 0, 7, 0x7FFF + delay 0x32 + playsewithpan SE_W025B, +63 + call AnimScript_82CA1E9 + createsprite 0x8597358, 0x2, 0, 0, 1, 0 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 22, 1 + createvisualtask sub_8116620, 0xA, 4, 2, 0, 0, 0x7FFF + createsprite 0x859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + delay 0x2 + restorebg + waitbgfadein + end + +Move_COMET_PUNCH: + loadspritegfx 0x2797 + loadspritegfx 0x279F + monbg ANIM_TARGET + setalpha 0x80C + choosetwoturnanim AnimScript_82CA2F1, AnimScript_82CA316 + +AnimScript_82CA2D7: + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + playsewithpan SE_W004, +63 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +AnimScript_82CA2F1: + createsprite 0x8597358, 0x2, -8, -8, 1, 2 + createsprite 0x8595E98, 0x3, -8, 0, 8, 1, 0 + goto AnimScript_82CA2D7 + +AnimScript_82CA316: + createsprite 0x8597358, 0x2, 8, -8, 1, 2 + createsprite 0x8595E98, 0x3, 8, 0, 8, 1, 0 + goto AnimScript_82CA2D7 + +Move_SONIC_BOOM: + loadspritegfx 0x2713 + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + call AnimScript_82CA372 + call AnimScript_82CA372 + call AnimScript_82CA372 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 10, 1 + call AnimScript_82CA38A + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82CA372: + playsewithpan SE_W013B, -64 + createsprite 0x8593398, 0x82, 16, 0, 0, 0, 15 + delay 0x4 + return + +AnimScript_82CA38A: + createsprite 0x8597358, 0x83, 0, 0, 1, 2 + delay 0x4 + return + +Move_THUNDER_SHOCK: + loadspritegfx 0x2711 + loadspritegfx 0x271B + createvisualtask sub_8116620, 0xA, 1, 0, 0, 6, 0 + waitforvisualfinish + delay 0xA + createvisualtask sub_810A7DC, 0x5, 0, -44, 0 + playsewithpan SE_W085, +63 + delay 0x9 + createvisualtask sub_8116620, 0xA, 4, 0, 0, 13, 0 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 4, 0, 13, 0, 0 + waitforvisualfinish + delay 0x14 + call AnimScript_82D7BEA + waitforvisualfinish + delay 0x14 + createvisualtask sub_8116620, 0xA, 1, 0, 6, 0, 0 + waitforvisualfinish + end + +Move_THUNDERBOLT: + loadspritegfx 0x2711 + loadspritegfx 0x282A + loadspritegfx 0x271B + createvisualtask sub_8116620, 0xA, 1, 0, 0, 6, 0 + waitforvisualfinish + delay 0xA + createvisualtask sub_810A7DC, 0x5, 24, -52, 0 + playsewithpan SE_W085, +63 + delay 0x7 + createvisualtask sub_810A7DC, 0x5, -24, -52, 0 + playsewithpan SE_W085, +63 + delay 0x7 + createvisualtask sub_810A7DC, 0x5, 0, -60, 1 + playsewithpan SE_W085, +63 + delay 0x9 + createvisualtask sub_8116620, 0xA, 4, 0, 0, 13, 0 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 4, 0, 13, 0, 0 + waitforvisualfinish + delay 0x14 + createsprite 0x85957E0, 0x83, 44, 0, 0, 3 + createsprite 0x85957F8, 0x84, 0, 0, 32, 44, 0, 40, 0, -32765 + createsprite 0x85957F8, 0x84, 0, 0, 32, 44, 64, 40, 1, -32765 + createsprite 0x85957F8, 0x84, 0, 0, 32, 44, 128, 40, 0, -32765 + createsprite 0x85957F8, 0x84, 0, 0, 32, 44, 192, 40, 2, -32765 + createsprite 0x85957F8, 0x84, 0, 0, 16, 44, 32, 40, 0, -32765 + createsprite 0x85957F8, 0x84, 0, 0, 16, 44, 96, 40, 1, -32765 + createsprite 0x85957F8, 0x84, 0, 0, 16, 44, 160, 40, 0, -32765 + createsprite 0x85957F8, 0x84, 0, 0, 16, 44, 224, 40, 2, -32765 + playsewithpan SE_W063, +63 + delay 0x0 + createvisualtask sub_8116620, 0xA, 1, 0, 2, 2, 0 + delay 0x6 + createvisualtask sub_8116620, 0xA, 1, 0, 6, 6, 0 + delay 0x6 + createvisualtask sub_8116620, 0xA, 1, 0, 2, 2, 0 + delay 0x6 + createvisualtask sub_8116620, 0xA, 1, 0, 6, 6, 0 + waitforvisualfinish + delay 0x14 + waitplaysewithpan SE_W085B, +63, 0x13 + call AnimScript_82D7BEA + waitforvisualfinish + delay 0x14 + createvisualtask sub_8116620, 0xA, 1, 0, 6, 0, 0 + waitforvisualfinish + end + +Move_THUNDER_WAVE: + loadspritegfx 0x2711 + loadspritegfx 0x271B + loadspritegfx 0x27BD + createvisualtask sub_8116620, 0xA, 1, 0, 0, 6, 0 + waitforvisualfinish + delay 0xA + createvisualtask sub_810A7DC, 0x5, 0, -48, 0 + playsewithpan SE_W086, +63 + delay 0x14 + loopsewithpan SE_W085B, +63, 0xA, 0x4 + createsprite 0x8595840, 0x82, -16, -16 + delay 0x4 + createsprite 0x8595840, 0x82, -16, 0 + delay 0x4 + createsprite 0x8595840, 0x82, -16, 16 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 1, 0, 6, 0, 0 + waitforvisualfinish + end + +Move_BEAT_UP: + loadspritegfx 0x2797 + loadspritegfx 0x279F + monbg ANIM_TARGET + setalpha 0x80C + choosetwoturnanim AnimScript_82CA648, AnimScript_82CA6B9 + +AnimScript_82CA643: + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +AnimScript_82CA648: + createsprite 0x8597358, 0x82, -20, -20, 1, 2 + createsprite 0x8595E98, 0x83, -20, -12, 8, 1, 0 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + playsewithpan SE_W233B, +63 + delay 0x8 + createsprite 0x8597358, 0x82, 8, 0, 1, 2 + createsprite 0x8595E98, 0x83, 8, 8, 8, 1, 0 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + playsewithpan SE_W233B, +63 + goto AnimScript_82CA643 + +AnimScript_82CA6B9: + createsprite 0x8597358, 0x82, 12, -20, 1, 2 + createsprite 0x8595E98, 0x83, 12, -12, 8, 1, 0 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + playsewithpan SE_W233B, +63 + delay 0x8 + createsprite 0x8597358, 0x82, -12, 0, 1, 2 + createsprite 0x8595E98, 0x83, -12, 8, 8, 1, 0 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + playsewithpan SE_W233B, +63 + goto AnimScript_82CA643 + +Move_STOMP: + loadspritegfx 0x279F + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W104, +63 + createsprite 0x8595F60, 0x3, 0, -32, 15 + delay 0x13 + createsprite 0x8597358, 0x2, 0, -8, 1, 1 + createvisualtask sub_80D51AC, 0x2, 1, 0, 4, 9, 1 + playsewithpan SE_W025B, +63 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_TAIL_WHIP: + loopsewithpan SE_W039, -64, 0x18, 0x3 + createvisualtask sub_80D5830, 0x2, 0, 12, 4, 2, 3 + waitforvisualfinish + end + +Move_CUT: + loadspritegfx 0x279A + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W015, +63 + createsprite 0x8592A1C, 0x2, 40, -32, 0 + delay 0x5 + createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 10, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + waitforvisualfinish + end + +Move_HIDDEN_POWER: + loadspritegfx 0x27E9 + playsewithpan SE_W036, -64 + createvisualtask sub_80D6064, 0x5, -7, -7, 11, 0, 0 + waitforvisualfinish + delay 0x1E + createvisualtask sub_80A7B98, 0x5, 0, 20479, 12, 5, 1 + delay 0x4 + createvisualtask sub_80D6064, 0x5, -7, -7, 11, 0, 0 + playsewithpan SE_W179, -64 + createsprite 0x8593A04, 0x2, 26, 0 + createsprite 0x8593A04, 0x2, 26, 42 + createsprite 0x8593A04, 0x2, 26, 84 + createsprite 0x8593A04, 0x2, 26, 126 + createsprite 0x8593A04, 0x2, 26, 168 + createsprite 0x8593A04, 0x2, 26, 210 + delay 0x34 + setarg 0x7, 0xFFFF + playsewithpan SE_W115, -64 + createvisualtask sub_80D6064, 0x5, -7, -7, 11, 0, 0 + createsprite 0x8593A1C, 0x82, 0 + createsprite 0x8593A1C, 0x82, 32 + createsprite 0x8593A1C, 0x82, 64 + createsprite 0x8593A1C, 0x82, 96 + createsprite 0x8593A1C, 0x82, 128 + createsprite 0x8593A1C, 0x82, 160 + createsprite 0x8593A1C, 0x82, 192 + createsprite 0x8593A1C, 0x82, 224 + end + +Move_REVERSAL: + loadspritegfx 0x27FC + loadspritegfx 0x279F + loadspritegfx 0x2797 + playsewithpan SE_W197, -64 + createsprite 0x859728C, 0x2, 31, 3, 3, 0x7FFF, 8, 0, 0 + waitforvisualfinish + delay 0x1E + createvisualtask sub_8115A04, 0x2, 31, 3, 2, 0, 10, 0x7FFF + delay 0xA + playsewithpan SE_W179, -64 + createsprite 0x85CE5D8, 0x2, 26, 0 + createsprite 0x85CE5D8, 0x2, 26, 42 + createsprite 0x85CE5D8, 0x2, 26, 84 + createsprite 0x85CE5D8, 0x2, 26, 126 + createsprite 0x85CE5D8, 0x2, 26, 168 + createsprite 0x85CE5D8, 0x2, 26, 210 + waitforvisualfinish + delay 0x14 + createsprite 0x857FE28, 0x2, 6, 4 + delay 0x8 + playsewithpan SE_W233B, +63 + createsprite 0x859728C, 0x2, 31, 3, 1, 0x7FFF, 8, 0, 0 + createsprite 0x8595E98, 0x84, 0, 0, 10, 1, 0 + createsprite 0x8597358, 0x83, 0, 0, 1, 1 + createvisualtask sub_80D6388, 0x5, 0, 1, 8, 1, 0 + end + +Move_PURSUIT: + loadspritegfx 0x2797 + monbg ANIM_TARGET + fadetobg BG_DARK + waitbgfadein + delay 0x0 + setalpha 0x80C + choosetwoturnanim AnimScript_82CA99F, AnimScript_82CA9C8 + +AnimScript_82CA996: + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + delay 0x0 + restorebg + waitbgfadein + end + +AnimScript_82CA99F: + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createvisualtask sub_80D6388, 0x5, 0, 1, 6, 1, 0 + goto AnimScript_82CA996 + +AnimScript_82CA9C8: + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x3, 0, 0, 1, 1 + createvisualtask sub_80D6388, 0x5, 0, 1, 6, 1, 0 + goto AnimScript_82CA996 + +Move_SPIKE_CANNON: + loadspritegfx 0x27B1 + loadspritegfx 0x2797 + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 0x80C + createvisualtask sub_80D5C50, 0x5, 0, -4, 0, 4, 6, 8, 4 + waitforvisualfinish + loopsewithpan SE_W013B, -64, 0x5, 0x3 + createsprite 0x857FE58, 0x2, 0, 0, 5 + createsprite 0x8596A44, 0x2, 10, -8, -8, -8, 20 + createsprite 0x8596A44, 0x2, 18, 0, 0, 0, 20 + createsprite 0x8596A44, 0x2, 26, 8, 8, 8, 20 + waitforvisualfinish + createsprite 0x8597370, 0x3, -8, -8, 1, 2 + createsprite 0x8597370, 0x3, 0, 0, 1, 2 + createsprite 0x8597370, 0x3, 8, 8, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 7, 1 + loopsewithpan SE_W030, +63, 0x5, 0x3 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_SWORDS_DANCE: + loadspritegfx 0x2715 + monbg ANIM_ATTACKER + setalpha 0x80C + playsewithpan SE_W014, -64 + createvisualtask sub_80D5830, 0x2, 0, 16, 6, 1, 4 + createsprite 0x8593380, 0x2, 0, 0 + delay 0x16 + createvisualtask sub_8115D94, 0x2, 10005, 2, 2, 32754, 16, 0, 0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff + delay 0x1 + end + +Move_PSYCH_UP: + loadspritegfx 0x27D4 + monbg ANIM_ATK_PARTNER + createvisualtask sub_8115B0C, 0x2, 1, 2, 6, 1, 11, 0 + setalpha 0x80C + loopsewithpan SE_W060B, -64, 0x5, 0xA + createsprite 0x8596548, 0x2, 0, 0, 0, 0 + createvisualtask sub_80D5EB8, 0x5, 0, 5, 2560, 8, 0 + delay 0x7F + delay 0x4 + playsewithpan SE_W060, -64 + createvisualtask sub_80D6064, 0x5, -5, -5, 10, 0, 1 + createvisualtask sub_8116620, 0x9, 2, 2, 10, 0, 1023 + delay 0x1E + clearmonbg ANIM_ATK_PARTNER + blendoff + waitforvisualfinish + end + +Move_DIZZY_PUNCH: + loadspritegfx 0x2759 + loadspritegfx 0x279F + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + call AnimScript_82CAC77 + createsprite 0x8595E98, 0x85, 16, 8, 20, 1, 0 + createsprite 0x8597358, 0x84, 16, 0, 1, 1 + playsewithpan SE_W004, +63 + createsprite 0x8595F78, 0x83, 16, 8, 160, -32 + createsprite 0x8595F78, 0x83, 16, 8, -256, -40 + createsprite 0x8595F78, 0x83, 16, 8, 128, -16 + createsprite 0x8595F78, 0x83, 16, 8, 416, -38 + createsprite 0x8595F78, 0x83, 16, 8, -128, -22 + createsprite 0x8595F78, 0x83, 16, 8, -384, -31 + delay 0xA + call AnimScript_82CAC77 + createsprite 0x8595E98, 0x85, -16, -8, 20, 1, 0 + createsprite 0x8597358, 0x84, -16, -16, 1, 1 + playsewithpan SE_W233B, +63 + createsprite 0x8595F78, 0x83, -16, -8, 160, -32 + createsprite 0x8595F78, 0x83, -16, -8, -256, -40 + createsprite 0x8595F78, 0x83, -16, -8, 128, -16 + createsprite 0x8595F78, 0x83, -16, -8, 416, -38 + createsprite 0x8595F78, 0x83, -16, -8, -128, -22 + createsprite 0x8595F78, 0x83, -16, -8, -384, -31 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +AnimScript_82CAC77: + createsprite 0x857FE28, 0x2, 6, 4 + delay 0x6 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 7, 1 + return + +Move_FIRE_SPIN: + loadspritegfx 0x272D + playsewithpan SE_W221B, +63 + createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 47, 1 + call AnimScript_82CACBF + call AnimScript_82CACBF + call AnimScript_82CACBF + waitforvisualfinish + end + +AnimScript_82CACBF: + createsprite 0x8596B88, 0x82, 0, 28, 528, 30, 13, 50, 1 + delay 0x2 + createsprite 0x8596B88, 0x82, 0, 32, 480, 20, 16, -46, 1 + delay 0x2 + createsprite 0x8596B88, 0x82, 0, 33, 576, 20, 8, 42, 1 + delay 0x2 + createsprite 0x8596B88, 0x82, 0, 31, 400, 25, 11, -42, 1 + delay 0x2 + createsprite 0x8596B88, 0x82, 0, 28, 512, 25, 16, 46, 1 + delay 0x2 + createsprite 0x8596B88, 0x82, 0, 33, 464, 30, 15, -50, 1 + delay 0x2 + return + +Move_FURY_CUTTER: + loadspritegfx 0x279A + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W013, +63 + createvisualtask sub_8107144, 0x2 + jumpargeq 0x7, 0x0, AnimScript_82CADA7 + goto AnimScript_82CADB9 + +AnimScript_82CAD6A: + createvisualtask sub_8107168, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82CAD8E + jumpargeq 0x7, 0x2, AnimScript_82CADCB + jumpargeq 0x7, 0x3, AnimScript_82CADE5 + goto AnimScript_82CADFF + +AnimScript_82CAD8E: + delay 0x5 + createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 10, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + waitforvisualfinish + end + +AnimScript_82CADA7: + createsprite 0x8592A1C, 0x2, 40, -32, 0 + goto AnimScript_82CAD6A + +AnimScript_82CADB9: + createsprite 0x8592A1C, 0x2, 40, -32, 1 + goto AnimScript_82CAD6A + +AnimScript_82CADCB: + createsprite 0x859728C, 0x2, 31, 3, 1, 10505, 4, 0, 0 + goto AnimScript_82CAD8E + +AnimScript_82CADE5: + createsprite 0x859728C, 0x2, 31, 3, 3, 10505, 4, 0, 0 + goto AnimScript_82CAD8E + +AnimScript_82CADFF: + createsprite 0x859728C, 0x2, 31, 3, 3, 10505, 4, 0, 0 + goto AnimScript_82CAD8E + +Move_SELF_DESTRUCT: + loadspritegfx 0x27D6 + createvisualtask sub_8116620, 0xA, 2, 1, 0, 9, 31 + createvisualtask sub_80D52D0, 0x5, 4, 6, 0, 38, 1 + createvisualtask sub_80D52D0, 0x5, 5, 6, 0, 38, 1 + createvisualtask sub_80D52D0, 0x5, 6, 6, 0, 38, 1 + createvisualtask sub_80D52D0, 0x5, 7, 6, 0, 38, 1 + createvisualtask sub_80D52D0, 0x5, 8, 6, 0, 38, 1 + call AnimScript_82CAE9F + call AnimScript_82CAE9F + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 2, 1, 9, 0, 31 + end + +AnimScript_82CAE9F: + playsewithpan SE_W120, -64 + createsprite 0x859371C, 0x3, 0, 0, 0, 1 + delay 0x6 + playsewithpan SE_W120, -64 + createsprite 0x859371C, 0x3, 24, -24, 0, 1 + delay 0x6 + playsewithpan SE_W120, -64 + createsprite 0x859371C, 0x3, -16, 16, 0, 1 + delay 0x6 + playsewithpan SE_W120, -64 + createsprite 0x859371C, 0x3, -24, -12, 0, 1 + delay 0x6 + playsewithpan SE_W120, -64 + createsprite 0x859371C, 0x3, 16, 16, 0, 1 + delay 0x6 + return + +Move_SLAM: + loadspritegfx 0x2748 + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W004, -64 + createsprite 0x857FE70, 0x2, 0, 20, 3, 0, 4 + delay 0x1 + createsprite 0x85928D0, 0x2, 0, 0 + delay 0x3 + playsewithpan SE_W025B, +63 + createsprite 0x8597358, 0x3, 0, 0, 1, 1 + createsprite 0x857FE70, 0x2, 1, -12, 10, 0, 3 + createsprite 0x857FE58, 0x2, 0, 0, 5 + delay 0x3 + createvisualtask sub_80D5484, 0x2, 1, 0, 3, 6, 1 + waitforvisualfinish + delay 0x5 + createsprite 0x857FE58, 0x2, 1, 0, 6 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_VINE_WHIP: + loadspritegfx 0x282F + playsewithpan SE_W026, -64 + createsprite 0x857FE28, 0x2, 4, 6 + delay 0x6 + playsewithpan SE_W010, +63 + createsprite 0x85928E8, 0x82, 0, 0 + delay 0x6 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 6, 1 + end + +Move_DRILL_PECK: + loadspritegfx 0x2797 + loadspritegfx 0x27B2 + createsprite 0x8592CD8, 0x2, 0 + playsewithpan SE_W029, -64 + waitforvisualfinish + delay 0x2 + createsprite 0x8592CD8, 0x2, 1 + delay 0x2 + loopsewithpan SE_W030, +63, 0x4, 0x8 + createvisualtask sub_810EB88, 0x5 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 18, 1 + waitforvisualfinish + createsprite 0x8592CD8, 0x2, 2 + waitforvisualfinish + createsprite 0x857FE58, 0x2, 0, 0, 6 + waitforvisualfinish + end + +Move_WATERFALL: + loadspritegfx 0x27A4 + loadspritegfx 0x27AB + loadspritegfx 0x279D + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createvisualtask sub_80D51AC, 0x5, 0, 0, 2, 23, 1 + delay 0x5 + playsewithpan SE_W152, -64 + createsprite 0x8595238, 0x2, 10, 10, 25, 0 + delay 0x4 + playsewithpan SE_W152, -64 + createsprite 0x8595238, 0x2, -15, 0, 25, 0 + delay 0x4 + playsewithpan SE_W152, -64 + createsprite 0x8595238, 0x2, 20, 10, 25, 0 + delay 0x4 + playsewithpan SE_W152, -64 + createsprite 0x8595238, 0x2, 0, -10, 25, 0 + delay 0x4 + playsewithpan SE_W152, -64 + createsprite 0x8595238, 0x2, -10, 15, 25, 0 + delay 0x4 + playsewithpan SE_W152, -64 + createsprite 0x8595238, 0x2, 25, 20, 25, 0 + delay 0x4 + playsewithpan SE_W152, -64 + createsprite 0x8595238, 0x2, -20, 20, 25, 0 + delay 0x4 + playsewithpan SE_W152, -64 + createsprite 0x8595238, 0x2, 12, 0, 25, 0 + waitforvisualfinish + delay 0xA + createsprite 0x857FE28, 0x2, 6, 5 + delay 0x6 + call AnimScript_82CB102 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82CB102: + playsewithpan SE_W127, +63 + createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 17, 1 + createsprite 0x8597388, 0x3, 0, 20, 1, 1 + createsprite 0x8595250, 0x4, 0, 20 + createsprite 0x8595250, 0x4, 0, 20 + delay 0x2 + createsprite 0x8597388, 0x3, 0, 15, 1, 1 + createsprite 0x8595250, 0x4, 0, 15 + createsprite 0x8595250, 0x4, 0, 15 + delay 0x2 + createsprite 0x8597388, 0x3, 0, 10, 1, 1 + createsprite 0x8595250, 0x4, 0, 10 + createsprite 0x8595250, 0x4, 0, 10 + delay 0x2 + createsprite 0x8597388, 0x3, 0, 5, 1, 1 + createsprite 0x8595250, 0x4, 0, 5 + createsprite 0x8595250, 0x4, 0, 5 + delay 0x2 + createsprite 0x8597388, 0x3, 0, 0, 1, 1 + createsprite 0x8595250, 0x4, 0, 0 + createsprite 0x8595250, 0x4, 0, 0 + delay 0x2 + createsprite 0x8597388, 0x3, 0, -5, 1, 1 + createsprite 0x8595250, 0x4, 0, -5 + createsprite 0x8595250, 0x4, 0, -5 + delay 0x2 + createsprite 0x8597388, 0x3, 0, -10, 1, 1 + createsprite 0x8595250, 0x4, 0, -10 + createsprite 0x8595250, 0x4, 0, -10 + delay 0x2 + createsprite 0x8597388, 0x3, 0, -15, 1, 1 + createsprite 0x8595250, 0x4, 0, -15 + createsprite 0x8595250, 0x4, 0, -15 + delay 0x2 + createsprite 0x8597388, 0x3, 0, -20, 1, 1 + createsprite 0x8595250, 0x4, 0, -20 + createsprite 0x8595250, 0x4, 0, -20 + return + +Move_EXPLOSION: + loadspritegfx 0x27D6 + createsprite 0x859728C, 0x2, 1, 8, 9, 8474, 8, 0, 8 + createvisualtask sub_80D52D0, 0x5, 4, 8, 0, 40, 1 + createvisualtask sub_80D52D0, 0x5, 5, 8, 0, 40, 1 + createvisualtask sub_80D52D0, 0x5, 6, 8, 0, 40, 1 + createvisualtask sub_80D52D0, 0x5, 7, 8, 0, 40, 1 + createvisualtask sub_80D52D0, 0x5, 8, 8, 0, 40, 1 + call AnimScript_82CB312 + call AnimScript_82CB312 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 1, 1, 16, 16, 0x7FFF + delay 0x32 + createvisualtask sub_8116620, 0xA, 1, 3, 16, 0, 0x7FFF + end + +AnimScript_82CB312: + playsewithpan SE_W153, -64 + createsprite 0x859371C, 0x3, 0, 0, 0, 1 + delay 0x6 + playsewithpan SE_W153, -64 + createsprite 0x859371C, 0x3, 24, -24, 0, 1 + delay 0x6 + playsewithpan SE_W153, -64 + createsprite 0x859371C, 0x3, -16, 16, 0, 1 + delay 0x6 + playsewithpan SE_W153, -64 + createsprite 0x859371C, 0x3, -24, -12, 0, 1 + delay 0x6 + playsewithpan SE_W153, -64 + createsprite 0x859371C, 0x3, 16, 16, 0, 1 + delay 0x6 + return + +Move_DEFENSE_CURL: + loadspritegfx 0x27FA + loopsewithpan SE_W161, -64, 0x12, 0x3 + createvisualtask sub_811489C, 0x5, 0, 0 + createvisualtask sub_815B338, 0x5 + waitforvisualfinish + createsprite 0x85CE338, 0x2, 0, 6, 0, 1 + waitforvisualfinish + createvisualtask sub_811489C, 0x5, 0, 1 + waitforvisualfinish + end + +Move_PROTECT: + loadspritegfx 0x2828 + monbg ANIM_ATK_PARTNER + monbgprio_28 ANIM_ATTACKER + waitplaysewithpan SE_W115, -64, 0x10 + createsprite 0x8592ADC, 0x2, 24, 0, 90 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + end + +Move_DETECT: + loadspritegfx 0x2757 + createsprite 0x8597274, 0x2, 1, 2, 0, 9, 0 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 2, 1, 0, 9, 0x7FFF + delay 0x12 + playsewithpan SE_W197, -64 + createsprite 0x853EE84, 0xD, 20, -20 + waitforvisualfinish + delay 0xA + createsprite 0x8597274, 0x2, 1, 2, 9, 0, 0 + createvisualtask sub_8116620, 0xA, 2, 2, 9, 0, 0x7FFF + waitforvisualfinish + end + +Move_FRUSTRATION: + loadspritegfx 0x2797 + loadspritegfx 0x2767 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createvisualtask sub_80A8140, 0x1 + jumpargeq 0x7, 0x0, AnimScript_82CB464 + jumpargeq 0x7, 0x1, AnimScript_82CB56A + jumpargeq 0x7, 0x2, AnimScript_82CB637 + goto AnimScript_82CB6B3 + +AnimScript_82CB45F: + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82CB464: + playsewithpan SE_W082, -64 + createvisualtask sub_80D52D0, 0x5, 0, 1, 0, 15, 1 + createvisualtask sub_8116620, 0xA, 2, 3, 0, 9, 31 + waitforvisualfinish + delay 0x14 + playsewithpan SE_W207B, -64 + createsprite 0x859368C, 0x2, 0, 20, -28 + waitforvisualfinish + playsewithpan SE_W207B, -64 + createsprite 0x859368C, 0x2, 0, 20, -28 + waitforvisualfinish + delay 0xA + createvisualtask sub_80D5EB8, 0x5, 0, 16, 6144, 8, 0 + delay 0x5 + createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 30, 1 + createsprite 0x8597358, 0x3, 0, 0, 1, 0 + playsewithpan SE_W004, +63 + delay 0x5 + createsprite 0x8597358, 0x3, 24, 8, 1, 0 + playsewithpan SE_W004, +63 + delay 0x5 + createsprite 0x8597358, 0x3, -24, -16, 1, 0 + playsewithpan SE_W004, +63 + delay 0x5 + createsprite 0x8597358, 0x3, 8, 4, 1, 0 + playsewithpan SE_W004, +63 + delay 0x5 + createsprite 0x8597358, 0x3, -16, 19, 1, 0 + playsewithpan SE_W004, +63 + delay 0x5 + createsprite 0x8597358, 0x3, 18, -18, 1, 0 + playsewithpan SE_W004, +63 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 2, 3, 9, 0, 31 + goto AnimScript_82CB45F + +AnimScript_82CB56A: + playsewithpan SE_W082, -64 + createvisualtask sub_80D52D0, 0x5, 0, 1, 0, 15, 1 + createvisualtask sub_8116620, 0xA, 2, 3, 0, 9, 31 + waitforvisualfinish + delay 0x14 + playsewithpan SE_W207B, -64 + createsprite 0x859368C, 0x2, 0, 20, -28 + waitforvisualfinish + delay 0x5 + createvisualtask sub_815C3A8, 0x5 + delay 0x7 + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x3, 0, 8, 1, 1 + createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 6, 1 + delay 0xE + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x3, 12, -6, 1, 1 + createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 6, 1 + delay 0xE + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x3, -12, -6, 1, 1 + createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 6, 1 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 2, 3, 9, 0, 31 + goto AnimScript_82CB45F + +AnimScript_82CB637: + playsewithpan SE_W207B, -64 + createsprite 0x859368C, 0x2, 0, 20, -28 + waitforvisualfinish + delay 0x5 + createsprite 0x857FE28, 0x2, 4, 4 + delay 0x6 + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x2, 10, 4, 1, 1 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 6, 1 + waitforvisualfinish + createsprite 0x857FE28, 0x2, 4, 4 + delay 0x6 + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x2, -10, -4, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 6, 1 + goto AnimScript_82CB45F + +AnimScript_82CB6B3: + createsprite 0x85CE4D0, 0x2, 20, -28 + waitforvisualfinish + delay 0xA + createsprite 0x857FE28, 0x2, 10, 2 + delay 0xC + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 6, 1 + goto AnimScript_82CB45F + +Move_SAFEGUARD: + loadspritegfx 0x2804 + monbg ANIM_ATK_PARTNER + setalpha 0x808 + playsewithpan SE_W208, -64 + createsprite 0x8593C64, 0x2 + delay 0x4 + createsprite 0x8593C64, 0x2 + delay 0x4 + createsprite 0x8593C64, 0x2 + waitforvisualfinish + playsewithpan SE_REAPOKE, -64 + createvisualtask sub_8115A04, 0x2, 10, 0, 2, 0, 10, 0x7FFF + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + end + +Move_PAIN_SPLIT: + loadspritegfx 0x27FF + createsprite 0x85CE590, 0x2, -8, -42, 0 + createsprite 0x85CE590, 0x82, -8, -42, 1 + delay 0xA + playsewithpan SE_W207B, 0 + createvisualtask sub_815CA20, 0x2, 0, 0 + createvisualtask sub_815CA20, 0x2, 1, 0 + waitforvisualfinish + createsprite 0x85CE590, 0x2, -24, -42, 0 + createsprite 0x85CE590, 0x82, -24, -42, 1 + delay 0xA + playsewithpan SE_W207B, 0 + createvisualtask sub_815CA20, 0x2, 0, 1 + createvisualtask sub_815CA20, 0x2, 1, 1 + waitforvisualfinish + createsprite 0x85CE590, 0x2, 8, -42, 0 + createsprite 0x85CE590, 0x82, 8, -42, 1 + delay 0xA + playsewithpan SE_W207B, 0 + createvisualtask sub_815CA20, 0x2, 0, 2 + createvisualtask sub_815CA20, 0x2, 1, 2 + end + +Move_VICE_GRIP: + loadspritegfx 0x279A + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W011, +63 + createsprite 0x8593590, 0x2, 0 + createsprite 0x8593590, 0x2, 1 + delay 0x9 + createsprite 0x8597358, 0x1, 0, 0, 1, 2 + createvisualtask sub_80D52D0, 0x5, 1, 2, 0, 5, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_GUILLOTINE: + loadspritegfx 0x279A + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + fadetobgfromset BG_GUILLOTINE_OPPONENT, BG_GUILLOTINE_PLAYER, BG_GUILLOTINE_CONTESTS + waitbgfadein + playsewithpan SE_W011, +63 + createsprite 0x85935D0, 0x2, 0 + createsprite 0x85935D0, 0x2, 1 + createvisualtask sub_8116620, 0xA, 4, 2, 0, 16, 0 + delay 0x9 + createvisualtask sub_80D52D0, 0x5, 1, 2, 0, 23, 1 + delay 0x2E + createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 8, 1 + createsprite 0x8597358, 0x3, 0, 0, 1, 0 + createsprite 0x859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 + playsewithpan SE_W013, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + restorebg + waitbgfadein + end + +Move_PAY_DAY: + loadspritegfx 0x2774 + loadspritegfx 0x2797 + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W013B, -64 + createsprite 0x85934D8, 0x2, 20, 0, 0, 0, 1152 + waitforvisualfinish + playsewithpan SE_W006, +63 + createsprite 0x8597358, 0x1, 0, 0, 1, 2 + createsprite 0x85934F0, 0x2 + createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 6, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_OUTRAGE: + loadspritegfx 0x272D + loopsewithpan SE_W082, -64, 0x8, 0x3 + createvisualtask sub_8115A04, 0x2, 7, 2, 5, 3, 8, 430 + createvisualtask sub_80D5830, 0x2, 0, 12, 6, 5, 4 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, 0, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, 0, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, 0, 1280, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, 0, -1280, 3 + delay 0x0 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 40, 1 + createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, 768, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, 768, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, -768, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, -768, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, 0, 3 + call AnimScript_82CBA0F + call AnimScript_82CBA0F + waitforvisualfinish + end + +AnimScript_82CBA0F: + delay 0x3 + createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, 0, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, 0, 1280, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, 0, -1280, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, 768, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, 768, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, -768, 3 + delay 0x0 + createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, -768, 3 + return + +Move_SPARK: + loadspritegfx 0x2797 + loadspritegfx 0x271B + delay 0x0 + createvisualtask sub_8115A04, 0x2, 3, -31, 1, 5, 5, 23551 + playsewithpan SE_W085B, -64 + createsprite 0x859574C, 0x0, 32, 24, 190, 12, 0, 1, 0 + delay 0x0 + createsprite 0x859574C, 0x0, 80, 24, 22, 12, 0, 1, 0 + createsprite 0x859574C, 0x0, 156, 24, 121, 13, 0, 1, 1 + delay 0x0 + createvisualtask sub_8115A04, 0x2, 3, -31, 1, 0, 0, 23551 + delay 0xA + createvisualtask sub_8115A04, 0x2, 3, -31, 1, 5, 5, 23551 + playsewithpan SE_W085B, -64 + createsprite 0x859574C, 0x0, 100, 24, 60, 10, 0, 1, 0 + createsprite 0x859574C, 0x0, 170, 24, 42, 11, 0, 1, 1 + delay 0x0 + createsprite 0x859574C, 0x0, 238, 24, 165, 10, 0, 1, 1 + delay 0x0 + createvisualtask sub_8115A04, 0x2, 3, -31, 1, 0, 0, 23551 + delay 0x14 + createvisualtask sub_8115A04, 0x2, 3, -31, 1, 7, 7, 23551 + playsewithpan SE_W085B, -64 + createsprite 0x85957F8, 0x4, 0, 0, 32, 12, 0, 20, 0, 0 + createsprite 0x85957F8, 0x4, 0, 0, 32, 12, 64, 20, 1, 0 + createsprite 0x85957F8, 0x4, 0, 0, 32, 12, 128, 20, 0, 0 + createsprite 0x85957F8, 0x4, 0, 0, 32, 12, 192, 20, 2, 0 + createsprite 0x85957F8, 0x4, 0, 0, 16, 12, 32, 20, 0, 0 + createsprite 0x85957F8, 0x4, 0, 0, 16, 12, 96, 20, 1, 0 + createsprite 0x85957F8, 0x4, 0, 0, 16, 12, 160, 20, 0, 0 + createsprite 0x85957F8, 0x4, 0, 0, 16, 12, 224, 20, 2, 0 + delay 0x4 + waitforvisualfinish + createvisualtask sub_8115A04, 0x2, 3, -31, 1, 0, 0, 23551 + createsprite 0x857FE28, 0x2, 4, 4 + delay 0x4 + playsewithpan SE_W063, +63 + createsprite 0x8597358, 0x82, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + waitforvisualfinish + createvisualtask sub_8115A04, 0x2, 4, -31, 2, 0, 6, 23551 + call AnimScript_82D7BEA + waitforvisualfinish + end + +Move_ATTRACT: + loadspritegfx 0x27E8 + loopsewithpan SE_W204, -64, 0xC, 0x3 + createvisualtask sub_80D5EB8, 0x5, 0, 12, 4096, 4, 0 + delay 0xF + createsprite 0x85939A0, 0x83, 20, -8 + waitforvisualfinish + playsewithpan SE_W213, +63 + createsprite 0x85939B8, 0x83, 160, -32 + createsprite 0x85939B8, 0x83, -256, -40 + createsprite 0x85939B8, 0x83, 128, -16 + createsprite 0x85939B8, 0x83, 416, -38 + createsprite 0x85939B8, 0x83, -128, -22 + createsprite 0x85939B8, 0x83, -384, -31 + waitforvisualfinish + waitplaysewithpan SE_W213B, 0, 0xF + createvisualtask sub_81062E8, 0x5 + createsprite 0x85939D0, 0x28, 16, 256, 0 + createsprite 0x85939D0, 0x28, 224, 240, 15 + createsprite 0x85939D0, 0x28, 126, 272, 30 + createsprite 0x85939D0, 0x28, 80, 224, 45 + createsprite 0x85939D0, 0x28, 170, 272, 60 + createsprite 0x85939D0, 0x28, 40, 256, 75 + createsprite 0x85939D0, 0x28, 112, 256, 90 + createsprite 0x85939D0, 0x28, 200, 272, 90 + delay 0x4B + createvisualtask sub_8115A04, 0x2, 4, 4, 4, 0, 10, 28479 + end + +Move_GROWTH: + call AnimScript_82CBDC0 + waitforvisualfinish + call AnimScript_82CBDC0 + waitforvisualfinish + end + +AnimScript_82CBDC0: + createvisualtask sub_8115A04, 0x2, 2, 0, 2, 0, 8, 0x7FFF + playsewithpan SE_W036, -64 + createvisualtask sub_80D6064, 0x5, -3, -3, 16, 0, 0 + return + +Move_WHIRLWIND: + loadspritegfx 0x27B2 + createsprite 0x85963D4, 0x2, 0, -8, 1, 60, 0 + createsprite 0x85963D4, 0x2, 0, 0, 1, 60, 1 + createsprite 0x85963D4, 0x2, 0, 8, 1, 60, 2 + createsprite 0x85963D4, 0x2, 0, 16, 1, 60, 3 + createsprite 0x85963D4, 0x2, 0, 24, 1, 60, 4 + createsprite 0x85963D4, 0x2, 0, 32, 1, 60, 0 + delay 0x5 + loopsewithpan SE_W104, +63, 0xA, 0x4 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 15, 1 + delay 0x1D + createvisualtask sub_80D5830, 0x2, 1, 12, 6, 1, 5 + delay 0x7 + playsewithpan SE_W081, +63 + createvisualtask sub_80D5DB0, 0x5, 1, 8 + waitforvisualfinish + end + +Move_CONFUSE_RAY: + loadspritegfx 0x271D + monbg ANIM_DEF_PARTNER + fadetobg BG_GHOST + waitbgfadein + createvisualtask sub_8159278, 0x2, -64, 63, 2, 0 + createvisualtask sub_8115C80, 0x2, 10013, 0, 6, 0, 14, 351 + createsprite 0x8596D14, 0x82, 28, 0, 288 + waitforvisualfinish + setalpha 0x808 + playsewithpan SE_W081B, +63 + createsprite 0x8596D2C, 0x82, 0, -16 + waitforvisualfinish + delay 0x0 + blendoff + clearmonbg ANIM_DEF_PARTNER + restorebg + waitbgfadein + end + +Move_LOCK_ON: + loadspritegfx 0x271E + createsprite 0x8592CA0, 0x28 + createsprite 0x8592CB8, 0x28, 1 + createsprite 0x8592CB8, 0x28, 2 + createsprite 0x8592CB8, 0x28, 3 + createsprite 0x8592CB8, 0x28, 4 + delay 0x78 + setarg 0x7, 0xFFFF + waitforvisualfinish + end + +Move_MEAN_LOOK: + loadspritegfx 0x27CB + monbg ANIM_DEF_PARTNER + playsewithpan SE_W060, -64 + createsprite 0x8597274, 0x2, 1, 1, 0, 16, 0 + loopsewithpan SE_W109, +63, 0xF, 0x4 + waitplaysewithpan SE_W043, +63, 0x55 + createsprite 0x85CE104, 0x2 + delay 0x78 + createsprite 0x8597274, 0x2, 1, 2, 16, 0, 0 + delay 0x1E + clearmonbg ANIM_DEF_PARTNER + waitforvisualfinish + end + +Move_ROCK_THROW: + loadspritegfx 0x274A + createsprite 0x85972D8, 0x82, 6, 1, 15, 1 + createsprite 0x8596B04, 0x82, 0, 1, 0, 0 + playsewithpan SE_W088, +63 + delay 0x6 + createsprite 0x8596B04, 0x82, 19, 1, 10, 0 + playsewithpan SE_W088, +63 + delay 0x6 + createsprite 0x8596B04, 0x82, -23, 2, -10, 0 + playsewithpan SE_W088, +63 + createvisualtask sub_80D51AC, 0x2, 1, 0, 5, 20, 1 + delay 0x6 + createsprite 0x8596B04, 0x82, -15, 1, -10, 0 + playsewithpan SE_W088, +63 + delay 0x6 + createsprite 0x8596B04, 0x82, 23, 2, 10, 0 + playsewithpan SE_W088, +63 + waitforvisualfinish + end + +Move_ROCK_SLIDE: + loadspritegfx 0x274A + monbg ANIM_DEF_PARTNER + createsprite 0x85972D8, 0x2, 7, 1, 11, 1 + createsprite 0x8596B04, 0x82, -5, 1, -5, 1 + playsewithpan SE_W088, +63 + delay 0x2 + createsprite 0x8596B04, 0x82, 5, 0, 6, 1 + playsewithpan SE_W088, +63 + delay 0x2 + createsprite 0x8596B04, 0x82, 19, 1, 10, 1 + playsewithpan SE_W088, +63 + delay 0x2 + createsprite 0x8596B04, 0x82, -23, 2, -10, 1 + playsewithpan SE_W088, +63 + createvisualtask sub_80D51AC, 0x2, 1, 0, 5, 50, 1 + createvisualtask sub_80D51AC, 0x2, 3, 0, 5, 50, 1 + delay 0x2 + call AnimScript_82CC083 + call AnimScript_82CC083 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +AnimScript_82CC083: + createsprite 0x8596B04, 0x82, -20, 0, -10, 1 + playsewithpan SE_W088, +63 + delay 0x2 + createsprite 0x8596B04, 0x82, 28, 1, 10, 1 + playsewithpan SE_W088, +63 + delay 0x2 + createsprite 0x8596B04, 0x82, -10, 1, -5, 1 + playsewithpan SE_W088, +63 + delay 0x2 + createsprite 0x8596B04, 0x82, 10, 0, 6, 1 + playsewithpan SE_W088, +63 + delay 0x2 + createsprite 0x8596B04, 0x82, 24, 1, 10, 1 + playsewithpan SE_W088, +63 + delay 0x2 + createsprite 0x8596B04, 0x82, -32, 2, -10, 1 + playsewithpan SE_W088, +63 + delay 0x2 + createsprite 0x8596B04, 0x82, -20, 0, -10, 1 + playsewithpan SE_W088, +63 + delay 0x2 + createsprite 0x8596B04, 0x82, 30, 2, 10, 1 + playsewithpan SE_W088, +63 + delay 0x2 + return + +Move_THIEF: + loadspritegfx 0x2797 + monbg ANIM_TARGET + delay 0x1 + fadetobg BG_DARK + waitbgfadein + setalpha 0x80C + createsprite 0x857FE28, 0x2, 6, 4 + delay 0x6 + playsewithpan SE_W233, +63 + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 8, 1 + waitforvisualfinish + delay 0x14 + clearmonbg ANIM_TARGET + blendoff + restorebg + waitbgfadein + end + +Move_BUBBLE_BEAM: + loadspritegfx 0x27A2 + loadspritegfx 0x27AB + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 0x80C + delay 0x1 + call AnimScript_82CC1AD + createvisualtask sub_80D5EB8, 0x5, 0, 3, 3072, 8, 1 + call AnimScript_82CC1AD + call AnimScript_82CC1AD + waitforvisualfinish + call AnimScript_82D7AE2 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +AnimScript_82CC1AD: + createsprite 0x8595068, 0x2, 18, 0, 35, 70, 0, 256, 50 + playsewithpan SE_W145, -64 + delay 0x3 + createsprite 0x8595068, 0x2, 18, 0, 20, 40, -10, 256, 50 + playsewithpan SE_W145, -64 + delay 0x3 + createsprite 0x8595068, 0x2, 18, 0, 10, -60, 0, 256, 50 + playsewithpan SE_W145, -64 + delay 0x3 + createsprite 0x8595068, 0x2, 18, 0, 15, -15, 10, 256, 50 + playsewithpan SE_W145, -64 + delay 0x3 + createsprite 0x8595068, 0x2, 18, 0, 30, 10, -10, 256, 50 + playsewithpan SE_W145, -64 + delay 0x3 + createsprite 0x8595068, 0x2, 18, 0, 25, -30, 10, 256, 50 + playsewithpan SE_W145, -64 + delay 0x3 + return + +Move_ICY_WIND: + loadspritegfx 0x279D + loadspritegfx 0x279E + monbg ANIM_DEF_PARTNER + createvisualtask sub_8116620, 0xA, 11, 4, 0, 4, 0 + fadetobg BG_ICE + waitbgfadeout + playsewithpan SE_W196, 0 + waitbgfadein + waitforvisualfinish + panse_1B SE_W016, -64, +63, +2, 0x0 + call AnimScript_82CC2A8 + delay 0x5 + call AnimScript_82CC2A8 + playsewithpan SE_W016B, +63 + delay 0x37 + call AnimScript_82D78F8 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + restorebg + waitbgfadeout + createvisualtask sub_8116620, 0xA, 11, 4, 4, 0, 0 + waitbgfadein + end + +AnimScript_82CC2A8: + createsprite 0x8595B98, 0xA8, 0, 0, 0, 0, 72, 1 + delay 0x5 + createsprite 0x8595B98, 0xA8, 0, 10, 0, 10, 72, 1 + delay 0x5 + createsprite 0x8595B98, 0xA8, 0, -10, 0, -10, 72, 1 + delay 0x5 + createsprite 0x8595B98, 0xA8, 0, 15, 0, 15, 72, 1 + delay 0x5 + createsprite 0x8595B98, 0xA8, 0, -5, 0, -5, 72, 1 + return + +Move_SMOKESCREEN: + loadspritegfx 0x2720 + loadspritegfx 0x2721 + playsewithpan SE_W104, -64 + createsprite 0x85CE050, 0x82, 20, 0, 0, 0, 35, -25 + waitforvisualfinish + createvisualtask sub_815A160, 0x2 + delay 0x2 + playsewithpan SE_W028, +63 + createsprite 0x85CE038, 0x84, 0, -12, 104, 0, 75 + createsprite 0x85CE038, 0x84, 0, -12, 72, 1, 75 + createsprite 0x85CE038, 0x84, 0, -6, 56, 1, 75 + createsprite 0x85CE038, 0x84, 0, -6, 88, 0, 75 + createsprite 0x85CE038, 0x84, 0, 0, 56, 0, 75 + createsprite 0x85CE038, 0x84, 0, 0, 88, 1, 75 + createsprite 0x85CE038, 0x84, 0, 6, 72, 0, 75 + createsprite 0x85CE038, 0x84, 0, 6, 104, 1, 75 + createsprite 0x85CE038, 0x84, 0, 12, 72, 0, 75 + createsprite 0x85CE038, 0x84, 0, 12, 56, 1, 75 + createsprite 0x85CE038, 0x84, 0, 18, 80, 0, 75 + createsprite 0x85CE038, 0x84, 0, 18, 72, 1, 75 + waitforvisualfinish + end + +Move_CONVERSION: + loadspritegfx 0x2722 + monbg ANIM_ATK_PARTNER + monbgprio_28 ANIM_ATTACKER + setalpha 0x10 + delay 0x0 + playsewithpan SE_W129, -64 + createsprite 0x8592E74, 0x2, -24, -24 + delay 0x3 + createsprite 0x8592E74, 0x2, -8, -24 + delay 0x3 + createsprite 0x8592E74, 0x2, 8, -24 + delay 0x3 + createsprite 0x8592E74, 0x2, 24, -24 + delay 0x3 + playsewithpan SE_W129, -64 + createsprite 0x8592E74, 0x2, -24, -8 + delay 0x3 + createsprite 0x8592E74, 0x2, -8, -8 + delay 0x3 + createsprite 0x8592E74, 0x2, 8, -8 + delay 0x3 + createsprite 0x8592E74, 0x2, 24, -8 + delay 0x3 + playsewithpan SE_W129, -64 + createsprite 0x8592E74, 0x2, -24, 8 + delay 0x3 + createsprite 0x8592E74, 0x2, -8, 8 + delay 0x3 + createsprite 0x8592E74, 0x2, 8, 8 + delay 0x3 + createsprite 0x8592E74, 0x2, 24, 8 + delay 0x3 + playsewithpan SE_W129, -64 + createsprite 0x8592E74, 0x2, -24, 24 + delay 0x3 + createsprite 0x8592E74, 0x2, -8, 24 + delay 0x3 + createsprite 0x8592E74, 0x2, 8, 24 + delay 0x3 + createsprite 0x8592E74, 0x2, 24, 24 + delay 0x14 + playsewithpan SE_W112, -64 + createvisualtask sub_8115D94, 0x2, 10018, 1, 1, 14335, 12, 0, 0 + delay 0x6 + createvisualtask sub_81022D4, 0x5 + waitforvisualfinish + delay 0x1 + clearmonbg ANIM_ATK_PARTNER + blendoff + end + +Move_CONVERSION_2: + loadspritegfx 0x2722 + monbg ANIM_DEF_PARTNER + monbgprio_2A ANIM_TARGET + setalpha 0x1000 + delay 0x0 + playsewithpan SE_W112, +63 + createsprite 0x8592EA4, 0x2, -24, -24, 60 + createsprite 0x8592EA4, 0x2, -8, -24, 65 + createsprite 0x8592EA4, 0x2, 8, -24, 70 + createsprite 0x8592EA4, 0x2, 24, -24, 75 + createsprite 0x8592EA4, 0x2, -24, -8, 80 + createsprite 0x8592EA4, 0x2, -8, -8, 85 + createsprite 0x8592EA4, 0x2, 8, -8, 90 + createsprite 0x8592EA4, 0x2, 24, -8, 95 + createsprite 0x8592EA4, 0x2, -24, 8, 100 + createsprite 0x8592EA4, 0x2, -8, 8, 105 + createsprite 0x8592EA4, 0x2, 8, 8, 110 + createsprite 0x8592EA4, 0x2, 24, 8, 115 + createsprite 0x8592EA4, 0x2, -24, 24, 120 + createsprite 0x8592EA4, 0x2, -8, 24, 125 + createsprite 0x8592EA4, 0x2, 8, 24, 130 + createsprite 0x8592EA4, 0x2, 24, 24, 135 + createvisualtask sub_81023E0, 0x5 + delay 0x3C + playsewithpan SE_W129, +63 + delay 0xA + playsewithpan SE_W129, +63 + delay 0xA + playsewithpan SE_W129, +63 + delay 0xA + playsewithpan SE_W129, +63 + delay 0xA + playsewithpan SE_W129, +63 + delay 0xA + playsewithpan SE_W129, +63 + delay 0xA + playsewithpan SE_W129, +63 + delay 0xA + playsewithpan SE_W129, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_ROLLING_KICK: + loadspritegfx 0x279F + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + createvisualtask sub_80D5830, 0x2, 0, 18, 6, 1, 4 + playsewithpan SE_W104, -64 + delay 0x6 + playsewithpan SE_W104, -64 + waitforvisualfinish + createsprite 0x857FE70, 0x2, 0, 20, 0, 0, 4 + createsprite 0x8595EE0, 0x2, -24, 0, 48, 10, 160, 0 + delay 0x5 + playsewithpan SE_W233B, +63 + createsprite 0x8597358, 0x2, -8, 0, 1, 2 + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 + waitforvisualfinish + createsprite 0x857FE58, 0x2, 0, 1, 8 + clearmonbg ANIM_TARGET + blendoff + end + +Move_HEADBUTT: + loadspritegfx 0x2797 + createsprite 0x8592CD8, 0x2, 0 + playsewithpan SE_W029, -64 + waitforvisualfinish + delay 0x2 + createsprite 0x8592CD8, 0x2, 1 + waitforvisualfinish + createvisualtask sub_80D5484, 0x2, 0, 2, 0, 4, 1 + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 + createsprite 0x8592CD8, 0x2, 2 + createsprite 0x85973E8, 0x83, 0, 0, 1, 1 + playsewithpan SE_W233B, +63 + waitforvisualfinish + end + +Move_HORN_ATTACK: + loadspritegfx 0x2797 + loadspritegfx 0x2724 + createsprite 0x8592CD8, 0x2, 0 + playsewithpan SE_W029, -64 + waitforvisualfinish + delay 0x2 + createsprite 0x8592CD8, 0x2, 1 + createsprite 0x8592F44, 0x84, 0, 0, 10 + waitforvisualfinish + createvisualtask sub_80D5484, 0x2, 0, 2, 0, 4, 1 + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 + createsprite 0x8592CD8, 0x2, 2 + createsprite 0x85973E8, 0x83, 0, 0, 1, 1 + playsewithpan SE_W030, +63 + waitforvisualfinish + end + +Move_FURY_ATTACK: + loadspritegfx 0x2797 + loadspritegfx 0x2724 + createvisualtask sub_80D6134, 0x2, 4, 256, 0, 2 + choosetwoturnanim AnimScript_82CC7B8, AnimScript_82CC7DE + +AnimScript_82CC7A5: + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 + waitforvisualfinish + end + +AnimScript_82CC7B8: + createsprite 0x8592F44, 0x84, 8, 8, 10 + waitforvisualfinish + createsprite 0x85973E8, 0x83, 0, 0, 1, 1 + playsewithpan SE_W030, +63 + goto AnimScript_82CC7A5 + +AnimScript_82CC7DE: + createsprite 0x8592F44, 0x84, -8, -8, 10 + waitforvisualfinish + createsprite 0x85973E8, 0x83, 0, 0, 1, 1 + playsewithpan SE_W030, +63 + goto AnimScript_82CC7A5 + +Move_HORN_DRILL: + loadspritegfx 0x2797 + loadspritegfx 0x2724 + jumpifcontest AnimScript_82CC96A + fadetobg BG_DRILL + waitbgfadeout + createvisualtask sub_8117660, 0x5, -2304, 768, 1, -1 + +AnimScript_82CC821: + waitbgfadein + setalpha 0x80C + createsprite 0x8592CD8, 0x2, 0 + playsewithpan SE_W029, -64 + waitforvisualfinish + delay 0x2 + createsprite 0x8592CD8, 0x2, 1 + createsprite 0x8592F44, 0x84, 0, 0, 12 + waitforvisualfinish + playse SE_BAN + createvisualtask sub_80D5484, 0x2, 0, 2, 0, 40, 1 + createvisualtask sub_80D5484, 0x2, 1, 10, 0, 40, 1 + createsprite 0x85973E8, 0x83, 0, 0, 1, 3 + playsewithpan SE_W030, +63 + delay 0x4 + createsprite 0x85973E8, 0x83, 0, 2, 1, 3 + playsewithpan SE_W030, +63 + delay 0x4 + createsprite 0x85973E8, 0x83, -4, 3, 1, 3 + playsewithpan SE_W030, +63 + delay 0x4 + createsprite 0x85973E8, 0x83, -8, -5, 1, 3 + playsewithpan SE_W030, +63 + delay 0x4 + createsprite 0x85973E8, 0x83, 4, -12, 1, 3 + playsewithpan SE_W030, +63 + delay 0x4 + createsprite 0x85973E8, 0x83, 16, 0, 1, 3 + playsewithpan SE_W030, +63 + delay 0x4 + createsprite 0x85973E8, 0x83, 5, 18, 1, 3 + playsewithpan SE_W030, +63 + delay 0x4 + createsprite 0x85973E8, 0x83, -17, 12, 1, 2 + playsewithpan SE_W030, +63 + delay 0x4 + createsprite 0x85973E8, 0x83, -21, -15, 1, 2 + playsewithpan SE_W030, +63 + delay 0x4 + createsprite 0x85973E8, 0x83, 8, -27, 1, 2 + playsewithpan SE_W030, +63 + delay 0x4 + createsprite 0x85973E8, 0x83, 32, 0, 1, 2 + playsewithpan SE_W030, +63 + delay 0x4 + createsprite 0x8592CD8, 0x2, 2 + waitforvisualfinish + restorebg + waitbgfadeout + setarg 0x7, 0xFFFF + waitbgfadein + end + +AnimScript_82CC96A: + fadetobg BG_DRILL_CONTESTS + waitbgfadeout + createvisualtask sub_8117660, 0x5, 2304, 768, 0, -1 + goto AnimScript_82CC821 + +Move_THRASH: + loadspritegfx 0x2797 + loadspritegfx 0x279F + createvisualtask sub_8104C38, 0x2 + createvisualtask sub_8104CA4, 0x2 + createsprite 0x8595EB0, 0x83, 1, 10, 0 + createvisualtask sub_80D5484, 0x2, 1, 4, 0, 7, 1 + playsewithpan SE_W004, +63 + delay 0x1C + createsprite 0x8595EB0, 0x83, 1, 10, 1 + createvisualtask sub_80D5484, 0x2, 1, 4, 0, 7, 1 + playsewithpan SE_W233B, +63 + delay 0x1C + createsprite 0x8595EB0, 0x83, 1, 10, 3 + createvisualtask sub_80D5484, 0x2, 1, 8, 0, 16, 1 + playsewithpan SE_W025B, +63 + end + +Move_SING: + loadspritegfx 0x2758 + monbg ANIM_DEF_PARTNER + createvisualtask sub_8102BE8, 0x2 + waitforvisualfinish + panse_1B SE_W047, -64, +63, +2, 0x0 + createsprite 0x8593008, 0x82, 7, 0, 12 + delay 0x5 + createsprite 0x8593008, 0x82, 6, 1, 12 + delay 0x5 + createsprite 0x8593008, 0x82, 1, 2, 12 + delay 0x5 + createsprite 0x8593008, 0x82, 2, 3, 12 + delay 0x5 + createsprite 0x8593008, 0x82, 3, 0, 12 + delay 0x4 + createsprite 0x8593008, 0x82, 2, 1, 12 + delay 0x4 + createsprite 0x8593008, 0x82, 5, 2, 12 + delay 0x4 + createsprite 0x8593008, 0x82, 6, 3, 12 + delay 0x4 + createsprite 0x8593008, 0x82, 2, 0, 12 + delay 0x4 + createsprite 0x8593008, 0x82, 2, 1, 12 + delay 0x4 + createsprite 0x8593008, 0x82, 1, 2, 12 + delay 0x4 + createsprite 0x8593008, 0x82, 5, 3, 12 + delay 0x4 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + createvisualtask sub_8102CA0, 0x2 + waitforvisualfinish + end + +Move_LOW_KICK: + loadspritegfx 0x279F + loadspritegfx 0x2797 + createsprite 0x857FE70, 0x2, 0, 20, 0, 0, 4 + createsprite 0x8595EE0, 0x82, -24, 28, 40, 8, 160, 0 + delay 0x4 + createsprite 0x8597358, 0x82, -8, 8, 1, 2 + createvisualtask sub_80D6134, 0x2, 6, 384, 1, 2 + playsewithpan SE_W233B, +63 + waitforvisualfinish + createsprite 0x857FE58, 0x2, 0, 1, 4 + end + +Move_EARTHQUAKE: + createvisualtask sub_81152DC, 0x5, 5, 10, 50 + createvisualtask sub_81152DC, 0x5, 4, 10, 50 + playsewithpan SE_W089, 0 + delay 0xA + createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + delay 0x10 + createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + end + +Move_FISSURE: + loadspritegfx 0x275A + createvisualtask sub_81152DC, 0x3, 5, 10, 50 + createvisualtask sub_81152DC, 0x3, 1, 10, 50 + playsewithpan SE_W089, +63 + delay 0x8 + call AnimScript_82CCBFF + delay 0xF + createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + delay 0xF + call AnimScript_82CCC50 + delay 0xF + createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + delay 0xF + call AnimScript_82CCBFF + delay 0x32 + fadetobg BG_FISSURE + waitbgfadeout + createvisualtask sub_8115628, 0x5, 1, 5, -1 + waitbgfadein + delay 0x28 + restorebg + waitbgfadeout + setarg 0x7, 0xFFFF + waitbgfadein + end + +AnimScript_82CCBFF: + createsprite 0x85971FC, 0x82, 1, 0, 12, -48, -16, 24 + createsprite 0x85971FC, 0x82, 1, 0, 16, -16, -10, 24 + createsprite 0x85971FC, 0x82, 1, 1, 14, -52, -18, 24 + createsprite 0x85971FC, 0x82, 1, 1, 12, -32, -16, 24 + playsewithpan SE_W091, +63 + return + +AnimScript_82CCC50: + createsprite 0x85971FC, 0x82, 1, 0, 12, -24, -16, 24 + createsprite 0x85971FC, 0x82, 1, 0, 16, -38, -10, 24 + createsprite 0x85971FC, 0x82, 1, 1, 14, -20, -18, 24 + createsprite 0x85971FC, 0x82, 1, 1, 12, -36, -16, 24 + playsewithpan SE_W091, +63 + return + +Move_DIG: + choosetwoturnanim AnimScript_82CCCAB, AnimScript_82CCD06 + +AnimScript_82CCCAA: + end + +AnimScript_82CCCAB: + loadspritegfx 0x275A + loadspritegfx 0x2829 + createsprite 0x8597214, 0x1, 0, 0, 180 + createsprite 0x8597214, 0x1, 0, 1, 180 + monbg_22 ANIM_ATTACKER + delay 0x1 + createvisualtask sub_8114CBC, 0x2, 0 + delay 0x6 + call AnimScript_82CCD6A + call AnimScript_82CCD6A + call AnimScript_82CCD6A + call AnimScript_82CCD6A + call AnimScript_82CCD6A + waitforvisualfinish + clearmonbg_23 ANIM_ATTACKER + delay 0x1 + createvisualtask sub_8114CBC, 0x2, 1 + goto AnimScript_82CCCAA + +AnimScript_82CCD06: + loadspritegfx 0x2797 + loadspritegfx 0x2829 + createvisualtask sub_8114F14, 0x2, 0 + waitforvisualfinish + monbg ANIM_ATTACKER + createsprite 0x8597214, 0x1, 0, 0, 48 + createsprite 0x8597214, 0x1, 0, 1, 48 + delay 0x1 + createvisualtask sub_8114F14, 0x2, 1 + delay 0x10 + createsprite 0x8597358, 0x2, -8, 0, 1, 2 + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 + playsewithpan SE_W025B, -64 + clearmonbg ANIM_ATTACKER + goto AnimScript_82CCCAA + +AnimScript_82CCD6A: + createsprite 0x85971FC, 0x2, 0, 0, 12, 4, -16, 18 + createsprite 0x85971FC, 0x2, 0, 0, 16, 4, -10, 18 + createsprite 0x85971FC, 0x2, 0, 1, 14, 4, -18, 18 + createsprite 0x85971FC, 0x2, 0, 1, 12, 4, -16, 18 + playsewithpan SE_W091, -64 + delay 0x20 + return + +Move_MEDITATE: + call AnimScript_82D7CD1 + createvisualtask sub_810F7D4, 0x2 + playsewithpan SE_W029, -64 + delay 0x10 + playsewithpan SE_W036, -64 + waitforvisualfinish + call AnimScript_82D7CDD + end + +Move_AGILITY: + monbg ANIM_ATK_PARTNER + setalpha 0x80C + createvisualtask sub_80D5830, 0x2, 0, 24, 6, 4, 4 + createvisualtask sub_81169C0, 0x2, 0, 4, 7, 10 + playsewithpan SE_W104, -64 + delay 0xC + playsewithpan SE_W104, -64 + delay 0xC + playsewithpan SE_W104, -64 + delay 0xC + playsewithpan SE_W104, -64 + delay 0xC + playsewithpan SE_W104, -64 + delay 0xC + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + delay 0x1 + end + +Move_QUICK_ATTACK: + loadspritegfx 0x2797 + monbg ANIM_ATK_PARTNER + setalpha 0x80C + createvisualtask sub_80D5830, 0x2, 0, 24, 6, 1, 5 + createvisualtask sub_81169C0, 0x2, 0, 4, 7, 3 + playsewithpan SE_W026, -64 + delay 0x4 + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 + createsprite 0x8597358, 0x84, 0, 0, 1, 1 + playsewithpan SE_W233B, +63 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + waitforvisualfinish + end + +Move_RAGE: + loadspritegfx 0x2797 + loadspritegfx 0x2767 + monbg ANIM_TARGET + setalpha 0x80C + createvisualtask sub_80A7B98, 0x3, 0, 31, 10, 0, 2 + createsprite 0x859368C, 0x2, 0, -20, -28 + playsewithpan SE_W207B, -64 + delay 0x14 + createsprite 0x859368C, 0x2, 0, 20, -28 + playsewithpan SE_W207B, -64 + waitforvisualfinish + createsprite 0x857FE28, 0x2, 4, 6 + delay 0x4 + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_80D6388, 0x2, 1, 1, 10, 1, 0 + playsewithpan SE_W233B, +63 + waitforvisualfinish + clearmonbg ANIM_TARGET + end + +Move_TELEPORT: + call AnimScript_82D7CD1 + createvisualtask sub_810F83C, 0x2 + playsewithpan SE_W100, -64 + delay 0xF + call AnimScript_82D7CDD + waitforvisualfinish + end + +Move_DOUBLE_TEAM: + createvisualtask sub_81029B4, 0x2 + setalpha 0x80C + monbg ANIM_ATK_PARTNER + playsewithpan SE_W104, -64 + delay 0x20 + playsewithpan SE_W104, -64 + delay 0x18 + playsewithpan SE_W104, -64 + delay 0x10 + playsewithpan SE_W104, -64 + delay 0x8 + playsewithpan SE_W104, -64 + delay 0x8 + playsewithpan SE_W104, -64 + delay 0x8 + playsewithpan SE_W104, -64 + delay 0x8 + playsewithpan SE_W104, -64 + delay 0x8 + playsewithpan SE_W104, -64 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + delay 0x1 + end + +Move_MINIMIZE: + setalpha 0x80A + createvisualtask sub_8104674, 0x2 + loopsewithpan SE_W107, -64, 0x22, 0x3 + waitforvisualfinish + blendoff + end + +Move_METRONOME: + loadspritegfx 0x2750 + loadspritegfx 0x27E1 + createsprite 0x8593114, 0xB, 0, 100 + playsewithpan SE_W118, -64 + delay 0x6 + createsprite 0x85931BC, 0xC, 0 + delay 0x18 + loopsewithpan SE_W039, -64, 0x16, 0x3 + waitforvisualfinish + end + +Move_SKULL_BASH: + choosetwoturnanim AnimScript_82CCF99, AnimScript_82CCFE6 + +AnimScript_82CCF98: + end + +AnimScript_82CCF99: + call AnimScript_82CCFA9 + call AnimScript_82CCFA9 + waitforvisualfinish + goto AnimScript_82CCF98 + +AnimScript_82CCFA9: + createsprite 0x857FE88, 0x2, 0, -24, 0, 0, 10, 0 + playsewithpan SE_W036, -64 + waitforvisualfinish + createvisualtask sub_80D6134, 0x2, 16, 96, 0, 2 + waitforvisualfinish + createsprite 0x857FE88, 0x2, 0, 24, 0, 0, 10, 1 + waitforvisualfinish + return + +AnimScript_82CCFE6: + loadspritegfx 0x2797 + createvisualtask sub_8101C94, 0x2, 0 + playsewithpan SE_W036, -64 + waitforvisualfinish + playse SE_BAN + createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + createvisualtask sub_80D5484, 0x2, 0, 2, 0, 40, 1 + createvisualtask sub_80D5484, 0x2, 1, 10, 0, 40, 1 + createsprite 0x85973E8, 0x84, 0, 0, 1, 0 + loopsewithpan SE_W025B, +63, 0x8, 0x3 + waitforvisualfinish + createvisualtask sub_8101C94, 0x2, 1 + goto AnimScript_82CCF98 + +Move_AMNESIA: + loadspritegfx 0x276D + call AnimScript_82D7CD1 + delay 0x8 + createsprite 0x8596744, 0x14 + playsewithpan SE_W118, -64 + delay 0x36 + loopsewithpan SE_W118, -64, 0x10, 0x3 + waitforvisualfinish + call AnimScript_82D7CDD + end + +Move_KINESIS: + loadspritegfx 0x275B + loadspritegfx 0x2771 + playsewithpan SE_W060, -64 + call AnimScript_82D7CD1 + createsprite 0x85966DC, 0x14 + createsprite 0x8593344, 0x13, 32, -8, 0 + createsprite 0x8593344, 0x13, 32, 16, 1 + loopsewithpan SE_W109, -64, 0x15, 0x2 + delay 0x3C + playsewithpan SE_W146, -64 + delay 0x1E + loopsewithpan SE_W146, -64, 0x14, 0x2 + delay 0x46 + playsewithpan SE_W207B, -64 + waitforvisualfinish + call AnimScript_82D7CDD + end + +Move_GLARE: + loadspritegfx 0x2808 + loadspritegfx 0x27EA + createvisualtask sub_815E114, 0x5, 0 + playsewithpan SE_W060B, -64 + waitforvisualfinish + createvisualtask sub_8116620, 0x5, 1, 0, 0, 16, 0 + waitforvisualfinish + createsprite 0x8593A84, 0x0, -16, -8 + createsprite 0x8593A84, 0x0, 16, -8 + createvisualtask sub_81064F8, 0x5 + playsewithpan SE_W043, -64 + delay 0x2 + createvisualtask sub_810A094, 0x3, 20, 1, 0 + waitforvisualfinish + createvisualtask sub_8116620, 0x5, 1, 0, 16, 0, 0 + end + +Move_BARRAGE: + loadspritegfx 0x280E + createvisualtask sub_815E47C, 0x3 + playsewithpan SE_W207, -64 + delay 0x18 + createsprite 0x85972D8, 0x2, 8, 1, 40, 1 + createvisualtask sub_80D51AC, 0x3, 1, 0, 4, 20, 1 + createvisualtask sub_80D51AC, 0x3, 3, 0, 4, 20, 1 + loopsewithpan SE_W070, +63, 0x8, 0x2 + end + +Move_SKY_ATTACK: + choosetwoturnanim AnimScript_82CD185, AnimScript_82CD28E + +AnimScript_82CD184: + end + +AnimScript_82CD185: + monbg ANIM_DEF_PARTNER + setalpha 0xB0C + createvisualtask sub_81177AC, 0x5, 7 + jumpargeq 0x7, 0x0, AnimScript_82CD1A0 + goto AnimScript_82CD217 + +AnimScript_82CD1A0: + createvisualtask sub_8116620, 0xA, 27, 1, 0, 12, 0 + waitforvisualfinish + delay 0xC + createvisualtask sub_8116620, 0xA, 2, 1, 8, 0, 0 + createvisualtask sub_81152DC, 0x5, 0, 2, 16 + loopsewithpan SE_W287, -64, 0x4, 0x8 + createvisualtask sub_8116620, 0xA, 2, 1, 0, 15, 0x7FFF + delay 0x14 + createvisualtask sub_8116620, 0xA, 2, 1, 15, 0, 0x7FFF + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 25, 1, 8, 0, 0 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + goto AnimScript_82CD184 + +AnimScript_82CD217: + createvisualtask sub_8116664, 0xA, 1, 1, 0, 12, 0 + waitforvisualfinish + delay 0xC + createvisualtask sub_8116620, 0xA, 2, 1, 8, 0, 0 + createvisualtask sub_81152DC, 0x5, 0, 2, 16 + playsewithpan SE_W287, -64 + delay 0x8 + createvisualtask sub_8116620, 0xA, 2, 1, 0, 15, 0x7FFF + delay 0x14 + createvisualtask sub_8116620, 0xA, 2, 1, 15, 0, 0x7FFF + waitforvisualfinish + createvisualtask sub_8116664, 0xA, 4, 1, 8, 0, 0 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + goto AnimScript_82CD184 + +AnimScript_82CD28E: + loadspritegfx 0x2797 + loadspritegfx 0x282C + call AnimScript_82D7CE5 + monbg ANIM_ATTACKER + createvisualtask sub_8116620, 0xA, 2, 0, 0, 16, 0x7FFF + delay 0x4 + createvisualtask sub_81136E8, 0x5, 0 + waitforvisualfinish + createvisualtask sub_8159244, 0x5, 238, -64 + createsprite 0x8596514, 0x82 + delay 0xE + createvisualtask sub_80D52D0, 0x2, 1, 10, 0, 18, 1 + createvisualtask sub_8159210, 0x5, 141, 63 + delay 0x14 + createvisualtask sub_81137E4, 0x5, 1 + delay 0x2 + createvisualtask sub_8116620, 0xA, 2, 0, 15, 0, 0x7FFF + waitforvisualfinish + clearmonbg ANIM_ATTACKER + call AnimScript_82D7D15 + goto AnimScript_82CD184 + +Move_FLASH: + playsewithpan SE_W043, -64 + createvisualtask sub_8117494, 0x2 + waitforvisualfinish + end + +Move_SPLASH: + createvisualtask sub_8104938, 0x2, 0, 3 + delay 0x8 + loopsewithpan SE_W039, -64, 0x26, 0x3 + waitforvisualfinish + end + +Move_ACID_ARMOR: + monbg ANIM_ATTACKER + setalpha 0xF + createvisualtask sub_815D240, 0x2, 0 + playsewithpan SE_W151, -64 + waitforvisualfinish + blendoff + clearmonbg ANIM_ATTACKER + delay 0x1 + end + +Move_SHARPEN: + loadspritegfx 0x27C9 + createsprite 0x8592DE4, 0x2 + waitforvisualfinish + end + +Move_SUPER_FANG: + loadspritegfx 0x27D0 + createvisualtask sub_80D5484, 0x2, 0, 1, 0, 20, 1 + playsewithpan SE_W082, -64 + waitforvisualfinish + createvisualtask sub_80D5484, 0x2, 0, 3, 0, 48, 1 + createvisualtask sub_80A7B98, 0x2, 0, 1247, 12, 4, 1 + waitforvisualfinish + delay 0x14 + createsprite 0x857FE28, 0x2, 4, 4 + delay 0x4 + createsprite 0x8592F74, 0x82 + playsewithpan SE_W044, +63 + delay 0x8 + createsprite 0x859728C, 0x2, 1, 3, 1, 2143, 14, 0x7FFF, 14 + createvisualtask sub_80D51AC, 0x2, 1, 0, 7, 12, 1 + waitforvisualfinish + blendoff + end + +Move_SLASH: + loadspritegfx 0x27C7 + createsprite 0x8592D2C, 0x82, 1, -8, 0 + playsewithpan SE_W013, +63 + delay 0x4 + createsprite 0x8592D2C, 0x82, 1, 8, 0 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 18, 1 + playsewithpan SE_W013, +63 + waitforvisualfinish + end + +Move_STRUGGLE: + loadspritegfx 0x2797 + loadspritegfx 0x27E7 + monbg ANIM_TARGET + setalpha 0x80C + createvisualtask sub_80D5484, 0x2, 0, 3, 0, 12, 4 + createsprite 0x8593B80, 0x2, 0, 0, 2 + createsprite 0x8593B80, 0x2, 0, 1, 2 + loopsewithpan SE_W029, -64, 0xC, 0x4 + waitforvisualfinish + createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createvisualtask sub_80D5484, 0x2, 1, 3, 0, 6, 1 + playsewithpan SE_W025B, +63 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_SKETCH: + loadspritegfx 0x2712 + monbg ANIM_TARGET + createvisualtask sub_8104E74, 0x2 + createsprite 0x85936D4, 0x82 + waitforvisualfinish + clearmonbg ANIM_TARGET + createvisualtask sub_8104938, 0x2, 0, 2 + loopsewithpan SE_W039, -64, 0x26, 0x2 + end + +Move_NIGHTMARE: + fadetobg BG_GHOST + waitbgfadein + jumpifcontest AnimScript_82CD4CF + monbg ANIM_DEF_PARTNER + createvisualtask sub_8111C50, 0x2 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 40, 1 + playsewithpan SE_W171, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + restorebg + waitbgfadein + end + +AnimScript_82CD4CF: + createvisualtask sub_80A7B98, 0x2, 0, 0x7FFF, 10, 2, 1 + createvisualtask sub_80D51AC, 0x2, 0, 3, 0, 32, 1 + playsewithpan SE_W171, +63 + waitforvisualfinish + restorebg + waitbgfadein + end + +Move_FLAIL: + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + createvisualtask sub_815C770, 0x2, 0 + loopsewithpan SE_W029, -64, 0x8, 0x2 + waitforvisualfinish + createsprite 0x85973A0, 0x83, 1, 3 + createvisualtask sub_80D6388, 0x2, 0, 1, 30, 1, 0 + playsewithpan SE_W025B, +63 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_SPITE: + fadetobg BG_GHOST + playsewithpan SE_W060, -64 + waitbgfadein + monbg ANIM_DEF_PARTNER + createvisualtask sub_8115A04, 0x2, 2, 2, 6, 0, 8, 0x7FFF + createvisualtask sub_8111E50, 0x2 + loopsewithpan SE_W060, +63, 0x14, 0x3 + waitforvisualfinish + restorebg + waitbgfadein + clearmonbg ANIM_TARGET + end + +Move_MACH_PUNCH: + loadspritegfx 0x2797 + loadspritegfx 0x279F + monbg ANIM_ATK_PARTNER + createvisualtask sub_8117754, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82CD5E6 + fadetobg BG_HIGHSPEED_OPPONENT + +AnimScript_82CD57E: + waitbgfadeout + createvisualtask sub_8117660, 0x5, -2304, 0, 1, -1 + waitbgfadein + delay 0x0 + setalpha 0x809 + createvisualtask sub_80A8BC4, 0x2, 28968, 10 + playsewithpan SE_W026, -64 + delay 0x6 + createsprite 0x8597358, 0x83, 0, 0, 1, 1 + createsprite 0x8595E98, 0x84, 0, 0, 8, 1, 0 + playsewithpan SE_W004, +63 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + restorebg + waitbgfadeout + setarg 0x7, 0xFFFF + waitbgfadein + end + +AnimScript_82CD5E6: + fadetobg BG_HIGHSPEED_PLAYER + goto AnimScript_82CD57E + +Move_FORESIGHT: + loadspritegfx 0x2812 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x10 + createsprite 0x85CE8C4, 0x82, 1 + delay 0x11 + loopsewithpan SE_W166, +63, 0x10, 0x4 + delay 0x30 + delay 0x18 + playsewithpan SE_W166, +63 + delay 0xA + createvisualtask sub_80A7B98, 0x5, 1, 0x7FFF, 12, 2, 1 + playsewithpan SE_W197, +63 + waitforvisualfinish + blendoff + clearmonbg ANIM_DEF_PARTNER + end + +Move_DESTINY_BOND: + loadspritegfx 0x27CC + fadetobg BG_GHOST + playsewithpan SE_W060, -64 + waitbgfadein + createvisualtask sub_81123C4, 0x5, 0, 48 + playsewithpan SE_W109, -64 + delay 0x30 + createvisualtask sub_80D5484, 0x2, 0, 2, 0, 24, 1 + createvisualtask sub_8116664, 0x2, 6, 1, 0, 12, 30653 + delay 0x18 + createvisualtask sub_8116664, 0x2, 6, 1, 12, 0, 30653 + playsewithpan SE_W171, +63 + waitforvisualfinish + restorebg + waitbgfadein + blendoff + clearmonbg 5 + end + +Move_ENDURE: + loadspritegfx 0x27C8 + playsewithpan SE_W082, -64 + call AnimScript_82CD6C7 + delay 0x8 + createvisualtask sub_8115A04, 0x2, 2, 2, 2, 0, 11, 31 + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 32, 1 + call AnimScript_82CD6C7 + delay 0x8 + call AnimScript_82CD6C7 + waitforvisualfinish + end + +AnimScript_82CD6C7: + createsprite 0x8592D8C, 0x2, 0, -24, 26, 2 + delay 0x4 + createsprite 0x8592D8C, 0x2, 0, 14, 28, 1 + delay 0x4 + createsprite 0x8592D8C, 0x2, 0, -5, 10, 2 + delay 0x4 + createsprite 0x8592D8C, 0x2, 0, 28, 26, 3 + delay 0x4 + createsprite 0x8592D8C, 0x2, 0, -12, 0, 1 + return + +Move_CHARM: + loadspritegfx 0x27E2 + createvisualtask sub_815C478, 0x5, 0, 2, 0 + createsprite 0x8593970, 0x3, 0, 20 + playsewithpan SE_W204, -64 + delay 0xF + createsprite 0x8593970, 0x3, -20, 20 + playsewithpan SE_W204, -64 + delay 0xF + createsprite 0x8593970, 0x3, 20, 20 + playsewithpan SE_W204, -64 + waitforvisualfinish + end + +Move_ROLLOUT: + loadspritegfx 0x2797 + loadspritegfx 0x275A + loadspritegfx 0x274A + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + createvisualtask sub_8110F74, 0x2 + waitforvisualfinish + createvisualtask sub_80D6388, 0x2, 0, 1, 30, 1, 0 + createsprite 0x8597358, 0x4, 0, 0, 1, 2 + playsewithpan SE_W025B, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_FALSE_SWIPE: + loadspritegfx 0x282E + loadspritegfx 0x2797 + createsprite 0x8592D44, 0x82 + playsewithpan SE_W233, +63 + delay 0x10 + createsprite 0x8592D5C, 0x82, 0 + playsewithpan SE_W104, +63 + delay 0x2 + createsprite 0x8592D5C, 0x82, 16 + delay 0x2 + createsprite 0x8592D5C, 0x82, 32 + playsewithpan SE_W104, +63 + delay 0x2 + createsprite 0x8592D5C, 0x82, 48 + delay 0x2 + createsprite 0x8592D5C, 0x82, 64 + playsewithpan SE_W104, +63 + delay 0x2 + createsprite 0x8592D5C, 0x82, 80 + delay 0x2 + waitforvisualfinish + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 + createsprite 0x8597358, 0x84, 0, 0, 1, 3 + playsewithpan SE_W004, +63 + end + +Move_SWAGGER: + loadspritegfx 0x2766 + loadspritegfx 0x2767 + createvisualtask sub_8104AB4, 0x2 + playsewithpan SE_W207, -64 + waitforvisualfinish + createsprite 0x8593658, 0x2 + loopsewithpan SE_W207, -64, 0x4, 0x2 + waitforvisualfinish + delay 0x18 + createsprite 0x859368C, 0x82, 1, -20, -28 + playsewithpan SE_W207B, +63 + delay 0xC + createsprite 0x859368C, 0x82, 1, 20, -28 + playsewithpan SE_W207B, +63 + waitforvisualfinish + end + +Move_MILK_DRINK: + loadspritegfx 0x2773 + loadspritegfx 0x27DB + loadspritegfx 0x272F + monbg ANIM_TARGET + createsprite 0x8592B3C, 0x2 + delay 0x28 + playsewithpan SE_W152, -64 + delay 0xC + playsewithpan SE_W152, -64 + delay 0x14 + playsewithpan SE_W152, -64 + waitforvisualfinish + createsprite 0x859381C, 0x3, 0, 0, 1, 0 + playsewithpan SE_W208, -64 + waitforvisualfinish + clearmonbg ANIM_TARGET + call AnimScript_82D7A28 + waitforvisualfinish + end + +Move_MAGNITUDE: + createvisualtask sub_8115600, 0x2 + waitforvisualfinish + jumpargeq 0xF, 0x0, AnimScript_82CD8C9 + jumpargeq 0xF, 0x1, AnimScript_82CD8EE + +AnimScript_82CD8C8: + end + +AnimScript_82CD8C9: + createvisualtask sub_81152DC, 0x5, 5, 0, 50 + createvisualtask sub_81152DC, 0x5, 4, 0, 50 + loopsewithpan SE_W070, +63, 0x8, 0xA + goto AnimScript_82CD8C8 + +AnimScript_82CD8EE: + createvisualtask sub_81152DC, 0x5, 5, 0, 50 + createvisualtask sub_81152DC, 0x5, 4, 0, 50 + loopsewithpan SE_W070, +63, 0x8, 0xA + delay 0xA + createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + delay 0x10 + createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + goto AnimScript_82CD8C8 + +Move_RAPID_SPIN: + loadspritegfx 0x2797 + loadspritegfx 0x27F5 + monbg ANIM_ATTACKER + createsprite 0x85CE288, 0x2, 0, 0, 32, -32, 40, -2 + createvisualtask sub_815ADB0, 0x2, 0, 2, 0 + loopsewithpan SE_W013B, -64, 0x8, 0x4 + waitforvisualfinish + createsprite 0x8597358, 0x82, 0, 0, 1, 2 + createvisualtask sub_80D6388, 0x2, 0, 1, 10, 1, 0 + playsewithpan SE_W003, +63 + waitforvisualfinish + delay 0x8 + createvisualtask sub_815ADB0, 0x2, 0, 2, 1 + loopsewithpan SE_W013B, -64, 0x8, 0x4 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + end + +Move_MOONLIGHT: + loadspritegfx 0x27D2 + loadspritegfx 0x27D3 + loadspritegfx 0x272F + setalpha 0x1000 + createsprite 0x8597274, 0x2, 1, 1, 0, 16, 0 + waitforvisualfinish + createsprite 0x8592EBC, 0x2, 120, 56 + createvisualtask sub_80A7A74, 0x3, 0, 16, 16, 0, 1 + playsewithpan SE_W236, 0 + delay 0x1E + createsprite 0x8592EEC, 0x28, -12, 0 + delay 0x1E + createsprite 0x8592EEC, 0x28, -24, 0 + delay 0x1E + createsprite 0x8592EEC, 0x28, 21, 0 + delay 0x1E + createsprite 0x8592EEC, 0x28, 0, 0 + delay 0x1E + createsprite 0x8592EEC, 0x28, 10, 0 + delay 0x14 + createvisualtask sub_81025C0, 0x2 + waitforvisualfinish + call AnimScript_82D79DF + waitforvisualfinish + end + +Move_EXTREME_SPEED: + loadspritegfx 0x27DF + loadspritegfx 0x2797 + createvisualtask sub_8117754, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82CDAF5 + fadetobg BG_HIGHSPEED_OPPONENT + +AnimScript_82CDA55: + waitbgfadeout + createvisualtask sub_8117660, 0x5, -2304, 0, 1, -1 + waitbgfadein + createvisualtask sub_810577C, 0x2 + loopsewithpan SE_W013B, -64, 0x8, 0x3 + waitforvisualfinish + delay 0x1 + createvisualtask sub_8117F60, 0x2 + monbg ANIM_TARGET + setalpha 0x80C + delay 0x12 + createvisualtask sub_8105810, 0x2 + delay 0x2 + playsewithpan SE_W004, +63 + createsprite 0x85973B8, 0x82, 1, 0, -12, 3 + delay 0xA + playsewithpan SE_W004, +63 + createsprite 0x85973B8, 0x82, 1, 0, 12, 3 + delay 0xA + playsewithpan SE_W233B, +63 + createsprite 0x85973B8, 0x82, 1, 0, 0, 3 + waitforvisualfinish + createvisualtask sub_8105AAC, 0x2 + delay 0xA + createvisualtask sub_810599C, 0x2 + loopsewithpan SE_W104, -64, 0x8, 0x4 + waitforvisualfinish + restorebg + waitbgfadeout + setarg 0x7, 0xFFFF + waitbgfadein + clearmonbg ANIM_TARGET + blendoff + delay 0x1 + setarg 0x7, 0x1000 + delay 0x1 + end + +AnimScript_82CDAF5: + fadetobg BG_HIGHSPEED_PLAYER + goto AnimScript_82CDA55 + +Move_UPROAR: + loadspritegfx 0x27F1 + loadspritegfx 0x27DB + monbg ANIM_DEF_PARTNER + createvisualtask sub_8106D90, 0x2, 0 + createsprite 0x8593898, 0x3, 0, 0, 0, 0, 31, 8 + playsewithpan SE_W253, -64 + createsprite 0x8593BB8, 0x2, 0, 29, -12, 0 + createsprite 0x8593BB8, 0x2, 0, -12, -29, 1 + delay 0x10 + createvisualtask sub_8106D90, 0x2, 0 + createsprite 0x8593898, 0x3, 0, 0, 0, 0, 31, 8 + playsewithpan SE_W253, -64 + createsprite 0x8593BB8, 0x2, 0, 12, -29, 1 + createsprite 0x8593BB8, 0x2, 0, -29, -12, 0 + delay 0x10 + createvisualtask sub_8106D90, 0x2, 0 + createsprite 0x8593898, 0x3, 0, 0, 0, 0, 31, 8 + playsewithpan SE_W253, -64 + createsprite 0x8593BB8, 0x2, 0, 24, -24, 1 + createsprite 0x8593BB8, 0x2, 0, -24, -24, 0 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +Move_HEAT_WAVE: + loadspritegfx 0x2815 + createvisualtask sub_8116848, 0x5, 10261, 0, 6, 6, 31 + createvisualtask sub_8110BCC, 0x5, 1 + createvisualtask sub_810A060, 0x6, 6, 31 + panse_1B SE_W257, -64, +63, +2, 0x0 + delay 0x4 + createvisualtask sub_8109DBC, 0x5 + delay 0xC + createsprite 0x8596BA0, 0x28, 10, 2304, 96, 1 + delay 0xA + createsprite 0x8596BA0, 0x28, 90, 2048, 96, 1 + delay 0xA + createsprite 0x8596BA0, 0x28, 50, 2560, 96, 1 + delay 0xA + createsprite 0x8596BA0, 0x28, 20, 2304, 96, 1 + delay 0xA + createsprite 0x8596BA0, 0x28, 70, 1984, 96, 1 + delay 0xA + createsprite 0x8596BA0, 0x28, 0, 2816, 96, 1 + delay 0xA + createsprite 0x8596BA0, 0x28, 60, 2560, 96, 1 + end + +Move_HAIL: + loadspritegfx 0x2817 + loadspritegfx 0x279D + createvisualtask sub_8116620, 0xA, 1, 3, 0, 6, 0 + waitforvisualfinish + createvisualtask sub_810C918, 0x5 + loopsewithpan SE_W258, 0, 0x8, 0xA + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 1, 3, 6, 0, 0 + end + +Move_TORMENT: + loadspritegfx 0x2767 + loadspritegfx 0x27E1 + createvisualtask sub_815AFF0, 0x2 + waitforvisualfinish + createvisualtask sub_80A7B98, 0x2, 1, 31, 10, 1, 1 + createsprite 0x859368C, 0x82, 1, -20, -28 + playsewithpan SE_W207B, +63 + delay 0x14 + createsprite 0x859368C, 0x82, 1, 20, -28 + playsewithpan SE_W207B, +63 + end + +Move_MEMENTO: + setalpha 0x1000 + delay 0x1 + createvisualtask sub_81143C0, 0x2 + delay 0x1 + createvisualtask sub_8113BAC, 0x5 + playsewithpan SE_W060, -64 + delay 0x30 + playsewithpan SE_W060B, -64 + waitforvisualfinish + createvisualtask sub_8114470, 0x2 + delay 0xC + setalpha 0x1000 + delay 0x1 + monbg_22 ANIM_TARGET + createvisualtask sub_8113E78, 0x5 + playsewithpan SE_W060, +63 + waitforvisualfinish + clearmonbg_23 ANIM_TARGET + delay 0x1 + blendoff + delay 0x1 + end + +Move_FACADE: + loadspritegfx 0x2803 + createvisualtask sub_815DCA4, 0x2, 0, 3 + createvisualtask sub_815DF0C, 0x2, 0, 72 + loopsewithpan SE_W207, -64, 0x18, 0x3 + end + +Move_SMELLING_SALT: + loadspritegfx 0x2807 + loadspritegfx 0x280F + createsprite 0x85CE864, 0x82, 1, 0, 2 + createsprite 0x85CE864, 0x82, 1, 1, 2 + delay 0x20 + createvisualtask sub_815E840, 0x3, 1, 2 + loopsewithpan SE_W003, +63, 0xC, 0x2 + waitforvisualfinish + delay 0x4 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 6, 2 + createsprite 0x85CE894, 0x82, 1, 8, 3 + loopsewithpan SE_W207B, +63, 0x10, 0x3 + end + +Move_FOLLOW_ME: + loadspritegfx 0x2750 + createsprite 0x85931D4, 0x2, 0 + playsewithpan SE_W039, -64 + delay 0x12 + playsewithpan SE_W213, -64 + delay 0x47 + loopsewithpan SE_W039, -64, 0x16, 0x3 + end + +Move_CHARGE: + loadspritegfx 0x27E3 + loadspritegfx 0x27E4 + loadspritegfx 0x27E5 + monbg ANIM_ATTACKER + setalpha 0x80C + createsprite 0x8597274, 0x2, 1, 2, 0, 4, 0 + waitforvisualfinish + createvisualtask sub_810AAFC, 0x2, 0, 60, 2, 12 + playsewithpan SE_W268, -64 + delay 0x1E + playsewithpan SE_W268, -64 + delay 0x1E + playsewithpan SE_W268, -64 + createsprite 0x859595C, 0x2, 0 + delay 0x19 + playsewithpan SE_W268, -64 + delay 0x14 + playsewithpan SE_W268, -64 + delay 0xF + playsewithpan SE_W268, -64 + delay 0xA + delay 0x6 + loopsewithpan SE_W268, -64, 0x6, 0x5 + waitforvisualfinish + createsprite 0x859598C, 0x2, 0, 16, 16 + delay 0x2 + createsprite 0x859598C, 0x2, 0, -16, -16 + playsewithpan SE_W085B, -64 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 4, 4, 0, 0 + clearmonbg ANIM_ATTACKER + blendoff + end + +Move_TAUNT: + loadspritegfx 0x27E6 + loadspritegfx 0x27E1 + loadspritegfx 0x2767 + createsprite 0x8593114, 0xB, 0, 45 + playsewithpan SE_W118, -64 + delay 0x6 + createsprite 0x859324C, 0xC, 0 + delay 0x4 + loopsewithpan SE_W039, -64, 0x10, 0x2 + waitforvisualfinish + delay 0x8 + createsprite 0x859368C, 0x82, 1, -20, -28 + playsewithpan SE_W207B, +63 + waitforvisualfinish + delay 0xC + createsprite 0x859368C, 0x82, 1, 20, -28 + playsewithpan SE_W207B, +63 + end + +Move_HELPING_HAND: + loadspritegfx 0x2807 + createvisualtask sub_815EC48, 0x5 + createsprite 0x85CE8AC, 0x28, 0 + createsprite 0x85CE8AC, 0x28, 1 + delay 0x13 + playsewithpan SE_W227, 0 + createvisualtask sub_80D52D0, 0x2, 2, 2, 0, 5, 1 + delay 0xE + playsewithpan SE_W227, 0 + createvisualtask sub_80D52D0, 0x2, 2, 2, 0, 5, 1 + delay 0x14 + playsewithpan SE_W227, 0 + createvisualtask sub_80D52D0, 0x2, 2, 3, 0, 10, 1 + createvisualtask sub_80A7B98, 0x2, 2, 1023, 12, 1, 1 + end + +Move_ASSIST: + loadspritegfx 0x280C + createsprite 0x85CE804, 0x32, 112, -16, 140, 128, 36 + delay 0x2 + createsprite 0x85CE804, 0x32, 208, 128, -16, 48, 36 + playsewithpan SE_W010, 0 + delay 0x2 + createsprite 0x85CE804, 0x32, -16, 112, 256, -16, 36 + playsewithpan SE_W010, 0 + delay 0x2 + createsprite 0x85CE804, 0x32, 108, 128, 84, -16, 36 + playsewithpan SE_W010, 0 + delay 0x2 + createsprite 0x85CE804, 0x32, -16, 56, 256, 56, 36 + playsewithpan SE_W010, 0 + end + +Move_SUPERPOWER: + loadspritegfx 0x27E4 + loadspritegfx 0x2810 + loadspritegfx 0x2811 + monbg ANIM_ATK_PARTNER + monbgprio_28 ANIM_ATTACKER + setalpha 0x80C + createsprite 0x8595FEC, 0x82, 0 + playsewithpan SE_W025, -64 + delay 0x14 + createsprite 0x85972D8, 0x2, 4, 1, 180, 1 + createvisualtask sub_8159244, 0x5, 234, 0 + delay 0x28 + createsprite 0x8596004, 0x29, 200, 96, 1, 120 + delay 0x8 + createsprite 0x8596004, 0x29, 20, 248, 4, 112 + delay 0x8 + createsprite 0x8596004, 0x29, 130, 160, 2, 104 + delay 0x8 + createsprite 0x8596004, 0x29, 160, 192, 0, 96 + delay 0x8 + createsprite 0x8596004, 0x29, 60, 288, 3, 88 + delay 0x4A + createsprite 0x859601C, 0x83, 0 + playsewithpan SE_W207, -64 + delay 0x10 + createvisualtask sub_80D52D0, 0x2, 1, 8, 0, 16, 1 + playsewithpan SE_W025B, +63 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + delay 0x1 + end + +Move_RECYCLE: + loadspritegfx 0x2826 + monbg ANIM_ATTACKER + setalpha 0x1000 + delay 0x1 + createsprite 0x85CE9B0, 0x2 + loopsewithpan SE_W036, -64, 0x18, 0x3 + waitforvisualfinish + createvisualtask sub_80A7B98, 0x5, 0, 0x7FFF, 12, 2, 1 + playsewithpan SE_W036, -64 + waitforvisualfinish + blendoff + clearmonbg ANIM_ATTACKER + delay 0x1 + end + +Move_BRICK_BREAK: + loadspritegfx 0x27B7 + loadspritegfx 0x2797 + loadspritegfx 0x279F + loadspritegfx 0x27E0 + choosetwoturnanim AnimScript_82CE0A7, AnimScript_82CE154 + +AnimScript_82CE0A7: + monbg ANIM_TARGET + setalpha 0x80C + createsprite 0x857FE28, 0x2, 3, 8 + delay 0x4 + delay 0x1 + createsprite 0x8597358, 0x3, -18, -18, 1, 1 + playsewithpan SE_W233, +63 + delay 0x14 + createsprite 0x857FE28, 0x2, 3, 8 + delay 0x5 + createsprite 0x8597358, 0x3, 18, 18, 1, 1 + playsewithpan SE_W233, +63 + delay 0x14 + createvisualtask sub_80D5C50, 0x2, 0, -24, 0, 24, 10, 24, 3 + createsprite 0x8597274, 0x2, 1, 2, 0, 6, 0 + delay 0x25 + createsprite 0x8597358, 0x3, 0, 0, 1, 1 + createsprite 0x8595E98, 0x4, 0, 0, 10, 1, 0 + playsewithpan SE_W233B, +63 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 2, 6, 0, 0 + waitforvisualfinish + clearmonbg ANIM_TARGET + end + +AnimScript_82CE154: + monbg ANIM_TARGET + setalpha 0x80C + createsprite 0x857FE28, 0x2, 3, 8 + delay 0x4 + createsprite 0x8595F90, 0x3, 1, 0, 0, 90, 10 + delay 0x1 + createsprite 0x8597358, 0x3, -18, -18, 1, 1 + playsewithpan SE_W233, +63 + delay 0x14 + createsprite 0x857FE28, 0x2, 3, 8 + delay 0x5 + createsprite 0x8597358, 0x3, 18, 18, 1, 1 + playsewithpan SE_W233, +63 + delay 0x14 + createvisualtask sub_80D5C50, 0x2, 0, -24, 0, 24, 10, 24, 3 + createsprite 0x8597274, 0x2, 1, 2, 0, 6, 0 + delay 0x25 + createsprite 0x8597358, 0x3, 0, 0, 1, 1 + createsprite 0x8595E98, 0x4, 0, 0, 10, 1, 0 + playsewithpan SE_W233B, +63 + waitforvisualfinish + createsprite 0x8595FA8, 0x2, 1, 0, -8, -12 + createsprite 0x8595FA8, 0x2, 1, 1, 8, -12 + createsprite 0x8595FA8, 0x2, 1, 2, -8, 12 + createsprite 0x8595FA8, 0x2, 1, 3, 8, 12 + playsewithpan SE_W280, +63 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 2, 6, 0, 0 + waitforvisualfinish + clearmonbg ANIM_TARGET + end + +Move_YAWN: + loadspritegfx 0x2802 + createvisualtask sub_815D64C, 0x2, 0 + playsewithpan SE_W281, -64 + waitforvisualfinish + createsprite 0x85CE68C, 0x85, 2 + playsewithpan SE_W255, -64 + delay 0x4 + createsprite 0x85CE68C, 0x85, 1 + delay 0x4 + createsprite 0x85CE68C, 0x85, 0 + waitforvisualfinish + createvisualtask sub_815D64C, 0x2, 1 + playsewithpan SE_W281, +63 + end + +Move_ENDEAVOR: + loadspritegfx 0x2803 + loadspritegfx 0x2797 + createvisualtask sub_815DCA4, 0x2, 0, 2 + loopsewithpan SE_W039, -64, 0x18, 0x2 + createvisualtask sub_80A7B98, 0x5, 0, 703, 12, 1, 2 + delay 0x6 + createvisualtask sub_80D6388, 0x5, 0, 1, 8, 1, 0 + createsprite 0x8597358, 0x82, 12, -12, 1, 2 + playsewithpan SE_W003, +63 + delay 0x18 + createvisualtask sub_80D6388, 0x5, 0, 1, 8, 1, 0 + createsprite 0x8597358, 0x82, -12, 12, 1, 2 + playsewithpan SE_W004, +63 + end + +Move_ERUPTION: + loadspritegfx 0x27D9 + createsprite 0x8597274, 0x2, 31, 2, 0, 4, 31 + waitforvisualfinish + createvisualtask sub_8109460, 0x2 + waitplaysewithpan SE_W153, -64, 0x3C + waitforvisualfinish + createvisualtask sub_8109460, 0x2 + waitplaysewithpan SE_W153, -64, 0x3C + waitforvisualfinish + delay 0x1E + createsprite 0x85955E8, 0x28, 200, -32, 0, 100, 0 + createsprite 0x85955E8, 0x28, 30, -32, 16, 90, 1 + createsprite 0x85955E8, 0x28, 150, -32, 32, 60, 2 + createsprite 0x85955E8, 0x28, 90, -32, 48, 80, 3 + createsprite 0x85955E8, 0x28, 110, -32, 64, 50, 0 + createsprite 0x85955E8, 0x28, 60, -32, 80, 70, 1 + delay 0x16 + createvisualtask sub_81152DC, 0x5, 5, 8, 60 + createvisualtask sub_81152DC, 0x5, 4, 8, 60 + loopsewithpan SE_W088, +63, 0x10, 0xC + delay 0x50 + createsprite 0x8597274, 0x28, 31, 4, 4, 0, 31 + end + +Move_SKILL_SWAP: + loadspritegfx 0x280B + call AnimScript_82D7CD1 + createvisualtask sub_810FBF0, 0x3, 1 + createvisualtask sub_80A7B98, 0x5, 1, 0x7FFF, 12, 3, 1 + loopsewithpan SE_W179, -64, 0x18, 0x3 + delay 0x10 + createvisualtask sub_810FBF0, 0x3, 0 + createvisualtask sub_80A7B98, 0x5, 0, 0x7FFF, 12, 3, 1 + waitforvisualfinish + call AnimScript_82D7CDD + end + +Move_IMPRISON: + loadspritegfx 0x2809 + loadspritegfx 0x280A + call AnimScript_82D7CD1 + monbg ANIM_DEF_PARTNER + createvisualtask sub_810F940, 0x5 + delay 0x8 + loopsewithpan SE_W030, -64, 0x8, 0x5 + waitforvisualfinish + delay 0x4 + createsprite 0x85967AC, 0x5, 0, 40 + createvisualtask sub_81152DC, 0x5, 4, 1, 10 + playsewithpan SE_W063, -64 + clearmonbg ANIM_DEF_PARTNER + call AnimScript_82D7CDD + end + +Move_GRUDGE: + loadspritegfx 0x280D + monbg ANIM_ATTACKER + monbgprio_29 + fadetobg BG_GHOST + playsewithpan SE_W060, -64 + waitbgfadein + createvisualtask sub_8112C6C, 0x3 + loopsewithpan SE_W052, -64, 0x10, 0x4 + delay 0xA + delay 0x50 + playsewithpan SE_W171, +63 + waitforvisualfinish + restorebg + waitbgfadein + clearmonbg ANIM_ATTACKER + end + +Move_CAMOUFLAGE: + monbg ANIM_ATK_PARTNER + monbgprio_28 ANIM_ATTACKER + setalpha 0x10 + createvisualtask sub_811675C, 0x5, 2, 3, 0, 14 + delay 0x10 + createvisualtask sub_81136E8, 0x2, 4 + playsewithpan SE_W185, -64 + waitforvisualfinish + delay 0x8 + createvisualtask sub_811675C, 0x5, 2, 0, 0, 0 + waitforvisualfinish + createvisualtask sub_81137E4, 0x2, 1 + waitforvisualfinish + blendoff + clearmonbg ANIM_ATK_PARTNER + end + +Move_TAIL_GLOW: + loadspritegfx 0x27E4 + monbg ANIM_ATTACKER + setalpha 0x80C + createsprite 0x8597274, 0x2, 1, 2, 0, 4, 0 + waitforvisualfinish + createsprite 0x8596AC8, 0x42, 0 + delay 0x12 + loopsewithpan SE_W234, -64, 0x10, 0x6 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 4, 4, 0, 0 + clearmonbg ANIM_ATTACKER + blendoff + delay 0x1 + end + +Move_LUSTER_PURGE: + loadspritegfx 0x281B + loadspritegfx 0x2797 + fadetobg BG_PSYCHIC + waitbgfadeout + createvisualtask sub_815A5C8, 0x5 + waitbgfadein + monbg ANIM_ATTACKER + setalpha 0x80C + playsewithpan SE_W076, -64 + createsprite 0x8596898, 0x29, 0, 0, 0, 0 + delay 0x14 + createvisualtask sub_8116664, 0x5, 5, 2, 0, 16, -1 + createvisualtask sub_8116848, 0x5, 10267, 2, 0, 16, -1 + waitforvisualfinish + createvisualtask sub_8116848, 0x5, 10135, 0, 12, 12, 23552 + waitforvisualfinish + createsprite 0x85973A0, 0x83, 1, 2 + createvisualtask sub_8159210, 0x5, 215, 63 + delay 0x3 + createsprite 0x85973A0, 0x83, 1, 2 + createvisualtask sub_8159210, 0x5, 215, 63 + delay 0x3 + createsprite 0x85973A0, 0x83, 1, 2 + createvisualtask sub_8159210, 0x5, 215, 63 + delay 0x3 + createsprite 0x85973A0, 0x83, 1, 2 + createvisualtask sub_8159210, 0x5, 215, 63 + delay 0x3 + createsprite 0x85973A0, 0x83, 1, 2 + createvisualtask sub_8159210, 0x5, 215, 63 + delay 0x3 + createsprite 0x85973A0, 0x83, 1, 2 + createvisualtask sub_8159210, 0x5, 215, 63 + waitforvisualfinish + createvisualtask sub_8116664, 0x5, 5, 2, 16, 0, -1 + createvisualtask sub_81152DC, 0x5, 1, 5, 14 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff + call AnimScript_82D7CDD + end + +Move_MIST_BALL: + loadspritegfx 0x27AB + loadspritegfx 0x281E + delay 0x0 + playsewithpan SE_W081, -64 + createsprite 0x8595C70, 0x80, 0, 0, 0, 0, 30, 0 + waitforvisualfinish + playsewithpan SE_W028, +63 + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 10, 0 + createsprite 0x859728C, 0x0, 1, 1, 1, 32279, 16, 0x7FFF, 16 + delay 0x0 + playsewithpan SE_W114, 0 + createvisualtask sub_810C324, 0x5 + createvisualtask sub_8116620, 0xA, 4, 3, 0, 16, 0x7FFF + delay 0x8 + createvisualtask sub_80D51AC, 0x2, 1, 4, 0, 70, 0 + delay 0x46 + createvisualtask sub_8116620, 0xA, 4, 2, 16, 0, 0x7FFF + end + +Move_FEATHER_DANCE: + loadspritegfx 0x281E + monbg ANIM_DEF_PARTNER + monbgprio_29 + playsewithpan SE_W080, +63 + delay 0x0 + createsprite 0x8596388, 0x80, 0, -16, 64, 2, 104, 11304, 32, 1 + delay 0x6 + createsprite 0x8596388, 0x80, 0, -16, 32, 2, 104, 11304, 32, 1 + createsprite 0x8596388, 0x80, 0, -16, 0, 2, 104, 11304, 32, 1 + delay 0x6 + createsprite 0x8596388, 0x80, 0, -16, 224, 2, 104, 11304, 32, 1 + createsprite 0x8596388, 0x80, 0, -16, 128, 2, 104, 11304, 32, 1 + delay 0x6 + createsprite 0x8596388, 0x80, 0, -16, 192, 2, 104, 11304, 32, 1 + createsprite 0x8596388, 0x80, 0, -16, 160, 2, 104, 11304, 32, 1 + delay 0x6 + createsprite 0x8596388, 0x80, 0, -16, 96, 2, 104, 11304, 32, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +Move_TEETER_DANCE: + loadspritegfx 0x2758 + loadspritegfx 0x2759 + createvisualtask sub_8160164, 0x5 + createsprite 0x8593050, 0x2, 0, 16, -2 + playsewithpan SE_W298, -64 + delay 0x18 + createsprite 0x8593050, 0x2, 0, 0, -2 + playsewithpan SE_W298, -64 + delay 0x18 + createsprite 0x8593050, 0x2, 0, -16, -2 + playsewithpan SE_W298, -64 + delay 0x18 + createsprite 0x8593050, 0x2, 1, -8, -2 + playsewithpan SE_W298, -64 + delay 0x18 + createsprite 0x8593050, 0x2, 2, 8, -2 + playsewithpan SE_W298, -64 + end + +Move_MUD_SPORT: + loadspritegfx 0x275A + createvisualtask sub_8104938, 0x2, 0, 6 + delay 0x18 + createsprite 0x85971E4, 0x82, 0, -4, -16 + createsprite 0x85971E4, 0x82, 0, 4, -12 + playsewithpan SE_W091, -64 + delay 0x20 + createsprite 0x85971E4, 0x82, 0, -3, -12 + createsprite 0x85971E4, 0x82, 0, 5, -14 + playsewithpan SE_W091, -64 + delay 0x20 + createsprite 0x85971E4, 0x82, 0, -5, -18 + createsprite 0x85971E4, 0x82, 0, 3, -14 + playsewithpan SE_W091, -64 + delay 0x10 + createsprite 0x85971E4, 0x82, 1, 220, 60 + waitplaysewithpan SE_W145B, 0, 0xF + delay 0x2 + createsprite 0x85971E4, 0x82, 1, 60, 100 + waitplaysewithpan SE_W145B, 0, 0x19 + delay 0x2 + createsprite 0x85971E4, 0x82, 1, 140, 55 + waitplaysewithpan SE_W145B, 0, 0xE + delay 0x2 + createsprite 0x85971E4, 0x82, 1, 180, 50 + waitplaysewithpan SE_W145B, 0, 0xA + delay 0x2 + createsprite 0x85971E4, 0x82, 1, 20, 90 + waitplaysewithpan SE_W145B, 0, 0x16 + delay 0x2 + createsprite 0x85971E4, 0x82, 1, 90, 90 + waitplaysewithpan SE_W145B, 0, 0x16 + delay 0x2 + createsprite 0x85971E4, 0x82, 1, 160, 60 + waitplaysewithpan SE_W145B, 0, 0xF + delay 0x2 + createsprite 0x85971E4, 0x82, 1, 30, 90 + waitplaysewithpan SE_W145B, 0, 0x16 + delay 0x2 + createsprite 0x85971E4, 0x82, 1, 120, 60 + waitplaysewithpan SE_W145B, 0, 0xF + delay 0x2 + createsprite 0x85971E4, 0x82, 1, 200, 40 + waitplaysewithpan SE_W145B, 0, 0xA + end + +Move_NEEDLE_ARM: + loadspritegfx 0x281A + loadspritegfx 0x2797 + loadspritegfx 0x279F + loopsewithpan SE_W030, +63, 0x2, 0x10 + createsprite 0x8592888, 0x82, 1, 0, 0, -32, 16 + delay 0x2 + createsprite 0x8592888, 0x82, 1, 0, 22, -22, 16 + delay 0x2 + createsprite 0x8592888, 0x82, 1, 0, 30, 0, 16 + delay 0x2 + createsprite 0x8592888, 0x82, 1, 0, 20, 20, 16 + delay 0x2 + createsprite 0x8592888, 0x82, 1, 0, 0, 28, 16 + delay 0x2 + createsprite 0x8592888, 0x82, 1, 0, -19, 19, 16 + delay 0x2 + createsprite 0x8592888, 0x82, 1, 0, -27, 0, 16 + delay 0x2 + createsprite 0x8592888, 0x82, 1, 0, -18, -18, 16 + delay 0x2 + createsprite 0x8592888, 0x82, 1, 0, 0, -25, 16 + delay 0x2 + createsprite 0x8592888, 0x82, 1, 0, 17, -17, 16 + delay 0x2 + createsprite 0x8592888, 0x82, 1, 0, 23, 0, 16 + delay 0x2 + createsprite 0x8592888, 0x82, 1, 0, 16, 16, 16 + waitforvisualfinish + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 18, 1 + createsprite 0x8597358, 0x83, 0, 0, 1, 1 + createsprite 0x8595E98, 0x84, 0, 0, 8, 1, 0 + playsewithpan SE_W233B, +63 + createsprite 0x8592888, 0x82, 1, 1, 0, -24, 10 + createsprite 0x8592888, 0x82, 1, 1, 17, -17, 10 + createsprite 0x8592888, 0x82, 1, 1, 24, 0, 10 + createsprite 0x8592888, 0x82, 1, 1, 17, 17, 10 + createsprite 0x8592888, 0x82, 1, 1, 0, 24, 10 + createsprite 0x8592888, 0x82, 1, 1, -17, 17, 10 + createsprite 0x8592888, 0x82, 1, 1, -24, 0, 10 + createsprite 0x8592888, 0x82, 1, 1, -17, -17, 10 + end + +Move_SLACK_OFF: + loadspritegfx 0x272F + createvisualtask sub_8160544, 0x2, 0 + playsewithpan SE_W281, -64 + waitforvisualfinish + call AnimScript_82D79DF + waitforvisualfinish + end + +Move_CRUSH_CLAW: + loadspritegfx 0x27B7 + loadspritegfx 0x2737 + loadspritegfx 0x27E0 + monbg ANIM_TARGET + setalpha 0x80C + createsprite 0x857FE28, 0x2, 6, 4 + delay 0x4 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 18, 1 + createsprite 0x8597138, 0x82, -10, -10, 0 + createsprite 0x8597138, 0x82, -10, 10, 0 + playsewithpan SE_W013, +63 + delay 0xC + createsprite 0x8597138, 0x82, 10, -10, 1 + createsprite 0x8597138, 0x82, 10, 10, 1 + playsewithpan SE_W013, +63 + waitforvisualfinish + blendoff + clearmonbg ANIM_TARGET + end + +Move_AROMATHERAPY: + playsewithpan SE_W080, 0 + loadspritegfx 0x27AF + loadspritegfx 0x27DB + loadspritegfx 0x2741 + createsprite 0x8597274, 0x0, 1, 0, 0, 7, 13293 + delay 0x1 + monbg ANIM_ATTACKER + delay 0x1 + createsprite 0x85927AC, 0x0, 24, 16, 0, 2, 2, 0, 0 + createsprite 0x85927AC, 0x42, 64, 24, 0, 3, 1, 1, 0 + createsprite 0x85927C4, 0x0, 16, 24, 0, 2, 1, 0, 0 + delay 0x14 + createsprite 0x85927AC, 0x42, 48, 12, 0, 4, 3, 1, 0 + createsprite 0x85927AC, 0x0, 100, 16, 0, 3, 2, 0, 0 + createsprite 0x85927AC, 0x0, 74, 24, 180, 3, 2, 0, 0 + delay 0xA + createsprite 0x85927AC, 0x42, 80, 30, 0, 4, 1, 1, 0 + createsprite 0x85927AC, 0x0, 128, 12, 0, 3, 3, 0, 0 + createsprite 0x85927C4, 0x0, 90, 16, 0, 2, 1, 0, 0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + delay 0x1 + createsprite 0x8597274, 0x0, 1, 0, 7, 0, 13293 + delay 0x1 + playsewithpan SE_W287, -64 + createvisualtask sub_815DFCC, 0x2, 1 + waitforvisualfinish + playsewithpan SE_W234, -64 + createsprite 0x8592B94, 0x10, -15, 0, 0, 0, 32, 60, 1 + delay 0x8 + createsprite 0x8592B94, 0x10, 12, -5, 0, 0, 32, 60, 1 + waitforvisualfinish + playsewithpan SE_REAPOKE, -64 + createsprite 0x8597274, 0x0, 43, 3, 10, 0, 13293 + createsprite 0x8593868, 0x10, 0, 0, 0, 1 + waitforvisualfinish + end + +Move_FAKE_TEARS: + loadspritegfx 0x27AB + loadspritegfx 0x27E1 + loadspritegfx 0x2758 + createvisualtask sub_8116848, 0x5, 10155, 0, 4, 4, 32108 + waitforvisualfinish + createvisualtask sub_815C478, 0x5, 0, 2, 1 + loopsewithpan SE_W039, -64, 0xC, 0x4 + delay 0x8 + createsprite 0x85970E8, 0x2, 0, 0 + createsprite 0x85970E8, 0x2, 0, 1 + delay 0x8 + createsprite 0x85970E8, 0x2, 0, 2 + createsprite 0x85970E8, 0x2, 0, 3 + delay 0x8 + createsprite 0x85970E8, 0x2, 0, 0 + createsprite 0x85970E8, 0x2, 0, 1 + delay 0x8 + createsprite 0x85970E8, 0x2, 0, 2 + createsprite 0x85970E8, 0x2, 0, 3 + waitforvisualfinish + end + +Move_AIR_CUTTER: + loadspritegfx 0x2713 + loadspritegfx 0x279A + loadspritegfx 0x2797 + delay 0x0 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + delay 0x0 + createvisualtask sub_8103CF0, 0x2, 32, -24, 1536, 2, 128 + waitforvisualfinish + playsewithpan SE_W015, +63 + createsprite 0x8592A34, 0x2, 40, -32, 0, 2 + delay 0x5 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 + createvisualtask sub_80D52D0, 0x2, 3, 2, 0, 8, 1 + waitforvisualfinish + blendoff + clearmonbg ANIM_DEF_PARTNER + delay 0x0 + end + +Move_ODOR_SLEUTH: + monbg ANIM_TARGET + createvisualtask sub_815F620, 0x5 + delay 0x18 + createsprite 0x857FE28, 0x2, 3, 4 + playsewithpan SE_W207, -64 + delay 0x6 + createsprite 0x857FE28, 0x2, 3, 4 + playsewithpan SE_W207, -64 + waitforvisualfinish + clearmonbg ANIM_TARGET + delay 0x1 + createsprite 0x859728C, 0x2, 1, 3, 1, -1, 16, -1, 0 + playsewithpan SE_W043, -64 + end + +Move_GRASS_WHISTLE: + loadspritegfx 0x2758 + createsprite 0x8597274, 0x2, 1, 2, 0, 4, 13298 + waitforvisualfinish + createvisualtask sub_8102BE8, 0x2 + waitforvisualfinish + panse_1B SE_W320, -64, +63, +2, 0x0 + createsprite 0x8593008, 0x82, 7, 1, 0 + delay 0x5 + createsprite 0x8593008, 0x82, 6, 1, 0 + delay 0x5 + createsprite 0x8593008, 0x82, 1, 1, 0 + delay 0x5 + createsprite 0x8593008, 0x82, 2, 1, 0 + delay 0x5 + createsprite 0x8593008, 0x82, 3, 1, 0 + delay 0x4 + createsprite 0x8593008, 0x82, 2, 1, 0 + delay 0x4 + createsprite 0x8593008, 0x82, 5, 1, 0 + delay 0x4 + createsprite 0x8593008, 0x82, 6, 1, 0 + delay 0x4 + createsprite 0x8593008, 0x82, 2, 1, 0 + delay 0x4 + createsprite 0x8593008, 0x82, 2, 1, 0 + delay 0x4 + createsprite 0x8593008, 0x82, 1, 1, 0 + delay 0x4 + createsprite 0x8593008, 0x82, 5, 1, 0 + delay 0x4 + waitforvisualfinish + createvisualtask sub_8102CA0, 0x2 + createsprite 0x8597274, 0x2, 1, 4, 4, 0, 13298 + waitforvisualfinish + end + +Move_TICKLE: + loadspritegfx 0x27EA + createsprite 0x8597274, 0x2, 2, 0, 0, 16, 0 + waitforvisualfinish + createsprite 0x8593A84, 0x0, -16, -8 + createsprite 0x8593A84, 0x0, 16, -8 + playsewithpan SE_W197, -64 + waitforvisualfinish + createsprite 0x8597274, 0x2, 2, 0, 16, 0, 0 + waitforvisualfinish + delay 0x14 + createvisualtask sub_80D5EB8, 0x3, 0, 6, 1280, 3, 0 + delay 0xC + createvisualtask sub_815C478, 0x3, 1, 6, 2 + loopsewithpan SE_W039, +63, 0x8, 0x8 + waitforvisualfinish + end + +Move_WATER_SPOUT: + loadspritegfx 0x281C + loadspritegfx 0x27A4 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createvisualtask sub_81080E4, 0x5 + playsewithpan SE_W029, -64 + delay 0x2C + playsewithpan SE_W291, -64 + waitforvisualfinish + delay 0x10 + createvisualtask sub_81085C8, 0x5 + playsewithpan SE_W057, +63 + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_SHADOW_PUNCH: + loadspritegfx 0x2797 + loadspritegfx 0x279F + fadetobg BG_GHOST + waitbgfadein + monbg ANIM_ATK_PARTNER + setalpha 0x809 + createvisualtask sub_80A8BC4, 0x2, 0, 13 + playsewithpan SE_W026, -64 + delay 0x6 + createsprite 0x8597358, 0x83, 0, 0, 1, 1 + createsprite 0x8595E98, 0x84, 0, 0, 8, 1, 0 + playsewithpan SE_W004, +63 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + restorebg + waitbgfadein + end + +Move_EXTRASENSORY: + call AnimScript_82D7CD1 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createvisualtask sub_80A7B98, 0x5, 0, 891, 12, 1, 1 + createvisualtask sub_810FE14, 0x5, 0 + playsewithpan SE_W020, +63 + waitforvisualfinish + createvisualtask sub_80A7B98, 0x5, 0, 891, 12, 1, 1 + createvisualtask sub_810FE14, 0x5, 1 + playsewithpan SE_W020, +63 + waitforvisualfinish + createvisualtask sub_8110034, 0x5, 0 + createvisualtask sub_810FE14, 0x5, 2 + playsewithpan SE_W043, -64 + waitforvisualfinish + blendoff + clearmonbg ANIM_DEF_PARTNER + call AnimScript_82D7CDD + end + +Move_AERIAL_ACE: + loadspritegfx 0x279A + monbg ANIM_TARGET + setalpha 0x80C + createvisualtask sub_80D5830, 0x2, 0, 24, 6, 1, 5 + createvisualtask sub_81169C0, 0x2, 0, 4, 7, 3 + createsprite 0x8592A1C, 0x2, 40, -32, 0 + playsewithpan SE_W013B, -64 + delay 0x5 + createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 10, 1 + createsprite 0x859728C, 0x2, 31, 3, 1, 0, 10, 0, 0 + playsewithpan SE_W013, +63 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_IRON_DEFENSE: + loopsewithpan SE_REAPOKE, -64, 0x1C, 0x2 + createvisualtask sub_81144F8, 0x5, 0, 0, 0 + createsprite 0x859728C, 0x2, 1, 8, 2, -1, 14, -1, 0 + waitforvisualfinish + end + +Move_BLOCK: + loadspritegfx 0x280A + createsprite 0x85CE90C, 0xC2 + playsewithpan SE_W207, +63 + end + +Move_HOWL: + loadspritegfx 0x2745 + createvisualtask sub_815D64C, 0x2, 0 + delay 0xC + call AnimScript_82CFECB + createvisualtask sub_8158D8C, 0x2, 0, 3 + waitforvisualfinish + delay 0x1E + end + +Move_BULK_UP: + loadspritegfx 0x2766 + createvisualtask sub_8104AB4, 0x2 + playsewithpan SE_W207, -64 + waitforvisualfinish + createsprite 0x8593658, 0x2 + loopsewithpan SE_W207, -64, 0x4, 0x2 + waitforvisualfinish + end + +Move_COVET: + loadspritegfx 0x27E2 + loadspritegfx 0x27F0 + createvisualtask sub_815C478, 0x5, 0, 2, 0 + createsprite 0x8593970, 0x3, 0, 20 + playsewithpan SE_W204, -64 + delay 0xF + createsprite 0x8593970, 0x3, -20, 20 + playsewithpan SE_W204, -64 + delay 0xF + createsprite 0x8593970, 0x3, 20, 20 + playsewithpan SE_W204, -64 + waitforvisualfinish + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 + loopsewithpan SE_W146, +63, 0x4, 0x3 + end + +Move_VOLT_TACKLE: + loadspritegfx 0x2711 + loadspritegfx 0x27E4 + loadspritegfx 0x27E5 + monbg ANIM_ATTACKER + setalpha 0x80C + createvisualtask sub_8116620, 0xA, 1, 0, 0, 8, 0 + waitforvisualfinish + createsprite 0x85959A4, 0x1 + playsewithpan SE_W268, -64 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff + delay 0x8 + createvisualtask sub_810AFCC, 0x5, 0 + playsewithpan SE_W085, -64 + waitforvisualfinish + createvisualtask sub_810AFCC, 0x5, 1 + playsewithpan SE_W085, +63 + waitforvisualfinish + createvisualtask sub_810AFCC, 0x5, 2 + playsewithpan SE_W085, -64 + waitforvisualfinish + createvisualtask sub_810AFCC, 0x5, 3 + playsewithpan SE_W085, +63 + waitforvisualfinish + createvisualtask sub_810AFCC, 0x5, 4 + playsewithpan SE_W085, -64 + delay 0x8 + createvisualtask sub_80D52D0, 0x2, 1, 10, 0, 18, 1 + playsewithpan SE_W120, +63 + createsprite 0x859598C, 0x2, 1, 16, 16 + delay 0x2 + createsprite 0x859598C, 0x2, 1, -16, -16 + delay 0x8 + createvisualtask sub_810AE5C, 0x5 + waitforvisualfinish + createvisualtask sub_80D52D0, 0x2, 0, 3, 0, 9, 1 + playsewithpan SE_W085B, -64 + createsprite 0x859598C, 0x2, 0, 16, 16 + delay 0x2 + createsprite 0x859598C, 0x2, 0, -16, -16 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 1, 0, 8, 0, 0 + waitforvisualfinish + end + +Move_WATER_SPORT: + loadspritegfx 0x281C + createvisualtask sub_81088E4, 0x5 + delay 0x8 + playsewithpan SE_W057, -64 + delay 0x2C + playsewithpan SE_W057, -64 + delay 0x2C + playsewithpan SE_W057, -64 + delay 0x2C + panse_1B SE_W057, -64, +63, +2, 0x0 + end + +Move_CALM_MIND: + loadspritegfx 0x27DB + monbg ANIM_ATK_PARTNER + createvisualtask sub_8116664, 0x5, 0, 0, 0, 16, 0 + waitforvisualfinish + createvisualtask sub_81177E4, 0x5, 1 + waitforvisualfinish + createsprite 0x8593850, 0x28, 0, 0, 0, 0 + playsewithpan SE_W048, -64 + delay 0xE + createsprite 0x8593850, 0x28, 0, 0, 0, 0 + playsewithpan SE_W048, -64 + delay 0xE + createsprite 0x8593850, 0x28, 0, 0, 0, 0 + playsewithpan SE_W048, -64 + waitforvisualfinish + createvisualtask sub_81177E4, 0x5, 0 + waitforvisualfinish + createvisualtask sub_8116664, 0x5, 0, 0, 16, 0, 0 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + end + +Move_LEAF_BLADE: + loadspritegfx 0x274F + loadspritegfx 0x282D + createvisualtask sub_80FFFC0, 0x5 + delay 0x2 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 + playsewithpan SE_W015, +63 + delay 0x32 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 + playsewithpan SE_W015, +63 + delay 0x32 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 + playsewithpan SE_W015, +63 + waitforvisualfinish + monbg ANIM_TARGET + setalpha 0x80C + delay 0xC + createvisualtask sub_80D52D0, 0x2, 1, 8, 0, 18, 1 + createsprite 0x85973D0, 0x82, 0, 0, 1, 36 + playsewithpan SE_W043, +63 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_DRAGON_DANCE: + loadspritegfx 0x2809 + monbg ANIM_ATTACKER + monbgprio_28 ANIM_ATTACKER + delay 0x1 + createvisualtask sub_81133E8, 0x5 + playsewithpan SE_W100, -64 + delay 0x8 + createvisualtask sub_80A7CB4, 0x5, 10249, 19456, 14, 0, 3 + createsprite 0x8596F98, 0x2, 0 + createsprite 0x8596F98, 0x2, 43 + createsprite 0x8596F98, 0x2, 85 + createsprite 0x8596F98, 0x2, 128 + createsprite 0x8596F98, 0x2, 170 + createsprite 0x8596F98, 0x2, 213 + delay 0x1E + playsewithpan SE_W100, -64 + delay 0x1E + playsewithpan SE_W100, -64 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + delay 0x1 + end + +Move_SHOCK_WAVE: + loadspritegfx 0x27E3 + loadspritegfx 0x27E4 + loadspritegfx 0x2711 + loadspritegfx 0x2735 + monbg ANIM_ATTACKER + setalpha 0x80C + createsprite 0x8597274, 0x2, 1, 2, 0, 4, 0 + waitforvisualfinish + createvisualtask sub_810AAFC, 0x2, 0, 20, 0, 2 + playsewithpan SE_W268, -64 + delay 0xC + createsprite 0x8595A18, 0x2 + delay 0x1E + createvisualtask sub_810B29C, 0x5 + delay 0xC + waitforvisualfinish + createvisualtask sub_810B55C, 0x5 + playsewithpan SE_W161B, +63 + waitforvisualfinish + createvisualtask sub_80D51AC, 0x2, 1, 0, 6, 18, 1 + createvisualtask sub_8116620, 0x5, 1, 3, 16, 0, 0x7FFF + createvisualtask sub_8116620, 0x5, 4, 0, 16, 16, 0 + delay 0x4 + createvisualtask sub_8116620, 0x5, 4, 0, 0, 0, 0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff + end + +Move_HARDEN: + loopsewithpan SE_W231, -64, 0x1C, 0x2 + createvisualtask sub_81144F8, 0x5, 0, 0, 0 + waitforvisualfinish + end + +Move_BELLY_DRUM: + loadspritegfx 0x2758 + loadspritegfx 0x27D1 + createvisualtask sub_8102BE8, 0x2 + waitforvisualfinish + call AnimScript_82CF5A6 + createsprite 0x859309C, 0x2, 0, 0, 0, 0 + playsewithpan SE_W187, -64 + delay 0xF + call AnimScript_82CF58B + createsprite 0x859309C, 0x2, 1, 1, 1, 0 + playsewithpan SE_W187, -64 + delay 0xF + call AnimScript_82CF5A6 + createsprite 0x859309C, 0x2, 0, 3, 3, 128 + playsewithpan SE_W187, -64 + delay 0x7 + call AnimScript_82CF58B + createsprite 0x859309C, 0x2, 1, 2, 0, 128 + playsewithpan SE_W187, -64 + delay 0x7 + call AnimScript_82CF5A6 + createsprite 0x859309C, 0x2, 0, 1, 1, 0 + playsewithpan SE_W187, -64 + delay 0x7 + call AnimScript_82CF58B + createsprite 0x859309C, 0x2, 1, 0, 3, 0 + playsewithpan SE_W187, -64 + waitforvisualfinish + createvisualtask sub_8102CA0, 0x2 + waitforvisualfinish + end + +AnimScript_82CF58B: + createsprite 0x8593068, 0x3, 0 + createvisualtask sub_80D51AC, 0x2, 0, 0, 8, 2, 1 + return + +AnimScript_82CF5A6: + createsprite 0x8593068, 0x3, 1 + createvisualtask sub_80D51AC, 0x2, 0, 0, 8, 2, 1 + return + +Move_MIND_READER: + loadspritegfx 0x27CD + loadspritegfx 0x27CE + loadspritegfx 0x27CF + monbg ANIM_DEF_PARTNER + playsewithpan SE_W109, +63 + createsprite 0x85CE07C, 0x5, 0, 0, 1, 0 + createsprite 0x85CE094, 0x5 + delay 0x28 + playsewithpan SE_W043, +63 + createvisualtask sub_8115A04, 0x2, 1, 1, 2, 0, 10, 0 + call AnimScript_82CF608 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +AnimScript_82CF608: + createsprite 0x85CE0AC, 0x4, 70, 0, 6 + createsprite 0x85CE0AC, 0x4, 40, 40, 6 + createsprite 0x85CE0AC, 0x4, 10, -60, 6 + createsprite 0x85CE0AC, 0x4, -50, -40, 6 + createsprite 0x85CE0AC, 0x4, -40, 40, 6 + createsprite 0x85CE0AC, 0x4, 50, -50, 6 + delay 0x2 + createsprite 0x85CE0AC, 0x4, 50, -30, 6 + createsprite 0x85CE0AC, 0x4, 60, 10, 6 + createsprite 0x85CE0AC, 0x4, 0, 60, 6 + createsprite 0x85CE0AC, 0x4, 0, -40, 6 + createsprite 0x85CE0AC, 0x4, -60, 20, 6 + createsprite 0x85CE0AC, 0x4, -60, -30, 6 + delay 0x2 + createsprite 0x85CE0AC, 0x4, -50, 50, 6 + createsprite 0x85CE0AC, 0x4, -60, 20, 6 + createsprite 0x85CE0AC, 0x4, -40, -40, 6 + createsprite 0x85CE0AC, 0x4, 20, -60, 6 + createsprite 0x85CE0AC, 0x4, 50, -50, 6 + createsprite 0x85CE0AC, 0x4, 35, 40, 6 + delay 0x2 + return + +Move_ICE_PUNCH: + monbg ANIM_DEF_PARTNER + setalpha 0x80C + loadspritegfx 0x279D + loadspritegfx 0x2797 + loadspritegfx 0x279F + createsprite 0x8597274, 0x2, 1, 1, 0, 7, 0 + createvisualtask sub_8116620, 0xA, 4, 2, 0, 9, 32588 + delay 0x14 + playsewithpan SE_W081, +63 + createsprite 0x8595AE8, 0x2, 0 + createsprite 0x8595AE8, 0x2, 64 + createsprite 0x8595AE8, 0x2, 128 + createsprite 0x8595AE8, 0x2, 192 + delay 0x5 + createsprite 0x8595AD0, 0x2, 32 + createsprite 0x8595AD0, 0x2, 96 + createsprite 0x8595AD0, 0x2, 160 + createsprite 0x8595AD0, 0x2, 224 + delay 0x11 + createsprite 0x8595E98, 0x4, 0, -10, 8, 1, 0 + createsprite 0x8597358, 0x3, 0, -10, 1, 1 + playsewithpan SE_W004, +63 + delay 0x2 + createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 3, 1 + waitforvisualfinish + delay 0xF + call AnimScript_82D7720 + delay 0x5 + createvisualtask sub_8116620, 0xA, 4, 2, 9, 0, 32588 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 0, 7, 0, 0 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_REST: + playsewithpan SE_W173, -64 + loadspritegfx 0x27F4 + createsprite 0x8592C88, 0x2, 4, -10, 16, 0, 0 + delay 0x14 + createsprite 0x8592C88, 0x2, 4, -10, 16, 0, 0 + delay 0x14 + createsprite 0x8592C88, 0x2, 4, -10, 16, 0, 0 + waitforvisualfinish + end + +Move_CONFUSION: + monbg ANIM_DEF_PARTNER + call AnimScript_82D7CD1 + setalpha 0x808 + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 10, 1 + createvisualtask sub_8115A04, 0x2, 2, 0, 2, 0, 8, 0x7FFF + waitforvisualfinish + playsewithpan SE_W048, +63 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 15, 1 + createvisualtask sub_80D6064, 0x5, -4, -4, 15, 1, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + delay 0x1 + call AnimScript_82D7CDD + end + +Move_PSYCHIC: + monbg ANIM_DEF_PARTNER + call AnimScript_82D7CD1 + setalpha 0x808 + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 10, 1 + createvisualtask sub_8115A04, 0x2, 2, 0, 2, 0, 8, 767 + waitforvisualfinish + loopsewithpan SE_W048, +63, 0xA, 0x3 + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 15, 1 + createvisualtask sub_80D6064, 0x5, -6, -6, 15, 1, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + delay 0x1 + call AnimScript_82D7CDD + end + +Move_FUTURE_SIGHT: + goto AnimScript_82CF8F6 + +AnimScript_82CF8ED: + waitforvisualfinish + delay 0x1 + call AnimScript_82D7CDD + end + +AnimScript_82CF8F6: + monbg ANIM_ATK_PARTNER + playsewithpan SE_W060, -64 + call AnimScript_82D7CD1 + setalpha 0x808 + playsewithpan SE_W048, -64 + createvisualtask sub_8115A04, 0x2, 2, 0, 2, 0, 8, 0x7FFF + createvisualtask sub_80D6064, 0x5, -4, -4, 15, 0, 1 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + goto AnimScript_82CF8ED + +Move_THUNDER: + loadspritegfx 0x2735 + fadetobg BG_THUNDER + waitbgfadeout + createvisualtask sub_8117660, 0x5, -256, 0, 1, -1 + waitbgfadein + createsprite 0x8597274, 0x2, 1, 2, 0, 16, 0 + delay 0x10 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + playsewithpan SE_W086, +63 + delay 0x1 + createsprite 0x85956C0, 0x82, 16, -36 + delay 0x1 + createsprite 0x85956C0, 0x82, 16, -20 + delay 0x1 + createsprite 0x85956C0, 0x82, 16, 12 + delay 0x14 + createsprite 0x85956C0, 0x86, -16, -32 + playsewithpan SE_W086, +63 + delay 0x1 + createsprite 0x85956C0, 0x86, -16, -16 + delay 0x1 + createsprite 0x85956C0, 0x86, -16, 16 + playsewithpan SE_W086, +63 + delay 0x5 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x1 + createsprite 0x85956C0, 0x82, 24, -32 + delay 0x1 + createsprite 0x85956C0, 0x82, 24, -16 + delay 0x1 + createsprite 0x85956C0, 0x82, 24, 16 + delay 0x1E + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x5 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x1 + createsprite 0x85956C0, 0x82, 0, -32 + playsewithpan SE_W161B, +63 + delay 0x1 + createsprite 0x85956C0, 0x82, 0, -16 + delay 0x1 + createsprite 0x85956C0, 0x82, 0, 16 + delay 0xA + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x1 + createvisualtask sub_810A094, 0x2, 30, 3, 1, 0 + delay 0x2 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x1 + createsprite 0x8597274, 0x82, 1, 2, 16, 0, 0 + waitforvisualfinish + restorebg + waitbgfadeout + setarg 0x7, 0xFFFF + waitbgfadein + end + +Move_THUNDER_PUNCH: + loadspritegfx 0x2797 + loadspritegfx 0x279F + loadspritegfx 0x2735 + monbg ANIM_TARGET + setalpha 0x80C + createsprite 0x8597274, 0x2, 1, 2, 0, 16, 0 + waitforvisualfinish + playsewithpan SE_W004, +63 + createsprite 0x8595E98, 0x84, 0, 0, 8, 1, 0 + createsprite 0x8597358, 0x83, 0, 0, 1, 1 + delay 0x1 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x1 + createsprite 0x85956C0, 0x82, 0, -48 + delay 0x1 + createsprite 0x85956C0, 0x2, 0, -16 + delay 0x1 + createsprite 0x85956C0, 0x2, 0, 16 + delay 0x1 + playsewithpan SE_W161B, +63 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x2 + createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 15, 1 + createsprite 0x8597358, 0x3, 0, 0, 1, 2 + delay 0x1 + createsprite 0x8597274, 0x2, 1, 2, 16, 0, 0 + delay 0x14 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_SACRED_FIRE: + loadspritegfx 0x2731 + loadspritegfx 0x2733 + loopsewithpan SE_W221, -64, 0x7, 0x5 + createsprite 0x8595428, 0x2, -32, 0, 50, 5, -2, 0 + delay 0x1 + createsprite 0x8595428, 0x42, -20, -10, 50, 5, -1, -1 + delay 0x1 + createsprite 0x8595428, 0x42, 0, -16, 50, 5, 0, -1 + delay 0x1 + createsprite 0x8595428, 0x42, 20, -10, 50, 5, 1, -1 + delay 0x1 + createsprite 0x8595428, 0x2, 32, 0, 50, 5, 2, 0 + delay 0x1 + createsprite 0x8595428, 0x2, 20, 10, 50, 5, 1, 1 + delay 0x1 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x1 + createsprite 0x8595428, 0x2, 0, 16, 50, 5, 0, 1 + delay 0x1 + createsprite 0x8595428, 0x2, -20, 10, 50, 5, -1, 1 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x1 + waitforvisualfinish + playsewithpan SE_W221B, +63 + createsprite 0x85953F8, 0x82, -16, 0, 70, 16, 0, 1 + delay 0xA + playsewithpan SE_W221B, +63 + createsprite 0x85953F8, 0x82, 0, 0, 70, 16, 0, 1 + delay 0xA + playsewithpan SE_W221B, +63 + createsprite 0x85953F8, 0x82, 16, 0, 80, 16, 0, 1 + delay 0x1 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x1 + waitforvisualfinish + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x1 + playsewithpan SE_W172B, +63 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, 0 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, 0, 1 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, -1 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, 2, 1 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, 1, -1 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, 1 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, 1, -2 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, 3, 1 + waitforvisualfinish + end + +Move_SCRATCH: + loadspritegfx 0x2799 + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W010, +63 + createsprite 0x85CE020, 0x2, 0, 0, 1, 0 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + waitforvisualfinish + end + +Move_DRAGON_BREATH: + loadspritegfx 0x272D + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + loopsewithpan SE_W172, -64, 0x7, 0x7 + createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + delay 0x2 + createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + delay 0x2 + createvisualtask sub_8116620, 0xA, 4, 1, 0, 9, 31 + createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + delay 0x2 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 21, 1 + createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + delay 0x2 + createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + delay 0x2 + createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + delay 0x2 + createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + delay 0x2 + createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + delay 0x2 + createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + delay 0x2 + createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + delay 0x2 + createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 4, 1, 9, 0, 31 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +Move_ROAR: + loadspritegfx 0x2745 + monbg ANIM_ATTACKER + monbgprio_28 ANIM_ATTACKER + setalpha 0x808 + createvisualtask sub_8158E9C, 0x2, 0, 2 + createvisualtask sub_80D6064, 0x5, -5, -5, 10, 0, 1 + call AnimScript_82CFECB + delay 0x14 + createvisualtask sub_80D5DB0, 0x5, 1, 2 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff + waitforvisualfinish + createvisualtask sub_8159078, 0x5 + waitforvisualfinish + end + +AnimScript_82CFECB: + createsprite 0x85CE7D4, 0x2, 24, -8, 0 + createsprite 0x85CE7D4, 0x2, 24, 0, 2 + createsprite 0x85CE7D4, 0x2, 24, 8, 1 + delay 0xF + createsprite 0x85CE7D4, 0x2, 24, -8, 0 + createsprite 0x85CE7D4, 0x2, 24, 0, 2 + createsprite 0x85CE7D4, 0x2, 24, 8, 1 + return + +Move_GROWL: + loadspritegfx 0x2745 + createvisualtask sub_8158E9C, 0x2, 0, 255 + call AnimScript_82CFECB + delay 0xA + createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 9, 1 + createvisualtask sub_80D52D0, 0x2, 3, 1, 0, 9, 1 + waitforvisualfinish + createvisualtask sub_8159078, 0x5 + waitforvisualfinish + end + +Move_SNORE: + loadspritegfx 0x27D5 + monbg ANIM_ATK_PARTNER + setalpha 0x808 + call AnimScript_82CFF76 + delay 0x1E + call AnimScript_82CFF76 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + end + +AnimScript_82CFF76: + playsewithpan SE_W173, -64 + createvisualtask sub_80D6064, 0x5, -7, -7, 7, 0, 1 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 7, 1 + createsprite 0x85972D8, 0x2, 6, 1, 14, 0, 0 + createsprite 0x85936EC, 0x2, 0, 0, -42, -38, 24, 0, 0 + createsprite 0x85936EC, 0x2, 0, 0, 0, -42, 24, 0, 0 + createsprite 0x85936EC, 0x2, 0, 0, 42, -38, 24, 0, 0 + return + +Move_LIGHT_SCREEN: + loadspritegfx 0x2756 + loadspritegfx 0x27B6 + setalpha 0x1000 + waitplaysewithpan SE_W115, -64, 0xF + createsprite 0x8596560, 0x1, 40, 0, 10166 + delay 0xA + call AnimScript_82D0014 + waitforvisualfinish + delay 0x1 + blendoff + end + +AnimScript_82D0014: + createsprite 0x8596624, 0x2, 23, 0, 0, 1 + delay 0x6 + createsprite 0x8596624, 0x2, 31, -8, 0, 1 + delay 0x5 + createsprite 0x8596624, 0x2, 30, 20, 0, 1 + delay 0x7 + createsprite 0x8596624, 0x2, 10, -15, 0, 1 + delay 0x6 + createsprite 0x8596624, 0x2, 20, 10, 0, 1 + delay 0x6 + createsprite 0x8596624, 0x2, 10, 18, 0, 1 + return + +Move_MIRROR_COAT: + loadspritegfx 0x2756 + loadspritegfx 0x27B8 + setalpha 0x1000 + createsprite 0x8596590, 0x1, 40, 0, 10168 + delay 0xA + playsewithpan SE_W115, -64 + call AnimScript_82D0014 + waitforvisualfinish + delay 0x1 + blendoff + end + +Move_REFLECT: + loadspritegfx 0x2757 + loadspritegfx 0x27B7 + setalpha 0x1000 + waitplaysewithpan SE_W115, -64, 0xF + createsprite 0x8596578, 0x1, 40, 0, 10167 + delay 0x14 + createsprite 0x85965F4, 0x2, 30, 0, 0, 1 + delay 0x7 + createsprite 0x85965F4, 0x2, 19, -12, 0, 1 + delay 0x7 + createsprite 0x85965F4, 0x2, 10, 20, 0, 1 + waitforvisualfinish + delay 0x1 + blendoff + end + +Move_BARRIER: + loadspritegfx 0x27B9 + setalpha 0x1000 + waitplaysewithpan SE_W112, -64, 0xF + createsprite 0x85965A8, 0x3, 40, 0, 10169 + waitforvisualfinish + delay 0x1 + blendoff + end + +Move_BUBBLE: + loadspritegfx 0x27A2 + loadspritegfx 0x27AB + monbg ANIM_TARGET + setalpha 0x80C + delay 0x1 + createsprite 0x8595068, 0x2, 18, 0, 15, -15, 10, 128, 100 + playsewithpan SE_W145, -64 + waitplaysewithpan SE_W145B, +63, 0x64 + delay 0x6 + createsprite 0x8595068, 0x2, 18, 0, 35, 37, 40, 128, 100 + playsewithpan SE_W145, -64 + waitplaysewithpan SE_W145B, +63, 0x64 + delay 0x6 + createsprite 0x8595068, 0x2, 18, 0, 10, -37, 30, 128, 100 + playsewithpan SE_W145, -64 + waitplaysewithpan SE_W145B, +63, 0x64 + delay 0x6 + createsprite 0x8595068, 0x2, 18, 0, 30, 10, 15, 128, 100 + playsewithpan SE_W145, -64 + waitplaysewithpan SE_W145B, +63, 0x64 + delay 0x6 + createsprite 0x8595068, 0x2, 18, 0, 20, 33, 20, 128, 100 + playsewithpan SE_W145, -64 + waitplaysewithpan SE_W145B, +63, 0x64 + delay 0x6 + createsprite 0x8595068, 0x2, 18, 0, 25, -30, 10, 128, 100 + playsewithpan SE_W145, -64 + waitplaysewithpan SE_W145B, +63, 0x64 + waitforvisualfinish + call AnimScript_82D7B53 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_SMOG: + loadspritegfx 0x27BC + monbg ANIM_DEF_PARTNER + monbgprio_29 + setalpha 0x80C + loopsewithpan SE_W054, +63, 0x11, 0xA + call AnimScript_82D024A + call AnimScript_82D024A + call AnimScript_82D024A + call AnimScript_82D024A + call AnimScript_82D024A + call AnimScript_82D024A + call AnimScript_82D024A + delay 0x78 + loopsewithpan SE_W092, +63, 0x12, 0x2 + createvisualtask sub_8115A04, 0x2, 4, 2, 2, 0, 12, 26650 + delay 0xA + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 15, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D024A: + createsprite 0x8595C44, 0x2, 0, -24, 48, 240, 1, 0 + delay 0x7 + return + +Move_FAINT_ATTACK: + loadspritegfx 0x2797 + monbg ANIM_ATTACKER + fadetobg BG_DARK + waitbgfadein + delay 0x0 + playsewithpan SE_W185, -64 + createvisualtask sub_80D5830, 0x2, 0, 18, 6, 1, 3 + createvisualtask sub_81136E8, 0x2, 1 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + invisible ANIM_ATTACKER + delay 0x1 + createvisualtask sub_8117F60, 0x2 + setalpha 0x80C + monbg ANIM_TARGET + delay 0x1 + playsewithpan SE_W233B, +63 + createsprite 0x8597358, 0x2, 0, 0, 1, 1 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 9, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + delay 0x1 + setarg 0x7, 0x1000 + delay 0x20 + createvisualtask sub_8113888, 0x2 + monbg ANIM_ATTACKER + createvisualtask sub_81137E4, 0x2, 1 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + delay 0x1 + restorebg + waitbgfadein + end + +Move_SAND_ATTACK: + loadspritegfx 0x275A + monbg ANIM_ATK_PARTNER + monbgprio_28 ANIM_ATTACKER + setalpha 0x80C + playsewithpan SE_W028, -64 + createsprite 0x857FE70, 0x2, 0, -10, 0, 0, 3 + waitforvisualfinish + createsprite 0x857FE58, 0x2, 0, 0, 2 + call AnimScript_82D0337 + call AnimScript_82D0337 + call AnimScript_82D0337 + call AnimScript_82D0337 + call AnimScript_82D0337 + call AnimScript_82D0337 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + end + +AnimScript_82D0337: + createsprite 0x85971A8, 0x82, 15, 15, 20, 0, 0 + createsprite 0x85971A8, 0x82, 15, 15, 20, 10, 10 + createsprite 0x85971A8, 0x82, 15, 15, 20, -10, -10 + createsprite 0x85971A8, 0x82, 15, 15, 20, 20, 5 + createsprite 0x85971A8, 0x82, 15, 15, 20, -20, -5 + delay 0x2 + return + +Move_MUD_SLAP: + loadspritegfx 0x275A + playsewithpan SE_W028, -64 + createsprite 0x857FE70, 0x2, 0, -10, 0, 0, 3 + waitforvisualfinish + createsprite 0x857FE58, 0x2, 0, 0, 2 + call AnimScript_82D03D5 + call AnimScript_82D03D5 + call AnimScript_82D03D5 + call AnimScript_82D03D5 + call AnimScript_82D03D5 + call AnimScript_82D03D5 + waitforvisualfinish + end + +AnimScript_82D03D5: + createsprite 0x85971CC, 0x82, 15, 15, 20, 0, 0 + createsprite 0x85971CC, 0x82, 15, 15, 20, 10, 5 + createsprite 0x85971CC, 0x82, 15, 15, 20, -10, -5 + createsprite 0x85971CC, 0x82, 15, 15, 20, 20, 10 + createsprite 0x85971CC, 0x82, 15, 15, 20, -20, -10 + delay 0x2 + return + +Move_DRAGON_RAGE: + loadspritegfx 0x272D + loadspritegfx 0x2733 + playsewithpan SE_W082, -64 + createvisualtask sub_80D51AC, 0x5, 0, 0, 2, 40, 1 + waitforvisualfinish + createsprite 0x857FE70, 0x82, 0, 15, 0, 0, 4 + waitforvisualfinish + createsprite 0x8596F80, 0x82, 30, 15, 0, 10, 10 + waitforvisualfinish + loopsewithpan SE_W172B, +63, 0xB, 0x3 + createvisualtask sub_80D51AC, 0x5, 1, 0, 3, 25, 1 + createsprite 0x8596F28, 0xC2, 1, 5, 0 + delay 0x1 + createsprite 0x8596F28, 0xC2, 1, -10, -15 + delay 0x1 + createsprite 0x8596F28, 0x82, 1, 0, 25 + delay 0x1 + createsprite 0x8596F28, 0xC2, 1, 15, 5 + delay 0x1 + createsprite 0x8596F28, 0xC2, 1, -25, 0 + delay 0x1 + createsprite 0x8596F28, 0x82, 1, 30, 30 + delay 0x1 + createsprite 0x8596F28, 0x82, 1, -27, 25 + delay 0x1 + createsprite 0x8596F28, 0xC2, 1, 0, 8 + waitforvisualfinish + createsprite 0x857FE58, 0xC2, 0, 0, 4 + waitforvisualfinish + end + +Move_RAIN_DANCE: + loadspritegfx 0x2783 + playsewithpan SE_W240, -64 + createvisualtask sub_8116620, 0xA, 1921, 2, 0, 4, 0 + waitforvisualfinish + createvisualtask sub_8107188, 0x2, 0, 3, 120 + createvisualtask sub_8107188, 0x2, 0, 3, 120 + delay 0x78 + delay 0x1E + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 1921, 2, 4, 0, 0 + waitforvisualfinish + end + +Move_BITE: + loadspritegfx 0x279B + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W044, +63 + createsprite 0x8597080, 0x2, 0, -32, 0, 0, 819, 10 + createsprite 0x8597080, 0x2, 0, 32, 4, 0, -819, 10 + delay 0xA + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x5, 1, 0, 4, 7, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + delay 0x1 + end + +Move_CRUNCH: + loadspritegfx 0x279B + loadspritegfx 0x2797 + monbg ANIM_TARGET + fadetobg BG_DARK + waitbgfadein + setalpha 0x80C + playsewithpan SE_W044, +63 + createsprite 0x8597080, 0x2, -32, -32, 1, 819, 819, 10 + createsprite 0x8597080, 0x2, 32, 32, 5, -819, -819, 10 + delay 0xA + createsprite 0x8597358, 0x2, -8, 0, 1, 1 + createvisualtask sub_80D51AC, 0x5, 1, 0, 7, 5, 2 + waitforvisualfinish + playsewithpan SE_W044, +63 + createsprite 0x8597080, 0x2, 32, -32, 7, -819, 819, 10 + createsprite 0x8597080, 0x2, -32, 32, 3, 819, -819, 10 + delay 0xA + createsprite 0x8597358, 0x2, 8, 0, 1, 1 + createvisualtask sub_80D51AC, 0x5, 1, 0, 8, 4, 2 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + delay 0x1 + restorebg + waitbgfadein + end + +Move_CLAMP: + loadspritegfx 0x27A1 + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W011, +63 + createsprite 0x8597098, 0x2, -32, 0, 2, 819, 0, 10 + createsprite 0x8597098, 0x2, 32, 0, 6, -819, 0, 10 + delay 0xA + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 5, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + waitforvisualfinish + end + +Move_ICE_BEAM: + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 0x80C + loadspritegfx 0x279D + createsprite 0x8597274, 0x2, 1, 1, 0, 7, 0 + waitforvisualfinish + createsoundtask sub_8158C58, 183, -64, 63, 4, 4, 0, 10 + createsprite 0x8595B2C, 0x2, 20, 12, 0, 12, 20 + createsprite 0x8595B2C, 0x2, 20, -12, 0, -12, 20 + delay 0x1 + call AnimScript_82D07C1 + call AnimScript_82D07C1 + call AnimScript_82D07C1 + createsprite 0x8597274, 0x2, 4, -31, 0, 7, 32384 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 25, 1 + call AnimScript_82D07C1 + call AnimScript_82D07C1 + call AnimScript_82D07C1 + call AnimScript_82D07C1 + call AnimScript_82D07C1 + call AnimScript_82D07C1 + call AnimScript_82D07C1 + call AnimScript_82D07C1 + createsprite 0x8595B14, 0x2, 20, 0, 0, 0, 11 + delay 0x1 + createsprite 0x8595B14, 0x2, 20, 0, 0, 0, 11 + waitforvisualfinish + delay 0x14 + call AnimScript_82D7720 + createsprite 0x8597274, 0x2, 4, 5, 7, 0, 32384 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 0, 7, 0, 0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +AnimScript_82D07C1: + createsprite 0x8595B2C, 0x2, 20, 12, 0, 12, 20 + createsprite 0x8595B2C, 0x2, 20, -12, 0, -12, 20 + createsprite 0x8595B14, 0x2, 20, 0, 0, 0, 11 + delay 0x1 + return + +Move_WITHDRAW: + playsewithpan SE_W029, -64 + createvisualtask sub_81036A0, 0x5 + waitforvisualfinish + end + +Move_AURORA_BEAM: + loadspritegfx 0x279C + fadetobg BG_AURORABEAM + waitbgfadein + playsewithpan SE_W062, -64 + setarg 0x7, 0x0 + createvisualtask sub_8107528, 0xA, 130 + call AnimScript_82D088B + createvisualtask sub_80D52D0, 0x5, 1, 1, 0, 17, 1 + call AnimScript_82D088B + call AnimScript_82D088B + call AnimScript_82D088B + setarg 0x7, 0xFFFF + createsoundtask sub_8158C58, 183, -64, 63, 3, 6, 0, 10 + createvisualtask sub_80D52D0, 0x5, 1, 2, 0, 40, 1 + call AnimScript_82D088B + call AnimScript_82D088B + call AnimScript_82D088B + call AnimScript_82D088B + call AnimScript_82D088B + call AnimScript_82D088B + waitforvisualfinish + restorebg + waitbgfadein + end + +AnimScript_82D088B: + createsprite 0x85950B4, 0x82, 20, 0, 0, 0, 17 + delay 0x1 + createsprite 0x85950B4, 0x82, 20, 0, 0, 0, 17 + delay 0x1 + createsprite 0x85950B4, 0x82, 20, 0, 0, 0, 17 + delay 0x1 + createsprite 0x85950B4, 0x82, 20, 0, 0, 0, 17 + delay 0x1 + return + +Move_SOLAR_BEAM: + loadspritegfx 0x27A3 + choosetwoturnanim AnimScript_82D08E6, AnimScript_82D09E3 + +AnimScript_82D08E4: + waitforvisualfinish + end + +AnimScript_82D08E6: + monbg ANIM_ATK_PARTNER + setalpha 0x80C + createvisualtask sub_8115A04, 0x2, 2, 1, 4, 0, 11, 12287 + playsewithpan SE_W025, -64 + call AnimScript_82D0910 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + goto AnimScript_82D08E4 + +AnimScript_82D0910: + createsprite 0x85921E0, 0x2, 40, 40, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, -40, -40, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, 0, 40, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, 0, -40, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, 40, -20, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, 40, 20, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, -40, -20, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, -40, 20, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, -20, 30, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, 20, -30, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, -20, -30, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, 20, 30, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, -40, 0, 16 + delay 0x2 + createsprite 0x85921E0, 0x2, 40, 0, 16 + delay 0x2 + return + +AnimScript_82D09E3: + call AnimScript_82D7D1D + panse_1B SE_W076, -64, +63, +2, 0x0 + createvisualtask sub_80FEA58, 0x5 + createsprite 0x85921F8, 0x83, 15, 0, 20, 0 + delay 0x4 + createsprite 0x85921F8, 0x83, 15, 0, 20, 1 + delay 0x4 + createvisualtask sub_8116620, 0xA, 4, 1, 0, 10, 1017 + createsprite 0x85921F8, 0x83, 15, 0, 20, 2 + delay 0x4 + createvisualtask sub_80D52D0, 0x5, 1, 2, 0, 65, 1 + createsprite 0x85921F8, 0x83, 15, 0, 20, 3 + delay 0x4 + createsprite 0x85921F8, 0x83, 15, 0, 20, 4 + delay 0x4 + createsprite 0x85921F8, 0x83, 15, 0, 20, 5 + delay 0x4 + createsprite 0x85921F8, 0x83, 15, 0, 20, 6 + delay 0x4 + call AnimScript_82D0AB5 + call AnimScript_82D0AB5 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 4, 1, 10, 0, 1017 + call AnimScript_82D7D57 + goto AnimScript_82D08E4 + +AnimScript_82D0AB5: + createsprite 0x85921F8, 0x83, 15, 0, 20, 0 + delay 0x4 + createsprite 0x85921F8, 0x83, 15, 0, 20, 1 + delay 0x4 + createsprite 0x85921F8, 0x83, 15, 0, 20, 2 + delay 0x4 + createsprite 0x85921F8, 0x83, 15, 0, 20, 3 + delay 0x4 + createsprite 0x85921F8, 0x83, 15, 0, 20, 4 + delay 0x4 + createsprite 0x85921F8, 0x83, 15, 0, 20, 5 + delay 0x4 + createsprite 0x85921F8, 0x83, 15, 0, 20, 6 + delay 0x4 + return + +Move_BLIZZARD: + loadspritegfx 0x279D + monbg ANIM_DEF_PARTNER + createvisualtask sub_8117754, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82D0CB2 + fadetobg BG_HIGHSPEED_OPPONENT + +AnimScript_82D0B43: + waitbgfadeout + createvisualtask sub_8117660, 0x5, -2304, 0, 1, -1 + waitbgfadein + waitforvisualfinish + panse_1B SE_W059, -64, +63, +2, 0x0 + call AnimScript_82D0B7D + call AnimScript_82D0B7D + playsewithpan SE_W059B, +63 + waitforvisualfinish + call AnimScript_82D77A4 + waitforvisualfinish + delay 0x14 + restorebg + waitbgfadeout + setarg 0x7, 0xFFFF + waitbgfadein + clearmonbg ANIM_DEF_PARTNER + end + +AnimScript_82D0B7D: + createsprite 0x8595B98, 0x28, 0, -10, 0, -10, 72, 1 + createsprite 0x8595BB0, 0x28, 0, 0, 0, 0, 80, 0, 0, 1 + delay 0x3 + createsprite 0x8595B98, 0x28, 0, -15, 0, -15, 72, 1 + createsprite 0x8595BB0, 0x28, 0, -10, 0, -10, 80, 0, 0, 1 + delay 0x3 + createsprite 0x8595B98, 0x28, 0, -5, 0, -5, 72, 1 + createsprite 0x8595BB0, 0x28, 0, 10, 0, 10, 80, 0, 0, 1 + delay 0x3 + createsprite 0x8595B98, 0x28, 0, -10, 0, -10, 72, 1 + createsprite 0x8595BB0, 0x28, 0, -20, 0, -20, 80, 0, 0, 1 + delay 0x3 + createsprite 0x8595B98, 0x28, 0, -20, 0, -20, 72, 1 + createsprite 0x8595BB0, 0x28, 0, 15, 0, 15, 80, 0, 0, 1 + delay 0x3 + createsprite 0x8595B98, 0x28, 0, -15, 0, -15, 72, 1 + createsprite 0x8595BB0, 0x28, 0, -20, 0, -20, 80, 0, 0, 1 + delay 0x3 + createsprite 0x8595B98, 0x28, 0, -25, 0, -25, 72, 1 + createsprite 0x8595BB0, 0x28, 0, 20, 0, 20, 80, 0, 0, 1 + delay 0x3 + return + +AnimScript_82D0CB2: + fadetobg BG_HIGHSPEED_PLAYER + goto AnimScript_82D0B43 + +Move_POWDER_SNOW: + loadspritegfx 0x279D + monbg ANIM_DEF_PARTNER + createsprite 0x8597274, 0x2, 31, 1, 0, 3, 0 + waitforvisualfinish + panse_1B SE_W016, -64, +63, +2, 0x0 + call AnimScript_82D0D03 + call AnimScript_82D0D03 + playsewithpan SE_W016B, +63 + waitforvisualfinish + waitsound + call AnimScript_82D77A4 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + delay 0x14 + createsprite 0x8597274, 0x2, 31, 1, 3, 0, 0 + end + +AnimScript_82D0D03: + createsprite 0x8595BC8, 0x28, 0, 0, 0, 0, 56, 4, 4, 1 + delay 0x3 + createsprite 0x8595BC8, 0x28, 0, -10, 0, -10, 56, 4, 4, 1 + delay 0x3 + createsprite 0x8595BC8, 0x28, 0, 10, 0, 10, 56, -4, 3, 1 + delay 0x3 + createsprite 0x8595BC8, 0x28, 0, -20, 0, -20, 56, -4, 5, 1 + delay 0x3 + createsprite 0x8595BC8, 0x28, 0, 15, 0, 15, 56, 4, 4, 1 + delay 0x3 + createsprite 0x8595BC8, 0x28, 0, -20, 0, -20, 56, 4, 4, 1 + delay 0x3 + createsprite 0x8595BC8, 0x28, 0, 20, 0, 20, 56, 4, 4, 1 + delay 0x3 + return + +Move_HYDRO_PUMP: + loadspritegfx 0x27A5 + loadspritegfx 0x27A4 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + createvisualtask sub_80D51AC, 0x5, 0, 0, 2, 40, 1 + delay 0x6 + panse_1B SE_W056, -64, +63, +2, 0x0 + createvisualtask sub_81076C8, 0x5, 100 + call AnimScript_82D0E52 + call AnimScript_82D0E52 + call AnimScript_82D0E52 + createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 37, 1 + call AnimScript_82D0E93 + call AnimScript_82D0E52 + call AnimScript_82D0E52 + call AnimScript_82D0E93 + call AnimScript_82D0E52 + call AnimScript_82D0E52 + call AnimScript_82D0E93 + call AnimScript_82D0E52 + call AnimScript_82D0E52 + call AnimScript_82D0E93 + call AnimScript_82D0E52 + call AnimScript_82D0E52 + call AnimScript_82D0E93 + delay 0x1 + delay 0x1 + call AnimScript_82D0E93 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D0E52: + createsprite 0x85950E4, 0x3, 10, 10, 0, 16 + createsprite 0x85950E4, 0x3, 10, 10, 0, -16 + delay 0x1 + createsprite 0x85950E4, 0x3, 10, 10, 0, 16 + createsprite 0x85950E4, 0x3, 10, 10, 0, -16 + delay 0x1 + return + +AnimScript_82D0E93: + createsprite 0x8597388, 0x4, 0, 15, 1, 1 + createsprite 0x8597388, 0x4, 0, -15, 1, 1 + return + +Move_SIGNAL_BEAM: + loadspritegfx 0x2818 + loadspritegfx 0x2819 + loadspritegfx 0x2759 + createvisualtask sub_80D51AC, 0x5, 0, 0, 2, 25, 1 + delay 0x6 + panse_1B SE_W062, -64, +63, +1, 0x0 + createvisualtask sub_81076C8, 0x5, 100 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 25, 1 + createsprite 0x859728C, 0x2, 4, 8, 5, 31, 8, 961, 8 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + call AnimScript_82D0F79 + waitforvisualfinish + end + +AnimScript_82D0F79: + createsprite 0x8595114, 0x83, 10, 10, 0, 16 + createsprite 0x859512C, 0x83, 10, 10, 0, -16 + delay 0x1 + return + +Move_ABSORB: + loadspritegfx 0x27A3 + loadspritegfx 0x272F + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + monbgprio_2A ANIM_TARGET + setalpha 0x80C + createsprite 0x8597274, 0x2, 1, 1, 0, 4, 13293 + waitforvisualfinish + playsewithpan SE_W071, +63 + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + delay 0x2 + createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 5, 1 + waitforvisualfinish + delay 0x3 + call AnimScript_82D1009 + waitforvisualfinish + delay 0xF + call AnimScript_82D79DF + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 1, 4, 0, 13293 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D1009: + playsewithpan SE_W152, +63 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + delay 0x4 + playsewithpan SE_W152, +63 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + delay 0x4 + playsewithpan SE_W152, +63 + createsprite 0x8592270, 0x3, -5, 15, 16, 33 + delay 0x4 + playsewithpan SE_W152, +63 + createsprite 0x8592270, 0x3, 0, -15, -16, 36 + delay 0x4 + playsewithpan SE_W152, +63 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + delay 0x4 + playsewithpan SE_W152, +63 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + delay 0x4 + playsewithpan SE_W152, +63 + createsprite 0x8592270, 0x3, -10, 20, 20, 39 + delay 0x4 + playsewithpan SE_W152, +63 + createsprite 0x8592270, 0x3, 5, -18, -20, 35 + delay 0x4 + return + +Move_MEGA_DRAIN: + loadspritegfx 0x27A3 + loadspritegfx 0x272F + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + monbgprio_2A ANIM_TARGET + setalpha 0x80C + createsprite 0x8597274, 0x2, 1, 1, 0, 8, 13293 + waitforvisualfinish + playsewithpan SE_W071, +63 + createsprite 0x8597358, 0x2, 0, 0, 1, 1 + delay 0x2 + createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 5, 1 + waitforvisualfinish + delay 0x3 + call AnimScript_82D1121 + waitforvisualfinish + delay 0xF + call AnimScript_82D79DF + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 1, 8, 0, 13293 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D1121: + playsewithpan SE_W145C, +63 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, 5, -18, -20, 35 + delay 0x4 + playsewithpan SE_W145C, +63 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite 0x8592270, 0x3, -10, 20, 20, 39 + delay 0x4 + playsewithpan SE_W145C, +63 + createsprite 0x8592270, 0x3, -5, 15, 16, 33 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + delay 0x4 + playsewithpan SE_W145C, +63 + createsprite 0x8592270, 0x3, 0, -15, -16, 36 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + delay 0x4 + playsewithpan SE_W145C, +63 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, 0, -15, -16, 36 + delay 0x4 + playsewithpan SE_W145C, +63 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite 0x8592270, 0x3, -5, 15, 16, 33 + delay 0x4 + playsewithpan SE_W145C, +63 + createsprite 0x8592270, 0x3, -10, 20, 20, 39 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + delay 0x4 + playsewithpan SE_W145C, +63 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, 5, -18, -20, 35 + delay 0x4 + return + +Move_GIGA_DRAIN: + loadspritegfx 0x27A3 + loadspritegfx 0x272F + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + monbgprio_2A ANIM_TARGET + setalpha 0x80C + createsprite 0x8597274, 0x2, 1, 1, 0, 12, 13293 + waitforvisualfinish + playsewithpan SE_W071, +63 + createsprite 0x8597358, 0x2, 0, 0, 1, 0 + delay 0x2 + createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 5, 1 + waitforvisualfinish + delay 0x3 + call AnimScript_82D12B1 + waitforvisualfinish + delay 0xF + call AnimScript_82D79DF + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 1, 12, 0, 13293 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D12B1: + playsewithpan SE_W202, +63 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, 5, -18, -40, 35 + createsprite 0x8592270, 0x3, -10, 20, 20, 39 + delay 0x4 + playsewithpan SE_W202, +63 + createsprite 0x8592270, 0x3, 0, 5, 28, 26 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite 0x8592270, 0x3, -10, 20, 40, 39 + delay 0x4 + playsewithpan SE_W202, +63 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite 0x8592270, 0x3, -5, 15, 16, 33 + createsprite 0x8592270, 0x3, 10, -5, -32, 26 + delay 0x4 + playsewithpan SE_W202, +63 + createsprite 0x8592270, 0x3, 0, -15, -16, 36 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + delay 0x4 + playsewithpan SE_W202, +63 + createsprite 0x8592270, 0x3, -5, 15, 16, 33 + createsprite 0x8592270, 0x3, 0, -15, -16, 36 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + delay 0x4 + playsewithpan SE_W202, +63 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, -5, 15, 16, 33 + createsprite 0x8592270, 0x3, 10, -5, -40, 26 + delay 0x4 + playsewithpan SE_W202, +63 + createsprite 0x8592270, 0x3, -5, 15, 36, 33 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite 0x8592270, 0x3, -10, 20, 20, 39 + delay 0x4 + playsewithpan SE_W202, +63 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, 5, -18, -20, 35 + delay 0x4 + return + +Move_LEECH_LIFE: + loadspritegfx 0x27B1 + loadspritegfx 0x27A3 + delay 0x1 + loadspritegfx 0x272F + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + monbgprio_2A ANIM_TARGET + setalpha 0x80C + delay 0x1 + createsprite 0x85969C8, 0x2, -20, 15, 12 + waitforvisualfinish + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + playsewithpan SE_W071, +63 + delay 0x2 + createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 5, 1 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 1, 0, 7, 0 + waitforvisualfinish + call AnimScript_82D1009 + waitforvisualfinish + delay 0xF + call AnimScript_82D79DF + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 1, 7, 0, 0 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_SYNTHESIS: + loadspritegfx 0x2741 + createvisualtask sub_8115A04, 0x2, 2, 2, 2, 0, 16, 19451 + playsewithpan SE_W025, -64 + call AnimScript_82D79B4 + waitforvisualfinish + unloadspritegfx 0x2741 + delay 0x1 + loadspritegfx 0x272F + call AnimScript_82D79DF + waitforvisualfinish + end + +Move_TOXIC: + loadspritegfx 0x27A7 + loadspritegfx 0x27A6 + call AnimScript_82D1515 + call AnimScript_82D1515 + waitforvisualfinish + delay 0xF + call AnimScript_82D7A71 + waitforvisualfinish + end + +AnimScript_82D1515: + createsprite 0x8596134, 0x82, -24, 16, 1, 1 + playsewithpan SE_W092, +63 + delay 0xF + createsprite 0x8596134, 0x82, 8, 16, 1, 1 + playsewithpan SE_W092, +63 + delay 0xF + createsprite 0x8596134, 0x82, -8, 16, 1, 1 + playsewithpan SE_W092, +63 + delay 0xF + createsprite 0x8596134, 0x82, 24, 16, 1, 1 + playsewithpan SE_W092, +63 + delay 0xF + return + +Move_SLUDGE: + loadspritegfx 0x27A6 + playsewithpan SE_W145C, -64 + createsprite 0x85961A8, 0x82, 20, 0, 40, 0 + waitforvisualfinish + createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 5, 1 + createvisualtask sub_8115A04, 0x2, 4, 1, 2, 0, 12, 31774 + call AnimScript_82D7A71 + waitforvisualfinish + end + +Move_SLUDGE_BOMB: + loadspritegfx 0x27A6 + call AnimScript_82D16BC + call AnimScript_82D16BC + call AnimScript_82D16BC + call AnimScript_82D16BC + call AnimScript_82D16BC + call AnimScript_82D16BC + call AnimScript_82D16BC + call AnimScript_82D16BC + call AnimScript_82D16BC + call AnimScript_82D16BC + createvisualtask sub_80D52D0, 0x5, 1, 3, 0, 15, 1 + createvisualtask sub_8115A04, 0x2, 4, 1, 2, 0, 12, 31774 + createsprite 0x85961D8, 0x82, 42, 27, 20 + createsprite 0x85961D8, 0x82, -27, 44, 20 + createsprite 0x85961D8, 0x82, 39, -28, 20 + createsprite 0x85961D8, 0x82, -42, -42, 20 + playsewithpan SE_W091, +63 + delay 0x5 + createsprite 0x85961D8, 0x82, 0, 40, 20 + createsprite 0x85961D8, 0x82, -8, -44, 20 + createsprite 0x85961D8, 0x82, -46, -28, 20 + createsprite 0x85961D8, 0x82, 46, 9, 20 + playsewithpan SE_W091, +63 + delay 0x5 + createsprite 0x85961D8, 0x82, 42, 0, 20 + createsprite 0x85961D8, 0x82, -43, -12, 20 + createsprite 0x85961D8, 0x82, 16, -46, 20 + createsprite 0x85961D8, 0x82, -16, 44, 20 + playsewithpan SE_W091, +63 + delay 0x0 + waitsound + waitforvisualfinish + call AnimScript_82D7A71 + waitforvisualfinish + end + +AnimScript_82D16BC: + playsewithpan SE_W145C, -64 + createsprite 0x85961A8, 0x82, 20, 0, 40, 0 + delay 0x3 + return + +Move_ACID: + loadspritegfx 0x27A6 + monbg ANIM_DEF_PARTNER + createsprite 0x85961C0, 0x82, 20, 0, 40, 1, 0, 0 + playsewithpan SE_W145C, -64 + delay 0x5 + createsprite 0x85961C0, 0x82, 20, 0, 40, 1, 24, 0 + playsewithpan SE_W145C, -64 + delay 0x5 + createsprite 0x85961C0, 0x82, 20, 0, 40, 1, -24, 0 + playsewithpan SE_W145C, -64 + delay 0xF + createvisualtask sub_80D52D0, 0x5, 1, 2, 0, 10, 1 + createvisualtask sub_80D52D0, 0x5, 3, 2, 0, 10, 1 + createvisualtask sub_8115A04, 0x2, 20, 2, 2, 0, 12, 31774 + createsprite 0x859620C, 0x82, 0, -22, 0, 15, 55 + playsewithpan SE_W145, +63 + delay 0xA + createsprite 0x859620C, 0x82, -26, -24, 0, 15, 55 + playsewithpan SE_W145, +63 + delay 0xA + createsprite 0x859620C, 0x82, 15, -27, 0, 15, 50 + playsewithpan SE_W145, +63 + delay 0xA + createsprite 0x859620C, 0x82, -15, -17, 0, 10, 45 + playsewithpan SE_W145, +63 + delay 0xA + createsprite 0x859620C, 0x82, 27, -22, 0, 15, 50 + playsewithpan SE_W145, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +Move_BONEMERANG: + loadspritegfx 0x2710 + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W155, -64 + createsprite 0x8597178, 0x2 + delay 0x14 + playsewithpan SE_W030, +63 + createsprite 0x8597358, 0x2, 0, 0, 1, 1 + createvisualtask sub_80D51AC, 0x5, 1, 5, 0, 5, 1 + delay 0x11 + playsewithpan SE_W233, -64 + createsprite 0x857FE28, 0x2, 6, -4 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_BONE_CLUB: + loadspritegfx 0x2710 + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W155, +63 + createsprite 0x8597190, 0x2, -42, -25, 0, 0, 15 + delay 0xC + createsprite 0x8597358, 0x2, 0, 0, 1, 1 + createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 5, 1 + createsprite 0x859728C, 0x2, 7, 5, 1, 0, 10, 0, 0 + playsewithpan SE_W233B, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_BONE_RUSH: + loadspritegfx 0x2710 + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W155, +63 + createsprite 0x8597190, 0x2, -42, -25, 0, 0, 15 + delay 0xC + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x5, 1, 0, 3, 5, 1 + playsewithpan SE_W030, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_SPIKES: + loadspritegfx 0x27A8 + monbg ANIM_DEF_PARTNER + playsewithpan SE_W026, -64 + waitplaysewithpan SE_W030, +63, 0x1C + createsprite 0x85CE11C, 0x82, 20, 0, 0, 24, 30 + delay 0xA + playsewithpan SE_W026, -64 + waitplaysewithpan SE_W030, +63, 0x1C + createsprite 0x85CE11C, 0x82, 20, 0, -24, 24, 30 + delay 0xA + waitplaysewithpan SE_W030, +63, 0x1C + createsprite 0x85CE11C, 0x82, 20, 0, 24, 24, 30 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +Move_MEGAHORN: + loadspritegfx 0x27A9 + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + playsewithpan SE_W082, -64 + jumpifcontest AnimScript_82D19FA + fadetobg BG_DRILL + waitbgfadeout + createvisualtask sub_8117660, 0x5, -2304, 768, 1, -1 + +AnimScript_82D1947: + waitbgfadein + setalpha 0x80C + createvisualtask sub_80D51AC, 0x5, 0, 2, 0, 15, 1 + waitforvisualfinish + delay 0xA + createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 6 + delay 0x3 + createsprite 0x8596974, 0x3, -42, 25, 0, 0, 6 + delay 0x4 + playsewithpan SE_W011, +63 + createsprite 0x8597358, 0x2, 0, 0, 1, 0 + createsprite 0x857FE70, 0x2, 1, -16, 4, 1, 4 + waitforvisualfinish + createvisualtask sub_80D5484, 0x2, 1, -4, 1, 12, 1 + createsprite 0x859728C, 0x2, 7, 5, 1, 0x7FFF, 10, 0, 0 + delay 0xA + createsprite 0x857FE58, 0x2, 0, 0, 11 + delay 0x3 + createsprite 0x857FE58, 0x2, 1, 0, 7 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + restorebg + waitbgfadeout + setarg 0x7, 0xFFFF + waitbgfadein + end + +AnimScript_82D19FA: + fadetobg BG_DRILL_CONTESTS + waitbgfadeout + createvisualtask sub_8117660, 0x5, 2304, 768, 0, -1 + goto AnimScript_82D1947 + +Move_GUST: + loadspritegfx 0x2719 + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W016, +63 + createsprite 0x8596270, 0x2, 0, -16 + createvisualtask sub_810DED8, 0x5, 1, 70 + waitforvisualfinish + createvisualtask sub_80D52D0, 0x5, 1, 1, 0, 7, 1 + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + playsewithpan SE_W016B, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_WING_ATTACK: + loadspritegfx 0x2719 + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + loopsewithpan SE_W017, -64, 0x14, 0x2 + createvisualtask sub_80D5738, 0x2, 0, 12, 4, 1, 4 + createvisualtask sub_810DED8, 0x5, 1, 70 + createsprite 0x85962A4, 0x2, -25, 0, 0, 0, 20 + createsprite 0x85962A4, 0x2, 25, 0, 0, 0, 20 + delay 0x18 + createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 9 + delay 0x11 + createsprite 0x8597358, 0x2, 16, 0, 1, 1 + createsprite 0x8597358, 0x2, -16, 0, 1, 1 + loopsewithpan SE_W003, +63, 0x5, 0x2 + waitforvisualfinish + createsprite 0x857FE58, 0x2, 0, 0, 11 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_PECK: + loadspritegfx 0x2797 + playsewithpan SE_W030, +63 + createvisualtask sub_80D622C, 0x2, 3, -768, 1, 2 + createsprite 0x85973E8, 0x83, -12, 0, 1, 3 + waitforvisualfinish + end + +Move_AEROBLAST: + loadspritegfx 0x27AA + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + call AnimScript_82D7CE5 + monbgprio_28 ANIM_TARGET + setalpha 0x80C + call AnimScript_82D1B82 + createvisualtask sub_80D51AC, 0x5, 1, 5, 0, 50, 1 + call AnimScript_82D1B82 + call AnimScript_82D1B82 + call AnimScript_82D1B82 + call AnimScript_82D1B82 + waitforvisualfinish + createsprite 0x8597358, 0x2, 0, 0, 1, 0 + playsewithpan SE_W013, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + delay 0x0 + call AnimScript_82D7D15 + end + +AnimScript_82D1B82: + playsewithpan SE_W026, -64 + createsprite 0x85962D4, 0x2, 14, -12, 0, -12, 15, 0, 0 + createsprite 0x85962D4, 0x2, 26, 8, 12, 8, 15, 0, 0 + delay 0x3 + playsewithpan SE_W026, -64 + createsprite 0x85962D4, 0x2, 14, -12, 0, -12, 15, 1, 0 + createsprite 0x85962D4, 0x2, 26, 8, 12, 8, 15, 1, 0 + delay 0x3 + playsewithpan SE_W026, -64 + createsprite 0x85962D4, 0x2, 14, -12, 0, -12, 15, 2, 0 + createsprite 0x85962D4, 0x2, 26, 8, 12, 8, 15, 2, 0 + delay 0x3 + playsewithpan SE_W026, -64 + createsprite 0x85962D4, 0x2, 14, -12, 0, -12, 15, 3, 0 + createsprite 0x85962D4, 0x2, 26, 8, 12, 8, 15, 3, 0 + delay 0x3 + return + +Move_WATER_GUN: + loadspritegfx 0x27AB + loadspritegfx 0x27A4 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + createsprite 0x8595208, 0x2, 20, 0, 0, 0, 40, -25 + playsewithpan SE_W145, -64 + waitforvisualfinish + createvisualtask sub_80D52D0, 0x5, 1, 1, 0, 8, 1 + createsprite 0x8597388, 0x4, 0, 0, 1, 2 + createsprite 0x8595220, 0x2, 0, -15, 0, 15, 55 + playsewithpan SE_W152, +63 + delay 0xA + createsprite 0x8595220, 0x2, 15, -20, 0, 15, 50 + playsewithpan SE_W152, +63 + delay 0xA + createsprite 0x8595220, 0x2, -15, -10, 0, 10, 45 + playsewithpan SE_W152, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_CRABHAMMER: + loadspritegfx 0x279D + loadspritegfx 0x27A4 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createsprite 0x8597388, 0x4, 0, 0, 1, 0 + playsewithpan SE_W233B, +63 + delay 0x1 + createsprite 0x859728C, 0x2, 31, 3, 1, 32429, 10, 0, 0 + createsprite 0x857FE70, 0x2, 1, -24, 0, 0, 4 + waitforvisualfinish + delay 0x8 + waitforvisualfinish + createsprite 0x857FE58, 0x2, 1, 0, 4 + waitforvisualfinish + loopsewithpan SE_W152, +63, 0x14, 0x3 + createvisualtask sub_80D51AC, 0x5, 1, 0, 4, 8, 1 + createsprite 0x8595238, 0x2, 10, 10, 20, 1 + delay 0x4 + createsprite 0x8595238, 0x2, 20, -20, 20, 1 + delay 0x4 + createsprite 0x8595238, 0x2, -15, 15, 20, 1 + delay 0x4 + createsprite 0x8595238, 0x2, 0, 0, 20, 1 + delay 0x4 + createsprite 0x8595238, 0x2, -10, -20, 20, 1 + delay 0x4 + createsprite 0x8595238, 0x2, 16, -8, 20, 1 + delay 0x4 + createsprite 0x8595238, 0x2, 5, 8, 20, 1 + delay 0x4 + createsprite 0x8595238, 0x2, -16, 0, 20, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_SURF: + createvisualtask sub_8107954, 0x2, 0 + delay 0x18 + panse_1B SE_W057, -64, +63, +2, 0x0 + waitforvisualfinish + end + +Move_FLAMETHROWER: + loadspritegfx 0x272D + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + createvisualtask sub_80D51AC, 0x5, 0, 0, 2, 46, 1 + delay 0x6 + createvisualtask sub_81076C8, 0x5, 100 + panse_1B SE_W053, -64, +63, +2, 0x0 + call AnimScript_82D1E58 + call AnimScript_82D1E58 + call AnimScript_82D1E58 + createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 43, 1 + call AnimScript_82D1E58 + call AnimScript_82D1E58 + call AnimScript_82D1E58 + call AnimScript_82D1E58 + call AnimScript_82D1E58 + call AnimScript_82D1E58 + call AnimScript_82D1E58 + call AnimScript_82D1E58 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D1E58: + createsprite 0x8595158, 0x3, 10, 10, 0, 16 + delay 0x2 + createsprite 0x8595158, 0x3, 10, 10, 0, 16 + delay 0x2 + return + +Move_SANDSTORM: + loadspritegfx 0x2815 + playsewithpan SE_W201, 0 + createvisualtask sub_8110BCC, 0x5, 0 + delay 0x10 + createsprite 0x8596BA0, 0x28, 10, 2304, 96, 0 + delay 0xA + createsprite 0x8596BA0, 0x28, 90, 2048, 96, 0 + delay 0xA + createsprite 0x8596BA0, 0x28, 50, 2560, 96, 0 + delay 0xA + createsprite 0x8596BA0, 0x28, 20, 2304, 96, 0 + delay 0xA + createsprite 0x8596BA0, 0x28, 70, 1984, 96, 0 + delay 0xA + createsprite 0x8596BA0, 0x28, 0, 2816, 96, 0 + delay 0xA + createsprite 0x8596BA0, 0x28, 60, 2560, 96, 0 + end + +Move_WHIRLPOOL: + loadspritegfx 0x27A5 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + delay 0x0 + createsprite 0x8597274, 0x0, 4, 2, 0, 7, 23968 + playsewithpan SE_W250, +63 + createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 50, 1 + call AnimScript_82D1F5B + call AnimScript_82D1F5B + call AnimScript_82D1F5B + delay 0xC + createsprite 0x8597274, 0x0, 4, 2, 7, 0, 23968 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +AnimScript_82D1F5B: + createsprite 0x8596B70, 0x82, 0, 28, 384, 50, 8, 50, 1 + delay 0x2 + createsprite 0x8596B70, 0x82, 0, 32, 240, 40, 11, -46, 1 + delay 0x2 + createsprite 0x8596B70, 0x82, 0, 33, 416, 40, 4, 42, 1 + delay 0x2 + createsprite 0x8596B70, 0x82, 0, 31, 288, 45, 6, -42, 1 + delay 0x2 + createsprite 0x8596B70, 0x82, 0, 28, 448, 45, 11, 46, 1 + delay 0x2 + createsprite 0x8596B70, 0x82, 0, 33, 464, 50, 10, -50, 1 + delay 0x2 + return + +Move_FLY: + loadspritegfx 0x27AC + loadspritegfx 0x2797 + choosetwoturnanim AnimScript_82D1FF7, AnimScript_82D200F + +AnimScript_82D1FF5: + waitforvisualfinish + end + +AnimScript_82D1FF7: + playsewithpan SE_W019, -64 + createsprite 0x8596340, 0x2, 0, 0, 13, 336 + goto AnimScript_82D1FF5 + +AnimScript_82D200F: + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W104, -64 + createsprite 0x8596358, 0x2, 20 + delay 0x14 + createsprite 0x8597358, 0x2, 0, 0, 1, 0 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + playsewithpan SE_W013, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + goto AnimScript_82D1FF5 + +Move_BOUNCE: + loadspritegfx 0x27AC + loadspritegfx 0x2797 + choosetwoturnanim AnimScript_82D2060, AnimScript_82D2074 + +AnimScript_82D205F: + end + +AnimScript_82D2060: + playsewithpan SE_W100, -64 + createsprite 0x8596420, 0x2, 0, 0 + goto AnimScript_82D205F + +AnimScript_82D2074: + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W207, +63 + createsprite 0x859644C, 0x83 + delay 0x7 + playsewithpan SE_W025B, +63 + createsprite 0x8597358, 0x82, 0, 0, 1, 0 + createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 11, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + goto AnimScript_82D205F + +Move_KARATE_CHOP: + loadspritegfx 0x279F + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W104, +63 + createsprite 0x8595E68, 0x2, -16, 0, 0, 0, 10, 1, 3, 0 + waitforvisualfinish + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x5, 1, 4, 0, 6, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_CROSS_CHOP: + loadspritegfx 0x279F + loadspritegfx 0x282D + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W025, +63 + createsprite 0x8595EC8, 0x2, 0, 0, 0 + createsprite 0x8595EC8, 0x2, 0, 0, 1 + delay 0x28 + playsewithpan SE_W013, +63 + createsprite 0x859728C, 0x2, 31, 3, 1, 0x7FFF, 10, 0, 10 + createsprite 0x85973D0, 0x3, 0, 0, 1, 20 + createvisualtask sub_80D51AC, 0x5, 1, 7, 0, 9, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_JUMP_KICK: + loadspritegfx 0x279F + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createsprite 0x857FE28, 0x2, 4, 4 + delay 0x3 + createsprite 0x8595E80, 0x2, -16, 8, 0, 0, 10, 1, 1, 1 + playsewithpan SE_W026, +63 + waitforvisualfinish + createsprite 0x8597358, 0x1, 0, 0, 1, 1 + createvisualtask sub_80D51AC, 0x5, 1, 5, 0, 7, 1 + playsewithpan SE_W004, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_HI_JUMP_KICK: + loadspritegfx 0x279F + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createsprite 0x857FE70, 0x2, 0, -24, 0, 0, 8 + waitforvisualfinish + delay 0xA + createsprite 0x857FE58, 0x2, 0, 0, 3 + delay 0x2 + createsprite 0x8595E80, 0x2, -16, 8, 0, 0, 10, 1, 1, 1 + playsewithpan SE_W026, +63 + waitforvisualfinish + createsprite 0x8597358, 0x2, 0, 0, 1, 1 + playsewithpan SE_W233B, +63 + createsprite 0x857FE70, 0x2, 1, -28, 0, 0, 3 + delay 0x3 + createvisualtask sub_80D5484, 0x2, 1, 3, 0, 11, 1 + waitforvisualfinish + delay 0x5 + createsprite 0x857FE58, 0x2, 1, 0, 6 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_DOUBLE_KICK: + loadspritegfx 0x279F + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createsprite 0x8595EB0, 0x3, 1, 20, 1 + createvisualtask sub_80D51AC, 0x5, 1, 4, 0, 6, 1 + playsewithpan SE_W233B, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_TRIPLE_KICK: + loadspritegfx 0x279F + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W233B, +63 + jumpifmoveturn 0x0, AnimScript_82D22B8 + jumpifmoveturn 0x1, AnimScript_82D22EE + goto AnimScript_82D2324 + +AnimScript_82D22B3: + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D22B8: + createsprite 0x8595E98, 0x84, -16, -8, 20, 1, 1 + createsprite 0x8597358, 0x83, -16, -16, 1, 2 + createvisualtask sub_80D51AC, 0x5, 1, 4, 0, 6, 1 + goto AnimScript_82D22B3 + +AnimScript_82D22EE: + createsprite 0x8595E98, 0x84, 8, 8, 20, 1, 1 + createsprite 0x8597358, 0x83, 8, 0, 1, 2 + createvisualtask sub_80D51AC, 0x5, 1, 4, 0, 6, 1 + goto AnimScript_82D22B3 + +AnimScript_82D2324: + createsprite 0x8595E98, 0x84, 0, 0, 20, 1, 1 + createsprite 0x8597358, 0x83, 0, -8, 1, 1 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + goto AnimScript_82D22B3 + +Move_DYNAMIC_PUNCH: + loadspritegfx 0x279F + loadspritegfx 0x2797 + loadspritegfx 0x27D6 + loadspritegfx 0x2717 + delay 0x1 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W233B, +63 + createsprite 0x8595E98, 0x83, 0, 0, 20, 1, 0 + createsprite 0x8597358, 0x82, 0, 0, 1, 0 + createvisualtask sub_80D51AC, 0x5, 1, 5, 0, 7, 1 + delay 0x1 + waitsound + playsewithpan SE_W120, +63 + createvisualtask sub_80D52D0, 0x5, 1, 5, 0, 28, 1 + createsprite 0x859371C, 0x3, 0, 0, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x3, 24, -24, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x3, -16, 16, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x3, -24, -12, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x3, 16, 16, 1, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_COUNTER: + loadspritegfx 0x2797 + loadspritegfx 0x279F + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createvisualtask sub_80D5830, 0x2, 0, 18, 6, 1, 4 + playsewithpan SE_W233, -64 + waitforvisualfinish + createsprite 0x857FE70, 0x2, 0, 20, 0, 0, 4 + delay 0x4 + createsprite 0x8597358, 0x2, -15, 18, 1, 0 + playsewithpan SE_W233B, +63 + delay 0x1 + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 25, 1 + createsprite 0x8595E98, 0x3, -15, 18, 8, 1, 0 + delay 0x3 + createsprite 0x8597358, 0x2, 0, -4, 1, 0 + playsewithpan SE_W233B, +63 + delay 0x1 + createsprite 0x8595E98, 0x3, 0, -4, 8, 1, 0 + delay 0x3 + createsprite 0x8597358, 0x2, 15, 9, 1, 0 + playsewithpan SE_W233B, +63 + delay 0x1 + createsprite 0x8595E98, 0x3, 15, 9, 8, 1, 0 + delay 0x5 + createsprite 0x857FE58, 0x2, 0, 0, 5 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_VITAL_THROW: + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W233, -64 + createvisualtask sub_80D5830, 0x2, 0, 12, 4, 1, 2 + waitforvisualfinish + createsprite 0x857FE70, 0x2, 0, 20, 0, 0, 4 + delay 0x2 + createsprite 0x8597358, 0x3, 0, 0, 1, 1 + playsewithpan SE_W233B, +63 + delay 0x1 + createsprite 0x857FE70, 0x2, 1, -24, 0, 0, 4 + waitforvisualfinish + delay 0x3 + createsprite 0x857FE58, 0x2, 0, 0, 7 + delay 0xB + createsprite 0x857FE58, 0x2, 1, 0, 10 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_ROCK_SMASH: + loadspritegfx 0x274A + loadspritegfx 0x2797 + loadspritegfx 0x279F + monbg ANIM_DEF_PARTNER + setalpha 0x80C + delay 0x1 + createsprite 0x8597358, 0x3, 0, 0, 1, 1 + createsprite 0x8595E98, 0x2, 0, 0, 8, 1, 0 + playsewithpan SE_W233B, +63 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 5, 1 + waitforvisualfinish + playsewithpan SE_W088, +63 + createsprite 0x8596B1C, 0x2, 0, 0, 20, 24, 14, 2 + createsprite 0x8596B1C, 0x2, 5, 0, -20, 24, 14, 1 + createsprite 0x8596B1C, 0x2, 0, 5, 20, -24, 14, 2 + createsprite 0x8596B1C, 0x2, -5, 0, -20, -24, 14, 2 + createsprite 0x8596B1C, 0x2, 0, -5, 30, 18, 8, 2 + createsprite 0x8596B1C, 0x2, 0, 0, 30, -18, 8, 2 + createsprite 0x8596B1C, 0x2, 0, 0, -30, 18, 8, 2 + createsprite 0x8596B1C, 0x2, 0, 0, -30, -18, 8, 2 + createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 7, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_SUBMISSION: + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W104, -64 + waitplaysewithpan SE_W004, +63, 0xA + waitplaysewithpan SE_W104, -64, 0x14 + waitplaysewithpan SE_W004, +63, 0x1E + waitplaysewithpan SE_W104, -64, 0x28 + waitplaysewithpan SE_W004, +63, 0x32 + waitplaysewithpan SE_W104, -64, 0x3C + waitplaysewithpan SE_W004, +63, 0x46 + waitplaysewithpan SE_W104, -64, 0x50 + waitplaysewithpan SE_W004, +63, 0x5A + createvisualtask sub_80D5738, 0x2, 0, -18, 6, 6, 4 + createvisualtask sub_80D5738, 0x2, 1, 18, 6, 6, 4 + call AnimScript_82D26D3 + call AnimScript_82D26D3 + call AnimScript_82D26D3 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D26D3: + createsprite 0x8597358, 0x3, 0, -12, 1, 1 + delay 0x8 + createsprite 0x8597358, 0x3, -12, 8, 1, 1 + delay 0x8 + createsprite 0x8597358, 0x3, 12, 0, 1, 1 + delay 0x8 + return + +Move_SUNNY_DAY: + loadspritegfx 0x27AD + monbg ANIM_ATK_PARTNER + setalpha 0x30D + createvisualtask sub_8116620, 0xA, 1921, 1, 0, 6, 0x7FFF + waitforvisualfinish + panse_26 SE_W080, -64, +63, +1, 0x0 + call AnimScript_82D2753 + call AnimScript_82D2753 + call AnimScript_82D2753 + call AnimScript_82D2753 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 1921, 1, 6, 0, 0x7FFF + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + end + +AnimScript_82D2753: + createsprite 0x85954A0, 0x28 + delay 0x6 + return + +Move_COTTON_SPORE: + loadspritegfx 0x27AE + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + loopsewithpan SE_W077, +63, 0x12, 0xA + call AnimScript_82D277D + call AnimScript_82D277D + call AnimScript_82D277D + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +AnimScript_82D277D: + createsprite 0x85922EC, 0x2, 0, -20, 85, 80, 0 + delay 0xC + createsprite 0x85922EC, 0x2, 0, -10, 170, 80, 0 + delay 0xC + createsprite 0x85922EC, 0x2, 0, -15, 0, 80, 0 + delay 0xC + return + +Move_SPORE: + loadspritegfx 0x27AE + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createvisualtask sub_80FEE1C, 0x2 + loopsewithpan SE_W077, +63, 0x10, 0xB + call AnimScript_82D27E2 + call AnimScript_82D27E2 + call AnimScript_82D27E2 + waitforvisualfinish + delay 0x1 + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D27E2: + createsprite 0x85922EC, 0x82, 0, -20, 85, 80, 1 + delay 0xC + createsprite 0x85922EC, 0x82, 0, -10, 170, 80, 1 + delay 0xC + createsprite 0x85922EC, 0x82, 0, -15, 0, 80, 1 + delay 0xC + return + +Move_PETAL_DANCE: + loadspritegfx 0x27AF + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W080, -64 + createvisualtask sub_80D5830, 0x2, 0, 12, 6, 6, 3 + createsprite 0x859231C, 0x2, 0, -24, 8, 140 + createsprite 0x8592334, 0x2, 16, -24, 8, 100 + createsprite 0x8592334, 0x2, -16, -24, 8, 100 + delay 0xF + createsprite 0x859231C, 0x2, 0, -24, 8, 140 + createsprite 0x8592334, 0x2, 32, -24, 8, 100 + createsprite 0x8592334, 0x2, -32, -24, 8, 100 + delay 0xF + createsprite 0x859231C, 0x2, 0, -24, 8, 140 + createsprite 0x8592334, 0x2, 24, -24, 8, 100 + createsprite 0x8592334, 0x2, -24, -24, 8, 100 + delay 0x1E + createsprite 0x8592334, 0x2, 16, -24, 0, 100 + createsprite 0x8592334, 0x2, -16, -24, 0, 100 + delay 0x1E + createsprite 0x8592334, 0x2, 20, -16, 14, 80 + createsprite 0x8592334, 0x2, -20, -14, 16, 80 + waitforvisualfinish + createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 5 + delay 0x3 + playsewithpan SE_W025B, +63 + createsprite 0x8597358, 0x3, 0, 0, 1, 0 + createvisualtask sub_80D51AC, 0x2, 1, 6, 0, 8, 1 + waitforvisualfinish + delay 0x8 + createsprite 0x857FE58, 0x2, 0, 0, 7 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_RAZOR_LEAF: + loadspritegfx 0x274F + loadspritegfx 0x27B0 + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + delay 0x1 + loopsewithpan SE_W077, -64, 0xA, 0x5 + createsprite 0x8592390, 0x2, -3, -2, 10 + delay 0x2 + createsprite 0x8592390, 0x2, -1, -1, 15 + delay 0x2 + createsprite 0x8592390, 0x2, -4, -4, 7 + delay 0x2 + createsprite 0x8592390, 0x2, 3, -3, 11 + delay 0x2 + createsprite 0x8592390, 0x2, -1, -6, 8 + delay 0x2 + createsprite 0x8592390, 0x2, 2, -1, 12 + delay 0x2 + createsprite 0x8592390, 0x2, -3, -4, 13 + delay 0x2 + createsprite 0x8592390, 0x2, 4, -5, 7 + delay 0x2 + createsprite 0x8592390, 0x2, 2, -6, 11 + delay 0x2 + createsprite 0x8592390, 0x2, -3, -5, 8 + delay 0x3C + playsewithpan SE_W013B, -64 + createsprite 0x85923D8, 0x83, 20, -10, 20, 0, 22, 20, 1 + createsprite 0x85923D8, 0x83, 20, -10, 20, 0, 22, -20, 1 + delay 0x14 + playsewithpan SE_W013, +63 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 + createvisualtask sub_80D52D0, 0x2, 3, 2, 0, 8, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_NATURE_POWER: +Move_ANCIENT_POWER: + loadspritegfx 0x274A + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createsprite 0x85972D8, 0x2, 4, 1, 10, 1 + createsprite 0x8596C10, 0x2, 20, 32, -48, 50, 2 + createsprite 0x8596C10, 0x2, 0, 32, -38, 25, 5 + createsprite 0x8596C10, 0x2, 32, 32, -28, 40, 3 + createsprite 0x8596C10, 0x2, -20, 32, -48, 50, 2 + createsprite 0x8596C10, 0x2, 20, 32, -28, 60, 1 + createsprite 0x8596C10, 0x2, 0, 32, -28, 30, 4 + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 30, 1 + playsewithpan SE_W082, -64 + delay 0xA + createsprite 0x8596C10, 0x2, 15, 32, -48, 25, 5 + createsprite 0x8596C10, 0x2, -10, 32, -42, 30, 4 + delay 0xA + createsprite 0x8596C10, 0x2, 0, 32, -42, 25, 5 + createsprite 0x8596C10, 0x2, -25, 32, -48, 30, 4 + waitforvisualfinish + createsprite 0x857FE70, 0x2, 0, 16, 0, 0, 4 + delay 0x3 + playsewithpan SE_W120, +63 + createsprite 0x8597358, 0x3, 0, 0, 1, 1 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 6, 1 + waitforvisualfinish + createsprite 0x857FE58, 0x2, 0, 0, 7 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_OCTAZOOKA: + loadspritegfx 0x272E + loadspritegfx 0x2721 + playsewithpan SE_W025B, -64 + createsprite 0x8592DFC, 0x82, 20, 0, 0, 0, 20, 0 + waitforvisualfinish + playsewithpan SE_W120, +63 + createsprite 0x8592E30, 0x82, 8, 8, 1, 0 + delay 0x2 + createsprite 0x8592E30, 0x82, -8, -8, 1, 0 + delay 0x2 + createsprite 0x8592E30, 0x82, 8, -8, 1, 0 + delay 0x2 + createsprite 0x8592E30, 0x82, -8, 8, 1, 0 + waitforvisualfinish + end + +Move_MIST: + loadspritegfx 0x27A0 + monbg ANIM_ATK_PARTNER + setalpha 0x80C + loopsewithpan SE_W054, -64, 0x14, 0xF + call AnimScript_82D2C34 + call AnimScript_82D2C34 + call AnimScript_82D2C34 + call AnimScript_82D2C34 + call AnimScript_82D2C34 + call AnimScript_82D2C34 + call AnimScript_82D2C34 + delay 0x20 + createvisualtask sub_8115A04, 0x2, 10, 8, 2, 0, 14, 0x7FFF + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + end + +AnimScript_82D2C34: + createsprite 0x8595C2C, 0x2, 0, -24, 48, 240, 0, 1 + delay 0x7 + return + +Move_HAZE: + waitforvisualfinish + playsewithpan SE_W114, 0 + createvisualtask sub_810C0A0, 0x5 + delay 0x1E + createvisualtask sub_8116620, 0xA, 1920, 2, 0, 16, 0 + delay 0x5A + createvisualtask sub_8116620, 0xA, 1920, 1, 16, 0, 0 + end + +Move_FIRE_PUNCH: + loadspritegfx 0x279F + loadspritegfx 0x272D + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createvisualtask sub_8116620, 0xA, 4, 2, 0, 9, 31 + createsprite 0x8595368, 0x81, 0 + createsprite 0x8595368, 0x81, 64 + createsprite 0x8595368, 0x81, 128 + createsprite 0x8595368, 0x81, 196 + playsewithpan SE_W172, +63 + waitforvisualfinish + createsprite 0x8595E98, 0x83, 0, 0, 8, 1, 0 + createsprite 0x8597358, 0x82, 0, 0, 1, 1 + createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 15, 1 + call AnimScript_82D2D18 + delay 0x4 + playsewithpan SE_W007, +63 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 4, 0, 9, 0, 31 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D2D18: + createsprite 0x8595380, 0x81, 0, 10, 192, 176, 40 + createsprite 0x8595380, 0x81, 0, 10, -192, 240, 40 + createsprite 0x8595380, 0x81, 0, 10, 192, -160, 40 + createsprite 0x8595380, 0x81, 0, 10, -192, -112, 40 + createsprite 0x8595380, 0x81, 0, 10, 160, 48, 40 + createsprite 0x8595380, 0x81, 0, 10, -224, -32, 40 + createsprite 0x8595380, 0x81, 0, 10, 112, -128, 40 + return + +Move_LEER: + loadspritegfx 0x272B + monbg ANIM_ATTACKER + monbgprio_28 ANIM_ATTACKER + setalpha 0x808 + playsewithpan SE_W043, -64 + createsprite 0x85CE150, 0x2, 24, -12 + createvisualtask sub_80D6064, 0x5, -5, -5, 10, 0, 1 + waitforvisualfinish + delay 0xA + createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 9, 1 + createvisualtask sub_80D52D0, 0x2, 3, 1, 0, 9, 1 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + blendoff + delay 0x1 + waitforvisualfinish + end + +Move_DREAM_EATER: + loadspritegfx 0x27A3 + loadspritegfx 0x272F + monbg ANIM_DEF_PARTNER + monbgprio_2A ANIM_TARGET + playsewithpan SE_W060, -64 + call AnimScript_82D7CD1 + setalpha 0x808 + playsewithpan SE_W107, +63 + createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 15, 1 + createvisualtask sub_80D6064, 0x5, -6, -6, 15, 1, 1 + waitforvisualfinish + setalpha 0x80C + createvisualtask sub_80D51AC, 0x2, 1, 0, 2, 25, 1 + call AnimScript_82D2E51 + waitforvisualfinish + delay 0xF + call AnimScript_82D79DF + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + delay 0x1 + call AnimScript_82D7CDD + end + +AnimScript_82D2E51: + playsewithpan SE_W207, +63 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, 5, -18, -40, 35 + createsprite 0x8592270, 0x3, -10, 20, 20, 39 + delay 0x4 + playsewithpan SE_W207, +63 + createsprite 0x8592270, 0x3, 0, 5, 28, 26 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite 0x8592270, 0x3, -10, 20, 40, 39 + delay 0x4 + playsewithpan SE_W207, +63 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite 0x8592270, 0x3, -5, 15, 16, 33 + createsprite 0x8592270, 0x3, 10, -5, -32, 26 + delay 0x4 + playsewithpan SE_W207, +63 + createsprite 0x8592270, 0x3, 0, -15, -16, 36 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + delay 0x4 + playsewithpan SE_W207, +63 + createsprite 0x8592270, 0x3, -5, 15, 16, 33 + createsprite 0x8592270, 0x3, 0, -15, -16, 36 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + delay 0x4 + playsewithpan SE_W207, +63 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, -5, 15, 16, 33 + createsprite 0x8592270, 0x3, 10, -5, -40, 26 + delay 0x4 + playsewithpan SE_W207, +63 + createsprite 0x8592270, 0x3, -5, 15, 36, 33 + createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite 0x8592270, 0x3, -10, 20, 20, 39 + delay 0x4 + playsewithpan SE_W207, +63 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite 0x8592270, 0x3, 5, -18, -20, 35 + delay 0x4 + return + +Move_POISON_GAS: + loadspritegfx 0x27BC + loadspritegfx 0x27A6 + delay 0x0 + monbg ANIM_DEF_PARTNER + monbgprio_29 + setalpha 0x80C + delay 0x0 + playsewithpan SE_W054, -64 + createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + delay 0x4 + playsewithpan SE_W054, -64 + createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + delay 0x4 + playsewithpan SE_W054, -64 + createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + delay 0x4 + playsewithpan SE_W054, -64 + createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + delay 0x4 + playsewithpan SE_W054, -64 + createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + delay 0x4 + playsewithpan SE_W054, -64 + createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + delay 0x28 + loopsewithpan SE_W054, +63, 0x1C, 0x6 + createvisualtask sub_8115A04, 0x2, 4, 6, 2, 0, 12, 26650 + waitforvisualfinish + blendoff + clearmonbg ANIM_DEF_PARTNER + delay 0x0 + end + +Move_BIND: + createvisualtask sub_80D5EB8, 0x5, 0, 6, 3328, 4, 0 + goto AnimScript_82D30DE + +AnimScript_82D30DE: + playsewithpan SE_W020, +63 + call AnimScript_82D30EE + call AnimScript_82D30EE + waitforvisualfinish + end + +AnimScript_82D30EE: + createvisualtask sub_80D6064, 0x5, 10, -5, 5, 1, 0 + delay 0x10 + return + +Move_WRAP: + createvisualtask sub_80D5830, 0x2, 0, 6, 4, 2, 4 + goto AnimScript_82D30DE + +Move_PSYBEAM: + loadspritegfx 0x27B3 + playsewithpan SE_W060, -64 + call AnimScript_82D7CD1 + createsoundtask sub_8158C58, 200, -64, 63, 3, 4, 0, 15 + call AnimScript_82D319C + call AnimScript_82D319C + createvisualtask sub_80D5EB8, 0x5, 0, 6, 2048, 4, 1 + createvisualtask sub_8115A04, 0x2, 4, 2, 2, 0, 12, 32351 + call AnimScript_82D319C + call AnimScript_82D319C + call AnimScript_82D319C + call AnimScript_82D319C + call AnimScript_82D319C + call AnimScript_82D319C + call AnimScript_82D319C + call AnimScript_82D319C + call AnimScript_82D319C + waitforvisualfinish + delay 0x1 + call AnimScript_82D7CDD + end + +AnimScript_82D319C: + createsprite 0x859663C, 0x82, 16, 0, 0, 0, 13, 0 + delay 0x4 + return + +Move_HYPNOSIS: + loadspritegfx 0x27B3 + call AnimScript_82D7CD1 + call AnimScript_82D31E5 + call AnimScript_82D31E5 + call AnimScript_82D31E5 + createvisualtask sub_8115A04, 0x2, 4, 2, 2, 0, 12, 32351 + waitforvisualfinish + delay 0x1 + call AnimScript_82D7CDD + end + +AnimScript_82D31E5: + playsewithpan SE_W048, -64 + createsprite 0x859663C, 0x82, 0, 8, 0, 8, 27, 0 + createsprite 0x859663C, 0x82, 16, -8, 0, -8, 27, 0 + delay 0x6 + return + +Move_PSYWAVE: + loadspritegfx 0x27B5 + playsewithpan SE_W060, -64 + call AnimScript_82D7CD1 + createvisualtask sub_81076C8, 0x5, 100 + createsoundtask sub_8158C58, 203, -64, 63, 2, 9, 0, 10 + call AnimScript_82D3275 + call AnimScript_82D3275 + createvisualtask sub_8115A04, 0x2, 4, 1, 4, 0, 12, 32351 + call AnimScript_82D3275 + call AnimScript_82D3275 + call AnimScript_82D3275 + call AnimScript_82D3275 + waitforvisualfinish + delay 0x1 + call AnimScript_82D7CDD + end + +AnimScript_82D3275: + createsprite 0x8595170, 0x83, 10, 10, 0, 16 + delay 0x4 + createsprite 0x8595170, 0x83, 10, 10, 0, 16 + delay 0x4 + return + +Move_ZAP_CANNON: + loadspritegfx 0x27BB + loadspritegfx 0x271B + playsewithpan SE_W086, -64 + createsprite 0x8595764, 0x83, 10, 0, 0, 0, 30, 0 + createsprite 0x8595790, 0x84, 10, 0, 16, 30, 0, 40, 0 + createsprite 0x8595790, 0x84, 10, 0, 16, 30, 64, 40, 1 + createsprite 0x8595790, 0x84, 10, 0, 16, 30, 128, 40, 0 + createsprite 0x8595790, 0x84, 10, 0, 16, 30, 192, 40, 2 + createsprite 0x8595790, 0x84, 10, 0, 8, 30, 32, 40, 0 + createsprite 0x8595790, 0x84, 10, 0, 8, 30, 96, 40, 1 + createsprite 0x8595790, 0x84, 10, 0, 8, 30, 160, 40, 0 + createsprite 0x8595790, 0x84, 10, 0, 8, 30, 224, 40, 2 + waitforvisualfinish + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 5, 1 + delay 0xF + waitplaysewithpan SE_W085B, +63, 0x13 + call AnimScript_82D7BEA + waitforvisualfinish + end + +Move_STEEL_WING: + loadspritegfx 0x2719 + loadspritegfx 0x2797 + loopsewithpan SE_W231, -64, 0x1C, 0x2 + createvisualtask sub_81144F8, 0x5, 0, 0, 0 + waitforvisualfinish + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + loopsewithpan SE_W017, -64, 0x14, 0x2 + createvisualtask sub_80D5738, 0x2, 0, 12, 4, 1, 4 + createvisualtask sub_810DED8, 0x5, 1, 70 + createsprite 0x85962A4, 0x2, -25, 0, 0, 0, 20 + createsprite 0x85962A4, 0x2, 25, 0, 0, 0, 20 + delay 0x18 + createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 9 + delay 0x11 + createsprite 0x8597358, 0x2, 16, 0, 1, 1 + createsprite 0x8597358, 0x2, -16, 0, 1, 1 + playsewithpan SE_W013, +63 + waitforvisualfinish + createsprite 0x857FE58, 0x2, 0, 0, 11 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_IRON_TAIL: + loadspritegfx 0x2797 + loopsewithpan SE_W231, -64, 0x1C, 0x2 + createvisualtask sub_81144F8, 0x5, 1, 0, 0 + waitforvisualfinish + monbg ANIM_TARGET + setalpha 0x80C + createsprite 0x857FE28, 0x2, 4, 4 + delay 0x6 + createsprite 0x8597358, 0x82, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + playsewithpan SE_W233B, +63 + waitforvisualfinish + createvisualtask sub_811489C, 0x5, 0, 1 + clearmonbg ANIM_TARGET + blendoff + waitforvisualfinish + end + +Move_POISON_TAIL: + loadspritegfx 0x2797 + loadspritegfx 0x27A6 + loopsewithpan SE_W231, -64, 0x1C, 0x2 + createvisualtask sub_81144F8, 0x5, 1, 1, 23768 + waitforvisualfinish + monbg ANIM_TARGET + setalpha 0x80C + createsprite 0x857FE28, 0x2, 4, 4 + delay 0x6 + createsprite 0x8597358, 0x82, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + playsewithpan SE_W233B, +63 + waitforvisualfinish + createvisualtask sub_811489C, 0x5, 0, 1 + clearmonbg ANIM_TARGET + blendoff + call AnimScript_82D7A71 + waitforvisualfinish + end + +Move_METAL_CLAW: + loadspritegfx 0x2737 + loopsewithpan SE_W231, -64, 0x1C, 0x2 + createvisualtask sub_81144F8, 0x5, 0, 0, 0 + waitforvisualfinish + createsprite 0x857FE28, 0x2, 6, 4 + delay 0x2 + playsewithpan SE_W013, +63 + createsprite 0x8597138, 0x82, -10, -10, 0 + createsprite 0x8597138, 0x82, -10, 10, 0 + createsprite 0x85972D8, 0x2, -4, 1, 10, 3, 1 + delay 0x8 + createsprite 0x857FE28, 0x2, 6, 4 + delay 0x2 + playsewithpan SE_W013, +63 + createsprite 0x8597138, 0x82, 10, -10, 1 + createsprite 0x8597138, 0x82, 10, 10, 1 + createsprite 0x85972D8, 0x2, -4, 1, 10, 3, 1 + waitforvisualfinish + end + +Move_NIGHT_SHADE: + monbg ANIM_ATTACKER + monbgprio_28 ANIM_ATTACKER + playsewithpan SE_W060, -64 + fadetobg BG_GHOST + waitbgfadein + delay 0xA + playsewithpan SE_W043, -64 + createvisualtask sub_811188C, 0x5, 85 + delay 0x46 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 12, 1 + createvisualtask sub_8115A04, 0x2, 4, 0, 2, 0, 13, 0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + delay 0x1 + restorebg + waitbgfadein + end + +Move_EGG_BOMB: + loadspritegfx 0x27D6 + loadspritegfx 0x27BF + playsewithpan SE_W039, -64 + createsprite 0x8593488, 0x82, 10, 0, 0, 0, 25, -32 + waitforvisualfinish + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 16, 1 + createsprite 0x859371C, 0x84, 6, 5, 1, 0 + playsewithpan SE_W120, +63 + delay 0x3 + createsprite 0x859371C, 0x84, -16, -15, 1, 0 + playsewithpan SE_W120, +63 + delay 0x3 + createsprite 0x859371C, 0x84, 16, -5, 1, 0 + playsewithpan SE_W120, +63 + delay 0x3 + createsprite 0x859371C, 0x84, -12, 18, 1, 0 + playsewithpan SE_W120, +63 + delay 0x3 + createsprite 0x859371C, 0x84, 0, 5, 1, 0 + playsewithpan SE_W120, +63 + delay 0x3 + waitforvisualfinish + end + +Move_SHADOW_BALL: + loadspritegfx 0x27C0 + fadetobg BG_GHOST + waitbgfadein + delay 0xF + createsoundtask sub_8158C58, 168, -64, 63, 5, 5, 0, 5 + createsprite 0x8596D58, 0x82, 16, 16, 8 + waitforvisualfinish + playsewithpan SE_W028, +63 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 8, 1 + waitforvisualfinish + restorebg + waitbgfadein + end + +Move_LICK: + loadspritegfx 0x27C1 + delay 0xF + playsewithpan SE_W122, +63 + createsprite 0x8596D8C, 0x82, 0, 0 + createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 16, 1 + waitforvisualfinish + end + +Move_FOCUS_ENERGY: + loadspritegfx 0x27C8 + playsewithpan SE_W082, -64 + call AnimScript_82CD6C7 + delay 0x8 + createvisualtask sub_8115A04, 0x2, 2, 2, 2, 0, 11, 0x7FFF + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 32, 1 + call AnimScript_82CD6C7 + delay 0x8 + call AnimScript_82CD6C7 + waitforvisualfinish + end + +Move_BIDE: + choosetwoturnanim AnimScript_82D3719, AnimScript_82D3745 + end + +AnimScript_82D3719: + loopsewithpan SE_W036, -64, 0x9, 0x2 + createvisualtask sub_8115A04, 0x2, 2, 2, 2, 0, 11, 31 + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 32, 1 + waitforvisualfinish + end + +AnimScript_82D3745: + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + loopsewithpan SE_W036, -64, 0x9, 0x2 + createvisualtask sub_8116620, 0xA, 2, 2, 0, 11, 31 + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 32, 1 + waitforvisualfinish + createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 4 + waitforvisualfinish + createvisualtask sub_80D5484, 0x2, 0, 2, 0, 12, 1 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 16, 1 + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x1, 18, -8, 1, 1 + delay 0x5 + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x1, -18, 8, 1, 1 + delay 0x5 + playsewithpan SE_W004, +63 + createsprite 0x8597358, 0x1, -8, -5, 1, 1 + waitforvisualfinish + delay 0x5 + createsprite 0x857FE58, 0x2, 0, 0, 7 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 2, 2, 11, 0, 31 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_STRING_SHOT: + loadspritegfx 0x27C3 + loadspritegfx 0x27C4 + monbg ANIM_DEF_PARTNER + delay 0x0 + createsprite 0x8597274, 0x5, 1, 2, 0, 9, 0 + waitforvisualfinish + loopsewithpan SE_W081, -64, 0x9, 0x6 + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + call AnimScript_82D38CC + waitforvisualfinish + playsewithpan SE_W081B, +63 + createsprite 0x85969F8, 0x82, 0, 10 + delay 0x4 + createsprite 0x85969F8, 0x82, 0, -2 + delay 0x4 + createsprite 0x85969F8, 0x82, 0, 22 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + delay 0x1 + waitforvisualfinish + createsprite 0x8597274, 0x5, 1, 2, 9, 0, 0 + end + +AnimScript_82D38CC: + createsprite 0x85969E0, 0x82, 20, 0, 512, 20, 1 + delay 0x1 + return + +Move_SPIDER_WEB: + loadspritegfx 0x27C5 + loadspritegfx 0x27C4 + monbg ANIM_DEF_PARTNER + delay 0x0 + createsprite 0x8597274, 0x5, 1, 2, 0, 9, 0 + waitforvisualfinish + monbgprio_28 ANIM_TARGET + loopsewithpan SE_W081, -64, 0x9, 0x6 + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + call AnimScript_82D396D + waitforvisualfinish + playsewithpan SE_W081B, +63 + createsprite 0x8596A2C, 0x2 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + delay 0x1 + createsprite 0x8597274, 0x5, 1, 2, 9, 0, 0 + end + +AnimScript_82D396D: + createsprite 0x85969E0, 0x82, 20, 0, 512, 20, 0 + delay 0x1 + return + +Move_RAZOR_WIND: + choosetwoturnanim AnimScript_82D398C, AnimScript_82D39DC + +AnimScript_82D398A: + waitforvisualfinish + end + +AnimScript_82D398C: + loadspritegfx 0x2719 + playsewithpan SE_W016, -64 + createsprite 0x8593550, 0x2, 32, 0, 16, 16, 0, 7, 40 + createsprite 0x8593550, 0x2, 32, 0, 16, 16, 85, 7, 40 + createsprite 0x8593550, 0x2, 32, 0, 16, 16, 170, 7, 40 + waitforvisualfinish + playsewithpan SE_W016B, -64 + goto AnimScript_82D398A + +AnimScript_82D39DC: + loadspritegfx 0x27AA + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W013B, -64 + createsprite 0x85962D4, 0x2, 14, 8, 0, 0, 22, 2, 1 + delay 0x2 + playsewithpan SE_W013B, -64 + createsprite 0x85962D4, 0x2, 14, -8, 16, 14, 22, 1, 1 + delay 0x2 + playsewithpan SE_W013B, -64 + createsprite 0x85962D4, 0x2, 14, 12, -16, -14, 22, 0, 1 + delay 0x11 + playsewithpan SE_W013, +63 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 10, 1 + createvisualtask sub_80D52D0, 0x2, 3, 2, 0, 10, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + goto AnimScript_82D398A + +Move_DISABLE: + loadspritegfx 0x2757 + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 0x808 + playsewithpan SE_W197, -64 + createsprite 0x853EE84, 0xD, 24, -16 + waitforvisualfinish + createvisualtask sub_81045B0, 0x5 + loopsewithpan SE_W020, +63, 0xF, 0x4 + waitforvisualfinish + delay 0x1 + clearmonbg ANIM_TARGET + blendoff + end + +Move_RECOVER: + loadspritegfx 0x27A3 + loadspritegfx 0x272F + monbg ANIM_ATK_PARTNER + setalpha 0x80C + loopsewithpan SE_W025, -64, 0xD, 0x3 + createvisualtask sub_8115A04, 0x2, 2, 0, 6, 0, 11, 12287 + call AnimScript_82D3AD5 + call AnimScript_82D3AD5 + call AnimScript_82D3AD5 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + delay 0x1 + call AnimScript_82D79DF + waitforvisualfinish + end + +AnimScript_82D3AD5: + createsprite 0x85921E0, 0x2, 40, -10, 13 + delay 0x3 + createsprite 0x85921E0, 0x2, -35, -10, 13 + delay 0x3 + createsprite 0x85921E0, 0x2, 15, -40, 13 + delay 0x3 + createsprite 0x85921E0, 0x2, -10, -32, 13 + delay 0x3 + createsprite 0x85921E0, 0x2, 25, -20, 13 + delay 0x3 + createsprite 0x85921E0, 0x2, -40, -20, 13 + delay 0x3 + createsprite 0x85921E0, 0x2, 5, -40, 13 + delay 0x3 + return + +Move_MIMIC: + loadspritegfx 0x27A3 + setalpha 0x50B + monbg_22 ANIM_DEF_PARTNER + monbgprio_29 + panse_1B SE_W107, +63, -64, -3, 0x0 + createvisualtask sub_80FF458, 0x5, 128, 24 + delay 0xF + createsprite 0x85924DC, 0x82, -12, 24 + delay 0xA + setarg 0x7, 0xFFFF + waitforvisualfinish + playsewithpan SE_W036, -64 + createvisualtask sub_8115A04, 0x2, 2, 0, 2, 0, 11, 0x7FFF + waitforvisualfinish + clearmonbg_23 ANIM_DEF_PARTNER + blendoff + end + +Move_CONSTRICT: + loadspritegfx 0x27CA + loopsewithpan SE_W010, +63, 0x6, 0x4 + createsprite 0x8592494, 0x84, 0, 16, 0, 2 + delay 0x7 + createsprite 0x8592494, 0x83, 0, 0, 0, 2 + createsprite 0x8592494, 0x82, 0, 8, 1, 2 + delay 0x7 + createsprite 0x8592494, 0x83, 0, -8, 1, 2 + delay 0x8 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 6, 1 + delay 0x14 + playsewithpan SE_W020, +63 + setarg 0x7, 0xFFFF + waitforvisualfinish + end + +Move_CURSE: + choosetwoturnanim AnimScript_82D3BFB, AnimScript_82D3C78 + +AnimScript_82D3BFB: + loadspritegfx 0x27D7 + loadspritegfx 0x27D8 + monbg ANIM_ATK_PARTNER + createvisualtask sub_8112758, 0x5 + waitforvisualfinish + delay 0x14 + createsprite 0x8596DD0, 0x2 + delay 0x3C + call AnimScript_82D3C62 + delay 0x29 + call AnimScript_82D3C62 + delay 0x29 + call AnimScript_82D3C62 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + delay 0x1 + monbg ANIM_DEF_PARTNER + playsewithpan SE_W171, +63 + createsprite 0x8596DE8, 0x82 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 14, 1 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 1, 16, 0, 0 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +AnimScript_82D3C62: + createvisualtask sub_80D52D0, 0x2, 0, 4, 0, 10, 0 + playsewithpan SE_W020, -64 + return + +AnimScript_82D3C78: + createvisualtask sub_80D5EB8, 0x5, 0, 10, 1536, 3, 0 + waitforvisualfinish + delay 0xA + call AnimScript_82D3C93 + waitforvisualfinish + end + +AnimScript_82D3C93: + playsewithpan SE_W082, -64 + createvisualtask sub_8116B14, 0x5 + createvisualtask sub_8115A04, 0x5, 2, 4, 2, 0, 10, 31 + return + +Move_SOFT_BOILED: + loadspritegfx 0x27DA + loadspritegfx 0x27DB + loadspritegfx 0x272F + monbg ANIM_ATK_PARTNER + playsewithpan SE_W039, -64 + createvisualtask sub_80D51AC, 0x2, 0, 0, 2, 6, 1 + createsprite 0x85937B0, 0x4, 0, 16, 0 + createsprite 0x85937B0, 0x4, 0, 16, 1 + delay 0x78 + delay 0x7 + playsewithpan SE_W030, -64 + createsprite 0x8597274, 0x2, 31, 3, 10, 0, 31500 + createsprite 0x859381C, 0x3, 31, 16, 0, 1 + delay 0x8 + createsprite 0x859381C, 0x3, 31, 16, 0, 1 + delay 0x3C + setarg 0x7, 0xFFFF + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + call AnimScript_82D7A28 + end + +Move_HEAL_BELL: + loadspritegfx 0x27DD + loadspritegfx 0x27DE + loadspritegfx 0x27DB + createvisualtask sub_8116620, 0xA, 10, 0, 0, 10, 0x7FFF + waitforvisualfinish + createvisualtask sub_8105CB4, 0x5 + createsprite 0x8593938, 0x2, 0, -24, 0, 1 + delay 0xC + createsprite 0x8593958, 0x28, 0, -24, 48, -18, 35, 0, 0 + createsprite 0x8593958, 0x28, 0, -24, -48, 20, 30, 1, 1 + createsprite 0x8593958, 0x28, 0, -24, -38, -29, 30, 2, 2 + createsprite 0x8593958, 0x28, 0, -24, 36, 18, 30, 3, 3 + call AnimScript_82D3EF8 + delay 0x21 + createsprite 0x8593958, 0x28, 0, -24, 19, 26, 35, 4, 4 + createsprite 0x8593958, 0x28, 0, -24, -34, -12, 30, 5, 5 + createsprite 0x8593958, 0x28, 0, -24, 41, -20, 34, 6, 2 + createsprite 0x8593958, 0x28, 0, -24, -15, 26, 32, 7, 0 + call AnimScript_82D3EF8 + delay 0x21 + createsprite 0x8593958, 0x28, 0, -24, -48, 18, 31, 0, 2 + createsprite 0x8593958, 0x28, 0, -24, 48, -20, 30, 2, 5 + createsprite 0x8593958, 0x28, 0, -24, 38, 29, 33, 4, 3 + createsprite 0x8593958, 0x28, 0, -24, -36, -18, 30, 6, 1 + call AnimScript_82D3EF8 + waitforvisualfinish + createvisualtask sub_8105D60, 0x5 + waitforvisualfinish + unloadspritegfx 0x27DD + unloadspritegfx 0x27DE + unloadspritegfx 0x27DB + loadspritegfx 0x2741 + playsewithpan SE_W234, -64 + createsprite 0x8592B94, 0x10, -15, 0, 0, 0, 32, 60, 1 + delay 0x8 + createsprite 0x8592B94, 0x10, 12, -5, 0, 0, 32, 60, 1 + waitforvisualfinish + unloadspritegfx 0x2741 + loadspritegfx 0x27DB + playsewithpan SE_REAPOKE, -64 + createvisualtask sub_8116664, 0xA, 4, 3, 10, 0, 31500 + createvisualtask sub_8116620, 0xA, 10, 3, 10, 0, 0x7FFF + createsprite 0x8593868, 0x10, 0, 0, 0, 1 + end + +AnimScript_82D3EF8: + createvisualtask sub_8116664, 0xA, 4, 3, 8, 0, 31500 + createvisualtask sub_8116620, 0xA, 10, 3, 2, 10, 0x7FFF + createsprite 0x859381C, 0x28, 0, -24, 0, 1 + playsewithpan SE_W215, -64 + return + +Move_FAKE_OUT: + playsewithpan SE_W260, 0 + createvisualtask sub_8105EB0, 0x5 + waitforvisualfinish + playsewithpan SE_W166, +63 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 5, 1 + createvisualtask sub_8106020, 0x3 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 3, 16, 0, 0x7FFF + end + +Move_SCARY_FACE: + loadspritegfx 0x27EA + createsprite 0x8597274, 0x2, 27, 3, 0, 16, 0 + playsewithpan SE_W060, -64 + waitforvisualfinish + delay 0xA + playsewithpan SE_W043, -64 + createvisualtask sub_81064F8, 0x5 + delay 0xD + createsprite 0x8593A84, 0x0, -16, -8 + createsprite 0x8593A84, 0x0, 16, -8 + waitforvisualfinish + createvisualtask sub_810A094, 0x3, 20, 1, 0 + playsewithpan SE_W081B, +63 + createsprite 0x8597274, 0x2, 27, 3, 16, 0, 0 + waitforvisualfinish + end + +Move_SWEET_KISS: + loadspritegfx 0x27E8 + loadspritegfx 0x27EC + createsprite 0x8593AA8, 0x82, 16, -48 + playsewithpan SE_W215, +63 + delay 0x17 + playsewithpan SE_W215, +63 + delay 0x17 + playsewithpan SE_W215, +63 + waitforvisualfinish + createsprite 0x85939B8, 0x83, 160, -30 + playsewithpan SE_W213, +63 + createsprite 0x85939B8, 0x83, -256, -42 + createsprite 0x85939B8, 0x83, 128, -14 + createsprite 0x85939B8, 0x83, 416, -38 + createsprite 0x85939B8, 0x83, -128, -22 + createsprite 0x85939B8, 0x83, -384, -31 + end + +Move_LOVELY_KISS: + loadspritegfx 0x27EB + loadspritegfx 0x27ED + createsprite 0x8593AF0, 0x82, 0, -24 + playsewithpan SE_W060B, +63 + waitforvisualfinish + playsewithpan SE_W213, +63 + createsprite 0x8593AC0, 0x83, -256, -42 + createsprite 0x8593AC0, 0x83, 128, -14 + createsprite 0x8593AC0, 0x83, 416, -38 + createsprite 0x8593AC0, 0x83, -128, -22 + end + +Move_FURY_SWIPES: + loadspritegfx 0x27EE + createsprite 0x857FE28, 0x2, 5, 5 + delay 0x4 + playsewithpan SE_W010, +63 + createsprite 0x8593B38, 0x82, 16, 0, 1 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 5, 1 + delay 0xA + createsprite 0x857FE28, 0x82, 5, 5 + delay 0x4 + playsewithpan SE_W010, +63 + createsprite 0x8593B38, 0x82, -16, 0, 0 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 7, 1 + end + +Move_INGRAIN: + loadspritegfx 0x27EF + loadspritegfx 0x27A3 + createsprite 0x859254C, 0x2, 16, 26, -1, 2, 150 + playsewithpan SE_W010, -64 + delay 0xA + createsprite 0x859254C, 0x2, -32, 20, 1, 1, 140 + playsewithpan SE_W010, -64 + delay 0xA + createsprite 0x859254C, 0x2, 32, 22, 1, 0, 130 + playsewithpan SE_W010, -64 + delay 0xA + createsprite 0x859254C, 0x2, -16, 25, -1, 3, 120 + playsewithpan SE_W010, -64 + delay 0x28 + createsprite 0x859258C, 0x3, 32, 26, -1, 3, 30 + delay 0x5 + playsewithpan SE_W145C, -64 + delay 0x5 + createsprite 0x859258C, 0x3, -48, 20, 1, 2, 30 + playsewithpan SE_W145C, -64 + delay 0x5 + playsewithpan SE_W145C, -64 + delay 0x5 + createsprite 0x859258C, 0x3, 48, 26, -2, 3, 18 + playsewithpan SE_W145C, -64 + delay 0xA + waitforvisualfinish + end + +Move_PRESENT: + loadspritegfx 0x27F0 + createvisualtask sub_815A904, 0x2 + createsprite 0x8592610, 0x82, 0, -5, 10, 2, -1 + playsewithpan SE_W039, -64 + delay 0xE + playsewithpan SE_W145B, -64 + delay 0xE + playsewithpan SE_W145B, 0 + delay 0x14 + playsewithpan SE_W145B, +63 + waitforvisualfinish + jumpargeq 0x7, 0x0, AnimScript_82D41D4 + jumpargeq 0x7, 0x1, AnimScript_82D423F + end + +AnimScript_82D41D4: + loadspritegfx 0x27D6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x83, 0, 0, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x83, 24, -24, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x83, -16, 16, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x83, -24, -12, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x83, 16, 16, 1, 1 + end + +AnimScript_82D423F: + loadspritegfx 0x27D3 + loadspritegfx 0x272F + playsewithpan SE_W234, +63 + createsprite 0x8592658, 0x84, -16, 32, -3, 1 + delay 0x3 + createsprite 0x8592658, 0x84, 16, 32, -3, -1 + delay 0x3 + createsprite 0x8592658, 0x84, 32, 32, -3, 1 + delay 0x3 + createsprite 0x8592658, 0x84, -32, 32, -3, 1 + delay 0x3 + createsprite 0x8592658, 0x84, 0, 32, -3, 1 + delay 0x3 + createsprite 0x8592658, 0x84, -8, 32, -3, 1 + delay 0x3 + createsprite 0x8592658, 0x84, -8, 32, -3, 1 + delay 0x3 + createsprite 0x8592658, 0x84, 24, 32, -3, 1 + delay 0x3 + createsprite 0x8592658, 0x84, -24, 32, -3, 1 + waitforvisualfinish + waitsound + call AnimScript_82D7A28 + end + +Move_BATON_PASS: + loadspritegfx 0x27F2 + playsewithpan SE_W226, -64 + createvisualtask sub_8115A04, 0x2, 31, 1, 2, 0, 11, 31455 + createsprite 0x85CE370, 0x2 + end + +Move_PERISH_SONG: + loadspritegfx 0x27DE + createsprite 0x8593C0C, 0x4, 0, 0, 0 + createsprite 0x8593C0C, 0x4, 1, 1, 16 + createsprite 0x8593C0C, 0x4, 2, 1, 32 + createsprite 0x8593C0C, 0x4, 3, 2, 48 + createsprite 0x8593C0C, 0x4, 4, 2, 64 + createsprite 0x8593C0C, 0x4, 5, 0, 80 + createsprite 0x8593C0C, 0x4, 6, 0, 96 + createsprite 0x8593C0C, 0x4, 7, 1, 112 + createsprite 0x8593C0C, 0x4, 8, 2, 128 + createsprite 0x8593C0C, 0x4, 9, 0, 144 + createsprite 0x8593C0C, 0x4, 10, 2, 160 + createsprite 0x8593C0C, 0x4, 11, 0, 176 + createsprite 0x8593C0C, 0x4, 12, 1, 192 + createsprite 0x8593C0C, 0x4, 13, 3, 208 + createsprite 0x8593C0C, 0x4, 14, 3, 224 + createsprite 0x8593C0C, 0x4, 15, 0, 240 + createsprite 0x8593C24, 0x4, 15, 0, 0 + delay 0x14 + panse_1B SE_W195, -64, +63, +2, 0x0 + delay 0x50 + createsprite 0x8597274, 0x2, 1, 3, 0, 16, 0 + createvisualtask sub_811489C, 0x5, 4, 0 + createvisualtask sub_811489C, 0x5, 5, 0 + createvisualtask sub_811489C, 0x5, 6, 0 + createvisualtask sub_811489C, 0x5, 7, 0 + delay 0x64 + createsprite 0x8597274, 0x2, 1, 3, 16, 0, 0 + createvisualtask sub_811489C, 0x5, 4, 1 + createvisualtask sub_811489C, 0x5, 5, 1 + createvisualtask sub_811489C, 0x5, 6, 1 + createvisualtask sub_811489C, 0x5, 7, 1 + waitforvisualfinish + end + +Move_SLEEP_TALK: + loadspritegfx 0x27F4 + createvisualtask sub_80D5EB8, 0x5, 0, 4, 4096, 2, 0 + delay 0x14 + createsprite 0x85CE190, 0x82, 0, 20, 5, -1 + playsewithpan SE_W173, -64 + delay 0x6 + createsprite 0x85CE190, 0x82, 0, 20, 5, -1 + delay 0x6 + createsprite 0x85CE190, 0x82, 0, 20, 5, -1 + delay 0x14 + createsprite 0x85CE190, 0x82, 0, 20, 5, -5 + playsewithpan SE_W173, -64 + delay 0x6 + createsprite 0x85CE190, 0x82, 0, 20, 5, -5 + delay 0x6 + createsprite 0x85CE190, 0x82, 0, 20, 5, -5 + delay 0x14 + createsprite 0x85CE190, 0x82, 0, 20, 5, -3 + playsewithpan SE_W173, -64 + delay 0x6 + createsprite 0x85CE190, 0x82, 0, 20, 5, -3 + delay 0x6 + createsprite 0x85CE190, 0x82, 0, 20, 5, -3 + waitforvisualfinish + end + +Move_HYPER_FANG: + loadspritegfx 0x27D0 + playsewithpan SE_W044, +63 + delay 0x1 + delay 0x2 + createvisualtask sub_8117E60, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82D458E + createvisualtask sub_815A8C8, 0x2 + jumpargeq 0x7, 0x0, AnimScript_82D4580 + goto AnimScript_82D4587 + +AnimScript_82D455C: + waitbgfadeout + createsprite 0x85CE1DC, 0x82 + waitbgfadein + createvisualtask sub_80D51AC, 0x3, 1, 0, 10, 10, 1 + playsewithpan SE_W043, +63 + delay 0x14 + restorebg + waitbgfadein + waitforvisualfinish + end + +AnimScript_82D4580: + fadetobg BG_IMPACT_OPPONENT + goto AnimScript_82D455C + +AnimScript_82D4587: + fadetobg BG_IMPACT_PLAYER + goto AnimScript_82D455C + +AnimScript_82D458E: + fadetobg BG_IMPACT_CONTESTS + goto AnimScript_82D455C + +Move_TRI_ATTACK: + loadspritegfx 0x27F6 + createsprite 0x85CE2F8, 0x82, 16, 0 + playsewithpan SE_W161, -64 + delay 0x14 + playsewithpan SE_W161, -64 + delay 0x14 + createsoundtask sub_8158C58, 220, -64, 63, 5, 6, 0, 7 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 2, 0, 16, 0 + delay 0x10 + loadspritegfx 0x2731 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, 0 + playsewithpan SE_W172B, +63 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, 0, 1 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, -1 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, 2, 1 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, 1, -1 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, 1 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, 1, -2 + delay 0x1 + createsprite 0x8595410, 0x82, 0, 0, 30, 30, 3, 1 + delay 0x2 + createvisualtask sub_810A094, 0x2, 20, 3, 1, 1 + waitforvisualfinish + loadspritegfx 0x2735 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + playsewithpan SE_W161B, +63 + createsprite 0x85956C0, 0x82, 0, -48 + delay 0x1 + createsprite 0x85956C0, 0x82, 0, -16 + delay 0x1 + createsprite 0x85956C0, 0x82, 0, 16 + delay 0x14 + createvisualtask sub_810A094, 0x2, 20, 3, 1, 0 + delay 0x2 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + waitforvisualfinish + loadspritegfx 0x279D + call AnimScript_82D7720 + createsprite 0x8597274, 0x2, 1, 2, 16, 0, 0 + waitforvisualfinish + end + +Move_WILL_O_WISP: + loadspritegfx 0x27F8 + loadspritegfx 0x27F7 + monbg ANIM_DEF_PARTNER + monbgprio_2A ANIM_TARGET + playsewithpan SE_W052, -64 + waitplaysewithpan SE_W052, -64, 0xA + createvisualtask sub_8159278, 0x2, -64, -64, 1, 0 + createsprite 0x859563C, 0x2, 0, 0, 0 + delay 0x3 + createsprite 0x859563C, 0x3, 0, 0, 1 + delay 0x3 + createsprite 0x859563C, 0x4, 0, 0, 2 + delay 0x3 + createsprite 0x859563C, 0x4, 0, 0, 3 + delay 0x28 + createvisualtask sub_8159278, 0x2, -64, 63, 2, 0 + waitforvisualfinish + monbgprio_29 + playsewithpan SE_W172B, +63 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 13, 1 + createsprite 0x859566C, 0x2, 0 + createsprite 0x859566C, 0x2, 42 + createsprite 0x859566C, 0x2, 84 + createsprite 0x859566C, 0x2, 126 + createsprite 0x859566C, 0x2, 168 + createsprite 0x859566C, 0x2, 210 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +Move_ENCORE: + loadspritegfx 0x27F3 + loadspritegfx 0x2807 + createvisualtask sub_815ABEC, 0x2 + createvisualtask sub_8116960, 0x2, 248, 3, 0, 10, 0 + waitforvisualfinish + createsprite 0x85CE22C, 0x82, 0, -8 + createsprite 0x85CE244, 0x2, -2, 0, 0, 0, 9 + createsprite 0x85CE244, 0x2, 2, 0, 1, 0, 9 + createsprite 0x85CE25C, 0x3, -2, 0, 0, 0, 9 + createsprite 0x85CE25C, 0x3, 2, 0, 1, 0, 9 + delay 0x10 + createvisualtask sub_8159244, 0x5, 223, 63 + createvisualtask sub_80D5EB8, 0x5, 1, 8, 1536, 5, 1 + waitforvisualfinish + createvisualtask sub_8116960, 0x2, 248, 3, 10, 0, 1 + waitforvisualfinish + createvisualtask sub_815AC8C, 0x2 + end + +Move_TRICK: + loadspritegfx 0x27F0 + loadspritegfx 0x27DF + createsprite 0x85926E8, 0x2, -40, 80 + createsprite 0x85926E8, 0x2, -40, 208 + delay 0x10 + playsewithpan SE_W166, 0 + createvisualtask sub_8106020, 0x3 + createvisualtask sub_81060B0, 0x3 + delay 0x1E + playsewithpan SE_W104, 0 + delay 0x18 + playsewithpan SE_W104, 0 + delay 0x10 + playsewithpan SE_W104, 0 + delay 0x10 + playsewithpan SE_W104, 0 + delay 0x10 + playsewithpan SE_W104, 0 + delay 0x10 + playsewithpan SE_W104, 0 + delay 0x10 + playsewithpan SE_W213, 0 + createvisualtask sub_80D51AC, 0x3, 0, 5, 0, 7, 2 + createvisualtask sub_80D51AC, 0x3, 1, 5, 0, 7, 2 + waitforvisualfinish + end + +Move_WISH: + loadspritegfx 0x27F9 + loadspritegfx 0x2741 + createsprite 0x8597274, 0x2, 1, 3, 0, 10, 0 + waitforvisualfinish + panse_27 SE_W115, +63, -64, -3, 0x0 + createsprite 0x85CE388, 0x28 + waitforvisualfinish + delay 0x3C + loopsewithpan SE_W215, -64, 0x10, 0x3 + call AnimScript_82D79B4 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 3, 10, 0, 0 + waitforvisualfinish + end + +Move_STOCKPILE: + loadspritegfx 0x27FB + playsewithpan SE_W025, -64 + createvisualtask sub_8115A04, 0x2, 2, 8, 1, 0, 12, 0x7FFF + createvisualtask sub_815B65C, 0x5 + call AnimScript_82D4972 + call AnimScript_82D4972 + waitforvisualfinish + createsprite 0x8597274, 0x2, 2, 0, 12, 0, 0x7FFF + end + +AnimScript_82D4972: + createsprite 0x8592244, 0x2, 55, 55, 13 + delay 0x1 + createsprite 0x8592244, 0x2, -55, -55, 13 + delay 0x1 + createsprite 0x8592244, 0x2, 0, 55, 13 + delay 0x1 + createsprite 0x8592244, 0x2, 0, -55, 13 + delay 0x1 + createsprite 0x8592244, 0x2, 55, -34, 13 + delay 0x1 + createsprite 0x8592244, 0x2, 55, 34, 13 + delay 0x1 + createsprite 0x8592244, 0x2, -55, -34, 13 + delay 0x1 + createsprite 0x8592244, 0x2, -55, 34, 13 + delay 0x1 + return + +Move_SPIT_UP: + loadspritegfx 0x27FD + loadspritegfx 0x2797 + playsewithpan SE_W036, -64 + createvisualtask sub_815B6B4, 0x5 + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 8, 2 + delay 0x2D + playsewithpan SE_W255, -64 + delay 0x3 + createsprite 0x8593A50, 0x2, 0, 12 + createsprite 0x8593A50, 0x2, 32, 12 + createsprite 0x8593A50, 0x2, 64, 12 + createsprite 0x8593A50, 0x2, 96, 12 + createsprite 0x8593A50, 0x2, 128, 12 + createsprite 0x8593A50, 0x2, 160, 12 + createsprite 0x8593A50, 0x2, 192, 12 + createsprite 0x8593A50, 0x2, 224, 12 + delay 0x5 + jumpifmoveturn 0x2, AnimScript_82D4AB8 + jumpifmoveturn 0x3, AnimScript_82D4AE1 + +AnimScript_82D4A7B: + delay 0x5 + createvisualtask sub_80D6388, 0x2, 0, 1, 8, 1, 0 + playsewithpan SE_W003, +63 + createsprite 0x85973E8, 0x83, -12, 10, 1, 1 + delay 0x5 + playsewithpan SE_W003, +63 + createsprite 0x85973E8, 0x83, 12, -10, 1, 1 + waitforvisualfinish + end + +AnimScript_82D4AB8: + createsprite 0x8593A50, 0x2, 16 + createsprite 0x8593A50, 0x2, 80 + createsprite 0x8593A50, 0x2, 144 + createsprite 0x8593A50, 0x2, 208 + goto AnimScript_82D4A7B + +AnimScript_82D4AE1: + createsprite 0x8593A50, 0x2, 16 + createsprite 0x8593A50, 0x2, 48 + createsprite 0x8593A50, 0x2, 80 + createsprite 0x8593A50, 0x2, 112 + createsprite 0x8593A50, 0x2, 144 + createsprite 0x8593A50, 0x2, 176 + createsprite 0x8593A50, 0x2, 208 + createsprite 0x8593A50, 0x2, 240 + goto AnimScript_82D4A7B + +Move_SWALLOW: + loadspritegfx 0x27FC + loadspritegfx 0x272F + playsewithpan SE_W036, -64 + createvisualtask sub_815B778, 0x5 + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 8, 2 + delay 0x26 + playsewithpan SE_W255, -64 + createvisualtask sub_80D52D0, 0x2, 0, 2, 0, 12, 1 + call AnimScript_82D4B7F + jumpifmoveturn 0x2, AnimScript_82D4BC1 + jumpifmoveturn 0x3, AnimScript_82D4BCB + +AnimScript_82D4B78: + waitforvisualfinish + call AnimScript_82D79DF + end + +AnimScript_82D4B7F: + createsprite 0x85CE418, 0x2, 0, -8 + delay 0x1 + createsprite 0x85CE418, 0x2, -24, -8 + delay 0x1 + createsprite 0x85CE418, 0x2, 16, -8 + delay 0x1 + createsprite 0x85CE418, 0x2, -16, -8 + delay 0x1 + createsprite 0x85CE418, 0x2, 24, -8 + delay 0x1 + return + +AnimScript_82D4BC1: + call AnimScript_82D4B7F + goto AnimScript_82D4B78 + +AnimScript_82D4BCB: + call AnimScript_82D4B7F + call AnimScript_82D4B7F + goto AnimScript_82D4B78 + +Move_TRANSFORM: + monbg ANIM_ATTACKER + playsewithpan SE_W100, -64 + waitplaysewithpan SE_W107, -64, 0x30 + createvisualtask sub_815B7D0, 0x2, 0 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + end + +Move_MORNING_SUN: + loadspritegfx 0x2801 + loadspritegfx 0x272F + createvisualtask sub_815BB84, 0x5 + delay 0x8 + createvisualtask sub_8116620, 0xA, 1921, 8, 0, 12, 0x7FFF + delay 0xE + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + call AnimScript_82D4C78 + createvisualtask sub_8116620, 0xA, 1921, 3, 12, 0, 0x7FFF + waitforvisualfinish + waitsound + call AnimScript_82D79DF + end + +AnimScript_82D4C78: + createsprite 0x85CE48C, 0x2, 30, 640 + delay 0x5 + return + +Move_SWEET_SCENT: + loadspritegfx 0x27FE + playsewithpan SE_W230, -64 + createsprite 0x85CE544, 0x2, 100, 0, 100 + delay 0x19 + setpan 0 + call AnimScript_82D4CCA + createsprite 0x85CE544, 0x2, 55, 0 + setpan +63 + createvisualtask sub_8115A04, 0x2, 20, 1, 5, 5, 13, 22207 + call AnimScript_82D4CCA + waitforvisualfinish + end + +AnimScript_82D4CCA: + createsprite 0x85CE544, 0x2, 70, 1, 64 + delay 0x2 + createsprite 0x85CE544, 0x2, 60, 0, 64 + delay 0x5 + createsprite 0x85CE544, 0x2, 80, 1, 64 + delay 0x2 + createsprite 0x85CE544, 0x2, 58, 0, 120 + delay 0x2 + createsprite 0x85CE544, 0x2, 100, 0, 120 + delay 0x2 + createsprite 0x85CE544, 0x2, 90, 0, 64 + delay 0x2 + createsprite 0x85CE544, 0x2, 48, 0, 64 + delay 0x2 + createsprite 0x85CE544, 0x2, 95, 1, 80 + delay 0x2 + createsprite 0x85CE544, 0x2, 100, 0, 120 + delay 0x2 + createsprite 0x85CE544, 0x2, 75, 1, 64 + delay 0x2 + createsprite 0x85CE544, 0x2, 85, 0, 120 + delay 0x2 + return + +Move_HYPER_BEAM: + loadspritegfx 0x27A3 + createsprite 0x8597274, 0x2, 1, 4, 0, 16, 0 + waitforvisualfinish + delay 0xA + playsewithpan SE_W063, -64 + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 4, 1 + waitforvisualfinish + delay 0x1E + createsoundtask sub_8158C58, 247, -64, 63, 1, 15, 0, 5 + createvisualtask sub_80D51AC, 0x2, 0, 0, 4, 50, 1 + createvisualtask sub_8115D94, 0x2, 10147, 1, 12, 31, 16, 0, 0 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 50, 1 + createvisualtask sub_8116620, 0xA, 4, 2, 0, 11, 26425 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + call AnimScript_82D4EA1 + createvisualtask sub_8116620, 0xA, 4, 2, 11, 0, 26425 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 4, 16, 0, 0 + end + +AnimScript_82D4EA1: + createsprite 0x8592288, 0x82 + createsprite 0x8592288, 0x82 + delay 0x1 + return + +Move_FLATTER: + loadspritegfx 0x27F3 + loadspritegfx 0x2800 + createvisualtask sub_8159244, 0x5, 223, 63 + createvisualtask sub_815ABEC, 0x2 + createvisualtask sub_8116960, 0x2, 248, 3, 0, 10, 0 + waitforvisualfinish + createsprite 0x85CE5C0, 0x82, 0, -8, 80 + delay 0x0 + createsprite 0x857FE40, 0x2, 5, 2, 1 + delay 0xA + createsprite 0x857FE40, 0x2, 5, 2, 1 + delay 0x0 + createvisualtask sub_8159210, 0x5, 229, -64 + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + call AnimScript_82D4F9B + delay 0x5 + createvisualtask sub_8159210, 0x5, 229, 63 + waitforvisualfinish + createvisualtask sub_8116960, 0x2, 248, 3, 10, 0, 1 + waitforvisualfinish + createvisualtask sub_815AC8C, 0x2 + end + +AnimScript_82D4F9B: + createsprite 0x85CE5A8, 0x28, 0 + createsprite 0x85CE5A8, 0x28, 1 + return + +Move_ROLE_PLAY: + monbg ANIM_ATK_PARTNER + createvisualtask sub_8116620, 0xA, 4, 2, 0, 16, 0x7FFF + createsprite 0x8597274, 0x2, 1, 2, 0, 10, 0 + waitforvisualfinish + playsewithpan SE_W161, -64 + waitplaysewithpan SE_W197, -64, 0x1E + createvisualtask sub_815CED8, 0x2 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + createvisualtask sub_8116620, 0xA, 4, 2, 16, 0, 0x7FFF + delay 0x8 + createsprite 0x8597274, 0x2, 1, 2, 10, 0, 0 + end + +Move_REFRESH: + loadspritegfx 0x27DB + loadspritegfx 0x2741 + playsewithpan SE_W287, -64 + createvisualtask sub_815DFCC, 0x2, 0 + waitforvisualfinish + playsewithpan SE_W234, -64 + call AnimScript_82D79B4 + waitforvisualfinish + playsewithpan SE_REAPOKE, -64 + createsprite 0x8597274, 0x2, 31, 3, 10, 0, 31500 + createsprite 0x859381C, 0x3, 0, 0, 0, 0 + end + +Move_BLAZE_KICK: + loadspritegfx 0x2797 + loadspritegfx 0x279F + loadspritegfx 0x272D + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W172, +63 + createsprite 0x8595F14, 0x83, 0, 0, 1, 30 + createvisualtask sub_8116620, 0xA, 4, 2, 0, 7, 0x7FFF + delay 0x1E + playsewithpan SE_W007, +63 + createsprite 0x8597358, 0x82, 0, 0, 1, 0 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 14, 1 + createvisualtask sub_8116620, 0xA, 4, 2, 0, 0, 0x7FFF + createsprite 0x859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 + call AnimScript_82D2D18 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_HYPER_VOICE: + loadspritegfx 0x27DB + createvisualtask sub_81590B8, 0x5, 0 + call AnimScript_82D50FA + waitforvisualfinish + delay 0x8 + createvisualtask sub_81590B8, 0x5, 1 + call AnimScript_82D50FA + waitforvisualfinish + end + +AnimScript_82D50FA: + createsprite 0x8597274, 0x2, 31, 3, 8, 0, 1023 + createvisualtask sub_80D6064, 0x5, -5, -5, 5, 0, 0 + createsprite 0x8593880, 0x0, 45, 0, 0, 0, 0, 0, 1 + createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 6, 1 + createvisualtask sub_80D52D0, 0x2, 3, 1, 0, 6, 1 + createvisualtask sub_81162A4, 0x2, 1, 0, 6, 1 + createvisualtask sub_8159078, 0x5 + return + +Move_SAND_TOMB: + loadspritegfx 0x275A + createsprite 0x8597274, 0x0, 4, 2, 0, 7, 563 + createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 43, 1 + playsewithpan SE_W328, +63 + call AnimScript_82D51B7 + call AnimScript_82D51B7 + call AnimScript_82D51B7 + delay 0x16 + createsprite 0x8597274, 0x0, 4, 2, 7, 0, 563 + waitforvisualfinish + end + +AnimScript_82D51B7: + createsprite 0x8596B34, 0x82, 0, 32, 528, 30, 10, 50, 1 + delay 0x2 + createsprite 0x8596B34, 0x82, 0, 36, 480, 20, 13, -46, 1 + delay 0x2 + createsprite 0x8596B34, 0x82, 0, 37, 576, 20, 5, 42, 1 + delay 0x2 + createsprite 0x8596B34, 0x82, 0, 35, 400, 25, 8, -42, 1 + delay 0x2 + createsprite 0x8596B34, 0x82, 0, 32, 512, 25, 13, 46, 1 + delay 0x2 + createsprite 0x8596B34, 0x82, 0, 37, 464, 30, 12, -50, 1 + delay 0x2 + return + +Move_SHEER_COLD: + fadetobg BG_ICE + waitbgfadeout + playsewithpan SE_W196, 0 + waitbgfadein + loadspritegfx 0x271A + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + createvisualtask sub_80A9EF4, 0x2 + waitplaysewithpan SE_W258, +63, 0x11 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + restorebg + waitbgfadein + end + +Move_ARM_THRUST: + loadspritegfx 0x279F + loadspritegfx 0x2797 + monbgprio_28 ANIM_TARGET + setalpha 0x80C + createvisualtask sub_80D6134, 0x5, 8, 5, 0, 0 + delay 0x6 + createsprite 0x857FE28, 0x2, 4, 3 + delay 0x4 + playsewithpan SE_W207, +63 + createsprite 0x8596034, 0x82, 10, -8, 14, 3 + waitforvisualfinish + createvisualtask sub_80D6134, 0x5, 8, 5, 0, 1 + playsewithpan SE_W003, +63 + choosetwoturnanim AnimScript_82D52D4, AnimScript_82D52E8 + +AnimScript_82D52C0: + createvisualtask sub_80D51AC, 0x5, 1, 4, 0, 6, 1 + waitforvisualfinish + blendoff + end + +AnimScript_82D52D4: + createsprite 0x8597358, 0x82, 8, 0, 1, 2 + goto AnimScript_82D52C0 + +AnimScript_82D52E8: + createsprite 0x8597358, 0x82, -8, 0, 1, 2 + goto AnimScript_82D52C0 + +Move_MUDDY_WATER: + panse_1B SE_W250, -64, +63, +2, 0x0 + createvisualtask sub_8107954, 0x2, 1 + waitforvisualfinish + end + +Move_BULLET_SEED: + loadspritegfx 0x2716 + createsprite 0x859351C, 0x82, 20, 0 + delay 0x5 + createsprite 0x859351C, 0x82, 20, 0 + delay 0x5 + createsprite 0x859351C, 0x82, 20, 0 + delay 0x5 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 30, 1 + createsprite 0x859351C, 0x82, 20, 0 + delay 0x5 + createsprite 0x859351C, 0x82, 20, 0 + delay 0x5 + createsprite 0x859351C, 0x82, 20, 0 + delay 0x5 + createsprite 0x859351C, 0x82, 20, 0 + delay 0x5 + createsprite 0x859351C, 0x82, 20, 0 + delay 0x5 + createsprite 0x859351C, 0x82, 20, 0 + delay 0x5 + createsprite 0x859351C, 0x82, 20, 0 + waitforvisualfinish + end + +Move_DRAGON_CLAW: + loadspritegfx 0x272D + loadspritegfx 0x2737 + playsewithpan SE_W221B, -64 + createvisualtask sub_8116620, 0xA, 2, 4, 0, 8, 639 + createvisualtask sub_80D51AC, 0x5, 0, 0, 2, 15, 1 + call AnimScript_82D5581 + call AnimScript_82D5581 + createsprite 0x857FE28, 0x2, 6, 4 + createsprite 0x8596B88, 0x2, 0, 28, 528, 30, 13, 50, 0 + delay 0x2 + createvisualtask sub_8159210, 0x5, 136, 63 + createsprite 0x8597138, 0x82, -10, -10, 0 + createsprite 0x8597138, 0x82, -10, 10, 0 + createsprite 0x85972D8, 0x2, -4, 1, 10, 3, 1 + createsprite 0x8596B88, 0x2, 0, 32, 480, 20, 16, -46, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 33, 576, 20, 8, 42, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 31, 400, 25, 11, -42, 0 + delay 0x2 + createsprite 0x857FE28, 0x2, 6, 4 + createsprite 0x8596B88, 0x2, 0, 28, 512, 25, 16, 46, 0 + delay 0x2 + createvisualtask sub_8159210, 0x5, 136, 63 + createsprite 0x8597138, 0x82, 10, -10, 1 + createsprite 0x8597138, 0x82, 10, 10, 1 + createsprite 0x85972D8, 0x2, -4, 1, 10, 3, 1 + createsprite 0x8596B88, 0x2, 0, 33, 464, 30, 15, -50, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 28, 528, 30, 13, 50, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 32, 480, 20, 16, -46, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 33, 576, 20, 8, 42, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 31, 400, 25, 11, -42, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 28, 512, 25, 16, 46, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 33, 464, 30, 15, -50, 0 + createvisualtask sub_8116620, 0xA, 2, 4, 8, 0, 639 + waitforvisualfinish + end + +AnimScript_82D5581: + createsprite 0x8596B88, 0x2, 0, 28, 528, 30, 13, 50, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 32, 480, 20, 16, -46, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 33, 576, 20, 8, 42, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 31, 400, 25, 11, -42, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 28, 512, 25, 16, 46, 0 + delay 0x2 + createsprite 0x8596B88, 0x2, 0, 33, 464, 30, 15, -50, 0 + delay 0x2 + return + +AnimScript_82D560C: + end + +Move_MUD_SHOT: + loadspritegfx 0x2813 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + createvisualtask sub_80D51AC, 0x5, 0, 0, 2, 46, 1 + delay 0x6 + createvisualtask sub_81076C8, 0x5, 100 + panse_1B SE_W250, -64, +63, +1, 0x0 + call AnimScript_82D5687 + call AnimScript_82D5687 + call AnimScript_82D5687 + createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 43, 1 + call AnimScript_82D5687 + call AnimScript_82D5687 + call AnimScript_82D5687 + call AnimScript_82D5687 + call AnimScript_82D5687 + call AnimScript_82D5687 + call AnimScript_82D5687 + call AnimScript_82D5687 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D5687: + createsprite 0x85950FC, 0x3, 10, 10, 0, 16 + delay 0x2 + createsprite 0x85950FC, 0x3, 10, 10, 0, 16 + delay 0x2 + return + +Move_METEOR_MASH: + loadspritegfx 0x27F9 + loadspritegfx 0x2797 + loadspritegfx 0x279F + panse_1B SE_W112, -64, +63, +3, 0x0 + fadetobg BG_COSMIC + waitbgfadein + waitforvisualfinish + createsprite 0x85CE8DC, 0x83, -48, -64, 72, 32, 30 + delay 0xA + createsprite 0x85CE8DC, 0x83, -112, -64, 8, 32, 30 + delay 0x28 + createsprite 0x8595F14, 0x83, 0, 0, 0, 30 + createsprite 0x85CE8DC, 0x83, -80, -64, 40, 32, 30 + delay 0x14 + playsewithpan SE_W233B, +63 + createsprite 0x8597358, 0x83, 0, 0, 1, 1 + createvisualtask sub_80D52D0, 0x2, 1, 5, 0, 20, 1 + waitforvisualfinish + delay 0xA + restorebg + waitbgfadein + waitforvisualfinish + end + +Move_REVENGE: + loadspritegfx 0x2805 + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W036, -64 + createsprite 0x8596088, 0x2, 10, -10 + waitforvisualfinish + createvisualtask sub_8115A04, 0x2, 2, 0, 4, 2, 8, 31 + waitforvisualfinish + unloadspritegfx 0x2805 + loadspritegfx 0x2806 + createsprite 0x857FE28, 0x2, 6, 4 + delay 0x4 + playsewithpan SE_W207, +63 + createsprite 0x85960D0, 0x82, 10, -10 + waitforvisualfinish + unloadspritegfx 0x2806 + loadspritegfx 0x2797 + createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 10, 1 + createsprite 0x8597400, 0x83, -10, -8, 1, 1, 8 + playsewithpan SE_W233B, +63 + delay 0x8 + createsprite 0x8597400, 0x83, 10, 8, 1, 1, 8 + playsewithpan SE_W025B, +63 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_POISON_FANG: + loadspritegfx 0x27D0 + loadspritegfx 0x27A6 + playsewithpan SE_W044, +63 + createsprite 0x85CE1DC, 0x82 + delay 0xA + createvisualtask sub_80D51AC, 0x3, 1, 3, 0, 10, 1 + waitforvisualfinish + createvisualtask sub_8115A04, 0x2, 4, 0, 4, 0, 12, 26650 + call AnimScript_82D7A71 + waitforvisualfinish + end + +Move_SUBSTITUTE: + playsewithpan SE_W213, -64 + createvisualtask sub_815F20C, 0x2 + end + +Move_FRENZY_PLANT: + loadspritegfx 0x27EF + loadspritegfx 0x2797 + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + setalpha 0x80C + createsprite 0x8597274, 0x0, 1, 2, 0, 5, 0 + waitforvisualfinish + createsprite 0x8592564, 0x2, 10, 8, 2, 0, 0, 100 + playsewithpan SE_W010, -64 + delay 0x5 + createsprite 0x8592564, 0x2, 20, -8, -2, 0, 1, 95 + playsewithpan SE_W010, -43 + delay 0x5 + createsprite 0x8592564, 0x2, 30, 8, -4, 0, 0, 90 + playsewithpan SE_W010, -22 + delay 0x5 + createsprite 0x8592564, 0x2, 40, -8, 4, 0, 1, 85 + playsewithpan SE_W010, 0 + delay 0x5 + createsprite 0x8592564, 0x2, 50, 8, 0, 0, 0, 85 + playsewithpan SE_W010, +21 + delay 0x5 + createsprite 0x8592564, 0x2, 60, -8, -2, 0, 1, 85 + playsewithpan SE_W010, +42 + delay 0x5 + createsprite 0x8592564, 0x2, 75, 8, 0, 0, 0, 85 + playsewithpan SE_W010, +63 + delay 0x5 + createsprite 0x8592564, 0x2, 85, 16, 6, 0, 3, 80 + playsewithpan SE_W010, +63 + delay 0x5 + createsprite 0x8592564, 0x2, 85, -16, -6, 0, 2, 75 + playsewithpan SE_W010, +63 + delay 0x5 + createsprite 0x8597358, 0x2, -10, -10, 1, 3 + playsewithpan SE_W003, +63 + createvisualtask sub_80D51AC, 0x3, 1, 8, 0, 20, 1 + delay 0x3 + createsprite 0x8597358, 0x2, 10, 8, 1, 3 + playsewithpan SE_W003, +63 + delay 0x3 + createsprite 0x8597358, 0x2, 10, -3, 1, 2 + playsewithpan SE_W003, +63 + delay 0x3 + createsprite 0x8597358, 0x2, -3, 1, 1, 2 + playsewithpan SE_W003, +63 + delay 0x2 + createsprite 0x8597358, 0x2, -10, 1, 1, 1 + playsewithpan SE_W003, +63 + delay 0x2 + createsprite 0x8597358, 0x2, 0, 10, 1, 1 + playsewithpan SE_W003, +63 + waitforvisualfinish + createsprite 0x8597274, 0x0, 1, 2, 5, 0, 0 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Move_METAL_SOUND: + loadspritegfx 0x2814 + monbg ANIM_DEF_PARTNER + monbgprio_2A ANIM_TARGET + createvisualtask sub_80D52D0, 0x2, 0, 2, 0, 8, 1 + call AnimScript_82D59EA + call AnimScript_82D59EA + call AnimScript_82D59EA + call AnimScript_82D59EA + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + delay 0x0 + waitforvisualfinish + end + +AnimScript_82D59EA: + panse_1B SE_W103, -64, +63, +2, 0x0 + createsprite 0x8593458, 0x82, 16, 0, 0, 0, 30, 0 + delay 0x2 + return + +Move_FOCUS_PUNCH: + goto AnimScript_82D5A0E + +AnimScript_82D5A0C: + waitforvisualfinish + end + +AnimScript_82D5A0E: + loadspritegfx 0x2797 + loadspritegfx 0x279F + delay 0x1 + createvisualtask sub_8117E60, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82D5AC7 + createvisualtask sub_815A8C8, 0x2 + jumpargeq 0x7, 0x0, AnimScript_82D5AB9 + jumpargeq 0x7, 0x1, AnimScript_82D5AC0 + +AnimScript_82D5A3C: + waitbgfadein + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W207, +63 + createsprite 0x8596104, 0x82 + delay 0xA + createsprite 0x8597358, 0x2, -10, -8, 1, 0 + createvisualtask sub_80D51AC, 0x5, 1, 8, 0, 24, 1 + delay 0x8 + createsprite 0x8597358, 0x2, 10, 2, 1, 0 + playsewithpan SE_W233B, +63 + delay 0x8 + createsprite 0x8597358, 0x2, 10, -6, 1, 0 + playsewithpan SE_W233B, +63 + delay 0x8 + createsprite 0x8597358, 0x2, 0, 8, 1, 0 + playsewithpan SE_W025B, +63 + waitforvisualfinish + restorebg + waitbgfadein + clearmonbg ANIM_DEF_PARTNER + blendoff + goto AnimScript_82D5A0C + +AnimScript_82D5AB9: + fadetobg BG_IMPACT_OPPONENT + goto AnimScript_82D5A3C + +AnimScript_82D5AC0: + fadetobg BG_IMPACT_PLAYER + goto AnimScript_82D5A3C + +AnimScript_82D5AC7: + fadetobg BG_IMPACT_CONTESTS + goto AnimScript_82D5A3C + +Move_RETURN: + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createvisualtask sub_815F8A0, 0x2 + delay 0x2 + jumpargeq 0x7, 0x0, AnimScript_82D5B04 + jumpargeq 0x7, 0x1, AnimScript_82D5B56 + jumpargeq 0x7, 0x2, AnimScript_82D5BB6 + jumpargeq 0x7, 0x3, AnimScript_82D5CD1 + +AnimScript_82D5AFF: + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D5B04: + createsprite 0x857FE40, 0x2, 16, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + waitforvisualfinish + createsprite 0x857FE40, 0x2, 16, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + delay 0x5 + createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createvisualtask sub_8159210, 0x5, 139, 63 + goto AnimScript_82D5AFF + +AnimScript_82D5B56: + createsprite 0x857FE40, 0x2, 6, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + waitforvisualfinish + createsprite 0x857FE40, 0x2, 6, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + waitforvisualfinish + delay 0xB + createsprite 0x857FE28, 0x2, 5, 4 + delay 0x6 + createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createvisualtask sub_8159210, 0x5, 141, 63 + goto AnimScript_82D5AFF + +AnimScript_82D5BB6: + createsprite 0x857FE40, 0x2, 6, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + waitforvisualfinish + createsprite 0x857FE40, 0x2, 6, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + waitforvisualfinish + createsprite 0x857FE40, 0x2, 6, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + waitforvisualfinish + createsprite 0x857FE40, 0x2, 6, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + waitforvisualfinish + createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createvisualtask sub_8159210, 0x5, 123, 63 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + delay 0x8 + createsprite 0x8597358, 0x2, 10, 10, 1, 2 + createvisualtask sub_8159210, 0x5, 123, 63 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + delay 0x8 + createsprite 0x8597358, 0x2, 3, -5, 1, 2 + createvisualtask sub_8159210, 0x5, 123, 63 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + delay 0x8 + createsprite 0x8597358, 0x2, -5, 3, 1, 2 + createvisualtask sub_8159210, 0x5, 123, 63 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + goto AnimScript_82D5AFF + +AnimScript_82D5CD1: + createsprite 0x8597274, 0x2, 1, 0, 0, 6, 0 + waitforvisualfinish + createsprite 0x857FE40, 0x2, 16, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + delay 0x8 + createsprite 0x8597358, 0x2, 3, -5, 1, 2 + createvisualtask sub_8159210, 0x5, 123, 63 + waitforvisualfinish + createsprite 0x857FE40, 0x2, 12, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + delay 0x5 + createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createvisualtask sub_8159210, 0x5, 123, 63 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + waitforvisualfinish + delay 0x4 + createsprite 0x857FE40, 0x2, 8, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + delay 0x5 + createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createvisualtask sub_8159210, 0x5, 123, 63 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + waitforvisualfinish + delay 0x2 + createvisualtask sub_81169C0, 0x2, 0, 4, 5, 1 + createsprite 0x857FE40, 0x2, 4, 1, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createvisualtask sub_8159210, 0x5, 123, 63 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + createvisualtask sub_81169C0, 0x2, 0, 4, 5, 1 + waitforvisualfinish + createsprite 0x857FE40, 0x2, 4, 2, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + delay 0x5 + createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createvisualtask sub_8159210, 0x5, 123, 63 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + createvisualtask sub_81169C0, 0x2, 0, 4, 5, 1 + waitforvisualfinish + call AnimScript_82D5F09 + call AnimScript_82D5F09 + call AnimScript_82D5F09 + call AnimScript_82D5F09 + createsprite 0x8597358, 0x2, -10, -8, 1, 0 + createvisualtask sub_8159210, 0x5, 141, 63 + createvisualtask sub_80D51AC, 0x5, 1, 8, 0, 24, 1 + delay 0x6 + createsprite 0x8597358, 0x2, 10, 10, 1, 0 + createvisualtask sub_8159210, 0x5, 141, 63 + delay 0x6 + createsprite 0x8597358, 0x2, 3, -5, 1, 0 + createvisualtask sub_8159210, 0x5, 141, 63 + delay 0x6 + createsprite 0x8597358, 0x2, -5, 3, 1, 0 + createvisualtask sub_8159210, 0x5, 141, 63 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 0, 6, 0, 0 + goto AnimScript_82D5AFF + +AnimScript_82D5F09: + createsprite 0x857FE40, 0x2, 4, 3, 0 + createvisualtask sub_8159244, 0x5, 167, -64 + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_8159210, 0x5, 123, 63 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + createvisualtask sub_81169C0, 0x2, 0, 4, 5, 1 + waitforvisualfinish + return + +Move_COSMIC_POWER: + loadspritegfx 0x2741 + createvisualtask sub_8159244, 0x5, 243, 0 + playsewithpan SE_W322, 0 + createvisualtask sub_8117610, 0x2, 0, 0, 15, 0 + waitforvisualfinish + fadetobg BG_COSMIC + waitbgfadeout + createvisualtask sub_8117660, 0x2, 0, 128, 0, -1 + waitbgfadein + delay 0x46 + createvisualtask sub_8159210, 0x5, 228, -64 + createsprite 0x8592B7C, 0x2, -15, 0, 0, 0, 32, 60 + delay 0x8 + createsprite 0x8592B7C, 0x2, 12, -5, 0, 0, 32, 60 + delay 0x28 + createvisualtask sub_8117610, 0x2, 0, 15, 0, 0 + waitforvisualfinish + restorebg + waitbgfadeout + setarg 0x7, 0xFFFF + waitbgfadein + waitforvisualfinish + end + +Move_BLAST_BURN: + loadspritegfx 0x2733 + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W221, -64 + createsprite 0x8595428, 0x2, -32, 0, 24, 0, 0, 0 + createsprite 0x8595428, 0x2, -20, -10, 24, 0, 0, 0 + createsprite 0x8595428, 0x42, 0, -16, 24, 0, 0, 0 + createsprite 0x8595428, 0x42, 20, -10, 24, 0, 0, 0 + createsprite 0x8595428, 0x42, 32, 0, 24, 0, 0, 0 + createsprite 0x8595428, 0x42, 20, 10, 24, 0, 0, 0 + createsprite 0x8595428, 0x2, 0, 16, 24, 0, 0, 0 + createsprite 0x8595428, 0x2, -20, 10, 24, 0, 0, 0 + delay 0x19 + playsewithpan SE_W172B, -64 + createsprite 0x8595428, 0x2, -64, 0, 24, 0, 0, 0 + createsprite 0x8595428, 0x6, -40, -20, 24, 0, 0, 0 + createsprite 0x8595428, 0x46, 0, -32, 24, 0, 0, 0 + createsprite 0x8595428, 0x46, 40, -20, 24, 0, 0, 0 + createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 + createsprite 0x8595428, 0x42, 64, 0, 24, 0, 0, 0 + createsprite 0x8595428, 0x42, 40, 20, 24, 0, 0, 0 + createsprite 0x8595428, 0x2, 0, 32, 24, 0, 0, 0 + createsprite 0x8595428, 0x2, -40, 20, 24, 0, 0, 0 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x19 + playsewithpan SE_W172B, -64 + createsprite 0x8595428, 0x2, -96, 0, 24, 0, 0, 0 + createsprite 0x8595428, 0x6, -60, -30, 24, 0, 0, 0 + createsprite 0x8595428, 0x46, 0, -48, 24, 0, 0, 0 + createsprite 0x8595428, 0x46, 60, -30, 24, 0, 0, 0 + createsprite 0x8597358, 0x82, -4, 3, 1, 0 + createvisualtask sub_80D51AC, 0x5, 1, 12, 0, 20, 1 + createvisualtask sub_81162A4, 0x2, 2, 0, 10, 1 + createsprite 0x8595428, 0x42, 96, 0, 24, 0, 0, 0 + createsprite 0x8595428, 0x42, 60, 30, 24, 0, 0, 0 + createsprite 0x8595428, 0x2, 0, 48, 24, 0, 0, 0 + createsprite 0x8595428, 0x2, -60, 30, 24, 0, 0, 0 + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_ROCK_TOMB: + loadspritegfx 0x280A + loadspritegfx 0x274A + createvisualtask sub_81162A4, 0x2, 2, 0, 10, 1 + waitforvisualfinish + createsprite 0x8596C58, 0x82, 20, 12, 64, 114, 0 + delay 0x8 + createvisualtask sub_81162A4, 0x2, 0, 2, 3, 1 + playsewithpan SE_W070, +63 + delay 0x8 + createsprite 0x8596C58, 0x82, -20, 12, 64, 98, 0 + delay 0x8 + createvisualtask sub_81162A4, 0x2, 0, 2, 3, 1 + playsewithpan SE_W070, +63 + delay 0x8 + createsprite 0x8596C58, 0xC2, 3, 6, 64, 82, 0 + delay 0x8 + createvisualtask sub_81162A4, 0x2, 0, 2, 3, 1 + playsewithpan SE_W070, +63 + delay 0x8 + createsprite 0x8596C58, 0x82, -3, 13, 64, 66, 0 + delay 0x8 + createvisualtask sub_81162A4, 0x2, 0, 2, 3, 1 + playsewithpan SE_W070, +63 + delay 0x18 + playsewithpan SE_W063, +63 + createsprite 0x85967AC, 0x85, 1, 50 + createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 20, 1 + createvisualtask sub_81162A4, 0x2, 2, 0, 10, 1 + waitforvisualfinish + end + +Move_SILVER_WIND: + loadspritegfx 0x281F + panse_1B SE_W016, -64, +63, +2, 0x0 + playsewithpan SE_W234, 0 + delay 0x0 + monbg ANIM_DEF_PARTNER + monbgprio_29 + delay 0x0 + createvisualtask sub_8116664, 0xA, 1, 0, 0, 4, 0 + createvisualtask sub_8117780, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82D650C + fadetobg BG_BUG_OPPONENT + waitbgfadeout + createvisualtask sub_8117660, 0x5, 1536, 0, 0, -1 + +AnimScript_82D6352: + delay 0x0 + createvisualtask sub_8116620, 0xA, 1, 0, 4, 4, 0 + waitbgfadein + createsprite 0x8592830, 0xC2, -32, 16, 0, 6, 2, 3, 1 + createsprite 0x8592830, 0xC2, -8, 18, 64, 3, 2, 2, 1 + createsprite 0x8592830, 0x78, -24, 18, 90, 5, 1, 2, 1 + createsprite 0x8592830, 0x78, -40, 14, 128, 4, 1, 2, 1 + delay 0x0 + createsprite 0x8592848, 0xC2, -32, 16, 0, 6, 2, 3, 1 + createsprite 0x8592848, 0xC2, -8, 18, 64, 3, 2, 2, 1 + createsprite 0x8592848, 0x78, -24, 18, 90, 5, 1, 2, 1 + createsprite 0x8592848, 0x78, -40, 14, 128, 4, 1, 2, 1 + delay 0x0 + createsprite 0x8592860, 0xC2, -32, 16, 0, 6, 2, 3, 1 + createsprite 0x8592860, 0xC2, -8, 18, 64, 3, 2, 2, 1 + createsprite 0x8592860, 0x78, -24, 18, 90, 5, 1, 2, 1 + createsprite 0x8592860, 0x78, -40, 14, 128, 4, 1, 2, 1 + delay 0x6 + createsprite 0x8592830, 0xC2, -4, 16, 0, 6, 1, 2, 1 + createsprite 0x8592830, 0xC2, -16, 12, 192, 5, 2, 3, 1 + delay 0x0 + createsprite 0x8592848, 0xC2, -4, 16, 0, 6, 1, 2, 1 + createsprite 0x8592848, 0xC2, -16, 12, 192, 5, 2, 3, 1 + delay 0x0 + createsprite 0x8592860, 0xC2, -4, 16, 0, 6, 1, 2, 1 + createsprite 0x8592860, 0xC2, -16, 12, 192, 5, 2, 3, 1 + waitforvisualfinish + playsewithpan SE_W016B, +63 + clearmonbg ANIM_DEF_PARTNER + delay 0x0 + restorebg + waitbgfadeout + createvisualtask sub_8116664, 0xA, 1, 0, 4, 0, 0 + setarg 0x7, 0xFFFF + waitbgfadein + end + +AnimScript_82D650C: + fadetobg BG_BUG_PLAYER + waitbgfadeout + createvisualtask sub_8117660, 0x5, -1536, 0, 0, -1 + goto AnimScript_82D6352 + +Move_SNATCH: + playsewithpan SE_W036, -64 + createvisualtask sub_80D5C50, 0x5, 0, -12, 4, 10, 10, 12, 6 + end + +Move_DIVE: + loadspritegfx 0x2820 + loadspritegfx 0x2821 + choosetwoturnanim AnimScript_82D654C, AnimScript_82D65A1 + +AnimScript_82D654C: + loadspritegfx 0x27AC + playsewithpan SE_W029, -64 + createsprite 0x8596490, 0x2, 0, 0, 13, 336 + waitforvisualfinish + playsewithpan SE_W291, -64 + createsprite 0x85964CC, 0x3, 0 + call AnimScript_82D658A + call AnimScript_82D658A + call AnimScript_82D658A + call AnimScript_82D658A + call AnimScript_82D658A + end + +AnimScript_82D658A: + createsprite 0x85964E4, 0x5, 0, 0 + createsprite 0x85964E4, 0x5, 1, 0 + return + +AnimScript_82D65A1: + loadspritegfx 0x27A4 + loadspritegfx 0x27AB + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W153, +63 + createsprite 0x85964CC, 0x83, 1 + call AnimScript_82D65E0 + call AnimScript_82D65E0 + call AnimScript_82D65E0 + call AnimScript_82D65E0 + call AnimScript_82D65E0 + delay 0xC + call AnimScript_82CB102 + waitforvisualfinish + visible ANIM_ATTACKER + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D65E0: + createsprite 0x85964E4, 0x85, 0, 1 + createsprite 0x85964E4, 0x85, 1, 1 + return + +Move_ROCK_BLAST: + loadspritegfx 0x274A + loadspritegfx 0x2797 + createsprite 0x857FE28, 0x2, 4, 6 + delay 0x3 + playsewithpan SE_W207, -64 + createsprite 0x8596C98, 0x82, 16, 0, 0, 0, 25, 257 + waitforvisualfinish + createsprite 0x8597358, 0x83, 0, 0, 1, 1 + playsewithpan SE_W088, +63 + createsprite 0x8596B1C, 0x82, 0, 0, 20, 24, 14, 2 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 5, 1 + createsprite 0x8596B1C, 0x82, 5, 0, -20, 24, 14, 1 + createsprite 0x8596B1C, 0x82, 0, 5, 20, -24, 14, 2 + createsprite 0x8596B1C, 0x82, -5, 0, -20, -24, 14, 2 + waitforvisualfinish + end + +Move_OVERHEAT: + loadspritegfx 0x272D + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x120C + createsprite 0x8597274, 0x2, 1, 1, 0, 5, 28 + waitforvisualfinish + createvisualtask sub_8117C44, 0x5 + waitforvisualfinish + createvisualtask sub_8117CA0, 0x5, 0, 1 + delay 0x1 + createvisualtask sub_8117DD8, 0x5, 0 + delay 0x1 + playsewithpan SE_W082, -64 + createvisualtask sub_8117CA0, 0x5, 1, 0 + delay 0x1 + createsprite 0x8597274, 0x2, 2, 1, 0, 13, 28 + createvisualtask sub_80D51AC, 0x5, 0, 2, 0, 15, 1 + waitforvisualfinish + playsewithpan SE_W172B, -64 + createsprite 0x8596FB0, 0x2, 1, 0, 30, 25, -20 + createsprite 0x8596FB0, 0x2, 1, 32, 30, 25, -20 + createsprite 0x8596FB0, 0x2, 1, 64, 30, 25, -20 + createsprite 0x8596FB0, 0x2, 1, 96, 30, 25, -20 + createsprite 0x8596FB0, 0x2, 1, 128, 30, 25, -20 + createsprite 0x8596FB0, 0x42, 1, 160, 30, 25, -20 + createsprite 0x8596FB0, 0x42, 1, 192, 30, 25, -20 + createsprite 0x8596FB0, 0x42, 1, 224, 30, 25, -20 + delay 0x5 + createsprite 0x8596FB0, 0x2, 1, 0, 30, 25, 0 + createsprite 0x8596FB0, 0x2, 1, 32, 30, 25, 0 + createsprite 0x8596FB0, 0x2, 1, 64, 30, 25, 0 + createsprite 0x8596FB0, 0x2, 1, 96, 30, 25, 0 + createsprite 0x8596FB0, 0x2, 1, 128, 30, 25, 0 + createsprite 0x8596FB0, 0x42, 1, 160, 30, 25, 0 + createsprite 0x8596FB0, 0x42, 1, 192, 30, 25, 0 + createsprite 0x8596FB0, 0x42, 1, 224, 30, 25, 0 + delay 0x5 + createsprite 0x8596FB0, 0x2, 1, 0, 30, 25, 10 + createsprite 0x8596FB0, 0x2, 1, 32, 30, 25, 10 + createsprite 0x8596FB0, 0x2, 1, 64, 30, 25, 10 + createsprite 0x8596FB0, 0x2, 1, 96, 30, 25, 10 + createsprite 0x8596FB0, 0x2, 1, 128, 30, 25, 10 + createsprite 0x8596FB0, 0x42, 1, 160, 30, 25, 10 + createsprite 0x8596FB0, 0x42, 1, 192, 30, 25, 10 + createsprite 0x8596FB0, 0x42, 1, 224, 30, 25, 10 + delay 0x5 + waitforvisualfinish + createsprite 0x8597358, 0x83, -5, 3, 1, 0 + playsewithpan SE_W007, +63 + createvisualtask sub_80D51AC, 0x2, 1, 10, 0, 25, 1 + delay 0x6 + createsprite 0x8597358, 0x83, 8, -5, 1, 0 + playsewithpan SE_W007, +63 + delay 0x8 + createsprite 0x8597358, 0x83, 10, 10, 1, 0 + playsewithpan SE_W007, +63 + delay 0x8 + createsprite 0x8597358, 0x83, 0, 0, 1, 0 + playsewithpan SE_W007, +63 + createvisualtask sub_8117DD8, 0x5, 1 + delay 0x1 + createsprite 0x8597274, 0x2, 2, -1, 0, 13, 19026 + createvisualtask sub_80D51AC, 0x5, 0, 3, 0, 15, 1 + waitforvisualfinish + createvisualtask sub_8117D3C, 0x5, 0, 1 + delay 0x1 + createsprite 0x8597274, 0x2, 1, 1, 5, 0, 28 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + waitforvisualfinish + delay 0xF + createvisualtask sub_8117D3C, 0x5, 1, 0 + delay 0x1 + createsprite 0x8597274, 0x2, 2, 0, 13, 0, 19026 + waitforvisualfinish + createvisualtask sub_8117C70, 0x5 + waitforvisualfinish + end + +Move_HYDRO_CANNON: + loadspritegfx 0x27A5 + loadspritegfx 0x27A4 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + playsewithpan SE_W057, -64 + createsprite 0x85951C0, 0x82 + delay 0xA + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + delay 0x1E + panse_1B SE_W056, -64, +63, +2, 0x0 + call AnimScript_82D6A50 + createvisualtask sub_80D51AC, 0x5, 1, 10, 0, 40, 1 + createsprite 0x8597388, 0x82, 0, 0, 1, 0 + call AnimScript_82D6A50 + createsprite 0x8597388, 0x82, 0, 0, 1, 0 + call AnimScript_82D6A50 + createsprite 0x8597388, 0x82, 0, 0, 1, 0 + call AnimScript_82D6A50 + createsprite 0x8597388, 0x82, 0, 0, 1, 0 + call AnimScript_82D6A50 + createsprite 0x8597388, 0x82, 0, 0, 1, 0 + call AnimScript_82D6A50 + createsprite 0x8597388, 0x82, 0, 0, 1, 0 + waitforvisualfinish + createvisualtask sub_8115F10, 0x2, 257, 257, 257 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D6A50: + createsprite 0x85951D8, 0x82, 10, -10, 0, 0, 15, 257 + delay 0x1 + createsprite 0x85951D8, 0x82, 10, -10, 0, 0, 15, 257 + delay 0x1 + createsprite 0x85951D8, 0x82, 10, -10, 0, 0, 15, 257 + delay 0x1 + createsprite 0x85951D8, 0x82, 10, -10, 0, 0, 15, 257 + delay 0x1 + createsprite 0x85951D8, 0x82, 10, -10, 0, 0, 15, 257 + return + +Move_ASTONISH: + loadspritegfx 0x2821 + playsewithpan SE_W227, -64 + createsprite 0x857FE28, 0x2, 4, 6 + delay 0x19 + createsprite 0x85964E4, 0x85, 0, 1 + playsewithpan SE_W166, +63 + createsprite 0x85964E4, 0x85, 1, 1 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 5, 1 + createvisualtask sub_8106020, 0x3 + waitforvisualfinish + end + +Move_SEISMIC_TOSS: + loadspritegfx 0x2797 + loadspritegfx 0x274A + setarg 0x7, 0x0 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + waitforvisualfinish + createvisualtask sub_81114EC, 0x3 + delay 0x1 + fadetobg BG_SEISMICTOSS_SKUUPPERCUT + waitbgfadeout + createvisualtask sub_811152C, 0x3 + playsewithpan SE_W327, 0 + waitbgfadein + waitforvisualfinish + createvisualtask sub_8111590, 0x3 + jumpargeq 0x7, 0x0, AnimScript_82D6B53 + jumpargeq 0x7, 0x1, AnimScript_82D6B64 + jumpargeq 0x7, 0x2, AnimScript_82D6B7C + +AnimScript_82D6B48: + restorebg + waitbgfadeout + setarg 0x7, 0xFFF + waitbgfadein + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +AnimScript_82D6B53: + call AnimScript_82D6B9B + delay 0x10 + call AnimScript_82D6BFC + goto AnimScript_82D6B48 + +AnimScript_82D6B64: + call AnimScript_82D6B9B + delay 0xE + call AnimScript_82D6BFC + delay 0xE + call AnimScript_82D6B9B + goto AnimScript_82D6B48 + +AnimScript_82D6B7C: + call AnimScript_82D6BFC + delay 0xA + call AnimScript_82D6B9B + delay 0xA + call AnimScript_82D6BFC + delay 0xA + call AnimScript_82D6B9B + goto AnimScript_82D6B48 + +AnimScript_82D6B9B: + createsprite 0x8597358, 0x83, -10, -8, 1, 1 + playsewithpan SE_W070, +63 + createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 5, 1 + createsprite 0x8596CB0, 0x82, -12, 27, 2, 3 + createsprite 0x8596CB0, 0x82, 8, 28, 3, 4 + createsprite 0x8596CB0, 0x82, -4, 30, 2, 3 + createsprite 0x8596CB0, 0x82, 12, 25, 4, 4 + return + +AnimScript_82D6BFC: + createsprite 0x8597358, 0x83, 10, -8, 1, 1 + playsewithpan SE_W088, +63 + createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 5, 1 + createsprite 0x8596CB0, 0x82, -12, 32, 3, 4 + createsprite 0x8596CB0, 0x82, 8, 31, 2, 2 + createsprite 0x8596CB0, 0x82, -4, 28, 2, 3 + createsprite 0x8596CB0, 0x82, 12, 30, 4, 3 + return + +Move_MAGIC_COAT: + loadspritegfx 0x27BA + setalpha 0x1000 + waitplaysewithpan SE_W112, -64, 0xF + createsprite 0x85965C0, 0x3, 40, 0, 10170 + waitforvisualfinish + delay 0x1 + blendoff + end + +Move_WATER_PULSE: + loadspritegfx 0x27AB + loadspritegfx 0x2830 + monbg ANIM_TARGET + monbgprio_28 ANIM_TARGET + playsewithpan SE_W145C, -64 + createsprite 0x8597274, 0x2, 1, 0, 0, 7, 29472 + delay 0xA + createsprite 0x85952F8, 0x42, 100, 100, 8, 1, 20, 40, 0 + createsprite 0x85952F8, 0x42, 20, 100, 16, 2, 10, 35, 1 + createsprite 0x85952F8, 0x42, 200, 80, 8, 1, 40, 20, 0 + createsprite 0x85952F8, 0x42, 80, 60, 10, 3, 20, 50, 0 + createsprite 0x85952F8, 0x42, 140, 100, 16, 1, 20, 30, 1 + playsewithpan SE_W145C, +63 + waitforvisualfinish + playsewithpan SE_W202, -64 + createsprite 0x8593470, 0x82, 0, 0, 40, 15 + delay 0x5 + playsewithpan SE_W202, -64 + createsprite 0x8593470, 0x82, 0, 0, 40, 15 + delay 0x5 + playsewithpan SE_W202, -64 + createsprite 0x8593470, 0x82, 0, 0, 40, 15 + delay 0xD + createvisualtask sub_80D51AC, 0x2, 1, 0, 8, 18, 1 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 1, 7, 0, 29472 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +Move_PSYCHO_BOOST: + loadspritegfx 0x27E4 + monbg ANIM_ATK_PARTNER + fadetobg BG_PSYCHIC + waitbgfadeout + createvisualtask sub_815A5C8, 0x5 + waitbgfadein + delay 0x6 + createvisualtask sub_8115A04, 0x2, 1, 2, 8, 0, 10, 0 + delay 0x0 + monbgprio_28 ANIM_ATTACKER + setalpha 0x808 + delay 0xA + createvisualtask sub_80D51AC, 0x2, 0, 3, 0, 240, 0 + loopsewithpan SE_W060B, -64, 0xE, 0xA + createsprite 0x8596920, 0x2 + delay 0x6E + loopsewithpan SE_W060B, -64, 0x7, 0xA + waitforvisualfinish + createvisualtask sub_80D52D0, 0x2, 1, -8, 1, 24, 1 + playsewithpan SE_W043, +63 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + call AnimScript_82D7CDD + end + +Move_KNOCK_OFF: + loadspritegfx 0x2825 + loadspritegfx 0x2797 + createsprite 0x857FE28, 0x2, 4, 6 + delay 0x4 + playsewithpan SE_W233, +63 + createsprite 0x85CE984, 0x82, -16, -16 + delay 0x8 + createsprite 0x859728C, 0x2, 31, 5, 1, 0x7FFF, 10, 0, 0 + createsprite 0x8597358, 0x83, 0, 0, 1, 2 + playsewithpan SE_W004, +63 + createsprite 0x857FE70, 0x2, 1, -12, 10, 0, 3 + createsprite 0x857FE58, 0x2, 0, 0, 5 + delay 0x3 + createvisualtask sub_80D5484, 0x2, 1, 0, 3, 6, 1 + delay 0x5 + createsprite 0x857FE58, 0x2, 1, 0, 6 + delay 0xA + waitforvisualfinish + end + +Move_DOOM_DESIRE: + createvisualtask sub_8114960, 0x2 + delay 0x1 + monbg ANIM_ATK_PARTNER + createvisualtask sub_811489C, 0x5, 1, 0 + createsprite 0x8597274, 0x2, 1, 1, 0, 4, 0 + waitforvisualfinish + setalpha 0x808 + playsewithpan SE_W060, -64 + createvisualtask sub_80D6064, 0x5, -4, -4, 15, 0, 1 + waitforvisualfinish + delay 0x14 + createvisualtask sub_811489C, 0x5, 1, 1 + createsprite 0x8597274, 0x2, 1, 1, 4, 0, 0 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + blendoff + end + +Move_SKY_UPPERCUT: + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + fadetobg BG_SEISMICTOSS_SKUUPPERCUT + waitbgfadeout + playsewithpan SE_W327, -64 + createvisualtask sub_810DABC, 0x5, 55 + waitbgfadein + setalpha 0x80C + delay 0x26 + createsprite 0x857FE70, 0x2, 0, 28, 0, 0, 5 + delay 0x4 + createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 6, 1 + playsewithpan SE_W233B, +63 + createsprite 0x8597358, 0x83, -28, 28, 1, 1 + delay 0x1 + playsewithpan SE_W233B, +63 + createsprite 0x8597358, 0x83, -15, 8, 1, 1 + playsewithpan SE_W233B, +63 + delay 0x1 + playsewithpan SE_W233B, +63 + createsprite 0x8597358, 0x83, -5, -12, 1, 1 + delay 0x1 + playsewithpan SE_W233B, +63 + createsprite 0x8597358, 0x83, 0, -32, 1, 1 + delay 0x1 + playsewithpan SE_W233B, +63 + createsprite 0x8597358, 0x83, 5, -52, 1, 1 + createsprite 0x857FE70, 0x2, 1, -26, 16, 1, 4 + delay 0x4 + createvisualtask sub_80D5484, 0x2, 1, 0, 3, 6, 1 + delay 0x1E + createsprite 0x857FE58, 0x2, 0, 0, 6 + delay 0x4 + createsprite 0x857FE58, 0x2, 1, 0, 6 + clearmonbg ANIM_DEF_PARTNER + blendoff + restorebg + waitbgfadeout + setarg 0x7, 0xFFFF + waitbgfadein + end + +Move_SECRET_POWER: + createvisualtask sub_8117C24, 0x5 + jumpargeq 0x0, 0x0, Move_NEEDLE_ARM + jumpargeq 0x0, 0x1, Move_MAGICAL_LEAF + jumpargeq 0x0, 0x2, Move_MUD_SHOT + jumpargeq 0x0, 0x3, Move_WATERFALL + jumpargeq 0x0, 0x4, Move_SURF + jumpargeq 0x0, 0x5, Move_BUBBLE_BEAM + jumpargeq 0x0, 0x6, Move_ROCK_THROW + jumpargeq 0x0, 0x7, Move_BITE + jumpargeq 0x0, 0x8, Move_STRENGTH + goto Move_SLAM + +Move_TWISTER: + loadspritegfx 0x274F + loadspritegfx 0x2797 + loadspritegfx 0x274A + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + playsewithpan SE_W239, +63 + createsprite 0x85923A8, 0x82, 120, 70, 5, 70, 30 + delay 0x1 + createsprite 0x85923A8, 0x82, 115, 55, 6, 60, 25 + delay 0x1 + createsprite 0x85923A8, 0x82, 115, 60, 7, 60, 30 + createsprite 0x85923A8, 0x82, 115, 55, 10, 60, 30 + delay 0x3 + createsprite 0x8596CC8, 0x82, 100, 50, 4, 50, 26 + delay 0x1 + createsprite 0x85923A8, 0x82, 105, 25, 8, 60, 20 + delay 0x1 + createsprite 0x85923A8, 0x82, 115, 40, 10, 48, 30 + delay 0x3 + createsprite 0x8596CC8, 0x82, 120, 30, 6, 45, 25 + createsprite 0x85923A8, 0x82, 115, 35, 10, 60, 30 + delay 0x3 + createsprite 0x8596CC8, 0x82, 105, 20, 8, 40, 0 + delay 0x3 + createsprite 0x85923A8, 0x82, 20, 255, 15, 32, 0 + createsprite 0x85923A8, 0x82, 110, 10, 8, 32, 20 + waitforvisualfinish + createsprite 0x8597358, 0x83, -32, -16, 1, 3 + playsewithpan SE_W004, +63 + createvisualtask sub_80D5484, 0x2, 1, 3, 0, 12, 1 + createvisualtask sub_80D5484, 0x2, 3, 3, 0, 12, 1 + delay 0x4 + createsprite 0x85973A0, 0x83, 1, 3 + playsewithpan SE_W004, +63 + delay 0x4 + createsprite 0x85973A0, 0x83, 1, 3 + playsewithpan SE_W004, +63 + delay 0x4 + createsprite 0x8597358, 0x83, 32, 20, 1, 3 + playsewithpan SE_W004, +63 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_MAGICAL_LEAF: + loadspritegfx 0x274F + loadspritegfx 0x27B0 + loadspritegfx 0x2797 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + delay 0x1 + loopsewithpan SE_W077, -64, 0xA, 0x5 + createvisualtask sub_81007C4, 0x5 + createsprite 0x8592390, 0x2, -3, -2, 10 + delay 0x2 + createsprite 0x8592390, 0x2, -1, -1, 15 + delay 0x2 + createsprite 0x8592390, 0x2, -4, -4, 7 + delay 0x2 + createsprite 0x8592390, 0x2, 3, -3, 11 + delay 0x2 + createsprite 0x8592390, 0x2, -1, -6, 8 + delay 0x2 + createsprite 0x8592390, 0x2, 2, -1, 12 + delay 0x2 + createsprite 0x8592390, 0x2, -3, -4, 13 + delay 0x2 + createsprite 0x8592390, 0x2, 4, -5, 7 + delay 0x2 + createsprite 0x8592390, 0x2, 2, -6, 11 + delay 0x2 + createsprite 0x8592390, 0x2, -3, -5, 8 + delay 0x3C + playsewithpan SE_W013B, -64 + createsprite 0x85923D8, 0x83, 20, -10, 20, 0, 32, 20, 0 + createsprite 0x85923D8, 0x83, 20, -10, 20, 0, 32, -20, 0 + delay 0x1E + playsewithpan SE_W013, +63 + createsprite 0x8597358, 0x84, -10, -4, 1, 2 + createsprite 0x8597358, 0x84, 10, 4, 1, 2 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 + delay 0x14 + setarg 0x7, 0xFFFF + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Move_ICE_BALL: + loadspritegfx 0x273B + loadspritegfx 0x279D + createvisualtask sub_810CDFC, 0x5, 0 + jumpargeq 0x0, 0x4, AnimScript_82D731B + +AnimScript_82D72BB: + playsewithpan SE_W196, -64 + createsprite 0x8595DE4, 0x82, 15, 0, -12, -16, 30, -40 + delay 0x1C + playsewithpan SE_W280, +63 + createvisualtask sub_810CDFC, 0x5, 0 + jumpargeq 0x0, 0x0, AnimScript_82D732C + jumpargeq 0x0, 0x1, AnimScript_82D735B + jumpargeq 0x0, 0x2, AnimScript_82D7394 + jumpargeq 0x0, 0x3, AnimScript_82D73D7 + jumpargeq 0x0, 0x4, AnimScript_82D741F + +AnimScript_82D7309: + createvisualtask sub_810CDFC, 0x5, 0 + jumpargeq 0x0, 0x4, AnimScript_82D7322 + +AnimScript_82D731A: + end + +AnimScript_82D731B: + fadetobg BG_ICE + goto AnimScript_82D72BB + +AnimScript_82D7322: + waitbgfadein + delay 0x2D + restorebg + waitbgfadein + goto AnimScript_82D731A + +AnimScript_82D732C: + createvisualtask sub_80D6388, 0x2, 0, 1, 8, 1, 0 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + goto AnimScript_82D7309 + +AnimScript_82D735B: + createvisualtask sub_80D6388, 0x2, 0, 1, 10, 1, 0 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + goto AnimScript_82D7309 + +AnimScript_82D7394: + createvisualtask sub_80D6388, 0x2, 0, 1, 14, 1, 0 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + goto AnimScript_82D7309 + +AnimScript_82D73D7: + createvisualtask sub_80D6388, 0x2, 0, 1, 18, 1, 0 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + goto AnimScript_82D7309 + +AnimScript_82D741F: + createvisualtask sub_80D6388, 0x2, 0, 1, 30, 1, 0 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + call AnimScript_82D7467 + goto AnimScript_82D7309 + +AnimScript_82D7467: + createsprite 0x8595DFC, 0x84, -12, -16 + return + +Move_WEATHER_BALL: + loadspritegfx 0x282B + createsprite 0x857FE40, 0x2, 8, 1, 0 + delay 0x8 + playsewithpan SE_W207, -64 + createsprite 0x853EE38, 0x2 + waitforvisualfinish + delay 0xF + playsewithpan SE_W197, 0 + createsprite 0x859728C, 0x2, 31, 5, 1, 0x7FFF, 10, 0, 0 + waitforvisualfinish + createvisualtask sub_81604F0, 0x2 + delay 0x1 + jumpargeq 0x7, 0x0, AnimScript_82D74DE + jumpargeq 0x7, 0x1, AnimScript_82D751B + jumpargeq 0x7, 0x2, AnimScript_82D757F + jumpargeq 0x7, 0x3, AnimScript_82D75E3 + jumpargeq 0x7, 0x4, AnimScript_82D7683 + +AnimScript_82D74DE: + loadspritegfx 0x2797 + createsprite 0x853EE50, 0x82, -30, -100, 25, 1, 0, 0 + waitforvisualfinish + playsewithpan SE_W025B, +63 + createsprite 0x8597358, 0x84, -10, 0, 1, 2 + createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 8, 1 + waitforvisualfinish + end + +AnimScript_82D751B: + loadspritegfx 0x272D + createsprite 0x859559C, 0x82, -30, -100, 25, 1, 40, 10 + playsewithpan SE_W172, +63 + delay 0xA + createsprite 0x859559C, 0x82, -30, -100, 25, 1, -40, 20 + playsewithpan SE_W172, +63 + delay 0xA + createsprite 0x859559C, 0x82, -30, -100, 25, 1, 0, 0 + playsewithpan SE_W172, +63 + waitforvisualfinish + playsewithpan SE_W172B, +63 + createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 8, 1 + waitforvisualfinish + end + +AnimScript_82D757F: + loadspritegfx 0x27AB + createsprite 0x8595328, 0x82, -30, -100, 25, 1, 50, 10 + playsewithpan SE_W152, +63 + delay 0x8 + createsprite 0x8595328, 0x82, -30, -100, 25, 1, -20, 20 + playsewithpan SE_W152, +63 + delay 0xD + createsprite 0x8595328, 0x82, -30, -100, 25, 1, 0, 0 + playsewithpan SE_W152, +63 + waitforvisualfinish + createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 8, 1 + playsewithpan SE_W202, +63 + waitforvisualfinish + end + +AnimScript_82D75E3: + loadspritegfx 0x274A + createsprite 0x8596CE0, 0x82, -30, -100, 25, 1, 30, 0 + playsewithpan SE_W088, +63 + delay 0x5 + createsprite 0x8596CE0, 0x82, -30, -100, 25, 1, -40, 20 + playsewithpan SE_W088, +63 + delay 0xE + createsprite 0x8596CE0, 0x82, -30, -100, 25, 1, 0, 0 + playsewithpan SE_W088, +63 + waitforvisualfinish + playsewithpan SE_W070, +63 + createsprite 0x8596CB0, 0x82, -12, 27, 2, 3 + createsprite 0x8596CB0, 0x82, 8, 28, 3, 4 + createsprite 0x8596CB0, 0x82, -4, 30, 2, 3 + createsprite 0x8596CB0, 0x82, 12, 25, 4, 4 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 + waitforvisualfinish + end + +AnimScript_82D7683: + loadspritegfx 0x2817 + loadspritegfx 0x279D + createsprite 0x8595D44, 0x82, -30, -100, 25, 25, -40, 20 + playsewithpan SE_W258, +63 + delay 0xA + createsprite 0x8595D44, 0x82, -30, -100, 25, 25, 40, 0 + playsewithpan SE_W258, +63 + delay 0xA + createsprite 0x8595D44, 0x82, -30, -100, 25, 25, 0, 0 + playsewithpan SE_W258, +63 + waitforvisualfinish + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 + playsewithpan SE_W196, +63 + call AnimScript_82D7720 + waitforvisualfinish + end + +Move_COUNT: + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W003, +63 + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +AnimScript_82D7720: + createsprite 0x8595B68, 0x82, -10, -10, 0 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B80, 0x82, 10, 20, 0 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B68, 0x82, -5, 10, 0 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B80, 0x82, 17, -12, 0 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B80, 0x82, -15, 15, 0 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B80, 0x82, 0, 0, 0 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B68, 0x82, 20, 2, 0 + playsewithpan SE_W196, +63 + return + +AnimScript_82D77A4: + createsprite 0x8595B68, 0x82, -10, -10, 1 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B80, 0x82, 10, 20, 1 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B68, 0x82, -29, 0, 1 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B80, 0x82, 29, -20, 1 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B68, 0x82, -5, 10, 1 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B80, 0x82, 17, -12, 1 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B68, 0x82, -20, 0, 1 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B80, 0x82, -15, 15, 1 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B80, 0x82, 26, -5, 1 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B80, 0x82, 0, 0, 1 + playsewithpan SE_W196, +63 + delay 0x4 + createsprite 0x8595B68, 0x82, 20, 2, 1 + playsewithpan SE_W196, +63 + return + +AnimScript_82D7874: + loopsewithpan SE_W196, +63, 0x6, 0x4 + createsprite 0x8595C04, 0x82, 0, 24, 0 + delay 0x4 + createsprite 0x8595C04, 0x82, 8, 24, 0 + createsprite 0x8595C04, 0x82, -8, 24, 0 + delay 0x4 + createsprite 0x8595C04, 0x82, 16, 24, 0 + createsprite 0x8595C04, 0x82, -16, 24, 0 + delay 0x4 + createsprite 0x8595C04, 0x82, 24, 24, 0 + createsprite 0x8595C04, 0x82, -24, 24, 0 + delay 0x4 + createsprite 0x8595C04, 0x82, 32, 24, 0 + createsprite 0x8595C04, 0x82, -32, 24, 0 + return + +AnimScript_82D78F8: + loopsewithpan SE_W196, +63, 0x6, 0x4 + createsprite 0x8595C04, 0x82, 0, 24, 1 + delay 0x4 + createsprite 0x8595C04, 0x82, 8, 24, 1 + createsprite 0x8595C04, 0x82, -8, 24, 1 + delay 0x4 + createsprite 0x8595C04, 0x82, 16, 24, 1 + createsprite 0x8595C04, 0x82, -16, 24, 1 + delay 0x4 + createsprite 0x8595C04, 0x82, 24, 24, 1 + createsprite 0x8595C04, 0x82, -24, 24, 1 + delay 0x4 + createsprite 0x8595C04, 0x82, 32, 24, 1 + createsprite 0x8595C04, 0x82, -32, 24, 1 + delay 0x4 + createsprite 0x8595C04, 0x82, 40, 24, 1 + createsprite 0x8595C04, 0x82, -40, 24, 1 + delay 0x4 + createsprite 0x8595C04, 0x82, 48, 24, 1 + createsprite 0x8595C04, 0x82, -48, 24, 1 + return + +AnimScript_82D79B4: + createsprite 0x8592B7C, 0x2, -15, 0, 0, 0, 32, 60 + delay 0x8 + createsprite 0x8592B7C, 0x2, 12, -5, 0, 0, 32, 60 + delay 0x8 + return + +AnimScript_82D79DF: + playsewithpan SE_W071B, -64 + createsprite 0x8592F2C, 0x2, 0, -5, 0, 0 + delay 0x7 + createsprite 0x8592F2C, 0x2, -15, 10, 0, 0 + delay 0x7 + createsprite 0x8592F2C, 0x2, -15, -15, 0, 0 + delay 0x7 + createsprite 0x8592F2C, 0x2, 10, -5, 0, 0 + delay 0x7 + return + +AnimScript_82D7A28: + playsewithpan SE_W071B, +63 + createsprite 0x8592F2C, 0x82, 0, -5, 1, 0 + delay 0x7 + createsprite 0x8592F2C, 0x82, -15, 10, 1, 0 + delay 0x7 + createsprite 0x8592F2C, 0x82, -15, -15, 1, 0 + delay 0x7 + createsprite 0x8592F2C, 0x82, 10, -5, 1, 0 + delay 0x7 + return + +AnimScript_82D7A71: + createsprite 0x8596240, 0x82, 10, 10, 0 + playsewithpan SE_W092, +63 + delay 0x6 + createsprite 0x8596240, 0x82, 20, -20, 0 + playsewithpan SE_W092, +63 + delay 0x6 + createsprite 0x8596240, 0x82, -20, 15, 0 + playsewithpan SE_W092, +63 + delay 0x6 + createsprite 0x8596240, 0x82, 0, 0, 0 + playsewithpan SE_W092, +63 + delay 0x6 + createsprite 0x8596240, 0x82, -20, -20, 0 + playsewithpan SE_W092, +63 + delay 0x6 + createsprite 0x8596240, 0x82, 16, -8, 0 + playsewithpan SE_W092, +63 + return + +AnimScript_82D7AE2: + createsprite 0x8596258, 0x2, 10, 10, 0 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, 20, -20, 0 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, -20, 15, 0 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, 0, 0, 0 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, -20, -20, 0 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, 16, -8, 0 + playsewithpan SE_W145C, +63 + return + +AnimScript_82D7B53: + createsprite 0x8596258, 0x2, 10, 10, 1 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, -28, -10, 1 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, 20, -20, 1 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, -20, 15, 1 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, 0, 0, 1 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, 27, 8, 1 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, -20, -20, 1 + playsewithpan SE_W145C, +63 + delay 0x6 + createsprite 0x8596258, 0x2, 16, -8, 1 + playsewithpan SE_W145C, +63 + return + +AnimScript_82D7BEA: + playsewithpan SE_W085B, +63 + createsprite 0x8595810, 0x82, 5, 0, 5, 0 + delay 0x2 + createsprite 0x8595810, 0x82, -5, 10, 5, 1 + delay 0x2 + createsprite 0x8595810, 0x82, 15, 20, 5, 2 + delay 0x2 + createsprite 0x8595810, 0x82, -15, -10, 5, 0 + delay 0x2 + createsprite 0x8595810, 0x82, 25, 0, 5, 1 + delay 0x2 + createsprite 0x8595810, 0x82, -8, 8, 5, 2 + delay 0x2 + createsprite 0x8595810, 0x82, 2, -8, 5, 0 + delay 0x2 + createsprite 0x8595810, 0x82, -20, 15, 5, 1 + return + +AnimScript_82D7C75: + loopsewithpan SE_W146, +63, 0xD, 0x6 + createsprite 0x859725C, 0x82, 0, -15, 0, 3, 90 + createsprite 0x859725C, 0x82, 0, -15, 51, 3, 90 + createsprite 0x859725C, 0x82, 0, -15, 102, 3, 90 + createsprite 0x859725C, 0x82, 0, -15, 153, 3, 90 + createsprite 0x859725C, 0x82, 0, -15, 204, 3, 90 + return + +AnimScript_82D7CD1: + fadetobg BG_PSYCHIC + waitbgfadeout + createvisualtask sub_815A504, 0x5 + waitbgfadein + return + +AnimScript_82D7CDD: + restorebg + waitbgfadeout + setarg 0x7, 0xFFFF + waitbgfadein + return + +AnimScript_82D7CE5: + jumpifcontest AnimScript_82D7CFE + fadetobg BG_FLYING + waitbgfadeout + createvisualtask sub_8117660, 0x5, -2304, 768, 1, -1 + +AnimScript_82D7CFC: + waitbgfadein + return + +AnimScript_82D7CFE: + fadetobg BG_FLYING_CONTESTS + waitbgfadeout + createvisualtask sub_8117660, 0x5, 2304, 768, 0, -1 + goto AnimScript_82D7CFC + +AnimScript_82D7D15: + restorebg + waitbgfadeout + setarg 0x7, 0xFFFF + waitbgfadein + return + +AnimScript_82D7D1D: + createvisualtask sub_8117E60, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82D7D42 + createvisualtask sub_815A8C8, 0x2 + jumpargeq 0x7, 0x0, AnimScript_82D7D50 + goto AnimScript_82D7D49 + +AnimScript_82D7D40: + waitbgfadein + return + +AnimScript_82D7D42: + fadetobg BG_SOLARBEAM_CONTESTS + goto AnimScript_82D7D40 + +AnimScript_82D7D49: + fadetobg BG_SOLARBEAM_PLAYER + goto AnimScript_82D7D40 + +AnimScript_82D7D50: + fadetobg BG_SOLARBEAM_OPPONENT + goto AnimScript_82D7D40 + +AnimScript_82D7D57: + restorebg + waitbgfadein + return + +Status_Poison: + loopsewithpan SE_W092, +63, 0xD, 0x6 + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 18, 2 + createvisualtask sub_8115A04, 0x2, 2, 2, 2, 0, 12, 31774 + end + +Status_Confusion: + loadspritegfx 0x2759 + call AnimScript_82D7C75 + end + +Status_Burn: + loadspritegfx 0x272D + playsewithpan SE_W172, +63 + call AnimScript_82D7DA6 + call AnimScript_82D7DA6 + call AnimScript_82D7DA6 + waitforvisualfinish + end + +AnimScript_82D7DA6: + createsprite 0x8595504, 0x82, -24, 24, 24, 24, 20, 1, 1 + delay 0x4 + return + +Status_Infatuation: + loadspritegfx 0x27E2 + playsewithpan SE_W204, -64 + createsprite 0x8593970, 0x3, 0, 20 + delay 0xF + playsewithpan SE_W204, -64 + createsprite 0x8593970, 0x3, -20, 20 + delay 0xF + playsewithpan SE_W204, -64 + createsprite 0x8593970, 0x3, 20, 20 + end + +Status_Sleep: + loadspritegfx 0x27F4 + playsewithpan SE_W173, -64 + createsprite 0x8592C88, 0x2, 4, -10, 16, 0, 0 + delay 0x1E + createsprite 0x8592C88, 0x2, 4, -10, 16, 0, 0 + end + +Status_Paralysis: + loadspritegfx 0x271B + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 10, 1 + call AnimScript_82D7BEA + end + +Status_Freeze: + playsewithpan SE_W196, 0 + loadspritegfx 0x271A + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + waitplaysewithpan SE_W258, +63, 0x11 + createvisualtask sub_80A9EF4, 0x2 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +Status_Curse: + loadspritegfx 0x27D8 + monbg ANIM_DEF_PARTNER + playsewithpan SE_W171, +63 + createsprite 0x8596DE8, 0x82 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 14, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +Status_Nightmare: + loadspritegfx 0x27ED + monbg ANIM_DEF_PARTNER + playsewithpan SE_W171, +63 + createsprite 0x8596E00, 0x82 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 14, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + end + +Anim_CastformTransform: + createvisualtask sub_815BB18, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82D7ECA + goto AnimScript_82D7EB2 + +AnimScript_82D7EB2: + monbg ANIM_ATTACKER + playsewithpan SE_W100, -64 + waitplaysewithpan SE_W107, -64, 0x30 + createvisualtask sub_815B7D0, 0x2, 1 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + end + +AnimScript_82D7ECA: + createvisualtask sub_815BB58, 0x2, 1 + end + +Anim_StatChange: + createvisualtask sub_80AA18C, 0x5 + waitforvisualfinish + end + +Anim_SubsituteOff: + monbg ANIM_ATTACKER + createvisualtask sub_8172D98, 0x5 + createvisualtask sub_8116620, 0xA, 2, 0, 0, 16, 0x7FFF + waitforvisualfinish + delay 0x1 + clearmonbg ANIM_ATTACKER + delay 0x2 + blendoff + createvisualtask sub_8116620, 0xA, 2, 0, 0, 0, 0x7FFF + createvisualtask sub_8172BF0, 0x2, 1 + end + +Anim_SubsituteOn: + createvisualtask sub_815F20C, 0x2 + end + +Anim_Table_4: + createvisualtask sub_817345C, 0x2, 0 + createvisualtask sub_81732B0, 0x2 + delay 0x0 + waitplaysewithpan SE_W026, -64, 0x16 + createsprite 0x85E5338, 0x83, -18, 12, 0, 32 + delay 0x32 + loopsewithpan SE_W039, +63, 0x13, 0x2 + createvisualtask sub_80D5EB8, 0x5, 1, 8, 1536, 2, 1 + waitforvisualfinish + createvisualtask sub_81732E4, 0x2 + end + +Anim_ItemKnockOff: + loadspritegfx 0x27F0 + createsprite 0x8592628, 0x82 + end + +Status_Wrap: + createvisualtask sub_81734B4, 0x5 + jumpargeq 0x0, 0x1, AnimScript_82D7FE9 + jumpargeq 0x0, 0x2, AnimScript_82D800E + jumpargeq 0x0, 0x3, AnimScript_82D8062 + jumpargeq 0x0, 0x4, AnimScript_82D80BF + goto AnimScript_82D7FA1 + +AnimScript_82D7FA1: + loadspritegfx 0x27CA + loopsewithpan SE_W010, +63, 0x6, 0x2 + createsprite 0x8592494, 0x84, 0, 16, 0, 1 + delay 0x7 + createsprite 0x8592494, 0x82, 0, 8, 1, 1 + delay 0x3 + createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 + delay 0x14 + setarg 0x7, 0xFFFF + playsewithpan SE_W020, +63 + waitforvisualfinish + end + +AnimScript_82D7FE9: + loadspritegfx 0x272D + playsewithpan SE_W221B, +63 + createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 30, 1 + call AnimScript_82CACBF + call AnimScript_82CACBF + waitforvisualfinish + stopsound + end + +AnimScript_82D800E: + loadspritegfx 0x27A5 + monbg ANIM_DEF_PARTNER + monbgprio_28 ANIM_TARGET + setalpha 0x80C + delay 0x0 + createsprite 0x8597274, 0x0, 4, 2, 0, 7, 23968 + playsewithpan SE_W250, +63 + createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 30, 1 + call AnimScript_82D1F5B + call AnimScript_82D1F5B + delay 0xC + createsprite 0x8597274, 0x0, 4, 2, 7, 0, 23968 + waitforvisualfinish + stopsound + clearmonbg ANIM_DEF_PARTNER + end + +AnimScript_82D8062: + loadspritegfx 0x27A1 + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W011, +63 + createsprite 0x8597098, 0x2, -32, 0, 2, 819, 0, 10 + createsprite 0x8597098, 0x2, 32, 0, 6, -819, 0, 10 + delay 0xA + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 5, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + waitforvisualfinish + end + +AnimScript_82D80BF: + loadspritegfx 0x275A + createsprite 0x8597274, 0x0, 4, 2, 0, 7, 563 + createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 30, 1 + playsewithpan SE_W328, +63 + call AnimScript_82D51B7 + call AnimScript_82D51B7 + delay 0x16 + createsprite 0x8597274, 0x0, 4, 2, 7, 0, 563 + waitforvisualfinish + stopsound + end + +Anim_ItemEffect: + loadspritegfx 0x27DB + loadspritegfx 0x2741 + delay 0x0 + playsewithpan SE_W036, -64 + createvisualtask sub_80D622C, 0x2, 16, 128, 0, 2 + waitforvisualfinish + playsewithpan SE_W036, -64 + createvisualtask sub_80D622C, 0x2, 16, 128, 0, 2 + waitforvisualfinish + playsewithpan SE_W036, -64 + createvisualtask sub_80D622C, 0x2, 16, 128, 0, 2 + waitforvisualfinish + playsewithpan SE_W234, -64 + call AnimScript_82D79B4 + waitforvisualfinish + playsewithpan SE_REAPOKE, -64 + createsprite 0x8597274, 0x2, 2, 3, 7, 0, 26609 + createsprite 0x859381C, 0x3, 0, 0, 0, 0 + waitforvisualfinish + end + +Anim_SmokeBallEscape: + loadspritegfx 0x2802 + monbg ANIM_ATTACKER + setalpha 0x40C + delay 0x0 + playsewithpan SE_BOWA2, +63 + createsprite 0x85CE734, 0x80, 0, 32, 28, 30 + delay 0x4 + playsewithpan SE_BOWA2, +63 + createsprite 0x85CE734, 0x7F, 2, 12, 20, 30 + delay 0xC + playsewithpan SE_BOWA2, +63 + createsprite 0x85CE734, 0x7E, 2, -28, 4, 30 + delay 0xC + playsewithpan SE_BOWA2, +63 + createsprite 0x85CE734, 0x7C, 2, 14, -20, 30 + delay 0x4 + playsewithpan SE_BOWA2, +63 + createvisualtask sub_81136E8, 0x2, 2 + createsprite 0x85CE734, 0x7B, 3, 4, 4, 30 + delay 0xE + playsewithpan SE_BOWA2, +63 + createsprite 0x85CE734, 0x7A, 3, -14, 18, 46 + delay 0x0 + createsprite 0x85CE734, 0x79, 3, 14, -14, 46 + delay 0x0 + createsprite 0x85CE734, 0x78, 3, -12, -10, 46 + delay 0x0 + createsprite 0x85CE734, 0x77, 3, 14, 14, 46 + delay 0x0 + createsprite 0x85CE734, 0x76, 3, 0, 0, 46 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + invisible ANIM_ATTACKER + delay 0x0 + blendoff + end + +Anim_HangedOn: + createsprite 0x8597274, 0x0, 2, 7, 0, 9, 31 + playsewithpan SE_W082, -64 + createvisualtask sub_815DB90, 0x5, 30, 128, 0, 1, 2, 0, 1 + waitforvisualfinish + createsprite 0x8597274, 0x0, 2, 4, 9, 0, 31 + waitforvisualfinish + delay 0x6 + createsprite 0x857FE58, 0x0, 0, 0, 15 + end + +Anim_Rain: + loadspritegfx 0x2783 + playsewithpan SE_W240, -64 + createvisualtask sub_8116620, 0xA, 1921, 2, 0, 4, 0 + waitforvisualfinish + createvisualtask sub_8107188, 0x2, 0, 3, 60 + createvisualtask sub_8107188, 0x2, 0, 3, 60 + delay 0x32 + waitforvisualfinish + createvisualtask sub_8116620, 0xA, 1921, 2, 4, 0, 0 + waitforvisualfinish + end + +Anim_Sun: + goto Move_SUNNY_DAY + +Anim_Sandstorm: + goto Move_SANDSTORM + +Anim_Hail: + goto Move_HAIL + +Status_LeechSeed: + createvisualtask sub_817351C, 0x5 + delay 0x0 + goto Move_ABSORB + +Anim_Hit: + loadspritegfx 0x2797 + monbg ANIM_TARGET + setalpha 0x80C + playsewithpan SE_W003, +63 + createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + blendoff + end + +Anim_ItemSteal: + loadspritegfx 0x27F0 + createvisualtask sub_8117F30, 0x2 + createvisualtask sub_8172ED0, 0x2 + delay 0x1 + createsprite 0x8592670, 0x2, 0, -5, 10, 2, -1 + end + +Anim_SnatchMove: + loadspritegfx 0x27F0 + createvisualtask sub_8117E94, 0x2 + call AnimScript_82D85A3 + delay 0x1 + createvisualtask sub_80D5EB8, 0x2, 0, 5, 5120, 4, 1 + waitforvisualfinish + createvisualtask sub_8117EC4, 0x2 + jumpargeq 0x7, 0x0, AnimScript_82D839F + goto AnimScript_82D83AF + +AnimScript_82D8398: + waitforvisualfinish + call AnimScript_82D85C3 + end + +AnimScript_82D839F: + playsewithpan SE_W104, -64 + createvisualtask sub_815F8F4, 0x2 + goto AnimScript_82D8398 + +AnimScript_82D83AF: + playsewithpan SE_W104, -64 + createvisualtask sub_815FFC4, 0x2 + goto AnimScript_82D8398 + +Anim_FutureSightHit: + createvisualtask sub_8117F10, 0x2 + monbg ANIM_DEF_PARTNER + playsewithpan SE_W060, -64 + call AnimScript_82D7CD1 + setalpha 0x808 + playsewithpan SE_W048, +63 + waitplaysewithpan SE_W048, +63, 0x8 + createvisualtask sub_80D51AC, 0x2, 1, 4, 0, 15, 1 + createvisualtask sub_80D6064, 0x5, -5, -5, 15, 1, 1 + waitforvisualfinish + createvisualtask sub_80D51AC, 0x2, 1, 4, 0, 24, 1 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + waitforvisualfinish + delay 0x1 + call AnimScript_82D7CDD + end + +Anim_DoomDesireHit: + createvisualtask sub_8117F10, 0x2 + loadspritegfx 0x27D6 + createsprite 0x8597274, 0x2, 1, 3, 0, 16, 0x7FFF + waitforvisualfinish + delay 0xA + createvisualtask sub_815C0A4, 0x5 + delay 0x9 + playsewithpan SE_W109, -64 + delay 0x9 + playsewithpan SE_W109, 0 + delay 0x9 + playsewithpan SE_W109, +63 + delay 0x19 + createvisualtask sub_80D5484, 0x2, 1, 10, 0, 20, 1 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x3, 0, 0, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x3, 24, -24, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x3, -16, 16, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x3, -24, -12, 1, 1 + delay 0x6 + playsewithpan SE_W120, +63 + createsprite 0x859371C, 0x3, 16, 16, 1, 1 + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 3, 16, 0, 0x7FFF + waitforvisualfinish + end + +Anim_Table_x14: + loadspritegfx 0x27C8 + playsewithpan SE_W082, -64 + call AnimScript_82CD6C7 + delay 0x8 + createvisualtask sub_8115A04, 0x2, 2, 2, 2, 0, 11, 31 + createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 32, 1 + call AnimScript_82CD6C7 + delay 0x8 + call AnimScript_82CD6C7 + waitforvisualfinish + end + +Status_Ingrain: + loadspritegfx 0x27A3 + loadspritegfx 0x272F + monbg ANIM_DEF_PARTNER + setalpha 0x80C + createsprite 0x8597274, 0x2, 1, 1, 0, 4, 13293 + waitforvisualfinish + delay 0x3 + call AnimScript_82D1009 + waitforvisualfinish + delay 0xF + call AnimScript_82D79DF + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 1, 4, 0, 13293 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +Anim_WishHeal: + loadspritegfx 0x2741 + createsprite 0x8597274, 0x2, 1, 3, 0, 10, 0 + waitforvisualfinish + playsewithpan SE_W025, -64 + call AnimScript_82D79B4 + waitforvisualfinish + unloadspritegfx 0x2741 + loadspritegfx 0x272F + call AnimScript_82D79DF + waitforvisualfinish + createsprite 0x8597274, 0x2, 1, 3, 10, 0, 0 + end + +AnimScript_82D85A3: + createvisualtask sub_8172E9C, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82D85B4 + +AnimScript_82D85B2: + waitforvisualfinish + return + +AnimScript_82D85B4: + createvisualtask sub_8172BF0, 0x2, 1 + waitforvisualfinish + goto AnimScript_82D85B2 + +AnimScript_82D85C3: + createvisualtask sub_8172E9C, 0x2 + jumpargeq 0x7, 0x1, AnimScript_82D85D4 + +AnimScript_82D85D2: + waitforvisualfinish + return + +AnimScript_82D85D4: + createvisualtask sub_8172BF0, 0x2, 0 + waitforvisualfinish + goto AnimScript_82D85D2 + +Anim_LevelUp: + playsewithpan SE_EXPMAX, 0 + createvisualtask sub_8170920, 0x2 + delay 0x0 + createvisualtask sub_8170A0C, 0x5, 0, 0 + waitforvisualfinish + createvisualtask sub_81709EC, 0x2 + end + +Anim_SwitchOutPlayer: + createvisualtask sub_8170BB0, 0x2 + delay 0xA + createvisualtask sub_8170B04, 0x2 + end + +Anim_SwitchOutOpponent: + createvisualtask sub_8170BB0, 0x2 + delay 0xA + createvisualtask sub_8170B04, 0x2 + end + +Anim_BallThrow: + createvisualtask sub_8170CFC, 0x2 + delay 0x0 + playsewithpan SE_NAGERU, 0 + createvisualtask sub_8170E04, 0x2 + createvisualtask sub_8170D4C, 0x2 + jumpargeq 0x7, 0xFFFF, AnimScript_82D8652 + +AnimScript_82D8649: + waitforvisualfinish + createvisualtask sub_8170D24, 0x2 + end + +AnimScript_82D8652: + loadspritegfx 0x2797 + delay 0x19 + monbg ANIM_DEF_PARTNER + setalpha 0x80C + delay 0x0 + playsewithpan SE_W003, +63 + createsprite 0x8597358, 0x82, -4, -20, 1, 2 + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + goto AnimScript_82D8649 + +Anim_SafariBallThrow: + createvisualtask sub_8170CFC, 0x2 + delay 0x0 + createvisualtask sub_8170F2C, 0x2 + waitforvisualfinish + createvisualtask sub_8170D24, 0x2 + end + +Anim_SubstituteToMon: + createvisualtask sub_8172BF0, 0x2, 1 + end + +Anim_MonToSubstitute: + createvisualtask sub_8172BF0, 0x2, 0 + end diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index b442d74b50..27aff5f19f 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -10,6 +10,7 @@ .section script_data, "aw", %progbits +.align 2 gBattleScriptsForMoveEffects:: @ 82D86A8 .4byte BattleScript_EffectHit .4byte BattleScript_EffectSleep diff --git a/include/battle.h b/include/battle.h index 602d3eb53c..4fd252676d 100644 --- a/include/battle.h +++ b/include/battle.h @@ -778,52 +778,6 @@ extern struct BattleStruct* gBattleStruct; #define MOVE_EFFECT_AFFECTS_USER 0x40 #define MOVE_EFFECT_CERTAIN 0x80 -// table ids for general animations -#define B_ANIM_CASTFORM_CHANGE 0x0 -#define B_ANIM_STATS_CHANGE 0x1 -#define B_ANIM_SUBSTITUTE_FADE 0x2 -#define B_ANIM_SUBSTITUTE_APPEAR 0x3 -#define B_ANIM_x4 0x4 -#define B_ANIM_ITEM_KNOCKOFF 0x5 -#define B_ANIM_TURN_TRAP 0x6 -#define B_ANIM_ITEM_EFFECT 0x7 -#define B_ANIM_SMOKEBALL_ESCAPE 0x8 -#define B_ANIM_HANGED_ON 0x9 -#define B_ANIM_RAIN_CONTINUES 0xA -#define B_ANIM_SUN_CONTINUES 0xB -#define B_ANIM_SANDSTORM_CONTINUES 0xC -#define B_ANIM_HAIL_CONTINUES 0xD -#define B_ANIM_LEECH_SEED_DRAIN 0xE -#define B_ANIM_MON_HIT 0xF -#define B_ANIM_ITEM_STEAL 0x10 -#define B_ANIM_SNATCH_MOVE 0x11 -#define B_ANIM_FUTURE_SIGHT_HIT 0x12 -#define B_ANIM_DOOM_DESIRE_HIT 0x13 -#define B_ANIM_x14 0x14 -#define B_ANIM_INGRAIN_HEAL 0x15 -#define B_ANIM_WISH_HEAL 0x16 - -// special animations table -#define B_ANIM_LVL_UP 0x0 -#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1 -#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2 -#define B_ANIM_BALL_THROW 0x3 -#define B_ANIM_SAFARI_BALL_THROW 0x4 -#define B_ANIM_SUBSTITUTE_TO_MON 0x5 -#define B_ANIM_MON_TO_SUBSTITUTE 0x6 - -// status animation table -#define B_ANIM_STATUS_PSN 0x0 -#define B_ANIM_STATUS_CONFUSION 0x1 -#define B_ANIM_STATUS_BRN 0x2 -#define B_ANIM_STATUS_INFATUATION 0x3 -#define B_ANIM_STATUS_SLP 0x4 -#define B_ANIM_STATUS_PRZ 0x5 -#define B_ANIM_STATUS_FRZ 0x6 -#define B_ANIM_STATUS_CURSED 0x7 -#define B_ANIM_STATUS_NIGHTMARE 0x8 -#define B_ANIM_STATUS_WRAPPED 0x9 - #define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 #define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit diff --git a/include/battle_anim.h b/include/battle_anim.h index 9fb7ccd538..4046f7051a 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -1,14 +1,6 @@ #ifndef GUARD_BATTLE_ANIM_H #define GUARD_BATTLE_ANIM_H -enum -{ - ANIM_BANK_ATTACKER, - ANIM_BANK_TARGET, - ANIM_BANK_ATK_PARTNER, - ANIM_BANK_DEF_PARTNER, -}; - enum { BG_ANIM_SCREEN_SIZE, diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h new file mode 100644 index 0000000000..de2fbebb11 --- /dev/null +++ b/include/constants/battle_anim.h @@ -0,0 +1,85 @@ +#ifndef GUARD_CONSTANTS_BATTLE_ANIM_H +#define GUARD_CONSTANTS_BATTLE_ANIM_H + +// banks enum used in scripts +#define ANIM_ATTACKER 0 +#define ANIM_TARGET 1 +#define ANIM_ATK_PARTNER 2 +#define ANIM_DEF_PARTNER 3 + +// move background ids +#define BG_DARK_ 0 // the same as BG_DARK but is unused +#define BG_DARK 1 +#define BG_GHOST 2 +#define BG_PSYCHIC 3 +#define BG_IMPACT_OPPONENT 4 +#define BG_IMPACT_PLAYER 5 +#define BG_IMPACT_CONTESTS 6 +#define BG_DRILL 7 +#define BG_DRILL_CONTESTS 8 +#define BG_HIGHSPEED_OPPONENT 9 +#define BG_HIGHSPEED_PLAYER 10 +#define BG_THUNDER 11 +#define BG_GUILLOTINE_OPPONENT 12 +#define BG_GUILLOTINE_PLAYER 13 +#define BG_GUILLOTINE_CONTESTS 14 +#define BG_ICE 15 +#define BG_COSMIC 16 +#define BG_SEISMICTOSS_SKUUPPERCUT 17 +#define BG_FLYING 18 +#define BG_FLYING_CONTESTS 19 +#define BG_AURORABEAM 20 +#define BG_FISSURE 21 +#define BG_BUG_OPPONENT 22 +#define BG_BUG_PLAYER 23 +#define BG_SOLARBEAM_OPPONENT 24 +#define BG_SOLARBEAM_PLAYER 25 +#define BG_SOLARBEAM_CONTESTS 26 + +// table ids for general animations +#define B_ANIM_CASTFORM_CHANGE 0x0 +#define B_ANIM_STATS_CHANGE 0x1 +#define B_ANIM_SUBSTITUTE_FADE 0x2 +#define B_ANIM_SUBSTITUTE_APPEAR 0x3 +#define B_ANIM_x4 0x4 +#define B_ANIM_ITEM_KNOCKOFF 0x5 +#define B_ANIM_TURN_TRAP 0x6 +#define B_ANIM_ITEM_EFFECT 0x7 +#define B_ANIM_SMOKEBALL_ESCAPE 0x8 +#define B_ANIM_HANGED_ON 0x9 +#define B_ANIM_RAIN_CONTINUES 0xA +#define B_ANIM_SUN_CONTINUES 0xB +#define B_ANIM_SANDSTORM_CONTINUES 0xC +#define B_ANIM_HAIL_CONTINUES 0xD +#define B_ANIM_LEECH_SEED_DRAIN 0xE +#define B_ANIM_MON_HIT 0xF +#define B_ANIM_ITEM_STEAL 0x10 +#define B_ANIM_SNATCH_MOVE 0x11 +#define B_ANIM_FUTURE_SIGHT_HIT 0x12 +#define B_ANIM_DOOM_DESIRE_HIT 0x13 +#define B_ANIM_x14 0x14 +#define B_ANIM_INGRAIN_HEAL 0x15 +#define B_ANIM_WISH_HEAL 0x16 + +// special animations table +#define B_ANIM_LVL_UP 0x0 +#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1 +#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2 +#define B_ANIM_BALL_THROW 0x3 +#define B_ANIM_SAFARI_BALL_THROW 0x4 +#define B_ANIM_SUBSTITUTE_TO_MON 0x5 +#define B_ANIM_MON_TO_SUBSTITUTE 0x6 + +// status animation table +#define B_ANIM_STATUS_PSN 0x0 +#define B_ANIM_STATUS_CONFUSION 0x1 +#define B_ANIM_STATUS_BRN 0x2 +#define B_ANIM_STATUS_INFATUATION 0x3 +#define B_ANIM_STATUS_SLP 0x4 +#define B_ANIM_STATUS_PRZ 0x5 +#define B_ANIM_STATUS_FRZ 0x6 +#define B_ANIM_STATUS_CURSED 0x7 +#define B_ANIM_STATUS_NIGHTMARE 0x8 +#define B_ANIM_STATUS_WRAPPED 0x9 // does not actually exist + +#endif // GUARD_CONSTANTS_BATTLE_ANIM_H diff --git a/src/battle_anim.c b/src/battle_anim.c index 2eec0bed5c..fa4dfb48f3 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1,6 +1,7 @@ #include "global.h" #include "battle.h" #include "battle_anim.h" +#include "constants/battle_anim.h" #include "sprite.h" #include "contest.h" #include "m4a.h" @@ -67,7 +68,7 @@ static void ScriptCmd_return(void); static void ScriptCmd_setarg(void); static void ScriptCmd_choosetwoturnanim(void); static void ScriptCmd_jumpifmoveturn(void); -static void ScriptCmd_jump(void); +static void ScriptCmd_goto(void); static void ScriptCmd_fadetobg(void); static void ScriptCmd_restorebg(void); static void ScriptCmd_waitbgfadeout(void); @@ -156,7 +157,7 @@ static void (* const sScriptCmdTable[])(void) = ScriptCmd_setarg, ScriptCmd_choosetwoturnanim, ScriptCmd_jumpifmoveturn, - ScriptCmd_jump, + ScriptCmd_goto, ScriptCmd_fadetobg, ScriptCmd_restorebg, ScriptCmd_waitbgfadeout, @@ -605,7 +606,7 @@ static void ScriptCmd_monbg(void) sBattleAnimScriptPtr++; animBank = sBattleAnimScriptPtr[0]; - if (animBank & ANIM_BANK_TARGET) + if (animBank & ANIM_TARGET) bank = gAnimBankTarget; else bank = gAnimBankAttacker; @@ -862,12 +863,12 @@ static void ScriptCmd_clearmonbg(void) sBattleAnimScriptPtr++; animBankId = sBattleAnimScriptPtr[0]; - if (animBankId == ANIM_BANK_ATTACKER) - animBankId = ANIM_BANK_ATK_PARTNER; - else if (animBankId == ANIM_BANK_TARGET) - animBankId = ANIM_BANK_DEF_PARTNER; + if (animBankId == ANIM_ATTACKER) + animBankId = ANIM_ATK_PARTNER; + else if (animBankId == ANIM_TARGET) + animBankId = ANIM_DEF_PARTNER; - if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER) + if (animBankId == ANIM_ATTACKER || animBankId == ANIM_ATK_PARTNER) bank = gAnimBankAttacker; else bank = gAnimBankTarget; @@ -924,12 +925,12 @@ static void ScriptCmd_monbg_22(void) animBankId = sBattleAnimScriptPtr[0]; - if (animBankId == ANIM_BANK_ATTACKER) - animBankId = ANIM_BANK_ATK_PARTNER; - else if (animBankId == ANIM_BANK_TARGET) - animBankId = ANIM_BANK_DEF_PARTNER; + if (animBankId == ANIM_ATTACKER) + animBankId = ANIM_ATK_PARTNER; + else if (animBankId == ANIM_TARGET) + animBankId = ANIM_DEF_PARTNER; - if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER) + if (animBankId == ANIM_ATTACKER || animBankId == ANIM_ATK_PARTNER) bank = gAnimBankAttacker; else bank = gAnimBankTarget; @@ -969,12 +970,12 @@ static void ScriptCmd_clearmonbg_23(void) sBattleAnimScriptPtr++; animBankId = sBattleAnimScriptPtr[0]; - if (animBankId == ANIM_BANK_ATTACKER) - animBankId = ANIM_BANK_ATK_PARTNER; - else if (animBankId == ANIM_BANK_TARGET) - animBankId = ANIM_BANK_DEF_PARTNER; + if (animBankId == ANIM_ATTACKER) + animBankId = ANIM_ATK_PARTNER; + else if (animBankId == ANIM_TARGET) + animBankId = ANIM_DEF_PARTNER; - if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER) + if (animBankId == ANIM_ATTACKER || animBankId == ANIM_ATK_PARTNER) bank = gAnimBankAttacker; else bank = gAnimBankTarget; @@ -1099,7 +1100,7 @@ static void ScriptCmd_jumpifmoveturn(void) sBattleAnimScriptPtr += 4; } -static void ScriptCmd_jump(void) +static void ScriptCmd_goto(void) { sBattleAnimScriptPtr++; sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr); @@ -1699,7 +1700,7 @@ static void ScriptCmd_monbgprio_28(void) wantedBank = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; - if (wantedBank != ANIM_BANK_ATTACKER) + if (wantedBank != ANIM_ATTACKER) bank = gAnimBankTarget; else bank = gAnimBankAttacker; @@ -1732,7 +1733,7 @@ static void ScriptCmd_monbgprio_2A(void) sBattleAnimScriptPtr += 2; if (GetBankSide(gAnimBankAttacker) != GetBankSide(gAnimBankTarget)) { - if (wantedBank != ANIM_BANK_ATTACKER) + if (wantedBank != ANIM_ATTACKER) bank = gAnimBankTarget; else bank = gAnimBankAttacker; @@ -1779,15 +1780,15 @@ static void ScriptCmd_doublebattle_2D(void) if (!IsContest() && IsDoubleBattle() && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) { - if (wantedBank == ANIM_BANK_ATTACKER) + if (wantedBank == ANIM_ATTACKER) { r4 = sub_80A8364(gAnimBankAttacker); - spriteId = GetAnimBankSpriteId(0); + spriteId = GetAnimBankSpriteId(ANIM_ATTACKER); } else { r4 = sub_80A8364(gAnimBankTarget); - spriteId = GetAnimBankSpriteId(1); + spriteId = GetAnimBankSpriteId(ANIM_TARGET); } if (spriteId != 0xFF) { @@ -1814,15 +1815,15 @@ static void ScriptCmd_doublebattle_2E(void) if (!IsContest() && IsDoubleBattle() && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)) { - if (wantedBank == ANIM_BANK_ATTACKER) + if (wantedBank == ANIM_ATTACKER) { r4 = sub_80A8364(gAnimBankAttacker); - spriteId = GetAnimBankSpriteId(0); + spriteId = GetAnimBankSpriteId(ANIM_ATTACKER); } else { r4 = sub_80A8364(gAnimBankTarget); - spriteId = GetAnimBankSpriteId(1); + spriteId = GetAnimBankSpriteId(ANIM_TARGET); } if (spriteId != 0xFF && r4 == 2) diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index dd8582618f..58360b9a1d 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -4,6 +4,7 @@ #include "battle_message.h" #include "battle_interface.h" #include "battle_anim.h" +#include "constants/battle_anim.h" #include "battle_ai_script_commands.h" #include "battle_link_817C95C.h" #include "pokemon.h" diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 9da4687619..082b134b4d 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -4,6 +4,7 @@ #include "battle_message.h" #include "battle_interface.h" #include "battle_anim.h" +#include "constants/battle_anim.h" #include "battle_ai_script_commands.h" #include "battle_link_817C95C.h" #include "pokemon.h" diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 0862e72a7f..8aeab6a551 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -4,6 +4,7 @@ #include "battle_message.h" #include "battle_interface.h" #include "battle_anim.h" +#include "constants/battle_anim.h" #include "battle_link_817C95C.h" #include "battle_ai_script_commands.h" #include "pokemon.h" diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 08c666d119..6023552c37 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -4,6 +4,7 @@ #include "battle_message.h" #include "battle_interface.h" #include "battle_anim.h" +#include "constants/battle_anim.h" #include "battle_link_817C95C.h" #include "pokemon.h" #include "link.h" diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index dc4a213cc6..6b5211ceb6 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -4,6 +4,7 @@ #include "battle_message.h" #include "battle_interface.h" #include "battle_anim.h" +#include "constants/battle_anim.h" #include "battle_ai_script_commands.h" #include "pokemon.h" #include "link.h" diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 8e2f31879e..64dea02004 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -4,6 +4,7 @@ #include "battle_message.h" #include "battle_interface.h" #include "battle_anim.h" +#include "constants/battle_anim.h" #include "battle_ai_script_commands.h" #include "battle_link_817C95C.h" #include "recorded_battle.h" diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index f558fde875..52fd803e1e 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -4,6 +4,7 @@ #include "battle_message.h" #include "battle_interface.h" #include "battle_anim.h" +#include "constants/battle_anim.h" #include "battle_ai_script_commands.h" #include "recorded_battle.h" #include "pokemon.h" diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 64e6a0bc38..682e8333d4 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -4,6 +4,7 @@ #include "battle_message.h" #include "battle_interface.h" #include "battle_anim.h" +#include "constants/battle_anim.h" #include "pokemon.h" #include "link.h" #include "util.h" diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 4460279440..eeb0b596d2 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -4,6 +4,7 @@ #include "battle_message.h" #include "battle_interface.h" #include "battle_anim.h" +#include "constants/battle_anim.h" #include "battle_link_817C95C.h" #include "pokemon.h" #include "link.h" diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 70b4d7d31d..4f444b8bff 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -3,6 +3,7 @@ #include "battle_controllers.h" #include "battle_ai_script_commands.h" #include "battle_anim.h" +#include "constants/battle_anim.h" #include "battle_interface.h" #include "main.h" #include "malloc.h" @@ -39,8 +40,8 @@ extern struct MusicPlayerInfo gMPlay_BGM; extern const struct BattleMove gBattleMoves[]; extern const u8 gUnknown_0831C604[]; -extern const u8 * const gUnknown_082C9320[]; -extern const u8 * const gUnknown_082C937C[]; +extern const u8 * const gBattleAnims_VariousTable[]; +extern const u8 * const gBattleAnims_Special[]; extern const struct CompressedSpriteSheet gMonFrontPicTable[]; extern const struct CompressedSpriteSheet gMonBackPicTable[]; extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; @@ -414,7 +415,7 @@ void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status) else if (status & STATUS2_NIGHTMARE) LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_NIGHTMARE); else if (status & STATUS2_WRAPPED) - LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_WRAPPED); + LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_WRAPPED); // this animation doesn't actually exist else // no animation gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 0; } @@ -448,7 +449,7 @@ bool8 TryHandleLaunchBattleTableAnimation(u8 activeBank, u8 atkBank, u8 defBank, gAnimBankAttacker = atkBank; gAnimBankTarget = defBank; gBattleSpritesDataPtr->animationData->animArg = argument; - LaunchBattleAnimation(gUnknown_082C9320, tableId, FALSE); + LaunchBattleAnimation(gBattleAnims_VariousTable, tableId, FALSE); taskId = CreateTask(Task_ClearBitWhenBattleTableAnimDone, 10); gTasks[taskId].tBank = activeBank; gBattleSpritesDataPtr->healthBoxesData[gTasks[taskId].tBank].animFromTableActive = 1; @@ -492,7 +493,7 @@ void InitAndLaunchSpecialAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tab gAnimBankAttacker = atkBank; gAnimBankTarget = defBank; - LaunchBattleAnimation(gUnknown_082C937C, tableId, FALSE); + LaunchBattleAnimation(gBattleAnims_Special, tableId, FALSE); taskId = CreateTask(Task_ClearBitWhenSpecialAnimDone, 10); gTasks[taskId].tBank = activeBank; gBattleSpritesDataPtr->healthBoxesData[gTasks[taskId].tBank].specialAnimActive = 1; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 43b802d0b6..4ddf2472e5 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -18,6 +18,7 @@ #include "constants/species.h" #include "constants/songs.h" #include "constants/trainers.h" +#include "constants/battle_anim.h" #include "text.h" #include "sound.h" #include "pokedex.h" diff --git a/src/battle_util.c b/src/battle_util.c index 1a624641d6..2ce37cfbd2 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -3,6 +3,7 @@ #include "constants/abilities.h" #include "constants/moves.h" #include "constants/hold_effects.h" +#include "constants/battle_anim.h" #include "pokemon.h" #include "constants/species.h" #include "item.h" From 4f82c1630ef96ec6e36aaaa7acaab8330044d759 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 31 Dec 2017 17:23:27 +0100 Subject: [PATCH 47/54] dump all battle anim sprite templates ptrs --- data/battle_anim_80A9C70.s | 3 + data/battle_anim_80FE840.s | 6 + data/battle_anim_815A0D4.s | 20 + data/battle_anim_8170478.s | 1 + data/battle_anim_scripts.s | 4232 ++++++++++++++++++------------------ data/item_menu_icons.s | 19 +- 6 files changed, 2163 insertions(+), 2118 deletions(-) diff --git a/data/battle_anim_80A9C70.s b/data/battle_anim_80A9C70.s index c3768b355f..56486b8b71 100644 --- a/data/battle_anim_80A9C70.s +++ b/data/battle_anim_80A9C70.s @@ -27,6 +27,9 @@ gUnknown_0853EE34:: @ 853EE34 .align 2 gUnknown_0853EE38:: @ 853EE38 spr_template 0x282b, 0x282b, gUnknown_08524914, gUnknown_0853EE34, NULL, gDummySpriteAffineAnimTable, sub_80A8E30 + + .align 2 +gUnknown_0853EE50:: @ 853EE50 spr_template 0x282b, 0x282b, gUnknown_08524914, gUnknown_0853EE34, NULL, gDummySpriteAffineAnimTable, sub_80A8EE4 .align 2 diff --git a/data/battle_anim_80FE840.s b/data/battle_anim_80FE840.s index 78631ee6ed..749db42f85 100644 --- a/data/battle_anim_80FE840.s +++ b/data/battle_anim_80FE840.s @@ -16,7 +16,13 @@ gUnknown_08592114:: @ 8592114 .align 2 gUnknown_08592118:: @ 8592118 spr_template 0x2753, 0x2753, gUnknown_08524944, gUnknown_08592114, NULL, gDummySpriteAffineAnimTable, sub_80FE840 + + .align 2 +gUnknown_08592130:: @ 8592130 spr_template 0x2754, 0x2754, gUnknown_08524944, gUnknown_08592114, NULL, gDummySpriteAffineAnimTable, sub_80FE840 + + .align 2 +gUnknown_08592148:: @ 8592148 spr_template 0x2751, 0x2751, gUnknown_08524944, gUnknown_08592114, NULL, gDummySpriteAffineAnimTable, sub_80FE840 .align 2 diff --git a/data/battle_anim_815A0D4.s b/data/battle_anim_815A0D4.s index f8ebc0971d..1b4cc5af9a 100644 --- a/data/battle_anim_815A0D4.s +++ b/data/battle_anim_815A0D4.s @@ -18,9 +18,11 @@ gUnknown_085CE020:: @ 85CE020 spr_template 0x2799, 0x2799, gUnknown_08524A34, gUnknown_085CE01C, NULL, gDummySpriteAffineAnimTable, sub_80A77C8 .align 2 +gUnknown_085CE038:: @ 85CE038 spr_template 0x2720, 0x2720, gUnknown_08524934, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A0D4 .align 2 +gUnknown_085CE050:: @ 85CE050 spr_template 0x2721, 0x2721, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A78AC .align 2 @@ -37,9 +39,11 @@ gUnknown_085CE07C:: @ 85CE07C spr_template 0x27ce, 0x27ce, gUnknown_08524914, gUnknown_085CE078, NULL, gDummySpriteAffineAnimTable, sub_80A77C8 .align 2 +gUnknown_085CE094:: spr_template 0x27cf, 0x27cf, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A1B0 .align 2 +gUnknown_085CE0AC:: spr_template 0x27cd, 0x27cd, gUnknown_08524974, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A254 .align 2 @@ -65,6 +69,7 @@ gUnknown_085CE104:: @ 85CE104 spr_template 0x27cb, 0x27cb, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_085CE0FC, sub_815A2F0 .align 2 +gUnknown_085CE11C:: @ 85CE11C spr_template 0x27a8, 0x27a8, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A6C4 .align 2 @@ -147,9 +152,11 @@ gUnknown_085CE22C:: @ 85CE22C spr_template 0x27f3, 0x27f3, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_085CE224, sub_815A934 .align 2 +gUnknown_085CE244:: spr_template 0x2807, 0x2807, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815AAA4 .align 2 +gUnknown_085CE25C:: spr_template 0x2807, 0x2807, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815ABD0 .align 2 @@ -319,8 +326,11 @@ gUnknown_085CE58C:: @ 85CE58C .align 2 gUnknown_085CE590:: @ 85CE590 spr_template 0x27ff, 0x27ff, gUnknown_0852490C, gUnknown_085CE58C, NULL, gDummySpriteAffineAnimTable, sub_815C95C +gUnknown_085CE5A8:: spr_template 0x2800, 0x2800, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815CB88 +gUnknown_085CE5C0:: spr_template 0x27f3, 0x27f3, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_085CE224, sub_815CC94 +gUnknown_085CE5D8:: spr_template 0x27fc, 0x27fc, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815CDB4 .align 2 @@ -410,6 +420,7 @@ gUnknown_085CE7D4:: @ 85CE7D4 .align 2 gUnknown_085CE7EC:: @ 85CE7EC spr_template 0x2808, 0x2808, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E404 +gUnknown_085CE804:: spr_template 0x280c, 0x280c, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E444 .align 2 @@ -429,6 +440,9 @@ gUnknown_085CE844:: @ 85CE844 .align 2 gUnknown_085CE84C:: @ 85CE84C spr_template 0x280e, 0x280e, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_085CE844, SpriteCallbackDummy + + .align 2 +gUnknown_085CE864:: spr_template 0x2807, 0x2807, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E6D8 .align 2 @@ -438,11 +452,17 @@ gUnknown_085CE87C:: @ 85CE87C .align 2 gUnknown_085CE894:: @ 85CE894 spr_template 0x280f, 0x280f, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E954 +gUnknown_085CE8AC:: spr_template 0x2807, 0x2807, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815EA14 +gUnknown_085CE8C4:: spr_template 0x2812, 0x2812, gUnknown_08524A34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815EE84 +gUnknown_085CE8DC:: spr_template 0x27f9, 0x27f9, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815F18C +gUnknown_085CE8F4:: spr_template 0x27f9, 0x27f9, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81061C4 +gUnknown_085CE90C:: spr_template 0x280a, 0x280a, gUnknown_0852491C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815F48C +gUnknown_085CE924:: spr_template 0x27f0, 0x27f0, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815FE80 .align 2 diff --git a/data/battle_anim_8170478.s b/data/battle_anim_8170478.s index 0e0f749fe9..3da3a76279 100644 --- a/data/battle_anim_8170478.s +++ b/data/battle_anim_8170478.s @@ -140,6 +140,7 @@ gUnknown_085E5310:: @ 85E5310 .2byte 0x0100, 0x0503, 0x0506, 0x0004 .align 2 +gUnknown_085E5338:: @ 85E5338 spr_template 0x281d, 0x281d, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_817330C .align 2 diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 0d3c7a4707..a0c3b39d2a 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -422,7 +422,7 @@ Move_POUND: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W003, +63 - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -444,83 +444,83 @@ AnimScript_82C93DA: end AnimScript_82C93F4: - createsprite 0x8597358, 0x2, -8, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, -8, 0, 1, 2 goto AnimScript_82C93DA AnimScript_82C9408: - createsprite 0x8597358, 0x2, 8, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 8, 0, 1, 2 goto AnimScript_82C93DA Move_POISON_POWDER: loadspritegfx 0x2751 loadspritegfx 0x27A6 loopsewithpan SE_W077, +63, 0xA, 0x6 - createsprite 0x8592148, 0x82, -30, -22, 117, 80, 5, 1 - createsprite 0x8592148, 0x82, 10, -22, 117, 80, -5, 1 - createsprite 0x8592148, 0x82, -25, -22, 117, 112, 5, 3 + createsprite gUnknown_08592148, 0x82, -30, -22, 117, 80, 5, 1 + createsprite gUnknown_08592148, 0x82, 10, -22, 117, 80, -5, 1 + createsprite gUnknown_08592148, 0x82, -25, -22, 117, 112, 5, 3 delay 0xF - createsprite 0x8592148, 0x82, -5, -22, 117, 80, -5, 1 - createsprite 0x8592148, 0x82, 5, -22, 117, 96, 5, 1 - createsprite 0x8592148, 0x82, 0, -22, 117, 69, -5, 1 - createsprite 0x8592148, 0x82, -15, -22, 117, 112, 5, 2 + createsprite gUnknown_08592148, 0x82, -5, -22, 117, 80, -5, 1 + createsprite gUnknown_08592148, 0x82, 5, -22, 117, 96, 5, 1 + createsprite gUnknown_08592148, 0x82, 0, -22, 117, 69, -5, 1 + createsprite gUnknown_08592148, 0x82, -15, -22, 117, 112, 5, 2 delay 0x1E - createsprite 0x8592148, 0x82, -15, -22, 117, 112, 5, 2 - createsprite 0x8592148, 0x82, 15, -22, 117, 80, -5, 1 - createsprite 0x8592148, 0x82, -10, -22, 117, 96, 7, 2 - createsprite 0x8592148, 0x82, -5, -22, 117, 90, -8, 0 + createsprite gUnknown_08592148, 0x82, -15, -22, 117, 112, 5, 2 + createsprite gUnknown_08592148, 0x82, 15, -22, 117, 80, -5, 1 + createsprite gUnknown_08592148, 0x82, -10, -22, 117, 96, 7, 2 + createsprite gUnknown_08592148, 0x82, -5, -22, 117, 90, -8, 0 delay 0x14 - createsprite 0x8592148, 0x82, -10, -22, 117, 80, -5, 1 - createsprite 0x8592148, 0x82, 0, -22, 117, 89, 5, 2 - createsprite 0x8592148, 0x82, 20, -22, 117, 112, -8, 2 - createsprite 0x8592148, 0x82, 5, -22, 117, 80, 5, 1 + createsprite gUnknown_08592148, 0x82, -10, -22, 117, 80, -5, 1 + createsprite gUnknown_08592148, 0x82, 0, -22, 117, 89, 5, 2 + createsprite gUnknown_08592148, 0x82, 20, -22, 117, 112, -8, 2 + createsprite gUnknown_08592148, 0x82, 5, -22, 117, 80, 5, 1 waitforvisualfinish end Move_STUN_SPORE: loadspritegfx 0x2754 loopsewithpan SE_W077, +63, 0xA, 0x6 - createsprite 0x8592130, 0x82, -30, -22, 117, 80, 5, 1 - createsprite 0x8592130, 0x82, 10, -22, 117, 80, -5, 1 - createsprite 0x8592130, 0x82, -25, -22, 117, 112, 5, 3 + createsprite gUnknown_08592130, 0x82, -30, -22, 117, 80, 5, 1 + createsprite gUnknown_08592130, 0x82, 10, -22, 117, 80, -5, 1 + createsprite gUnknown_08592130, 0x82, -25, -22, 117, 112, 5, 3 delay 0xF - createsprite 0x8592130, 0x82, -5, -22, 117, 80, -5, 1 - createsprite 0x8592130, 0x82, 5, -22, 117, 96, 5, 1 - createsprite 0x8592130, 0x82, 0, -22, 117, 69, -5, 1 - createsprite 0x8592130, 0x82, -15, -22, 117, 112, 5, 2 + createsprite gUnknown_08592130, 0x82, -5, -22, 117, 80, -5, 1 + createsprite gUnknown_08592130, 0x82, 5, -22, 117, 96, 5, 1 + createsprite gUnknown_08592130, 0x82, 0, -22, 117, 69, -5, 1 + createsprite gUnknown_08592130, 0x82, -15, -22, 117, 112, 5, 2 delay 0x1E - createsprite 0x8592130, 0x82, -15, -22, 117, 112, 5, 2 - createsprite 0x8592130, 0x82, 15, -22, 117, 80, -5, 1 - createsprite 0x8592130, 0x82, -10, -22, 117, 96, 7, 2 - createsprite 0x8592130, 0x82, -5, -22, 117, 90, -8, 0 + createsprite gUnknown_08592130, 0x82, -15, -22, 117, 112, 5, 2 + createsprite gUnknown_08592130, 0x82, 15, -22, 117, 80, -5, 1 + createsprite gUnknown_08592130, 0x82, -10, -22, 117, 96, 7, 2 + createsprite gUnknown_08592130, 0x82, -5, -22, 117, 90, -8, 0 delay 0x14 - createsprite 0x8592130, 0x82, -10, -22, 117, 80, -5, 1 - createsprite 0x8592130, 0x82, 0, -22, 117, 89, 5, 2 - createsprite 0x8592130, 0x82, 20, -22, 117, 112, -8, 2 - createsprite 0x8592130, 0x82, 5, -22, 117, 80, 5, 1 + createsprite gUnknown_08592130, 0x82, -10, -22, 117, 80, -5, 1 + createsprite gUnknown_08592130, 0x82, 0, -22, 117, 89, 5, 2 + createsprite gUnknown_08592130, 0x82, 20, -22, 117, 112, -8, 2 + createsprite gUnknown_08592130, 0x82, 5, -22, 117, 80, 5, 1 waitforvisualfinish end Move_SLEEP_POWDER: loadspritegfx 0x2753 loopsewithpan SE_W077, +63, 0xA, 0x6 - createsprite 0x8592118, 0x82, -30, -22, 117, 80, 5, 1 - createsprite 0x8592118, 0x82, 10, -22, 117, 80, -5, 1 - createsprite 0x8592118, 0x82, -25, -22, 117, 112, 5, 3 + createsprite gUnknown_08592118, 0x82, -30, -22, 117, 80, 5, 1 + createsprite gUnknown_08592118, 0x82, 10, -22, 117, 80, -5, 1 + createsprite gUnknown_08592118, 0x82, -25, -22, 117, 112, 5, 3 delay 0xF - createsprite 0x8592118, 0x82, -5, -22, 117, 80, -5, 1 - createsprite 0x8592118, 0x82, 5, -22, 117, 96, 5, 1 - createsprite 0x8592118, 0x82, 0, -22, 117, 69, -5, 1 - createsprite 0x8592118, 0x82, -15, -22, 117, 112, 5, 2 + createsprite gUnknown_08592118, 0x82, -5, -22, 117, 80, -5, 1 + createsprite gUnknown_08592118, 0x82, 5, -22, 117, 96, 5, 1 + createsprite gUnknown_08592118, 0x82, 0, -22, 117, 69, -5, 1 + createsprite gUnknown_08592118, 0x82, -15, -22, 117, 112, 5, 2 delay 0x1E - createsprite 0x8592118, 0x82, -15, -22, 117, 112, 5, 2 - createsprite 0x8592118, 0x82, 15, -22, 117, 80, -5, 1 - createsprite 0x8592118, 0x82, -10, -22, 117, 96, 7, 2 - createsprite 0x8592118, 0x82, -5, -22, 117, 90, -8, 0 + createsprite gUnknown_08592118, 0x82, -15, -22, 117, 112, 5, 2 + createsprite gUnknown_08592118, 0x82, 15, -22, 117, 80, -5, 1 + createsprite gUnknown_08592118, 0x82, -10, -22, 117, 96, 7, 2 + createsprite gUnknown_08592118, 0x82, -5, -22, 117, 90, -8, 0 delay 0x14 - createsprite 0x8592118, 0x82, -10, -22, 117, 80, -5, 1 - createsprite 0x8592118, 0x82, 0, -22, 117, 89, 5, 2 - createsprite 0x8592118, 0x82, 20, -22, 117, 112, -8, 2 - createsprite 0x8592118, 0x82, 5, -22, 117, 80, 5, 1 + createsprite gUnknown_08592118, 0x82, -10, -22, 117, 80, -5, 1 + createsprite gUnknown_08592118, 0x82, 0, -22, 117, 89, 5, 2 + createsprite gUnknown_08592118, 0x82, 20, -22, 117, 112, -8, 2 + createsprite gUnknown_08592118, 0x82, 5, -22, 117, 80, 5, 1 waitforvisualfinish end @@ -530,21 +530,21 @@ Move_SWIFT: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W129, -64 - createsprite 0x8592404, 0x83, 20, -10, 20, 0, 22, 20, 1 + createsprite gUnknown_08592404, 0x83, 20, -10, 20, 0, 22, 20, 1 delay 0x5 playsewithpan SE_W129, -64 - createsprite 0x8592404, 0x83, 20, -10, 20, 5, 22, -18, 1 + createsprite gUnknown_08592404, 0x83, 20, -10, 20, 5, 22, -18, 1 delay 0x5 playsewithpan SE_W129, -64 - createsprite 0x8592404, 0x83, 20, -10, 20, -10, 22, 15, 1 + createsprite gUnknown_08592404, 0x83, 20, -10, 20, -10, 22, 15, 1 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 18, 1 createvisualtask sub_80D52D0, 0x2, 3, 2, 0, 18, 1 delay 0x5 playsewithpan SE_W129, -64 - createsprite 0x8592404, 0x83, 20, -10, 20, 0, 22, -20, 1 + createsprite gUnknown_08592404, 0x83, 20, -10, 20, 0, 22, -20, 1 delay 0x5 playsewithpan SE_W129, -64 - createsprite 0x8592404, 0x83, 20, -10, 20, 0, 22, 12, 1 + createsprite gUnknown_08592404, 0x83, 20, -10, 20, 0, 22, 12, 1 delay 0x5 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -559,17 +559,17 @@ Move_STRENGTH: createvisualtask sub_80D5644, 0x5, 0, 2, 0, 96, 30 waitforvisualfinish delay 0xA - createsprite 0x857FE58, 0x2, 0, 0, 4 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 4 createvisualtask sub_80D5830, 0x2, 1, 18, 6, 2, 4 delay 0x4 playsewithpan SE_W025B, +63 - createsprite 0x8597358, 0x3, 16, 12, 1, 1 + createsprite gUnknown_08597358, 0x3, 16, 12, 1, 1 delay 0x4 playsewithpan SE_W025B, +63 - createsprite 0x8597358, 0x3, -16, -12, 1, 1 + createsprite gUnknown_08597358, 0x3, -16, -12, 1, 1 delay 0x4 playsewithpan SE_W025B, +63 - createsprite 0x8597358, 0x3, 3, 4, 1, 1 + createsprite gUnknown_08597358, 0x3, 3, 4, 1, 1 waitforvisualfinish createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 waitforvisualfinish @@ -581,9 +581,9 @@ Move_TACKLE: loadspritegfx 0x2797 monbg ANIM_TARGET setalpha 0x80C - createsprite 0x857FE28, 0x2, 4, 4 + createsprite gUnknown_0857FE28, 0x2, 4, 4 delay 0x6 - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 playsewithpan SE_W004, +63 waitforvisualfinish @@ -596,22 +596,22 @@ Move_BODY_SLAM: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W036, -64 - createsprite 0x857FE40, 0x2, 6, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 6, 1, 0 waitforvisualfinish delay 0xB - createsprite 0x857FE70, 0x2, 0, 26, 0, 0, 5 + createsprite gUnknown_0857FE70, 0x2, 0, 26, 0, 0, 5 delay 0x6 - createsprite 0x8597358, 0x4, -10, 0, 1, 0 + createsprite gUnknown_08597358, 0x4, -10, 0, 1, 0 loopsewithpan SE_W025B, +63, 0xA, 0x2 delay 0x1 - createsprite 0x857FE70, 0x2, 1, -28, 0, 0, 3 + createsprite gUnknown_0857FE70, 0x2, 1, -28, 0, 0, 3 waitforvisualfinish createvisualtask sub_80D5484, 0x2, 1, 4, 0, 12, 1 waitforvisualfinish delay 0xA - createsprite 0x857FE58, 0x2, 0, 0, 6 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 6 delay 0x5 - createsprite 0x857FE58, 0x2, 1, 0, 6 + createsprite gUnknown_0857FE58, 0x2, 1, 0, 6 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -636,7 +636,7 @@ Move_SUPERSONIC: AnimScript_82C99FF: playsewithpan SE_W048, -64 - createsprite 0x8593428, 0x82, 16, 0, 0, 0, 30, 0 + createsprite gUnknown_08593428, 0x82, 16, 0, 0, 0, 30, 0 delay 0x2 return @@ -652,7 +652,7 @@ Move_SCREECH: AnimScript_82C9A4C: playsewithpan SE_W103, -64 - createsprite 0x8593440, 0x82, 16, 0, 0, 0, 30, 0 + createsprite gUnknown_08593440, 0x82, 16, 0, 0, 0, 30, 0 delay 0x2 return @@ -660,41 +660,41 @@ Move_FLAME_WHEEL: loadspritegfx 0x272D monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET - createsprite 0x8595584, 0x3, 0, 0, 56, 0 + createsprite gUnknown_08595584, 0x3, 0, 0, 56, 0 playsewithpan SE_W172, -64 delay 0x2 - createsprite 0x8595584, 0x3, 0, 0, 56, 4 + createsprite gUnknown_08595584, 0x3, 0, 0, 56, 4 playsewithpan SE_W172, -64 delay 0x2 - createsprite 0x8595584, 0x3, 0, 0, 56, 8 + createsprite gUnknown_08595584, 0x3, 0, 0, 56, 8 playsewithpan SE_W172, -64 delay 0x2 - createsprite 0x8595584, 0x3, 0, 0, 56, 12 + createsprite gUnknown_08595584, 0x3, 0, 0, 56, 12 playsewithpan SE_W172, -64 delay 0x2 - createsprite 0x8595584, 0x3, 0, 0, 56, 16 + createsprite gUnknown_08595584, 0x3, 0, 0, 56, 16 playsewithpan SE_W172, -64 delay 0x2 - createsprite 0x8595584, 0x3, 0, 0, 56, 20 + createsprite gUnknown_08595584, 0x3, 0, 0, 56, 20 playsewithpan SE_W172, -64 delay 0x2 - createsprite 0x8595584, 0x3, 0, 0, 56, 24 + createsprite gUnknown_08595584, 0x3, 0, 0, 56, 24 playsewithpan SE_W172, -64 waitforvisualfinish - createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 6 + createsprite gUnknown_0857FE70, 0x2, 0, 24, 0, 0, 6 delay 0x4 createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 8, 1 createvisualtask sub_80A7B98, 0x3, 1, 31, 12, 1, 1 playsewithpan SE_W172B, +63 call AnimScript_82D2D18 delay 0x7 - createsprite 0x857FE58, 0x2, 0, 0, 9 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 9 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end AnimScript_82C9B50: - createsprite 0x8595584, 0x3, 0, 0, 50 + createsprite gUnknown_08595584, 0x3, 0, 0, 50 delay 0x4 return @@ -705,22 +705,22 @@ Move_PIN_MISSILE: monbgprio_28 ANIM_TARGET setalpha 0x80C playsewithpan SE_W026, -64 - createsprite 0x8596A5C, 0x2, 20, -8, -8, -8, 20, -32 + createsprite gUnknown_08596A5C, 0x2, 20, -8, -8, -8, 20, -32 delay 0xF - createsprite 0x8596A5C, 0x2, 20, -8, 8, 8, 20, -40 + createsprite gUnknown_08596A5C, 0x2, 20, -8, 8, 8, 20, -40 delay 0x4 playsewithpan SE_W030, +63 - createsprite 0x8597358, 0x3, -8, -8, 1, 2 + createsprite gUnknown_08597358, 0x3, -8, -8, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 delay 0x9 - createsprite 0x8596A5C, 0x2, 20, -8, 0, 0, 20, -32 + createsprite gUnknown_08596A5C, 0x2, 20, -8, 0, 0, 20, -32 delay 0x4 playsewithpan SE_W030, +63 - createsprite 0x8597358, 0x3, 8, 8, 1, 2 + createsprite gUnknown_08597358, 0x3, 8, 8, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 delay 0xE playsewithpan SE_W030, +63 - createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -734,22 +734,22 @@ Move_ICICLE_SPEAR: monbgprio_28 ANIM_TARGET setalpha 0x80C playsewithpan SE_W196, -64 - createsprite 0x8596A74, 0x2, 20, -8, -8, -8, 20, -32 + createsprite gUnknown_08596A74, 0x2, 20, -8, -8, -8, 20, -32 delay 0xF - createsprite 0x8596A74, 0x2, 20, -8, 8, 8, 20, -40 + createsprite gUnknown_08596A74, 0x2, 20, -8, 8, 8, 20, -40 delay 0x4 playsewithpan SE_W030, +63 - createsprite 0x8597358, 0x3, -8, -8, 1, 2 + createsprite gUnknown_08597358, 0x3, -8, -8, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 delay 0x9 - createsprite 0x8596A74, 0x2, 20, -8, 0, 0, 20, -32 + createsprite gUnknown_08596A74, 0x2, 20, -8, 0, 0, 20, -32 delay 0x4 playsewithpan SE_W030, +63 - createsprite 0x8597358, 0x3, 8, 8, 1, 2 + createsprite gUnknown_08597358, 0x3, 8, 8, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 delay 0xE playsewithpan SE_W030, +63 - createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 2, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -762,18 +762,18 @@ Move_TAKE_DOWN: setalpha 0x80C createvisualtask sub_80D5C50, 0x5, 0, -24, 8, 23, 10, 40, 10 delay 0x23 - createsprite 0x859728C, 0x2, 31, 3, 1, 0, 10, 0, 0 - createsprite 0x8597358, 0x4, -10, 0, 1, 0 + createsprite gUnknown_0859728C, 0x2, 31, 3, 1, 0, 10, 0, 0 + createsprite gUnknown_08597358, 0x4, -10, 0, 1, 0 playsewithpan SE_W025B, +63 delay 0x1 - createsprite 0x857FE70, 0x2, 1, -16, 0, 0, 4 + createsprite gUnknown_0857FE70, 0x2, 1, -16, 0, 0, 4 waitforvisualfinish createvisualtask sub_80D5484, 0x2, 1, 4, 0, 12, 1 waitforvisualfinish delay 0x2 - createsprite 0x857FE58, 0x2, 0, 0, 5 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 5 delay 0x3 - createsprite 0x857FE58, 0x2, 1, 0, 7 + createsprite gUnknown_0857FE58, 0x2, 1, 0, 7 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -782,33 +782,33 @@ Move_TAKE_DOWN: Move_DOUBLE_EDGE: loadspritegfx 0x2797 playsewithpan SE_W129, -64 - createsprite 0x859728C, 0x2, 2, 4, 2, 0x7FFF, 10, 0, 0 + createsprite gUnknown_0859728C, 0x2, 2, 4, 2, 0x7FFF, 10, 0, 0 waitforvisualfinish delay 0xA playsewithpan SE_W207, -64 waitplaysewithpan SE_W207, -64, 0x8 createvisualtask sub_80D5830, 0x2, 0, 18, 6, 2, 4 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 0, 16, 16, 0x7FFF - createsprite 0x857FE70, 0x2, 0, 20, 0, 0, 4 + createsprite gUnknown_08597274, 0x2, 1, 0, 16, 16, 0x7FFF + createsprite gUnknown_0857FE70, 0x2, 0, 20, 0, 0, 4 delay 0x3 waitforvisualfinish playsewithpan SE_W025B, +63 - createsprite 0x8597358, 0x84, -10, 0, 1, 0 - createsprite 0x857FE70, 0x2, 1, -32, 0, 0, 3 + createsprite gUnknown_08597358, 0x84, -10, 0, 1, 0 + createsprite gUnknown_0857FE70, 0x2, 1, -32, 0, 0, 3 waitforvisualfinish createvisualtask sub_80D6134, 0x2, 8, -256, 0, 0 createvisualtask sub_80D6134, 0x2, 8, -256, 1, 0 createvisualtask sub_80D5484, 0x2, 0, 4, 0, 12, 1 createvisualtask sub_80D5484, 0x2, 1, 4, 0, 12, 1 - createsprite 0x8597274, 0x2, 1, 2, 16, 0, 0x7FFF + createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, 0x7FFF waitforvisualfinish createvisualtask sub_80D6134, 0x2, 8, -256, 0, 1 createvisualtask sub_80D6134, 0x2, 8, -256, 1, 1 waitforvisualfinish - createsprite 0x857FE58, 0x2, 0, 0, 5 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 5 delay 0x3 - createsprite 0x857FE58, 0x2, 1, 0, 7 + createsprite gUnknown_0857FE58, 0x2, 1, 0, 7 waitforvisualfinish end @@ -820,9 +820,9 @@ Move_POISON_STING: monbgprio_28 ANIM_TARGET setalpha 0x80C playsewithpan SE_W013B, -64 - createsprite 0x8596A44, 0x82, 20, 0, -8, 0, 20 + createsprite gUnknown_08596A44, 0x82, 20, 0, -8, 0, 20 waitforvisualfinish - createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 5, 1 playsewithpan SE_W030, +63 waitforvisualfinish @@ -839,14 +839,14 @@ Move_TWINEEDLE: monbgprio_28 ANIM_TARGET setalpha 0x80C loopsewithpan SE_W013B, -64, 0x6, 0x2 - createsprite 0x8596A44, 0x82, 10, -4, 0, -4, 20 - createsprite 0x8596A44, 0x82, 20, 12, 10, 12, 20 + createsprite gUnknown_08596A44, 0x82, 10, -4, 0, -4, 20 + createsprite gUnknown_08596A44, 0x82, 20, 12, 10, 12, 20 delay 0x14 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 5, 1 - createsprite 0x8597370, 0x3, 0, -4, 1, 3 + createsprite gUnknown_08597370, 0x3, 0, -4, 1, 3 loopsewithpan SE_W030, +63, 0x5, 0x2 delay 0x1 - createsprite 0x8597370, 0x3, 10, 12, 1, 3 + createsprite gUnknown_08597370, 0x3, 10, 12, 1, 3 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -886,32 +886,32 @@ Move_FIRE_BLAST: end AnimScript_82C9FE9: - createsprite 0x859551C, 0x82, 0, 0, 0 - createsprite 0x859551C, 0x82, 0, 0, 51 - createsprite 0x859551C, 0x82, 0, 0, 102 - createsprite 0x859551C, 0x82, 0, 0, 153 - createsprite 0x859551C, 0x82, 0, 0, 204 + createsprite gUnknown_0859551C, 0x82, 0, 0, 0 + createsprite gUnknown_0859551C, 0x82, 0, 0, 51 + createsprite gUnknown_0859551C, 0x82, 0, 0, 102 + createsprite gUnknown_0859551C, 0x82, 0, 0, 153 + createsprite gUnknown_0859551C, 0x82, 0, 0, 204 delay 0x5 return AnimScript_82CA02D: - createsprite 0x859556C, 0x82, 0, 0, 10, 0, -2 - createsprite 0x859556C, 0x82, 0, 0, 13, -2, 0 - createsprite 0x859556C, 0x82, 0, 0, 13, 2, 0 - createsprite 0x859556C, 0x82, 0, 0, 15, -2, 2 - createsprite 0x859556C, 0x82, 0, 0, 15, 2, 2 + createsprite gUnknown_0859556C, 0x82, 0, 0, 10, 0, -2 + createsprite gUnknown_0859556C, 0x82, 0, 0, 13, -2, 0 + createsprite gUnknown_0859556C, 0x82, 0, 0, 13, 2, 0 + createsprite gUnknown_0859556C, 0x82, 0, 0, 15, -2, 2 + createsprite gUnknown_0859556C, 0x82, 0, 0, 15, 2, 2 return Move_LEECH_SEED: loadspritegfx 0x2716 playsewithpan SE_W077, -64 - createsprite 0x85922BC, 0x82, 15, 0, 0, 24, 35, -32 + createsprite gUnknown_085922BC, 0x82, 15, 0, 0, 24, 35, -32 delay 0x8 playsewithpan SE_W077, -64 - createsprite 0x85922BC, 0x82, 15, 0, -16, 24, 35, -40 + createsprite gUnknown_085922BC, 0x82, 15, 0, -16, 24, 35, -40 delay 0x8 playsewithpan SE_W077, -64 - createsprite 0x85922BC, 0x82, 15, 0, 16, 24, 35, -37 + createsprite gUnknown_085922BC, 0x82, 15, 0, 16, 24, 35, -37 delay 0xC loopsewithpan SE_W039, +63, 0xA, 0x8 waitforvisualfinish @@ -920,11 +920,11 @@ Move_LEECH_SEED: Move_EMBER: loadspritegfx 0x272D loopsewithpan SE_W052, -64, 0x5, 0x2 - createsprite 0x85954D4, 0x82, 20, 0, -16, 24, 20, 1 + createsprite gUnknown_085954D4, 0x82, 20, 0, -16, 24, 20, 1 delay 0x4 - createsprite 0x85954D4, 0x82, 20, 0, 0, 24, 20, 1 + createsprite gUnknown_085954D4, 0x82, 20, 0, 0, 24, 20, 1 delay 0x4 - createsprite 0x85954D4, 0x82, 20, 0, 16, 24, 20, 1 + createsprite gUnknown_085954D4, 0x82, 20, 0, 16, 24, 20, 1 delay 0x10 playsewithpan SE_W172, +63 call AnimScript_82CA135 @@ -933,7 +933,7 @@ Move_EMBER: end AnimScript_82CA135: - createsprite 0x85954EC, 0x82, -24, 24, 24, 24, 20, 1, 1 + createsprite gUnknown_085954EC, 0x82, -24, 24, 24, 24, 20, 1, 1 delay 0x4 return @@ -942,17 +942,17 @@ Move_MEGA_PUNCH: loadspritegfx 0x279F monbg ANIM_TARGET delay 0x2 - createsprite 0x8597274, 0x2, 1, 0, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 0, 0, 16, 0 setalpha 0x80C playsewithpan SE_W025, +63 - createsprite 0x8595F48, 0x3, 0, 0, 0, 50 + createsprite gUnknown_08595F48, 0x3, 0, 0, 0, 50 createvisualtask sub_8116620, 0xA, 4, 2, 0, 7, 0x7FFF delay 0x32 call AnimScript_82CA1E9 - createsprite 0x8597358, 0x2, 0, 0, 1, 0 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 0 createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 22, 1 createvisualtask sub_8116620, 0xA, 4, 2, 0, 0, 0x7FFF - createsprite 0x859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 + createsprite gUnknown_0859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 playsewithpan SE_W233B, +63 waitforvisualfinish clearmonbg ANIM_TARGET @@ -990,18 +990,18 @@ Move_MEGA_KICK: loadspritegfx 0x279F monbg ANIM_TARGET delay 0x2 - createsprite 0x8597274, 0x2, 1, 0, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 0, 0, 16, 0 setalpha 0x80C playsewithpan SE_W025, +63 - createsprite 0x8595F48, 0x3, 0, 0, 1, 50 + createsprite gUnknown_08595F48, 0x3, 0, 0, 1, 50 createvisualtask sub_8116620, 0xA, 4, 2, 0, 7, 0x7FFF delay 0x32 playsewithpan SE_W025B, +63 call AnimScript_82CA1E9 - createsprite 0x8597358, 0x2, 0, 0, 1, 0 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 0 createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 22, 1 createvisualtask sub_8116620, 0xA, 4, 2, 0, 0, 0x7FFF - createsprite 0x859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 + createsprite gUnknown_0859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -1026,13 +1026,13 @@ AnimScript_82CA2D7: end AnimScript_82CA2F1: - createsprite 0x8597358, 0x2, -8, -8, 1, 2 - createsprite 0x8595E98, 0x3, -8, 0, 8, 1, 0 + createsprite gUnknown_08597358, 0x2, -8, -8, 1, 2 + createsprite gUnknown_08595E98, 0x3, -8, 0, 8, 1, 0 goto AnimScript_82CA2D7 AnimScript_82CA316: - createsprite 0x8597358, 0x2, 8, -8, 1, 2 - createsprite 0x8595E98, 0x3, 8, 0, 8, 1, 0 + createsprite gUnknown_08597358, 0x2, 8, -8, 1, 2 + createsprite gUnknown_08595E98, 0x3, 8, 0, 8, 1, 0 goto AnimScript_82CA2D7 Move_SONIC_BOOM: @@ -1053,12 +1053,12 @@ Move_SONIC_BOOM: AnimScript_82CA372: playsewithpan SE_W013B, -64 - createsprite 0x8593398, 0x82, 16, 0, 0, 0, 15 + createsprite gUnknown_08593398, 0x82, 16, 0, 0, 0, 15 delay 0x4 return AnimScript_82CA38A: - createsprite 0x8597358, 0x83, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x83, 0, 0, 1, 2 delay 0x4 return @@ -1104,15 +1104,15 @@ Move_THUNDERBOLT: createvisualtask sub_8116620, 0xA, 4, 0, 13, 0, 0 waitforvisualfinish delay 0x14 - createsprite 0x85957E0, 0x83, 44, 0, 0, 3 - createsprite 0x85957F8, 0x84, 0, 0, 32, 44, 0, 40, 0, -32765 - createsprite 0x85957F8, 0x84, 0, 0, 32, 44, 64, 40, 1, -32765 - createsprite 0x85957F8, 0x84, 0, 0, 32, 44, 128, 40, 0, -32765 - createsprite 0x85957F8, 0x84, 0, 0, 32, 44, 192, 40, 2, -32765 - createsprite 0x85957F8, 0x84, 0, 0, 16, 44, 32, 40, 0, -32765 - createsprite 0x85957F8, 0x84, 0, 0, 16, 44, 96, 40, 1, -32765 - createsprite 0x85957F8, 0x84, 0, 0, 16, 44, 160, 40, 0, -32765 - createsprite 0x85957F8, 0x84, 0, 0, 16, 44, 224, 40, 2, -32765 + createsprite gUnknown_085957E0, 0x83, 44, 0, 0, 3 + createsprite gUnknown_085957F8, 0x84, 0, 0, 32, 44, 0, 40, 0, -32765 + createsprite gUnknown_085957F8, 0x84, 0, 0, 32, 44, 64, 40, 1, -32765 + createsprite gUnknown_085957F8, 0x84, 0, 0, 32, 44, 128, 40, 0, -32765 + createsprite gUnknown_085957F8, 0x84, 0, 0, 32, 44, 192, 40, 2, -32765 + createsprite gUnknown_085957F8, 0x84, 0, 0, 16, 44, 32, 40, 0, -32765 + createsprite gUnknown_085957F8, 0x84, 0, 0, 16, 44, 96, 40, 1, -32765 + createsprite gUnknown_085957F8, 0x84, 0, 0, 16, 44, 160, 40, 0, -32765 + createsprite gUnknown_085957F8, 0x84, 0, 0, 16, 44, 224, 40, 2, -32765 playsewithpan SE_W063, +63 delay 0x0 createvisualtask sub_8116620, 0xA, 1, 0, 2, 2, 0 @@ -1143,11 +1143,11 @@ Move_THUNDER_WAVE: playsewithpan SE_W086, +63 delay 0x14 loopsewithpan SE_W085B, +63, 0xA, 0x4 - createsprite 0x8595840, 0x82, -16, -16 + createsprite gUnknown_08595840, 0x82, -16, -16 delay 0x4 - createsprite 0x8595840, 0x82, -16, 0 + createsprite gUnknown_08595840, 0x82, -16, 0 delay 0x4 - createsprite 0x8595840, 0x82, -16, 16 + createsprite gUnknown_08595840, 0x82, -16, 16 waitforvisualfinish createvisualtask sub_8116620, 0xA, 1, 0, 6, 0, 0 waitforvisualfinish @@ -1167,25 +1167,25 @@ AnimScript_82CA643: end AnimScript_82CA648: - createsprite 0x8597358, 0x82, -20, -20, 1, 2 - createsprite 0x8595E98, 0x83, -20, -12, 8, 1, 0 + createsprite gUnknown_08597358, 0x82, -20, -20, 1, 2 + createsprite gUnknown_08595E98, 0x83, -20, -12, 8, 1, 0 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 playsewithpan SE_W233B, +63 delay 0x8 - createsprite 0x8597358, 0x82, 8, 0, 1, 2 - createsprite 0x8595E98, 0x83, 8, 8, 8, 1, 0 + createsprite gUnknown_08597358, 0x82, 8, 0, 1, 2 + createsprite gUnknown_08595E98, 0x83, 8, 8, 8, 1, 0 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 playsewithpan SE_W233B, +63 goto AnimScript_82CA643 AnimScript_82CA6B9: - createsprite 0x8597358, 0x82, 12, -20, 1, 2 - createsprite 0x8595E98, 0x83, 12, -12, 8, 1, 0 + createsprite gUnknown_08597358, 0x82, 12, -20, 1, 2 + createsprite gUnknown_08595E98, 0x83, 12, -12, 8, 1, 0 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 playsewithpan SE_W233B, +63 delay 0x8 - createsprite 0x8597358, 0x82, -12, 0, 1, 2 - createsprite 0x8595E98, 0x83, -12, 8, 8, 1, 0 + createsprite gUnknown_08597358, 0x82, -12, 0, 1, 2 + createsprite gUnknown_08595E98, 0x83, -12, 8, 8, 1, 0 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 playsewithpan SE_W233B, +63 goto AnimScript_82CA643 @@ -1196,9 +1196,9 @@ Move_STOMP: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W104, +63 - createsprite 0x8595F60, 0x3, 0, -32, 15 + createsprite gUnknown_08595F60, 0x3, 0, -32, 15 delay 0x13 - createsprite 0x8597358, 0x2, 0, -8, 1, 1 + createsprite gUnknown_08597358, 0x2, 0, -8, 1, 1 createvisualtask sub_80D51AC, 0x2, 1, 0, 4, 9, 1 playsewithpan SE_W025B, +63 waitforvisualfinish @@ -1217,7 +1217,7 @@ Move_CUT: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W015, +63 - createsprite 0x8592A1C, 0x2, 40, -32, 0 + createsprite gUnknown_08592A1C, 0x2, 40, -32, 0 delay 0x5 createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 10, 1 waitforvisualfinish @@ -1236,24 +1236,24 @@ Move_HIDDEN_POWER: delay 0x4 createvisualtask sub_80D6064, 0x5, -7, -7, 11, 0, 0 playsewithpan SE_W179, -64 - createsprite 0x8593A04, 0x2, 26, 0 - createsprite 0x8593A04, 0x2, 26, 42 - createsprite 0x8593A04, 0x2, 26, 84 - createsprite 0x8593A04, 0x2, 26, 126 - createsprite 0x8593A04, 0x2, 26, 168 - createsprite 0x8593A04, 0x2, 26, 210 + createsprite gUnknown_08593A04, 0x2, 26, 0 + createsprite gUnknown_08593A04, 0x2, 26, 42 + createsprite gUnknown_08593A04, 0x2, 26, 84 + createsprite gUnknown_08593A04, 0x2, 26, 126 + createsprite gUnknown_08593A04, 0x2, 26, 168 + createsprite gUnknown_08593A04, 0x2, 26, 210 delay 0x34 setarg 0x7, 0xFFFF playsewithpan SE_W115, -64 createvisualtask sub_80D6064, 0x5, -7, -7, 11, 0, 0 - createsprite 0x8593A1C, 0x82, 0 - createsprite 0x8593A1C, 0x82, 32 - createsprite 0x8593A1C, 0x82, 64 - createsprite 0x8593A1C, 0x82, 96 - createsprite 0x8593A1C, 0x82, 128 - createsprite 0x8593A1C, 0x82, 160 - createsprite 0x8593A1C, 0x82, 192 - createsprite 0x8593A1C, 0x82, 224 + createsprite gUnknown_08593A1C, 0x82, 0 + createsprite gUnknown_08593A1C, 0x82, 32 + createsprite gUnknown_08593A1C, 0x82, 64 + createsprite gUnknown_08593A1C, 0x82, 96 + createsprite gUnknown_08593A1C, 0x82, 128 + createsprite gUnknown_08593A1C, 0x82, 160 + createsprite gUnknown_08593A1C, 0x82, 192 + createsprite gUnknown_08593A1C, 0x82, 224 end Move_REVERSAL: @@ -1261,26 +1261,26 @@ Move_REVERSAL: loadspritegfx 0x279F loadspritegfx 0x2797 playsewithpan SE_W197, -64 - createsprite 0x859728C, 0x2, 31, 3, 3, 0x7FFF, 8, 0, 0 + createsprite gUnknown_0859728C, 0x2, 31, 3, 3, 0x7FFF, 8, 0, 0 waitforvisualfinish delay 0x1E createvisualtask sub_8115A04, 0x2, 31, 3, 2, 0, 10, 0x7FFF delay 0xA playsewithpan SE_W179, -64 - createsprite 0x85CE5D8, 0x2, 26, 0 - createsprite 0x85CE5D8, 0x2, 26, 42 - createsprite 0x85CE5D8, 0x2, 26, 84 - createsprite 0x85CE5D8, 0x2, 26, 126 - createsprite 0x85CE5D8, 0x2, 26, 168 - createsprite 0x85CE5D8, 0x2, 26, 210 + createsprite gUnknown_085CE5D8, 0x2, 26, 0 + createsprite gUnknown_085CE5D8, 0x2, 26, 42 + createsprite gUnknown_085CE5D8, 0x2, 26, 84 + createsprite gUnknown_085CE5D8, 0x2, 26, 126 + createsprite gUnknown_085CE5D8, 0x2, 26, 168 + createsprite gUnknown_085CE5D8, 0x2, 26, 210 waitforvisualfinish delay 0x14 - createsprite 0x857FE28, 0x2, 6, 4 + createsprite gUnknown_0857FE28, 0x2, 6, 4 delay 0x8 playsewithpan SE_W233B, +63 - createsprite 0x859728C, 0x2, 31, 3, 1, 0x7FFF, 8, 0, 0 - createsprite 0x8595E98, 0x84, 0, 0, 10, 1, 0 - createsprite 0x8597358, 0x83, 0, 0, 1, 1 + createsprite gUnknown_0859728C, 0x2, 31, 3, 1, 0x7FFF, 8, 0, 0 + createsprite gUnknown_08595E98, 0x84, 0, 0, 10, 1, 0 + createsprite gUnknown_08597358, 0x83, 0, 0, 1, 1 createvisualtask sub_80D6388, 0x5, 0, 1, 8, 1, 0 end @@ -1304,13 +1304,13 @@ AnimScript_82CA996: AnimScript_82CA99F: playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 2 createvisualtask sub_80D6388, 0x5, 0, 1, 6, 1, 0 goto AnimScript_82CA996 AnimScript_82CA9C8: playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x3, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 1 createvisualtask sub_80D6388, 0x5, 0, 1, 6, 1, 0 goto AnimScript_82CA996 @@ -1323,14 +1323,14 @@ Move_SPIKE_CANNON: createvisualtask sub_80D5C50, 0x5, 0, -4, 0, 4, 6, 8, 4 waitforvisualfinish loopsewithpan SE_W013B, -64, 0x5, 0x3 - createsprite 0x857FE58, 0x2, 0, 0, 5 - createsprite 0x8596A44, 0x2, 10, -8, -8, -8, 20 - createsprite 0x8596A44, 0x2, 18, 0, 0, 0, 20 - createsprite 0x8596A44, 0x2, 26, 8, 8, 8, 20 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 5 + createsprite gUnknown_08596A44, 0x2, 10, -8, -8, -8, 20 + createsprite gUnknown_08596A44, 0x2, 18, 0, 0, 0, 20 + createsprite gUnknown_08596A44, 0x2, 26, 8, 8, 8, 20 waitforvisualfinish - createsprite 0x8597370, 0x3, -8, -8, 1, 2 - createsprite 0x8597370, 0x3, 0, 0, 1, 2 - createsprite 0x8597370, 0x3, 8, 8, 1, 2 + createsprite gUnknown_08597370, 0x3, -8, -8, 1, 2 + createsprite gUnknown_08597370, 0x3, 0, 0, 1, 2 + createsprite gUnknown_08597370, 0x3, 8, 8, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 7, 1 loopsewithpan SE_W030, +63, 0x5, 0x3 waitforvisualfinish @@ -1344,7 +1344,7 @@ Move_SWORDS_DANCE: setalpha 0x80C playsewithpan SE_W014, -64 createvisualtask sub_80D5830, 0x2, 0, 16, 6, 1, 4 - createsprite 0x8593380, 0x2, 0, 0 + createsprite gUnknown_08593380, 0x2, 0, 0 delay 0x16 createvisualtask sub_8115D94, 0x2, 10005, 2, 2, 32754, 16, 0, 0 waitforvisualfinish @@ -1359,7 +1359,7 @@ Move_PSYCH_UP: createvisualtask sub_8115B0C, 0x2, 1, 2, 6, 1, 11, 0 setalpha 0x80C loopsewithpan SE_W060B, -64, 0x5, 0xA - createsprite 0x8596548, 0x2, 0, 0, 0, 0 + createsprite gUnknown_08596548, 0x2, 0, 0, 0, 0 createvisualtask sub_80D5EB8, 0x5, 0, 5, 2560, 8, 0 delay 0x7F delay 0x4 @@ -1379,33 +1379,33 @@ Move_DIZZY_PUNCH: monbg ANIM_TARGET setalpha 0x80C call AnimScript_82CAC77 - createsprite 0x8595E98, 0x85, 16, 8, 20, 1, 0 - createsprite 0x8597358, 0x84, 16, 0, 1, 1 + createsprite gUnknown_08595E98, 0x85, 16, 8, 20, 1, 0 + createsprite gUnknown_08597358, 0x84, 16, 0, 1, 1 playsewithpan SE_W004, +63 - createsprite 0x8595F78, 0x83, 16, 8, 160, -32 - createsprite 0x8595F78, 0x83, 16, 8, -256, -40 - createsprite 0x8595F78, 0x83, 16, 8, 128, -16 - createsprite 0x8595F78, 0x83, 16, 8, 416, -38 - createsprite 0x8595F78, 0x83, 16, 8, -128, -22 - createsprite 0x8595F78, 0x83, 16, 8, -384, -31 + createsprite gUnknown_08595F78, 0x83, 16, 8, 160, -32 + createsprite gUnknown_08595F78, 0x83, 16, 8, -256, -40 + createsprite gUnknown_08595F78, 0x83, 16, 8, 128, -16 + createsprite gUnknown_08595F78, 0x83, 16, 8, 416, -38 + createsprite gUnknown_08595F78, 0x83, 16, 8, -128, -22 + createsprite gUnknown_08595F78, 0x83, 16, 8, -384, -31 delay 0xA call AnimScript_82CAC77 - createsprite 0x8595E98, 0x85, -16, -8, 20, 1, 0 - createsprite 0x8597358, 0x84, -16, -16, 1, 1 + createsprite gUnknown_08595E98, 0x85, -16, -8, 20, 1, 0 + createsprite gUnknown_08597358, 0x84, -16, -16, 1, 1 playsewithpan SE_W233B, +63 - createsprite 0x8595F78, 0x83, -16, -8, 160, -32 - createsprite 0x8595F78, 0x83, -16, -8, -256, -40 - createsprite 0x8595F78, 0x83, -16, -8, 128, -16 - createsprite 0x8595F78, 0x83, -16, -8, 416, -38 - createsprite 0x8595F78, 0x83, -16, -8, -128, -22 - createsprite 0x8595F78, 0x83, -16, -8, -384, -31 + createsprite gUnknown_08595F78, 0x83, -16, -8, 160, -32 + createsprite gUnknown_08595F78, 0x83, -16, -8, -256, -40 + createsprite gUnknown_08595F78, 0x83, -16, -8, 128, -16 + createsprite gUnknown_08595F78, 0x83, -16, -8, 416, -38 + createsprite gUnknown_08595F78, 0x83, -16, -8, -128, -22 + createsprite gUnknown_08595F78, 0x83, -16, -8, -384, -31 waitforvisualfinish clearmonbg ANIM_TARGET blendoff end AnimScript_82CAC77: - createsprite 0x857FE28, 0x2, 6, 4 + createsprite gUnknown_0857FE28, 0x2, 6, 4 delay 0x6 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 7, 1 return @@ -1421,17 +1421,17 @@ Move_FIRE_SPIN: end AnimScript_82CACBF: - createsprite 0x8596B88, 0x82, 0, 28, 528, 30, 13, 50, 1 + createsprite gUnknown_08596B88, 0x82, 0, 28, 528, 30, 13, 50, 1 delay 0x2 - createsprite 0x8596B88, 0x82, 0, 32, 480, 20, 16, -46, 1 + createsprite gUnknown_08596B88, 0x82, 0, 32, 480, 20, 16, -46, 1 delay 0x2 - createsprite 0x8596B88, 0x82, 0, 33, 576, 20, 8, 42, 1 + createsprite gUnknown_08596B88, 0x82, 0, 33, 576, 20, 8, 42, 1 delay 0x2 - createsprite 0x8596B88, 0x82, 0, 31, 400, 25, 11, -42, 1 + createsprite gUnknown_08596B88, 0x82, 0, 31, 400, 25, 11, -42, 1 delay 0x2 - createsprite 0x8596B88, 0x82, 0, 28, 512, 25, 16, 46, 1 + createsprite gUnknown_08596B88, 0x82, 0, 28, 512, 25, 16, 46, 1 delay 0x2 - createsprite 0x8596B88, 0x82, 0, 33, 464, 30, 15, -50, 1 + createsprite gUnknown_08596B88, 0x82, 0, 33, 464, 30, 15, -50, 1 delay 0x2 return @@ -1461,23 +1461,23 @@ AnimScript_82CAD8E: end AnimScript_82CADA7: - createsprite 0x8592A1C, 0x2, 40, -32, 0 + createsprite gUnknown_08592A1C, 0x2, 40, -32, 0 goto AnimScript_82CAD6A AnimScript_82CADB9: - createsprite 0x8592A1C, 0x2, 40, -32, 1 + createsprite gUnknown_08592A1C, 0x2, 40, -32, 1 goto AnimScript_82CAD6A AnimScript_82CADCB: - createsprite 0x859728C, 0x2, 31, 3, 1, 10505, 4, 0, 0 + createsprite gUnknown_0859728C, 0x2, 31, 3, 1, 10505, 4, 0, 0 goto AnimScript_82CAD8E AnimScript_82CADE5: - createsprite 0x859728C, 0x2, 31, 3, 3, 10505, 4, 0, 0 + createsprite gUnknown_0859728C, 0x2, 31, 3, 3, 10505, 4, 0, 0 goto AnimScript_82CAD8E AnimScript_82CADFF: - createsprite 0x859728C, 0x2, 31, 3, 3, 10505, 4, 0, 0 + createsprite gUnknown_0859728C, 0x2, 31, 3, 3, 10505, 4, 0, 0 goto AnimScript_82CAD8E Move_SELF_DESTRUCT: @@ -1496,19 +1496,19 @@ Move_SELF_DESTRUCT: AnimScript_82CAE9F: playsewithpan SE_W120, -64 - createsprite 0x859371C, 0x3, 0, 0, 0, 1 + createsprite gUnknown_0859371C, 0x3, 0, 0, 0, 1 delay 0x6 playsewithpan SE_W120, -64 - createsprite 0x859371C, 0x3, 24, -24, 0, 1 + createsprite gUnknown_0859371C, 0x3, 24, -24, 0, 1 delay 0x6 playsewithpan SE_W120, -64 - createsprite 0x859371C, 0x3, -16, 16, 0, 1 + createsprite gUnknown_0859371C, 0x3, -16, 16, 0, 1 delay 0x6 playsewithpan SE_W120, -64 - createsprite 0x859371C, 0x3, -24, -12, 0, 1 + createsprite gUnknown_0859371C, 0x3, -24, -12, 0, 1 delay 0x6 playsewithpan SE_W120, -64 - createsprite 0x859371C, 0x3, 16, 16, 0, 1 + createsprite gUnknown_0859371C, 0x3, 16, 16, 0, 1 delay 0x6 return @@ -1518,19 +1518,19 @@ Move_SLAM: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W004, -64 - createsprite 0x857FE70, 0x2, 0, 20, 3, 0, 4 + createsprite gUnknown_0857FE70, 0x2, 0, 20, 3, 0, 4 delay 0x1 - createsprite 0x85928D0, 0x2, 0, 0 + createsprite gUnknown_085928D0, 0x2, 0, 0 delay 0x3 playsewithpan SE_W025B, +63 - createsprite 0x8597358, 0x3, 0, 0, 1, 1 - createsprite 0x857FE70, 0x2, 1, -12, 10, 0, 3 - createsprite 0x857FE58, 0x2, 0, 0, 5 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 1 + createsprite gUnknown_0857FE70, 0x2, 1, -12, 10, 0, 3 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 5 delay 0x3 createvisualtask sub_80D5484, 0x2, 1, 0, 3, 6, 1 waitforvisualfinish delay 0x5 - createsprite 0x857FE58, 0x2, 1, 0, 6 + createsprite gUnknown_0857FE58, 0x2, 1, 0, 6 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -1539,10 +1539,10 @@ Move_SLAM: Move_VINE_WHIP: loadspritegfx 0x282F playsewithpan SE_W026, -64 - createsprite 0x857FE28, 0x2, 4, 6 + createsprite gUnknown_0857FE28, 0x2, 4, 6 delay 0x6 playsewithpan SE_W010, +63 - createsprite 0x85928E8, 0x82, 0, 0 + createsprite gUnknown_085928E8, 0x82, 0, 0 delay 0x6 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 6, 1 end @@ -1550,19 +1550,19 @@ Move_VINE_WHIP: Move_DRILL_PECK: loadspritegfx 0x2797 loadspritegfx 0x27B2 - createsprite 0x8592CD8, 0x2, 0 + createsprite gUnknown_08592CD8, 0x2, 0 playsewithpan SE_W029, -64 waitforvisualfinish delay 0x2 - createsprite 0x8592CD8, 0x2, 1 + createsprite gUnknown_08592CD8, 0x2, 1 delay 0x2 loopsewithpan SE_W030, +63, 0x4, 0x8 createvisualtask sub_810EB88, 0x5 createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 18, 1 waitforvisualfinish - createsprite 0x8592CD8, 0x2, 2 + createsprite gUnknown_08592CD8, 0x2, 2 waitforvisualfinish - createsprite 0x857FE58, 0x2, 0, 0, 6 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 6 waitforvisualfinish end @@ -1575,31 +1575,31 @@ Move_WATERFALL: createvisualtask sub_80D51AC, 0x5, 0, 0, 2, 23, 1 delay 0x5 playsewithpan SE_W152, -64 - createsprite 0x8595238, 0x2, 10, 10, 25, 0 + createsprite gUnknown_08595238, 0x2, 10, 10, 25, 0 delay 0x4 playsewithpan SE_W152, -64 - createsprite 0x8595238, 0x2, -15, 0, 25, 0 + createsprite gUnknown_08595238, 0x2, -15, 0, 25, 0 delay 0x4 playsewithpan SE_W152, -64 - createsprite 0x8595238, 0x2, 20, 10, 25, 0 + createsprite gUnknown_08595238, 0x2, 20, 10, 25, 0 delay 0x4 playsewithpan SE_W152, -64 - createsprite 0x8595238, 0x2, 0, -10, 25, 0 + createsprite gUnknown_08595238, 0x2, 0, -10, 25, 0 delay 0x4 playsewithpan SE_W152, -64 - createsprite 0x8595238, 0x2, -10, 15, 25, 0 + createsprite gUnknown_08595238, 0x2, -10, 15, 25, 0 delay 0x4 playsewithpan SE_W152, -64 - createsprite 0x8595238, 0x2, 25, 20, 25, 0 + createsprite gUnknown_08595238, 0x2, 25, 20, 25, 0 delay 0x4 playsewithpan SE_W152, -64 - createsprite 0x8595238, 0x2, -20, 20, 25, 0 + createsprite gUnknown_08595238, 0x2, -20, 20, 25, 0 delay 0x4 playsewithpan SE_W152, -64 - createsprite 0x8595238, 0x2, 12, 0, 25, 0 + createsprite gUnknown_08595238, 0x2, 12, 0, 25, 0 waitforvisualfinish delay 0xA - createsprite 0x857FE28, 0x2, 6, 5 + createsprite gUnknown_0857FE28, 0x2, 6, 5 delay 0x6 call AnimScript_82CB102 waitforvisualfinish @@ -1610,46 +1610,46 @@ Move_WATERFALL: AnimScript_82CB102: playsewithpan SE_W127, +63 createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 17, 1 - createsprite 0x8597388, 0x3, 0, 20, 1, 1 - createsprite 0x8595250, 0x4, 0, 20 - createsprite 0x8595250, 0x4, 0, 20 + createsprite gUnknown_08597388, 0x3, 0, 20, 1, 1 + createsprite gUnknown_08595250, 0x4, 0, 20 + createsprite gUnknown_08595250, 0x4, 0, 20 delay 0x2 - createsprite 0x8597388, 0x3, 0, 15, 1, 1 - createsprite 0x8595250, 0x4, 0, 15 - createsprite 0x8595250, 0x4, 0, 15 + createsprite gUnknown_08597388, 0x3, 0, 15, 1, 1 + createsprite gUnknown_08595250, 0x4, 0, 15 + createsprite gUnknown_08595250, 0x4, 0, 15 delay 0x2 - createsprite 0x8597388, 0x3, 0, 10, 1, 1 - createsprite 0x8595250, 0x4, 0, 10 - createsprite 0x8595250, 0x4, 0, 10 + createsprite gUnknown_08597388, 0x3, 0, 10, 1, 1 + createsprite gUnknown_08595250, 0x4, 0, 10 + createsprite gUnknown_08595250, 0x4, 0, 10 delay 0x2 - createsprite 0x8597388, 0x3, 0, 5, 1, 1 - createsprite 0x8595250, 0x4, 0, 5 - createsprite 0x8595250, 0x4, 0, 5 + createsprite gUnknown_08597388, 0x3, 0, 5, 1, 1 + createsprite gUnknown_08595250, 0x4, 0, 5 + createsprite gUnknown_08595250, 0x4, 0, 5 delay 0x2 - createsprite 0x8597388, 0x3, 0, 0, 1, 1 - createsprite 0x8595250, 0x4, 0, 0 - createsprite 0x8595250, 0x4, 0, 0 + createsprite gUnknown_08597388, 0x3, 0, 0, 1, 1 + createsprite gUnknown_08595250, 0x4, 0, 0 + createsprite gUnknown_08595250, 0x4, 0, 0 delay 0x2 - createsprite 0x8597388, 0x3, 0, -5, 1, 1 - createsprite 0x8595250, 0x4, 0, -5 - createsprite 0x8595250, 0x4, 0, -5 + createsprite gUnknown_08597388, 0x3, 0, -5, 1, 1 + createsprite gUnknown_08595250, 0x4, 0, -5 + createsprite gUnknown_08595250, 0x4, 0, -5 delay 0x2 - createsprite 0x8597388, 0x3, 0, -10, 1, 1 - createsprite 0x8595250, 0x4, 0, -10 - createsprite 0x8595250, 0x4, 0, -10 + createsprite gUnknown_08597388, 0x3, 0, -10, 1, 1 + createsprite gUnknown_08595250, 0x4, 0, -10 + createsprite gUnknown_08595250, 0x4, 0, -10 delay 0x2 - createsprite 0x8597388, 0x3, 0, -15, 1, 1 - createsprite 0x8595250, 0x4, 0, -15 - createsprite 0x8595250, 0x4, 0, -15 + createsprite gUnknown_08597388, 0x3, 0, -15, 1, 1 + createsprite gUnknown_08595250, 0x4, 0, -15 + createsprite gUnknown_08595250, 0x4, 0, -15 delay 0x2 - createsprite 0x8597388, 0x3, 0, -20, 1, 1 - createsprite 0x8595250, 0x4, 0, -20 - createsprite 0x8595250, 0x4, 0, -20 + createsprite gUnknown_08597388, 0x3, 0, -20, 1, 1 + createsprite gUnknown_08595250, 0x4, 0, -20 + createsprite gUnknown_08595250, 0x4, 0, -20 return Move_EXPLOSION: loadspritegfx 0x27D6 - createsprite 0x859728C, 0x2, 1, 8, 9, 8474, 8, 0, 8 + createsprite gUnknown_0859728C, 0x2, 1, 8, 9, 8474, 8, 0, 8 createvisualtask sub_80D52D0, 0x5, 4, 8, 0, 40, 1 createvisualtask sub_80D52D0, 0x5, 5, 8, 0, 40, 1 createvisualtask sub_80D52D0, 0x5, 6, 8, 0, 40, 1 @@ -1665,19 +1665,19 @@ Move_EXPLOSION: AnimScript_82CB312: playsewithpan SE_W153, -64 - createsprite 0x859371C, 0x3, 0, 0, 0, 1 + createsprite gUnknown_0859371C, 0x3, 0, 0, 0, 1 delay 0x6 playsewithpan SE_W153, -64 - createsprite 0x859371C, 0x3, 24, -24, 0, 1 + createsprite gUnknown_0859371C, 0x3, 24, -24, 0, 1 delay 0x6 playsewithpan SE_W153, -64 - createsprite 0x859371C, 0x3, -16, 16, 0, 1 + createsprite gUnknown_0859371C, 0x3, -16, 16, 0, 1 delay 0x6 playsewithpan SE_W153, -64 - createsprite 0x859371C, 0x3, -24, -12, 0, 1 + createsprite gUnknown_0859371C, 0x3, -24, -12, 0, 1 delay 0x6 playsewithpan SE_W153, -64 - createsprite 0x859371C, 0x3, 16, 16, 0, 1 + createsprite gUnknown_0859371C, 0x3, 16, 16, 0, 1 delay 0x6 return @@ -1687,7 +1687,7 @@ Move_DEFENSE_CURL: createvisualtask sub_811489C, 0x5, 0, 0 createvisualtask sub_815B338, 0x5 waitforvisualfinish - createsprite 0x85CE338, 0x2, 0, 6, 0, 1 + createsprite gUnknown_085CE338, 0x2, 0, 6, 0, 1 waitforvisualfinish createvisualtask sub_811489C, 0x5, 0, 1 waitforvisualfinish @@ -1698,22 +1698,22 @@ Move_PROTECT: monbg ANIM_ATK_PARTNER monbgprio_28 ANIM_ATTACKER waitplaysewithpan SE_W115, -64, 0x10 - createsprite 0x8592ADC, 0x2, 24, 0, 90 + createsprite gUnknown_08592ADC, 0x2, 24, 0, 90 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER end Move_DETECT: loadspritegfx 0x2757 - createsprite 0x8597274, 0x2, 1, 2, 0, 9, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 9, 0 waitforvisualfinish createvisualtask sub_8116620, 0xA, 2, 1, 0, 9, 0x7FFF delay 0x12 playsewithpan SE_W197, -64 - createsprite 0x853EE84, 0xD, 20, -20 + createsprite gUnknown_0853EE84, 0xD, 20, -20 waitforvisualfinish delay 0xA - createsprite 0x8597274, 0x2, 1, 2, 9, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 9, 0, 0 createvisualtask sub_8116620, 0xA, 2, 2, 9, 0, 0x7FFF waitforvisualfinish end @@ -1742,31 +1742,31 @@ AnimScript_82CB464: waitforvisualfinish delay 0x14 playsewithpan SE_W207B, -64 - createsprite 0x859368C, 0x2, 0, 20, -28 + createsprite gUnknown_0859368C, 0x2, 0, 20, -28 waitforvisualfinish playsewithpan SE_W207B, -64 - createsprite 0x859368C, 0x2, 0, 20, -28 + createsprite gUnknown_0859368C, 0x2, 0, 20, -28 waitforvisualfinish delay 0xA createvisualtask sub_80D5EB8, 0x5, 0, 16, 6144, 8, 0 delay 0x5 createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 30, 1 - createsprite 0x8597358, 0x3, 0, 0, 1, 0 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 0 playsewithpan SE_W004, +63 delay 0x5 - createsprite 0x8597358, 0x3, 24, 8, 1, 0 + createsprite gUnknown_08597358, 0x3, 24, 8, 1, 0 playsewithpan SE_W004, +63 delay 0x5 - createsprite 0x8597358, 0x3, -24, -16, 1, 0 + createsprite gUnknown_08597358, 0x3, -24, -16, 1, 0 playsewithpan SE_W004, +63 delay 0x5 - createsprite 0x8597358, 0x3, 8, 4, 1, 0 + createsprite gUnknown_08597358, 0x3, 8, 4, 1, 0 playsewithpan SE_W004, +63 delay 0x5 - createsprite 0x8597358, 0x3, -16, 19, 1, 0 + createsprite gUnknown_08597358, 0x3, -16, 19, 1, 0 playsewithpan SE_W004, +63 delay 0x5 - createsprite 0x8597358, 0x3, 18, -18, 1, 0 + createsprite gUnknown_08597358, 0x3, 18, -18, 1, 0 playsewithpan SE_W004, +63 waitforvisualfinish createvisualtask sub_8116620, 0xA, 2, 3, 9, 0, 31 @@ -1779,21 +1779,21 @@ AnimScript_82CB56A: waitforvisualfinish delay 0x14 playsewithpan SE_W207B, -64 - createsprite 0x859368C, 0x2, 0, 20, -28 + createsprite gUnknown_0859368C, 0x2, 0, 20, -28 waitforvisualfinish delay 0x5 createvisualtask sub_815C3A8, 0x5 delay 0x7 playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x3, 0, 8, 1, 1 + createsprite gUnknown_08597358, 0x3, 0, 8, 1, 1 createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 6, 1 delay 0xE playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x3, 12, -6, 1, 1 + createsprite gUnknown_08597358, 0x3, 12, -6, 1, 1 createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 6, 1 delay 0xE playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x3, -12, -6, 1, 1 + createsprite gUnknown_08597358, 0x3, -12, -6, 1, 1 createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 6, 1 waitforvisualfinish createvisualtask sub_8116620, 0xA, 2, 3, 9, 0, 31 @@ -1801,30 +1801,30 @@ AnimScript_82CB56A: AnimScript_82CB637: playsewithpan SE_W207B, -64 - createsprite 0x859368C, 0x2, 0, 20, -28 + createsprite gUnknown_0859368C, 0x2, 0, 20, -28 waitforvisualfinish delay 0x5 - createsprite 0x857FE28, 0x2, 4, 4 + createsprite gUnknown_0857FE28, 0x2, 4, 4 delay 0x6 playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x2, 10, 4, 1, 1 + createsprite gUnknown_08597358, 0x2, 10, 4, 1, 1 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 6, 1 waitforvisualfinish - createsprite 0x857FE28, 0x2, 4, 4 + createsprite gUnknown_0857FE28, 0x2, 4, 4 delay 0x6 playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x2, -10, -4, 1, 2 + createsprite gUnknown_08597358, 0x2, -10, -4, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 6, 1 goto AnimScript_82CB45F AnimScript_82CB6B3: - createsprite 0x85CE4D0, 0x2, 20, -28 + createsprite gUnknown_085CE4D0, 0x2, 20, -28 waitforvisualfinish delay 0xA - createsprite 0x857FE28, 0x2, 10, 2 + createsprite gUnknown_0857FE28, 0x2, 10, 2 delay 0xC playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 6, 1 goto AnimScript_82CB45F @@ -1833,11 +1833,11 @@ Move_SAFEGUARD: monbg ANIM_ATK_PARTNER setalpha 0x808 playsewithpan SE_W208, -64 - createsprite 0x8593C64, 0x2 + createsprite gUnknown_08593C64, 0x2 delay 0x4 - createsprite 0x8593C64, 0x2 + createsprite gUnknown_08593C64, 0x2 delay 0x4 - createsprite 0x8593C64, 0x2 + createsprite gUnknown_08593C64, 0x2 waitforvisualfinish playsewithpan SE_REAPOKE, -64 createvisualtask sub_8115A04, 0x2, 10, 0, 2, 0, 10, 0x7FFF @@ -1848,22 +1848,22 @@ Move_SAFEGUARD: Move_PAIN_SPLIT: loadspritegfx 0x27FF - createsprite 0x85CE590, 0x2, -8, -42, 0 - createsprite 0x85CE590, 0x82, -8, -42, 1 + createsprite gUnknown_085CE590, 0x2, -8, -42, 0 + createsprite gUnknown_085CE590, 0x82, -8, -42, 1 delay 0xA playsewithpan SE_W207B, 0 createvisualtask sub_815CA20, 0x2, 0, 0 createvisualtask sub_815CA20, 0x2, 1, 0 waitforvisualfinish - createsprite 0x85CE590, 0x2, -24, -42, 0 - createsprite 0x85CE590, 0x82, -24, -42, 1 + createsprite gUnknown_085CE590, 0x2, -24, -42, 0 + createsprite gUnknown_085CE590, 0x82, -24, -42, 1 delay 0xA playsewithpan SE_W207B, 0 createvisualtask sub_815CA20, 0x2, 0, 1 createvisualtask sub_815CA20, 0x2, 1, 1 waitforvisualfinish - createsprite 0x85CE590, 0x2, 8, -42, 0 - createsprite 0x85CE590, 0x82, 8, -42, 1 + createsprite gUnknown_085CE590, 0x2, 8, -42, 0 + createsprite gUnknown_085CE590, 0x82, 8, -42, 1 delay 0xA playsewithpan SE_W207B, 0 createvisualtask sub_815CA20, 0x2, 0, 2 @@ -1876,10 +1876,10 @@ Move_VICE_GRIP: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W011, +63 - createsprite 0x8593590, 0x2, 0 - createsprite 0x8593590, 0x2, 1 + createsprite gUnknown_08593590, 0x2, 0 + createsprite gUnknown_08593590, 0x2, 1 delay 0x9 - createsprite 0x8597358, 0x1, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x1, 0, 0, 1, 2 createvisualtask sub_80D52D0, 0x5, 1, 2, 0, 5, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -1894,15 +1894,15 @@ Move_GUILLOTINE: fadetobgfromset BG_GUILLOTINE_OPPONENT, BG_GUILLOTINE_PLAYER, BG_GUILLOTINE_CONTESTS waitbgfadein playsewithpan SE_W011, +63 - createsprite 0x85935D0, 0x2, 0 - createsprite 0x85935D0, 0x2, 1 + createsprite gUnknown_085935D0, 0x2, 0 + createsprite gUnknown_085935D0, 0x2, 1 createvisualtask sub_8116620, 0xA, 4, 2, 0, 16, 0 delay 0x9 createvisualtask sub_80D52D0, 0x5, 1, 2, 0, 23, 1 delay 0x2E createvisualtask sub_80D52D0, 0x5, 1, 4, 0, 8, 1 - createsprite 0x8597358, 0x3, 0, 0, 1, 0 - createsprite 0x859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 0 + createsprite gUnknown_0859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 playsewithpan SE_W013, +63 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -1918,11 +1918,11 @@ Move_PAY_DAY: monbgprio_28 ANIM_TARGET setalpha 0x80C playsewithpan SE_W013B, -64 - createsprite 0x85934D8, 0x2, 20, 0, 0, 0, 1152 + createsprite gUnknown_085934D8, 0x2, 20, 0, 0, 0, 1152 waitforvisualfinish playsewithpan SE_W006, +63 - createsprite 0x8597358, 0x1, 0, 0, 1, 2 - createsprite 0x85934F0, 0x2 + createsprite gUnknown_08597358, 0x1, 0, 0, 1, 2 + createsprite gUnknown_085934F0, 0x2 createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -1935,24 +1935,24 @@ Move_OUTRAGE: createvisualtask sub_8115A04, 0x2, 7, 2, 5, 3, 8, 430 createvisualtask sub_80D5830, 0x2, 0, 12, 6, 5, 4 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, 0, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, 1280, 0, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, 0, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, -1280, 0, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, 0, 1280, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, 0, 1280, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, 0, -1280, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, 0, -1280, 3 delay 0x0 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 40, 1 - createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, 768, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, 1280, 768, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, 768, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, -1280, 768, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, -768, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, 1280, -768, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, -768, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, -1280, -768, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, 0, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, 1280, 0, 3 call AnimScript_82CBA0F call AnimScript_82CBA0F waitforvisualfinish @@ -1960,19 +1960,19 @@ Move_OUTRAGE: AnimScript_82CBA0F: delay 0x3 - createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, 0, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, -1280, 0, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, 0, 1280, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, 0, 1280, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, 0, -1280, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, 0, -1280, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, 768, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, 1280, 768, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, 768, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, -1280, 768, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, 1280, -768, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, 1280, -768, 3 delay 0x0 - createsprite 0x8596E7C, 0x82, 0, 0, 30, -1280, -768, 3 + createsprite gUnknown_08596E7C, 0x82, 0, 0, 30, -1280, -768, 3 return Move_SPARK: @@ -1981,39 +1981,39 @@ Move_SPARK: delay 0x0 createvisualtask sub_8115A04, 0x2, 3, -31, 1, 5, 5, 23551 playsewithpan SE_W085B, -64 - createsprite 0x859574C, 0x0, 32, 24, 190, 12, 0, 1, 0 + createsprite gUnknown_0859574C, 0x0, 32, 24, 190, 12, 0, 1, 0 delay 0x0 - createsprite 0x859574C, 0x0, 80, 24, 22, 12, 0, 1, 0 - createsprite 0x859574C, 0x0, 156, 24, 121, 13, 0, 1, 1 + createsprite gUnknown_0859574C, 0x0, 80, 24, 22, 12, 0, 1, 0 + createsprite gUnknown_0859574C, 0x0, 156, 24, 121, 13, 0, 1, 1 delay 0x0 createvisualtask sub_8115A04, 0x2, 3, -31, 1, 0, 0, 23551 delay 0xA createvisualtask sub_8115A04, 0x2, 3, -31, 1, 5, 5, 23551 playsewithpan SE_W085B, -64 - createsprite 0x859574C, 0x0, 100, 24, 60, 10, 0, 1, 0 - createsprite 0x859574C, 0x0, 170, 24, 42, 11, 0, 1, 1 + createsprite gUnknown_0859574C, 0x0, 100, 24, 60, 10, 0, 1, 0 + createsprite gUnknown_0859574C, 0x0, 170, 24, 42, 11, 0, 1, 1 delay 0x0 - createsprite 0x859574C, 0x0, 238, 24, 165, 10, 0, 1, 1 + createsprite gUnknown_0859574C, 0x0, 238, 24, 165, 10, 0, 1, 1 delay 0x0 createvisualtask sub_8115A04, 0x2, 3, -31, 1, 0, 0, 23551 delay 0x14 createvisualtask sub_8115A04, 0x2, 3, -31, 1, 7, 7, 23551 playsewithpan SE_W085B, -64 - createsprite 0x85957F8, 0x4, 0, 0, 32, 12, 0, 20, 0, 0 - createsprite 0x85957F8, 0x4, 0, 0, 32, 12, 64, 20, 1, 0 - createsprite 0x85957F8, 0x4, 0, 0, 32, 12, 128, 20, 0, 0 - createsprite 0x85957F8, 0x4, 0, 0, 32, 12, 192, 20, 2, 0 - createsprite 0x85957F8, 0x4, 0, 0, 16, 12, 32, 20, 0, 0 - createsprite 0x85957F8, 0x4, 0, 0, 16, 12, 96, 20, 1, 0 - createsprite 0x85957F8, 0x4, 0, 0, 16, 12, 160, 20, 0, 0 - createsprite 0x85957F8, 0x4, 0, 0, 16, 12, 224, 20, 2, 0 + createsprite gUnknown_085957F8, 0x4, 0, 0, 32, 12, 0, 20, 0, 0 + createsprite gUnknown_085957F8, 0x4, 0, 0, 32, 12, 64, 20, 1, 0 + createsprite gUnknown_085957F8, 0x4, 0, 0, 32, 12, 128, 20, 0, 0 + createsprite gUnknown_085957F8, 0x4, 0, 0, 32, 12, 192, 20, 2, 0 + createsprite gUnknown_085957F8, 0x4, 0, 0, 16, 12, 32, 20, 0, 0 + createsprite gUnknown_085957F8, 0x4, 0, 0, 16, 12, 96, 20, 1, 0 + createsprite gUnknown_085957F8, 0x4, 0, 0, 16, 12, 160, 20, 0, 0 + createsprite gUnknown_085957F8, 0x4, 0, 0, 16, 12, 224, 20, 2, 0 delay 0x4 waitforvisualfinish createvisualtask sub_8115A04, 0x2, 3, -31, 1, 0, 0, 23551 - createsprite 0x857FE28, 0x2, 4, 4 + createsprite gUnknown_0857FE28, 0x2, 4, 4 delay 0x4 playsewithpan SE_W063, +63 - createsprite 0x8597358, 0x82, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x82, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 waitforvisualfinish createvisualtask sub_8115A04, 0x2, 4, -31, 2, 0, 6, 23551 @@ -2026,26 +2026,26 @@ Move_ATTRACT: loopsewithpan SE_W204, -64, 0xC, 0x3 createvisualtask sub_80D5EB8, 0x5, 0, 12, 4096, 4, 0 delay 0xF - createsprite 0x85939A0, 0x83, 20, -8 + createsprite gUnknown_085939A0, 0x83, 20, -8 waitforvisualfinish playsewithpan SE_W213, +63 - createsprite 0x85939B8, 0x83, 160, -32 - createsprite 0x85939B8, 0x83, -256, -40 - createsprite 0x85939B8, 0x83, 128, -16 - createsprite 0x85939B8, 0x83, 416, -38 - createsprite 0x85939B8, 0x83, -128, -22 - createsprite 0x85939B8, 0x83, -384, -31 + createsprite gUnknown_085939B8, 0x83, 160, -32 + createsprite gUnknown_085939B8, 0x83, -256, -40 + createsprite gUnknown_085939B8, 0x83, 128, -16 + createsprite gUnknown_085939B8, 0x83, 416, -38 + createsprite gUnknown_085939B8, 0x83, -128, -22 + createsprite gUnknown_085939B8, 0x83, -384, -31 waitforvisualfinish waitplaysewithpan SE_W213B, 0, 0xF createvisualtask sub_81062E8, 0x5 - createsprite 0x85939D0, 0x28, 16, 256, 0 - createsprite 0x85939D0, 0x28, 224, 240, 15 - createsprite 0x85939D0, 0x28, 126, 272, 30 - createsprite 0x85939D0, 0x28, 80, 224, 45 - createsprite 0x85939D0, 0x28, 170, 272, 60 - createsprite 0x85939D0, 0x28, 40, 256, 75 - createsprite 0x85939D0, 0x28, 112, 256, 90 - createsprite 0x85939D0, 0x28, 200, 272, 90 + createsprite gUnknown_085939D0, 0x28, 16, 256, 0 + createsprite gUnknown_085939D0, 0x28, 224, 240, 15 + createsprite gUnknown_085939D0, 0x28, 126, 272, 30 + createsprite gUnknown_085939D0, 0x28, 80, 224, 45 + createsprite gUnknown_085939D0, 0x28, 170, 272, 60 + createsprite gUnknown_085939D0, 0x28, 40, 256, 75 + createsprite gUnknown_085939D0, 0x28, 112, 256, 90 + createsprite gUnknown_085939D0, 0x28, 200, 272, 90 delay 0x4B createvisualtask sub_8115A04, 0x2, 4, 4, 4, 0, 10, 28479 end @@ -2065,12 +2065,12 @@ AnimScript_82CBDC0: Move_WHIRLWIND: loadspritegfx 0x27B2 - createsprite 0x85963D4, 0x2, 0, -8, 1, 60, 0 - createsprite 0x85963D4, 0x2, 0, 0, 1, 60, 1 - createsprite 0x85963D4, 0x2, 0, 8, 1, 60, 2 - createsprite 0x85963D4, 0x2, 0, 16, 1, 60, 3 - createsprite 0x85963D4, 0x2, 0, 24, 1, 60, 4 - createsprite 0x85963D4, 0x2, 0, 32, 1, 60, 0 + createsprite gUnknown_085963D4, 0x2, 0, -8, 1, 60, 0 + createsprite gUnknown_085963D4, 0x2, 0, 0, 1, 60, 1 + createsprite gUnknown_085963D4, 0x2, 0, 8, 1, 60, 2 + createsprite gUnknown_085963D4, 0x2, 0, 16, 1, 60, 3 + createsprite gUnknown_085963D4, 0x2, 0, 24, 1, 60, 4 + createsprite gUnknown_085963D4, 0x2, 0, 32, 1, 60, 0 delay 0x5 loopsewithpan SE_W104, +63, 0xA, 0x4 createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 15, 1 @@ -2089,11 +2089,11 @@ Move_CONFUSE_RAY: waitbgfadein createvisualtask sub_8159278, 0x2, -64, 63, 2, 0 createvisualtask sub_8115C80, 0x2, 10013, 0, 6, 0, 14, 351 - createsprite 0x8596D14, 0x82, 28, 0, 288 + createsprite gUnknown_08596D14, 0x82, 28, 0, 288 waitforvisualfinish setalpha 0x808 playsewithpan SE_W081B, +63 - createsprite 0x8596D2C, 0x82, 0, -16 + createsprite gUnknown_08596D2C, 0x82, 0, -16 waitforvisualfinish delay 0x0 blendoff @@ -2104,11 +2104,11 @@ Move_CONFUSE_RAY: Move_LOCK_ON: loadspritegfx 0x271E - createsprite 0x8592CA0, 0x28 - createsprite 0x8592CB8, 0x28, 1 - createsprite 0x8592CB8, 0x28, 2 - createsprite 0x8592CB8, 0x28, 3 - createsprite 0x8592CB8, 0x28, 4 + createsprite gUnknown_08592CA0, 0x28 + createsprite gUnknown_08592CB8, 0x28, 1 + createsprite gUnknown_08592CB8, 0x28, 2 + createsprite gUnknown_08592CB8, 0x28, 3 + createsprite gUnknown_08592CB8, 0x28, 4 delay 0x78 setarg 0x7, 0xFFFF waitforvisualfinish @@ -2118,12 +2118,12 @@ Move_MEAN_LOOK: loadspritegfx 0x27CB monbg ANIM_DEF_PARTNER playsewithpan SE_W060, -64 - createsprite 0x8597274, 0x2, 1, 1, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 16, 0 loopsewithpan SE_W109, +63, 0xF, 0x4 waitplaysewithpan SE_W043, +63, 0x55 - createsprite 0x85CE104, 0x2 + createsprite gUnknown_085CE104, 0x2 delay 0x78 - createsprite 0x8597274, 0x2, 1, 2, 16, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, 0 delay 0x1E clearmonbg ANIM_DEF_PARTNER waitforvisualfinish @@ -2131,21 +2131,21 @@ Move_MEAN_LOOK: Move_ROCK_THROW: loadspritegfx 0x274A - createsprite 0x85972D8, 0x82, 6, 1, 15, 1 - createsprite 0x8596B04, 0x82, 0, 1, 0, 0 + createsprite gUnknown_085972D8, 0x82, 6, 1, 15, 1 + createsprite gUnknown_08596B04, 0x82, 0, 1, 0, 0 playsewithpan SE_W088, +63 delay 0x6 - createsprite 0x8596B04, 0x82, 19, 1, 10, 0 + createsprite gUnknown_08596B04, 0x82, 19, 1, 10, 0 playsewithpan SE_W088, +63 delay 0x6 - createsprite 0x8596B04, 0x82, -23, 2, -10, 0 + createsprite gUnknown_08596B04, 0x82, -23, 2, -10, 0 playsewithpan SE_W088, +63 createvisualtask sub_80D51AC, 0x2, 1, 0, 5, 20, 1 delay 0x6 - createsprite 0x8596B04, 0x82, -15, 1, -10, 0 + createsprite gUnknown_08596B04, 0x82, -15, 1, -10, 0 playsewithpan SE_W088, +63 delay 0x6 - createsprite 0x8596B04, 0x82, 23, 2, 10, 0 + createsprite gUnknown_08596B04, 0x82, 23, 2, 10, 0 playsewithpan SE_W088, +63 waitforvisualfinish end @@ -2153,17 +2153,17 @@ Move_ROCK_THROW: Move_ROCK_SLIDE: loadspritegfx 0x274A monbg ANIM_DEF_PARTNER - createsprite 0x85972D8, 0x2, 7, 1, 11, 1 - createsprite 0x8596B04, 0x82, -5, 1, -5, 1 + createsprite gUnknown_085972D8, 0x2, 7, 1, 11, 1 + createsprite gUnknown_08596B04, 0x82, -5, 1, -5, 1 playsewithpan SE_W088, +63 delay 0x2 - createsprite 0x8596B04, 0x82, 5, 0, 6, 1 + createsprite gUnknown_08596B04, 0x82, 5, 0, 6, 1 playsewithpan SE_W088, +63 delay 0x2 - createsprite 0x8596B04, 0x82, 19, 1, 10, 1 + createsprite gUnknown_08596B04, 0x82, 19, 1, 10, 1 playsewithpan SE_W088, +63 delay 0x2 - createsprite 0x8596B04, 0x82, -23, 2, -10, 1 + createsprite gUnknown_08596B04, 0x82, -23, 2, -10, 1 playsewithpan SE_W088, +63 createvisualtask sub_80D51AC, 0x2, 1, 0, 5, 50, 1 createvisualtask sub_80D51AC, 0x2, 3, 0, 5, 50, 1 @@ -2175,28 +2175,28 @@ Move_ROCK_SLIDE: end AnimScript_82CC083: - createsprite 0x8596B04, 0x82, -20, 0, -10, 1 + createsprite gUnknown_08596B04, 0x82, -20, 0, -10, 1 playsewithpan SE_W088, +63 delay 0x2 - createsprite 0x8596B04, 0x82, 28, 1, 10, 1 + createsprite gUnknown_08596B04, 0x82, 28, 1, 10, 1 playsewithpan SE_W088, +63 delay 0x2 - createsprite 0x8596B04, 0x82, -10, 1, -5, 1 + createsprite gUnknown_08596B04, 0x82, -10, 1, -5, 1 playsewithpan SE_W088, +63 delay 0x2 - createsprite 0x8596B04, 0x82, 10, 0, 6, 1 + createsprite gUnknown_08596B04, 0x82, 10, 0, 6, 1 playsewithpan SE_W088, +63 delay 0x2 - createsprite 0x8596B04, 0x82, 24, 1, 10, 1 + createsprite gUnknown_08596B04, 0x82, 24, 1, 10, 1 playsewithpan SE_W088, +63 delay 0x2 - createsprite 0x8596B04, 0x82, -32, 2, -10, 1 + createsprite gUnknown_08596B04, 0x82, -32, 2, -10, 1 playsewithpan SE_W088, +63 delay 0x2 - createsprite 0x8596B04, 0x82, -20, 0, -10, 1 + createsprite gUnknown_08596B04, 0x82, -20, 0, -10, 1 playsewithpan SE_W088, +63 delay 0x2 - createsprite 0x8596B04, 0x82, 30, 2, 10, 1 + createsprite gUnknown_08596B04, 0x82, 30, 2, 10, 1 playsewithpan SE_W088, +63 delay 0x2 return @@ -2208,10 +2208,10 @@ Move_THIEF: fadetobg BG_DARK waitbgfadein setalpha 0x80C - createsprite 0x857FE28, 0x2, 6, 4 + createsprite gUnknown_0857FE28, 0x2, 6, 4 delay 0x6 playsewithpan SE_W233, +63 - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 8, 1 waitforvisualfinish delay 0x14 @@ -2240,22 +2240,22 @@ Move_BUBBLE_BEAM: end AnimScript_82CC1AD: - createsprite 0x8595068, 0x2, 18, 0, 35, 70, 0, 256, 50 + createsprite gUnknown_08595068, 0x2, 18, 0, 35, 70, 0, 256, 50 playsewithpan SE_W145, -64 delay 0x3 - createsprite 0x8595068, 0x2, 18, 0, 20, 40, -10, 256, 50 + createsprite gUnknown_08595068, 0x2, 18, 0, 20, 40, -10, 256, 50 playsewithpan SE_W145, -64 delay 0x3 - createsprite 0x8595068, 0x2, 18, 0, 10, -60, 0, 256, 50 + createsprite gUnknown_08595068, 0x2, 18, 0, 10, -60, 0, 256, 50 playsewithpan SE_W145, -64 delay 0x3 - createsprite 0x8595068, 0x2, 18, 0, 15, -15, 10, 256, 50 + createsprite gUnknown_08595068, 0x2, 18, 0, 15, -15, 10, 256, 50 playsewithpan SE_W145, -64 delay 0x3 - createsprite 0x8595068, 0x2, 18, 0, 30, 10, -10, 256, 50 + createsprite gUnknown_08595068, 0x2, 18, 0, 30, 10, -10, 256, 50 playsewithpan SE_W145, -64 delay 0x3 - createsprite 0x8595068, 0x2, 18, 0, 25, -30, 10, 256, 50 + createsprite gUnknown_08595068, 0x2, 18, 0, 25, -30, 10, 256, 50 playsewithpan SE_W145, -64 delay 0x3 return @@ -2286,38 +2286,38 @@ Move_ICY_WIND: end AnimScript_82CC2A8: - createsprite 0x8595B98, 0xA8, 0, 0, 0, 0, 72, 1 + createsprite gUnknown_08595B98, 0xA8, 0, 0, 0, 0, 72, 1 delay 0x5 - createsprite 0x8595B98, 0xA8, 0, 10, 0, 10, 72, 1 + createsprite gUnknown_08595B98, 0xA8, 0, 10, 0, 10, 72, 1 delay 0x5 - createsprite 0x8595B98, 0xA8, 0, -10, 0, -10, 72, 1 + createsprite gUnknown_08595B98, 0xA8, 0, -10, 0, -10, 72, 1 delay 0x5 - createsprite 0x8595B98, 0xA8, 0, 15, 0, 15, 72, 1 + createsprite gUnknown_08595B98, 0xA8, 0, 15, 0, 15, 72, 1 delay 0x5 - createsprite 0x8595B98, 0xA8, 0, -5, 0, -5, 72, 1 + createsprite gUnknown_08595B98, 0xA8, 0, -5, 0, -5, 72, 1 return Move_SMOKESCREEN: loadspritegfx 0x2720 loadspritegfx 0x2721 playsewithpan SE_W104, -64 - createsprite 0x85CE050, 0x82, 20, 0, 0, 0, 35, -25 + createsprite gUnknown_085CE050, 0x82, 20, 0, 0, 0, 35, -25 waitforvisualfinish createvisualtask sub_815A160, 0x2 delay 0x2 playsewithpan SE_W028, +63 - createsprite 0x85CE038, 0x84, 0, -12, 104, 0, 75 - createsprite 0x85CE038, 0x84, 0, -12, 72, 1, 75 - createsprite 0x85CE038, 0x84, 0, -6, 56, 1, 75 - createsprite 0x85CE038, 0x84, 0, -6, 88, 0, 75 - createsprite 0x85CE038, 0x84, 0, 0, 56, 0, 75 - createsprite 0x85CE038, 0x84, 0, 0, 88, 1, 75 - createsprite 0x85CE038, 0x84, 0, 6, 72, 0, 75 - createsprite 0x85CE038, 0x84, 0, 6, 104, 1, 75 - createsprite 0x85CE038, 0x84, 0, 12, 72, 0, 75 - createsprite 0x85CE038, 0x84, 0, 12, 56, 1, 75 - createsprite 0x85CE038, 0x84, 0, 18, 80, 0, 75 - createsprite 0x85CE038, 0x84, 0, 18, 72, 1, 75 + createsprite gUnknown_085CE038, 0x84, 0, -12, 104, 0, 75 + createsprite gUnknown_085CE038, 0x84, 0, -12, 72, 1, 75 + createsprite gUnknown_085CE038, 0x84, 0, -6, 56, 1, 75 + createsprite gUnknown_085CE038, 0x84, 0, -6, 88, 0, 75 + createsprite gUnknown_085CE038, 0x84, 0, 0, 56, 0, 75 + createsprite gUnknown_085CE038, 0x84, 0, 0, 88, 1, 75 + createsprite gUnknown_085CE038, 0x84, 0, 6, 72, 0, 75 + createsprite gUnknown_085CE038, 0x84, 0, 6, 104, 1, 75 + createsprite gUnknown_085CE038, 0x84, 0, 12, 72, 0, 75 + createsprite gUnknown_085CE038, 0x84, 0, 12, 56, 1, 75 + createsprite gUnknown_085CE038, 0x84, 0, 18, 80, 0, 75 + createsprite gUnknown_085CE038, 0x84, 0, 18, 72, 1, 75 waitforvisualfinish end @@ -2328,40 +2328,40 @@ Move_CONVERSION: setalpha 0x10 delay 0x0 playsewithpan SE_W129, -64 - createsprite 0x8592E74, 0x2, -24, -24 + createsprite gUnknown_08592E74, 0x2, -24, -24 delay 0x3 - createsprite 0x8592E74, 0x2, -8, -24 + createsprite gUnknown_08592E74, 0x2, -8, -24 delay 0x3 - createsprite 0x8592E74, 0x2, 8, -24 + createsprite gUnknown_08592E74, 0x2, 8, -24 delay 0x3 - createsprite 0x8592E74, 0x2, 24, -24 + createsprite gUnknown_08592E74, 0x2, 24, -24 delay 0x3 playsewithpan SE_W129, -64 - createsprite 0x8592E74, 0x2, -24, -8 + createsprite gUnknown_08592E74, 0x2, -24, -8 delay 0x3 - createsprite 0x8592E74, 0x2, -8, -8 + createsprite gUnknown_08592E74, 0x2, -8, -8 delay 0x3 - createsprite 0x8592E74, 0x2, 8, -8 + createsprite gUnknown_08592E74, 0x2, 8, -8 delay 0x3 - createsprite 0x8592E74, 0x2, 24, -8 + createsprite gUnknown_08592E74, 0x2, 24, -8 delay 0x3 playsewithpan SE_W129, -64 - createsprite 0x8592E74, 0x2, -24, 8 + createsprite gUnknown_08592E74, 0x2, -24, 8 delay 0x3 - createsprite 0x8592E74, 0x2, -8, 8 + createsprite gUnknown_08592E74, 0x2, -8, 8 delay 0x3 - createsprite 0x8592E74, 0x2, 8, 8 + createsprite gUnknown_08592E74, 0x2, 8, 8 delay 0x3 - createsprite 0x8592E74, 0x2, 24, 8 + createsprite gUnknown_08592E74, 0x2, 24, 8 delay 0x3 playsewithpan SE_W129, -64 - createsprite 0x8592E74, 0x2, -24, 24 + createsprite gUnknown_08592E74, 0x2, -24, 24 delay 0x3 - createsprite 0x8592E74, 0x2, -8, 24 + createsprite gUnknown_08592E74, 0x2, -8, 24 delay 0x3 - createsprite 0x8592E74, 0x2, 8, 24 + createsprite gUnknown_08592E74, 0x2, 8, 24 delay 0x3 - createsprite 0x8592E74, 0x2, 24, 24 + createsprite gUnknown_08592E74, 0x2, 24, 24 delay 0x14 playsewithpan SE_W112, -64 createvisualtask sub_8115D94, 0x2, 10018, 1, 1, 14335, 12, 0, 0 @@ -2380,22 +2380,22 @@ Move_CONVERSION_2: setalpha 0x1000 delay 0x0 playsewithpan SE_W112, +63 - createsprite 0x8592EA4, 0x2, -24, -24, 60 - createsprite 0x8592EA4, 0x2, -8, -24, 65 - createsprite 0x8592EA4, 0x2, 8, -24, 70 - createsprite 0x8592EA4, 0x2, 24, -24, 75 - createsprite 0x8592EA4, 0x2, -24, -8, 80 - createsprite 0x8592EA4, 0x2, -8, -8, 85 - createsprite 0x8592EA4, 0x2, 8, -8, 90 - createsprite 0x8592EA4, 0x2, 24, -8, 95 - createsprite 0x8592EA4, 0x2, -24, 8, 100 - createsprite 0x8592EA4, 0x2, -8, 8, 105 - createsprite 0x8592EA4, 0x2, 8, 8, 110 - createsprite 0x8592EA4, 0x2, 24, 8, 115 - createsprite 0x8592EA4, 0x2, -24, 24, 120 - createsprite 0x8592EA4, 0x2, -8, 24, 125 - createsprite 0x8592EA4, 0x2, 8, 24, 130 - createsprite 0x8592EA4, 0x2, 24, 24, 135 + createsprite gUnknown_08592EA4, 0x2, -24, -24, 60 + createsprite gUnknown_08592EA4, 0x2, -8, -24, 65 + createsprite gUnknown_08592EA4, 0x2, 8, -24, 70 + createsprite gUnknown_08592EA4, 0x2, 24, -24, 75 + createsprite gUnknown_08592EA4, 0x2, -24, -8, 80 + createsprite gUnknown_08592EA4, 0x2, -8, -8, 85 + createsprite gUnknown_08592EA4, 0x2, 8, -8, 90 + createsprite gUnknown_08592EA4, 0x2, 24, -8, 95 + createsprite gUnknown_08592EA4, 0x2, -24, 8, 100 + createsprite gUnknown_08592EA4, 0x2, -8, 8, 105 + createsprite gUnknown_08592EA4, 0x2, 8, 8, 110 + createsprite gUnknown_08592EA4, 0x2, 24, 8, 115 + createsprite gUnknown_08592EA4, 0x2, -24, 24, 120 + createsprite gUnknown_08592EA4, 0x2, -8, 24, 125 + createsprite gUnknown_08592EA4, 0x2, 8, 24, 130 + createsprite gUnknown_08592EA4, 0x2, 24, 24, 135 createvisualtask sub_81023E0, 0x5 delay 0x3C playsewithpan SE_W129, +63 @@ -2428,30 +2428,30 @@ Move_ROLLING_KICK: delay 0x6 playsewithpan SE_W104, -64 waitforvisualfinish - createsprite 0x857FE70, 0x2, 0, 20, 0, 0, 4 - createsprite 0x8595EE0, 0x2, -24, 0, 48, 10, 160, 0 + createsprite gUnknown_0857FE70, 0x2, 0, 20, 0, 0, 4 + createsprite gUnknown_08595EE0, 0x2, -24, 0, 48, 10, 160, 0 delay 0x5 playsewithpan SE_W233B, +63 - createsprite 0x8597358, 0x2, -8, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, -8, 0, 1, 2 createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 waitforvisualfinish - createsprite 0x857FE58, 0x2, 0, 1, 8 + createsprite gUnknown_0857FE58, 0x2, 0, 1, 8 clearmonbg ANIM_TARGET blendoff end Move_HEADBUTT: loadspritegfx 0x2797 - createsprite 0x8592CD8, 0x2, 0 + createsprite gUnknown_08592CD8, 0x2, 0 playsewithpan SE_W029, -64 waitforvisualfinish delay 0x2 - createsprite 0x8592CD8, 0x2, 1 + createsprite gUnknown_08592CD8, 0x2, 1 waitforvisualfinish createvisualtask sub_80D5484, 0x2, 0, 2, 0, 4, 1 createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 - createsprite 0x8592CD8, 0x2, 2 - createsprite 0x85973E8, 0x83, 0, 0, 1, 1 + createsprite gUnknown_08592CD8, 0x2, 2 + createsprite gUnknown_085973E8, 0x83, 0, 0, 1, 1 playsewithpan SE_W233B, +63 waitforvisualfinish end @@ -2459,17 +2459,17 @@ Move_HEADBUTT: Move_HORN_ATTACK: loadspritegfx 0x2797 loadspritegfx 0x2724 - createsprite 0x8592CD8, 0x2, 0 + createsprite gUnknown_08592CD8, 0x2, 0 playsewithpan SE_W029, -64 waitforvisualfinish delay 0x2 - createsprite 0x8592CD8, 0x2, 1 - createsprite 0x8592F44, 0x84, 0, 0, 10 + createsprite gUnknown_08592CD8, 0x2, 1 + createsprite gUnknown_08592F44, 0x84, 0, 0, 10 waitforvisualfinish createvisualtask sub_80D5484, 0x2, 0, 2, 0, 4, 1 createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 - createsprite 0x8592CD8, 0x2, 2 - createsprite 0x85973E8, 0x83, 0, 0, 1, 1 + createsprite gUnknown_08592CD8, 0x2, 2 + createsprite gUnknown_085973E8, 0x83, 0, 0, 1, 1 playsewithpan SE_W030, +63 waitforvisualfinish end @@ -2486,16 +2486,16 @@ AnimScript_82CC7A5: end AnimScript_82CC7B8: - createsprite 0x8592F44, 0x84, 8, 8, 10 + createsprite gUnknown_08592F44, 0x84, 8, 8, 10 waitforvisualfinish - createsprite 0x85973E8, 0x83, 0, 0, 1, 1 + createsprite gUnknown_085973E8, 0x83, 0, 0, 1, 1 playsewithpan SE_W030, +63 goto AnimScript_82CC7A5 AnimScript_82CC7DE: - createsprite 0x8592F44, 0x84, -8, -8, 10 + createsprite gUnknown_08592F44, 0x84, -8, -8, 10 waitforvisualfinish - createsprite 0x85973E8, 0x83, 0, 0, 1, 1 + createsprite gUnknown_085973E8, 0x83, 0, 0, 1, 1 playsewithpan SE_W030, +63 goto AnimScript_82CC7A5 @@ -2510,50 +2510,50 @@ Move_HORN_DRILL: AnimScript_82CC821: waitbgfadein setalpha 0x80C - createsprite 0x8592CD8, 0x2, 0 + createsprite gUnknown_08592CD8, 0x2, 0 playsewithpan SE_W029, -64 waitforvisualfinish delay 0x2 - createsprite 0x8592CD8, 0x2, 1 - createsprite 0x8592F44, 0x84, 0, 0, 12 + createsprite gUnknown_08592CD8, 0x2, 1 + createsprite gUnknown_08592F44, 0x84, 0, 0, 12 waitforvisualfinish playse SE_BAN createvisualtask sub_80D5484, 0x2, 0, 2, 0, 40, 1 createvisualtask sub_80D5484, 0x2, 1, 10, 0, 40, 1 - createsprite 0x85973E8, 0x83, 0, 0, 1, 3 + createsprite gUnknown_085973E8, 0x83, 0, 0, 1, 3 playsewithpan SE_W030, +63 delay 0x4 - createsprite 0x85973E8, 0x83, 0, 2, 1, 3 + createsprite gUnknown_085973E8, 0x83, 0, 2, 1, 3 playsewithpan SE_W030, +63 delay 0x4 - createsprite 0x85973E8, 0x83, -4, 3, 1, 3 + createsprite gUnknown_085973E8, 0x83, -4, 3, 1, 3 playsewithpan SE_W030, +63 delay 0x4 - createsprite 0x85973E8, 0x83, -8, -5, 1, 3 + createsprite gUnknown_085973E8, 0x83, -8, -5, 1, 3 playsewithpan SE_W030, +63 delay 0x4 - createsprite 0x85973E8, 0x83, 4, -12, 1, 3 + createsprite gUnknown_085973E8, 0x83, 4, -12, 1, 3 playsewithpan SE_W030, +63 delay 0x4 - createsprite 0x85973E8, 0x83, 16, 0, 1, 3 + createsprite gUnknown_085973E8, 0x83, 16, 0, 1, 3 playsewithpan SE_W030, +63 delay 0x4 - createsprite 0x85973E8, 0x83, 5, 18, 1, 3 + createsprite gUnknown_085973E8, 0x83, 5, 18, 1, 3 playsewithpan SE_W030, +63 delay 0x4 - createsprite 0x85973E8, 0x83, -17, 12, 1, 2 + createsprite gUnknown_085973E8, 0x83, -17, 12, 1, 2 playsewithpan SE_W030, +63 delay 0x4 - createsprite 0x85973E8, 0x83, -21, -15, 1, 2 + createsprite gUnknown_085973E8, 0x83, -21, -15, 1, 2 playsewithpan SE_W030, +63 delay 0x4 - createsprite 0x85973E8, 0x83, 8, -27, 1, 2 + createsprite gUnknown_085973E8, 0x83, 8, -27, 1, 2 playsewithpan SE_W030, +63 delay 0x4 - createsprite 0x85973E8, 0x83, 32, 0, 1, 2 + createsprite gUnknown_085973E8, 0x83, 32, 0, 1, 2 playsewithpan SE_W030, +63 delay 0x4 - createsprite 0x8592CD8, 0x2, 2 + createsprite gUnknown_08592CD8, 0x2, 2 waitforvisualfinish restorebg waitbgfadeout @@ -2572,15 +2572,15 @@ Move_THRASH: loadspritegfx 0x279F createvisualtask sub_8104C38, 0x2 createvisualtask sub_8104CA4, 0x2 - createsprite 0x8595EB0, 0x83, 1, 10, 0 + createsprite gUnknown_08595EB0, 0x83, 1, 10, 0 createvisualtask sub_80D5484, 0x2, 1, 4, 0, 7, 1 playsewithpan SE_W004, +63 delay 0x1C - createsprite 0x8595EB0, 0x83, 1, 10, 1 + createsprite gUnknown_08595EB0, 0x83, 1, 10, 1 createvisualtask sub_80D5484, 0x2, 1, 4, 0, 7, 1 playsewithpan SE_W233B, +63 delay 0x1C - createsprite 0x8595EB0, 0x83, 1, 10, 3 + createsprite gUnknown_08595EB0, 0x83, 1, 10, 3 createvisualtask sub_80D5484, 0x2, 1, 8, 0, 16, 1 playsewithpan SE_W025B, +63 end @@ -2591,29 +2591,29 @@ Move_SING: createvisualtask sub_8102BE8, 0x2 waitforvisualfinish panse_1B SE_W047, -64, +63, +2, 0x0 - createsprite 0x8593008, 0x82, 7, 0, 12 + createsprite gUnknown_08593008, 0x82, 7, 0, 12 delay 0x5 - createsprite 0x8593008, 0x82, 6, 1, 12 + createsprite gUnknown_08593008, 0x82, 6, 1, 12 delay 0x5 - createsprite 0x8593008, 0x82, 1, 2, 12 + createsprite gUnknown_08593008, 0x82, 1, 2, 12 delay 0x5 - createsprite 0x8593008, 0x82, 2, 3, 12 + createsprite gUnknown_08593008, 0x82, 2, 3, 12 delay 0x5 - createsprite 0x8593008, 0x82, 3, 0, 12 + createsprite gUnknown_08593008, 0x82, 3, 0, 12 delay 0x4 - createsprite 0x8593008, 0x82, 2, 1, 12 + createsprite gUnknown_08593008, 0x82, 2, 1, 12 delay 0x4 - createsprite 0x8593008, 0x82, 5, 2, 12 + createsprite gUnknown_08593008, 0x82, 5, 2, 12 delay 0x4 - createsprite 0x8593008, 0x82, 6, 3, 12 + createsprite gUnknown_08593008, 0x82, 6, 3, 12 delay 0x4 - createsprite 0x8593008, 0x82, 2, 0, 12 + createsprite gUnknown_08593008, 0x82, 2, 0, 12 delay 0x4 - createsprite 0x8593008, 0x82, 2, 1, 12 + createsprite gUnknown_08593008, 0x82, 2, 1, 12 delay 0x4 - createsprite 0x8593008, 0x82, 1, 2, 12 + createsprite gUnknown_08593008, 0x82, 1, 2, 12 delay 0x4 - createsprite 0x8593008, 0x82, 5, 3, 12 + createsprite gUnknown_08593008, 0x82, 5, 3, 12 delay 0x4 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -2624,14 +2624,14 @@ Move_SING: Move_LOW_KICK: loadspritegfx 0x279F loadspritegfx 0x2797 - createsprite 0x857FE70, 0x2, 0, 20, 0, 0, 4 - createsprite 0x8595EE0, 0x82, -24, 28, 40, 8, 160, 0 + createsprite gUnknown_0857FE70, 0x2, 0, 20, 0, 0, 4 + createsprite gUnknown_08595EE0, 0x82, -24, 28, 40, 8, 160, 0 delay 0x4 - createsprite 0x8597358, 0x82, -8, 8, 1, 2 + createsprite gUnknown_08597358, 0x82, -8, 8, 1, 2 createvisualtask sub_80D6134, 0x2, 6, 384, 1, 2 playsewithpan SE_W233B, +63 waitforvisualfinish - createsprite 0x857FE58, 0x2, 0, 1, 4 + createsprite gUnknown_0857FE58, 0x2, 0, 1, 4 end Move_EARTHQUAKE: @@ -2639,9 +2639,9 @@ Move_EARTHQUAKE: createvisualtask sub_81152DC, 0x5, 4, 10, 50 playsewithpan SE_W089, 0 delay 0xA - createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + createsprite gUnknown_0859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 delay 0x10 - createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + createsprite gUnknown_0859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 end Move_FISSURE: @@ -2652,11 +2652,11 @@ Move_FISSURE: delay 0x8 call AnimScript_82CCBFF delay 0xF - createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + createsprite gUnknown_0859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 delay 0xF call AnimScript_82CCC50 delay 0xF - createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + createsprite gUnknown_0859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 delay 0xF call AnimScript_82CCBFF delay 0x32 @@ -2672,18 +2672,18 @@ Move_FISSURE: end AnimScript_82CCBFF: - createsprite 0x85971FC, 0x82, 1, 0, 12, -48, -16, 24 - createsprite 0x85971FC, 0x82, 1, 0, 16, -16, -10, 24 - createsprite 0x85971FC, 0x82, 1, 1, 14, -52, -18, 24 - createsprite 0x85971FC, 0x82, 1, 1, 12, -32, -16, 24 + createsprite gUnknown_085971FC, 0x82, 1, 0, 12, -48, -16, 24 + createsprite gUnknown_085971FC, 0x82, 1, 0, 16, -16, -10, 24 + createsprite gUnknown_085971FC, 0x82, 1, 1, 14, -52, -18, 24 + createsprite gUnknown_085971FC, 0x82, 1, 1, 12, -32, -16, 24 playsewithpan SE_W091, +63 return AnimScript_82CCC50: - createsprite 0x85971FC, 0x82, 1, 0, 12, -24, -16, 24 - createsprite 0x85971FC, 0x82, 1, 0, 16, -38, -10, 24 - createsprite 0x85971FC, 0x82, 1, 1, 14, -20, -18, 24 - createsprite 0x85971FC, 0x82, 1, 1, 12, -36, -16, 24 + createsprite gUnknown_085971FC, 0x82, 1, 0, 12, -24, -16, 24 + createsprite gUnknown_085971FC, 0x82, 1, 0, 16, -38, -10, 24 + createsprite gUnknown_085971FC, 0x82, 1, 1, 14, -20, -18, 24 + createsprite gUnknown_085971FC, 0x82, 1, 1, 12, -36, -16, 24 playsewithpan SE_W091, +63 return @@ -2696,8 +2696,8 @@ AnimScript_82CCCAA: AnimScript_82CCCAB: loadspritegfx 0x275A loadspritegfx 0x2829 - createsprite 0x8597214, 0x1, 0, 0, 180 - createsprite 0x8597214, 0x1, 0, 1, 180 + createsprite gUnknown_08597214, 0x1, 0, 0, 180 + createsprite gUnknown_08597214, 0x1, 0, 1, 180 monbg_22 ANIM_ATTACKER delay 0x1 createvisualtask sub_8114CBC, 0x2, 0 @@ -2719,22 +2719,22 @@ AnimScript_82CCD06: createvisualtask sub_8114F14, 0x2, 0 waitforvisualfinish monbg ANIM_ATTACKER - createsprite 0x8597214, 0x1, 0, 0, 48 - createsprite 0x8597214, 0x1, 0, 1, 48 + createsprite gUnknown_08597214, 0x1, 0, 0, 48 + createsprite gUnknown_08597214, 0x1, 0, 1, 48 delay 0x1 createvisualtask sub_8114F14, 0x2, 1 delay 0x10 - createsprite 0x8597358, 0x2, -8, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, -8, 0, 1, 2 createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 playsewithpan SE_W025B, -64 clearmonbg ANIM_ATTACKER goto AnimScript_82CCCAA AnimScript_82CCD6A: - createsprite 0x85971FC, 0x2, 0, 0, 12, 4, -16, 18 - createsprite 0x85971FC, 0x2, 0, 0, 16, 4, -10, 18 - createsprite 0x85971FC, 0x2, 0, 1, 14, 4, -18, 18 - createsprite 0x85971FC, 0x2, 0, 1, 12, 4, -16, 18 + createsprite gUnknown_085971FC, 0x2, 0, 0, 12, 4, -16, 18 + createsprite gUnknown_085971FC, 0x2, 0, 0, 16, 4, -10, 18 + createsprite gUnknown_085971FC, 0x2, 0, 1, 14, 4, -18, 18 + createsprite gUnknown_085971FC, 0x2, 0, 1, 12, 4, -16, 18 playsewithpan SE_W091, -64 delay 0x20 return @@ -2779,7 +2779,7 @@ Move_QUICK_ATTACK: playsewithpan SE_W026, -64 delay 0x4 createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 - createsprite 0x8597358, 0x84, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x84, 0, 0, 1, 1 playsewithpan SE_W233B, +63 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -2793,15 +2793,15 @@ Move_RAGE: monbg ANIM_TARGET setalpha 0x80C createvisualtask sub_80A7B98, 0x3, 0, 31, 10, 0, 2 - createsprite 0x859368C, 0x2, 0, -20, -28 + createsprite gUnknown_0859368C, 0x2, 0, -20, -28 playsewithpan SE_W207B, -64 delay 0x14 - createsprite 0x859368C, 0x2, 0, 20, -28 + createsprite gUnknown_0859368C, 0x2, 0, 20, -28 playsewithpan SE_W207B, -64 waitforvisualfinish - createsprite 0x857FE28, 0x2, 4, 6 + createsprite gUnknown_0857FE28, 0x2, 4, 6 delay 0x4 - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_80D6388, 0x2, 1, 1, 10, 1, 0 playsewithpan SE_W233B, +63 waitforvisualfinish @@ -2855,10 +2855,10 @@ Move_MINIMIZE: Move_METRONOME: loadspritegfx 0x2750 loadspritegfx 0x27E1 - createsprite 0x8593114, 0xB, 0, 100 + createsprite gUnknown_08593114, 0xB, 0, 100 playsewithpan SE_W118, -64 delay 0x6 - createsprite 0x85931BC, 0xC, 0 + createsprite gUnknown_085931BC, 0xC, 0 delay 0x18 loopsewithpan SE_W039, -64, 0x16, 0x3 waitforvisualfinish @@ -2877,12 +2877,12 @@ AnimScript_82CCF99: goto AnimScript_82CCF98 AnimScript_82CCFA9: - createsprite 0x857FE88, 0x2, 0, -24, 0, 0, 10, 0 + createsprite gUnknown_0857FE88, 0x2, 0, -24, 0, 0, 10, 0 playsewithpan SE_W036, -64 waitforvisualfinish createvisualtask sub_80D6134, 0x2, 16, 96, 0, 2 waitforvisualfinish - createsprite 0x857FE88, 0x2, 0, 24, 0, 0, 10, 1 + createsprite gUnknown_0857FE88, 0x2, 0, 24, 0, 0, 10, 1 waitforvisualfinish return @@ -2892,10 +2892,10 @@ AnimScript_82CCFE6: playsewithpan SE_W036, -64 waitforvisualfinish playse SE_BAN - createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + createsprite gUnknown_0859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 createvisualtask sub_80D5484, 0x2, 0, 2, 0, 40, 1 createvisualtask sub_80D5484, 0x2, 1, 10, 0, 40, 1 - createsprite 0x85973E8, 0x84, 0, 0, 1, 0 + createsprite gUnknown_085973E8, 0x84, 0, 0, 1, 0 loopsewithpan SE_W025B, +63, 0x8, 0x3 waitforvisualfinish createvisualtask sub_8101C94, 0x2, 1 @@ -2905,7 +2905,7 @@ Move_AMNESIA: loadspritegfx 0x276D call AnimScript_82D7CD1 delay 0x8 - createsprite 0x8596744, 0x14 + createsprite gUnknown_08596744, 0x14 playsewithpan SE_W118, -64 delay 0x36 loopsewithpan SE_W118, -64, 0x10, 0x3 @@ -2918,9 +2918,9 @@ Move_KINESIS: loadspritegfx 0x2771 playsewithpan SE_W060, -64 call AnimScript_82D7CD1 - createsprite 0x85966DC, 0x14 - createsprite 0x8593344, 0x13, 32, -8, 0 - createsprite 0x8593344, 0x13, 32, 16, 1 + createsprite gUnknown_085966DC, 0x14 + createsprite gUnknown_08593344, 0x13, 32, -8, 0 + createsprite gUnknown_08593344, 0x13, 32, 16, 1 loopsewithpan SE_W109, -64, 0x15, 0x2 delay 0x3C playsewithpan SE_W146, -64 @@ -2940,8 +2940,8 @@ Move_GLARE: waitforvisualfinish createvisualtask sub_8116620, 0x5, 1, 0, 0, 16, 0 waitforvisualfinish - createsprite 0x8593A84, 0x0, -16, -8 - createsprite 0x8593A84, 0x0, 16, -8 + createsprite gUnknown_08593A84, 0x0, -16, -8 + createsprite gUnknown_08593A84, 0x0, 16, -8 createvisualtask sub_81064F8, 0x5 playsewithpan SE_W043, -64 delay 0x2 @@ -2955,7 +2955,7 @@ Move_BARRAGE: createvisualtask sub_815E47C, 0x3 playsewithpan SE_W207, -64 delay 0x18 - createsprite 0x85972D8, 0x2, 8, 1, 40, 1 + createsprite gUnknown_085972D8, 0x2, 8, 1, 40, 1 createvisualtask sub_80D51AC, 0x3, 1, 0, 4, 20, 1 createvisualtask sub_80D51AC, 0x3, 3, 0, 4, 20, 1 loopsewithpan SE_W070, +63, 0x8, 0x2 @@ -3019,7 +3019,7 @@ AnimScript_82CD28E: createvisualtask sub_81136E8, 0x5, 0 waitforvisualfinish createvisualtask sub_8159244, 0x5, 238, -64 - createsprite 0x8596514, 0x82 + createsprite gUnknown_08596514, 0x82 delay 0xE createvisualtask sub_80D52D0, 0x2, 1, 10, 0, 18, 1 createvisualtask sub_8159210, 0x5, 141, 63 @@ -3058,7 +3058,7 @@ Move_ACID_ARMOR: Move_SHARPEN: loadspritegfx 0x27C9 - createsprite 0x8592DE4, 0x2 + createsprite gUnknown_08592DE4, 0x2 waitforvisualfinish end @@ -3071,12 +3071,12 @@ Move_SUPER_FANG: createvisualtask sub_80A7B98, 0x2, 0, 1247, 12, 4, 1 waitforvisualfinish delay 0x14 - createsprite 0x857FE28, 0x2, 4, 4 + createsprite gUnknown_0857FE28, 0x2, 4, 4 delay 0x4 - createsprite 0x8592F74, 0x82 + createsprite gUnknown_08592F74, 0x82 playsewithpan SE_W044, +63 delay 0x8 - createsprite 0x859728C, 0x2, 1, 3, 1, 2143, 14, 0x7FFF, 14 + createsprite gUnknown_0859728C, 0x2, 1, 3, 1, 2143, 14, 0x7FFF, 14 createvisualtask sub_80D51AC, 0x2, 1, 0, 7, 12, 1 waitforvisualfinish blendoff @@ -3084,10 +3084,10 @@ Move_SUPER_FANG: Move_SLASH: loadspritegfx 0x27C7 - createsprite 0x8592D2C, 0x82, 1, -8, 0 + createsprite gUnknown_08592D2C, 0x82, 1, -8, 0 playsewithpan SE_W013, +63 delay 0x4 - createsprite 0x8592D2C, 0x82, 1, 8, 0 + createsprite gUnknown_08592D2C, 0x82, 1, 8, 0 createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 18, 1 playsewithpan SE_W013, +63 waitforvisualfinish @@ -3099,11 +3099,11 @@ Move_STRUGGLE: monbg ANIM_TARGET setalpha 0x80C createvisualtask sub_80D5484, 0x2, 0, 3, 0, 12, 4 - createsprite 0x8593B80, 0x2, 0, 0, 2 - createsprite 0x8593B80, 0x2, 0, 1, 2 + createsprite gUnknown_08593B80, 0x2, 0, 0, 2 + createsprite gUnknown_08593B80, 0x2, 0, 1, 2 loopsewithpan SE_W029, -64, 0xC, 0x4 waitforvisualfinish - createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 2 createvisualtask sub_80D5484, 0x2, 1, 3, 0, 6, 1 playsewithpan SE_W025B, +63 waitforvisualfinish @@ -3115,7 +3115,7 @@ Move_SKETCH: loadspritegfx 0x2712 monbg ANIM_TARGET createvisualtask sub_8104E74, 0x2 - createsprite 0x85936D4, 0x82 + createsprite gUnknown_085936D4, 0x82 waitforvisualfinish clearmonbg ANIM_TARGET createvisualtask sub_8104938, 0x2, 0, 2 @@ -3152,7 +3152,7 @@ Move_FLAIL: createvisualtask sub_815C770, 0x2, 0 loopsewithpan SE_W029, -64, 0x8, 0x2 waitforvisualfinish - createsprite 0x85973A0, 0x83, 1, 3 + createsprite gUnknown_085973A0, 0x83, 1, 3 createvisualtask sub_80D6388, 0x2, 0, 1, 30, 1, 0 playsewithpan SE_W025B, +63 waitforvisualfinish @@ -3191,8 +3191,8 @@ AnimScript_82CD57E: createvisualtask sub_80A8BC4, 0x2, 28968, 10 playsewithpan SE_W026, -64 delay 0x6 - createsprite 0x8597358, 0x83, 0, 0, 1, 1 - createsprite 0x8595E98, 0x84, 0, 0, 8, 1, 0 + createsprite gUnknown_08597358, 0x83, 0, 0, 1, 1 + createsprite gUnknown_08595E98, 0x84, 0, 0, 8, 1, 0 playsewithpan SE_W004, +63 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 waitforvisualfinish @@ -3213,7 +3213,7 @@ Move_FORESIGHT: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 0x10 - createsprite 0x85CE8C4, 0x82, 1 + createsprite gUnknown_085CE8C4, 0x82, 1 delay 0x11 loopsewithpan SE_W166, +63, 0x10, 0x4 delay 0x30 @@ -3261,27 +3261,27 @@ Move_ENDURE: end AnimScript_82CD6C7: - createsprite 0x8592D8C, 0x2, 0, -24, 26, 2 + createsprite gUnknown_08592D8C, 0x2, 0, -24, 26, 2 delay 0x4 - createsprite 0x8592D8C, 0x2, 0, 14, 28, 1 + createsprite gUnknown_08592D8C, 0x2, 0, 14, 28, 1 delay 0x4 - createsprite 0x8592D8C, 0x2, 0, -5, 10, 2 + createsprite gUnknown_08592D8C, 0x2, 0, -5, 10, 2 delay 0x4 - createsprite 0x8592D8C, 0x2, 0, 28, 26, 3 + createsprite gUnknown_08592D8C, 0x2, 0, 28, 26, 3 delay 0x4 - createsprite 0x8592D8C, 0x2, 0, -12, 0, 1 + createsprite gUnknown_08592D8C, 0x2, 0, -12, 0, 1 return Move_CHARM: loadspritegfx 0x27E2 createvisualtask sub_815C478, 0x5, 0, 2, 0 - createsprite 0x8593970, 0x3, 0, 20 + createsprite gUnknown_08593970, 0x3, 0, 20 playsewithpan SE_W204, -64 delay 0xF - createsprite 0x8593970, 0x3, -20, 20 + createsprite gUnknown_08593970, 0x3, -20, 20 playsewithpan SE_W204, -64 delay 0xF - createsprite 0x8593970, 0x3, 20, 20 + createsprite gUnknown_08593970, 0x3, 20, 20 playsewithpan SE_W204, -64 waitforvisualfinish end @@ -3296,7 +3296,7 @@ Move_ROLLOUT: createvisualtask sub_8110F74, 0x2 waitforvisualfinish createvisualtask sub_80D6388, 0x2, 0, 1, 30, 1, 0 - createsprite 0x8597358, 0x4, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x4, 0, 0, 1, 2 playsewithpan SE_W025B, +63 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -3306,27 +3306,27 @@ Move_ROLLOUT: Move_FALSE_SWIPE: loadspritegfx 0x282E loadspritegfx 0x2797 - createsprite 0x8592D44, 0x82 + createsprite gUnknown_08592D44, 0x82 playsewithpan SE_W233, +63 delay 0x10 - createsprite 0x8592D5C, 0x82, 0 + createsprite gUnknown_08592D5C, 0x82, 0 playsewithpan SE_W104, +63 delay 0x2 - createsprite 0x8592D5C, 0x82, 16 + createsprite gUnknown_08592D5C, 0x82, 16 delay 0x2 - createsprite 0x8592D5C, 0x82, 32 + createsprite gUnknown_08592D5C, 0x82, 32 playsewithpan SE_W104, +63 delay 0x2 - createsprite 0x8592D5C, 0x82, 48 + createsprite gUnknown_08592D5C, 0x82, 48 delay 0x2 - createsprite 0x8592D5C, 0x82, 64 + createsprite gUnknown_08592D5C, 0x82, 64 playsewithpan SE_W104, +63 delay 0x2 - createsprite 0x8592D5C, 0x82, 80 + createsprite gUnknown_08592D5C, 0x82, 80 delay 0x2 waitforvisualfinish createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 6, 1 - createsprite 0x8597358, 0x84, 0, 0, 1, 3 + createsprite gUnknown_08597358, 0x84, 0, 0, 1, 3 playsewithpan SE_W004, +63 end @@ -3336,14 +3336,14 @@ Move_SWAGGER: createvisualtask sub_8104AB4, 0x2 playsewithpan SE_W207, -64 waitforvisualfinish - createsprite 0x8593658, 0x2 + createsprite gUnknown_08593658, 0x2 loopsewithpan SE_W207, -64, 0x4, 0x2 waitforvisualfinish delay 0x18 - createsprite 0x859368C, 0x82, 1, -20, -28 + createsprite gUnknown_0859368C, 0x82, 1, -20, -28 playsewithpan SE_W207B, +63 delay 0xC - createsprite 0x859368C, 0x82, 1, 20, -28 + createsprite gUnknown_0859368C, 0x82, 1, 20, -28 playsewithpan SE_W207B, +63 waitforvisualfinish end @@ -3353,7 +3353,7 @@ Move_MILK_DRINK: loadspritegfx 0x27DB loadspritegfx 0x272F monbg ANIM_TARGET - createsprite 0x8592B3C, 0x2 + createsprite gUnknown_08592B3C, 0x2 delay 0x28 playsewithpan SE_W152, -64 delay 0xC @@ -3361,7 +3361,7 @@ Move_MILK_DRINK: delay 0x14 playsewithpan SE_W152, -64 waitforvisualfinish - createsprite 0x859381C, 0x3, 0, 0, 1, 0 + createsprite gUnknown_0859381C, 0x3, 0, 0, 1, 0 playsewithpan SE_W208, -64 waitforvisualfinish clearmonbg ANIM_TARGET @@ -3389,20 +3389,20 @@ AnimScript_82CD8EE: createvisualtask sub_81152DC, 0x5, 4, 0, 50 loopsewithpan SE_W070, +63, 0x8, 0xA delay 0xA - createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + createsprite gUnknown_0859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 delay 0x10 - createsprite 0x859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 + createsprite gUnknown_0859728C, 0x2, 1, 3, 1, 0, 14, 0x7FFF, 14 goto AnimScript_82CD8C8 Move_RAPID_SPIN: loadspritegfx 0x2797 loadspritegfx 0x27F5 monbg ANIM_ATTACKER - createsprite 0x85CE288, 0x2, 0, 0, 32, -32, 40, -2 + createsprite gUnknown_085CE288, 0x2, 0, 0, 32, -32, 40, -2 createvisualtask sub_815ADB0, 0x2, 0, 2, 0 loopsewithpan SE_W013B, -64, 0x8, 0x4 waitforvisualfinish - createsprite 0x8597358, 0x82, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x82, 0, 0, 1, 2 createvisualtask sub_80D6388, 0x2, 0, 1, 10, 1, 0 playsewithpan SE_W003, +63 waitforvisualfinish @@ -3418,21 +3418,21 @@ Move_MOONLIGHT: loadspritegfx 0x27D3 loadspritegfx 0x272F setalpha 0x1000 - createsprite 0x8597274, 0x2, 1, 1, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 16, 0 waitforvisualfinish - createsprite 0x8592EBC, 0x2, 120, 56 + createsprite gUnknown_08592EBC, 0x2, 120, 56 createvisualtask sub_80A7A74, 0x3, 0, 16, 16, 0, 1 playsewithpan SE_W236, 0 delay 0x1E - createsprite 0x8592EEC, 0x28, -12, 0 + createsprite gUnknown_08592EEC, 0x28, -12, 0 delay 0x1E - createsprite 0x8592EEC, 0x28, -24, 0 + createsprite gUnknown_08592EEC, 0x28, -24, 0 delay 0x1E - createsprite 0x8592EEC, 0x28, 21, 0 + createsprite gUnknown_08592EEC, 0x28, 21, 0 delay 0x1E - createsprite 0x8592EEC, 0x28, 0, 0 + createsprite gUnknown_08592EEC, 0x28, 0, 0 delay 0x1E - createsprite 0x8592EEC, 0x28, 10, 0 + createsprite gUnknown_08592EEC, 0x28, 10, 0 delay 0x14 createvisualtask sub_81025C0, 0x2 waitforvisualfinish @@ -3462,13 +3462,13 @@ AnimScript_82CDA55: createvisualtask sub_8105810, 0x2 delay 0x2 playsewithpan SE_W004, +63 - createsprite 0x85973B8, 0x82, 1, 0, -12, 3 + createsprite gUnknown_085973B8, 0x82, 1, 0, -12, 3 delay 0xA playsewithpan SE_W004, +63 - createsprite 0x85973B8, 0x82, 1, 0, 12, 3 + createsprite gUnknown_085973B8, 0x82, 1, 0, 12, 3 delay 0xA playsewithpan SE_W233B, +63 - createsprite 0x85973B8, 0x82, 1, 0, 0, 3 + createsprite gUnknown_085973B8, 0x82, 1, 0, 0, 3 waitforvisualfinish createvisualtask sub_8105AAC, 0x2 delay 0xA @@ -3495,22 +3495,22 @@ Move_UPROAR: loadspritegfx 0x27DB monbg ANIM_DEF_PARTNER createvisualtask sub_8106D90, 0x2, 0 - createsprite 0x8593898, 0x3, 0, 0, 0, 0, 31, 8 + createsprite gUnknown_08593898, 0x3, 0, 0, 0, 0, 31, 8 playsewithpan SE_W253, -64 - createsprite 0x8593BB8, 0x2, 0, 29, -12, 0 - createsprite 0x8593BB8, 0x2, 0, -12, -29, 1 + createsprite gUnknown_08593BB8, 0x2, 0, 29, -12, 0 + createsprite gUnknown_08593BB8, 0x2, 0, -12, -29, 1 delay 0x10 createvisualtask sub_8106D90, 0x2, 0 - createsprite 0x8593898, 0x3, 0, 0, 0, 0, 31, 8 + createsprite gUnknown_08593898, 0x3, 0, 0, 0, 0, 31, 8 playsewithpan SE_W253, -64 - createsprite 0x8593BB8, 0x2, 0, 12, -29, 1 - createsprite 0x8593BB8, 0x2, 0, -29, -12, 0 + createsprite gUnknown_08593BB8, 0x2, 0, 12, -29, 1 + createsprite gUnknown_08593BB8, 0x2, 0, -29, -12, 0 delay 0x10 createvisualtask sub_8106D90, 0x2, 0 - createsprite 0x8593898, 0x3, 0, 0, 0, 0, 31, 8 + createsprite gUnknown_08593898, 0x3, 0, 0, 0, 0, 31, 8 playsewithpan SE_W253, -64 - createsprite 0x8593BB8, 0x2, 0, 24, -24, 1 - createsprite 0x8593BB8, 0x2, 0, -24, -24, 0 + createsprite gUnknown_08593BB8, 0x2, 0, 24, -24, 1 + createsprite gUnknown_08593BB8, 0x2, 0, -24, -24, 0 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -3524,19 +3524,19 @@ Move_HEAT_WAVE: delay 0x4 createvisualtask sub_8109DBC, 0x5 delay 0xC - createsprite 0x8596BA0, 0x28, 10, 2304, 96, 1 + createsprite gUnknown_08596BA0, 0x28, 10, 2304, 96, 1 delay 0xA - createsprite 0x8596BA0, 0x28, 90, 2048, 96, 1 + createsprite gUnknown_08596BA0, 0x28, 90, 2048, 96, 1 delay 0xA - createsprite 0x8596BA0, 0x28, 50, 2560, 96, 1 + createsprite gUnknown_08596BA0, 0x28, 50, 2560, 96, 1 delay 0xA - createsprite 0x8596BA0, 0x28, 20, 2304, 96, 1 + createsprite gUnknown_08596BA0, 0x28, 20, 2304, 96, 1 delay 0xA - createsprite 0x8596BA0, 0x28, 70, 1984, 96, 1 + createsprite gUnknown_08596BA0, 0x28, 70, 1984, 96, 1 delay 0xA - createsprite 0x8596BA0, 0x28, 0, 2816, 96, 1 + createsprite gUnknown_08596BA0, 0x28, 0, 2816, 96, 1 delay 0xA - createsprite 0x8596BA0, 0x28, 60, 2560, 96, 1 + createsprite gUnknown_08596BA0, 0x28, 60, 2560, 96, 1 end Move_HAIL: @@ -3556,10 +3556,10 @@ Move_TORMENT: createvisualtask sub_815AFF0, 0x2 waitforvisualfinish createvisualtask sub_80A7B98, 0x2, 1, 31, 10, 1, 1 - createsprite 0x859368C, 0x82, 1, -20, -28 + createsprite gUnknown_0859368C, 0x82, 1, -20, -28 playsewithpan SE_W207B, +63 delay 0x14 - createsprite 0x859368C, 0x82, 1, 20, -28 + createsprite gUnknown_0859368C, 0x82, 1, 20, -28 playsewithpan SE_W207B, +63 end @@ -3597,21 +3597,21 @@ Move_FACADE: Move_SMELLING_SALT: loadspritegfx 0x2807 loadspritegfx 0x280F - createsprite 0x85CE864, 0x82, 1, 0, 2 - createsprite 0x85CE864, 0x82, 1, 1, 2 + createsprite gUnknown_085CE864, 0x82, 1, 0, 2 + createsprite gUnknown_085CE864, 0x82, 1, 1, 2 delay 0x20 createvisualtask sub_815E840, 0x3, 1, 2 loopsewithpan SE_W003, +63, 0xC, 0x2 waitforvisualfinish delay 0x4 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 6, 2 - createsprite 0x85CE894, 0x82, 1, 8, 3 + createsprite gUnknown_085CE894, 0x82, 1, 8, 3 loopsewithpan SE_W207B, +63, 0x10, 0x3 end Move_FOLLOW_ME: loadspritegfx 0x2750 - createsprite 0x85931D4, 0x2, 0 + createsprite gUnknown_085931D4, 0x2, 0 playsewithpan SE_W039, -64 delay 0x12 playsewithpan SE_W213, -64 @@ -3625,7 +3625,7 @@ Move_CHARGE: loadspritegfx 0x27E5 monbg ANIM_ATTACKER setalpha 0x80C - createsprite 0x8597274, 0x2, 1, 2, 0, 4, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 0 waitforvisualfinish createvisualtask sub_810AAFC, 0x2, 0, 60, 2, 12 playsewithpan SE_W268, -64 @@ -3633,7 +3633,7 @@ Move_CHARGE: playsewithpan SE_W268, -64 delay 0x1E playsewithpan SE_W268, -64 - createsprite 0x859595C, 0x2, 0 + createsprite gUnknown_0859595C, 0x2, 0 delay 0x19 playsewithpan SE_W268, -64 delay 0x14 @@ -3644,12 +3644,12 @@ Move_CHARGE: delay 0x6 loopsewithpan SE_W268, -64, 0x6, 0x5 waitforvisualfinish - createsprite 0x859598C, 0x2, 0, 16, 16 + createsprite gUnknown_0859598C, 0x2, 0, 16, 16 delay 0x2 - createsprite 0x859598C, 0x2, 0, -16, -16 + createsprite gUnknown_0859598C, 0x2, 0, -16, -16 playsewithpan SE_W085B, -64 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 4, 4, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, 0 clearmonbg ANIM_ATTACKER blendoff end @@ -3658,27 +3658,27 @@ Move_TAUNT: loadspritegfx 0x27E6 loadspritegfx 0x27E1 loadspritegfx 0x2767 - createsprite 0x8593114, 0xB, 0, 45 + createsprite gUnknown_08593114, 0xB, 0, 45 playsewithpan SE_W118, -64 delay 0x6 - createsprite 0x859324C, 0xC, 0 + createsprite gUnknown_0859324C, 0xC, 0 delay 0x4 loopsewithpan SE_W039, -64, 0x10, 0x2 waitforvisualfinish delay 0x8 - createsprite 0x859368C, 0x82, 1, -20, -28 + createsprite gUnknown_0859368C, 0x82, 1, -20, -28 playsewithpan SE_W207B, +63 waitforvisualfinish delay 0xC - createsprite 0x859368C, 0x82, 1, 20, -28 + createsprite gUnknown_0859368C, 0x82, 1, 20, -28 playsewithpan SE_W207B, +63 end Move_HELPING_HAND: loadspritegfx 0x2807 createvisualtask sub_815EC48, 0x5 - createsprite 0x85CE8AC, 0x28, 0 - createsprite 0x85CE8AC, 0x28, 1 + createsprite gUnknown_085CE8AC, 0x28, 0 + createsprite gUnknown_085CE8AC, 0x28, 1 delay 0x13 playsewithpan SE_W227, 0 createvisualtask sub_80D52D0, 0x2, 2, 2, 0, 5, 1 @@ -3693,18 +3693,18 @@ Move_HELPING_HAND: Move_ASSIST: loadspritegfx 0x280C - createsprite 0x85CE804, 0x32, 112, -16, 140, 128, 36 + createsprite gUnknown_085CE804, 0x32, 112, -16, 140, 128, 36 delay 0x2 - createsprite 0x85CE804, 0x32, 208, 128, -16, 48, 36 + createsprite gUnknown_085CE804, 0x32, 208, 128, -16, 48, 36 playsewithpan SE_W010, 0 delay 0x2 - createsprite 0x85CE804, 0x32, -16, 112, 256, -16, 36 + createsprite gUnknown_085CE804, 0x32, -16, 112, 256, -16, 36 playsewithpan SE_W010, 0 delay 0x2 - createsprite 0x85CE804, 0x32, 108, 128, 84, -16, 36 + createsprite gUnknown_085CE804, 0x32, 108, 128, 84, -16, 36 playsewithpan SE_W010, 0 delay 0x2 - createsprite 0x85CE804, 0x32, -16, 56, 256, 56, 36 + createsprite gUnknown_085CE804, 0x32, -16, 56, 256, 56, 36 playsewithpan SE_W010, 0 end @@ -3715,23 +3715,23 @@ Move_SUPERPOWER: monbg ANIM_ATK_PARTNER monbgprio_28 ANIM_ATTACKER setalpha 0x80C - createsprite 0x8595FEC, 0x82, 0 + createsprite gUnknown_08595FEC, 0x82, 0 playsewithpan SE_W025, -64 delay 0x14 - createsprite 0x85972D8, 0x2, 4, 1, 180, 1 + createsprite gUnknown_085972D8, 0x2, 4, 1, 180, 1 createvisualtask sub_8159244, 0x5, 234, 0 delay 0x28 - createsprite 0x8596004, 0x29, 200, 96, 1, 120 + createsprite gUnknown_08596004, 0x29, 200, 96, 1, 120 delay 0x8 - createsprite 0x8596004, 0x29, 20, 248, 4, 112 + createsprite gUnknown_08596004, 0x29, 20, 248, 4, 112 delay 0x8 - createsprite 0x8596004, 0x29, 130, 160, 2, 104 + createsprite gUnknown_08596004, 0x29, 130, 160, 2, 104 delay 0x8 - createsprite 0x8596004, 0x29, 160, 192, 0, 96 + createsprite gUnknown_08596004, 0x29, 160, 192, 0, 96 delay 0x8 - createsprite 0x8596004, 0x29, 60, 288, 3, 88 + createsprite gUnknown_08596004, 0x29, 60, 288, 3, 88 delay 0x4A - createsprite 0x859601C, 0x83, 0 + createsprite gUnknown_0859601C, 0x83, 0 playsewithpan SE_W207, -64 delay 0x10 createvisualtask sub_80D52D0, 0x2, 1, 8, 0, 16, 1 @@ -3747,7 +3747,7 @@ Move_RECYCLE: monbg ANIM_ATTACKER setalpha 0x1000 delay 0x1 - createsprite 0x85CE9B0, 0x2 + createsprite gUnknown_085CE9B0, 0x2 loopsewithpan SE_W036, -64, 0x18, 0x3 waitforvisualfinish createvisualtask sub_80A7B98, 0x5, 0, 0x7FFF, 12, 2, 1 @@ -3768,25 +3768,25 @@ Move_BRICK_BREAK: AnimScript_82CE0A7: monbg ANIM_TARGET setalpha 0x80C - createsprite 0x857FE28, 0x2, 3, 8 + createsprite gUnknown_0857FE28, 0x2, 3, 8 delay 0x4 delay 0x1 - createsprite 0x8597358, 0x3, -18, -18, 1, 1 + createsprite gUnknown_08597358, 0x3, -18, -18, 1, 1 playsewithpan SE_W233, +63 delay 0x14 - createsprite 0x857FE28, 0x2, 3, 8 + createsprite gUnknown_0857FE28, 0x2, 3, 8 delay 0x5 - createsprite 0x8597358, 0x3, 18, 18, 1, 1 + createsprite gUnknown_08597358, 0x3, 18, 18, 1, 1 playsewithpan SE_W233, +63 delay 0x14 createvisualtask sub_80D5C50, 0x2, 0, -24, 0, 24, 10, 24, 3 - createsprite 0x8597274, 0x2, 1, 2, 0, 6, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 6, 0 delay 0x25 - createsprite 0x8597358, 0x3, 0, 0, 1, 1 - createsprite 0x8595E98, 0x4, 0, 0, 10, 1, 0 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 1 + createsprite gUnknown_08595E98, 0x4, 0, 0, 10, 1, 0 playsewithpan SE_W233B, +63 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 2, 6, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 6, 0, 0 waitforvisualfinish clearmonbg ANIM_TARGET end @@ -3794,32 +3794,32 @@ AnimScript_82CE0A7: AnimScript_82CE154: monbg ANIM_TARGET setalpha 0x80C - createsprite 0x857FE28, 0x2, 3, 8 + createsprite gUnknown_0857FE28, 0x2, 3, 8 delay 0x4 - createsprite 0x8595F90, 0x3, 1, 0, 0, 90, 10 + createsprite gUnknown_08595F90, 0x3, 1, 0, 0, 90, 10 delay 0x1 - createsprite 0x8597358, 0x3, -18, -18, 1, 1 + createsprite gUnknown_08597358, 0x3, -18, -18, 1, 1 playsewithpan SE_W233, +63 delay 0x14 - createsprite 0x857FE28, 0x2, 3, 8 + createsprite gUnknown_0857FE28, 0x2, 3, 8 delay 0x5 - createsprite 0x8597358, 0x3, 18, 18, 1, 1 + createsprite gUnknown_08597358, 0x3, 18, 18, 1, 1 playsewithpan SE_W233, +63 delay 0x14 createvisualtask sub_80D5C50, 0x2, 0, -24, 0, 24, 10, 24, 3 - createsprite 0x8597274, 0x2, 1, 2, 0, 6, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 6, 0 delay 0x25 - createsprite 0x8597358, 0x3, 0, 0, 1, 1 - createsprite 0x8595E98, 0x4, 0, 0, 10, 1, 0 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 1 + createsprite gUnknown_08595E98, 0x4, 0, 0, 10, 1, 0 playsewithpan SE_W233B, +63 waitforvisualfinish - createsprite 0x8595FA8, 0x2, 1, 0, -8, -12 - createsprite 0x8595FA8, 0x2, 1, 1, 8, -12 - createsprite 0x8595FA8, 0x2, 1, 2, -8, 12 - createsprite 0x8595FA8, 0x2, 1, 3, 8, 12 + createsprite gUnknown_08595FA8, 0x2, 1, 0, -8, -12 + createsprite gUnknown_08595FA8, 0x2, 1, 1, 8, -12 + createsprite gUnknown_08595FA8, 0x2, 1, 2, -8, 12 + createsprite gUnknown_08595FA8, 0x2, 1, 3, 8, 12 playsewithpan SE_W280, +63 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 2, 6, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 6, 0, 0 waitforvisualfinish clearmonbg ANIM_TARGET end @@ -3829,12 +3829,12 @@ Move_YAWN: createvisualtask sub_815D64C, 0x2, 0 playsewithpan SE_W281, -64 waitforvisualfinish - createsprite 0x85CE68C, 0x85, 2 + createsprite gUnknown_085CE68C, 0x85, 2 playsewithpan SE_W255, -64 delay 0x4 - createsprite 0x85CE68C, 0x85, 1 + createsprite gUnknown_085CE68C, 0x85, 1 delay 0x4 - createsprite 0x85CE68C, 0x85, 0 + createsprite gUnknown_085CE68C, 0x85, 0 waitforvisualfinish createvisualtask sub_815D64C, 0x2, 1 playsewithpan SE_W281, +63 @@ -3848,17 +3848,17 @@ Move_ENDEAVOR: createvisualtask sub_80A7B98, 0x5, 0, 703, 12, 1, 2 delay 0x6 createvisualtask sub_80D6388, 0x5, 0, 1, 8, 1, 0 - createsprite 0x8597358, 0x82, 12, -12, 1, 2 + createsprite gUnknown_08597358, 0x82, 12, -12, 1, 2 playsewithpan SE_W003, +63 delay 0x18 createvisualtask sub_80D6388, 0x5, 0, 1, 8, 1, 0 - createsprite 0x8597358, 0x82, -12, 12, 1, 2 + createsprite gUnknown_08597358, 0x82, -12, 12, 1, 2 playsewithpan SE_W004, +63 end Move_ERUPTION: loadspritegfx 0x27D9 - createsprite 0x8597274, 0x2, 31, 2, 0, 4, 31 + createsprite gUnknown_08597274, 0x2, 31, 2, 0, 4, 31 waitforvisualfinish createvisualtask sub_8109460, 0x2 waitplaysewithpan SE_W153, -64, 0x3C @@ -3867,18 +3867,18 @@ Move_ERUPTION: waitplaysewithpan SE_W153, -64, 0x3C waitforvisualfinish delay 0x1E - createsprite 0x85955E8, 0x28, 200, -32, 0, 100, 0 - createsprite 0x85955E8, 0x28, 30, -32, 16, 90, 1 - createsprite 0x85955E8, 0x28, 150, -32, 32, 60, 2 - createsprite 0x85955E8, 0x28, 90, -32, 48, 80, 3 - createsprite 0x85955E8, 0x28, 110, -32, 64, 50, 0 - createsprite 0x85955E8, 0x28, 60, -32, 80, 70, 1 + createsprite gUnknown_085955E8, 0x28, 200, -32, 0, 100, 0 + createsprite gUnknown_085955E8, 0x28, 30, -32, 16, 90, 1 + createsprite gUnknown_085955E8, 0x28, 150, -32, 32, 60, 2 + createsprite gUnknown_085955E8, 0x28, 90, -32, 48, 80, 3 + createsprite gUnknown_085955E8, 0x28, 110, -32, 64, 50, 0 + createsprite gUnknown_085955E8, 0x28, 60, -32, 80, 70, 1 delay 0x16 createvisualtask sub_81152DC, 0x5, 5, 8, 60 createvisualtask sub_81152DC, 0x5, 4, 8, 60 loopsewithpan SE_W088, +63, 0x10, 0xC delay 0x50 - createsprite 0x8597274, 0x28, 31, 4, 4, 0, 31 + createsprite gUnknown_08597274, 0x28, 31, 4, 4, 0, 31 end Move_SKILL_SWAP: @@ -3904,7 +3904,7 @@ Move_IMPRISON: loopsewithpan SE_W030, -64, 0x8, 0x5 waitforvisualfinish delay 0x4 - createsprite 0x85967AC, 0x5, 0, 40 + createsprite gUnknown_085967AC, 0x5, 0, 40 createvisualtask sub_81152DC, 0x5, 4, 1, 10 playsewithpan SE_W063, -64 clearmonbg ANIM_DEF_PARTNER @@ -3951,13 +3951,13 @@ Move_TAIL_GLOW: loadspritegfx 0x27E4 monbg ANIM_ATTACKER setalpha 0x80C - createsprite 0x8597274, 0x2, 1, 2, 0, 4, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 0 waitforvisualfinish - createsprite 0x8596AC8, 0x42, 0 + createsprite gUnknown_08596AC8, 0x42, 0 delay 0x12 loopsewithpan SE_W234, -64, 0x10, 0x6 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 4, 4, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, 0 clearmonbg ANIM_ATTACKER blendoff delay 0x1 @@ -3973,29 +3973,29 @@ Move_LUSTER_PURGE: monbg ANIM_ATTACKER setalpha 0x80C playsewithpan SE_W076, -64 - createsprite 0x8596898, 0x29, 0, 0, 0, 0 + createsprite gUnknown_08596898, 0x29, 0, 0, 0, 0 delay 0x14 createvisualtask sub_8116664, 0x5, 5, 2, 0, 16, -1 createvisualtask sub_8116848, 0x5, 10267, 2, 0, 16, -1 waitforvisualfinish createvisualtask sub_8116848, 0x5, 10135, 0, 12, 12, 23552 waitforvisualfinish - createsprite 0x85973A0, 0x83, 1, 2 + createsprite gUnknown_085973A0, 0x83, 1, 2 createvisualtask sub_8159210, 0x5, 215, 63 delay 0x3 - createsprite 0x85973A0, 0x83, 1, 2 + createsprite gUnknown_085973A0, 0x83, 1, 2 createvisualtask sub_8159210, 0x5, 215, 63 delay 0x3 - createsprite 0x85973A0, 0x83, 1, 2 + createsprite gUnknown_085973A0, 0x83, 1, 2 createvisualtask sub_8159210, 0x5, 215, 63 delay 0x3 - createsprite 0x85973A0, 0x83, 1, 2 + createsprite gUnknown_085973A0, 0x83, 1, 2 createvisualtask sub_8159210, 0x5, 215, 63 delay 0x3 - createsprite 0x85973A0, 0x83, 1, 2 + createsprite gUnknown_085973A0, 0x83, 1, 2 createvisualtask sub_8159210, 0x5, 215, 63 delay 0x3 - createsprite 0x85973A0, 0x83, 1, 2 + createsprite gUnknown_085973A0, 0x83, 1, 2 createvisualtask sub_8159210, 0x5, 215, 63 waitforvisualfinish createvisualtask sub_8116664, 0x5, 5, 2, 16, 0, -1 @@ -4011,11 +4011,11 @@ Move_MIST_BALL: loadspritegfx 0x281E delay 0x0 playsewithpan SE_W081, -64 - createsprite 0x8595C70, 0x80, 0, 0, 0, 0, 30, 0 + createsprite gUnknown_08595C70, 0x80, 0, 0, 0, 0, 30, 0 waitforvisualfinish playsewithpan SE_W028, +63 createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 10, 0 - createsprite 0x859728C, 0x0, 1, 1, 1, 32279, 16, 0x7FFF, 16 + createsprite gUnknown_0859728C, 0x0, 1, 1, 1, 32279, 16, 0x7FFF, 16 delay 0x0 playsewithpan SE_W114, 0 createvisualtask sub_810C324, 0x5 @@ -4032,18 +4032,18 @@ Move_FEATHER_DANCE: monbgprio_29 playsewithpan SE_W080, +63 delay 0x0 - createsprite 0x8596388, 0x80, 0, -16, 64, 2, 104, 11304, 32, 1 + createsprite gUnknown_08596388, 0x80, 0, -16, 64, 2, 104, 11304, 32, 1 delay 0x6 - createsprite 0x8596388, 0x80, 0, -16, 32, 2, 104, 11304, 32, 1 - createsprite 0x8596388, 0x80, 0, -16, 0, 2, 104, 11304, 32, 1 + createsprite gUnknown_08596388, 0x80, 0, -16, 32, 2, 104, 11304, 32, 1 + createsprite gUnknown_08596388, 0x80, 0, -16, 0, 2, 104, 11304, 32, 1 delay 0x6 - createsprite 0x8596388, 0x80, 0, -16, 224, 2, 104, 11304, 32, 1 - createsprite 0x8596388, 0x80, 0, -16, 128, 2, 104, 11304, 32, 1 + createsprite gUnknown_08596388, 0x80, 0, -16, 224, 2, 104, 11304, 32, 1 + createsprite gUnknown_08596388, 0x80, 0, -16, 128, 2, 104, 11304, 32, 1 delay 0x6 - createsprite 0x8596388, 0x80, 0, -16, 192, 2, 104, 11304, 32, 1 - createsprite 0x8596388, 0x80, 0, -16, 160, 2, 104, 11304, 32, 1 + createsprite gUnknown_08596388, 0x80, 0, -16, 192, 2, 104, 11304, 32, 1 + createsprite gUnknown_08596388, 0x80, 0, -16, 160, 2, 104, 11304, 32, 1 delay 0x6 - createsprite 0x8596388, 0x80, 0, -16, 96, 2, 104, 11304, 32, 1 + createsprite gUnknown_08596388, 0x80, 0, -16, 96, 2, 104, 11304, 32, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -4052,19 +4052,19 @@ Move_TEETER_DANCE: loadspritegfx 0x2758 loadspritegfx 0x2759 createvisualtask sub_8160164, 0x5 - createsprite 0x8593050, 0x2, 0, 16, -2 + createsprite gUnknown_08593050, 0x2, 0, 16, -2 playsewithpan SE_W298, -64 delay 0x18 - createsprite 0x8593050, 0x2, 0, 0, -2 + createsprite gUnknown_08593050, 0x2, 0, 0, -2 playsewithpan SE_W298, -64 delay 0x18 - createsprite 0x8593050, 0x2, 0, -16, -2 + createsprite gUnknown_08593050, 0x2, 0, -16, -2 playsewithpan SE_W298, -64 delay 0x18 - createsprite 0x8593050, 0x2, 1, -8, -2 + createsprite gUnknown_08593050, 0x2, 1, -8, -2 playsewithpan SE_W298, -64 delay 0x18 - createsprite 0x8593050, 0x2, 2, 8, -2 + createsprite gUnknown_08593050, 0x2, 2, 8, -2 playsewithpan SE_W298, -64 end @@ -4072,46 +4072,46 @@ Move_MUD_SPORT: loadspritegfx 0x275A createvisualtask sub_8104938, 0x2, 0, 6 delay 0x18 - createsprite 0x85971E4, 0x82, 0, -4, -16 - createsprite 0x85971E4, 0x82, 0, 4, -12 + createsprite gUnknown_085971E4, 0x82, 0, -4, -16 + createsprite gUnknown_085971E4, 0x82, 0, 4, -12 playsewithpan SE_W091, -64 delay 0x20 - createsprite 0x85971E4, 0x82, 0, -3, -12 - createsprite 0x85971E4, 0x82, 0, 5, -14 + createsprite gUnknown_085971E4, 0x82, 0, -3, -12 + createsprite gUnknown_085971E4, 0x82, 0, 5, -14 playsewithpan SE_W091, -64 delay 0x20 - createsprite 0x85971E4, 0x82, 0, -5, -18 - createsprite 0x85971E4, 0x82, 0, 3, -14 + createsprite gUnknown_085971E4, 0x82, 0, -5, -18 + createsprite gUnknown_085971E4, 0x82, 0, 3, -14 playsewithpan SE_W091, -64 delay 0x10 - createsprite 0x85971E4, 0x82, 1, 220, 60 + createsprite gUnknown_085971E4, 0x82, 1, 220, 60 waitplaysewithpan SE_W145B, 0, 0xF delay 0x2 - createsprite 0x85971E4, 0x82, 1, 60, 100 + createsprite gUnknown_085971E4, 0x82, 1, 60, 100 waitplaysewithpan SE_W145B, 0, 0x19 delay 0x2 - createsprite 0x85971E4, 0x82, 1, 140, 55 + createsprite gUnknown_085971E4, 0x82, 1, 140, 55 waitplaysewithpan SE_W145B, 0, 0xE delay 0x2 - createsprite 0x85971E4, 0x82, 1, 180, 50 + createsprite gUnknown_085971E4, 0x82, 1, 180, 50 waitplaysewithpan SE_W145B, 0, 0xA delay 0x2 - createsprite 0x85971E4, 0x82, 1, 20, 90 + createsprite gUnknown_085971E4, 0x82, 1, 20, 90 waitplaysewithpan SE_W145B, 0, 0x16 delay 0x2 - createsprite 0x85971E4, 0x82, 1, 90, 90 + createsprite gUnknown_085971E4, 0x82, 1, 90, 90 waitplaysewithpan SE_W145B, 0, 0x16 delay 0x2 - createsprite 0x85971E4, 0x82, 1, 160, 60 + createsprite gUnknown_085971E4, 0x82, 1, 160, 60 waitplaysewithpan SE_W145B, 0, 0xF delay 0x2 - createsprite 0x85971E4, 0x82, 1, 30, 90 + createsprite gUnknown_085971E4, 0x82, 1, 30, 90 waitplaysewithpan SE_W145B, 0, 0x16 delay 0x2 - createsprite 0x85971E4, 0x82, 1, 120, 60 + createsprite gUnknown_085971E4, 0x82, 1, 120, 60 waitplaysewithpan SE_W145B, 0, 0xF delay 0x2 - createsprite 0x85971E4, 0x82, 1, 200, 40 + createsprite gUnknown_085971E4, 0x82, 1, 200, 40 waitplaysewithpan SE_W145B, 0, 0xA end @@ -4120,42 +4120,42 @@ Move_NEEDLE_ARM: loadspritegfx 0x2797 loadspritegfx 0x279F loopsewithpan SE_W030, +63, 0x2, 0x10 - createsprite 0x8592888, 0x82, 1, 0, 0, -32, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, 0, -32, 16 delay 0x2 - createsprite 0x8592888, 0x82, 1, 0, 22, -22, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, 22, -22, 16 delay 0x2 - createsprite 0x8592888, 0x82, 1, 0, 30, 0, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, 30, 0, 16 delay 0x2 - createsprite 0x8592888, 0x82, 1, 0, 20, 20, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, 20, 20, 16 delay 0x2 - createsprite 0x8592888, 0x82, 1, 0, 0, 28, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, 0, 28, 16 delay 0x2 - createsprite 0x8592888, 0x82, 1, 0, -19, 19, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, -19, 19, 16 delay 0x2 - createsprite 0x8592888, 0x82, 1, 0, -27, 0, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, -27, 0, 16 delay 0x2 - createsprite 0x8592888, 0x82, 1, 0, -18, -18, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, -18, -18, 16 delay 0x2 - createsprite 0x8592888, 0x82, 1, 0, 0, -25, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, 0, -25, 16 delay 0x2 - createsprite 0x8592888, 0x82, 1, 0, 17, -17, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, 17, -17, 16 delay 0x2 - createsprite 0x8592888, 0x82, 1, 0, 23, 0, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, 23, 0, 16 delay 0x2 - createsprite 0x8592888, 0x82, 1, 0, 16, 16, 16 + createsprite gUnknown_08592888, 0x82, 1, 0, 16, 16, 16 waitforvisualfinish createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 18, 1 - createsprite 0x8597358, 0x83, 0, 0, 1, 1 - createsprite 0x8595E98, 0x84, 0, 0, 8, 1, 0 + createsprite gUnknown_08597358, 0x83, 0, 0, 1, 1 + createsprite gUnknown_08595E98, 0x84, 0, 0, 8, 1, 0 playsewithpan SE_W233B, +63 - createsprite 0x8592888, 0x82, 1, 1, 0, -24, 10 - createsprite 0x8592888, 0x82, 1, 1, 17, -17, 10 - createsprite 0x8592888, 0x82, 1, 1, 24, 0, 10 - createsprite 0x8592888, 0x82, 1, 1, 17, 17, 10 - createsprite 0x8592888, 0x82, 1, 1, 0, 24, 10 - createsprite 0x8592888, 0x82, 1, 1, -17, 17, 10 - createsprite 0x8592888, 0x82, 1, 1, -24, 0, 10 - createsprite 0x8592888, 0x82, 1, 1, -17, -17, 10 + createsprite gUnknown_08592888, 0x82, 1, 1, 0, -24, 10 + createsprite gUnknown_08592888, 0x82, 1, 1, 17, -17, 10 + createsprite gUnknown_08592888, 0x82, 1, 1, 24, 0, 10 + createsprite gUnknown_08592888, 0x82, 1, 1, 17, 17, 10 + createsprite gUnknown_08592888, 0x82, 1, 1, 0, 24, 10 + createsprite gUnknown_08592888, 0x82, 1, 1, -17, 17, 10 + createsprite gUnknown_08592888, 0x82, 1, 1, -24, 0, 10 + createsprite gUnknown_08592888, 0x82, 1, 1, -17, -17, 10 end Move_SLACK_OFF: @@ -4173,15 +4173,15 @@ Move_CRUSH_CLAW: loadspritegfx 0x27E0 monbg ANIM_TARGET setalpha 0x80C - createsprite 0x857FE28, 0x2, 6, 4 + createsprite gUnknown_0857FE28, 0x2, 6, 4 delay 0x4 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 18, 1 - createsprite 0x8597138, 0x82, -10, -10, 0 - createsprite 0x8597138, 0x82, -10, 10, 0 + createsprite gUnknown_08597138, 0x82, -10, -10, 0 + createsprite gUnknown_08597138, 0x82, -10, 10, 0 playsewithpan SE_W013, +63 delay 0xC - createsprite 0x8597138, 0x82, 10, -10, 1 - createsprite 0x8597138, 0x82, 10, 10, 1 + createsprite gUnknown_08597138, 0x82, 10, -10, 1 + createsprite gUnknown_08597138, 0x82, 10, 10, 1 playsewithpan SE_W013, +63 waitforvisualfinish blendoff @@ -4193,37 +4193,37 @@ Move_AROMATHERAPY: loadspritegfx 0x27AF loadspritegfx 0x27DB loadspritegfx 0x2741 - createsprite 0x8597274, 0x0, 1, 0, 0, 7, 13293 + createsprite gUnknown_08597274, 0x0, 1, 0, 0, 7, 13293 delay 0x1 monbg ANIM_ATTACKER delay 0x1 - createsprite 0x85927AC, 0x0, 24, 16, 0, 2, 2, 0, 0 - createsprite 0x85927AC, 0x42, 64, 24, 0, 3, 1, 1, 0 - createsprite 0x85927C4, 0x0, 16, 24, 0, 2, 1, 0, 0 + createsprite gUnknown_085927AC, 0x0, 24, 16, 0, 2, 2, 0, 0 + createsprite gUnknown_085927AC, 0x42, 64, 24, 0, 3, 1, 1, 0 + createsprite gUnknown_085927C4, 0x0, 16, 24, 0, 2, 1, 0, 0 delay 0x14 - createsprite 0x85927AC, 0x42, 48, 12, 0, 4, 3, 1, 0 - createsprite 0x85927AC, 0x0, 100, 16, 0, 3, 2, 0, 0 - createsprite 0x85927AC, 0x0, 74, 24, 180, 3, 2, 0, 0 + createsprite gUnknown_085927AC, 0x42, 48, 12, 0, 4, 3, 1, 0 + createsprite gUnknown_085927AC, 0x0, 100, 16, 0, 3, 2, 0, 0 + createsprite gUnknown_085927AC, 0x0, 74, 24, 180, 3, 2, 0, 0 delay 0xA - createsprite 0x85927AC, 0x42, 80, 30, 0, 4, 1, 1, 0 - createsprite 0x85927AC, 0x0, 128, 12, 0, 3, 3, 0, 0 - createsprite 0x85927C4, 0x0, 90, 16, 0, 2, 1, 0, 0 + createsprite gUnknown_085927AC, 0x42, 80, 30, 0, 4, 1, 1, 0 + createsprite gUnknown_085927AC, 0x0, 128, 12, 0, 3, 3, 0, 0 + createsprite gUnknown_085927C4, 0x0, 90, 16, 0, 2, 1, 0, 0 waitforvisualfinish clearmonbg ANIM_ATTACKER delay 0x1 - createsprite 0x8597274, 0x0, 1, 0, 7, 0, 13293 + createsprite gUnknown_08597274, 0x0, 1, 0, 7, 0, 13293 delay 0x1 playsewithpan SE_W287, -64 createvisualtask sub_815DFCC, 0x2, 1 waitforvisualfinish playsewithpan SE_W234, -64 - createsprite 0x8592B94, 0x10, -15, 0, 0, 0, 32, 60, 1 + createsprite gUnknown_08592B94, 0x10, -15, 0, 0, 0, 32, 60, 1 delay 0x8 - createsprite 0x8592B94, 0x10, 12, -5, 0, 0, 32, 60, 1 + createsprite gUnknown_08592B94, 0x10, 12, -5, 0, 0, 32, 60, 1 waitforvisualfinish playsewithpan SE_REAPOKE, -64 - createsprite 0x8597274, 0x0, 43, 3, 10, 0, 13293 - createsprite 0x8593868, 0x10, 0, 0, 0, 1 + createsprite gUnknown_08597274, 0x0, 43, 3, 10, 0, 13293 + createsprite gUnknown_08593868, 0x10, 0, 0, 0, 1 waitforvisualfinish end @@ -4236,17 +4236,17 @@ Move_FAKE_TEARS: createvisualtask sub_815C478, 0x5, 0, 2, 1 loopsewithpan SE_W039, -64, 0xC, 0x4 delay 0x8 - createsprite 0x85970E8, 0x2, 0, 0 - createsprite 0x85970E8, 0x2, 0, 1 + createsprite gUnknown_085970E8, 0x2, 0, 0 + createsprite gUnknown_085970E8, 0x2, 0, 1 delay 0x8 - createsprite 0x85970E8, 0x2, 0, 2 - createsprite 0x85970E8, 0x2, 0, 3 + createsprite gUnknown_085970E8, 0x2, 0, 2 + createsprite gUnknown_085970E8, 0x2, 0, 3 delay 0x8 - createsprite 0x85970E8, 0x2, 0, 0 - createsprite 0x85970E8, 0x2, 0, 1 + createsprite gUnknown_085970E8, 0x2, 0, 0 + createsprite gUnknown_085970E8, 0x2, 0, 1 delay 0x8 - createsprite 0x85970E8, 0x2, 0, 2 - createsprite 0x85970E8, 0x2, 0, 3 + createsprite gUnknown_085970E8, 0x2, 0, 2 + createsprite gUnknown_085970E8, 0x2, 0, 3 waitforvisualfinish end @@ -4261,7 +4261,7 @@ Move_AIR_CUTTER: createvisualtask sub_8103CF0, 0x2, 32, -24, 1536, 2, 128 waitforvisualfinish playsewithpan SE_W015, +63 - createsprite 0x8592A34, 0x2, 40, -32, 0, 2 + createsprite gUnknown_08592A34, 0x2, 40, -32, 0, 2 delay 0x5 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 createvisualtask sub_80D52D0, 0x2, 3, 2, 0, 8, 1 @@ -4275,64 +4275,64 @@ Move_ODOR_SLEUTH: monbg ANIM_TARGET createvisualtask sub_815F620, 0x5 delay 0x18 - createsprite 0x857FE28, 0x2, 3, 4 + createsprite gUnknown_0857FE28, 0x2, 3, 4 playsewithpan SE_W207, -64 delay 0x6 - createsprite 0x857FE28, 0x2, 3, 4 + createsprite gUnknown_0857FE28, 0x2, 3, 4 playsewithpan SE_W207, -64 waitforvisualfinish clearmonbg ANIM_TARGET delay 0x1 - createsprite 0x859728C, 0x2, 1, 3, 1, -1, 16, -1, 0 + createsprite gUnknown_0859728C, 0x2, 1, 3, 1, -1, 16, -1, 0 playsewithpan SE_W043, -64 end Move_GRASS_WHISTLE: loadspritegfx 0x2758 - createsprite 0x8597274, 0x2, 1, 2, 0, 4, 13298 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 13298 waitforvisualfinish createvisualtask sub_8102BE8, 0x2 waitforvisualfinish panse_1B SE_W320, -64, +63, +2, 0x0 - createsprite 0x8593008, 0x82, 7, 1, 0 + createsprite gUnknown_08593008, 0x82, 7, 1, 0 delay 0x5 - createsprite 0x8593008, 0x82, 6, 1, 0 + createsprite gUnknown_08593008, 0x82, 6, 1, 0 delay 0x5 - createsprite 0x8593008, 0x82, 1, 1, 0 + createsprite gUnknown_08593008, 0x82, 1, 1, 0 delay 0x5 - createsprite 0x8593008, 0x82, 2, 1, 0 + createsprite gUnknown_08593008, 0x82, 2, 1, 0 delay 0x5 - createsprite 0x8593008, 0x82, 3, 1, 0 + createsprite gUnknown_08593008, 0x82, 3, 1, 0 delay 0x4 - createsprite 0x8593008, 0x82, 2, 1, 0 + createsprite gUnknown_08593008, 0x82, 2, 1, 0 delay 0x4 - createsprite 0x8593008, 0x82, 5, 1, 0 + createsprite gUnknown_08593008, 0x82, 5, 1, 0 delay 0x4 - createsprite 0x8593008, 0x82, 6, 1, 0 + createsprite gUnknown_08593008, 0x82, 6, 1, 0 delay 0x4 - createsprite 0x8593008, 0x82, 2, 1, 0 + createsprite gUnknown_08593008, 0x82, 2, 1, 0 delay 0x4 - createsprite 0x8593008, 0x82, 2, 1, 0 + createsprite gUnknown_08593008, 0x82, 2, 1, 0 delay 0x4 - createsprite 0x8593008, 0x82, 1, 1, 0 + createsprite gUnknown_08593008, 0x82, 1, 1, 0 delay 0x4 - createsprite 0x8593008, 0x82, 5, 1, 0 + createsprite gUnknown_08593008, 0x82, 5, 1, 0 delay 0x4 waitforvisualfinish createvisualtask sub_8102CA0, 0x2 - createsprite 0x8597274, 0x2, 1, 4, 4, 0, 13298 + createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, 13298 waitforvisualfinish end Move_TICKLE: loadspritegfx 0x27EA - createsprite 0x8597274, 0x2, 2, 0, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 2, 0, 0, 16, 0 waitforvisualfinish - createsprite 0x8593A84, 0x0, -16, -8 - createsprite 0x8593A84, 0x0, 16, -8 + createsprite gUnknown_08593A84, 0x0, -16, -8 + createsprite gUnknown_08593A84, 0x0, 16, -8 playsewithpan SE_W197, -64 waitforvisualfinish - createsprite 0x8597274, 0x2, 2, 0, 16, 0, 0 + createsprite gUnknown_08597274, 0x2, 2, 0, 16, 0, 0 waitforvisualfinish delay 0x14 createvisualtask sub_80D5EB8, 0x3, 0, 6, 1280, 3, 0 @@ -4369,8 +4369,8 @@ Move_SHADOW_PUNCH: createvisualtask sub_80A8BC4, 0x2, 0, 13 playsewithpan SE_W026, -64 delay 0x6 - createsprite 0x8597358, 0x83, 0, 0, 1, 1 - createsprite 0x8595E98, 0x84, 0, 0, 8, 1, 0 + createsprite gUnknown_08597358, 0x83, 0, 0, 1, 1 + createsprite gUnknown_08595E98, 0x84, 0, 0, 8, 1, 0 playsewithpan SE_W004, +63 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 waitforvisualfinish @@ -4407,11 +4407,11 @@ Move_AERIAL_ACE: setalpha 0x80C createvisualtask sub_80D5830, 0x2, 0, 24, 6, 1, 5 createvisualtask sub_81169C0, 0x2, 0, 4, 7, 3 - createsprite 0x8592A1C, 0x2, 40, -32, 0 + createsprite gUnknown_08592A1C, 0x2, 40, -32, 0 playsewithpan SE_W013B, -64 delay 0x5 createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 10, 1 - createsprite 0x859728C, 0x2, 31, 3, 1, 0, 10, 0, 0 + createsprite gUnknown_0859728C, 0x2, 31, 3, 1, 0, 10, 0, 0 playsewithpan SE_W013, +63 waitforvisualfinish clearmonbg ANIM_TARGET @@ -4421,13 +4421,13 @@ Move_AERIAL_ACE: Move_IRON_DEFENSE: loopsewithpan SE_REAPOKE, -64, 0x1C, 0x2 createvisualtask sub_81144F8, 0x5, 0, 0, 0 - createsprite 0x859728C, 0x2, 1, 8, 2, -1, 14, -1, 0 + createsprite gUnknown_0859728C, 0x2, 1, 8, 2, -1, 14, -1, 0 waitforvisualfinish end Move_BLOCK: loadspritegfx 0x280A - createsprite 0x85CE90C, 0xC2 + createsprite gUnknown_085CE90C, 0xC2 playsewithpan SE_W207, +63 end @@ -4446,7 +4446,7 @@ Move_BULK_UP: createvisualtask sub_8104AB4, 0x2 playsewithpan SE_W207, -64 waitforvisualfinish - createsprite 0x8593658, 0x2 + createsprite gUnknown_08593658, 0x2 loopsewithpan SE_W207, -64, 0x4, 0x2 waitforvisualfinish end @@ -4455,13 +4455,13 @@ Move_COVET: loadspritegfx 0x27E2 loadspritegfx 0x27F0 createvisualtask sub_815C478, 0x5, 0, 2, 0 - createsprite 0x8593970, 0x3, 0, 20 + createsprite gUnknown_08593970, 0x3, 0, 20 playsewithpan SE_W204, -64 delay 0xF - createsprite 0x8593970, 0x3, -20, 20 + createsprite gUnknown_08593970, 0x3, -20, 20 playsewithpan SE_W204, -64 delay 0xF - createsprite 0x8593970, 0x3, 20, 20 + createsprite gUnknown_08593970, 0x3, 20, 20 playsewithpan SE_W204, -64 waitforvisualfinish createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 @@ -4476,7 +4476,7 @@ Move_VOLT_TACKLE: setalpha 0x80C createvisualtask sub_8116620, 0xA, 1, 0, 0, 8, 0 waitforvisualfinish - createsprite 0x85959A4, 0x1 + createsprite gUnknown_085959A4, 0x1 playsewithpan SE_W268, -64 waitforvisualfinish clearmonbg ANIM_ATTACKER @@ -4499,17 +4499,17 @@ Move_VOLT_TACKLE: delay 0x8 createvisualtask sub_80D52D0, 0x2, 1, 10, 0, 18, 1 playsewithpan SE_W120, +63 - createsprite 0x859598C, 0x2, 1, 16, 16 + createsprite gUnknown_0859598C, 0x2, 1, 16, 16 delay 0x2 - createsprite 0x859598C, 0x2, 1, -16, -16 + createsprite gUnknown_0859598C, 0x2, 1, -16, -16 delay 0x8 createvisualtask sub_810AE5C, 0x5 waitforvisualfinish createvisualtask sub_80D52D0, 0x2, 0, 3, 0, 9, 1 playsewithpan SE_W085B, -64 - createsprite 0x859598C, 0x2, 0, 16, 16 + createsprite gUnknown_0859598C, 0x2, 0, 16, 16 delay 0x2 - createsprite 0x859598C, 0x2, 0, -16, -16 + createsprite gUnknown_0859598C, 0x2, 0, -16, -16 waitforvisualfinish createvisualtask sub_8116620, 0xA, 1, 0, 8, 0, 0 waitforvisualfinish @@ -4535,13 +4535,13 @@ Move_CALM_MIND: waitforvisualfinish createvisualtask sub_81177E4, 0x5, 1 waitforvisualfinish - createsprite 0x8593850, 0x28, 0, 0, 0, 0 + createsprite gUnknown_08593850, 0x28, 0, 0, 0, 0 playsewithpan SE_W048, -64 delay 0xE - createsprite 0x8593850, 0x28, 0, 0, 0, 0 + createsprite gUnknown_08593850, 0x28, 0, 0, 0, 0 playsewithpan SE_W048, -64 delay 0xE - createsprite 0x8593850, 0x28, 0, 0, 0, 0 + createsprite gUnknown_08593850, 0x28, 0, 0, 0, 0 playsewithpan SE_W048, -64 waitforvisualfinish createvisualtask sub_81177E4, 0x5, 0 @@ -4569,7 +4569,7 @@ Move_LEAF_BLADE: setalpha 0x80C delay 0xC createvisualtask sub_80D52D0, 0x2, 1, 8, 0, 18, 1 - createsprite 0x85973D0, 0x82, 0, 0, 1, 36 + createsprite gUnknown_085973D0, 0x82, 0, 0, 1, 36 playsewithpan SE_W043, +63 waitforvisualfinish clearmonbg ANIM_TARGET @@ -4585,12 +4585,12 @@ Move_DRAGON_DANCE: playsewithpan SE_W100, -64 delay 0x8 createvisualtask sub_80A7CB4, 0x5, 10249, 19456, 14, 0, 3 - createsprite 0x8596F98, 0x2, 0 - createsprite 0x8596F98, 0x2, 43 - createsprite 0x8596F98, 0x2, 85 - createsprite 0x8596F98, 0x2, 128 - createsprite 0x8596F98, 0x2, 170 - createsprite 0x8596F98, 0x2, 213 + createsprite gUnknown_08596F98, 0x2, 0 + createsprite gUnknown_08596F98, 0x2, 43 + createsprite gUnknown_08596F98, 0x2, 85 + createsprite gUnknown_08596F98, 0x2, 128 + createsprite gUnknown_08596F98, 0x2, 170 + createsprite gUnknown_08596F98, 0x2, 213 delay 0x1E playsewithpan SE_W100, -64 delay 0x1E @@ -4607,12 +4607,12 @@ Move_SHOCK_WAVE: loadspritegfx 0x2735 monbg ANIM_ATTACKER setalpha 0x80C - createsprite 0x8597274, 0x2, 1, 2, 0, 4, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 0 waitforvisualfinish createvisualtask sub_810AAFC, 0x2, 0, 20, 0, 2 playsewithpan SE_W268, -64 delay 0xC - createsprite 0x8595A18, 0x2 + createsprite gUnknown_08595A18, 0x2 delay 0x1E createvisualtask sub_810B29C, 0x5 delay 0xC @@ -4642,27 +4642,27 @@ Move_BELLY_DRUM: createvisualtask sub_8102BE8, 0x2 waitforvisualfinish call AnimScript_82CF5A6 - createsprite 0x859309C, 0x2, 0, 0, 0, 0 + createsprite gUnknown_0859309C, 0x2, 0, 0, 0, 0 playsewithpan SE_W187, -64 delay 0xF call AnimScript_82CF58B - createsprite 0x859309C, 0x2, 1, 1, 1, 0 + createsprite gUnknown_0859309C, 0x2, 1, 1, 1, 0 playsewithpan SE_W187, -64 delay 0xF call AnimScript_82CF5A6 - createsprite 0x859309C, 0x2, 0, 3, 3, 128 + createsprite gUnknown_0859309C, 0x2, 0, 3, 3, 128 playsewithpan SE_W187, -64 delay 0x7 call AnimScript_82CF58B - createsprite 0x859309C, 0x2, 1, 2, 0, 128 + createsprite gUnknown_0859309C, 0x2, 1, 2, 0, 128 playsewithpan SE_W187, -64 delay 0x7 call AnimScript_82CF5A6 - createsprite 0x859309C, 0x2, 0, 1, 1, 0 + createsprite gUnknown_0859309C, 0x2, 0, 1, 1, 0 playsewithpan SE_W187, -64 delay 0x7 call AnimScript_82CF58B - createsprite 0x859309C, 0x2, 1, 0, 3, 0 + createsprite gUnknown_0859309C, 0x2, 1, 0, 3, 0 playsewithpan SE_W187, -64 waitforvisualfinish createvisualtask sub_8102CA0, 0x2 @@ -4670,12 +4670,12 @@ Move_BELLY_DRUM: end AnimScript_82CF58B: - createsprite 0x8593068, 0x3, 0 + createsprite gUnknown_08593068, 0x3, 0 createvisualtask sub_80D51AC, 0x2, 0, 0, 8, 2, 1 return AnimScript_82CF5A6: - createsprite 0x8593068, 0x3, 1 + createsprite gUnknown_08593068, 0x3, 1 createvisualtask sub_80D51AC, 0x2, 0, 0, 8, 2, 1 return @@ -4685,8 +4685,8 @@ Move_MIND_READER: loadspritegfx 0x27CF monbg ANIM_DEF_PARTNER playsewithpan SE_W109, +63 - createsprite 0x85CE07C, 0x5, 0, 0, 1, 0 - createsprite 0x85CE094, 0x5 + createsprite gUnknown_085CE07C, 0x5, 0, 0, 1, 0 + createsprite gUnknown_085CE094, 0x5 delay 0x28 playsewithpan SE_W043, +63 createvisualtask sub_8115A04, 0x2, 1, 1, 2, 0, 10, 0 @@ -4696,26 +4696,26 @@ Move_MIND_READER: end AnimScript_82CF608: - createsprite 0x85CE0AC, 0x4, 70, 0, 6 - createsprite 0x85CE0AC, 0x4, 40, 40, 6 - createsprite 0x85CE0AC, 0x4, 10, -60, 6 - createsprite 0x85CE0AC, 0x4, -50, -40, 6 - createsprite 0x85CE0AC, 0x4, -40, 40, 6 - createsprite 0x85CE0AC, 0x4, 50, -50, 6 + createsprite gUnknown_085CE0AC, 0x4, 70, 0, 6 + createsprite gUnknown_085CE0AC, 0x4, 40, 40, 6 + createsprite gUnknown_085CE0AC, 0x4, 10, -60, 6 + createsprite gUnknown_085CE0AC, 0x4, -50, -40, 6 + createsprite gUnknown_085CE0AC, 0x4, -40, 40, 6 + createsprite gUnknown_085CE0AC, 0x4, 50, -50, 6 delay 0x2 - createsprite 0x85CE0AC, 0x4, 50, -30, 6 - createsprite 0x85CE0AC, 0x4, 60, 10, 6 - createsprite 0x85CE0AC, 0x4, 0, 60, 6 - createsprite 0x85CE0AC, 0x4, 0, -40, 6 - createsprite 0x85CE0AC, 0x4, -60, 20, 6 - createsprite 0x85CE0AC, 0x4, -60, -30, 6 + createsprite gUnknown_085CE0AC, 0x4, 50, -30, 6 + createsprite gUnknown_085CE0AC, 0x4, 60, 10, 6 + createsprite gUnknown_085CE0AC, 0x4, 0, 60, 6 + createsprite gUnknown_085CE0AC, 0x4, 0, -40, 6 + createsprite gUnknown_085CE0AC, 0x4, -60, 20, 6 + createsprite gUnknown_085CE0AC, 0x4, -60, -30, 6 delay 0x2 - createsprite 0x85CE0AC, 0x4, -50, 50, 6 - createsprite 0x85CE0AC, 0x4, -60, 20, 6 - createsprite 0x85CE0AC, 0x4, -40, -40, 6 - createsprite 0x85CE0AC, 0x4, 20, -60, 6 - createsprite 0x85CE0AC, 0x4, 50, -50, 6 - createsprite 0x85CE0AC, 0x4, 35, 40, 6 + createsprite gUnknown_085CE0AC, 0x4, -50, 50, 6 + createsprite gUnknown_085CE0AC, 0x4, -60, 20, 6 + createsprite gUnknown_085CE0AC, 0x4, -40, -40, 6 + createsprite gUnknown_085CE0AC, 0x4, 20, -60, 6 + createsprite gUnknown_085CE0AC, 0x4, 50, -50, 6 + createsprite gUnknown_085CE0AC, 0x4, 35, 40, 6 delay 0x2 return @@ -4725,22 +4725,22 @@ Move_ICE_PUNCH: loadspritegfx 0x279D loadspritegfx 0x2797 loadspritegfx 0x279F - createsprite 0x8597274, 0x2, 1, 1, 0, 7, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 7, 0 createvisualtask sub_8116620, 0xA, 4, 2, 0, 9, 32588 delay 0x14 playsewithpan SE_W081, +63 - createsprite 0x8595AE8, 0x2, 0 - createsprite 0x8595AE8, 0x2, 64 - createsprite 0x8595AE8, 0x2, 128 - createsprite 0x8595AE8, 0x2, 192 + createsprite gUnknown_08595AE8, 0x2, 0 + createsprite gUnknown_08595AE8, 0x2, 64 + createsprite gUnknown_08595AE8, 0x2, 128 + createsprite gUnknown_08595AE8, 0x2, 192 delay 0x5 - createsprite 0x8595AD0, 0x2, 32 - createsprite 0x8595AD0, 0x2, 96 - createsprite 0x8595AD0, 0x2, 160 - createsprite 0x8595AD0, 0x2, 224 + createsprite gUnknown_08595AD0, 0x2, 32 + createsprite gUnknown_08595AD0, 0x2, 96 + createsprite gUnknown_08595AD0, 0x2, 160 + createsprite gUnknown_08595AD0, 0x2, 224 delay 0x11 - createsprite 0x8595E98, 0x4, 0, -10, 8, 1, 0 - createsprite 0x8597358, 0x3, 0, -10, 1, 1 + createsprite gUnknown_08595E98, 0x4, 0, -10, 8, 1, 0 + createsprite gUnknown_08597358, 0x3, 0, -10, 1, 1 playsewithpan SE_W004, +63 delay 0x2 createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 3, 1 @@ -4750,7 +4750,7 @@ Move_ICE_PUNCH: delay 0x5 createvisualtask sub_8116620, 0xA, 4, 2, 9, 0, 32588 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 0, 7, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 0, 7, 0, 0 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -4759,11 +4759,11 @@ Move_ICE_PUNCH: Move_REST: playsewithpan SE_W173, -64 loadspritegfx 0x27F4 - createsprite 0x8592C88, 0x2, 4, -10, 16, 0, 0 + createsprite gUnknown_08592C88, 0x2, 4, -10, 16, 0, 0 delay 0x14 - createsprite 0x8592C88, 0x2, 4, -10, 16, 0, 0 + createsprite gUnknown_08592C88, 0x2, 4, -10, 16, 0, 0 delay 0x14 - createsprite 0x8592C88, 0x2, 4, -10, 16, 0, 0 + createsprite gUnknown_08592C88, 0x2, 4, -10, 16, 0, 0 waitforvisualfinish end @@ -4829,43 +4829,43 @@ Move_THUNDER: waitbgfadeout createvisualtask sub_8117660, 0x5, -256, 0, 1, -1 waitbgfadein - createsprite 0x8597274, 0x2, 1, 2, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 16, 0 delay 0x10 createvisualtask sub_8115F10, 0x2, 257, 257, 257 playsewithpan SE_W086, +63 delay 0x1 - createsprite 0x85956C0, 0x82, 16, -36 + createsprite gUnknown_085956C0, 0x82, 16, -36 delay 0x1 - createsprite 0x85956C0, 0x82, 16, -20 + createsprite gUnknown_085956C0, 0x82, 16, -20 delay 0x1 - createsprite 0x85956C0, 0x82, 16, 12 + createsprite gUnknown_085956C0, 0x82, 16, 12 delay 0x14 - createsprite 0x85956C0, 0x86, -16, -32 + createsprite gUnknown_085956C0, 0x86, -16, -32 playsewithpan SE_W086, +63 delay 0x1 - createsprite 0x85956C0, 0x86, -16, -16 + createsprite gUnknown_085956C0, 0x86, -16, -16 delay 0x1 - createsprite 0x85956C0, 0x86, -16, 16 + createsprite gUnknown_085956C0, 0x86, -16, 16 playsewithpan SE_W086, +63 delay 0x5 createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x1 - createsprite 0x85956C0, 0x82, 24, -32 + createsprite gUnknown_085956C0, 0x82, 24, -32 delay 0x1 - createsprite 0x85956C0, 0x82, 24, -16 + createsprite gUnknown_085956C0, 0x82, 24, -16 delay 0x1 - createsprite 0x85956C0, 0x82, 24, 16 + createsprite gUnknown_085956C0, 0x82, 24, 16 delay 0x1E createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x5 createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x1 - createsprite 0x85956C0, 0x82, 0, -32 + createsprite gUnknown_085956C0, 0x82, 0, -32 playsewithpan SE_W161B, +63 delay 0x1 - createsprite 0x85956C0, 0x82, 0, -16 + createsprite gUnknown_085956C0, 0x82, 0, -16 delay 0x1 - createsprite 0x85956C0, 0x82, 0, 16 + createsprite gUnknown_085956C0, 0x82, 0, 16 delay 0xA createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x1 @@ -4873,7 +4873,7 @@ Move_THUNDER: delay 0x2 createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x1 - createsprite 0x8597274, 0x82, 1, 2, 16, 0, 0 + createsprite gUnknown_08597274, 0x82, 1, 2, 16, 0, 0 waitforvisualfinish restorebg waitbgfadeout @@ -4887,27 +4887,27 @@ Move_THUNDER_PUNCH: loadspritegfx 0x2735 monbg ANIM_TARGET setalpha 0x80C - createsprite 0x8597274, 0x2, 1, 2, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 16, 0 waitforvisualfinish playsewithpan SE_W004, +63 - createsprite 0x8595E98, 0x84, 0, 0, 8, 1, 0 - createsprite 0x8597358, 0x83, 0, 0, 1, 1 + createsprite gUnknown_08595E98, 0x84, 0, 0, 8, 1, 0 + createsprite gUnknown_08597358, 0x83, 0, 0, 1, 1 delay 0x1 createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x1 - createsprite 0x85956C0, 0x82, 0, -48 + createsprite gUnknown_085956C0, 0x82, 0, -48 delay 0x1 - createsprite 0x85956C0, 0x2, 0, -16 + createsprite gUnknown_085956C0, 0x2, 0, -16 delay 0x1 - createsprite 0x85956C0, 0x2, 0, 16 + createsprite gUnknown_085956C0, 0x2, 0, 16 delay 0x1 playsewithpan SE_W161B, +63 createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x2 createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 15, 1 - createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 2 delay 0x1 - createsprite 0x8597274, 0x2, 1, 2, 16, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, 0 delay 0x14 waitforvisualfinish clearmonbg ANIM_TARGET @@ -4918,34 +4918,34 @@ Move_SACRED_FIRE: loadspritegfx 0x2731 loadspritegfx 0x2733 loopsewithpan SE_W221, -64, 0x7, 0x5 - createsprite 0x8595428, 0x2, -32, 0, 50, 5, -2, 0 + createsprite gUnknown_08595428, 0x2, -32, 0, 50, 5, -2, 0 delay 0x1 - createsprite 0x8595428, 0x42, -20, -10, 50, 5, -1, -1 + createsprite gUnknown_08595428, 0x42, -20, -10, 50, 5, -1, -1 delay 0x1 - createsprite 0x8595428, 0x42, 0, -16, 50, 5, 0, -1 + createsprite gUnknown_08595428, 0x42, 0, -16, 50, 5, 0, -1 delay 0x1 - createsprite 0x8595428, 0x42, 20, -10, 50, 5, 1, -1 + createsprite gUnknown_08595428, 0x42, 20, -10, 50, 5, 1, -1 delay 0x1 - createsprite 0x8595428, 0x2, 32, 0, 50, 5, 2, 0 + createsprite gUnknown_08595428, 0x2, 32, 0, 50, 5, 2, 0 delay 0x1 - createsprite 0x8595428, 0x2, 20, 10, 50, 5, 1, 1 + createsprite gUnknown_08595428, 0x2, 20, 10, 50, 5, 1, 1 delay 0x1 createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x1 - createsprite 0x8595428, 0x2, 0, 16, 50, 5, 0, 1 + createsprite gUnknown_08595428, 0x2, 0, 16, 50, 5, 0, 1 delay 0x1 - createsprite 0x8595428, 0x2, -20, 10, 50, 5, -1, 1 + createsprite gUnknown_08595428, 0x2, -20, 10, 50, 5, -1, 1 createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x1 waitforvisualfinish playsewithpan SE_W221B, +63 - createsprite 0x85953F8, 0x82, -16, 0, 70, 16, 0, 1 + createsprite gUnknown_085953F8, 0x82, -16, 0, 70, 16, 0, 1 delay 0xA playsewithpan SE_W221B, +63 - createsprite 0x85953F8, 0x82, 0, 0, 70, 16, 0, 1 + createsprite gUnknown_085953F8, 0x82, 0, 0, 70, 16, 0, 1 delay 0xA playsewithpan SE_W221B, +63 - createsprite 0x85953F8, 0x82, 16, 0, 80, 16, 0, 1 + createsprite gUnknown_085953F8, 0x82, 16, 0, 80, 16, 0, 1 delay 0x1 createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x1 @@ -4953,21 +4953,21 @@ Move_SACRED_FIRE: createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x1 playsewithpan SE_W172B, +63 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, 0 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, -1, 0 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, 0, 1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, 0, 1 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, -1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, -1, -1 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, 2, 1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, 2, 1 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, 1, -1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, 1, -1 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, 1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, -1, 1 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, 1, -2 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, 1, -2 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, 3, 1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, 3, 1 waitforvisualfinish end @@ -4976,7 +4976,7 @@ Move_SCRATCH: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W010, +63 - createsprite 0x85CE020, 0x2, 0, 0, 1, 0 + createsprite gUnknown_085CE020, 0x2, 0, 0, 1, 0 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -4989,29 +4989,29 @@ Move_DRAGON_BREATH: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET loopsewithpan SE_W172, -64, 0x7, 0x7 - createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + createsprite gUnknown_08596EF4, 0x82, 0, 0, 0, 0, 20 delay 0x2 - createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + createsprite gUnknown_08596EF4, 0x82, 0, 0, 0, 0, 20 delay 0x2 createvisualtask sub_8116620, 0xA, 4, 1, 0, 9, 31 - createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + createsprite gUnknown_08596EF4, 0x82, 0, 0, 0, 0, 20 delay 0x2 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 21, 1 - createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + createsprite gUnknown_08596EF4, 0x82, 0, 0, 0, 0, 20 delay 0x2 - createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + createsprite gUnknown_08596EF4, 0x82, 0, 0, 0, 0, 20 delay 0x2 - createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + createsprite gUnknown_08596EF4, 0x82, 0, 0, 0, 0, 20 delay 0x2 - createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + createsprite gUnknown_08596EF4, 0x82, 0, 0, 0, 0, 20 delay 0x2 - createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + createsprite gUnknown_08596EF4, 0x82, 0, 0, 0, 0, 20 delay 0x2 - createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + createsprite gUnknown_08596EF4, 0x82, 0, 0, 0, 0, 20 delay 0x2 - createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + createsprite gUnknown_08596EF4, 0x82, 0, 0, 0, 0, 20 delay 0x2 - createsprite 0x8596EF4, 0x82, 0, 0, 0, 0, 20 + createsprite gUnknown_08596EF4, 0x82, 0, 0, 0, 0, 20 waitforvisualfinish createvisualtask sub_8116620, 0xA, 4, 1, 9, 0, 31 waitforvisualfinish @@ -5037,13 +5037,13 @@ Move_ROAR: end AnimScript_82CFECB: - createsprite 0x85CE7D4, 0x2, 24, -8, 0 - createsprite 0x85CE7D4, 0x2, 24, 0, 2 - createsprite 0x85CE7D4, 0x2, 24, 8, 1 + createsprite gUnknown_085CE7D4, 0x2, 24, -8, 0 + createsprite gUnknown_085CE7D4, 0x2, 24, 0, 2 + createsprite gUnknown_085CE7D4, 0x2, 24, 8, 1 delay 0xF - createsprite 0x85CE7D4, 0x2, 24, -8, 0 - createsprite 0x85CE7D4, 0x2, 24, 0, 2 - createsprite 0x85CE7D4, 0x2, 24, 8, 1 + createsprite gUnknown_085CE7D4, 0x2, 24, -8, 0 + createsprite gUnknown_085CE7D4, 0x2, 24, 0, 2 + createsprite gUnknown_085CE7D4, 0x2, 24, 8, 1 return Move_GROWL: @@ -5074,10 +5074,10 @@ AnimScript_82CFF76: playsewithpan SE_W173, -64 createvisualtask sub_80D6064, 0x5, -7, -7, 7, 0, 1 createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 7, 1 - createsprite 0x85972D8, 0x2, 6, 1, 14, 0, 0 - createsprite 0x85936EC, 0x2, 0, 0, -42, -38, 24, 0, 0 - createsprite 0x85936EC, 0x2, 0, 0, 0, -42, 24, 0, 0 - createsprite 0x85936EC, 0x2, 0, 0, 42, -38, 24, 0, 0 + createsprite gUnknown_085972D8, 0x2, 6, 1, 14, 0, 0 + createsprite gUnknown_085936EC, 0x2, 0, 0, -42, -38, 24, 0, 0 + createsprite gUnknown_085936EC, 0x2, 0, 0, 0, -42, 24, 0, 0 + createsprite gUnknown_085936EC, 0x2, 0, 0, 42, -38, 24, 0, 0 return Move_LIGHT_SCREEN: @@ -5085,7 +5085,7 @@ Move_LIGHT_SCREEN: loadspritegfx 0x27B6 setalpha 0x1000 waitplaysewithpan SE_W115, -64, 0xF - createsprite 0x8596560, 0x1, 40, 0, 10166 + createsprite gUnknown_08596560, 0x1, 40, 0, 10166 delay 0xA call AnimScript_82D0014 waitforvisualfinish @@ -5094,24 +5094,24 @@ Move_LIGHT_SCREEN: end AnimScript_82D0014: - createsprite 0x8596624, 0x2, 23, 0, 0, 1 + createsprite gUnknown_08596624, 0x2, 23, 0, 0, 1 delay 0x6 - createsprite 0x8596624, 0x2, 31, -8, 0, 1 + createsprite gUnknown_08596624, 0x2, 31, -8, 0, 1 delay 0x5 - createsprite 0x8596624, 0x2, 30, 20, 0, 1 + createsprite gUnknown_08596624, 0x2, 30, 20, 0, 1 delay 0x7 - createsprite 0x8596624, 0x2, 10, -15, 0, 1 + createsprite gUnknown_08596624, 0x2, 10, -15, 0, 1 delay 0x6 - createsprite 0x8596624, 0x2, 20, 10, 0, 1 + createsprite gUnknown_08596624, 0x2, 20, 10, 0, 1 delay 0x6 - createsprite 0x8596624, 0x2, 10, 18, 0, 1 + createsprite gUnknown_08596624, 0x2, 10, 18, 0, 1 return Move_MIRROR_COAT: loadspritegfx 0x2756 loadspritegfx 0x27B8 setalpha 0x1000 - createsprite 0x8596590, 0x1, 40, 0, 10168 + createsprite gUnknown_08596590, 0x1, 40, 0, 10168 delay 0xA playsewithpan SE_W115, -64 call AnimScript_82D0014 @@ -5125,13 +5125,13 @@ Move_REFLECT: loadspritegfx 0x27B7 setalpha 0x1000 waitplaysewithpan SE_W115, -64, 0xF - createsprite 0x8596578, 0x1, 40, 0, 10167 + createsprite gUnknown_08596578, 0x1, 40, 0, 10167 delay 0x14 - createsprite 0x85965F4, 0x2, 30, 0, 0, 1 + createsprite gUnknown_085965F4, 0x2, 30, 0, 0, 1 delay 0x7 - createsprite 0x85965F4, 0x2, 19, -12, 0, 1 + createsprite gUnknown_085965F4, 0x2, 19, -12, 0, 1 delay 0x7 - createsprite 0x85965F4, 0x2, 10, 20, 0, 1 + createsprite gUnknown_085965F4, 0x2, 10, 20, 0, 1 waitforvisualfinish delay 0x1 blendoff @@ -5141,7 +5141,7 @@ Move_BARRIER: loadspritegfx 0x27B9 setalpha 0x1000 waitplaysewithpan SE_W112, -64, 0xF - createsprite 0x85965A8, 0x3, 40, 0, 10169 + createsprite gUnknown_085965A8, 0x3, 40, 0, 10169 waitforvisualfinish delay 0x1 blendoff @@ -5153,27 +5153,27 @@ Move_BUBBLE: monbg ANIM_TARGET setalpha 0x80C delay 0x1 - createsprite 0x8595068, 0x2, 18, 0, 15, -15, 10, 128, 100 + createsprite gUnknown_08595068, 0x2, 18, 0, 15, -15, 10, 128, 100 playsewithpan SE_W145, -64 waitplaysewithpan SE_W145B, +63, 0x64 delay 0x6 - createsprite 0x8595068, 0x2, 18, 0, 35, 37, 40, 128, 100 + createsprite gUnknown_08595068, 0x2, 18, 0, 35, 37, 40, 128, 100 playsewithpan SE_W145, -64 waitplaysewithpan SE_W145B, +63, 0x64 delay 0x6 - createsprite 0x8595068, 0x2, 18, 0, 10, -37, 30, 128, 100 + createsprite gUnknown_08595068, 0x2, 18, 0, 10, -37, 30, 128, 100 playsewithpan SE_W145, -64 waitplaysewithpan SE_W145B, +63, 0x64 delay 0x6 - createsprite 0x8595068, 0x2, 18, 0, 30, 10, 15, 128, 100 + createsprite gUnknown_08595068, 0x2, 18, 0, 30, 10, 15, 128, 100 playsewithpan SE_W145, -64 waitplaysewithpan SE_W145B, +63, 0x64 delay 0x6 - createsprite 0x8595068, 0x2, 18, 0, 20, 33, 20, 128, 100 + createsprite gUnknown_08595068, 0x2, 18, 0, 20, 33, 20, 128, 100 playsewithpan SE_W145, -64 waitplaysewithpan SE_W145B, +63, 0x64 delay 0x6 - createsprite 0x8595068, 0x2, 18, 0, 25, -30, 10, 128, 100 + createsprite gUnknown_08595068, 0x2, 18, 0, 25, -30, 10, 128, 100 playsewithpan SE_W145, -64 waitplaysewithpan SE_W145B, +63, 0x64 waitforvisualfinish @@ -5207,7 +5207,7 @@ Move_SMOG: end AnimScript_82D024A: - createsprite 0x8595C44, 0x2, 0, -24, 48, 240, 1, 0 + createsprite gUnknown_08595C44, 0x2, 0, -24, 48, 240, 1, 0 delay 0x7 return @@ -5229,7 +5229,7 @@ Move_FAINT_ATTACK: monbg ANIM_TARGET delay 0x1 playsewithpan SE_W233B, +63 - createsprite 0x8597358, 0x2, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 1 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 9, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -5253,9 +5253,9 @@ Move_SAND_ATTACK: monbgprio_28 ANIM_ATTACKER setalpha 0x80C playsewithpan SE_W028, -64 - createsprite 0x857FE70, 0x2, 0, -10, 0, 0, 3 + createsprite gUnknown_0857FE70, 0x2, 0, -10, 0, 0, 3 waitforvisualfinish - createsprite 0x857FE58, 0x2, 0, 0, 2 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 2 call AnimScript_82D0337 call AnimScript_82D0337 call AnimScript_82D0337 @@ -5268,20 +5268,20 @@ Move_SAND_ATTACK: end AnimScript_82D0337: - createsprite 0x85971A8, 0x82, 15, 15, 20, 0, 0 - createsprite 0x85971A8, 0x82, 15, 15, 20, 10, 10 - createsprite 0x85971A8, 0x82, 15, 15, 20, -10, -10 - createsprite 0x85971A8, 0x82, 15, 15, 20, 20, 5 - createsprite 0x85971A8, 0x82, 15, 15, 20, -20, -5 + createsprite gUnknown_085971A8, 0x82, 15, 15, 20, 0, 0 + createsprite gUnknown_085971A8, 0x82, 15, 15, 20, 10, 10 + createsprite gUnknown_085971A8, 0x82, 15, 15, 20, -10, -10 + createsprite gUnknown_085971A8, 0x82, 15, 15, 20, 20, 5 + createsprite gUnknown_085971A8, 0x82, 15, 15, 20, -20, -5 delay 0x2 return Move_MUD_SLAP: loadspritegfx 0x275A playsewithpan SE_W028, -64 - createsprite 0x857FE70, 0x2, 0, -10, 0, 0, 3 + createsprite gUnknown_0857FE70, 0x2, 0, -10, 0, 0, 3 waitforvisualfinish - createsprite 0x857FE58, 0x2, 0, 0, 2 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 2 call AnimScript_82D03D5 call AnimScript_82D03D5 call AnimScript_82D03D5 @@ -5292,11 +5292,11 @@ Move_MUD_SLAP: end AnimScript_82D03D5: - createsprite 0x85971CC, 0x82, 15, 15, 20, 0, 0 - createsprite 0x85971CC, 0x82, 15, 15, 20, 10, 5 - createsprite 0x85971CC, 0x82, 15, 15, 20, -10, -5 - createsprite 0x85971CC, 0x82, 15, 15, 20, 20, 10 - createsprite 0x85971CC, 0x82, 15, 15, 20, -20, -10 + createsprite gUnknown_085971CC, 0x82, 15, 15, 20, 0, 0 + createsprite gUnknown_085971CC, 0x82, 15, 15, 20, 10, 5 + createsprite gUnknown_085971CC, 0x82, 15, 15, 20, -10, -5 + createsprite gUnknown_085971CC, 0x82, 15, 15, 20, 20, 10 + createsprite gUnknown_085971CC, 0x82, 15, 15, 20, -20, -10 delay 0x2 return @@ -5306,29 +5306,29 @@ Move_DRAGON_RAGE: playsewithpan SE_W082, -64 createvisualtask sub_80D51AC, 0x5, 0, 0, 2, 40, 1 waitforvisualfinish - createsprite 0x857FE70, 0x82, 0, 15, 0, 0, 4 + createsprite gUnknown_0857FE70, 0x82, 0, 15, 0, 0, 4 waitforvisualfinish - createsprite 0x8596F80, 0x82, 30, 15, 0, 10, 10 + createsprite gUnknown_08596F80, 0x82, 30, 15, 0, 10, 10 waitforvisualfinish loopsewithpan SE_W172B, +63, 0xB, 0x3 createvisualtask sub_80D51AC, 0x5, 1, 0, 3, 25, 1 - createsprite 0x8596F28, 0xC2, 1, 5, 0 + createsprite gUnknown_08596F28, 0xC2, 1, 5, 0 delay 0x1 - createsprite 0x8596F28, 0xC2, 1, -10, -15 + createsprite gUnknown_08596F28, 0xC2, 1, -10, -15 delay 0x1 - createsprite 0x8596F28, 0x82, 1, 0, 25 + createsprite gUnknown_08596F28, 0x82, 1, 0, 25 delay 0x1 - createsprite 0x8596F28, 0xC2, 1, 15, 5 + createsprite gUnknown_08596F28, 0xC2, 1, 15, 5 delay 0x1 - createsprite 0x8596F28, 0xC2, 1, -25, 0 + createsprite gUnknown_08596F28, 0xC2, 1, -25, 0 delay 0x1 - createsprite 0x8596F28, 0x82, 1, 30, 30 + createsprite gUnknown_08596F28, 0x82, 1, 30, 30 delay 0x1 - createsprite 0x8596F28, 0x82, 1, -27, 25 + createsprite gUnknown_08596F28, 0x82, 1, -27, 25 delay 0x1 - createsprite 0x8596F28, 0xC2, 1, 0, 8 + createsprite gUnknown_08596F28, 0xC2, 1, 0, 8 waitforvisualfinish - createsprite 0x857FE58, 0xC2, 0, 0, 4 + createsprite gUnknown_0857FE58, 0xC2, 0, 0, 4 waitforvisualfinish end @@ -5352,10 +5352,10 @@ Move_BITE: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W044, +63 - createsprite 0x8597080, 0x2, 0, -32, 0, 0, 819, 10 - createsprite 0x8597080, 0x2, 0, 32, 4, 0, -819, 10 + createsprite gUnknown_08597080, 0x2, 0, -32, 0, 0, 819, 10 + createsprite gUnknown_08597080, 0x2, 0, 32, 4, 0, -819, 10 delay 0xA - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x5, 1, 0, 4, 7, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -5371,17 +5371,17 @@ Move_CRUNCH: waitbgfadein setalpha 0x80C playsewithpan SE_W044, +63 - createsprite 0x8597080, 0x2, -32, -32, 1, 819, 819, 10 - createsprite 0x8597080, 0x2, 32, 32, 5, -819, -819, 10 + createsprite gUnknown_08597080, 0x2, -32, -32, 1, 819, 819, 10 + createsprite gUnknown_08597080, 0x2, 32, 32, 5, -819, -819, 10 delay 0xA - createsprite 0x8597358, 0x2, -8, 0, 1, 1 + createsprite gUnknown_08597358, 0x2, -8, 0, 1, 1 createvisualtask sub_80D51AC, 0x5, 1, 0, 7, 5, 2 waitforvisualfinish playsewithpan SE_W044, +63 - createsprite 0x8597080, 0x2, 32, -32, 7, -819, 819, 10 - createsprite 0x8597080, 0x2, -32, 32, 3, 819, -819, 10 + createsprite gUnknown_08597080, 0x2, 32, -32, 7, -819, 819, 10 + createsprite gUnknown_08597080, 0x2, -32, 32, 3, 819, -819, 10 delay 0xA - createsprite 0x8597358, 0x2, 8, 0, 1, 1 + createsprite gUnknown_08597358, 0x2, 8, 0, 1, 1 createvisualtask sub_80D51AC, 0x5, 1, 0, 8, 4, 2 waitforvisualfinish clearmonbg ANIM_TARGET @@ -5397,10 +5397,10 @@ Move_CLAMP: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W011, +63 - createsprite 0x8597098, 0x2, -32, 0, 2, 819, 0, 10 - createsprite 0x8597098, 0x2, 32, 0, 6, -819, 0, 10 + createsprite gUnknown_08597098, 0x2, -32, 0, 2, 819, 0, 10 + createsprite gUnknown_08597098, 0x2, 32, 0, 6, -819, 0, 10 delay 0xA - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 5, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -5413,16 +5413,16 @@ Move_ICE_BEAM: monbgprio_28 ANIM_TARGET setalpha 0x80C loadspritegfx 0x279D - createsprite 0x8597274, 0x2, 1, 1, 0, 7, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 7, 0 waitforvisualfinish createsoundtask sub_8158C58, 183, -64, 63, 4, 4, 0, 10 - createsprite 0x8595B2C, 0x2, 20, 12, 0, 12, 20 - createsprite 0x8595B2C, 0x2, 20, -12, 0, -12, 20 + createsprite gUnknown_08595B2C, 0x2, 20, 12, 0, 12, 20 + createsprite gUnknown_08595B2C, 0x2, 20, -12, 0, -12, 20 delay 0x1 call AnimScript_82D07C1 call AnimScript_82D07C1 call AnimScript_82D07C1 - createsprite 0x8597274, 0x2, 4, -31, 0, 7, 32384 + createsprite gUnknown_08597274, 0x2, 4, -31, 0, 7, 32384 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 25, 1 call AnimScript_82D07C1 call AnimScript_82D07C1 @@ -5432,24 +5432,24 @@ Move_ICE_BEAM: call AnimScript_82D07C1 call AnimScript_82D07C1 call AnimScript_82D07C1 - createsprite 0x8595B14, 0x2, 20, 0, 0, 0, 11 + createsprite gUnknown_08595B14, 0x2, 20, 0, 0, 0, 11 delay 0x1 - createsprite 0x8595B14, 0x2, 20, 0, 0, 0, 11 + createsprite gUnknown_08595B14, 0x2, 20, 0, 0, 0, 11 waitforvisualfinish delay 0x14 call AnimScript_82D7720 - createsprite 0x8597274, 0x2, 4, 5, 7, 0, 32384 + createsprite gUnknown_08597274, 0x2, 4, 5, 7, 0, 32384 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 0, 7, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 0, 7, 0, 0 waitforvisualfinish clearmonbg ANIM_TARGET blendoff end AnimScript_82D07C1: - createsprite 0x8595B2C, 0x2, 20, 12, 0, 12, 20 - createsprite 0x8595B2C, 0x2, 20, -12, 0, -12, 20 - createsprite 0x8595B14, 0x2, 20, 0, 0, 0, 11 + createsprite gUnknown_08595B2C, 0x2, 20, 12, 0, 12, 20 + createsprite gUnknown_08595B2C, 0x2, 20, -12, 0, -12, 20 + createsprite gUnknown_08595B14, 0x2, 20, 0, 0, 0, 11 delay 0x1 return @@ -5486,13 +5486,13 @@ Move_AURORA_BEAM: end AnimScript_82D088B: - createsprite 0x85950B4, 0x82, 20, 0, 0, 0, 17 + createsprite gUnknown_085950B4, 0x82, 20, 0, 0, 0, 17 delay 0x1 - createsprite 0x85950B4, 0x82, 20, 0, 0, 0, 17 + createsprite gUnknown_085950B4, 0x82, 20, 0, 0, 0, 17 delay 0x1 - createsprite 0x85950B4, 0x82, 20, 0, 0, 0, 17 + createsprite gUnknown_085950B4, 0x82, 20, 0, 0, 0, 17 delay 0x1 - createsprite 0x85950B4, 0x82, 20, 0, 0, 0, 17 + createsprite gUnknown_085950B4, 0x82, 20, 0, 0, 0, 17 delay 0x1 return @@ -5516,33 +5516,33 @@ AnimScript_82D08E6: goto AnimScript_82D08E4 AnimScript_82D0910: - createsprite 0x85921E0, 0x2, 40, 40, 16 + createsprite gUnknown_085921E0, 0x2, 40, 40, 16 delay 0x2 - createsprite 0x85921E0, 0x2, -40, -40, 16 + createsprite gUnknown_085921E0, 0x2, -40, -40, 16 delay 0x2 - createsprite 0x85921E0, 0x2, 0, 40, 16 + createsprite gUnknown_085921E0, 0x2, 0, 40, 16 delay 0x2 - createsprite 0x85921E0, 0x2, 0, -40, 16 + createsprite gUnknown_085921E0, 0x2, 0, -40, 16 delay 0x2 - createsprite 0x85921E0, 0x2, 40, -20, 16 + createsprite gUnknown_085921E0, 0x2, 40, -20, 16 delay 0x2 - createsprite 0x85921E0, 0x2, 40, 20, 16 + createsprite gUnknown_085921E0, 0x2, 40, 20, 16 delay 0x2 - createsprite 0x85921E0, 0x2, -40, -20, 16 + createsprite gUnknown_085921E0, 0x2, -40, -20, 16 delay 0x2 - createsprite 0x85921E0, 0x2, -40, 20, 16 + createsprite gUnknown_085921E0, 0x2, -40, 20, 16 delay 0x2 - createsprite 0x85921E0, 0x2, -20, 30, 16 + createsprite gUnknown_085921E0, 0x2, -20, 30, 16 delay 0x2 - createsprite 0x85921E0, 0x2, 20, -30, 16 + createsprite gUnknown_085921E0, 0x2, 20, -30, 16 delay 0x2 - createsprite 0x85921E0, 0x2, -20, -30, 16 + createsprite gUnknown_085921E0, 0x2, -20, -30, 16 delay 0x2 - createsprite 0x85921E0, 0x2, 20, 30, 16 + createsprite gUnknown_085921E0, 0x2, 20, 30, 16 delay 0x2 - createsprite 0x85921E0, 0x2, -40, 0, 16 + createsprite gUnknown_085921E0, 0x2, -40, 0, 16 delay 0x2 - createsprite 0x85921E0, 0x2, 40, 0, 16 + createsprite gUnknown_085921E0, 0x2, 40, 0, 16 delay 0x2 return @@ -5550,21 +5550,21 @@ AnimScript_82D09E3: call AnimScript_82D7D1D panse_1B SE_W076, -64, +63, +2, 0x0 createvisualtask sub_80FEA58, 0x5 - createsprite 0x85921F8, 0x83, 15, 0, 20, 0 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 0 delay 0x4 - createsprite 0x85921F8, 0x83, 15, 0, 20, 1 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 1 delay 0x4 createvisualtask sub_8116620, 0xA, 4, 1, 0, 10, 1017 - createsprite 0x85921F8, 0x83, 15, 0, 20, 2 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 2 delay 0x4 createvisualtask sub_80D52D0, 0x5, 1, 2, 0, 65, 1 - createsprite 0x85921F8, 0x83, 15, 0, 20, 3 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 3 delay 0x4 - createsprite 0x85921F8, 0x83, 15, 0, 20, 4 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 4 delay 0x4 - createsprite 0x85921F8, 0x83, 15, 0, 20, 5 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 5 delay 0x4 - createsprite 0x85921F8, 0x83, 15, 0, 20, 6 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 6 delay 0x4 call AnimScript_82D0AB5 call AnimScript_82D0AB5 @@ -5574,19 +5574,19 @@ AnimScript_82D09E3: goto AnimScript_82D08E4 AnimScript_82D0AB5: - createsprite 0x85921F8, 0x83, 15, 0, 20, 0 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 0 delay 0x4 - createsprite 0x85921F8, 0x83, 15, 0, 20, 1 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 1 delay 0x4 - createsprite 0x85921F8, 0x83, 15, 0, 20, 2 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 2 delay 0x4 - createsprite 0x85921F8, 0x83, 15, 0, 20, 3 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 3 delay 0x4 - createsprite 0x85921F8, 0x83, 15, 0, 20, 4 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 4 delay 0x4 - createsprite 0x85921F8, 0x83, 15, 0, 20, 5 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 5 delay 0x4 - createsprite 0x85921F8, 0x83, 15, 0, 20, 6 + createsprite gUnknown_085921F8, 0x83, 15, 0, 20, 6 delay 0x4 return @@ -5618,26 +5618,26 @@ AnimScript_82D0B43: end AnimScript_82D0B7D: - createsprite 0x8595B98, 0x28, 0, -10, 0, -10, 72, 1 - createsprite 0x8595BB0, 0x28, 0, 0, 0, 0, 80, 0, 0, 1 + createsprite gUnknown_08595B98, 0x28, 0, -10, 0, -10, 72, 1 + createsprite gUnknown_08595BB0, 0x28, 0, 0, 0, 0, 80, 0, 0, 1 delay 0x3 - createsprite 0x8595B98, 0x28, 0, -15, 0, -15, 72, 1 - createsprite 0x8595BB0, 0x28, 0, -10, 0, -10, 80, 0, 0, 1 + createsprite gUnknown_08595B98, 0x28, 0, -15, 0, -15, 72, 1 + createsprite gUnknown_08595BB0, 0x28, 0, -10, 0, -10, 80, 0, 0, 1 delay 0x3 - createsprite 0x8595B98, 0x28, 0, -5, 0, -5, 72, 1 - createsprite 0x8595BB0, 0x28, 0, 10, 0, 10, 80, 0, 0, 1 + createsprite gUnknown_08595B98, 0x28, 0, -5, 0, -5, 72, 1 + createsprite gUnknown_08595BB0, 0x28, 0, 10, 0, 10, 80, 0, 0, 1 delay 0x3 - createsprite 0x8595B98, 0x28, 0, -10, 0, -10, 72, 1 - createsprite 0x8595BB0, 0x28, 0, -20, 0, -20, 80, 0, 0, 1 + createsprite gUnknown_08595B98, 0x28, 0, -10, 0, -10, 72, 1 + createsprite gUnknown_08595BB0, 0x28, 0, -20, 0, -20, 80, 0, 0, 1 delay 0x3 - createsprite 0x8595B98, 0x28, 0, -20, 0, -20, 72, 1 - createsprite 0x8595BB0, 0x28, 0, 15, 0, 15, 80, 0, 0, 1 + createsprite gUnknown_08595B98, 0x28, 0, -20, 0, -20, 72, 1 + createsprite gUnknown_08595BB0, 0x28, 0, 15, 0, 15, 80, 0, 0, 1 delay 0x3 - createsprite 0x8595B98, 0x28, 0, -15, 0, -15, 72, 1 - createsprite 0x8595BB0, 0x28, 0, -20, 0, -20, 80, 0, 0, 1 + createsprite gUnknown_08595B98, 0x28, 0, -15, 0, -15, 72, 1 + createsprite gUnknown_08595BB0, 0x28, 0, -20, 0, -20, 80, 0, 0, 1 delay 0x3 - createsprite 0x8595B98, 0x28, 0, -25, 0, -25, 72, 1 - createsprite 0x8595BB0, 0x28, 0, 20, 0, 20, 80, 0, 0, 1 + createsprite gUnknown_08595B98, 0x28, 0, -25, 0, -25, 72, 1 + createsprite gUnknown_08595BB0, 0x28, 0, 20, 0, 20, 80, 0, 0, 1 delay 0x3 return @@ -5648,7 +5648,7 @@ AnimScript_82D0CB2: Move_POWDER_SNOW: loadspritegfx 0x279D monbg ANIM_DEF_PARTNER - createsprite 0x8597274, 0x2, 31, 1, 0, 3, 0 + createsprite gUnknown_08597274, 0x2, 31, 1, 0, 3, 0 waitforvisualfinish panse_1B SE_W016, -64, +63, +2, 0x0 call AnimScript_82D0D03 @@ -5660,23 +5660,23 @@ Move_POWDER_SNOW: waitforvisualfinish clearmonbg ANIM_DEF_PARTNER delay 0x14 - createsprite 0x8597274, 0x2, 31, 1, 3, 0, 0 + createsprite gUnknown_08597274, 0x2, 31, 1, 3, 0, 0 end AnimScript_82D0D03: - createsprite 0x8595BC8, 0x28, 0, 0, 0, 0, 56, 4, 4, 1 + createsprite gUnknown_08595BC8, 0x28, 0, 0, 0, 0, 56, 4, 4, 1 delay 0x3 - createsprite 0x8595BC8, 0x28, 0, -10, 0, -10, 56, 4, 4, 1 + createsprite gUnknown_08595BC8, 0x28, 0, -10, 0, -10, 56, 4, 4, 1 delay 0x3 - createsprite 0x8595BC8, 0x28, 0, 10, 0, 10, 56, -4, 3, 1 + createsprite gUnknown_08595BC8, 0x28, 0, 10, 0, 10, 56, -4, 3, 1 delay 0x3 - createsprite 0x8595BC8, 0x28, 0, -20, 0, -20, 56, -4, 5, 1 + createsprite gUnknown_08595BC8, 0x28, 0, -20, 0, -20, 56, -4, 5, 1 delay 0x3 - createsprite 0x8595BC8, 0x28, 0, 15, 0, 15, 56, 4, 4, 1 + createsprite gUnknown_08595BC8, 0x28, 0, 15, 0, 15, 56, 4, 4, 1 delay 0x3 - createsprite 0x8595BC8, 0x28, 0, -20, 0, -20, 56, 4, 4, 1 + createsprite gUnknown_08595BC8, 0x28, 0, -20, 0, -20, 56, 4, 4, 1 delay 0x3 - createsprite 0x8595BC8, 0x28, 0, 20, 0, 20, 56, 4, 4, 1 + createsprite gUnknown_08595BC8, 0x28, 0, 20, 0, 20, 56, 4, 4, 1 delay 0x3 return @@ -5716,17 +5716,17 @@ Move_HYDRO_PUMP: end AnimScript_82D0E52: - createsprite 0x85950E4, 0x3, 10, 10, 0, 16 - createsprite 0x85950E4, 0x3, 10, 10, 0, -16 + createsprite gUnknown_085950E4, 0x3, 10, 10, 0, 16 + createsprite gUnknown_085950E4, 0x3, 10, 10, 0, -16 delay 0x1 - createsprite 0x85950E4, 0x3, 10, 10, 0, 16 - createsprite 0x85950E4, 0x3, 10, 10, 0, -16 + createsprite gUnknown_085950E4, 0x3, 10, 10, 0, 16 + createsprite gUnknown_085950E4, 0x3, 10, 10, 0, -16 delay 0x1 return AnimScript_82D0E93: - createsprite 0x8597388, 0x4, 0, 15, 1, 1 - createsprite 0x8597388, 0x4, 0, -15, 1, 1 + createsprite gUnknown_08597388, 0x4, 0, 15, 1, 1 + createsprite gUnknown_08597388, 0x4, 0, -15, 1, 1 return Move_SIGNAL_BEAM: @@ -5744,7 +5744,7 @@ Move_SIGNAL_BEAM: call AnimScript_82D0F79 call AnimScript_82D0F79 createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 25, 1 - createsprite 0x859728C, 0x2, 4, 8, 5, 31, 8, 961, 8 + createsprite gUnknown_0859728C, 0x2, 4, 8, 5, 31, 8, 961, 8 call AnimScript_82D0F79 call AnimScript_82D0F79 call AnimScript_82D0F79 @@ -5766,8 +5766,8 @@ Move_SIGNAL_BEAM: end AnimScript_82D0F79: - createsprite 0x8595114, 0x83, 10, 10, 0, 16 - createsprite 0x859512C, 0x83, 10, 10, 0, -16 + createsprite gUnknown_08595114, 0x83, 10, 10, 0, 16 + createsprite gUnknown_0859512C, 0x83, 10, 10, 0, -16 delay 0x1 return @@ -5778,10 +5778,10 @@ Move_ABSORB: monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET setalpha 0x80C - createsprite 0x8597274, 0x2, 1, 1, 0, 4, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 4, 13293 waitforvisualfinish playsewithpan SE_W071, +63 - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 delay 0x2 createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 5, 1 waitforvisualfinish @@ -5791,7 +5791,7 @@ Move_ABSORB: delay 0xF call AnimScript_82D79DF waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 1, 4, 0, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 4, 0, 13293 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -5799,28 +5799,28 @@ Move_ABSORB: AnimScript_82D1009: playsewithpan SE_W152, +63 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 delay 0x4 playsewithpan SE_W152, +63 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 delay 0x4 playsewithpan SE_W152, +63 - createsprite 0x8592270, 0x3, -5, 15, 16, 33 + createsprite gUnknown_08592270, 0x3, -5, 15, 16, 33 delay 0x4 playsewithpan SE_W152, +63 - createsprite 0x8592270, 0x3, 0, -15, -16, 36 + createsprite gUnknown_08592270, 0x3, 0, -15, -16, 36 delay 0x4 playsewithpan SE_W152, +63 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 delay 0x4 playsewithpan SE_W152, +63 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 delay 0x4 playsewithpan SE_W152, +63 - createsprite 0x8592270, 0x3, -10, 20, 20, 39 + createsprite gUnknown_08592270, 0x3, -10, 20, 20, 39 delay 0x4 playsewithpan SE_W152, +63 - createsprite 0x8592270, 0x3, 5, -18, -20, 35 + createsprite gUnknown_08592270, 0x3, 5, -18, -20, 35 delay 0x4 return @@ -5831,10 +5831,10 @@ Move_MEGA_DRAIN: monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET setalpha 0x80C - createsprite 0x8597274, 0x2, 1, 1, 0, 8, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 8, 13293 waitforvisualfinish playsewithpan SE_W071, +63 - createsprite 0x8597358, 0x2, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 1 delay 0x2 createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 5, 1 waitforvisualfinish @@ -5844,7 +5844,7 @@ Move_MEGA_DRAIN: delay 0xF call AnimScript_82D79DF waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 1, 8, 0, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 8, 0, 13293 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -5852,36 +5852,36 @@ Move_MEGA_DRAIN: AnimScript_82D1121: playsewithpan SE_W145C, +63 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, 5, -18, -20, 35 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 5, -18, -20, 35 delay 0x4 playsewithpan SE_W145C, +63 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 - createsprite 0x8592270, 0x3, -10, 20, 20, 39 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, -10, 20, 20, 39 delay 0x4 playsewithpan SE_W145C, +63 - createsprite 0x8592270, 0x3, -5, 15, 16, 33 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, -5, 15, 16, 33 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 delay 0x4 playsewithpan SE_W145C, +63 - createsprite 0x8592270, 0x3, 0, -15, -16, 36 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 0, -15, -16, 36 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 delay 0x4 playsewithpan SE_W145C, +63 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, 0, -15, -16, 36 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 0, -15, -16, 36 delay 0x4 playsewithpan SE_W145C, +63 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 - createsprite 0x8592270, 0x3, -5, 15, 16, 33 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, -5, 15, 16, 33 delay 0x4 playsewithpan SE_W145C, +63 - createsprite 0x8592270, 0x3, -10, 20, 20, 39 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, -10, 20, 20, 39 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 delay 0x4 playsewithpan SE_W145C, +63 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, 5, -18, -20, 35 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 5, -18, -20, 35 delay 0x4 return @@ -5892,10 +5892,10 @@ Move_GIGA_DRAIN: monbg ANIM_DEF_PARTNER monbgprio_2A ANIM_TARGET setalpha 0x80C - createsprite 0x8597274, 0x2, 1, 1, 0, 12, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 12, 13293 waitforvisualfinish playsewithpan SE_W071, +63 - createsprite 0x8597358, 0x2, 0, 0, 1, 0 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 0 delay 0x2 createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 5, 1 waitforvisualfinish @@ -5905,7 +5905,7 @@ Move_GIGA_DRAIN: delay 0xF call AnimScript_82D79DF waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 1, 12, 0, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 12, 0, 13293 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -5913,44 +5913,44 @@ Move_GIGA_DRAIN: AnimScript_82D12B1: playsewithpan SE_W202, +63 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, 5, -18, -40, 35 - createsprite 0x8592270, 0x3, -10, 20, 20, 39 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 5, -18, -40, 35 + createsprite gUnknown_08592270, 0x3, -10, 20, 20, 39 delay 0x4 playsewithpan SE_W202, +63 - createsprite 0x8592270, 0x3, 0, 5, 28, 26 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 - createsprite 0x8592270, 0x3, -10, 20, 40, 39 + createsprite gUnknown_08592270, 0x3, 0, 5, 28, 26 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, -10, 20, 40, 39 delay 0x4 playsewithpan SE_W202, +63 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 - createsprite 0x8592270, 0x3, -5, 15, 16, 33 - createsprite 0x8592270, 0x3, 10, -5, -32, 26 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, -5, 15, 16, 33 + createsprite gUnknown_08592270, 0x3, 10, -5, -32, 26 delay 0x4 playsewithpan SE_W202, +63 - createsprite 0x8592270, 0x3, 0, -15, -16, 36 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, 0, -15, -16, 36 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 delay 0x4 playsewithpan SE_W202, +63 - createsprite 0x8592270, 0x3, -5, 15, 16, 33 - createsprite 0x8592270, 0x3, 0, -15, -16, 36 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, -5, 15, 16, 33 + createsprite gUnknown_08592270, 0x3, 0, -15, -16, 36 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 delay 0x4 playsewithpan SE_W202, +63 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, -5, 15, 16, 33 - createsprite 0x8592270, 0x3, 10, -5, -40, 26 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, -5, 15, 16, 33 + createsprite gUnknown_08592270, 0x3, 10, -5, -40, 26 delay 0x4 playsewithpan SE_W202, +63 - createsprite 0x8592270, 0x3, -5, 15, 36, 33 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 - createsprite 0x8592270, 0x3, -10, 20, 20, 39 + createsprite gUnknown_08592270, 0x3, -5, 15, 36, 33 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, -10, 20, 20, 39 delay 0x4 playsewithpan SE_W202, +63 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, 5, -18, -20, 35 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 5, -18, -20, 35 delay 0x4 return @@ -5964,21 +5964,21 @@ Move_LEECH_LIFE: monbgprio_2A ANIM_TARGET setalpha 0x80C delay 0x1 - createsprite 0x85969C8, 0x2, -20, 15, 12 + createsprite gUnknown_085969C8, 0x2, -20, 15, 12 waitforvisualfinish - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 playsewithpan SE_W071, +63 delay 0x2 createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 5, 1 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 1, 0, 7, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 7, 0 waitforvisualfinish call AnimScript_82D1009 waitforvisualfinish delay 0xF call AnimScript_82D79DF waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 1, 7, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 7, 0, 0 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6009,16 +6009,16 @@ Move_TOXIC: end AnimScript_82D1515: - createsprite 0x8596134, 0x82, -24, 16, 1, 1 + createsprite gUnknown_08596134, 0x82, -24, 16, 1, 1 playsewithpan SE_W092, +63 delay 0xF - createsprite 0x8596134, 0x82, 8, 16, 1, 1 + createsprite gUnknown_08596134, 0x82, 8, 16, 1, 1 playsewithpan SE_W092, +63 delay 0xF - createsprite 0x8596134, 0x82, -8, 16, 1, 1 + createsprite gUnknown_08596134, 0x82, -8, 16, 1, 1 playsewithpan SE_W092, +63 delay 0xF - createsprite 0x8596134, 0x82, 24, 16, 1, 1 + createsprite gUnknown_08596134, 0x82, 24, 16, 1, 1 playsewithpan SE_W092, +63 delay 0xF return @@ -6026,7 +6026,7 @@ AnimScript_82D1515: Move_SLUDGE: loadspritegfx 0x27A6 playsewithpan SE_W145C, -64 - createsprite 0x85961A8, 0x82, 20, 0, 40, 0 + createsprite gUnknown_085961A8, 0x82, 20, 0, 40, 0 waitforvisualfinish createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 5, 1 createvisualtask sub_8115A04, 0x2, 4, 1, 2, 0, 12, 31774 @@ -6048,22 +6048,22 @@ Move_SLUDGE_BOMB: call AnimScript_82D16BC createvisualtask sub_80D52D0, 0x5, 1, 3, 0, 15, 1 createvisualtask sub_8115A04, 0x2, 4, 1, 2, 0, 12, 31774 - createsprite 0x85961D8, 0x82, 42, 27, 20 - createsprite 0x85961D8, 0x82, -27, 44, 20 - createsprite 0x85961D8, 0x82, 39, -28, 20 - createsprite 0x85961D8, 0x82, -42, -42, 20 + createsprite gUnknown_085961D8, 0x82, 42, 27, 20 + createsprite gUnknown_085961D8, 0x82, -27, 44, 20 + createsprite gUnknown_085961D8, 0x82, 39, -28, 20 + createsprite gUnknown_085961D8, 0x82, -42, -42, 20 playsewithpan SE_W091, +63 delay 0x5 - createsprite 0x85961D8, 0x82, 0, 40, 20 - createsprite 0x85961D8, 0x82, -8, -44, 20 - createsprite 0x85961D8, 0x82, -46, -28, 20 - createsprite 0x85961D8, 0x82, 46, 9, 20 + createsprite gUnknown_085961D8, 0x82, 0, 40, 20 + createsprite gUnknown_085961D8, 0x82, -8, -44, 20 + createsprite gUnknown_085961D8, 0x82, -46, -28, 20 + createsprite gUnknown_085961D8, 0x82, 46, 9, 20 playsewithpan SE_W091, +63 delay 0x5 - createsprite 0x85961D8, 0x82, 42, 0, 20 - createsprite 0x85961D8, 0x82, -43, -12, 20 - createsprite 0x85961D8, 0x82, 16, -46, 20 - createsprite 0x85961D8, 0x82, -16, 44, 20 + createsprite gUnknown_085961D8, 0x82, 42, 0, 20 + createsprite gUnknown_085961D8, 0x82, -43, -12, 20 + createsprite gUnknown_085961D8, 0x82, 16, -46, 20 + createsprite gUnknown_085961D8, 0x82, -16, 44, 20 playsewithpan SE_W091, +63 delay 0x0 waitsound @@ -6074,38 +6074,38 @@ Move_SLUDGE_BOMB: AnimScript_82D16BC: playsewithpan SE_W145C, -64 - createsprite 0x85961A8, 0x82, 20, 0, 40, 0 + createsprite gUnknown_085961A8, 0x82, 20, 0, 40, 0 delay 0x3 return Move_ACID: loadspritegfx 0x27A6 monbg ANIM_DEF_PARTNER - createsprite 0x85961C0, 0x82, 20, 0, 40, 1, 0, 0 + createsprite gUnknown_085961C0, 0x82, 20, 0, 40, 1, 0, 0 playsewithpan SE_W145C, -64 delay 0x5 - createsprite 0x85961C0, 0x82, 20, 0, 40, 1, 24, 0 + createsprite gUnknown_085961C0, 0x82, 20, 0, 40, 1, 24, 0 playsewithpan SE_W145C, -64 delay 0x5 - createsprite 0x85961C0, 0x82, 20, 0, 40, 1, -24, 0 + createsprite gUnknown_085961C0, 0x82, 20, 0, 40, 1, -24, 0 playsewithpan SE_W145C, -64 delay 0xF createvisualtask sub_80D52D0, 0x5, 1, 2, 0, 10, 1 createvisualtask sub_80D52D0, 0x5, 3, 2, 0, 10, 1 createvisualtask sub_8115A04, 0x2, 20, 2, 2, 0, 12, 31774 - createsprite 0x859620C, 0x82, 0, -22, 0, 15, 55 + createsprite gUnknown_0859620C, 0x82, 0, -22, 0, 15, 55 playsewithpan SE_W145, +63 delay 0xA - createsprite 0x859620C, 0x82, -26, -24, 0, 15, 55 + createsprite gUnknown_0859620C, 0x82, -26, -24, 0, 15, 55 playsewithpan SE_W145, +63 delay 0xA - createsprite 0x859620C, 0x82, 15, -27, 0, 15, 50 + createsprite gUnknown_0859620C, 0x82, 15, -27, 0, 15, 50 playsewithpan SE_W145, +63 delay 0xA - createsprite 0x859620C, 0x82, -15, -17, 0, 10, 45 + createsprite gUnknown_0859620C, 0x82, -15, -17, 0, 10, 45 playsewithpan SE_W145, +63 delay 0xA - createsprite 0x859620C, 0x82, 27, -22, 0, 15, 50 + createsprite gUnknown_0859620C, 0x82, 27, -22, 0, 15, 50 playsewithpan SE_W145, +63 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6118,14 +6118,14 @@ Move_BONEMERANG: monbgprio_28 ANIM_TARGET setalpha 0x80C playsewithpan SE_W155, -64 - createsprite 0x8597178, 0x2 + createsprite gUnknown_08597178, 0x2 delay 0x14 playsewithpan SE_W030, +63 - createsprite 0x8597358, 0x2, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 1 createvisualtask sub_80D51AC, 0x5, 1, 5, 0, 5, 1 delay 0x11 playsewithpan SE_W233, -64 - createsprite 0x857FE28, 0x2, 6, -4 + createsprite gUnknown_0857FE28, 0x2, 6, -4 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6138,11 +6138,11 @@ Move_BONE_CLUB: monbgprio_28 ANIM_TARGET setalpha 0x80C playsewithpan SE_W155, +63 - createsprite 0x8597190, 0x2, -42, -25, 0, 0, 15 + createsprite gUnknown_08597190, 0x2, -42, -25, 0, 0, 15 delay 0xC - createsprite 0x8597358, 0x2, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 1 createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 5, 1 - createsprite 0x859728C, 0x2, 7, 5, 1, 0, 10, 0, 0 + createsprite gUnknown_0859728C, 0x2, 7, 5, 1, 0, 10, 0, 0 playsewithpan SE_W233B, +63 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6155,9 +6155,9 @@ Move_BONE_RUSH: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W155, +63 - createsprite 0x8597190, 0x2, -42, -25, 0, 0, 15 + createsprite gUnknown_08597190, 0x2, -42, -25, 0, 0, 15 delay 0xC - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x5, 1, 0, 3, 5, 1 playsewithpan SE_W030, +63 waitforvisualfinish @@ -6170,14 +6170,14 @@ Move_SPIKES: monbg ANIM_DEF_PARTNER playsewithpan SE_W026, -64 waitplaysewithpan SE_W030, +63, 0x1C - createsprite 0x85CE11C, 0x82, 20, 0, 0, 24, 30 + createsprite gUnknown_085CE11C, 0x82, 20, 0, 0, 24, 30 delay 0xA playsewithpan SE_W026, -64 waitplaysewithpan SE_W030, +63, 0x1C - createsprite 0x85CE11C, 0x82, 20, 0, -24, 24, 30 + createsprite gUnknown_085CE11C, 0x82, 20, 0, -24, 24, 30 delay 0xA waitplaysewithpan SE_W030, +63, 0x1C - createsprite 0x85CE11C, 0x82, 20, 0, 24, 24, 30 + createsprite gUnknown_085CE11C, 0x82, 20, 0, 24, 24, 30 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -6198,20 +6198,20 @@ AnimScript_82D1947: createvisualtask sub_80D51AC, 0x5, 0, 2, 0, 15, 1 waitforvisualfinish delay 0xA - createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 6 + createsprite gUnknown_0857FE70, 0x2, 0, 24, 0, 0, 6 delay 0x3 - createsprite 0x8596974, 0x3, -42, 25, 0, 0, 6 + createsprite gUnknown_08596974, 0x3, -42, 25, 0, 0, 6 delay 0x4 playsewithpan SE_W011, +63 - createsprite 0x8597358, 0x2, 0, 0, 1, 0 - createsprite 0x857FE70, 0x2, 1, -16, 4, 1, 4 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 0 + createsprite gUnknown_0857FE70, 0x2, 1, -16, 4, 1, 4 waitforvisualfinish createvisualtask sub_80D5484, 0x2, 1, -4, 1, 12, 1 - createsprite 0x859728C, 0x2, 7, 5, 1, 0x7FFF, 10, 0, 0 + createsprite gUnknown_0859728C, 0x2, 7, 5, 1, 0x7FFF, 10, 0, 0 delay 0xA - createsprite 0x857FE58, 0x2, 0, 0, 11 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 11 delay 0x3 - createsprite 0x857FE58, 0x2, 1, 0, 7 + createsprite gUnknown_0857FE58, 0x2, 1, 0, 7 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6234,11 +6234,11 @@ Move_GUST: monbgprio_28 ANIM_TARGET setalpha 0x80C playsewithpan SE_W016, +63 - createsprite 0x8596270, 0x2, 0, -16 + createsprite gUnknown_08596270, 0x2, 0, -16 createvisualtask sub_810DED8, 0x5, 1, 70 waitforvisualfinish createvisualtask sub_80D52D0, 0x5, 1, 1, 0, 7, 1 - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 playsewithpan SE_W016B, +63 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6254,16 +6254,16 @@ Move_WING_ATTACK: loopsewithpan SE_W017, -64, 0x14, 0x2 createvisualtask sub_80D5738, 0x2, 0, 12, 4, 1, 4 createvisualtask sub_810DED8, 0x5, 1, 70 - createsprite 0x85962A4, 0x2, -25, 0, 0, 0, 20 - createsprite 0x85962A4, 0x2, 25, 0, 0, 0, 20 + createsprite gUnknown_085962A4, 0x2, -25, 0, 0, 0, 20 + createsprite gUnknown_085962A4, 0x2, 25, 0, 0, 0, 20 delay 0x18 - createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 9 + createsprite gUnknown_0857FE70, 0x2, 0, 24, 0, 0, 9 delay 0x11 - createsprite 0x8597358, 0x2, 16, 0, 1, 1 - createsprite 0x8597358, 0x2, -16, 0, 1, 1 + createsprite gUnknown_08597358, 0x2, 16, 0, 1, 1 + createsprite gUnknown_08597358, 0x2, -16, 0, 1, 1 loopsewithpan SE_W003, +63, 0x5, 0x2 waitforvisualfinish - createsprite 0x857FE58, 0x2, 0, 0, 11 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 11 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6273,7 +6273,7 @@ Move_PECK: loadspritegfx 0x2797 playsewithpan SE_W030, +63 createvisualtask sub_80D622C, 0x2, 3, -768, 1, 2 - createsprite 0x85973E8, 0x83, -12, 0, 1, 3 + createsprite gUnknown_085973E8, 0x83, -12, 0, 1, 3 waitforvisualfinish end @@ -6291,7 +6291,7 @@ Move_AEROBLAST: call AnimScript_82D1B82 call AnimScript_82D1B82 waitforvisualfinish - createsprite 0x8597358, 0x2, 0, 0, 1, 0 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 0 playsewithpan SE_W013, +63 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6302,20 +6302,20 @@ Move_AEROBLAST: AnimScript_82D1B82: playsewithpan SE_W026, -64 - createsprite 0x85962D4, 0x2, 14, -12, 0, -12, 15, 0, 0 - createsprite 0x85962D4, 0x2, 26, 8, 12, 8, 15, 0, 0 + createsprite gUnknown_085962D4, 0x2, 14, -12, 0, -12, 15, 0, 0 + createsprite gUnknown_085962D4, 0x2, 26, 8, 12, 8, 15, 0, 0 delay 0x3 playsewithpan SE_W026, -64 - createsprite 0x85962D4, 0x2, 14, -12, 0, -12, 15, 1, 0 - createsprite 0x85962D4, 0x2, 26, 8, 12, 8, 15, 1, 0 + createsprite gUnknown_085962D4, 0x2, 14, -12, 0, -12, 15, 1, 0 + createsprite gUnknown_085962D4, 0x2, 26, 8, 12, 8, 15, 1, 0 delay 0x3 playsewithpan SE_W026, -64 - createsprite 0x85962D4, 0x2, 14, -12, 0, -12, 15, 2, 0 - createsprite 0x85962D4, 0x2, 26, 8, 12, 8, 15, 2, 0 + createsprite gUnknown_085962D4, 0x2, 14, -12, 0, -12, 15, 2, 0 + createsprite gUnknown_085962D4, 0x2, 26, 8, 12, 8, 15, 2, 0 delay 0x3 playsewithpan SE_W026, -64 - createsprite 0x85962D4, 0x2, 14, -12, 0, -12, 15, 3, 0 - createsprite 0x85962D4, 0x2, 26, 8, 12, 8, 15, 3, 0 + createsprite gUnknown_085962D4, 0x2, 14, -12, 0, -12, 15, 3, 0 + createsprite gUnknown_085962D4, 0x2, 26, 8, 12, 8, 15, 3, 0 delay 0x3 return @@ -6325,18 +6325,18 @@ Move_WATER_GUN: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET setalpha 0x80C - createsprite 0x8595208, 0x2, 20, 0, 0, 0, 40, -25 + createsprite gUnknown_08595208, 0x2, 20, 0, 0, 0, 40, -25 playsewithpan SE_W145, -64 waitforvisualfinish createvisualtask sub_80D52D0, 0x5, 1, 1, 0, 8, 1 - createsprite 0x8597388, 0x4, 0, 0, 1, 2 - createsprite 0x8595220, 0x2, 0, -15, 0, 15, 55 + createsprite gUnknown_08597388, 0x4, 0, 0, 1, 2 + createsprite gUnknown_08595220, 0x2, 0, -15, 0, 15, 55 playsewithpan SE_W152, +63 delay 0xA - createsprite 0x8595220, 0x2, 15, -20, 0, 15, 50 + createsprite gUnknown_08595220, 0x2, 15, -20, 0, 15, 50 playsewithpan SE_W152, +63 delay 0xA - createsprite 0x8595220, 0x2, -15, -10, 0, 10, 45 + createsprite gUnknown_08595220, 0x2, -15, -10, 0, 10, 45 playsewithpan SE_W152, +63 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6348,33 +6348,33 @@ Move_CRABHAMMER: loadspritegfx 0x27A4 monbg ANIM_DEF_PARTNER setalpha 0x80C - createsprite 0x8597388, 0x4, 0, 0, 1, 0 + createsprite gUnknown_08597388, 0x4, 0, 0, 1, 0 playsewithpan SE_W233B, +63 delay 0x1 - createsprite 0x859728C, 0x2, 31, 3, 1, 32429, 10, 0, 0 - createsprite 0x857FE70, 0x2, 1, -24, 0, 0, 4 + createsprite gUnknown_0859728C, 0x2, 31, 3, 1, 32429, 10, 0, 0 + createsprite gUnknown_0857FE70, 0x2, 1, -24, 0, 0, 4 waitforvisualfinish delay 0x8 waitforvisualfinish - createsprite 0x857FE58, 0x2, 1, 0, 4 + createsprite gUnknown_0857FE58, 0x2, 1, 0, 4 waitforvisualfinish loopsewithpan SE_W152, +63, 0x14, 0x3 createvisualtask sub_80D51AC, 0x5, 1, 0, 4, 8, 1 - createsprite 0x8595238, 0x2, 10, 10, 20, 1 + createsprite gUnknown_08595238, 0x2, 10, 10, 20, 1 delay 0x4 - createsprite 0x8595238, 0x2, 20, -20, 20, 1 + createsprite gUnknown_08595238, 0x2, 20, -20, 20, 1 delay 0x4 - createsprite 0x8595238, 0x2, -15, 15, 20, 1 + createsprite gUnknown_08595238, 0x2, -15, 15, 20, 1 delay 0x4 - createsprite 0x8595238, 0x2, 0, 0, 20, 1 + createsprite gUnknown_08595238, 0x2, 0, 0, 20, 1 delay 0x4 - createsprite 0x8595238, 0x2, -10, -20, 20, 1 + createsprite gUnknown_08595238, 0x2, -10, -20, 20, 1 delay 0x4 - createsprite 0x8595238, 0x2, 16, -8, 20, 1 + createsprite gUnknown_08595238, 0x2, 16, -8, 20, 1 delay 0x4 - createsprite 0x8595238, 0x2, 5, 8, 20, 1 + createsprite gUnknown_08595238, 0x2, 5, 8, 20, 1 delay 0x4 - createsprite 0x8595238, 0x2, -16, 0, 20, 1 + createsprite gUnknown_08595238, 0x2, -16, 0, 20, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6414,9 +6414,9 @@ Move_FLAMETHROWER: end AnimScript_82D1E58: - createsprite 0x8595158, 0x3, 10, 10, 0, 16 + createsprite gUnknown_08595158, 0x3, 10, 10, 0, 16 delay 0x2 - createsprite 0x8595158, 0x3, 10, 10, 0, 16 + createsprite gUnknown_08595158, 0x3, 10, 10, 0, 16 delay 0x2 return @@ -6425,19 +6425,19 @@ Move_SANDSTORM: playsewithpan SE_W201, 0 createvisualtask sub_8110BCC, 0x5, 0 delay 0x10 - createsprite 0x8596BA0, 0x28, 10, 2304, 96, 0 + createsprite gUnknown_08596BA0, 0x28, 10, 2304, 96, 0 delay 0xA - createsprite 0x8596BA0, 0x28, 90, 2048, 96, 0 + createsprite gUnknown_08596BA0, 0x28, 90, 2048, 96, 0 delay 0xA - createsprite 0x8596BA0, 0x28, 50, 2560, 96, 0 + createsprite gUnknown_08596BA0, 0x28, 50, 2560, 96, 0 delay 0xA - createsprite 0x8596BA0, 0x28, 20, 2304, 96, 0 + createsprite gUnknown_08596BA0, 0x28, 20, 2304, 96, 0 delay 0xA - createsprite 0x8596BA0, 0x28, 70, 1984, 96, 0 + createsprite gUnknown_08596BA0, 0x28, 70, 1984, 96, 0 delay 0xA - createsprite 0x8596BA0, 0x28, 0, 2816, 96, 0 + createsprite gUnknown_08596BA0, 0x28, 0, 2816, 96, 0 delay 0xA - createsprite 0x8596BA0, 0x28, 60, 2560, 96, 0 + createsprite gUnknown_08596BA0, 0x28, 60, 2560, 96, 0 end Move_WHIRLPOOL: @@ -6446,30 +6446,30 @@ Move_WHIRLPOOL: monbgprio_28 ANIM_TARGET setalpha 0x80C delay 0x0 - createsprite 0x8597274, 0x0, 4, 2, 0, 7, 23968 + createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 23968 playsewithpan SE_W250, +63 createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 50, 1 call AnimScript_82D1F5B call AnimScript_82D1F5B call AnimScript_82D1F5B delay 0xC - createsprite 0x8597274, 0x0, 4, 2, 7, 0, 23968 + createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 23968 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end AnimScript_82D1F5B: - createsprite 0x8596B70, 0x82, 0, 28, 384, 50, 8, 50, 1 + createsprite gUnknown_08596B70, 0x82, 0, 28, 384, 50, 8, 50, 1 delay 0x2 - createsprite 0x8596B70, 0x82, 0, 32, 240, 40, 11, -46, 1 + createsprite gUnknown_08596B70, 0x82, 0, 32, 240, 40, 11, -46, 1 delay 0x2 - createsprite 0x8596B70, 0x82, 0, 33, 416, 40, 4, 42, 1 + createsprite gUnknown_08596B70, 0x82, 0, 33, 416, 40, 4, 42, 1 delay 0x2 - createsprite 0x8596B70, 0x82, 0, 31, 288, 45, 6, -42, 1 + createsprite gUnknown_08596B70, 0x82, 0, 31, 288, 45, 6, -42, 1 delay 0x2 - createsprite 0x8596B70, 0x82, 0, 28, 448, 45, 11, 46, 1 + createsprite gUnknown_08596B70, 0x82, 0, 28, 448, 45, 11, 46, 1 delay 0x2 - createsprite 0x8596B70, 0x82, 0, 33, 464, 50, 10, -50, 1 + createsprite gUnknown_08596B70, 0x82, 0, 33, 464, 50, 10, -50, 1 delay 0x2 return @@ -6484,16 +6484,16 @@ AnimScript_82D1FF5: AnimScript_82D1FF7: playsewithpan SE_W019, -64 - createsprite 0x8596340, 0x2, 0, 0, 13, 336 + createsprite gUnknown_08596340, 0x2, 0, 0, 13, 336 goto AnimScript_82D1FF5 AnimScript_82D200F: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W104, -64 - createsprite 0x8596358, 0x2, 20 + createsprite gUnknown_08596358, 0x2, 20 delay 0x14 - createsprite 0x8597358, 0x2, 0, 0, 1, 0 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 0 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 playsewithpan SE_W013, +63 waitforvisualfinish @@ -6511,17 +6511,17 @@ AnimScript_82D205F: AnimScript_82D2060: playsewithpan SE_W100, -64 - createsprite 0x8596420, 0x2, 0, 0 + createsprite gUnknown_08596420, 0x2, 0, 0 goto AnimScript_82D205F AnimScript_82D2074: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W207, +63 - createsprite 0x859644C, 0x83 + createsprite gUnknown_0859644C, 0x83 delay 0x7 playsewithpan SE_W025B, +63 - createsprite 0x8597358, 0x82, 0, 0, 1, 0 + createsprite gUnknown_08597358, 0x82, 0, 0, 1, 0 createvisualtask sub_80D51AC, 0x5, 1, 0, 5, 11, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6535,10 +6535,10 @@ Move_KARATE_CHOP: monbgprio_28 ANIM_TARGET setalpha 0x80C playsewithpan SE_W104, +63 - createsprite 0x8595E68, 0x2, -16, 0, 0, 0, 10, 1, 3, 0 + createsprite gUnknown_08595E68, 0x2, -16, 0, 0, 0, 10, 1, 3, 0 waitforvisualfinish playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x5, 1, 4, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6551,12 +6551,12 @@ Move_CROSS_CHOP: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W025, +63 - createsprite 0x8595EC8, 0x2, 0, 0, 0 - createsprite 0x8595EC8, 0x2, 0, 0, 1 + createsprite gUnknown_08595EC8, 0x2, 0, 0, 0 + createsprite gUnknown_08595EC8, 0x2, 0, 0, 1 delay 0x28 playsewithpan SE_W013, +63 - createsprite 0x859728C, 0x2, 31, 3, 1, 0x7FFF, 10, 0, 10 - createsprite 0x85973D0, 0x3, 0, 0, 1, 20 + createsprite gUnknown_0859728C, 0x2, 31, 3, 1, 0x7FFF, 10, 0, 10 + createsprite gUnknown_085973D0, 0x3, 0, 0, 1, 20 createvisualtask sub_80D51AC, 0x5, 1, 7, 0, 9, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6568,12 +6568,12 @@ Move_JUMP_KICK: loadspritegfx 0x2797 monbg ANIM_DEF_PARTNER setalpha 0x80C - createsprite 0x857FE28, 0x2, 4, 4 + createsprite gUnknown_0857FE28, 0x2, 4, 4 delay 0x3 - createsprite 0x8595E80, 0x2, -16, 8, 0, 0, 10, 1, 1, 1 + createsprite gUnknown_08595E80, 0x2, -16, 8, 0, 0, 10, 1, 1, 1 playsewithpan SE_W026, +63 waitforvisualfinish - createsprite 0x8597358, 0x1, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x1, 0, 0, 1, 1 createvisualtask sub_80D51AC, 0x5, 1, 5, 0, 7, 1 playsewithpan SE_W004, +63 waitforvisualfinish @@ -6586,22 +6586,22 @@ Move_HI_JUMP_KICK: loadspritegfx 0x2797 monbg ANIM_DEF_PARTNER setalpha 0x80C - createsprite 0x857FE70, 0x2, 0, -24, 0, 0, 8 + createsprite gUnknown_0857FE70, 0x2, 0, -24, 0, 0, 8 waitforvisualfinish delay 0xA - createsprite 0x857FE58, 0x2, 0, 0, 3 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 3 delay 0x2 - createsprite 0x8595E80, 0x2, -16, 8, 0, 0, 10, 1, 1, 1 + createsprite gUnknown_08595E80, 0x2, -16, 8, 0, 0, 10, 1, 1, 1 playsewithpan SE_W026, +63 waitforvisualfinish - createsprite 0x8597358, 0x2, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 1 playsewithpan SE_W233B, +63 - createsprite 0x857FE70, 0x2, 1, -28, 0, 0, 3 + createsprite gUnknown_0857FE70, 0x2, 1, -28, 0, 0, 3 delay 0x3 createvisualtask sub_80D5484, 0x2, 1, 3, 0, 11, 1 waitforvisualfinish delay 0x5 - createsprite 0x857FE58, 0x2, 1, 0, 6 + createsprite gUnknown_0857FE58, 0x2, 1, 0, 6 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6612,7 +6612,7 @@ Move_DOUBLE_KICK: loadspritegfx 0x2797 monbg ANIM_DEF_PARTNER setalpha 0x80C - createsprite 0x8595EB0, 0x3, 1, 20, 1 + createsprite gUnknown_08595EB0, 0x3, 1, 20, 1 createvisualtask sub_80D51AC, 0x5, 1, 4, 0, 6, 1 playsewithpan SE_W233B, +63 waitforvisualfinish @@ -6637,20 +6637,20 @@ AnimScript_82D22B3: end AnimScript_82D22B8: - createsprite 0x8595E98, 0x84, -16, -8, 20, 1, 1 - createsprite 0x8597358, 0x83, -16, -16, 1, 2 + createsprite gUnknown_08595E98, 0x84, -16, -8, 20, 1, 1 + createsprite gUnknown_08597358, 0x83, -16, -16, 1, 2 createvisualtask sub_80D51AC, 0x5, 1, 4, 0, 6, 1 goto AnimScript_82D22B3 AnimScript_82D22EE: - createsprite 0x8595E98, 0x84, 8, 8, 20, 1, 1 - createsprite 0x8597358, 0x83, 8, 0, 1, 2 + createsprite gUnknown_08595E98, 0x84, 8, 8, 20, 1, 1 + createsprite gUnknown_08597358, 0x83, 8, 0, 1, 2 createvisualtask sub_80D51AC, 0x5, 1, 4, 0, 6, 1 goto AnimScript_82D22B3 AnimScript_82D2324: - createsprite 0x8595E98, 0x84, 0, 0, 20, 1, 1 - createsprite 0x8597358, 0x83, 0, -8, 1, 1 + createsprite gUnknown_08595E98, 0x84, 0, 0, 20, 1, 1 + createsprite gUnknown_08597358, 0x83, 0, -8, 1, 1 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 goto AnimScript_82D22B3 @@ -6663,26 +6663,26 @@ Move_DYNAMIC_PUNCH: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W233B, +63 - createsprite 0x8595E98, 0x83, 0, 0, 20, 1, 0 - createsprite 0x8597358, 0x82, 0, 0, 1, 0 + createsprite gUnknown_08595E98, 0x83, 0, 0, 20, 1, 0 + createsprite gUnknown_08597358, 0x82, 0, 0, 1, 0 createvisualtask sub_80D51AC, 0x5, 1, 5, 0, 7, 1 delay 0x1 waitsound playsewithpan SE_W120, +63 createvisualtask sub_80D52D0, 0x5, 1, 5, 0, 28, 1 - createsprite 0x859371C, 0x3, 0, 0, 1, 1 + createsprite gUnknown_0859371C, 0x3, 0, 0, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x3, 24, -24, 1, 1 + createsprite gUnknown_0859371C, 0x3, 24, -24, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x3, -16, 16, 1, 1 + createsprite gUnknown_0859371C, 0x3, -16, 16, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x3, -24, -12, 1, 1 + createsprite gUnknown_0859371C, 0x3, -24, -12, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x3, 16, 16, 1, 1 + createsprite gUnknown_0859371C, 0x3, 16, 16, 1, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6696,25 +6696,25 @@ Move_COUNTER: createvisualtask sub_80D5830, 0x2, 0, 18, 6, 1, 4 playsewithpan SE_W233, -64 waitforvisualfinish - createsprite 0x857FE70, 0x2, 0, 20, 0, 0, 4 + createsprite gUnknown_0857FE70, 0x2, 0, 20, 0, 0, 4 delay 0x4 - createsprite 0x8597358, 0x2, -15, 18, 1, 0 + createsprite gUnknown_08597358, 0x2, -15, 18, 1, 0 playsewithpan SE_W233B, +63 delay 0x1 createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 25, 1 - createsprite 0x8595E98, 0x3, -15, 18, 8, 1, 0 + createsprite gUnknown_08595E98, 0x3, -15, 18, 8, 1, 0 delay 0x3 - createsprite 0x8597358, 0x2, 0, -4, 1, 0 + createsprite gUnknown_08597358, 0x2, 0, -4, 1, 0 playsewithpan SE_W233B, +63 delay 0x1 - createsprite 0x8595E98, 0x3, 0, -4, 8, 1, 0 + createsprite gUnknown_08595E98, 0x3, 0, -4, 8, 1, 0 delay 0x3 - createsprite 0x8597358, 0x2, 15, 9, 1, 0 + createsprite gUnknown_08597358, 0x2, 15, 9, 1, 0 playsewithpan SE_W233B, +63 delay 0x1 - createsprite 0x8595E98, 0x3, 15, 9, 8, 1, 0 + createsprite gUnknown_08595E98, 0x3, 15, 9, 8, 1, 0 delay 0x5 - createsprite 0x857FE58, 0x2, 0, 0, 5 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 5 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6727,17 +6727,17 @@ Move_VITAL_THROW: playsewithpan SE_W233, -64 createvisualtask sub_80D5830, 0x2, 0, 12, 4, 1, 2 waitforvisualfinish - createsprite 0x857FE70, 0x2, 0, 20, 0, 0, 4 + createsprite gUnknown_0857FE70, 0x2, 0, 20, 0, 0, 4 delay 0x2 - createsprite 0x8597358, 0x3, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 1 playsewithpan SE_W233B, +63 delay 0x1 - createsprite 0x857FE70, 0x2, 1, -24, 0, 0, 4 + createsprite gUnknown_0857FE70, 0x2, 1, -24, 0, 0, 4 waitforvisualfinish delay 0x3 - createsprite 0x857FE58, 0x2, 0, 0, 7 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 7 delay 0xB - createsprite 0x857FE58, 0x2, 1, 0, 10 + createsprite gUnknown_0857FE58, 0x2, 1, 0, 10 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6750,20 +6750,20 @@ Move_ROCK_SMASH: monbg ANIM_DEF_PARTNER setalpha 0x80C delay 0x1 - createsprite 0x8597358, 0x3, 0, 0, 1, 1 - createsprite 0x8595E98, 0x2, 0, 0, 8, 1, 0 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 1 + createsprite gUnknown_08595E98, 0x2, 0, 0, 8, 1, 0 playsewithpan SE_W233B, +63 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 5, 1 waitforvisualfinish playsewithpan SE_W088, +63 - createsprite 0x8596B1C, 0x2, 0, 0, 20, 24, 14, 2 - createsprite 0x8596B1C, 0x2, 5, 0, -20, 24, 14, 1 - createsprite 0x8596B1C, 0x2, 0, 5, 20, -24, 14, 2 - createsprite 0x8596B1C, 0x2, -5, 0, -20, -24, 14, 2 - createsprite 0x8596B1C, 0x2, 0, -5, 30, 18, 8, 2 - createsprite 0x8596B1C, 0x2, 0, 0, 30, -18, 8, 2 - createsprite 0x8596B1C, 0x2, 0, 0, -30, 18, 8, 2 - createsprite 0x8596B1C, 0x2, 0, 0, -30, -18, 8, 2 + createsprite gUnknown_08596B1C, 0x2, 0, 0, 20, 24, 14, 2 + createsprite gUnknown_08596B1C, 0x2, 5, 0, -20, 24, 14, 1 + createsprite gUnknown_08596B1C, 0x2, 0, 5, 20, -24, 14, 2 + createsprite gUnknown_08596B1C, 0x2, -5, 0, -20, -24, 14, 2 + createsprite gUnknown_08596B1C, 0x2, 0, -5, 30, 18, 8, 2 + createsprite gUnknown_08596B1C, 0x2, 0, 0, 30, -18, 8, 2 + createsprite gUnknown_08596B1C, 0x2, 0, 0, -30, 18, 8, 2 + createsprite gUnknown_08596B1C, 0x2, 0, 0, -30, -18, 8, 2 createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 7, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -6795,11 +6795,11 @@ Move_SUBMISSION: end AnimScript_82D26D3: - createsprite 0x8597358, 0x3, 0, -12, 1, 1 + createsprite gUnknown_08597358, 0x3, 0, -12, 1, 1 delay 0x8 - createsprite 0x8597358, 0x3, -12, 8, 1, 1 + createsprite gUnknown_08597358, 0x3, -12, 8, 1, 1 delay 0x8 - createsprite 0x8597358, 0x3, 12, 0, 1, 1 + createsprite gUnknown_08597358, 0x3, 12, 0, 1, 1 delay 0x8 return @@ -6822,7 +6822,7 @@ Move_SUNNY_DAY: end AnimScript_82D2753: - createsprite 0x85954A0, 0x28 + createsprite gUnknown_085954A0, 0x28 delay 0x6 return @@ -6839,11 +6839,11 @@ Move_COTTON_SPORE: end AnimScript_82D277D: - createsprite 0x85922EC, 0x2, 0, -20, 85, 80, 0 + createsprite gUnknown_085922EC, 0x2, 0, -20, 85, 80, 0 delay 0xC - createsprite 0x85922EC, 0x2, 0, -10, 170, 80, 0 + createsprite gUnknown_085922EC, 0x2, 0, -10, 170, 80, 0 delay 0xC - createsprite 0x85922EC, 0x2, 0, -15, 0, 80, 0 + createsprite gUnknown_085922EC, 0x2, 0, -15, 0, 80, 0 delay 0xC return @@ -6863,11 +6863,11 @@ Move_SPORE: end AnimScript_82D27E2: - createsprite 0x85922EC, 0x82, 0, -20, 85, 80, 1 + createsprite gUnknown_085922EC, 0x82, 0, -20, 85, 80, 1 delay 0xC - createsprite 0x85922EC, 0x82, 0, -10, 170, 80, 1 + createsprite gUnknown_085922EC, 0x82, 0, -10, 170, 80, 1 delay 0xC - createsprite 0x85922EC, 0x82, 0, -15, 0, 80, 1 + createsprite gUnknown_085922EC, 0x82, 0, -15, 0, 80, 1 delay 0xC return @@ -6878,32 +6878,32 @@ Move_PETAL_DANCE: setalpha 0x80C playsewithpan SE_W080, -64 createvisualtask sub_80D5830, 0x2, 0, 12, 6, 6, 3 - createsprite 0x859231C, 0x2, 0, -24, 8, 140 - createsprite 0x8592334, 0x2, 16, -24, 8, 100 - createsprite 0x8592334, 0x2, -16, -24, 8, 100 + createsprite gUnknown_0859231C, 0x2, 0, -24, 8, 140 + createsprite gUnknown_08592334, 0x2, 16, -24, 8, 100 + createsprite gUnknown_08592334, 0x2, -16, -24, 8, 100 delay 0xF - createsprite 0x859231C, 0x2, 0, -24, 8, 140 - createsprite 0x8592334, 0x2, 32, -24, 8, 100 - createsprite 0x8592334, 0x2, -32, -24, 8, 100 + createsprite gUnknown_0859231C, 0x2, 0, -24, 8, 140 + createsprite gUnknown_08592334, 0x2, 32, -24, 8, 100 + createsprite gUnknown_08592334, 0x2, -32, -24, 8, 100 delay 0xF - createsprite 0x859231C, 0x2, 0, -24, 8, 140 - createsprite 0x8592334, 0x2, 24, -24, 8, 100 - createsprite 0x8592334, 0x2, -24, -24, 8, 100 + createsprite gUnknown_0859231C, 0x2, 0, -24, 8, 140 + createsprite gUnknown_08592334, 0x2, 24, -24, 8, 100 + createsprite gUnknown_08592334, 0x2, -24, -24, 8, 100 delay 0x1E - createsprite 0x8592334, 0x2, 16, -24, 0, 100 - createsprite 0x8592334, 0x2, -16, -24, 0, 100 + createsprite gUnknown_08592334, 0x2, 16, -24, 0, 100 + createsprite gUnknown_08592334, 0x2, -16, -24, 0, 100 delay 0x1E - createsprite 0x8592334, 0x2, 20, -16, 14, 80 - createsprite 0x8592334, 0x2, -20, -14, 16, 80 + createsprite gUnknown_08592334, 0x2, 20, -16, 14, 80 + createsprite gUnknown_08592334, 0x2, -20, -14, 16, 80 waitforvisualfinish - createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 5 + createsprite gUnknown_0857FE70, 0x2, 0, 24, 0, 0, 5 delay 0x3 playsewithpan SE_W025B, +63 - createsprite 0x8597358, 0x3, 0, 0, 1, 0 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 0 createvisualtask sub_80D51AC, 0x2, 1, 6, 0, 8, 1 waitforvisualfinish delay 0x8 - createsprite 0x857FE58, 0x2, 0, 0, 7 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 7 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6917,29 +6917,29 @@ Move_RAZOR_LEAF: setalpha 0x80C delay 0x1 loopsewithpan SE_W077, -64, 0xA, 0x5 - createsprite 0x8592390, 0x2, -3, -2, 10 + createsprite gUnknown_08592390, 0x2, -3, -2, 10 delay 0x2 - createsprite 0x8592390, 0x2, -1, -1, 15 + createsprite gUnknown_08592390, 0x2, -1, -1, 15 delay 0x2 - createsprite 0x8592390, 0x2, -4, -4, 7 + createsprite gUnknown_08592390, 0x2, -4, -4, 7 delay 0x2 - createsprite 0x8592390, 0x2, 3, -3, 11 + createsprite gUnknown_08592390, 0x2, 3, -3, 11 delay 0x2 - createsprite 0x8592390, 0x2, -1, -6, 8 + createsprite gUnknown_08592390, 0x2, -1, -6, 8 delay 0x2 - createsprite 0x8592390, 0x2, 2, -1, 12 + createsprite gUnknown_08592390, 0x2, 2, -1, 12 delay 0x2 - createsprite 0x8592390, 0x2, -3, -4, 13 + createsprite gUnknown_08592390, 0x2, -3, -4, 13 delay 0x2 - createsprite 0x8592390, 0x2, 4, -5, 7 + createsprite gUnknown_08592390, 0x2, 4, -5, 7 delay 0x2 - createsprite 0x8592390, 0x2, 2, -6, 11 + createsprite gUnknown_08592390, 0x2, 2, -6, 11 delay 0x2 - createsprite 0x8592390, 0x2, -3, -5, 8 + createsprite gUnknown_08592390, 0x2, -3, -5, 8 delay 0x3C playsewithpan SE_W013B, -64 - createsprite 0x85923D8, 0x83, 20, -10, 20, 0, 22, 20, 1 - createsprite 0x85923D8, 0x83, 20, -10, 20, 0, 22, -20, 1 + createsprite gUnknown_085923D8, 0x83, 20, -10, 20, 0, 22, 20, 1 + createsprite gUnknown_085923D8, 0x83, 20, -10, 20, 0, 22, -20, 1 delay 0x14 playsewithpan SE_W013, +63 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 @@ -6955,29 +6955,29 @@ Move_ANCIENT_POWER: loadspritegfx 0x2797 monbg ANIM_DEF_PARTNER setalpha 0x80C - createsprite 0x85972D8, 0x2, 4, 1, 10, 1 - createsprite 0x8596C10, 0x2, 20, 32, -48, 50, 2 - createsprite 0x8596C10, 0x2, 0, 32, -38, 25, 5 - createsprite 0x8596C10, 0x2, 32, 32, -28, 40, 3 - createsprite 0x8596C10, 0x2, -20, 32, -48, 50, 2 - createsprite 0x8596C10, 0x2, 20, 32, -28, 60, 1 - createsprite 0x8596C10, 0x2, 0, 32, -28, 30, 4 + createsprite gUnknown_085972D8, 0x2, 4, 1, 10, 1 + createsprite gUnknown_08596C10, 0x2, 20, 32, -48, 50, 2 + createsprite gUnknown_08596C10, 0x2, 0, 32, -38, 25, 5 + createsprite gUnknown_08596C10, 0x2, 32, 32, -28, 40, 3 + createsprite gUnknown_08596C10, 0x2, -20, 32, -48, 50, 2 + createsprite gUnknown_08596C10, 0x2, 20, 32, -28, 60, 1 + createsprite gUnknown_08596C10, 0x2, 0, 32, -28, 30, 4 createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 30, 1 playsewithpan SE_W082, -64 delay 0xA - createsprite 0x8596C10, 0x2, 15, 32, -48, 25, 5 - createsprite 0x8596C10, 0x2, -10, 32, -42, 30, 4 + createsprite gUnknown_08596C10, 0x2, 15, 32, -48, 25, 5 + createsprite gUnknown_08596C10, 0x2, -10, 32, -42, 30, 4 delay 0xA - createsprite 0x8596C10, 0x2, 0, 32, -42, 25, 5 - createsprite 0x8596C10, 0x2, -25, 32, -48, 30, 4 + createsprite gUnknown_08596C10, 0x2, 0, 32, -42, 25, 5 + createsprite gUnknown_08596C10, 0x2, -25, 32, -48, 30, 4 waitforvisualfinish - createsprite 0x857FE70, 0x2, 0, 16, 0, 0, 4 + createsprite gUnknown_0857FE70, 0x2, 0, 16, 0, 0, 4 delay 0x3 playsewithpan SE_W120, +63 - createsprite 0x8597358, 0x3, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 1 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 6, 1 waitforvisualfinish - createsprite 0x857FE58, 0x2, 0, 0, 7 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 7 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6987,16 +6987,16 @@ Move_OCTAZOOKA: loadspritegfx 0x272E loadspritegfx 0x2721 playsewithpan SE_W025B, -64 - createsprite 0x8592DFC, 0x82, 20, 0, 0, 0, 20, 0 + createsprite gUnknown_08592DFC, 0x82, 20, 0, 0, 0, 20, 0 waitforvisualfinish playsewithpan SE_W120, +63 - createsprite 0x8592E30, 0x82, 8, 8, 1, 0 + createsprite gUnknown_08592E30, 0x82, 8, 8, 1, 0 delay 0x2 - createsprite 0x8592E30, 0x82, -8, -8, 1, 0 + createsprite gUnknown_08592E30, 0x82, -8, -8, 1, 0 delay 0x2 - createsprite 0x8592E30, 0x82, 8, -8, 1, 0 + createsprite gUnknown_08592E30, 0x82, 8, -8, 1, 0 delay 0x2 - createsprite 0x8592E30, 0x82, -8, 8, 1, 0 + createsprite gUnknown_08592E30, 0x82, -8, 8, 1, 0 waitforvisualfinish end @@ -7020,7 +7020,7 @@ Move_MIST: end AnimScript_82D2C34: - createsprite 0x8595C2C, 0x2, 0, -24, 48, 240, 0, 1 + createsprite gUnknown_08595C2C, 0x2, 0, -24, 48, 240, 0, 1 delay 0x7 return @@ -7041,14 +7041,14 @@ Move_FIRE_PUNCH: monbg ANIM_DEF_PARTNER setalpha 0x80C createvisualtask sub_8116620, 0xA, 4, 2, 0, 9, 31 - createsprite 0x8595368, 0x81, 0 - createsprite 0x8595368, 0x81, 64 - createsprite 0x8595368, 0x81, 128 - createsprite 0x8595368, 0x81, 196 + createsprite gUnknown_08595368, 0x81, 0 + createsprite gUnknown_08595368, 0x81, 64 + createsprite gUnknown_08595368, 0x81, 128 + createsprite gUnknown_08595368, 0x81, 196 playsewithpan SE_W172, +63 waitforvisualfinish - createsprite 0x8595E98, 0x83, 0, 0, 8, 1, 0 - createsprite 0x8597358, 0x82, 0, 0, 1, 1 + createsprite gUnknown_08595E98, 0x83, 0, 0, 8, 1, 0 + createsprite gUnknown_08597358, 0x82, 0, 0, 1, 1 createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 15, 1 call AnimScript_82D2D18 delay 0x4 @@ -7061,13 +7061,13 @@ Move_FIRE_PUNCH: end AnimScript_82D2D18: - createsprite 0x8595380, 0x81, 0, 10, 192, 176, 40 - createsprite 0x8595380, 0x81, 0, 10, -192, 240, 40 - createsprite 0x8595380, 0x81, 0, 10, 192, -160, 40 - createsprite 0x8595380, 0x81, 0, 10, -192, -112, 40 - createsprite 0x8595380, 0x81, 0, 10, 160, 48, 40 - createsprite 0x8595380, 0x81, 0, 10, -224, -32, 40 - createsprite 0x8595380, 0x81, 0, 10, 112, -128, 40 + createsprite gUnknown_08595380, 0x81, 0, 10, 192, 176, 40 + createsprite gUnknown_08595380, 0x81, 0, 10, -192, 240, 40 + createsprite gUnknown_08595380, 0x81, 0, 10, 192, -160, 40 + createsprite gUnknown_08595380, 0x81, 0, 10, -192, -112, 40 + createsprite gUnknown_08595380, 0x81, 0, 10, 160, 48, 40 + createsprite gUnknown_08595380, 0x81, 0, 10, -224, -32, 40 + createsprite gUnknown_08595380, 0x81, 0, 10, 112, -128, 40 return Move_LEER: @@ -7076,7 +7076,7 @@ Move_LEER: monbgprio_28 ANIM_ATTACKER setalpha 0x808 playsewithpan SE_W043, -64 - createsprite 0x85CE150, 0x2, 24, -12 + createsprite gUnknown_085CE150, 0x2, 24, -12 createvisualtask sub_80D6064, 0x5, -5, -5, 10, 0, 1 waitforvisualfinish delay 0xA @@ -7116,44 +7116,44 @@ Move_DREAM_EATER: AnimScript_82D2E51: playsewithpan SE_W207, +63 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, 5, -18, -40, 35 - createsprite 0x8592270, 0x3, -10, 20, 20, 39 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 5, -18, -40, 35 + createsprite gUnknown_08592270, 0x3, -10, 20, 20, 39 delay 0x4 playsewithpan SE_W207, +63 - createsprite 0x8592270, 0x3, 0, 5, 28, 26 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 - createsprite 0x8592270, 0x3, -10, 20, 40, 39 + createsprite gUnknown_08592270, 0x3, 0, 5, 28, 26 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, -10, 20, 40, 39 delay 0x4 playsewithpan SE_W207, +63 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 - createsprite 0x8592270, 0x3, -5, 15, 16, 33 - createsprite 0x8592270, 0x3, 10, -5, -32, 26 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, -5, 15, 16, 33 + createsprite gUnknown_08592270, 0x3, 10, -5, -32, 26 delay 0x4 playsewithpan SE_W207, +63 - createsprite 0x8592270, 0x3, 0, -15, -16, 36 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, 0, -15, -16, 36 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 delay 0x4 playsewithpan SE_W207, +63 - createsprite 0x8592270, 0x3, -5, 15, 16, 33 - createsprite 0x8592270, 0x3, 0, -15, -16, 36 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, -5, 15, 16, 33 + createsprite gUnknown_08592270, 0x3, 0, -15, -16, 36 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 delay 0x4 playsewithpan SE_W207, +63 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, -5, 15, 16, 33 - createsprite 0x8592270, 0x3, 10, -5, -40, 26 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, -5, 15, 16, 33 + createsprite gUnknown_08592270, 0x3, 10, -5, -40, 26 delay 0x4 playsewithpan SE_W207, +63 - createsprite 0x8592270, 0x3, -5, 15, 36, 33 - createsprite 0x8592270, 0x3, 10, -5, -8, 26 - createsprite 0x8592270, 0x3, -10, 20, 20, 39 + createsprite gUnknown_08592270, 0x3, -5, 15, 36, 33 + createsprite gUnknown_08592270, 0x3, 10, -5, -8, 26 + createsprite gUnknown_08592270, 0x3, -10, 20, 20, 39 delay 0x4 playsewithpan SE_W207, +63 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, 0, 5, 8, 26 - createsprite 0x8592270, 0x3, 5, -18, -20, 35 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 0, 5, 8, 26 + createsprite gUnknown_08592270, 0x3, 5, -18, -20, 35 delay 0x4 return @@ -7166,22 +7166,22 @@ Move_POISON_GAS: setalpha 0x80C delay 0x0 playsewithpan SE_W054, -64 - createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gUnknown_08595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 0x4 playsewithpan SE_W054, -64 - createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gUnknown_08595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 0x4 playsewithpan SE_W054, -64 - createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gUnknown_08595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 0x4 playsewithpan SE_W054, -64 - createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gUnknown_08595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 0x4 playsewithpan SE_W054, -64 - createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gUnknown_08595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 0x4 playsewithpan SE_W054, -64 - createsprite 0x8595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 + createsprite gUnknown_08595C9C, 0x80, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 0x28 loopsewithpan SE_W054, +63, 0x1C, 0x6 createvisualtask sub_8115A04, 0x2, 4, 6, 2, 0, 12, 26650 @@ -7235,7 +7235,7 @@ Move_PSYBEAM: end AnimScript_82D319C: - createsprite 0x859663C, 0x82, 16, 0, 0, 0, 13, 0 + createsprite gUnknown_0859663C, 0x82, 16, 0, 0, 0, 13, 0 delay 0x4 return @@ -7253,8 +7253,8 @@ Move_HYPNOSIS: AnimScript_82D31E5: playsewithpan SE_W048, -64 - createsprite 0x859663C, 0x82, 0, 8, 0, 8, 27, 0 - createsprite 0x859663C, 0x82, 16, -8, 0, -8, 27, 0 + createsprite gUnknown_0859663C, 0x82, 0, 8, 0, 8, 27, 0 + createsprite gUnknown_0859663C, 0x82, 16, -8, 0, -8, 27, 0 delay 0x6 return @@ -7277,9 +7277,9 @@ Move_PSYWAVE: end AnimScript_82D3275: - createsprite 0x8595170, 0x83, 10, 10, 0, 16 + createsprite gUnknown_08595170, 0x83, 10, 10, 0, 16 delay 0x4 - createsprite 0x8595170, 0x83, 10, 10, 0, 16 + createsprite gUnknown_08595170, 0x83, 10, 10, 0, 16 delay 0x4 return @@ -7287,15 +7287,15 @@ Move_ZAP_CANNON: loadspritegfx 0x27BB loadspritegfx 0x271B playsewithpan SE_W086, -64 - createsprite 0x8595764, 0x83, 10, 0, 0, 0, 30, 0 - createsprite 0x8595790, 0x84, 10, 0, 16, 30, 0, 40, 0 - createsprite 0x8595790, 0x84, 10, 0, 16, 30, 64, 40, 1 - createsprite 0x8595790, 0x84, 10, 0, 16, 30, 128, 40, 0 - createsprite 0x8595790, 0x84, 10, 0, 16, 30, 192, 40, 2 - createsprite 0x8595790, 0x84, 10, 0, 8, 30, 32, 40, 0 - createsprite 0x8595790, 0x84, 10, 0, 8, 30, 96, 40, 1 - createsprite 0x8595790, 0x84, 10, 0, 8, 30, 160, 40, 0 - createsprite 0x8595790, 0x84, 10, 0, 8, 30, 224, 40, 2 + createsprite gUnknown_08595764, 0x83, 10, 0, 0, 0, 30, 0 + createsprite gUnknown_08595790, 0x84, 10, 0, 16, 30, 0, 40, 0 + createsprite gUnknown_08595790, 0x84, 10, 0, 16, 30, 64, 40, 1 + createsprite gUnknown_08595790, 0x84, 10, 0, 16, 30, 128, 40, 0 + createsprite gUnknown_08595790, 0x84, 10, 0, 16, 30, 192, 40, 2 + createsprite gUnknown_08595790, 0x84, 10, 0, 8, 30, 32, 40, 0 + createsprite gUnknown_08595790, 0x84, 10, 0, 8, 30, 96, 40, 1 + createsprite gUnknown_08595790, 0x84, 10, 0, 8, 30, 160, 40, 0 + createsprite gUnknown_08595790, 0x84, 10, 0, 8, 30, 224, 40, 2 waitforvisualfinish createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 5, 1 delay 0xF @@ -7316,16 +7316,16 @@ Move_STEEL_WING: loopsewithpan SE_W017, -64, 0x14, 0x2 createvisualtask sub_80D5738, 0x2, 0, 12, 4, 1, 4 createvisualtask sub_810DED8, 0x5, 1, 70 - createsprite 0x85962A4, 0x2, -25, 0, 0, 0, 20 - createsprite 0x85962A4, 0x2, 25, 0, 0, 0, 20 + createsprite gUnknown_085962A4, 0x2, -25, 0, 0, 0, 20 + createsprite gUnknown_085962A4, 0x2, 25, 0, 0, 0, 20 delay 0x18 - createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 9 + createsprite gUnknown_0857FE70, 0x2, 0, 24, 0, 0, 9 delay 0x11 - createsprite 0x8597358, 0x2, 16, 0, 1, 1 - createsprite 0x8597358, 0x2, -16, 0, 1, 1 + createsprite gUnknown_08597358, 0x2, 16, 0, 1, 1 + createsprite gUnknown_08597358, 0x2, -16, 0, 1, 1 playsewithpan SE_W013, +63 waitforvisualfinish - createsprite 0x857FE58, 0x2, 0, 0, 11 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 11 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -7338,9 +7338,9 @@ Move_IRON_TAIL: waitforvisualfinish monbg ANIM_TARGET setalpha 0x80C - createsprite 0x857FE28, 0x2, 4, 4 + createsprite gUnknown_0857FE28, 0x2, 4, 4 delay 0x6 - createsprite 0x8597358, 0x82, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x82, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 playsewithpan SE_W233B, +63 waitforvisualfinish @@ -7358,9 +7358,9 @@ Move_POISON_TAIL: waitforvisualfinish monbg ANIM_TARGET setalpha 0x80C - createsprite 0x857FE28, 0x2, 4, 4 + createsprite gUnknown_0857FE28, 0x2, 4, 4 delay 0x6 - createsprite 0x8597358, 0x82, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x82, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 playsewithpan SE_W233B, +63 waitforvisualfinish @@ -7376,19 +7376,19 @@ Move_METAL_CLAW: loopsewithpan SE_W231, -64, 0x1C, 0x2 createvisualtask sub_81144F8, 0x5, 0, 0, 0 waitforvisualfinish - createsprite 0x857FE28, 0x2, 6, 4 + createsprite gUnknown_0857FE28, 0x2, 6, 4 delay 0x2 playsewithpan SE_W013, +63 - createsprite 0x8597138, 0x82, -10, -10, 0 - createsprite 0x8597138, 0x82, -10, 10, 0 - createsprite 0x85972D8, 0x2, -4, 1, 10, 3, 1 + createsprite gUnknown_08597138, 0x82, -10, -10, 0 + createsprite gUnknown_08597138, 0x82, -10, 10, 0 + createsprite gUnknown_085972D8, 0x2, -4, 1, 10, 3, 1 delay 0x8 - createsprite 0x857FE28, 0x2, 6, 4 + createsprite gUnknown_0857FE28, 0x2, 6, 4 delay 0x2 playsewithpan SE_W013, +63 - createsprite 0x8597138, 0x82, 10, -10, 1 - createsprite 0x8597138, 0x82, 10, 10, 1 - createsprite 0x85972D8, 0x2, -4, 1, 10, 3, 1 + createsprite gUnknown_08597138, 0x82, 10, -10, 1 + createsprite gUnknown_08597138, 0x82, 10, 10, 1 + createsprite gUnknown_085972D8, 0x2, -4, 1, 10, 3, 1 waitforvisualfinish end @@ -7415,22 +7415,22 @@ Move_EGG_BOMB: loadspritegfx 0x27D6 loadspritegfx 0x27BF playsewithpan SE_W039, -64 - createsprite 0x8593488, 0x82, 10, 0, 0, 0, 25, -32 + createsprite gUnknown_08593488, 0x82, 10, 0, 0, 0, 25, -32 waitforvisualfinish createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 16, 1 - createsprite 0x859371C, 0x84, 6, 5, 1, 0 + createsprite gUnknown_0859371C, 0x84, 6, 5, 1, 0 playsewithpan SE_W120, +63 delay 0x3 - createsprite 0x859371C, 0x84, -16, -15, 1, 0 + createsprite gUnknown_0859371C, 0x84, -16, -15, 1, 0 playsewithpan SE_W120, +63 delay 0x3 - createsprite 0x859371C, 0x84, 16, -5, 1, 0 + createsprite gUnknown_0859371C, 0x84, 16, -5, 1, 0 playsewithpan SE_W120, +63 delay 0x3 - createsprite 0x859371C, 0x84, -12, 18, 1, 0 + createsprite gUnknown_0859371C, 0x84, -12, 18, 1, 0 playsewithpan SE_W120, +63 delay 0x3 - createsprite 0x859371C, 0x84, 0, 5, 1, 0 + createsprite gUnknown_0859371C, 0x84, 0, 5, 1, 0 playsewithpan SE_W120, +63 delay 0x3 waitforvisualfinish @@ -7442,7 +7442,7 @@ Move_SHADOW_BALL: waitbgfadein delay 0xF createsoundtask sub_8158C58, 168, -64, 63, 5, 5, 0, 5 - createsprite 0x8596D58, 0x82, 16, 16, 8 + createsprite gUnknown_08596D58, 0x82, 16, 16, 8 waitforvisualfinish playsewithpan SE_W028, +63 createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 8, 1 @@ -7455,7 +7455,7 @@ Move_LICK: loadspritegfx 0x27C1 delay 0xF playsewithpan SE_W122, +63 - createsprite 0x8596D8C, 0x82, 0, 0 + createsprite gUnknown_08596D8C, 0x82, 0, 0 createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 16, 1 waitforvisualfinish end @@ -7492,21 +7492,21 @@ AnimScript_82D3745: createvisualtask sub_8116620, 0xA, 2, 2, 0, 11, 31 createvisualtask sub_80D52D0, 0x2, 0, 1, 0, 32, 1 waitforvisualfinish - createsprite 0x857FE70, 0x2, 0, 24, 0, 0, 4 + createsprite gUnknown_0857FE70, 0x2, 0, 24, 0, 0, 4 waitforvisualfinish createvisualtask sub_80D5484, 0x2, 0, 2, 0, 12, 1 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 16, 1 playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x1, 18, -8, 1, 1 + createsprite gUnknown_08597358, 0x1, 18, -8, 1, 1 delay 0x5 playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x1, -18, 8, 1, 1 + createsprite gUnknown_08597358, 0x1, -18, 8, 1, 1 delay 0x5 playsewithpan SE_W004, +63 - createsprite 0x8597358, 0x1, -8, -5, 1, 1 + createsprite gUnknown_08597358, 0x1, -8, -5, 1, 1 waitforvisualfinish delay 0x5 - createsprite 0x857FE58, 0x2, 0, 0, 7 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 7 waitforvisualfinish createvisualtask sub_8116620, 0xA, 2, 2, 11, 0, 31 waitforvisualfinish @@ -7519,7 +7519,7 @@ Move_STRING_SHOT: loadspritegfx 0x27C4 monbg ANIM_DEF_PARTNER delay 0x0 - createsprite 0x8597274, 0x5, 1, 2, 0, 9, 0 + createsprite gUnknown_08597274, 0x5, 1, 2, 0, 9, 0 waitforvisualfinish loopsewithpan SE_W081, -64, 0x9, 0x6 call AnimScript_82D38CC @@ -7542,20 +7542,20 @@ Move_STRING_SHOT: call AnimScript_82D38CC waitforvisualfinish playsewithpan SE_W081B, +63 - createsprite 0x85969F8, 0x82, 0, 10 + createsprite gUnknown_085969F8, 0x82, 0, 10 delay 0x4 - createsprite 0x85969F8, 0x82, 0, -2 + createsprite gUnknown_085969F8, 0x82, 0, -2 delay 0x4 - createsprite 0x85969F8, 0x82, 0, 22 + createsprite gUnknown_085969F8, 0x82, 0, 22 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER delay 0x1 waitforvisualfinish - createsprite 0x8597274, 0x5, 1, 2, 9, 0, 0 + createsprite gUnknown_08597274, 0x5, 1, 2, 9, 0, 0 end AnimScript_82D38CC: - createsprite 0x85969E0, 0x82, 20, 0, 512, 20, 1 + createsprite gUnknown_085969E0, 0x82, 20, 0, 512, 20, 1 delay 0x1 return @@ -7564,7 +7564,7 @@ Move_SPIDER_WEB: loadspritegfx 0x27C4 monbg ANIM_DEF_PARTNER delay 0x0 - createsprite 0x8597274, 0x5, 1, 2, 0, 9, 0 + createsprite gUnknown_08597274, 0x5, 1, 2, 0, 9, 0 waitforvisualfinish monbgprio_28 ANIM_TARGET loopsewithpan SE_W081, -64, 0x9, 0x6 @@ -7584,15 +7584,15 @@ Move_SPIDER_WEB: call AnimScript_82D396D waitforvisualfinish playsewithpan SE_W081B, +63 - createsprite 0x8596A2C, 0x2 + createsprite gUnknown_08596A2C, 0x2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER delay 0x1 - createsprite 0x8597274, 0x5, 1, 2, 9, 0, 0 + createsprite gUnknown_08597274, 0x5, 1, 2, 9, 0, 0 end AnimScript_82D396D: - createsprite 0x85969E0, 0x82, 20, 0, 512, 20, 0 + createsprite gUnknown_085969E0, 0x82, 20, 0, 512, 20, 0 delay 0x1 return @@ -7606,9 +7606,9 @@ AnimScript_82D398A: AnimScript_82D398C: loadspritegfx 0x2719 playsewithpan SE_W016, -64 - createsprite 0x8593550, 0x2, 32, 0, 16, 16, 0, 7, 40 - createsprite 0x8593550, 0x2, 32, 0, 16, 16, 85, 7, 40 - createsprite 0x8593550, 0x2, 32, 0, 16, 16, 170, 7, 40 + createsprite gUnknown_08593550, 0x2, 32, 0, 16, 16, 0, 7, 40 + createsprite gUnknown_08593550, 0x2, 32, 0, 16, 16, 85, 7, 40 + createsprite gUnknown_08593550, 0x2, 32, 0, 16, 16, 170, 7, 40 waitforvisualfinish playsewithpan SE_W016B, -64 goto AnimScript_82D398A @@ -7619,13 +7619,13 @@ AnimScript_82D39DC: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W013B, -64 - createsprite 0x85962D4, 0x2, 14, 8, 0, 0, 22, 2, 1 + createsprite gUnknown_085962D4, 0x2, 14, 8, 0, 0, 22, 2, 1 delay 0x2 playsewithpan SE_W013B, -64 - createsprite 0x85962D4, 0x2, 14, -8, 16, 14, 22, 1, 1 + createsprite gUnknown_085962D4, 0x2, 14, -8, 16, 14, 22, 1, 1 delay 0x2 playsewithpan SE_W013B, -64 - createsprite 0x85962D4, 0x2, 14, 12, -16, -14, 22, 0, 1 + createsprite gUnknown_085962D4, 0x2, 14, 12, -16, -14, 22, 0, 1 delay 0x11 playsewithpan SE_W013, +63 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 10, 1 @@ -7641,7 +7641,7 @@ Move_DISABLE: monbgprio_28 ANIM_TARGET setalpha 0x808 playsewithpan SE_W197, -64 - createsprite 0x853EE84, 0xD, 24, -16 + createsprite gUnknown_0853EE84, 0xD, 24, -16 waitforvisualfinish createvisualtask sub_81045B0, 0x5 loopsewithpan SE_W020, +63, 0xF, 0x4 @@ -7670,19 +7670,19 @@ Move_RECOVER: end AnimScript_82D3AD5: - createsprite 0x85921E0, 0x2, 40, -10, 13 + createsprite gUnknown_085921E0, 0x2, 40, -10, 13 delay 0x3 - createsprite 0x85921E0, 0x2, -35, -10, 13 + createsprite gUnknown_085921E0, 0x2, -35, -10, 13 delay 0x3 - createsprite 0x85921E0, 0x2, 15, -40, 13 + createsprite gUnknown_085921E0, 0x2, 15, -40, 13 delay 0x3 - createsprite 0x85921E0, 0x2, -10, -32, 13 + createsprite gUnknown_085921E0, 0x2, -10, -32, 13 delay 0x3 - createsprite 0x85921E0, 0x2, 25, -20, 13 + createsprite gUnknown_085921E0, 0x2, 25, -20, 13 delay 0x3 - createsprite 0x85921E0, 0x2, -40, -20, 13 + createsprite gUnknown_085921E0, 0x2, -40, -20, 13 delay 0x3 - createsprite 0x85921E0, 0x2, 5, -40, 13 + createsprite gUnknown_085921E0, 0x2, 5, -40, 13 delay 0x3 return @@ -7694,7 +7694,7 @@ Move_MIMIC: panse_1B SE_W107, +63, -64, -3, 0x0 createvisualtask sub_80FF458, 0x5, 128, 24 delay 0xF - createsprite 0x85924DC, 0x82, -12, 24 + createsprite gUnknown_085924DC, 0x82, -12, 24 delay 0xA setarg 0x7, 0xFFFF waitforvisualfinish @@ -7708,12 +7708,12 @@ Move_MIMIC: Move_CONSTRICT: loadspritegfx 0x27CA loopsewithpan SE_W010, +63, 0x6, 0x4 - createsprite 0x8592494, 0x84, 0, 16, 0, 2 + createsprite gUnknown_08592494, 0x84, 0, 16, 0, 2 delay 0x7 - createsprite 0x8592494, 0x83, 0, 0, 0, 2 - createsprite 0x8592494, 0x82, 0, 8, 1, 2 + createsprite gUnknown_08592494, 0x83, 0, 0, 0, 2 + createsprite gUnknown_08592494, 0x82, 0, 8, 1, 2 delay 0x7 - createsprite 0x8592494, 0x83, 0, -8, 1, 2 + createsprite gUnknown_08592494, 0x83, 0, -8, 1, 2 delay 0x8 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 6, 1 delay 0x14 @@ -7732,7 +7732,7 @@ AnimScript_82D3BFB: createvisualtask sub_8112758, 0x5 waitforvisualfinish delay 0x14 - createsprite 0x8596DD0, 0x2 + createsprite gUnknown_08596DD0, 0x2 delay 0x3C call AnimScript_82D3C62 delay 0x29 @@ -7744,10 +7744,10 @@ AnimScript_82D3BFB: delay 0x1 monbg ANIM_DEF_PARTNER playsewithpan SE_W171, +63 - createsprite 0x8596DE8, 0x82 + createsprite gUnknown_08596DE8, 0x82 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 14, 1 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 1, 16, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 16, 0, 0 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -7778,15 +7778,15 @@ Move_SOFT_BOILED: monbg ANIM_ATK_PARTNER playsewithpan SE_W039, -64 createvisualtask sub_80D51AC, 0x2, 0, 0, 2, 6, 1 - createsprite 0x85937B0, 0x4, 0, 16, 0 - createsprite 0x85937B0, 0x4, 0, 16, 1 + createsprite gUnknown_085937B0, 0x4, 0, 16, 0 + createsprite gUnknown_085937B0, 0x4, 0, 16, 1 delay 0x78 delay 0x7 playsewithpan SE_W030, -64 - createsprite 0x8597274, 0x2, 31, 3, 10, 0, 31500 - createsprite 0x859381C, 0x3, 31, 16, 0, 1 + createsprite gUnknown_08597274, 0x2, 31, 3, 10, 0, 31500 + createsprite gUnknown_0859381C, 0x3, 31, 16, 0, 1 delay 0x8 - createsprite 0x859381C, 0x3, 31, 16, 0, 1 + createsprite gUnknown_0859381C, 0x3, 31, 16, 0, 1 delay 0x3C setarg 0x7, 0xFFFF waitforvisualfinish @@ -7801,24 +7801,24 @@ Move_HEAL_BELL: createvisualtask sub_8116620, 0xA, 10, 0, 0, 10, 0x7FFF waitforvisualfinish createvisualtask sub_8105CB4, 0x5 - createsprite 0x8593938, 0x2, 0, -24, 0, 1 + createsprite gUnknown_08593938, 0x2, 0, -24, 0, 1 delay 0xC - createsprite 0x8593958, 0x28, 0, -24, 48, -18, 35, 0, 0 - createsprite 0x8593958, 0x28, 0, -24, -48, 20, 30, 1, 1 - createsprite 0x8593958, 0x28, 0, -24, -38, -29, 30, 2, 2 - createsprite 0x8593958, 0x28, 0, -24, 36, 18, 30, 3, 3 + createsprite gUnknown_08593958, 0x28, 0, -24, 48, -18, 35, 0, 0 + createsprite gUnknown_08593958, 0x28, 0, -24, -48, 20, 30, 1, 1 + createsprite gUnknown_08593958, 0x28, 0, -24, -38, -29, 30, 2, 2 + createsprite gUnknown_08593958, 0x28, 0, -24, 36, 18, 30, 3, 3 call AnimScript_82D3EF8 delay 0x21 - createsprite 0x8593958, 0x28, 0, -24, 19, 26, 35, 4, 4 - createsprite 0x8593958, 0x28, 0, -24, -34, -12, 30, 5, 5 - createsprite 0x8593958, 0x28, 0, -24, 41, -20, 34, 6, 2 - createsprite 0x8593958, 0x28, 0, -24, -15, 26, 32, 7, 0 + createsprite gUnknown_08593958, 0x28, 0, -24, 19, 26, 35, 4, 4 + createsprite gUnknown_08593958, 0x28, 0, -24, -34, -12, 30, 5, 5 + createsprite gUnknown_08593958, 0x28, 0, -24, 41, -20, 34, 6, 2 + createsprite gUnknown_08593958, 0x28, 0, -24, -15, 26, 32, 7, 0 call AnimScript_82D3EF8 delay 0x21 - createsprite 0x8593958, 0x28, 0, -24, -48, 18, 31, 0, 2 - createsprite 0x8593958, 0x28, 0, -24, 48, -20, 30, 2, 5 - createsprite 0x8593958, 0x28, 0, -24, 38, 29, 33, 4, 3 - createsprite 0x8593958, 0x28, 0, -24, -36, -18, 30, 6, 1 + createsprite gUnknown_08593958, 0x28, 0, -24, -48, 18, 31, 0, 2 + createsprite gUnknown_08593958, 0x28, 0, -24, 48, -20, 30, 2, 5 + createsprite gUnknown_08593958, 0x28, 0, -24, 38, 29, 33, 4, 3 + createsprite gUnknown_08593958, 0x28, 0, -24, -36, -18, 30, 6, 1 call AnimScript_82D3EF8 waitforvisualfinish createvisualtask sub_8105D60, 0x5 @@ -7828,22 +7828,22 @@ Move_HEAL_BELL: unloadspritegfx 0x27DB loadspritegfx 0x2741 playsewithpan SE_W234, -64 - createsprite 0x8592B94, 0x10, -15, 0, 0, 0, 32, 60, 1 + createsprite gUnknown_08592B94, 0x10, -15, 0, 0, 0, 32, 60, 1 delay 0x8 - createsprite 0x8592B94, 0x10, 12, -5, 0, 0, 32, 60, 1 + createsprite gUnknown_08592B94, 0x10, 12, -5, 0, 0, 32, 60, 1 waitforvisualfinish unloadspritegfx 0x2741 loadspritegfx 0x27DB playsewithpan SE_REAPOKE, -64 createvisualtask sub_8116664, 0xA, 4, 3, 10, 0, 31500 createvisualtask sub_8116620, 0xA, 10, 3, 10, 0, 0x7FFF - createsprite 0x8593868, 0x10, 0, 0, 0, 1 + createsprite gUnknown_08593868, 0x10, 0, 0, 0, 1 end AnimScript_82D3EF8: createvisualtask sub_8116664, 0xA, 4, 3, 8, 0, 31500 createvisualtask sub_8116620, 0xA, 10, 3, 2, 10, 0x7FFF - createsprite 0x859381C, 0x28, 0, -24, 0, 1 + createsprite gUnknown_0859381C, 0x28, 0, -24, 0, 1 playsewithpan SE_W215, -64 return @@ -7855,99 +7855,99 @@ Move_FAKE_OUT: createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 5, 1 createvisualtask sub_8106020, 0x3 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 3, 16, 0, 0x7FFF + createsprite gUnknown_08597274, 0x2, 1, 3, 16, 0, 0x7FFF end Move_SCARY_FACE: loadspritegfx 0x27EA - createsprite 0x8597274, 0x2, 27, 3, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 27, 3, 0, 16, 0 playsewithpan SE_W060, -64 waitforvisualfinish delay 0xA playsewithpan SE_W043, -64 createvisualtask sub_81064F8, 0x5 delay 0xD - createsprite 0x8593A84, 0x0, -16, -8 - createsprite 0x8593A84, 0x0, 16, -8 + createsprite gUnknown_08593A84, 0x0, -16, -8 + createsprite gUnknown_08593A84, 0x0, 16, -8 waitforvisualfinish createvisualtask sub_810A094, 0x3, 20, 1, 0 playsewithpan SE_W081B, +63 - createsprite 0x8597274, 0x2, 27, 3, 16, 0, 0 + createsprite gUnknown_08597274, 0x2, 27, 3, 16, 0, 0 waitforvisualfinish end Move_SWEET_KISS: loadspritegfx 0x27E8 loadspritegfx 0x27EC - createsprite 0x8593AA8, 0x82, 16, -48 + createsprite gUnknown_08593AA8, 0x82, 16, -48 playsewithpan SE_W215, +63 delay 0x17 playsewithpan SE_W215, +63 delay 0x17 playsewithpan SE_W215, +63 waitforvisualfinish - createsprite 0x85939B8, 0x83, 160, -30 + createsprite gUnknown_085939B8, 0x83, 160, -30 playsewithpan SE_W213, +63 - createsprite 0x85939B8, 0x83, -256, -42 - createsprite 0x85939B8, 0x83, 128, -14 - createsprite 0x85939B8, 0x83, 416, -38 - createsprite 0x85939B8, 0x83, -128, -22 - createsprite 0x85939B8, 0x83, -384, -31 + createsprite gUnknown_085939B8, 0x83, -256, -42 + createsprite gUnknown_085939B8, 0x83, 128, -14 + createsprite gUnknown_085939B8, 0x83, 416, -38 + createsprite gUnknown_085939B8, 0x83, -128, -22 + createsprite gUnknown_085939B8, 0x83, -384, -31 end Move_LOVELY_KISS: loadspritegfx 0x27EB loadspritegfx 0x27ED - createsprite 0x8593AF0, 0x82, 0, -24 + createsprite gUnknown_08593AF0, 0x82, 0, -24 playsewithpan SE_W060B, +63 waitforvisualfinish playsewithpan SE_W213, +63 - createsprite 0x8593AC0, 0x83, -256, -42 - createsprite 0x8593AC0, 0x83, 128, -14 - createsprite 0x8593AC0, 0x83, 416, -38 - createsprite 0x8593AC0, 0x83, -128, -22 + createsprite gUnknown_08593AC0, 0x83, -256, -42 + createsprite gUnknown_08593AC0, 0x83, 128, -14 + createsprite gUnknown_08593AC0, 0x83, 416, -38 + createsprite gUnknown_08593AC0, 0x83, -128, -22 end Move_FURY_SWIPES: loadspritegfx 0x27EE - createsprite 0x857FE28, 0x2, 5, 5 + createsprite gUnknown_0857FE28, 0x2, 5, 5 delay 0x4 playsewithpan SE_W010, +63 - createsprite 0x8593B38, 0x82, 16, 0, 1 + createsprite gUnknown_08593B38, 0x82, 16, 0, 1 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 5, 1 delay 0xA - createsprite 0x857FE28, 0x82, 5, 5 + createsprite gUnknown_0857FE28, 0x82, 5, 5 delay 0x4 playsewithpan SE_W010, +63 - createsprite 0x8593B38, 0x82, -16, 0, 0 + createsprite gUnknown_08593B38, 0x82, -16, 0, 0 createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 7, 1 end Move_INGRAIN: loadspritegfx 0x27EF loadspritegfx 0x27A3 - createsprite 0x859254C, 0x2, 16, 26, -1, 2, 150 + createsprite gUnknown_0859254C, 0x2, 16, 26, -1, 2, 150 playsewithpan SE_W010, -64 delay 0xA - createsprite 0x859254C, 0x2, -32, 20, 1, 1, 140 + createsprite gUnknown_0859254C, 0x2, -32, 20, 1, 1, 140 playsewithpan SE_W010, -64 delay 0xA - createsprite 0x859254C, 0x2, 32, 22, 1, 0, 130 + createsprite gUnknown_0859254C, 0x2, 32, 22, 1, 0, 130 playsewithpan SE_W010, -64 delay 0xA - createsprite 0x859254C, 0x2, -16, 25, -1, 3, 120 + createsprite gUnknown_0859254C, 0x2, -16, 25, -1, 3, 120 playsewithpan SE_W010, -64 delay 0x28 - createsprite 0x859258C, 0x3, 32, 26, -1, 3, 30 + createsprite gUnknown_0859258C, 0x3, 32, 26, -1, 3, 30 delay 0x5 playsewithpan SE_W145C, -64 delay 0x5 - createsprite 0x859258C, 0x3, -48, 20, 1, 2, 30 + createsprite gUnknown_0859258C, 0x3, -48, 20, 1, 2, 30 playsewithpan SE_W145C, -64 delay 0x5 playsewithpan SE_W145C, -64 delay 0x5 - createsprite 0x859258C, 0x3, 48, 26, -2, 3, 18 + createsprite gUnknown_0859258C, 0x3, 48, 26, -2, 3, 18 playsewithpan SE_W145C, -64 delay 0xA waitforvisualfinish @@ -7956,7 +7956,7 @@ Move_INGRAIN: Move_PRESENT: loadspritegfx 0x27F0 createvisualtask sub_815A904, 0x2 - createsprite 0x8592610, 0x82, 0, -5, 10, 2, -1 + createsprite gUnknown_08592610, 0x82, 0, -5, 10, 2, -1 playsewithpan SE_W039, -64 delay 0xE playsewithpan SE_W145B, -64 @@ -7972,42 +7972,42 @@ Move_PRESENT: AnimScript_82D41D4: loadspritegfx 0x27D6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x83, 0, 0, 1, 1 + createsprite gUnknown_0859371C, 0x83, 0, 0, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x83, 24, -24, 1, 1 + createsprite gUnknown_0859371C, 0x83, 24, -24, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x83, -16, 16, 1, 1 + createsprite gUnknown_0859371C, 0x83, -16, 16, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x83, -24, -12, 1, 1 + createsprite gUnknown_0859371C, 0x83, -24, -12, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x83, 16, 16, 1, 1 + createsprite gUnknown_0859371C, 0x83, 16, 16, 1, 1 end AnimScript_82D423F: loadspritegfx 0x27D3 loadspritegfx 0x272F playsewithpan SE_W234, +63 - createsprite 0x8592658, 0x84, -16, 32, -3, 1 + createsprite gUnknown_08592658, 0x84, -16, 32, -3, 1 delay 0x3 - createsprite 0x8592658, 0x84, 16, 32, -3, -1 + createsprite gUnknown_08592658, 0x84, 16, 32, -3, -1 delay 0x3 - createsprite 0x8592658, 0x84, 32, 32, -3, 1 + createsprite gUnknown_08592658, 0x84, 32, 32, -3, 1 delay 0x3 - createsprite 0x8592658, 0x84, -32, 32, -3, 1 + createsprite gUnknown_08592658, 0x84, -32, 32, -3, 1 delay 0x3 - createsprite 0x8592658, 0x84, 0, 32, -3, 1 + createsprite gUnknown_08592658, 0x84, 0, 32, -3, 1 delay 0x3 - createsprite 0x8592658, 0x84, -8, 32, -3, 1 + createsprite gUnknown_08592658, 0x84, -8, 32, -3, 1 delay 0x3 - createsprite 0x8592658, 0x84, -8, 32, -3, 1 + createsprite gUnknown_08592658, 0x84, -8, 32, -3, 1 delay 0x3 - createsprite 0x8592658, 0x84, 24, 32, -3, 1 + createsprite gUnknown_08592658, 0x84, 24, 32, -3, 1 delay 0x3 - createsprite 0x8592658, 0x84, -24, 32, -3, 1 + createsprite gUnknown_08592658, 0x84, -24, 32, -3, 1 waitforvisualfinish waitsound call AnimScript_82D7A28 @@ -8017,38 +8017,38 @@ Move_BATON_PASS: loadspritegfx 0x27F2 playsewithpan SE_W226, -64 createvisualtask sub_8115A04, 0x2, 31, 1, 2, 0, 11, 31455 - createsprite 0x85CE370, 0x2 + createsprite gUnknown_085CE370, 0x2 end Move_PERISH_SONG: loadspritegfx 0x27DE - createsprite 0x8593C0C, 0x4, 0, 0, 0 - createsprite 0x8593C0C, 0x4, 1, 1, 16 - createsprite 0x8593C0C, 0x4, 2, 1, 32 - createsprite 0x8593C0C, 0x4, 3, 2, 48 - createsprite 0x8593C0C, 0x4, 4, 2, 64 - createsprite 0x8593C0C, 0x4, 5, 0, 80 - createsprite 0x8593C0C, 0x4, 6, 0, 96 - createsprite 0x8593C0C, 0x4, 7, 1, 112 - createsprite 0x8593C0C, 0x4, 8, 2, 128 - createsprite 0x8593C0C, 0x4, 9, 0, 144 - createsprite 0x8593C0C, 0x4, 10, 2, 160 - createsprite 0x8593C0C, 0x4, 11, 0, 176 - createsprite 0x8593C0C, 0x4, 12, 1, 192 - createsprite 0x8593C0C, 0x4, 13, 3, 208 - createsprite 0x8593C0C, 0x4, 14, 3, 224 - createsprite 0x8593C0C, 0x4, 15, 0, 240 - createsprite 0x8593C24, 0x4, 15, 0, 0 + createsprite gUnknown_08593C0C, 0x4, 0, 0, 0 + createsprite gUnknown_08593C0C, 0x4, 1, 1, 16 + createsprite gUnknown_08593C0C, 0x4, 2, 1, 32 + createsprite gUnknown_08593C0C, 0x4, 3, 2, 48 + createsprite gUnknown_08593C0C, 0x4, 4, 2, 64 + createsprite gUnknown_08593C0C, 0x4, 5, 0, 80 + createsprite gUnknown_08593C0C, 0x4, 6, 0, 96 + createsprite gUnknown_08593C0C, 0x4, 7, 1, 112 + createsprite gUnknown_08593C0C, 0x4, 8, 2, 128 + createsprite gUnknown_08593C0C, 0x4, 9, 0, 144 + createsprite gUnknown_08593C0C, 0x4, 10, 2, 160 + createsprite gUnknown_08593C0C, 0x4, 11, 0, 176 + createsprite gUnknown_08593C0C, 0x4, 12, 1, 192 + createsprite gUnknown_08593C0C, 0x4, 13, 3, 208 + createsprite gUnknown_08593C0C, 0x4, 14, 3, 224 + createsprite gUnknown_08593C0C, 0x4, 15, 0, 240 + createsprite gUnknown_08593C24, 0x4, 15, 0, 0 delay 0x14 panse_1B SE_W195, -64, +63, +2, 0x0 delay 0x50 - createsprite 0x8597274, 0x2, 1, 3, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 3, 0, 16, 0 createvisualtask sub_811489C, 0x5, 4, 0 createvisualtask sub_811489C, 0x5, 5, 0 createvisualtask sub_811489C, 0x5, 6, 0 createvisualtask sub_811489C, 0x5, 7, 0 delay 0x64 - createsprite 0x8597274, 0x2, 1, 3, 16, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 3, 16, 0, 0 createvisualtask sub_811489C, 0x5, 4, 1 createvisualtask sub_811489C, 0x5, 5, 1 createvisualtask sub_811489C, 0x5, 6, 1 @@ -8060,26 +8060,26 @@ Move_SLEEP_TALK: loadspritegfx 0x27F4 createvisualtask sub_80D5EB8, 0x5, 0, 4, 4096, 2, 0 delay 0x14 - createsprite 0x85CE190, 0x82, 0, 20, 5, -1 + createsprite gUnknown_085CE190, 0x82, 0, 20, 5, -1 playsewithpan SE_W173, -64 delay 0x6 - createsprite 0x85CE190, 0x82, 0, 20, 5, -1 + createsprite gUnknown_085CE190, 0x82, 0, 20, 5, -1 delay 0x6 - createsprite 0x85CE190, 0x82, 0, 20, 5, -1 + createsprite gUnknown_085CE190, 0x82, 0, 20, 5, -1 delay 0x14 - createsprite 0x85CE190, 0x82, 0, 20, 5, -5 + createsprite gUnknown_085CE190, 0x82, 0, 20, 5, -5 playsewithpan SE_W173, -64 delay 0x6 - createsprite 0x85CE190, 0x82, 0, 20, 5, -5 + createsprite gUnknown_085CE190, 0x82, 0, 20, 5, -5 delay 0x6 - createsprite 0x85CE190, 0x82, 0, 20, 5, -5 + createsprite gUnknown_085CE190, 0x82, 0, 20, 5, -5 delay 0x14 - createsprite 0x85CE190, 0x82, 0, 20, 5, -3 + createsprite gUnknown_085CE190, 0x82, 0, 20, 5, -3 playsewithpan SE_W173, -64 delay 0x6 - createsprite 0x85CE190, 0x82, 0, 20, 5, -3 + createsprite gUnknown_085CE190, 0x82, 0, 20, 5, -3 delay 0x6 - createsprite 0x85CE190, 0x82, 0, 20, 5, -3 + createsprite gUnknown_085CE190, 0x82, 0, 20, 5, -3 waitforvisualfinish end @@ -8096,7 +8096,7 @@ Move_HYPER_FANG: AnimScript_82D455C: waitbgfadeout - createsprite 0x85CE1DC, 0x82 + createsprite gUnknown_085CE1DC, 0x82 waitbgfadein createvisualtask sub_80D51AC, 0x3, 1, 0, 10, 10, 1 playsewithpan SE_W043, +63 @@ -8120,42 +8120,42 @@ AnimScript_82D458E: Move_TRI_ATTACK: loadspritegfx 0x27F6 - createsprite 0x85CE2F8, 0x82, 16, 0 + createsprite gUnknown_085CE2F8, 0x82, 16, 0 playsewithpan SE_W161, -64 delay 0x14 playsewithpan SE_W161, -64 delay 0x14 createsoundtask sub_8158C58, 220, -64, 63, 5, 6, 0, 7 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 2, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 16, 0 delay 0x10 loadspritegfx 0x2731 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, 0 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, -1, 0 playsewithpan SE_W172B, +63 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, 0, 1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, 0, 1 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, -1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, -1, -1 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, 2, 1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, 2, 1 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, 1, -1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, 1, -1 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, -1, 1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, -1, 1 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, 1, -2 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, 1, -2 delay 0x1 - createsprite 0x8595410, 0x82, 0, 0, 30, 30, 3, 1 + createsprite gUnknown_08595410, 0x82, 0, 0, 30, 30, 3, 1 delay 0x2 createvisualtask sub_810A094, 0x2, 20, 3, 1, 1 waitforvisualfinish loadspritegfx 0x2735 createvisualtask sub_8115F10, 0x2, 257, 257, 257 playsewithpan SE_W161B, +63 - createsprite 0x85956C0, 0x82, 0, -48 + createsprite gUnknown_085956C0, 0x82, 0, -48 delay 0x1 - createsprite 0x85956C0, 0x82, 0, -16 + createsprite gUnknown_085956C0, 0x82, 0, -16 delay 0x1 - createsprite 0x85956C0, 0x82, 0, 16 + createsprite gUnknown_085956C0, 0x82, 0, 16 delay 0x14 createvisualtask sub_810A094, 0x2, 20, 3, 1, 0 delay 0x2 @@ -8163,7 +8163,7 @@ Move_TRI_ATTACK: waitforvisualfinish loadspritegfx 0x279D call AnimScript_82D7720 - createsprite 0x8597274, 0x2, 1, 2, 16, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, 0 waitforvisualfinish end @@ -8175,25 +8175,25 @@ Move_WILL_O_WISP: playsewithpan SE_W052, -64 waitplaysewithpan SE_W052, -64, 0xA createvisualtask sub_8159278, 0x2, -64, -64, 1, 0 - createsprite 0x859563C, 0x2, 0, 0, 0 + createsprite gUnknown_0859563C, 0x2, 0, 0, 0 delay 0x3 - createsprite 0x859563C, 0x3, 0, 0, 1 + createsprite gUnknown_0859563C, 0x3, 0, 0, 1 delay 0x3 - createsprite 0x859563C, 0x4, 0, 0, 2 + createsprite gUnknown_0859563C, 0x4, 0, 0, 2 delay 0x3 - createsprite 0x859563C, 0x4, 0, 0, 3 + createsprite gUnknown_0859563C, 0x4, 0, 0, 3 delay 0x28 createvisualtask sub_8159278, 0x2, -64, 63, 2, 0 waitforvisualfinish monbgprio_29 playsewithpan SE_W172B, +63 createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 13, 1 - createsprite 0x859566C, 0x2, 0 - createsprite 0x859566C, 0x2, 42 - createsprite 0x859566C, 0x2, 84 - createsprite 0x859566C, 0x2, 126 - createsprite 0x859566C, 0x2, 168 - createsprite 0x859566C, 0x2, 210 + createsprite gUnknown_0859566C, 0x2, 0 + createsprite gUnknown_0859566C, 0x2, 42 + createsprite gUnknown_0859566C, 0x2, 84 + createsprite gUnknown_0859566C, 0x2, 126 + createsprite gUnknown_0859566C, 0x2, 168 + createsprite gUnknown_0859566C, 0x2, 210 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -8204,11 +8204,11 @@ Move_ENCORE: createvisualtask sub_815ABEC, 0x2 createvisualtask sub_8116960, 0x2, 248, 3, 0, 10, 0 waitforvisualfinish - createsprite 0x85CE22C, 0x82, 0, -8 - createsprite 0x85CE244, 0x2, -2, 0, 0, 0, 9 - createsprite 0x85CE244, 0x2, 2, 0, 1, 0, 9 - createsprite 0x85CE25C, 0x3, -2, 0, 0, 0, 9 - createsprite 0x85CE25C, 0x3, 2, 0, 1, 0, 9 + createsprite gUnknown_085CE22C, 0x82, 0, -8 + createsprite gUnknown_085CE244, 0x2, -2, 0, 0, 0, 9 + createsprite gUnknown_085CE244, 0x2, 2, 0, 1, 0, 9 + createsprite gUnknown_085CE25C, 0x3, -2, 0, 0, 0, 9 + createsprite gUnknown_085CE25C, 0x3, 2, 0, 1, 0, 9 delay 0x10 createvisualtask sub_8159244, 0x5, 223, 63 createvisualtask sub_80D5EB8, 0x5, 1, 8, 1536, 5, 1 @@ -8221,8 +8221,8 @@ Move_ENCORE: Move_TRICK: loadspritegfx 0x27F0 loadspritegfx 0x27DF - createsprite 0x85926E8, 0x2, -40, 80 - createsprite 0x85926E8, 0x2, -40, 208 + createsprite gUnknown_085926E8, 0x2, -40, 80 + createsprite gUnknown_085926E8, 0x2, -40, 208 delay 0x10 playsewithpan SE_W166, 0 createvisualtask sub_8106020, 0x3 @@ -8249,16 +8249,16 @@ Move_TRICK: Move_WISH: loadspritegfx 0x27F9 loadspritegfx 0x2741 - createsprite 0x8597274, 0x2, 1, 3, 0, 10, 0 + createsprite gUnknown_08597274, 0x2, 1, 3, 0, 10, 0 waitforvisualfinish panse_27 SE_W115, +63, -64, -3, 0x0 - createsprite 0x85CE388, 0x28 + createsprite gUnknown_085CE388, 0x28 waitforvisualfinish delay 0x3C loopsewithpan SE_W215, -64, 0x10, 0x3 call AnimScript_82D79B4 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 3, 10, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 3, 10, 0, 0 waitforvisualfinish end @@ -8270,25 +8270,25 @@ Move_STOCKPILE: call AnimScript_82D4972 call AnimScript_82D4972 waitforvisualfinish - createsprite 0x8597274, 0x2, 2, 0, 12, 0, 0x7FFF + createsprite gUnknown_08597274, 0x2, 2, 0, 12, 0, 0x7FFF end AnimScript_82D4972: - createsprite 0x8592244, 0x2, 55, 55, 13 + createsprite gUnknown_08592244, 0x2, 55, 55, 13 delay 0x1 - createsprite 0x8592244, 0x2, -55, -55, 13 + createsprite gUnknown_08592244, 0x2, -55, -55, 13 delay 0x1 - createsprite 0x8592244, 0x2, 0, 55, 13 + createsprite gUnknown_08592244, 0x2, 0, 55, 13 delay 0x1 - createsprite 0x8592244, 0x2, 0, -55, 13 + createsprite gUnknown_08592244, 0x2, 0, -55, 13 delay 0x1 - createsprite 0x8592244, 0x2, 55, -34, 13 + createsprite gUnknown_08592244, 0x2, 55, -34, 13 delay 0x1 - createsprite 0x8592244, 0x2, 55, 34, 13 + createsprite gUnknown_08592244, 0x2, 55, 34, 13 delay 0x1 - createsprite 0x8592244, 0x2, -55, -34, 13 + createsprite gUnknown_08592244, 0x2, -55, -34, 13 delay 0x1 - createsprite 0x8592244, 0x2, -55, 34, 13 + createsprite gUnknown_08592244, 0x2, -55, 34, 13 delay 0x1 return @@ -8301,14 +8301,14 @@ Move_SPIT_UP: delay 0x2D playsewithpan SE_W255, -64 delay 0x3 - createsprite 0x8593A50, 0x2, 0, 12 - createsprite 0x8593A50, 0x2, 32, 12 - createsprite 0x8593A50, 0x2, 64, 12 - createsprite 0x8593A50, 0x2, 96, 12 - createsprite 0x8593A50, 0x2, 128, 12 - createsprite 0x8593A50, 0x2, 160, 12 - createsprite 0x8593A50, 0x2, 192, 12 - createsprite 0x8593A50, 0x2, 224, 12 + createsprite gUnknown_08593A50, 0x2, 0, 12 + createsprite gUnknown_08593A50, 0x2, 32, 12 + createsprite gUnknown_08593A50, 0x2, 64, 12 + createsprite gUnknown_08593A50, 0x2, 96, 12 + createsprite gUnknown_08593A50, 0x2, 128, 12 + createsprite gUnknown_08593A50, 0x2, 160, 12 + createsprite gUnknown_08593A50, 0x2, 192, 12 + createsprite gUnknown_08593A50, 0x2, 224, 12 delay 0x5 jumpifmoveturn 0x2, AnimScript_82D4AB8 jumpifmoveturn 0x3, AnimScript_82D4AE1 @@ -8317,29 +8317,29 @@ AnimScript_82D4A7B: delay 0x5 createvisualtask sub_80D6388, 0x2, 0, 1, 8, 1, 0 playsewithpan SE_W003, +63 - createsprite 0x85973E8, 0x83, -12, 10, 1, 1 + createsprite gUnknown_085973E8, 0x83, -12, 10, 1, 1 delay 0x5 playsewithpan SE_W003, +63 - createsprite 0x85973E8, 0x83, 12, -10, 1, 1 + createsprite gUnknown_085973E8, 0x83, 12, -10, 1, 1 waitforvisualfinish end AnimScript_82D4AB8: - createsprite 0x8593A50, 0x2, 16 - createsprite 0x8593A50, 0x2, 80 - createsprite 0x8593A50, 0x2, 144 - createsprite 0x8593A50, 0x2, 208 + createsprite gUnknown_08593A50, 0x2, 16 + createsprite gUnknown_08593A50, 0x2, 80 + createsprite gUnknown_08593A50, 0x2, 144 + createsprite gUnknown_08593A50, 0x2, 208 goto AnimScript_82D4A7B AnimScript_82D4AE1: - createsprite 0x8593A50, 0x2, 16 - createsprite 0x8593A50, 0x2, 48 - createsprite 0x8593A50, 0x2, 80 - createsprite 0x8593A50, 0x2, 112 - createsprite 0x8593A50, 0x2, 144 - createsprite 0x8593A50, 0x2, 176 - createsprite 0x8593A50, 0x2, 208 - createsprite 0x8593A50, 0x2, 240 + createsprite gUnknown_08593A50, 0x2, 16 + createsprite gUnknown_08593A50, 0x2, 48 + createsprite gUnknown_08593A50, 0x2, 80 + createsprite gUnknown_08593A50, 0x2, 112 + createsprite gUnknown_08593A50, 0x2, 144 + createsprite gUnknown_08593A50, 0x2, 176 + createsprite gUnknown_08593A50, 0x2, 208 + createsprite gUnknown_08593A50, 0x2, 240 goto AnimScript_82D4A7B Move_SWALLOW: @@ -8361,15 +8361,15 @@ AnimScript_82D4B78: end AnimScript_82D4B7F: - createsprite 0x85CE418, 0x2, 0, -8 + createsprite gUnknown_085CE418, 0x2, 0, -8 delay 0x1 - createsprite 0x85CE418, 0x2, -24, -8 + createsprite gUnknown_085CE418, 0x2, -24, -8 delay 0x1 - createsprite 0x85CE418, 0x2, 16, -8 + createsprite gUnknown_085CE418, 0x2, 16, -8 delay 0x1 - createsprite 0x85CE418, 0x2, -16, -8 + createsprite gUnknown_085CE418, 0x2, -16, -8 delay 0x1 - createsprite 0x85CE418, 0x2, 24, -8 + createsprite gUnknown_085CE418, 0x2, 24, -8 delay 0x1 return @@ -8420,18 +8420,18 @@ Move_MORNING_SUN: end AnimScript_82D4C78: - createsprite 0x85CE48C, 0x2, 30, 640 + createsprite gUnknown_085CE48C, 0x2, 30, 640 delay 0x5 return Move_SWEET_SCENT: loadspritegfx 0x27FE playsewithpan SE_W230, -64 - createsprite 0x85CE544, 0x2, 100, 0, 100 + createsprite gUnknown_085CE544, 0x2, 100, 0, 100 delay 0x19 setpan 0 call AnimScript_82D4CCA - createsprite 0x85CE544, 0x2, 55, 0 + createsprite gUnknown_085CE544, 0x2, 55, 0 setpan +63 createvisualtask sub_8115A04, 0x2, 20, 1, 5, 5, 13, 22207 call AnimScript_82D4CCA @@ -8439,33 +8439,33 @@ Move_SWEET_SCENT: end AnimScript_82D4CCA: - createsprite 0x85CE544, 0x2, 70, 1, 64 + createsprite gUnknown_085CE544, 0x2, 70, 1, 64 delay 0x2 - createsprite 0x85CE544, 0x2, 60, 0, 64 + createsprite gUnknown_085CE544, 0x2, 60, 0, 64 delay 0x5 - createsprite 0x85CE544, 0x2, 80, 1, 64 + createsprite gUnknown_085CE544, 0x2, 80, 1, 64 delay 0x2 - createsprite 0x85CE544, 0x2, 58, 0, 120 + createsprite gUnknown_085CE544, 0x2, 58, 0, 120 delay 0x2 - createsprite 0x85CE544, 0x2, 100, 0, 120 + createsprite gUnknown_085CE544, 0x2, 100, 0, 120 delay 0x2 - createsprite 0x85CE544, 0x2, 90, 0, 64 + createsprite gUnknown_085CE544, 0x2, 90, 0, 64 delay 0x2 - createsprite 0x85CE544, 0x2, 48, 0, 64 + createsprite gUnknown_085CE544, 0x2, 48, 0, 64 delay 0x2 - createsprite 0x85CE544, 0x2, 95, 1, 80 + createsprite gUnknown_085CE544, 0x2, 95, 1, 80 delay 0x2 - createsprite 0x85CE544, 0x2, 100, 0, 120 + createsprite gUnknown_085CE544, 0x2, 100, 0, 120 delay 0x2 - createsprite 0x85CE544, 0x2, 75, 1, 64 + createsprite gUnknown_085CE544, 0x2, 75, 1, 64 delay 0x2 - createsprite 0x85CE544, 0x2, 85, 0, 120 + createsprite gUnknown_085CE544, 0x2, 85, 0, 120 delay 0x2 return Move_HYPER_BEAM: loadspritegfx 0x27A3 - createsprite 0x8597274, 0x2, 1, 4, 0, 16, 0 + createsprite gUnknown_08597274, 0x2, 1, 4, 0, 16, 0 waitforvisualfinish delay 0xA playsewithpan SE_W063, -64 @@ -8505,12 +8505,12 @@ Move_HYPER_BEAM: call AnimScript_82D4EA1 createvisualtask sub_8116620, 0xA, 4, 2, 11, 0, 26425 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 4, 16, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 4, 16, 0, 0 end AnimScript_82D4EA1: - createsprite 0x8592288, 0x82 - createsprite 0x8592288, 0x82 + createsprite gUnknown_08592288, 0x82 + createsprite gUnknown_08592288, 0x82 delay 0x1 return @@ -8521,11 +8521,11 @@ Move_FLATTER: createvisualtask sub_815ABEC, 0x2 createvisualtask sub_8116960, 0x2, 248, 3, 0, 10, 0 waitforvisualfinish - createsprite 0x85CE5C0, 0x82, 0, -8, 80 + createsprite gUnknown_085CE5C0, 0x82, 0, -8, 80 delay 0x0 - createsprite 0x857FE40, 0x2, 5, 2, 1 + createsprite gUnknown_0857FE40, 0x2, 5, 2, 1 delay 0xA - createsprite 0x857FE40, 0x2, 5, 2, 1 + createsprite gUnknown_0857FE40, 0x2, 5, 2, 1 delay 0x0 createvisualtask sub_8159210, 0x5, 229, -64 call AnimScript_82D4F9B @@ -8556,14 +8556,14 @@ Move_FLATTER: end AnimScript_82D4F9B: - createsprite 0x85CE5A8, 0x28, 0 - createsprite 0x85CE5A8, 0x28, 1 + createsprite gUnknown_085CE5A8, 0x28, 0 + createsprite gUnknown_085CE5A8, 0x28, 1 return Move_ROLE_PLAY: monbg ANIM_ATK_PARTNER createvisualtask sub_8116620, 0xA, 4, 2, 0, 16, 0x7FFF - createsprite 0x8597274, 0x2, 1, 2, 0, 10, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 0, 10, 0 waitforvisualfinish playsewithpan SE_W161, -64 waitplaysewithpan SE_W197, -64, 0x1E @@ -8572,7 +8572,7 @@ Move_ROLE_PLAY: clearmonbg ANIM_ATK_PARTNER createvisualtask sub_8116620, 0xA, 4, 2, 16, 0, 0x7FFF delay 0x8 - createsprite 0x8597274, 0x2, 1, 2, 10, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 2, 10, 0, 0 end Move_REFRESH: @@ -8585,8 +8585,8 @@ Move_REFRESH: call AnimScript_82D79B4 waitforvisualfinish playsewithpan SE_REAPOKE, -64 - createsprite 0x8597274, 0x2, 31, 3, 10, 0, 31500 - createsprite 0x859381C, 0x3, 0, 0, 0, 0 + createsprite gUnknown_08597274, 0x2, 31, 3, 10, 0, 31500 + createsprite gUnknown_0859381C, 0x3, 0, 0, 0, 0 end Move_BLAZE_KICK: @@ -8596,14 +8596,14 @@ Move_BLAZE_KICK: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W172, +63 - createsprite 0x8595F14, 0x83, 0, 0, 1, 30 + createsprite gUnknown_08595F14, 0x83, 0, 0, 1, 30 createvisualtask sub_8116620, 0xA, 4, 2, 0, 7, 0x7FFF delay 0x1E playsewithpan SE_W007, +63 - createsprite 0x8597358, 0x82, 0, 0, 1, 0 + createsprite gUnknown_08597358, 0x82, 0, 0, 1, 0 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 14, 1 createvisualtask sub_8116620, 0xA, 4, 2, 0, 0, 0x7FFF - createsprite 0x859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 + createsprite gUnknown_0859728C, 0x2, 31, 3, 1, 0, 8, 0, 0 call AnimScript_82D2D18 waitforvisualfinish clearmonbg ANIM_TARGET @@ -8622,9 +8622,9 @@ Move_HYPER_VOICE: end AnimScript_82D50FA: - createsprite 0x8597274, 0x2, 31, 3, 8, 0, 1023 + createsprite gUnknown_08597274, 0x2, 31, 3, 8, 0, 1023 createvisualtask sub_80D6064, 0x5, -5, -5, 5, 0, 0 - createsprite 0x8593880, 0x0, 45, 0, 0, 0, 0, 0, 1 + createsprite gUnknown_08593880, 0x0, 45, 0, 0, 0, 0, 0, 1 createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 6, 1 createvisualtask sub_80D52D0, 0x2, 3, 1, 0, 6, 1 createvisualtask sub_81162A4, 0x2, 1, 0, 6, 1 @@ -8633,29 +8633,29 @@ AnimScript_82D50FA: Move_SAND_TOMB: loadspritegfx 0x275A - createsprite 0x8597274, 0x0, 4, 2, 0, 7, 563 + createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 563 createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 43, 1 playsewithpan SE_W328, +63 call AnimScript_82D51B7 call AnimScript_82D51B7 call AnimScript_82D51B7 delay 0x16 - createsprite 0x8597274, 0x0, 4, 2, 7, 0, 563 + createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 563 waitforvisualfinish end AnimScript_82D51B7: - createsprite 0x8596B34, 0x82, 0, 32, 528, 30, 10, 50, 1 + createsprite gUnknown_08596B34, 0x82, 0, 32, 528, 30, 10, 50, 1 delay 0x2 - createsprite 0x8596B34, 0x82, 0, 36, 480, 20, 13, -46, 1 + createsprite gUnknown_08596B34, 0x82, 0, 36, 480, 20, 13, -46, 1 delay 0x2 - createsprite 0x8596B34, 0x82, 0, 37, 576, 20, 5, 42, 1 + createsprite gUnknown_08596B34, 0x82, 0, 37, 576, 20, 5, 42, 1 delay 0x2 - createsprite 0x8596B34, 0x82, 0, 35, 400, 25, 8, -42, 1 + createsprite gUnknown_08596B34, 0x82, 0, 35, 400, 25, 8, -42, 1 delay 0x2 - createsprite 0x8596B34, 0x82, 0, 32, 512, 25, 13, 46, 1 + createsprite gUnknown_08596B34, 0x82, 0, 32, 512, 25, 13, 46, 1 delay 0x2 - createsprite 0x8596B34, 0x82, 0, 37, 464, 30, 12, -50, 1 + createsprite gUnknown_08596B34, 0x82, 0, 37, 464, 30, 12, -50, 1 delay 0x2 return @@ -8684,10 +8684,10 @@ Move_ARM_THRUST: setalpha 0x80C createvisualtask sub_80D6134, 0x5, 8, 5, 0, 0 delay 0x6 - createsprite 0x857FE28, 0x2, 4, 3 + createsprite gUnknown_0857FE28, 0x2, 4, 3 delay 0x4 playsewithpan SE_W207, +63 - createsprite 0x8596034, 0x82, 10, -8, 14, 3 + createsprite gUnknown_08596034, 0x82, 10, -8, 14, 3 waitforvisualfinish createvisualtask sub_80D6134, 0x5, 8, 5, 0, 1 playsewithpan SE_W003, +63 @@ -8700,11 +8700,11 @@ AnimScript_82D52C0: end AnimScript_82D52D4: - createsprite 0x8597358, 0x82, 8, 0, 1, 2 + createsprite gUnknown_08597358, 0x82, 8, 0, 1, 2 goto AnimScript_82D52C0 AnimScript_82D52E8: - createsprite 0x8597358, 0x82, -8, 0, 1, 2 + createsprite gUnknown_08597358, 0x82, -8, 0, 1, 2 goto AnimScript_82D52C0 Move_MUDDY_WATER: @@ -8715,26 +8715,26 @@ Move_MUDDY_WATER: Move_BULLET_SEED: loadspritegfx 0x2716 - createsprite 0x859351C, 0x82, 20, 0 + createsprite gUnknown_0859351C, 0x82, 20, 0 delay 0x5 - createsprite 0x859351C, 0x82, 20, 0 + createsprite gUnknown_0859351C, 0x82, 20, 0 delay 0x5 - createsprite 0x859351C, 0x82, 20, 0 + createsprite gUnknown_0859351C, 0x82, 20, 0 delay 0x5 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 30, 1 - createsprite 0x859351C, 0x82, 20, 0 + createsprite gUnknown_0859351C, 0x82, 20, 0 delay 0x5 - createsprite 0x859351C, 0x82, 20, 0 + createsprite gUnknown_0859351C, 0x82, 20, 0 delay 0x5 - createsprite 0x859351C, 0x82, 20, 0 + createsprite gUnknown_0859351C, 0x82, 20, 0 delay 0x5 - createsprite 0x859351C, 0x82, 20, 0 + createsprite gUnknown_0859351C, 0x82, 20, 0 delay 0x5 - createsprite 0x859351C, 0x82, 20, 0 + createsprite gUnknown_0859351C, 0x82, 20, 0 delay 0x5 - createsprite 0x859351C, 0x82, 20, 0 + createsprite gUnknown_0859351C, 0x82, 20, 0 delay 0x5 - createsprite 0x859351C, 0x82, 20, 0 + createsprite gUnknown_0859351C, 0x82, 20, 0 waitforvisualfinish end @@ -8746,55 +8746,55 @@ Move_DRAGON_CLAW: createvisualtask sub_80D51AC, 0x5, 0, 0, 2, 15, 1 call AnimScript_82D5581 call AnimScript_82D5581 - createsprite 0x857FE28, 0x2, 6, 4 - createsprite 0x8596B88, 0x2, 0, 28, 528, 30, 13, 50, 0 + createsprite gUnknown_0857FE28, 0x2, 6, 4 + createsprite gUnknown_08596B88, 0x2, 0, 28, 528, 30, 13, 50, 0 delay 0x2 createvisualtask sub_8159210, 0x5, 136, 63 - createsprite 0x8597138, 0x82, -10, -10, 0 - createsprite 0x8597138, 0x82, -10, 10, 0 - createsprite 0x85972D8, 0x2, -4, 1, 10, 3, 1 - createsprite 0x8596B88, 0x2, 0, 32, 480, 20, 16, -46, 0 + createsprite gUnknown_08597138, 0x82, -10, -10, 0 + createsprite gUnknown_08597138, 0x82, -10, 10, 0 + createsprite gUnknown_085972D8, 0x2, -4, 1, 10, 3, 1 + createsprite gUnknown_08596B88, 0x2, 0, 32, 480, 20, 16, -46, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 33, 576, 20, 8, 42, 0 + createsprite gUnknown_08596B88, 0x2, 0, 33, 576, 20, 8, 42, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 31, 400, 25, 11, -42, 0 + createsprite gUnknown_08596B88, 0x2, 0, 31, 400, 25, 11, -42, 0 delay 0x2 - createsprite 0x857FE28, 0x2, 6, 4 - createsprite 0x8596B88, 0x2, 0, 28, 512, 25, 16, 46, 0 + createsprite gUnknown_0857FE28, 0x2, 6, 4 + createsprite gUnknown_08596B88, 0x2, 0, 28, 512, 25, 16, 46, 0 delay 0x2 createvisualtask sub_8159210, 0x5, 136, 63 - createsprite 0x8597138, 0x82, 10, -10, 1 - createsprite 0x8597138, 0x82, 10, 10, 1 - createsprite 0x85972D8, 0x2, -4, 1, 10, 3, 1 - createsprite 0x8596B88, 0x2, 0, 33, 464, 30, 15, -50, 0 + createsprite gUnknown_08597138, 0x82, 10, -10, 1 + createsprite gUnknown_08597138, 0x82, 10, 10, 1 + createsprite gUnknown_085972D8, 0x2, -4, 1, 10, 3, 1 + createsprite gUnknown_08596B88, 0x2, 0, 33, 464, 30, 15, -50, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 28, 528, 30, 13, 50, 0 + createsprite gUnknown_08596B88, 0x2, 0, 28, 528, 30, 13, 50, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 32, 480, 20, 16, -46, 0 + createsprite gUnknown_08596B88, 0x2, 0, 32, 480, 20, 16, -46, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 33, 576, 20, 8, 42, 0 + createsprite gUnknown_08596B88, 0x2, 0, 33, 576, 20, 8, 42, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 31, 400, 25, 11, -42, 0 + createsprite gUnknown_08596B88, 0x2, 0, 31, 400, 25, 11, -42, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 28, 512, 25, 16, 46, 0 + createsprite gUnknown_08596B88, 0x2, 0, 28, 512, 25, 16, 46, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 33, 464, 30, 15, -50, 0 + createsprite gUnknown_08596B88, 0x2, 0, 33, 464, 30, 15, -50, 0 createvisualtask sub_8116620, 0xA, 2, 4, 8, 0, 639 waitforvisualfinish end AnimScript_82D5581: - createsprite 0x8596B88, 0x2, 0, 28, 528, 30, 13, 50, 0 + createsprite gUnknown_08596B88, 0x2, 0, 28, 528, 30, 13, 50, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 32, 480, 20, 16, -46, 0 + createsprite gUnknown_08596B88, 0x2, 0, 32, 480, 20, 16, -46, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 33, 576, 20, 8, 42, 0 + createsprite gUnknown_08596B88, 0x2, 0, 33, 576, 20, 8, 42, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 31, 400, 25, 11, -42, 0 + createsprite gUnknown_08596B88, 0x2, 0, 31, 400, 25, 11, -42, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 28, 512, 25, 16, 46, 0 + createsprite gUnknown_08596B88, 0x2, 0, 28, 512, 25, 16, 46, 0 delay 0x2 - createsprite 0x8596B88, 0x2, 0, 33, 464, 30, 15, -50, 0 + createsprite gUnknown_08596B88, 0x2, 0, 33, 464, 30, 15, -50, 0 delay 0x2 return @@ -8828,9 +8828,9 @@ Move_MUD_SHOT: end AnimScript_82D5687: - createsprite 0x85950FC, 0x3, 10, 10, 0, 16 + createsprite gUnknown_085950FC, 0x3, 10, 10, 0, 16 delay 0x2 - createsprite 0x85950FC, 0x3, 10, 10, 0, 16 + createsprite gUnknown_085950FC, 0x3, 10, 10, 0, 16 delay 0x2 return @@ -8842,15 +8842,15 @@ Move_METEOR_MASH: fadetobg BG_COSMIC waitbgfadein waitforvisualfinish - createsprite 0x85CE8DC, 0x83, -48, -64, 72, 32, 30 + createsprite gUnknown_085CE8DC, 0x83, -48, -64, 72, 32, 30 delay 0xA - createsprite 0x85CE8DC, 0x83, -112, -64, 8, 32, 30 + createsprite gUnknown_085CE8DC, 0x83, -112, -64, 8, 32, 30 delay 0x28 - createsprite 0x8595F14, 0x83, 0, 0, 0, 30 - createsprite 0x85CE8DC, 0x83, -80, -64, 40, 32, 30 + createsprite gUnknown_08595F14, 0x83, 0, 0, 0, 30 + createsprite gUnknown_085CE8DC, 0x83, -80, -64, 40, 32, 30 delay 0x14 playsewithpan SE_W233B, +63 - createsprite 0x8597358, 0x83, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x83, 0, 0, 1, 1 createvisualtask sub_80D52D0, 0x2, 1, 5, 0, 20, 1 waitforvisualfinish delay 0xA @@ -8864,24 +8864,24 @@ Move_REVENGE: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W036, -64 - createsprite 0x8596088, 0x2, 10, -10 + createsprite gUnknown_08596088, 0x2, 10, -10 waitforvisualfinish createvisualtask sub_8115A04, 0x2, 2, 0, 4, 2, 8, 31 waitforvisualfinish unloadspritegfx 0x2805 loadspritegfx 0x2806 - createsprite 0x857FE28, 0x2, 6, 4 + createsprite gUnknown_0857FE28, 0x2, 6, 4 delay 0x4 playsewithpan SE_W207, +63 - createsprite 0x85960D0, 0x82, 10, -10 + createsprite gUnknown_085960D0, 0x82, 10, -10 waitforvisualfinish unloadspritegfx 0x2806 loadspritegfx 0x2797 createvisualtask sub_80D52D0, 0x2, 1, 3, 0, 10, 1 - createsprite 0x8597400, 0x83, -10, -8, 1, 1, 8 + createsprite gUnknown_08597400, 0x83, -10, -8, 1, 1, 8 playsewithpan SE_W233B, +63 delay 0x8 - createsprite 0x8597400, 0x83, 10, 8, 1, 1, 8 + createsprite gUnknown_08597400, 0x83, 10, 8, 1, 1, 8 playsewithpan SE_W025B, +63 waitforvisualfinish clearmonbg ANIM_TARGET @@ -8892,7 +8892,7 @@ Move_POISON_FANG: loadspritegfx 0x27D0 loadspritegfx 0x27A6 playsewithpan SE_W044, +63 - createsprite 0x85CE1DC, 0x82 + createsprite gUnknown_085CE1DC, 0x82 delay 0xA createvisualtask sub_80D51AC, 0x3, 1, 3, 0, 10, 1 waitforvisualfinish @@ -8912,55 +8912,55 @@ Move_FRENZY_PLANT: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET setalpha 0x80C - createsprite 0x8597274, 0x0, 1, 2, 0, 5, 0 + createsprite gUnknown_08597274, 0x0, 1, 2, 0, 5, 0 waitforvisualfinish - createsprite 0x8592564, 0x2, 10, 8, 2, 0, 0, 100 + createsprite gUnknown_08592564, 0x2, 10, 8, 2, 0, 0, 100 playsewithpan SE_W010, -64 delay 0x5 - createsprite 0x8592564, 0x2, 20, -8, -2, 0, 1, 95 + createsprite gUnknown_08592564, 0x2, 20, -8, -2, 0, 1, 95 playsewithpan SE_W010, -43 delay 0x5 - createsprite 0x8592564, 0x2, 30, 8, -4, 0, 0, 90 + createsprite gUnknown_08592564, 0x2, 30, 8, -4, 0, 0, 90 playsewithpan SE_W010, -22 delay 0x5 - createsprite 0x8592564, 0x2, 40, -8, 4, 0, 1, 85 + createsprite gUnknown_08592564, 0x2, 40, -8, 4, 0, 1, 85 playsewithpan SE_W010, 0 delay 0x5 - createsprite 0x8592564, 0x2, 50, 8, 0, 0, 0, 85 + createsprite gUnknown_08592564, 0x2, 50, 8, 0, 0, 0, 85 playsewithpan SE_W010, +21 delay 0x5 - createsprite 0x8592564, 0x2, 60, -8, -2, 0, 1, 85 + createsprite gUnknown_08592564, 0x2, 60, -8, -2, 0, 1, 85 playsewithpan SE_W010, +42 delay 0x5 - createsprite 0x8592564, 0x2, 75, 8, 0, 0, 0, 85 + createsprite gUnknown_08592564, 0x2, 75, 8, 0, 0, 0, 85 playsewithpan SE_W010, +63 delay 0x5 - createsprite 0x8592564, 0x2, 85, 16, 6, 0, 3, 80 + createsprite gUnknown_08592564, 0x2, 85, 16, 6, 0, 3, 80 playsewithpan SE_W010, +63 delay 0x5 - createsprite 0x8592564, 0x2, 85, -16, -6, 0, 2, 75 + createsprite gUnknown_08592564, 0x2, 85, -16, -6, 0, 2, 75 playsewithpan SE_W010, +63 delay 0x5 - createsprite 0x8597358, 0x2, -10, -10, 1, 3 + createsprite gUnknown_08597358, 0x2, -10, -10, 1, 3 playsewithpan SE_W003, +63 createvisualtask sub_80D51AC, 0x3, 1, 8, 0, 20, 1 delay 0x3 - createsprite 0x8597358, 0x2, 10, 8, 1, 3 + createsprite gUnknown_08597358, 0x2, 10, 8, 1, 3 playsewithpan SE_W003, +63 delay 0x3 - createsprite 0x8597358, 0x2, 10, -3, 1, 2 + createsprite gUnknown_08597358, 0x2, 10, -3, 1, 2 playsewithpan SE_W003, +63 delay 0x3 - createsprite 0x8597358, 0x2, -3, 1, 1, 2 + createsprite gUnknown_08597358, 0x2, -3, 1, 1, 2 playsewithpan SE_W003, +63 delay 0x2 - createsprite 0x8597358, 0x2, -10, 1, 1, 1 + createsprite gUnknown_08597358, 0x2, -10, 1, 1, 1 playsewithpan SE_W003, +63 delay 0x2 - createsprite 0x8597358, 0x2, 0, 10, 1, 1 + createsprite gUnknown_08597358, 0x2, 0, 10, 1, 1 playsewithpan SE_W003, +63 waitforvisualfinish - createsprite 0x8597274, 0x0, 1, 2, 5, 0, 0 + createsprite gUnknown_08597274, 0x0, 1, 2, 5, 0, 0 waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -8983,7 +8983,7 @@ Move_METAL_SOUND: AnimScript_82D59EA: panse_1B SE_W103, -64, +63, +2, 0x0 - createsprite 0x8593458, 0x82, 16, 0, 0, 0, 30, 0 + createsprite gUnknown_08593458, 0x82, 16, 0, 0, 0, 30, 0 delay 0x2 return @@ -9009,18 +9009,18 @@ AnimScript_82D5A3C: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W207, +63 - createsprite 0x8596104, 0x82 + createsprite gUnknown_08596104, 0x82 delay 0xA - createsprite 0x8597358, 0x2, -10, -8, 1, 0 + createsprite gUnknown_08597358, 0x2, -10, -8, 1, 0 createvisualtask sub_80D51AC, 0x5, 1, 8, 0, 24, 1 delay 0x8 - createsprite 0x8597358, 0x2, 10, 2, 1, 0 + createsprite gUnknown_08597358, 0x2, 10, 2, 1, 0 playsewithpan SE_W233B, +63 delay 0x8 - createsprite 0x8597358, 0x2, 10, -6, 1, 0 + createsprite gUnknown_08597358, 0x2, 10, -6, 1, 0 playsewithpan SE_W233B, +63 delay 0x8 - createsprite 0x8597358, 0x2, 0, 8, 1, 0 + createsprite gUnknown_08597358, 0x2, 0, 8, 1, 0 playsewithpan SE_W025B, +63 waitforvisualfinish restorebg @@ -9059,97 +9059,97 @@ AnimScript_82D5AFF: end AnimScript_82D5B04: - createsprite 0x857FE40, 0x2, 16, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 16, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 waitforvisualfinish - createsprite 0x857FE40, 0x2, 16, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 16, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 delay 0x5 - createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createsprite gUnknown_08597358, 0x2, -10, -8, 1, 2 createvisualtask sub_8159210, 0x5, 139, 63 goto AnimScript_82D5AFF AnimScript_82D5B56: - createsprite 0x857FE40, 0x2, 6, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 6, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 waitforvisualfinish - createsprite 0x857FE40, 0x2, 6, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 6, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 waitforvisualfinish delay 0xB - createsprite 0x857FE28, 0x2, 5, 4 + createsprite gUnknown_0857FE28, 0x2, 5, 4 delay 0x6 - createsprite 0x8597358, 0x3, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x3, 0, 0, 1, 2 createvisualtask sub_8159210, 0x5, 141, 63 goto AnimScript_82D5AFF AnimScript_82D5BB6: - createsprite 0x857FE40, 0x2, 6, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 6, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 waitforvisualfinish - createsprite 0x857FE40, 0x2, 6, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 6, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 waitforvisualfinish - createsprite 0x857FE40, 0x2, 6, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 6, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 waitforvisualfinish - createsprite 0x857FE40, 0x2, 6, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 6, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 waitforvisualfinish - createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createsprite gUnknown_08597358, 0x2, -10, -8, 1, 2 createvisualtask sub_8159210, 0x5, 123, 63 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 delay 0x8 - createsprite 0x8597358, 0x2, 10, 10, 1, 2 + createsprite gUnknown_08597358, 0x2, 10, 10, 1, 2 createvisualtask sub_8159210, 0x5, 123, 63 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 delay 0x8 - createsprite 0x8597358, 0x2, 3, -5, 1, 2 + createsprite gUnknown_08597358, 0x2, 3, -5, 1, 2 createvisualtask sub_8159210, 0x5, 123, 63 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 delay 0x8 - createsprite 0x8597358, 0x2, -5, 3, 1, 2 + createsprite gUnknown_08597358, 0x2, -5, 3, 1, 2 createvisualtask sub_8159210, 0x5, 123, 63 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 goto AnimScript_82D5AFF AnimScript_82D5CD1: - createsprite 0x8597274, 0x2, 1, 0, 0, 6, 0 + createsprite gUnknown_08597274, 0x2, 1, 0, 0, 6, 0 waitforvisualfinish - createsprite 0x857FE40, 0x2, 16, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 16, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 delay 0x8 - createsprite 0x8597358, 0x2, 3, -5, 1, 2 + createsprite gUnknown_08597358, 0x2, 3, -5, 1, 2 createvisualtask sub_8159210, 0x5, 123, 63 waitforvisualfinish - createsprite 0x857FE40, 0x2, 12, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 12, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 delay 0x5 - createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createsprite gUnknown_08597358, 0x2, -10, -8, 1, 2 createvisualtask sub_8159210, 0x5, 123, 63 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 waitforvisualfinish delay 0x4 - createsprite 0x857FE40, 0x2, 8, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 8, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 delay 0x5 - createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createsprite gUnknown_08597358, 0x2, -10, -8, 1, 2 createvisualtask sub_8159210, 0x5, 123, 63 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 waitforvisualfinish delay 0x2 createvisualtask sub_81169C0, 0x2, 0, 4, 5, 1 - createsprite 0x857FE40, 0x2, 4, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 4, 1, 0 createvisualtask sub_8159244, 0x5, 167, -64 - createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createsprite gUnknown_08597358, 0x2, -10, -8, 1, 2 createvisualtask sub_8159210, 0x5, 123, 63 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 createvisualtask sub_81169C0, 0x2, 0, 4, 5, 1 waitforvisualfinish - createsprite 0x857FE40, 0x2, 4, 2, 0 + createsprite gUnknown_0857FE40, 0x2, 4, 2, 0 createvisualtask sub_8159244, 0x5, 167, -64 delay 0x5 - createsprite 0x8597358, 0x2, -10, -8, 1, 2 + createsprite gUnknown_08597358, 0x2, -10, -8, 1, 2 createvisualtask sub_8159210, 0x5, 123, 63 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 createvisualtask sub_81169C0, 0x2, 0, 4, 5, 1 @@ -9158,26 +9158,26 @@ AnimScript_82D5CD1: call AnimScript_82D5F09 call AnimScript_82D5F09 call AnimScript_82D5F09 - createsprite 0x8597358, 0x2, -10, -8, 1, 0 + createsprite gUnknown_08597358, 0x2, -10, -8, 1, 0 createvisualtask sub_8159210, 0x5, 141, 63 createvisualtask sub_80D51AC, 0x5, 1, 8, 0, 24, 1 delay 0x6 - createsprite 0x8597358, 0x2, 10, 10, 1, 0 + createsprite gUnknown_08597358, 0x2, 10, 10, 1, 0 createvisualtask sub_8159210, 0x5, 141, 63 delay 0x6 - createsprite 0x8597358, 0x2, 3, -5, 1, 0 + createsprite gUnknown_08597358, 0x2, 3, -5, 1, 0 createvisualtask sub_8159210, 0x5, 141, 63 delay 0x6 - createsprite 0x8597358, 0x2, -5, 3, 1, 0 + createsprite gUnknown_08597358, 0x2, -5, 3, 1, 0 createvisualtask sub_8159210, 0x5, 141, 63 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 0, 6, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 0, 6, 0, 0 goto AnimScript_82D5AFF AnimScript_82D5F09: - createsprite 0x857FE40, 0x2, 4, 3, 0 + createsprite gUnknown_0857FE40, 0x2, 4, 3, 0 createvisualtask sub_8159244, 0x5, 167, -64 - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_8159210, 0x5, 123, 63 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 createvisualtask sub_81169C0, 0x2, 0, 4, 5, 1 @@ -9196,9 +9196,9 @@ Move_COSMIC_POWER: waitbgfadein delay 0x46 createvisualtask sub_8159210, 0x5, 228, -64 - createsprite 0x8592B7C, 0x2, -15, 0, 0, 0, 32, 60 + createsprite gUnknown_08592B7C, 0x2, -15, 0, 0, 0, 32, 60 delay 0x8 - createsprite 0x8592B7C, 0x2, 12, -5, 0, 0, 32, 60 + createsprite gUnknown_08592B7C, 0x2, 12, -5, 0, 0, 32, 60 delay 0x28 createvisualtask sub_8117610, 0x2, 0, 15, 0, 0 waitforvisualfinish @@ -9215,39 +9215,39 @@ Move_BLAST_BURN: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W221, -64 - createsprite 0x8595428, 0x2, -32, 0, 24, 0, 0, 0 - createsprite 0x8595428, 0x2, -20, -10, 24, 0, 0, 0 - createsprite 0x8595428, 0x42, 0, -16, 24, 0, 0, 0 - createsprite 0x8595428, 0x42, 20, -10, 24, 0, 0, 0 - createsprite 0x8595428, 0x42, 32, 0, 24, 0, 0, 0 - createsprite 0x8595428, 0x42, 20, 10, 24, 0, 0, 0 - createsprite 0x8595428, 0x2, 0, 16, 24, 0, 0, 0 - createsprite 0x8595428, 0x2, -20, 10, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x2, -32, 0, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x2, -20, -10, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x42, 0, -16, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x42, 20, -10, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x42, 32, 0, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x42, 20, 10, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x2, 0, 16, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x2, -20, 10, 24, 0, 0, 0 delay 0x19 playsewithpan SE_W172B, -64 - createsprite 0x8595428, 0x2, -64, 0, 24, 0, 0, 0 - createsprite 0x8595428, 0x6, -40, -20, 24, 0, 0, 0 - createsprite 0x8595428, 0x46, 0, -32, 24, 0, 0, 0 - createsprite 0x8595428, 0x46, 40, -20, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x2, -64, 0, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x6, -40, -20, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x46, 0, -32, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x46, 40, -20, 24, 0, 0, 0 createvisualtask sub_80D51AC, 0x5, 1, 6, 0, 8, 1 - createsprite 0x8595428, 0x42, 64, 0, 24, 0, 0, 0 - createsprite 0x8595428, 0x42, 40, 20, 24, 0, 0, 0 - createsprite 0x8595428, 0x2, 0, 32, 24, 0, 0, 0 - createsprite 0x8595428, 0x2, -40, 20, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x42, 64, 0, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x42, 40, 20, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x2, 0, 32, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x2, -40, 20, 24, 0, 0, 0 createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x19 playsewithpan SE_W172B, -64 - createsprite 0x8595428, 0x2, -96, 0, 24, 0, 0, 0 - createsprite 0x8595428, 0x6, -60, -30, 24, 0, 0, 0 - createsprite 0x8595428, 0x46, 0, -48, 24, 0, 0, 0 - createsprite 0x8595428, 0x46, 60, -30, 24, 0, 0, 0 - createsprite 0x8597358, 0x82, -4, 3, 1, 0 + createsprite gUnknown_08595428, 0x2, -96, 0, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x6, -60, -30, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x46, 0, -48, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x46, 60, -30, 24, 0, 0, 0 + createsprite gUnknown_08597358, 0x82, -4, 3, 1, 0 createvisualtask sub_80D51AC, 0x5, 1, 12, 0, 20, 1 createvisualtask sub_81162A4, 0x2, 2, 0, 10, 1 - createsprite 0x8595428, 0x42, 96, 0, 24, 0, 0, 0 - createsprite 0x8595428, 0x42, 60, 30, 24, 0, 0, 0 - createsprite 0x8595428, 0x2, 0, 48, 24, 0, 0, 0 - createsprite 0x8595428, 0x2, -60, 30, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x42, 96, 0, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x42, 60, 30, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x2, 0, 48, 24, 0, 0, 0 + createsprite gUnknown_08595428, 0x2, -60, 30, 24, 0, 0, 0 createvisualtask sub_8115F10, 0x2, 257, 257, 257 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -9259,28 +9259,28 @@ Move_ROCK_TOMB: loadspritegfx 0x274A createvisualtask sub_81162A4, 0x2, 2, 0, 10, 1 waitforvisualfinish - createsprite 0x8596C58, 0x82, 20, 12, 64, 114, 0 + createsprite gUnknown_08596C58, 0x82, 20, 12, 64, 114, 0 delay 0x8 createvisualtask sub_81162A4, 0x2, 0, 2, 3, 1 playsewithpan SE_W070, +63 delay 0x8 - createsprite 0x8596C58, 0x82, -20, 12, 64, 98, 0 + createsprite gUnknown_08596C58, 0x82, -20, 12, 64, 98, 0 delay 0x8 createvisualtask sub_81162A4, 0x2, 0, 2, 3, 1 playsewithpan SE_W070, +63 delay 0x8 - createsprite 0x8596C58, 0xC2, 3, 6, 64, 82, 0 + createsprite gUnknown_08596C58, 0xC2, 3, 6, 64, 82, 0 delay 0x8 createvisualtask sub_81162A4, 0x2, 0, 2, 3, 1 playsewithpan SE_W070, +63 delay 0x8 - createsprite 0x8596C58, 0x82, -3, 13, 64, 66, 0 + createsprite gUnknown_08596C58, 0x82, -3, 13, 64, 66, 0 delay 0x8 createvisualtask sub_81162A4, 0x2, 0, 2, 3, 1 playsewithpan SE_W070, +63 delay 0x18 playsewithpan SE_W063, +63 - createsprite 0x85967AC, 0x85, 1, 50 + createsprite gUnknown_085967AC, 0x85, 1, 50 createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 20, 1 createvisualtask sub_81162A4, 0x2, 2, 0, 10, 1 waitforvisualfinish @@ -9305,29 +9305,29 @@ AnimScript_82D6352: delay 0x0 createvisualtask sub_8116620, 0xA, 1, 0, 4, 4, 0 waitbgfadein - createsprite 0x8592830, 0xC2, -32, 16, 0, 6, 2, 3, 1 - createsprite 0x8592830, 0xC2, -8, 18, 64, 3, 2, 2, 1 - createsprite 0x8592830, 0x78, -24, 18, 90, 5, 1, 2, 1 - createsprite 0x8592830, 0x78, -40, 14, 128, 4, 1, 2, 1 + createsprite gUnknown_08592830, 0xC2, -32, 16, 0, 6, 2, 3, 1 + createsprite gUnknown_08592830, 0xC2, -8, 18, 64, 3, 2, 2, 1 + createsprite gUnknown_08592830, 0x78, -24, 18, 90, 5, 1, 2, 1 + createsprite gUnknown_08592830, 0x78, -40, 14, 128, 4, 1, 2, 1 delay 0x0 - createsprite 0x8592848, 0xC2, -32, 16, 0, 6, 2, 3, 1 - createsprite 0x8592848, 0xC2, -8, 18, 64, 3, 2, 2, 1 - createsprite 0x8592848, 0x78, -24, 18, 90, 5, 1, 2, 1 - createsprite 0x8592848, 0x78, -40, 14, 128, 4, 1, 2, 1 + createsprite gUnknown_08592848, 0xC2, -32, 16, 0, 6, 2, 3, 1 + createsprite gUnknown_08592848, 0xC2, -8, 18, 64, 3, 2, 2, 1 + createsprite gUnknown_08592848, 0x78, -24, 18, 90, 5, 1, 2, 1 + createsprite gUnknown_08592848, 0x78, -40, 14, 128, 4, 1, 2, 1 delay 0x0 - createsprite 0x8592860, 0xC2, -32, 16, 0, 6, 2, 3, 1 - createsprite 0x8592860, 0xC2, -8, 18, 64, 3, 2, 2, 1 - createsprite 0x8592860, 0x78, -24, 18, 90, 5, 1, 2, 1 - createsprite 0x8592860, 0x78, -40, 14, 128, 4, 1, 2, 1 + createsprite gUnknown_08592860, 0xC2, -32, 16, 0, 6, 2, 3, 1 + createsprite gUnknown_08592860, 0xC2, -8, 18, 64, 3, 2, 2, 1 + createsprite gUnknown_08592860, 0x78, -24, 18, 90, 5, 1, 2, 1 + createsprite gUnknown_08592860, 0x78, -40, 14, 128, 4, 1, 2, 1 delay 0x6 - createsprite 0x8592830, 0xC2, -4, 16, 0, 6, 1, 2, 1 - createsprite 0x8592830, 0xC2, -16, 12, 192, 5, 2, 3, 1 + createsprite gUnknown_08592830, 0xC2, -4, 16, 0, 6, 1, 2, 1 + createsprite gUnknown_08592830, 0xC2, -16, 12, 192, 5, 2, 3, 1 delay 0x0 - createsprite 0x8592848, 0xC2, -4, 16, 0, 6, 1, 2, 1 - createsprite 0x8592848, 0xC2, -16, 12, 192, 5, 2, 3, 1 + createsprite gUnknown_08592848, 0xC2, -4, 16, 0, 6, 1, 2, 1 + createsprite gUnknown_08592848, 0xC2, -16, 12, 192, 5, 2, 3, 1 delay 0x0 - createsprite 0x8592860, 0xC2, -4, 16, 0, 6, 1, 2, 1 - createsprite 0x8592860, 0xC2, -16, 12, 192, 5, 2, 3, 1 + createsprite gUnknown_08592860, 0xC2, -4, 16, 0, 6, 1, 2, 1 + createsprite gUnknown_08592860, 0xC2, -16, 12, 192, 5, 2, 3, 1 waitforvisualfinish playsewithpan SE_W016B, +63 clearmonbg ANIM_DEF_PARTNER @@ -9358,10 +9358,10 @@ Move_DIVE: AnimScript_82D654C: loadspritegfx 0x27AC playsewithpan SE_W029, -64 - createsprite 0x8596490, 0x2, 0, 0, 13, 336 + createsprite gUnknown_08596490, 0x2, 0, 0, 13, 336 waitforvisualfinish playsewithpan SE_W291, -64 - createsprite 0x85964CC, 0x3, 0 + createsprite gUnknown_085964CC, 0x3, 0 call AnimScript_82D658A call AnimScript_82D658A call AnimScript_82D658A @@ -9370,8 +9370,8 @@ AnimScript_82D654C: end AnimScript_82D658A: - createsprite 0x85964E4, 0x5, 0, 0 - createsprite 0x85964E4, 0x5, 1, 0 + createsprite gUnknown_085964E4, 0x5, 0, 0 + createsprite gUnknown_085964E4, 0x5, 1, 0 return AnimScript_82D65A1: @@ -9380,7 +9380,7 @@ AnimScript_82D65A1: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W153, +63 - createsprite 0x85964CC, 0x83, 1 + createsprite gUnknown_085964CC, 0x83, 1 call AnimScript_82D65E0 call AnimScript_82D65E0 call AnimScript_82D65E0 @@ -9395,25 +9395,25 @@ AnimScript_82D65A1: end AnimScript_82D65E0: - createsprite 0x85964E4, 0x85, 0, 1 - createsprite 0x85964E4, 0x85, 1, 1 + createsprite gUnknown_085964E4, 0x85, 0, 1 + createsprite gUnknown_085964E4, 0x85, 1, 1 return Move_ROCK_BLAST: loadspritegfx 0x274A loadspritegfx 0x2797 - createsprite 0x857FE28, 0x2, 4, 6 + createsprite gUnknown_0857FE28, 0x2, 4, 6 delay 0x3 playsewithpan SE_W207, -64 - createsprite 0x8596C98, 0x82, 16, 0, 0, 0, 25, 257 + createsprite gUnknown_08596C98, 0x82, 16, 0, 0, 0, 25, 257 waitforvisualfinish - createsprite 0x8597358, 0x83, 0, 0, 1, 1 + createsprite gUnknown_08597358, 0x83, 0, 0, 1, 1 playsewithpan SE_W088, +63 - createsprite 0x8596B1C, 0x82, 0, 0, 20, 24, 14, 2 + createsprite gUnknown_08596B1C, 0x82, 0, 0, 20, 24, 14, 2 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 5, 1 - createsprite 0x8596B1C, 0x82, 5, 0, -20, 24, 14, 1 - createsprite 0x8596B1C, 0x82, 0, 5, 20, -24, 14, 2 - createsprite 0x8596B1C, 0x82, -5, 0, -20, -24, 14, 2 + createsprite gUnknown_08596B1C, 0x82, 5, 0, -20, 24, 14, 1 + createsprite gUnknown_08596B1C, 0x82, 0, 5, 20, -24, 14, 2 + createsprite gUnknown_08596B1C, 0x82, -5, 0, -20, -24, 14, 2 waitforvisualfinish end @@ -9422,7 +9422,7 @@ Move_OVERHEAT: loadspritegfx 0x2797 monbg ANIM_DEF_PARTNER setalpha 0x120C - createsprite 0x8597274, 0x2, 1, 1, 0, 5, 28 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 5, 28 waitforvisualfinish createvisualtask sub_8117C44, 0x5 waitforvisualfinish @@ -9433,58 +9433,58 @@ Move_OVERHEAT: playsewithpan SE_W082, -64 createvisualtask sub_8117CA0, 0x5, 1, 0 delay 0x1 - createsprite 0x8597274, 0x2, 2, 1, 0, 13, 28 + createsprite gUnknown_08597274, 0x2, 2, 1, 0, 13, 28 createvisualtask sub_80D51AC, 0x5, 0, 2, 0, 15, 1 waitforvisualfinish playsewithpan SE_W172B, -64 - createsprite 0x8596FB0, 0x2, 1, 0, 30, 25, -20 - createsprite 0x8596FB0, 0x2, 1, 32, 30, 25, -20 - createsprite 0x8596FB0, 0x2, 1, 64, 30, 25, -20 - createsprite 0x8596FB0, 0x2, 1, 96, 30, 25, -20 - createsprite 0x8596FB0, 0x2, 1, 128, 30, 25, -20 - createsprite 0x8596FB0, 0x42, 1, 160, 30, 25, -20 - createsprite 0x8596FB0, 0x42, 1, 192, 30, 25, -20 - createsprite 0x8596FB0, 0x42, 1, 224, 30, 25, -20 + createsprite gUnknown_08596FB0, 0x2, 1, 0, 30, 25, -20 + createsprite gUnknown_08596FB0, 0x2, 1, 32, 30, 25, -20 + createsprite gUnknown_08596FB0, 0x2, 1, 64, 30, 25, -20 + createsprite gUnknown_08596FB0, 0x2, 1, 96, 30, 25, -20 + createsprite gUnknown_08596FB0, 0x2, 1, 128, 30, 25, -20 + createsprite gUnknown_08596FB0, 0x42, 1, 160, 30, 25, -20 + createsprite gUnknown_08596FB0, 0x42, 1, 192, 30, 25, -20 + createsprite gUnknown_08596FB0, 0x42, 1, 224, 30, 25, -20 delay 0x5 - createsprite 0x8596FB0, 0x2, 1, 0, 30, 25, 0 - createsprite 0x8596FB0, 0x2, 1, 32, 30, 25, 0 - createsprite 0x8596FB0, 0x2, 1, 64, 30, 25, 0 - createsprite 0x8596FB0, 0x2, 1, 96, 30, 25, 0 - createsprite 0x8596FB0, 0x2, 1, 128, 30, 25, 0 - createsprite 0x8596FB0, 0x42, 1, 160, 30, 25, 0 - createsprite 0x8596FB0, 0x42, 1, 192, 30, 25, 0 - createsprite 0x8596FB0, 0x42, 1, 224, 30, 25, 0 + createsprite gUnknown_08596FB0, 0x2, 1, 0, 30, 25, 0 + createsprite gUnknown_08596FB0, 0x2, 1, 32, 30, 25, 0 + createsprite gUnknown_08596FB0, 0x2, 1, 64, 30, 25, 0 + createsprite gUnknown_08596FB0, 0x2, 1, 96, 30, 25, 0 + createsprite gUnknown_08596FB0, 0x2, 1, 128, 30, 25, 0 + createsprite gUnknown_08596FB0, 0x42, 1, 160, 30, 25, 0 + createsprite gUnknown_08596FB0, 0x42, 1, 192, 30, 25, 0 + createsprite gUnknown_08596FB0, 0x42, 1, 224, 30, 25, 0 delay 0x5 - createsprite 0x8596FB0, 0x2, 1, 0, 30, 25, 10 - createsprite 0x8596FB0, 0x2, 1, 32, 30, 25, 10 - createsprite 0x8596FB0, 0x2, 1, 64, 30, 25, 10 - createsprite 0x8596FB0, 0x2, 1, 96, 30, 25, 10 - createsprite 0x8596FB0, 0x2, 1, 128, 30, 25, 10 - createsprite 0x8596FB0, 0x42, 1, 160, 30, 25, 10 - createsprite 0x8596FB0, 0x42, 1, 192, 30, 25, 10 - createsprite 0x8596FB0, 0x42, 1, 224, 30, 25, 10 + createsprite gUnknown_08596FB0, 0x2, 1, 0, 30, 25, 10 + createsprite gUnknown_08596FB0, 0x2, 1, 32, 30, 25, 10 + createsprite gUnknown_08596FB0, 0x2, 1, 64, 30, 25, 10 + createsprite gUnknown_08596FB0, 0x2, 1, 96, 30, 25, 10 + createsprite gUnknown_08596FB0, 0x2, 1, 128, 30, 25, 10 + createsprite gUnknown_08596FB0, 0x42, 1, 160, 30, 25, 10 + createsprite gUnknown_08596FB0, 0x42, 1, 192, 30, 25, 10 + createsprite gUnknown_08596FB0, 0x42, 1, 224, 30, 25, 10 delay 0x5 waitforvisualfinish - createsprite 0x8597358, 0x83, -5, 3, 1, 0 + createsprite gUnknown_08597358, 0x83, -5, 3, 1, 0 playsewithpan SE_W007, +63 createvisualtask sub_80D51AC, 0x2, 1, 10, 0, 25, 1 delay 0x6 - createsprite 0x8597358, 0x83, 8, -5, 1, 0 + createsprite gUnknown_08597358, 0x83, 8, -5, 1, 0 playsewithpan SE_W007, +63 delay 0x8 - createsprite 0x8597358, 0x83, 10, 10, 1, 0 + createsprite gUnknown_08597358, 0x83, 10, 10, 1, 0 playsewithpan SE_W007, +63 delay 0x8 - createsprite 0x8597358, 0x83, 0, 0, 1, 0 + createsprite gUnknown_08597358, 0x83, 0, 0, 1, 0 playsewithpan SE_W007, +63 createvisualtask sub_8117DD8, 0x5, 1 delay 0x1 - createsprite 0x8597274, 0x2, 2, -1, 0, 13, 19026 + createsprite gUnknown_08597274, 0x2, 2, -1, 0, 13, 19026 createvisualtask sub_80D51AC, 0x5, 0, 3, 0, 15, 1 waitforvisualfinish createvisualtask sub_8117D3C, 0x5, 0, 1 delay 0x1 - createsprite 0x8597274, 0x2, 1, 1, 5, 0, 28 + createsprite gUnknown_08597274, 0x2, 1, 1, 5, 0, 28 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -9492,7 +9492,7 @@ Move_OVERHEAT: delay 0xF createvisualtask sub_8117D3C, 0x5, 1, 0 delay 0x1 - createsprite 0x8597274, 0x2, 2, 0, 13, 0, 19026 + createsprite gUnknown_08597274, 0x2, 2, 0, 13, 0, 19026 waitforvisualfinish createvisualtask sub_8117C70, 0x5 waitforvisualfinish @@ -9504,24 +9504,24 @@ Move_HYDRO_CANNON: monbg ANIM_DEF_PARTNER setalpha 0x80C playsewithpan SE_W057, -64 - createsprite 0x85951C0, 0x82 + createsprite gUnknown_085951C0, 0x82 delay 0xA createvisualtask sub_8115F10, 0x2, 257, 257, 257 delay 0x1E panse_1B SE_W056, -64, +63, +2, 0x0 call AnimScript_82D6A50 createvisualtask sub_80D51AC, 0x5, 1, 10, 0, 40, 1 - createsprite 0x8597388, 0x82, 0, 0, 1, 0 + createsprite gUnknown_08597388, 0x82, 0, 0, 1, 0 call AnimScript_82D6A50 - createsprite 0x8597388, 0x82, 0, 0, 1, 0 + createsprite gUnknown_08597388, 0x82, 0, 0, 1, 0 call AnimScript_82D6A50 - createsprite 0x8597388, 0x82, 0, 0, 1, 0 + createsprite gUnknown_08597388, 0x82, 0, 0, 1, 0 call AnimScript_82D6A50 - createsprite 0x8597388, 0x82, 0, 0, 1, 0 + createsprite gUnknown_08597388, 0x82, 0, 0, 1, 0 call AnimScript_82D6A50 - createsprite 0x8597388, 0x82, 0, 0, 1, 0 + createsprite gUnknown_08597388, 0x82, 0, 0, 1, 0 call AnimScript_82D6A50 - createsprite 0x8597388, 0x82, 0, 0, 1, 0 + createsprite gUnknown_08597388, 0x82, 0, 0, 1, 0 waitforvisualfinish createvisualtask sub_8115F10, 0x2, 257, 257, 257 waitforvisualfinish @@ -9530,25 +9530,25 @@ Move_HYDRO_CANNON: end AnimScript_82D6A50: - createsprite 0x85951D8, 0x82, 10, -10, 0, 0, 15, 257 + createsprite gUnknown_085951D8, 0x82, 10, -10, 0, 0, 15, 257 delay 0x1 - createsprite 0x85951D8, 0x82, 10, -10, 0, 0, 15, 257 + createsprite gUnknown_085951D8, 0x82, 10, -10, 0, 0, 15, 257 delay 0x1 - createsprite 0x85951D8, 0x82, 10, -10, 0, 0, 15, 257 + createsprite gUnknown_085951D8, 0x82, 10, -10, 0, 0, 15, 257 delay 0x1 - createsprite 0x85951D8, 0x82, 10, -10, 0, 0, 15, 257 + createsprite gUnknown_085951D8, 0x82, 10, -10, 0, 0, 15, 257 delay 0x1 - createsprite 0x85951D8, 0x82, 10, -10, 0, 0, 15, 257 + createsprite gUnknown_085951D8, 0x82, 10, -10, 0, 0, 15, 257 return Move_ASTONISH: loadspritegfx 0x2821 playsewithpan SE_W227, -64 - createsprite 0x857FE28, 0x2, 4, 6 + createsprite gUnknown_0857FE28, 0x2, 4, 6 delay 0x19 - createsprite 0x85964E4, 0x85, 0, 1 + createsprite gUnknown_085964E4, 0x85, 0, 1 playsewithpan SE_W166, +63 - createsprite 0x85964E4, 0x85, 1, 1 + createsprite gUnknown_085964E4, 0x85, 1, 1 createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 5, 1 createvisualtask sub_8106020, 0x3 waitforvisualfinish @@ -9608,30 +9608,30 @@ AnimScript_82D6B7C: goto AnimScript_82D6B48 AnimScript_82D6B9B: - createsprite 0x8597358, 0x83, -10, -8, 1, 1 + createsprite gUnknown_08597358, 0x83, -10, -8, 1, 1 playsewithpan SE_W070, +63 createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 5, 1 - createsprite 0x8596CB0, 0x82, -12, 27, 2, 3 - createsprite 0x8596CB0, 0x82, 8, 28, 3, 4 - createsprite 0x8596CB0, 0x82, -4, 30, 2, 3 - createsprite 0x8596CB0, 0x82, 12, 25, 4, 4 + createsprite gUnknown_08596CB0, 0x82, -12, 27, 2, 3 + createsprite gUnknown_08596CB0, 0x82, 8, 28, 3, 4 + createsprite gUnknown_08596CB0, 0x82, -4, 30, 2, 3 + createsprite gUnknown_08596CB0, 0x82, 12, 25, 4, 4 return AnimScript_82D6BFC: - createsprite 0x8597358, 0x83, 10, -8, 1, 1 + createsprite gUnknown_08597358, 0x83, 10, -8, 1, 1 playsewithpan SE_W088, +63 createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 5, 1 - createsprite 0x8596CB0, 0x82, -12, 32, 3, 4 - createsprite 0x8596CB0, 0x82, 8, 31, 2, 2 - createsprite 0x8596CB0, 0x82, -4, 28, 2, 3 - createsprite 0x8596CB0, 0x82, 12, 30, 4, 3 + createsprite gUnknown_08596CB0, 0x82, -12, 32, 3, 4 + createsprite gUnknown_08596CB0, 0x82, 8, 31, 2, 2 + createsprite gUnknown_08596CB0, 0x82, -4, 28, 2, 3 + createsprite gUnknown_08596CB0, 0x82, 12, 30, 4, 3 return Move_MAGIC_COAT: loadspritegfx 0x27BA setalpha 0x1000 waitplaysewithpan SE_W112, -64, 0xF - createsprite 0x85965C0, 0x3, 40, 0, 10170 + createsprite gUnknown_085965C0, 0x3, 40, 0, 10170 waitforvisualfinish delay 0x1 blendoff @@ -9643,27 +9643,27 @@ Move_WATER_PULSE: monbg ANIM_TARGET monbgprio_28 ANIM_TARGET playsewithpan SE_W145C, -64 - createsprite 0x8597274, 0x2, 1, 0, 0, 7, 29472 + createsprite gUnknown_08597274, 0x2, 1, 0, 0, 7, 29472 delay 0xA - createsprite 0x85952F8, 0x42, 100, 100, 8, 1, 20, 40, 0 - createsprite 0x85952F8, 0x42, 20, 100, 16, 2, 10, 35, 1 - createsprite 0x85952F8, 0x42, 200, 80, 8, 1, 40, 20, 0 - createsprite 0x85952F8, 0x42, 80, 60, 10, 3, 20, 50, 0 - createsprite 0x85952F8, 0x42, 140, 100, 16, 1, 20, 30, 1 + createsprite gUnknown_085952F8, 0x42, 100, 100, 8, 1, 20, 40, 0 + createsprite gUnknown_085952F8, 0x42, 20, 100, 16, 2, 10, 35, 1 + createsprite gUnknown_085952F8, 0x42, 200, 80, 8, 1, 40, 20, 0 + createsprite gUnknown_085952F8, 0x42, 80, 60, 10, 3, 20, 50, 0 + createsprite gUnknown_085952F8, 0x42, 140, 100, 16, 1, 20, 30, 1 playsewithpan SE_W145C, +63 waitforvisualfinish playsewithpan SE_W202, -64 - createsprite 0x8593470, 0x82, 0, 0, 40, 15 + createsprite gUnknown_08593470, 0x82, 0, 0, 40, 15 delay 0x5 playsewithpan SE_W202, -64 - createsprite 0x8593470, 0x82, 0, 0, 40, 15 + createsprite gUnknown_08593470, 0x82, 0, 0, 40, 15 delay 0x5 playsewithpan SE_W202, -64 - createsprite 0x8593470, 0x82, 0, 0, 40, 15 + createsprite gUnknown_08593470, 0x82, 0, 0, 40, 15 delay 0xD createvisualtask sub_80D51AC, 0x2, 1, 0, 8, 18, 1 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 1, 7, 0, 29472 + createsprite gUnknown_08597274, 0x2, 1, 1, 7, 0, 29472 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end @@ -9683,7 +9683,7 @@ Move_PSYCHO_BOOST: delay 0xA createvisualtask sub_80D51AC, 0x2, 0, 3, 0, 240, 0 loopsewithpan SE_W060B, -64, 0xE, 0xA - createsprite 0x8596920, 0x2 + createsprite gUnknown_08596920, 0x2 delay 0x6E loopsewithpan SE_W060B, -64, 0x7, 0xA waitforvisualfinish @@ -9698,20 +9698,20 @@ Move_PSYCHO_BOOST: Move_KNOCK_OFF: loadspritegfx 0x2825 loadspritegfx 0x2797 - createsprite 0x857FE28, 0x2, 4, 6 + createsprite gUnknown_0857FE28, 0x2, 4, 6 delay 0x4 playsewithpan SE_W233, +63 - createsprite 0x85CE984, 0x82, -16, -16 + createsprite gUnknown_085CE984, 0x82, -16, -16 delay 0x8 - createsprite 0x859728C, 0x2, 31, 5, 1, 0x7FFF, 10, 0, 0 - createsprite 0x8597358, 0x83, 0, 0, 1, 2 + createsprite gUnknown_0859728C, 0x2, 31, 5, 1, 0x7FFF, 10, 0, 0 + createsprite gUnknown_08597358, 0x83, 0, 0, 1, 2 playsewithpan SE_W004, +63 - createsprite 0x857FE70, 0x2, 1, -12, 10, 0, 3 - createsprite 0x857FE58, 0x2, 0, 0, 5 + createsprite gUnknown_0857FE70, 0x2, 1, -12, 10, 0, 3 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 5 delay 0x3 createvisualtask sub_80D5484, 0x2, 1, 0, 3, 6, 1 delay 0x5 - createsprite 0x857FE58, 0x2, 1, 0, 6 + createsprite gUnknown_0857FE58, 0x2, 1, 0, 6 delay 0xA waitforvisualfinish end @@ -9721,7 +9721,7 @@ Move_DOOM_DESIRE: delay 0x1 monbg ANIM_ATK_PARTNER createvisualtask sub_811489C, 0x5, 1, 0 - createsprite 0x8597274, 0x2, 1, 1, 0, 4, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 4, 0 waitforvisualfinish setalpha 0x808 playsewithpan SE_W060, -64 @@ -9729,7 +9729,7 @@ Move_DOOM_DESIRE: waitforvisualfinish delay 0x14 createvisualtask sub_811489C, 0x5, 1, 1 - createsprite 0x8597274, 0x2, 1, 1, 4, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 1, 4, 0, 0 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -9746,31 +9746,31 @@ Move_SKY_UPPERCUT: waitbgfadein setalpha 0x80C delay 0x26 - createsprite 0x857FE70, 0x2, 0, 28, 0, 0, 5 + createsprite gUnknown_0857FE70, 0x2, 0, 28, 0, 0, 5 delay 0x4 createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 6, 1 playsewithpan SE_W233B, +63 - createsprite 0x8597358, 0x83, -28, 28, 1, 1 + createsprite gUnknown_08597358, 0x83, -28, 28, 1, 1 delay 0x1 playsewithpan SE_W233B, +63 - createsprite 0x8597358, 0x83, -15, 8, 1, 1 + createsprite gUnknown_08597358, 0x83, -15, 8, 1, 1 playsewithpan SE_W233B, +63 delay 0x1 playsewithpan SE_W233B, +63 - createsprite 0x8597358, 0x83, -5, -12, 1, 1 + createsprite gUnknown_08597358, 0x83, -5, -12, 1, 1 delay 0x1 playsewithpan SE_W233B, +63 - createsprite 0x8597358, 0x83, 0, -32, 1, 1 + createsprite gUnknown_08597358, 0x83, 0, -32, 1, 1 delay 0x1 playsewithpan SE_W233B, +63 - createsprite 0x8597358, 0x83, 5, -52, 1, 1 - createsprite 0x857FE70, 0x2, 1, -26, 16, 1, 4 + createsprite gUnknown_08597358, 0x83, 5, -52, 1, 1 + createsprite gUnknown_0857FE70, 0x2, 1, -26, 16, 1, 4 delay 0x4 createvisualtask sub_80D5484, 0x2, 1, 0, 3, 6, 1 delay 0x1E - createsprite 0x857FE58, 0x2, 0, 0, 6 + createsprite gUnknown_0857FE58, 0x2, 0, 0, 6 delay 0x4 - createsprite 0x857FE58, 0x2, 1, 0, 6 + createsprite gUnknown_0857FE58, 0x2, 1, 0, 6 clearmonbg ANIM_DEF_PARTNER blendoff restorebg @@ -9799,39 +9799,39 @@ Move_TWISTER: monbg ANIM_DEF_PARTNER monbgprio_28 ANIM_TARGET playsewithpan SE_W239, +63 - createsprite 0x85923A8, 0x82, 120, 70, 5, 70, 30 + createsprite gUnknown_085923A8, 0x82, 120, 70, 5, 70, 30 delay 0x1 - createsprite 0x85923A8, 0x82, 115, 55, 6, 60, 25 + createsprite gUnknown_085923A8, 0x82, 115, 55, 6, 60, 25 delay 0x1 - createsprite 0x85923A8, 0x82, 115, 60, 7, 60, 30 - createsprite 0x85923A8, 0x82, 115, 55, 10, 60, 30 + createsprite gUnknown_085923A8, 0x82, 115, 60, 7, 60, 30 + createsprite gUnknown_085923A8, 0x82, 115, 55, 10, 60, 30 delay 0x3 - createsprite 0x8596CC8, 0x82, 100, 50, 4, 50, 26 + createsprite gUnknown_08596CC8, 0x82, 100, 50, 4, 50, 26 delay 0x1 - createsprite 0x85923A8, 0x82, 105, 25, 8, 60, 20 + createsprite gUnknown_085923A8, 0x82, 105, 25, 8, 60, 20 delay 0x1 - createsprite 0x85923A8, 0x82, 115, 40, 10, 48, 30 + createsprite gUnknown_085923A8, 0x82, 115, 40, 10, 48, 30 delay 0x3 - createsprite 0x8596CC8, 0x82, 120, 30, 6, 45, 25 - createsprite 0x85923A8, 0x82, 115, 35, 10, 60, 30 + createsprite gUnknown_08596CC8, 0x82, 120, 30, 6, 45, 25 + createsprite gUnknown_085923A8, 0x82, 115, 35, 10, 60, 30 delay 0x3 - createsprite 0x8596CC8, 0x82, 105, 20, 8, 40, 0 + createsprite gUnknown_08596CC8, 0x82, 105, 20, 8, 40, 0 delay 0x3 - createsprite 0x85923A8, 0x82, 20, 255, 15, 32, 0 - createsprite 0x85923A8, 0x82, 110, 10, 8, 32, 20 + createsprite gUnknown_085923A8, 0x82, 20, 255, 15, 32, 0 + createsprite gUnknown_085923A8, 0x82, 110, 10, 8, 32, 20 waitforvisualfinish - createsprite 0x8597358, 0x83, -32, -16, 1, 3 + createsprite gUnknown_08597358, 0x83, -32, -16, 1, 3 playsewithpan SE_W004, +63 createvisualtask sub_80D5484, 0x2, 1, 3, 0, 12, 1 createvisualtask sub_80D5484, 0x2, 3, 3, 0, 12, 1 delay 0x4 - createsprite 0x85973A0, 0x83, 1, 3 + createsprite gUnknown_085973A0, 0x83, 1, 3 playsewithpan SE_W004, +63 delay 0x4 - createsprite 0x85973A0, 0x83, 1, 3 + createsprite gUnknown_085973A0, 0x83, 1, 3 playsewithpan SE_W004, +63 delay 0x4 - createsprite 0x8597358, 0x83, 32, 20, 1, 3 + createsprite gUnknown_08597358, 0x83, 32, 20, 1, 3 playsewithpan SE_W004, +63 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -9847,33 +9847,33 @@ Move_MAGICAL_LEAF: delay 0x1 loopsewithpan SE_W077, -64, 0xA, 0x5 createvisualtask sub_81007C4, 0x5 - createsprite 0x8592390, 0x2, -3, -2, 10 + createsprite gUnknown_08592390, 0x2, -3, -2, 10 delay 0x2 - createsprite 0x8592390, 0x2, -1, -1, 15 + createsprite gUnknown_08592390, 0x2, -1, -1, 15 delay 0x2 - createsprite 0x8592390, 0x2, -4, -4, 7 + createsprite gUnknown_08592390, 0x2, -4, -4, 7 delay 0x2 - createsprite 0x8592390, 0x2, 3, -3, 11 + createsprite gUnknown_08592390, 0x2, 3, -3, 11 delay 0x2 - createsprite 0x8592390, 0x2, -1, -6, 8 + createsprite gUnknown_08592390, 0x2, -1, -6, 8 delay 0x2 - createsprite 0x8592390, 0x2, 2, -1, 12 + createsprite gUnknown_08592390, 0x2, 2, -1, 12 delay 0x2 - createsprite 0x8592390, 0x2, -3, -4, 13 + createsprite gUnknown_08592390, 0x2, -3, -4, 13 delay 0x2 - createsprite 0x8592390, 0x2, 4, -5, 7 + createsprite gUnknown_08592390, 0x2, 4, -5, 7 delay 0x2 - createsprite 0x8592390, 0x2, 2, -6, 11 + createsprite gUnknown_08592390, 0x2, 2, -6, 11 delay 0x2 - createsprite 0x8592390, 0x2, -3, -5, 8 + createsprite gUnknown_08592390, 0x2, -3, -5, 8 delay 0x3C playsewithpan SE_W013B, -64 - createsprite 0x85923D8, 0x83, 20, -10, 20, 0, 32, 20, 0 - createsprite 0x85923D8, 0x83, 20, -10, 20, 0, 32, -20, 0 + createsprite gUnknown_085923D8, 0x83, 20, -10, 20, 0, 32, 20, 0 + createsprite gUnknown_085923D8, 0x83, 20, -10, 20, 0, 32, -20, 0 delay 0x1E playsewithpan SE_W013, +63 - createsprite 0x8597358, 0x84, -10, -4, 1, 2 - createsprite 0x8597358, 0x84, 10, 4, 1, 2 + createsprite gUnknown_08597358, 0x84, -10, -4, 1, 2 + createsprite gUnknown_08597358, 0x84, 10, 4, 1, 2 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 delay 0x14 setarg 0x7, 0xFFFF @@ -9890,7 +9890,7 @@ Move_ICE_BALL: AnimScript_82D72BB: playsewithpan SE_W196, -64 - createsprite 0x8595DE4, 0x82, 15, 0, -12, -16, 30, -40 + createsprite gUnknown_08595DE4, 0x82, 15, 0, -12, -16, 30, -40 delay 0x1C playsewithpan SE_W280, +63 createvisualtask sub_810CDFC, 0x5, 0 @@ -9980,19 +9980,19 @@ AnimScript_82D741F: goto AnimScript_82D7309 AnimScript_82D7467: - createsprite 0x8595DFC, 0x84, -12, -16 + createsprite gUnknown_08595DFC, 0x84, -12, -16 return Move_WEATHER_BALL: loadspritegfx 0x282B - createsprite 0x857FE40, 0x2, 8, 1, 0 + createsprite gUnknown_0857FE40, 0x2, 8, 1, 0 delay 0x8 playsewithpan SE_W207, -64 - createsprite 0x853EE38, 0x2 + createsprite gUnknown_0853EE38, 0x2 waitforvisualfinish delay 0xF playsewithpan SE_W197, 0 - createsprite 0x859728C, 0x2, 31, 5, 1, 0x7FFF, 10, 0, 0 + createsprite gUnknown_0859728C, 0x2, 31, 5, 1, 0x7FFF, 10, 0, 0 waitforvisualfinish createvisualtask sub_81604F0, 0x2 delay 0x1 @@ -10004,23 +10004,23 @@ Move_WEATHER_BALL: AnimScript_82D74DE: loadspritegfx 0x2797 - createsprite 0x853EE50, 0x82, -30, -100, 25, 1, 0, 0 + createsprite gUnknown_0853EE50, 0x82, -30, -100, 25, 1, 0, 0 waitforvisualfinish playsewithpan SE_W025B, +63 - createsprite 0x8597358, 0x84, -10, 0, 1, 2 + createsprite gUnknown_08597358, 0x84, -10, 0, 1, 2 createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 8, 1 waitforvisualfinish end AnimScript_82D751B: loadspritegfx 0x272D - createsprite 0x859559C, 0x82, -30, -100, 25, 1, 40, 10 + createsprite gUnknown_0859559C, 0x82, -30, -100, 25, 1, 40, 10 playsewithpan SE_W172, +63 delay 0xA - createsprite 0x859559C, 0x82, -30, -100, 25, 1, -40, 20 + createsprite gUnknown_0859559C, 0x82, -30, -100, 25, 1, -40, 20 playsewithpan SE_W172, +63 delay 0xA - createsprite 0x859559C, 0x82, -30, -100, 25, 1, 0, 0 + createsprite gUnknown_0859559C, 0x82, -30, -100, 25, 1, 0, 0 playsewithpan SE_W172, +63 waitforvisualfinish playsewithpan SE_W172B, +63 @@ -10030,13 +10030,13 @@ AnimScript_82D751B: AnimScript_82D757F: loadspritegfx 0x27AB - createsprite 0x8595328, 0x82, -30, -100, 25, 1, 50, 10 + createsprite gUnknown_08595328, 0x82, -30, -100, 25, 1, 50, 10 playsewithpan SE_W152, +63 delay 0x8 - createsprite 0x8595328, 0x82, -30, -100, 25, 1, -20, 20 + createsprite gUnknown_08595328, 0x82, -30, -100, 25, 1, -20, 20 playsewithpan SE_W152, +63 delay 0xD - createsprite 0x8595328, 0x82, -30, -100, 25, 1, 0, 0 + createsprite gUnknown_08595328, 0x82, -30, -100, 25, 1, 0, 0 playsewithpan SE_W152, +63 waitforvisualfinish createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 8, 1 @@ -10046,20 +10046,20 @@ AnimScript_82D757F: AnimScript_82D75E3: loadspritegfx 0x274A - createsprite 0x8596CE0, 0x82, -30, -100, 25, 1, 30, 0 + createsprite gUnknown_08596CE0, 0x82, -30, -100, 25, 1, 30, 0 playsewithpan SE_W088, +63 delay 0x5 - createsprite 0x8596CE0, 0x82, -30, -100, 25, 1, -40, 20 + createsprite gUnknown_08596CE0, 0x82, -30, -100, 25, 1, -40, 20 playsewithpan SE_W088, +63 delay 0xE - createsprite 0x8596CE0, 0x82, -30, -100, 25, 1, 0, 0 + createsprite gUnknown_08596CE0, 0x82, -30, -100, 25, 1, 0, 0 playsewithpan SE_W088, +63 waitforvisualfinish playsewithpan SE_W070, +63 - createsprite 0x8596CB0, 0x82, -12, 27, 2, 3 - createsprite 0x8596CB0, 0x82, 8, 28, 3, 4 - createsprite 0x8596CB0, 0x82, -4, 30, 2, 3 - createsprite 0x8596CB0, 0x82, 12, 25, 4, 4 + createsprite gUnknown_08596CB0, 0x82, -12, 27, 2, 3 + createsprite gUnknown_08596CB0, 0x82, 8, 28, 3, 4 + createsprite gUnknown_08596CB0, 0x82, -4, 30, 2, 3 + createsprite gUnknown_08596CB0, 0x82, 12, 25, 4, 4 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 waitforvisualfinish end @@ -10067,13 +10067,13 @@ AnimScript_82D75E3: AnimScript_82D7683: loadspritegfx 0x2817 loadspritegfx 0x279D - createsprite 0x8595D44, 0x82, -30, -100, 25, 25, -40, 20 + createsprite gUnknown_08595D44, 0x82, -30, -100, 25, 25, -40, 20 playsewithpan SE_W258, +63 delay 0xA - createsprite 0x8595D44, 0x82, -30, -100, 25, 25, 40, 0 + createsprite gUnknown_08595D44, 0x82, -30, -100, 25, 25, 40, 0 playsewithpan SE_W258, +63 delay 0xA - createsprite 0x8595D44, 0x82, -30, -100, 25, 25, 0, 0 + createsprite gUnknown_08595D44, 0x82, -30, -100, 25, 25, 0, 0 playsewithpan SE_W258, +63 waitforvisualfinish createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 @@ -10087,7 +10087,7 @@ Move_COUNT: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W003, +63 - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -10095,226 +10095,226 @@ Move_COUNT: end AnimScript_82D7720: - createsprite 0x8595B68, 0x82, -10, -10, 0 + createsprite gUnknown_08595B68, 0x82, -10, -10, 0 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B80, 0x82, 10, 20, 0 + createsprite gUnknown_08595B80, 0x82, 10, 20, 0 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B68, 0x82, -5, 10, 0 + createsprite gUnknown_08595B68, 0x82, -5, 10, 0 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B80, 0x82, 17, -12, 0 + createsprite gUnknown_08595B80, 0x82, 17, -12, 0 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B80, 0x82, -15, 15, 0 + createsprite gUnknown_08595B80, 0x82, -15, 15, 0 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B80, 0x82, 0, 0, 0 + createsprite gUnknown_08595B80, 0x82, 0, 0, 0 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B68, 0x82, 20, 2, 0 + createsprite gUnknown_08595B68, 0x82, 20, 2, 0 playsewithpan SE_W196, +63 return AnimScript_82D77A4: - createsprite 0x8595B68, 0x82, -10, -10, 1 + createsprite gUnknown_08595B68, 0x82, -10, -10, 1 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B80, 0x82, 10, 20, 1 + createsprite gUnknown_08595B80, 0x82, 10, 20, 1 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B68, 0x82, -29, 0, 1 + createsprite gUnknown_08595B68, 0x82, -29, 0, 1 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B80, 0x82, 29, -20, 1 + createsprite gUnknown_08595B80, 0x82, 29, -20, 1 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B68, 0x82, -5, 10, 1 + createsprite gUnknown_08595B68, 0x82, -5, 10, 1 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B80, 0x82, 17, -12, 1 + createsprite gUnknown_08595B80, 0x82, 17, -12, 1 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B68, 0x82, -20, 0, 1 + createsprite gUnknown_08595B68, 0x82, -20, 0, 1 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B80, 0x82, -15, 15, 1 + createsprite gUnknown_08595B80, 0x82, -15, 15, 1 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B80, 0x82, 26, -5, 1 + createsprite gUnknown_08595B80, 0x82, 26, -5, 1 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B80, 0x82, 0, 0, 1 + createsprite gUnknown_08595B80, 0x82, 0, 0, 1 playsewithpan SE_W196, +63 delay 0x4 - createsprite 0x8595B68, 0x82, 20, 2, 1 + createsprite gUnknown_08595B68, 0x82, 20, 2, 1 playsewithpan SE_W196, +63 return AnimScript_82D7874: loopsewithpan SE_W196, +63, 0x6, 0x4 - createsprite 0x8595C04, 0x82, 0, 24, 0 + createsprite gUnknown_08595C04, 0x82, 0, 24, 0 delay 0x4 - createsprite 0x8595C04, 0x82, 8, 24, 0 - createsprite 0x8595C04, 0x82, -8, 24, 0 + createsprite gUnknown_08595C04, 0x82, 8, 24, 0 + createsprite gUnknown_08595C04, 0x82, -8, 24, 0 delay 0x4 - createsprite 0x8595C04, 0x82, 16, 24, 0 - createsprite 0x8595C04, 0x82, -16, 24, 0 + createsprite gUnknown_08595C04, 0x82, 16, 24, 0 + createsprite gUnknown_08595C04, 0x82, -16, 24, 0 delay 0x4 - createsprite 0x8595C04, 0x82, 24, 24, 0 - createsprite 0x8595C04, 0x82, -24, 24, 0 + createsprite gUnknown_08595C04, 0x82, 24, 24, 0 + createsprite gUnknown_08595C04, 0x82, -24, 24, 0 delay 0x4 - createsprite 0x8595C04, 0x82, 32, 24, 0 - createsprite 0x8595C04, 0x82, -32, 24, 0 + createsprite gUnknown_08595C04, 0x82, 32, 24, 0 + createsprite gUnknown_08595C04, 0x82, -32, 24, 0 return AnimScript_82D78F8: loopsewithpan SE_W196, +63, 0x6, 0x4 - createsprite 0x8595C04, 0x82, 0, 24, 1 + createsprite gUnknown_08595C04, 0x82, 0, 24, 1 delay 0x4 - createsprite 0x8595C04, 0x82, 8, 24, 1 - createsprite 0x8595C04, 0x82, -8, 24, 1 + createsprite gUnknown_08595C04, 0x82, 8, 24, 1 + createsprite gUnknown_08595C04, 0x82, -8, 24, 1 delay 0x4 - createsprite 0x8595C04, 0x82, 16, 24, 1 - createsprite 0x8595C04, 0x82, -16, 24, 1 + createsprite gUnknown_08595C04, 0x82, 16, 24, 1 + createsprite gUnknown_08595C04, 0x82, -16, 24, 1 delay 0x4 - createsprite 0x8595C04, 0x82, 24, 24, 1 - createsprite 0x8595C04, 0x82, -24, 24, 1 + createsprite gUnknown_08595C04, 0x82, 24, 24, 1 + createsprite gUnknown_08595C04, 0x82, -24, 24, 1 delay 0x4 - createsprite 0x8595C04, 0x82, 32, 24, 1 - createsprite 0x8595C04, 0x82, -32, 24, 1 + createsprite gUnknown_08595C04, 0x82, 32, 24, 1 + createsprite gUnknown_08595C04, 0x82, -32, 24, 1 delay 0x4 - createsprite 0x8595C04, 0x82, 40, 24, 1 - createsprite 0x8595C04, 0x82, -40, 24, 1 + createsprite gUnknown_08595C04, 0x82, 40, 24, 1 + createsprite gUnknown_08595C04, 0x82, -40, 24, 1 delay 0x4 - createsprite 0x8595C04, 0x82, 48, 24, 1 - createsprite 0x8595C04, 0x82, -48, 24, 1 + createsprite gUnknown_08595C04, 0x82, 48, 24, 1 + createsprite gUnknown_08595C04, 0x82, -48, 24, 1 return AnimScript_82D79B4: - createsprite 0x8592B7C, 0x2, -15, 0, 0, 0, 32, 60 + createsprite gUnknown_08592B7C, 0x2, -15, 0, 0, 0, 32, 60 delay 0x8 - createsprite 0x8592B7C, 0x2, 12, -5, 0, 0, 32, 60 + createsprite gUnknown_08592B7C, 0x2, 12, -5, 0, 0, 32, 60 delay 0x8 return AnimScript_82D79DF: playsewithpan SE_W071B, -64 - createsprite 0x8592F2C, 0x2, 0, -5, 0, 0 + createsprite gUnknown_08592F2C, 0x2, 0, -5, 0, 0 delay 0x7 - createsprite 0x8592F2C, 0x2, -15, 10, 0, 0 + createsprite gUnknown_08592F2C, 0x2, -15, 10, 0, 0 delay 0x7 - createsprite 0x8592F2C, 0x2, -15, -15, 0, 0 + createsprite gUnknown_08592F2C, 0x2, -15, -15, 0, 0 delay 0x7 - createsprite 0x8592F2C, 0x2, 10, -5, 0, 0 + createsprite gUnknown_08592F2C, 0x2, 10, -5, 0, 0 delay 0x7 return AnimScript_82D7A28: playsewithpan SE_W071B, +63 - createsprite 0x8592F2C, 0x82, 0, -5, 1, 0 + createsprite gUnknown_08592F2C, 0x82, 0, -5, 1, 0 delay 0x7 - createsprite 0x8592F2C, 0x82, -15, 10, 1, 0 + createsprite gUnknown_08592F2C, 0x82, -15, 10, 1, 0 delay 0x7 - createsprite 0x8592F2C, 0x82, -15, -15, 1, 0 + createsprite gUnknown_08592F2C, 0x82, -15, -15, 1, 0 delay 0x7 - createsprite 0x8592F2C, 0x82, 10, -5, 1, 0 + createsprite gUnknown_08592F2C, 0x82, 10, -5, 1, 0 delay 0x7 return AnimScript_82D7A71: - createsprite 0x8596240, 0x82, 10, 10, 0 + createsprite gUnknown_08596240, 0x82, 10, 10, 0 playsewithpan SE_W092, +63 delay 0x6 - createsprite 0x8596240, 0x82, 20, -20, 0 + createsprite gUnknown_08596240, 0x82, 20, -20, 0 playsewithpan SE_W092, +63 delay 0x6 - createsprite 0x8596240, 0x82, -20, 15, 0 + createsprite gUnknown_08596240, 0x82, -20, 15, 0 playsewithpan SE_W092, +63 delay 0x6 - createsprite 0x8596240, 0x82, 0, 0, 0 + createsprite gUnknown_08596240, 0x82, 0, 0, 0 playsewithpan SE_W092, +63 delay 0x6 - createsprite 0x8596240, 0x82, -20, -20, 0 + createsprite gUnknown_08596240, 0x82, -20, -20, 0 playsewithpan SE_W092, +63 delay 0x6 - createsprite 0x8596240, 0x82, 16, -8, 0 + createsprite gUnknown_08596240, 0x82, 16, -8, 0 playsewithpan SE_W092, +63 return AnimScript_82D7AE2: - createsprite 0x8596258, 0x2, 10, 10, 0 + createsprite gUnknown_08596258, 0x2, 10, 10, 0 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, 20, -20, 0 + createsprite gUnknown_08596258, 0x2, 20, -20, 0 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, -20, 15, 0 + createsprite gUnknown_08596258, 0x2, -20, 15, 0 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, 0, 0, 0 + createsprite gUnknown_08596258, 0x2, 0, 0, 0 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, -20, -20, 0 + createsprite gUnknown_08596258, 0x2, -20, -20, 0 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, 16, -8, 0 + createsprite gUnknown_08596258, 0x2, 16, -8, 0 playsewithpan SE_W145C, +63 return AnimScript_82D7B53: - createsprite 0x8596258, 0x2, 10, 10, 1 + createsprite gUnknown_08596258, 0x2, 10, 10, 1 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, -28, -10, 1 + createsprite gUnknown_08596258, 0x2, -28, -10, 1 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, 20, -20, 1 + createsprite gUnknown_08596258, 0x2, 20, -20, 1 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, -20, 15, 1 + createsprite gUnknown_08596258, 0x2, -20, 15, 1 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, 0, 0, 1 + createsprite gUnknown_08596258, 0x2, 0, 0, 1 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, 27, 8, 1 + createsprite gUnknown_08596258, 0x2, 27, 8, 1 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, -20, -20, 1 + createsprite gUnknown_08596258, 0x2, -20, -20, 1 playsewithpan SE_W145C, +63 delay 0x6 - createsprite 0x8596258, 0x2, 16, -8, 1 + createsprite gUnknown_08596258, 0x2, 16, -8, 1 playsewithpan SE_W145C, +63 return AnimScript_82D7BEA: playsewithpan SE_W085B, +63 - createsprite 0x8595810, 0x82, 5, 0, 5, 0 + createsprite gUnknown_08595810, 0x82, 5, 0, 5, 0 delay 0x2 - createsprite 0x8595810, 0x82, -5, 10, 5, 1 + createsprite gUnknown_08595810, 0x82, -5, 10, 5, 1 delay 0x2 - createsprite 0x8595810, 0x82, 15, 20, 5, 2 + createsprite gUnknown_08595810, 0x82, 15, 20, 5, 2 delay 0x2 - createsprite 0x8595810, 0x82, -15, -10, 5, 0 + createsprite gUnknown_08595810, 0x82, -15, -10, 5, 0 delay 0x2 - createsprite 0x8595810, 0x82, 25, 0, 5, 1 + createsprite gUnknown_08595810, 0x82, 25, 0, 5, 1 delay 0x2 - createsprite 0x8595810, 0x82, -8, 8, 5, 2 + createsprite gUnknown_08595810, 0x82, -8, 8, 5, 2 delay 0x2 - createsprite 0x8595810, 0x82, 2, -8, 5, 0 + createsprite gUnknown_08595810, 0x82, 2, -8, 5, 0 delay 0x2 - createsprite 0x8595810, 0x82, -20, 15, 5, 1 + createsprite gUnknown_08595810, 0x82, -20, 15, 5, 1 return AnimScript_82D7C75: loopsewithpan SE_W146, +63, 0xD, 0x6 - createsprite 0x859725C, 0x82, 0, -15, 0, 3, 90 - createsprite 0x859725C, 0x82, 0, -15, 51, 3, 90 - createsprite 0x859725C, 0x82, 0, -15, 102, 3, 90 - createsprite 0x859725C, 0x82, 0, -15, 153, 3, 90 - createsprite 0x859725C, 0x82, 0, -15, 204, 3, 90 + createsprite gUnknown_0859725C, 0x82, 0, -15, 0, 3, 90 + createsprite gUnknown_0859725C, 0x82, 0, -15, 51, 3, 90 + createsprite gUnknown_0859725C, 0x82, 0, -15, 102, 3, 90 + createsprite gUnknown_0859725C, 0x82, 0, -15, 153, 3, 90 + createsprite gUnknown_0859725C, 0x82, 0, -15, 204, 3, 90 return AnimScript_82D7CD1: @@ -10403,28 +10403,28 @@ Status_Burn: end AnimScript_82D7DA6: - createsprite 0x8595504, 0x82, -24, 24, 24, 24, 20, 1, 1 + createsprite gUnknown_08595504, 0x82, -24, 24, 24, 24, 20, 1, 1 delay 0x4 return Status_Infatuation: loadspritegfx 0x27E2 playsewithpan SE_W204, -64 - createsprite 0x8593970, 0x3, 0, 20 + createsprite gUnknown_08593970, 0x3, 0, 20 delay 0xF playsewithpan SE_W204, -64 - createsprite 0x8593970, 0x3, -20, 20 + createsprite gUnknown_08593970, 0x3, -20, 20 delay 0xF playsewithpan SE_W204, -64 - createsprite 0x8593970, 0x3, 20, 20 + createsprite gUnknown_08593970, 0x3, 20, 20 end Status_Sleep: loadspritegfx 0x27F4 playsewithpan SE_W173, -64 - createsprite 0x8592C88, 0x2, 4, -10, 16, 0, 0 + createsprite gUnknown_08592C88, 0x2, 4, -10, 16, 0, 0 delay 0x1E - createsprite 0x8592C88, 0x2, 4, -10, 16, 0, 0 + createsprite gUnknown_08592C88, 0x2, 4, -10, 16, 0, 0 end Status_Paralysis: @@ -10448,7 +10448,7 @@ Status_Curse: loadspritegfx 0x27D8 monbg ANIM_DEF_PARTNER playsewithpan SE_W171, +63 - createsprite 0x8596DE8, 0x82 + createsprite gUnknown_08596DE8, 0x82 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 14, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -10458,7 +10458,7 @@ Status_Nightmare: loadspritegfx 0x27ED monbg ANIM_DEF_PARTNER playsewithpan SE_W171, +63 - createsprite 0x8596E00, 0x82 + createsprite gUnknown_08596E00, 0x82 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 14, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -10509,7 +10509,7 @@ Anim_Table_4: createvisualtask sub_81732B0, 0x2 delay 0x0 waitplaysewithpan SE_W026, -64, 0x16 - createsprite 0x85E5338, 0x83, -18, 12, 0, 32 + createsprite gUnknown_085E5338, 0x83, -18, 12, 0, 32 delay 0x32 loopsewithpan SE_W039, +63, 0x13, 0x2 createvisualtask sub_80D5EB8, 0x5, 1, 8, 1536, 2, 1 @@ -10519,7 +10519,7 @@ Anim_Table_4: Anim_ItemKnockOff: loadspritegfx 0x27F0 - createsprite 0x8592628, 0x82 + createsprite gUnknown_08592628, 0x82 end Status_Wrap: @@ -10533,9 +10533,9 @@ Status_Wrap: AnimScript_82D7FA1: loadspritegfx 0x27CA loopsewithpan SE_W010, +63, 0x6, 0x2 - createsprite 0x8592494, 0x84, 0, 16, 0, 1 + createsprite gUnknown_08592494, 0x84, 0, 16, 0, 1 delay 0x7 - createsprite 0x8592494, 0x82, 0, 8, 1, 1 + createsprite gUnknown_08592494, 0x82, 0, 8, 1, 1 delay 0x3 createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 8, 1 delay 0x14 @@ -10560,13 +10560,13 @@ AnimScript_82D800E: monbgprio_28 ANIM_TARGET setalpha 0x80C delay 0x0 - createsprite 0x8597274, 0x0, 4, 2, 0, 7, 23968 + createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 23968 playsewithpan SE_W250, +63 createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 30, 1 call AnimScript_82D1F5B call AnimScript_82D1F5B delay 0xC - createsprite 0x8597274, 0x0, 4, 2, 7, 0, 23968 + createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 23968 waitforvisualfinish stopsound clearmonbg ANIM_DEF_PARTNER @@ -10578,10 +10578,10 @@ AnimScript_82D8062: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W011, +63 - createsprite 0x8597098, 0x2, -32, 0, 2, 819, 0, 10 - createsprite 0x8597098, 0x2, 32, 0, 6, -819, 0, 10 + createsprite gUnknown_08597098, 0x2, -32, 0, 2, 819, 0, 10 + createsprite gUnknown_08597098, 0x2, 32, 0, 6, -819, 0, 10 delay 0xA - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x5, 1, 3, 0, 5, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -10591,13 +10591,13 @@ AnimScript_82D8062: AnimScript_82D80BF: loadspritegfx 0x275A - createsprite 0x8597274, 0x0, 4, 2, 0, 7, 563 + createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 563 createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 30, 1 playsewithpan SE_W328, +63 call AnimScript_82D51B7 call AnimScript_82D51B7 delay 0x16 - createsprite 0x8597274, 0x0, 4, 2, 7, 0, 563 + createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 563 waitforvisualfinish stopsound end @@ -10619,8 +10619,8 @@ Anim_ItemEffect: call AnimScript_82D79B4 waitforvisualfinish playsewithpan SE_REAPOKE, -64 - createsprite 0x8597274, 0x2, 2, 3, 7, 0, 26609 - createsprite 0x859381C, 0x3, 0, 0, 0, 0 + createsprite gUnknown_08597274, 0x2, 2, 3, 7, 0, 26609 + createsprite gUnknown_0859381C, 0x3, 0, 0, 0, 0 waitforvisualfinish end @@ -10630,31 +10630,31 @@ Anim_SmokeBallEscape: setalpha 0x40C delay 0x0 playsewithpan SE_BOWA2, +63 - createsprite 0x85CE734, 0x80, 0, 32, 28, 30 + createsprite gUnknown_085CE734, 0x80, 0, 32, 28, 30 delay 0x4 playsewithpan SE_BOWA2, +63 - createsprite 0x85CE734, 0x7F, 2, 12, 20, 30 + createsprite gUnknown_085CE734, 0x7F, 2, 12, 20, 30 delay 0xC playsewithpan SE_BOWA2, +63 - createsprite 0x85CE734, 0x7E, 2, -28, 4, 30 + createsprite gUnknown_085CE734, 0x7E, 2, -28, 4, 30 delay 0xC playsewithpan SE_BOWA2, +63 - createsprite 0x85CE734, 0x7C, 2, 14, -20, 30 + createsprite gUnknown_085CE734, 0x7C, 2, 14, -20, 30 delay 0x4 playsewithpan SE_BOWA2, +63 createvisualtask sub_81136E8, 0x2, 2 - createsprite 0x85CE734, 0x7B, 3, 4, 4, 30 + createsprite gUnknown_085CE734, 0x7B, 3, 4, 4, 30 delay 0xE playsewithpan SE_BOWA2, +63 - createsprite 0x85CE734, 0x7A, 3, -14, 18, 46 + createsprite gUnknown_085CE734, 0x7A, 3, -14, 18, 46 delay 0x0 - createsprite 0x85CE734, 0x79, 3, 14, -14, 46 + createsprite gUnknown_085CE734, 0x79, 3, 14, -14, 46 delay 0x0 - createsprite 0x85CE734, 0x78, 3, -12, -10, 46 + createsprite gUnknown_085CE734, 0x78, 3, -12, -10, 46 delay 0x0 - createsprite 0x85CE734, 0x77, 3, 14, 14, 46 + createsprite gUnknown_085CE734, 0x77, 3, 14, 14, 46 delay 0x0 - createsprite 0x85CE734, 0x76, 3, 0, 0, 46 + createsprite gUnknown_085CE734, 0x76, 3, 0, 0, 46 waitforvisualfinish clearmonbg ANIM_ATTACKER invisible ANIM_ATTACKER @@ -10663,14 +10663,14 @@ Anim_SmokeBallEscape: end Anim_HangedOn: - createsprite 0x8597274, 0x0, 2, 7, 0, 9, 31 + createsprite gUnknown_08597274, 0x0, 2, 7, 0, 9, 31 playsewithpan SE_W082, -64 createvisualtask sub_815DB90, 0x5, 30, 128, 0, 1, 2, 0, 1 waitforvisualfinish - createsprite 0x8597274, 0x0, 2, 4, 9, 0, 31 + createsprite gUnknown_08597274, 0x0, 2, 4, 9, 0, 31 waitforvisualfinish delay 0x6 - createsprite 0x857FE58, 0x0, 0, 0, 15 + createsprite gUnknown_0857FE58, 0x0, 0, 0, 15 end Anim_Rain: @@ -10705,7 +10705,7 @@ Anim_Hit: monbg ANIM_TARGET setalpha 0x80C playsewithpan SE_W003, +63 - createsprite 0x8597358, 0x2, 0, 0, 1, 2 + createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2 createvisualtask sub_80D51AC, 0x2, 1, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_TARGET @@ -10717,7 +10717,7 @@ Anim_ItemSteal: createvisualtask sub_8117F30, 0x2 createvisualtask sub_8172ED0, 0x2 delay 0x1 - createsprite 0x8592670, 0x2, 0, -5, 10, 2, -1 + createsprite gUnknown_08592670, 0x2, 0, -5, 10, 2, -1 end Anim_SnatchMove: @@ -10769,7 +10769,7 @@ Anim_FutureSightHit: Anim_DoomDesireHit: createvisualtask sub_8117F10, 0x2 loadspritegfx 0x27D6 - createsprite 0x8597274, 0x2, 1, 3, 0, 16, 0x7FFF + createsprite gUnknown_08597274, 0x2, 1, 3, 0, 16, 0x7FFF waitforvisualfinish delay 0xA createvisualtask sub_815C0A4, 0x5 @@ -10782,21 +10782,21 @@ Anim_DoomDesireHit: delay 0x19 createvisualtask sub_80D5484, 0x2, 1, 10, 0, 20, 1 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x3, 0, 0, 1, 1 + createsprite gUnknown_0859371C, 0x3, 0, 0, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x3, 24, -24, 1, 1 + createsprite gUnknown_0859371C, 0x3, 24, -24, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x3, -16, 16, 1, 1 + createsprite gUnknown_0859371C, 0x3, -16, 16, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x3, -24, -12, 1, 1 + createsprite gUnknown_0859371C, 0x3, -24, -12, 1, 1 delay 0x6 playsewithpan SE_W120, +63 - createsprite 0x859371C, 0x3, 16, 16, 1, 1 + createsprite gUnknown_0859371C, 0x3, 16, 16, 1, 1 waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 3, 16, 0, 0x7FFF + createsprite gUnknown_08597274, 0x2, 1, 3, 16, 0, 0x7FFF waitforvisualfinish end @@ -10818,7 +10818,7 @@ Status_Ingrain: loadspritegfx 0x272F monbg ANIM_DEF_PARTNER setalpha 0x80C - createsprite 0x8597274, 0x2, 1, 1, 0, 4, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 0, 4, 13293 waitforvisualfinish delay 0x3 call AnimScript_82D1009 @@ -10826,7 +10826,7 @@ Status_Ingrain: delay 0xF call AnimScript_82D79DF waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 1, 4, 0, 13293 + createsprite gUnknown_08597274, 0x2, 1, 1, 4, 0, 13293 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -10834,7 +10834,7 @@ Status_Ingrain: Anim_WishHeal: loadspritegfx 0x2741 - createsprite 0x8597274, 0x2, 1, 3, 0, 10, 0 + createsprite gUnknown_08597274, 0x2, 1, 3, 0, 10, 0 waitforvisualfinish playsewithpan SE_W025, -64 call AnimScript_82D79B4 @@ -10843,7 +10843,7 @@ Anim_WishHeal: loadspritegfx 0x272F call AnimScript_82D79DF waitforvisualfinish - createsprite 0x8597274, 0x2, 1, 3, 10, 0, 0 + createsprite gUnknown_08597274, 0x2, 1, 3, 10, 0, 0 end AnimScript_82D85A3: @@ -10913,7 +10913,7 @@ AnimScript_82D8652: setalpha 0x80C delay 0x0 playsewithpan SE_W003, +63 - createsprite 0x8597358, 0x82, -4, -20, 1, 2 + createsprite gUnknown_08597358, 0x82, -4, -20, 1, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff diff --git a/data/item_menu_icons.s b/data/item_menu_icons.s index 01aa67eb0a..c79b59e439 100644 --- a/data/item_menu_icons.s +++ b/data/item_menu_icons.s @@ -1,4 +1,4 @@ -#include "constants/items.h" + #include "constants/items.h" .include "asm/macros.inc" .include "constants/constants.inc" @@ -54,7 +54,22 @@ gUnknown_0857FDF4:: @ 857FDF4 .incbin "baserom.gba", 0x57fdf4, 0x1c gUnknown_0857FE10:: @ 857FE10 - .incbin "baserom.gba", 0x57fe10, 0x90 + .incbin "baserom.gba", 0x57fe10, 0x18 + +gUnknown_0857FE28:: @ 857FE28 + .incbin "baserom.gba", 0x57fe28, 0x18 + +gUnknown_0857FE40:: @ 857FE40 + .incbin "baserom.gba", 0x57fe40, 0x18 + +gUnknown_0857FE58:: @ 857FE58 + .incbin "baserom.gba", 0x57fe58, 0x18 + +gUnknown_0857FE70:: @ 857FE70 + .incbin "baserom.gba", 0x57fe70, 0x18 + +gUnknown_0857FE88:: @ 857FE88 + .incbin "baserom.gba", 0x57fe88, 0x18 @ 857FEA0 .include "data/text/item_descriptions.inc" From f82badd5153dd32f4a401f28d7fa3821c50f87a4 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Sun, 31 Dec 2017 13:30:22 -0500 Subject: [PATCH 48/54] Add pokegold and pokefirered. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 814ed48339..727f74abf0 100644 --- a/README.md +++ b/README.md @@ -13,18 +13,22 @@ To set up the repository, see [**INSTALL.md**](INSTALL.md). * Disassembly of [**Pokémon Red/Blue**][pokered] * Disassembly of [**Pokémon Yellow**][pokeyellow] +* Disassembly of [**Pokémon Gold**][pokegold] * Disassembly of [**Pokémon Crystal**][pokecrystal] * Disassembly of [**Pokémon Pinball**][pokepinball] * Disassembly of [**Pokémon TCG**][poketcg] * Disassembly of [**Pokémon Ruby**][pokeruby] +* Disassembly of [**Pokémon Fire Red**][pokefirered] * Discord: [**pret**][Discord] * irc: **irc.freenode.net** [**#pret**][irc] [pokered]: https://github.com/pret/pokered [pokeyellow]: https://github.com/pret/pokeyellow +[pokegold]: https://github.com/pret/pokegold [pokecrystal]: https://github.com/pret/pokecrystal [pokepinball]: https://github.com/pret/pokepinball [poketcg]: https://github.com/pret/poketcg [pokeruby]: https://github.com/pret/pokeruby +[pokefirered]: https://github.com/pret/pokefirered [Discord]: https://discord.gg/cJxDDVP [irc]: https://kiwiirc.com/client/irc.freenode.net/?#pret From d8c329b888e0184b33c409fa8266fe79ec3f7e92 Mon Sep 17 00:00:00 2001 From: EternalCode Date: Mon, 1 Jan 2018 14:36:27 -0500 Subject: [PATCH 49/54] Update fldeff_teleport.c --- src/fldeff_teleport.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index 1730f83551..72896904e9 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -4,17 +4,18 @@ extern bool8 is_light_level_1_2_3_or_6(u8 mapType); extern void* hm_add_c3_launch_phase_2(void); -extern void hm_teleport_run_dp02scr(void); -extern void* gUnknown_0203CEEC; -extern void* gUnknown_03005DB0; extern void sub_808469C(void); extern u8 GetCursorSelectionMonId(void); -extern void sub_817C94C(void); extern u8 oei_task_add(void); extern void FieldEffectActiveListRemove(u8 id); extern void sub_80B7FC8(void); extern void SetPlayerAvatarTransitionFlags(u8); +extern void* gUnknown_0203CEEC; +extern void* gUnknown_03005DB0; + +void hm_teleport_run_dp02scr(void); +void sub_817C94C(void); // 817C8BC bool8 SetUpFieldMove_Teleport(void) From e3585d7d6641b9f8338a8ac34e0b898e6fb5a982 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Mon, 1 Jan 2018 19:21:30 -0600 Subject: [PATCH 50/54] Review fixes --- asm/battle_frontier_1.s | 2 +- asm/fldeff_80F9BCC.s | 6 +++--- asm/fldeff_cut.s | 6 +++--- asm/fldeff_flash.s | 4 ++-- asm/fldeff_strength.s | 2 +- asm/fldeff_sweetscent.s | 2 +- asm/overworld.s | 12 +++++------ asm/party_menu.s | 14 ++++++------- asm/pokenav.s | 2 +- asm/rom6.s | 6 +++--- include/field_effect.h | 2 ++ include/fldeff_teleport.h | 7 +++++++ include/overworld.h | 3 +++ include/party_menu.h | 2 ++ include/rom6.h | 1 + src/fldeff_teleport.c | 44 +++++++++++++++------------------------ 16 files changed, 60 insertions(+), 55 deletions(-) create mode 100644 include/fldeff_teleport.h diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index f6e395065d..8e82de6c6b 100755 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -13641,7 +13641,7 @@ sub_8195ED8: @ 8195ED8 push {r4,lr} ldr r4, =gMapHeader ldrb r0, [r4, 0x17] - bl is_light_level_1_2_3_or_6 + bl Overworld_MapTypeAllowsTeleportAndFly lsls r0, 24 cmp r0, 0 beq _08195F30 diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s index a1e4f4ff6b..e31375f9f7 100644 --- a/asm/fldeff_80F9BCC.s +++ b/asm/fldeff_80F9BCC.s @@ -591,7 +591,7 @@ sub_80FA004: @ 80FA004 bne _080FA070 bl sub_80F9F5C ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_80FA0DC @@ -606,7 +606,7 @@ _080FA070: bne _080FA0A0 bl sub_80F9F5C ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_80FA1E8 @@ -625,7 +625,7 @@ _080FA0AE: _080FA0B2: bl sub_80F9F5C ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_80FA34C diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s index 71137b7051..20380e4787 100755 --- a/asm/fldeff_cut.s +++ b/asm/fldeff_cut.s @@ -20,7 +20,7 @@ sub_80D3718: @ 80D3718 cmp r0, 0x1 bne _080D3754 ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_80D3A9C @@ -322,7 +322,7 @@ _080D395A: bne _080D39F8 _080D39BC: ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_ruin_valley @@ -360,7 +360,7 @@ _080D3A18: bne _080D3A2A _080D3A1E: ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_ruin_valley diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s index 9cc3a59a54..d52ee34fc9 100644 --- a/asm/fldeff_flash.s +++ b/asm/fldeff_flash.s @@ -18,7 +18,7 @@ SetUpFieldMove_Flash: @ 81370FC lsrs r0, 24 strh r0, [r4] ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_8179918 @@ -35,7 +35,7 @@ _08137134: cmp r0, 0 bne _08137170 ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_flash diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s index 53a088aa3d..fdadd2aacb 100644 --- a/asm/fldeff_strength.s +++ b/asm/fldeff_strength.s @@ -23,7 +23,7 @@ _08145DD8: lsrs r0, 24 strh r0, [r4] ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_8145E0C diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s index eea0df12f6..2055f70696 100644 --- a/asm/fldeff_sweetscent.s +++ b/asm/fldeff_sweetscent.s @@ -8,7 +8,7 @@ thumb_func_start SetUpFieldMove_SweetScent SetUpFieldMove_SweetScent: @ 8159EF0 ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_sweet_scent diff --git a/asm/overworld.s b/asm/overworld.s index 5de62b896f..c3140f7a9b 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -50,8 +50,8 @@ flag_var_implications_of_teleport_: @ 8084660 .pool thumb_func_end flag_var_implications_of_teleport_ - thumb_func_start sub_808469C -sub_808469C: @ 808469C + thumb_func_start Overworld_ResetStateAfterTeleport +Overworld_ResetStateAfterTeleport: @ 808469C push {lr} bl player_avatar_init_params_reset ldr r0, =0x0000088b @@ -69,7 +69,7 @@ sub_808469C: @ 808469C pop {r0} bx r0 .pool - thumb_func_end sub_808469C + thumb_func_end Overworld_ResetStateAfterTeleport thumb_func_start flagmods_08054D70 flagmods_08054D70: @ 80846E4 @@ -2772,8 +2772,8 @@ _08085BF0: bx r1 thumb_func_end is_light_level_1_2_3_5_or_6 - thumb_func_start is_light_level_1_2_3_or_6 -is_light_level_1_2_3_or_6: @ 8085BF4 + thumb_func_start Overworld_MapTypeAllowsTeleportAndFly +Overworld_MapTypeAllowsTeleportAndFly: @ 8085BF4 push {lr} lsls r0, 24 lsrs r0, 24 @@ -2793,7 +2793,7 @@ _08085C0E: _08085C10: pop {r1} bx r1 - thumb_func_end is_light_level_1_2_3_or_6 + thumb_func_end Overworld_MapTypeAllowsTeleportAndFly thumb_func_start is_light_level_8_or_9 is_light_level_8_or_9: @ 8085C14 diff --git a/asm/party_menu.s b/asm/party_menu.s index a336b5d63b..844043a95d 100755 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -10027,8 +10027,8 @@ _081B572A: .pool thumb_func_end sub_81B56D8 - thumb_func_start hm_add_c3_launch_phase_2 -hm_add_c3_launch_phase_2: @ 81B5738 + thumb_func_start FieldCallback_Teleport +FieldCallback_Teleport: @ 81B5738 push {lr} bl pal_fill_black ldr r0, =task_launch_hm_phase_2 @@ -10038,7 +10038,7 @@ hm_add_c3_launch_phase_2: @ 81B5738 pop {r1} bx r1 .pool - thumb_func_end hm_add_c3_launch_phase_2 + thumb_func_end FieldCallback_Teleport thumb_func_start task_launch_hm_phase_2 task_launch_hm_phase_2: @ 81B5750 @@ -10160,7 +10160,7 @@ sub_81B5820: @ 81B5820 cmp r0, 0x1 bne _081B585C ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm_surf_run_dp02scr @@ -10199,7 +10199,7 @@ sub_81B5884: @ 81B5884 push {lr} ldr r0, =gMapHeader ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 + bl Overworld_MapTypeAllowsTeleportAndFly lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -10278,7 +10278,7 @@ hm_prepare_waterfall: @ 81B58F0 cmp r0, 0x1 bne _081B594C ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_waterfall @@ -10325,7 +10325,7 @@ sub_81B5974: @ 81B5974 .pool _081B5990: ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_81B5958 diff --git a/asm/pokenav.s b/asm/pokenav.s index 35df4d6b75..b52715cb42 100755 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -7924,7 +7924,7 @@ sub_81CAF78: @ 81CAF78 strb r0, [r6] ldr r0, =gMapHeader ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 + bl Overworld_MapTypeAllowsTeleportAndFly lsls r0, 24 cmp r0, 0 bne _081CAFA4 diff --git a/asm/rom6.s b/asm/rom6.s index 51ae2834fa..cc02638bc0 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -268,7 +268,7 @@ sub_8135654: @ 8135654 lsrs r0, 24 strh r0, [r4] ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_8179834 @@ -285,7 +285,7 @@ _0813568C: b _081356AC _0813569E: ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_81356C4 @@ -361,7 +361,7 @@ sub_813572C: @ 813572C b _0813574C _0813573E: ldr r1, =gUnknown_03005DB0 - ldr r0, =hm_add_c3_launch_phase_2 + ldr r0, =FieldCallback_Teleport str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_dig diff --git a/include/field_effect.h b/include/field_effect.h index 772b20d37a..fb0f20f6f1 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -75,5 +75,7 @@ u32 FieldEffectStart(u8); bool8 FieldEffectActiveListContains(u8 id); void sub_80B69DC(void); void FieldEffectStop(struct Sprite *sprite, u8 id); +void sub_80B7FC8(void); +void FieldEffectActiveListRemove(u8 id); #endif //GUARD_FIELD_EFFECTS_H diff --git a/include/fldeff_teleport.h b/include/fldeff_teleport.h new file mode 100644 index 0000000000..71fb64ad29 --- /dev/null +++ b/include/fldeff_teleport.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FLDEFF_TELEPORT_H +#define GUARD_FLDEFF_TELEPORT_H + +void hm_teleport_run_dp02scr(void); +void sub_817C94C(void); + +#endif // GUARD_FLDEFF_TELEPORT_H diff --git a/include/overworld.h b/include/overworld.h index a5fba0c10a..d6f90b6664 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -42,6 +42,9 @@ void sub_8084EBC(s16, s16); void player_avatar_init_params_reset(void); +bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType); +void Overworld_ResetStateAfterTeleport(void); + void Overworld_SetFlashLevel(s32 a1); //u8 Overworld_GetFlashLevel(void); void sub_8085524(u16); diff --git a/include/party_menu.h b/include/party_menu.h index 3756ef569c..1d1661ceed 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -16,5 +16,7 @@ void sub_81B58A8(void); void DoWallyTutorialBagMenu(void); u8 pokemon_ailments_get_primary(u32 status); u8 *GetMonNickname(struct Pokemon *mon, u8 *dst); +u8 GetCursorSelectionMonId(void); +bool8 FieldCallback_Teleport(void); #endif // GUARD_PARTY_MENU_H diff --git a/include/rom6.h b/include/rom6.h index fc33b7d1f5..f91b34b4a7 100644 --- a/include/rom6.h +++ b/include/rom6.h @@ -11,5 +11,6 @@ void UpdateBirchState(u16 days); void UpdateFrontierManiac(u16 days); void UpdateFrontierGambler(u16 days); void SetShoalItemFlag(u16 days); +u8 oei_task_add(void); #endif //GUARD_ROM6_H diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index 72896904e9..5b3492db03 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -1,55 +1,45 @@ #include "global.h" +#include "fldeff_teleport.h" #include "field_effect.h" +#include "field_player_avatar.h" +#include "party_menu.h" +#include "overworld.h" +#include "rom6.h" #include "task.h" -extern bool8 is_light_level_1_2_3_or_6(u8 mapType); -extern void* hm_add_c3_launch_phase_2(void); -extern void sub_808469C(void); -extern u8 GetCursorSelectionMonId(void); -extern u8 oei_task_add(void); -extern void FieldEffectActiveListRemove(u8 id); -extern void sub_80B7FC8(void); -extern void SetPlayerAvatarTransitionFlags(u8); +extern bool8 (*gUnknown_03005DB0)(void); +extern void (*gUnknown_0203CEEC)(void); -extern void* gUnknown_0203CEEC; -extern void* gUnknown_03005DB0; - -void hm_teleport_run_dp02scr(void); -void sub_817C94C(void); - -// 817C8BC bool8 SetUpFieldMove_Teleport(void) { - if (is_light_level_1_2_3_or_6(gMapHeader.mapType) == TRUE) + if (Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType) == TRUE) { - gUnknown_03005DB0 = hm_add_c3_launch_phase_2; + gUnknown_03005DB0 = FieldCallback_Teleport; gUnknown_0203CEEC = hm_teleport_run_dp02scr; return TRUE; } return FALSE; } -// 817C8FC void hm_teleport_run_dp02scr(void) { - sub_808469C(); - FieldEffectStart(0x3F); + Overworld_ResetStateAfterTeleport(); + FieldEffectStart(FLDEFF_USE_TELEPORT); gFieldEffectArguments[0] = (u32)GetCursorSelectionMonId(); } -// 817C91C -u8 FldEff_UseTeleport(void) +bool8 FldEff_UseTeleport(void) { - u8 taskID = oei_task_add(); - gTasks[taskID].data[8] = (u32)sub_817C94C >> 16; - gTasks[taskID].data[9] = (u32)sub_817C94C; + u8 taskId = oei_task_add(); + gTasks[taskId].data[8] = (u32)sub_817C94C >> 16; + gTasks[taskId].data[9] = (u32)sub_817C94C; SetPlayerAvatarTransitionFlags(1); - return 0; + return FALSE; } void sub_817C94C(void) { - FieldEffectActiveListRemove(0x3F); + FieldEffectActiveListRemove(FLDEFF_USE_TELEPORT); sub_80B7FC8(); } From 462a0030aec788c5c1ff81ddaba555a99bcb2a84 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sat, 6 Jan 2018 00:17:31 -0600 Subject: [PATCH 51/54] match MoveSaveBlocks_ResetHeap --- src/load_save.c | 162 +++++++----------------------------------------- 1 file changed, 21 insertions(+), 141 deletions(-) diff --git a/src/load_save.c b/src/load_save.c index e0106c0a8e..734f7398b6 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -80,45 +80,15 @@ void SetSaveBlocksPointers(u16 offset) SetDecorationInventoriesPointers(); } -// stuff i used to try and match MoveSaveBlocks_ResetHeap -struct SaveBlocksInOne -{ - struct SaveBlock2 sav2; - struct SaveBlock1 sav1; - struct PokemonStorage sav3; -}; +extern u8 gHeap[]; -extern struct SaveBlocksInOne gHeap; - -#define ewram_addr 0x02000000 // oh no... -#define ewram_addr2 0x02000f2c -#define ewram_addr3 0x02004cb4 - -#define eSaveBlockCopy (*(struct SaveBlocksInOne *)(ewram_addr + 0x0)) -#define eSaveBlock2Copy (*(struct SaveBlock2 *)((void*)(ewram_addr + 0x0))) -#define eSaveBlock1Copy (*(struct SaveBlock1 *)((void*)(ewram_addr + sizeof(struct SaveBlock2)))) -#define eSaveBlock3Copy (*(struct PokemonStorage *)((void*)(ewram_addr + sizeof(struct SaveBlock2) + sizeof(struct SaveBlock1)))) - -#ifdef NONMATCHING // this is one devil of a motherfucker -/* - The reason MoveSaveBlocks_ResetHeap mismatches is due to incorrect memcpys. Various - things have been tried, such as: direct struct copys, ewram casts, use of defining - the addresses manually, using memcpy anyway, delayed allocation of pointers at - the start of function, as seen above and below. Scope declaration has been used to try and - reproduce the correct macro thought to be used, but nothing has worked. It is worth - noting that at this point that the compiler will delay the allocation of the save block - pointers at the beginningto be allocated later: which might matter for matching this. - Due to loading shared ewram heap areas directly, it is very likely emerald used ewram - defines for this function, but there is no known example of a matching define. - In addition, dead code might be present in the form of a runtime variable used - to fix the address of the save blocks. This has been tested and is shown to affect - the registers as well. -*/ void MoveSaveBlocks_ResetHeap(void) { void *vblankCB, *hblankCB; u32 encryptionKey; - struct SaveBlock1 **sav1Copy = &gSaveBlock1Ptr; // r10; + struct SaveBlock2 *saveBlock2Copy; + struct SaveBlock1 *saveBlock1Copy; + struct PokemonStorage *pokemonStorageCopy; // save interrupt functions and turn them off vblankCB = gMain.vblankCallback; @@ -127,22 +97,30 @@ void MoveSaveBlocks_ResetHeap(void) gMain.hblankCallback = NULL; gUnknown_0203CF5C = NULL; + saveBlock2Copy = (struct SaveBlock2 *)(gHeap); + saveBlock1Copy = (struct SaveBlock1 *)(gHeap + sizeof(struct SaveBlock2)); + pokemonStorageCopy = (struct PokemonStorage *)(gHeap + sizeof(struct SaveBlock2) + sizeof(struct SaveBlock1)); + // backup the saves. - eSaveBlock1Copy = **sav1Copy; - eSaveBlock2Copy = *gSaveBlock2Ptr; - eSaveBlock3Copy = *gPokemonStoragePtr; + *saveBlock2Copy = *gSaveBlock2Ptr; + *saveBlock1Copy = *gSaveBlock1Ptr; + *pokemonStorageCopy = *gPokemonStoragePtr; // change saveblocks' pointers // argument is a sum of the individual trainerId bytes - SetSaveBlocksPointers(eSaveBlock2Copy.playerTrainerId[0] + eSaveBlock2Copy.playerTrainerId[1] + eSaveBlock2Copy.playerTrainerId[2] + eSaveBlock2Copy.playerTrainerId[3]); + SetSaveBlocksPointers( + saveBlock2Copy->playerTrainerId[0] + + saveBlock2Copy->playerTrainerId[1] + + saveBlock2Copy->playerTrainerId[2] + + saveBlock2Copy->playerTrainerId[3]); // restore saveblock data since the pointers changed - **sav1Copy = eSaveBlock1Copy; - *gSaveBlock2Ptr = eSaveBlock2Copy; - *gPokemonStoragePtr = eSaveBlock3Copy; + memcpy(gSaveBlock2Ptr, saveBlock2Copy, sizeof(*gSaveBlock2Ptr)); + memcpy(gSaveBlock1Ptr, saveBlock1Copy, sizeof(*gSaveBlock1Ptr)); + memcpy(gPokemonStoragePtr, pokemonStorageCopy, sizeof(*gPokemonStoragePtr)); // heap was destroyed in the copying process, so reset it - InitHeap((void*)(0x02000000), 0x1C000); + InitHeap(gHeap, 0x1C000); // restore interrupt functions gMain.hblankCallback = hblankCB; @@ -153,105 +131,7 @@ void MoveSaveBlocks_ResetHeap(void) ApplyNewEncryptionKeyToAllEncryptedData(encryptionKey); gSaveBlock2Ptr->encryptionKey = encryptionKey; } -#else -__attribute__((naked)) -void MoveSaveBlocks_ResetHeap(void) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x8\n\ - ldr r5, =gMain\n\ - ldr r0, [r5, 0xC]\n\ - str r0, [sp]\n\ - ldr r1, [r5, 0x10]\n\ - str r1, [sp, 0x4]\n\ - movs r0, 0\n\ - str r0, [r5, 0xC]\n\ - str r0, [r5, 0x10]\n\ - ldr r1, =gUnknown_0203CF5C\n\ - str r0, [r1]\n\ - ldr r4, =0x02000000\n\ - ldr r0, =gSaveBlock2Ptr\n\ - ldr r1, [r0]\n\ - ldr r6, =0x00000f2c\n\ - adds r0, r4, 0\n\ - adds r2, r6, 0\n\ - bl memcpy\n\ - ldr r1, =gSaveBlock1Ptr\n\ - mov r10, r1\n\ - ldr r1, [r1]\n\ - ldr r7, =0x00003d88\n\ - ldr r0, =0x02000f2c\n\ - adds r2, r7, 0\n\ - bl memcpy\n\ - ldr r0, =gPokemonStoragePtr\n\ - mov r8, r0\n\ - ldr r1, [r0]\n\ - ldr r0, =0x000083d0\n\ - mov r9, r0\n\ - ldr r0, =0x02004cb4\n\ - mov r2, r9\n\ - bl memcpy\n\ - ldrb r1, [r4, 0xA]\n\ - ldrb r0, [r4, 0xB]\n\ - adds r1, r0\n\ - ldrb r0, [r4, 0xC]\n\ - adds r1, r0\n\ - ldrb r0, [r4, 0xD]\n\ - adds r0, r1\n\ - bl SetSaveBlocksPointers\n\ - ldr r1, =gSaveBlock2Ptr\n\ - ldr r0, [r1]\n\ - adds r1, r4, 0\n\ - adds r2, r6, 0\n\ - bl memcpy\n\ - mov r1, r10\n\ - ldr r0, [r1]\n\ - ldr r1, =0x02000f2c\n\ - adds r2, r7, 0\n\ - bl memcpy\n\ - mov r1, r8\n\ - ldr r0, [r1]\n\ - ldr r1, =0x02004cb4\n\ - mov r2, r9\n\ - bl memcpy\n\ - movs r1, 0xE0\n\ - lsls r1, 9\n\ - adds r0, r4, 0\n\ - bl InitHeap\n\ - ldr r0, [sp, 0x4]\n\ - str r0, [r5, 0x10]\n\ - ldr r1, [sp]\n\ - str r1, [r5, 0xC]\n\ - bl Random\n\ - adds r4, r0, 0\n\ - bl Random\n\ - lsls r4, 16\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - adds r4, r0\n\ - adds r0, r4, 0\n\ - bl ApplyNewEncryptionKeyToAllEncryptedData\n\ - ldr r1, =gSaveBlock2Ptr\n\ - ldr r0, [r1]\n\ - adds r0, 0xAC\n\ - str r4, [r0]\n\ - add sp, 0x8\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif + u8 sav2_x1_query_bit1(void) { From 601ec28721b250d74e7fd61300226ff07c8a710b Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sat, 6 Jan 2018 00:35:48 -0600 Subject: [PATCH 52/54] remove explicit memcpy and add HEAP_SIZE constant --- include/global.h | 2 ++ src/load_save.c | 8 ++++---- src/main.c | 2 +- src/reset_save_heap.c | 4 +--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/global.h b/include/global.h index b6a496dd16..7943fc569e 100644 --- a/include/global.h +++ b/include/global.h @@ -31,6 +31,8 @@ char* strcpy(char *dst0, const char *src0); #define POKEMON_NAME_LENGTH 10 #define OT_NAME_LENGTH 7 +#define HEAP_SIZE 0x1C000 + extern u8 gStringVar1[]; extern u8 gStringVar2[]; extern u8 gStringVar3[]; diff --git a/src/load_save.c b/src/load_save.c index 734f7398b6..a516c08c21 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -115,12 +115,12 @@ void MoveSaveBlocks_ResetHeap(void) saveBlock2Copy->playerTrainerId[3]); // restore saveblock data since the pointers changed - memcpy(gSaveBlock2Ptr, saveBlock2Copy, sizeof(*gSaveBlock2Ptr)); - memcpy(gSaveBlock1Ptr, saveBlock1Copy, sizeof(*gSaveBlock1Ptr)); - memcpy(gPokemonStoragePtr, pokemonStorageCopy, sizeof(*gPokemonStoragePtr)); + *gSaveBlock2Ptr = *saveBlock2Copy; + *gSaveBlock1Ptr = *saveBlock1Copy; + *gPokemonStoragePtr = *pokemonStorageCopy; // heap was destroyed in the copying process, so reset it - InitHeap(gHeap, 0x1C000); + InitHeap(gHeap, HEAP_SIZE); // restore interrupt functions gMain.hblankCallback = hblankCB; diff --git a/src/main.c b/src/main.c index 07ce07f1c3..18d1abdc2a 100644 --- a/src/main.c +++ b/src/main.c @@ -122,7 +122,7 @@ void AgbMain() ClearDma3Requests(); ResetBgs(); SetDefaultFontsPointer(); - InitHeap(gHeap, 0x1C000); + InitHeap(gHeap, HEAP_SIZE); gSoftResetDisabled = FALSE; diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c index d4dbc5f42b..099edce49a 100644 --- a/src/reset_save_heap.c +++ b/src/reset_save_heap.c @@ -23,10 +23,8 @@ void sub_81700F8(void) ResetSaveCounters(); sub_81534D0(0); if (gSaveFileStatus == 0 || gSaveFileStatus == 2) - { Sav2_ClearSetDefault(); - } SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); - InitHeap(gHeap, 0x1c000); + InitHeap(gHeap, HEAP_SIZE); SetMainCallback2(sub_8086230); } From 0fd6ae47911d3dc4828a30a23d88096e83d9ff02 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sun, 7 Jan 2018 15:06:16 -0600 Subject: [PATCH 53/54] match ProcessDma3Requests --- src/dma3_manager.c | 430 +++++++-------------------------------------- 1 file changed, 65 insertions(+), 365 deletions(-) diff --git a/src/dma3_manager.c b/src/dma3_manager.c index bb015c5cfe..725bfb0e75 100644 --- a/src/dma3_manager.c +++ b/src/dma3_manager.c @@ -29,76 +29,92 @@ void ClearDma3Requests(void) gDma3ManagerLocked = FALSE; } -#ifdef NONMATCHING +// Maximum amount of data will will transfer in one operation +#define DMA_MAX_BLOCK_SIZE 0x1000 + +#define Dma3CopyLarge_(src, dest, size, bit) \ +{ \ + const void *_src = src; \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + if (_size <= DMA_MAX_BLOCK_SIZE) \ + { \ + DmaCopy##bit(3, _src, _dest, _size); \ + break; \ + } \ + DmaCopy##bit(3, _src, _dest, DMA_MAX_BLOCK_SIZE); \ + _src += DMA_MAX_BLOCK_SIZE; \ + _dest += DMA_MAX_BLOCK_SIZE; \ + _size -= DMA_MAX_BLOCK_SIZE; \ + } \ +} + +#define Dma3CopyLarge16_(src, dest, size) Dma3CopyLarge_(src, dest, size, 16) +#define Dma3CopyLarge32_(src, dest, size) Dma3CopyLarge_(src, dest, size, 32) + +#define Dma3FillLarge_(value, dest, size, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + if (_size <= DMA_MAX_BLOCK_SIZE) \ + { \ + DmaFill##bit(3, value, _dest, _size); \ + break; \ + } \ + DmaFill##bit(3, value, _dest, DMA_MAX_BLOCK_SIZE); \ + _dest += DMA_MAX_BLOCK_SIZE; \ + _size -= DMA_MAX_BLOCK_SIZE; \ + } \ +} + +#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16) +#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32) + + void ProcessDma3Requests(void) { - // NOTE: the fillerA member of the DMA struct is actually u32 value; - u16 total_size; + u16 totalSize; if (gDma3ManagerLocked) return; - total_size = 0; + totalSize = 0; // as long as there are DMA requests to process (unless size or vblank is an issue), do not exit - while (gDma3Requests[gDma3RequestCursor].size) + while (gDma3Requests[gDma3RequestCursor].size != 0) { - total_size += gDma3Requests[gDma3RequestCursor].size; + totalSize += gDma3Requests[gDma3RequestCursor].size; - if (total_size > 0xA000) + if (totalSize > 0xA000) return; // don't do too much at once - - if (REG_VCOUNT > 224) - return;// we're about to leave vblank, stop + if (*(u8 *)REG_ADDR_VCOUNT > 224) + return; // we're about to leave vblank, stop switch (gDma3Requests[gDma3RequestCursor].mode) { case 1: // regular 32-bit copy - // _08000C8C - if(gDma3Requests[gDma3RequestCursor].size <= 0x1000) - { - DmaCopy32(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size); - break; - } - while (gDma3Requests[gDma3RequestCursor].size > 0x1000) - { - DmaCopy32(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, 0x1000); - gDma3Requests[gDma3RequestCursor].src += 0x1000; - gDma3Requests[gDma3RequestCursor].dest += 0x1000; - gDma3Requests[gDma3RequestCursor].size -= 0x1000; - } - DmaCopy32(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size); + Dma3CopyLarge32_(gDma3Requests[gDma3RequestCursor].src, + gDma3Requests[gDma3RequestCursor].dest, + gDma3Requests[gDma3RequestCursor].size); break; case 2: // repeat a single 32-bit value across RAM - // _08000CD0 - while (gDma3Requests[gDma3RequestCursor].size > 0x1000) - { - DmaFill32(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, 0x1000); - gDma3Requests[gDma3RequestCursor].dest += 0x1000; - gDma3Requests[gDma3RequestCursor].size -= 0x1000; - } - DmaFill32(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size); + Dma3FillLarge32_(gDma3Requests[gDma3RequestCursor].value, + gDma3Requests[gDma3RequestCursor].dest, + gDma3Requests[gDma3RequestCursor].size); break; case 3: // regular 16-bit copy - // _08000D3C - while (gDma3Requests[gDma3RequestCursor].size > 0x1000) - { - DmaCopy16(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, 0x1000); - gDma3Requests[gDma3RequestCursor].src += 0x1000; - gDma3Requests[gDma3RequestCursor].dest += 0x1000; - gDma3Requests[gDma3RequestCursor].size -= 0x1000; - } - DmaCopy16(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size); + Dma3CopyLarge16_(gDma3Requests[gDma3RequestCursor].src, + gDma3Requests[gDma3RequestCursor].dest, + gDma3Requests[gDma3RequestCursor].size); break; case 4: // repeat a single 16-bit value across RAM - // _08000D88 - while (gDma3Requests[gDma3RequestCursor].size > 0x1000) - { - DmaFill16(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, 0x1000); - gDma3Requests[gDma3RequestCursor].dest += 0x1000; - gDma3Requests[gDma3RequestCursor].size -= 0x1000; - } - DmaFill16(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size); + Dma3FillLarge16_(gDma3Requests[gDma3RequestCursor].value, + gDma3Requests[gDma3RequestCursor].dest, + gDma3Requests[gDma3RequestCursor].size); break; } gDma3Requests[gDma3RequestCursor].src = NULL; @@ -112,322 +128,6 @@ void ProcessDma3Requests(void) gDma3RequestCursor = 0; } } -#else -__attribute__((naked)) -void ProcessDma3Requests(void) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0xC\n\ - ldr r0, =gDma3ManagerLocked\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _08000C06\n\ - b _08000E46\n\ -_08000C06:\n\ - movs r0, 0\n\ - str r0, [sp, 0x8]\n\ - ldr r1, =gDma3Requests\n\ - ldr r2, =gDma3RequestCursor\n\ - ldrb r0, [r2]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x8]\n\ - mov r12, r2\n\ - cmp r0, 0\n\ - bne _08000C1E\n\ - b _08000E46\n\ -_08000C1E:\n\ - mov r8, r1\n\ - adds r1, 0x4\n\ - mov r10, r1\n\ - movs r6, 0x80\n\ - lsls r6, 5\n\ - ldr r7, =0x040000D4 @REG_DMA3\n\ - movs r2, 0\n\ - mov r9, r2\n\ -_08000C2E:\n\ - mov r3, r12 @ gDma3RequestCursor\n\ - ldrb r0, [r3]\n\ - lsls r5, r0, 4\n\ - mov r0, r8 @ gDma3Requests\n\ - adds r1, r5, r0 @ gDma3Requests[gDma3RequestCursor]\n\ - ldrh r0, [r1, 0x8] @ gDma3Requests[gDma3RequestCursor].size\n\ - ldr r2, [sp, 0x8]\n\ - adds r0, r2, r0\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x8]\n\ - movs r0, 0xA0\n\ - lsls r0, 8\n\ - ldr r3, [sp, 0x8]\n\ - cmp r3, r0\n\ - bls _08000C50\n\ - b _08000E46\n\ -_08000C50:\n\ - ldr r0, =0x04000006 @REG_VCOUNT\n\ - ldrb r0, [r0]\n\ - cmp r0, 0xE0\n\ - bls _08000C5A\n\ - b _08000E46\n\ -_08000C5A:\n\ - ldrh r0, [r1, 0xA]\n\ - cmp r0, 0x2\n\ - beq _08000CD0\n\ - cmp r0, 0x2\n\ - bgt _08000C80\n\ - cmp r0, 0x1\n\ - beq _08000C8C\n\ - b _08000DF0\n\ - .pool\n\ -_08000C80:\n\ - cmp r0, 0x3\n\ - beq _08000D3C\n\ - cmp r0, 0x4\n\ - bne _08000C8A\n\ - b _08000D88\n\ -_08000C8A:\n\ - b _08000DF0\n\ -_08000C8C:\n\ - ldr r3, [r1]\n\ - mov r2, r10\n\ - adds r0, r5, r2\n\ - ldr r2, [r0]\n\ - ldrh r1, [r1, 0x8]\n\ - cmp r1, r6\n\ - bhi _08000CA6\n\ - str r3, [r7]\n\ - str r2, [r7, 0x4]\n\ - lsrs r0, r1, 2\n\ - movs r1, 0x84\n\ - lsls r1, 24\n\ - b _08000DAA\n\ -_08000CA6:\n\ - ldr r4, =0x040000D4 @REG_DMA3\n\ - str r3, [r4]\n\ - str r2, [r4, 0x4]\n\ - ldr r0, =0x84000400\n\ - str r0, [r4, 0x8]\n\ - ldr r0, [r4, 0x8]\n\ - adds r3, r6\n\ - adds r2, r6\n\ - subs r1, r6\n\ - cmp r1, r6\n\ - bhi _08000CA6\n\ - str r3, [r4]\n\ - str r2, [r4, 0x4]\n\ - lsrs r0, r1, 2\n\ - movs r1, 0x84\n\ - lsls r1, 24\n\ - b _08000D76\n\ - .pool\n\ -_08000CD0:\n\ - mov r3, r10\n\ - adds r0, r5, r3\n\ - ldr r4, [r0]\n\ - ldrh r1, [r1, 0x8]\n\ - cmp r1, r6\n\ - bhi _08000CF4\n\ - mov r0, r8\n\ - adds r0, 0xC\n\ - adds r0, r5, r0\n\ - ldr r0, [r0]\n\ - str r0, [sp]\n\ - mov r5, sp\n\ - str r5, [r7]\n\ - str r4, [r7, 0x4]\n\ - lsrs r0, r1, 2\n\ - movs r1, 0x85\n\ - lsls r1, 24\n\ - b _08000DAA\n\ -_08000CF4:\n\ - mov r2, r12\n\ - ldrb r0, [r2]\n\ - lsls r0, 4\n\ - mov r5, r8\n\ - adds r5, 0xC\n\ - adds r0, r5\n\ - ldr r0, [r0]\n\ - str r0, [sp]\n\ - ldr r3, =0x040000D4 @REG_DMA3\n\ - mov r0, sp\n\ - str r0, [r3]\n\ - str r4, [r3, 0x4]\n\ - ldr r0, =0x85000400\n\ - str r0, [r3, 0x8]\n\ - ldr r0, [r3, 0x8]\n\ - adds r4, r6\n\ - subs r1, r6\n\ - cmp r1, r6\n\ - bhi _08000CF4\n\ - ldrb r0, [r2]\n\ - lsls r0, 4\n\ - adds r0, r5\n\ - ldr r0, [r0]\n\ - str r0, [sp]\n\ - mov r2, sp\n\ - str r2, [r3]\n\ - str r4, [r3, 0x4]\n\ - lsrs r0, r1, 2\n\ - movs r1, 0x85\n\ - lsls r1, 24\n\ - b _08000DEA\n\ - .pool\n\ -_08000D3C:\n\ - ldr r3, [r1]\n\ - mov r2, r10\n\ - adds r0, r5, r2\n\ - ldr r2, [r0]\n\ - ldrh r1, [r1, 0x8]\n\ - cmp r1, r6\n\ - bhi _08000D56\n\ - str r3, [r7]\n\ - str r2, [r7, 0x4]\n\ - lsrs r0, r1, 1\n\ - movs r1, 0x80\n\ - lsls r1, 24\n\ - b _08000DAA\n\ -_08000D56:\n\ - ldr r4, =0x040000D4 @REG_DMA3\n\ - str r3, [r4]\n\ - str r2, [r4, 0x4]\n\ - ldr r0, =0x80000800\n\ - str r0, [r4, 0x8]\n\ - ldr r0, [r4, 0x8]\n\ - adds r3, r6\n\ - adds r2, r6\n\ - subs r1, r6\n\ - cmp r1, r6\n\ - bhi _08000D56\n\ - str r3, [r4]\n\ - str r2, [r4, 0x4]\n\ - lsrs r0, r1, 1\n\ - movs r1, 0x80\n\ - lsls r1, 24\n\ -_08000D76:\n\ - orrs r0, r1\n\ - str r0, [r4, 0x8]\n\ - ldr r0, [r4, 0x8]\n\ - b _08000DF0\n\ - .pool\n\ -_08000D88:\n\ - mov r3, r10\n\ - adds r0, r5, r3\n\ - ldr r2, [r0]\n\ - ldrh r4, [r1, 0x8]\n\ - add r1, sp, 0x4\n\ - cmp r4, r6\n\ - bhi _08000DB2\n\ - mov r0, r8\n\ - adds r0, 0xC\n\ - adds r0, r5, r0\n\ - ldr r0, [r0]\n\ - strh r0, [r1]\n\ - str r1, [r7]\n\ - str r2, [r7, 0x4]\n\ - lsrs r0, r4, 1\n\ - movs r1, 0x81\n\ - lsls r1, 24\n\ -_08000DAA:\n\ - orrs r0, r1\n\ - str r0, [r7, 0x8]\n\ - ldr r0, [r7, 0x8]\n\ - b _08000DF0\n\ -_08000DB2:\n\ - mov r5, r12\n\ - ldrb r0, [r5]\n\ - lsls r0, 4\n\ - ldr r3, =gDma3Requests + 0x0C\n\ - adds r0, r3\n\ - ldr r0, [r0]\n\ - strh r0, [r1]\n\ - ldr r3, =0x040000D4 @REG_DMA3\n\ - str r1, [r3]\n\ - str r2, [r3, 0x4]\n\ - ldr r0, =0x81000800\n\ - str r0, [r3, 0x8]\n\ - ldr r0, [r3, 0x8]\n\ - adds r2, r6\n\ - subs r4, r6\n\ - cmp r4, r6\n\ - bhi _08000DB2\n\ - ldrb r0, [r5]\n\ - lsls r0, 4\n\ - ldr r5, =gDma3Requests + 0x0C\n\ - adds r0, r5\n\ - ldr r0, [r0]\n\ - strh r0, [r1]\n\ - str r1, [r3]\n\ - str r2, [r3, 0x4]\n\ - lsrs r0, r4, 1\n\ - movs r1, 0x81\n\ - lsls r1, 24\n\ -_08000DEA:\n\ - orrs r0, r1\n\ - str r0, [r3, 0x8]\n\ - ldr r0, [r3, 0x8]\n\ -_08000DF0:\n\ - ldr r1, =gDma3Requests\n\ - mov r3, r12\n\ - ldrb r0, [r3]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - mov r2, r9\n\ - str r2, [r0]\n\ - ldrb r0, [r3]\n\ - lsls r0, 4\n\ - add r0, r10\n\ - str r2, [r0]\n\ - ldrb r0, [r3]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - movs r4, 0\n\ - strh r2, [r0, 0x8]\n\ - ldrb r0, [r3]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - mov r5, r9\n\ - strh r5, [r0, 0xA]\n\ - ldrb r0, [r3]\n\ - lsls r0, 4\n\ - adds r1, 0xC\n\ - adds r0, r1\n\ - mov r1, r9\n\ - str r1, [r0]\n\ - ldrb r0, [r3]\n\ - adds r0, 0x1\n\ - strb r0, [r3]\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bge _08000E34\n\ - strb r4, [r3]\n\ -_08000E34:\n\ - mov r2, r12\n\ - ldrb r0, [r2]\n\ - lsls r0, 4\n\ - ldr r3, =gDma3Requests\n\ - adds r0, r3\n\ - ldrh r0, [r0, 0x8]\n\ - cmp r0, 0\n\ - beq _08000E46\n\ - b _08000C2E\n\ -_08000E46:\n\ - add sp, 0xC\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} -#endif int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode) { From 75c359e3001badee4eaaf496255d3a51bdcb124e Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sun, 7 Jan 2018 16:58:20 -0600 Subject: [PATCH 54/54] match ScrollWindow --- src/window.c | 740 ++++----------------------------------------------- 1 file changed, 59 insertions(+), 681 deletions(-) diff --git a/src/window.c b/src/window.c index f4cb48ec04..3913b5800d 100644 --- a/src/window.c +++ b/src/window.c @@ -465,696 +465,74 @@ void FillWindowPixelBuffer(u8 windowId, u8 fillValue) CpuFastFill8(fillValue, gWindows[windowId].tileData, 0x20 * fillSize); } -// functionally equivalent, its fucking hard to match -#ifdef NONMATCHING +#define MOVE_TILES_DOWN(a) \ +{ \ + destOffset = i + (a); \ + srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \ + if (srcOffset < size) \ + *(u32*)(tileData + destOffset) = *(u32*)(tileData + srcOffset); \ + else \ + *(u32*)(tileData + destOffset) = fillValue32; \ + distanceLoop++; \ +} + +#define MOVE_TILES_UP(a) \ +{ \ + destOffset = i + (a); \ + srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \ + if (srcOffset < size) \ + *(u32*)(tileData - destOffset) = *(u32*)(tileData - srcOffset); \ + else \ + *(u32*)(tileData - destOffset) = fillValue32; \ + distanceLoop++; \ +} + void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue) { - s32 i, id1, id2, size; - u32 distanceLoop, toFill, width; - u8 *tileData; - struct WindowTemplate window; + struct WindowTemplate window = gWindows[windowId].window; + u8 *tileData = gWindows[windowId].tileData; + u32 fillValue32 = (fillValue << 24) | (fillValue << 16) | (fillValue << 8) | fillValue; + s32 size = window.height * window.width * 32; + u32 width = window.width; + s32 i; + s32 srcOffset, destOffset; + u32 distanceLoop; - tileData = gWindows[windowId].tileData; - toFill = (fillValue << 0x18) | (fillValue << 0x10) | (fillValue << 8) | fillValue; - window = gWindows[windowId].window; - size = 0x20 * (window.height * window.width); - width = window.width; - if (direction != 1) + switch (direction) { - s32 signedDirection = direction; - if (signedDirection <= 1) - { - if (signedDirection == 0) - { - for (i = 0; i < size; i += 0x20) - { - distanceLoop = distance; - id1 = i + 0; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 4; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 8; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 12; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 16; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 20; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 24; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 28; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - } - } - } - } - else - { - tileData += size - 4; - for (i = 0; i < size; i += 0x20) + case 0: + for (i = 0; i < size; i += 32) { distanceLoop = distance; - id1 = i + 0; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 4; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 8; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 12; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 16; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 20; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 24; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 28; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; + MOVE_TILES_DOWN(0) + MOVE_TILES_DOWN(4) + MOVE_TILES_DOWN(8) + MOVE_TILES_DOWN(12) + MOVE_TILES_DOWN(16) + MOVE_TILES_DOWN(20) + MOVE_TILES_DOWN(24) + MOVE_TILES_DOWN(28) } + break; + case 1: + tileData += size - 4; + for (i = 0; i < size; i += 32) + { + distanceLoop = distance; + MOVE_TILES_UP(0) + MOVE_TILES_UP(4) + MOVE_TILES_UP(8) + MOVE_TILES_UP(12) + MOVE_TILES_UP(16) + MOVE_TILES_UP(20) + MOVE_TILES_UP(24) + MOVE_TILES_UP(28) + } + break; + case 2: + break; } } -#else -__attribute__((naked)) -void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x8\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r8, r1\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - str r2, [sp]\n\ - lsls r3, 24\n\ - lsrs r3, 24\n\ - ldr r2, =gWindows\n\ - lsls r1, r0, 1\n\ - adds r1, r0\n\ - lsls r1, 2\n\ - adds r4, r1, r2\n\ - adds r2, 0x8\n\ - adds r1, r2\n\ - ldr r5, [r1]\n\ - lsls r7, r3, 24\n\ - lsls r0, r3, 16\n\ - orrs r7, r0\n\ - lsls r0, r3, 8\n\ - orrs r7, r0\n\ - orrs r7, r3\n\ - ldr r1, [r4]\n\ - ldr r2, [r4, 0x4]\n\ - ldrb r3, [r4, 0x4]\n\ - lsrs r0, r1, 24\n\ - muls r0, r3\n\ - lsls r6, r0, 5\n\ - lsrs r1, 24\n\ - mov r12, r1\n\ - mov r0, r8\n\ - cmp r0, 0x1\n\ - bne _08003CE8\n\ - b _08003E9E\n\ -_08003CE8:\n\ - cmp r0, 0x1\n\ - ble _08003CEE\n\ - b _08004046\n\ -_08003CEE:\n\ - cmp r0, 0\n\ - beq _08003CF4\n\ - b _08004046\n\ -_08003CF4:\n\ - movs r4, 0\n\ - cmp r4, r6\n\ - blt _08003CFC\n\ - b _08004046\n\ -_08003CFC:\n\ - movs r1, 0x8\n\ - negs r1, r1\n\ - mov r9, r1\n\ - movs r2, 0x7\n\ - mov r8, r2\n\ - mov r10, r5\n\ -_08003D08:\n\ - ldr r3, [sp]\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - adds r0, r3, 0\n\ - mov r2, r8\n\ - ands r0, r2\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003D34\n\ - adds r0, r5, r1\n\ - ldr r0, [r0]\n\ - mov r1, r10\n\ - str r0, [r1]\n\ - b _08003D38\n\ - .pool\n\ -_08003D34:\n\ - mov r2, r10\n\ - str r7, [r2]\n\ -_08003D38:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0x4\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003D64\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003D68\n\ -_08003D64:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003D68:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x8\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003D96\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003D9A\n\ -_08003D96:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003D9A:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0xC\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003DC8\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003DCC\n\ -_08003DC8:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003DCC:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x10\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003DFA\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003DFE\n\ -_08003DFA:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003DFE:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x14\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003E2C\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003E30\n\ -_08003E2C:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003E30:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x18\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003E5E\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003E62\n\ -_08003E5E:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003E62:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x1C\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - mov r1, r8\n\ - ands r3, r1\n\ - orrs r0, r3\n\ - lsls r0, 2\n\ - adds r1, r4, r0\n\ - cmp r1, r6\n\ - bge _08003E8C\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003E90\n\ -_08003E8C:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003E90:\n\ - movs r2, 0x20\n\ - add r10, r2\n\ - adds r4, 0x20\n\ - cmp r4, r6\n\ - bge _08003E9C\n\ - b _08003D08\n\ -_08003E9C:\n\ - b _08004046\n\ -_08003E9E:\n\ - subs r0, r6, 0x4\n\ - adds r5, r0\n\ - movs r4, 0\n\ - cmp r4, r6\n\ - blt _08003EAA\n\ - b _08004046\n\ -_08003EAA:\n\ - movs r0, 0x8\n\ - negs r0, r0\n\ - mov r9, r0\n\ - movs r1, 0x7\n\ - mov r8, r1\n\ - mov r10, r5\n\ -_08003EB6:\n\ - ldr r3, [sp]\n\ - adds r0, r3, 0\n\ - mov r2, r9\n\ - ands r0, r2\n\ - mov r1, r12\n\ - muls r1, r0\n\ - adds r0, r3, 0\n\ - mov r2, r8\n\ - ands r0, r2\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003EDC\n\ - subs r0, r5, r1\n\ - ldr r0, [r0]\n\ - mov r1, r10\n\ - str r0, [r1]\n\ - b _08003EE0\n\ -_08003EDC:\n\ - mov r2, r10\n\ - str r7, [r2]\n\ -_08003EE0:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0x4\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003F0C\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003F10\n\ -_08003F0C:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08003F10:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x8\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003F3E\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003F42\n\ -_08003F3E:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08003F42:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0xC\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003F70\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003F74\n\ -_08003F70:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08003F74:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x10\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003FA2\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003FA6\n\ -_08003FA2:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08003FA6:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x14\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003FD4\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003FD8\n\ -_08003FD4:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08003FD8:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x18\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08004006\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _0800400A\n\ -_08004006:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_0800400A:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x1C\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - mov r1, r8\n\ - ands r3, r1\n\ - orrs r0, r3\n\ - lsls r0, 2\n\ - adds r1, r4, r0\n\ - cmp r1, r6\n\ - bge _08004034\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08004038\n\ -_08004034:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08004038:\n\ - movs r2, 0x20\n\ - negs r2, r2\n\ - add r10, r2\n\ - adds r4, 0x20\n\ - cmp r4, r6\n\ - bge _08004046\n\ - b _08003EB6\n\ -_08004046:\n\ - add sp, 0x8\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -} -#endif // NONMATCHING void CallWindowFunction(u8 windowId, void ( *func)(u8, u8, u8, u8, u8, u8)) {