From 2375d2c8db10447ae301176a2136bcad4bb42bb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A1=C4=8Dky?= Date: Fri, 21 Nov 2014 10:46:12 +0000 Subject: [PATCH] Initial commit --- .gitignore | 5 + README.md | 6 +- battle-e/08-A001.asm | 2 + battle-e/08-A002.asm | 2 + battle-e/08-A003.asm | 2 + battle-e/08-A004.asm | 2 + battle-e/08-A005.asm | 2 + battle-e/08-A006.asm | 2 + battle-e/08-A007.asm | 2 + battle-e/08-A008.asm | 2 + battle-e/08-A009.asm | 2 + battle-e/08-A010.asm | 2 + battle-e/08-A011.asm | 2 + battle-e/08-A012.asm | 2 + battle-e/08-A013.asm | 2 + battle-e/08-A014.asm | 2 + battle-e/08-A015.asm | 2 + battle-e/08-A016.asm | 2 + battle-e/08-A017.asm | 2 + battle-e/08-A018.asm | 2 + battle-e/08-A019.asm | 2 + battle-e/08-A020.asm | 2 + battle-e/08-A021.asm | 2 + battle-e/08-A022.asm | 2 + battle-e/08-A023.asm | 2 + battle-e/08-A024.asm | 2 + battle-e/08-A025.asm | 2 + battle-e/08-A026.asm | 2 + battle-e/08-A027.asm | 2 + battle-e/08-A028.asm | 2 + battle-e/08-A029.asm | 2 + battle-e/08-A030.asm | 2 + battle-e/08-A031.asm | 2 + battle-e/08-A032.asm | 2 + battle-e/08-A033.asm | 2 + battle-e/08-A034.asm | 2 + battle-e/08-A035.asm | 2 + battle-e/08-A036.asm | 2 + battle-e/08-A037.asm | 2 + battle-e/08-A038.asm | 2 + battle-e/08-A039.asm | 2 + battle-e/08-A040.asm | 2 + battle-e/08-A041.asm | 2 + battle-e/08-A042.asm | 2 + battle-e/08-A043.asm | 2 + battle-e/08-A044.asm | 2 + battle-e/08-A045.asm | 2 + battle-e/08-A046.asm | 2 + battle-e/08-A047.asm | 2 + battle-e/08-A048.asm | 2 + battle-e/08-K001.asm | 2 + battle-e/08-K002.asm | 2 + battle-e/08-K003.asm | 2 + battle-e/08-K004.asm | 2 + battle-e/08-K005.asm | 2 + battle-e/08-K006.asm | 2 + battle-e/Makefile | 34 + battle-e/battletrainer.asm | 205 ++ battle-e/berries/Makefile | 19 + battle-e/berries/chilan.asm | 24 + battle-e/berries/drash.asm | 24 + battle-e/berries/eggant.asm | 24 + battle-e/berries/macros.asm | 37 + battle-e/berries/nutpea.asm | 23 + battle-e/berries/pumkin.asm | 24 + battle-e/berries/strib.asm | 22 + battle-e/enigmaberry.asm | 140 ++ battle-e/macros.asm | 24 + battle-e/sprites/battletrainer.4bpp | Bin 0 -> 1280 bytes battle-e/sprites/battletrainer.tilemap | Bin 0 -> 896 bytes battle-e/sprites/battletrainer1.pal | 16 + battle-e/sprites/battletrainer2.pal | 16 + battle-e/sprites/battletrainer3.pal | 16 + battle-e/sprites/battletrainer4.pal | 4 + battle-e/sprites/battletrainer5.pal | 4 + battle-e/sprites/berries/chilan.4bpp | Bin 0 -> 1152 bytes battle-e/sprites/berries/chilan.pal | 16 + battle-e/sprites/berries/drash.4bpp | Bin 0 -> 1152 bytes battle-e/sprites/berries/drash.pal | 16 + battle-e/sprites/berries/eggant.4bpp | Bin 0 -> 1152 bytes battle-e/sprites/berries/eggant.pal | 16 + battle-e/sprites/berries/nutpea.4bpp | Bin 0 -> 1152 bytes battle-e/sprites/berries/nutpea.pal | 16 + battle-e/sprites/berries/pumkin.4bpp | Bin 0 -> 1152 bytes battle-e/sprites/berries/pumkin.pal | 16 + battle-e/sprites/berries/strib.4bpp | Bin 0 -> 1152 bytes battle-e/sprites/berries/strib.pal | 16 + battle-e/sprites/berrybackdrop.4bpp | Bin 0 -> 160 bytes battle-e/sprites/berrybackdrop.pal | 16 + battle-e/sprites/berrybackdrop.tilemap | Bin 0 -> 896 bytes battle-e/sprites/trainerdoor.4bpp | 1 + battle-e/sprites/trainerdoor.pal | 4 + battle-e/sprites/trainers/aroma_lady.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/battle_girl.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/beauty.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/black_belt.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/bug_maniac.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/camper.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/collector.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/cooltrainer_f.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/cooltrainer_m.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/expert_f.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/expert_m.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/fisherman.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/gentleman.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/guitarist.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/hex_maniac.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/hiker.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/lady.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/ninja_boy.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/parasol_lady.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/picnicker.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/pkmn_breeder_f.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/pkmn_breeder_m.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/pkmn_ranger_f.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/pkmn_ranger_m.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/pokefan_f.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/pokefan_m.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/pokemaniac.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/psychic_f.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/psychic_m.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/ruin_maniac.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/sailor.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/school_kid_f.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/swimmer_f.4bpp | Bin 0 -> 2048 bytes .../sprites/trainers/triathlete_m_swim.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/tuber_f.4bpp | Bin 0 -> 2048 bytes battle-e/sprites/trainers/youngster.4bpp | Bin 0 -> 2048 bytes battle-e/trainers/Makefile | 19 + battle-e/trainers/alana.asm | 47 + battle-e/trainers/annie.asm | 47 + battle-e/trainers/antonio.asm | 47 + battle-e/trainers/april.asm | 47 + battle-e/trainers/astrid.asm | 47 + battle-e/trainers/belford.asm | 47 + battle-e/trainers/bryce.asm | 47 + battle-e/trainers/candice.asm | 47 + battle-e/trainers/celina.asm | 47 + battle-e/trainers/clayton.asm | 47 + battle-e/trainers/devin.asm | 47 + battle-e/trainers/dominic.asm | 47 + battle-e/trainers/dustin.asm | 47 + battle-e/trainers/ellie.asm | 47 + battle-e/trainers/fay.asm | 47 + battle-e/trainers/fuego.asm | 47 + battle-e/trainers/goro.asm | 47 + battle-e/trainers/griffin.asm | 47 + battle-e/trainers/hayden.asm | 47 + battle-e/trainers/heather.asm | 47 + battle-e/trainers/hillary.asm | 47 + battle-e/trainers/hugo.asm | 47 + battle-e/trainers/irazu.asm | 47 + battle-e/trainers/irvin.asm | 47 + battle-e/trainers/jeffrey.asm | 47 + battle-e/trainers/judith.asm | 47 + battle-e/trainers/justine.asm | 47 + battle-e/trainers/kendall.asm | 47 + battle-e/trainers/logan.asm | 47 + battle-e/trainers/macros.asm | 73 + battle-e/trainers/maggie.asm | 47 + battle-e/trainers/mandy.asm | 47 + battle-e/trainers/marcus.asm | 47 + battle-e/trainers/natalie.asm | 47 + battle-e/trainers/natasha.asm | 47 + battle-e/trainers/nils.asm | 47 + battle-e/trainers/oscar.asm | 47 + battle-e/trainers/patrick.asm | 47 + battle-e/trainers/raquel.asm | 47 + battle-e/trainers/renee.asm | 47 + battle-e/trainers/rudy.asm | 47 + battle-e/trainers/sandia.asm | 47 + battle-e/trainers/sandy.asm | 47 + battle-e/trainers/sofia.asm | 47 + battle-e/trainers/sonya.asm | 47 + battle-e/trainers/sophie.asm | 47 + battle-e/trainers/stuart.asm | 47 + battle-e/trainers/testing.asm | 44 + battle-e/trainers/tsutomu.asm | 47 + battle-e/trainers/tyler.asm | 47 + battle-e/trainers/wilson.asm | 47 + battle-e/trainers/zuril.asm | 47 + common/battle_e_transfer.asm | 71 + common/mem_struct.asm | 15 + common/transfer_data.asm | 31 + common/wait_for_link.asm | 36 + common/wait_for_ready.asm | 30 + common/word_shift_right.asm | 15 + common/wrap_up.asm | 29 + constants/abilities.asm | 513 +++++ constants/easychat.asm | 1839 +++++++++++++++++ constants/easychat.ods | Bin 0 -> 181488 bytes constants/items.asm | 323 +++ constants/moves.asm | 356 ++++ constants/pokemon.asm | 388 ++++ constants/scriptcommands.asm | 73 + constants/trainerclasses.asm | 89 + eonticket/00-C000.asm | 187 ++ eonticket/Makefile | 24 + eonticket/eonticket.asm | 124 ++ eonticket/ticket.4bpp | 1 + eonticket/ticket.pal | 5 + macros.asm | 364 ++++ scripts/berrychecksum.py | 16 + scripts/charmap.py | 496 +++++ scripts/scriptchecksum.py | 28 + scripts/trainerchecksum.py | 13 + 206 files changed, 8443 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 battle-e/08-A001.asm create mode 100644 battle-e/08-A002.asm create mode 100644 battle-e/08-A003.asm create mode 100644 battle-e/08-A004.asm create mode 100644 battle-e/08-A005.asm create mode 100644 battle-e/08-A006.asm create mode 100644 battle-e/08-A007.asm create mode 100644 battle-e/08-A008.asm create mode 100644 battle-e/08-A009.asm create mode 100644 battle-e/08-A010.asm create mode 100644 battle-e/08-A011.asm create mode 100644 battle-e/08-A012.asm create mode 100644 battle-e/08-A013.asm create mode 100644 battle-e/08-A014.asm create mode 100644 battle-e/08-A015.asm create mode 100644 battle-e/08-A016.asm create mode 100644 battle-e/08-A017.asm create mode 100644 battle-e/08-A018.asm create mode 100644 battle-e/08-A019.asm create mode 100644 battle-e/08-A020.asm create mode 100644 battle-e/08-A021.asm create mode 100644 battle-e/08-A022.asm create mode 100644 battle-e/08-A023.asm create mode 100644 battle-e/08-A024.asm create mode 100644 battle-e/08-A025.asm create mode 100644 battle-e/08-A026.asm create mode 100644 battle-e/08-A027.asm create mode 100644 battle-e/08-A028.asm create mode 100644 battle-e/08-A029.asm create mode 100644 battle-e/08-A030.asm create mode 100644 battle-e/08-A031.asm create mode 100644 battle-e/08-A032.asm create mode 100644 battle-e/08-A033.asm create mode 100644 battle-e/08-A034.asm create mode 100644 battle-e/08-A035.asm create mode 100644 battle-e/08-A036.asm create mode 100644 battle-e/08-A037.asm create mode 100644 battle-e/08-A038.asm create mode 100644 battle-e/08-A039.asm create mode 100644 battle-e/08-A040.asm create mode 100644 battle-e/08-A041.asm create mode 100644 battle-e/08-A042.asm create mode 100644 battle-e/08-A043.asm create mode 100644 battle-e/08-A044.asm create mode 100644 battle-e/08-A045.asm create mode 100644 battle-e/08-A046.asm create mode 100644 battle-e/08-A047.asm create mode 100644 battle-e/08-A048.asm create mode 100644 battle-e/08-K001.asm create mode 100644 battle-e/08-K002.asm create mode 100644 battle-e/08-K003.asm create mode 100644 battle-e/08-K004.asm create mode 100644 battle-e/08-K005.asm create mode 100644 battle-e/08-K006.asm create mode 100644 battle-e/Makefile create mode 100644 battle-e/battletrainer.asm create mode 100644 battle-e/berries/Makefile create mode 100644 battle-e/berries/chilan.asm create mode 100644 battle-e/berries/drash.asm create mode 100644 battle-e/berries/eggant.asm create mode 100644 battle-e/berries/macros.asm create mode 100644 battle-e/berries/nutpea.asm create mode 100644 battle-e/berries/pumkin.asm create mode 100644 battle-e/berries/strib.asm create mode 100644 battle-e/enigmaberry.asm create mode 100644 battle-e/macros.asm create mode 100755 battle-e/sprites/battletrainer.4bpp create mode 100755 battle-e/sprites/battletrainer.tilemap create mode 100644 battle-e/sprites/battletrainer1.pal create mode 100644 battle-e/sprites/battletrainer2.pal create mode 100644 battle-e/sprites/battletrainer3.pal create mode 100644 battle-e/sprites/battletrainer4.pal create mode 100644 battle-e/sprites/battletrainer5.pal create mode 100755 battle-e/sprites/berries/chilan.4bpp create mode 100644 battle-e/sprites/berries/chilan.pal create mode 100755 battle-e/sprites/berries/drash.4bpp create mode 100644 battle-e/sprites/berries/drash.pal create mode 100644 battle-e/sprites/berries/eggant.4bpp create mode 100644 battle-e/sprites/berries/eggant.pal create mode 100755 battle-e/sprites/berries/nutpea.4bpp create mode 100644 battle-e/sprites/berries/nutpea.pal create mode 100755 battle-e/sprites/berries/pumkin.4bpp create mode 100644 battle-e/sprites/berries/pumkin.pal create mode 100755 battle-e/sprites/berries/strib.4bpp create mode 100644 battle-e/sprites/berries/strib.pal create mode 100755 battle-e/sprites/berrybackdrop.4bpp create mode 100644 battle-e/sprites/berrybackdrop.pal create mode 100755 battle-e/sprites/berrybackdrop.tilemap create mode 100755 battle-e/sprites/trainerdoor.4bpp create mode 100644 battle-e/sprites/trainerdoor.pal create mode 100755 battle-e/sprites/trainers/aroma_lady.4bpp create mode 100755 battle-e/sprites/trainers/battle_girl.4bpp create mode 100755 battle-e/sprites/trainers/beauty.4bpp create mode 100755 battle-e/sprites/trainers/black_belt.4bpp create mode 100755 battle-e/sprites/trainers/bug_maniac.4bpp create mode 100755 battle-e/sprites/trainers/camper.4bpp create mode 100755 battle-e/sprites/trainers/collector.4bpp create mode 100755 battle-e/sprites/trainers/cooltrainer_f.4bpp create mode 100755 battle-e/sprites/trainers/cooltrainer_m.4bpp create mode 100755 battle-e/sprites/trainers/expert_f.4bpp create mode 100755 battle-e/sprites/trainers/expert_m.4bpp create mode 100755 battle-e/sprites/trainers/fisherman.4bpp create mode 100755 battle-e/sprites/trainers/gentleman.4bpp create mode 100755 battle-e/sprites/trainers/guitarist.4bpp create mode 100755 battle-e/sprites/trainers/hex_maniac.4bpp create mode 100755 battle-e/sprites/trainers/hiker.4bpp create mode 100755 battle-e/sprites/trainers/lady.4bpp create mode 100755 battle-e/sprites/trainers/ninja_boy.4bpp create mode 100755 battle-e/sprites/trainers/parasol_lady.4bpp create mode 100755 battle-e/sprites/trainers/picnicker.4bpp create mode 100755 battle-e/sprites/trainers/pkmn_breeder_f.4bpp create mode 100755 battle-e/sprites/trainers/pkmn_breeder_m.4bpp create mode 100755 battle-e/sprites/trainers/pkmn_ranger_f.4bpp create mode 100755 battle-e/sprites/trainers/pkmn_ranger_m.4bpp create mode 100755 battle-e/sprites/trainers/pokefan_f.4bpp create mode 100755 battle-e/sprites/trainers/pokefan_m.4bpp create mode 100755 battle-e/sprites/trainers/pokemaniac.4bpp create mode 100755 battle-e/sprites/trainers/psychic_f.4bpp create mode 100755 battle-e/sprites/trainers/psychic_m.4bpp create mode 100755 battle-e/sprites/trainers/ruin_maniac.4bpp create mode 100755 battle-e/sprites/trainers/sailor.4bpp create mode 100755 battle-e/sprites/trainers/school_kid_f.4bpp create mode 100755 battle-e/sprites/trainers/swimmer_f.4bpp create mode 100755 battle-e/sprites/trainers/triathlete_m_swim.4bpp create mode 100755 battle-e/sprites/trainers/tuber_f.4bpp create mode 100755 battle-e/sprites/trainers/youngster.4bpp create mode 100644 battle-e/trainers/Makefile create mode 100644 battle-e/trainers/alana.asm create mode 100644 battle-e/trainers/annie.asm create mode 100644 battle-e/trainers/antonio.asm create mode 100644 battle-e/trainers/april.asm create mode 100644 battle-e/trainers/astrid.asm create mode 100644 battle-e/trainers/belford.asm create mode 100644 battle-e/trainers/bryce.asm create mode 100644 battle-e/trainers/candice.asm create mode 100644 battle-e/trainers/celina.asm create mode 100644 battle-e/trainers/clayton.asm create mode 100644 battle-e/trainers/devin.asm create mode 100644 battle-e/trainers/dominic.asm create mode 100644 battle-e/trainers/dustin.asm create mode 100644 battle-e/trainers/ellie.asm create mode 100644 battle-e/trainers/fay.asm create mode 100644 battle-e/trainers/fuego.asm create mode 100644 battle-e/trainers/goro.asm create mode 100644 battle-e/trainers/griffin.asm create mode 100644 battle-e/trainers/hayden.asm create mode 100644 battle-e/trainers/heather.asm create mode 100644 battle-e/trainers/hillary.asm create mode 100644 battle-e/trainers/hugo.asm create mode 100644 battle-e/trainers/irazu.asm create mode 100644 battle-e/trainers/irvin.asm create mode 100644 battle-e/trainers/jeffrey.asm create mode 100644 battle-e/trainers/judith.asm create mode 100644 battle-e/trainers/justine.asm create mode 100644 battle-e/trainers/kendall.asm create mode 100644 battle-e/trainers/logan.asm create mode 100644 battle-e/trainers/macros.asm create mode 100644 battle-e/trainers/maggie.asm create mode 100644 battle-e/trainers/mandy.asm create mode 100644 battle-e/trainers/marcus.asm create mode 100644 battle-e/trainers/natalie.asm create mode 100644 battle-e/trainers/natasha.asm create mode 100644 battle-e/trainers/nils.asm create mode 100644 battle-e/trainers/oscar.asm create mode 100644 battle-e/trainers/patrick.asm create mode 100644 battle-e/trainers/raquel.asm create mode 100644 battle-e/trainers/renee.asm create mode 100644 battle-e/trainers/rudy.asm create mode 100644 battle-e/trainers/sandia.asm create mode 100644 battle-e/trainers/sandy.asm create mode 100644 battle-e/trainers/sofia.asm create mode 100644 battle-e/trainers/sonya.asm create mode 100644 battle-e/trainers/sophie.asm create mode 100644 battle-e/trainers/stuart.asm create mode 100644 battle-e/trainers/testing.asm create mode 100644 battle-e/trainers/tsutomu.asm create mode 100644 battle-e/trainers/tyler.asm create mode 100644 battle-e/trainers/wilson.asm create mode 100644 battle-e/trainers/zuril.asm create mode 100644 common/battle_e_transfer.asm create mode 100644 common/mem_struct.asm create mode 100644 common/transfer_data.asm create mode 100644 common/wait_for_link.asm create mode 100644 common/wait_for_ready.asm create mode 100644 common/word_shift_right.asm create mode 100644 common/wrap_up.asm create mode 100644 constants/abilities.asm create mode 100644 constants/easychat.asm create mode 100644 constants/easychat.ods create mode 100644 constants/items.asm create mode 100644 constants/moves.asm create mode 100644 constants/pokemon.asm create mode 100644 constants/scriptcommands.asm create mode 100644 constants/trainerclasses.asm create mode 100644 eonticket/00-C000.asm create mode 100644 eonticket/Makefile create mode 100644 eonticket/eonticket.asm create mode 100755 eonticket/ticket.4bpp create mode 100644 eonticket/ticket.pal create mode 100644 macros.asm create mode 100644 scripts/berrychecksum.py create mode 100644 scripts/charmap.py create mode 100644 scripts/scriptchecksum.py create mode 100644 scripts/trainerchecksum.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..85968cc --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.bin +*.gbc +*.o +*.tx +*.z80 \ No newline at end of file diff --git a/README.md b/README.md index eb8141a..f71bed1 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ -pokecarde +Pokémon Card e ========= + +This is a disassembly of the e-Reader cards released for Pokémon Ruby and Sapphire. Currently, it includes the English release of the Pokémon Battle e series, and the Eon Ticket. + +RGBDS is needed to compile the Z80 binary for each card. To build a working e-Reader card, you will need to compress the binary with nevpk and add the card metadata with nedcenc—both tools are from the nedclib package, which is unfortunately Windows-only. \ No newline at end of file diff --git a/battle-e/08-A001.asm b/battle-e/08-A001.asm new file mode 100644 index 0000000..a64b2c0 --- /dev/null +++ b/battle-e/08-A001.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/devin.bin", "sprites/trainers/cooltrainer_m.4bpp" \ No newline at end of file diff --git a/battle-e/08-A002.asm b/battle-e/08-A002.asm new file mode 100644 index 0000000..f234a86 --- /dev/null +++ b/battle-e/08-A002.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/goro.bin", "sprites/trainers/ninja_boy.4bpp" \ No newline at end of file diff --git a/battle-e/08-A003.asm b/battle-e/08-A003.asm new file mode 100644 index 0000000..a65a53d --- /dev/null +++ b/battle-e/08-A003.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/sonya.bin", "sprites/trainers/tuber_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A004.asm b/battle-e/08-A004.asm new file mode 100644 index 0000000..3955238 --- /dev/null +++ b/battle-e/08-A004.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/antonio.bin", "sprites/trainers/gentleman.4bpp" \ No newline at end of file diff --git a/battle-e/08-A005.asm b/battle-e/08-A005.asm new file mode 100644 index 0000000..0618719 --- /dev/null +++ b/battle-e/08-A005.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/alana.bin", "sprites/trainers/pokefan_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A006.asm b/battle-e/08-A006.asm new file mode 100644 index 0000000..d4799c0 --- /dev/null +++ b/battle-e/08-A006.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/renee.bin", "sprites/trainers/picnicker.4bpp" \ No newline at end of file diff --git a/battle-e/08-A007.asm b/battle-e/08-A007.asm new file mode 100644 index 0000000..a59371a --- /dev/null +++ b/battle-e/08-A007.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/sophie.bin", "sprites/trainers/lady.4bpp" \ No newline at end of file diff --git a/battle-e/08-A008.asm b/battle-e/08-A008.asm new file mode 100644 index 0000000..74f03ac --- /dev/null +++ b/battle-e/08-A008.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/fay.bin", "sprites/trainers/beauty.4bpp" \ No newline at end of file diff --git a/battle-e/08-A009.asm b/battle-e/08-A009.asm new file mode 100644 index 0000000..b6ad653 --- /dev/null +++ b/battle-e/08-A009.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/natasha.bin", "sprites/trainers/psychic_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A010.asm b/battle-e/08-A010.asm new file mode 100644 index 0000000..19fd447 --- /dev/null +++ b/battle-e/08-A010.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/patrick.bin", "sprites/trainers/camper.4bpp" \ No newline at end of file diff --git a/battle-e/08-A011.asm b/battle-e/08-A011.asm new file mode 100644 index 0000000..4277986 --- /dev/null +++ b/battle-e/08-A011.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/oscar.bin", "sprites/trainers/sailor.4bpp" \ No newline at end of file diff --git a/battle-e/08-A012.asm b/battle-e/08-A012.asm new file mode 100644 index 0000000..dc42e69 --- /dev/null +++ b/battle-e/08-A012.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/tyler.bin", "sprites/trainers/pokemaniac.4bpp" \ No newline at end of file diff --git a/battle-e/08-A013.asm b/battle-e/08-A013.asm new file mode 100644 index 0000000..765b14f --- /dev/null +++ b/battle-e/08-A013.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/rudy.bin", "sprites/trainers/youngster.4bpp" \ No newline at end of file diff --git a/battle-e/08-A014.asm b/battle-e/08-A014.asm new file mode 100644 index 0000000..e1cbf1f --- /dev/null +++ b/battle-e/08-A014.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/ellie.bin", "sprites/trainers/beauty.4bpp" \ No newline at end of file diff --git a/battle-e/08-A015.asm b/battle-e/08-A015.asm new file mode 100644 index 0000000..40d2f81 --- /dev/null +++ b/battle-e/08-A015.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/candice.bin", "sprites/trainers/pkmn_breeder_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A016.asm b/battle-e/08-A016.asm new file mode 100644 index 0000000..457e3bd --- /dev/null +++ b/battle-e/08-A016.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/belford.bin", "sprites/trainers/cooltrainer_m.4bpp" \ No newline at end of file diff --git a/battle-e/08-A017.asm b/battle-e/08-A017.asm new file mode 100644 index 0000000..9aef588 --- /dev/null +++ b/battle-e/08-A017.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/clayton.bin", "sprites/trainers/pkmn_ranger_m.4bpp" \ No newline at end of file diff --git a/battle-e/08-A018.asm b/battle-e/08-A018.asm new file mode 100644 index 0000000..d6ee1ca --- /dev/null +++ b/battle-e/08-A018.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/dustin.bin", "sprites/trainers/triathlete_m_swim.4bpp" \ No newline at end of file diff --git a/battle-e/08-A019.asm b/battle-e/08-A019.asm new file mode 100644 index 0000000..b860a5a --- /dev/null +++ b/battle-e/08-A019.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/hugo.bin", "sprites/trainers/hiker.4bpp" \ No newline at end of file diff --git a/battle-e/08-A020.asm b/battle-e/08-A020.asm new file mode 100644 index 0000000..68706ab --- /dev/null +++ b/battle-e/08-A020.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/jeffrey.bin", "sprites/trainers/youngster.4bpp" \ No newline at end of file diff --git a/battle-e/08-A021.asm b/battle-e/08-A021.asm new file mode 100644 index 0000000..e52c980 --- /dev/null +++ b/battle-e/08-A021.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/logan.bin", "sprites/trainers/ruin_maniac.4bpp" \ No newline at end of file diff --git a/battle-e/08-A022.asm b/battle-e/08-A022.asm new file mode 100644 index 0000000..014c488 --- /dev/null +++ b/battle-e/08-A022.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/maggie.bin", "sprites/trainers/pokefan_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A023.asm b/battle-e/08-A023.asm new file mode 100644 index 0000000..eb99dbb --- /dev/null +++ b/battle-e/08-A023.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/wilson.bin", "sprites/trainers/pkmn_breeder_m.4bpp" \ No newline at end of file diff --git a/battle-e/08-A024.asm b/battle-e/08-A024.asm new file mode 100644 index 0000000..c09cd68 --- /dev/null +++ b/battle-e/08-A024.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/zuril.bin", "sprites/trainers/ruin_maniac.4bpp" \ No newline at end of file diff --git a/battle-e/08-A025.asm b/battle-e/08-A025.asm new file mode 100644 index 0000000..48a1e0c --- /dev/null +++ b/battle-e/08-A025.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/mandy.bin", "sprites/trainers/school_kid_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A026.asm b/battle-e/08-A026.asm new file mode 100644 index 0000000..dfb937a --- /dev/null +++ b/battle-e/08-A026.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/sofia.bin", "sprites/trainers/parasol_lady.4bpp" \ No newline at end of file diff --git a/battle-e/08-A027.asm b/battle-e/08-A027.asm new file mode 100644 index 0000000..5a13e29 --- /dev/null +++ b/battle-e/08-A027.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/hillary.bin", "sprites/trainers/lady.4bpp" \ No newline at end of file diff --git a/battle-e/08-A028.asm b/battle-e/08-A028.asm new file mode 100644 index 0000000..c45b325 --- /dev/null +++ b/battle-e/08-A028.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/dominic.bin", "sprites/trainers/guitarist.4bpp" \ No newline at end of file diff --git a/battle-e/08-A029.asm b/battle-e/08-A029.asm new file mode 100644 index 0000000..15cdbeb --- /dev/null +++ b/battle-e/08-A029.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/bryce.bin", "sprites/trainers/fisherman.4bpp" \ No newline at end of file diff --git a/battle-e/08-A030.asm b/battle-e/08-A030.asm new file mode 100644 index 0000000..31b6ef7 --- /dev/null +++ b/battle-e/08-A030.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/irvin.bin", "sprites/trainers/bug_maniac.4bpp" \ No newline at end of file diff --git a/battle-e/08-A031.asm b/battle-e/08-A031.asm new file mode 100644 index 0000000..3d010f3 --- /dev/null +++ b/battle-e/08-A031.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/natalie.bin", "sprites/trainers/battle_girl.4bpp" \ No newline at end of file diff --git a/battle-e/08-A032.asm b/battle-e/08-A032.asm new file mode 100644 index 0000000..08e9a5e --- /dev/null +++ b/battle-e/08-A032.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/sandia.bin", "sprites/trainers/expert_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A033.asm b/battle-e/08-A033.asm new file mode 100644 index 0000000..fd2ab8a --- /dev/null +++ b/battle-e/08-A033.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/marcus.bin", "sprites/trainers/expert_m.4bpp" \ No newline at end of file diff --git a/battle-e/08-A034.asm b/battle-e/08-A034.asm new file mode 100644 index 0000000..d8fb30b --- /dev/null +++ b/battle-e/08-A034.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/raquel.bin", "sprites/trainers/cooltrainer_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A035.asm b/battle-e/08-A035.asm new file mode 100644 index 0000000..f46c174 --- /dev/null +++ b/battle-e/08-A035.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/tsutomu.bin", "sprites/trainers/black_belt.4bpp" \ No newline at end of file diff --git a/battle-e/08-A036.asm b/battle-e/08-A036.asm new file mode 100644 index 0000000..e5fd650 --- /dev/null +++ b/battle-e/08-A036.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/justine.bin", "sprites/trainers/pokefan_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A037.asm b/battle-e/08-A037.asm new file mode 100644 index 0000000..e891a75 --- /dev/null +++ b/battle-e/08-A037.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/heather.bin", "sprites/trainers/pkmn_ranger_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A038.asm b/battle-e/08-A038.asm new file mode 100644 index 0000000..8f6fa43 --- /dev/null +++ b/battle-e/08-A038.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/judith.bin", "sprites/trainers/psychic_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A039.asm b/battle-e/08-A039.asm new file mode 100644 index 0000000..23df2ed --- /dev/null +++ b/battle-e/08-A039.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/stuart.bin", "sprites/trainers/collector.4bpp" \ No newline at end of file diff --git a/battle-e/08-A040.asm b/battle-e/08-A040.asm new file mode 100644 index 0000000..5d8a4d4 --- /dev/null +++ b/battle-e/08-A040.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/irazu.bin", "sprites/trainers/pkmn_ranger_m.4bpp" \ No newline at end of file diff --git a/battle-e/08-A041.asm b/battle-e/08-A041.asm new file mode 100644 index 0000000..83e64b6 --- /dev/null +++ b/battle-e/08-A041.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/sandy.bin", "sprites/trainers/picnicker.4bpp" \ No newline at end of file diff --git a/battle-e/08-A042.asm b/battle-e/08-A042.asm new file mode 100644 index 0000000..3f822bc --- /dev/null +++ b/battle-e/08-A042.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/annie.bin", "sprites/trainers/swimmer_f.4bpp" \ No newline at end of file diff --git a/battle-e/08-A043.asm b/battle-e/08-A043.asm new file mode 100644 index 0000000..f52307c --- /dev/null +++ b/battle-e/08-A043.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/celina.bin", "sprites/trainers/hex_maniac.4bpp" \ No newline at end of file diff --git a/battle-e/08-A044.asm b/battle-e/08-A044.asm new file mode 100644 index 0000000..2381c26 --- /dev/null +++ b/battle-e/08-A044.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/april.bin", "sprites/trainers/aroma_lady.4bpp" \ No newline at end of file diff --git a/battle-e/08-A045.asm b/battle-e/08-A045.asm new file mode 100644 index 0000000..02d41f5 --- /dev/null +++ b/battle-e/08-A045.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/hayden.bin", "sprites/trainers/guitarist.4bpp" \ No newline at end of file diff --git a/battle-e/08-A046.asm b/battle-e/08-A046.asm new file mode 100644 index 0000000..d9b7cf5 --- /dev/null +++ b/battle-e/08-A046.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/griffin.bin", "sprites/trainers/psychic_m.4bpp" \ No newline at end of file diff --git a/battle-e/08-A047.asm b/battle-e/08-A047.asm new file mode 100644 index 0000000..5a3b4ad --- /dev/null +++ b/battle-e/08-A047.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/kendall.bin", "sprites/trainers/pokefan_m.4bpp" \ No newline at end of file diff --git a/battle-e/08-A048.asm b/battle-e/08-A048.asm new file mode 100644 index 0000000..769ff7c --- /dev/null +++ b/battle-e/08-A048.asm @@ -0,0 +1,2 @@ +INCLUDE "battletrainer.tx" + BattleTrainer "trainers/fuego.bin", "sprites/trainers/cooltrainer_m.4bpp" \ No newline at end of file diff --git a/battle-e/08-K001.asm b/battle-e/08-K001.asm new file mode 100644 index 0000000..57392ef --- /dev/null +++ b/battle-e/08-K001.asm @@ -0,0 +1,2 @@ +INCLUDE "enigmaberry.tx" + EnigmaBerry "berries/pumkin.bin" \ No newline at end of file diff --git a/battle-e/08-K002.asm b/battle-e/08-K002.asm new file mode 100644 index 0000000..b2e73e0 --- /dev/null +++ b/battle-e/08-K002.asm @@ -0,0 +1,2 @@ +INCLUDE "enigmaberry.tx" + EnigmaBerry "berries/drash.bin" \ No newline at end of file diff --git a/battle-e/08-K003.asm b/battle-e/08-K003.asm new file mode 100644 index 0000000..46171f1 --- /dev/null +++ b/battle-e/08-K003.asm @@ -0,0 +1,2 @@ +INCLUDE "enigmaberry.tx" + EnigmaBerry "berries/chilan.bin" \ No newline at end of file diff --git a/battle-e/08-K004.asm b/battle-e/08-K004.asm new file mode 100644 index 0000000..d1b78a2 --- /dev/null +++ b/battle-e/08-K004.asm @@ -0,0 +1,2 @@ +INCLUDE "enigmaberry.tx" + EnigmaBerry "berries/strib.bin" \ No newline at end of file diff --git a/battle-e/08-K005.asm b/battle-e/08-K005.asm new file mode 100644 index 0000000..63cc4e4 --- /dev/null +++ b/battle-e/08-K005.asm @@ -0,0 +1,2 @@ +INCLUDE "enigmaberry.tx" + EnigmaBerry "berries/eggant.bin" \ No newline at end of file diff --git a/battle-e/08-K006.asm b/battle-e/08-K006.asm new file mode 100644 index 0000000..236f8dd --- /dev/null +++ b/battle-e/08-K006.asm @@ -0,0 +1,2 @@ +INCLUDE "enigmaberry.tx" + EnigmaBerry "berries/nutpea.bin" \ No newline at end of file diff --git a/battle-e/Makefile b/battle-e/Makefile new file mode 100644 index 0000000..d317c93 --- /dev/null +++ b/battle-e/Makefile @@ -0,0 +1,34 @@ +all: 08-A001.z80 08-A002.z80 08-A003.z80 08-A004.z80 \ + 08-A005.z80 08-A006.z80 08-A007.z80 08-A008.z80 \ + 08-A009.z80 08-A010.z80 08-A011.z80 08-A012.z80 \ + 08-A013.z80 08-A014.z80 08-A015.z80 08-A016.z80 \ + 08-A017.z80 08-A018.z80 08-A019.z80 08-A020.z80 \ + 08-A021.z80 08-A022.z80 08-A023.z80 08-A024.z80 \ + 08-A025.z80 08-A026.z80 08-A027.z80 08-A028.z80 \ + 08-A029.z80 08-A030.z80 08-A031.z80 08-A032.z80 \ + 08-A033.z80 08-A034.z80 08-A035.z80 08-A036.z80 \ + 08-A037.z80 08-A038.z80 08-A039.z80 08-A040.z80 \ + 08-A041.z80 08-A042.z80 08-A043.z80 08-A044.z80 \ + 08-A045.z80 08-A046.z80 08-A047.z80 08-A048.z80 \ + 08-K001.z80 08-K002.z80 08-K003.z80 08-K004.z80 \ + 08-K005.z80 08-K006.z80 + +%.tx: %.asm + python ../scripts/charmap.py $< $@ + +08-A%.o: 08-A%.asm battletrainer.tx + rgbasm -o $@ $< +08-K%.o: 08-K%.asm enigmaberry.tx + rgbasm -o $@ $< +%.gbc: %.o + rgblink -o $@ $< +# hack to use RGBDS for something other than its intended purpose +08-A%.z80: 08-A%.gbc + dd if=$< of=$@ bs=1 skip=256 count=6815 +# cmp -b ../z80/$@ $@ +08-K%.z80: 08-K%.gbc + dd if=$< of=$@ bs=1 skip=256 count=3578 +# cmp -b ../z80/$@ $@ + +clean: + rm -f *.z80 *.tx *.o *.gbc \ No newline at end of file diff --git a/battle-e/battletrainer.asm b/battle-e/battletrainer.asm new file mode 100644 index 0000000..4516fb5 --- /dev/null +++ b/battle-e/battletrainer.asm @@ -0,0 +1,205 @@ +INCLUDE "../macros.asm" + +BattleTrainer: MACRO +SECTION "battletrainer",ROM0[$100] +jp Start +db $00 + +BattleTrainerBackdrop: ; 104 + INCBIN "sprites/battletrainer.4bpp" +DoorSprite: ; 604 + INCBIN "sprites/trainerdoor.4bpp" + +BackdropPalettes: ; A04 + INCLUDE "sprites/battletrainer1.pal" + INCLUDE "sprites/battletrainer2.pal" + INCLUDE "sprites/battletrainer3.pal" + INCLUDE "sprites/battletrainer4.pal" +TrainerPalette: ; A6C + INCLUDE "sprites/battletrainer5.pal" +DoorPalette: ; A74 + INCLUDE "sprites/trainerdoor.pal" + +BackdropTilemap: ; A7C + INCBIN "sprites/battletrainer.tilemap" + +Prologue: ; 0DFC + Insert_Prologue $12345678, "カ。ドE@", REGION_EN ; corrupted カードe “Card e” + +DataPacket: ; 0E38 + Insert_Header REGION_EN + db BATTLE_TRAINER + GBAPTR DataPacket, TrainerData ; $02000018 + dw $0002 +TrainerData: ; 0E50 + INCBIN \1 + REPT 44 + db 0 ; pads the data to 256 bytes + ENDR + +TrainerSprite: ; 0F38 + INCBIN \2 +TrainerSpriteData: ; 1738 + dw TrainerSprite + dw TrainerPalette + db $08,$08,$01,$01,$01,$01,$01 + +INCLUDE "../common/mem_struct.asm" + +BackdropSpriteData: ; 1777 + dw BattleTrainerBackdrop + dw BackdropPalettes + dw BackdropTilemap + db $28,$00,$04,$00 +DoorSpriteData: ; 1781 + dw DoorSprite + dw DoorPalette + db $04,$08,$01,$01,$01,$01,$01 + +Instructions1: ; 178c + db "Link e-Reader to Pokémon Ruby or \n" + db "Sapphire and select MYSTERY EVENTS\n" + db "on the game's main menu.\n" + db "Press the B Button to cancel.\0" + +Instructions2: ; 1808 + db "Press the A Button on the Game Boy\n" + db "Advance containing Pokémon Ruby or\n" + db "Sapphire to begin the Battle Entry.\0" + +BattleEntryInProcess: ; 1872 + db "Battle Entry in Process...\0" + +BattleEntryFinished: ; 188d + db "Battle Entry finished!\n" + db "\n" + db "Press the A Button to resend.\n" + db "Press the B Button to cancel.\0" + +INCLUDE "../common/battle_e_transfer.asm" + +Open_Doors: ; 1946 + ld l, $20 + push hl + ld bc, $0040 + ld de, $0048 + LD_HL_IND LeftDoorSpriteHandle + API $03B + + pop bc + ld l, $20 + push hl + ld bc, $0040 + ld de, $00A8 + LD_HL_IND RightDoorSpriteHandle + API $03B + + pop bc + ret + +Close_Doors: ; 1965 + ld l, $20 + push hl + ld bc, $0040 + ld de, $0068 + LD_HL_IND LeftDoorSpriteHandle + API $03B + + pop bc + ld l, $20 + push hl + ld bc, $0040 + ld de, $0088 + LD_HL_IND RightDoorSpriteHandle + API $03B + + pop bc + ret + +Start: ; 1984 + API_121 + LoadCustomBackground BackdropSpriteData, 0 + + ld hl, $0000 + push hl + ld bc, $1e06 + ld de, $000e + xor a + API $02C + + pop bc + LoadCustomBackground BackdropSpriteData, 1 + + API_02C $1e06, $000e, $01 + + pop bc + API_02C $0808, $0B04, $00 + + pop bc + ld a, $4 + API $0AE + + CreateCustomSprite TrainerSpriteHandle, $80, TrainerSpriteData + SetSpritePos TrainerSpriteHandle, 119, 64 + + CreateCustomSprite LeftDoorSpriteHandle, $81, DoorSpriteData + CreateCustomSprite RightDoorSpriteHandle, $81, DoorSpriteData + SpriteMirrorToggle $01, LeftDoorSpriteHandle + SetSpritePos LeftDoorSpriteHandle, 104, 64 + SetSpritePos RightDoorSpriteHandle, 136, 64 + + CreateRegion RegionHandlePtr, 30, 6, 0, 14, 0, 3 + ld h, a + ld l, $00 + SetTextSize + API_09B RegionHandlePtr, $0102 + SetTextColor RegionHandlePtr, 3, 0 + + FadeIn 16 + wait 16 + API $0C6 + DrawText RegionHandlePtr, Instructions1, 8, 4 + API $08D + +INCLUDE "../common/wait_for_link.asm" + + call Open_Doors + DrawText RegionHandlePtr, Instructions2, 8, 4 + API $08D + and [hl] + ld [bc], a + +UNKNOWN_VALUE EQU $02A6 +INCLUDE "../common/wait_for_ready.asm" + + call Close_Doors + DrawText RegionHandlePtr, BattleEntryInProcess, 8, 4 + +DATA_TRANSFER_LENGTH EQU 6144 +INCLUDE "../common/transfer_data.asm" + + ld hl, $5fff + LD_IND_HL Space_1 + API_0C7 Space_1 + + LD_HL_IND TrainerSpriteHandle + API $047 + wait 128 + call Open_Doors + + DrawText RegionHandlePtr, BattleEntryFinished, 8, 4 + API $08D + + ld c, a + nop + +INCLUDE "../common/wrap_up.asm" +INCLUDE "../common/word_shift_right.asm" + +SomeVar1: ds 1 ; 1B9F +SomeVar2: ds 2 ; 1BA0 +RegionHandlePtr: ds 1 ; 1BA2 +LeftDoorSpriteHandle: ds 2 ; 1BA3 +RightDoorSpriteHandle: ds 2 ; 1BA5 +TrainerSpriteHandle: ds 2 ; 1BA7 +ENDM \ No newline at end of file diff --git a/battle-e/berries/Makefile b/battle-e/berries/Makefile new file mode 100644 index 0000000..1c28d80 --- /dev/null +++ b/battle-e/berries/Makefile @@ -0,0 +1,19 @@ +all: chilan.bin drash.bin eggant.bin nutpea.bin pumkin.bin strib.bin + +%.1: %.asm + python ../../scripts/charmap.py $< $@ + +%.2: %.1 + rgbasm -o $@ $< + +%.3: %.2 + rgblink -o $@ $< + +%.4: %.3 + dd if=$< of=$@ bs=1 skip=256 count=1324 + +%.bin: %.4 + python ../../scripts/berrychecksum.py $< $@ + +clean: + rm -f *.bin \ No newline at end of file diff --git a/battle-e/berries/chilan.asm b/battle-e/berries/chilan.asm new file mode 100644 index 0000000..9803491 --- /dev/null +++ b/battle-e/berries/chilan.asm @@ -0,0 +1,24 @@ +INCLUDE "macros.asm" + + Berry "CHILAN" + db SOFT + Size 27,2 + Yield_Range 1, 2 + REPT 8 + db 0 + ENDR + db 1 ; hours per growth stage + db 30,0,30,0,0 ; flavor + db 85 ; smoothness + db 0 + +BerrySprite: + INCBIN "../sprites/berries/chilan.4bpp" +BerryPalette: + INCLUDE "../sprites/berries/chilan.pal" + + Tag_Text "This sparse BERRY grows quickly." + Tag_Text "Its skin is quite tough." + REPT 22 + db 0 ; Pokéblock ingredient only + ENDR \ No newline at end of file diff --git a/battle-e/berries/drash.asm b/battle-e/berries/drash.asm new file mode 100644 index 0000000..a291536 --- /dev/null +++ b/battle-e/berries/drash.asm @@ -0,0 +1,24 @@ +INCLUDE "macros.asm" + + Berry "DRASH" + db VERY_HARD + Size 13,4 + Yield_Range 2, 3 + db 0,0,0,0,0,0,0,0 + db 18 ; hours per growth stage + db 0,0,40,0,0 ; flavor + db 65 ; smoothness + db 0 + +BerrySprite: + INCBIN "../sprites/berries/drash.4bpp" +BerryPalette: + INCLUDE "../sprites/berries/drash.pal" + + Tag_Text "When it ripens, this sweet BERRY" + Tag_Text "falls and sticks into the ground." + db 0,0,0 + db $10 ; cures poison + db 0,0,0,0,0,0,0,0,0,0,0,0,0,0 + db $04 ; self-cures poison + db 0,0,0 \ No newline at end of file diff --git a/battle-e/berries/eggant.asm b/battle-e/berries/eggant.asm new file mode 100644 index 0000000..4e9fab3 --- /dev/null +++ b/battle-e/berries/eggant.asm @@ -0,0 +1,24 @@ +INCLUDE "macros.asm" + + Berry "EGGANT" + db SOFT + Size 4,1 + Yield_Range 2, 3 + db 0,0,0,0, 0,0,0,0 + db 18 ; hours per growth stage + db 0,40,0,0,0 ; flavor + db 65 ; smoothness + db 0 + +BerrySprite: + INCBIN "../sprites/berries/eggant.4bpp" +BerryPalette: + INCLUDE "../sprites/berries/eggant.pal" + + Tag_Text "Very dry tasting, especially the" + Tag_Text "parts not exposed to the sun." + db 0,0,0 + db $00 + db 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0 + db $1C ; self-cure infatuation + db 0,0,0 \ No newline at end of file diff --git a/battle-e/berries/macros.asm b/battle-e/berries/macros.asm new file mode 100644 index 0000000..e58a1ca --- /dev/null +++ b/battle-e/berries/macros.asm @@ -0,0 +1,37 @@ +RGB: MACRO + dw \1 | (\2 << 5) | (\3 << 10) + ENDM + +Berry: MACRO + Section "berry",ROM0[$100] + db \1 + REPT 7 - STRLEN(\1) + db $FF + ENDR + ENDM + +; firmness +VERY_SOFT EQU 1 +SOFT EQU 2 +HARD EQU 3 +VERY_HARD EQU 4 +SUPER_HARD EQU 5 + +Yield_Range: MACRO + db \2, \1 + ENDM + +Size: MACRO + dw \1 * 10 + \2 + ENDM + +; this can’t be used because RGBDS has no reliable way of putting null bytes in strings +;Tag_Text: MACRO +; db \1 +; db $FF +; REPT 44 - STRLEN(\1) +; db 0 +; ENDR +; ENDM + +Tag_Text EQUS "db" \ No newline at end of file diff --git a/battle-e/berries/nutpea.asm b/battle-e/berries/nutpea.asm new file mode 100644 index 0000000..c45f320 --- /dev/null +++ b/battle-e/berries/nutpea.asm @@ -0,0 +1,23 @@ +INCLUDE "macros.asm" + + Berry "NUTPEA" + db SUPER_HARD + Size 12,4 + Yield_Range 1, 3 + db 0,0,0,0,0,0,0,0 + db 18 ; hours per growth stage + db 10,10,10,10,10 ; flavor + db 5 ; smoothness + db 0 + +BerrySprite: + INCBIN "../sprites/berries/nutpea.4bpp" + +BerryPalette: + INCLUDE "../sprites/berries/nutpea.pal" + + Tag_Text "This BERRY is rigid and cracks open" + Tag_Text "when the center is squeezed." + REPT 22 + db 0 ; Pokéblock ingredient only + ENDR \ No newline at end of file diff --git a/battle-e/berries/pumkin.asm b/battle-e/berries/pumkin.asm new file mode 100644 index 0000000..bb11372 --- /dev/null +++ b/battle-e/berries/pumkin.asm @@ -0,0 +1,24 @@ +INCLUDE "macros.asm" + + Berry "PUMKIN" + db SUPER_HARD + Size 4,8 + Yield_Range 2, 3 + db 0,0,0,0,0,0,0,0 + db 18 ; hours per growth stage + db 0,0,0,0,40 ; flavor + db 65 ; smoothness + db 0 + +BerrySprite: + INCBIN "../sprites/berries/pumkin.4bpp" +BerryPalette: + INCLUDE "../sprites/berries/pumkin.pal" + + Tag_Text "This BERRY is amazingly sour." + Tag_Text "It’s heavy due to its dense filling." + db 0,0,0 + db $04 ; cures freeze + db 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0 + db $06 ; self-cures freeze + db 0,0,0 \ No newline at end of file diff --git a/battle-e/berries/strib.asm b/battle-e/berries/strib.asm new file mode 100644 index 0000000..362b2df --- /dev/null +++ b/battle-e/berries/strib.asm @@ -0,0 +1,22 @@ +INCLUDE "macros.asm" + + Berry "STRIB" + db HARD + Size 12,2 + Yield_Range 4, 12 + db 0,0,0,0,0,0,0,0 + db 24 ; hours per growth stage + db 30,0,0,30,0 ; flavor + db 85 ; smoothness + db 0 + +BerrySprite: + INCBIN "../sprites/berries/strib.4bpp" +BerryPalette: + INCLUDE "../sprites/berries/strib.pal" + + Tag_Text "It grows slowly, but abundantly." + Tag_Text "Makes a soothing sound when shaken." + REPT 22 + db 0 ; Pokéblock ingredient only + ENDR \ No newline at end of file diff --git a/battle-e/enigmaberry.asm b/battle-e/enigmaberry.asm new file mode 100644 index 0000000..a6f0dce --- /dev/null +++ b/battle-e/enigmaberry.asm @@ -0,0 +1,140 @@ +INCLUDE "../macros.asm" +INCLUDE "macros.asm" + +EnigmaBerry: MACRO +SECTION "drashberry",ROM0[$100] +jp Start +db $00 + +UnknownPalette: + RGB 18, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 31, 31 + RGB 6, 15, 29 + +BackgroundSprite: + INCBIN "sprites/berrybackdrop.4bpp" +BackgroundTilemap: + INCBIN "sprites/berrybackdrop.tilemap" +BackgroundPalette: + INCLUDE "sprites/berrybackdrop.pal" + +REPT 72 + db 0 +ENDR + +Prologue: + Insert_Prologue $12345678, "カ。ドE@", REGION_EN ; corrupted カードe “Card e” + +DataPacket: + Insert_Header REGION_EN + db CUSTOM_BERRY + GBAPTR DataPacket, BerryData + dw $0002 + +BerryData: + INCBIN \1 + db 0,0 + +INCLUDE "../common/mem_struct.asm" + +BackgroundSpriteData: + dw BackgroundSprite, BackgroundPalette, BackgroundTilemap + db $05,$00,$01,$00 +BerrySpriteData: + dw (BerryData+$1C),(BerryData+$49C) + db $06,$06,$01,$01,$01,$01,$01 + +Instructions1: ; B65 + db "Link e-Reader to Pokémon Ruby or \n" + db "Sapphire and select MYSTERY EVENTS\n" + db "on the game's main menu.\n" + db "Press the B Button to cancel.\0" +Instructions2: ; BE1 + db "Press the A Button on the Game Boy\n" + db "Advance containing Pokémon Ruby or\n" + db "Sapphire to send a BERRY.\0" +BerrySendingInProcess: ; C41 + db "BERRY sending in Process...\0" +ABerryWasSent: ; C5D + db "A BERRY was sent.\n" + db "\n" + db "Press the A Button to resend.\n" + db "Press the B Button to cancel.\0" + +INCLUDE "../common/battle_e_transfer.asm" + +AfterTransfer: + ld hl, $5FFF + LD_IND_HL Space_1 + ld hl, Space_1 + API $0C7 + + wait $01 + ret + +Start: + API_121 + LoadCustomBackground BackgroundSpriteData, 0 + API_02C $1E06, $000E, 0 + pop bc + + CreateCustomSprite SpriteHandlePtr, $80, BerrySpriteData + SetSpritePos SpriteHandlePtr, 376, 56 + + CreateRegion RegionHandlePtr, 30, 6, 0, 14, 0, 4 + ld h, a + ld l, $00 + SetTextSize + API_09B RegionHandlePtr, $0102 + SetTextColor RegionHandlePtr, 2, 0 + SetRegionColor RegionHandlePtr, 0 + SetBackgroundPalette $10, $0040, UnknownPalette + + FadeIn 16 + wait 16 + API $0C6 + + DrawText RegionHandlePtr, Instructions1, 8, 4 + API $08D + +INCLUDE "../common/wait_for_link.asm" + + API_084 SpriteHandlePtr, 120, 56, 16 ; sprite move and fade in? + pop bc + API $08D + push af + nop + + DrawText RegionHandlePtr, Instructions2, 8, 4 + +UNKNOWN_VALUE EQU $00F5 +INCLUDE "../common/wait_for_ready.asm" + + DrawText RegionHandlePtr, BerrySendingInProcess, 8, 4 + +DATA_TRANSFER_LENGTH EQU 3072 +INCLUDE "../common/transfer_data.asm" + + call AfterTransfer + + wait 128 + API $08D + + ld c, a + nop + API_084 SpriteHandlePtr, $FF78, 56, 16 ; sprite move and fade out? + + pop bc + DrawText RegionHandlePtr, ABerryWasSent, 8, 4 + +INCLUDE "../common/wrap_up.asm" + +INCLUDE "../common/word_shift_right.asm" + +SomeVar1: ds 1 ; EFA +SomeVar2: ds 2 ; EFB +RegionHandlePtr: ds 1 ; EFD +SpriteHandlePtr: ds 2 ; EFE +ENDM \ No newline at end of file diff --git a/battle-e/macros.asm b/battle-e/macros.asm new file mode 100644 index 0000000..e4a9c1a --- /dev/null +++ b/battle-e/macros.asm @@ -0,0 +1,24 @@ +INCLUDE "../constants/abilities.asm" +INCLUDE "../constants/items.asm" +INCLUDE "../constants/moves.asm" +INCLUDE "../constants/pokemon.asm" +INCLUDE "../constants/trainerclasses.asm" + +MOSSDEEP_BATTLE EQU 0 + +LEVEL: MACRO + dw \1 + ENDM +EVs: MACRO + db \1, \2, \3, \4, \5, \6 + ENDM +OT: MACRO + dw \1, \2 + ENDM +IVs: MACRO + dw \1 + (\2 << 5) + (\3 << 10) + ((\4 & 1) << 15) + dw (\4 >> 1) + (\5 << 4) + (\6 << 9) + (\7 << 15) + ENDM +PV: MACRO + dw (\1 & $FFFF), (\1 >> 16) + ENDM \ No newline at end of file diff --git a/battle-e/sprites/battletrainer.4bpp b/battle-e/sprites/battletrainer.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..52703fb48733d356d9263dd1cb0390efe54e4f53 GIT binary patch literal 1280 zcmaizQEtL85Jb6xvD*J8QvaPj0uld}fD54d{zvE=$2P9PVWMHJ%{r{Lk*ZhZ;?DL*EB~m-dl+!#{+;PxVg-D7 zv5G&}4<}|6T|M@wyc0B$gK;np>>x_oMe$=4uWyj+WD4Kd4D~HSUJ&6e@@^CH*+&@! K)TH>*MrnUM(dKCY literal 0 HcmV?d00001 diff --git a/battle-e/sprites/battletrainer.tilemap b/battle-e/sprites/battletrainer.tilemap new file mode 100755 index 0000000000000000000000000000000000000000..d1e5abd778d1fc89fba3fe3726d3bea276531f61 GIT binary patch literal 896 zcmchW%NBw#3`AQj;@hb8jWQzY)`kE7Z5k`2B5*t|>}Vx&-xn>N&usBz&H|ssDu1hmJ4ty^3$j|35x5 z{tIyX|1Cc|37^sFrL1Ot(!XTLd7;@Q^Y$n67hXDW{FyE#os0c{@=`s||IPnlAAUb~ DKLa22 literal 0 HcmV?d00001 diff --git a/battle-e/sprites/battletrainer1.pal b/battle-e/sprites/battletrainer1.pal new file mode 100644 index 0000000..17f2b94 --- /dev/null +++ b/battle-e/sprites/battletrainer1.pal @@ -0,0 +1,16 @@ + RGB 0, 0, 0 + RGB 0, 31, 0 + RGB 0, 27, 0 + RGB 0, 23, 0 + RGB 0, 19, 0 + RGB 0, 15, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 \ No newline at end of file diff --git a/battle-e/sprites/battletrainer2.pal b/battle-e/sprites/battletrainer2.pal new file mode 100644 index 0000000..b7b22ef --- /dev/null +++ b/battle-e/sprites/battletrainer2.pal @@ -0,0 +1,16 @@ + RGB 0, 0, 0 + RGB 7, 23, 31 + RGB 3, 19, 27 + RGB 0, 15, 23 + RGB 0, 11, 19 + RGB 0, 9, 17 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 \ No newline at end of file diff --git a/battle-e/sprites/battletrainer3.pal b/battle-e/sprites/battletrainer3.pal new file mode 100644 index 0000000..033b57e --- /dev/null +++ b/battle-e/sprites/battletrainer3.pal @@ -0,0 +1,16 @@ + RGB 0, 0, 0 + RGB 31, 5, 5 + RGB 25, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 \ No newline at end of file diff --git a/battle-e/sprites/battletrainer4.pal b/battle-e/sprites/battletrainer4.pal new file mode 100644 index 0000000..2db52c9 --- /dev/null +++ b/battle-e/sprites/battletrainer4.pal @@ -0,0 +1,4 @@ + RGB 0, 0, 0 + RGB 25, 19, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 \ No newline at end of file diff --git a/battle-e/sprites/battletrainer5.pal b/battle-e/sprites/battletrainer5.pal new file mode 100644 index 0000000..19001bf --- /dev/null +++ b/battle-e/sprites/battletrainer5.pal @@ -0,0 +1,4 @@ + RGB 0, 0, 0 + RGB 0, 31, 0 + RGB 0, 11, 19 + RGB 0, 0, 0 \ No newline at end of file diff --git a/battle-e/sprites/berries/chilan.4bpp b/battle-e/sprites/berries/chilan.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..6b8dc0c8eff36ce2c994e80e4b829a27b77f382c GIT binary patch literal 1152 zcmb`G!D`z;5QZlYV3$4DvY>Ae+&74P?WNY$mw?}CA>c#f9#lK{nq5(3=%w9tjgCdy z7+)J{z(;}8?W|vlllht!=K}E{)so=M2Dx>II(>E=E z+5IaJim!#b`XLKBle<`|UnlGLlQW7wVcApNf379;WCDr)1k)%=BB5fbi&!DX1w-lR zGK``~2(4p{@4n#hBEWtx7`}aT(I;wa$g1~X@kVW?lGCA5 zBD22m>{fcdpKZ77HS^PszbV3Y$9 kN<;%_dZF7Ez^Tmev&zv8T>_1|ao8tg5b(c=`TH||1F#&0a{28AhdLCjR@T}iDX;o zc!s_)Nkd&4p?~=~UyMFKfF7!bS$#kLU8%ZWsjA4- z<~dWj+L%4u{k%&ovNe|J8fE(4*rhArg1Ph@C71_nHhnKelqHaaA3ZP7V#d*HVgVKKaA z6Wc3>_QRNOEt>J!1mNn}-hmWTFSw6mL%&<^Vo&Gfu)*#>l*^nL(GBt6`dd2Z9j7#Q Gd#@iVK!Usg literal 0 HcmV?d00001 diff --git a/battle-e/sprites/berries/drash.pal b/battle-e/sprites/berries/drash.pal new file mode 100644 index 0000000..2b62fed --- /dev/null +++ b/battle-e/sprites/berries/drash.pal @@ -0,0 +1,16 @@ + RGB 24, 30, 30 + RGB 31, 24, 25 + RGB 30, 20, 22 + RGB 30, 16, 19 + RGB 28, 11, 14 + RGB 23, 9, 11 + RGB 17, 5, 6 + RGB 31, 28, 27 + RGB 25, 21, 15 + RGB 26, 31, 15 + RGB 22, 28, 13 + RGB 18, 25, 11 + RGB 14, 22, 9 + RGB 10, 19, 8 + RGB 10, 13, 8 + RGB 10, 19, 8 \ No newline at end of file diff --git a/battle-e/sprites/berries/eggant.4bpp b/battle-e/sprites/berries/eggant.4bpp new file mode 100644 index 0000000000000000000000000000000000000000..2034763859c0b5e04c4f5161fb2368ad0aff8df9 GIT binary patch literal 1152 zcmeH^F;2rk5Jjg<#U(fdeI!l*n;T?JNoBWmc7uB-xqv4q2QYHvp7jNAc0~o2?DZM= zV}gj1l63H;r`g#V&3?@i{p(-@70xT7DhEvT1V))^XBVri@XXwB$;IoMxy<>yP8VqN zU;sVnz>8e|S{_quL*z=LH-~ZZgm4c6GTc}$e8zVBY?FO1r6=e@vAMZA2iO| zr>;*EXQH^R!>DySYQ2so10WrL*%QD0fGyzz1|*W7Q2}NNvhNeYq9_b>6h9=%SZqA({+G|bGZ9+616Mc;-m>@Sb&xywK1DfTF;yhox z=4BpjcK>PROlIVKeh0kp0{_kr{3GR*N|zvUtWr{r^n2v-FyZ#|2}fC#A2Mx&Y6RMP zZC%7-%{A6npt;`MZw6>*a12XNI}w&AfD%?iiKw9z;7BQ5^`*91O6GHB-_T?}8-N$) zT4o##g%#@=On!jfE9es4hD52srTz^sagi>wr4+-PJx{bF7EtyKcvL)*RN$C0-}jhf zq}1@oD7IwZkEJbBD@ui( zCCA8`RD4kr;%(HCan=oijx(+0Q>x{o9*&BGQGpI|=ouU{xEstYh(E1*i<#=J*0!H+ L-PrcQFW>(FJdThw literal 0 HcmV?d00001 diff --git a/battle-e/sprites/berries/nutpea.pal b/battle-e/sprites/berries/nutpea.pal new file mode 100644 index 0000000..822c230 --- /dev/null +++ b/battle-e/sprites/berries/nutpea.pal @@ -0,0 +1,16 @@ + RGB 18, 30, 30 + RGB 31, 31, 27 + RGB 30, 30, 15 + RGB 30, 29, 15 + RGB 27, 25, 13 + RGB 24, 21, 12 + RGB 18, 15, 12 + RGB 31, 27, 27 + RGB 26, 24, 13 + RGB 22, 20, 11 + RGB 18, 16, 9 + RGB 15, 12, 8 + RGB 23, 29, 18 + RGB 18, 24, 16 + RGB 13, 17, 13 + RGB 0, 0, 0 \ No newline at end of file diff --git a/battle-e/sprites/berries/pumkin.4bpp b/battle-e/sprites/berries/pumkin.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..3a646de8d1237accdf37cee5c05fb89d34ee88c3 GIT binary patch literal 1152 zcmeH@u}T9$5Qe9+yv_%3G@$LxDR-?qcVH71lD#qr*}EpehcJz`co4C?C|n-ELcuo( z_yDHMSt#5yI7ylacZH~h;J~-T{{J$}{s8~gkifI(vjz_wF@{a%@9P>sZv$k<0O<^j zdC^Eo=youq4()l0cFOEj+l=4UBX%v%_-r8Y0ci2Yq3k4Ch{m+liOn;s^HNyS$qibD$Qnp}Er4R;-2 zUQ)t|PzaN53Ae_9Lim2QE+p$r=A72e3L>9^D4-jAO^}Wy&%43qJ8xo*%5CONpQij! XJ>I`>x&Vb_{3dJu#HODo|Bc%RgzHb3 literal 0 HcmV?d00001 diff --git a/battle-e/sprites/berries/pumkin.pal b/battle-e/sprites/berries/pumkin.pal new file mode 100644 index 0000000..f9ced24 --- /dev/null +++ b/battle-e/sprites/berries/pumkin.pal @@ -0,0 +1,16 @@ + RGB 18, 30, 30 + RGB 31, 31, 27 + RGB 30, 30, 21 + RGB 30, 29, 15 + RGB 27, 25, 13 + RGB 24, 22, 12 + RGB 16, 17, 8 + RGB 31, 25, 17 + RGB 31, 20, 11 + RGB 31, 15, 5 + RGB 25, 11, 4 + RGB 20, 8, 3 + RGB 14, 26, 18 + RGB 10, 22, 15 + RGB 16, 14, 8 + RGB 0, 0, 0 \ No newline at end of file diff --git a/battle-e/sprites/berries/strib.4bpp b/battle-e/sprites/berries/strib.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..7fa191c9621bfa80f4adaf9ff8e8ebf3b398f35e GIT binary patch literal 1152 zcmd6k%}xR_6ot1e_SWLS3 zn0Ill{2{T@$*1MMd!jf<7*1FlGBY#0?N@a6d`-`@1-+*yJ&AE&$bt;WklvZci86z4 zTa9fyCj|#9Kw7TyzfM|C^J;mks--rSF03mm7iudHUMyn@;p=>2#QqyeIj29pP>d-K z-Z|9Hv8lZap>(zE<103@gOda45QwmUWSgRWtB+jzcFM&T`%VL^AhHpWmUY)2;y!-$ OB<%>Si2cX^eD)pHMTBqw literal 0 HcmV?d00001 diff --git a/battle-e/sprites/berries/strib.pal b/battle-e/sprites/berries/strib.pal new file mode 100644 index 0000000..0b6dd57 --- /dev/null +++ b/battle-e/sprites/berries/strib.pal @@ -0,0 +1,16 @@ + RGB 24, 31, 31 + RGB 31, 31, 31 + RGB 30, 31, 27 + RGB 29, 31, 23 + RGB 28, 31, 19 + RGB 24, 29, 16 + RGB 20, 27, 13 + RGB 16, 25, 10 + RGB 12, 23, 7 + RGB 11, 19, 5 + RGB 10, 15, 3 + RGB 9, 12, 1 + RGB 23, 29, 16 + RGB 19, 25, 14 + RGB 15, 21, 12 + RGB 11, 17, 10 \ No newline at end of file diff --git a/battle-e/sprites/berrybackdrop.4bpp b/battle-e/sprites/berrybackdrop.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..58d08b06b43a9daa08cfc40622e83ee7b0a71106 GIT binary patch literal 160 zcmZQzzz+n`fFckG0f7=4PzC}cATWjkXCN>E0v8}~1%ePD2nB*vAP573G$H{2O=OcOjaE0gL(AGzdSD~lJ1W4<>k3Z88n{fzpjs1Y#*M>|CK{&#wW(;nOXJu`lly}S03<5hZ6?z%4NwT{P~5#j`1@x`c^qz$*`YHx1BulN$6PX zM_&8FGj+EfT?yB#r3vla!(qh8O8D^qBqCw+9=)o)sB67bitnu60kOiU`RWenK8Ts$ o-E0{Nek|2S@r5_Zm`3scIhWEf1D3ks)rG?=o#E= zGCotSx-t|>Wzzl$)?9%puM4DCb)8^+yA>)>#OQa~NA98TC3*TZ_WDl!EaceZcKsI# zOs%T*3Y@bKhSpsVC>QF31s9*c`*=*9hf)6>D>>ph>Ob|aeK2zn@k&5EUPa#(`+%ch er(C5mBG4MoGe%w`{4=7l;Vdq1$Kxz|-S-6?Dk@(9 literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/black_belt.4bpp b/battle-e/sprites/trainers/black_belt.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..ac71f182a5e08d903e3e1c88a78d4474249891aa GIT binary patch literal 2048 zcmdT^32wwN2t@Gu6oeIHa z$3*tby+Ze%W}TD0))EDkaR^%w!S21%NYAY2a^z}4oriAbqQ4EkkIpAb@LLz^{ubkb zw*D}Ymoc5Zk2)g}0Z#pURey(9QEJ9bF#G=j>W=y8^65LTI%NGx<{`-(kOop?lKp(p zZBsXURb3g^n|%RmjCYBd8p#jnCoN(rBQ@%~8H~XYd3CpDn~dc#S~mB|2Fp{lKgB0V C<}|4Q literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/bug_maniac.4bpp b/battle-e/sprites/trainers/bug_maniac.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..ae44d5a1dbb413e15d8575385a8e72d6c639bea0 GIT binary patch literal 2048 zcmeH`0cz|p3`9kJf{+V@>;P^e%c$Cm9GNjCelAIw0t8mq0# zGB90UikZ9FvJ~KD;WI7&%3(!B$IvYOObTg^kNz`zQqoM``6wetep-%l^`BiBWDJ6x zSNAmvvqvpvUVS{@+&Ee-ZmWB$InLqSta;CcmYunKbM-<(n!(7ye`t@aL)Y89@{mY= zju+IEVCF;Nq^)XCC6BMRoHXjUGHGnm9d|}Vi3D{>{mMh!zK;u;S8DlJ;bCi{o5TLqCZAa?%^skPfP+iE6`pA{6LS?-5zGf7U2YM5rYZXVu zg@+MvWqej}|KD>n`Hk`ZG~0F&`OE_S76+*o7K>H`&LzA-wjD^`1E YoA>L9q~3AIysiR2xY3a+X#5>}2Mc{hRR910 literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/camper.4bpp b/battle-e/sprites/trainers/camper.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..c046dfe465209abdb3a38250480cd21366b3af39 GIT binary patch literal 2048 zcmeHFTMmOT46D`?M7;nC7ih@+?>4&+)@~Bg#0Pv3$)qK;*iJ%t;yMT1kNzExiubMM ziJFUKsYu8S=KjtgQt%M528k#)*mTup8?*_0BX}FRd*dGxNY}szF3w^P^W-sP>KtG9 z@{o6}c*nIhAc@rLGh9kW5(W6N10*tf!g(Pff@|V*PrYEFY(D_&DMPGdw z60J3S@iPl7MyJ&<^oEh(5Bfl)FF?*5j;3MWG4qg8@ag$DSGCXds|A(g*beUR;YQb9 z^)H)_C7A6iG6QrgZ=~a1ZE?UbM`-Ue*dUBwegOR--mqP z@vLLCd5~kC$Tyx``x@jP^?%Ec>Z+>nE{5N5^AQfF}| zbV84?VDuH@FmvAaYF3#uHP_k|Z^(TY3=-k;7$ErylK~2p9LJeM9`zl z_wxH7#gH#VfYuobkA#(qJTB;fyZ7kV@*kFA_+P2%TF3Bsms9yVN+QXkB#Gn!4A93O z()r5GZ#vsume$^L_5H4AQSVl-=`K55jx1TE zDjvHymRyr-Hoc4tMm5MGO`ABUFdsiQM(p$QERWC`lM2C}CXO3(@TTg9WJ1Dr_55@M zwJ`NC@ z=Pr1UtHNMK+GOZ^+=0FK>CTaV0M`Gv07i121QX&8z#QE3;8(-A1%0A1{esa0(Fc8g zjQPBZP*Qlrkbx(Kf*E`ZUxpX`vmkf8>plA*{a@}pFYbi_KUg>SwPjUpDy}HQU*H_N S;6JcTVr7!$cBS)ozs_E7CMK@{ literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/expert_f.4bpp b/battle-e/sprites/trainers/expert_f.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..6e5e9354b6e71773d64c7ad245a82879dfc40513 GIT binary patch literal 2048 zcmeH{0SbdK3`K)ILFffWyg*~_f4BW_ty5MRV`DNf@TVr0^!?O{TyZ&Yh652&RF67G z5>Y>@{!u=w0`o~oE2Wx50a~Sr3CI^6`a=g`(HT+DGz*4T_1Hp*NMPdL*J$j50_PnS zdaZA69QS08O%CqtIr+?E!NPCOM+PTVz$|3n#dfbmD+}j*wh8}!IF?W~083Uflf6ar zp*^2-y&31)X3Xn6=fwjvI`UbNd!9AtJ*$MHNkX%6>i>TE9t)`=9QrTpTv3V0S*DJtS} z1G>_YSX}TBsSSaakV<@ZZ_iiv^y;BRxP%;3@T^72xpQTI)d3TnYeAkd0Auo}9&u3q zoK)X)L8p{dtm-2qve9_CSvZopF*o$oFAzv+aCSVPv>{6HF$xLp$C9 z>dNm9B9N=Jz>3um@C3#I?q7E?CSO1V>ZVPb1DZmf9lQ5NG0C}u9w5FTcqagtE%49d zfxj7@XZQQqp2+_X9En|+sn}I+u$ACNBgJABT^L+n4zx7zkDhK)hxZS_KH}u zuA!MFwp$y`yMPI{5^M@I>W z5k8^78bxvzCT3nJXpuq7$`2QCAf8j1uzXd3&z9*~2Nod9oOM^MIOO^T+0 zI_zE)7D}DL&+AT0cpQ>_&kuR(z4jT9L8hARU_Rd_9Gz%;5B_NMVGa@wkavdY?}T$; zB+l1`I0HY|z3=Qj*T0k#P>5kZA{5^PAB9P^vKrx&H@REM`Y6OW_Z3b`*h^P*xj~aO zd{SEFSElAvO&^O|S*(yB{uTTl?qaxbUU=X+w{HL@yonohEicMEo9}1FuoVc_Pkm70 kaETk+xtNuEkFh-%JHLH-p0$7o5wGJAgA`l23C5q~3)F--jQ{`u literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/gentleman.4bpp b/battle-e/sprites/trainers/gentleman.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..de2abf50e23e0e4bf58b37aa435729dac7cf290a GIT binary patch literal 2048 zcmd6nVGe^J427F{f`$t$Q4|-| zB`V)Bx8kMJrWH(S6Zw*=Ls68LEa0ScftaH9`5j>o@6;JF6pE;`oG?hVbKuQ)6f6Vp z(!Mw5^I3%c82jJB9bi^*co~L<=!2o=hk?s8ITK{0%7@q*H))T__w@czXP6Ib01ivM z)wy{dJeTWZ@Q(i9$L50r%ZVE@{?hgQyWh#n;0RAxlBd-PIiUyG1`vJ~C0Ea8Q@u|M s#!X4RSv=y;*d#x=-No@V11l7V^@yt?)vKCS=VQ?`WTe7kwBXO&3nW}FDgXcg literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/guitarist.4bpp b/battle-e/sprites/trainers/guitarist.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..d03fb046e976a3ef02bde356b10ad967fe0ea2ae GIT binary patch literal 2048 zcmc(e>kY#o41`gc0I@(t7QkWu-TEC5CD8nA6IWLUjIqzg&OIsKKN*ub3F=Z# zh3Iy96fo*C-1=Ur?}X=3rJZBM4Bj`eor}$CaEJKl`JqMSON^a5+iK5hl?PY0I`Sb( z0;6%v28%i?+I(D2{U5cEuJsU`KG&z5$DG&nPiKcu(|vwczp<{hd!pfU!QXobDMhfC tcS>ot(x)vYV;@yzwd03xieT4))z0v|01-AKq}OWKT3+eebai~%`v5I;GG_n) literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/hex_maniac.4bpp b/battle-e/sprites/trainers/hex_maniac.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..99e338ecc5380e1d661700200ebd3394de9a1a06 GIT binary patch literal 2048 zcmd6nQ4Yf(2!_c#0r3J0y?~DU-)$e%E}iL1vxiCYM^R$^Kq|7XxvzV-8#imjR*|OC zs!CODs>+a3bz$mgm@_Y|?TYUd)Q4iesJS#xzU0K=o;6s5*#r2}g0qKCInYjM`e)WS zkhF-8B&_i~s4IXeU@7yLe~El&5mwUkc@H^{wXuHA&tK-r++n8n@y0*eb8-juGWKAv zMLL~?yR)ytKi9rdp+-|TZrb8)U)yMj^P8UoW3PPGzS1X-3g^O4N>(@ic-i`ev5=Y& z>FH!GdLBL$d*L5CVsc!a@M%>n^^&LAd|mi9er@KPrOo@WZ=siVi=cVm?7{Ii^q9AQ F_TR*1Ft`8! literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/hiker.4bpp b/battle-e/sprites/trainers/hiker.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..b511cb91ffa79f41efa8cc5c24f343b8af59caab GIT binary patch literal 2048 zcmd5+2@b;`3`6Y;qJE&tK0wI-|27-SN{=B`)7DwDNQoL|Cp3gR5xsZ1kG*UN-Ix2X zej^)EbXv%`AWjk{5tl8nC8U_g8uIY~cp#vm8c9oP%=LeOUP3E=Sy$D^wJ&g^*zh#M z6i^sT)w~}C_FjH708L+`gg~OF3;7?vi!s0w&_H@qe5q&d``^w7=jL;)TC3)DWoK`J z7eC+$H16-m=bGCJ?03G`>z!`Wt@=9abfvP*Ux^{Gd>`0*gGR1^ zad}RbWC3>a>~ek^n$oi~vTjZ`{biqDG=(oZ{6N3r401j@D?xXrr_-+y=2S%<>aMJD WfF>7JMfN;TjsDQ#P5Myp>c$feUOf5$ literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/lady.4bpp b/battle-e/sprites/trainers/lady.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..96dd4a9f7bbb0fc7dc129338b39ccf1eb8058c18 GIT binary patch literal 2048 zcmc(fVGhC|422sx0pS9syTEGie>dMl>Tt3jiR)kpq~?TFgAVhV$7f78GE!Kyz!5lDQ-M~lEjua3#z>1ATp!&Pj4V{fAY>RvjPIFj zWF_;P8$RdOpbtQlDVRsN{Tx$_oRt|4c2pI1*Gy}y>~rmPUqT+qg?lbhF*!Dn44 zSOTVeigPc`1a0r`d-}B;zzUBn0@gZE75#_4o@qDHLK)yDH2iapJL9(;NDIn>X)J)3JcWjG@Vm*A@3K2^Pu japvdXuIi8qH851bwV3K-8OIkSHXEe#v0=AS{MWfBNRc<# literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/ninja_boy.4bpp b/battle-e/sprites/trainers/ninja_boy.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..cde75617db858317b99bf2724e18f5bb8e4fd972 GIT binary patch literal 2048 zcmeHHL5{;947A!8AU;r$58(R$f9s6FG@+>4)o#>1td$911Mv(dBL8-x0(HH&nOI7A z(kgCnCcIL*uEKxFXG|~y1VV|cG06Va|2 zbt5?bu~|~`Vg5wLM+FXtWF8YQ3VtAOp594#)6y3(lTPUL-O@YY$ zJj~*e>dSPv0EuZh!D4V$sOc~l9QIZZF77pr4V6rJp9qlaY~5&wV3%f Pb9}oXF=XaI|GV}8W^Xtn literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/parasol_lady.4bpp b/battle-e/sprites/trainers/parasol_lady.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..1922c084c98b245eb8432f5d246911efd257d0b4 GIT binary patch literal 2048 zcmd6n3vR?93`DJR0>lL>aseFff49yf(1vWAwo>*p(ujZw>*qBwyQ}Ki>8HW77oQ(1 zN&zRc8m+`=DMk%Z!>nKyogG1;I>$5vrM5lQG!3$MYuMuKIZCgX9~bX47vs#?c;V*Z zdby6oO)w6_JVfur{lW-bK9K6qsU|*ip?eMcMT?&x60Me|zNZk34%N n=ltGn8s~IM%z4F0p;eyZz26u0z>=cpwJuY9ob{#$e6>CRWXUsO literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/picnicker.4bpp b/battle-e/sprites/trainers/picnicker.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..a9859d2a0a7180b2ef7048c8532cc10bfdee2a17 GIT binary patch literal 2048 zcmeH`QLX|Z3`L2v0>TDfIvW7l|K8rY1!SV=m&W<9@lLTdbxvDC_}Pa#kg1y0C~i%w{K;Z4<~Zfd;`aC?eR3*r0vlrqvEU2Eq#jc2noo+CK?UyMpHPA zsnHcpSQ=dJ#ppAhb3XjfNslb(E2AL{v1xL*WoC(KfQ!e*z+L=oF8r(7=g#HuXIEWX z@iYzWzR$6kU+RA2$4( z%N%>aB0DUIzQ9Y>8#kTL%LjV8( literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/pkmn_breeder_m.4bpp b/battle-e/sprites/trainers/pkmn_breeder_m.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..ad664022b5e3300be3551cb638fd0c3d42834df5 GIT binary patch literal 2048 zcmd6mi*3U&3`B)`0zwM}^a7%_|89LJJFYE6DFQT34>(iM4}2n>(*IRO&$64IEq;Ej zkOD3>m24@S6*D6=6M6*`@^o+&a^90pd-|IVDVd2eIF>8!+IOcWdW{;ucB7^NW8-y|1}r!W1iq-rnYxu zVO0=z^C-cY=>xnC`o+(^|NEHXq_5Q*z1O;mQG0rC^R0zm%;jC%Z(J<*%I>~k#hh-w m95;Xl`|Qo(UT62?I^605TlhF1uHs)iYyL`U=9KJ=|5D%bPcGa5 literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/pkmn_ranger_f.4bpp b/battle-e/sprites/trainers/pkmn_ranger_f.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..a8b83a10ab6e7b218e5119134f6145abf0024b37 GIT binary patch literal 2048 zcmeH{+ik-z3`K=%0zwNE=>lT3|86~(wrtTr`<2%HD1jS^de}T9ol^eohchrr8CJSw zH8YlMu*)y9iX0`o##UKab=|+&@4UYujhn#OO1l`4D##;3&0Q9qsIsw7od$ z5#{a$mg{+Wpm`gkrYP4O5dyuhdW(05bCOY!auY4@cuqn&9f~^7TI`+? literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/pkmn_ranger_m.4bpp b/battle-e/sprites/trainers/pkmn_ranger_m.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..946cf159984e50ed278ab1f9f19f3a0991170902 GIT binary patch literal 2048 zcmeH`QI5kP3`DJR0*ec*k_$k5|GV`K37dqrE3LFqe%8`7fE~(n2DAUTumi=cgq7@; zy{Wjn6i5;LxqjRes>st(7oP1ewubL>B;dhrykc%WU|_&^{+(6qQtw0Sh1zp>WH5Xc z-w}vaTC=DnvI}yL>ba&`l8Jv`UPmhJ8gs+EGEeMbb<^k*_EGBYkOw~bpz#MFqyN=| zEtLK#DoKfZ5$&$X6ul>R!-I}L0x#eTc^fcE;0>PV7I1cd<8c76y6*dT@LKame^>jo z8r7-(jqc{xSv&KAyRu$6e(LAv=(-P0r!!Ny_OI|XdU+Jdk(~uCcAfURW-^(5Evt<2 pIbf``K$;_BK4;CQAzt%~QP)@tj=EIq(>Fn-1)gnxN+1q$L3d54EL ziGk zcRgf_!IH)d9>BdkH1^LF)5@PUp*b41`g00*ebo2f4BW6frO^fM*FZ;A8Kh-ip|fAhlKErH!9#ExP@#b zN1LLRm!qd~#wq{&$Xro~!9&dEF`Ai>0WpE1!9^5D14@FV;D;@OPY5)HXlx0NkQ`NSE%7?&?q-}iUlzbA#o zWQRE2wVv}s=^uwP^&L-3#ZiE7f;Wn+n(Q?d{v<#JDT2Bu85{zjlv81SB?KQK{Q*G83d$K>JhUX7L4s-c=`+V=svKVFFkXT3EQTt*UV@Byzk`&`$#@)x+~=xL@m5j`9i5Qm7zd-75( zy7RjpzxzJqaTM|6?Xg>qes5~d^+||Q%4zEpaTxs7;H}3UmA&WaXxEQL|A*+A6ZZ8x uVeR>qe`XK;;&?7N3PYjBkf9M}x1X7edN$(-6=P|4&^qfpU(wDdA6}Qe4wf^ zskntNoi~)6wGir^k@FCxP}-a7gXo2-22uVg|CW$$=_l0R$?dK50wUo_#>~FgwddD- zu4`J~IqSf0Aa(a6jd`&a-Z@o%#q8zC_hga%tbnM3y@$*+KSG8i-5$ry&qgm^Z=}W! lMxC};;89E`IslWkHpOnYyiIKZC=<4{(-L=HC{7>J`Uft(EC~Pr literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/psychic_m.4bpp b/battle-e/sprites/trainers/psychic_m.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..d64d4ceb07a09de731dfac2fabb19a5f81419068 GIT binary patch literal 2048 zcmeH{Yi`0o41`T{fmpdfwY@-$?|-*`vkw9Us!CA7k6M~|{Rr!^9nAjaO*)WftD7xu zx%let3s7wY%qO$Z8SRl1p#Tcq6;j_pR*L9Ym&y-vFySngzn18k((q41rFt@W4lUB7 zXF9)3>huhrmA}eRA1ZInI6EOJ&HA>G73UGzEXmYC1F#!#D!AdiBf9?C;)gjs!gHZS z!DomV2b+@-;Mk-V9;z|3z7XUFaRR4($8{;<8Cn!^0~cJo4NcAaPh@6K!$Z6VWW$d+ z`ayTqG~KxI)rupSdiEP@F)L{8!EP2woDwB0XsnpN$B YdI^r@7+y--m+KsH`~tVDyUyO*-zD@jv;Y7A literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/ruin_maniac.4bpp b/battle-e/sprites/trainers/ruin_maniac.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..f45d23ec0f6ae9b1fe5306cb8e324c728bcfe9de GIT binary patch literal 2048 zcmeHHTMoh?5Zu@kOt^rd7l7{l@8%2?MKqd5Yk!<{vd}Gs*#~BS92fx~_I67iEFri9 z$UyV^WQI&)s??Y~7-`s_^F$2+e830N)5e@`hjf#YT3F(s7-UkO-4VD0nNS&M#X8?E zX!D9mI;-9__eHz(DY>^mB}XTr9>oehkbJnIFw`KJoKaAQ$}22qg9eq#rQ&fmZ(iH}6={I$caOI!SIY+OEBWZ6dpwi@0v>?p{Q-m#y)? z%r|$bs!bOlRKX2%iGsKz7vKbhaoxC(Cq?K3ikk#;KeC2>hw6jvPVjv2{e zLZJo(L@2FB?g`zFTp3^-M(*n-NIeuC^nF`+k}LLl*fGzU-oaOzUvcL UWKsWaqTLR9vICwmjeZ_p07Wr3u>b%7 literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/school_kid_f.4bpp b/battle-e/sprites/trainers/school_kid_f.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..b2b28e91442d703ca86ba13c737584821426bcc1 GIT binary patch literal 2048 zcmeH{Q4Rtj3`83_LBj=1PeA4VcXOr-D=`qiHe%u=V=HA>UP~1D>q{M|B1KofT~N)6 zkDnJAvjSBS!br6nX@VV|s^cdlw7$(&UJ#!cv3xWcH+VP5-pj{)n{}6JEi_n7#2!4s`aZX5DvI zT9|3+&i5SizY9e`r&v_S=^?%8$lhCNmIu8$-_M9N_khJb;HvQs?6Gl?X*_ zOzxtUg+XbgBpZX&GZrZ$PLHX7yo>$#D?e!8Qo!8{)XGC40f9^8NxFv@m9`Hq6V9r? zwe|szj>nMjC5=|EBmhdjLh*?=FVOIy4AnVxT< ClPAgm literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/triathlete_m_swim.4bpp b/battle-e/sprites/trainers/triathlete_m_swim.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..8778504388ee50702407d90dd6875618160b2bf9 GIT binary patch literal 2048 zcmeH{U2elL41MyL``>LJo&T&D`qH5fBS1K|T-jupn*HNN2PU(rnKie` z7dA$-vZ=gyeugSD_W>sK0p@w%v$F>lbLF%8pRP$`HFQtt{|RZ4^nzG(cw^PQQTTzvRNlL%xXe2+iV}k>)91?noAt7v*Tlg|cyG&xx|4D10=KP?E8~d&0tn zH{we}1V#)9PBxyfdb52KNlComE?$O+O2!AIX z{3APij&PPHI}yxJFTDHnhWRPi%J%H`2-afOS=nE%ZeK`~8pfQxM(t&p%lA7Eh+=Ot z98{krE2X*$+V3O33G?xbXUz|;X;PxpT~T;99vl!W^?X6h?!iU+82Y!r!bd7&L`DRI f`dm<~opC8Lp>@hdj!D{&_qrNllZALMzA*m=!6Y_5 literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/tuber_f.4bpp b/battle-e/sprites/trainers/tuber_f.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..51dda21f70b562f7cce45dd14f26ea8b1fa4e146 GIT binary patch literal 2048 zcmeH`>kY#o41}#R!6^$=&H@nczgzDJR5VTdr*ElNE(9A0pD|{Cdr<~5*PU*y9mx#k zRx}5v!ZNTof>TXXp^uMS<{n2?X0cZTB7g~7qZ34|(QT~tOKp{>CNT@SWA}Fb(^tMT zj}VerE%Qt*zz5ZKA9WwH63BQ9sv&LJks$Rv}CGZEW5K{MqscBMvq_w}z z$=my4w$MF4*ZjDLj<56P(4dmU996Y=VJJ0M57m~XV0?bf+>Y+%6rnQDYt(|`(^=^v zrf~}}vxFpF`73jJ+z)m6tKhpGViYU4wD)UqEDG} literal 0 HcmV?d00001 diff --git a/battle-e/sprites/trainers/youngster.4bpp b/battle-e/sprites/trainers/youngster.4bpp new file mode 100755 index 0000000000000000000000000000000000000000..241a415b1276929e86fda6bf8a68db12f2c20302 GIT binary patch literal 2048 zcmeH|QI5he3`8w*0xK6l;Q|T1|J`^KZ@Pd`Kak4qN^5EAq)toTI2C69al8W&7Vh0s zmAs_ij$-DcnEUvW7nVq|w>KX9^&!q@Zq1E?bya5!u8Wx*_)u&>KOp=IoOg}rjHQ~Y zzIwmWCUb&+_df1!GYpm&y=RL&C$X(#Bzv~dVZpZPnX=X&AKgKvm$RpXRF*6_&rl4J zAoYET>HG#n@E|s>-lv3Dx%7{ayyaD&Jz70~=$GD?JsqSW-db^^Vi6h3p1=2;XDxkv zYfnG-5J#}Pov&_9Y9Yo>KVim;#T(6oVry*{mKnKtG>lq$g>pHWU0Ui@{iFBJFzf_~ O`}HgT4Li|bJu+^y^C;2) literal 0 HcmV?d00001 diff --git a/battle-e/trainers/Makefile b/battle-e/trainers/Makefile new file mode 100644 index 0000000..04099cd --- /dev/null +++ b/battle-e/trainers/Makefile @@ -0,0 +1,19 @@ +all: alana.bin annie.bin antonio.bin april.bin astrid.bin belford.bin bryce.bin candice.bin celina.bin clayton.bin devin.bin dominic.bin dustin.bin ellie.bin fay.bin fuego.bin goro.bin griffin.bin hayden.bin heather.bin hillary.bin hugo.bin irazu.bin irvin.bin jeffrey.bin judith.bin justine.bin kendall.bin logan.bin maggie.bin mandy.bin marcus.bin natalie.bin natasha.bin nils.bin oscar.bin patrick.bin raquel.bin renee.bin rudy.bin sandia.bin sandy.bin sofia.bin sonya.bin sophie.bin stuart.bin testing.bin tsutomu.bin tyler.bin wilson.bin zuril.bin + +%.1: %.asm + python ../../scripts/charmap.py $< $@ + +%.2: %.1 + rgbasm -o $@ $< + +%.3: %.2 + rgblink -o $@ $< + +%.4: %.3 + dd if=$< of=$@ bs=1 skip=256 count=184 + +%.bin: %.4 + python ../../scripts/trainerchecksum.py $< $@ + +clean: + rm -f *.bin \ No newline at end of file diff --git a/battle-e/trainers/alana.asm b/battle-e/trainers/alana.asm new file mode 100644 index 0000000..daba955 --- /dev/null +++ b/battle-e/trainers/alana.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db POKEFAN_F + BT_Floor MOSSDEEP + OT_Name "ALANA" + OT_ID 00000, 00000 + + Introduction LET_S,START,THIS,_ELIP,BATTLE,_EX + After_Win OH_,DID,I,_ELIP,WIN,_QU + After_Loss OH_,DID,I,_ELIP,LOSE,_QU + + Pokemon TORKOAL + Holds QUICK_CLAW + Moves OVERHEAT, BODY_SLAM, FLAIL, YAWN + Level 82 + PP_Ups 0,0,0,0 + EVs 0,0,0,0,255,255 + OT_ID 00000, 00000 + IVs 15,15,15,15,31,31, TORKOAL_WHITE_SMOKE + PV $000000D9 ; ♂ Quiet + Nickname "TORKOAL" + Friendship 255 + + Pokemon DUSCLOPS + dw CHESTO_BERRY + Moves CONFUSE_RAY, WILL_O_WISP, TOXIC, REST + Level 80 + PP_Ups 0,0,0,0 + EVs 0,0,255,0,0,255 + OT_ID 00000, 00000 + IVs 15,15,31,15,15,31, DUSCLOPS_PRESSURE + PV $00000016 ; ♀ Sassy + Nickname "DUSCLOPS" + Friendship 255 + + Pokemon CORSOLA + dw MYSTIC_WATER + Moves SURF, ROCK_TOMB, MIRROR_COAT, RECOVER + Level 85 + PP_Ups 0,0,0,0 + EVs 0,0,0,0,255,255 + OT_ID 00000, 00000 + IVs 15,15,15,15,31,31, CORSOLA_NATURAL_CURE + PV $0000001B ; ♀ Brave + Nickname "CORSOLA" + Friendship 255 diff --git a/battle-e/trainers/annie.asm b/battle-e/trainers/annie.asm new file mode 100644 index 0000000..923fe6a --- /dev/null +++ b/battle-e/trainers/annie.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + Class SWIMMER_F + BT_Floor MOSSDEEP + OT_Name "ANNIE" + OT_ID 00000, 00000 + + Introduction HERE_I_COME,_EX,GO,MY,WATER,POKEMON + After_Win IT_S,_A,GREAT,POKEMON,ISN_T,IT + After_Loss DON_T,YOU,KNOW,THIS,POKEMON,_QU + + Pokemon MACHAMP + Holds BLACK_BELT + Moves CROSS_CHOP, EARTHQUAKE, ROCK_SLIDE, FIRE_BLAST + Level 60 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, MACHAMP_GUTS + PV $000000E7 ; ♂ Docile + Nickname "MACHAMP" + Friendship 255 + + Pokemon MAGNETON + Holds MAGNET + Moves THUNDERBOLT, THUNDER_WAVE, TRI_ATTACK, PROTECT + Level 64 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, MAGNETON_STURDY + PV $0000000C ; ⚲ Serious + Nickname "MAGNETON" + Friendship 255 + + Pokemon BLASTOISE + Holds LEFTOVERS + Moves RAIN_DANCE, PROTECT, SKULL_BASH, HYDRO_PUMP + Level 68 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, BLASTOISE_TORRENT + PV $00000012 ; ♀ Bashful + Nickname "BLASTOISE" + Friendship 255 diff --git a/battle-e/trainers/antonio.asm b/battle-e/trainers/antonio.asm new file mode 100644 index 0000000..468fa43 --- /dev/null +++ b/battle-e/trainers/antonio.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + Class GENTLEMAN + BT_Floor MOSSDEEP + OT_Name "ANTONIO" + OT_ID 00000, 00000 + + Introduction HMM,HOW,ARE,MY,POKEMON,_QU + After_Win HMM,HOW,WERE,MY,POKEMON,_QU_EX + After_Loss NOTHING,MUCH,ABOUT,MY,POKEMON,_ELIP + + Pokemon DONPHAN + dw SITRUS_BERRY + Moves EARTHQUAKE, ROCK_TOMB, SUNNY_DAY, FISSURE + Level 53 + PP_Ups 0,0,0,0 + EVs 255,255,0,0,0,0 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, DONPHAN_STURDY + PV $000000E4 ; ♂ Adamant + Nickname "DONPHAN" + Friendship 255 + + Pokemon SKARMORY + Holds SHARP_BEAK + Moves DRILL_PECK, STEEL_WING, METAL_SOUND, FACADE + Level 55 + PP_Ups 0,0,0,0 + EVs 0,255,0,255,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, SKARMORY_STURDY + PV $0000001C ; ♀ Adamant + Nickname "SKARMORY" + Friendship 255 + + Pokemon HOUNDOOM + dw CHESTO_BERRY + Moves OVERHEAT, IRON_TAIL, SLUDGE_BOMB, REST + Level 60 + PP_Ups 0,0,0,0 + EVs 0,252,0,6,252,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,31,15, HOUNDOOM_EARLY_BIRD + PV $000000E1 ; ♂ Hardy + Nickname "HOUNDOOM" + Friendship 255 diff --git a/battle-e/trainers/april.asm b/battle-e/trainers/april.asm new file mode 100644 index 0000000..cc2a077 --- /dev/null +++ b/battle-e/trainers/april.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db AROMA_LADY + BT_Floor MOSSDEEP + OT_Name "APRIL" + OT_ID 00000, 00000 + + Introduction SMELL,THIS,_SWEET_SCENT,FROM,MY,POKEMON + After_Win YOU,LIKE,THIS,_SWEET_SCENT,TOO,MUCH + After_Loss I,CAN_T_WIN,WITH,ONLY,_SWEET_SCENT,_QU + + Pokemon WEEZING + Holds WHITE_HERB + Moves HAZE, SLUDGE_BOMB, SMOKESCREEN, SUNNY_DAY + Level 70 + PP_Ups 0,0,0,0 + EVs 252,6,0,0,0,252 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, WEEZING_LEVITATE + PV $00000080 ; ♂ Adamant + Nickname "WEEZING" + Friendship 255 + + Pokemon BELLOSSOM + Holds MENTAL_HERB + Moves SWEET_SCENT, SOLARBEAM, STUN_SPORE, MOONLIGHT + Level 72 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,15,31,15,15,15, BELLOSSOM_CHLOROPHYLL + PV $0000000F ; ♀ Modest + Nickname "BELLOSSOM" + Friendship 255 + + Pokemon TROPIUS + Holds WHITE_HERB + Moves SWEET_SCENT, SOLARBEAM, BODY_SLAM, STEEL_WING + Level 74 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, TROPIUS_CHLOROPHYLL + PV $00000019 ; ♀ Hardy + Nickname "TROPIUS" + Friendship 255 diff --git a/battle-e/trainers/astrid.asm b/battle-e/trainers/astrid.asm new file mode 100644 index 0000000..94930cd --- /dev/null +++ b/battle-e/trainers/astrid.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 50 + Class LADY + BT_Floor 0 + OT_Name "ASTRID" + OT_ID 00000, 00000 + + Introduction TALKING,ABOUT,MY,CUTE,POKEMON,_QU + After_Win YOUR,POKEMON,IS,_ELIP,CUTE,TOO + After_Loss OH_,WASN_T,MY,POKEMON,CUTE,_QU + + Pokemon MAWILE + dw SITRUS_BERRY + Moves IRON_DEFENSE, BITE, VICEGRIP, FAKE_TEARS + Level 50 + PP_Ups 0,0,0,0 + EVs 255,0,255,0,0,0 + OT_ID 00000, 00000 + IVs 15,15,15,15,15,15, MAWILE_INTIMIDATE + PV $0000001F ; ♀ Docile + Nickname "MAWILE" + Friendship 255 + + Pokemon MINUN + Holds MAGNET + Moves CHARM, SPARK, QUICK_ATTACK, ENCORE + Level 50 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,15,15,15,15, MINUN_MINUS + PV $000000D7 ; ♂ Modest + Nickname "MINUN" + Friendship 255 + + Pokemon SHIFTRY + Holds LEFTOVERS + Moves SUNNY_DAY, SOLARBEAM, SWAGGER, FAINT_ATTACK + Level 50 + PP_Ups 0,0,0,0 + EVs 170,0,0,170,170,0 + OT_ID 00000, 00000 + IVs 15,15,15,15,15,15, SHIFTRY_EARLY_BIRD + PV $000000D2 ; ♂ Timid + Nickname "SHIFTRY" + Friendship 255 diff --git a/battle-e/trainers/belford.asm b/battle-e/trainers/belford.asm new file mode 100644 index 0000000..badc125 --- /dev/null +++ b/battle-e/trainers/belford.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 100 + db COOLTRAINER_M + BT_Floor 5 + OT_Name "BELFORD" + OT_ID 00000, 00000 + + Introduction YOU,WILL,NOT,LIKE,MY,ATTACK + After_Win TOO,BAD,YOU,DON_T,LIKE,POISON + After_Loss WHAT,_A,POKEMON,TRAINER,I,SURRENDER + + Pokemon DUSCLOPS + Holds LEFTOVERS + Moves TOXIC, NIGHT_SHADE, CONFUSE_RAY, WILL_O_WISP + Level 100 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,20,31,20,20,20, DUSCLOPS_PRESSURE + PV $00000094 ; ♂ Careful + Nickname "DUSCLOPS" + Friendship 255 + + Pokemon CROBAT + dw BRIGHTPOWDER + Moves TOXIC, AIR_CUTTER, CONFUSE_RAY, SHADOW_BALL + Level 100 + PP_Ups 0,0,0,0 + EVs 252,252,6,0,0,0 + OT_ID 00000, 00000 + IVs 31,31,20,20,20,20, CROBAT_INNER_FOCUS + PV $0000001C ; ♀ Adamant + Nickname "CROBAT" + Friendship 255 + + Pokemon REGISTEEL + dw CHESTO_BERRY + Moves TOXIC, REST, EARTHQUAKE, IRON_DEFENSE + Level 100 + PP_Ups 0,0,0,0 + EVs 252,6,0,0,0,252 + OT_ID 00000, 00000 + IVs 31,20,20,20,20,31, REGISTEEL_CLEAR_BODY + PV $0000001E ; ⚲ Bold + Nickname "REGISTEEL" + Friendship 255 diff --git a/battle-e/trainers/bryce.asm b/battle-e/trainers/bryce.asm new file mode 100644 index 0000000..da7b87e --- /dev/null +++ b/battle-e/trainers/bryce.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db FISHERMAN + BT_Floor MOSSDEEP + OT_Name "BRYCE" + OT_ID 00000, 00000 + + Introduction FISHING,IS,JUST,SO,FANTASTIC,_EX + After_Win I_AM,DONE,_AND,I_AM,GOING,FISHING + After_Loss OKAY,LET_S,GO,FISHING,TOGETHER,_EX + + Pokemon LANTURN + Holds CHERI_BERRY + Moves CONFUSE_RAY, THUNDER_WAVE, SURF, THUNDERBOLT + Level 82 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,31,15,15,31, LANTURN_VOLT_ABSORB + PV $0000000F ; ♀ Modest + Nickname "LANTURN" + Friendship 255 + + Pokemon SHARPEDO + dw MYSTIC_WATER + Moves CRUNCH, SURF, ICE_BEAM, DOUBLE_EDGE + Level 84 + PP_Ups 0,0,0,0 + EVs 0,255,0,0,255,0 + OT_ID 00000, 00000 + IVs 15,31,15,15,31,15, SHARPEDO_ROUGH_SKIN + PV $000000D9 ; ♂ Quiet + Nickname "SHARPEDO" + Friendship 255 + + Pokemon WHISCASH + Holds LEFTOVERS + Moves SURF, EARTHQUAKE, FISSURE, ROCK_TOMB + Level 85 + PP_Ups 0,0,0,0 + EVs 0,255,0,0,255,0 + OT_ID 00000, 00000 + IVs 15,15,31,15,15,31, WHISCASH_OBLIVIOUS + PV $000000D4 ; ♂ Serious + Nickname "WHISCASH" + Friendship 255 diff --git a/battle-e/trainers/candice.asm b/battle-e/trainers/candice.asm new file mode 100644 index 0000000..3437af8 --- /dev/null +++ b/battle-e/trainers/candice.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db PKMN_BREEDER_F + BT_Floor MOSSDEEP + OT_Name "CANDICE" + OT_ID 00000, 00000 + + Introduction WE,ARE,READY,FOR,MORE,_GROWTH + After_Win WE,WILL,TRY,MORE,FOR,_GROWTH + After_Loss SORRY,PARTNER,I,WILL,_HARDEN,MYSELF + + Pokemon MAGIKARP + Holds SILK_SCARF + Moves TACKLE, SPLASH, FLAIL, 0 + Level 50 + PP_Ups 0,0,0,0 + EVs 0,0,0,0,0,0 + OT_ID 00000, 00000 + IVs 31,14,15,14,14,30, MAGIKARP_SWIFT_SWIM + PV $00000085 ; ♂ Impish + Nickname "MAGIKARP" + Friendship 255 + + Pokemon MUDKIP + dw MYSTIC_WATER + Moves TACKLE, GROWL, MUD_SLAP, WATER_GUN + Level 51 + PP_Ups 0,0,0,0 + EVs 0,0,0,0,0,0 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, MUDKIP_TORRENT + PV $00000083 ; ♂ Docile + Nickname "MUDKIP" + Friendship 255 + + Pokemon DUSKULL + Holds SPELL_TAG + Moves LEER, NIGHT_SHADE, DISABLE, FORESIGHT + Level 52 + PP_Ups 0,0,0,0 + EVs 0,0,0,0,0,0 + OT_ID 00000, 00000 + IVs 31,15,31,15,15,15, DUSKULL_LEVITATE + PV $0000001B ; ♀ Brave + Nickname "DUSKULL" + Friendship 255 diff --git a/battle-e/trainers/celina.asm b/battle-e/trainers/celina.asm new file mode 100644 index 0000000..579effa --- /dev/null +++ b/battle-e/trainers/celina.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + Class HEX_MANIAC + BT_Floor MOSSDEEP + OT_Name "CELINA" + OT_ID 00000, 00000 + + Introduction GHOST,_ELIP,WHAT,COULD,THAT,BE + After_Win GHOST,_ELIP,THEY,NEVER,GET,DEFEATED + After_Loss GHOST,_ELIP,THEY,GOT,DEFEATED,_QU + + Pokemon DUSCLOPS + Holds SPELL_TAG + Moves WILL_O_WISP, SHADOW_BALL, ICE_BEAM, EARTHQUAKE + Level 60 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, DUSCLOPS_PRESSURE + PV $00000095 ; ♂ Quirky + Nickname "DUSCLOPS" + Friendship 255 + + Pokemon SABLEYE + Holds SPELL_TAG + Moves FAINT_ATTACK, SHADOW_BALL, TOXIC, PROTECT + Level 62 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, SABLEYE_KEEN_EYE + PV $00000096 ; ♂ Hardy + Nickname "SABLEYE" + Friendship 255 + + Pokemon SHEDINJA + Holds SPELL_TAG + Moves PROTECT, SHADOW_BALL, CONFUSE_RAY, DOUBLE_TEAM + Level 64 + PP_Ups 0,0,0,0 + EVs 0,255,0,255,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, SHEDINJA_WONDER_GUARD + PV $00000080 ; ⚲ Adamant + Nickname "SHEDINJA" + Friendship 255 diff --git a/battle-e/trainers/clayton.asm b/battle-e/trainers/clayton.asm new file mode 100644 index 0000000..418b0a4 --- /dev/null +++ b/battle-e/trainers/clayton.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 50 + db PKMN_RANGER_M + BT_Floor 5 + OT_Name "CLAYTON" + OT_ID 00000, 00000 + + Introduction HEHE,MY,BATTLE,ISN_T,THAT,SHAKY + After_Win HEHE,_ELIP,_EARTHQUAKE,IS,VERY,SHAKY + After_Loss UH_OH,MY,ATTACK,WAS,A_LITTLE,SHAKY + + Pokemon FLYGON + Holds SOFT_SAND + Moves EARTHQUAKE, DRAGON_CLAW, GIGA_DRAIN, FLAMETHROWER + Level 50 + PP_Ups 0,0,0,0 + EVs 0,252,0,252,6,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,15,15, FLYGON_LEVITATE + PV $00000090 ; ♂ Rash + Nickname "FLYGON" + Friendship 255 + + Pokemon RHYDON + Holds QUICK_CLAW + Moves EARTHQUAKE, THUNDERBOLT, MEGAHORN, ROCK_TOMB + Level 50 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, RHYDON_ROCK_HEAD + PV $0000001B ; ♀ Brave + Nickname "RHYDON" + Friendship 255 + + Pokemon SWAMPERT + Holds LEFTOVERS + Moves EARTHQUAKE, SURF, PROTECT, IRON_TAIL + Level 50 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, SWAMPERT_TORRENT + PV $0000007E ; ♂ Lonely + Nickname "SWAMPERT" + Friendship 255 diff --git a/battle-e/trainers/devin.asm b/battle-e/trainers/devin.asm new file mode 100644 index 0000000..77c0f00 --- /dev/null +++ b/battle-e/trainers/devin.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 50 + db COOLTRAINER_M + BT_Floor 19 + OT_Name "DEVIN" + OT_ID 00000, 00000 + + Introduction POWER,BATTLE,IS,ALWAYS,TRENDY,_EX + After_Win SEE,_QU,POWER,BATTLE,IS,TRENDY + After_Loss IS,_ELIP,POWER,BATTLE,TRENDY,_QU + + Pokemon HERACROSS + Holds SCOPE_LENS + Moves MEGAHORN, RETURN, BULK_UP, BRICK_BREAK + Level 50 + PP_Ups 0,0,0,0 + EVs 0,252,6,252,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, HERACROSS_SWARM + PV $000000E4 ; ♂ Adamant + Nickname "HERACROSS" + Friendship 255 + + Pokemon SALAMENCE + Holds LUM_BERRY + Moves AERIAL_ACE, EARTHQUAKE, RETURN, DRAGON_DANCE + Level 50 + PP_Ups 0,0,0,0 + EVs 6,252,0,252,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, SALAMENCE_INTIMIDATE + PV $000000E4 ; ♂ Adamant + Nickname "SALAMENCE" + Friendship 255 + + Pokemon METAGROSS + Holds QUICK_CLAW + Moves METEOR_MASH, SHADOW_BALL, EARTHQUAKE, SLUDGE_BOMB + Level 50 + PP_Ups 0,0,0,0 + EVs 0,252,0,252,0,6 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, METAGROSS_CLEAR_BODY + PV $000000E4 ; ⚲ Adamant + Nickname "METAGROSS" + Friendship 255 diff --git a/battle-e/trainers/dominic.asm b/battle-e/trainers/dominic.asm new file mode 100644 index 0000000..1a011af --- /dev/null +++ b/battle-e/trainers/dominic.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db GUITARIST + BT_Floor MOSSDEEP + OT_Name "DOMINIC" + OT_ID 00000, 00000 + + Introduction LISTEN,TO,MY,SONG,_AND,SPIRIT + After_Win WOW,_EX_EX,ARE,YOU,LISTENING,_QU + After_Loss ARRGH,I,DON_T,LIKE,SAD,SONGS + + Pokemon SKARMORY + Holds SHARP_BEAK + Moves SPIKES, ROAR, DRILL_PECK, STEEL_WING + Level 72 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,0,255 + OT_ID 00000, 00000 + IVs 15,31,15,15,15,31, SKARMORY_STURDY + PV $000000DF ; ♂ Careful + Nickname "SKARMORY" + Friendship 255 + + Pokemon WAILORD + dw CHESTO_BERRY + Moves ROAR, SURF, SLEEP_TALK, REST + Level 70 + PP_Ups 0,0,0,0 + EVs 0,0,255,0,0,255 + OT_ID 00000, 00000 + IVs 15,15,31,15,15,31, WAILORD_WATER_VEIL + PV $00000014 ; ♀ Calm + Nickname "WAILORD" + Friendship 255 + + Pokemon EXPLOUD + Holds SILK_SCARF + Moves ROAR, HYPER_VOICE, ICE_BEAM, FLAMETHROWER + Level 74 + PP_Ups 0,0,0,0 + EVs 255,55,100,0,0,100 + OT_ID 00000, 00000 + IVs 15,15,31,15,15,31, EXPLOUD_SOUNDPROOF + PV $000000E8 ; ♂ Relaxed + Nickname "EXPLOUD" + Friendship 255 diff --git a/battle-e/trainers/dustin.asm b/battle-e/trainers/dustin.asm new file mode 100644 index 0000000..90d858d --- /dev/null +++ b/battle-e/trainers/dustin.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db TRIATHLETE_M_SWIM + BT_Floor MOSSDEEP + OT_Name "DUSTIN" + OT_ID 00000, 00000 + + Introduction RUN,_EX,I,NEVER,_STOP,_EX + After_Win ALL_RIGHT,_EX,_STOP,_EX,I_AM,DONE + After_Loss NON_STOP,_EX,I,WILL,RUN,MORE + + Pokemon DODRIO + Holds QUICK_CLAW + Moves DOUBLE_TEAM, TRI_ATTACK, STEEL_WING, AERIAL_ACE + Level 70 + PP_Ups 0,0,0,0 + EVs 252,6,0,252,0,0 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, DODRIO_EARLY_BIRD + PV $0000008A ; ♂ Jolly + Nickname "DODRIO" + Friendship 255 + + Pokemon MANECTRIC + Holds QUICK_CLAW + Moves THUNDER, CRUNCH, IRON_TAIL, CHARGE + Level 72 + PP_Ups 0,0,0,0 + EVs 6,0,0,252,252,0 + OT_ID 00000, 00000 + IVs 15,15,15,15,15,15, MANECTRIC_STATIC + PV $0000000E ; ♀ Naive + Nickname "MANECTRIC" + Friendship 255 + + Pokemon LINOONE + Holds QUICK_CLAW + Moves SURF, THUNDERBOLT, ICE_BEAM, HYPER_BEAM + Level 74 + PP_Ups 0,0,0,0 + EVs 6,252,0,0,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, LINOONE_PICKUP + PV $0000008B ; ♂ Naive + Nickname "LINOONE" + Friendship 255 diff --git a/battle-e/trainers/ellie.asm b/battle-e/trainers/ellie.asm new file mode 100644 index 0000000..8d79d03 --- /dev/null +++ b/battle-e/trainers/ellie.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + Class BEAUTY + BT_Floor MOSSDEEP + OT_Name "ELLIE" + OT_ID 00000, 00000 + + Introduction I_AM,ON,A_LITTLE,DIET,_AND,HUNGRY + After_Win THIS,DIET,IS,REALLY,WORKING,ME + After_Loss SHOULD,I,EAT,LESS,_OR,MORE + + Pokemon CASTFORM + Holds HEART_SCALE + Moves RAIN_DANCE, WEATHER_BALL, THUNDER, ATTRACT + Level 75 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, CASTFORM_FORECAST + PV $0000000F ; ♀ Modest + Nickname "CASTFORM" + Friendship 255 + + Pokemon KOFFING + Holds PEARL + Moves SLUDGE_BOMB, THUNDER, EXPLOSION, FLAMETHROWER + Level 80 + PP_Ups 0,0,0,0 + EVs 252,6,0,0,0,252 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, KOFFING_LEVITATE + PV $0000008F ; ♂ Bashful + Nickname "KOFFING" + Friendship 255 + + Pokemon CHIMECHO + Holds STARDUST + Moves PSYCHIC, CALM_MIND, LIGHT_SCREEN, YAWN + Level 85 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, CHIMECHO_LEVITATE + PV $0000000F ; ♀ Modest + Nickname "CHIMECHO" + Friendship 255 diff --git a/battle-e/trainers/fay.asm b/battle-e/trainers/fay.asm new file mode 100644 index 0000000..0e3e4b9 --- /dev/null +++ b/battle-e/trainers/fay.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 100 + Class BEAUTY + BT_Floor 19 + OT_Name "FAY" + OT_ID 00000, 00000 + + Introduction I,CAN_T,WAIT,TO,BATTLE,_EX_EX + After_Win _ICE_BEAM,WAS,TOO,COLD,FOR,YOU + After_Loss _ICY_WIND,DIDN_T,BEAT,YOUR,HOT,SPIRIT + + Pokemon ALTARIA + Holds SHELL_BELL + Moves ICE_BEAM, FLAMETHROWER, EARTHQUAKE, AERIAL_ACE + Level 100 + PP_Ups 0,0,0,0 + EVs 0,252,0,6,252,0 + OT_ID 00000, 00000 + IVs 20,31,20,20,31,20, ALTARIA_NATURAL_CURE + PV $000000E7 ; ♂ Docile + Nickname "ALTARIA" + Friendship 255 + + Pokemon STARMIE + Holds LUM_BERRY + Moves ICE_BEAM, PSYCHIC, SURF, RECOVER + Level 100 + PP_Ups 0,0,0,0 + EVs 0,0,0,6,252,252 + OT_ID 00000, 00000 + IVs 31,20,20,20,31,20, STARMIE_NATURAL_CURE + PV $0000000F ; ⚲ Modest + Nickname "STARMIE" + Friendship 255 + + Pokemon REGICE + Holds LEFTOVERS + Moves ICE_BEAM, THUNDERBOLT, PROTECT, EXPLOSION + Level 100 + PP_Ups 0,0,0,0 + EVs 6,0,252,0,252,0 + OT_ID 00000, 00000 + IVs 20,20,31,20,31,20, REGICE_CLEAR_BODY + PV $00000020 ; ⚲ Relaxed + Nickname "REGICE" + Friendship 255 diff --git a/battle-e/trainers/fuego.asm b/battle-e/trainers/fuego.asm new file mode 100644 index 0000000..bdd41a1 --- /dev/null +++ b/battle-e/trainers/fuego.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 100 + db COOLTRAINER_M + BT_Floor 5 + OT_Name "FUEGO" + OT_ID 00000, 00000 + + Introduction I,HAVE,_A,FEELING,YOU,CAN_T_WIN + After_Win COLLECT,ICE,STEEL,_AND,ROCK,_EX + After_Loss ICE,STEEL,_AND,ROCK,DON_T,WORK + + Pokemon GLALIE + Holds SCOPE_LENS + Moves SHEER_COLD, ICE_BEAM, EARTHQUAKE, CRUNCH + Level 100 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,20,31,20,20,20, GLALIE_INNER_FOCUS + PV $00000096 ; ♂ Hardy + Nickname "GLALIE" + Friendship 255 + + Pokemon SKARMORY + Holds LEFTOVERS + Moves STEEL_WING, DRILL_PECK, TOXIC, PROTECT + Level 100 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,0,252 + OT_ID 00000, 00000 + IVs 31,20,20,20,20,31, SKARMORY_KEEN_EYE + PV $00000017 ; ♀ Careful + Nickname "SKARMORY" + Friendship 255 + + Pokemon REGIROCK + Holds LUM_BERRY + Moves EXPLOSION, EARTHQUAKE, BRICK_BREAK, FACADE + Level 100 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,20,20,20,20, MASQUERAIN_INTIMIDATE + PV $0000001B ; ⚲ Brave + Nickname "REGIROCK" + Friendship 255 diff --git a/battle-e/trainers/goro.asm b/battle-e/trainers/goro.asm new file mode 100644 index 0000000..e2f4f0e --- /dev/null +++ b/battle-e/trainers/goro.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + Class NINJA_BOY + BT_Floor MOSSDEEP + OT_Name "GORO" + OT_ID 00000, 00000 + + Introduction COME_ON,_EX_EX,COME_ON,_EX_EX,SPEED_BOOST,_EX_EX + After_Win MORE,_EX_EX,MORE,_EX_EX,SPEED_BOOST,_EX_EX + After_Loss ARRGH,_ELIP,GIVE_ME,MORE,SPEED_BOOST,_ELIP_EX + + Pokemon ELECTRODE + Holds KING_S_ROCK + Moves THUNDERBOLT, LIGHT_SCREEN, MIRROR_COAT, EXPLOSION + Level 50 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, ELECTRODE_STATIC + PV $0000000E ; ⚲ Naive + Nickname "ELECTRODE" + Friendship 255 + + Pokemon NINJASK + Holds KING_S_ROCK + Moves SILVER_WIND, AERIAL_ACE, FAINT_ATTACK, SHADOW_BALL + Level 52 + PP_Ups 0,0,0,0 + EVs 0,255,0,255,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, NINJASK_SPEED_BOOST + PV $000000D5 ; ♂ Jolly + Nickname "NINJASK" + Friendship 255 + + Pokemon CROBAT + Holds KING_S_ROCK + Moves CONFUSE_RAY, SLUDGE_BOMB, AIR_CUTTER, DOUBLE_TEAM + Level 54 + PP_Ups 0,0,0,0 + EVs 0,255,0,255,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, CROBAT_INNER_FOCUS + PV $0000000D ; ♀ Jolly + Nickname "CROBAT" + Friendship 255 diff --git a/battle-e/trainers/griffin.asm b/battle-e/trainers/griffin.asm new file mode 100644 index 0000000..6024039 --- /dev/null +++ b/battle-e/trainers/griffin.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + Class PSYCHIC_M + BT_Floor MOSSDEEP + OT_Name "GRIFFIN" + OT_ID 00000, 00000 + + Introduction CAN,YOU,SENSE,THE,PRESSURE,_QU + After_Win YOUR,PRESSURE,IS,WEAK,_AND,LACKING + After_Loss ARRGH,_EX,WHAT,FANTASTIC,PRESSURE,_EX_EX + + Pokemon BANETTE + Holds LEPPA_BERRY + Moves SPITE, PROTECT, DOUBLE_TEAM, WILL_O_WISP + Level 52 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,15,31,15,15,15, BANETTE_INSOMNIA + PV $00000085 ; ♂ Impish + Nickname "BANETTE" + Friendship 255 + + Pokemon ABSOL + dw BRIGHTPOWDER + Moves PROTECT, DOUBLE_TEAM, REST, SLASH + Level 54 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,15,31,15,15,15, ABSOL_PRESSURE + PV $0000001C ; ♀ Adamant + Nickname "ABSOL" + Friendship 255 + + Pokemon DUSCLOPS + dw CHESTO_BERRY + Moves PROTECT, REST, EARTHQUAKE, SHADOW_BALL + Level 56 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, DUSCLOPS_PRESSURE + PV $0000001C ; ♀ Adamant + Nickname "DUSCLOPS" + Friendship 255 diff --git a/battle-e/trainers/hayden.asm b/battle-e/trainers/hayden.asm new file mode 100644 index 0000000..33c0d91 --- /dev/null +++ b/battle-e/trainers/hayden.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db GUITARIST + BT_Floor MOSSDEEP + OT_Name "HAYDEN" + OT_ID 00000, 00000 + + Introduction YEAH,_EX,COOL,_EXPLOSION,SONGS,_EX_EX + After_Win YEAH,_EX_EX,INCREDIBLE,_EXPLOSION,SONGS,_EX_EX + After_Loss NO,_EX,MY,SONGS,AREN_T,POPULAR + + Pokemon ELECTRODE + Holds MAGNET + Moves EXPLOSION, MIRROR_COAT, LIGHT_SCREEN, SWIFT + Level 80 + PP_Ups 0,0,0,0 + EVs 252,6,252,0,0,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,15, ELECTRODE_STATIC + PV $00000080 ; ⚲ Adamant + Nickname "ELECTRODE" + Friendship 255 + + Pokemon SOLROCK + Holds HARD_STONE + Moves EXPLOSION, COSMIC_POWER, ROCK_SLIDE, PSYCHIC + Level 82 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,0,252 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, SOLROCK_LEVITATE + PV $0000007F ; ⚲ Brave + Nickname "SOLROCK" + Friendship 255 + + Pokemon SHIFTRY + Holds FOCUS_BAND + Moves EXPLOSION, FAINT_ATTACK, PROTECT, TOXIC + Level 84 + PP_Ups 0,0,0,0 + EVs 252,0,0,252,6,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, SHIFTRY_EARLY_BIRD + PV $00000080 ; ♂ Adamant + Nickname "SHIFTRY" + Friendship 255 diff --git a/battle-e/trainers/heather.asm b/battle-e/trainers/heather.asm new file mode 100644 index 0000000..c60f554 --- /dev/null +++ b/battle-e/trainers/heather.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db PKMN_RANGER_F + BT_Floor MOSSDEEP + OT_Name "HEATHER" + OT_ID 00000, 00000 + + Introduction YOUR,ATTACK,GOES,BACK,TO,YOU + After_Win _COUNTER,ATTACK,ARE,YOU,OK_,BLANK + After_Loss OH,_EX,MY,_COUNTER,DIDN_T,WORK + + Pokemon MACHAMP + Holds SHELL_BELL + Moves COUNTER, CROSS_CHOP, ROCK_SLIDE, EARTHQUAKE + Level 76 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,0,252 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, MACHAMP_GUTS + PV $00000080 ; ♂ Adamant + Nickname "MACHAMP" + Friendship 255 + + dw TENTACRUEL + Holds POISON_BARB + Moves MIRROR_COAT, SURF, SLUDGE_BOMB, ICE_BEAM + Level 78 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,15,31,15,15,15, TENTACRUEL_LIQUID_OOZE + PV $0000000F ; ♀ Modest + Nickname "TENTACRUEL" + Friendship 255 + + Pokemon WOBBUFFET + Holds LUM_BERRY + Moves COUNTER, MIRROR_COAT, ENCORE, DESTINY_BOND + Level 80 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,0,252 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, WOBBUFFET_SHADOW_TAG + PV $00000085 ; ♂ Impish + Nickname "WOBBUFFET" + Friendship 255 diff --git a/battle-e/trainers/hillary.asm b/battle-e/trainers/hillary.asm new file mode 100644 index 0000000..1d06dd3 --- /dev/null +++ b/battle-e/trainers/hillary.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + Class LADY + BT_Floor MOSSDEEP + OT_Name "HILLARY" + OT_ID 00000, 00000 + + Introduction OH_,IS,MY,POKEMON,OVERWHELMING,_QU + After_Win _STOP,GOING,EASY,ON,ME,_EX_EX + After_Loss COULDN_T,YOU,GO_EASY,ON,ME,_QU + + Pokemon XATU + dw TWISTEDSPOON + Moves PSYCHIC, SUNNY_DAY, CONFUSE_RAY, SOLARBEAM + Level 54 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 0,15,15,31,31,15, XATU_SYNCHRONIZE + PV $000000D7 ; ♂ Modest + Nickname "XATU" + Friendship 255 + + Pokemon WOBBUFFET + dw SITRUS_BERRY + Moves COUNTER, MIRROR_COAT, SAFEGUARD, DESTINY_BOND + Level 57 + PP_Ups 0,0,0,0 + EVs 0,0,255,0,0,255 + OT_ID 00000, 00000 + IVs 15,15,31,15,15,31, WOBBUFFET_SHADOW_TAG + PV $00000012 ; ♀ Bashful + Nickname "WOBBUFFET" + Friendship 255 + + Pokemon HOUNDOOM + Holds SALAC_BERRY + Moves FLAMETHROWER, CRUNCH, TORMENT, TAUNT + Level 60 + PP_Ups 0,0,0,0 + EVs 0,0,255,0,255,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, HOUNDOOM_FLASH_FIRE + PV $000000D7 ; ♂ Modest + Nickname "HOUNDOOM" + Friendship 255 diff --git a/battle-e/trainers/hugo.asm b/battle-e/trainers/hugo.asm new file mode 100644 index 0000000..9017095 --- /dev/null +++ b/battle-e/trainers/hugo.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db HIKER + BT_Floor MOSSDEEP + OT_Name "HUGO" + OT_ID 00000, 00000 + + Introduction START,_A,DIET,_QU,NO,WAY + After_Win HAH,_ELIP,I_AM,NOW,HUNGRY,_ELIP + After_Loss IT_S,SUPER,HARD,TO,DIET,_EX_EX + + Pokemon WALREIN + dw SITRUS_BERRY + Moves BLIZZARD, REST, BODY_SLAM, SURF + Level 66 + PP_Ups 0,0,0,0 + EVs 252,0,0,0,252,6 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, WALREIN_THICK_FAT + PV $0000008E ; ♂ Quiet + Nickname "WALREIN" + Friendship 255 + + Pokemon HARIYAMA + Holds FOCUS_BAND + Moves WHIRLWIND, KNOCK_OFF, BELLY_DRUM, CROSS_CHOP + Level 68 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, HARIYAMA_THICK_FAT + PV $0000007F ; ♂ Brave + Nickname "HARIYAMA" + Friendship 255 + + Pokemon GRUMPIG + dw SITRUS_BERRY + Moves PSYCHIC, IRON_TAIL, CONFUSE_RAY, PROTECT + Level 70 + PP_Ups 0,0,0,0 + EVs 0,0,0,6,252,252 + OT_ID 00000, 00000 + IVs 15,15,15,15,31,31, GRUMPIG_THICK_FAT + PV $00000018 ; ♀ Quirky + Nickname "GRUMPIG" + Friendship 255 diff --git a/battle-e/trainers/irazu.asm b/battle-e/trainers/irazu.asm new file mode 100644 index 0000000..2804cc8 --- /dev/null +++ b/battle-e/trainers/irazu.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 100 + db PKMN_RANGER_M + BT_Floor 12 + OT_Name "IRAZU" + OT_ID 00000, 00000 + + Introduction MY,POKEMON,THANKS,ME,FOR,CARE + After_Win POKEMON,DON_T,TRUST,TRAINER,WITHOUT,CARE + After_Loss IF_I_LOSE,MY,_FRUSTRATION,LEVEL,GOES,UP + + Pokemon KINGDRA + dw CHESTO_BERRY + Moves RETURN, DRAGON_DANCE, REST, DOUBLE_TEAM + Level 100 + PP_Ups 3,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,20,20,20,20, KINGDRA_SWIFT_SWIM + PV $0000001C ; ♀ Adamant + Nickname "KINGDRA" + Friendship 255 + + Pokemon HARIYAMA + Holds SHELL_BELL + Moves RETURN, BELLY_DRUM, REVERSAL, EARTHQUAKE + Level 100 + PP_Ups 3,0,0,0 + EVs 252,6,0,0,0,252 + OT_ID 00000, 00000 + IVs 31,20,20,20,20,31, HARIYAMA_THICK_FAT + PV $00000080 ; ♂ Adamant + Nickname "HARIYAMA" + Friendship 255 + + Pokemon REGISTEEL + Holds LEFTOVERS + Moves RETURN, CURSE, REST, EARTHQUAKE + Level 100 + PP_Ups 3,0,0,0 + EVs 252,6,0,0,0,252 + OT_ID 00000, 00000 + IVs 31,20,20,20,20,31, REGISTEEL_CLEAR_BODY + PV $0000001C ; ⚲ Adamant + Nickname "REGISTEEL" + Friendship 255 diff --git a/battle-e/trainers/irvin.asm b/battle-e/trainers/irvin.asm new file mode 100644 index 0000000..c838453 --- /dev/null +++ b/battle-e/trainers/irvin.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db BUG_MANIAC + BT_Floor MOSSDEEP + OT_Name "IRVIN" + OT_ID 00000, 00000 + + Introduction MMM,_ELIP_EX,I,TRUST,BUG,POKEMON + After_Win ISN_T,MY,BUG,POKEMON,COOL,_QU + After_Loss BUG,POKEMON,ARE,ALWAYS,THE,BEST + + Pokemon BEAUTIFLY + Holds POISON_BARB + Moves SILVER_WIND, AERIAL_ACE, MORNING_SUN, STUN_SPORE + Level 90 + PP_Ups 0,0,0,0 + EVs 0,255,0,255,0,0 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, BEAUTIFLY_SWARM + PV $0000001C ; ♀ Adamant + Nickname "BEAUTIFLY" + Friendship 255 + + Pokemon DUSTOX + dw PERSIM_BERRY + Moves PSYCHIC, SHADOW_BALL, MOONLIGHT, ATTRACT + Level 92 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,31,15,15,31, DUSTOX_SHIELD_DUST + PV $000000E1 ; ♂ Hardy + Nickname "DUSTOX" + Friendship 255 + + dw MASQUERAIN + Holds LAX_INCENSE + Moves SILVER_WIND, SOLARBEAM, ICE_BEAM, STUN_SPORE + Level 91 + PP_Ups 0,0,0,0 + EVs 0,255,0,0,255,0 + OT_ID 00000, 00000 + IVs 15,15,31,15,15,31, MASQUERAIN_INTIMIDATE + PV $00000019 ; ♀ Hardy + Nickname "MASQUERAIN" + Friendship 255 diff --git a/battle-e/trainers/jeffrey.asm b/battle-e/trainers/jeffrey.asm new file mode 100644 index 0000000..ee1c946 --- /dev/null +++ b/battle-e/trainers/jeffrey.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db YOUNGSTER + BT_Floor MOSSDEEP + OT_Name "JEFFREY" + OT_ID 00000, 00000 + + Introduction I,WILL,SHOW,YOU,MY,SECRET + After_Win YEAH,MY,SECRET,_ELIP,IS,SECRET + After_Loss GO_EASY,ON,ME,_ELIP,PLEASE,_EX + + Pokemon PINSIR + Holds KING_S_ROCK + Moves SWORDS_DANCE, GUILLOTINE, EARTHQUAKE, BRICK_BREAK + Level 60 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,0,252 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, PINSIR_HYPER_CUTTER + PV $00000080 ; ♂ Adamant + Nickname "PINSIR" + Friendship 255 + + Pokemon NINETALES + Holds CHARCOAL + Moves FLAMETHROWER, CONFUSE_RAY, IRON_TAIL, FIRE_SPIN + Level 62 + PP_Ups 0,0,0,0 + EVs 6,0,0,252,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, NINETALES_FLASH_FIRE + PV $0000000F ; ♀ Modest + Nickname "NINETALES" + Friendship 255 + + Pokemon BLASTOISE + dw MYSTIC_WATER + Moves SURF, BRICK_BREAK, EARTHQUAKE, ICE_BEAM + Level 64 + PP_Ups 0,0,0,0 + EVs 252,0,0,0,252,6 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, BLASTOISE_TORRENT + PV $00000083 ; ♂ Docile + Nickname "BLASTOISE" + Friendship 255 diff --git a/battle-e/trainers/judith.asm b/battle-e/trainers/judith.asm new file mode 100644 index 0000000..a999a4e --- /dev/null +++ b/battle-e/trainers/judith.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db PSYCHIC_F + BT_Floor MOSSDEEP + OT_Name "JUDITH" + OT_ID 00000, 00000 + + Introduction WELCOME,_ELIP_EX,I_AM,_A,_TRICK,_T_PSYCHIC + After_Win ISN_T,MY,_TRICK,SO,COOL,_QU + After_Loss _A,GOOD,_TRICK,IS,NEVER,EASY + + Pokemon ALAKAZAM + Holds CHOICE_BAND + Moves TRICK, DISABLE, PSYCHIC, REFLECT + Level 70 + PP_Ups 0,0,0,0 + EVs 6,0,0,252,252,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, ALAKAZAM_SYNCHRONIZE + PV $00000087 ; ♂ Timid + Nickname "ALAKAZAM" + Friendship 255 + + Pokemon KECLEON + Holds CHOICE_BAND + Moves TRICK, BLIZZARD, FIRE_BLAST, THUNDER + Level 72 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,6,0 + OT_ID 00000, 00000 + IVs 31,15,31,15,15,15, KECLEON_COLOR_CHANGE + PV $00000016 ; ⚲ Sassy + Nickname "KECLEON" + Friendship 255 + + Pokemon LINOONE + Holds CHOICE_BAND + Moves TRICK, RETURN, ROAR, ATTRACT + Level 74 + PP_Ups 0,0,0,0 + EVs 252,6,0,252,0,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, LINOONE_PICKUP + PV $00000085 ; ♂ Impish + Nickname "LINOONE" + Friendship 255 diff --git a/battle-e/trainers/justine.asm b/battle-e/trainers/justine.asm new file mode 100644 index 0000000..a090933 --- /dev/null +++ b/battle-e/trainers/justine.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db POKEFAN_F + BT_Floor MOSSDEEP + OT_Name "JUSTINE" + OT_ID 00000, 00000 + + Introduction HEY,_QU_EX,LOOK,AT,MY,POKEMON + After_Win OH_DEAR,WAS,IT,A_LITTLE,SURPRISE,_QU + After_Loss OH_DEAR,IT,WAS,A_LITTLE,SURPRISE,_QU_EX + + Pokemon PIKACHU + Holds LIGHT_BALL + Moves QUICK_ATTACK, DOUBLE_TEAM, LIGHT_SCREEN, THUNDERBOLT + Level 60 + PP_Ups 0,0,0,0 + EVs 6,0,0,252,252,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, PIKACHU_STATIC + PV $0000000F ; ♀ Modest + Nickname "PIKACHU" + Friendship 255 + + Pokemon GOLEM + dw BRIGHTPOWDER + Moves EXPLOSION, EARTHQUAKE, ROCK_SLIDE, FOCUS_PUNCH + Level 62 + PP_Ups 0,0,0,0 + EVs 252,6,0,0,0,252 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, GOLEM_STURDY + PV $0000001B ; ♀ Brave + Nickname "GOLEM" + Friendship 255 + + Pokemon GENGAR + Holds LEFTOVERS + Moves CONFUSE_RAY, SHADOW_BALL, SPITE, PSYCHIC + Level 64 + PP_Ups 0,0,0,0 + EVs 252,6,252,0,0,0 + OT_ID 00000, 00000 + IVs 31,15,31,15,15,15, GENGAR_LEVITATE + PV $00000087 ; ♂ Timid + Nickname "GENGAR" + Friendship 255 diff --git a/battle-e/trainers/kendall.asm b/battle-e/trainers/kendall.asm new file mode 100644 index 0000000..06cc2df --- /dev/null +++ b/battle-e/trainers/kendall.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + Class POKEFAN_M + BT_Floor MOSSDEEP + OT_Name "KENDALL" + OT_ID 00000, 00000 + + Introduction _FLASH,_EX_EX,I,LIKE,IT,_EX_EX + After_Win CUTE,_EX,POKEMON,_EX,_FLASH,_EX_EX + After_Loss I,CAN_T_WIN,WITH,ONLY,_FLASH,_EX_EX + + Pokemon PLUSLE + Holds MAGNET + Moves SPARK, ATTRACT, SUBSTITUTE, FLASH + Level 90 + PP_Ups 0,0,0,0 + EVs 252,0,0,6,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, PLUSLE_PLUS + PV $0000008C ; ♂ Modest + Nickname "PLUSLE" + Friendship 255 + + Pokemon MINUN + Holds MAGNET + Moves THUNDER_WAVE, SHOCK_WAVE, FAKE_TEARS, FLASH + Level 92 + PP_Ups 0,0,0,0 + EVs 252,0,0,252,6,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, MINUN_MINUS + PV $0000000F ; ♀ Modest + Nickname "MINUN" + Friendship 255 + + Pokemon SNORUNT + dw NEVERMELTICE + Moves BLOCK, ICY_WIND, PROTECT, FLASH + Level 94 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, SNORUNT_INNER_FOCUS + PV $0000000F ; ♀ Modest + Nickname "SNORUNT" + Friendship 255 diff --git a/battle-e/trainers/logan.asm b/battle-e/trainers/logan.asm new file mode 100644 index 0000000..a556c2e --- /dev/null +++ b/battle-e/trainers/logan.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db RUIN_MANIAC + BT_Floor MOSSDEEP + OT_Name "LOGAN" + OT_ID 00000, 00000 + + Introduction BEGINNING,_QU,END,_QU_EX,I_AM,CONFUSED + After_Win _RELICANTH,_EX,_WAILORD,_QU_EX,CORRECT,_QU_EX + After_Loss _WAILORD,_QU,_RELICANTH,_QU_EX,OPPOSITE,_QU_EX + + Pokemon WAILORD + dw MYSTIC_WATER + Moves SURF, FISSURE, EARTHQUAKE, ICE_BEAM + Level 58 + PP_Ups 0,0,0,0 + EVs 252,6,0,0,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, WAILORD_OBLIVIOUS + PV $00000011 ; ♀ Quiet + Nickname "WAILORD" + Friendship 255 + + Pokemon ARMALDO + Holds SCOPE_LENS + Moves ROCK_SLIDE, SLASH, EARTHQUAKE, AERIAL_ACE + Level 60 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, ARMALDO_BATTLE_ARMOR + PV $00000080 ; ♂ Adamant + Nickname "ARMALDO" + Friendship 255 + + Pokemon RELICANTH + dw CHESTO_BERRY + Moves DOUBLE_EDGE, REST, DIVE, AMNESIA + Level 62 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, RELICANTH_ROCK_HEAD + PV $00000076 ; ♂ Bashful + Nickname "RELICANTH" + Friendship 255 diff --git a/battle-e/trainers/macros.asm b/battle-e/trainers/macros.asm new file mode 100644 index 0000000..9b389fa --- /dev/null +++ b/battle-e/trainers/macros.asm @@ -0,0 +1,73 @@ +INCLUDE "../../constants/abilities.asm" +INCLUDE "../../constants/easychat.asm" +INCLUDE "../../constants/items.asm" +INCLUDE "../../constants/moves.asm" +INCLUDE "../../constants/pokemon.asm" +INCLUDE "../../constants/trainerclasses.asm" + +MOSSDEEP EQU 0 + +BT_Level: MACRO + Section "battle",ROM0[$100] + db \1 + ENDM +Class: MACRO + db (\1) + ENDM +BT_Floor: MACRO + dw \1 + ENDM +OT_Name: MACRO + db \1 + db $FF + REPT 7 - STRLEN(\1) + db 0 + ENDR + ENDM +Introduction: MACRO + dw \1, \2, \3, \4, \5, \6 + ENDM +After_Win: MACRO + dw \1, \2, \3, \4, \5, \6 + ENDM +After_Loss: MACRO + dw \1, \2, \3, \4, \5, \6 + ENDM +Pokemon: MACRO + dw \1 + ENDM +Holds: MACRO + dw (\1) + ENDM +Moves: MACRO + dw \1, \2, \3, \4 + ENDM +Level: MACRO + db \1 + ENDM +PP_Ups: MACRO + db (\1) + (\2 << 2) + (\3 << 4) + (\4 << 6) + ENDM +EVs: MACRO + db \1, \2, \3, \4, \5, \6 + ENDM +OT_ID: MACRO + dw \1, \2 + ENDM +IVs: MACRO + dw \1 + (\2 << 5) + (\3 << 10) + ((\4 & 1) << 15) + dw (\4 >> 1) + (\5 << 4) + (\6 << 9) + (\7 << 15) + ENDM +PV: MACRO + dw (\1 & $FFFF), (\1 >> 16) + ENDM +Nickname: MACRO + db \1 + db $FF + REPT 10 - STRLEN(\1) + db 0 + ENDR + ENDM +Friendship: MACRO + db \1 + ENDM \ No newline at end of file diff --git a/battle-e/trainers/maggie.asm b/battle-e/trainers/maggie.asm new file mode 100644 index 0000000..4251d54 --- /dev/null +++ b/battle-e/trainers/maggie.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db POKEFAN_F + BT_Floor MOSSDEEP + OT_Name "MAGGIE" + OT_ID 00000, 00000 + + Introduction LOOK,AT,MY,CUTE,POKEMON,_EX + After_Win MY,POKEMON,ARE,SO,CUTE,_EX + After_Loss YOU,BETTER,CARE,FOR,MY,POKEMON + + Pokemon WYNAUT + Holds LUM_BERRY + Moves COUNTER, MIRROR_COAT, SAFEGUARD, DESTINY_BOND + Level 80 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,15,31,15,15,15, WYNAUT_SHADOW_TAG + PV $00000083 ; ♂ Docile + Nickname "WYNAUT" + Friendship 255 + + Pokemon WHISMUR + Holds SILK_SCARF + Moves HYPER_VOICE, ATTRACT, PROTECT, ASTONISH + Level 82 + PP_Ups 0,0,0,0 + EVs 252,252,6,0,0,0 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, WHISMUR_SOUNDPROOF + PV $0000001F ; ♀ Docile + Nickname "WHISMUR" + Friendship 255 + + Pokemon PIKACHU + Holds LIGHT_BALL + Moves THUNDERBOLT, IRON_TAIL, DOUBLE_TEAM, ATTRACT + Level 84 + PP_Ups 0,0,0,0 + EVs 252,0,6,252,0,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, PIKACHU_STATIC + PV $00000083 ; ♂ Docile + Nickname "PIKACHU" + Friendship 255 diff --git a/battle-e/trainers/mandy.asm b/battle-e/trainers/mandy.asm new file mode 100644 index 0000000..77dab64 --- /dev/null +++ b/battle-e/trainers/mandy.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 50 + db SCHOOL_KID_F + BT_Floor 12 + OT_Name "MANDY" + OT_ID 00000, 00000 + + Introduction I,WAKE_UP,_AND,STUDY,VERY,HARD + After_Win STUDY,IS,BORING,IT_S,NAP,TIME + After_Loss _REST,_ELIP,NAP,_ELIP,SLEEP,NOW + + Pokemon ALTARIA + dw SITRUS_BERRY + Moves SING, DRAGON_CLAW, ICE_BEAM, FLAMETHROWER + Level 50 + PP_Ups 0,0,0,0 + EVs 0,0,6,252,252,0 + OT_ID 00000, 00000 + IVs 15,15,31,15,31,15, ALTARIA_NATURAL_CURE + PV $0000000F ; ♀ Modest + Nickname "ALTARIA" + Friendship 255 + + Pokemon BRELOOM + Holds LUM_BERRY + Moves SPORE, FOCUS_PUNCH, COUNTER, MACH_PUNCH + Level 50 + PP_Ups 0,0,0,0 + EVs 0,252,0,252,6,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, BRELOOM_EFFECT_SPORE + PV $000000E4 ; ♂ Adamant + Nickname "BRELOOM" + Friendship 255 + + Pokemon SLAKING + dw BRIGHTPOWDER + Moves YAWN, HYPER_BEAM, SHADOW_BALL, ICE_BEAM + Level 50 + PP_Ups 0,0,0,0 + EVs 6,252,0,0,0,252 + OT_ID 00000, 00000 + IVs 15,31,15,15,15,31, SLAKING_TRUANT + PV $000000DE ; ♂ Sassy + Nickname "SLAKING" + Friendship 255 diff --git a/battle-e/trainers/marcus.asm b/battle-e/trainers/marcus.asm new file mode 100644 index 0000000..da4e19f --- /dev/null +++ b/battle-e/trainers/marcus.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 50 + db EXPERT_M + BT_Floor 5 + OT_Name "MARCUS" + OT_ID 00000, 00000 + + Introduction MY,ATTACK,IS,GENIUS,_AND,INVINCIBLE + After_Win HOW,WAS,THE,POISON,ATTACK,_QU + After_Loss I,_ELIP,CAN_T,BEAT,YOU,_QU + + Pokemon SKARMORY + Holds LEFTOVERS + Moves TOXIC, PROTECT, SKY_ATTACK, HIDDEN_POWER + Level 50 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,0,252 + OT_ID 00000, 00000 + IVs 31,14,15,15,14,30, SKARMORY_KEEN_EYE ; HP Bug 70 + PV $00000094 ; ♂ Careful + Nickname "SKARMORY" + Friendship 255 + + Pokemon HERACROSS + dw SITRUS_BERRY + Moves TOXIC, PROTECT, MEGAHORN, DIG + Level 50 + PP_Ups 0,0,0,0 + EVs 252,6,0,252,0,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, HERACROSS_GUTS + PV $0000000D ; ♀ Jolly + Nickname "HERACROSS" + Friendship 255 + + Pokemon SWAMPERT + Holds SHELL_BELL + Moves TOXIC, PROTECT, ICE_BEAM, DIVE + Level 50 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,0,252 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,15, SWAMPERT_TORRENT + PV $0000007F ; ♂ Brave + Nickname "SWAMPERT" + Friendship 255 diff --git a/battle-e/trainers/natalie.asm b/battle-e/trainers/natalie.asm new file mode 100644 index 0000000..2d795ef --- /dev/null +++ b/battle-e/trainers/natalie.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db BATTLE_GIRL + BT_Floor MOSSDEEP + OT_Name "NATALIE" + OT_ID 00000, 00000 + + Introduction GET,READY,TO,START,THE,BATTLE + After_Win ALTHOUGH,I_AM,SMALL,I,BEAT,YOU + After_Loss NEXT,BATTLE,I,WILL,BE,BETTER + + Pokemon MAGIKARP + Holds CHOICE_BAND + Moves SPLASH, TACKLE, FLAIL, 0 + Level 50 + PP_Ups 0,0,0,0 + EVs 0,255,0,255,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, MAGIKARP_SWIFT_SWIM + PV $000000E4 ; ♂ Adamant + Nickname "MAGIKARP" + Friendship 255 + + Pokemon LAIRON + Holds METAL_COAT + Moves HEADBUTT, IRON_TAIL, ROAR, IRON_DEFENSE + Level 52 + PP_Ups 0,0,0,0 + EVs 255,255,0,0,0,0 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, LAIRON_STURDY + PV $000000E4 ; ♂ Adamant + Nickname "LAIRON" + Friendship 255 + + Pokemon SHELGON + dw SITRUS_BERRY + Moves DRAGONBREATH, EMBER, BITE, THRASH + Level 50 + PP_Ups 0,0,0,0 + EVs 255,0,0,0,0,255 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, SHELGON_ROCK_HEAD + PV $0000001C ; ♀ Adamant + Nickname "SHELGON" + Friendship 255 diff --git a/battle-e/trainers/natasha.asm b/battle-e/trainers/natasha.asm new file mode 100644 index 0000000..2781afb --- /dev/null +++ b/battle-e/trainers/natasha.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 50 + db PSYCHIC_F + BT_Floor 12 + OT_Name "NATASHA" + OT_ID 00000, 00000 + + Introduction LOOK,_EX,MY,SKILLED,ATTACK,_EX_EX + After_Win OH_,WHERE,WAS,YOUR,_LIGHT_SCREEN,_QU + After_Loss I,WAS,NO_MATCH,FOR,YOU,_EX_EX + + Pokemon STARMIE + Holds SCOPE_LENS + Moves PSYCHIC, THUNDERBOLT, SURF, ICE_BEAM + Level 50 + PP_Ups 0,0,0,0 + EVs 6,0,6,252,252,0 ; 516 EVs? CHEATER! + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, STARMIE_NATURAL_CURE + PV $0000000F ; ⚲ Modest + Nickname "STARMIE" + Friendship 255 + + Pokemon SALAMENCE + Holds LUM_BERRY + Moves DRAGON_CLAW, FLAMETHROWER, CRUNCH, HYDRO_PUMP + Level 50 + PP_Ups 0,0,0,0 + EVs 6,0,0,252,252,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,31,15, SALAMENCE_INTIMIDATE + PV $0000008C ; ♂ Modest + Nickname "SALAMENCE" + Friendship 255 + + Pokemon SCEPTILE + dw BRIGHTPOWDER + Moves LEAF_BLADE, CRUNCH, DRAGON_CLAW, DOUBLE_TEAM + Level 50 + PP_Ups 0,0,0,0 + EVs 6,0,0,252,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, SCEPTILE_OVERGROW + PV $0000000F ; ♀ Modest + Nickname "SCEPTILE" + Friendship 255 diff --git a/battle-e/trainers/nils.asm b/battle-e/trainers/nils.asm new file mode 100644 index 0000000..a6b38bd --- /dev/null +++ b/battle-e/trainers/nils.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 50 + Class GENTLEMAN + BT_Floor 0 + OT_Name "NILS" + OT_ID 00000, 00000 + + Introduction YOUR,CHALLENGE,IS,MORE,THAN,WELCOME + After_Win THAT_S,REALLY,ALL,YOU,GOT,_QU + After_Loss HMM,WELL,DONE,_ELIP,YOUNG,TRAINER + + Pokemon SABLEYE + dw SITRUS_BERRY + Moves NIGHT_SHADE, FAKE_OUT, DETECT, KNOCK_OFF + Level 50 + PP_Ups 0,0,0,0 + EVs 255,100,0,155,0,0 + OT_ID 00000, 00000 + IVs 15,15,15,15,15,15, SABLEYE_KEEN_EYE + PV $000000CE ; ♂ Docile + Nickname "SABLEYE" + Friendship 255 + + Pokemon PLUSLE + Holds MAGNET + Moves FAKE_TEARS, SPARK, QUICK_ATTACK, ENCORE + Level 50 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,15,15,15,15, PLUSLE_PLUS + PV $0000000F ; ♀ Modest + Nickname "PLUSLE" + Friendship 255 + + Pokemon LUDICOLO + Holds SHELL_BELL + Moves RAIN_DANCE, SURF, THIEF, GIGA_DRAIN + Level 50 + PP_Ups 0,0,0,0 + EVs 170,0,0,170,170,0 + OT_ID 00000, 00000 + IVs 15,15,15,15,15,15, LUDICOLO_SWIFT_SWIM + PV $000000D2 ; ♂ Timid + Nickname "LUDICOLO" + Friendship 255 diff --git a/battle-e/trainers/oscar.asm b/battle-e/trainers/oscar.asm new file mode 100644 index 0000000..718c9d8 --- /dev/null +++ b/battle-e/trainers/oscar.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db SAILOR + BT_Floor MOSSDEEP + OT_Name "OSCAR" + OT_ID 00000, 00000 + + Introduction DO,YOU,KNOW,THIS,POKEMON,_QU + After_Win HOW,WAS,MY,GHOST,POKEMON,_QU + After_Loss DID,YOU,LIKE,MY,POKEMON,_QU + + Pokemon ELECTRODE + dw LIECHI_BERRY + Moves THUNDERBOLT, LIGHT_SCREEN, EXPLOSION, DOUBLE_TEAM + Level 67 + PP_Ups 0,0,0,0 + EVs 252,6,252,0,0,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, ELECTRODE_STATIC + PV $00000013 ; ⚲ Rash + Nickname "ELECTRODE" + Friendship 255 + + Pokemon DODRIO + Holds SHARP_BEAK + Moves DRILL_PECK, TRI_ATTACK, PURSUIT, SUPERSONIC + Level 70 + PP_Ups 0,0,0,0 + EVs 6,252,0,252,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, DODRIO_EARLY_BIRD + PV $0000001C ; ♀ Adamant + Nickname "DODRIO" + Friendship 255 + + Pokemon GENGAR + dw PETAYA_BERRY + Moves PSYCHIC, THUNDERBOLT, DESTINY_BOND, GIGA_DRAIN + Level 73 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,252,0 + OT_ID 00000, 00000 + IVs 31,15,31,15,15,15, GENGAR_LEVITATE + PV $0000008C ; ♂ Modest + Nickname "GENGAR" + Friendship 255 diff --git a/battle-e/trainers/patrick.asm b/battle-e/trainers/patrick.asm new file mode 100644 index 0000000..8537dba --- /dev/null +++ b/battle-e/trainers/patrick.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + Class CAMPER + BT_Floor MOSSDEEP + OT_Name "PATRICK" + OT_ID 00000, 00000 + + Introduction WHAT,COLOR,DO,I,LIKE,_QU + After_Win WASN_T,IT,_A,GOOD,COLOR,_QU + After_Loss I,WILL,ALWAYS,LIKE,MY,COLOR + + Pokemon XATU + dw CHESTO_BERRY + Moves PSYCHIC, CONFUSE_RAY, REST, NIGHT_SHADE + Level 50 + PP_Ups 0,0,0,0 + EVs 6,0,0,252,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, XATU_SYNCHRONIZE + PV $0000000F ; ♀ Modest + Nickname "XATU" + Friendship 255 + + Pokemon LUDICOLO + Holds LEFTOVERS + Moves DIVE, LEECH_SEED, TOXIC, PROTECT + Level 52 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 31,15,31,15,15,15, LUDICOLO_SWIFT_SWIM + PV $00000014 ; ♀ Calm + Nickname "LUDICOLO" + Friendship 255 + + Pokemon FLYGON + Holds DRAGON_FANG + Moves EARTHQUAKE, DRAGON_CLAW, CRUNCH, FLAMETHROWER + Level 54 + PP_Ups 0,0,0,0 + EVs 0,6,0,252,252,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, FLYGON_LEVITATE + PV $00000090 ; ♂ Rash + Nickname "FLYGON" + Friendship 255 diff --git a/battle-e/trainers/raquel.asm b/battle-e/trainers/raquel.asm new file mode 100644 index 0000000..6ce0e4a --- /dev/null +++ b/battle-e/trainers/raquel.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db COOLTRAINER_F + BT_Floor MOSSDEEP + OT_Name "RAQUEL" + OT_ID 00000, 00000 + + Introduction YOU_RE,NOT,_A,MATCH,TO_ME,_ELIP + After_Win I,ALWAYS,WIN,WITH,THIS,COLOR + After_Loss MY,DREAM,NEVER,GOES,AWAY,_ELIP + + Pokemon CRAWDAUNT + dw BLACKGLASSES + Moves HIDDEN_POWER, CRABHAMMER, SWORDS_DANCE, FRUSTRATION + Level 52 + PP_Ups 0,0,0,0 + EVs 252,0,0,6,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, CRAWDAUNT_HYPER_CUTTER ; HP Dark 70 + PV $00000011 ; ♀ Quiet + Nickname "CRAWDAUNT" + Friendship 0 + + Pokemon ELECTRODE + Holds MAGNET + Moves LIGHT_SCREEN, EXPLOSION, THUNDERBOLT, CHARGE + Level 54 + PP_Ups 0,0,0,0 + EVs 252,0,0,6,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, ELECTRODE_STATIC + PV $0000000A ; ⚲ Timid + Nickname "ELECTRODE" + Friendship 255 + + Pokemon BLAZIKEN + Holds SALAC_BERRY + Moves BULK_UP, BLAZE_KICK, SKY_UPPERCUT, MIRROR_MOVE + Level 56 + PP_Ups 0,0,0,0 + EVs 6,252,0,252,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, BLAZIKEN_BLAZE + PV $0000008C ; ♂ Modest + Nickname "BLAZIKEN" + Friendship 255 diff --git a/battle-e/trainers/renee.asm b/battle-e/trainers/renee.asm new file mode 100644 index 0000000..86f36b0 --- /dev/null +++ b/battle-e/trainers/renee.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db PICNICKER + BT_Floor MOSSDEEP + OT_Name "RENEE" + OT_ID 00000, 00000 + + Introduction MY,NATURE,IS,_ELIP,STATIC,_EX + After_Win MY,FEELING,IS,NOW,LIKE,_SUNNY_DAY + After_Loss MY,FEELING,IS,NOW,LIKE,DRIZZLE + + Pokemon CASTFORM + dw PETAYA_BERRY + Moves WEATHER_BALL, SOLARBEAM, SUNNY_DAY, FLAMETHROWER + Level 72 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, CASTFORM_FORECAST + PV $00000012 ; ♀ Bashful + Nickname "CASTFORM" + Friendship 255 + + Pokemon CASTFORM + Holds SALAC_BERRY + Moves WEATHER_BALL, THUNDER, RAIN_DANCE, THUNDERBOLT + Level 70 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, CASTFORM_FORECAST + PV $000000DA ; ♂ Bashful + Nickname "CASTFORM" + Friendship 255 + + Pokemon CASTFORM + dw APICOT_BERRY + Moves WEATHER_BALL, BLIZZARD, HAIL, ICE_BEAM + Level 74 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, CASTFORM_FORECAST + PV $00000012 ; ♀ Bashful + Nickname "CASTFORM" + Friendship 255 diff --git a/battle-e/trainers/rudy.asm b/battle-e/trainers/rudy.asm new file mode 100644 index 0000000..8e42e79 --- /dev/null +++ b/battle-e/trainers/rudy.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db YOUNGSTER + BT_Floor MOSSDEEP + OT_Name "RUDY" + OT_ID 00000, 00000 + + Introduction YEAH,_EX,GO,_EX,_TACKLE,_EX_EX + After_Win I,SOMEHOW,WON,THE,BATTLE,_EX_EX + After_Loss I_AM,NOT,HOPELESS,BUT,I,GIVE_UP + + Pokemon CASCOON + Holds EVERSTONE + Moves TACKLE, HARDEN, STRING_SHOT, POISON_STING + Level 98 + PP_Ups 0,0,0,0 + EVs 252,252,6,0,0,0 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, CASCOON_SHED_SKIN + PV $00000083 ; ♂ Docile + Nickname "CASCOON" + Friendship 255 + + Pokemon SILCOON + Holds EVERSTONE + Moves TACKLE, HARDEN, STRING_SHOT, POISON_STING + Level 99 + PP_Ups 0,0,0,0 + EVs 252,252,6,0,0,0 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, SILCOON_SHED_SKIN + PV $00000012 ; ♀ Bashful + Nickname "SILCOON" + Friendship 255 + + Pokemon MAGIKARP + Holds EVERSTONE + Moves TACKLE, SPLASH, FLAIL, 0 + Level 100 + PP_Ups 0,0,0,0 + EVs 252,252,6,0,0,0 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, MAGIKARP_SWIFT_SWIM + PV $00000095 ; ♂ Quirky + Nickname "MAGIKARP" + Friendship 255 diff --git a/battle-e/trainers/sandia.asm b/battle-e/trainers/sandia.asm new file mode 100644 index 0000000..c6098f7 --- /dev/null +++ b/battle-e/trainers/sandia.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 100 + db EXPERT_F + BT_Floor 12 + OT_Name "SANDIA" + OT_ID 00000, 00000 + + Introduction HERE_I_COME,_EX,MY,GUARD,IS,INVINCIBLE + After_Win I,BELIEVE,IN,MYSELF,_AND,TRAIN + After_Loss YOU,DID,_DETECT,MY,WEAK,POINTS + + Pokemon CLAYDOL + Holds SHELL_BELL + Moves COSMIC_POWER, REST, PSYCHIC, SHADOW_BALL + Level 100 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,252,0 + OT_ID 00000, 00000 + IVs 20,20,31,20,20,31, CLAYDOL_LEVITATE + PV $0000000F ; ⚲ Modest + Nickname "CLAYDOL" + Friendship 255 + + Pokemon METAGROSS + Holds LUM_BERRY + Moves IRON_DEFENSE, REST, METEOR_MASH, EARTHQUAKE + Level 100 + PP_Ups 0,0,0,0 + EVs 0,252,0,6,0,252 + OT_ID 00000, 00000 + IVs 20,31,20,20,20,31, METAGROSS_CLEAR_BODY + PV $0000001C ; ⚲ Adamant + Nickname "METAGROSS" + Friendship 255 + + Pokemon REGICE + dw CHESTO_BERRY + Moves CURSE, REST, ICE_BEAM, SUPERPOWER + Level 100 + PP_Ups 0,0,0,0 + EVs 252,0,252,0,0,6 + OT_ID 00000, 00000 + IVs 20,20,31,31,20,20, REGICE_CLEAR_BODY + PV $0000001E ; ⚲ Bold + Nickname "REGICE" + Friendship 255 diff --git a/battle-e/trainers/sandy.asm b/battle-e/trainers/sandy.asm new file mode 100644 index 0000000..1cfc479 --- /dev/null +++ b/battle-e/trainers/sandy.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 50 + Class PICNICKER + BT_Floor 19 + OT_Name "SANDY" + OT_ID 00000, 00000 + + Introduction I,GOT,MY,POKEMON,WITH,POKEBLOCK + After_Win I,COLLECT,MORE,POKEMON,WITH,POKEBLOCK + After_Loss URGH,I,HAVE,NO,MORE,POKEBLOCK + + Pokemon HERACROSS + Holds BLACK_BELT + Moves BRICK_BREAK, COUNTER, MEGAHORN, EARTHQUAKE + Level 50 + PP_Ups 0,0,0,0 + EVs 6,252,0,252,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, HERACROSS_GUTS + PV $00000080 ; ♂ Adamant + Nickname "HERACROSS" + Friendship 255 + + Pokemon GIRAFARIG + dw TWISTEDSPOON + Moves PSYCHIC, MAGIC_COAT, CRUNCH, STOMP + Level 50 + PP_Ups 0,0,0,0 + EVs 252,0,0,252,6,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, GIRAFARIG_INNER_FOCUS + PV $00000018 ; ♀ Quirky + Nickname "GIRAFARIG" + Friendship 255 + + Pokemon DODRIO + Holds SHARP_BEAK + Moves TRI_ATTACK, DRILL_PECK, STEEL_WING, PROTECT + Level 50 + PP_Ups 0,0,0,0 + EVs 6,252,0,252,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, DODRIO_EARLY_BIRD + PV $00000080 ; ♂ Adamant + Nickname "DODRIO" + Friendship 255 diff --git a/battle-e/trainers/sofia.asm b/battle-e/trainers/sofia.asm new file mode 100644 index 0000000..2065789 --- /dev/null +++ b/battle-e/trainers/sofia.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db PARASOL_LADY + BT_Floor MOSSDEEP + OT_Name "SOFIA" + OT_ID 00000, 00000 + + Introduction HAPPY,_ELIP,DRIZZLE,_ELIP,_RAIN_DANCE,_EX + After_Win DRIZZLE,BUT,MY,FEELING,IS,_SUNNY_DAY + After_Loss _SUNNY_DAY,BUT,MY,FEELING,IS,DRIZZLE + + Pokemon KINGDRA + dw MYSTIC_WATER + Moves RAIN_DANCE, SURF, ICE_BEAM, DRAGONBREATH + Level 52 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, KINGDRA_SWIFT_SWIM + PV $0000000F ; ♀ Modest + Nickname "KINGDRA" + Friendship 255 + + Pokemon LUDICOLO + Holds LEFTOVERS + Moves RAIN_DANCE, TOXIC, LEECH_SEED, ATTRACT + Level 55 + PP_Ups 0,0,0,0 + EVs 255,0,255,0,0,0 + OT_ID 00000, 00000 + IVs 31,15,31,15,15,15, LUDICOLO_RAIN_DISH + PV $000000E9 ; ♂ Impish + Nickname "LUDICOLO" + Friendship 255 + + Pokemon MANECTRIC + Holds KING_S_ROCK + Moves RAIN_DANCE, THUNDER, THUNDER_WAVE, CRUNCH + Level 52 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, MANECTRIC_STATIC + PV $0000000F ; ♀ Modest + Nickname "MANECTRIC" + Friendship 255 diff --git a/battle-e/trainers/sonya.asm b/battle-e/trainers/sonya.asm new file mode 100644 index 0000000..57cec8e --- /dev/null +++ b/battle-e/trainers/sonya.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db TUBER_F + BT_Floor MOSSDEEP + OT_Name "SONYA" + OT_ID 00000, 00000 + + Introduction GROUND,POKEMON,ARE,SO,SCARY,_ELIP + After_Win MY,SURPRISE,STRATEGY,WAS,PERFECT,_QU_EX + After_Loss SIGH,_ELIP,MY,STRATEGY,DOESN_T,WORK + + Pokemon CLAYDOL + dw BRIGHTPOWDER + Moves PSYCHIC, EARTHQUAKE, ICE_BEAM, REFLECT + Level 51 + PP_Ups 0,0,0,0 + EVs 0,0,255,0,0,255 + OT_ID 00000, 00000 + IVs 15,31,15,15,31,15, CLAYDOL_LEVITATE + PV $00000020 ; ⚲ Relaxed + Nickname "CLAYDOL" + Friendship 255 + + Pokemon CHIMECHO + dw TWISTEDSPOON + Moves PSYCHIC, SHADOW_BALL, LIGHT_SCREEN, DISABLE + Level 53 + PP_Ups 0,0,0,0 + EVs 255,0,0,0,255,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,0, CHIMECHO_LEVITATE + PV $0000000F ; ♀ Modest + Nickname "CHIMECHO" + Friendship 255 + + Pokemon WEEZING + Holds LAX_INCENSE + Moves SLUDGE_BOMB, THUNDERBOLT, FLAMETHROWER, EXPLOSION + Level 55 + PP_Ups 0,0,0,0 + EVs 0,255,0,0,0,255 + OT_ID 00000, 00000 + IVs 15,31,15,15,31,15, WEEZING_LEVITATE + PV $000000D9 ; ♂ Quiet + Nickname "WEEZING" + Friendship 255 diff --git a/battle-e/trainers/sophie.asm b/battle-e/trainers/sophie.asm new file mode 100644 index 0000000..3fc6588 --- /dev/null +++ b/battle-e/trainers/sophie.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + Class LADY + BT_Floor MOSSDEEP + OT_Name "SOPHIE" + OT_ID 00000, 00000 + + Introduction MY,CUTENESS,WILL,_STOP,YOU,_EX + After_Win FUFUFU,DID,YOU,LIKE,IT,_QU_EX + After_Loss EH_,YOU,ARE,VERY,CUTE,TOO + + Pokemon DELCATTY + Holds SILK_SCARF + Moves SING, REST, SUBSTITUTE, DOUBLE_EDGE + Level 90 + PP_Ups 0,0,0,0 + EVs 0,255,0,255,0,0 + OT_ID 00000, 00000 + IVs 15,31,15,31,15,15, DELCATTY_CUTE_CHARM + PV $0000001C ; ♀ Adamant + Nickname "DELCATTY" + Friendship 255 + + Pokemon LUVDISC + Holds MENTAL_HERB + Moves ATTRACT, SWEET_KISS, SURF, FLAIL + Level 92 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, LUVDISC_SWIFT_SWIM + PV $000000E7 ; ♂ Docile + Nickname "LUVDISC" + Friendship 255 + + Pokemon KIRLIA + dw BRIGHTPOWDER + Moves ATTRACT, PSYCHIC, HYPNOSIS, DREAM_EATER + Level 90 + PP_Ups 0,0,0,0 + EVs 0,0,0,255,255,0 + OT_ID 00000, 00000 + IVs 15,15,15,31,31,15, KIRLIA_TRACE + PV $0000000F ; ♀ Modest + Nickname "KIRLIA" + Friendship 255 diff --git a/battle-e/trainers/stuart.asm b/battle-e/trainers/stuart.asm new file mode 100644 index 0000000..ff301f3 --- /dev/null +++ b/battle-e/trainers/stuart.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db COLLECTOR + BT_Floor MOSSDEEP + OT_Name "STUART" + OT_ID 00000, 00000 + + Introduction THERE,IS,NOTHING,BAD,ABOUT,THICK_FAT + After_Win MY,POKEMON,WILL,NEVER,DIET,_EX_EX + After_Loss MY,POKEMON,SHOULD,START,_A,DIET + + Pokemon AGGRON + Holds SCOPE_LENS + Moves EARTHQUAKE, ROCK_TOMB, IRON_TAIL, DOUBLE_EDGE + Level 50 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, AGGRON_ROCK_HEAD + PV $00000016 ; ♀ Sassy + Nickname "AGGRON" + Friendship 255 + + Pokemon WAILORD + dw CHESTO_BERRY + Moves AMNESIA, REST, HYDRO_PUMP, BLIZZARD + Level 51 + PP_Ups 0,0,3,3 + EVs 252,0,0,0,6,252 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, WAILORD_OBLIVIOUS + PV $00000091 ; ♂ Calm + Nickname "WAILORD" + Friendship 255 + + Pokemon METAGROSS + Holds QUICK_CLAW + Moves METEOR_MASH, EARTHQUAKE, AERIAL_ACE, REFLECT + Level 52 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,6,0 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, METAGROSS_CLEAR_BODY + PV $00000017 ; ⚲ Careful + Nickname "METAGROSS" + Friendship 255 diff --git a/battle-e/trainers/testing.asm b/battle-e/trainers/testing.asm new file mode 100644 index 0000000..1f4a754 --- /dev/null +++ b/battle-e/trainers/testing.asm @@ -0,0 +1,44 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + Class HEX_MANIAC + BT_Floor MOSSDEEP + OT_Name "\{POKéBLOCK}ER" + OT_ID 00000, 00000 + + Introduction $0040,$0140,$0240,$2440,$2540,$2640 ; KADABRA NOSEPASS ??? ??? GRASSWHISTLE PECK + After_Win THIS,DIET,IS,REALLY,WORKING,ME + After_Loss $00C0,$01C0,$02C0,$24C0,$25C0,$26C0 ; ??? ??? ??? ??? ??? ZAP CANNON + + Pokemon CASTFORM + Holds HEART_SCALE + Moves RAIN_DANCE, WEATHER_BALL, THUNDER, ATTRACT + Level 2 + EVs 252,0,6,0,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, CASTFORM_FORECAST + PV $0000000F + Nickname "XERNEAS" + Friendship 255 + + Pokemon KOFFING + Holds PEARL + Moves SLUDGE_BOMB, THUNDER, EXPLOSION, FLAMETHROWER + Level 3 + EVs 252,6,0,0,0,252 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, KOFFING_LEVITATE + PV $0000008F + Nickname "YVELTAL" + Friendship 255 + + Pokemon CHIMECHO + Holds STARDUST + Moves PSYCHIC, CALM_MIND, LIGHT_SCREEN, YAWN + Level 4 + EVs 252,0,6,0,252,0 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, CHIMECHO_LEVITATE + PV $0000000F + Nickname "ZYGARDE" + Friendship 255 diff --git a/battle-e/trainers/tsutomu.asm b/battle-e/trainers/tsutomu.asm new file mode 100644 index 0000000..db92823 --- /dev/null +++ b/battle-e/trainers/tsutomu.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db TC_BLACK_BELT + BT_Floor MOSSDEEP + OT_Name "TSUTOMU" + OT_ID 00000, 00000 + + Introduction HIYAH,I,KNOW,YOUR,WEAK,POINTS + After_Win HAHAHA,_EX_EX,THAT_S,YOUR,WEAK,POINTS + After_Loss ARRGH,YOU,KNOW,MY,WEAK,POINTS + + Pokemon ZANGOOSE + Holds SCOPE_LENS + Moves SWORDS_DANCE, REST, ATTRACT, SLASH + Level 50 + PP_Ups 0,0,0,0 + EVs 252,6,0,252,0,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, ZANGOOSE_IMMUNITY + PV $0000001C ; ♀ Adamant + Nickname "ZANGOOSE" + Friendship 255 + + Pokemon SEVIPER + Holds SCOPE_LENS + Moves POISON_TAIL,SWAGGER,GLARE,HAZE + Level 54 + PP_Ups 0,0,0,0 + EVs 252,6,0,252,0,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, SEVIPER_SHED_SKIN + PV $00000080 ; ♂ Adamant + Nickname "SEVIPER" + Friendship 255 + + Pokemon MACHAMP + Holds SCOPE_LENS + Moves CROSS_CHOP, HIDDEN_POWER, BULK_UP, SCARY_FACE + Level 58 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 30,31,14,15,15,14, MACHAMP_GUTS ; HP Electric 70 + PV $0000001C ; ♀ Adamant + Nickname "MACHAMP" + Friendship 255 diff --git a/battle-e/trainers/tyler.asm b/battle-e/trainers/tyler.asm new file mode 100644 index 0000000..2b3fd04 --- /dev/null +++ b/battle-e/trainers/tyler.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db POKEMANIAC + BT_Floor MOSSDEEP + OT_Name "TYLER" + OT_ID 00000, 00000 + + Introduction WHOAH,OVERWHELMING,MEGA,BLANK,ATTACK,_EX + After_Win WAHAHAHA,_EX,THAT,WAS,SERIOUS,_1_HIT_KO_ + After_Loss TOO_STRONG,_EX,GO_EASY,ON,ME,_EX + + Pokemon WALREIN + Holds LAX_INCENSE + Moves SHEER_COLD, REST, SNORE, ICE_BEAM + Level 62 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,0,252 + OT_ID 00000, 00000 + IVs 15,15,31,15,15,31, WALREIN_THICK_FAT + PV $00000013 ; ♀ Rash + Nickname "WALREIN" + Friendship 255 + + Pokemon PINSIR + dw BRIGHTPOWDER + Moves GUILLOTINE, SUBMISSION, EARTHQUAKE, ROCK_TOMB + Level 64 + PP_Ups 0,0,0,0 + EVs 252,6,0,252,0,0 + OT_ID 00000, 00000 + IVs 31,15,15,31,15,15, PINSIR_HYPER_CUTTER + PV $0000008A ; ♂ Jolly + Nickname "PINSIR" + Friendship 255 + + Pokemon RHYDON + Holds QUICK_CLAW + Moves HORN_DRILL, ROCK_SLIDE, EARTHQUAKE, MEGAHORN + Level 66 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, RHYDON_ROCK_HEAD + PV $00000016 ; ♀ Sassy + Nickname "RHYDON" + Friendship 255 diff --git a/battle-e/trainers/wilson.asm b/battle-e/trainers/wilson.asm new file mode 100644 index 0000000..d32d4a1 --- /dev/null +++ b/battle-e/trainers/wilson.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level MOSSDEEP + db PKMN_BREEDER_M + BT_Floor MOSSDEEP + OT_Name "WILSON" + OT_ID 00000, 00000 + + Introduction LISTEN,_EX,I,CARE,ABOUT,POKEMON + After_Win WHAT,IS,THE,NEXT,NORMAL,_QU + After_Loss I,CHALLENGE,YOU,AFTER,THIS,NORMAL + + Pokemon GLOOM + Holds SUN_STONE + Moves POISONPOWDER, STUN_SPORE, SLEEP_POWDER, RAZOR_LEAF + Level 50 + PP_Ups 0,0,0,0 + EVs 252,0,0,0,252,6 + OT_ID 00000, 00000 + IVs 31,15,15,15,31,15, GLOOM_CHLOROPHYLL + PV $00000012 ; ♀ Bashful + Nickname "GLOOM" + Friendship 255 + + Pokemon WURMPLE + Holds EXP_SHARE + Moves TACKLE, STRING_SHOT, POISON_STING, 0 + Level 52 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,15,15,15,15, WURMPLE_SHIELD_DUST + PV $00000083 ; ♂ Docile + Nickname "WURMPLE" + Friendship 255 + + Pokemon CLAMPERL + dw DEEPSEASCALE + Moves WATER_PULSE, REFRESH, CONFUSE_RAY, WHIRLPOOL + Level 54 + PP_Ups 0,0,0,0 + EVs 252,0,6,0,0,252 + OT_ID 00000, 00000 + IVs 31,15,15,15,15,31, CLAMPERL_SHELL_ARMOR + PV $0000000F ; ♀ Modest + Nickname "CLAMPERL" + Friendship 255 diff --git a/battle-e/trainers/zuril.asm b/battle-e/trainers/zuril.asm new file mode 100644 index 0000000..6831f21 --- /dev/null +++ b/battle-e/trainers/zuril.asm @@ -0,0 +1,47 @@ +INCLUDE "macros.asm" + + BT_Level 100 + db RUIN_MANIAC + BT_Floor 12 + OT_Name "ZURIL" + OT_ID 00000, 00000 + + Introduction FINALLY,I,GOT,_A,LEGEND,POKEMON + After_Win LEGEND,_ELIP,HOW,FABULOUS,IT,IS + After_Loss MY,LEGEND,WASN_T,ABOUT,VICTORY,_ELIP + + Pokemon FLYGON + dw BRIGHTPOWDER + Moves EARTHQUAKE, DRAGON_CLAW, SANDSTORM, CRUNCH + Level 100 + PP_Ups 0,0,0,0 + EVs 6,252,0,252,0,0 + OT_ID 00000, 00000 + IVs 31,20,20,31,20,20, FLYGON_LEVITATE + PV $0000000C ; ♀ Serious + Nickname "FLYGON" + Friendship 255 + + Pokemon WHISCASH + Holds SCOPE_LENS + Moves FISSURE, EARTHQUAKE, SURF, PROTECT + Level 100 + PP_Ups 0,0,0,0 + EVs 252,252,0,0,0,6 + OT_ID 00000, 00000 + IVs 31,31,20,20,20,20, WHISCASH_OBLIVIOUS + PV $00000095 ; ♂ Quirky + Nickname "WHISCASH" + Friendship 255 + + Pokemon REGIROCK + Holds LEFTOVERS + Moves EXPLOSION, ANCIENTPOWER, EARTHQUAKE, REST + Level 100 + PP_Ups 0,0,0,0 + EVs 252,6,0,0,0,252 + OT_ID 00000, 00000 + IVs 31,20,20,20,20,31, REGIROCK_CLEAR_BODY + PV $0000001B ; ⚲ Brave + Nickname "REGIROCK" + Friendship 255 diff --git a/common/battle_e_transfer.asm b/common/battle_e_transfer.asm new file mode 100644 index 0000000..bc4f4e0 --- /dev/null +++ b/common/battle_e_transfer.asm @@ -0,0 +1,71 @@ +TransferData: + LD_IND_HL SomeVar2 + push de + ld hl, $BBBB + LD_IND_HL Space_1 ; Space_1 = $BBBB + EX_DE_HL + LD_IND_HL Space_2 ; store transfer length in Space_2, which is odd, + ; because we never refer to it again + API_0C7 Space_1 + + wait 1 + pop hl ; number of bytes to transfer + + ; calculate number of words to transfer: + ; de = (hl + 1) >> 1 + inc hl + ld b, 1 + call WordShiftRight + EX_DE_HL + +.asm_18FE + ld a, e + or d + ret z + ; while de > 0… + + ld hl, $8888 + LD_IND_HL Space_1 ; Space_1 = $8888 + ld a, $01 + LD_IND_A SomeVar1 ; SomeVar1 = 1 + +.asm_190C + LD_A_IND SomeVar1 ; a = SomeVar1 + cp $08 + jr nc, .asm_193B + + push de + LD_HL_IND SomeVar2 + ld c, [hl] + inc hl + ld b, [hl] + inc hl + LD_IND_HL SomeVar2 + ld hl, SomeVar1 + ld l, [hl] + ld h, $00 + add hl, hl + ld de, Space_1 + add hl, de + ld [hl], c + inc hl + ld [hl], b + pop de + dec de + ld a, e + or d + jr z, .asm_193B + + ld hl, SomeVar1 + ld a, $01 + add a, [hl] + ld [hl], a + jr .asm_190C + +.asm_193B ; if SomeVar1 > 8 + push de + API_0C7 Space_1 ; this must be the data transfer? it’s the only API function called + + wait 1 + pop de + jr .asm_18FE \ No newline at end of file diff --git a/common/mem_struct.asm b/common/mem_struct.asm new file mode 100644 index 0000000..148d021 --- /dev/null +++ b/common/mem_struct.asm @@ -0,0 +1,15 @@ +; what do these store? +Space_1: + db 0,0 +Space_2: + REPT 14 + db 0 + ENDR +Space_3: + REPT 32 + db 0 + ENDR +Space_4: + db 0,0 +Space_5: + db 0,0 \ No newline at end of file diff --git a/common/transfer_data.asm b/common/transfer_data.asm new file mode 100644 index 0000000..0276d7c --- /dev/null +++ b/common/transfer_data.asm @@ -0,0 +1,31 @@ + API_106 $0040, UNKNOWN_VALUE + +.asm_1bfe + waita $01 + + ld hl, Space_3 + API $0C8 + + or a + jr nz, .asm_1c18 + + IS_SOUND_PLAYING 1 ; return + +.asm_1c18 + LD_HL_IND Space_3 + LD_IND_HL Space_4 + ld a, l + cp $22 + jr nz, .asm_1bfe + + ld a, h + cp $22 + jr nz, .asm_1bfe + + ld de, 60 ; transfer length + ld hl, Prologue + call TransferData + + ld de, DATA_TRANSFER_LENGTH ; transfer length + ld hl, DataPacket + call TransferData \ No newline at end of file diff --git a/common/wait_for_link.asm b/common/wait_for_link.asm new file mode 100644 index 0000000..e317728 --- /dev/null +++ b/common/wait_for_link.asm @@ -0,0 +1,36 @@ + ret c + nop + wait 32 + ld l, $02 + push hl + ld bc, $B9A0 + ld de, $0076 + ld a, $08 + API $0C4 + pop bc +.asm_1b64 + API $0DB + + cp $01 + jr z, .asm_1b6f + API $0DB + or a + jr nz, .asm_1b76 +.asm_1b6f + waita $01 + API $0C5 + jr .asm_1b64 + +.asm_1b76 + waita $01 + LD_HL_IND $00C2 + ld a, l + and $02 + jr z, .asm_1b90 + + IS_SOUND_PLAYING 2 ; exit + +.asm_1b90 + API $0CA + cp $02 + jr c, .asm_1b76 \ No newline at end of file diff --git a/common/wait_for_ready.asm b/common/wait_for_ready.asm new file mode 100644 index 0000000..8344422 --- /dev/null +++ b/common/wait_for_ready.asm @@ -0,0 +1,30 @@ +.asm_1baf + waita $01 + API $0DB + + ld l, a + ld h, $00 + LD_IND_HL Space_5 + API $0CA + + cp $02 + jr nc, .asm_1bd4 + + ld hl, UNKNOWN_VALUE + SOUND_PAUSE + + IS_SOUND_PLAYING 1 ; return + +.asm_1bd4 + LD_HL_IND Space_5 + ld a, l + sub $04 + or h + jr z, .asm_1be6 + + LD_HL_IND Space_5 + ld a, l + sub $03 + or h + jr nz, .asm_1baf +.asm_1be6 \ No newline at end of file diff --git a/common/word_shift_right.asm b/common/word_shift_right.asm new file mode 100644 index 0000000..7a76280 --- /dev/null +++ b/common/word_shift_right.asm @@ -0,0 +1,15 @@ +WordShiftRight: + ; this function shifts HL by B bits to the right + inc b +.asm_1B93 + dec b + ret z + + and a + ld a, h + rra + ld h, a + ld a, l + rra + ld l, a + jp .asm_1B93 \ No newline at end of file diff --git a/common/wrap_up.asm b/common/wrap_up.asm new file mode 100644 index 0000000..157b6ef --- /dev/null +++ b/common/wrap_up.asm @@ -0,0 +1,29 @@ +.asm_1c60 + waita 1 + + LD_HL_IND $00C2 + ld a, l + and $01 + jr z, .asm_1c7c + + ; IS_SOUND_PLAYING 1 + API $08D + dec b ; was this supposed + nop ; to be ld b, $00? + ld e, $01 + ld hl, $0005 ; was this supposed to be $0006? + API $119 + ld a, $01 ; return + EXIT + + jr .asm_1c60 + +.asm_1c7c + LD_HL_IND $00C2 + ld a, l + and $02 + jr z, .asm_1c60 + + IS_SOUND_PLAYING 2 + + jr .asm_1c60 \ No newline at end of file diff --git a/constants/abilities.asm b/constants/abilities.asm new file mode 100644 index 0000000..d044506 --- /dev/null +++ b/constants/abilities.asm @@ -0,0 +1,513 @@ +BULBASAUR_OVERGROW EQU 0 +IVYSAUR_OVERGROW EQU 0 +VENUSAUR_OVERGROW EQU 0 +CHARMANDER_BLAZE EQU 0 +CHARMELEON_BLAZE EQU 0 +CHARIZARD_BLAZE EQU 0 +SQUIRTLE_TORRENT EQU 0 +WARTORTLE_TORRENT EQU 0 +BLASTOISE_TORRENT EQU 0 +CATERPIE_SHIELD_DUST EQU 0 +METAPOD_SHED_SKIN EQU 0 +BUTTERFREE_COMPOUNDEYES EQU 0 +WEEDLE_SHIELD_DUST EQU 0 +KAKUNA_SHED_SKIN EQU 0 +BEEDRILL_SWARM EQU 0 +PIDGEY_KEEN_EYE EQU 0 +PIDGEOTTO_KEEN_EYE EQU 0 +PIDGEOT_KEEN_EYE EQU 0 +RATTATA_RUN_AWAY EQU 0 +RATTATA_GUTS EQU 1 +RATICATE_RUN_AWAY EQU 0 +RATICATE_GUTS EQU 1 +SPEAROW_KEEN_EYE EQU 0 +FEAROW_KEEN_EYE EQU 0 +EKANS_INTIMIDATE EQU 0 +EKANS_SHED_SKIN EQU 1 +ARBOK_INTIMIDATE EQU 0 +ARBOK_SHED_SKIN EQU 1 +PIKACHU_STATIC EQU 0 +RAICHU_STATIC EQU 0 +SANDSHREW_SAND_VEIL EQU 0 +SANDSLASH_SAND_VEIL EQU 0 +NIDORAN_F_POISON_POINT EQU 0 +NIDORINA_POISON_POINT EQU 0 +NIDOQUEEN_POISON_POINT EQU 0 +NIDORAN_M_POISON_POINT EQU 0 +NIDORINO_POISON_POINT EQU 0 +NIDOKING_POISON_POINT EQU 0 +CLEFAIRY_CUTE_CHARM EQU 0 +CLEFABLE_CUTE_CHARM EQU 0 +VULPIX_FLASH_FIRE EQU 0 +NINETALES_FLASH_FIRE EQU 0 +JIGGLYPUFF_CUTE_CHARM EQU 0 +WIGGLYTUFF_CUTE_CHARM EQU 0 +ZUBAT_INNER_FOCUS EQU 0 +GOLBAT_INNER_FOCUS EQU 0 +ODDISH_CHLOROPHYLL EQU 0 +GLOOM_CHLOROPHYLL EQU 0 +VILEPLUME_CHLOROPHYLL EQU 0 +PARAS_EFFECT_SPORE EQU 0 +PARASECT_EFFECT_SPORE EQU 0 +VENONAT_COMPOUNDEYES EQU 0 +VENOMOTH_SHIELD_DUST EQU 0 +DIGLETT_SAND_VEIL EQU 0 +DIGLETT_ARENA_TRAP EQU 1 +DUGTRIO_SAND_VEIL EQU 0 +DUGTRIO_ARENA_TRAP EQU 1 +MEOWTH_PICKUP EQU 0 +PERSIAN_LIMBER EQU 0 +PSYDUCK_DAMP EQU 0 +PSYDUCK_CLOUD_NINE EQU 1 +GOLDUCK_DAMP EQU 0 +GOLDUCK_CLOUD_NINE EQU 1 +MANKEY_VITAL_SPIRIT EQU 0 +PRIMEAPE_VITAL_SPIRIT EQU 0 +GROWLITHE_INTIMIDATE EQU 0 +GROWLITHE_FLASH_FIRE EQU 1 +ARCANINE_INTIMIDATE EQU 0 +ARCANINE_FLASH_FIRE EQU 1 +POLIWAG_WATER_ABSORB EQU 0 +POLIWAG_DAMP EQU 1 +POLIWHIRL_WATER_ABSORB EQU 0 +POLIWHIRL_DAMP EQU 1 +POLIWRATH_WATER_ABSORB EQU 0 +POLIWRATH_DAMP EQU 1 +ABRA_SYNCHRONIZE EQU 0 +ABRA_INNER_FOCUS EQU 1 +KADABRA_SYNCHRONIZE EQU 0 +KADABRA_INNER_FOCUS EQU 1 +ALAKAZAM_SYNCHRONIZE EQU 0 +ALAKAZAM_INNER_FOCUS EQU 1 +MACHOP_GUTS EQU 0 +MACHOKE_GUTS EQU 0 +MACHAMP_GUTS EQU 0 +BELLSPROUT_CHLOROPHYLL EQU 0 +WEEPINBELL_CHLOROPHYLL EQU 0 +VICTREEBEL_CHLOROPHYLL EQU 0 +TENTACOOL_CLEAR_BODY EQU 0 +TENTACOOL_LIQUID_OOZE EQU 1 +TENTACRUEL_CLEAR_BODY EQU 0 +TENTACRUEL_LIQUID_OOZE EQU 1 +GEODUDE_ROCK_HEAD EQU 0 +GEODUDE_STURDY EQU 1 +GRAVELER_ROCK_HEAD EQU 0 +GRAVELER_STURDY EQU 1 +GOLEM_ROCK_HEAD EQU 0 +GOLEM_STURDY EQU 1 +PONYTA_RUN_AWAY EQU 0 +PONYTA_FLASH_FIRE EQU 1 +RAPIDASH_RUN_AWAY EQU 0 +RAPIDASH_FLASH_FIRE EQU 1 +SLOWPOKE_OBLIVIOUS EQU 0 +SLOWPOKE_OWN_TEMPO EQU 1 +SLOWBRO_OBLIVIOUS EQU 0 +SLOWBRO_OWN_TEMPO EQU 1 +MAGNEMITE_MAGNET_PULL EQU 0 +MAGNEMITE_STURDY EQU 1 +MAGNETON_MAGNET_PULL EQU 0 +MAGNETON_STURDY EQU 1 +FARFETCH_D_KEEN_EYE EQU 0 +FARFETCH_D_INNER_FOCUS EQU 1 +DODUO_RUN_AWAY EQU 0 +DODUO_EARLY_BIRD EQU 1 +DODRIO_RUN_AWAY EQU 0 +DODRIO_EARLY_BIRD EQU 1 +SEEL_THICK_FAT EQU 0 +DEWGONG_THICK_FAT EQU 0 +GRIMER_STENCH EQU 0 +GRIMER_STICKY_HOLD EQU 1 +MUK_STENCH EQU 0 +MUK_STICKY_HOLD EQU 1 +SHELLDER_SHELL_ARMOR EQU 0 +CLOYSTER_SHELL_ARMOR EQU 1 +GASTLY_LEVITATE EQU 0 +HAUNTER_LEVITATE EQU 0 +GENGAR_LEVITATE EQU 0 +ONIX_ROCK_HEAD EQU 0 +ONIX_STURDY EQU 1 +DROWZEE_INSOMNIA EQU 0 +HYPNO_INSOMNIA EQU 0 +KRABBY_HYPER_CUTTER EQU 0 +KRABBY_SHELL_ARMOR EQU 1 +KINGLER_HYPER_CUTTER EQU 0 +KINGLER_SHELL_ARMOR EQU 1 +VOLTORB_SOUNDPROOF EQU 0 +VOLTORB_STATIC EQU 1 +ELECTRODE_SOUNDPROOF EQU 0 +ELECTRODE_STATIC EQU 1 +EXEGGCUTE_CHLOROPHYLL EQU 0 +EXEGGUTOR_CHLOROPHYLL EQU 1 +CUBONE_ROCK_HEAD EQU 0 +CUBONE_LIGHTNINGROD EQU 1 +MAROWAK_ROCK_HEAD EQU 0 +MAROWAK_LIGHTNINGROD EQU 1 +HITMONLEE_LIMBER EQU 0 +HITMONCHAN_KEEN_EYE EQU 0 +LICKITUNG_OWN_TEMPO EQU 0 +LICKITUNG_OBLIVIOUS EQU 1 +KOFFING_LEVITATE EQU 0 +WEEZING_LEVITATE EQU 0 +RHYHORN_LIGHTNINGROD EQU 0 +RHYHORN_ROCK_HEAD EQU 1 +RHYDON_LIGHTNINGROD EQU 0 +RHYDON_ROCK_HEAD EQU 1 +CHANSEY_NATURAL_CURE EQU 0 +CHANSEY_SERENE_GRACE EQU 1 +TANGELA_CHLOROPHYLL EQU 0 +KANGASKHAN_EARLY_BIRD EQU 0 +HORSEA_SWIFT_SWIM EQU 0 +SEADRA_POISON_POINT EQU 0 +GOLDEEN_SWIFT_SWIM EQU 0 +GOLDEEN_WATER_VEIL EQU 1 +SEAKING_SWIFT_SWIM EQU 0 +SEAKING_WATER_VEIL EQU 1 +STARYU_ILLUMINATE EQU 0 +STARYU_NATURAL_CURE EQU 1 +STARMIE_ILLUMINATE EQU 0 +STARMIE_NATURAL_CURE EQU 1 +MR_MIME_SOUNDPROOF EQU 0 +SCYTHER_SWARM EQU 0 +JYNX_OBLIVIOUS EQU 0 +ELECTABUZZ_STATIC EQU 0 +MAGMAR_FLAME_BODY EQU 0 +PINSIR_HYPER_CUTTER EQU 0 +TAUROS_INTIMIDATE EQU 0 +MAGIKARP_SWIFT_SWIM EQU 0 +GYARADOS_INTIMIDATE EQU 0 +LAPRAS_WATER_ABSORB EQU 0 +LAPRAS_SHELL_ARMOR EQU 1 +DITTO_LIMBER EQU 0 +EEVEE_RUN_AWAY EQU 0 +VAPOREON_WATER_ABSORB EQU 0 +JOLTEON_VOLT_ABSORB EQU 0 +FLAREON_FLASH_FIRE EQU 0 +PORYGON_TRACE EQU 0 +OMANYTE_SWIFT_SWIM EQU 0 +OMANYTE_SHELL_ARMOR EQU 1 +OMASTAR_SWIFT_SWIM EQU 0 +OMASTAR_SHELL_ARMOR EQU 1 +KABUTO_SWIFT_SWIM EQU 0 +KABUTO_BATTLE_ARMOR EQU 1 +KABUTOPS_SWIFT_SWIM EQU 0 +KABUTOPS_BATTLE_ARMOR EQU 1 +AERODACTYL_ROCK_HEAD EQU 0 +AERODACTYL_PRESSURE EQU 1 +SNORLAX_IMMUNITY EQU 0 +SNORLAX_THICK_FAT EQU 1 +ARTICUNO_PRESSURE EQU 0 +ZAPDOS_PRESSURE EQU 0 +MOLTRES_PRESSURE EQU 0 +DRATINI_SHED_SKIN EQU 0 +DRAGONAIR_SHED_SKIN EQU 0 +DRAGONITE_INNER_FOCUS EQU 0 +MEWTWO_PRESSURE EQU 0 +MEW_SYNCHRONIZE EQU 0 + +CHIKORITA_OVERGROW EQU 0 +BAYLEEF_OVERGROW EQU 0 +MEGANIUM_OVERGROW EQU 0 +CYNDAQUIL_BLAZE EQU 0 +QUILAVA_BLAZE EQU 0 +TYPHLOSION_BLAZE EQU 0 +TOTODILE_TORRENT EQU 0 +CROCONAW_TORRENT EQU 0 +FERALIGATR_TORRENT EQU 0 +SENTRET_RUN_AWAY EQU 0 +SENTRET_KEEN_EYE EQU 1 +FURRET_RUN_AWAY EQU 0 +FURRET_KEEN_EYE EQU 1 +HOOTHOOT_INSOMNIA EQU 0 +HOOTHOOT_KEEN_EYE EQU 1 +NOCTOWL_INSOMNIA EQU 0 +NOCTOWL_KEEN_EYE EQU 1 +LEDYBA_SWARM EQU 0 +LEDYBA_EARLY_BIRD EQU 1 +LEDIAN_SWARM EQU 0 +LEDIAN_EARLY_BIRD EQU 1 +SPINARAK_SWARM EQU 0 +SPINARAK_INSOMNIA EQU 1 +ARIADOS_SWARM EQU 0 +ARIADOS_INSOMNIA EQU 1 +CROBAT_INNER_FOCUS EQU 0 +CHINCHOU_VOLT_ABSORB EQU 0 +CHINCHOU_ILLUMINATE EQU 1 +LANTURN_VOLT_ABSORB EQU 0 +LANTURN_ILLUMINATE EQU 1 +PICHU_STATIC EQU 0 +CLEFFA_CUTE_CHARM EQU 0 +IGGLYBUFF_CUTE_CHARM EQU 0 +TOGEPI_HUSTLE EQU 0 +TOGEPI_SERENE_GRACE EQU 1 +TOGETIC_HUSTLE EQU 0 +TOGETIC_SERENE_GRACE EQU 1 +NATU_SYNCHRONIZE EQU 0 +NATU_EARLY_BIRD EQU 1 +XATU_SYNCHRONIZE EQU 0 +XATU_EARLY_BIRD EQU 1 +MAREEP_STATIC EQU 0 +FLAAFFY_STATIC EQU 0 +AMPHAROS_STATIC EQU 0 +BELLOSSOM_CHLOROPHYLL EQU 0 +MARILL_THICK_FAT EQU 0 +MARILL_HUGE_POWER EQU 1 +AZUMARILL_THICK_FAT EQU 0 +AZUMARILL_HUGE_POWER EQU 1 +SUDOWOODO_STURDY EQU 0 +SUDOWOODO_ROCK_HEAD EQU 1 +POLITOED_WATER_ABSORB EQU 0 +POLITOED_DAMP EQU 1 +HOPPIP_CHLOROPHYLL EQU 0 +SKIPLOOM_CHLOROPHYLL EQU 0 +JUMPLUFF_CHLOROPHYLL EQU 0 +AIPOM_RUN_AWAY EQU 0 +AIPOM_PICKUP EQU 1 +SUNKERN_CHLOROPHYLL EQU 0 +SUNFLORA_CHLOROPHYLL EQU 0 +YANMA_SPEED_BOOST EQU 0 +YANMA_COMPOUNDEYES EQU 1 +WOOPER_DAMP EQU 0 +WOOPER_WATER_ABSORB EQU 1 +QUAGSIRE_DAMP EQU 0 +QUAGSIRE_WATER_ABSORB EQU 1 +ESPEON_SYNCHRONIZE EQU 0 +UMBREON_SYNCHRONIZE EQU 0 +MURKROW_INSOMNIA EQU 0 +SLOWKING_OBLIVIOUS EQU 0 +SLOWKING_OWN_TEMPO EQU 1 +MISDREAVUS_LEVITATE EQU 0 +UNOWN_LEVITATE EQU 0 +WOBBUFFET_SHADOW_TAG EQU 0 +GIRAFARIG_INNER_FOCUS EQU 0 +GIRAFARIG_EARLY_BIRD EQU 1 +PINECO_STURDY EQU 0 +FORRETRESS_STURDY EQU 0 +DUNSPARCE_SERENE_GRACE EQU 0 +DUNSPARCE_RUN_AWAY EQU 1 +GLIGAR_HYPER_CUTTER EQU 0 +GLIGAR_SAND_VEIL EQU 1 +STEELIX_ROCK_HEAD EQU 0 +STEELIX_STURDY EQU 1 +SNUBBULL_INTIMIDATE EQU 0 +SNUBBULL_RUN_AWAY EQU 1 +GRANBULL_INTIMIDATE EQU 0 +QWILFISH_POISON_POINT EQU 0 +QWILFISH_SWIFT_SWIM EQU 1 +SCIZOR_SWARM EQU 0 +SHUCKLE_STURDY EQU 0 +HERACROSS_SWARM EQU 0 +HERACROSS_GUTS EQU 1 +SNEASEL_INNER_FOCUS EQU 0 +SNEASEL_KEEN_EYE EQU 1 +TEDDIURSA_PICKUP EQU 0 +URSARING_GUTS EQU 0 +SLUGMA_MAGMA_ARMOR EQU 0 +SLUGMA_FLAME_BODY EQU 1 +MAGCARGO_MAGMA_ARMOR EQU 0 +MAGCARGO_FLAME_BODY EQU 1 +SWINUB_OBLIVIOUS EQU 0 +PILOSWINE_OBLIVIOUS EQU 0 +CORSOLA_HUSTLE EQU 0 +CORSOLA_NATURAL_CURE EQU 1 +REMORAID_HUSTLE EQU 0 +OCTILLERY_SUCTION_CUPS EQU 0 +DELIBIRD_VITAL_SPIRIT EQU 0 +DELIBIRD_HUSTLE EQU 1 +MANTINE_SWIFT_SWIM EQU 0 +MANTINE_WATER_ABSORB EQU 1 +SKARMORY_KEEN_EYE EQU 0 +SKARMORY_STURDY EQU 1 +HOUNDOUR_EARLY_BIRD EQU 0 +HOUNDOUR_FLASH_FIRE EQU 1 +HOUNDOOM_EARLY_BIRD EQU 0 +HOUNDOOM_FLASH_FIRE EQU 1 +KINGDRA_SWIFT_SWIM EQU 0 +PHANPY_PICKUP EQU 0 +DONPHAN_STURDY EQU 0 +PORYGON2_TRACE EQU 0 +STANTLER_INTIMIDATE EQU 0 +SMEARGLE_OWN_TEMPO EQU 0 +TYROGUE_GUTS EQU 0 +HITMONTOP_INTIMIDATE EQU 0 +SMOOCHUM_OBLIVIOUS EQU 0 +ELEKID_STATIC EQU 0 +MAGBY_FLAME_BODY EQU 0 +MILTANK_THICK_FAT EQU 0 +BLISSEY_NATURAL_CURE EQU 0 +BLISSEY_SERENE_GRACE EQU 1 +RAIKOU_PRESSURE EQU 0 +ENTEI_PRESSURE EQU 0 +SUICUNE_PRESSURE EQU 0 +LARVITAR_GUTS EQU 0 +PUPITAR_SHED_SKIN EQU 0 +TYRANITAR_SAND_STREAM EQU 0 +LUGIA_PRESSURE EQU 0 +HO_OH_PRESSURE EQU 0 +CELEBI_NATURAL_CURE EQU 0 + +TREECKO_OVERGROW EQU 0 +GROVYLE_OVERGROW EQU 0 +SCEPTILE_OVERGROW EQU 0 +TORCHIC_BLAZE EQU 0 +COMBUSKEN_BLAZE EQU 0 +BLAZIKEN_BLAZE EQU 0 +MUDKIP_TORRENT EQU 0 +MARSHTOMP_TORRENT EQU 0 +SWAMPERT_TORRENT EQU 0 +POOCHYENA_RUN_AWAY EQU 0 +MIGHTYENA_INTIMIDATE EQU 0 +ZIGZAGOON_PICKUP EQU 0 +LINOONE_PICKUP EQU 0 +WURMPLE_SHIELD_DUST EQU 0 +SILCOON_SHED_SKIN EQU 0 +BEAUTIFLY_SWARM EQU 0 +CASCOON_SHED_SKIN EQU 0 +DUSTOX_SHIELD_DUST EQU 0 +LOTAD_SWIFT_SWIM EQU 0 +LOTAD_RAIN_DISH EQU 1 +LOMBRE_SWIFT_SWIM EQU 0 +LOMBRE_RAIN_DISH EQU 1 +LUDICOLO_SWIFT_SWIM EQU 0 +LUDICOLO_RAIN_DISH EQU 1 +SEEDOT_CHLOROPHYLL EQU 0 +SEEDOT_EARLY_BIRD EQU 1 +NUZLEAF_CHLOROPHYLL EQU 0 +NUZLEAF_EARLY_BIRD EQU 1 +SHIFTRY_CHLOROPHYLL EQU 0 +SHIFTRY_EARLY_BIRD EQU 1 +TAILLOW_GUTS EQU 0 +SWELLOW_GUTS EQU 0 +WINGULL_KEEN_EYE EQU 0 +PELIPPER_KEEN_EYE EQU 0 +RALTS_SYNCHRONIZE EQU 0 +RALTS_TRACE EQU 1 +KIRLIA_SYNCHRONIZE EQU 0 +KIRLIA_TRACE EQU 1 +GARDEVOIR_SYNCHRONIZE EQU 0 +GARDEVOIR_TRACE EQU 1 +SURSKIT_SWIFT_SWIM EQU 0 +MASQUERAIN_INTIMIDATE EQU 0 +SHROOMISH_EFFECT_SPORE EQU 0 +BRELOOM_EFFECT_SPORE EQU 0 +SLAKOTH_TRUANT EQU 0 +VIGOROTH_VITAL_SPIRIT EQU 0 +SLAKING_TRUANT EQU 0 +NINCADA_COMPOUNDEYES EQU 0 +NINJASK_SPEED_BOOST EQU 0 +SHEDINJA_WONDER_GUARD EQU 0 +WHISMUR_SOUNDPROOF EQU 0 +LOUDRED_SOUNDPROOF EQU 0 +EXPLOUD_SOUNDPROOF EQU 0 +MAKUHITA_THICK_FAT EQU 0 +MAKUHITA_GUTS EQU 1 +HARIYAMA_THICK_FAT EQU 0 +HARIYAMA_GUTS EQU 1 +AZURILL_THICK_FAT EQU 0 +AZURILL_HUGE_POWER EQU 1 +NOSEPASS_STURDY EQU 0 +NOSEPASS_MAGNET_PULL EQU 1 +SKITTY_CUTE_CHARM EQU 0 +DELCATTY_CUTE_CHARM EQU 0 +SABLEYE_KEEN_EYE EQU 0 +MAWILE_HYPER_CUTTER EQU 0 +MAWILE_INTIMIDATE EQU 1 +ARON_STURDY EQU 0 +ARON_ROCK_HEAD EQU 1 +LAIRON_STURDY EQU 0 +LAIRON_ROCK_HEAD EQU 1 +AGGRON_STURDY EQU 0 +AGGRON_ROCK_HEAD EQU 1 +MEDITITE_PURE_POWER EQU 0 +MEDICHAM_PURE_POWER EQU 0 +ELECTRIKE_STATIC EQU 0 +ELECTRIKE_LIGHTNINGROD EQU 1 +MANECTRIC_STATIC EQU 0 +MANECTRIC_LIGHTNINGROD EQU 1 +PLUSLE_PLUS EQU 0 +MINUN_MINUS EQU 0 +VOLBEAT_ILLUMINATE EQU 0 +VOLBEAT_SWARM EQU 1 +ILLUMISE_OBLIVIOUS EQU 0 +ROSELIA_NATURAL_CURE EQU 0 +ROSELIA_POISON_POINT EQU 1 +GULPIN_LIQUID_OOZE EQU 0 +GULIPN_STICKY_HOLD EQU 1 +SWALOT_LIQUID_OOZE EQU 0 +SWALOT_STICKY_HOLD EQU 1 +CARVANHA_ROUGH_SKIN EQU 0 +SHARPEDO_ROUGH_SKIN EQU 0 +WAILMER_WATER_VEIL EQU 0 +WAILMER_OBLIVIOUS EQU 1 +WAILORD_WATER_VEIL EQU 0 +WAILORD_OBLIVIOUS EQU 1 +NUMEL_OBLIVIOUS EQU 0 +CAMERUPT_MAGMA_ARMOR EQU 0 +TORKOAL_WHITE_SMOKE EQU 0 +SPOINK_THICK_FAT EQU 0 +SPOINK_OWN_TEMPO EQU 1 +GRUMPIG_THICK_FAT EQU 0 +GRUMPIG_OWN_TEMPO EQU 1 +SPINDA_OWN_TEMPO EQU 0 +TRAPINCH_HYPER_CUTTER EQU 0 +TRAPINCH_ARENA_TRAP EQU 1 +VIBRAVA_LEVITATE EQU 0 +FLYGON_LEVITATE EQU 0 +CACNEA_SAND_VEIL EQU 0 +CACTURNE_SAND_VEIL EQU 0 +SWABLU_NATURAL_CURE EQU 0 +ALTARIA_NATURAL_CURE EQU 0 +ZANGOOSE_IMMUNITY EQU 0 +SEVIPER_SHED_SKIN EQU 0 +LUNATONE_LEVITATE EQU 0 +SOLROCK_LEVITATE EQU 0 +BARBOACH_OBLIVIOUS EQU 0 +WHISCASH_OBLIVIOUS EQU 0 +CORPHISH_HYPER_CUTTER EQU 0 +CORPHISH_SHELL_ARMOR EQU 1 +CRAWDAUNT_HYPER_CUTTER EQU 0 +CRAWDAUNT_SHELL_ARMOR EQU 1 +BALTOY_LEVITATE EQU 0 +CLAYDOL_LEVITATE EQU 0 +LILEEP_SUCTION_CUPS EQU 0 +CRADILY_SUCTION_CUPS EQU 0 +ANORITH_BATTLE_ARMOR EQU 0 +ARMALDO_BATTLE_ARMOR EQU 0 +FEEBAS_SWIFT_SWIM EQU 0 +MILOTIC_MARVEL_SCALE EQU 0 +CASTFORM_FORECAST EQU 0 +KECLEON_COLOR_CHANGE EQU 0 +SHUPPET_INSOMNIA EQU 0 +BANETTE_INSOMNIA EQU 0 +DUSKULL_LEVITATE EQU 0 +DUSCLOPS_PRESSURE EQU 0 +TROPIUS_CHLOROPHYLL EQU 0 +CHIMECHO_LEVITATE EQU 0 +ABSOL_PRESSURE EQU 0 +WYNAUT_SHADOW_TAG EQU 0 +SNORUNT_INNER_FOCUS EQU 0 +GLALIE_INNER_FOCUS EQU 0 +SPHEAL_THICK_FAT EQU 0 +SEALEO_THICK_FAT EQU 0 +WALREIN_THICK_FAT EQU 0 +CLAMPERL_SHELL_ARMOR EQU 0 +HUNTAIL_SWIFT_SWIM EQU 0 +GOREBYSS_SWIFT_SWIM EQU 0 +RELICANTH_SWIFT_SWIM EQU 0 +RELICANTH_ROCK_HEAD EQU 1 +LUVDISC_SWIFT_SWIM EQU 0 +BAGON_ROCK_HEAD EQU 0 +SHELGON_ROCK_HEAD EQU 0 +SALAMENCE_INTIMIDATE EQU 0 +BELDUM_CLEAR_BODY EQU 0 +METANG_CLEAR_BODY EQU 0 +METAGROSS_CLEAR_BODY EQU 0 +REGIROCK_CLEAR_BODY EQU 0 +REGICE_CLEAR_BODY EQU 0 +REGISTEEL_CLEAR_BODY EQU 0 +LATIAS_LEVITATE EQU 0 +LATIOS_LEVITATE EQU 0 +KYOGRE_DRIZZLE EQU 0 +GROUDON_DROUGHT EQU 0 +RAYQUAZA_AIR_LOCK EQU 0 +JIRACHI_SERENE_GRACE EQU 0 +DEOXYS_PRESSURE EQU 0 diff --git a/constants/easychat.asm b/constants/easychat.asm new file mode 100644 index 0000000..b2bd144 --- /dev/null +++ b/constants/easychat.asm @@ -0,0 +1,1839 @@ +; POKéMON (Hoenn Pokédex) +_PIKACHU EQU $0019 +_RAICHU EQU $001A +_SANDSHREW EQU $001B +_SANDSLASH EQU $001C +_VULPIX EQU $0025 +_NINETALES EQU $0026 +_JIGGLYPUFF EQU $0027 +_WIGGLYTUFF EQU $0028 +_ZUBAT EQU $0029 +_GOLBAT EQU $002A +_ODDISH EQU $002B +_GLOOM EQU $002C +_VILEPLUME EQU $002D +_PSYDUCK EQU $0036 +_GOLDUCK EQU $0037 +_ABRA EQU $003F +_KADABRA EQU $0040 +_ALAKAZAM EQU $0041 +_MACHOP EQU $0042 +_MACHOKE EQU $0043 +_MACHAMP EQU $0044 +_TENTACOOL EQU $0048 +_TENTACRUEL EQU $0049 +_GEODUDE EQU $004A +_GRAVELER EQU $004B +_GOLEM EQU $004C +_MAGNEMITE EQU $0051 +_MAGNETON EQU $0052 +_DODUO EQU $0054 +_DODRIO EQU $0055 +_GRIMER EQU $0058 +_MUK EQU $0059 +_VOLTORB EQU $0064 +_ELECTRODE EQU $0065 +_KOFFING EQU $006D +_WEEZING EQU $006E +_RHYHORN EQU $006F +_RHYDON EQU $0070 +_HORSEA EQU $0074 +_SEADRA EQU $0075 +_GOLDEEN EQU $0076 +_SEAKING EQU $0077 +_STARYU EQU $0078 +_STARMIE EQU $0079 +_PINSIR EQU $007F +_MAGIKARP EQU $0081 +_GYARADOS EQU $0082 +_CROBAT EQU $00A9 +_CHINCHOU EQU $00AA +_LANTURN EQU $00AB +_PICHU EQU $00AC +_IGGLYBUFF EQU $00AE +_NATU EQU $00B1 +_XATU EQU $00B2 +_BELLOSSOM EQU $00B6 +_MARILL EQU $00B7 +_AZUMARILL EQU $00B8 +_WOBBUFFET EQU $00CA +_GIRAFARIG EQU $00CB +_HERACROSS EQU $00D6 +_SLUGMA EQU $00DA +_MAGCARGO EQU $00DB +_CORSOLA EQU $00DE +_SKARMORY EQU $00E3 +_KINGDRA EQU $00E6 +_PHANPY EQU $00E7 +_DONPHAN EQU $00E8 +_TREECKO EQU $0115 +_GROVYLE EQU $0116 +_SCEPTILE EQU $0117 +_TORCHIC EQU $0118 +_COMBUSKEN EQU $0119 +_BLAZIKEN EQU $011A +_MUDKIP EQU $011B +_MARSHTOMP EQU $011C +_SWAMPERT EQU $011D +_POOCHYENA EQU $011E +_MIGHTYENA EQU $011F +_ZIGZAGOON EQU $0120 +_LINOONE EQU $0121 +_WURMPLE EQU $0122 +_SILCOON EQU $0123 +_BEAUTIFLY EQU $0124 +_CASCOON EQU $0125 +_DUSTOX EQU $0126 +_LOTAD EQU $0127 +_LOMBRE EQU $0128 +_LUDICOLO EQU $0129 +_SEEDOT EQU $012A +_NUZLEAF EQU $012B +_SHIFTRY EQU $012C +_NINCADA EQU $012D +_NINJASK EQU $012E +_SHEDINJA EQU $012F +_TAILLOW EQU $0130 +_SWELLOW EQU $0131 +_SHROOMISH EQU $0132 +_BRELOOM EQU $0133 +_SPINDA EQU $0134 +_WINGULL EQU $0135 +_PELIPPER EQU $0136 +_SURSKIT EQU $0137 +_MASQUERAIN EQU $0138 +_WAILMER EQU $0139 +_WAILORD EQU $013A +_SKITTY EQU $013B +_DELCATTY EQU $013C +_KECLEON EQU $013D +_BALTOY EQU $013E +_CLAYDOL EQU $013F +_NOSEPASS EQU $0140 +_TORKOAL EQU $0141 +_SABLEYE EQU $0142 +_BARBOACH EQU $0143 +_WHISCASH EQU $0144 +_LUVDISC EQU $0145 +_CORPHISH EQU $0146 +_CRAWDAUNT EQU $0147 +_FEEBAS EQU $0148 +_MILOTIC EQU $0149 +_CARVANHA EQU $014A +_SHARPEDO EQU $014B +_TRAPINCH EQU $014C +_VIBRAVA EQU $014D +_FLYGON EQU $014E +_MAKUHITA EQU $014F +_HARIYAMA EQU $0150 +_ELECTRIKE EQU $0151 +_MANECTRIC EQU $0152 +_NUMEL EQU $0153 +_CAMERUPT EQU $0154 +_SPHEAL EQU $0155 +_SEALEO EQU $0156 +_WALREIN EQU $0157 +_CACNEA EQU $0158 +_CACTURNE EQU $0159 +_SNORUNT EQU $015A +_GLALIE EQU $015B +_LUNATONE EQU $015C +_SOLROCK EQU $015D +_AZURILL EQU $015E +_SPOINK EQU $015F +_GRUMPIG EQU $0160 +_PLUSLE EQU $0161 +_MINUN EQU $0162 +_MAWILE EQU $0163 +_MEDITITE EQU $0164 +_MEDICHAM EQU $0165 +_SWABLU EQU $0166 +_ALTARIA EQU $0167 +_WYNAUT EQU $0168 +_DUSKULL EQU $0169 +_DUSCLOPS EQU $016A +_ROSELIA EQU $016B +_SLAKOTH EQU $016C +_VIGOROTH EQU $016D +_SLAKING EQU $016E +_GULPIN EQU $016F +_SWALOT EQU $0170 +_TROPIUS EQU $0171 +_WHISMUR EQU $0172 +_LOUDRED EQU $0173 +_EXPLOUD EQU $0174 +_CLAMPERL EQU $0175 +_HUNTAIL EQU $0176 +_GOREBYSS EQU $0177 +_ABSOL EQU $0178 +_SHUPPET EQU $0179 +_BANETTE EQU $017A +_SEVIPER EQU $017B +_ZANGOOSE EQU $017C +_RELICANTH EQU $017D +_ARON EQU $017E +_LAIRON EQU $017F +_AGGRON EQU $0180 +_CASTFORM EQU $0181 +_VOLBEAT EQU $0182 +_ILLUMISE EQU $0183 +_LILEEP EQU $0184 +_CRADILY EQU $0185 +_ANORITH EQU $0186 +_ARMALDO EQU $0187 +_RALTS EQU $0188 +_KIRLIA EQU $0189 +_GARDEVOIR EQU $018A +_BAGON EQU $018B +_SHELGON EQU $018C +_SALAMENCE EQU $018D +_BELDUM EQU $018E +_METANG EQU $018F +_METAGROSS EQU $0190 +_REGIROCK EQU $0191 +_REGICE EQU $0192 +_REGISTEEL EQU $0193 +_KYOGRE EQU $0194 +_GROUDON EQU $0195 +_RAYQUAZA EQU $0196 +_LATIAS EQU $0197 +_LATIOS EQU $0198 +_JIRACHI EQU $0199 +_DEOXYS EQU $019A +_CHIMECHO EQU $019B + +; TRAINER +I_CHOOSE_YOU EQU $0200 +GOTCHA EQU $0201 +TRADE EQU $0202 +_SAPPHIRE EQU $0203 ; item +EVOLVE EQU $0204 +ENCYCLOPEDIA EQU $0205 +NATURE EQU $0206 +CENTER EQU $0207 +EGG EQU $0208 +LINK EQU $0209 +SP_ABILITY EQU $020A ; SP. ABILITY +TRAINER EQU $020B +VERSION EQU $020C +POKENAV EQU $020D ; POKéNAV +POKEMON EQU $020E ; POKéMON +GET EQU $020F +POKEDEX EQU $0210 ; POKéDEX +_RUBY EQU $0211 ; item +LEVEL EQU $0212 + +; STATUS +DARK EQU $0400 +STENCH EQU $0401 +THICK_FAT EQU $0402 +RAIN_DISH EQU $0403 +DRIZZLE EQU $0404 +ARENA_TRAP EQU $0405 +INTIMIDATE EQU $0406 +ROCK_HEAD EQU $0407 +COLOR EQU $0408 +ALT_COLOR EQU $0409 ; ALT. COLOR +ROCK EQU $040A +BEAUTIFUL EQU $040B +_BEAUTY EQU $040C ; trainer class +AIR_LOCK EQU $040D +_T_PSYCHIC EQU $040E ; trainer class AND move! +HYPER_CUTTER EQU $040F +FIGHTING EQU $0410 +SHADOW_TAG EQU $0411 +SMART EQU $0412 +SMARTNESS EQU $0413 +SPEED_BOOST EQU $0414 +COOL EQU $0415 +COOLNESS EQU $0416 +BATTLE_ARMOR EQU $0417 +CUTE EQU $0418 +CUTENESS EQU $0419 +STURDY EQU $041A +SUCTION_CUPS EQU $041B +GRASS EQU $041C +CLEAR_BODY EQU $041D +TORRENT EQU $041E +GHOST EQU $041F +ICE EQU $0420 +GUTS EQU $0421 +ROUGH_SKIN EQU $0422 +SHELL_ARMOR EQU $0423 +NATURAL_CURE EQU $0424 +DAMP EQU $0425 +GROUND EQU $0426 +LIMBER EQU $0427 +MAGNET_PULL EQU $0428 +WHITE_SMOKE EQU $0429 +SYNCHRONIZE EQU $042A +OVERGROW EQU $042B +SWIFT_SWIM EQU $042C +SAND_STREAM EQU $042D +SAND_VEIL EQU $042E +KEEN_EYE EQU $042F +INNER_FOCUS EQU $0430 +STATIC EQU $0431 +TYPE EQU $0432 +TOUGH EQU $0433 +TOUGHNESS EQU $0434 +SHED_SKIN EQU $0435 +HUGE_POWER EQU $0436 +VOLT_ABSORB EQU $0437 +WATER_ABSORB EQU $0438 +ELECTRIC EQU $0439 +FORECAST EQU $043A +SERENE_GRACE EQU $043B +POISON EQU $043C +POISON_POINT EQU $043D +DRAGON EQU $043E +TRACE EQU $043F +OBLIVIOUS EQU $0440 +TRUANT EQU $0441 +RUN_AWAY EQU $0442 +STICKY_HOLD EQU $0443 +CLOUD_NINE EQU $0444 +NORMAL EQU $0445 +STEEL EQU $0446 +ILLUMINATE EQU $0447 +EARLY_BIRD EQU $0448 +HUSTLE EQU $0449 +SHINE EQU $044A +FLYING EQU $044B +DROUGHT EQU $044C +LIGHTNINGROD EQU $044D +COMPOUNDEYES EQU $044E +MARVEL_SCALE EQU $044F +WONDER_GUARD EQU $0450 +INSOMNIA EQU $0451 +LEVITATE EQU $0452 +PLUS EQU $0453 +PRESSURE EQU $0454 +LIQUID_OOZE EQU $0455 +COLOR_CHANGE EQU $0456 +SOUNDPROOF EQU $0457 +EFFECT_SPORE EQU $0458 +PkRS EQU $0459 +FIRE EQU $045A +FLAME_BODY EQU $045B +MINUS EQU $045C +OWN_TEMPO EQU $045D +MAGMA_ARMOR EQU $045E +WATER EQU $045F +WATER_VEIL EQU $0460 +BUG EQU $0461 +SWARM EQU $0462 +CUTE_CHARM EQU $0463 +IMMUNITY EQU $0464 +BLAZE EQU $0465 +PICKUP EQU $0466 +PATTERN EQU $0467 +FLASH_FIRE EQU $0468 +VITAL_SPIRIT EQU $0469 +CHLOROPHYLL EQU $046A +PURE_POWER EQU $046B +SHIELD_DUST EQU $046C + +; BATTLE +MATCH_UP EQU $0600 +GO EQU $0601 +NO_1 EQU $0602 ; NO. 1 +DECIDE EQU $0603 +LET_ME_WIN EQU $0604 +WINS EQU $0605 +WIN EQU $0606 +WON EQU $0607 +IF_I_WIN EQU $0608 +WHEN_I_WIN EQU $0609 +CAN_T_WIN EQU $060A ; CAN’T WIN +CAN_WIN EQU $060B +NO_MATCH EQU $060C +SPIRIT EQU $060D +DECIDED EQU $060E +TRUMP_CARD EQU $060F +TAKE_THAT EQU $0610 +COME_ON EQU $0611 +ATTACK EQU $0612 +SURRENDER EQU $0613 +GUTSY EQU $0614 +TALENT EQU $0615 +STRATEGY EQU $0616 +SMITE EQU $0617 +MATCH EQU $0618 +VICTORY EQU $0619 +OFFENSIVE EQU $061A +SENSE EQU $061B +VERSUS EQU $061C +FIGHTS EQU $061D +POWER EQU $061E +CHALLENGE EQU $061F +STRONG EQU $0620 +TOO_STRONG EQU $0621 +GO_EASY EQU $0622 +FOE EQU $0623 +GENIUS EQU $0624 +LEGEND EQU $0625 +ESCAPE EQU $0626 +AIM EQU $0627 +BATTLE EQU $0628 +FIGHT EQU $0629 +RESUSCITATE EQU $062A +POINTS EQU $062B +SERIOUS EQU $062C +GIVE_UP EQU $062D +LOSS EQU $062E +IF_I_LOSE EQU $062F +LOST EQU $0630 +LOSE EQU $0631 +GUARD EQU $0632 +PARTNER EQU $0633 +REJECT EQU $0634 +ACCEPT EQU $0635 +INVINCIBLE EQU $0636 +RECEIVED EQU $0637 +EASY EQU $0638 +WEAK EQU $0639 +TOO_WEAK EQU $063A +PUSHOVER EQU $063B +_LEADER EQU $063C ; trainer class +RULE EQU $063D +MOVE EQU $063E + +; GREETINGS +THANKS EQU $0800 +YES EQU $0801 +HERE_GOES EQU $0802 +HERE_I_COME EQU $0803 +HERE_IT_IS EQU $0804 +YEAH EQU $0805 +WELCOME EQU $0806 +OI EQU $0807 +HOW_DO EQU $0808 +CONGRATS EQU $0809 +GIVE_ME EQU $080A +SORRY EQU $080B +APOLOGIZE EQU $080C +FORGIVE EQU $080D +HEY_THERE EQU $080E ; HEY, THERE +HELLO EQU $080F +GOOD_BYE EQU $0810 ; GOOD-BYE +THANK_YOU EQU $0811 +I_VE_ARRIVED EQU $0812 ; I’VE ARRIVED +PARDON EQU $0813 +EXCUSE EQU $0814 +SEE_YA EQU $0815 +EXCUSE_ME EQU $0816 +WELL_THEN EQU $0817 ; WELL, THEN +GO_AHEAD EQU $0818 +APPRECIATE EQU $0819 +HEY_ EQU $081A ; HEY? +WHAT_S_UP_ EQU $081B ; WHAT’S UP? +HUH_ EQU $081C ; HUH? +NO EQU $081D +HI EQU $081E +YEAH_YEAH EQU $081F ; YEAH, YEAH +BYE_BYE EQU $0820 ; BYE-BYE +MEET_YOU EQU $0821 +HEY EQU $0822 +SMELL EQU $0823 +LISTENING EQU $0824 +HOO_HAH EQU $0825 ; HOO-HAH +YAHOO EQU $0826 +YO EQU $0827 +COME_OVER EQU $0828 +COUNT_ON EQU $0829 + +; PEOPLE +OPPONENT EQU $0A00 +I EQU $0A01 +YOU EQU $0A02 +YOURS EQU $0A03 +SON EQU $0A04 +YOUR EQU $0A05 +YOU_RE EQU $0A06 ; YOU’RE +YOU_VE EQU $0A07 ; YOU’VE +MOTHER EQU $0A08 +GRANDFATHER EQU $0A09 +UNCLE EQU $0A0A +FATHER EQU $0A0B +BOY EQU $0A0C +ADULT EQU $0A0D +BROTHER EQU $0A0E +SISTER EQU $0A0F +GRANDMOTHER EQU $0A10 +AUNT EQU $0A11 +PARENT EQU $0A12 +MAN EQU $0A13 +ME EQU $0A14 +GIRL EQU $0A15 +BABE EQU $0A16 +FAMILY EQU $0A17 +HER EQU $0A18 +HIM EQU $0A19 +HE EQU $0A1A +PLACE EQU $0A1B +DAUGHTER EQU $0A1C +HIS EQU $0A1D +HE_S EQU $0A1E ; HE’S +AREN_T EQU $0A1F ; AREN’T +SIBLINGS EQU $0A20 +KID EQU $0A21 +CHILDREN EQU $0A22 +MR_ EQU $0A23 ; MR. +MRS_ EQU $0A24 ; MRS. +MYSELF EQU $0A25 +I_WAS EQU $0A26 +TO_ME EQU $0A27 +MY EQU $0A28 +I_AM EQU $0A29 +I_VE EQU $0A2A ; I’VE +WHO EQU $0A2B +SOMEONE EQU $0A2C +WHO_WAS EQU $0A2D +TO_WHOM EQU $0A2E +WHOSE EQU $0A2F +WHO_IS EQU $0A30 +IT_S EQU $0A31 ; IT’S +_LADY EQU $0A32 ; trainer class +FRIEND EQU $0A33 +ALLY EQU $0A34 +PERSON EQU $0A35 +DUDE EQU $0A36 +THEY EQU $0A37 +THEY_WERE EQU $0A38 +TO_THEM EQU $0A39 +THEIR EQU $0A3A +THEY_RE EQU $0A3B ; THEY’RE +THEY_VE EQU $0A3C ; THEY’VE +WE EQU $0A3D +BEEN EQU $0A3E +TO_US EQU $0A3F +OUR EQU $0A40 +WE_RE EQU $0A41 ; WE’RE +RIVAL EQU $0A42 +WE_VE EQU $0A43 ; WE’VE +WOMAN EQU $0A44 +SHE EQU $0A45 +SHE_WAS EQU $0A46 +TO_HER EQU $0A47 +HER_S EQU $0A48 ; HER’S +SHE_IS EQU $0A49 +SOME EQU $0A4A + +; VOICES +_EX EQU $0C00 ; ! +_EX_EX EQU $0C01 ; !! +_QU_EX EQU $0C02 ; ?! +_QU EQU $0C03 ; ? +_ELIP EQU $0C04 ; … +_ELIP_EX EQU $0C05 ; …! +_ELIP3 EQU $0C06 ; ……… +_HYPHEN EQU $0C07 ; - +_HYPHEN3 EQU $0C08 ; - - - +UH_OH EQU $0C09 ; UH-OH +WAAAH EQU $0C0A +AHAHA EQU $0C0B +OH_ EQU $0C0C ; OH? +NOPE EQU $0C0D +URGH EQU $0C0E +HMM EQU $0C0F +WHOAH EQU $0C10 +WROOOAAR_ EQU $0C11 ; WROOOAAR! +WOW EQU $0C12 +GIGGLE EQU $0C13 +SIGH EQU $0C14 +UNBELIEVABLE EQU $0C15 +CRIES EQU $0C16 +AGREE EQU $0C17 +EH_ EQU $0C18 ; EH? +CRY EQU $0C19 +EHEHE EQU $0C1A +OI_OI_OI EQU $0C1B ; OI, OI, OI +OH_YEAH EQU $0C1C ; OH, YEAH +OH EQU $0C1D +OOPS EQU $0C1E +SHOCKED EQU $0C1F +EEK EQU $0C20 +GRAAAH EQU $0C21 +GWAHAHAHA EQU $0C22 +WAY EQU $0C23 +TCH EQU $0C24 +HEHE EQU $0C25 +HAH EQU $0C26 +YUP EQU $0C27 +HAHAHA EQU $0C28 +AIYEEH EQU $0C29 +HIYAH EQU $0C2A +FUFUFU EQU $0C2B +LOL EQU $0C2C +SNORT EQU $0C2D +HUMPH EQU $0C2E +HEHEHE EQU $0C2F +HEH EQU $0C30 +HOHOHO EQU $0C31 +UH_HUH EQU $0C32 ; UH-HUH +OH_DEAR EQU $0C33 ; OH, DEAR +ARRGH EQU $0C34 +MUFUFU EQU $0C35 +MMM EQU $0C36 +OH_KAY EQU $0C37 ; OH-KAY +OKAY EQU $0C38 +LALALA EQU $0C39 +YAY EQU $0C3A +AWW EQU $0C3B +WOWEE EQU $0C3C +GWAH EQU $0C3D +WAHAHAHA EQU $0C3E + +; SPEECH +LISTEN EQU $0E00 +NOT_VERY EQU $0E01 +MEAN EQU $0E02 +LIE EQU $0E03 +LAY EQU $0E04 +RECOMMEND EQU $0E05 +NITWIT EQU $0E06 +QUITE EQU $0E07 +FROM EQU $0E08 +FEELING EQU $0E09 +BUT EQU $0E0A +HOWEVER EQU $0E0B +CASE EQU $0E0C +THE EQU $0E0D +MISS EQU $0E0E +HOW EQU $0E0F +HIT EQU $0E10 +ENOUGH EQU $0E11 +A_LOT EQU $0E12 +A_LITTLE EQU $0E13 +ABSOLUTELY EQU $0E14 +_AND EQU $0E15 ; rgbds keyword +ONLY EQU $0E16 +AROUND EQU $0E17 +PROBABLY EQU $0E18 +_IF EQU $0E19 ; rgbds keyword +VERY EQU $0E1A +A_TINY_BIT EQU $0E1B +WILD EQU $0E1C +THAT_S EQU $0E1D +JUST EQU $0E1E +EVEN_SO_ EQU $0E1F ; EVEN SO, +MUST_BE EQU $0E20 +NATURALLY EQU $0E21 +FOR_NOW_ EQU $0E22 ; FOR NOW, +UNDERSTOOD EQU $0E23 +JOKING EQU $0E24 +READY EQU $0E25 +SOMETHING EQU $0E26 +SOMEHOW EQU $0E27 +ALTHOUGH EQU $0E28 +ALSO EQU $0E29 +PERFECT EQU $0E2A +AS_MUCH_AS EQU $0E2B +REALLY EQU $0E2C +TRULY EQU $0E2D +SERIOUSLY EQU $0E2E +TOTALLY EQU $0E2F +UNTIL EQU $0E30 +AS_IF EQU $0E31 +MOOD EQU $0E32 +RATHER EQU $0E33 +AWFULLY EQU $0E34 +MODE EQU $0E35 +MORE EQU $0E36 +TOO_LATE EQU $0E37 +FINALLY EQU $0E38 +ANY EQU $0E39 +INSTEAD EQU $0E3A +FANTASTIC EQU $0E3B + +; ENDINGS +WILL EQU $1000 +WILL_BE_HERE EQU $1001 +_OR EQU $1002 ; rgbds keyword +TIMES EQU $1003 +WONDER EQU $1004 +IS_IT_ EQU $1005 ; IS IT? +BE EQU $1006 +GIMME EQU $1007 +COULD EQU $1008 +LIKELY_TO EQU $1009 +WOULD EQU $100A +IS EQU $100B +ISN_T_IT_ EQU $100C ; ISN’T IT? +LET_S EQU $100D ; LET’S +OTHER EQU $100E +ARE EQU $100F +WAS EQU $1010 +WERE EQU $1011 +THOSE EQU $1012 +ISN_T EQU $1013 ; ISN’T +WON_T EQU $1014 ; WON’T +CAN_T EQU $1015 ; CAN’T +CAN EQU $1016 +DON_T EQU $1017 ; DON’T +DO EQU $1018 +DOES EQU $1019 +WHOM EQU $101A +WHICH EQU $101B +WASN_T EQU $101C ; WASN’T +WEREN_T EQU $101D ; WEREN’T +HAVE EQU $101E +HAVEN_T EQU $101F ; HAVEN’T +_A EQU $1020 ; rgbds keyword +AN EQU $1021 +NOT EQU $1022 +THERE EQU $1023 +OK_ EQU $1024 ; OK? +SO EQU $1025 +MAYBE EQU $1026 +ABOUT EQU $1027 +OVER EQU $1028 +IT EQU $1029 +ALL EQU $102A +FOR EQU $102B +ON EQU $102C +OFF EQU $102D +AS EQU $102E +TO EQU $102F +WITH EQU $1030 +BETTER EQU $1031 +EVER EQU $1032 +SINCE EQU $1033 +OF EQU $1034 +BELONGS_TO EQU $1035 +AT EQU $1036 +IN EQU $1037 +OUT EQU $1038 +TOO EQU $1039 +LIKE EQU $103A +DID EQU $103B +DIDN_T EQU $103C ; DIDN’T +DOESN_T EQU $103D ; DOESN’T +WITHOUT EQU $103E +AFTER EQU $103F +BEFORE EQU $1040 +WHILE EQU $1041 +THAN EQU $1042 +ONCE EQU $1043 +ANYWHERE EQU $1044 + +; FEELINGS +MEET EQU $1200 +PLAY EQU $1201 +HURRIED EQU $1202 +GOES EQU $1203 +GIDDY EQU $1204 +HAPPY EQU $1205 +HAPPINESS EQU $1206 +EXCITE EQU $1207 +IMPORTANT EQU $1208 +FUNNY EQU $1209 +GOT EQU $120A +GO_HOME EQU $120B +DISAPPOINTED EQU $120C +DISAPPOINTS EQU $120D +SAD EQU $120E +TRY EQU $120F +TRIES EQU $1210 +HEARS EQU $1211 +THINK EQU $1212 +HEAR EQU $1213 +WANTS EQU $1214 +MISHEARD EQU $1215 +DISLIKE EQU $1216 +ANGRY EQU $1217 +ANGER EQU $1218 +SCARY EQU $1219 +LONESOME EQU $121A +DISAPPOINT EQU $121B +JOY EQU $121C +GETS EQU $121D +NEVER EQU $121E +DARN EQU $121F +DOWNCAST EQU $1220 +INCREDIBLE EQU $1221 +LIKES EQU $1222 +DISLIKES EQU $1223 +BORING EQU $1224 +CARE EQU $1225 +CARES EQU $1226 +ALL_RIGHT EQU $1227 +ADORE EQU $1228 +DISASTER EQU $1229 +ENJOY EQU $122A +ENJOYS EQU $122B +EAT EQU $122C +LACKING EQU $122D +BAD EQU $122E +HARD EQU $122F +TERRIBLE EQU $1230 +SHOULD EQU $1231 +NICE EQU $1232 +DRINK EQU $1233 +SURPRISE EQU $1234 +FEAR EQU $1235 +WANT EQU $1236 +WAIT EQU $1237 +SATISFIED EQU $1238 +SEE EQU $1239 +RARE EQU $123A +NEGATIVE EQU $123B +DONE EQU $123C +DANGER EQU $123D +DEFEATED EQU $123E +BEAT EQU $123F +GREAT EQU $1240 +ROMANTIC EQU $1241 +QUESTION EQU $1242 +UNDERSTAND EQU $1243 +UNDERSTANDS EQU $1244 + +; CONDITIONS +HOT EQU $1400 +EXISTS EQU $1401 +EXCESS EQU $1402 +APPROVED EQU $1403 +HAS EQU $1404 +GOOD EQU $1405 +LESS EQU $1406 +MOMENTUM EQU $1407 +GOING EQU $1408 +WEIRD EQU $1409 +BUSY EQU $140A +TOGETHER EQU $140B +FULL EQU $140C +ABSENT EQU $140D +BEING EQU $140E +NEED EQU $140F +TASTY EQU $1410 +SKILLED EQU $1411 +NOISY EQU $1412 +BIG EQU $1413 +LATE EQU $1414 +CLOSE EQU $1415 +DOCILE EQU $1416 +AMUSING EQU $1417 +ENTERTAINING EQU $1418 +PERFECTION EQU $1419 +PRETTY EQU $141A +HEALTHY EQU $141B +EXCELLENT EQU $141C +UPSIDE_DOWN EQU $141D +COLD EQU $141E +REFRESHING EQU $141F +UNAVOIDABLE EQU $1420 +MUCH EQU $1421 +OVERWHELMING EQU $1422 +FABULOUS EQU $1423 +_ELSE EQU $1424 ; rgbds keyword +EXPENSIVE EQU $1425 +CORRECT EQU $1426 +IMPOSSIBLE EQU $1427 +SMALL EQU $1428 +DIFFERENT EQU $1429 +TIRED EQU $142A +SKILL EQU $142B +TOP EQU $142C +NON_STOP EQU $142D ; NON-STOP +PREPOSTEROUS EQU $142E +NONE EQU $142F +NOTHING EQU $1430 +NATURAL EQU $1431 +BECOMES EQU $1432 +LUKEWARM EQU $1433 +FAST EQU $1434 +LOW EQU $1435 +AWFUL EQU $1436 +ALONE EQU $1437 +BORED EQU $1438 +SECRET EQU $1439 +MYSTERY EQU $143A +LACKS EQU $143B +BEST EQU $143C +LOUSY EQU $143D +MISTAKE EQU $143E +KIND EQU $143F +WELL EQU $1440 +WEAKENED EQU $1441 +SIMPLE EQU $1442 +SEEMS EQU $1443 +BADLY EQU $1444 + +; ACTIONS +MEETS EQU $1600 +CONCEDE EQU $1601 +GIVE EQU $1602 +GIVES EQU $1603 +PLAYED EQU $1604 +PLAYS EQU $1605 +COLLECT EQU $1606 +WALKING EQU $1607 +WALKS EQU $1608 +SAYS EQU $1609 +WENT EQU $160A +SAID EQU $160B +WAKE_UP EQU $160C +WAKES_UP EQU $160D +ANGERS EQU $160E +TEACH EQU $160F +TEACHES EQU $1610 +PLEASE EQU $1611 +LEARN EQU $1612 +CHANGE EQU $1613 +STORY EQU $1614 +TRUST EQU $1615 +LAVISH EQU $1616 +LISTENS EQU $1617 +HEARING EQU $1618 +TRAINS EQU $1619 +CHOOSE EQU $161A +COME EQU $161B +CAME EQU $161C +SEARCH EQU $161D +MAKE EQU $161E +CAUSE EQU $161F +KNOW EQU $1620 +KNOWS EQU $1621 +REFUSE EQU $1622 +STORES EQU $1623 +BRAG EQU $1624 +IGNORANT EQU $1625 +THINKS EQU $1626 +BELIEVE EQU $1627 +SLIDE EQU $1628 +EATS EQU $1629 +USE EQU $162A +USES EQU $162B +USING EQU $162C +COULDN_T EQU $162D ; COULDN’T +CAPABLE EQU $162E +DISAPPEAR EQU $162F +APPEAR EQU $1630 +THROW EQU $1631 +WORRY EQU $1632 +SLEPT EQU $1633 +SLEEP EQU $1634 +RELEASE EQU $1635 +DRINKS EQU $1636 +RUNS EQU $1637 +RUN EQU $1638 +WORKS EQU $1639 +WORKING EQU $163A +TALKING EQU $163B +TALK EQU $163C +SINK EQU $163D +SMACK EQU $163E +PRETEND EQU $163F +PRAISE EQU $1640 +OVERDO EQU $1641 +SHOW EQU $1642 +LOOKS EQU $1643 +SEES EQU $1644 +SEEK EQU $1645 +OWN EQU $1646 +TAKE EQU $1647 +ALLOW EQU $1648 +FORGET EQU $1649 +FORGETS EQU $164A +APPEARS EQU $164B +FAINT EQU $164C +FAINTED EQU $164D + +; LIFESTYLE +CHORES EQU $1800 +_HOME EQU $1801 ; rgbds keyword +MONEY EQU $1802 +ALLOWANCE EQU $1803 +BATH EQU $1804 +CONVERSATION EQU $1805 +SCHOOL EQU $1806 +COMMEMORATE EQU $1807 +HABIT EQU $1808 +GROUP EQU $1809 +WORD EQU $180A +STORE EQU $180B +SERVICE EQU $180C +WORK EQU $180D +SYSTEM EQU $180E +TRAIN EQU $180F +CLASS EQU $1810 +LESSONS EQU $1811 +INFORMATION EQU $1812 +LIVING EQU $1813 +TEACHER EQU $1814 +TOURNAMENT EQU $1815 +_LETTER EQU $1816 ; item +EVENT EQU $1817 +DIGITAL EQU $1818 +TEST EQU $1819 +DEPT_STORE EQU $181A ; DEPT. STORE +TELEVISION EQU $181B +PHONE EQU $181C +ITEM EQU $181D +NAME EQU $181E +NEWS EQU $181F +POPULAR EQU $1820 +PARTY EQU $1821 +STUDY EQU $1822 +MACHINE EQU $1823 +MAIL EQU $1824 +MESSAGE EQU $1825 +PROMISE EQU $1826 +DREAM EQU $1827 +KINDERGARTEN EQU $1828 +LIFE EQU $1829 +RADIO EQU $182A +RENTAL EQU $182B +WORLD EQU $182C + +; HOBBIES +IDOL EQU $1A00 +ANIME EQU $1A01 +SONG EQU $1A02 +MOVIE EQU $1A03 +SWEETS EQU $1A04 +CHAT EQU $1A05 +CHILD_S_PLAY EQU $1A06 +TOYS EQU $1A07 +MUSIC EQU $1A08 +CARDS EQU $1A09 +SHOPPING EQU $1A0A +CAMERA EQU $1A0B +VIEWING EQU $1A0C +SPECTATOR EQU $1A0D +GOURMET EQU $1A0E +GAME EQU $1A0F +RPG EQU $1A10 +COLLECTION EQU $1A11 +COMPLETE EQU $1A12 +MAGAZINE EQU $1A13 +WALK EQU $1A14 +BIKE EQU $1A15 +HOBBY EQU $1A16 +SPORTS EQU $1A17 +SOFTWARE EQU $1A18 +SONGS EQU $1A19 +DIET EQU $1A1A +TREASURE EQU $1A1B +TRAVEL EQU $1A1C +DANCE EQU $1A1D +CHANNEL EQU $1A1E +MAKING EQU $1A1F +FISHING EQU $1A20 +DATE EQU $1A21 +DESIGN EQU $1A22 +LOCOMOTIVE EQU $1A23 +PLUSH_DOLL EQU $1A24 +PC EQU $1A25 +FLOWERS EQU $1A26 +HERO EQU $1A27 +NAP EQU $1A28 +HEROINE EQU $1A29 +FASHION EQU $1A2A +ADVENTURE EQU $1A2B +BOARD EQU $1A2C +BALL EQU $1A2D +BOOK EQU $1A2E +FESTIVAL EQU $1A2F +COMICS EQU $1A30 +HOLIDAY EQU $1A31 +PLANS EQU $1A32 +TRENDY EQU $1A33 +VACATION EQU $1A34 +LOOK EQU $1A35 + +; TIME +FALL EQU $1C00 +MORNING EQU $1C01 +TOMORROW EQU $1C02 +LAST EQU $1C03 +DAY EQU $1C04 +SOMETIME EQU $1C05 +ALWAYS EQU $1C06 +CURRENT EQU $1C07 +FOREVER EQU $1C08 +DAYS EQU $1C09 +END EQU $1C0A +TUESDAY EQU $1C0B +YESTERDAY EQU $1C0C +TODAY EQU $1C0D +FRIDAY EQU $1C0E +MONDAY EQU $1C0F +LATER EQU $1C10 +EARLIER EQU $1C11 +ANOTHER EQU $1C12 +TIME EQU $1C13 +FINISH EQU $1C14 +WEDNESDAY EQU $1C15 +SOON EQU $1C16 +START EQU $1C17 +MONTH EQU $1C18 +_STOP EQU $1C19 ; rgbds keyword +NOW EQU $1C1A +FINAL EQU $1C1B +NEXT EQU $1C1C +AGE EQU $1C1D +SATURDAY EQU $1C1E +SUMMER EQU $1C1F +SUNDAY EQU $1C20 +BEGINNING EQU $1C21 +SPRING EQU $1C22 +DAYTIME EQU $1C23 +WINTER EQU $1C24 +DAILY EQU $1C25 +OLDEN EQU $1C26 +ALMOST EQU $1C27 +NEARLY EQU $1C28 +THURSDAY EQU $1C29 +NIGHTTIME EQU $1C2A +NIGHT EQU $1C2B +WEEK EQU $1C2C + +; MISC. +HIGHS EQU $1E00 +LOWS EQU $1E01 +UM EQU $1E02 +REAR EQU $1E03 +THINGS EQU $1E04 +THING EQU $1E05 +BELOW EQU $1E06 +ABOVE EQU $1E07 +BACK EQU $1E08 +HIGH EQU $1E09 +HERE EQU $1E0A +INSIDE EQU $1E0B +OUTSIDE EQU $1E0C +BESIDE EQU $1E0D +THIS_IS_IT_ EQU $1E0E ; THIS IS IT! +THIS EQU $1E0F +EVERY EQU $1E10 +THESE EQU $1E11 +THESE_WERE EQU $1E12 +DOWN EQU $1E13 +THAT EQU $1E14 +THOSE_ARE EQU $1E15 +THOSE_WERE EQU $1E16 +THAT_S_IT_ EQU $1E17 ; THAT’S IT! +AM EQU $1E18 +THAT_WAS EQU $1E19 +FRONT EQU $1E1A +UP EQU $1E1B +CHOICE EQU $1E1C +FAR EQU $1E1D +AWAY EQU $1E1E +NEAR EQU $1E1F +WHERE EQU $1E20 +WHEN EQU $1E21 +WHAT EQU $1E22 +DEEP EQU $1E23 +SHALLOW EQU $1E24 +WHY EQU $1E25 +CONFUSED EQU $1E26 +OPPOSITE EQU $1E27 +LEFT EQU $1E28 +RIGHT EQU $1E29 + +; ADJECTIVES +WANDERING EQU $2000 +RICKETY EQU $2001 +ROCK_SOLID EQU $2002 ; ROCK-SOLID +HUNGRY EQU $2003 +TIGHT EQU $2004 +TICKLISH EQU $2005 +TWIRLING EQU $2006 +SPIRALING EQU $2007 +THIRSTY EQU $2008 +LOLLING EQU $2009 +SILKY EQU $200A +SADLY EQU $200B +HOPELESS EQU $200C +USELESS EQU $200D +DROOLING EQU $200E +EXCITING EQU $200F +THICK EQU $2010 +SMOOTH EQU $2011 +SLIMY EQU $2012 +THIN EQU $2013 +BREAK EQU $2014 +VORACIOUS EQU $2015 +SCATTER EQU $2016 +AWESOME EQU $2017 +WIMPY EQU $2018 +WOBBLY EQU $2019 +SHAKY EQU $201A +RIPPED EQU $201B +SHREDDED EQU $201C +INCREASING EQU $201D +YET EQU $201E +DESTROYED EQU $201F +FIERY EQU $2020 +LOVEY_DOVEY EQU $2021 +HAPPILY EQU $2022 +ANTICIPATION EQU $2023 + +; EVENT +APPEAL EQU $2200 +EVENTS EQU $2201 +STAY_AT_HOME EQU $2202 ; STAY-AT-HOME +BERRY EQU $2203 +CONTEST EQU $2204 +MC EQU $2205 +JUDGE EQU $2206 +SUPER EQU $2207 +STAGE EQU $2208 +HALL_OF_FAME EQU $2209 +EVOLUTION EQU $220A +HYPER EQU $220B +BATTLE_TOWER EQU $220C +LEADERS EQU $220D +BATTLE_ROOM EQU $220E +HIDDEN EQU $220F +SECRET_BASE EQU $2210 +BLEND EQU $2211 +POKEBLOCK EQU $2212 ; \{POKéBLOCK} +MASTER EQU $2213 +RANK EQU $2214 +RIBBON EQU $2215 + +; MOVE 1 +_KARATE_CHOP EQU $2402 +_DOUBLESLAP EQU $2403 +_THUNDERPUNCH EQU $2409 +_RAZOR_WIND EQU $240D +_CUT EQU $240F +_GUST EQU $2410 +_FLY EQU $2413 +_BIND EQU $2414 +_SAND_ATTACK EQU $241C +_HEADBUTT EQU $241D +_THRASH EQU $2425 +_DOUBLE_EDGE EQU $2426 +_TAIL_WHIP EQU $2427 +_BITE EQU $242C +_SING EQU $242F +_SONICBOOM EQU $2431 +_DISABLE EQU $2432 +_FLAMETHROWER EQU $2435 +_MIST EQU $2436 +_PSYBEAM EQU $243C +_AURORA_BEAM EQU $243E +_SUBMISSION EQU $2442 +_LOW_KICK EQU $2443 +_COUNTER EQU $2444 +_STRENGTH EQU $2446 +_ABSORB EQU $2447 +_GROWTH EQU $244A +_SOLARBEAM EQU $244C +_STUN_SPORE EQU $244E +_STRING_SHOT EQU $2451 +_THUNDERBOLT EQU $2455 +_THUNDER EQU $2457 +_ROCK_THROW EQU $2458 +_EARTHQUAKE EQU $2459 +_FISSURE EQU $245A +_DIG EQU $245B +_PSYCHIC EQU $245E +_HYPNOSIS EQU $245F +_AGILITY EQU $2461 +_RAGE EQU $2463 +_SCREECH EQU $2467 +_DOUBLE_TEAM EQU $2468 +_RECOVER EQU $2469 +_HARDEN EQU $246A +_SMOKESCREEN EQU $246C +_CONFUSE_RAY EQU $246D +_WITHDRAW EQU $246E +_HAZE EQU $2472 +_FOCUS_ENERGY EQU $2474 +_BIDE EQU $2475 +_MIRROR_MOVE EQU $2477 +_SELFDESTRUCT EQU $2478 +_LICK EQU $247A +_SMOG EQU $247B +_CLAMP EQU $2480 +_SWIFT EQU $2481 +_CONSTRICT EQU $2484 +_KINESIS EQU $2486 +_LEECH_LIFE EQU $248D +_LOVELY_KISS EQU $248E +_SKY_ATTACK EQU $248F +_BUBBLE EQU $2491 +_SPORE EQU $2493 +_PSYWAVE EQU $2495 +_CRABHAMMER EQU $2498 +_ROCK_SLIDE EQU $249D +_SHARPEN EQU $249F +_SUPER_FANG EQU $24A2 +_SLASH EQU $24A3 +_SKETCH EQU $24A6 +_SPIDER_WEB EQU $24A9 +_MIND_READER EQU $24AA +_NIGHTMARE EQU $24AB +_FLAME_WHEEL EQU $24AC +_SNORE EQU $24AD +_FLAIL EQU $24AF +_AEROBLAST EQU $24B1 +_REVERSAL EQU $24B3 +_SPITE EQU $24B4 +_POWDER_SNOW EQU $24B5 +_SCARY_FACE EQU $24B8 +_OCTAZOOKA EQU $24BE +_ICY_WIND EQU $24C4 +_OUTRAGE EQU $24C8 +_SANDSTORM EQU $24C9 +_GIGA_DRAIN EQU $24CA +_ENDURE EQU $24CB +_CHARM EQU $24CC +_ROLLOUT EQU $24CD +_SWAGGER EQU $24CF +_SPARK EQU $24D1 +_MEAN_LOOK EQU $24D4 +_HEAL_BELL EQU $24D7 +_RETURN EQU $24D8 +_SAFEGUARD EQU $24DB +_PAIN_SPLIT EQU $24DC +_SACRED_FIRE EQU $24DD +_ENCORE EQU $24E3 +_PURSUIT EQU $24E4 +_RAPID_SPIN EQU $24E5 +_SWEET_SCENT EQU $24E6 +_IRON_TAIL EQU $24E7 +_VITAL_THROW EQU $24E9 +_MORNING_SUN EQU $24EA +_SYNTHESIS EQU $24EB +_CROSS_CHOP EQU $24EE +_RAIN_DANCE EQU $24F0 +_CRUNCH EQU $24F2 +_PSYCH_UP EQU $24F4 +_EXTREMESPEED EQU $24F5 +_ANCIENTPOWER EQU $24F6 +_SHADOW_BALL EQU $24F7 +_ROCK_SMASH EQU $24F9 +_WHIRLPOOL EQU $24FA +_UPROAR EQU $24FD +_HAIL EQU $2502 +_TORMENT EQU $2503 +_FLATTER EQU $2504 +_WILL_O_WISP EQU $2505 +_MEMENTO EQU $2506 +_FACADE EQU $2507 +_FOCUS_PUNCH EQU $2508 +_SMELLINGSALT EQU $2509 +_FOLLOW_ME EQU $250A +_NATURE_POWER EQU $250B +_CHARGE EQU $250C +_BRICK_BREAK EQU $2518 +_YAWN EQU $2519 +_ENDEAVOR EQU $251B +_SKILL_SWAP EQU $251D +_GRUDGE EQU $2520 +_ICE_BALL EQU $252D +_METEOR_MASH EQU $2535 +_ASTONISH EQU $2536 +_WEATHER_BALL EQU $2537 +_AROMATHERAPY EQU $2538 +_FAKE_TEARS EQU $2539 +_AIR_CUTTER EQU $253A +_OVERHEAT EQU $253B +_ODOR_SLEUTH EQU $253C +_ROCK_TOMB EQU $253D +_SILVER_WIND EQU $253E +_METAL_SOUND EQU $253F +_GRASSWHISTLE EQU $2540 +_TICKLE EQU $2541 +_COSMIC_POWER EQU $2542 +_WATER_SPOUT EQU $2543 +_SIGNAL_BEAM EQU $2544 +_SHADOW_PUNCH EQU $2545 +_EXTRASENSORY EQU $2546 +_SKY_UPPERCUT EQU $2547 +_SAND_TOMB EQU $2548 +_SHEER_COLD EQU $2549 + +; MOVE 2 +_POUND EQU $2601 +_COMET_PUNCH EQU $2604 +_MEGA_PUNCH EQU $2605 +_PAY_DAY EQU $2606 +_FIRE_PUNCH EQU $2607 +_ICE_PUNCH EQU $2608 +_SCRATCH EQU $260A +_VICEGRIP EQU $260B +_GUILLOTINE EQU $260C +_SWORDS_DANCE EQU $260E +_WING_ATTACK EQU $2611 +_WHIRLWIND EQU $2612 +_SLAM EQU $2615 +_VINE_WHIP EQU $2616 +_STOMP EQU $2617 +_DOUBLE_KICK EQU $2618 +_MEGA_KICK EQU $2619 +_JUMP_KICK EQU $261A +_ROLLING_KICK EQU $261B +_HORN_ATTACK EQU $261E +_FURY_ATTACK EQU $261F +_HORN_DRILL EQU $2620 +_TACKLE EQU $2621 +_BODY_SLAM EQU $2622 +_WRAP EQU $2623 +_TAKE_DOWN EQU $2624 +_POISON_STING EQU $2628 +_TWINEEDLE EQU $2629 +_PIN_MISSILE EQU $262A +_LEER EQU $262B +_GROWL EQU $262D +_ROAR EQU $262E +_SUPERSONIC EQU $2630 +_ACID EQU $2633 +_EMBER EQU $2634 +_WATER_GUN EQU $2637 +_HYDRO_PUMP EQU $2638 +_SURF EQU $2639 +_ICE_BEAM EQU $263A +_BLIZZARD EQU $263B +_BUBBLEBEAM EQU $263D +_HYPER_BEAM EQU $263F +_PECK EQU $2640 +_DRILL_PECK EQU $2641 +_SEISMIC_TOSS EQU $2645 +_MEGA_DRAIN EQU $2648 +_LEECH_SEED EQU $2649 +_RAZOR_LEAF EQU $264B +_POISONPOWDER EQU $264D +_SLEEP_POWDER EQU $264F +_PETAL_DANCE EQU $2650 +_DRAGON_RAGE EQU $2652 +_FIRE_SPIN EQU $2653 +_THUNDERSHOCK EQU $2654 +_THUNDER_WAVE EQU $2656 +_TOXIC EQU $265C +_CONFUSION EQU $265D +_MEDITATE EQU $2660 +_QUICK_ATTACK EQU $2662 +_TELEPORT EQU $2664 +_NIGHT_SHADE EQU $2665 +_MIMIC EQU $2666 +_MINIMIZE EQU $266B +_DEFENSE_CURL EQU $266F +_BARRIER EQU $2670 +_LIGHT_SCREEN EQU $2671 +_REFLECT EQU $2673 +_METRONOME EQU $2676 +_EGG_BOMB EQU $2679 +_SLUDGE EQU $267C +_BONE_CLUB EQU $267D +_FIRE_BLAST EQU $267E +_WATERFALL EQU $267F +_SKULL_BASH EQU $2682 +_SPIKE_CANNON EQU $2683 +_AMNESIA EQU $2685 +_SOFTBOILED EQU $2687 +_HI_JUMP_KICK EQU $2688 +_GLARE EQU $2689 +_DREAM_EATER EQU $268A +_POISON_GAS EQU $268B +_BARRAGE EQU $268C +_TRANSFORM EQU $2690 +_DIZZY_PUNCH EQU $2692 +_FLASH EQU $2694 +_SPLASH EQU $2696 +_ACID_ARMOR EQU $2697 +_EXPLOSION EQU $2699 +_FURY_SWIPES EQU $269A +_BONEMERANG EQU $269B +_REST EQU $269C +_HYPER_FANG EQU $269E +_CONVERSION EQU $26A0 +_TRI_ATTACK EQU $26A1 +_SUBSTITUTE EQU $26A4 +_STRUGGLE EQU $26A5 +_TRIPLE_KICK EQU $26A7 +_THIEF EQU $26A8 +_CURSE EQU $26AE +_CONVERSION_2 EQU $26B0 +_COTTON_SPORE EQU $26B2 +_PROTECT EQU $26B6 +_MACH_PUNCH EQU $26B7 +_FAINT_ATTACK EQU $26B9 +_SWEET_KISS EQU $26BA +_BELLY_DRUM EQU $26BB +_SLUDGE_BOMB EQU $26BC +_MUD_SLAP EQU $26BD +_SPIKES EQU $26BF +_ZAP_CANNON EQU $26C0 +_FORESIGHT EQU $26C1 +_DESTINY_BOND EQU $26C2 +_PERISH_SONG EQU $26C3 +_DETECT EQU $26C5 +_BONE_RUSH EQU $26C6 +_LOCK_ON EQU $26C7 +_FALSE_SWIPE EQU $26CE +_MILK_DRINK EQU $26D0 +_FURY_CUTTER EQU $26D2 +_STEEL_WING EQU $26D3 +_ATTRACT EQU $26D5 +_SLEEP_TALK EQU $26D6 +_PRESENT EQU $26D9 +_FRUSTRATION EQU $26DA +_MAGNITUDE EQU $26DE +_DYNAMICPUNCH EQU $26DF +_MEGAHORN EQU $26E0 +_DRAGONBREATH EQU $26E1 +_BATON_PASS EQU $26E2 +_METAL_CLAW EQU $26E8 +_MOONLIGHT EQU $26EC +_HIDDEN_POWER EQU $26ED +_TWISTER EQU $26EF +_SUNNY_DAY EQU $26F1 +_MIRROR_COAT EQU $26F3 +_FUTURE_SIGHT EQU $26F8 +_BEAT_UP EQU $26FB +_FAKE_OUT EQU $26FC +_STOCKPILE EQU $26FE +_SPIT_UP EQU $26FF +_SWALLOW EQU $2700 +_HEAT_WAVE EQU $2701 +_TAUNT EQU $270D +_HELPING_HAND EQU $270E +_TRICK EQU $270F +_ROLE_PLAY EQU $2710 +_WISH EQU $2711 +_ASSIST EQU $2712 +_INGRAIN EQU $2713 +_SUPERPOWER EQU $2714 +_MAGIC_COAT EQU $2715 +_RECYCLE EQU $2716 +_REVENGE EQU $2717 +_KNOCK_OFF EQU $271A +_ERUPTION EQU $271C +_IMPRISON EQU $271E +_REFRESH EQU $271F +_SNATCH EQU $2721 +_SECRET_POWER EQU $2722 +_DIVE EQU $2723 +_ARM_THRUST EQU $2724 +_CAMOUFLAGE EQU $2725 +_TAIL_GLOW EQU $2726 +_LUSTER_PURGE EQU $2727 +_MIST_BALL EQU $2728 +_FEATHERDANCE EQU $2729 +_TEETER_DANCE EQU $272A +_BLAZE_KICK EQU $272B +_MUD_SPORT EQU $272C +_NEEDLE_ARM EQU $272E +_SLACK_OFF EQU $272F +_HYPER_VOICE EQU $2730 +_POISON_FANG EQU $2731 +_CRUSH_CLAW EQU $2732 +_MUDDY_WATER EQU $274A +_BULLET_SEED EQU $274B +_AERIAL_ACE EQU $274C +_IRON_DEFENSE EQU $274E +_BLOCK EQU $274F +_HOWL EQU $2750 +_DRAGON_CLAW EQU $2751 +_BULK_UP EQU $2753 +_BOUNCE EQU $2754 +_MUD_SHOT EQU $2755 +_POISON_TAIL EQU $2756 +_COVET EQU $2757 +_MAGICAL_LEAF EQU $2759 +_WATER_SPORT EQU $275A +_CALM_MIND EQU $275B +_LEAF_BLADE EQU $275C +_DRAGON_DANCE EQU $275D +_ROCK_BLAST EQU $275E +_SHOCK_WAVE EQU $275F +_WATER_PULSE EQU $2760 + +; TRENDY SAYING +KTHX_BYE_ EQU $2800 ; KTHX, BYE. +YES_SIR_ EQU $2801 ; YES, SIR! +AVANT_GARDE EQU $2802 +COUPLE EQU $2803 +MUCH_OBLIGED EQU $2804 +YEEHAW_ EQU $2805 ; YEEHAW! +MEGA EQU $2806 +_1_HIT_KO_ EQU $2807 ; 1-HIT KO! +DESTINY EQU $2808 +CANCEL EQU $2809 +NEW EQU $280A +FLATTEN EQU $280B +KIDDING EQU $280C +LOSER EQU $280D +LOSING EQU $280E +HAPPENING EQU $280F +HIP_AND EQU $2810 +SHAKE EQU $2811 +SHADY EQU $2812 +UPBEAT EQU $2813 +MODERN EQU $2814 +SMELL_YA EQU $2815 +BANG EQU $2816 +KNOCKOUT EQU $2817 +HASSLE EQU $2818 +WINNER EQU $2819 +FEVER EQU $281A +WANNABE EQU $281B +BABY EQU $281C +HEART EQU $281D +OLD EQU $281E +YOUNG EQU $281F +UGLY EQU $2820 + +; POKéMON2 (Johto Pokédex) +; these have double underscores, because 67 of them are also in the Hoenn Pokédex +__BULBASAUR EQU $2A01 +__IVYSAUR EQU $2A02 +__VENUSAUR EQU $2A03 +__CHARMANDER EQU $2A04 +__CHARMELEON EQU $2A05 +__CHARIZARD EQU $2A06 +__SQUIRTLE EQU $2A07 +__WARTORTLE EQU $2A08 +__BLASTOISE EQU $2A09 +__CATERPIE EQU $2A0A +__METAPOD EQU $2A0B +__BUTTERFREE EQU $2A0C +__WEEDLE EQU $2A0D +__KAKUNA EQU $2A0E +__BEEDRILL EQU $2A0F +__PIDGEY EQU $2A10 +__PIDGEOTTO EQU $2A11 +__PIDGEOT EQU $2A12 +__RATTATA EQU $2A13 +__RATICATE EQU $2A14 +__SPEAROW EQU $2A15 +__FEAROW EQU $2A16 +__EKANS EQU $2A17 +__ARBOK EQU $2A18 +__PIKACHU EQU $2A19 +__RAICHU EQU $2A1A +__SANDSHREW EQU $2A1B +__SANDSLASH EQU $2A1C +__NIDORAN_F EQU $2A1D +__NIDORINA EQU $2A1E +__NIDOQUEEN EQU $2A1F +__NIDORAN_M EQU $2A20 +__NIDORINO EQU $2A21 +__NIDOKING EQU $2A22 +__CLEFAIRY EQU $2A23 +__CLEFABLE EQU $2A24 +__VULPIX EQU $2A25 +__NINETALES EQU $2A26 +__JIGGLYPUFF EQU $2A27 +__WIGGLYTUFF EQU $2A28 +__ZUBAT EQU $2A29 +__GOLBAT EQU $2A2A +__ODDISH EQU $2A2B +__GLOOM EQU $2A2C +__VILEPLUME EQU $2A2D +__PARAS EQU $2A2E +__PARASECT EQU $2A2F +__VENONAT EQU $2A30 +__VENOMOTH EQU $2A31 +__DIGLETT EQU $2A32 +__DUGTRIO EQU $2A33 +__MEOWTH EQU $2A34 +__PERSIAN EQU $2A35 +__PSYDUCK EQU $2A36 +__GOLDUCK EQU $2A37 +__MANKEY EQU $2A38 +__PRIMEAPE EQU $2A39 +__GROWLITHE EQU $2A3A +__ARCANINE EQU $2A3B +__POLIWAG EQU $2A3C +__POLIWHIRL EQU $2A3D +__POLIWRATH EQU $2A3E +__ABRA EQU $2A3F +__KADABRA EQU $2A40 +__ALAKAZAM EQU $2A41 +__MACHOP EQU $2A42 +__MACHOKE EQU $2A43 +__MACHAMP EQU $2A44 +__BELLSPROUT EQU $2A45 +__WEEPINBELL EQU $2A46 +__VICTREEBEL EQU $2A47 +__TENTACOOL EQU $2A48 +__TENTACRUEL EQU $2A49 +__GEODUDE EQU $2A4A +__GRAVELER EQU $2A4B +__GOLEM EQU $2A4C +__PONYTA EQU $2A4D +__RAPIDASH EQU $2A4E +__SLOWPOKE EQU $2A4F +__SLOWBRO EQU $2A50 +__MAGNEMITE EQU $2A51 +__MAGNETON EQU $2A52 +__FARFETCH_D EQU $2A53 +__DODUO EQU $2A54 +__DODRIO EQU $2A55 +__SEEL EQU $2A56 +__DEWGONG EQU $2A57 +__GRIMER EQU $2A58 +__MUK EQU $2A59 +__SHELLDER EQU $2A5A +__CLOYSTER EQU $2A5B +__GASTLY EQU $2A5C +__HAUNTER EQU $2A5D +__GENGAR EQU $2A5E +__ONIX EQU $2A5F +__DROWZEE EQU $2A60 +__HYPNO EQU $2A61 +__KRABBY EQU $2A62 +__KINGLER EQU $2A63 +__VOLTORB EQU $2A64 +__ELECTRODE EQU $2A65 +__EXEGGCUTE EQU $2A66 +__EXEGGUTOR EQU $2A67 +__CUBONE EQU $2A68 +__MAROWAK EQU $2A69 +__HITMONLEE EQU $2A6A +__HITMONCHAN EQU $2A6B +__LICKITUNG EQU $2A6C +__KOFFING EQU $2A6D +__WEEZING EQU $2A6E +__RHYHORN EQU $2A6F +__RHYDON EQU $2A70 +__CHANSEY EQU $2A71 +__TANGELA EQU $2A72 +__KANGASKHAN EQU $2A73 +__HORSEA EQU $2A74 +__SEADRA EQU $2A75 +__GOLDEEN EQU $2A76 +__SEAKING EQU $2A77 +__STARYU EQU $2A78 +__STARMIE EQU $2A79 +__MR_MIME EQU $2A7A +__SCYTHER EQU $2A7B +__JYNX EQU $2A7C +__ELECTABUZZ EQU $2A7D +__MAGMAR EQU $2A7E +__PINSIR EQU $2A7F +__TAUROS EQU $2A80 +__MAGIKARP EQU $2A81 +__GYARADOS EQU $2A82 +__LAPRAS EQU $2A83 +__DITTO EQU $2A84 +__EEVEE EQU $2A85 +__VAPOREON EQU $2A86 +__JOLTEON EQU $2A87 +__FLAREON EQU $2A88 +__PORYGON EQU $2A89 +__OMANYTE EQU $2A8A +__OMASTAR EQU $2A8B +__KABUTO EQU $2A8C +__KABUTOPS EQU $2A8D +__AERODACTYL EQU $2A8E +__SNORLAX EQU $2A8F +__ARTICUNO EQU $2A90 +__ZAPDOS EQU $2A91 +__MOLTRES EQU $2A92 +__DRATINI EQU $2A93 +__DRAGONAIR EQU $2A94 +__DRAGONITE EQU $2A95 +__MEWTWO EQU $2A96 +__MEW EQU $2A97 +__CHIKORITA EQU $2A98 +__BAYLEEF EQU $2A99 +__MEGANIUM EQU $2A9A +__CYNDAQUIL EQU $2A9B +__QUILAVA EQU $2A9C +__TYPHLOSION EQU $2A9D +__TOTODILE EQU $2A9E +__CROCONAW EQU $2A9F +__FERALIGATR EQU $2AA0 +__SENTRET EQU $2AA1 +__FURRET EQU $2AA2 +__HOOTHOOT EQU $2AA3 +__NOCTOWL EQU $2AA4 +__LEDYBA EQU $2AA5 +__LEDIAN EQU $2AA6 +__SPINARAK EQU $2AA7 +__ARIADOS EQU $2AA8 +__CROBAT EQU $2AA9 +__CHINCHOU EQU $2AAA +__LANTURN EQU $2AAB +__PICHU EQU $2AAC +__CLEFFA EQU $2AAD +__IGGLYBUFF EQU $2AAE +__TOGEPI EQU $2AAF +__TOGETIC EQU $2AB0 +__NATU EQU $2AB1 +__XATU EQU $2AB2 +__MAREEP EQU $2AB3 +__FLAAFFY EQU $2AB4 +__AMPHAROS EQU $2AB5 +__BELLOSSOM EQU $2AB6 +__MARILL EQU $2AB7 +__AZUMARILL EQU $2AB8 +__SUDOWOODO EQU $2AB9 +__POLITOED EQU $2ABA +__HOPPIP EQU $2ABB +__SKIPLOOM EQU $2ABC +__JUMPLUFF EQU $2ABD +__AIPOM EQU $2ABE +__SUNKERN EQU $2ABF +__SUNFLORA EQU $2AC0 +__YANMA EQU $2AC1 +__WOOPER EQU $2AC2 +__QUAGSIRE EQU $2AC3 +__ESPEON EQU $2AC4 +__UMBREON EQU $2AC5 +__MURKROW EQU $2AC6 +__SLOWKING EQU $2AC7 +__MISDREAVUS EQU $2AC8 +__UNOWN EQU $2AC9 +__WOBBUFFET EQU $2ACA +__GIRAFARIG EQU $2ACB +__PINECO EQU $2ACC +__FORRETRESS EQU $2ACD +__DUNSPARCE EQU $2ACE +__GLIGAR EQU $2ACF +__STEELIX EQU $2AD0 +__SNUBBULL EQU $2AD1 +__GRANBULL EQU $2AD2 +__QWILFISH EQU $2AD3 +__SCIZOR EQU $2AD4 +__SHUCKLE EQU $2AD5 +__HERACROSS EQU $2AD6 +__SNEASEL EQU $2AD7 +__TEDDIURSA EQU $2AD8 +__URSARING EQU $2AD9 +__SLUGMA EQU $2ADA +__MAGCARGO EQU $2ADB +__SWINUB EQU $2ADC +__PILOSWINE EQU $2ADD +__CORSOLA EQU $2ADE +__REMORAID EQU $2ADF +__OCTILLERY EQU $2AE0 +__DELIBIRD EQU $2AE1 +__MANTINE EQU $2AE2 +__SKARMORY EQU $2AE3 +__HOUNDOUR EQU $2AE4 +__HOUNDOOM EQU $2AE5 +__KINGDRA EQU $2AE6 +__PHANPY EQU $2AE7 +__DONPHAN EQU $2AE8 +__PORYGON2 EQU $2AE9 +__STANTLER EQU $2AEA +__SMEARGLE EQU $2AEB +__TYROGUE EQU $2AEC +__HITMONTOP EQU $2AED +__SMOOCHUM EQU $2AEE +__ELEKID EQU $2AEF +__MAGBY EQU $2AF0 +__MILTANK EQU $2AF1 +__BLISSEY EQU $2AF2 +__RAIKOU EQU $2AF3 +__ENTEI EQU $2AF4 +__SUICUNE EQU $2AF5 +__LARVITAR EQU $2AF6 +__PUPITAR EQU $2AF7 +__TYRANITAR EQU $2AF8 +__LUGIA EQU $2AF9 +__HO_OH EQU $2AFA +__CELEBI EQU $2AFB + +BLANK EQU $FFFF \ No newline at end of file diff --git a/constants/easychat.ods b/constants/easychat.ods new file mode 100644 index 0000000000000000000000000000000000000000..9d7f7c6aaa43973147f95b7ac28c58f636070e1d GIT binary patch literal 181488 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 z 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

bIi+sN3w+QuC7&C8o@ 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 vY2t5qe(CWaEI%FgcOkh~> 8) + ENDM +; ld [\1], a +LD_IND_A: MACRO + db $32, (\1 & $FF), (\1 >> 8) + ENDM + +; ld hl, [\1] +LD_HL_IND: MACRO + db $2A, (\1 & $FF), (\1 >> 8) + ENDM +; ld a, [\1] +LD_A_IND: MACRO + db $3A + dw \1 + ENDM + +; ld b, [hl] +;LD_B_HL_IND: MACRO +; db $46 +; ENDM +; ld c, [hl] +;LD_C_HL_IND: MACRO +; db $4E +; ENDM + +; ld l, [hl] +;LD_L_HL_IND: MACRO +; db $6E +; ENDM + +; ld [hl], b +;LD_IND_HL_B: MACRO +; db $70 +; ENDM +; ld [hl], c +;LD_IND_HL_C: MACRO +; db $71 +; ENDM + +waita: MACRO + ld a, \1 + db $76 + ENDM +; ld [hl], a +LD_IND_HL_A: MACRO + db $77 + ENDM + +; add a, [hl] +ADD_A_HL_IND: MACRO + db $86 + ENDM + +EX_DE_HL: MACRO + db $EB + ENDM + +wait: MACRO + db $D3, \1 + ENDM + +API: MACRO + db ($C7 + (\1 & $100) >> 5), (\1 & $FF) ; $C7 for API $0xx, $CF for API $1xx + ENDM + + + +dd: MACRO + dw (\1) & $FFFF + dw (\1) >> 16 + ENDM + +RGB: MACRO + dw (\1) | ((\2) << 5) | ((\3) << 10) + ENDM + +GBAPTR: MACRO + dd $02000000 + \2 - \1 + ENDM + +Insert_Prologue: MACRO + db "GameFreak inc." + db 0,0,0,0,0,0 + dd \1 + db \2 + REPT 8 - STRLEN(\2) + db 0 + ENDR + db 0,0,0,0,$01,$55 + db 0,0,0,0 + db \3 + db 0 + db "GameFreak inc." + db 0,0 + ENDM + +Insert_Header: MACRO + db $01,0,0,0,$02,\1,0,\1,0,0,0,$04,0,$80,$01,0,0 + ENDM + +REGION_JP EQU $01 +REGION_EN EQU $02 + +; types of card data +VARIABLE_LENGTH EQU $02 +INSTANT_SCRIPT EQU $05 +IN_GAME_SCRIPT EQU $06 +CUSTOM_BERRY EQU $07 +MIX_RECORDS_ITEM EQU $0B +BATTLE_TRAINER EQU $0D +MULTIPLE_DATA EQU $10 + + +; names for some API functions based on Martin Korth’s GBATEK +; http://problemkaputt.de/gbatek.htm +FadeIn: MACRO + ld a, \1 + API $000 + ENDM +API_02C: MACRO + ld hl, $0000 + push hl + ld bc, \1 + ld de, \2 + IF \3 == 0 + xor a ; save a byte + ELSE + ld a, \3 + ENDC + API $02C + ENDM +LoadCustomBackground: MACRO + ld de, \1 + IF \2 == 0 + xor a ; save a byte + ELSE + ld a, \2 + ENDC + API $02D + ENDM +SetSpritePos: MACRO + ld bc, \3 + ld de, \2 + LD_HL_IND \1 + API $032 + ENDM +SpriteShow: MACRO + LD_HL_IND \1 + API $046 + ENDM +SpriteHide: MACRO + LD_HL_IND \1 + API $047 + ENDM +SpriteMirrorToggle: MACRO + ld e, \1 + LD_HL_IND \2 + API $048 + ENDM +CreateCustomSprite: MACRO + ld e, \2 + ld hl, \3 + API $04D + LD_IND_HL \1 + ENDM +SetBackgroundPalette: MACRO + ld c, \1 + ld de, \2 + ld hl, \3 + API $07E + ENDM +API_084: MACRO + ld l, \4 + push hl + ld bc, \3 + ld de, \2 + LD_HL_IND \1 + API $084 + ENDM +CreateRegion: MACRO + ld bc, (\2 << 8 + \3) + ld de, (\4 << 8 + \5) + ld hl, (\6 << 8 + \7) + API $090 + LD_IND_A \1 + ENDM +SetRegionColor: MACRO + ld e, \2 + LD_A_IND \1 + API $091 + ENDM +CLEAR_REGION: MACRO + LD_A_IND \1 + API $092 + ENDM +SetTextColor: MACRO + ld de, (\2 << 8 + \3) + LD_A_IND \1 + API $098 + ENDM +DrawText: MACRO + CLEAR_REGION \1 + ld bc, \2 + ld de, (\3 << 8 + \4) + LD_A_IND \1 + API $099 + ENDM +SetTextSize: MACRO + API $09A + ENDM +API_09B: MACRO + ld de, \2 + LD_A_IND \1 + API $09B + ENDM +API_0C7: MACRO + ld hl, \1 + API $0C7 + ENDM +EXIT: MACRO + API $100 + ENDM +API_106: MACRO + ld de, \1 + ld hl, \2 + API $106 + ENDM +SOUND_PAUSE: MACRO + API $116 + ENDM +IS_SOUND_PLAYING: MACRO + API $08D + ld b, $00 + ld e, $01 + ld hl, $0006 + API $119 + ld a, \1 + EXIT + ENDM +API_121: MACRO + ld de, $0000 + ld hl, $0000 + API $121 + ENDM + +CommonFunction1: MACRO ; Beauty Ellie 1A31, Eon Ticket 1B38 + ret c + nop + wait 32 + ld l, $02 + push hl + ld bc, $B9A0 + ld de, $0076 + ld a, $08 + API $0C4 + pop bc +.asm_1b64 + API $0DB + + cp $01 + jr z, .asm_1b6f + API $0DB + or a + jr nz, .asm_1b76 +.asm_1b6f + waita $01 + API $0C5 + jr .asm_1b64 + +.asm_1b76 + waita $01 + LD_HL_IND $00C2 + ld a, l + and $02 + jr z, .asm_1b90 + + IS_SOUND_PLAYING 2 ; exit + +.asm_1b90 + API $0CA + cp $02 + jr c, .asm_1b76 + ENDM + +CommonFunction2: MACRO ; Beauty Ellie 1AA6, Eon Ticket 1BAF +.asm_1baf + waita $01 + API $0DB + + ld l, a + ld h, $00 + LD_IND_HL \1 ; Eon Ticket 1914 + API $0CA + + cp $02 + jr nc, .asm_1bd4 + + ld hl, \2 ; Eon Ticket 0078 + SOUND_PAUSE + + IS_SOUND_PLAYING 1 ; return + +.asm_1bd4 + LD_HL_IND \1 + ld a, l + sub $04 + or h + jr z, .asm_1be6 + + LD_HL_IND \1 + ld a, l + sub $03 + or h + jr nz, .asm_1baf +.asm_1be6 + ENDM + +CommonFunction3: MACRO ; Beauty Ellie 1AE0, Eon Ticket 1BE6 + DRAW_TEXT \1, \2, 8, 4 + + ld de, $0040 + ld hl, \9 + API $106 + +.asm_1bfe + waita $01 + + ld hl, \3 + API $0C8 + + or a + jr nz, .asm_1c18 + + IS_SOUND_PLAYING 1 ; return + +.asm_1c18 + LD_HL_IND \3 + LD_IND_HL \4 + ld a, l + cp $22 + jr nz, .asm_1bfe + + ld a, h + cp $22 + jr nz, .asm_1bfe + + ld de, $003c + ld hl, \5 + call \7 + + ld de, $1800 + ld hl, \6 + call \7 + + ld hl, $5fff + LD_IND_HL \8 + API_0C7 \8 + ENDM \ No newline at end of file diff --git a/scripts/berrychecksum.py b/scripts/berrychecksum.py new file mode 100644 index 0000000..a973dc2 --- /dev/null +++ b/scripts/berrychecksum.py @@ -0,0 +1,16 @@ +import struct +import sys + +out = open(sys.argv[2], 'w') +sum = 0 +with open(sys.argv[1], 'rb') as f: + while True: + byte = f.read(1) + if not byte: + break + + sum += ord(byte) + out.write(byte) +f.closed + +out.write(struct.pack(' 0: + output += ",$FF" + for i in range(len(characters) + 1, pad_length): + output += ",$00" + + else: + output += token + even = not even + + else: + asm = asm.replace("\\0", "\",$00,\"") + asm = asm.replace("é", "\x7F") + output = asm + + out.write(output) +f.closed diff --git a/scripts/scriptchecksum.py b/scripts/scriptchecksum.py new file mode 100644 index 0000000..d40a12d --- /dev/null +++ b/scripts/scriptchecksum.py @@ -0,0 +1,28 @@ +import struct +import sys + +out = open(sys.argv[2], 'w') +sum = 0x1121 +len = 0 +with open(sys.argv[1], 'rb') as f: + while True: + byte = f.read(1) + if not byte: + break + + sum ^= ord(byte) + for i in range(8): + if(sum & 1): + sum = (sum >> 1) ^ 0x8408 + else: + sum >>= 1 + len += 1 + sum = ~sum & 0xFFFF +f.closed + +out.write(struct.pack('