diff --git a/src/constants.asm b/src/constants.asm index df14e09..ef5320c 100644 --- a/src/constants.asm +++ b/src/constants.asm @@ -4,12 +4,14 @@ INCLUDE "constants/animation_constants.asm" INCLUDE "constants/attack_animation_constants.asm" INCLUDE "constants/card_constants.asm" INCLUDE "constants/card_data_constants.asm" +INCLUDE "constants/challenge_cup_constants.asm" INCLUDE "constants/coin_constants.asm" INCLUDE "constants/credits_constants.asm" INCLUDE "constants/deck_ai_constants.asm" INCLUDE "constants/deck_constants.asm" INCLUDE "constants/duel_constants.asm" INCLUDE "constants/duel_interface_constants.asm" +INCLUDE "constants/game_center_constants.asm" INCLUDE "constants/gfx_constants.asm" INCLUDE "constants/intro_constants.asm" INCLUDE "constants/map_constants.asm" diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm index 2df60a3..e85028a 100644 --- a/src/constants/card_data_constants.asm +++ b/src/constants/card_data_constants.asm @@ -93,6 +93,7 @@ DEF PKMN_CARD_DATA_LENGTH EQU _RS ; $42 const PSYCHIC ; $05 DEF NUM_COLORED_TYPES EQU const_value const COLORLESS ; $06 +DEF NUM_PKMN_TYPES EQU const_value const RAINBOW ; $07 DEF NUM_TYPES EQU const_value @@ -163,20 +164,20 @@ DEF PRESENT_PACK EQU 7 ; booster pack constants const_def - const BOOSTER_BEGINNING_POKEMON ; $0 - const BOOSTER_LEGENDARY_POWER ; $1 - const BOOSTER_ISLAND_OF_FOSSIL ; $2 - const BOOSTER_PSYCHIC_BATTLE ; $3 - const BOOSTER_SKY_FLYING_POKEMON ; $4 - const BOOSTER_WE_ARE_TEAM_ROCKET ; $5 - const BOOSTER_TEAM_ROCKETS_AMBITION ; $6 - const BOOSTER_DEBUG_1 ; $7 - const BOOSTER_PRESENT_PACK_1 ; $8 - const BOOSTER_PRESENT_PACK_2 ; $9 - const BOOSTER_PRESENT_PACK_3 ; $a - const BOOSTER_PRESENT_PACK_4 ; $b - const BOOSTER_PRESENT_PACK_5 ; $c - const BOOSTER_DEBUG_2 ; $d + const BOOSTER_BEGINNING_POKEMON ; $0 + const BOOSTER_LEGENDARY_POWER ; $1 + const BOOSTER_ISLAND_OF_FOSSIL ; $2 + const BOOSTER_PSYCHIC_BATTLE ; $3 + const BOOSTER_SKY_FLYING_POKEMON ; $4 + const BOOSTER_WE_ARE_TEAM_ROCKET ; $5 + const BOOSTER_TEAM_ROCKETS_AMBITION ; $6 + const BOOSTER_DEBUG_10_STAR ; $7 + const BOOSTER_PRESENT_10_ENERGY ; $8 + const BOOSTER_PRESENT_FROM_ALL_SETS ; $9 + const BOOSTER_PRESENT_FROM_NON_ROCKET_SETS ; $a + const BOOSTER_PRESENT_FROM_LATTER_4_SETS ; $b + const BOOSTER_PRESENT_FROM_ROCKET_SETS ; $c + const BOOSTER_DEBUG_2_STAR ; $d ; real card set constants const_def @@ -195,10 +196,12 @@ DEF PRESENT_PACK EQU 7 DEF NUM_CARDS_IN_BOOSTER EQU 10 ; CARD_DATA_STAGE constants -DEF BASIC EQU $00 -DEF STAGE1 EQU $01 -DEF STAGE2 EQU $02 -DEF STAGE2_WITHOUT_STAGE1 EQU $03 + const_def + const BASIC ; 0 + const STAGE1 ; 1 + const STAGE2 ; 2 +DEF NUM_REGULAR_EVO_STAGES EQU const_value + const STAGE2_WITHOUT_STAGE1 ; 3 ; CARD_DATA_WEAKNESS and CARD_DATA_RESISTANCE constants DEF WR_FIRE EQU $80 @@ -313,3 +316,17 @@ DEF CARD_RECEIVE_STRUCT_ALT_RECEIVED_TEXT RW ; $9 DEF CARD_RECEIVE_STRUCT_TEXTS_SIZE EQU _RS - CARD_RECEIVE_STRUCT_TEXTS ; $9 DEF CARD_RECEIVE_STRUCT_SIZE EQU _RS ; $b + +; wDeckCheckCardCounts struct +RSRESET +DEF DECKCHECKSTRUCT_ENERGY RB ; $00 +DEF DECKCHECKSTRUCT_BASIC_PKMN RB ; $01 +DEF DECKCHECKSTRUCT_STAGE1_PKMN RB ; $02 +DEF DECKCHECKSTRUCT_STAGE2_PKMN RB ; $03 +DEF DECKCHECKSTRUCT_TRAINER RB ; $04 +DEF DECKCHECKSTRUCT_ENERGY_PER_TYPE RB NUM_TYPES ; $05 +DEF DECKCHECKSTRUCT_PKMN_PER_TYPE RB NUM_TYPES ; $0d +DEF DECKCHECKSTRUCT_ENERGY_SURPLUS RB NUM_TYPES ; $15 +DEF DECKCHECKSTRUCT_RAINBOW_ENERGY RB ; $1d + +DEF DECKCHECKSTRUCT_LENGTH EQU _RS ; $1e diff --git a/src/constants/challenge_cup_constants.asm b/src/constants/challenge_cup_constants.asm new file mode 100644 index 0000000..a6b1d66 --- /dev/null +++ b/src/constants/challenge_cup_constants.asm @@ -0,0 +1,27 @@ +; cup opponents + const_def + const GRANDMASTERCUP_GENE ; 0 + const GRANDMASTERCUP_MITCH ; 1 + const GRANDMASTERCUP_NIKKI ; 2 + const GRANDMASTERCUP_RICK ; 3 + const GRANDMASTERCUP_AMY ; 4 + const GRANDMASTERCUP_KEN ; 5 + const GRANDMASTERCUP_ISAAC ; 6 + const GRANDMASTERCUP_MURRAY ; 7 + const GRANDMASTERCUP_RONALD ; 8 +DEF NUM_GRANDMASTERCUP_OPPONENT_IDS EQU const_value + +DEF NUM_GRANDMASTERCUP_DUELISTS EQU 8 +DEF NUM_GRANDMASTERCUP_OPPONENTS EQU NUM_GRANDMASTERCUP_DUELISTS - 1 ; 7 + +; cup prizes +DEF NUM_GRANDMASTERCUP_PRIZE_POOL EQU 37 + + const_def + const GRANDMASTERCUP_PRIZE_0 ; 0 + const GRANDMASTERCUP_PRIZE_1 ; 1 + const GRANDMASTERCUP_PRIZE_2 ; 2 + const GRANDMASTERCUP_PRIZE_3 ; 3 + +DEF NUM_TCG_CHALLENGE_CUP_PRIZE_POOL EQU 17 +DEF NUM_GR_CHALLENGE_CUP_PRIZE_POOL EQU 17 diff --git a/src/constants/game_center_constants.asm b/src/constants/game_center_constants.asm new file mode 100644 index 0000000..32394b9 --- /dev/null +++ b/src/constants/game_center_constants.asm @@ -0,0 +1,32 @@ +DEF MAX_CHIPS EQU 9999 + +; bet / chips per play +DEF CHIPS_BET_BLACK_BOX EQU 5 +DEF CHIPS_BET_BILLS_PC EQU 20 +DEF CHIPS_BET_COIN_FLIP EQU 1 +DEF CHIPS_BET_SLOT_1 EQU 1 +DEF CHIPS_BET_SLOT_5 EQU 5 +DEF CHIPS_BET_DUNGEON_10 EQU 10 +DEF CHIPS_BET_DUNGEON_20 EQU 20 +DEF CHIPS_BET_DUNGEON_30 EQU 30 +DEF CHIPS_BET_DUNGEON_50 EQU 50 +DEF CHIPS_BET_DUNGEON_100 EQU 100 + +; coin flip +DEF MIN_NUM_GAMECENTER_COIN_FLIP_STREAK EQU 3 + +DEF CHIPS_COIN_FLIP_STREAK_3 EQU 20 +DEF CHIPS_COIN_FLIP_STREAK_4 EQU 40 +DEF CHIPS_COIN_FLIP_STREAK_5 EQU 100 +DEF CHIPS_COIN_FLIP_STREAK_6 EQU 200 +DEF CHIPS_COIN_FLIP_STREAK_7 EQU 500 +DEF CHIPS_COIN_FLIP_STREAK_8 EQU 1000 +DEF CHIPS_COIN_FLIP_STREAK_9 EQU 3000 + +DEF MAX_NUM_GAMECENTER_COIN_FLIP_STREAK EQU 10 + +; black box +; insert 5 promos -> +[1, 5] bonus cards +DEF MAX_NUM_BLACK_BOX_INPUT EQU 5 +DEF MAX_NUM_BLACK_BOX_OUTPUT EQU 10 +DEF BLACK_BOX_OUTPUT_BYTES EQU 2 * MAX_NUM_BLACK_BOX_OUTPUT diff --git a/src/constants/menu_constants.asm b/src/constants/menu_constants.asm index 4b0fcf3..bd023ac 100644 --- a/src/constants/menu_constants.asm +++ b/src/constants/menu_constants.asm @@ -31,13 +31,50 @@ const STARTMENU_NEW_GAME ; 2 const STARTMENU_CONTINUE_DUEL ; 3 +; debug menu options + const_def + const DEBUGMENU_POWER_ON ; 0 + const DEBUGMENU_COIN ; 1 + const DEBUGMENU_CONFIG ; 2 + const DEBUGMENU_EFFECT_VIEWER ; 3 + const DEBUGMENU_CREDITS ; 4 + const DEBUGMENU_DUEL ; 5 + const DEBUGMENU_SLOT ; 6 + +; pause menu options + const_def + const PAUSEMENU_STATUS ; 0 + const PAUSEMENU_DIARY ; 1 + const PAUSEMENU_DECK ; 2 + const PAUSEMENU_MINICOM ; 3 + const PAUSEMENU_COIN ; 4 + const PAUSEMENU_CONFIG ; 5 + +; pc menu options + const_def + const PCMENU_CARD_ALBUM ; 0 + const PCMENU_DECK_DIAGNOSIS ; 1 + const PCMENU_GLOSSARY ; 2 + const PCMENU_PRINTER ; 3 + +; minicom menu options + const_def + const MINICOMMENU_DECK_SAVE_MACHINE ; 0 + const MINICOMMENU_MAILBOX ; 1 + const MINICOMMENU_CARD_ALBUM ; 2 + +; mailbox options + const_def + const MAILBOXMENU_READ ; 0 + const MAILBOXMENU_DELETE ; 1 + ; constants for wGlossaryMenu const_def - const GLOSSARY_GAME_BASICS ; $0 - const GLOSSARY_CARD_TYPE_EXPLANATIONS ; $1 - const GLOSSARY_STATUS_WINNING_LOSING ; $2 - const GLOSSARY_SPECIAL_DUEL_RULES ; $3 - const GLOSSARY_EXIT ; $4 + const GLOSSARY_GAME_BASICS ; 0 + const GLOSSARY_CARD_TYPE_EXPLANATIONS ; 1 + const GLOSSARY_STATUS_WINNING_LOSING ; 2 + const GLOSSARY_SPECIAL_DUEL_RULES ; 3 + const GLOSSARY_EXIT ; 4 ; filter types for CardTypeFilters ; used to categorise the different cards @@ -54,11 +91,17 @@ DEF FILTER_ENERGY EQU $20 DEF NUM_FILTERS EQU 9 +; for FilterCardListInHL +DEF FILTER_ONLY_PKMN EQU 0 +DEF FILTER_ONLY_TRAINER EQU FILTER_TRAINER >> 4 ; 1 +DEF FILTER_ONLY_ENERGY EQU FILTER_ENERGY >> 4 ; 2, or any number > 1 + DEF NUM_DECK_CONFIRMATION_VISIBLE_CARDS EQU 7 DEF NUM_FILTERED_LIST_VISIBLE_CARDS EQU 6 -DEF NUM_DECK_SAVE_MACHINE_SLOTS EQU 50 +DEF NUM_DECK_SAVE_MACHINE_SLOTS EQU 50 DEF NUM_DECK_MACHINE_VISIBLE_DECKS EQU 5 +DEF NUM_AUTO_DECK_MACHINE_SLOTS EQU 4 ; deck flags const_def diff --git a/src/constants/misc_constants.asm b/src/constants/misc_constants.asm index 6227ee4..a0c82cd 100644 --- a/src/constants/misc_constants.asm +++ b/src/constants/misc_constants.asm @@ -26,8 +26,6 @@ DEF MAX_NUM_CARDPOP_RECORDS EQU 98 DEF CARDPOP_RECORD_SIZE EQU $20 DEF CARDPOP_RECORD_STATS_SIZE EQU $05 -DEF MAX_CHIPS EQU 9999 - ; rJOYP constants to read IR signals DEF P15 EQU %00100000 DEF P14 EQU %00010000 diff --git a/src/constants/scene_constants.asm b/src/constants/scene_constants.asm index 5833cc5..0f527dd 100644 --- a/src/constants/scene_constants.asm +++ b/src/constants/scene_constants.asm @@ -36,3 +36,9 @@ const SCENE_COIN_TOSS_RESULT_1 ; $22 const SCENE_COIN_TOSS_RESULT_2 ; $23 const SCENE_GBC_ONLY_DISCLAIMER ; $24 + +; prologue scenes + const_def + const PROLOGUE_PLAYER_RECAP ; 0 + const PROLOGUE_GR_INVASION ; 1 + const PROLOGUE_PLAYER_TO_LAB ; 2 diff --git a/src/constants/script_constants.asm b/src/constants/script_constants.asm index a996a6d..21c9448 100644 --- a/src/constants/script_constants.asm +++ b/src/constants/script_constants.asm @@ -315,7 +315,7 @@ DEF MOVE_SPEED_WALK EQU 1 DEF MOVE_SPEED_RUN EQU 2 ; the true max is probably much lower. this is just the biggest 6-bit number. -DEF MAX_MOVEMENT EQU $3F +DEF MAX_MOVEMENT EQU $3f ; generate MOVE_x constants for use in NPCMovement data. ; see also: script_extractor.py @@ -336,21 +336,22 @@ DEF MAIL_MAX_NUM EQU 8 DEF MAIL_MAX_ON_SCREEN EQU 4 DEF MAIL_BUFFER_SIZE EQU MAIL_MAX_NUM + 1 DEF MAIL_QUEUE_BUFFER_SIZE EQU 25 -DEF BLACK_BOX_CARDS_BUFFER_SIZE EQU 20 DEF NEW_MAIL EQU $ff DEF B_MAIL_READ EQU 7 DEF B_MAIL_PRIORITY_DELIVERY EQU 7 -DEF B_MAIL_BOOSTER_PACK EQU 7 -DEF B_MAIL_GENERIC_CARD EQU 6 -DEF B_MAIL_BLACK_BOX EQU 5 -DEF B_MAIL_BILLS_PC EQU 4 +; mail attachments + const_def 4 + const B_MAIL_BILLS_PC ; 4 + const B_MAIL_BLACK_BOX ; 5 + const B_MAIL_GENERIC_CARD ; 6 + const B_MAIL_BOOSTER_PACK ; 7 -DEF MAIL_COMMAND_GIVE_BOOSTER EQU 1 << B_MAIL_BOOSTER_PACK -DEF MAIL_COMMAND_GIVE_GENERIC_CARD EQU 1 << B_MAIL_GENERIC_CARD -DEF MAIL_COMMAND_GIVE_BLACK_BOX EQU 1 << B_MAIL_BLACK_BOX DEF MAIL_COMMAND_GIVE_BILLS_PC EQU 1 << B_MAIL_BILLS_PC +DEF MAIL_COMMAND_GIVE_BLACK_BOX EQU 1 << B_MAIL_BLACK_BOX +DEF MAIL_COMMAND_GIVE_GENERIC_CARD EQU 1 << B_MAIL_GENERIC_CARD +DEF MAIL_COMMAND_GIVE_BOOSTER EQU 1 << B_MAIL_BOOSTER_PACK DEF MAIL_TERMINATOR EQU $ffff ; TODO: Figure out why 2 is added in IngameCardPop @@ -359,7 +360,8 @@ DEF MAIL_TERMINATOR EQU $ffff const SCRIPTED_CARD_POP_IMAKUNI ; $1 const SCRIPTED_RARE_CARD_POP_IMAKUNI ; $2 -; duel requirement IDs. used in DuelRequirementFunctionMap, and duel_requirement_check script calls +; duel requirement IDs +; for DuelRequirementFunctionMap and duel_requirement_check script calls const_def const DUEL_REQUIREMENT_MIYUKI ; $00 const DUEL_REQUIREMENT_RENNA ; $01 diff --git a/src/constants/sfx_constants.asm b/src/constants/sfx_constants.asm index 4efd20a..d334d20 100644 --- a/src/constants/sfx_constants.asm +++ b/src/constants/sfx_constants.asm @@ -163,7 +163,6 @@ DEF NUM_SFX EQU const_value -; PlayConfirmOrCancelSFX args +; PlaySFXConfirmOrCancel args DEF MENU_CANCEL EQU -1 -; doesn't have to be 1 but is often used as such in the code -DEF MENU_CONFIRM EQU 1 +DEF MENU_CONFIRM EQU 1 ; != -1, but uses 1 most of the time diff --git a/src/constants/var_constants.asm b/src/constants/var_constants.asm index 0b9e037..22ace84 100644 --- a/src/constants/var_constants.asm +++ b/src/constants/var_constants.asm @@ -1,64 +1,64 @@ const_def - const VAR_00 ; $00 - const VAR_01 ; $01 - const VAR_02 ; $02 - const VAR_03 ; $03 - const VAR_TIMES_MET_RONALD ; $04 - const VAR_05 ; $05 - const VAR_06 ; $06 - const VAR_07 ; $07 - const VAR_08 ; $08 - const VAR_09 ; $09 - const VAR_0A ; $0a - const VAR_0B ; $0b - const VAR_0C ; $0c - const VAR_0D ; $0d - const VAR_0E ; $0e - const VAR_0F ; $0f - const VAR_10 ; $10 - const VAR_11 ; $11 - const VAR_12 ; $12 - const VAR_13 ; $13 - const VAR_14 ; $14 - const VAR_15 ; $15 - const VAR_16 ; $16 - const VAR_17 ; $17 - const VAR_18 ; $18 - const VAR_19 ; $19 - const VAR_1A ; $1a - const VAR_1B ; $1b - const VAR_1C ; $1c - const VAR_1D ; $1d - const VAR_1E ; $1e - const VAR_1F ; $1f - const VAR_20 ; $20 - const VAR_21 ; $21 - const VAR_IMAKUNI_BLACK_WIN_COUNT ; $22 - const VAR_23 ; $23 - const VAR_24 ; $24 - const VAR_25 ; $25 - const VAR_26 ; $26 - const VAR_27 ; $27 - const VAR_28 ; $28 - const VAR_29 ; $29 - const VAR_2A ; $2a - const VAR_2B ; $2b - const VAR_2C ; $2c - const VAR_2D ; $2d - const VAR_2E ; $2e - const VAR_2F ; $2f - const VAR_30 ; $30 - const VAR_31 ; $31 - const VAR_32 ; $32 - const VAR_33 ; $33 - const VAR_34 ; $34 - const VAR_35 ; $35 - const VAR_36 ; $36 - const VAR_37 ; $37 - const VAR_38 ; $38 - const VAR_39 ; $39 - const VAR_3A ; $3a - const VAR_3B ; $3b - const VAR_NPC_DECK_ID ; $3c - const VAR_DUEL_START_THEME ; $3d - const VAR_3E ; $3e + const VAR_00 ; $00 + const VAR_01 ; $01 + const VAR_02 ; $02 + const VAR_03 ; $03 + const VAR_TIMES_MET_RONALD ; $04 + const VAR_05 ; $05 + const VAR_06 ; $06 + const VAR_07 ; $07 + const VAR_08 ; $08 + const VAR_09 ; $09 + const VAR_0A ; $0a + const VAR_0B ; $0b + const VAR_0C ; $0c + const VAR_0D ; $0d + const VAR_0E ; $0e + const VAR_0F ; $0f + const VAR_GRANDMASTERCUP_PRIZE_INDEX_0 ; $10 + const VAR_GRANDMASTERCUP_PRIZE_INDEX_1 ; $11 + const VAR_GRANDMASTERCUP_PRIZE_INDEX_2 ; $12 + const VAR_GRANDMASTERCUP_PRIZE_INDEX_3 ; $13 + const VAR_GRANDMASTERCUP_OPPONENT_DECK_0 ; $14 + const VAR_GRANDMASTERCUP_OPPONENT_DECK_1 ; $15 + const VAR_GRANDMASTERCUP_OPPONENT_DECK_2 ; $16 + const VAR_GRANDMASTERCUP_OPPONENT_DECK_3 ; $17 + const VAR_GRANDMASTERCUP_OPPONENT_DECK_4 ; $18 + const VAR_GRANDMASTERCUP_OPPONENT_DECK_5 ; $19 + const VAR_GRANDMASTERCUP_OPPONENT_DECK_6 ; $1a + const VAR_1B ; $1b + const VAR_1C ; $1c + const VAR_1D ; $1d + const VAR_1E ; $1e + const VAR_1F ; $1f + const VAR_20 ; $20 + const VAR_21 ; $21 + const VAR_IMAKUNI_BLACK_WIN_COUNT ; $22 + const VAR_23 ; $23 + const VAR_24 ; $24 + const VAR_25 ; $25 + const VAR_26 ; $26 + const VAR_27 ; $27 + const VAR_28 ; $28 + const VAR_TCG_CHALLENGE_CUP_PRIZE_INDEX ; $29 + const VAR_2A ; $2a + const VAR_2B ; $2b + const VAR_2C ; $2c + const VAR_2D ; $2d + const VAR_2E ; $2e + const VAR_2F ; $2f + const VAR_30 ; $30 + const VAR_GR_CHALLENGE_CUP_PRIZE_INDEX ; $31 + const VAR_32 ; $32 + const VAR_33 ; $33 + const VAR_34 ; $34 + const VAR_35 ; $35 + const VAR_36 ; $36 + const VAR_37 ; $37 + const VAR_38 ; $38 + const VAR_39 ; $39 + const VAR_3A ; $3a + const VAR_3B ; $3b + const VAR_NPC_DECK_ID ; $3c + const VAR_DUEL_START_THEME ; $3d + const VAR_3E ; $3e diff --git a/src/data/auto_deck_list.asm b/src/data/auto_deck_list.asm new file mode 100644 index 0000000..d847b00 --- /dev/null +++ b/src/data/auto_deck_list.asm @@ -0,0 +1,1785 @@ +; card lists read by AutoDeckMachine*Entries +; each list entry is a card count and card ID pair + +; AutoDeckMachine1DeckLists: +; basic +MachineStarterDeckList: + dbw 14, FIRE_ENERGY + dbw 12, FIGHTING_ENERGY + dbw 4, CHARMANDER_LV10 + dbw 3, CHARMELEON + dbw 2, GROWLITHE_LV12 + dbw 3, PONYTA_LV10 + dbw 2, DIGLETT_LV8 + dbw 4, MACHOP_LV20 + dbw 3, MACHOKE_LV40 + dbw 2, RATTATA_LV9 + dbw 1, RATICATE + dbw 2, SPEAROW_LV9 + dbw 1, MEOWTH_LV17 + dbw 1, ENERGY_RETRIEVAL + dbw 2, POTION + dbw 1, GUST_OF_WIND + dbw 2, SWITCH + dbw 1, BILL + db 0 + +MachineElectricFireDeckList: + dbw 13, FIRE_ENERGY + dbw 13, LIGHTNING_ENERGY + dbw 4, CHARMANDER_LV10 + dbw 3, CHARMELEON + dbw 2, GROWLITHE_LV12 + dbw 3, PIKACHU_LV12 + dbw 2, RAICHU_LV33 + dbw 1, ELECTABUZZ_LV30 + dbw 2, JOLTEON_LV29 + dbw 2, RATTATA_LV9 + dbw 1, RATICATE + dbw 2, SPEAROW_LV9 + dbw 3, EEVEE_LV12 + dbw 2, POTION + dbw 1, GUST_OF_WIND + dbw 1, FULL_HEAL + dbw 2, SWITCH + dbw 3, BILL + db 0 + +MachineBattleWaterDeckList: + dbw 15, WATER_ENERGY + dbw 14, FIGHTING_ENERGY + dbw 3, SQUIRTLE_LV14 + dbw 2, WARTORTLE_LV24 + dbw 3, STARYU_LV15 + dbw 2, STARMIE + dbw 2, MAGIKARP_LV8 + dbw 1, GYARADOS + dbw 3, MACHOP_LV20 + dbw 2, MACHOKE_LV40 + dbw 2, GEODUDE_LV15 + dbw 1, GRAVELER_LV29 + dbw 2, RHYHORN + dbw 2, ENERGY_SEARCH + dbw 2, PLUSPOWER + dbw 2, SWITCH + dbw 2, BILL + db 0 + +MachineEsperGreenDeckList: + dbw 14, GRASS_ENERGY + dbw 13, PSYCHIC_ENERGY + dbw 3, BULBASAUR_LV12 + dbw 2, IVYSAUR_LV26 + dbw 2, WEEDLE_LV12 + dbw 1, KAKUNA_LV23 + dbw 3, PARAS_LV8 + dbw 2, PARASECT_LV28 + dbw 3, ABRA_LV10 + dbw 2, KADABRA_LV38 + dbw 3, GASTLY_LV8 + dbw 2, HAUNTER_LV22 + dbw 2, JYNX_LV27 + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, POTION + dbw 1, FULL_HEAL + dbw 2, BILL + db 0 + +; gifts +MachineSweatAntiGR1DeckList: + dbw 12, GRASS_ENERGY + dbw 15, FIGHTING_ENERGY + dbw 4, CATERPIE + dbw 2, METAPOD_LV21 + dbw 3, NIDORANM_LV20 + dbw 1, NIDORINO_LV25 + dbw 2, TANGELA_LV8 + dbw 3, DIGLETT_LV8 + dbw 4, GEODUDE_LV15 + dbw 2, GRAVELER_LV29 + dbw 2, ONIX_LV12 + dbw 3, RHYHORN + dbw 1, PROFESSOR_OAK + dbw 2, ENERGY_SEARCH + dbw 2, SWITCH + dbw 1, POKEDEX + dbw 1, GUST_OF_WIND + db 0 + +MachineGiveInAntiGR2DeckList: + dbw 14, GRASS_ENERGY + dbw 12, WATER_ENERGY + dbw 4, BULBASAUR_LV12 + dbw 2, IVYSAUR_LV26 + dbw 2, WEEDLE_LV12 + dbw 1, KAKUNA_LV23 + dbw 3, PARAS_LV8 + dbw 2, PARASECT_LV28 + dbw 2, SEEL_LV12 + dbw 3, GOLDEEN + dbw 2, SEAKING + dbw 2, MAGIKARP_LV8 + dbw 3, DODUO_LV10 + dbw 1, ENERGY_REMOVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 1, DEFENDER + dbw 2, PLUSPOWER + dbw 1, BILL + db 0 + +MachineVengefulAntiGR3DeckList: + dbw 12, FIRE_ENERGY + dbw 15, WATER_ENERGY + dbw 3, VULPIX_LV11 + dbw 1, NINETALES_LV32 + dbw 3, GROWLITHE_LV12 + dbw 1, ARCANINE_LV45 + dbw 2, PONYTA_LV10 + dbw 1, RAPIDASH_LV33 + dbw 4, SQUIRTLE_LV14 + dbw 2, WARTORTLE_LV24 + dbw 4, STARYU_LV15 + dbw 2, STARMIE + dbw 2, MAGIKARP_LV8 + dbw 1, GYARADOS + dbw 1, FARFETCHD_LV20 + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 1, FULL_HEAL + dbw 1, POKEMON_TRADER + dbw 1, BILL + db 0 + +MachineUnforgivingAntiGR4DeckList: + dbw 13, LIGHTNING_ENERGY + dbw 13, PSYCHIC_ENERGY + dbw 1, DOUBLE_COLORLESS_ENERGY + dbw 3, PIKACHU_LV12 + dbw 2, RAICHU_LV33 + dbw 2, MAGNEMITE_LV14 + dbw 1, ELECTABUZZ_LV30 + dbw 2, JOLTEON_LV29 + dbw 4, ABRA_LV10 + dbw 2, KADABRA_LV38 + dbw 3, GASTLY_LV8 + dbw 2, HAUNTER_LV22 + dbw 2, JYNX_LV27 + dbw 3, EEVEE_LV12 + dbw 1, SUPER_POTION + dbw 1, ENERGY_RETRIEVAL + dbw 2, POTION + dbw 1, FULL_HEAL + dbw 2, BILL + db 0 + +; fighting +MachineAwesomeFossilsDeckList: + dbw 27, FIGHTING_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 2, OMANYTE_LV20 + dbw 2, ONIX_LV12 + dbw 4, RHYHORN + dbw 1, RHYDON_LV37 + dbw 1, RHYDON_LV48 + dbw 1, KABUTO_LV9 + dbw 1, KABUTO_LV22 + dbw 1, KABUTOPS + dbw 1, AERODACTYL_LV30 + dbw 2, KANGASKHAN_LV40 + dbw 2, SNORLAX_LV20 + dbw 2, ITEMFINDER + dbw 4, MYSTERIOUS_FOSSIL + dbw 3, SWITCH + dbw 2, BILL + db 0 + +MachineNewMachokeDeckList: + dbw 21, FIGHTING_ENERGY + dbw 6, PSYCHIC_ENERGY + dbw 1, DOUBLE_COLORLESS_ENERGY + dbw 3, MANKEY_LV7 + dbw 2, PRIMEAPE + dbw 4, MACHOP_LV20 + dbw 2, MACHOKE_LV24 + dbw 1, MACHOKE_LV40 + dbw 2, MACHAMP_LV67 + dbw 1, HITMONLEE_LV23 + dbw 1, HITMONCHAN_LV33 + dbw 3, GASTLY_LV13 + dbw 2, MEOWTH_LV15 + dbw 1, TAUROS_LV35 + dbw 3, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, SWITCH + dbw 2, BILL + db 0 + +MachineRockFestivalDeckList: + dbw 25, FIGHTING_ENERGY + dbw 2, SANDSHREW_LV15 + dbw 1, SANDSLASH_LV35 + dbw 2, DIGLETT_LV8 + dbw 1, DUGTRIO_LV36 + dbw 1, GEODUDE_LV15 + dbw 1, GEODUDE_LV16 + dbw 1, GRAVELER_LV29 + dbw 1, ONIX_LV12 + dbw 1, ONIX_LV25 + dbw 1, CUBONE_LV13 + dbw 2, CUBONE_LV14 + dbw 1, MAROWAK_LV26 + dbw 1, MAROWAK_LV32 + dbw 3, RHYHORN + dbw 1, RHYDON_LV37 + dbw 1, RHYDON_LV48 + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, POKEMON_TRADER + dbw 2, POKEDEX + dbw 2, POKEMON_CENTER + dbw 3, BILL + db 0 + +MachineJabHookDeckList: + dbw 10, FIRE_ENERGY + dbw 14, FIGHTING_ENERGY + dbw 2, MAGMAR_LV18 + dbw 2, MAGMAR_LV24 + dbw 3, MACHOP_LV24 + dbw 2, MACHOKE_LV28 + dbw 2, HITMONCHAN_LV23 + dbw 2, HITMONCHAN_LV33 + dbw 3, MEOWTH_LV13 + dbw 2, KANGASKHAN_LV40 + dbw 2, ENERGY_RETRIEVAL + dbw 4, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, POTION + dbw 2, PLUSPOWER + dbw 2, SWITCH + dbw 3, BILL + dbw 2, MASTER_BALL + db 0 + +; grass +MachineSteadyIncreaseDeckList: + dbw 23, GRASS_ENERGY + dbw 4, ODDISH_LV8 + dbw 3, GLOOM + dbw 2, VILEPLUME + dbw 4, PARAS_LV15 + dbw 3, PARASECT_LV29 + dbw 4, BELLSPROUT_LV11 + dbw 3, WEEPINBELL_LV28 + dbw 3, ENERGY_RETRIEVAL + dbw 1, PROFESSOR_OAK + dbw 2, POTION + dbw 2, DEFENDER + dbw 2, FULL_HEAL + dbw 4, MR_FUJI + db 0 + +MachineGatheringNidoranDeckList: + dbw 23, GRASS_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 2, NIDORANF_LV12 + dbw 2, NIDORANF_LV13 + dbw 3, NIDORINA_LV22 + dbw 2, NIDOQUEEN + dbw 4, NIDORANM_LV22 + dbw 2, NIDORINO_LV23 + dbw 1, NIDORINO_LV25 + dbw 2, NIDOKING + dbw 2, CLEFAIRY_LV15 + dbw 2, LICKITUNG_LV20 + dbw 2, TAUROS_LV35 + dbw 2, ENERGY_RETRIEVAL + dbw 1, PROFESSOR_OAK + dbw 2, POKEMON_TRADER + dbw 2, POKEMON_BREEDER + dbw 2, BILL + dbw 2, POKEBALL + db 0 + +MachineNationalParkDeckList: + dbw 20, GRASS_ENERGY + dbw 2, POTION_ENERGY + dbw 2, FULLHEAL_ENERGY + dbw 3, BULBASAUR_LV13 + dbw 2, IVYSAUR_LV20 + dbw 3, CATERPIE + dbw 2, METAPOD_LV21 + dbw 3, PARAS_LV8 + dbw 2, PARASECT_LV28 + dbw 3, BELLSPROUT_LV10 + dbw 2, WEEPINBELL_LV23 + dbw 2, PINSIR_LV15 + dbw 2, ENERGY_REMOVAL + dbw 3, ENERGY_RETRIEVAL + dbw 3, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 3, BILL + dbw 2, POKEBALL + db 0 + +MachineSelectiveBreedingDeckList: + dbw 24, GRASS_ENERGY + dbw 2, EKANS_LV10 + dbw 2, EKANS_LV15 + dbw 2, ARBOK_LV27 + dbw 2, NIDORANF_LV12 + dbw 2, NIDORANF_LV13 + dbw 2, NIDORINA_LV22 + dbw 1, NIDORINA_LV24 + dbw 1, NIDOQUEEN + dbw 2, GRIMER_LV10 + dbw 2, GRIMER_LV17 + dbw 2, MUK + dbw 3, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, GUST_OF_WIND + dbw 2, FULL_HEAL + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 2, BILL + db 0 + +; water +MachineSplashingAboutDeckList: + dbw 26, WATER_ENERGY + dbw 4, SQUIRTLE_LV14 + dbw 3, WARTORTLE_LV24 + dbw 3, POLIWAG_LV13 + dbw 4, HORSEA_LV20 + dbw 2, SEADRA_LV23 + dbw 1, SEADRA_LV26 + dbw 2, LAPRAS_LV24 + dbw 2, VAPOREON_LV42 + dbw 3, EEVEE_LV12 + dbw 2, ENERGY_RETRIEVAL + dbw 1, PROFESSOR_OAK + dbw 2, SWITCH + dbw 2, SCOOP_UP + dbw 3, BILL + db 0 + +MachineBeachDeckList: + dbw 24, WATER_ENERGY + dbw 3, TENTACOOL + dbw 2, TENTACRUEL + dbw 3, SHELLDER_LV16 + dbw 2, CLOYSTER + dbw 4, KRABBY_LV17 + dbw 3, KINGLER_LV33 + dbw 3, STARYU_LV17 + dbw 2, STARMIE + dbw 3, ENERGY_RETRIEVAL + dbw 2, POTION + dbw 1, REVIVE + dbw 2, GUST_OF_WIND + dbw 1, FULL_HEAL + dbw 1, IMPOSTER_PROFESSOR_OAK + dbw 1, LASS + dbw 2, POKEBALL + dbw 1, RECYCLE + db 0 + +MachineInsulationDeckList: + dbw 22, WATER_ENERGY + dbw 4, POLIWAG_LV15 + dbw 3, POLIWHIRL_LV28 + dbw 2, POLIWRATH_LV40 + dbw 1, MAGIKARP_LV6 + dbw 1, MAGIKARP_LV8 + dbw 1, MAGIKARP_LV10 + dbw 2, GYARADOS + dbw 2, OMANYTE_LV19 + dbw 2, OMANYTE_LV22 + dbw 2, OMASTAR_LV32 + dbw 2, ENERGY_REMOVAL + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 2, FOSSIL_EXCAVATION + dbw 4, MYSTERIOUS_FOSSIL + dbw 3, POKEMON_TRADER + dbw 3, BILL + db 0 + +MachineAntarcticDeckList: + dbw 18, WATER_ENERGY + dbw 4, PSYCHIC_ENERGY + dbw 2, POTION_ENERGY + dbw 2, RECYCLE_ENERGY + dbw 3, PSYDUCK_LV15 + dbw 2, GOLDUCK_LV28 + dbw 2, SEEL_LV10 + dbw 1, SEEL_LV12 + dbw 1, DEWGONG_LV24 + dbw 1, DEWGONG_LV42 + dbw 2, HORSEA_LV19 + dbw 2, HORSEA_LV20 + dbw 2, SEADRA_LV26 + dbw 2, JYNX_LV18 + dbw 2, JYNX_LV27 + dbw 2, ENERGY_REMOVAL + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 3, BILL + db 0 + +; fire +MachineFlameFestivalDeckList: + dbw 26, FIRE_ENERGY + dbw 4, VULPIX_LV13 + dbw 3, NINETALES_LV35 + dbw 2, GROWLITHE_LV16 + dbw 1, ARCANINE_LV34 + dbw 4, PONYTA_LV8 + dbw 3, RAPIDASH_LV30 + dbw 2, MAGMAR_LV27 + dbw 2, MAGMAR_LV31 + dbw 2, MEOWTH_LV14 + dbw 3, ENERGY_RETRIEVAL + dbw 2, POTION + dbw 1, SUPER_ENERGY_RETRIEVAL + dbw 2, IMPOSTER_PROFESSOR_OAK + dbw 3, BILL + db 0 + +MachineElectricCurrentShockDeckList: + dbw 16, FIRE_ENERGY + dbw 12, LIGHTNING_ENERGY + dbw 4, VULPIX_LV11 + dbw 2, NINETALES_LV32 + dbw 4, PONYTA_LV10 + dbw 1, RAPIDASH_LV30 + dbw 2, RAPIDASH_LV33 + dbw 1, MOLTRES_LV35 + dbw 2, PIKACHU_LV14 + dbw 1, RAICHU_LV45 + dbw 3, MAGNEMITE_LV13 + dbw 2, MAGNETON_LV30 + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 2, GUST_OF_WIND + dbw 2, SWITCH + dbw 2, BILL + db 0 + +MachineRiskyBlazeDeckList: + dbw 16, FIRE_ENERGY + dbw 8, LIGHTNING_ENERGY + dbw 2, GROWLITHE_LV16 + dbw 2, GROWLITHE_LV18 + dbw 2, ARCANINE_LV35 + dbw 1, ARCANINE_LV45 + dbw 2, MAGMAR_LV18 + dbw 2, MAGMAR_LV24 + dbw 2, MOLTRES_LV37 + dbw 3, MAGNEMITE_LV13 + dbw 2, MAGNETON_LV28 + dbw 2, CHANSEY_LV55 + dbw 2, ENERGY_RETRIEVAL + dbw 3, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 4, DEFENDER + dbw 2, POKEMON_TRADER + dbw 2, BILL + dbw 2, NIGHTLY_GARBAGE_RUN + db 0 + +MachineRagingCharizardDeckList: + dbw 8, FIRE_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 4, POTION_ENERGY + dbw 4, FULLHEAL_ENERGY + dbw 4, RECYCLE_ENERGY + dbw 2, CHARMANDER_LV10 + dbw 2, CHARMANDER_LV12 + dbw 2, CHARMELEON + dbw 2, CHARIZARD_LV76 + dbw 2, RHYHORN + dbw 2, MR_MIME_LV20 + dbw 2, JYNX_LV27 + dbw 2, CHANSEY_LV55 + dbw 2, KANGASKHAN_LV40 + dbw 2, SUPER_POTION + dbw 2, ENERGY_RETRIEVAL + dbw 1, PROFESSOR_OAK + dbw 3, POTION + dbw 2, POKEMON_TRADER + dbw 2, POKEMON_BREEDER + dbw 4, BILL + dbw 2, POKEBALL + db 0 + +; electric +MachineZapdosPowerPlantDeckList: + dbw 20, LIGHTNING_ENERGY + dbw 1, MAGNEMITE_LV12 + dbw 1, MAGNEMITE_LV13 + dbw 1, MAGNEMITE_LV14 + dbw 1, MAGNEMITE_LV15 + dbw 1, MAGNETON_LV28 + dbw 1, MAGNETON_LV30 + dbw 1, MAGNETON_LV35 + dbw 1, VOLTORB_LV8 + dbw 1, VOLTORB_LV10 + dbw 1, VOLTORB_LV13 + dbw 1, ELECTRODE_LV35 + dbw 1, ELECTRODE_LV42 + dbw 2, ZAPDOS_LV40 + dbw 2, DITTO + dbw 1, PORYGON_LV12 + dbw 1, PORYGON_LV18 + dbw 1, PORYGON_LV20 + dbw 3, ENERGY_REMOVAL + dbw 3, ENERGY_RETRIEVAL + dbw 3, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, REVIVE + dbw 2, CHALLENGE + dbw 4, DEFENDER + dbw 3, BILL + db 0 + +MachineElectricShockDeckList: + dbw 22, LIGHTNING_ENERGY + dbw 3, PIKACHU_LV5 + dbw 2, RAICHU_LV32 + dbw 4, MAGNEMITE_LV13 + dbw 3, MAGNETON_LV28 + dbw 4, VOLTORB_LV8 + dbw 2, ELECTABUZZ_LV30 + dbw 2, ELECTABUZZ_LV35 + dbw 3, ENERGY_REMOVAL + dbw 3, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 3, DEFENDER + dbw 3, PLUSPOWER + dbw 3, BILL + db 0 + +MachineOverflowDeckList: + dbw 23, LIGHTNING_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 4, MAGNEMITE_LV12 + dbw 3, MAGNETON_LV35 + dbw 4, VOLTORB_LV8 + dbw 3, ELECTRODE_LV35 + dbw 3, SPEAROW_LV13 + dbw 2, FEAROW_LV27 + dbw 2, FARFETCHD_LV20 + dbw 2, DODUO_LV10 + dbw 1, DODRIO_LV25 + dbw 1, PROFESSOR_OAK + dbw 2, FULL_HEAL + dbw 2, SLEEP + dbw 2, PLUSPOWER + dbw 2, POKEMON_RECALL + dbw 2, BILL + db 0 + +MachineTripleZapdosDeckList: + dbw 25, LIGHTNING_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 2, POTION_ENERGY + dbw 4, VOLTORB_LV8 + dbw 3, DARK_ELECTRODE + dbw 2, ELECTABUZZ_LV35 + dbw 1, ZAPDOS_LV28 + dbw 1, ZAPDOS_LV40 + dbw 1, ZAPDOS_LV64 + dbw 1, FARFETCHD_LV20 + dbw 3, DODUO_LV8 + dbw 2, DODRIO_LV25 + dbw 1, KANGASKHAN_LV36 + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, POTION + dbw 1, MAX_REVIVE + dbw 2, DEFENDER + dbw 2, MASTER_BALL + dbw 2, POKEBALL + db 0 + +; psychic +MachineSpecialBarrierDeckList: + dbw 24, PSYCHIC_ENERGY + dbw 1, ABRA_LV8 + dbw 2, ABRA_LV10 + dbw 2, KADABRA_LV38 + dbw 2, GASTLY_LV13 + dbw 1, GASTLY_LV17 + dbw 2, HAUNTER_LV17 + dbw 2, MR_MIME_LV20 + dbw 2, MR_MIME_LV28 + dbw 2, JYNX_LV23 + dbw 2, JYNX_LV27 + dbw 2, MEWTWO_LV53 + dbw 2, MEW_LV8 + dbw 2, ENERGY_REMOVAL + dbw 2, ENERGY_RETRIEVAL + dbw 3, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 2, BILL + db 0 + +MachineEvolutionProhibitedDeckList: + dbw 19, PSYCHIC_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 2, RECYCLE_ENERGY + dbw 3, AERODACTYL_LV28 + dbw 2, JYNX_LV23 + dbw 2, JYNX_LV27 + dbw 1, MEWTWO_LV30 + dbw 1, MEWTWO_LV53 + dbw 1, MEWTWO_LV54 + dbw 1, MEWTWO_LV67 + dbw 2, MEW_LV23 + dbw 1, LICKITUNG_LV20 + dbw 1, CHANSEY_LV40 + dbw 1, KANGASKHAN_LV36 + dbw 1, TAUROS_LV32 + dbw 3, ENERGY_REMOVAL + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 1, FOSSIL_EXCAVATION + dbw 3, MYSTERIOUS_FOSSIL + dbw 2, POKEMON_TRADER + dbw 4, BILL + db 0 + +MachineGhostDeckList: + dbw 24, PSYCHIC_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 4, GASTLY_LV8 + dbw 1, HAUNTER_LV17 + dbw 1, HAUNTER_LV22 + dbw 1, HAUNTER_LV26 + dbw 2, GENGAR_LV38 + dbw 3, DROWZEE_LV12 + dbw 2, HYPNO_LV36 + dbw 1, JYNX_LV23 + dbw 1, JYNX_LV27 + dbw 3, JIGGLYPUFF_LV14 + dbw 2, WIGGLYTUFF_LV36 + dbw 1, ENERGY_REMOVAL + dbw 1, ENERGY_RETRIEVAL + dbw 1, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, POTION + dbw 1, FULL_HEAL + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 2, BILL + db 0 + +MachinePuppetMasterDeckList: + dbw 24, PSYCHIC_ENERGY + dbw 4, SLOWPOKE_LV18 + dbw 3, SLOWBRO_LV26 + dbw 4, DROWZEE_LV12 + dbw 3, HYPNO_LV30 + dbw 2, MR_MIME_LV28 + dbw 1, PROFESSOR_OAK + dbw 2, ITEMFINDER + dbw 4, DEFENDER + dbw 1, GUST_OF_WIND + dbw 4, CLEFAIRY_DOLL + dbw 2, PLUSPOWER + dbw 2, SCOOP_UP + dbw 2, BILL + dbw 2, MASTER_BALL + db 0 + +; special +MachineMewLv15DeckList: + dbw 19, PSYCHIC_ENERGY + dbw 4, RECYCLE_ENERGY + dbw 4, SLOWPOKE_LV18 + dbw 3, SLOWBRO_LV35 + dbw 4, DROWZEE_LV10 + dbw 2, HYPNO_LV36 + dbw 2, MEW_LV15 + dbw 2, MEW_LV23 + dbw 3, CLEFAIRY_LV14 + dbw 2, CLEFABLE + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 2, PROFESSOR_OAK + dbw 4, POKEMON_TRADER + dbw 3, BILL + dbw 2, MASTER_BALL + db 0 + +MachineVenusaurLv64DeckList: + dbw 8, GRASS_ENERGY + dbw 6, WATER_ENERGY + dbw 6, FIGHTING_ENERGY + dbw 4, RAINBOW_ENERGY + dbw 4, BULBASAUR_LV12 + dbw 2, IVYSAUR_LV26 + dbw 2, VENUSAUR_LV64 + dbw 3, SEEL_LV10 + dbw 2, DEWGONG_LV24 + dbw 3, MANKEY_LV7 + dbw 2, PRIMEAPE + dbw 3, TAUROS_LV32 + dbw 3, ENERGY_RETRIEVAL + dbw 3, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 3, POKEMON_TRADER + dbw 2, POKEMON_BREEDER + dbw 3, BILL + db 0 + +MachineMutualDestructionDeckList: + dbw 21, LIGHTNING_ENERGY + dbw 4, PIKACHU_LV12 + dbw 3, RAICHU_LV40 + dbw 4, MAGNEMITE_LV13 + dbw 3, MAGNETON_LV28 + dbw 4, ELECTABUZZ_LV35 + dbw 2, ZAPDOS_LV28 + dbw 4, SUPER_POTION + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 4, POTION + dbw 4, DEFENDER + dbw 2, BILL + db 0 + +MachineEverybodySurfDeckList: + dbw 20, WATER_ENERGY + dbw 4, SQUIRTLE_LV15 + dbw 2, WARTORTLE_LV24 + dbw 2, BLASTOISE_ALT_LV52 + dbw 2, LAPRAS_LV24 + dbw 2, MARILL + dbw 1, SURFING_PIKACHU_LV13 + dbw 1, SURFING_PIKACHU_ALT_LV13 + dbw 2, JYNX_LV18 + dbw 1, JIGGLYPUFF_LV12 + dbw 1, JIGGLYPUFF_LV14 + dbw 1, WIGGLYTUFF_LV40 + dbw 2, TOGEPI + dbw 2, ENERGY_RETRIEVAL + dbw 3, ENERGY_SEARCH + dbw 2, PROFESSOR_OAK + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 2, POKEMON_BREEDER + dbw 4, BILL + dbw 2, BILLS_TELEPORTER + db 0 + +; legendary +MachineGrandFireDeckList: + dbw 22, FIRE_ENERGY + dbw 2, FULLHEAL_ENERGY + dbw 2, MOLTRES_LV40 + dbw 2, MOLTRES_LV37 + dbw 4, PONYTA_LV8 + dbw 3, RAPIDASH_LV33 + dbw 2, VULPIX_LV11 + dbw 1, VULPIX_LV13 + dbw 2, NINETALES_LV35 + dbw 4, MAGMAR_LV31 + dbw 2, PROFESSOR_OAK + dbw 2, BILL + dbw 2, LASS + dbw 3, SCOOP_UP + dbw 3, NIGHTLY_GARBAGE_RUN + dbw 2, SWITCH + dbw 2, POKEBALL + db 0 + +MachineLegendaryFossilDeckList: + dbw 21, LIGHTNING_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 3, VOLTORB_LV13 + dbw 2, ELECTRODE_LV35 + dbw 4, ELECTABUZZ_LV35 + dbw 2, ZAPDOS_LV28 + dbw 2, ZAPDOS_LV68 + dbw 2, AERODACTYL_LV28 + dbw 1, SUPER_POTION + dbw 2, ENERGY_RETRIEVAL + dbw 2, PROFESSOR_OAK + dbw 2, FOSSIL_EXCAVATION + dbw 2, POTION + dbw 1, GAMBLER + dbw 4, MYSTERIOUS_FOSSIL + dbw 1, COMPUTER_SEARCH + dbw 2, PLUSPOWER + dbw 2, SWITCH + dbw 2, BILL + dbw 1, NIGHTLY_GARBAGE_RUN + db 0 + +MachineWaterLegendDeckList: + dbw 20, WATER_ENERGY + dbw 3, DOUBLE_COLORLESS_ENERGY + dbw 2, FULLHEAL_ENERGY + dbw 3, KRABBY_LV17 + dbw 2, KINGLER_LV33 + dbw 3, MAGIKARP_LV6 + dbw 2, DARK_GYARADOS + dbw 2, LAPRAS_LV31 + dbw 2, ARTICUNO_LV34 + dbw 2, ARTICUNO_LV37 + dbw 2, JYNX_LV18 + dbw 2, CHANSEY_LV40 + dbw 2, ENERGY_REMOVAL + dbw 2, ENERGY_RETRIEVAL + dbw 2, PROFESSOR_OAK + dbw 1, SUPER_ENERGY_REMOVAL + dbw 3, SWITCH + dbw 2, SCOOP_UP + dbw 3, BILL + db 0 + +MachineGreatDragonDeckList: + dbw 18, FIRE_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 2, FULLHEAL_ENERGY + dbw 2, CHARMANDER_LV9 + dbw 2, CHARMANDER_LV10 + dbw 3, CHARMELEON + dbw 1, CHARIZARD_LV76 + dbw 1, CHARIZARD_ALT_LV76 + dbw 2, DRATINI_LV10 + dbw 2, DRATINI_LV12 + dbw 2, DRAGONAIR + dbw 2, DARK_DRAGONAIR + dbw 2, DRAGONITE_LV41 + dbw 3, KANGASKHAN_LV40 + dbw 2, SCYTHER_LV25 + dbw 4, BILL + dbw 2, POKEMON_BREEDER + dbw 2, SWITCH + dbw 2, NIGHTLY_GARBAGE_RUN + dbw 2, MASTER_BALL + db 0 + +; AutoDeckMachine2DeckLists: +; dark grass +MachineInsectCollectionDeckList: + dbw 24, GRASS_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 3, CATERPIE + dbw 2, METAPOD_LV20 + dbw 1, BUTTERFREE + dbw 3, WEEDLE_LV12 + dbw 2, KAKUNA_LV20 + dbw 1, BEEDRILL + dbw 3, VENONAT_LV12 + dbw 2, VENOMOTH_LV22 + dbw 1, SCYTHER_LV25 + dbw 2, RATTATA_LV12 + dbw 1, DARK_RATICATE + dbw 3, MEOWTH_LV10 + dbw 2, DARK_PERSIAN_LV28 + dbw 2, POTION + dbw 2, FULL_HEAL + dbw 2, BILL + dbw 2, MASTER_BALL + db 0 + +MachineCaveExplorationDeckList: + dbw 21, GRASS_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 2, EKANS_LV10 + dbw 1, EKANS_LV15 + dbw 2, DARK_ARBOK + dbw 1, ZUBAT_LV9 + dbw 1, ZUBAT_LV10 + dbw 1, ZUBAT_LV12 + dbw 2, DARK_GOLBAT + dbw 2, PARAS_LV8 + dbw 2, PARAS_LV15 + dbw 1, PARASECT_LV28 + dbw 1, PARASECT_LV29 + dbw 1, TANGELA_LV8 + dbw 1, TANGELA_LV12 + dbw 1, SNORLAX_LV20 + dbw 1, SNORLAX_LV35 + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 2, PROFESSOR_OAK + dbw 2, SLEEP + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 2, THE_BOSSS_WAY + dbw 3, BILL + db 0 + +MachineOminousMeadowDeckList: + dbw 19, GRASS_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 2, CATERPIE + dbw 2, METAPOD_LV20 + dbw 2, ODDISH_LV8 + dbw 2, ODDISH_LV21 + dbw 3, DARK_GLOOM + dbw 3, VENONAT_LV15 + dbw 3, VENOMOTH_LV22 + dbw 2, PINSIR_LV15 + dbw 2, SNORLAX_LV20 + dbw 3, ENERGY_RETRIEVAL + dbw 3, ENERGY_SEARCH + dbw 2, PROFESSOR_OAK + dbw 2, COMPUTER_SEARCH + dbw 2, SWITCH + dbw 3, POKEMON_TRADER + dbw 3, BILL + db 0 + +MachineAtrociousWeezingDeckList: + dbw 23, GRASS_ENERGY + dbw 3, GRIMER_LV10 + dbw 2, KOFFING_LV12 + dbw 2, KOFFING_LV14 + dbw 2, WEEZING_LV26 + dbw 2, DARK_WEEZING + dbw 2, SCYTHER_LV25 + dbw 3, MEOWTH_LV14 + dbw 2, DARK_PERSIAN_LV28 + dbw 2, SUPER_POTION + dbw 2, ENERGY_RETRIEVAL + dbw 2, PROFESSOR_OAK + dbw 4, POTION + dbw 4, DEFENDER + dbw 2, POKEMON_TRADER + dbw 3, BILL + db 0 + +; dark electric +MachineTheBenchIsAlsoASurpriseDeckList: + dbw 8, WATER_ENERGY + dbw 15, LIGHTNING_ENERGY + dbw 4, RAINBOW_ENERGY + dbw 3, STARYU_LV17 + dbw 2, DARK_STARMIE + dbw 2, PIKACHU_LV5 + dbw 2, PIKACHU_LV14 + dbw 3, DARK_RAICHU + dbw 3, VOLTORB_LV8 + dbw 2, ELECTRODE_LV42 + dbw 2, ZAPDOS_LV40 + dbw 2, ENERGY_RETRIEVAL + dbw 4, ENERGY_SEARCH + dbw 2, PROFESSOR_OAK + dbw 2, POKEMON_TRADER + dbw 4, BILL + db 0 + +MachineEnergyConservationDeckList: + dbw 22, LIGHTNING_ENERGY + dbw 2, PIKACHU_LV13 + dbw 2, RAICHU_LV33 + dbw 2, VOLTORB_LV8 + dbw 2, VOLTORB_LV13 + dbw 3, DARK_ELECTRODE + dbw 1, JOLTEON_LV24 + dbw 1, JOLTEON_LV29 + dbw 1, DARK_JOLTEON + dbw 2, EEVEE_LV9 + dbw 2, EEVEE_LV12 + dbw 3, ENERGY_RETRIEVAL + dbw 3, ENERGY_SEARCH + dbw 2, PROFESSOR_OAK + dbw 2, SUPER_ENERGY_RETRIEVAL + dbw 3, PLUSPOWER + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 3, BILL + db 0 + +MachineSonicboomDeckList: + dbw 22, LIGHTNING_ENERGY + dbw 2, MAGNEMITE_LV13 + dbw 2, MAGNEMITE_LV15 + dbw 2, MAGNETON_LV35 + dbw 2, DARK_MAGNETON + dbw 2, VOLTORB_LV8 + dbw 2, VOLTORB_LV13 + dbw 2, ELECTRODE_LV35 + dbw 2, DARK_ELECTRODE + dbw 2, ELECTABUZZ_LV35 + dbw 3, DODUO_LV8 + dbw 2, DODRIO_LV28 + dbw 2, ENERGY_RETRIEVAL + dbw 2, PROFESSOR_OAK + dbw 4, PLUSPOWER + dbw 3, POKEMON_TRADER + dbw 4, BILL + db 0 + +MachineRageOfTheHeavensDeckList: + dbw 20, LIGHTNING_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 1, ZAPDOS_LV28 + dbw 1, ZAPDOS_LV40 + dbw 1, ZAPDOS_LV64 + dbw 1, ZAPDOS_LV68 + dbw 2, PIDGEY_LV8 + dbw 2, PIDGEY_LV10 + dbw 1, PIDGEOTTO_LV36 + dbw 2, PIDGEOTTO_LV38 + dbw 1, PIDGEOT_LV38 + dbw 1, PIDGEOT_LV40 + dbw 2, SPEAROW_LV12 + dbw 1, SPEAROW_LV13 + dbw 1, FEAROW_LV24 + dbw 1, DARK_FEAROW + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, POTION + dbw 2, DEFENDER + dbw 2, COMPUTER_SEARCH + dbw 3, POKEMON_TRADER + dbw 4, BILL + db 0 + +; dark water +MachineDarkWaterDeckList: + dbw 10, WATER_ENERGY + dbw 10, PSYCHIC_ENERGY + dbw 2, PSYDUCK_LV15 + dbw 2, PSYDUCK_LV16 + dbw 3, DARK_GOLDUCK + dbw 3, DARK_VAPOREON + dbw 2, MR_MIME_LV20 + dbw 2, JYNX_LV18 + dbw 1, JYNX_LV23 + dbw 1, JYNX_LV27 + dbw 1, EEVEE_LV5 + dbw 1, EEVEE_LV9 + dbw 2, EEVEE_LV12 + dbw 3, ENERGY_REMOVAL + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 1, COMPUTER_SEARCH + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 3, THE_BOSSS_WAY + dbw 4, BILL + db 0 + +MachineQuickFreezeDeckList: + dbw 22, WATER_ENERGY + dbw 2, SEEL_LV10 + dbw 2, SEEL_LV12 + dbw 3, DEWGONG_LV42 + dbw 2, STARYU_LV15 + dbw 2, STARYU_LV17 + dbw 3, STARMIE + dbw 1, MAGIKARP_LV6 + dbw 1, MAGIKARP_LV8 + dbw 1, MAGIKARP_LV10 + dbw 3, DARK_GYARADOS + dbw 2, ARTICUNO_LV34 + dbw 2, ARTICUNO_LV35 + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 1, COMPUTER_SEARCH + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 4, BILL + db 0 + +MachineWhirlpoolShowerDeckList: + dbw 23, WATER_ENERGY + dbw 4, STARYU_LV15 + dbw 3, DARK_STARMIE + dbw 3, DARK_VAPOREON + dbw 4, VOLTORB_LV10 + dbw 3, ELECTRODE_LV42 + dbw 4, EEVEE_LV9 + dbw 4, ENERGY_REMOVAL + dbw 2, ENERGY_RETRIEVAL + dbw 2, SUPER_ENERGY_REMOVAL + dbw 2, SWITCH + dbw 4, BILL + dbw 2, POKEBALL + db 0 + +MachineWaterGangDeckList: + dbw 22, WATER_ENERGY + dbw 1, SQUIRTLE_LV8 + dbw 1, SQUIRTLE_LV14 + dbw 1, SQUIRTLE_LV15 + dbw 1, SQUIRTLE_LV16 + dbw 3, DARK_WARTORTLE + dbw 2, DARK_BLASTOISE + dbw 2, STARYU_LV15 + dbw 2, STARYU_LV17 + dbw 2, DARK_STARMIE + dbw 1, MAGIKARP_LV6 + dbw 1, MAGIKARP_LV8 + dbw 1, MAGIKARP_LV10 + dbw 2, DARK_GYARADOS + dbw 3, ENERGY_RETRIEVAL + dbw 3, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 1, COMPUTER_SEARCH + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 2, THE_BOSSS_WAY + dbw 4, BILL + db 0 + +; dark fire +MachineFireballDeckList: + dbw 22, FIRE_ENERGY + dbw 4, CHARMANDER_LV9 + dbw 3, DARK_CHARMELEON + dbw 2, DARK_CHARIZARD + dbw 3, SQUIRTLE_LV16 + dbw 3, MACHOP_LV24 + dbw 3, DODUO_LV10 + dbw 2, DODRIO_LV28 + dbw 3, ENERGY_REMOVAL + dbw 2, ENERGY_RETRIEVAL + dbw 1, PROFESSOR_OAK + dbw 1, SUPER_ENERGY_REMOVAL + dbw 2, DEFENDER + dbw 3, SCOOP_UP + dbw 4, BILL + dbw 2, POKEBALL + db 0 + +MachineCompleteCombustionDeckList: + dbw 28, FIRE_ENERGY + dbw 3, GROWLITHE_LV12 + dbw 2, ARCANINE_LV45 + dbw 4, PONYTA_LV15 + dbw 3, DARK_RAPIDASH + dbw 4, MAGMAR_LV27 + dbw 2, MEOWTH_LV14 + dbw 2, KANGASKHAN_LV40 + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, BILL + dbw 2, MASTER_BALL + dbw 2, POKEBALL + dbw 1, NIGHTLY_GARBAGE_RUN + db 0 + +MachineOminousSpiritFlamesDeckList: + dbw 20, FIRE_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 2, RECYCLE_ENERGY + dbw 2, VULPIX_LV11 + dbw 2, VULPIX_LV13 + dbw 1, NINETALES_LV32 + dbw 1, NINETALES_LV35 + dbw 2, DARK_NINETALES + dbw 2, MAGMAR_LV31 + dbw 2, MOLTRES_LV35 + dbw 3, RATTATA_LV12 + dbw 3, MEOWTH_LV17 + dbw 2, DARK_PERSIAN_LV28 + dbw 3, ENERGY_REMOVAL + dbw 3, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 3, BILL + db 0 + +MachineEternalFireDeckList: + dbw 22, FIRE_ENERGY + dbw 1, CHARMANDER_LV9 + dbw 1, CHARMANDER_LV10 + dbw 1, CHARMANDER_LV12 + dbw 1, CHARMELEON + dbw 1, DARK_CHARMELEON + dbw 1, PONYTA_LV8 + dbw 1, PONYTA_LV10 + dbw 1, PONYTA_LV15 + dbw 1, RAPIDASH_LV30 + dbw 1, RAPIDASH_LV33 + dbw 1, DARK_RAPIDASH + dbw 1, MAGMAR_LV18 + dbw 1, MAGMAR_LV24 + dbw 1, MAGMAR_LV27 + dbw 1, MAGMAR_LV31 + dbw 1, MOLTRES_LV35 + dbw 1, MOLTRES_LV37 + dbw 1, MOLTRES_LV40 + dbw 4, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 2, PROFESSOR_OAK + dbw 1, SUPER_ENERGY_RETRIEVAL + dbw 1, COMPUTER_SEARCH + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 4, BILL + dbw 2, MASTER_BALL + db 0 + +; dark fighting +MachineBewareTheTrapDeckList: + dbw 16, FIGHTING_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 3, CHARMANDER_LV10 + dbw 2, CHARMELEON + dbw 2, DIGLETT_LV8 + dbw 2, DIGLETT_LV15 + dbw 3, DARK_DUGTRIO + dbw 2, CUBONE_LV13 + dbw 2, CUBONE_LV14 + dbw 3, DARK_MAROWAK + dbw 1, MEOWTH_LV10 + dbw 1, MEOWTH_LV13 + dbw 1, PERSIAN + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, DIGGER + dbw 3, POKEMON_TRADER + dbw 4, BILL + dbw 4, MASTER_BALL + dbw 2, THE_ROCKETS_TRAP + db 0 + +MachineOgresKickDeckList: + dbw 4, FIRE_ENERGY + dbw 16, FIGHTING_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 2, RAINBOW_ENERGY + dbw 1, PONYTA_LV8 + dbw 2, PONYTA_LV10 + dbw 1, RAPIDASH_LV30 + dbw 1, DARK_RAPIDASH + dbw 3, MACHOP_LV24 + dbw 2, DARK_MACHOKE + dbw 1, DARK_MACHAMP + dbw 2, HITMONLEE_LV30 + dbw 2, TAUROS_LV32 + dbw 2, TAUROS_LV35 + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, SWITCH + dbw 3, POKEMON_TRADER + dbw 4, BILL + dbw 3, MASTER_BALL + db 0 + +MachineRockBlastDeckList: + dbw 22, FIGHTING_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 4, DIGLETT_LV15 + dbw 3, DARK_DUGTRIO + dbw 4, GEODUDE_LV16 + dbw 3, GRAVELER_LV28 + dbw 3, GOLEM_LV37 + dbw 4, LICKITUNG_LV26 + dbw 3, ENERGY_RETRIEVAL + dbw 2, DEFENDER + dbw 2, DIGGER + dbw 2, POKEMON_BREEDER + dbw 4, BILL + dbw 2, POKEBALL + db 0 + +MachineHeavyWorkDeckList: + dbw 20, FIGHTING_ENERGY + dbw 3, DOUBLE_COLORLESS_ENERGY + dbw 2, SCYTHER_LV25 + dbw 4, MACHOP_LV24 + dbw 4, DARK_MACHOKE + dbw 3, DARK_MACHAMP + dbw 3, ONIX_LV25 + dbw 4, SPEAROW_LV9 + dbw 3, DARK_FEAROW + dbw 2, ENERGY_RETRIEVAL + dbw 1, PROFESSOR_OAK + dbw 3, SWITCH + dbw 2, POKEMON_TRADER + dbw 3, THE_BOSSS_WAY + dbw 3, BILL + db 0 + +; dark psychic +MachineSlowbrosFishingDeckList: + dbw 16, PSYCHIC_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 2, RECYCLE_ENERGY + dbw 2, AERODACTYL_LV30 + dbw 2, SLOWPOKE_LV16 + dbw 2, SLOWPOKE_LV18 + dbw 3, DARK_SLOWBRO + dbw 2, JYNX_LV27 + dbw 2, MEWTWO_LV30 + dbw 2, JIGGLYPUFF_LV13 + dbw 2, JIGGLYPUFF_LV14 + dbw 3, WIGGLYTUFF_LV36 + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 2, PROFESSOR_OAK + dbw 4, MYSTERIOUS_FOSSIL + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 4, BILL + db 0 + +MachineDirectHitDeckList: + dbw 23, PSYCHIC_ENERGY + dbw 4, PSYDUCK_LV16 + dbw 3, DARK_GOLDUCK + dbw 4, ABRA_LV8 + dbw 3, DARK_KADABRA + dbw 2, DARK_ALAKAZAM + dbw 2, MEWTWO_LV30 + dbw 2, RATTATA_LV15 + dbw 1, DARK_RATICATE + dbw 2, KANGASKHAN_LV40 + dbw 3, ENERGY_REMOVAL + dbw 3, ENERGY_RETRIEVAL + dbw 1, PROFESSOR_OAK + dbw 2, POKEMON_TRADER + dbw 3, THE_BOSSS_WAY + dbw 2, BILL + db 0 + +MachineBadDreamDeckList: + dbw 18, PSYCHIC_ENERGY + dbw 4, FULLHEAL_ENERGY + dbw 4, GASTLY_LV13 + dbw 2, HAUNTER_LV17 + dbw 2, HAUNTER_LV22 + dbw 3, GENGAR_LV40 + dbw 4, DROWZEE_LV10 + dbw 3, DARK_HYPNO + dbw 4, KANGASKHAN_LV40 + dbw 1, PROFESSOR_OAK + dbw 2, FULL_HEAL + dbw 4, SLEEP + dbw 2, POKEMON_BREEDER + dbw 4, BILL + dbw 3, POKEBALL + db 0 + +MachineBenchPanicDeckList: + dbw 20, PSYCHIC_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 2, GASTLY_LV13 + dbw 2, GASTLY_LV17 + dbw 3, DARK_HAUNTER + dbw 3, DARK_GENGAR + dbw 2, DROWZEE_LV10 + dbw 2, DROWZEE_LV12 + dbw 3, HYPNO_LV36 + dbw 2, KANGASKHAN_LV40 + dbw 2, TAUROS_LV32 + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, COMPUTER_SEARCH + dbw 3, POKEMON_TRADER + dbw 4, BILL + dbw 3, MASTER_BALL + db 0 + +; colorless +MachineSnorlaxGuardDeckList: + dbw 1, GRASS_ENERGY + dbw 1, FIRE_ENERGY + dbw 1, WATER_ENERGY + dbw 1, LIGHTNING_ENERGY + dbw 1, FIGHTING_ENERGY + dbw 1, PSYCHIC_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 4, POTION_ENERGY + dbw 4, FULLHEAL_ENERGY + dbw 4, RECYCLE_ENERGY + dbw 4, LICKITUNG_LV26 + dbw 2, CHANSEY_LV55 + dbw 4, KANGASKHAN_LV40 + dbw 4, SNORLAX_LV35 + dbw 4, ENERGY_REMOVAL + dbw 2, ITEMFINDER + dbw 3, SUPER_ENERGY_REMOVAL + dbw 2, PLUSPOWER + dbw 4, SWITCH + dbw 2, SCOOP_UP + dbw 4, BILL + dbw 3, BILLS_TELEPORTER + db 0 + +MachineEyeOfTheStormDeckList: + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 4, FULLHEAL_ENERGY + dbw 4, RECYCLE_ENERGY + dbw 8, LIGHTNING_ENERGY + dbw 4, PIDGEY_LV10 + dbw 3, PIDGEOTTO_LV38 + dbw 2, PIDGEOT_LV40 + dbw 4, SPEAROW_LV13 + dbw 3, FEAROW_LV27 + dbw 2, TAUROS_LV35 + dbw 1, FLYING_PIKACHU_LV12 + dbw 1, FLYING_PIKACHU_ALT_LV12 + dbw 2, BILL + dbw 2, PROFESSOR_OAK + dbw 2, DEFENDER + dbw 3, POTION + dbw 3, GUST_OF_WIND + dbw 2, ENERGY_RETRIEVAL + dbw 2, SWITCH + dbw 2, MOON_STONE + dbw 2, COMPUTER_SEARCH + db 0 + +MachineSuddenGrowthDeckList: + dbw 5, FIGHTING_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 4, POTION_ENERGY + dbw 4, FULLHEAL_ENERGY + dbw 4, RECYCLE_ENERGY + dbw 2, ONIX_LV25 + dbw 2, HITMONCHAN_LV23 + dbw 4, CLEFAIRY_LV15 + dbw 3, DARK_CLEFABLE + dbw 3, JIGGLYPUFF_LV13 + dbw 4, DRATINI_LV12 + dbw 3, DARK_DRAGONAIR + dbw 2, DARK_DRAGONITE + dbw 3, SUPER_POTION + dbw 2, PROFESSOR_OAK + dbw 1, ITEMFINDER + dbw 2, MOON_STONE + dbw 1, COMPUTER_SEARCH + dbw 2, THE_BOSSS_WAY + dbw 2, BILL + dbw 3, NIGHTLY_GARBAGE_RUN + db 0 + +MachineKingDragoniteDeckList: + dbw 2, GRASS_ENERGY + dbw 2, FIRE_ENERGY + dbw 2, WATER_ENERGY + dbw 2, LIGHTNING_ENERGY + dbw 2, FIGHTING_ENERGY + dbw 2, PSYCHIC_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 4, RECYCLE_ENERGY + dbw 2, CLEFAIRY_LV14 + dbw 2, CLEFAIRY_LV15 + dbw 2, CLEFABLE + dbw 1, DARK_CLEFABLE + dbw 2, CHANSEY_LV55 + dbw 2, KANGASKHAN_LV40 + dbw 2, DRATINI_LV10 + dbw 2, DRATINI_LV12 + dbw 2, DRAGONAIR + dbw 1, DARK_DRAGONAIR + dbw 1, DRAGONITE_LV43 + dbw 1, DRAGONITE_LV45 + dbw 1, DARK_DRAGONITE + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 2, PROFESSOR_OAK + dbw 2, SUPER_SCOOP_UP + dbw 2, SWITCH + dbw 3, POKEMON_TRADER + dbw 4, BILL + dbw 2, MASTER_BALL + db 0 + +; dark special +MachineDarkCharizardDeckList: + dbw 12, FIRE_ENERGY + dbw 10, LIGHTNING_ENERGY + dbw 2, RAINBOW_ENERGY + dbw 4, CHARMANDER_LV9 + dbw 3, DARK_CHARMELEON + dbw 2, DARK_CHARIZARD + dbw 4, PIKACHU_LV12 + dbw 3, RAICHU_LV40 + dbw 4, VOLTORB_LV13 + dbw 3, DARK_ELECTRODE + dbw 3, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 3, BILL + db 0 + +MachineDarkBlastoiseDeckList: + dbw 17, WATER_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 2, SQUIRTLE_LV14 + dbw 2, SQUIRTLE_LV15 + dbw 3, DARK_WARTORTLE + dbw 2, DARK_BLASTOISE + dbw 3, AERODACTYL_LV30 + dbw 3, RATTATA_LV9 + dbw 2, RATICATE + dbw 2, LICKITUNG_LV26 + dbw 2, KANGASKHAN_LV40 + dbw 3, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, FOSSIL_EXCAVATION + dbw 4, MYSTERIOUS_FOSSIL + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 4, BILL + db 0 + +MachineDarkVenusaurDeckList: + dbw 20, GRASS_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 2, BULBASAUR_LV12 + dbw 2, BULBASAUR_LV15 + dbw 3, DARK_IVYSAUR + dbw 2, DARK_VENUSAUR + dbw 3, EKANS_LV15 + dbw 2, ARBOK_LV30 + dbw 3, KOFFING_LV14 + dbw 2, WEEZING_LV26 + dbw 2, KANGASKHAN_LV40 + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 3, SWITCH + dbw 3, POKEMON_TRADER + dbw 4, BILL + dbw 2, MASTER_BALL + db 0 + +MachineDarkDragoniteDeckList: + dbw 2, GRASS_ENERGY + dbw 2, FIRE_ENERGY + dbw 2, WATER_ENERGY + dbw 2, LIGHTNING_ENERGY + dbw 2, FIGHTING_ENERGY + dbw 2, PSYCHIC_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 4, RECYCLE_ENERGY + dbw 2, PIDGEY_LV10 + dbw 2, JIGGLYPUFF_LV13 + dbw 2, JIGGLYPUFF_LV14 + dbw 3, WIGGLYTUFF_LV36 + dbw 2, FARFETCHD_LV20 + dbw 2, CHANSEY_LV55 + dbw 2, KANGASKHAN_LV40 + dbw 4, DRATINI_LV10 + dbw 3, DARK_DRAGONAIR + dbw 2, DARK_DRAGONITE + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, SWITCH + dbw 3, POKEMON_TRADER + dbw 2, THE_BOSSS_WAY + dbw 4, BILL + db 0 + +; rare +MachinePerfectHealthDeckList: + dbw 10, GRASS_ENERGY + dbw 8, WATER_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 2, RAINBOW_ENERGY + dbw 4, BULBASAUR_LV15 + dbw 3, IVYSAUR_LV26 + dbw 2, VENUSAUR_LV64 + dbw 4, GROWLITHE_LV12 + dbw 2, ARCANINE_LV34 + dbw 4, SEEL_LV10 + dbw 2, DEWGONG_LV24 + dbw 2, SNORLAX_LV20 + dbw 2, ENERGY_RETRIEVAL + dbw 4, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, SWITCH + dbw 3, POKEMON_TRADER + dbw 3, BILL + db 0 + +MachineSuperSoakerDeckList: + dbw 18, WATER_ENERGY + dbw 4, POLIWAG_LV13 + dbw 3, POLIWHIRL_LV28 + dbw 2, POLIWRATH_LV48 + dbw 4, HORSEA_LV20 + dbw 2, SEADRA_LV23 + dbw 2, LAPRAS_LV31 + dbw 2, MARILL + dbw 2, MANKEY_LV7 + dbw 1, MR_MIME_LV20 + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 1, COMPUTER_ERROR + dbw 2, COMPUTER_SEARCH + dbw 3, SWITCH + dbw 3, POKEMON_TRADER + dbw 4, BILL + dbw 2, MASTER_BALL + db 0 + +MachineHellsDemonDeckList: + dbw 18, FIGHTING_ENERGY + dbw 4, RECYCLE_ENERGY + dbw 2, DIGLETT_LV8 + dbw 2, DIGLETT_LV16 + dbw 1, DUGTRIO_LV36 + dbw 2, DUGTRIO_LV40 + dbw 2, MACHOP_LV18 + dbw 2, MACHOP_LV20 + dbw 2, MACHOKE_LV28 + dbw 1, MACHOKE_LV40 + dbw 2, MACHAMP_LV54 + dbw 2, KANGASKHAN_LV40 + dbw 2, COOL_PORYGON + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 3, GUST_OF_WIND + dbw 3, PLUSPOWER + dbw 3, POKEMON_TRADER + dbw 4, BILL + db 0 + +MachinePremiumThunderDeckList: + dbw 20, LIGHTNING_ENERGY + dbw 4, RECYCLE_ENERGY + dbw 2, PIKACHU_LV16 + dbw 2, PIKACHU_ALT_LV16 + dbw 2, FLYING_PIKACHU_LV12 + dbw 2, FLYING_PIKACHU_ALT_LV12 + dbw 2, ELECTABUZZ_LV20 + dbw 2, ZAPDOS_LV68 + dbw 2, MEOWTH_LV14 + dbw 2, FARFETCHD_ALT_LV20 + dbw 2, KANGASKHAN_LV38 + dbw 2, TOGEPI + dbw 2, ENERGY_REMOVAL + dbw 2, SUPER_ENERGY_RETRIEVAL + dbw 2, PROFESSOR_OAK + dbw 2, COMPUTER_ERROR + dbw 2, SWITCH + dbw 2, POKEMON_TRADER + dbw 4, BILL + db 0 + +; mysterious +MachineMysteriousMewtwoDeckList: + dbw 15, PSYCHIC_ENERGY + dbw 2, DOUBLE_COLORLESS_ENERGY + dbw 4, ABRA_LV14 + dbw 3, DARK_KADABRA + dbw 2, DARK_ALAKAZAM + dbw 4, DROWZEE_LV12 + dbw 3, DARK_HYPNO + dbw 2, GRS_MEWTWO + dbw 4, CLEFAIRY_LV14 + dbw 3, DARK_CLEFABLE + dbw 2, ENERGY_RETRIEVAL + dbw 3, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, SWITCH + dbw 3, POKEMON_TRADER + dbw 3, THE_BOSSS_WAY + dbw 4, BILL + db 0 + +MachineHeavenlyLugiaDeckList: + dbw 2, GRASS_ENERGY + dbw 2, FIRE_ENERGY + dbw 2, WATER_ENERGY + dbw 2, LIGHTNING_ENERGY + dbw 2, FIGHTING_ENERGY + dbw 2, PSYCHIC_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 2, POTION_ENERGY + dbw 2, FULLHEAL_ENERGY + dbw 4, RECYCLE_ENERGY + dbw 1, MR_MIME_LV20 + dbw 4, PIDGEY_LV10 + dbw 3, PIDGEOTTO_LV36 + dbw 2, PIDGEOT_LV40 + dbw 4, SPEAROW_LV12 + dbw 2, FEAROW_LV27 + dbw 2, LUGIA + dbw 2, ENERGY_RETRIEVAL + dbw 2, ENERGY_SEARCH + dbw 1, PROFESSOR_OAK + dbw 2, MOON_STONE + dbw 2, GUST_OF_WIND + dbw 2, COMPUTER_SEARCH + dbw 3, POKEMON_TRADER + dbw 4, BILL + db 0 + +MachineBrutalTrainersDeckList: + dbw 6, PSYCHIC_ENERGY + dbw 4, DOUBLE_COLORLESS_ENERGY + dbw 4, RECYCLE_ENERGY + dbw 1, JYNX_LV27 + dbw 1, MEWTWO_LV30 + dbw 1, FARFETCHD_LV20 + dbw 1, CHANSEY_LV55 + dbw 1, KANGASKHAN_LV40 + dbw 1, COOL_PORYGON + dbw 1, SNORLAX_LV20 + dbw 1, HUNGRY_SNORLAX + dbw 4, ENERGY_REMOVAL + dbw 4, SUPER_ENERGY_REMOVAL + dbw 4, IMPOSTER_OAKS_REVENGE + dbw 4, IMPOSTER_PROFESSOR_OAK + dbw 4, SLEEP + dbw 4, DIGGER + dbw 4, BILL + dbw 4, ROCKETS_SNEAK_ATTACK + dbw 2, HERE_COMES_TEAM_ROCKET + dbw 4, THE_ROCKETS_TRAP + db 0 + +MachineDreadfulParalysisDeckList: + dbw 6, LIGHTNING_ENERGY + dbw 6, PSYCHIC_ENERGY + dbw 4, ZAPDOS_LV28 + dbw 3, MR_MIME_LV28 + dbw 1, MR_MIME_LV20 + dbw 3, MEWTWO_ALT_LV60 + dbw 4, PROFESSOR_OAK + dbw 4, BILL + dbw 4, BILLS_TELEPORTER + dbw 3, COMPUTER_SEARCH + dbw 3, ITEMFINDER + dbw 3, ENERGY_REMOVAL + dbw 2, IMPOSTER_OAKS_REVENGE + dbw 3, ROCKETS_SNEAK_ATTACK + dbw 4, THE_ROCKETS_TRAP + dbw 3, PLUSPOWER + dbw 2, SCOOP_UP + dbw 2, GOOP_GAS_ATTACK + db 0 diff --git a/src/data/auto_deck_machine.asm b/src/data/auto_deck_machine.asm new file mode 100644 index 0000000..ba3b6a7 --- /dev/null +++ b/src/data/auto_deck_machine.asm @@ -0,0 +1,274 @@ +; each Auto Deck Machine section has 4 deck entries +; each entry consists of +; its card list (see data/auto_deck_card_lists.asm) and +; two text IDs for its name and description (flavor) text + +MACRO auto_deck + dw \1 ; deck list + tx \2 ; deck name text ID + tx \3 ; deck description text ID +ENDM + +AutoDeckMachine1Entries: +; basic + auto_deck MachineStarterDeckList, \ + MachineStarterDeckText, \ + MachineStarterDeckDescriptionText + auto_deck MachineElectricFireDeckList, \ + MachineElectricFireDeckText, \ + MachineElectricFireDeckDescriptionText + auto_deck MachineBattleWaterDeckList, \ + MachineBattleWaterDeckText, \ + MachineBattleWaterDeckDescriptionText + auto_deck MachineEsperGreenDeckList, \ + MachineEsperGreenDeckText, \ + MachineEsperGreenDeckDescriptionText +; gifts + auto_deck MachineSweatAntiGR1DeckList, \ + MachineSweatAntiGR1DeckText, \ + MachineSweatAntiGR1DeckDescriptionText + auto_deck MachineGiveInAntiGR2DeckList, \ + MachineGiveInAntiGR2DeckText, \ + MachineGiveInAntiGR2DeckDescriptionText + auto_deck MachineVengefulAntiGR3DeckList, \ + MachineVengefulAntiGR3DeckText, \ + MachineVengefulAntiGR3DeckDescriptionText + auto_deck MachineUnforgivingAntiGR4DeckList, \ + MachineUnforgivingAntiGR4DeckText, \ + MachineUnforgivingAntiGR4DeckDescriptionText +; fighting + auto_deck MachineAwesomeFossilsDeckList, \ + MachineAwesomeFossilsDeckText, \ + MachineAwesomeFossilsDeckDescriptionText + auto_deck MachineNewMachokeDeckList, \ + MachineNewMachokeDeckText, \ + MachineNewMachokeDeckDescriptionText + auto_deck MachineRockFestivalDeckList, \ + MachineRockFestivalDeckText, \ + MachineRockFestivalDeckDescriptionText + auto_deck MachineJabHookDeckList, \ + MachineJabHookDeckText, \ + MachineJabHookDeckDescriptionText +; grass + auto_deck MachineSteadyIncreaseDeckList, \ + MachineSteadyIncreaseDeckText, \ + MachineSteadyIncreaseDeckDescriptionText + auto_deck MachineGatheringNidoranDeckList, \ + MachineGatheringNidoranDeckText, \ + MachineGatheringNidoranDeckDescriptionText + auto_deck MachineNationalParkDeckList, \ + MachineNationalParkDeckText, \ + MachineNationalParkDeckDescriptionText + auto_deck MachineSelectiveBreedingDeckList, \ + MachineSelectiveBreedingDeckText, \ + MachineSelectiveBreedingDeckDescriptionText +; water + auto_deck MachineSplashingAboutDeckList, \ + MachineSplashingAboutDeckText, \ + MachineSplashingAboutDeckDescriptionText + auto_deck MachineBeachDeckList, \ + MachineBeachDeckText, \ + MachineBeachDeckDescriptionText + auto_deck MachineInsulationDeckList, \ + MachineInsulationDeckText, \ + MachineInsulationDeckDescriptionText + auto_deck MachineAntarcticDeckList, \ + MachineAntarcticDeckText, \ + MachineAntarcticDeckDescriptionText +; fire + auto_deck MachineFlameFestivalDeckList, \ + MachineFlameFestivalDeckText, \ + MachineFlameFestivalDeckDescriptionText + auto_deck MachineElectricCurrentShockDeckList, \ + MachineElectricCurrentShockDeckText, \ + MachineElectricCurrentShockDeckDescriptionText + auto_deck MachineRiskyBlazeDeckList, \ + MachineRiskyBlazeDeckText, \ + MachineRiskyBlazeDeckDescriptionText + auto_deck MachineRagingCharizardDeckList, \ + MachineRagingCharizardDeckText, \ + MachineRagingCharizardDeckDescriptionText +; lightning + auto_deck MachineZapdosPowerPlantDeckList, \ + MachineZapdosPowerPlantDeckText, \ + MachineZapdosPowerPlantDeckDescriptionText + auto_deck MachineElectricShockDeckList, \ + MachineElectricShockDeckText, \ + MachineElectricShockDeckDescriptionText + auto_deck MachineOverflowDeckList, \ + MachineOverflowDeckText, \ + MachineOverflowDeckDescriptionText + auto_deck MachineTripleZapdosDeckList, \ + MachineTripleZapdosDeckText, \ + MachineTripleZapdosDeckDescriptionText +; psychic + auto_deck MachineSpecialBarrierDeckList, \ + MachineSpecialBarrierDeckText, \ + MachineSpecialBarrierDeckDescriptionText + auto_deck MachineEvolutionProhibitedDeckList, \ + MachineEvolutionProhibitedDeckText, \ + MachineEvolutionProhibitedDeckDescriptionText + auto_deck MachineGhostDeckList, \ + MachineGhostDeckText, \ + MachineGhostDeckDescriptionText + auto_deck MachinePuppetMasterDeckList, \ + MachinePuppetMasterDeckText, \ + MachinePuppetMasterDeckDescriptionText +; special + auto_deck MachineMewLv15DeckList, \ + MachineMewLv15DeckText, \ + MachineMewLv15DeckDescriptionText + auto_deck MachineVenusaurLv64DeckList, \ + MachineVenusaurLv64DeckText, \ + MachineVenusaurLv64DeckDescriptionText + auto_deck MachineMutualDestructionDeckList, \ + MachineMutualDestructionDeckText, \ + MachineMutualDestructionDeckDescriptionText + auto_deck MachineEverybodySurfDeckList, \ + MachineEverybodySurfDeckText, \ + MachineEverybodySurfDeckDescriptionText +; legendary + auto_deck MachineGrandFireDeckList, \ + MachineGrandFireDeckText, \ + MachineGrandFireDeckDescriptionText + auto_deck MachineLegendaryFossilDeckList, \ + MachineLegendaryFossilDeckText, \ + MachineLegendaryFossilDeckDescriptionText + auto_deck MachineWaterLegendDeckList, \ + MachineWaterLegendDeckText, \ + MachineWaterLegendDeckDescriptionText + auto_deck MachineGreatDragonDeckList, \ + MachineGreatDragonDeckText, \ + MachineGreatDragonDeckDescriptionText + +AutoDeckMachine2Entries: +; dark grass + auto_deck MachineInsectCollectionDeckList, \ + MachineInsectCollectionDeckText, \ + MachineInsectCollectionDeckDescriptionText + auto_deck MachineCaveExplorationDeckList, \ + MachineCaveExplorationDeckText, \ + MachineCaveExplorationDeckDescriptionText + auto_deck MachineOminousMeadowDeckList, \ + MachineOminousMeadowDeckText, \ + MachineOminousMeadowDeckDescriptionText + auto_deck MachineAtrociousWeezingDeckList, \ + MachineAtrociousWeezingDeckText, \ + MachineAtrociousWeezingDeckDescriptionText +; dark lightning + auto_deck MachineTheBenchIsAlsoASurpriseDeckList, \ + MachineTheBenchIsAlsoASurpriseDeckText, \ + MachineTheBenchIsAlsoASurpriseDeckDescriptionText + auto_deck MachineEnergyConservationDeckList, \ + MachineEnergyConservationDeckText, \ + MachineEnergyConservationDeckDescriptionText + auto_deck MachineSonicboomDeckList, \ + MachineSonicboomDeckText, \ + MachineSonicboomDeckDescriptionText + auto_deck MachineRageOfTheHeavensDeckList, \ + MachineRageOfTheHeavensDeckText, \ + MachineRageOfTheHeavensDeckDescriptionText +; dark water + auto_deck MachineDarkWaterDeckList, \ + MachineDarkWaterDeckText, \ + MachineDarkWaterDeckDescriptionText + auto_deck MachineQuickFreezeDeckList, \ + MachineQuickFreezeDeckText, \ + MachineQuickFreezeDeckDescriptionText + auto_deck MachineWhirlpoolShowerDeckList, \ + MachineWhirlpoolShowerDeckText, \ + MachineWhirlpoolShowerDeckDescriptionText + auto_deck MachineWaterGangDeckList, \ + MachineWaterGangDeckText, \ + MachineWaterGangDeckDescriptionText +; dark fire + auto_deck MachineFireballDeckList, \ + MachineFireballDeckText, \ + MachineFireballDeckDescriptionText + auto_deck MachineCompleteCombustionDeckList, \ + MachineCompleteCombustionDeckText, \ + MachineCompleteCombustionDeckDescriptionText + auto_deck MachineOminousSpiritFlamesDeckList, \ + MachineOminousSpiritFlamesDeckText, \ + MachineOminousSpiritFlamesDeckDescriptionText + auto_deck MachineEternalFireDeckList, \ + MachineEternalFireDeckText, \ + MachineEternalFireDeckDescriptionText +; dark fighting + auto_deck MachineBewareTheTrapDeckList, \ + MachineBewareTheTrapDeckText, \ + MachineBewareTheTrapDeckDescriptionText + auto_deck MachineOgresKickDeckList, \ + MachineOgresKickDeckText, \ + MachineOgresKickDeckDescriptionText + auto_deck MachineRockBlastDeckList, \ + MachineRockBlastDeckText, \ + MachineRockBlastDeckDescriptionText + auto_deck MachineHeavyWorkDeckList, \ + MachineHeavyWorkDeckText, \ + MachineHeavyWorkDeckDescriptionText +; dark psychic + auto_deck MachineSlowbrosFishingDeckList, \ + MachineSlowbrosFishingDeckText, \ + MachineSlowbrosFishingDeckDescriptionText + auto_deck MachineDirectHitDeckList, \ + MachineDirectHitDeckText, \ + MachineDirectHitDeckDescriptionText + auto_deck MachineBadDreamDeckList, \ + MachineBadDreamDeckText, \ + MachineBadDreamDeckDescriptionText + auto_deck MachineBenchPanicDeckList, \ + MachineBenchPanicDeckText, \ + MachineBenchPanicDeckDescriptionText +; colorless + auto_deck MachineSnorlaxGuardDeckList, \ + MachineSnorlaxGuardDeckText, \ + MachineSnorlaxGuardDeckDescriptionText + auto_deck MachineEyeOfTheStormDeckList, \ + MachineEyeOfTheStormDeckText, \ + MachineEyeOfTheStormDeckDescriptionText + auto_deck MachineSuddenGrowthDeckList, \ + MachineSuddenGrowthDeckText, \ + MachineSuddenGrowthDeckDescriptionText + auto_deck MachineKingDragoniteDeckList, \ + MachineKingDragoniteDeckText, \ + MachineKingDragoniteDeckDescriptionText +; dark special + auto_deck MachineDarkCharizardDeckList, \ + MachineDarkCharizardDeckText, \ + MachineDarkCharizardDeckDescriptionText + auto_deck MachineDarkBlastoiseDeckList, \ + MachineDarkBlastoiseDeckText, \ + MachineDarkBlastoiseDeckDescriptionText + auto_deck MachineDarkVenusaurDeckList, \ + MachineDarkVenusaurDeckText, \ + MachineDarkVenusaurDeckDescriptionText + auto_deck MachineDarkDragoniteDeckList, \ + MachineDarkDragoniteDeckText, \ + MachineDarkDragoniteDeckDescriptionText +; rare + auto_deck MachinePerfectHealthDeckList, \ + MachinePerfectHealthDeckText, \ + MachinePerfectHealthDeckDescriptionText + auto_deck MachineSuperSoakerDeckList, \ + MachineSuperSoakerDeckText, \ + MachineSuperSoakerDeckDescriptionText + auto_deck MachineHellsDemonDeckList, \ + MachineHellsDemonDeckText, \ + MachineHellsDemonDeckDescriptionText + auto_deck MachinePremiumThunderDeckList, \ + MachinePremiumThunderDeckText, \ + MachinePremiumThunderDeckDescriptionText +; mysterious + auto_deck MachineMysteriousMewtwoDeckList, \ + MachineMysteriousMewtwoDeckText, \ + MachineMysteriousMewtwoDeckDescriptionText + auto_deck MachineHeavenlyLugiaDeckList, \ + MachineHeavenlyLugiaDeckText, \ + MachineHeavenlyLugiaDeckDescriptionText + auto_deck MachineBrutalTrainersDeckList, \ + MachineBrutalTrainersDeckText, \ + MachineBrutalTrainersDeckDescriptionText + auto_deck MachineDreadfulParalysisDeckList, \ + MachineDreadfulParalysisDeckText, \ + MachineDreadfulParalysisDeckDescriptionText diff --git a/src/data/black_box_promos.asm b/src/data/black_box_promos.asm new file mode 100644 index 0000000..67f716d --- /dev/null +++ b/src/data/black_box_promos.asm @@ -0,0 +1,133 @@ +MACRO blackbox_promo + dw \1 ; recipe pointer + db \2 ; whether locked to post-game (EVENT_MASONS_LAB_CHALLENGE_MACHINE_STATE) + dw \3 ; output promo card id +ENDM + +MACRO blackbox_promo_recipe + dw \# ; input card ids + dw 0 ; end of list +ENDM + +BlackboxPromoCards: + blackbox_promo .dugtrio_lv40, FALSE, DUGTRIO_LV40 + blackbox_promo .mankey_alt_lv7, TRUE, MANKEY_ALT_LV7 + blackbox_promo .diglett_lv16, TRUE, DIGLETT_LV16 + blackbox_promo .moltres_lv40, FALSE, MOLTRES_LV40 + blackbox_promo .arcanine_lv34, TRUE, ARCANINE_LV34 +; bug, CHARIZARD_LV76 should be CHARIZARD_ALT_LV76 + blackbox_promo .nonpromo_charizard_lv76, FALSE, CHARIZARD_LV76 + blackbox_promo .pikachu_lv13, TRUE, PIKACHU_LV13 + blackbox_promo .pikachu_lv16, FALSE, PIKACHU_LV16 + blackbox_promo .zapdos_lv68, FALSE, ZAPDOS_LV68 + blackbox_promo .pikachu_alt_lv16, FALSE, PIKACHU_ALT_LV16 + blackbox_promo .electabuzz_lv20, TRUE, ELECTABUZZ_LV20 + blackbox_promo .articuno_lv37, FALSE, ARTICUNO_LV37 + blackbox_promo .magikarp_lv10, TRUE, MAGIKARP_LV10 + blackbox_promo .blastoise_alt_lv52, FALSE, BLASTOISE_ALT_LV52 + blackbox_promo .venusaur_alt_lv67, FALSE, VENUSAUR_ALT_LV67 + blackbox_promo .grs_mewtwo, TRUE, GRS_MEWTWO + blackbox_promo .mewtwo_alt_lv60, FALSE, MEWTWO_ALT_LV60 + blackbox_promo .mewtwo_lv60, FALSE, MEWTWO_LV60 + blackbox_promo .mewtwo_lv30, TRUE, MEWTWO_LV30 + blackbox_promo .slowpoke_lv9, TRUE, SLOWPOKE_LV9 + blackbox_promo .super_energy_retrieval, TRUE, SUPER_ENERGY_RETRIEVAL + blackbox_promo .dark_persian_alt_lv28, TRUE, DARK_PERSIAN_ALT_LV28 + blackbox_promo .jigglypuff_lv12, FALSE, JIGGLYPUFF_LV12 + blackbox_promo .kangaskhan_lv38, FALSE, KANGASKHAN_LV38 + blackbox_promo .farfetchd_alt_lv20, TRUE, FARFETCHD_ALT_LV20 + blackbox_promo .dragonite_lv41, FALSE, DRAGONITE_LV41 +; bug, DRAGONITE_LV45 should be DRAGONITE_LV43 + blackbox_promo .nonpromo_dragonite_lv45, TRUE, DRAGONITE_LV45 + blackbox_promo .meowth_lv14, FALSE, MEOWTH_LV14 + blackbox_promo .hungry_snorlax, TRUE, HUNGRY_SNORLAX + blackbox_promo .cool_porygon, TRUE, COOL_PORYGON + dw 0 ; end + +.dugtrio_lv40 + blackbox_promo_recipe DUGTRIO_LV36, HITMONLEE_LV30, HITMONCHAN_LV23 +.mankey_alt_lv7 + blackbox_promo_recipe HITMONLEE_LV30, HITMONCHAN_LV23 +.diglett_lv16 + blackbox_promo_recipe DUGTRIO_LV36, DARK_DUGTRIO +.moltres_lv40 + blackbox_promo_recipe NINETALES_LV32, DARK_NINETALES, MOLTRES_LV35 +.arcanine_lv34 + blackbox_promo_recipe NINETALES_LV32, ARCANINE_LV45 +.nonpromo_charizard_lv76 + blackbox_promo_recipe DARK_CHARIZARD, DARK_NINETALES +.pikachu_lv13 + blackbox_promo_recipe RAICHU_LV40, RAICHU_LV45, RAICHU_LV32, DARK_RAICHU +.pikachu_lv16 + blackbox_promo_recipe RAICHU_LV40, RAICHU_LV45, RAICHU_LV32 +.zapdos_lv68 + blackbox_promo_recipe RAICHU_LV40, DARK_RAICHU, ZAPDOS_LV64 +.pikachu_alt_lv16 + blackbox_promo_recipe ELECTRODE_LV35, ELECTRODE_LV42, MAGNETON_LV28, MAGNETON_LV35 +.electabuzz_lv20 + blackbox_promo_recipe ELECTABUZZ_LV35, MAGNETON_LV30, MAGNETON_LV28, MAGNETON_LV35 +.articuno_lv37 + blackbox_promo_recipe POLIWRATH_LV40, KINGLER_LV33, ARTICUNO_LV35 +.magikarp_lv10 + blackbox_promo_recipe GYARADOS, DARK_GYARADOS +.blastoise_alt_lv52 + blackbox_promo_recipe DARK_BLASTOISE, DARK_GYARADOS +.venusaur_alt_lv67 + blackbox_promo_recipe DARK_VILEPLUME, DARK_VENUSAUR +.grs_mewtwo + blackbox_promo_recipe MEW_LV23, MEWTWO_LV53, MEWTWO_LV67 +.mewtwo_alt_lv60 + blackbox_promo_recipe MEW_LV23, MEWTWO_LV67 +.mewtwo_lv60 + blackbox_promo_recipe MEW_LV23, MEWTWO_LV53 +.mewtwo_lv30 + blackbox_promo_recipe MEWTWO_LV53, MEWTWO_LV67 +.slowpoke_lv9 + blackbox_promo_recipe ALAKAZAM_LV42, GENGAR_LV38, MR_MIME_LV28 +.super_energy_retrieval + blackbox_promo_recipe POLIWRATH_LV40, DRAGONAIR +.dark_persian_alt_lv28 + blackbox_promo_recipe CHANSEY_LV55, CLEFABLE, WIGGLYTUFF_LV36 +.jigglypuff_lv12 + blackbox_promo_recipe CHANSEY_LV55, CLEFAIRY_LV14 +.kangaskhan_lv38 + blackbox_promo_recipe KANGASKHAN_LV40, DRAGONAIR +.farfetchd_alt_lv20 + blackbox_promo_recipe PIDGEOT_LV38, CLEFAIRY_LV14, DITTO +.dragonite_lv41 + blackbox_promo_recipe DRAGONITE_LV45, DARK_DRAGONITE, DRAGONAIR +; impossible, recipes mustn't require promos +.nonpromo_dragonite_lv45 + blackbox_promo_recipe DRAGONITE_LV45, DARK_DRAGONITE, DRAGONITE_LV41 +.meowth_lv14 + blackbox_promo_recipe DITTO, SNORLAX_LV20 +.hungry_snorlax + blackbox_promo_recipe SNORLAX_LV20, SNORLAX_LV35 +.cool_porygon + blackbox_promo_recipe DITTO, CLEFABLE + +; phantoms, ishihara tradings, and game center prizes (but a few exceptions) +; used as special cases in black box, but actually redundant +; could've been intended for non-recipe promos? +SpecialPromoCards: + dw VENUSAUR_LV64 + dw MARILL + dw OMASTAR_LV36 + dw GOLEM_LV37 + dw MACHAMP_LV54 + dw ALAKAZAM_LV45 + dw GENGAR_LV40 + dw MEWTWO_LV30 ; not as special as the others + dw MEW_LV15 + dw MEW_LV8 + dw SURFING_PIKACHU_LV13 + dw SURFING_PIKACHU_ALT_LV13 + dw FLYING_PIKACHU_LV12 + dw FLYING_PIKACHU_ALT_LV12 + dw DRAGONITE_LV43 ; not as special as the others + dw TOGEPI + dw LUGIA + dw HERE_COMES_TEAM_ROCKET + dw IMAKUNI_CARD + dw COMPUTER_ERROR + dw 0 diff --git a/src/data/booster_lists.asm b/src/data/booster_lists.asm index 293e007..fb05acb 100644 --- a/src/data/booster_lists.asm +++ b/src/data/booster_lists.asm @@ -10,10 +10,10 @@ MACRO booster_list ENDM BoosterList_cc9b: - booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_PACK_1 + booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_10_ENERGY BoosterList_cc9e: - booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_PACK_1 + booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_10_ENERGY BoosterList_cca1: booster_list BOOSTERS_GIVE_ALL, BOOSTER_BEGINNING_POKEMON @@ -22,7 +22,7 @@ BoosterList_cca4: booster_list BOOSTERS_GIVE_ALL, BOOSTER_LEGENDARY_POWER BoosterList_cca7: - booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_PACK_2 + booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_FROM_ALL_SETS BoosterList_ccaa: booster_list BOOSTERS_GIVE_ALL, BOOSTER_ISLAND_OF_FOSSIL, BOOSTER_BEGINNING_POKEMON @@ -250,7 +250,7 @@ BoosterList_cdba: booster_list BOOSTERS_GIVE_ALL, BOOSTER_TEAM_ROCKETS_AMBITION, BOOSTER_TEAM_ROCKETS_AMBITION BoosterList_cdbe: - booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_PACK_2 + booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_FROM_ALL_SETS BoosterList_cdc1: booster_list BOOSTERS_GIVE_ALL, BOOSTER_PSYCHIC_BATTLE, BOOSTER_ISLAND_OF_FOSSIL, BOOSTER_BEGINNING_POKEMON @@ -292,22 +292,22 @@ BoosterList_ce0d: booster_list BOOSTERS_GIVE_RANDOM, 4, BOOSTER_BEGINNING_POKEMON, BOOSTER_LEGENDARY_POWER, BOOSTER_ISLAND_OF_FOSSIL, BOOSTER_PSYCHIC_BATTLE, BOOSTER_SKY_FLYING_POKEMON, BOOSTER_WE_ARE_TEAM_ROCKET, BOOSTER_TEAM_ROCKETS_AMBITION BoosterList_ce17: - booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_PACK_3, BOOSTER_PRESENT_PACK_3, BOOSTER_PRESENT_PACK_3 + booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_FROM_NON_ROCKET_SETS, BOOSTER_PRESENT_FROM_NON_ROCKET_SETS, BOOSTER_PRESENT_FROM_NON_ROCKET_SETS BoosterList_ce1c: - booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_PACK_4, BOOSTER_PRESENT_PACK_3, BOOSTER_PRESENT_PACK_3 + booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_FROM_LATTER_4_SETS, BOOSTER_PRESENT_FROM_NON_ROCKET_SETS, BOOSTER_PRESENT_FROM_NON_ROCKET_SETS BoosterList_ce21: - booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_PACK_5, BOOSTER_PRESENT_PACK_4, BOOSTER_PRESENT_PACK_3 + booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_FROM_ROCKET_SETS, BOOSTER_PRESENT_FROM_LATTER_4_SETS, BOOSTER_PRESENT_FROM_NON_ROCKET_SETS BoosterList_ce26: - booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_PACK_3 + booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_FROM_NON_ROCKET_SETS BoosterList_ce29: - booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_PACK_4 + booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_FROM_LATTER_4_SETS BoosterList_ce2c: - booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_PACK_5 + booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_FROM_ROCKET_SETS BoosterList_ce2f: booster_list BOOSTERS_GIVE_ALL, BOOSTER_BEGINNING_POKEMON @@ -325,4 +325,4 @@ BoosterList_ce3b: booster_list BOOSTERS_GIVE_ALL, BOOSTER_TEAM_ROCKETS_AMBITION BoosterList_ce3e: - booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_PACK_2 + booster_list BOOSTERS_GIVE_ALL, BOOSTER_PRESENT_FROM_ALL_SETS diff --git a/src/data/challenge_cup.asm b/src/data/challenge_cup.asm new file mode 100644 index 0000000..e8e988e --- /dev/null +++ b/src/data/challenge_cup.asm @@ -0,0 +1,39 @@ +; exclude Legendaries, GR Mewtwo, Phantoms, Bill's Computer and related ones + +TCGChallengeCupPromoPrizes: + dw ARCANINE_LV34 + dw PIKACHU_LV16 + dw PIKACHU_ALT_LV16 + dw SURFING_PIKACHU_LV13 + dw SURFING_PIKACHU_ALT_LV13 + dw ELECTABUZZ_LV20 + dw SLOWPOKE_LV9 + dw MEWTWO_ALT_LV60 + dw MEWTWO_LV60 + dw MEW_LV8 + dw JIGGLYPUFF_LV12 + dw FLYING_PIKACHU_LV12 + dw IMAKUNI_CARD + dw SUPER_ENERGY_RETRIEVAL + dw MEWTWO_LV30 + dw PIKACHU_LV13 + dw FLYING_PIKACHU_ALT_LV12 + +GRChallengeCupPromoPrizes: + dw DARK_PERSIAN_ALT_LV28 + dw MEOWTH_LV14 + dw COMPUTER_ERROR + dw COOL_PORYGON + dw HUNGRY_SNORLAX + dw VENUSAUR_ALT_LV67 + dw CHARIZARD_ALT_LV76 + dw BLASTOISE_ALT_LV52 + dw FARFETCHD_ALT_LV20 + dw KANGASKHAN_LV38 + dw DIGLETT_LV16 + dw DUGTRIO_LV40 + dw DRAGONITE_LV43 + dw MAGIKARP_LV10 + dw TOGEPI + dw MARILL + dw MANKEY_ALT_LV7 diff --git a/src/data/grand_master_cup.asm b/src/data/grand_master_cup.asm new file mode 100644 index 0000000..6d6f98e --- /dev/null +++ b/src/data/grand_master_cup.asm @@ -0,0 +1,52 @@ +; deck id and bitmask for SetGrandMasterCupOpponents +GrandMasterCupOpps: + db EVEN3_YEARS_ON_A_ROCK_DECK_ID, %01111111 ; GRANDMASTERCUP_GENE + db RAGING_BILLOW_OF_FISTS_DECK_ID, %01111111 ; GRANDMASTERCUP_MITCH + db MAX_ENERGY_DECK_ID, %01111111 ; GRANDMASTERCUP_NIKKI + db DARK_SCIENCE_DECK_ID, %01111111 ; GRANDMASTERCUP_RICK + db RAIN_DANCE_CONFUSION_DECK_ID, %01111111 ; GRANDMASTERCUP_AMY + db GO_ARCANINE_DECK_ID, %01111111 ; GRANDMASTERCUP_KEN + db ELECTRIC_SELFDESTRUCT_DECK_ID, %01111111 ; GRANDMASTERCUP_ISAAC + db PSYCHIC_ELITE_DECK_ID, %01111111 ; GRANDMASTERCUP_MURRAY + db RONALDS_ULTRA_DECK_ID, %01000000 ; GRANDMASTERCUP_RONALD + +; 37 promos +; challenge cup prizes + legendaries - IMAKUNI_CARD +GrandMasterCupPromoPrizes: + dw ARCANINE_LV34 + dw PIKACHU_LV16 + dw PIKACHU_ALT_LV16 + dw SURFING_PIKACHU_LV13 + dw SURFING_PIKACHU_ALT_LV13 + dw ELECTABUZZ_LV20 + dw SLOWPOKE_LV9 + dw MEWTWO_ALT_LV60 + dw MEWTWO_LV60 + dw MEW_LV8 + dw JIGGLYPUFF_LV12 + dw FLYING_PIKACHU_LV12 + dw FLYING_PIKACHU_ALT_LV12 + dw DARK_PERSIAN_ALT_LV28 + dw MEOWTH_LV14 + dw COOL_PORYGON + dw HUNGRY_SNORLAX + dw VENUSAUR_ALT_LV67 + dw CHARIZARD_ALT_LV76 + dw BLASTOISE_ALT_LV52 + dw MEWTWO_LV30 + dw PIKACHU_LV13 + dw FARFETCHD_ALT_LV20 + dw KANGASKHAN_LV38 + dw DIGLETT_LV16 + dw DUGTRIO_LV40 + dw DRAGONITE_LV43 + dw MAGIKARP_LV10 + dw TOGEPI + dw MARILL + dw MANKEY_ALT_LV7 + dw COMPUTER_ERROR + dw SUPER_ENERGY_RETRIEVAL + dw MOLTRES_LV40 + dw ARTICUNO_LV37 + dw ZAPDOS_LV68 + dw DRAGONITE_LV41 diff --git a/src/data/mail.asm b/src/data/mail.asm index f6a0516..251926b 100644 --- a/src/data/mail.asm +++ b/src/data/mail.asm @@ -66,7 +66,7 @@ Mail: tx MailMailboxIntroSubjectText mail MailMailboxIntroBody1Text mail MailMailboxIntroBody2Text - mail MailMailboxIntroBody3Text, BOOSTER_PRESENT_PACK_1, MAIL_COMMAND_GIVE_BOOSTER + mail MailMailboxIntroBody3Text, BOOSTER_PRESENT_10_ENERGY, MAIL_COMMAND_GIVE_BOOSTER end_mail .MailDeckDiagnosis1 diff --git a/src/engine/bank02.asm b/src/engine/bank02.asm index 61853d1..b6d166f 100644 --- a/src/engine/bank02.asm +++ b/src/engine/bank02.asm @@ -616,13 +616,13 @@ Func_87d3: and PAD_A jr nz, .asm_8863 ld a, MENU_CANCEL - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel scf ret .asm_8863 call .asm_88a3 ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel scf ret .asm_886d @@ -814,13 +814,13 @@ HandleMultiDirectionalMenu: jr nz, .a_btn ; b btn ld a, MENU_CANCEL - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel scf ret .a_btn call .DrawCursor ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ld a, [wd0c1] scf ret @@ -884,8 +884,8 @@ OpenPrizeCardPageIfFaceUp: or a ret z ; not face-up - ld a, SFX_CURSOR - call PlayConfirmOrCancelSFX + ld a, MENU_CONFIRM + call PlaySFXConfirmOrCancel ld a, [wd0c1] ld c, a @@ -1183,14 +1183,14 @@ HandleStartButtonInDeckSelectionMenu: call CheckIfCurDeckIsEmpty jp nc, .valid_deck ; can be jr ld a, MENU_CANCEL - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel call PrintThereIsNoDeckHereText scf ret .valid_deck ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel call GetSRAMPointerToCurDeckCards push hl call GetSRAMPointerToCurDeck @@ -1623,14 +1623,14 @@ HandleCheckMenuInput: and PAD_A jr nz, .a_press ld a, MENU_CANCEL - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel scf ret .a_press call DisplayCheckMenuCursor ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel scf ret .no_input @@ -1683,7 +1683,7 @@ DisplayCheckMenuCursor: ; if a = MENU_CANCEL (-1), play SFX_CANCEL (usually following B button) ; else SFX_CONFIRM (usually following A button) -PlayConfirmOrCancelSFX: +PlaySFXConfirmOrCancel: push af inc a jr z, .cancel @@ -2052,7 +2052,9 @@ AppendDeckName: katakana "デ" katakana "ッ" katakana "キ" - db "" +REPT 10 + db "" +ENDR .text_end ; returns carry if the deck in hl @@ -2124,7 +2126,7 @@ HandleDeckBuildScreen: and PAD_START jr z, .no_start_btn_1 ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel call ConfirmDeckConfiguration ld a, [wCurCardTypeFilter] ld [wTempCardTypeFilter], a @@ -2191,7 +2193,7 @@ HandleDeckBuildScreen: and PAD_START jr z, .no_start_btn_2 ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ; temporarily store current cursor position ; to retrieve it later @@ -2212,7 +2214,7 @@ HandleDeckBuildScreen: ld a, $ff ld [hCurMenuItem], a ld a, MENU_CANCEL - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel jr .asm_96f3 .asm_96a0 @@ -2224,7 +2226,7 @@ HandleDeckBuildScreen: .asm_96ac ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ld a, [wNumMenuItems] ld [wTempScrollMenuNumVisibleItems], a ld a, [wTempCardTypeFilter] @@ -3482,26 +3484,9 @@ PrintDeckBuildingCardList: ret Text_9e48: +REPT 20 db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" - db "" +ENDR done ; returns carry if card ID in de is $0000 @@ -3630,7 +3615,7 @@ HandleCardSelectionInput: ; b button ld a, -1 ld [hCurMenuItem], a - call PlayConfirmOrCancelSFX ; MENU_CANCEL + call PlaySFXConfirmOrCancel ; MENU_CANCEL scf ret @@ -3638,7 +3623,7 @@ HandleCardSelectionInput: ConfirmSelectionAndReturnCarry: call DrawHorizontalListCursor_Visible ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ld a, [wCurScrollMenuItem] ld e, a ld a, [hCurMenuItem] @@ -3802,7 +3787,7 @@ HandleScrollListInput: .selected call DrawListCursor_Visible ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ld a, [wCurScrollMenuItem] ld e, a ld a, [hCurMenuItem] @@ -3817,7 +3802,7 @@ HandleScrollListInput: jr nz, .selected ld a, -1 ld [hCurMenuItem], a - call PlayConfirmOrCancelSFX ; MENU_CANCEL + call PlaySFXConfirmOrCancel ; MENU_CANCEL scf ret @@ -4324,7 +4309,7 @@ HandleDeckConfirmationMenu: .selected_card ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ld a, [wCurScrollMenuItem] ld [wced7], a @@ -4460,7 +4445,7 @@ ShowDeckInfoHeaderAndWaitForBButton: and PAD_B jr z, .wait_input ld a, MENU_CANCEL - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ret ShowConfirmationCardScreen: @@ -5034,7 +5019,7 @@ Func_a786: jr z, .asm_a80c .asm_a835 ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ld a, [wNumMenuItems] ld [wTempScrollMenuNumVisibleItems], a ld a, [wTempCardTypeFilter] @@ -6297,7 +6282,7 @@ CardAlbum: and PAD_B jr z, .loop_input_empty_list ld a, MENU_CANCEL - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ld a, [wTempScrollMenuScrollOffset] ld [wScrollMenuScrollOffset], a ld a, [wTempScrollMenuItem] @@ -6334,7 +6319,7 @@ CardAlbum: jr z, .loop .open_card_page ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ld a, [wNumMenuItems] ld [wTempScrollMenuNumVisibleItems], a ld a, [wCurScrollMenuItem] @@ -6761,7 +6746,7 @@ PrinterMenu_PokemonCards: jr z, .loop_frame_2 ; start btn ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ld a, [wNumMenuItems] ld [wTempScrollMenuNumVisibleItems], a ld a, [wTempCardTypeFilter] @@ -7064,7 +7049,7 @@ Func_b5b1: jr z, .asm_b5ed .asm_b600 ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ld a, [wTempCardTypeFilter] ld [wced7], a ld de, wUniqueDeckCardList @@ -7321,7 +7306,7 @@ DeckDiagnosisResult: jr z, .loop_input .open_card_page ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX + call PlaySFXConfirmOrCancel ld a, [wNumMenuItems] ld [wTempScrollMenuNumVisibleItems], a ld a, [wCurScrollMenuItem] @@ -7515,11 +7500,19 @@ Func_baec: farcall Func_3ada1 ret -Func_baf1: - farcall Func_2bc9f +HandleAutoDeckMenu: + farcall _HandleAutoDeckMenu ret PrinterMenu_DeckConfiguration: farcall _PrinterMenu_DeckConfiguration ret -; 0xbafb + +AutoDeckMachineMenuParams: + db 4, 2 ; cursor x, cursor y + db 2 ; y separation + db 0 ; x separation + db NUM_DECK_MACHINE_VISIBLE_DECKS ; number of items + db SYM_CURSOR_R ; cursor tile number + db SYM_SPACE ; tile behind cursor + dw NULL ; function pointer if non-0 diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm index e02ed2d..5c44c33 100644 --- a/src/engine/bank03.asm +++ b/src/engine/bank03.asm @@ -144,11 +144,7 @@ StartMenu_CardPop: Func_c12e:: sla a ld hl, .PointerTable - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -624,10 +620,10 @@ Func_c439: call SetVarValue ld a, VAR_2B call ZeroOutVarValue - ld a, $11 + ld a, NUM_TCG_CHALLENGE_CUP_PRIZE_POOL call Random ld c, a - ld a, VAR_29 + ld a, VAR_TCG_CHALLENGE_CUP_PRIZE_INDEX call SetVarValue .skip ret @@ -657,10 +653,10 @@ Func_c477: call SetVarValue ld a, VAR_33 call ZeroOutVarValue - ld a, $11 + ld a, NUM_GR_CHALLENGE_CUP_PRIZE_POOL call Random ld c, a - ld a, VAR_31 + ld a, VAR_GR_CHALLENGE_CUP_PRIZE_INDEX call SetVarValue .asm_c4b4 ret @@ -701,7 +697,9 @@ LoadNPCDuelist: pop af ret -LoadNPCDuelistDeck: +; for a = deck id, +; return a = NPC_* constant corresponding to that deck +GetNPCByDeck: push bc push de push hl @@ -719,14 +717,11 @@ LoadNPCDuelistDeck: ld c, MAX_NPC_DUELIST_DECKS push hl ld a, NPC_DUELIST_STRUCT_DECKS - add l - ld l, a - jr nc, .loop_decks - inc h + add_hl_a .loop_decks ld a, [hli] cp b - jr z, .got_deck + jr z, .get_npc_id dec c jr nz, .loop_decks pop hl @@ -734,7 +729,7 @@ LoadNPCDuelistDeck: .not_found debug_nop jr .done -.got_deck +.get_npc_id pop hl ld a, [hl] .done @@ -764,7 +759,8 @@ CountGRCoinPiecesObtained: pop bc ret -; return the location name in hl, using c == island and a == location +; for c = island and a = location, +; return the location name in hl GetLocationName: push af push bc @@ -777,11 +773,7 @@ GetLocationName: .got_island ld a, b sla a - add l - ld l, a - jr nc, .got_location - inc h -.got_location + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -801,7 +793,7 @@ GetCurrentLocationName: pop af ret -; using de == receiving card, return its long name in hl +; for de = receiving card id, return its long name in hl ; the first half of this function and the next two are identical GetReceivingCardLongName: push af @@ -813,28 +805,12 @@ GetReceivingCardLongName: ld c, a ld a, [hli] ld b, a - ld a, b - cp $ff - jr c, .ok - jr nz, .ok ; redundant - ld a, c - cp $ff -.ok + cp16bc_long $ffff jr z, .not_found - ld a, b - cp d - jr c, .next - jr nz, .next - ld a, c - cp e -.next + cp16bc_long de jr z, .load_name ld a, CARD_RECEIVE_STRUCT_TEXTS_SIZE - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a jr .loop_cards .not_found call LoadCardDataToBuffer1_FromCardID @@ -859,7 +835,7 @@ GetReceivingCardLongName: pop af ret -; using de == receiving card, return its short name in hl +; for de = receiving card id, return its short name in hl GetReceivingCardShortName: push af push bc @@ -870,28 +846,12 @@ GetReceivingCardShortName: ld c, a ld a, [hli] ld b, a - ld a, b - cp $ff - jr c, .ok - jr nz, .ok ; redundant - ld a, c - cp $ff -.ok + cp16bc_long $ffff jr z, .not_found - ld a, b - cp d - jr c, .next - jr nz, .next - ld a, c - cp e -.next + cp16bc_long de jr z, .load_short_name ld a, CARD_RECEIVE_STRUCT_TEXTS_SIZE - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a jr .loop_cards .not_found call LoadCardDataToBuffer1_FromCardID @@ -918,7 +878,7 @@ GetReceivingCardShortName: pop af ret -; using de == receiving card, return its "received" text in hl +; for de = receiving card id, return its "received" text in hl GetReceivedCardText: push af push bc @@ -929,28 +889,12 @@ GetReceivedCardText: ld c, a ld a, [hli] ld b, a - ld a, b - cp $ff - jr c, .ok - jr nz, .ok ; redundant - ld a, c - cp $ff -.ok + cp16bc_long $ffff jr z, .not_found - ld a, b - cp d - jr c, .next - jr nz, .next - ld a, c - cp e -.next + cp16bc_long de jr z, .load_received_text ld a, CARD_RECEIVE_STRUCT_TEXTS_SIZE - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a jr .loop_cards .not_found push hl @@ -1161,43 +1105,7 @@ GRIslandLocationNamePointers: tx MapGRColorlessAltarText ; OWMAP_COLORLESS_ALTAR tx MapGRCastleText ; OWMAP_GR_CASTLE -; 34 promo cards -; just excluding Legendaries, Phantoms, Bill's Computer and related ones, and GR Mewtwo -NonSpecialPromoCards: - dw ARCANINE_LV34 - dw PIKACHU_LV16 - dw PIKACHU_ALT_LV16 - dw SURFING_PIKACHU_LV13 - dw SURFING_PIKACHU_ALT_LV13 - dw ELECTABUZZ_LV20 - dw SLOWPOKE_LV9 - dw MEWTWO_ALT_LV60 - dw MEWTWO_LV60 - dw MEW_LV8 - dw JIGGLYPUFF_LV12 - dw FLYING_PIKACHU_LV12 - dw IMAKUNI_CARD - dw SUPER_ENERGY_RETRIEVAL - dw MEWTWO_LV30 - dw PIKACHU_LV13 - dw FLYING_PIKACHU_ALT_LV12 - dw DARK_PERSIAN_ALT_LV28 - dw MEOWTH_LV14 - dw COMPUTER_ERROR - dw COOL_PORYGON - dw HUNGRY_SNORLAX - dw VENUSAUR_ALT_LV67 - dw CHARIZARD_ALT_LV76 - dw BLASTOISE_ALT_LV52 - dw FARFETCHD_ALT_LV20 - dw KANGASKHAN_LV38 - dw DIGLETT_LV16 - dw DUGTRIO_LV40 - dw DRAGONITE_LV43 - dw MAGIKARP_LV10 - dw TOGEPI - dw MARILL - dw MANKEY_ALT_LV7 +INCLUDE "data/challenge_cup.asm" ; 0xd1ed SECTION "Bank 3@5299", ROMX[$5299], BANK[$3] @@ -1366,11 +1274,7 @@ Func_d3e9:: ld a, b rlca ld hl, .data - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] add d ld d, a @@ -2249,17 +2153,17 @@ GeneralVarMasks: db $06, %00011100 ; VAR_0D db $06, %11100000 ; VAR_0E db $07, %00001111 ; VAR_0F - db $08, %11111111 ; VAR_10 - db $09, %11111111 ; VAR_11 - db $0a, %11111111 ; VAR_12 - db $0b, %11111111 ; VAR_13 - db $0c, %11111111 ; VAR_14 - db $0d, %11111111 ; VAR_15 - db $0e, %11111111 ; VAR_16 - db $0f, %11111111 ; VAR_17 - db $10, %11111111 ; VAR_18 - db $11, %11111111 ; VAR_19 - db $12, %11111111 ; VAR_1A + db $08, %11111111 ; VAR_GRANDMASTERCUP_PRIZE_INDEX_0 + db $09, %11111111 ; VAR_GRANDMASTERCUP_PRIZE_INDEX_1 + db $0a, %11111111 ; VAR_GRANDMASTERCUP_PRIZE_INDEX_2 + db $0b, %11111111 ; VAR_GRANDMASTERCUP_PRIZE_INDEX_3 + db $0c, %11111111 ; VAR_GRANDMASTERCUP_OPPONENT_DECK_0 + db $0d, %11111111 ; VAR_GRANDMASTERCUP_OPPONENT_DECK_1 + db $0e, %11111111 ; VAR_GRANDMASTERCUP_OPPONENT_DECK_2 + db $0f, %11111111 ; VAR_GRANDMASTERCUP_OPPONENT_DECK_3 + db $10, %11111111 ; VAR_GRANDMASTERCUP_OPPONENT_DECK_4 + db $11, %11111111 ; VAR_GRANDMASTERCUP_OPPONENT_DECK_5 + db $12, %11111111 ; VAR_GRANDMASTERCUP_OPPONENT_DECK_6 db $13, %11111111 ; VAR_1B db $14, %11111111 ; VAR_1C db $15, %11111111 ; VAR_1D @@ -2274,7 +2178,7 @@ GeneralVarMasks: db $1a, %11110000 ; VAR_26 db $1b, %00001111 ; VAR_27 db $1b, %01110000 ; VAR_28 - db $1c, %00011111 ; VAR_29 + db $1c, %00011111 ; VAR_TCG_CHALLENGE_CUP_PRIZE_INDEX db $1d, %00001111 ; VAR_2A db $1d, %00110000 ; VAR_2B db $1d, %11000000 ; VAR_2C @@ -2282,7 +2186,7 @@ GeneralVarMasks: db $1f, %11111111 ; VAR_2E db $20, %11111111 ; VAR_2F db $21, %00000111 ; VAR_30 - db $21, %11111000 ; VAR_31 + db $21, %11111000 ; VAR_GR_CHALLENGE_CUP_PRIZE_INDEX db $22, %00001111 ; VAR_32 db $22, %00110000 ; VAR_33 db $23, %00000111 ; VAR_34 @@ -2311,7 +2215,7 @@ ENDR pop af ret -; for the bit offset a = 8m + n, set bit n at (wd606 + m) +; set n, [wd606 + m], where a = 8m + n SetBit_wd606: push af push bc @@ -2321,11 +2225,7 @@ SetBit_wd606: REPT 3 srl a ENDR - add l - ld l, a - jr nc, .got_byte - inc h -.got_byte + add_hl_a pop af and 7 inc a @@ -2333,10 +2233,10 @@ ENDR ld b, 1 .loop_bitmask dec c - jr z, .got_bit + jr z, .got_bitmask sla b jr .loop_bitmask -.got_bit +.got_bitmask ld a, [hl] or b ld [hl], a @@ -2345,7 +2245,7 @@ ENDR pop af ret -; for the bit offset a = 8m + n, clear bit n at (wd606 + m) +; res n, [wd606 + m], where a = 8m + n ClearBit_wd606: push af push bc @@ -2355,11 +2255,7 @@ ClearBit_wd606: REPT 3 srl a ENDR - add l - ld l, a - jr nc, .got_byte - inc h -.got_byte + add_hl_a pop af and 7 inc a @@ -2367,10 +2263,10 @@ ENDR ld b, 1 .loop_bitmask dec c - jr z, .got_bit + jr z, .got_bitmask sla b jr .loop_bitmask -.got_bit +.got_bitmask ld a, b cpl and [hl] @@ -2380,9 +2276,7 @@ ENDR pop af ret -; for the bit offset a = 8m + n, return in the z flag whether bit n at (wd606 + m) is empty -; z: empty, nz: set -; then restore bc and load b from it into a +; bit n, [wd606 + m], where a = 8m + n CheckBit_wd606: push bc push hl @@ -2392,11 +2286,7 @@ CheckBit_wd606: REPT 3 srl a ENDR - add l - ld l, a - jr nc, .got_byte - inc h -.got_byte + add_hl_a pop af and 7 inc a @@ -2404,10 +2294,10 @@ ENDR ld b, 1 .loop_bitmask dec c - jr z, .got_bit + jr z, .got_bitmask sla b jr .loop_bitmask -.got_bit +.got_bitmask ld a, [hl] and b pop bc @@ -2423,11 +2313,7 @@ CheckTCGIslandMilestoneEvents: push hl sla a ld hl, .check_pointers - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -2570,11 +2456,7 @@ CheckGRIslandMilestoneEvents: push hl sla a ld hl, .check_pointers - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -2711,25 +2593,13 @@ RunOverworldScript:: ld hl, wScriptBufferIndex ld a, [hl] ld hl, wScriptBuffer - add l - ld l, a - jr nc, .got_offset - inc h -.got_offset + add_hl_a ld a, [hl] ld d, a ld hl, OverworldScriptTable - add l - ld l, a - jr nc, .next - inc h -.next + add_hl_a ld a, d - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -2869,11 +2739,7 @@ OverworldScriptTable: IncreaseScriptPointer: ld c, a ld hl, wScriptPointer - add [hl] - ld [hli], a - jr nc, .next - inc [hl] -.next + add_at_hl_a ld a, c ld hl, wScriptBufferIndex add [hl] @@ -2923,11 +2789,7 @@ Get2ScriptArgs: pop bc dec a ld hl, wScriptBuffer - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld b, [hl] ld c, a @@ -2963,11 +2825,7 @@ Get1ScriptArg: jr nc, .fallback pop bc ld hl, wScriptBuffer - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hl] or a ret @@ -4005,11 +3863,7 @@ ScriptCommand_PushVar: ld a, [wScriptStackOffset] dec a ld [wScriptStackOffset], a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [wScriptLoadedVar] ld [hl], a jp IncreaseScriptPointerBy1 @@ -4018,11 +3872,7 @@ ScriptCommand_PopVar: ld hl, wScriptStack ld a, [wScriptStackOffset] push af - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hl] ld [wScriptLoadedVar], a pop af @@ -4068,11 +3918,7 @@ ScriptCommand_ScriptCall: dec a dec a ld [wScriptStackOffset], a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [wScriptPointer] ld [hli], a ld a, [wScriptPointer + 1] @@ -4091,11 +3937,7 @@ ScriptCommand_ScriptRet: inc a inc a ld [wScriptStackOffset], a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a dec hl ld a, [hld] ld [wScriptPointer + 1], a @@ -4194,11 +4036,7 @@ ScriptCommand_GiveBoosterPacks: ld a, [wBoosterPackCount] call Random ld hl, wBoosterPackList - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hl] ld [de], a inc de @@ -4296,11 +4134,7 @@ ScriptCommand_ScriptCallfar: dec a dec a ld [wScriptStackOffset], a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [wScriptPointer] ld [hli], a ld a, [wScriptPointer + 1] @@ -4324,11 +4158,7 @@ ScriptCommand_ScriptRetfar: inc a inc a ld [wScriptStackOffset], a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a dec hl ld a, [hld] ld [wScriptBank], a @@ -4543,14 +4373,7 @@ ScriptCommand_CompareLoadedVarWord: ld hl, wScriptFlags res 0, [hl] res 1, [hl] - ld a, d - cp b - jr c, .high_byte_not_equal - jr nz, .high_byte_not_equal -; high byte equal - ld a, e - cp c -.high_byte_not_equal + cp16_long bc jr nz, .not_equal set 0, [hl] .not_equal @@ -5132,25 +4955,13 @@ Func_ebc6: ld e, a ld a, [wde15 + 1] ld d, a - ld a, d - cp $00 - jr c, .asm_ec1d - jr nz, .asm_ec1d - ld a, e - cp $00 -.asm_ec1d + cp16_long 0 jr z, .asm_ec36 ld a, [wde15 + 2] ld e, a ld a, [wde15 + 3] ld d, a - ld a, d - cp $00 - jr c, .asm_ec31 - jr nz, .asm_ec31 - ld a, e - cp $00 -.asm_ec31 + cp16_long 0 jr z, .asm_ec36 scf ccf @@ -5475,7 +5286,7 @@ Func_ef40: ret Func_ef97: -.asm_ef97 +.loop ld a, [wFilteredListPtr] ld l, a ld a, [wFilteredListPtr+1] @@ -5483,21 +5294,17 @@ Func_ef97: ld a, [wRemainingIntroCards] call Random sla a - add l - ld l, a - jr nc, .asm_efac - inc h -.asm_efac + add_hl_a inc hl ld a, [hld] and b - jr z, .asm_ef97 + jr z, .loop ld a, [hl] ret Func_efb3: ld d, a - call LoadNPCDuelistDeck + call GetNPCByDeck ld l, a ld e, VAR_35 .asm_efba @@ -5505,7 +5312,7 @@ Func_efb3: call GetVarValue cp $ff jr z, .asm_efcc - call LoadNPCDuelistDeck + call GetNPCByDeck inc e cp l jr nz, .asm_efba @@ -5525,7 +5332,7 @@ Func_efd0: .asm_efd7 push af call GetVarValue - call LoadNPCDuelistDeck + call GetNPCByDeck call LoadNPCDuelist ld de, wCurrentNPCDuelistData + NPC_DUELIST_STRUCT_TITLE_NAME ld a, [de] @@ -5559,18 +5366,16 @@ Func_eff7: set 1, [hl] ret -Func_f010: +; return bc = prize card id +; at TCGChallengeCupPromoPrizes[VAR_TCG_CHALLENGE_CUP_PRIZE_INDEX] +GetTCGChallengeCupPrizeCardID: push af push hl - ld a, VAR_29 + ld a, VAR_TCG_CHALLENGE_CUP_PRIZE_INDEX call GetVarValue sla a - ld hl, NonSpecialPromoCards - add l - ld l, a - jr nc, .asm_f021 - inc h -.asm_f021 + ld hl, TCGChallengeCupPromoPrizes + add_hl_a ld a, [hli] ld b, [hl] ld c, a @@ -5578,11 +5383,13 @@ Func_f010: pop af ret -Func_f027: +; return hl = prize card name +; at TCGChallengeCupPromoPrizes[VAR_TCG_CHALLENGE_CUP_PRIZE_INDEX] +GetTCGChallengeCupPrizeCardName: push af push bc push de - call Func_f010 + call GetTCGChallengeCupPrizeCardID ld e, c ld d, b call GetReceivingCardShortName @@ -5591,18 +5398,16 @@ Func_f027: pop af ret -Func_f036: +; return bc = prize card id +; at GRChallengeCupPromoPrizes[VAR_GR_CHALLENGE_CUP_PRIZE_INDEX] +GetGRChallengeCupPrizeCardID: push af push hl - ld a, VAR_31 + ld a, VAR_GR_CHALLENGE_CUP_PRIZE_INDEX call GetVarValue sla a - ld hl, $51cb - add l - ld l, a - jr nc, .asm_f047 - inc h -.asm_f047 + ld hl, GRChallengeCupPromoPrizes + add_hl_a ld a, [hli] ld b, [hl] ld c, a @@ -5610,11 +5415,13 @@ Func_f036: pop af ret -Func_f04d: +; return hl = prize card name +; at GRChallengeCupPromoPrizes[VAR_GR_CHALLENGE_CUP_PRIZE_INDEX] +GetGRChallengeCupPrizeCardName: push af push bc push de - call Func_f036 + call GetGRChallengeCupPrizeCardID ld e, c ld d, b call GetReceivingCardLongName diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm index 29b5b4c..3390a8e 100644 --- a/src/engine/bank04.asm +++ b/src/engine/bank04.asm @@ -88,14 +88,14 @@ HandleStartupDebugMenuOption: call CallMappedFunction ret -.FunctionMap: ; boot up debug menu options - key_func $00, _CoreGameLoop ; power on - key_func $01, SetAllCoinsObtainedAndShowCoinMenu ; coins - key_func $02, DebugShowConfigMenu ; config - key_func $03, DebugMenuEffectViewer ; effect viewer - key_func $04, _PlayCredits ; staff roll - key_func $05, StartDebugDuelVsRandomOpponent ; duel - key_func $06, DebugSlotMachine ; slot machine +.FunctionMap + key_func DEBUGMENU_POWER_ON, _CoreGameLoop + key_func DEBUGMENU_COIN, SetAllCoinsObtainedAndShowCoinMenu + key_func DEBUGMENU_CONFIG, DebugShowConfigMenu + key_func DEBUGMENU_EFFECT_VIEWER, DebugMenuEffectViewer + key_func DEBUGMENU_CREDITS, _PlayCredits + key_func DEBUGMENU_DUEL, StartDebugDuelVsRandomOpponent + key_func DEBUGMENU_SLOT, DebugSlotMachine db $ff SetAllCoinsObtainedAndShowCoinMenu: @@ -1268,12 +1268,12 @@ Func_10836: ret .function_map: ; pause menu - key_func $00, PauseMenuStatusScreen - key_func $01, PauseMenuDiaryScreen - key_func $02, PauseMenuDeckScreen - key_func $03, PauseMenuMinicomScreen - key_func $04, PauseMenuCoinScreen - key_func $05, PauseMenuConfigScreen + key_func PAUSEMENU_STATUS, PauseMenuStatusScreen + key_func PAUSEMENU_DIARY, PauseMenuDiaryScreen + key_func PAUSEMENU_DECK, PauseMenuDeckScreen + key_func PAUSEMENU_MINICOM, PauseMenuMinicomScreen + key_func PAUSEMENU_COIN, PauseMenuCoinScreen + key_func PAUSEMENU_CONFIG, PauseMenuConfigScreen db $ff Func_10856: @@ -3098,10 +3098,10 @@ _PCMenu: ret .function_map - key_func $0, .CardAlbum - key_func $1, .DeckDiagnosis - key_func $2, .Glossary - key_func $3, .Printer + key_func PCMENU_CARD_ALBUM, .CardAlbum + key_func PCMENU_DECK_DIAGNOSIS, .DeckDiagnosis + key_func PCMENU_GLOSSARY, .Glossary + key_func PCMENU_PRINTER, .Printer db $ff ; end .Func_11181: @@ -7338,17 +7338,17 @@ ShowProloguePortraitAndText: ret .FunctionMap: - key_func $00, .Func_13bd8 - key_func $01, .Func_13bdf - key_func $02, .Func_13bd8 + key_func PROLOGUE_PLAYER_RECAP, .Player + key_func PROLOGUE_GR_INVASION, .GR + key_func PROLOGUE_PLAYER_TO_LAB, .Player db $ff ; end -.Func_13bd8: +.Player: lb bc, 7, 3 call DrawPlayerPortrait ret -.Func_13bdf: +.GR: ld a, GR_1_PIC lb bc, 7, 3 ld e, EMOTION_NORMAL @@ -7369,30 +7369,30 @@ ShowProloguePortraitAndText: ret .TextListPointers: - dw .text_list1 - dw .text_list2 - dw .text_list3 + dw .PlayerRecap + dw .GRInvasion + dw .PlayerToLab -.text_list1 - tx PrologueScene1Line1Text - tx PrologueScene1Line2Text - tx PrologueScene1Line3Text - tx PrologueScene1Line4Text - tx PrologueScene1Line5Text - tx PrologueScene1Line6Text - tx PrologueScene1Line7Text +.PlayerRecap + tx ProloguePlayerRecapLine1Text + tx ProloguePlayerRecapLine2Text + tx ProloguePlayerRecapLine3Text + tx ProloguePlayerRecapLine4Text + tx ProloguePlayerRecapLine5Text + tx ProloguePlayerRecapLine6Text + tx ProloguePlayerRecapLine7Text dw $ffff -.text_list2 - tx PrologueScene2Line1Text - tx PrologueScene2Line2Text - tx PrologueScene2Line3Text +.GRInvasion + tx PrologueGRInvasionLine1Text + tx PrologueGRInvasionLine2Text + tx PrologueGRInvasionLine3Text dw $ffff -.text_list3 - tx PrologueScene3Line1Text - tx PrologueScene3Line2Text - tx PrologueScene3Line3Text +.PlayerToLab + tx ProloguePlayerToLabLine1Text + tx ProloguePlayerToLabLine2Text + tx ProloguePlayerToLabLine3Text dw $ffff ; 0x13c22 diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm index 0c72b1b..7f00b6a 100644 --- a/src/engine/bank06.asm +++ b/src/engine/bank06.asm @@ -6094,10 +6094,10 @@ Deck5RenameText: textitem 14, 1, DeckText db $ff -; dupe of PlayConfirmOrCancelSFX in bank 2 +; dupe of PlaySFXConfirmOrCancel in bank 2 ; if a = MENU_CANCEL (-1), play SFX_CANCEL (usually following B button) ; else SFX_CONFIRM (usually following A button) -PlayConfirmOrCancelSFX_Bank06: +PlaySFXConfirmOrCancel_Bank06: push af inc a jr z, .cancel @@ -6167,7 +6167,7 @@ InputName: and PAD_START jr z, .check_select ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX_Bank06 + call PlaySFXConfirmOrCancel_Bank06 call HideCursorAtCharPosition ld a, 6 ld [wNamingScreenCursorY], a @@ -6181,7 +6181,7 @@ InputName: and PAD_SELECT jr z, .asm_1af3b ld a, MENU_CONFIRM - call PlayConfirmOrCancelSFX_Bank06 + call PlaySFXConfirmOrCancel_Bank06 ld a, [wNamingScreenMode] inc a cp NUM_NAME_MODES @@ -6579,7 +6579,7 @@ HandleNamingScreenInput: jr nz, .got_sfx ; MENU_CONFIRM ld a, MENU_CANCEL .got_sfx - call PlayConfirmOrCancelSFX_Bank06 + call PlaySFXConfirmOrCancel_Bank06 push af call ShowCursorAtCharPosition pop af diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index c0b0052..dd99ca5 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -5654,9 +5654,9 @@ CallMinicomMenuFunction: ret .minicom_functions: - key_func $00, MinicomDeckSaveMachine - key_func $01, MinicomMailbox - key_func $02, MinicomCardAlbum + key_func MINICOMMENU_DECK_SAVE_MACHINE, MinicomDeckSaveMachine + key_func MINICOMMENU_MAILBOX, MinicomMailbox + key_func MINICOMMENU_CARD_ALBUM, MinicomCardAlbum db $ff MinicomDeckSaveMachine: @@ -5678,7 +5678,7 @@ Func_1e849: Func_1e855: farcall Func_1022a farcall ClearSpriteAnimsAndSetInitialGraphicsConfiguration - farcall Func_baf1 + farcall HandleAutoDeckMenu farcall Func_10252 ret @@ -5790,13 +5790,13 @@ _GiveBoosterPack: tx BoosterPack5Text, BoosterPackFlyingPokemonText ; BOOSTER_SKY_FLYING_POKEMON tx BoosterPack6Text, BoosterPackWeAreTeamRocketText ; BOOSTER_WE_ARE_TEAM_ROCKET tx BoosterPack7Text, BoosterPackTeamRocketsAmbitionText ; BOOSTER_TEAM_ROCKETS_AMBITION - tx SingleSpaceText, DebugUnregisteredText ; BOOSTER_DEBUG_1 - tx SingleSpaceText, PresentPackText ; BOOSTER_PRESENT_PACK_1 - tx SingleSpaceText, PresentPackText ; BOOSTER_PRESENT_PACK_2 - tx SingleSpaceText, PresentPackText ; BOOSTER_PRESENT_PACK_3 - tx SingleSpaceText, PresentPackText ; BOOSTER_PRESENT_PACK_4 - tx SingleSpaceText, PresentPackText ; BOOSTER_PRESENT_PACK_5 - tx SingleSpaceText, DebugUnregisteredText ; BOOSTER_DEBUG_2 + tx SingleSpaceText, DebugUnregisteredText ; BOOSTER_DEBUG_10_STAR + tx SingleSpaceText, PresentPackText ; BOOSTER_PRESENT_10_ENERGY + tx SingleSpaceText, PresentPackText ; BOOSTER_PRESENT_FROM_ALL_SETS + tx SingleSpaceText, PresentPackText ; BOOSTER_PRESENT_FROM_NON_ROCKET_SETS + tx SingleSpaceText, PresentPackText ; BOOSTER_PRESENT_FROM_LATTER_4_SETS + tx SingleSpaceText, PresentPackText ; BOOSTER_PRESENT_FROM_ROCKET_SETS + tx SingleSpaceText, DebugUnregisteredText ; BOOSTER_DEBUG_2_STAR .DrawScreen: ld a, [wCurBoosterPack] @@ -5820,13 +5820,13 @@ _GiveBoosterPack: db SKY_FLYING_POKEMON ; BOOSTER_SKY_FLYING_POKEMON db WE_ARE_TEAM_ROCKET ; BOOSTER_WE_ARE_TEAM_ROCKET db TEAM_ROCKETS_AMBITION ; BOOSTER_TEAM_ROCKETS_AMBITION - db BEGINNING_POKEMON ; BOOSTER_DEBUG_1 - db PRESENT_PACK ; BOOSTER_PRESENT_PACK_1 - db PRESENT_PACK ; BOOSTER_PRESENT_PACK_2 - db PRESENT_PACK ; BOOSTER_PRESENT_PACK_3 - db PRESENT_PACK ; BOOSTER_PRESENT_PACK_4 - db PRESENT_PACK ; BOOSTER_PRESENT_PACK_5 - db BEGINNING_POKEMON ; BOOSTER_DEBUG_2 + db BEGINNING_POKEMON ; BOOSTER_DEBUG_10_STAR + db PRESENT_PACK ; BOOSTER_PRESENT_10_ENERGY + db PRESENT_PACK ; BOOSTER_PRESENT_FROM_ALL_SETS + db PRESENT_PACK ; BOOSTER_PRESENT_FROM_NON_ROCKET_SETS + db PRESENT_PACK ; BOOSTER_PRESENT_FROM_LATTER_4_SETS + db PRESENT_PACK ; BOOSTER_PRESENT_FROM_ROCKET_SETS + db BEGINNING_POKEMON ; BOOSTER_DEBUG_2_STAR .GetPack: call DoFrame @@ -6608,8 +6608,8 @@ MailboxSelectedMail_CallMappedFunction: ret .function_map: - key_func $00, ReadMail - key_func $01, DeleteMail + key_func MAILBOXMENU_READ, ReadMail + key_func MAILBOXMENU_DELETE, DeleteMail db $ff ReadMail: diff --git a/src/engine/bank09.asm b/src/engine/bank09.asm index d19cccf..2f64299 100644 --- a/src/engine/bank09.asm +++ b/src/engine/bank09.asm @@ -2748,7 +2748,7 @@ CheckDeck: .asm_25461 push hl ld hl, wDeckCheckCardCounts - ld c, wDeckCheckCardCountsEnd - wDeckCheckCardCounts + ld c, DECKCHECKSTRUCT_LENGTH xor a .loop_clear ld [hli], a @@ -2771,22 +2771,22 @@ CheckDeck: inc [hl] .not_rainbow ld a, [wLoadedCard1Type] - ld e, $4 + ld e, DECKCHECKSTRUCT_TRAINER cp TYPE_TRAINER jr z, .got_type - ld e, $0 + ld e, DECKCHECKSTRUCT_ENERGY cp TYPE_ENERGY jr nc, .got_type - ld e, $1 + ld e, DECKCHECKSTRUCT_BASIC_PKMN ld a, [wLoadedCard1Stage] or a jr z, .got_type - ld e, $2 + ld e, DECKCHECKSTRUCT_STAGE1_PKMN cp STAGE1 jr z, .got_type - ld e, $3 + ld e, DECKCHECKSTRUCT_STAGE2_PKMN .got_type - ld d, $00 + ld d, 0 ld hl, wDeckCheckCardCounts add hl, de inc [hl] @@ -3507,13 +3507,13 @@ GenerateBoosterContent: db SKY_FLYING_POKEMON, SKY_FLYING_POKEMON, 1, 3, 6, 0 ; BOOSTER_SKY_FLYING_POKEMON db WE_ARE_TEAM_ROCKET, WE_ARE_TEAM_ROCKET, 1, 3, 6, 0 ; BOOSTER_WE_ARE_TEAM_ROCKET db TEAM_ROCKETS_AMBITION, TEAM_ROCKETS_AMBITION, 1, 3, 6, 0 ; BOOSTER_TEAM_ROCKETS_AMBITION - db BEGINNING_POKEMON, PROMOTIONAL, 10, 0, 0, 0 ; BOOSTER_DEBUG_1 - db BEGINNING_POKEMON, BEGINNING_POKEMON, 0, 0, 0, 10 ; BOOSTER_PRESENT_PACK_1 - db BEGINNING_POKEMON, TEAM_ROCKETS_AMBITION, 1, 3, 6, 0 ; BOOSTER_PRESENT_PACK_2 - db BEGINNING_POKEMON, SKY_FLYING_POKEMON, 1, 3, 6, 0 ; BOOSTER_PRESENT_PACK_3 - db PSYCHIC_BATTLE, TEAM_ROCKETS_AMBITION, 1, 3, 6, 0 ; BOOSTER_PRESENT_PACK_4 - db WE_ARE_TEAM_ROCKET, TEAM_ROCKETS_AMBITION, 1, 3, 6, 0 ; BOOSTER_PRESENT_PACK_5 - db BEGINNING_POKEMON, TEAM_ROCKETS_AMBITION, 2, 3, 5, 0 ; BOOSTER_DEBUG_2 + db BEGINNING_POKEMON, PROMOTIONAL, 10, 0, 0, 0 ; BOOSTER_DEBUG_10_STAR + db BEGINNING_POKEMON, BEGINNING_POKEMON, 0, 0, 0, 10 ; BOOSTER_PRESENT_10_ENERGY + db BEGINNING_POKEMON, TEAM_ROCKETS_AMBITION, 1, 3, 6, 0 ; BOOSTER_PRESENT_FROM_ALL_SETS + db BEGINNING_POKEMON, SKY_FLYING_POKEMON, 1, 3, 6, 0 ; BOOSTER_PRESENT_FROM_NON_ROCKET_SETS + db PSYCHIC_BATTLE, TEAM_ROCKETS_AMBITION, 1, 3, 6, 0 ; BOOSTER_PRESENT_FROM_LATTER_4_SETS + db WE_ARE_TEAM_ROCKET, TEAM_ROCKETS_AMBITION, 1, 3, 6, 0 ; BOOSTER_PRESENT_FROM_ROCKET_SETS + db BEGINNING_POKEMON, TEAM_ROCKETS_AMBITION, 2, 3, 5, 0 ; BOOSTER_DEBUG_2_STAR ; fills wCardPopCandidateList with cards that satisfy ; certain criteria: @@ -5337,52 +5337,59 @@ CountIfListedCardsInDeck: or a ret -Func_260e7: +; for a card in de, +; create in wDuelTempList a list of its unique evo cards +; also set carry if at least 1 +_ListUniqueEvoCardsFromDE: call LoadCardDataToBuffer1_FromCardID ld hl, wLoadedCard1Name ld c, [hl] inc hl ld b, [hl] ld hl, wDuelTempList - ld de, $0 -.asm_260f6 + ld de, GRASS_ENERGY - 1 ; 0 +.loop_cards inc de push hl push de call LoadCardDataToBuffer1_FromCardID - jr c, .asm_2611d + jr c, .exit ld a, [wLoadedCard1Type] - cp $08 - jr nc, .asm_26119 + cp TYPE_ENERGY + jr nc, .next_card ld hl, wLoadedCard1PreEvoName ld a, c cp [hl] - jr nz, .asm_26119 + jr nz, .next_card inc hl ld a, b cp [hl] - jr nz, .asm_26119 + jr nz, .next_card +; found evo pop de pop hl ld [hl], e inc hl ld [hl], d inc hl - jr .asm_260f6 -.asm_26119 + jr .loop_cards +.next_card pop de pop hl - jr .asm_260f6 -.asm_2611d + jr .loop_cards + +.exit pop de pop hl +; append $0000 terminator xor a ld [hli], a ld [hl], a ld hl, wDuelTempList ld a, [hli] or [hl] - ret z + ret z ; empty +; not empty scf ret diff --git a/src/engine/bank0a.asm b/src/engine/bank0a.asm index c7d483b..d4d05ff 100644 --- a/src/engine/bank0a.asm +++ b/src/engine/bank0a.asm @@ -3312,27 +3312,28 @@ AIDeckSpecificBenchScore: ; at least 2 GR's Mewtwo in Play Area ld a, 28 ret -; 0x2a72f -SECTION "Bank a@7b32", ROMX[$7b32], BANK[$a] +INCLUDE "src/data/auto_deck_list.asm" +INCLUDE "src/data/auto_deck_machine.asm" Func_2bb32: call EnableSRAM ld a, [wd4b3] ld l, a - ld h, $18 + ld h, 24 call HtimesL ld a, [wd548] or a - jr nz, .asm_2bb49 - ld bc, $7952 - jr .asm_2bb4c -.asm_2bb49 - ld bc, $7a42 -.asm_2bb4c + jr nz, .machine_2 +; machine 1 + ld bc, AutoDeckMachine1Entries + jr .got_addr +.machine_2 + ld bc, AutoDeckMachine2Entries +.got_addr add hl, bc ld bc, $0 -.asm_2bb50 +.loop call Func_2bb7f call Func_2bbbb inc hl @@ -3341,7 +3342,7 @@ Func_2bb32: push hl ld de, wd4b4 ld h, c - ld l, $02 + ld l, 2 call HtimesL add hl, de ld d, h @@ -3355,8 +3356,9 @@ Func_2bb32: call Func_2bb8e inc b ld a, b - cp $04 - jr nz, .asm_2bb50 + cp 4 + jr nz, .loop + ld a, c ld [wNumDeckMachineEntries], a call DisableSRAM @@ -3365,9 +3367,9 @@ Func_2bb32: Func_2bb7f: push hl ld l, c - ld h, $60 + ld h, DECK_COMPRESSED_STRUCT_SIZE call HtimesL - ld de, wd40e + ld de, wAutoDecks add hl, de ld d, h ld e, l @@ -3574,17 +3576,17 @@ Func_2bc4f: db SYM_SPACE ; tile behind cursor dw NULL ; function pointer if non-0 -Func_2bc9f: +_HandleAutoDeckMenu: ld [wd548], a xor a ld [wScrollMenuScrollOffset], a .asm_2bca6 - ld hl, $7afb + ld hl, AutoDeckMachineMenuParams farcall InitializeScrollMenuParameters - ld a, $05 + ld a, NUM_DECK_MACHINE_VISIBLE_DECKS ld [wNumMenuItems], a - call Func_2bcfb - ld hl, $7f5e + call .InitMenu + ld hl, Func_3bf5e ld d, h ld a, l ld hl, wScrollMenuScrollFunc @@ -3592,13 +3594,14 @@ Func_2bc9f: ld [hl], d xor a ld [wd119], a -.asm_2bcc3 +.wait_input call DoFrame farcall HandleScrollMenu - jr nc, .asm_2bcc3 + jr nc, .wait_input ld a, [hCurMenuItem] cp $ff - ret z + ret z ; cancel + ld a, [wScrollMenuScrollOffset] ld [wd54a], a ld b, a @@ -3618,30 +3621,31 @@ Func_2bc9f: ld a, [wd54b] jr .asm_2bca6 -Func_2bcfb: +.InitMenu: xor a ld [wTileMapFill], a call EmptyScreen - ld a, $01 + ld a, TRUE ld [wVBlankOAMCopyToggle], a farcall LoadMenuCursorTile call LoadSymbolsFont call LoadDuelCardSymbolTiles bank1call SetDefaultPalettes - ld de, $3cff + lb de, $3c, $ff call SetupText lb de, 0, 0 lb bc, 20, 13 call DrawRegularTextBox - ld de, $100 + lb de, 1, 0 ld a, [wd548] or a - jr nz, .asm_2bd31 + jr nz, .machine_2 +; machine 1 ldtx hl, AutoDeckMachine1Text - jr .asm_2bd34 -.asm_2bd31 + jr .got_name +.machine_2 ldtx hl, AutoDeckMachine2Text -.asm_2bd34 +.got_name call Func_2c4b ldtx hl, ChooseDeckTypeText call DrawWideTextBox_PrintText @@ -3686,11 +3690,12 @@ Func_2bd7f: push af ld a, [wd548] or a - jr nz, .asm_2bd8c + jr nz, .machine_2 +; machine 1 pop af farcall CheckTCGIslandMilestoneEvents ret -.asm_2bd8c +.machine_2 pop af farcall CheckGRIslandMilestoneEvents ret @@ -3700,29 +3705,30 @@ Func_2bd92: push bc ld a, b inc a - ld b, $00 + ld b, 0 add hl, bc pop bc ld [hl], a ld a, [wd548] or a - jr nz, .asm_2bda8 - ld hl, $7dc3 - jr .asm_2bdab -.asm_2bda8 - ld hl, $7dd7 -.asm_2bdab + jr nz, .machine_2 +; machine 1 + ld hl, .Machine1SectionTitles + jr .got_addr +.machine_2 + ld hl, .Machine2SectionTitles +.got_addr push bc ld c, b sla c - ld b, $00 + ld b, 0 add hl, bc pop bc ld e, l ld d, h ld hl, wd4b4 sla c - ld b, $00 + ld b, 0 add hl, bc ld a, [de] ld [hli], a @@ -3730,4 +3736,27 @@ Func_2bd92: ld a, [de] ld [hl], a ret -; 0x2bdc3 + +.Machine1SectionTitles: + tx BasicDeckMachineTextPadded + tx GivenDeckMachineTextPadded + tx FightingDeckMachineText + tx GrassDeckMachineText + tx WaterDeckMachineText + tx FireDeckMachineText + tx LightningDeckMachineText + tx PsychicDeckMachineText + tx SpecialDeckMachineTextPadded + tx LegendaryDeckMachineTextPadded + +.Machine2SectionTitles: + tx DarkGrassDeckMachineText + tx DarkLightningDeckMachineText + tx DarkWaterDeckMachineText + tx DarkFireDeckMachineText + tx DarkFightingDeckMachineText + tx DarkPsychicDeckMachineText + tx ColorlessDeckMachineTextPadded + tx DarkSpecialDeckMachineText + tx RareCardDeckMachineText + tx MysteriousCardDeckMachineTextPadded diff --git a/src/engine/bank0c.asm b/src/engine/bank0c.asm index b0b8bbe..988f2bb 100644 --- a/src/engine/bank0c.asm +++ b/src/engine/bank0c.asm @@ -255,11 +255,7 @@ Func_301c0: PlacePlayerInGRIslandLocation: sla a ; *2 ld hl, GRIslandLocationPositions - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld e, [hl] ld d, a @@ -271,11 +267,7 @@ Func_30202: push af sla a ; *2 ld hl, GRIslandLocationPositions - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld d, a ld a, [hl] @@ -324,17 +316,9 @@ Func_30242: sla a sla a ; *4 ld hl, .LocationConnections - add l - ld l, a - jr nc, .got_pointer1 - inc h -.got_pointer1 + add_hl_a ld a, c - add l - ld l, a - jr nc, .got_pointer2 - inc h -.got_pointer2 + add_hl_a ld a, [hl] cp b jr z, .done @@ -433,11 +417,7 @@ PrintGRIslandLocationName: sla a sla a ; *4 ld hl, .data - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld e, a ld a, [hli] @@ -466,11 +446,7 @@ PrintGRIslandLocationName: Func_3030a: sla a ; *2 ld hl, .PointerTable - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -512,11 +488,7 @@ Func_30343: sla a sla a ; *4 ld hl, Data_3056a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld [wd680], a ld a, [hli] @@ -529,11 +501,7 @@ Func_3035f: sla a sla a ; *4 ld hl, Data_3056a - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, c ld [wOWScrollSpeed], a ld a, [hli] @@ -596,11 +564,7 @@ Func_303c7: sla a sla a ; *4 ld hl, .data - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hl] ; map inc hl ld d, [hl] ; x @@ -667,21 +631,13 @@ Func_30452: ld a, [wPlayerOWLocation] sla a ; *2 ld hl, GRIslandPlayerPaths - add l - ld l, a - jr nc, .got_pointer1 - inc h -.got_pointer1 + add_hl_a ld a, [hli] ld h, [hl] ld l, a ld a, [wCurOWLocation] sla a ; *2 - add l - ld l, a - jr nc, .got_pointer2 - inc h -.got_pointer2 + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -715,11 +671,7 @@ Func_30452: ld a, [wCurOWLocation] sla a ; *2 ld hl, GRIslandLocationPositions - add l - ld l, a - jr nc, .got_pointer3 - inc h -.got_pointer3 + add_hl_a ld a, [hli] ld e, [hl] ld d, a @@ -732,11 +684,7 @@ Func_30452: ld a, e sla a ; *2 ld hl, .data - add l - ld l, a - jr nc, .got_pointer4 - inc h -.got_pointer4 + add_hl_a ld a, [hli] ld e, [hl] ld d, a @@ -1065,13 +1013,7 @@ Func_311d5: ld [wd615], a call LoadTxRam3 farcall GetGameCenterChips - ld a, b - cp h - jr c, .asm_3123b - jr nz, .asm_3123b - ld a, c - cp l -.asm_3123b + cp16bc_long hl jr nc, .asm_31248 ld a, $01 start_script diff --git a/src/engine/bank0d.asm b/src/engine/bank0d.asm index 6b10327..fc7285e 100644 --- a/src/engine/bank0d.asm +++ b/src/engine/bank0d.asm @@ -1296,37 +1296,13 @@ Func_349cd: Func_349d5: ld a, [wPlayerOWObject] farcall GetOWObjectTilePosition - ld a, d - cp $0b - jr c, .asm_349e6 - jr nz, .asm_349e6 - ld a, e - cp $08 -.asm_349e6 + cpcoord 11, 8 jr z, .asm_34a0e - ld a, d - cp $0a - jr c, .asm_349f2 - jr nz, .asm_349f2 - ld a, e - cp $09 -.asm_349f2 + cpcoord 10, 9 jr z, .asm_34a2a - ld a, d - cp $09 - jr c, .asm_349fe - jr nz, .asm_349fe - ld a, e - cp $09 -.asm_349fe + cpcoord 9, 9 jr z, .asm_34a46 - ld a, d - cp $08 - jr c, .asm_34a0a - jr nz, .asm_34a0a - ld a, e - cp $08 -.asm_34a0a + cpcoord 8, 8 jr z, .asm_34a62 jr .asm_34a7c .asm_34a0e @@ -1560,8 +1536,8 @@ GameCenter1_NPCInteractions: db $ff GameCenter1_OWInteractions: - ow_script 5, 4, Func_34d15 - ow_script 6, 4, Func_34d15 + ow_script 5, 4, Script_BlackBox + ow_script 6, 4, Script_BlackBox ow_script 2, 9, Func_34d35 db $ff @@ -1695,7 +1671,7 @@ Script_34c4c: end_script ret -Func_34d15: +Script_BlackBox: xor a start_script script_command_01 @@ -1704,7 +1680,7 @@ Func_34d15: end_script farcall Func_1312e jr c, .asm_34d2f - farcall Func_4569f + farcall ProcessBlackBoxInputAndOutput ld a, $81 ; priority black box mail farcall AddMailToQueue .asm_34d2f @@ -2280,13 +2256,7 @@ Func_3512c: ld [wd615], a call LoadTxRam3 farcall GetGameCenterChips - ld a, b - cp h - jr c, .asm_35199 - jr nz, .asm_35199 - ld a, c - cp l -.asm_35199 + cp16bc_long hl jr nc, .asm_351a6 ld a, $01 start_script diff --git a/src/engine/bank0e.asm b/src/engine/bank0e.asm index 68e6c92..a0901d3 100644 --- a/src/engine/bank0e.asm +++ b/src/engine/bank0e.asm @@ -4677,7 +4677,7 @@ HandleScrollMenu: .asm_3ac12 call .draw_visible_cursor ld a, MENU_CONFIRM - farcall PlayConfirmOrCancelSFX + farcall PlaySFXConfirmOrCancel ld a, [wCurScrollMenuItem] ld e, a ld a, [hCurMenuItem] @@ -4693,7 +4693,7 @@ HandleScrollMenu: ; b button ld a, -1 ld [hCurMenuItem], a - farcall PlayConfirmOrCancelSFX ; MENU_CANCEL + farcall PlaySFXConfirmOrCancel ; MENU_CANCEL scf ret @@ -5014,7 +5014,7 @@ HandleDeckMachineSelection: ld e, l pop hl ld a, MENU_CONFIRM - farcall PlayConfirmOrCancelSFX + farcall PlaySFXConfirmOrCancel farcall OpenDeckConfirmationMenu ld a, [wTempScrollMenuScrollOffset] ld [wScrollMenuScrollOffset], a @@ -5251,8 +5251,10 @@ DrawDeckMachineScreen: ld [hl], $00 jr PrintVisibleDeckMachineEntries +; update wScrollMenuScrollFunc to PrintVisibleAutoDeckMachineEntries +; and init wd119 Func_3b069: - ld hl, $7078 + ld hl, PrintVisibleAutoDeckMachineEntries ld d, h ld a, l ld hl, wScrollMenuScrollFunc @@ -5262,16 +5264,17 @@ Func_3b069: ld [wd119], a ret -Func_3b078: - ld de, $202 - ld b, $04 +; variant of PrintVisibleDeckMachineEntries for Auto Deck Machine sections +PrintVisibleAutoDeckMachineEntries: + lb de, 2, 2 + ld b, NUM_AUTO_DECK_MACHINE_SLOTS ld a, [wNumDeckMachineEntries] cp b - jr nc, .asm_3b084 + jr nc, .got_offset ld b, a -.asm_3b084 +.got_offset xor a -.asm_3b085 +.loop push af push bc push de @@ -5285,7 +5288,7 @@ Func_3b078: inc a inc e inc e - jr .asm_3b085 + jr .loop ; prints the deck name of the deck corresponding ; to index in register a, from wMachineDeckPtrs @@ -5454,7 +5457,9 @@ PrintDeckMachineEntry: ret .text - db "" +REPT 7 + db "" +ENDR done ; de = card ID @@ -6893,7 +6898,7 @@ Func_3bb09: ld e, l pop hl ld a, MENU_CONFIRM - farcall PlayConfirmOrCancelSFX + farcall PlaySFXConfirmOrCancel farcall OpenDeckConfirmationMenu ld a, [wTempScrollMenuScrollOffset] ld [wScrollMenuScrollOffset], a @@ -6975,7 +6980,7 @@ Func_3bb09: pop hl jp c, .asm_3bb4f ld a, MENU_CONFIRM - farcall PlayConfirmOrCancelSFX + farcall PlaySFXConfirmOrCancel push hl ld de, $18 add hl, de @@ -6997,12 +7002,12 @@ Func_3bc95: ld [wTileMapFill], a call ZeroObjectPositions call EmptyScreen - ld a, $01 + ld a, TRUE ld [wVBlankOAMCopyToggle], a call LoadSymbolsFont call LoadDuelCardSymbolTiles bank1call SetDefaultPalettes - ld de, $3cff + lb de, $3c, $ff call SetupText lb de, 0, 0 lb bc, 20, 12 @@ -7014,8 +7019,8 @@ Func_3bc95: lb de, 1, 0 call Func_2c4b farcall Func_2bb32 - call Func_3bd3b - call Func_3b078 + call CreateAutoDeckPointerList + call PrintVisibleAutoDeckMachineEntries call EnableLCD ret @@ -7078,15 +7083,16 @@ Func_3bd28: scf ret -Func_3bd3b: - ld a, $08 +; write to wMachineDeckPtrs the pointers to the auto decks in WRAM2 wAutoDecks +CreateAutoDeckPointerList: + ld a, 2 * NUM_AUTO_DECK_MACHINE_SLOTS ld hl, wMachineDeckPtrs farcall ClearNBytesFromHL ld de, wMachineDeckPtrs - ld hl, wd40e - ld bc, $60 - ld a, $04 -.asm_3bd4f + ld hl, wAutoDecks + ld bc, DECK_COMPRESSED_STRUCT_SIZE + ld a, NUM_AUTO_DECK_MACHINE_SLOTS +.loop push af ld a, l ld [de], a @@ -7097,7 +7103,7 @@ Func_3bd3b: add hl, bc pop af dec a - jr nz, .asm_3bd4f + jr nz, .loop ret ; 0x3bd5c diff --git a/src/engine/bank0f.asm b/src/engine/bank0f.asm index 67131b6..21353fd 100644 --- a/src/engine/bank0f.asm +++ b/src/engine/bank0f.asm @@ -290,13 +290,7 @@ Func_3c1d0: ld a, [sLinkDuelCounter + 1] ld b, a call DisableSRAM - ld a, b - cp $00 - jr c, .asm_3c278 - jr nz, .asm_3c278 - ld a, c - cp $32 -.asm_3c278 + cp16bc_long 50 jr z, .asm_3c280 ld a, $01 start_script @@ -317,13 +311,7 @@ Func_3c1d0: ld a, [sLinkDuelCounter + 1] ld b, a call DisableSRAM - ld a, b - cp $00 - jr c, .asm_3c2a9 - jr nz, .asm_3c2a9 - ld a, c - cp $64 -.asm_3c2a9 + cp16bc_long 100 jr z, .asm_3c2b1 ld a, $01 start_script @@ -792,12 +780,12 @@ MasonLaboratoryComputerRoom_NPCInteractions: db $ff MasonLaboratoryComputerRoom_OWInteractions: - ow_script 2, 3, Func_3c6c3 - ow_script 3, 3, Func_3c6c3 - ow_script 8, 10, Func_3c6e8 - ow_script 9, 10, Func_3c6e8 - ow_script 8, 3, Func_3c715 - ow_script 9, 3, Func_3c715 + ow_script 2, 3, Script_AutoDeckMachine1 + ow_script 3, 3, Script_AutoDeckMachine1 + ow_script 8, 10, Script_AutoDeckMachine2 + ow_script 9, 10, Script_AutoDeckMachine2 + ow_script 8, 3, Script_DeckSaveMachine + ow_script 9, 3, Script_DeckSaveMachine db $ff MasonLaboratoryComputerRoom_MapScripts: @@ -841,13 +829,13 @@ Func_3c6b3: scf ret -Func_3c6c3: +Script_AutoDeckMachine1: xor a start_script script_command_01 - print_text Text0eec - ask_question Text0eed, TRUE - script_jump_if_b0z .ows_3c6e5 + print_text ItsAutoDeckMachine1Text + ask_question AutoDeckMachine1PromptText, TRUE + script_jump_if_b0z .cancel script_command_02 end_script call PauseSong @@ -857,21 +845,21 @@ Func_3c6c3: farcall Func_1e855 call ResumeSong ret -.ows_3c6e5 +.cancel script_command_02 end_script ret -Func_3c6e8: +Script_AutoDeckMachine2: ld a, EVENT_GOT_GOLBAT_COIN farcall GetEventValue ret z xor a start_script script_command_01 - print_text Text0eee - ask_question Text0eed, TRUE - script_jump_if_b0z .ows_3c712 + print_text ItsAutoDeckMachine2Text + ask_question AutoDeckMachine1PromptText, TRUE + script_jump_if_b0z .cancel script_command_02 end_script call PauseSong @@ -881,18 +869,18 @@ Func_3c6e8: farcall Func_1e855 call ResumeSong ret -.ows_3c712 +.cancel script_command_02 end_script ret -Func_3c715: +Script_DeckSaveMachine: xor a start_script script_command_01 - print_text Text0ef0 - ask_question Text0ef1, TRUE - script_jump_if_b0z .ows_3c736 + print_text ItsDeckSaveMachineText + ask_question DeckSaveMachinePromptText, TRUE + script_jump_if_b0z .cancel script_command_02 end_script call PauseSong @@ -901,7 +889,7 @@ Func_3c715: farcall Func_1e849 call ResumeSong ret -.ows_3c736 +.cancel script_command_02 end_script ret @@ -3372,29 +3360,29 @@ Func_3da09: compare_loaded_var $02 script_jump_if_b0z .ows_3da31 set_var VAR_0D, $03 - script_call Script_3dcbb + script_call Script_SetGrandMasterCupPrizes .ows_3da31 - print_npc_text Text1017 - script_call Script_3dd1d - print_npc_text Text1018 - script_call Script_3dd3a - print_npc_text Text1018 - print_npc_text Text1019 + print_npc_text GrandMasterCupClerkWelcomeText + script_call Script_LoadFirstTwoGrandMasterCupPrizeCardNames + print_npc_text GrandMasterCupClerkPrizesText + script_call Script_LoadLastTwoGrandMasterCupPrizeCardNames + print_npc_text GrandMasterCupClerkPrizesText + print_npc_text GrandMasterCupClerkInviteText script_jump .ows_3da52 .ows_3da48 compare_loaded_var $06 - print_variable_npc_text Text101a, Text101b + print_variable_npc_text GrandMasterCupClerkPlayerLostText, GrandMasterCupClerkPlayerWonGrandFinalText script_jump .ows_3da69 .ows_3da52 - ask_question Text101c, TRUE - script_jump_if_b0z .ows_3da66 + ask_question GrandMasterCupClerkEnterPromptText, TRUE + script_jump_if_b0z .declined set_var VAR_0D, $04 set_var VAR_20, $00 - print_npc_text Text101d + print_npc_text GrandMasterCupClerkEnterAcceptedText script_command_02 script_jump Script_3dbde -.ows_3da66 - print_npc_text Text101e +.declined + print_npc_text GrandMasterCupClerkEnterDeclinedText .ows_3da69 script_command_02 end_script @@ -3723,58 +3711,60 @@ Func_3dc8e: db SOUTH, MOVE_4 db $ff -Script_3dcbb: - set_var VAR_10, $ff - set_var VAR_11, $ff - set_var VAR_12, $ff - set_var VAR_13, $ff +Script_SetGrandMasterCupPrizes: +; init + set_var VAR_GRANDMASTERCUP_PRIZE_INDEX_0, $ff + set_var VAR_GRANDMASTERCUP_PRIZE_INDEX_1, $ff + set_var VAR_GRANDMASTERCUP_PRIZE_INDEX_2, $ff + set_var VAR_GRANDMASTERCUP_PRIZE_INDEX_3, $ff quit_script - call Func_3dcf2 - ld a, VAR_10 +; set + call .PickPrize + ld a, VAR_GRANDMASTERCUP_PRIZE_INDEX_0 farcall SetVarValue - call Func_3dcf2 - ld a, VAR_11 + call .PickPrize + ld a, VAR_GRANDMASTERCUP_PRIZE_INDEX_1 farcall SetVarValue - call Func_3dcf2 - ld a, VAR_12 + call .PickPrize + ld a, VAR_GRANDMASTERCUP_PRIZE_INDEX_2 farcall SetVarValue - call Func_3dcf2 - ld a, VAR_13 + call .PickPrize + ld a, VAR_GRANDMASTERCUP_PRIZE_INDEX_3 farcall SetVarValue ld a, $01 start_script script_ret -Func_3dcf2: -.asm_3dcf2 - ld a, $25 +; return a = random prize index, while also ensuring no dupes +.PickPrize: + ld a, NUM_GRANDMASTERCUP_PRIZE_POOL call Random ld c, a - ld a, VAR_10 + ld a, VAR_GRANDMASTERCUP_PRIZE_INDEX_0 farcall GetVarValue cp c - jr z, .asm_3dcf2 - ld a, VAR_11 + jr z, .PickPrize + ld a, VAR_GRANDMASTERCUP_PRIZE_INDEX_1 farcall GetVarValue cp c - jr z, .asm_3dcf2 - ld a, VAR_12 + jr z, .PickPrize + ld a, VAR_GRANDMASTERCUP_PRIZE_INDEX_2 farcall GetVarValue cp c - jr z, .asm_3dcf2 - ld a, VAR_13 + jr z, .PickPrize + ld a, VAR_GRANDMASTERCUP_PRIZE_INDEX_3 farcall GetVarValue cp c - jr z, .asm_3dcf2 + jr z, .PickPrize ret -Script_3dd1d: +Script_LoadFirstTwoGrandMasterCupPrizeCardNames: quit_script - xor a - farcall Func_4568f + xor a ; GRANDMASTERCUP_PRIZE_0 + farcall GetGrandMasterCupPrizeCardName call LoadTxRam2 - ld a, $01 - farcall Func_4568f + ld a, GRANDMASTERCUP_PRIZE_1 + farcall GetGrandMasterCupPrizeCardName ld a, l ld [wTxRam2_b], a ld a, h @@ -3783,13 +3773,13 @@ Script_3dd1d: start_script script_ret -Script_3dd3a: +Script_LoadLastTwoGrandMasterCupPrizeCardNames: quit_script - ld a, $02 - farcall Func_4568f + ld a, GRANDMASTERCUP_PRIZE_2 + farcall GetGrandMasterCupPrizeCardName call LoadTxRam2 - ld a, $03 - farcall Func_4568f + ld a, GRANDMASTERCUP_PRIZE_3 + farcall GetGrandMasterCupPrizeCardName ld a, l ld [wTxRam2_b], a ld a, h @@ -3881,9 +3871,9 @@ Func_3ddb8: lb de, 12, 3 ld b, WEST farcall SetOWObjectTilePositionAndDirection - farcall Func_45416 + farcall SetGrandMasterCupOpponents farcall Func_454fa - ld a, VAR_14 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_0 farcall GetVarValue farcall Func_45484 lb de, 9, 4 @@ -4441,8 +4431,8 @@ Script_3e21c: quit_script ld a, VAR_1E farcall GetVarValue - farcall LoadNPCDuelistDeck - cp $03 + farcall GetNPCByDeck + cp NPC_RONALD jr z, .asm_3e272 farcall Func_454bc ld a, $01 @@ -4576,8 +4566,8 @@ Func_3e2a4: quit_script ld a, VAR_1E farcall GetVarValue - farcall LoadNPCDuelistDeck - cp $03 + farcall GetNPCByDeck + cp NPC_RONALD jr nz, .asm_3e38e ld a, $01 start_script @@ -4621,8 +4611,8 @@ Func_3e2a4: quit_script ld a, VAR_1E farcall GetVarValue - farcall LoadNPCDuelistDeck - cp $03 + farcall GetNPCByDeck + cp NPC_RONALD jr nz, .asm_3e3fc ld a, $01 start_script @@ -4864,8 +4854,8 @@ Func_3e2a4: quit_script xor a .asm_3e5e6 - farcall Func_45676 - farcall Func_4568f + farcall GetGrandMasterCupPrizeCardID + farcall GetGrandMasterCupPrizeCardName farcall Func_1f7d4 inc a cp $04 @@ -4882,13 +4872,13 @@ Func_3e2a4: farcall Func_1022a push bc ld a, b - farcall Func_45676 + farcall GetGrandMasterCupPrizeCardID ld e, c ld d, b farcall Func_c646 pop bc ld a, c - farcall Func_45676 + farcall GetGrandMasterCupPrizeCardID ld e, c ld d, b farcall Func_c646 @@ -6793,13 +6783,7 @@ Func_3f44f: ld [wd615], a call LoadTxRam3 farcall GetGameCenterChips - ld a, b - cp h - jr c, .asm_3f4bc - jr nz, .asm_3f4bc - ld a, c - cp l -.asm_3f4bc + cp16bc_long hl jr nc, .asm_3f4c9 ld a, $01 start_script @@ -7283,13 +7267,7 @@ Func_3f858: ld b, a ld a, [wTextBoxFrameColor] ld c, a - ld a, b - cp $00 - jr c, .asm_3f874 - jr nz, .asm_3f874 - ld a, c - cp $03 -.asm_3f874 + cp16bc_bytes 0, 3 jr nz, .asm_3f87b farcall Func_1352a ret diff --git a/src/engine/bank10.asm b/src/engine/bank10.asm index 46636a6..2e8ab89 100644 --- a/src/engine/bank10.asm +++ b/src/engine/bank10.asm @@ -878,11 +878,7 @@ HandleTCGIslandInput: PlacePlayerInTCGIslandLocation: sla a ; *2 ld hl, TCGIslandLocationPositions - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld e, [hl] ld d, a @@ -893,11 +889,7 @@ PlacePlayerInTCGIslandLocation: UpdateTCGIslandCursorPosition: sla a ; *2 ld hl, TCGIslandLocationPositions - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hli] ld d, a ld a, [hl] @@ -926,17 +918,9 @@ HandleTCGIslandDirectionalInput: sla a sla a ; *4 ld hl, .LocationConnections - add l - ld l, a - jr nc, .got_pointer_1 - inc h -.got_pointer_1 + add_hl_a ld a, c - add l - ld l, a - jr nc, .got_pointer_2 - inc h -.got_pointer_2 + add_hl_a ld a, [hl] cp b jr z, .done @@ -1035,11 +1019,7 @@ PrintTCGIslandLocationName: sla a sla a ; *4 ld hl, .LocationTitleTextItems - add l - ld l, a - jr nc, .ok - inc h -.ok + add_hl_a ld a, [hli] ld e, a ld a, [hli] @@ -1070,11 +1050,7 @@ Func_40682: sla a sla a ; *4 ld hl, .data - add l - ld l, a - jr nc, .got_pointer - inc h -.got_pointer + add_hl_a ld a, [hl] ; map inc hl ld d, [hl] ; x @@ -1108,21 +1084,13 @@ Func_406d1: ld a, [wPlayerOWLocation] sla a ; *2 ld hl, TCGIslandPlayerPaths - add l - ld l, a - jr nc, .got_pointer_1 - inc h -.got_pointer_1 + add_hl_a ld a, [hli] ld h, [hl] ld l, a ld a, [wCurOWLocation] sla a ; *2 - add l - ld l, a - jr nc, .got_pointer_2 - inc h -.got_pointer_2 + add_hl_a ld a, [hli] ld h, [hl] ld l, a @@ -1152,11 +1120,7 @@ Func_406d1: ld a, [wCurOWLocation] sla a ld hl, TCGIslandLocationPositions - add l ; *2 - ld l, a - jr nc, .got_pointer_3 - inc h -.got_pointer_3 + add_hl_a ld a, [hli] ld e, [hl] ld d, a @@ -1672,13 +1636,7 @@ Func_41074: ld a, [wde11 + 1] ld b, a inc bc - ld a, b - cp $03 - jr c, .asm_41090 - jr nz, .asm_41090 - ld a, c - cp $e8 -.asm_41090 + cp16bc_long 1000 jr nc, .asm_4109a ld a, c ld [wde11], a @@ -1709,13 +1667,7 @@ Func_41074: ld a, [wde0d + 1] ld b, a inc bc - ld a, b - cp $03 - jr c, .asm_410d7 - jr nz, .asm_410d7 - ld a, c - cp $e8 -.asm_410d7 + cp16bc_long 1000 jr nc, .asm_410e1 ld a, c ld [wde0d], a @@ -1752,13 +1704,7 @@ Func_41074: ld e, a ld a, [wde11 + 1] ld d, a - ld a, d - cp $00 - jr c, .asm_41127 - jr nz, .asm_41127 - ld a, e - cp $32 -.asm_41127 + cp16_long 50 jr nz, .asm_4110a call Func_41167 jr .asm_4110a @@ -1772,13 +1718,7 @@ Func_4112e: ld e, a ld a, [wde15 + 1] ld d, a - ld a, b - cp d - jr c, .asm_41146 - jr nz, .asm_41146 - ld a, c - cp e -.asm_41146 + cp16bc_long de jr nc, .asm_4114a scf ret @@ -2529,7 +2469,7 @@ Func_41662: script_jump .ows_416b8 .ows_41699 quit_script - farcall Func_f027 + farcall GetTCGChallengeCupPrizeCardName call LoadTxRam2 ld a, $01 start_script @@ -3102,17 +3042,17 @@ Func_41a4d: script_jump .ows_41b57 .ows_41b20 quit_script - ld a, VAR_29 + ld a, VAR_TCG_CHALLENGE_CUP_PRIZE_INDEX farcall GetVarValue - farcall Func_f027 + farcall GetTCGChallengeCupPrizeCardName call LoadTxRam2 ld a, $01 start_script print_npc_text Text0985 quit_script - ld a, VAR_29 + ld a, VAR_TCG_CHALLENGE_CUP_PRIZE_INDEX farcall GetVarValue - farcall Func_f010 + farcall GetTCGChallengeCupPrizeCardID ld e, c ld d, b farcall Func_1022a @@ -3445,37 +3385,13 @@ Func_41dac: Func_41db4: ld a, [wPlayerOWObject] farcall GetOWObjectTilePosition - ld a, d - cp $05 - jr c, .asm_41dc5 - jr nz, .asm_41dc5 - ld a, e - cp $08 -.asm_41dc5 + cpcoord 5, 8 jr z, .asm_41ded - ld a, d - cp $04 - jr c, .asm_41dd1 - jr nz, .asm_41dd1 - ld a, e - cp $09 -.asm_41dd1 + cpcoord 4, 9 jr z, .asm_41e09 - ld a, d - cp $03 - jr c, .asm_41ddd - jr nz, .asm_41ddd - ld a, e - cp $09 -.asm_41ddd + cpcoord 3, 9 jr z, .asm_41e25 - ld a, d - cp $02 - jr c, .asm_41de9 - jr nz, .asm_41de9 - ld a, e - cp $08 -.asm_41de9 + cpcoord 2, 8 jr z, .asm_41e41 jr .asm_41e5b .asm_41ded @@ -4656,13 +4572,7 @@ Func_42776: ld a, [wde13 + 1] ld b, a inc bc - ld a, b - cp $03 - jr c, .asm_42792 - jr nz, .asm_42792 - ld a, c - cp $e8 -.asm_42792 + cp16bc_long 1000 jr nc, .asm_4279c ld a, c ld [wde13], a @@ -4693,13 +4603,7 @@ Func_42776: ld a, [wde0f + 1] ld b, a inc bc - ld a, b - cp $03 - jr c, .asm_427da - jr nz, .asm_427da - ld a, c - cp $e8 -.asm_427da + cp16bc_long 1000 jr nc, .asm_427e4 ld a, c ld [wde0f], a @@ -4736,13 +4640,7 @@ Func_42776: ld e, a ld a, [wde13 + 1] ld d, a - ld a, d - cp $00 - jr c, .asm_4282c - jr nz, .asm_4282c - ld a, e - cp $32 -.asm_4282c + cp16_long 50 jr nz, .asm_4280f call Func_4286c jr .asm_4280f @@ -4756,13 +4654,7 @@ Func_42833: ld e, a ld a, [wde17 + 1] ld d, a - ld a, b - cp d - jr c, .asm_4284b - jr nz, .asm_4284b - ld a, c - cp e -.asm_4284b + cp16bc_long de jr nc, .asm_4284f scf ret @@ -4827,7 +4719,7 @@ Func_4288d: script_jump .ows_428f9 .ows_428c4 quit_script - farcall Func_f04d + farcall GetGRChallengeCupPrizeCardName call LoadTxRam2 ld a, $01 start_script @@ -5257,17 +5149,17 @@ Func_42bb7: inc_var VAR_32 .ows_42c72 quit_script - ld a, VAR_31 + ld a, VAR_GR_CHALLENGE_CUP_PRIZE_INDEX farcall GetVarValue - farcall Func_f04d + farcall GetGRChallengeCupPrizeCardName call LoadTxRam2 ld a, $01 start_script print_npc_text Text0e27 quit_script - ld a, VAR_31 + ld a, VAR_GR_CHALLENGE_CUP_PRIZE_INDEX farcall GetVarValue - farcall Func_f036 + farcall GetGRChallengeCupPrizeCardID ld e, c ld d, b farcall Func_1022a diff --git a/src/engine/bank11.asm b/src/engine/bank11.asm index 64961d5..c7510e3 100644 --- a/src/engine/bank11.asm +++ b/src/engine/bank11.asm @@ -1,965 +1,4 @@ -Func_44000: - push af - push de - push hl -.asm_44003 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_4400f - call RemoveCardFromCollection - jr .asm_44003 -.asm_4400f - pop hl - pop de - pop af - ret - -Func_44013: - push bc - push de - push hl - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_44030 -.asm_4401d - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - or c - jr z, .asm_44033 - ld a, d - cp b - jr c, .asm_4402c - jr nz, .asm_4402c - ld a, e - cp c -.asm_4402c - jr nz, .asm_44030 - jr .asm_4401d -.asm_44030 - scf - jr .asm_44035 -.asm_44033 - scf - ccf -.asm_44035 - pop hl - pop de - pop bc - ret - -; counts number of cards in -; $0000 terminated list in hl -; output: -; a = number of cards -CountCardsInHL: - push bc - push hl - xor a - ld c, a -.loop - ld a, [hli] - ld b, a - ld a, [hli] - or b - jr z, .asm_44046 - inc c - jr .loop -.asm_44046 - ld a, c - pop hl - pop bc - ret - -; input: -; hl = card list -; de = card ID to search for -; output: -; carry set if not found -; a = index in list if found -SearchCardInListInHL: - push bc - push de - push hl - xor a -.loop_cards - push af - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - or c - jr z, .not_found - ld a, d - cp b - jr c, .not_equal - jr nz, .not_equal - ld a, e - cp c -.not_equal - jr z, .found - pop af - inc a - jr .loop_cards -.not_found - pop af - xor a - scf - jr .done -.found - pop af - scf - ccf -.done - pop hl - pop de - pop bc - ret - -Func_44070: - push hl - sla a - add l - ld l, a - jr nc, .asm_44078 - inc h -.asm_44078 - call SearchCardInListInHL - pop hl - ret - -Func_4407d: - call CountCardsInHL - cp $02 - jr z, .asm_4408a - cp $03 - jr z, .asm_4408a - scf - ret -.asm_4408a - push bc - push de - push hl - push hl - xor a - ld hl, wd57c - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - pop hl -.asm_44099 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_440ca - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Type] - cp $08 - jp nc, .asm_4418a - push hl - ld hl, wd57c - ld a, [wLoadedCard1Stage] - sla a - add l - ld l, a - jr nc, .asm_440b9 - inc h -.asm_440b9 - ld a, [hli] - ld c, a - ld a, [hld] - or c - push hl - pop bc - pop hl - jp nz, .asm_4418a - ld a, e - ld [bc], a - inc bc - ld a, d - ld [bc], a - jr .asm_44099 -.asm_440ca - ld hl, wd57c - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jp z, .asm_4416d - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_4412e - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_44113 - ld hl, wd57c - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - call Func_4427f - jp nc, .asm_4418a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - ld hl, wDuelTempList - call SearchCardInListInHL - pop hl - jp c, .asm_4418a - call Func_4427f - jp nc, .asm_4418a - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wDuelTempList - call SearchCardInListInHL - jr c, .asm_4418a - xor a - jr .asm_44186 -.asm_44113 - ld hl, wd57c - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - call Func_4427f - jr nc, .asm_4418a - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wDuelTempList - call SearchCardInListInHL - jr c, .asm_4418a - ld a, $01 - jr .asm_44186 -.asm_4412e - ld hl, wd57c - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - call Func_4427f - jr nc, .asm_4418a - inc hl - inc hl - ld a, [hli] - ld e, a - ld d, [hl] - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1PreEvoName] - ld c, a - ld a, [wLoadedCard1PreEvoName + 1] - ld b, a - ld hl, wDuelTempList -.asm_4414d - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_4418a - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Name] - ld e, a - ld a, [wLoadedCard1Name + 1] - ld d, a - ld a, d - cp b - jr c, .asm_44167 - jr nz, .asm_44167 - ld a, e - cp c -.asm_44167 - jr nz, .asm_4414d - ld a, $02 - jr .asm_44186 -.asm_4416d - ld hl, wd57e - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - call Func_4427f - jr nc, .asm_4418a - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wDuelTempList - call SearchCardInListInHL - jr c, .asm_4418a - ld a, $03 -.asm_44186 - scf - ccf - jr .asm_4418b -.asm_4418a - scf -.asm_4418b - pop hl - pop de - pop bc - ret -; 0x4418f - -SECTION "Bank 11@41ac", ROMX[$41ac], BANK[$11] - -Func_441ac: - push bc - push de - push hl - push hl - xor a - ld hl, wd561 - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - pop hl -.asm_441bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_441da - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Type] - cp $07 - jr nc, .asm_441bc - ld de, wd561 - add e - ld e, a - jr nc, .asm_441d5 - inc d -.asm_441d5 - ld a, [de] - inc a - ld [de], a - jr .asm_441bc -.asm_441da - ld de, $0 - ld c, $00 - ld hl, wd561 -.asm_441e2 - ld a, [hli] - cp d - jr c, .asm_441f4 - jr nz, .asm_441f2 - call UpdateRNGSources - srl a - jr c, .asm_441f4 - ld e, c - jr .asm_441f4 -.asm_441f2 - ld d, a - ld e, c -.asm_441f4 - inc c - ld a, c - cp $07 - jr nz, .asm_441e2 - ld a, e - or a - jr nz, .asm_441ff - scf -.asm_441ff - pop hl - pop de - pop bc - ret - -Func_44203: - push bc - push de - push hl - farcall ZeroOutBytes_wd606 -.asm_4420a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_44221 - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Type] - cp $07 - jr nc, .asm_4420a - farcall SetBit_wd606 - jr .asm_4420a -.asm_44221 - xor a - ld c, a -.asm_44223 - farcall CheckBit_wd606 - jr z, .asm_4422a - inc c -.asm_4422a - inc a - cp $07 - jr nz, .asm_44223 - ld a, c - pop hl - pop de - pop bc - ret - -Func_44234: - push bc - push de - push hl - ld de, $1 - ld hl, wDuelTempList - xor a - push af -.asm_4423f - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Type] - cp b - jr nz, .asm_44255 - ld a, [wLoadedCard1Rarity] - cp c - jr nz, .asm_44255 - pop af - inc a - push af - ld a, e - ld [hli], a - ld a, d - ld [hli], a -.asm_44255 - ld a, d - cp $01 - jr c, .asm_4425f - jr nz, .asm_4425f - ld a, e - cp $bd -.asm_4425f - inc de - jr nz, .asm_4423f - xor a - ld [hli], a - ld [hl], a - pop af - pop hl - pop de - pop bc - ret - -; appends card ID in de to list in hl -AppendCardToListInHL: - push af - push bc - push hl -.loop_cards - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - or c - jr nz, .loop_cards - inc hl - xor a - ld [hld], a ; terminating byte - ld [hld], a ; - ld a, d - ld [hld], a ; card ID - ld [hl], e ; - pop hl - pop bc - pop af - ret - -Func_4427f: - push bc - push de - push hl - farcall Func_260e7 - pop hl - pop de - pop bc - ret - -Func_4428a: - push bc - push de - push hl - call LoadCardDataToBuffer1_FromCardID - ld hl, wLoadedCard1PreEvoName - ld a, [hli] - ld c, a - ld b, [hl] - ld hl, wDuelTempList - ld de, $0 -.asm_4429c - inc de - push hl - push de - call LoadCardDataToBuffer1_FromCardID - jr c, .asm_442c3 - ld a, [wLoadedCard1Type] - cp $08 - jr nc, .asm_442bf - ld hl, wLoadedCard1Name - ld a, c - cp [hl] - jr nz, .asm_442bf - inc hl - ld a, b - cp [hl] - jr nz, .asm_442bf - pop de - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - jr .asm_4429c -.asm_442bf - pop de - pop hl - jr .asm_4429c -.asm_442c3 - pop de - pop hl - xor a - ld [hli], a - ld [hl], a - ld hl, wDuelTempList - ld a, [hli] - or [hl] - pop hl - pop de - pop bc - ret z - scf - ret - -Func_442d3: - push bc - push de - push hl - call LoadCardDataToBuffer1_FromCardID - ld hl, wLoadedCard1Name - ld a, [hli] - ld c, a - ld b, [hl] - ld hl, wDuelTempList - ld de, $0 -.asm_442e5 - inc de - push hl - push de - call LoadCardDataToBuffer1_FromCardID - jr c, .asm_4430c - ld a, [wLoadedCard1Type] - cp $08 - jr nc, .asm_44308 - ld hl, wLoadedCard1Name - ld a, c - cp [hl] - jr nz, .asm_44308 - inc hl - ld a, b - cp [hl] - jr nz, .asm_44308 - pop de - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - jr .asm_442e5 -.asm_44308 - pop de - pop hl - jr .asm_442e5 -.asm_4430c - pop de - pop hl - xor a - ld [hli], a - ld [hl], a - ld hl, wDuelTempList - ld a, [hli] - or [hl] - pop hl - pop de - pop bc - ret z - scf - ret -; 0x4431c - -SECTION "Bank 11@433a", ROMX[$433a], BANK[$11] - -Func_4433a: - push bc - push de - push hl - ld c, a - ld a, [hli] - ld e, a - ld a, [hld] - ld d, a - or e - jr z, .asm_44357 -.asm_44345 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_4435a - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Rarity] - cp c - jr nz, .asm_44357 - jr .asm_44345 -.asm_44357 - scf - jr .asm_4435c -.asm_4435a - scf - ccf -.asm_4435c - pop hl - pop de - pop bc - ret - -Func_44360: - push bc - push de - push hl -.asm_44363 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - or c - jr z, .asm_4438b - ld a, d - cp b - jr c, .asm_44372 - jr nz, .asm_44372 - ld a, e - cp c -.asm_44372 - jr nz, .asm_44363 -.asm_44374 - ld a, [hli] - ld e, a - ld a, [hld] - ld d, a - dec hl - dec hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - or e - inc hl - inc hl - jr nz, .asm_44374 - xor a - dec hl - ld [hld], a - ld [hl], a - scf - ccf - jr .asm_4438c -.asm_4438b - scf -.asm_4438c - pop hl - pop de - pop bc - ret - -Func_44390: - push bc - push de - push hl - farcall ZeroOutBytes_wd606 -.asm_44397 - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - ld d, a - inc bc - or e - jr z, .asm_443b4 - ld a, $ff -.asm_443a2 - inc a - call Func_44070 - jr c, .asm_443b8 - farcall CheckBit_wd606 - jr nz, .asm_443a2 - farcall SetBit_wd606 - jr .asm_44397 -.asm_443b4 - scf - ccf - jr .asm_443b9 -.asm_443b8 - scf -.asm_443b9 - pop hl - pop de - pop bc - ret - -Func_443bd: - push af - push bc - push de - push hl -.asm_443c1 - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - inc bc - ld d, a - or e - jr z, .asm_443cf - call Func_44360 - jr .asm_443c1 -.asm_443cf - pop hl - pop de - pop bc - pop af - ret - -; filters card list in hl -; based on rarity in c and value in b: -; $0: only pkmn -; $1: only trainers -; > $1: only energy -; input: -; b = filter option -; c = card rarity -; output: -; wDuelTempList = filtered list -; a = number of cards in filtered list -FilterCardListInHL: - push bc - push de - push hl - xor a - push af - ld a, LOW(wDuelTempList) - ld [wFilteredListPtr + 0], a - ld a, HIGH(wDuelTempList) - ld [wFilteredListPtr + 1], a -.loop_cards - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .done - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Rarity] - cp c - jr nz, .loop_cards - ld a, b - cp $01 - jr z, .only_trainers - jr nc, .only_energy -; only pkmn - ld a, [wLoadedCard1Type] - cp TYPE_ENERGY - jr nc, .loop_cards - jr .append_card -.only_trainers - ld a, [wLoadedCard1Type] - cp TYPE_TRAINER - jr nz, .loop_cards - jr .append_card -.only_energy - ld a, [wLoadedCard1Type] - cp TYPE_ENERGY - jr c, .loop_cards - cp TYPE_TRAINER - jr z, .loop_cards - jr .append_card - -.append_card -; writes this card ID to the next entry in the list - push hl - ld a, [wFilteredListPtr + 0] - ld l, a - ld a, [wFilteredListPtr + 1] - ld h, a - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, l - ld [wFilteredListPtr + 0], a - ld a, h - ld [wFilteredListPtr + 1], a - pop hl - pop af - inc a - push af - jr .loop_cards - -.done -; add terminating bytes - ld a, [wFilteredListPtr + 0] - ld l, a - ld a, [wFilteredListPtr + 1] - ld h, a - xor a - ld [hli], a - ld [hl], a - pop af - pop hl - pop de - pop bc - ret - -; shuffle card list in hl by running -; random card swapping algorithm 40 times -ShuffleCardsInHL: - push af - push bc - push de - push hl - call CountCardsInHL - or a - jr z, .done ; no cards in list - ld b, a - ld c, 40 - -.loop - push bc - push hl - ld e, l - ld d, h - -; pick 2 random cards from list -; then swap them - ld a, b - call Random - sla a - add l - ld l, a - jr nc, .no_carry1 - inc h -.no_carry1 - ld a, b - call Random - sla a - add e - ld e, a - jr nc, .no_carry2 - inc d -.no_carry2 - ld b, [hl] - ld a, [de] - ld [hl], a - ld a, b - ld [de], a - inc hl - inc de - ld b, [hl] - ld a, [de] - ld [hl], a - ld a, b - ld [de], a - pop hl - pop bc - dec c - jr nz, .loop - -.done - pop hl - pop de - pop bc - pop af - ret - -Func_44481: - push bc - push de - push hl - ld b, a - ld c, $00 -.asm_44487 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_4449a - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1RealSet] - cp b - jr nz, .asm_44487 - inc c - jr .asm_44487 -.asm_4449a - ld a, c - pop hl - pop de - pop bc - ret - -Func_4449f: - push bc - push de - push hl - ld b, a - ld c, $00 -.asm_444a5 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_444b8 - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Set] - cp b - jr nz, .asm_444a5 - inc c - jr .asm_444a5 -.asm_444b8 - ld a, c - pop hl - pop de - pop bc - ret +INCLUDE "engine/card_list_ops.asm" _ChooseTitleScreenCards: push af @@ -974,8 +13,8 @@ _ChooseTitleScreenCards: ld [wIntroCardsRepeatsAllowed], a call EnableSRAM - ld hl, sDeck1Name - ld c, $05 + ld hl, sDeck1 + ld c, NUM_DECKS + 1 .loop_decks ld a, [hli] ld e, a @@ -1010,7 +49,7 @@ _ChooseTitleScreenCards: .star_pkmn push hl ld hl, wPlayerDeck - lb bc, $0, STAR + lb bc, FILTER_ONLY_PKMN, STAR call FilterCardListInHL pop hl ld b, a @@ -1021,7 +60,7 @@ _ChooseTitleScreenCards: .diamond_pkmn push hl ld hl, wPlayerDeck - lb bc, $0, DIAMOND + lb bc, FILTER_ONLY_PKMN, DIAMOND call FilterCardListInHL pop hl ld b, a @@ -1032,7 +71,7 @@ _ChooseTitleScreenCards: .circle_pkmn push hl ld hl, wPlayerDeck - lb bc, $0, CIRCLE + lb bc, FILTER_ONLY_PKMN, CIRCLE call FilterCardListInHL pop hl ld b, a @@ -1043,7 +82,7 @@ _ChooseTitleScreenCards: .star_trainers push hl ld hl, wPlayerDeck - lb bc, $1, STAR + lb bc, FILTER_ONLY_TRAINER, STAR call FilterCardListInHL pop hl ld b, a @@ -1054,7 +93,7 @@ _ChooseTitleScreenCards: .diamond_trainers push hl ld hl, wPlayerDeck - lb bc, $1, DIAMOND + lb bc, FILTER_ONLY_TRAINER, DIAMOND call FilterCardListInHL pop hl ld b, a @@ -1065,7 +104,7 @@ _ChooseTitleScreenCards: .circle_trainers push hl ld hl, wPlayerDeck - lb bc, $1, CIRCLE + lb bc, FILTER_ONLY_TRAINER, CIRCLE call FilterCardListInHL pop hl ld b, a @@ -1077,7 +116,7 @@ _ChooseTitleScreenCards: .star_energy push hl ld hl, wPlayerDeck - lb bc, $2, STAR + lb bc, FILTER_ONLY_ENERGY, STAR call FilterCardListInHL pop hl ld b, a @@ -1088,7 +127,7 @@ _ChooseTitleScreenCards: .diamond_energy push hl ld hl, wPlayerDeck - lb bc, $2, DIAMOND + lb bc, FILTER_ONLY_ENERGY, DIAMOND call FilterCardListInHL pop hl ld b, a @@ -1099,7 +138,7 @@ _ChooseTitleScreenCards: .circle_energy push hl ld hl, wPlayerDeck - lb bc, $2, CIRCLE + lb bc, FILTER_ONLY_ENERGY, CIRCLE call FilterCardListInHL pop hl ld b, a @@ -1132,11 +171,7 @@ _ChooseTitleScreenCards: ld hl, wDuelTempList ld a, c sla a - add l - ld l, a - jr nc, .no_carry - inc h -.no_carry + add_hl_a ld a, [hli] ld e, a ld d, [hl] @@ -1178,160 +213,12 @@ _ChooseTitleScreenCards: dw HERE_COMES_TEAM_ROCKET dw $0000 -MACRO blackbox_promo - dw \1 ; recipe - db \2 ; post-game flag - dw \3 ; output -ENDM +INCLUDE "data/black_box_promos.asm" +; 0x447b0 -BlackboxPromoCards: - blackbox_promo .dugtrio_lv40, FALSE, DUGTRIO_LV40 - blackbox_promo .mankey_alt_lv7, TRUE, MANKEY_ALT_LV7 - blackbox_promo .diglett_lv16, TRUE, DIGLETT_LV16 - blackbox_promo .moltres_lv40, FALSE, MOLTRES_LV40 - blackbox_promo .arcanine_lv34, TRUE, ARCANINE_LV34 - blackbox_promo .nonpromo_charizard_lv76, FALSE, CHARIZARD_LV76 ; bug, should be CHARIZARD_ALT_LV76 - blackbox_promo .pikachu_lv13, TRUE, PIKACHU_LV13 - blackbox_promo .pikachu_lv16, FALSE, PIKACHU_LV16 - blackbox_promo .zapdos_lv68, FALSE, ZAPDOS_LV68 - blackbox_promo .pikachu_alt_lv16, FALSE, PIKACHU_ALT_LV16 - blackbox_promo .electabuzz_lv20, TRUE, ELECTABUZZ_LV20 - blackbox_promo .articuno_lv37, FALSE, ARTICUNO_LV37 - blackbox_promo .magikarp_lv10, TRUE, MAGIKARP_LV10 - blackbox_promo .blastoise_alt_lv52, FALSE, BLASTOISE_ALT_LV52 - blackbox_promo .venusaur_alt_lv67, FALSE, VENUSAUR_ALT_LV67 - blackbox_promo .grs_mewtwo, TRUE, GRS_MEWTWO - blackbox_promo .mewtwo_alt_lv60, FALSE, MEWTWO_ALT_LV60 - blackbox_promo .mewtwo_lv60, FALSE, MEWTWO_LV60 - blackbox_promo .mewtwo_lv30, TRUE, MEWTWO_LV30 - blackbox_promo .slowpoke_lv9, TRUE, SLOWPOKE_LV9 - blackbox_promo .super_energy_retrieval, TRUE, SUPER_ENERGY_RETRIEVAL - blackbox_promo .dark_persian_alt_lv28, TRUE, DARK_PERSIAN_ALT_LV28 - blackbox_promo .jigglypuff_lv12, FALSE, JIGGLYPUFF_LV12 - blackbox_promo .kangaskhan_lv38, FALSE, KANGASKHAN_LV38 - blackbox_promo .farfetchd_alt_lv20, TRUE, FARFETCHD_ALT_LV20 - blackbox_promo .dragonite_lv41, FALSE, DRAGONITE_LV41 - blackbox_promo .nonpromo_dragonite_lv45, TRUE, DRAGONITE_LV45 ; bug, should be DRAGONITE_LV43, though listed in .OtherPromoCards instead - blackbox_promo .meowth_lv14, FALSE, MEOWTH_LV14 - blackbox_promo .hungry_snorlax, TRUE, HUNGRY_SNORLAX - blackbox_promo .cool_porygon, TRUE, COOL_PORYGON - dw 0 ; end +SECTION "Bank 11@48cc", ROMX[$48cc], BANK[$11] -.dugtrio_lv40 - dw DUGTRIO_LV36, HITMONLEE_LV30, HITMONCHAN_LV23 - dw 0 -.mankey_alt_lv7 - dw HITMONLEE_LV30, HITMONCHAN_LV23 - dw 0 -.diglett_lv16 - dw DUGTRIO_LV36, DARK_DUGTRIO - dw 0 -.moltres_lv40 - dw NINETALES_LV32, DARK_NINETALES, MOLTRES_LV35 - dw 0 -.arcanine_lv34 - dw NINETALES_LV32, ARCANINE_LV45 - dw 0 -.nonpromo_charizard_lv76 - dw DARK_CHARIZARD, DARK_NINETALES - dw 0 -.pikachu_lv13 - dw RAICHU_LV40, RAICHU_LV45, RAICHU_LV32, DARK_RAICHU - dw 0 -.pikachu_lv16 - dw RAICHU_LV40, RAICHU_LV45, RAICHU_LV32 - dw 0 -.zapdos_lv68 - dw RAICHU_LV40, DARK_RAICHU, ZAPDOS_LV64 - dw 0 -.pikachu_alt_lv16 - dw ELECTRODE_LV35, ELECTRODE_LV42, MAGNETON_LV28, MAGNETON_LV35 - dw 0 -.electabuzz_lv20 - dw ELECTABUZZ_LV35, MAGNETON_LV30, MAGNETON_LV28, MAGNETON_LV35 - dw 0 -.articuno_lv37 - dw POLIWRATH_LV40, KINGLER_LV33, ARTICUNO_LV35 - dw 0 -.magikarp_lv10 - dw GYARADOS, DARK_GYARADOS - dw 0 -.blastoise_alt_lv52 - dw DARK_BLASTOISE, DARK_GYARADOS - dw 0 -.venusaur_alt_lv67 - dw DARK_VILEPLUME, DARK_VENUSAUR - dw 0 -.grs_mewtwo - dw MEW_LV23, MEWTWO_LV53, MEWTWO_LV67 - dw 0 -.mewtwo_alt_lv60 - dw MEW_LV23, MEWTWO_LV67 - dw 0 -.mewtwo_lv60 - dw MEW_LV23, MEWTWO_LV53 - dw 0 -.mewtwo_lv30 - dw MEWTWO_LV53, MEWTWO_LV67 - dw 0 -.slowpoke_lv9 - dw ALAKAZAM_LV42, GENGAR_LV38, MR_MIME_LV28 - dw 0 -.super_energy_retrieval - dw POLIWRATH_LV40, DRAGONAIR - dw 0 -.dark_persian_alt_lv28 - dw CHANSEY_LV55, CLEFABLE, WIGGLYTUFF_LV36 - dw 0 -.jigglypuff_lv12 - dw CHANSEY_LV55, CLEFAIRY_LV14 - dw 0 -.kangaskhan_lv38 - dw KANGASKHAN_LV40, DRAGONAIR - dw 0 -.farfetchd_alt_lv20 - dw PIDGEOT_LV38, CLEFAIRY_LV14, DITTO - dw 0 -.dragonite_lv41 - dw DRAGONITE_LV45, DARK_DRAGONITE, DRAGONAIR - dw 0 -.nonpromo_dragonite_lv45 - dw DRAGONITE_LV45, DARK_DRAGONITE, DRAGONITE_LV41 - dw 0 -.meowth_lv14 - dw DITTO, SNORLAX_LV20 - dw 0 -.hungry_snorlax - dw SNORLAX_LV20, SNORLAX_LV35 - dw 0 -.cool_porygon - dw DITTO, CLEFABLE - dw 0 - -OtherPromoCards: - dw VENUSAUR_LV64 - dw MARILL - dw OMASTAR_LV36 - dw GOLEM_LV37 - dw MACHAMP_LV54 - dw ALAKAZAM_LV45 - dw GENGAR_LV40 - dw MEWTWO_LV30 ; weird, also in BlackboxPromoCards - dw MEW_LV15 - dw MEW_LV8 - dw SURFING_PIKACHU_LV13 - dw SURFING_PIKACHU_ALT_LV13 - dw FLYING_PIKACHU_LV12 - dw FLYING_PIKACHU_ALT_LV12 - dw DRAGONITE_LV43 ; weird if BlackboxPromoCards weren't bugged - dw TOGEPI - dw LUGIA - dw HERE_COMES_TEAM_ROCKET - dw IMAKUNI_CARD - dw COMPUTER_ERROR - dw 0 - -SECTION "Bank 11@4928", ROMX[$4928], BANK[$11] +INCLUDE "data/grand_master_cup.asm" ; a = MUSIC_* PlayAfterCurrentSong: @@ -1496,19 +383,11 @@ Func_45379: call Random sla a sla a - add l - ld l, a - jr nc, .asm_45394 - inc h -.asm_45394 + add_hl_a push hl inc hl ld a, d - add l - ld l, a - jr nc, .asm_4539c - inc h -.asm_4539c + add_hl_a ld a, [hl] pop hl and b @@ -1518,7 +397,7 @@ Func_45379: Func_453a3: ld d, a - farcall LoadNPCDuelistDeck + farcall GetNPCByDeck ld l, a ld e, VAR_2D .asm_453ab @@ -1526,7 +405,7 @@ Func_453a3: farcall GetVarValue cp $ff jr z, .asm_453bf - farcall LoadNPCDuelistDeck + farcall GetNPCByDeck inc e cp l jr nz, .asm_453ab @@ -1539,12 +418,13 @@ Func_453a3: ccf ret +; special handling for Amy? Func_453c3: - farcall LoadNPCDuelistDeck - cp $1a - jr nz, .asm_453cd - ld a, $19 -.asm_453cd + farcall GetNPCByDeck + cp NPC_AMY_LOUNGE + jr nz, .done + ld a, NPC_AMY +.done ret Func_453ce: @@ -1555,7 +435,7 @@ Func_453ce: ld a, VAR_2D add c farcall GetVarValue - farcall LoadNPCDuelistDeck + farcall GetNPCByDeck farcall LoadNPCDuelist ld a, [wCurrentNPCDuelistData + NPC_DUELIST_STRUCT_DIALOG_NAME] ld l, a @@ -1583,81 +463,81 @@ Func_453f9: set 1, [hl] ret -Func_45416: - ld e, $07 - ld d, VAR_14 +SetGrandMasterCupOpponents: + ld e, NUM_GRANDMASTERCUP_OPPONENTS + ld d, VAR_GRANDMASTERCUP_OPPONENT_DECK_0 ld c, $ff -.asm_4541c +.loop_init ld a, d farcall SetVarValue inc d dec e - jr nz, .asm_4541c - ld c, $00 -.asm_45427 - ld b, $01 + jr nz, .loop_init +; b = 1 << c for c = opponent slot number [0, 6] +; set opponents randomly with the bitmask b +; so Ronald may only be chosen at the last slot + ld c, 0 +.loop_set_opponents + ld b, 1 ld a, c or a -.asm_4542b - jr z, .asm_45432 +.loop_shift + jr z, .set_opponent sla b dec a - jr .asm_4542b -.asm_45432 - call Func_4544c - call Func_45464 - jr c, .asm_45432 + jr .loop_shift +.set_opponent + call .PickOpponent + call .CheckDupe + jr c, .set_opponent push bc ld d, a - ld a, VAR_14 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_0 add c ld c, d farcall SetVarValue pop bc inc c - ld a, $07 + ld a, NUM_GRANDMASTERCUP_OPPONENTS cp c - jr nz, .asm_45427 + jr nz, .loop_set_opponents ret -Func_4544c: -.asm_4544c - ld hl, $48cc - ld a, $09 +; for b = bitmask, choose a random opponent and return their deck id in a +.PickOpponent: + ld hl, GrandMasterCupOpps + ld a, NUM_GRANDMASTERCUP_OPPONENT_IDS call Random sla a - add l - ld l, a - jr nc, .asm_4545b - inc h -.asm_4545b + add_hl_a push hl inc hl ld a, [hl] pop hl and b - jr z, .asm_4544c + jr z, .PickOpponent ld a, [hl] ret -Func_45464: +; set carry if the opponent is already picked +.CheckDupe: ld d, a - farcall LoadNPCDuelistDeck + farcall GetNPCByDeck ld l, a - ld e, VAR_14 -.asm_4546c + ld e, VAR_GRANDMASTERCUP_OPPONENT_DECK_0 +.loop_check ld a, e farcall GetVarValue cp $ff - jr z, .asm_45480 - farcall LoadNPCDuelistDeck + jr z, .done + farcall GetNPCByDeck inc e cp l - jr nz, .asm_4546c + jr nz, .loop_check ld a, d scf ret -.asm_45480 +.done ld a, d scf ccf @@ -1673,7 +553,7 @@ Func_45488: cp $02 jr z, .asm_4549c jr nc, .asm_454a4 - ld a, VAR_14 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_0 farcall GetVarValue jr .asm_454aa .asm_4549c @@ -1697,7 +577,7 @@ Func_454ab: Func_454bc: call Func_45488 - farcall LoadNPCDuelistDeck + farcall GetNPCByDeck farcall LoadNPCDuelist ld a, [wCurrentNPCDuelistData + NPC_DUELIST_STRUCT_LOCATION_NAME] ld l, a @@ -1716,7 +596,7 @@ Func_454bc: Func_454e3: call Func_45488 - farcall LoadNPCDuelistDeck + farcall GetNPCByDeck farcall LoadNPCDuelist ld a, [wCurrentNPCDuelistData + NPC_DUELIST_STRUCT_DIALOG_NAME] ld l, a @@ -1726,40 +606,40 @@ Func_454e3: ret Func_454fa: - ld a, VAR_15 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_1 farcall GetVarValue ld c, a call UpdateRNGSources rrca jr nc, .asm_4550e - ld a, VAR_16 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_2 farcall GetVarValue ld c, a .asm_4550e ld a, VAR_1B farcall SetVarValue - ld a, VAR_17 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_3 farcall GetVarValue ld c, a call UpdateRNGSources rrca jr nc, .asm_45528 - ld a, VAR_18 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_4 farcall GetVarValue ld c, a .asm_45528 ld a, VAR_1C farcall SetVarValue - ld a, VAR_1A + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_6 farcall GetVarValue ld c, a - farcall LoadNPCDuelistDeck - cp $03 + farcall GetNPCByDeck + cp NPC_RONALD jr z, .asm_4554a call UpdateRNGSources rrca jr c, .asm_4554a - ld a, VAR_19 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_5 farcall GetVarValue ld c, a .asm_4554a @@ -1768,8 +648,8 @@ Func_454fa: ld a, VAR_1D farcall GetVarValue ld c, a - farcall LoadNPCDuelistDeck - cp $03 + farcall GetNPCByDeck + cp NPC_RONALD jr z, .asm_4556c call UpdateRNGSources rrca @@ -1784,13 +664,13 @@ Func_454fa: Func_45573: farcall Func_1ea00 - ld a, VAR_14 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_0 ld c, $01 .asm_4557b push af push bc farcall GetVarValue - farcall LoadNPCDuelistDeck + farcall GetNPCByDeck farcall LoadNPCDuelist ld a, [wCurrentNPCDuelistData + NPC_DUELIST_STRUCT_DIALOG_NAME] ld l, a @@ -1852,7 +732,7 @@ Func_455a3: ld c, $01 ld a, $01 farcall Func_1ea4c - ld a, VAR_15 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_1 farcall GetVarValue ld c, a ld a, VAR_1B @@ -1866,7 +746,7 @@ Func_455a3: ld c, $02 ld a, $01 farcall Func_1ea4c - ld a, VAR_17 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_3 farcall GetVarValue ld c, a ld a, VAR_1C @@ -1880,7 +760,7 @@ Func_455a3: ld c, $03 ld a, $01 farcall Func_1ea4c - ld a, VAR_19 + ld a, VAR_GRANDMASTERCUP_OPPONENT_DECK_5 farcall GetVarValue ld c, a ld a, VAR_1D @@ -1904,7 +784,7 @@ Func_4565d: jr .asm_45672 .asm_45668 dec a - add VAR_14 + add VAR_GRANDMASTERCUP_OPPONENT_DECK_0 farcall GetVarValue call Func_45484 .asm_45672 @@ -1913,19 +793,17 @@ Func_4565d: pop bc ret -Func_45676: +; for a = [0, 3], return bc = prize card id +; at GrandMasterCupPromoPrizes[VAR_GRANDMASTERCUP_PRIZE_INDEX_[a]] +GetGrandMasterCupPrizeCardID: push af push hl - ld c, $10 + ld c, VAR_GRANDMASTERCUP_PRIZE_INDEX_0 add c farcall GetVarValue - ld hl, $48de + ld hl, GrandMasterCupPromoPrizes sla a - add l - ld l, a - jr nc, .asm_45689 - inc h -.asm_45689 + add_hl_a ld a, [hli] ld b, [hl] ld c, a @@ -1933,11 +811,13 @@ Func_45676: pop af ret -Func_4568f: +; for a = [0, 3], return hl = prize card name +; at GrandMasterCupPromoPrizes[VAR_GRANDMASTERCUP_PRIZE_INDEX_[a]] +GetGrandMasterCupPrizeCardName: push af push bc push de - call Func_45676 + call GetGrandMasterCupPrizeCardID ld e, c ld d, b farcall GetReceivingCardLongName @@ -1946,925 +826,6 @@ Func_4568f: pop af ret -Func_4569f: - ld hl, wCurDeckCards - call Func_44000 - ld a, $07 - call Func_4449f - or a - jr nz, .asm_456da - call Func_44013 - jr c, .asm_456be - call CountCardsInHL - cp $02 - jr c, .asm_456be - call Func_456de - jr .asm_456dd -.asm_456be - ld hl, wCurDeckCards - call Func_4407d - jr c, .asm_456cb - call Func_457ea - jr .asm_456dd -.asm_456cb - ld a, $02 - ld hl, wCurDeckCards - call Func_4433a - jr c, .asm_456da - call Func_45868 - jr .asm_456dd -.asm_456da - call Func_458bf -.asm_456dd - ret - -Func_456de: - ld hl, wCurDeckCards - ld a, [hli] - ld e, a - ld a, [hld] - ld d, a - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Type] - cp $08 - jr c, .asm_456f9 - cp $10 - jr z, .asm_456f9 - call Func_45bc3 - jp .asm_457e9 -.asm_456f9 - call CountCardsInHL - push af - cp $05 - jr nz, .asm_45777 - ld a, [wLoadedCard1Rarity] - cp $02 - jr c, .asm_45777 - pop af - call Func_45aaa - or a - jr nz, .asm_45711 - jr .asm_4577e -.asm_45711 - call Func_4427f - jr nc, .asm_45741 - ld hl, wDuelTempList - call Func_45c07 - call Func_45c3d - or a - jr z, .asm_4577e - call Random - sla a - add l - ld l, a - jr nc, .asm_4572c - inc h -.asm_4572c - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wBlackBoxCardReceived - ld c, $03 -.asm_45734 - ld a, e - ld [hli], a - ld a, d - ld [hli], a - dec c - jr nz, .asm_45734 - xor a - ld [hli], a - ld [hl], a - jp .asm_457e9 -.asm_45741 - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Type] - ld b, a - ld c, $02 - call Func_44234 - ld hl, wDuelTempList - call Func_45c07 - call Func_45c3d - or a - jr z, .asm_4577e - call Random - sla a - add l - ld l, a - jr nc, .asm_45763 - inc h -.asm_45763 - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wBlackBoxCardReceived - ld c, $05 -.asm_4576b - ld a, e - ld [hli], a - ld a, d - ld [hli], a - dec c - jr nz, .asm_4576b - xor a - ld [hli], a - ld [hl], a - jr .asm_457e9 -.asm_45777 - pop af - call Func_45aaa - or a - jr nz, .asm_45790 -.asm_4577e - ld hl, wCurDeckCards - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wBlackBoxCardReceived - ld a, e - ld [hli], a - ld a, d - ld [hli], a - xor a - ld [hli], a - ld [hl], a - jr .asm_457e9 -.asm_45790 - call Func_4427f - jr nc, .asm_457ba - ld hl, wDuelTempList - call Func_45c07 - call Func_45c3d - or a - jr z, .asm_4577e - call Random - sla a - add l - ld l, a - jr nc, .asm_457ab - inc h -.asm_457ab - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wBlackBoxCardReceived - ld a, e - ld [hli], a - ld a, d - ld [hli], a - xor a - ld [hli], a - ld [hl], a - jr .asm_457e9 -.asm_457ba - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Type] - ld b, a - ld c, $02 - call Func_44234 - ld hl, wDuelTempList - call Func_45c07 - call Func_45c3d - or a - jr z, .asm_4577e - call Random - sla a - add l - ld l, a - jr nc, .asm_457dc - inc h -.asm_457dc - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wBlackBoxCardReceived - ld a, e - ld [hli], a - ld a, d - ld [hli], a - xor a - ld [hli], a - ld [hl], a -.asm_457e9 - ret - -Func_457ea: - call Func_45acb - cp $01 - jr z, .asm_4580c - jr nz, .asm_45825 - ld hl, wd57c - ld a, [hli] - ld e, a - ld d, [hl] - or d - jr z, .asm_45801 - call Func_442d3 - jr .asm_4583c -.asm_45801 - ld hl, wd57e - ld a, [hli] - ld e, a - ld d, [hl] - call Func_4428a - jr .asm_4583c -.asm_4580c - ld hl, wd57e - ld a, [hli] - ld e, a - ld d, [hl] - or d - jr z, .asm_4581a - call Func_442d3 - jr .asm_4583c -.asm_4581a - ld hl, wd57c - ld a, [hli] - ld e, a - ld d, [hl] - call Func_4427f - jr .asm_4583c -.asm_45825 - ld hl, wd580 - ld a, [hli] - ld e, a - ld d, [hl] - or d - jr z, .asm_45833 - call Func_442d3 - jr .asm_4583c -.asm_45833 - ld hl, wd57e - ld a, [hli] - ld e, a - ld d, [hl] - call Func_4427f -.asm_4583c - ld hl, wDuelTempList - call Func_45c07 - call Func_45c3d - or a - jr z, .asm_45863 - call Random - sla a - add l - ld l, a - jr nc, .asm_45852 - inc h -.asm_45852 - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wBlackBoxCardReceived -.asm_45858 - ld a, e - ld [hli], a - ld a, d - ld [hli], a - dec c - jr nz, .asm_45858 - xor a - ld [hli], a - ld [hl], a -.asm_45862 - ret -.asm_45863 - call Func_45bc3 - jr .asm_45862 - -Func_45868: - xor a - ld hl, wBlackBoxCardReceived - ld [hli], a - ld [hl], a - ld hl, BlackboxPromoCards -.asm_45871 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - or c - jr z, .asm_458aa - push hl - ld hl, wCurDeckCards - call Func_44390 - pop hl - jr c, .asm_458a5 - ld a, [hli] - or a - jr z, .asm_4588e - ld a, EVENT_MASONS_LAB_CHALLENGE_MACHINE_STATE - farcall GetEventValue - jr z, .asm_458a6 -.asm_4588e - ld a, [hli] - ld e, a - ld a, [hld] - ld d, a - push hl - ld hl, wBlackBoxCardReceived - call AppendCardToListInHL - ld hl, wCurDeckCards - call Func_443bd - pop hl - dec hl - dec hl - dec hl - jr .asm_45871 -.asm_458a5 - inc hl -.asm_458a6 - inc hl - inc hl - jr .asm_45871 -.asm_458aa - ld hl, wCurDeckCards -.asm_458ad - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_458be - push hl - ld hl, wBlackBoxCardReceived - call AppendCardToListInHL - pop hl - jr .asm_458ad -.asm_458be - ret - -Func_458bf: - xor a - ld hl, wBlackBoxCardReceived - ld [hli], a - ld [hl], a - ld hl, wCurDeckCards -.asm_458c8 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_458f1 - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Type] - cp $08 - jr nc, .asm_458e7 - ld a, [wLoadedCard1Set] - cp $07 - jr z, .asm_458e7 - ld a, [wLoadedCard1Rarity] - cp $02 - jr c, .asm_458c8 -.asm_458e7 - push hl - ld hl, wBlackBoxCardReceived - call AppendCardToListInHL - pop hl - jr .asm_458c8 -.asm_458f1 - ld hl, wCurDeckCards - ld c, $00 -.asm_458f6 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jr z, .asm_45923 - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Type] - cp $08 - jr nc, .asm_458f6 - ld a, [wLoadedCard1Set] - cp $07 - jr z, .asm_4591f - ld a, [wLoadedCard1Rarity] - cp $01 - jr z, .asm_4591a - jr nc, .asm_4591f - inc c - jr .asm_458f6 -.asm_4591a - inc c - inc c - inc c - jr .asm_458f6 -.asm_4591f - inc c - inc c - jr .asm_458f6 -.asm_45923 - xor a - ld hl, wRemainingIntroCards - ld [hli], a - ld [hli], a - ld [hl], a - ld a, c - cp $0b - jr nc, .asm_459a9 - cp $06 - jr nc, .asm_45988 - cp $02 - jr nc, .asm_45965 - ld hl, wCurDeckCards -.asm_4593a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - or e - jp z, .asm_45a9b - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Type] - cp $07 - jr nc, .asm_4593a - ld a, [wLoadedCard1Set] - cp $07 - jr z, .asm_4593a - ld a, [wLoadedCard1Rarity] - cp $02 - jp nc, .asm_4593a - push hl - ld hl, wBlackBoxCardReceived - call AppendCardToListInHL - pop hl - jr .asm_4593a -.asm_45965 - call Func_45b2d - inc a - ld c, a - ld hl, wRemainingIntroCards - ld a, $01 - ld [hl], a - dec c - jr z, .asm_459cb - ld a, $03 - ld [hl], a - dec c - jr z, .asm_459cb - xor a - ld [hli], a - ld a, $02 - ld [hl], a - dec c - jr z, .asm_459cb - xor a - ld [hli], a - ld a, $01 - ld [hl], a - jr .asm_459cb -.asm_45988 - call Func_45b2d - inc a - ld c, a - ld hl, wRemainingIntroCards - ld a, $05 - ld [hl], a - dec c - jr z, .asm_459cb - xor a - ld [hli], a - ld a, $03 - ld [hl], a - dec c - jr z, .asm_459cb - xor a - ld [hli], a - ld a, $01 - ld [hl], a - dec c - jr z, .asm_459cb - inc [hl] - jr .asm_459cb -.asm_459a9 - call Func_45b2d - inc a - ld c, a - ld hl, wd578 - ld a, $03 - ld [hl], a - dec c - jr z, .asm_459cb - xor a - ld [hli], a - ld a, $01 - ld [hl], a - dec c - jr z, .asm_459cb - dec hl - ld a, $03 - ld [hl], a - dec c - jr z, .asm_459cb - xor a - ld [hli], a - ld a, $03 - ld [hl], a -.asm_459cb - ld a, [wRemainingIntroCards] - or a - jr z, .asm_45a11 - ld bc, $1000 - ld hl, wCurDeckCards - call Func_44203 - cp $05 - jr z, .asm_459e2 - call Func_441ac - ld b, a -.asm_459e2 - call Func_44234 - ld hl, wDuelTempList - call Func_45c07 - call Func_45c3d - or a - jp z, .asm_45a9c - ld b, a - ld a, [wRemainingIntroCards] - ld c, a -.asm_459f7 - ld a, b - call Random - sla a - ld hl, wDuelTempList - add l - ld l, a - jr nc, .asm_45a05 - inc h -.asm_45a05 - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wBlackBoxCardReceived - call AppendCardToListInHL - dec c - jr nz, .asm_459f7 -.asm_45a11 - ld a, [wd578] - or a - jr z, .asm_45a56 - ld bc, $1001 - ld hl, wCurDeckCards - call Func_44203 - cp $05 - jr z, .asm_45a28 - call Func_441ac - ld b, a -.asm_45a28 - call Func_44234 - ld hl, wDuelTempList - call Func_45c07 - call Func_45c3d - or a - jr z, .asm_45a9c - ld b, a - ld a, [wd578] - ld c, a -.asm_45a3c - ld a, b - call Random - sla a - ld hl, wDuelTempList - add l - ld l, a - jr nc, .asm_45a4a - inc h -.asm_45a4a - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wBlackBoxCardReceived - call AppendCardToListInHL - dec c - jr nz, .asm_45a3c -.asm_45a56 - ld a, [wd579] - or a - jr z, .asm_45a9b - ld bc, $1002 - ld hl, wCurDeckCards - call Func_44203 - cp $05 - jr z, .asm_45a6d - call Func_441ac - ld b, a -.asm_45a6d - call Func_44234 - ld hl, wDuelTempList - call Func_45c07 - call Func_45c3d - or a - jr z, .asm_45a9c - ld b, a - ld a, [wd579] - ld c, a -.asm_45a81 - ld a, b - call Random - sla a - ld hl, wDuelTempList - add l - ld l, a - jr nc, .asm_45a8f - inc h -.asm_45a8f - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wBlackBoxCardReceived - call AppendCardToListInHL - dec c - jr nz, .asm_45a81 -.asm_45a9b - ret -.asm_45a9c - call Func_45bc3 - ld hl, wBlackBoxCardReceived - ld de, $a - call AppendCardToListInHL - jr .asm_45a9b - -Func_45aaa: - push bc - push hl - dec a - dec a - ld hl, $5ac7 - add l - ld l, a - jr nc, .asm_45ab6 - inc h -.asm_45ab6 - ld c, [hl] - ld a, $64 - call Random - cp c - jr c, .asm_45ac3 - ld a, $01 - jr .asm_45ac4 -.asm_45ac3 - xor a -.asm_45ac4 - pop hl - pop bc - ret -; 0x45ac7 - -SECTION "Bank 11@5acb", ROMX[$5acb], BANK[$11] - -Func_45acb: - sla a - push af - ld hl, $5b0d - add l - ld l, a - jr nc, .asm_45ad6 - inc h -.asm_45ad6 - ld a, [hli] - ld c, a - ld b, [hl] - ld a, $64 - call Random - cp c - jr c, .asm_45b00 - cp b - jr c, .asm_45af2 - pop af - ld hl, $5b25 - add l - ld l, a - jr nc, .asm_45aed - inc h -.asm_45aed - ld a, [hli] - ld c, a - ld a, [hl] - jr .asm_45b0c -.asm_45af2 - pop af - ld hl, $5b1d - add l - ld l, a - jr nc, .asm_45afb - inc h -.asm_45afb - ld a, [hli] - ld c, a - ld a, [hl] - jr .asm_45b0c -.asm_45b00 - pop af - ld hl, $5b15 - add l - ld l, a - jr nc, .asm_45b09 - inc h -.asm_45b09 - ld a, [hli] - ld c, a - ld a, [hl] -.asm_45b0c - ret -; 0x45b0d - -SECTION "Bank 11@5b2d", ROMX[$5b2d], BANK[$11] - -Func_45b2d: - push bc - push de - push hl - sla a - sla a - ld hl, $5b5c - add l - ld l, a - jr nc, .asm_45b3c - inc h -.asm_45b3c - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld l, $00 - ld a, $64 - call Random - cp c - jr c, .asm_45b57 - inc l - cp b - jr c, .asm_45b57 - inc l - cp e - jr c, .asm_45b57 - inc l -.asm_45b57 - ld a, l - pop hl - pop de - pop bc - ret -; 0x45b5c - -SECTION "Bank 11@5b9c", ROMX[$5b9c], BANK[$11] - -Func_45b9c: - push af - push bc - push de - push hl - ld c, e - ld b, d - ld hl, OtherPromoCards -.asm_45ba5 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - or c - jr z, .asm_45bbc - ld a, b - cp d - jr c, .asm_45bb4 - jr nz, .asm_45bb4 - ld a, c - cp e -.asm_45bb4 - jr nz, .asm_45ba5 - pop hl - pop de - pop bc - pop af - scf - ret -.asm_45bbc - pop hl - pop de - pop bc - pop af - scf - ccf - ret - -Func_45bc3: - push af - push bc - push de - push hl - ld hl, wCurDeckCards - ld de, wBlackBoxCardReceived - ld bc, $c - call CopyDataHLtoDE_SaveRegisters - pop hl - pop de - pop bc - pop af - ret -; 0x45bd8 - -SECTION "Bank 11@5c07", ROMX[$5c07], BANK[$11] - -Func_45c07: - push bc - push de - push hl - xor a - ld c, a -.asm_45c0c - ld a, [hli] - ld e, a - ld a, [hld] - ld d, a - or e - jr z, .asm_45c29 - call LoadCardDataToBuffer1_FromCardID - ld a, [wLoadedCard1Set] - cp $07 - jr nz, .asm_45c24 - push hl - call Func_45c2e - pop hl - jr .asm_45c0c -.asm_45c24 - inc hl - inc hl - inc c - jr .asm_45c0c -.asm_45c29 - ld a, c - pop hl - pop de - pop bc - ret - -Func_45c2e: -.asm_45c2e - push hl - inc hl - inc hl - ld a, [hli] - ld e, a - ld d, [hl] - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - or e - ret z - jr .asm_45c2e - -Func_45c3d: - push bc - push de - push hl - xor a - ld c, a -.asm_45c42 - ld a, [hli] - ld e, a - ld a, [hld] - ld d, a - or e - jr z, .asm_45c5a - call Func_45b9c - jr nc, .asm_45c55 - push hl - call Func_45c5f - pop hl - jr .asm_45c42 -.asm_45c55 - inc hl - inc hl - inc c - jr .asm_45c42 -.asm_45c5a - ld a, c - pop hl - pop de - pop bc - ret - -Func_45c5f: -.asm_45c5f - push hl - inc hl - inc hl - ld a, [hli] - ld e, a - ld d, [hl] - pop hl - ld a, e - ld [hli], a - ld a, d - ld [hli], a - or e - ret z - jr .asm_45c5f +INCLUDE "engine/black_box.asm" INCLUDE "engine/credits.asm" diff --git a/src/engine/black_box.asm b/src/engine/black_box.asm new file mode 100644 index 0000000..8f7995c --- /dev/null +++ b/src/engine/black_box.asm @@ -0,0 +1,1091 @@ +; calc black box output from input +ProcessBlackBoxInputAndOutput: + ld hl, wCurDeckCards + call TakeOutCardsInHLFromCollection + ld a, PROMOTIONAL + call CountCardsFromSetOfAInHL + or a + jr nz, .check_promo +; no promo + call CheckIfAllIdenticalCardsInHL + jr c, .check_evo_line ; empty or different + call CountCardsInHL + cp 2 + jr c, .check_evo_line ; only 1 +; 2+ of a kind, nothing else + call ProcessBlackBoxInputAndOutput_AllDupes + jr .done + +.check_evo_line + ld hl, wCurDeckCards + call CheckIfEvoLineInHL + jr c, .check_rarity +; evo line + call ProcessBlackBoxInputAndOutput_EvoLine + jr .done + +.check_rarity + ld a, STAR + ld hl, wCurDeckCards + call CheckIfAllIdenticalRarityInHL + jr c, .check_promo +; star cards + call ProcessBlackBoxInputAndOutput_Stars + jr .done + +; has promo, or different cards of different rarities +.check_promo + call ProcessBlackBoxInputAndOutput_Regular + +.done + ret + +; 2+ of a kind, nothing else +ProcessBlackBoxInputAndOutput_AllDupes: + ld hl, wCurDeckCards + ld a, [hli] + ld e, a + ld a, [hld] + ld d, a + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Type] + cp TYPE_ENERGY + jr c, .non_energy + cp TYPE_TRAINER + jr z, .non_energy +; energy + call ProcessBlackBoxInputAndOutput_ReturnAll + jp .done + +.non_energy + call CountCardsInHL + push af + cp MAX_NUM_BLACK_BOX_INPUT + jr nz, .not_five_or_nonstar +; 5 of a kind + ld a, [wLoadedCard1Rarity] + cp STAR + jr c, .not_five_or_nonstar + +; 5 of a kind & star+ +; 50% super bonus : 50% whiff + pop af + call GetBlackBoxOutputBonusFlag + or a + jr nz, .output_super_bonus + jr .whiffed_return_1 + +.output_super_bonus + call ListUniqueEvoCardsFromDE + jr nc, .output_super_bonus_no_evo +; has evo +; return 3 copies of a random card of the input's evo +; if no non-promo candidates, whiff + ld hl, wDuelTempList + call ExcludePromoCardsFromHLAndUpdateLengthCount + call ExcludeSpecialPromoCardsFromHLAndUpdateLengthCount + or a + jr z, .whiffed_return_1 + call Random + sla a + add_hl_a + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, wBlackBoxCardReceived + ld c, 3 +.loop_fill_3 + ld a, e + ld [hli], a + ld a, d + ld [hli], a + dec c + jr nz, .loop_fill_3 +; append $0000-terminator + xor a + ld [hli], a + ld [hl], a + jp .done + +; no evo +; return 5 copies of a random star card of the input's type +; if no non-promo candidates, whiff +.output_super_bonus_no_evo + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Type] + ld b, a + ld c, STAR + call ListUniqueCardsOfTheSameTypeAndRarity + ld hl, wDuelTempList + call ExcludePromoCardsFromHLAndUpdateLengthCount + call ExcludeSpecialPromoCardsFromHLAndUpdateLengthCount + or a + jr z, .whiffed_return_1 + call Random + sla a + add_hl_a + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, wBlackBoxCardReceived + ld c, 5 +.loop_fill_5 + ld a, e + ld [hli], a + ld a, d + ld [hli], a + dec c + jr nz, .loop_fill_5 +; append $0000 terminator + xor a + ld [hli], a + ld [hl], a + jr .done + +; (count)*10% bonus : otherwise whiff +.not_five_or_nonstar + pop af + call GetBlackBoxOutputBonusFlag + or a + jr nz, .output_bonus + +.whiffed_return_1 + ld hl, wCurDeckCards + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, wBlackBoxCardReceived + ld a, e + ld [hli], a + ld a, d + ld [hli], a +; append $0000 terminator + xor a + ld [hli], a + ld [hl], a + jr .done + +.output_bonus + call ListUniqueEvoCardsFromDE + jr nc, .output_bonus_no_evo +; has evo +; return 1 copy of a random card of the input's evo +; if no non-promo candidates, whiff + ld hl, wDuelTempList + call ExcludePromoCardsFromHLAndUpdateLengthCount + call ExcludeSpecialPromoCardsFromHLAndUpdateLengthCount + or a + jr z, .whiffed_return_1 + call Random + sla a + add_hl_a + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, wBlackBoxCardReceived + ld a, e + ld [hli], a + ld a, d + ld [hli], a +; append $0000 terminator + xor a + ld [hli], a + ld [hl], a + jr .done + +; no evo +; return 1 copy of a random star card of the input's type +; if no non-promo candidates, whiff +.output_bonus_no_evo + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Type] + ld b, a + ld c, STAR + call ListUniqueCardsOfTheSameTypeAndRarity + ld hl, wDuelTempList + call ExcludePromoCardsFromHLAndUpdateLengthCount + call ExcludeSpecialPromoCardsFromHLAndUpdateLengthCount + or a + jr z, .whiffed_return_1 + call Random + sla a + add_hl_a + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, wBlackBoxCardReceived + ld a, e + ld [hli], a + ld a, d + ld [hli], a + xor a + ld [hli], a + ld [hl], a +.done + ret + +ProcessBlackBoxInputAndOutput_EvoLine: + call GetBlackBoxEvoLineOutputCountAndScore + cp 1 + jr z, .score_1 + jr nz, .score_0_or_2 + +; unreachable part +; list basic cards of the evo line +; glad this devolution-thingy doesn't exist! + ld hl, wTempBlackBoxInputBasic + ld a, [hli] + ld e, a + ld d, [hl] + or d + jr z, .no_basic_input + call ListUniqueCardsOfTheSameName + jr .output +.no_basic_input + ld hl, wTempBlackBoxInputStage1 + ld a, [hli] + ld e, a + ld d, [hl] + call ListUniquePreEvoCardsFromDE + jr .output + +; list stage1 cards of the evo line +.score_1 + ld hl, wTempBlackBoxInputStage1 + ld a, [hli] + ld e, a + ld d, [hl] + or d + jr z, .no_stage1_input + call ListUniqueCardsOfTheSameName + jr .output +.no_stage1_input + ld hl, wTempBlackBoxInputBasic + ld a, [hli] + ld e, a + ld d, [hl] + call ListUniqueEvoCardsFromDE ; this may include both dark and non-dark + jr .output + +; list stage2 cards of the evo line +.score_0_or_2 + ld hl, wTempBlackBoxInputStage2 + ld a, [hli] + ld e, a + ld d, [hl] + or d + jr z, .no_stage2_input + call ListUniqueCardsOfTheSameName + jr .output +.no_stage2_input + ld hl, wTempBlackBoxInputStage1 + ld a, [hli] + ld e, a + ld d, [hl] + call ListUniqueEvoCardsFromDE + +; return c copies of a random card from the list +; if no non-promo candidates, return all input cards +.output + ld hl, wDuelTempList + call ExcludePromoCardsFromHLAndUpdateLengthCount + call ExcludeSpecialPromoCardsFromHLAndUpdateLengthCount + or a + jr z, .return_all + call Random + sla a + add_hl_a + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, wBlackBoxCardReceived +.loop_fill_c + ld a, e + ld [hli], a + ld a, d + ld [hli], a + dec c + jr nz, .loop_fill_c + +; append $0000 terminator + xor a + ld [hli], a + ld [hl], a +.done + ret + +.return_all + call ProcessBlackBoxInputAndOutput_ReturnAll + jr .done + +; star cards of 2+ kinds +ProcessBlackBoxInputAndOutput_Stars: +; init output + xor a + ld hl, wBlackBoxCardReceived + ld [hli], a + ld [hl], a +; check promo recipe + ld hl, BlackboxPromoCards +.loop_promo_recipes + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + or c + jr z, .return_rest + push hl + ld hl, wCurDeckCards + call CheckIfListInBCIsSubsetOfListInHL + pop hl + jr c, .next_promo_recipe +; input contains promo recipe, but is it locked to post-game? + ld a, [hli] ; locked-to-post-game flag + or a + jr z, .valid_recipe +; check if post-game + ld a, EVENT_MASONS_LAB_CHALLENGE_MACHINE_STATE + farcall GetEventValue + jr z, .next_promo_recipe_after_flag ; locked to post-game +; the current recipe is valid +; append it to output and remove the recipe cards from input +.valid_recipe + ld a, [hli] + ld e, a + ld a, [hld] + ld d, a + push hl + ld hl, wBlackBoxCardReceived + call AppendCardToListInHL + ld hl, wCurDeckCards + call RemoveCardsInBCFromHL +; check the current recipe again + pop hl + dec hl + dec hl + dec hl + jr .loop_promo_recipes +.next_promo_recipe + inc hl +.next_promo_recipe_after_flag + inc hl + inc hl + jr .loop_promo_recipes + +.return_rest + ld hl, wCurDeckCards +.loop_return + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .done + push hl + ld hl, wBlackBoxCardReceived + call AppendCardToListInHL + pop hl + jr .loop_return +.done + ret + +; has promo, or different cards of different rarities +ProcessBlackBoxInputAndOutput_Regular: +; init output + xor a + ld hl, wBlackBoxCardReceived + ld [hli], a + ld [hl], a +; return all promo, star+, and non-pkmn cards + ld hl, wCurDeckCards +.loop_cards_1 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .calc_score + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Type] + cp TYPE_ENERGY + jr nc, .return_promo_and_star_and_nonpkmn + ld a, [wLoadedCard1Set] + cp PROMOTIONAL + jr z, .return_promo_and_star_and_nonpkmn + ld a, [wLoadedCard1Rarity] + cp STAR + jr c, .loop_cards_1 +.return_promo_and_star_and_nonpkmn + push hl + ld hl, wBlackBoxCardReceived + call AppendCardToListInHL + pop hl + jr .loop_cards_1 + +; input cards rarity score: +; 0 per non-pkmn +; 1 per circle pkmn +; 2 per promo/star+ pkmn +; 3 per diamond pkmn +.calc_score + ld hl, wCurDeckCards + ld c, 0 +.loop_cards_2 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .check_score + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Type] + cp TYPE_ENERGY + jr nc, .loop_cards_2 ; score0 + ld a, [wLoadedCard1Set] + cp PROMOTIONAL + jr z, .score2 + ld a, [wLoadedCard1Rarity] + cp DIAMOND + jr z, .score3 + jr nc, .score2 +; score1 + inc c + jr .loop_cards_2 +.score3 + inc c + inc c + inc c + jr .loop_cards_2 +.score2 + inc c + inc c + jr .loop_cards_2 + +.check_score +; init buffer + xor a + ld hl, wBlackBoxOutputCountCircle + ld [hli], a + ld [hli], a + ld [hl], a + ld a, c + cp 11 + jr nc, .scored_11_or_more + cp 6 + jr nc, .scored_6_to_10 + cp 2 + jr nc, .scored_2_to_5 + +; input score = 0, 1 +; return the circle pkmn as well +; (.return_promo_and_star_and_nonpkmn has already decided to return all non-pkmn cards) + ld hl, wCurDeckCards +.loop_cards_3 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jp z, .done + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Type] + cp TYPE_PKMN + jr nc, .loop_cards_3 + ld a, [wLoadedCard1Set] + cp PROMOTIONAL + jr z, .loop_cards_3 ; impossible + ld a, [wLoadedCard1Rarity] + cp STAR + jp nc, .loop_cards_3 ; impossible + push hl + ld hl, wBlackBoxCardReceived + call AppendCardToListInHL + pop hl + jr .loop_cards_3 + +; input score = [2, 5] +; for the index n = [0, 3] by rng check, +; output count (circle, star, diamond): +; n = 0: 1, 0, 0 +; n = 1: 3, 0, 0 +; n = 2: 0, 2, 0 +; n = 3: 0, 0, 1 +.scored_2_to_5 + call GetBlackBoxOutputIndex + inc a + ld c, a + ld hl, wBlackBoxOutputCountCircle + ld a, 1 + ld [hl], a + dec c + jr z, .output + ld a, 3 + ld [hl], a + dec c + jr z, .output + xor a + ld [hli], a + ld a, 2 + ld [hl], a + dec c + jr z, .output + xor a + ld [hli], a + ld a, 1 + ld [hl], a + jr .output + +; input score = [6, 10] +; (particularly useful, as inputting 5 promo pkmn yields score 10) +; for the index n = [0, 3] by rng check, +; output count (circle, star, diamond): +; n = 0: 5, 0, 0 +; n = 1: 0, 3, 0 +; n = 2: 0, 0, 1 +; n = 3: 0, 0, 2 +.scored_6_to_10 + call GetBlackBoxOutputIndex + inc a + ld c, a + ld hl, wBlackBoxOutputCountCircle + ld a, 5 + ld [hl], a + dec c + jr z, .output + xor a + ld [hli], a + ld a, 3 + ld [hl], a + dec c + jr z, .output + xor a + ld [hli], a + ld a, 1 + ld [hl], a + dec c + jr z, .output + inc [hl] + jr .output + +; input score = 11 or more +; for the index n = [0, 3] by rng check, +; output count (circle, star, diamond): +; n = 0: 0, 3, 0 +; n = 1: 0, 0, 1 +; n = 2: 0, 3, 1 +; n = 3: 0, 0, 3 +.scored_11_or_more + call GetBlackBoxOutputIndex + inc a + ld c, a + ld hl, wBlackBoxOutputCountDiamond + ld a, 3 + ld [hl], a + dec c + jr z, .output + xor a + ld [hli], a + ld a, 1 + ld [hl], a + dec c + jr z, .output + dec hl + ld a, 3 + ld [hl], a + dec c + jr z, .output + xor a + ld [hli], a + ld a, 3 + ld [hl], a + +; TYPE_TRAINER is the default card type in b +; so that inputting 5 cards of unique types can yields trainer card(s) +.output + ld a, [wBlackBoxOutputCountCircle] + or a + jr z, .output_diamond + +; output circle + lb bc, TYPE_TRAINER, CIRCLE + ld hl, wCurDeckCards + call CountUniquePkmnTypesInHL + cp MAX_NUM_BLACK_BOX_INPUT + jr z, .list_circle + call GetMostFrequentPkmnTypeInHL + ld b, a +.list_circle + call ListUniqueCardsOfTheSameTypeAndRarity + ld hl, wDuelTempList + call ExcludePromoCardsFromHLAndUpdateLengthCount + call ExcludeSpecialPromoCardsFromHLAndUpdateLengthCount + or a + jp z, .return_all_and_bonus_rainbow_energy + ld b, a + ld a, [wBlackBoxOutputCountCircle] + ld c, a +.loop_random_pick_circle + ld a, b + call Random + sla a + ld hl, wDuelTempList + add_hl_a + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, wBlackBoxCardReceived + call AppendCardToListInHL + dec c + jr nz, .loop_random_pick_circle + +.output_diamond + ld a, [wBlackBoxOutputCountDiamond] + or a + jr z, .output_star + lb bc, TYPE_TRAINER, DIAMOND + ld hl, wCurDeckCards + call CountUniquePkmnTypesInHL + cp MAX_NUM_BLACK_BOX_INPUT + jr z, .list_diamond + call GetMostFrequentPkmnTypeInHL + ld b, a +.list_diamond + call ListUniqueCardsOfTheSameTypeAndRarity + ld hl, wDuelTempList + call ExcludePromoCardsFromHLAndUpdateLengthCount + call ExcludeSpecialPromoCardsFromHLAndUpdateLengthCount + or a + jr z, .return_all_and_bonus_rainbow_energy + ld b, a + ld a, [wBlackBoxOutputCountDiamond] + ld c, a +.loop_random_pick_diamond + ld a, b + call Random + sla a + ld hl, wDuelTempList + add_hl_a + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, wBlackBoxCardReceived + call AppendCardToListInHL + dec c + jr nz, .loop_random_pick_diamond + +.output_star + ld a, [wBlackBoxOutputCountStar] + or a + jr z, .done + lb bc, TYPE_TRAINER, STAR + ld hl, wCurDeckCards + call CountUniquePkmnTypesInHL + cp MAX_NUM_BLACK_BOX_INPUT + jr z, .list_star + call GetMostFrequentPkmnTypeInHL + ld b, a +.list_star + call ListUniqueCardsOfTheSameTypeAndRarity + ld hl, wDuelTempList + call ExcludePromoCardsFromHLAndUpdateLengthCount + call ExcludeSpecialPromoCardsFromHLAndUpdateLengthCount + or a + jr z, .return_all_and_bonus_rainbow_energy + ld b, a + ld a, [wBlackBoxOutputCountStar] + ld c, a +.loop_random_pick_star + ld a, b + call Random + sla a + ld hl, wDuelTempList + add_hl_a + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, wBlackBoxCardReceived + call AppendCardToListInHL + dec c + jr nz, .loop_random_pick_star + +.done + ret + +.return_all_and_bonus_rainbow_energy + call ProcessBlackBoxInputAndOutput_ReturnAll + ld hl, wBlackBoxCardReceived + ld de, RAINBOW_ENERGY + call AppendCardToListInHL + jr .done + +; rng check [0, 99] for a = card count [2, 5] +; succeeds if > .cutoffs[a-2], return TRUE +; ((100 - .cutoffs[a-2])% chance) +; otherwise FALSE +GetBlackBoxOutputBonusFlag: + push bc + push hl + dec a + dec a + ld hl, .cutoffs + add_hl_a + ld c, [hl] + ld a, 100 + call Random + cp c + jr c, .fail +; pass + ld a, TRUE + jr .done +.fail + xor a +.done + pop hl + pop bc + ret + +.cutoffs: + db 80 ; 2 + db 70 ; 3 + db 60 ; 4 + db 50 ; 5 + +; evo-line flag input in a: +; 0: BASIC | STAGE1 | STAGE2, +; 1: BASIC | STAGE1, +; 2: BASIC | STAGE2, +; 3: STAGE1 | STAGE2 +; rng check [0, 99] against .cutoffs[a], +; then get n such that rng < .cutoffs[a][n], otherwise n = 2 +; output: +; count c = .ValueTable_n[a][0], +; score a = .ValueTable_n[a][1] +GetBlackBoxEvoLineOutputCountAndScore: + sla a + push af + ld hl, .cutoffs + add_hl_a + ld a, [hli] + ld c, a + ld b, [hl] + ld a, 100 + call Random + cp c + jr c, .table0 + cp b + jr c, .table1 + +; table2 + pop af + ld hl, .ValueTable2 + add_hl_a + ld a, [hli] + ld c, a + ld a, [hl] + jr .done + +.table1 + pop af + ld hl, .ValueTable1 + add_hl_a + ld a, [hli] + ld c, a + ld a, [hl] + jr .done + +.table0 + pop af + ld hl, .ValueTable0 + add_hl_a + ld a, [hli] + ld c, a + ld a, [hl] + +.done + ret + +; e.g. {20, 70} -> 20% table0 : 50% table1 : 30% table2 +.cutoffs: + db 40, 80 ; 0 + db 50, 100 ; 1 + db 40, 80 ; 2 + db 20, 70 ; 3 + +; output count, output score +.ValueTable0: + db 3, 0 ; 0 + db 2, 0 ; 1 + db 2, 0 ; 2 + db 2, 0 ; 3 +.ValueTable1: + db 3, 1 ; 0 + db 2, 1 ; 1 + db 2, 1 ; 2 + db 2, 1 ; 3 +.ValueTable2: + db 3, 2 ; 0 + db 0, 0 ; 1, impossible + db 2, 2 ; 2 + db 2, 1 ; 3 + +; for a = input score [0, 15], +; rng check [0, 99] against .cutoffs[a], +; get n such that rng < .cutoffs[a][n], +; then return n in a +GetBlackBoxOutputIndex: + push bc + push de + push hl + sla a + sla a + ld hl, .cutoffs + add_hl_a + ld a, [hli] ; cutoff 0 + ld c, a + ld a, [hli] ; cutoff 1 + ld b, a + ld a, [hli] ; cutoff 2 + ld e, a + ld a, [hli] ; cutoff 3 (terminator) + ld d, a ; unused + ld l, 0 + ld a, 100 + call Random + cp c + jr c, .done + inc l + cp b + jr c, .done + inc l + cp e + jr c, .done + inc l + +.done + ld a, l + pop hl + pop de + pop bc + ret + +; e.g. {20, 70, 90, 100} -> 20% : 50% : 20% : 10% +.cutoffs: +; section 0, fillers + db 100, 100, 100, 100 ; $0 + db 100, 100, 100, 100 ; $1 +; section 1 + db 50, 90, 98, 100 ; $2 + db 40, 90, 98, 100 ; $3 + db 30, 80, 95, 100 ; $4 + db 25, 75, 92, 100 ; $5 +; section 2 + db 50, 90, 98, 100 ; $6 + db 40, 90, 98, 100 ; $7 + db 30, 80, 95, 100 ; $8 + db 25, 75, 92, 100 ; $9 + db 20, 70, 90, 100 ; $a +; section 3 + db 50, 90, 98, 100 ; $b + db 40, 90, 98, 100 ; $c + db 30, 80, 95, 100 ; $d + db 25, 75, 92, 100 ; $e + db 20, 70, 90, 100 ; $f + +; return carry if card ID in de is found in SpecialPromoCards +CheckIfSpecialPromoCard: + push af + push bc + push de + push hl + ld c, e + ld b, d + ld hl, SpecialPromoCards +.loop_cards + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + or c + jr z, .not_found + cp16bc_long de + jr nz, .loop_cards + +; found + pop hl + pop de + pop bc + pop af + scf + ret + +.not_found + pop hl + pop de + pop bc + pop af + scf + ccf + ret + +; put back all wCurDeckCards (i.e. input) to wBlackBoxCardReceived +ProcessBlackBoxInputAndOutput_ReturnAll: + push af + push bc + push de + push hl + ld hl, wCurDeckCards + ld de, wBlackBoxCardReceived + ld bc, 2 * (MAX_NUM_BLACK_BOX_INPUT + 1) + call CopyDataHLtoDE_SaveRegisters + pop hl + pop de + pop bc + pop af + ret + +; unreferenced & bugged +; intended to count SpecialPromoCards in card list in hl +; but just return a = 0 +Stubbed_CountSpecialPromoCardsInHL: + push bc + push de + push hl + ld c, 0 +.loop_cards_in_list + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .done + push bc + push hl + ld hl, SpecialPromoCards +.loop_promo + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + or c + jr z, .next_card_in_list + cp16bc_long de + jr nz, .loop_promo + pop hl + pop bc + inc c + jr .loop_cards_in_list +.next_card_in_list + pop hl + pop bc + jr .loop_cards_in_list +.done +; bug, must use c +; ld a, c + pop hl + pop de + pop bc + ret + +; drop promo cards from card list in hl and shift the rest +; and update the list length in a +ExcludePromoCardsFromHLAndUpdateLengthCount: + push bc + push de + push hl + xor a + ld c, a +.loop_cards + ld a, [hli] + ld e, a + ld a, [hld] + ld d, a + or e + jr z, .done + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Set] + cp PROMOTIONAL + jr nz, .not_promo +; found promo + push hl + call .ExcludePromo + pop hl + jr .loop_cards +.not_promo + inc hl + inc hl + inc c + jr .loop_cards +.done + ld a, c + pop hl + pop de + pop bc + ret + +.ExcludePromo: + push hl + inc hl + inc hl + ld a, [hli] + ld e, a + ld d, [hl] + pop hl + ld a, e + ld [hli], a + ld a, d + ld [hli], a + or e + ret z + jr .ExcludePromo + +; drop SpecialPromoCards from card list in hl and shift the rest +; and update the list length in a +; actually redundant, as ExcludePromoCardsFromHLAndUpdateLengthCount +; already handles them +ExcludeSpecialPromoCardsFromHLAndUpdateLengthCount: + push bc + push de + push hl + xor a + ld c, a +.loop_cards + ld a, [hli] + ld e, a + ld a, [hld] + ld d, a + or e + jr z, .done + call CheckIfSpecialPromoCard + jr nc, .not_special_promo +; found special promo + push hl + call .ExcludeSpecialPromo + pop hl + jr .loop_cards +.not_special_promo + inc hl + inc hl + inc c + jr .loop_cards +.done + ld a, c + pop hl + pop de + pop bc + ret + +.ExcludeSpecialPromo: + push hl + inc hl + inc hl + ld a, [hli] + ld e, a + ld d, [hl] + pop hl + ld a, e + ld [hli], a + ld a, d + ld [hli], a + or e + ret z + jr .ExcludeSpecialPromo diff --git a/src/engine/card_list_ops.asm b/src/engine/card_list_ops.asm new file mode 100644 index 0000000..c58a3e5 --- /dev/null +++ b/src/engine/card_list_ops.asm @@ -0,0 +1,1059 @@ +; hl = card list +TakeOutCardsInHLFromCollection: + push af + push de + push hl +.loop_cards + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .done + call RemoveCardFromCollection + jr .loop_cards +.done + pop hl + pop de + pop af + ret + +; for a card list in hl, +; reset carry if all cards are identical +; set carry if it's empty or has different cards +CheckIfAllIdenticalCardsInHL: + push bc + push de + push hl + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .empty_or_different +.loop_cards + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + or c + jr z, .all_identical + cp16_long bc + jr nz, .empty_or_different + jr .loop_cards + +.empty_or_different + scf + jr .done +.all_identical + scf + ccf +.done + pop hl + pop de + pop bc + ret + +; counts number of cards in +; $0000 terminated list in hl +; output: +; a = number of cards +CountCardsInHL: + push bc + push hl + xor a + ld c, a +.loop + ld a, [hli] + ld b, a + ld a, [hli] + or b + jr z, .done + inc c + jr .loop +.done + ld a, c + pop hl + pop bc + ret + +; input: +; hl = card list +; de = card ID to search for +; output: +; carry set if not found +; a = index in list if found +SearchCardInListInHL: + push bc + push de + push hl + xor a +.loop_cards + push af + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + or c + jr z, .not_found + cp16_long bc + jr z, .found + pop af + inc a + jr .loop_cards +.not_found + pop af + xor a + scf + jr .done +.found + pop af + scf + ccf +.done + pop hl + pop de + pop bc + ret + +; SearchCardInListInHL[a:] +; input: +; hl = card list +; de = card ID to search for +; a = offset +; output: +; carry set if not found +; a = index in list if found +SearchCardInListInHL_Offset: + push hl + sla a + add_hl_a + call SearchCardInListInHL + pop hl + ret + +; check if card list in hl has a valid evo line and nothing else +; (1 card each as follows) +; return evo-stage flags in a: +; 0: BASIC, STAGE1, STAGE2 +; 1: BASIC, STAGE1 +; 2: BASIC, STAGE2 +; 3: STAGE1, STAGE2 +; set carry if invalid +CheckIfEvoLineInHL: + call CountCardsInHL + cp 2 + jr z, .two_or_three + cp 3 + jr z, .two_or_three +; otherwise invalid + scf + ret + +.two_or_three + push bc + push de + push hl + push hl +; init buffer + xor a + ld hl, wTempBlackBoxInputEvoLine +REPT 2 * NUM_REGULAR_EVO_STAGES + ld [hli], a +ENDR + + pop hl +.loop_cards + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .check_evo_combo + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Type] + cp TYPE_ENERGY + jp nc, .invalid +; pkmn + push hl + ld hl, wTempBlackBoxInputBasic + ld a, [wLoadedCard1Stage] + sla a + add_hl_a + ld a, [hli] + ld c, a + ld a, [hld] + or c + push hl + pop bc + pop hl + jp nz, .invalid ; the same stage already exists +; store in buffer + ld a, e + ld [bc], a + inc bc + ld a, d + ld [bc], a + jr .loop_cards + +.check_evo_combo + ld hl, wTempBlackBoxInputBasic + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jp z, .no_basic_input + ld a, [hli] ; wTempBlackBoxInputStage1 + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .basic_and_stage2 + ld a, [hli] ; wTempBlackBoxInputStage2 + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .basic_and_stage1 + +; BASIC | STAGE1 | STAGE2 + ld hl, wTempBlackBoxInputBasic + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + call ListUniqueEvoCardsFromDE + jp nc, .invalid + ld a, [hli] ; wTempBlackBoxInputStage1 + ld e, a + ld a, [hli] + ld d, a + push hl + ld hl, wDuelTempList + call SearchCardInListInHL + pop hl + jp c, .invalid + call ListUniqueEvoCardsFromDE + jp nc, .invalid + ld a, [hli] ; wTempBlackBoxInputStage2 + ld e, a + ld d, [hl] + ld hl, wDuelTempList + call SearchCardInListInHL + jr c, .invalid + xor a ; 0 instead of (BASIC | STAGE1 | STAGE2) + jr .valid + +.basic_and_stage1 + ld hl, wTempBlackBoxInputBasic + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + call ListUniqueEvoCardsFromDE + jr nc, .invalid + ld a, [hli] ; wTempBlackBoxInputStage1 + ld e, a + ld d, [hl] + ld hl, wDuelTempList + call SearchCardInListInHL + jr c, .invalid + ld a, BASIC | STAGE1 + jr .valid + +.basic_and_stage2 + ld hl, wTempBlackBoxInputBasic + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + call ListUniqueEvoCardsFromDE + jr nc, .invalid + inc hl + inc hl + ld a, [hli] ; wTempBlackBoxInputStage2 + ld e, a + ld d, [hl] + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1PreEvoName] + ld c, a + ld a, [wLoadedCard1PreEvoName + 1] + ld b, a + ld hl, wDuelTempList +.loop_lookup + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .invalid + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Name] + ld e, a + ld a, [wLoadedCard1Name + 1] + ld d, a + cp16_long bc + jr nz, .loop_lookup + ld a, BASIC | STAGE2 + jr .valid + +.no_basic_input + ld hl, wTempBlackBoxInputStage1 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + call ListUniqueEvoCardsFromDE + jr nc, .invalid + ld a, [hli] ; wTempBlackBoxInputStage2 + ld e, a + ld d, [hl] + ld hl, wDuelTempList + call SearchCardInListInHL + jr c, .invalid + ld a, STAGE1 | STAGE2 + +.valid + scf + ccf + jr .done +.invalid + scf +.done + pop hl + pop de + pop bc + ret + +; unreferenced? +; compare card lists in bc and hl +; clear carry if equal +; set carry if different +CheckIfListsInBCAndHLAreEqual: + push bc + push de + push hl + call CheckIfListInBCIsSubsetOfListInHL + jr c, .different + call CountCardsInHL + ld e, a + ld l, c + ld h, b + call CountCardsInHL + cp e + jr nz, .different + scf + ccf + jr .done +.different + scf +.done + pop hl + pop de + pop bc + ret + +; return in a the most frequent type in card list in hl +; with rng as tiebreaker +; set carry for TYPE_PKMN_FIRE (= 0) +GetMostFrequentPkmnTypeInHL: + push bc + push de + push hl + push hl +; init buffer + xor a + ld hl, wNumBlackBoxInputPkmnPerType +REPT NUM_PKMN_TYPES - 1 + ld [hli], a +ENDR + ld [hl], a + + pop hl +.loop_cards + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .check_count + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Type] + cp TYPE_PKMN + jr nc, .loop_cards + ld de, wNumBlackBoxInputPkmnPerType + add_de_a +; incr count + ld a, [de] + inc a + ld [de], a + jr .loop_cards + +.check_count + ld de, 0 + ld c, 0 + ld hl, wNumBlackBoxInputPkmnPerType +.loop_check_count + ld a, [hli] + cp d + jr c, .next_type + jr nz, .get_type_and_count +; tie + call UpdateRNGSources + srl a + jr c, .next_type + ld e, c + jr .next_type + +.get_type_and_count + ld d, a + ld e, c +.next_type + inc c + ld a, c + cp NUM_PKMN_TYPES + jr nz, .loop_check_count + +; got most frequent type + ld a, e + or a + jr nz, .done +; set carry for TYPE_PKMN_FIRE + scf +.done + pop hl + pop de + pop bc + ret + +; return in a the number of unique pkmn types in the card list in hl +CountUniquePkmnTypesInHL: + push bc + push de + push hl +; init buffer + farcall ZeroOutBytes_wd606 + +.loop_cards + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .count_types + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Type] + cp TYPE_PKMN + jr nc, .loop_cards +; pkmn, set type bit + farcall SetBit_wd606 + jr .loop_cards + +.count_types + xor a + ld c, a +.loop_count_types + farcall CheckBit_wd606 + jr z, .next_bit + inc c +.next_bit + inc a + cp NUM_PKMN_TYPES + jr nz, .loop_count_types +; got type counts + ld a, c + pop hl + pop de + pop bc + ret + +; create in wDuelTempList a list of unique cards that matches +; both b = TYPE_* and c = rarity +; and return the list length in a +ListUniqueCardsOfTheSameTypeAndRarity: + push bc + push de + push hl + ld de, GRASS_ENERGY + ld hl, wDuelTempList + xor a + push af +.loop_cards + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Type] + cp b + jr nz, .check_bounds + ld a, [wLoadedCard1Rarity] + cp c + jr nz, .check_bounds +; match, append it and incr length counter + pop af + inc a + push af + ld a, e + ld [hli], a + ld a, d + ld [hli], a +.check_bounds + cp16_long NUM_CARDS + inc de + jr nz, .loop_cards +; done, append $0000 terminator + xor a + ld [hli], a + ld [hl], a + pop af + pop hl + pop de + pop bc + ret + +; appends card ID in de to list in hl +AppendCardToListInHL: + push af + push bc + push hl +.loop_cards + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + or c + jr nz, .loop_cards + inc hl + xor a + ld [hld], a ; terminating byte + ld [hld], a ; + ld a, d + ld [hld], a ; card ID + ld [hl], e ; + pop hl + pop bc + pop af + ret + +; for a card in de, +; create in wDuelTempList a list of its unique evo cards +; also return carry if at least 1 +ListUniqueEvoCardsFromDE: + push bc + push de + push hl + farcall _ListUniqueEvoCardsFromDE + pop hl + pop de + pop bc + ret + +; for a card in de, +; create in wDuelTempList a list of its unique pre-evo cards +; also set carry if at least 1 +ListUniquePreEvoCardsFromDE: + push bc + push de + push hl + call LoadCardDataToBuffer1_FromCardID + ld hl, wLoadedCard1PreEvoName + ld a, [hli] + ld c, a + ld b, [hl] + ld hl, wDuelTempList + ld de, GRASS_ENERGY - 1 ; 0 +.loop_cards + inc de + push hl + push de + call LoadCardDataToBuffer1_FromCardID + jr c, .exit + ld a, [wLoadedCard1Type] + cp TYPE_ENERGY + jr nc, .next_card + ld hl, wLoadedCard1Name + ld a, c + cp [hl] + jr nz, .next_card + inc hl + ld a, b + cp [hl] + jr nz, .next_card +; found pre-evo + pop de + pop hl + ld a, e + ld [hli], a + ld a, d + ld [hli], a + jr .loop_cards +.next_card + pop de + pop hl + jr .loop_cards + +.exit + pop de + pop hl +; append $0000 terminator + xor a + ld [hli], a + ld [hl], a + ld hl, wDuelTempList + ld a, [hli] + or [hl] + pop hl + pop de + pop bc + ret z ; empty +; not empty + scf + ret + +; for a card in de, +; create in wDuelTempList a list of unique cards of the same name +; also return carry if at least 1 (i.e. always) +ListUniqueCardsOfTheSameName: + push bc + push de + push hl + call LoadCardDataToBuffer1_FromCardID + ld hl, wLoadedCard1Name + ld a, [hli] + ld c, a + ld b, [hl] + ld hl, wDuelTempList + ld de, GRASS_ENERGY - 1 ; 0 +.loop_cards + inc de + push hl + push de + call LoadCardDataToBuffer1_FromCardID + jr c, .exit + ld a, [wLoadedCard1Type] + cp TYPE_ENERGY + jr nc, .next_card + ld hl, wLoadedCard1Name + ld a, c + cp [hl] + jr nz, .next_card + inc hl + ld a, b + cp [hl] + jr nz, .next_card +; found the same name + pop de + pop hl + ld a, e + ld [hli], a + ld a, d + ld [hli], a + jr .loop_cards +.next_card + pop de + pop hl + jr .loop_cards + +.exit + pop de + pop hl +; append $0000 terminator + xor a + ld [hli], a + ld [hl], a + ld hl, wDuelTempList + ld a, [hli] + or [hl] + pop hl + pop de + pop bc + ret z ; empty, impossible +; not empty + scf + ret + +; unreferenced? +; a = rarity, hl = card list +; return in a the count of cards of that rarity in hl +CountCardsOfRarityOfAInHL: + push bc + push de + push hl + ld b, a + ld c, 0 +.loop_cards + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .done + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Rarity] + cp b + jr nz, .loop_cards + inc c + jr .loop_cards + +.done + ld a, c + pop hl + pop de + pop bc + ret + +; for a card list in hl, +; reset carry if all cards have the same rarity +; set carry if it's empty or has different rarities +CheckIfAllIdenticalRarityInHL: + push bc + push de + push hl + ld c, a + ld a, [hli] + ld e, a + ld a, [hld] + ld d, a + or e + jr z, .empty_or_different +.loop_cards + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .all_identical_rarity + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Rarity] + cp c + jr nz, .empty_or_different + jr .loop_cards + +.empty_or_different + scf + jr .done +.all_identical_rarity + scf + ccf +.done + pop hl + pop de + pop bc + ret + +; if a card in de is in the list in hl, +; drop the first occurrence of it and shift the rest +; else (i.e. not found) set carry +RemoveCardFromListInHL: + push bc + push de + push hl +.loop_cards + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + or c + jr z, .not_found + cp16_long bc + jr nz, .loop_cards + +; found +.loop_shift + ld a, [hli] + ld e, a + ld a, [hld] + ld d, a + dec hl + dec hl + ld a, e + ld [hli], a + ld a, d + ld [hli], a + or e + inc hl + inc hl + jr nz, .loop_shift +; ensure the $0000 terminator (redundant?) + xor a + dec hl + ld [hld], a + ld [hl], a + scf + ccf + jr .done + +.not_found + scf +.done + pop hl + pop de + pop bc + ret + +; compare two card lists in bc and hl +; if bc is a subset of hl (dupes apply), reset carry +; else set carry +; e.g. whether black box input contains blackbox_promo recipes +CheckIfListInBCIsSubsetOfListInHL: + push bc + push de + push hl +; init buffer + farcall ZeroOutBytes_wd606 + +.loop_list_bc + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + or e + jr z, .exit + ld a, -1 +.loop_list_hl + inc a + call SearchCardInListInHL_Offset + jr c, .not_found +; found, set index bit + farcall CheckBit_wd606 + jr nz, .loop_list_hl + farcall SetBit_wd606 + jr .loop_list_bc + +.exit + scf + ccf + jr .done +.not_found + scf +.done + pop hl + pop de + pop bc + ret + +; for each card in bc, +; drop the first occurrence of it in hl and shift the rest +; set carry if not found +RemoveCardsInBCFromHL: + push af + push bc + push de + push hl +.loop_remove + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + inc bc + ld d, a + or e + jr z, .done + call RemoveCardFromListInHL + jr .loop_remove + +.done + pop hl + pop de + pop bc + pop af + ret + +; filters card list in hl +; based on rarity in c and value in b: +; $0: only pkmn +; $1: only trainers +; > $1: only energy +; input: +; b = filter option +; c = card rarity +; output: +; wDuelTempList = filtered list +; a = number of cards in filtered list +FilterCardListInHL: + push bc + push de + push hl + xor a + push af + ld a, LOW(wDuelTempList) + ld [wFilteredListPtr + 0], a + ld a, HIGH(wDuelTempList) + ld [wFilteredListPtr + 1], a +.loop_cards + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .done + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Rarity] + cp c + jr nz, .loop_cards + ld a, b + cp FILTER_ONLY_TRAINER + jr z, .only_trainers + jr nc, .only_energy +; only pkmn + ld a, [wLoadedCard1Type] + cp TYPE_ENERGY + jr nc, .loop_cards + jr .append_card +.only_trainers + ld a, [wLoadedCard1Type] + cp TYPE_TRAINER + jr nz, .loop_cards + jr .append_card +.only_energy + ld a, [wLoadedCard1Type] + cp TYPE_ENERGY + jr c, .loop_cards + cp TYPE_TRAINER + jr z, .loop_cards + jr .append_card + +.append_card +; writes this card ID to the next entry in the list + push hl + ld a, [wFilteredListPtr + 0] + ld l, a + ld a, [wFilteredListPtr + 1] + ld h, a + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, l + ld [wFilteredListPtr + 0], a + ld a, h + ld [wFilteredListPtr + 1], a + pop hl + pop af + inc a + push af + jr .loop_cards + +.done +; add terminating bytes + ld a, [wFilteredListPtr + 0] + ld l, a + ld a, [wFilteredListPtr + 1] + ld h, a + xor a + ld [hli], a + ld [hl], a + pop af + pop hl + pop de + pop bc + ret + +; shuffle card list in hl by running +; random card swapping algorithm 40 times +ShuffleCardsInHL: + push af + push bc + push de + push hl + call CountCardsInHL + or a + jr z, .done ; no cards in list + ld b, a + ld c, 40 + +.loop + push bc + push hl + ld e, l + ld d, h + +; pick 2 random cards from list +; then swap them + ld a, b + call Random + sla a + add_hl_a + ld a, b + call Random + sla a + add_de_a + ld b, [hl] + ld a, [de] + ld [hl], a + ld a, b + ld [de], a + inc hl + inc de + ld b, [hl] + ld a, [de] + ld [hl], a + ld a, b + ld [de], a + pop hl + pop bc + dec c + jr nz, .loop + +.done + pop hl + pop de + pop bc + pop af + ret + +; unreferenced +; countif( (card list in hl), (real card set constant in a) ) +CountCardsFromRealSetOfAInHL: + push bc + push de + push hl + ld b, a + ld c, 0 +.loop_cards + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .done + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1RealSet] + cp b + jr nz, .loop_cards + inc c + jr .loop_cards +.done + ld a, c + pop hl + pop de + pop bc + ret + +; countif( (card list in hl), (card set constant in a) ) +; often with a = PROMOTIONAL +CountCardsFromSetOfAInHL: + push bc + push de + push hl + ld b, a + ld c, 0 +.loop_cards + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + or e + jr z, .done + call LoadCardDataToBuffer1_FromCardID + ld a, [wLoadedCard1Set] + cp b + jr nz, .loop_cards + inc c + jr .loop_cards +.done + ld a, c + pop hl + pop de + pop bc + ret diff --git a/src/engine/duel/effect_functions1.asm b/src/engine/duel/effect_functions1.asm index 8f50246..fafc128 100644 --- a/src/engine/duel/effect_functions1.asm +++ b/src/engine/duel/effect_functions1.asm @@ -977,7 +977,7 @@ SetUsedPkmnPowerThisTurnFlag: ; - a = SUBSTATUS1_* constant ApplySubstatus1ToAttackingCardAndSetCountdown: call ApplySubstatus1ToAttackingCard - + ; set turn countdown to %01 ld a, DUELVARS_ARENA_CARD_SUBSTATUS3 get_turn_duelist_var @@ -2416,12 +2416,7 @@ CheckIfCardHasGrassOrRainbowEnergyAttached: push hl ld a, l call GetCardIDFromDeckIndex - ld a, d - cp b - jr nz, .not_equal - ld a, e - cp c -.not_equal + cp16 bc pop hl pop de jr z, .no_carry @@ -9832,7 +9827,7 @@ ReelIn_AddToHandEffect: cp $ff jr nz, .loop_add_cards ret - + .loop_add_cards ; copy from hTempList to wDuelTempList ld a, [hli] diff --git a/src/engine/glossary.asm b/src/engine/glossary.asm index 1a7b647..4287687 100644 --- a/src/engine/glossary.asm +++ b/src/engine/glossary.asm @@ -312,7 +312,7 @@ Glossary: and PAD_B jr z, .loop_wait_b_btn ld a, MENU_CANCEL - farcall PlayConfirmOrCancelSFX + farcall PlaySFXConfirmOrCancel ret MACRO explanation diff --git a/src/home/unsorted.asm b/src/home/unsorted.asm index 523e969..81c3f06 100644 --- a/src/home/unsorted.asm +++ b/src/home/unsorted.asm @@ -364,11 +364,7 @@ Func_3254:: inc hl .asm_3283 ld a, $07 - add l - ld l, a - jr nc, .asm_328a - inc h -.asm_328a + add_hl_a jr Func_3254 Func_328c:: diff --git a/src/macros/code.asm b/src/macros/code.asm index a8564e0..3f160a1 100644 --- a/src/macros/code.asm +++ b/src/macros/code.asm @@ -52,6 +52,50 @@ MACRO? cp16 : ENDM +MACRO? cp16_long + ld a, d + cp HIGH(\1) + jr c, :+ + jr nz, :+ + ld a, e + cp LOW(\1) +: +ENDM + +MACRO? cp16bc_long + ld a, b + cp HIGH(\1) + jr c, :+ + jr nz, :+ + ld a, c + cp LOW(\1) +: +ENDM + +MACRO? cp16_bytes + ld a, d + cp \1 + jr c, :+ + jr nz, :+ + ld a, e + cp \2 +: +ENDM + +MACRO? cp16bc_bytes + ld a, b + cp \1 + jr c, :+ + jr nz, :+ + ld a, c + cp \2 +: +ENDM + +MACRO? cpcoord + cp16_bytes \1, \2 +ENDM + MACRO? cphl inc hl ld a, [hld] @@ -61,3 +105,27 @@ MACRO? cphl cp LOW(\1) : ENDM + +MACRO? add_r16_r8 + add LOW(\1) + ld LOW(\1), \2 + jr nc, :+ + inc HIGH(\1) +: +ENDM + +MACRO? add_hl_a + add_r16_r8 hl, a +ENDM + +MACRO? add_de_a + add_r16_r8 de, a +ENDM + +MACRO? add_at_hl_a + add [hl] + ld [hli], a + jr nc, :+ + inc [hl] +: +ENDM diff --git a/src/text/text10.asm b/src/text/text10.asm index 3e70a20..e5a0818 100644 --- a/src/text/text10.asm +++ b/src/text/text10.asm @@ -259,27 +259,27 @@ Text0eeb: linefw "べんきょうすると よろしいですわ" done -Text0eec: +ItsAutoDeckMachine1Text: textfw "オートデッキマシン1号が ある!" done -Text0eed: +AutoDeckMachine1PromptText: textfw "デッキを つくりますか?" done -Text0eee: +ItsAutoDeckMachine2Text: textfw "オートデッキマシン2号が ある!" done -Text0eef: +AutoDeckMachine2PromptText: textfw "デッキを つくりますか?" done -Text0ef0: +ItsDeckSaveMachineText: textfw "デッキきろくマシンが ある!" done -Text0ef1: +DeckSaveMachinePromptText: textfw "デッキきろくマシンを つかいますか?" done diff --git a/src/text/text11.asm b/src/text/text11.asm index 2306b10..34f43a1 100644 --- a/src/text/text11.asm +++ b/src/text/text11.asm @@ -811,7 +811,7 @@ Text1016: linefw "ポケモンカードの ゲットあるのみ!" done -Text1017: +GrandMasterCupClerkWelcomeText: textfw "ただいま グランドマスター杯を" linefw "かいさいしています!" linefw "トーナメント戦を 勝ちぬいて" @@ -820,42 +820,42 @@ Text1017: linefw "ごうか賞品を プレゼント!" done -Text1018: +GrandMasterCupClerkPrizesText: textfw "「」" linefw "「」" done -Text1019: +GrandMasterCupClerkInviteText: textfw "この 4枚のプロモーションカードの" linefw "なかから 2枚を プレゼント!" linefw "さん さんかなさいますか" linefw "グランドマスター杯に?" done -Text101a: +GrandMasterCupClerkPlayerLostText: textfw "ざんねんでしたね・・・" linefw "さん" linefw "つぎの グランドマスター杯は" linefw "がんばって くださいね" done -Text101b: +GrandMasterCupClerkPlayerWonGrandFinalText: textfw "おめでとうございます" linefw "さん" linefw "つぎの グランドマスター杯も" linefw "また ゆうしょう してくださいね" done -Text101c: +GrandMasterCupClerkEnterPromptText: textfw "グランドマスター杯にさんかしますか?" done -Text101d: +GrandMasterCupClerkEnterAcceptedText: textfw "それでは" linefw "ファイナルホールへ どうぞ!" done -Text101e: +GrandMasterCupClerkEnterDeclinedText: textfw "そうですか ざんねんですね" linefw "どうぞ また おこしください" done diff --git a/src/text/text4.asm b/src/text/text4.asm index 212e6b4..85ecae1 100644 --- a/src/text/text4.asm +++ b/src/text/text4.asm @@ -2385,67 +2385,67 @@ MainMenuNewGameInsteadOfContinueDeletedText: textfw "すべてのデータをさくじょしました" done -PrologueScene1Line1Text: +ProloguePlayerRecapLine1Text: textfw "は ポケモンカードを" linefw "あつめるのが だいすきです" done -PrologueScene1Line2Text: +ProloguePlayerRecapLine2Text: textfw "は このしまにつたわる" linefw "伝説のポケモンカードを ゲットのため" done -PrologueScene1Line3Text: +ProloguePlayerRecapLine3Text: textfw "8にんの クラブマスターと" linefw "伝説のポケモンカードを まもる" done -PrologueScene1Line4Text: +ProloguePlayerRecapLine4Text: textfw "4にんの グランドマスターに" linefw "ちょうせんしたのでした・・・" done -PrologueScene1Line5Text: +ProloguePlayerRecapLine5Text: textfw "そして ついには!" linefw "グランドマスターを たおして" done -PrologueScene1Line6Text: +ProloguePlayerRecapLine6Text: textfw "4枚の 伝説のポケモンカードを" linefw "そのてに ゲットしたのです" done -PrologueScene1Line7Text: +ProloguePlayerRecapLine7Text: textfw "そんな ある日・・・" linefw "じけんは おこりました!" done -PrologueScene2Line1Text: +PrologueGRInvasionLine1Text: textfw "とつぜん" linefw "なぞのぐん団が おそってきたのです!" done -PrologueScene2Line2Text: +PrologueGRInvasionLine2Text: textfw "その名を 「GR団」!" linefw "「グレートロケット団」と いいました" done -PrologueScene2Line3Text: +PrologueGRInvasionLine3Text: textfw "「GR団」は クラブを こうげき!" linefw "カードを うばっていったのです!" done -PrologueScene3Line1Text: +ProloguePlayerToLabLine1Text: textfw "もっていたカードを GR団に" linefw "うばわれた は" done -PrologueScene3Line2Text: +ProloguePlayerToLabLine2Text: textfw "このことを しらせるため" linefw "ポケモンカードの 研究者である" done -PrologueScene3Line3Text: +ProloguePlayerToLabLine3Text: textfw "Dr.オーヤマのいる 研究所へ" linefw "むかったのでした・・・" done diff --git a/src/text/text_offsets.asm b/src/text/text_offsets.asm index ee0d70a..fa83306 100644 --- a/src/text/text_offsets.asm +++ b/src/text/text_offsets.asm @@ -1896,19 +1896,19 @@ TextOffsets:: textpointer MainMenuNewGameInsteadOfContinueWarning2Text ; 0x075f textpointer MainMenuNewGameInsteadOfContinueConfirmPromptText ; 0x0760 textpointer MainMenuNewGameInsteadOfContinueDeletedText ; 0x0761 - textpointer PrologueScene1Line1Text ; 0x0762 - textpointer PrologueScene1Line2Text ; 0x0763 - textpointer PrologueScene1Line3Text ; 0x0764 - textpointer PrologueScene1Line4Text ; 0x0765 - textpointer PrologueScene1Line5Text ; 0x0766 - textpointer PrologueScene1Line6Text ; 0x0767 - textpointer PrologueScene1Line7Text ; 0x0768 - textpointer PrologueScene2Line1Text ; 0x0769 - textpointer PrologueScene2Line2Text ; 0x076a - textpointer PrologueScene2Line3Text ; 0x076b - textpointer PrologueScene3Line1Text ; 0x076c - textpointer PrologueScene3Line2Text ; 0x076d - textpointer PrologueScene3Line3Text ; 0x076e + textpointer ProloguePlayerRecapLine1Text ; 0x0762 + textpointer ProloguePlayerRecapLine2Text ; 0x0763 + textpointer ProloguePlayerRecapLine3Text ; 0x0764 + textpointer ProloguePlayerRecapLine4Text ; 0x0765 + textpointer ProloguePlayerRecapLine5Text ; 0x0766 + textpointer ProloguePlayerRecapLine6Text ; 0x0767 + textpointer ProloguePlayerRecapLine7Text ; 0x0768 + textpointer PrologueGRInvasionLine1Text ; 0x0769 + textpointer PrologueGRInvasionLine2Text ; 0x076a + textpointer PrologueGRInvasionLine3Text ; 0x076b + textpointer ProloguePlayerToLabLine1Text ; 0x076c + textpointer ProloguePlayerToLabLine2Text ; 0x076d + textpointer ProloguePlayerToLabLine3Text ; 0x076e textpointer IntroductionText ; 0x076f textpointer ConfigTitleText_2 ; 0x0770 textpointer ConfigFrameColorText ; 0x0771 @@ -2080,417 +2080,417 @@ TextOffsets:: textpointer DebugHoldGrandMasterCupText ; 0x0817 textpointer DebugGet10CardsEachText ; 0x0818 textpointer DebugGet10EnergyCardsEachText ; 0x0819 - textpointer Text081a ; 0x081a - textpointer Text081b ; 0x081b - textpointer Text081c ; 0x081c - textpointer Text081d ; 0x081d - textpointer Text081e ; 0x081e - textpointer Text081f ; 0x081f - textpointer Text0820 ; 0x0820 - textpointer Text0821 ; 0x0821 - textpointer Text0822 ; 0x0822 - textpointer Text0823 ; 0x0823 - textpointer Text0824 ; 0x0824 - textpointer Text0825 ; 0x0825 - textpointer Text0826 ; 0x0826 - textpointer Text0827 ; 0x0827 - textpointer Text0828 ; 0x0828 - textpointer Text0829 ; 0x0829 - textpointer Text082a ; 0x082a - textpointer Text082b ; 0x082b - textpointer Text082c ; 0x082c - textpointer Text082d ; 0x082d - textpointer Text082e ; 0x082e - textpointer Text082f ; 0x082f - textpointer Text0830 ; 0x0830 - textpointer Text0831 ; 0x0831 - textpointer Text0832 ; 0x0832 - textpointer Text0833 ; 0x0833 - textpointer Text0834 ; 0x0834 - textpointer Text0835 ; 0x0835 - textpointer Text0836 ; 0x0836 - textpointer Text0837 ; 0x0837 - textpointer Text0838 ; 0x0838 - textpointer Text0839 ; 0x0839 - textpointer Text083a ; 0x083a - textpointer Text083b ; 0x083b - textpointer Text083c ; 0x083c - textpointer Text083d ; 0x083d - textpointer Text083e ; 0x083e - textpointer Text083f ; 0x083f - textpointer Text0840 ; 0x0840 - textpointer Text0841 ; 0x0841 - textpointer Text0842 ; 0x0842 - textpointer Text0843 ; 0x0843 - textpointer Text0844 ; 0x0844 - textpointer Text0845 ; 0x0845 - textpointer Text0846 ; 0x0846 - textpointer Text0847 ; 0x0847 - textpointer Text0848 ; 0x0848 - textpointer Text0849 ; 0x0849 - textpointer Text084a ; 0x084a - textpointer Text084b ; 0x084b - textpointer Text084c ; 0x084c - textpointer Text084d ; 0x084d - textpointer Text084e ; 0x084e - textpointer Text084f ; 0x084f - textpointer Text0850 ; 0x0850 - textpointer Text0851 ; 0x0851 - textpointer Text0852 ; 0x0852 - textpointer Text0853 ; 0x0853 - textpointer Text0854 ; 0x0854 - textpointer Text0855 ; 0x0855 - textpointer Text0856 ; 0x0856 - textpointer Text0857 ; 0x0857 - textpointer Text0858 ; 0x0858 - textpointer Text0859 ; 0x0859 - textpointer Text085a ; 0x085a - textpointer Text085b ; 0x085b - textpointer Text085c ; 0x085c - textpointer Text085d ; 0x085d - textpointer Text085e ; 0x085e - textpointer Text085f ; 0x085f - textpointer Text0860 ; 0x0860 - textpointer Text0861 ; 0x0861 - textpointer Text0862 ; 0x0862 - textpointer Text0863 ; 0x0863 - textpointer Text0864 ; 0x0864 - textpointer Text0865 ; 0x0865 - textpointer Text0866 ; 0x0866 - textpointer Text0867 ; 0x0867 - textpointer Text0868 ; 0x0868 - textpointer Text0869 ; 0x0869 - textpointer Text086a ; 0x086a - textpointer Text086b ; 0x086b - textpointer Text086c ; 0x086c - textpointer Text086d ; 0x086d - textpointer Text086e ; 0x086e - textpointer Text086f ; 0x086f - textpointer Text0870 ; 0x0870 - textpointer Text0871 ; 0x0871 - textpointer Text0872 ; 0x0872 - textpointer Text0873 ; 0x0873 - textpointer Text0874 ; 0x0874 - textpointer Text0875 ; 0x0875 - textpointer Text0876 ; 0x0876 - textpointer Text0877 ; 0x0877 - textpointer Text0878 ; 0x0878 - textpointer Text0879 ; 0x0879 - textpointer Text087a ; 0x087a - textpointer Text087b ; 0x087b - textpointer Text087c ; 0x087c - textpointer Text087d ; 0x087d - textpointer Text087e ; 0x087e - textpointer Text087f ; 0x087f - textpointer Text0880 ; 0x0880 - textpointer Text0881 ; 0x0881 - textpointer Text0882 ; 0x0882 - textpointer Text0883 ; 0x0883 - textpointer Text0884 ; 0x0884 - textpointer Text0885 ; 0x0885 - textpointer Text0886 ; 0x0886 - textpointer Text0887 ; 0x0887 - textpointer Text0888 ; 0x0888 - textpointer Text0889 ; 0x0889 - textpointer Text088a ; 0x088a - textpointer Text088b ; 0x088b - textpointer Text088c ; 0x088c - textpointer Text088d ; 0x088d - textpointer Text088e ; 0x088e - textpointer Text088f ; 0x088f - textpointer Text0890 ; 0x0890 - textpointer Text0891 ; 0x0891 - textpointer Text0892 ; 0x0892 - textpointer Text0893 ; 0x0893 - textpointer Text0894 ; 0x0894 - textpointer Text0895 ; 0x0895 - textpointer Text0896 ; 0x0896 - textpointer Text0897 ; 0x0897 - textpointer Text0898 ; 0x0898 - textpointer Text0899 ; 0x0899 - textpointer Text089a ; 0x089a - textpointer Text089b ; 0x089b - textpointer Text089c ; 0x089c - textpointer Text089d ; 0x089d - textpointer Text089e ; 0x089e - textpointer Text089f ; 0x089f - textpointer Text08a0 ; 0x08a0 - textpointer Text08a1 ; 0x08a1 - textpointer Text08a2 ; 0x08a2 - textpointer Text08a3 ; 0x08a3 - textpointer Text08a4 ; 0x08a4 - textpointer Text08a5 ; 0x08a5 - textpointer Text08a6 ; 0x08a6 - textpointer Text08a7 ; 0x08a7 - textpointer Text08a8 ; 0x08a8 - textpointer Text08a9 ; 0x08a9 - textpointer Text08aa ; 0x08aa - textpointer Text08ab ; 0x08ab - textpointer Text08ac ; 0x08ac - textpointer Text08ad ; 0x08ad - textpointer Text08ae ; 0x08ae - textpointer Text08af ; 0x08af - textpointer Text08b0 ; 0x08b0 - textpointer Text08b1 ; 0x08b1 - textpointer Text08b2 ; 0x08b2 - textpointer Text08b3 ; 0x08b3 - textpointer Text08b4 ; 0x08b4 - textpointer Text08b5 ; 0x08b5 - textpointer Text08b6 ; 0x08b6 - textpointer Text08b7 ; 0x08b7 - textpointer Text08b8 ; 0x08b8 - textpointer Text08b9 ; 0x08b9 - textpointer Text08ba ; 0x08ba - textpointer Text08bb ; 0x08bb - textpointer Text08bc ; 0x08bc - textpointer Text08bd ; 0x08bd - textpointer Text08be ; 0x08be - textpointer Text08bf ; 0x08bf - textpointer Text08c0 ; 0x08c0 - textpointer Text08c1 ; 0x08c1 - textpointer Text08c2 ; 0x08c2 - textpointer Text08c3 ; 0x08c3 - textpointer Text08c4 ; 0x08c4 - textpointer Text08c5 ; 0x08c5 - textpointer Text08c6 ; 0x08c6 - textpointer Text08c7 ; 0x08c7 - textpointer Text08c8 ; 0x08c8 - textpointer Text08c9 ; 0x08c9 - textpointer Text08ca ; 0x08ca - textpointer Text08cb ; 0x08cb - textpointer Text08cc ; 0x08cc - textpointer Text08cd ; 0x08cd - textpointer Text08ce ; 0x08ce - textpointer Text08cf ; 0x08cf - textpointer Text08d0 ; 0x08d0 - textpointer Text08d1 ; 0x08d1 - textpointer Text08d2 ; 0x08d2 - textpointer Text08d3 ; 0x08d3 - textpointer Text08d4 ; 0x08d4 - textpointer Text08d5 ; 0x08d5 - textpointer Text08d6 ; 0x08d6 - textpointer Text08d7 ; 0x08d7 - textpointer Text08d8 ; 0x08d8 - textpointer Text08d9 ; 0x08d9 - textpointer Text08da ; 0x08da - textpointer Text08db ; 0x08db - textpointer Text08dc ; 0x08dc - textpointer Text08dd ; 0x08dd - textpointer Text08de ; 0x08de - textpointer Text08df ; 0x08df - textpointer Text08e0 ; 0x08e0 - textpointer Text08e1 ; 0x08e1 - textpointer Text08e2 ; 0x08e2 - textpointer Text08e3 ; 0x08e3 - textpointer Text08e4 ; 0x08e4 - textpointer Text08e5 ; 0x08e5 - textpointer Text08e6 ; 0x08e6 - textpointer Text08e7 ; 0x08e7 - textpointer Text08e8 ; 0x08e8 - textpointer Text08e9 ; 0x08e9 - textpointer Text08ea ; 0x08ea - textpointer Text08eb ; 0x08eb - textpointer Text08ec ; 0x08ec - textpointer Text08ed ; 0x08ed - textpointer Text08ee ; 0x08ee - textpointer Text08ef ; 0x08ef - textpointer Text08f0 ; 0x08f0 - textpointer Text08f1 ; 0x08f1 - textpointer Text08f2 ; 0x08f2 - textpointer Text08f3 ; 0x08f3 - textpointer Text08f4 ; 0x08f4 - textpointer Text08f5 ; 0x08f5 - textpointer Text08f6 ; 0x08f6 - textpointer Text08f7 ; 0x08f7 - textpointer Text08f8 ; 0x08f8 - textpointer Text08f9 ; 0x08f9 - textpointer Text08fa ; 0x08fa - textpointer Text08fb ; 0x08fb - textpointer Text08fc ; 0x08fc - textpointer Text08fd ; 0x08fd - textpointer Text08fe ; 0x08fe - textpointer Text08ff ; 0x08ff - textpointer Text0900 ; 0x0900 - textpointer Text0901 ; 0x0901 - textpointer Text0902 ; 0x0902 - textpointer Text0903 ; 0x0903 - textpointer Text0904 ; 0x0904 - textpointer Text0905 ; 0x0905 - textpointer Text0906 ; 0x0906 - textpointer Text0907 ; 0x0907 - textpointer Text0908 ; 0x0908 - textpointer Text0909 ; 0x0909 - textpointer Text090a ; 0x090a - textpointer Text090b ; 0x090b - textpointer Text090c ; 0x090c - textpointer Text090d ; 0x090d - textpointer Text090e ; 0x090e - textpointer Text090f ; 0x090f - textpointer Text0910 ; 0x0910 - textpointer Text0911 ; 0x0911 - textpointer Text0912 ; 0x0912 - textpointer Text0913 ; 0x0913 - textpointer Text0914 ; 0x0914 - textpointer Text0915 ; 0x0915 - textpointer Text0916 ; 0x0916 - textpointer Text0917 ; 0x0917 - textpointer Text0918 ; 0x0918 - textpointer Text0919 ; 0x0919 - textpointer Text091a ; 0x091a - textpointer Text091b ; 0x091b - textpointer Text091c ; 0x091c - textpointer Text091d ; 0x091d - textpointer Text091e ; 0x091e - textpointer Text091f ; 0x091f - textpointer Text0920 ; 0x0920 - textpointer Text0921 ; 0x0921 - textpointer Text0922 ; 0x0922 - textpointer Text0923 ; 0x0923 - textpointer Text0924 ; 0x0924 - textpointer Text0925 ; 0x0925 - textpointer Text0926 ; 0x0926 - textpointer Text0927 ; 0x0927 - textpointer Text0928 ; 0x0928 - textpointer Text0929 ; 0x0929 - textpointer Text092a ; 0x092a - textpointer Text092b ; 0x092b - textpointer Text092c ; 0x092c - textpointer Text092d ; 0x092d - textpointer Text092e ; 0x092e - textpointer Text092f ; 0x092f - textpointer Text0930 ; 0x0930 - textpointer Text0931 ; 0x0931 - textpointer Text0932 ; 0x0932 - textpointer Text0933 ; 0x0933 - textpointer Text0934 ; 0x0934 - textpointer Text0935 ; 0x0935 - textpointer Text0936 ; 0x0936 - textpointer Text0937 ; 0x0937 - textpointer Text0938 ; 0x0938 - textpointer Text0939 ; 0x0939 - textpointer Text093a ; 0x093a - textpointer Text093b ; 0x093b - textpointer Text093c ; 0x093c - textpointer Text093d ; 0x093d - textpointer Text093e ; 0x093e - textpointer Text093f ; 0x093f + textpointer Text081a ; 0x081a + textpointer Text081b ; 0x081b + textpointer Text081c ; 0x081c + textpointer Text081d ; 0x081d + textpointer Text081e ; 0x081e + textpointer Text081f ; 0x081f + textpointer Text0820 ; 0x0820 + textpointer Text0821 ; 0x0821 + textpointer Text0822 ; 0x0822 + textpointer Text0823 ; 0x0823 + textpointer Text0824 ; 0x0824 + textpointer Text0825 ; 0x0825 + textpointer Text0826 ; 0x0826 + textpointer Text0827 ; 0x0827 + textpointer Text0828 ; 0x0828 + textpointer Text0829 ; 0x0829 + textpointer Text082a ; 0x082a + textpointer Text082b ; 0x082b + textpointer Text082c ; 0x082c + textpointer Text082d ; 0x082d + textpointer Text082e ; 0x082e + textpointer Text082f ; 0x082f + textpointer Text0830 ; 0x0830 + textpointer Text0831 ; 0x0831 + textpointer Text0832 ; 0x0832 + textpointer Text0833 ; 0x0833 + textpointer Text0834 ; 0x0834 + textpointer Text0835 ; 0x0835 + textpointer Text0836 ; 0x0836 + textpointer Text0837 ; 0x0837 + textpointer Text0838 ; 0x0838 + textpointer Text0839 ; 0x0839 + textpointer Text083a ; 0x083a + textpointer Text083b ; 0x083b + textpointer Text083c ; 0x083c + textpointer Text083d ; 0x083d + textpointer Text083e ; 0x083e + textpointer Text083f ; 0x083f + textpointer Text0840 ; 0x0840 + textpointer Text0841 ; 0x0841 + textpointer Text0842 ; 0x0842 + textpointer Text0843 ; 0x0843 + textpointer Text0844 ; 0x0844 + textpointer Text0845 ; 0x0845 + textpointer Text0846 ; 0x0846 + textpointer Text0847 ; 0x0847 + textpointer Text0848 ; 0x0848 + textpointer Text0849 ; 0x0849 + textpointer Text084a ; 0x084a + textpointer Text084b ; 0x084b + textpointer Text084c ; 0x084c + textpointer Text084d ; 0x084d + textpointer Text084e ; 0x084e + textpointer Text084f ; 0x084f + textpointer Text0850 ; 0x0850 + textpointer Text0851 ; 0x0851 + textpointer Text0852 ; 0x0852 + textpointer Text0853 ; 0x0853 + textpointer Text0854 ; 0x0854 + textpointer Text0855 ; 0x0855 + textpointer Text0856 ; 0x0856 + textpointer Text0857 ; 0x0857 + textpointer Text0858 ; 0x0858 + textpointer Text0859 ; 0x0859 + textpointer Text085a ; 0x085a + textpointer Text085b ; 0x085b + textpointer Text085c ; 0x085c + textpointer Text085d ; 0x085d + textpointer Text085e ; 0x085e + textpointer Text085f ; 0x085f + textpointer Text0860 ; 0x0860 + textpointer Text0861 ; 0x0861 + textpointer Text0862 ; 0x0862 + textpointer Text0863 ; 0x0863 + textpointer Text0864 ; 0x0864 + textpointer Text0865 ; 0x0865 + textpointer Text0866 ; 0x0866 + textpointer Text0867 ; 0x0867 + textpointer Text0868 ; 0x0868 + textpointer Text0869 ; 0x0869 + textpointer Text086a ; 0x086a + textpointer Text086b ; 0x086b + textpointer Text086c ; 0x086c + textpointer Text086d ; 0x086d + textpointer Text086e ; 0x086e + textpointer Text086f ; 0x086f + textpointer Text0870 ; 0x0870 + textpointer Text0871 ; 0x0871 + textpointer Text0872 ; 0x0872 + textpointer Text0873 ; 0x0873 + textpointer Text0874 ; 0x0874 + textpointer Text0875 ; 0x0875 + textpointer Text0876 ; 0x0876 + textpointer Text0877 ; 0x0877 + textpointer Text0878 ; 0x0878 + textpointer Text0879 ; 0x0879 + textpointer Text087a ; 0x087a + textpointer Text087b ; 0x087b + textpointer Text087c ; 0x087c + textpointer Text087d ; 0x087d + textpointer Text087e ; 0x087e + textpointer Text087f ; 0x087f + textpointer Text0880 ; 0x0880 + textpointer Text0881 ; 0x0881 + textpointer Text0882 ; 0x0882 + textpointer Text0883 ; 0x0883 + textpointer Text0884 ; 0x0884 + textpointer Text0885 ; 0x0885 + textpointer Text0886 ; 0x0886 + textpointer Text0887 ; 0x0887 + textpointer Text0888 ; 0x0888 + textpointer Text0889 ; 0x0889 + textpointer Text088a ; 0x088a + textpointer Text088b ; 0x088b + textpointer Text088c ; 0x088c + textpointer Text088d ; 0x088d + textpointer Text088e ; 0x088e + textpointer Text088f ; 0x088f + textpointer Text0890 ; 0x0890 + textpointer Text0891 ; 0x0891 + textpointer Text0892 ; 0x0892 + textpointer Text0893 ; 0x0893 + textpointer Text0894 ; 0x0894 + textpointer Text0895 ; 0x0895 + textpointer Text0896 ; 0x0896 + textpointer Text0897 ; 0x0897 + textpointer Text0898 ; 0x0898 + textpointer Text0899 ; 0x0899 + textpointer Text089a ; 0x089a + textpointer Text089b ; 0x089b + textpointer Text089c ; 0x089c + textpointer Text089d ; 0x089d + textpointer Text089e ; 0x089e + textpointer Text089f ; 0x089f + textpointer Text08a0 ; 0x08a0 + textpointer Text08a1 ; 0x08a1 + textpointer Text08a2 ; 0x08a2 + textpointer Text08a3 ; 0x08a3 + textpointer Text08a4 ; 0x08a4 + textpointer Text08a5 ; 0x08a5 + textpointer Text08a6 ; 0x08a6 + textpointer Text08a7 ; 0x08a7 + textpointer Text08a8 ; 0x08a8 + textpointer Text08a9 ; 0x08a9 + textpointer Text08aa ; 0x08aa + textpointer Text08ab ; 0x08ab + textpointer Text08ac ; 0x08ac + textpointer Text08ad ; 0x08ad + textpointer Text08ae ; 0x08ae + textpointer Text08af ; 0x08af + textpointer Text08b0 ; 0x08b0 + textpointer Text08b1 ; 0x08b1 + textpointer Text08b2 ; 0x08b2 + textpointer Text08b3 ; 0x08b3 + textpointer Text08b4 ; 0x08b4 + textpointer Text08b5 ; 0x08b5 + textpointer Text08b6 ; 0x08b6 + textpointer Text08b7 ; 0x08b7 + textpointer Text08b8 ; 0x08b8 + textpointer Text08b9 ; 0x08b9 + textpointer Text08ba ; 0x08ba + textpointer Text08bb ; 0x08bb + textpointer Text08bc ; 0x08bc + textpointer Text08bd ; 0x08bd + textpointer Text08be ; 0x08be + textpointer Text08bf ; 0x08bf + textpointer Text08c0 ; 0x08c0 + textpointer Text08c1 ; 0x08c1 + textpointer Text08c2 ; 0x08c2 + textpointer Text08c3 ; 0x08c3 + textpointer Text08c4 ; 0x08c4 + textpointer Text08c5 ; 0x08c5 + textpointer Text08c6 ; 0x08c6 + textpointer Text08c7 ; 0x08c7 + textpointer Text08c8 ; 0x08c8 + textpointer Text08c9 ; 0x08c9 + textpointer Text08ca ; 0x08ca + textpointer Text08cb ; 0x08cb + textpointer Text08cc ; 0x08cc + textpointer Text08cd ; 0x08cd + textpointer Text08ce ; 0x08ce + textpointer Text08cf ; 0x08cf + textpointer Text08d0 ; 0x08d0 + textpointer Text08d1 ; 0x08d1 + textpointer Text08d2 ; 0x08d2 + textpointer Text08d3 ; 0x08d3 + textpointer Text08d4 ; 0x08d4 + textpointer Text08d5 ; 0x08d5 + textpointer Text08d6 ; 0x08d6 + textpointer Text08d7 ; 0x08d7 + textpointer Text08d8 ; 0x08d8 + textpointer Text08d9 ; 0x08d9 + textpointer Text08da ; 0x08da + textpointer Text08db ; 0x08db + textpointer Text08dc ; 0x08dc + textpointer Text08dd ; 0x08dd + textpointer Text08de ; 0x08de + textpointer Text08df ; 0x08df + textpointer Text08e0 ; 0x08e0 + textpointer Text08e1 ; 0x08e1 + textpointer Text08e2 ; 0x08e2 + textpointer Text08e3 ; 0x08e3 + textpointer Text08e4 ; 0x08e4 + textpointer Text08e5 ; 0x08e5 + textpointer Text08e6 ; 0x08e6 + textpointer Text08e7 ; 0x08e7 + textpointer Text08e8 ; 0x08e8 + textpointer Text08e9 ; 0x08e9 + textpointer Text08ea ; 0x08ea + textpointer Text08eb ; 0x08eb + textpointer Text08ec ; 0x08ec + textpointer Text08ed ; 0x08ed + textpointer Text08ee ; 0x08ee + textpointer Text08ef ; 0x08ef + textpointer Text08f0 ; 0x08f0 + textpointer Text08f1 ; 0x08f1 + textpointer Text08f2 ; 0x08f2 + textpointer Text08f3 ; 0x08f3 + textpointer Text08f4 ; 0x08f4 + textpointer Text08f5 ; 0x08f5 + textpointer Text08f6 ; 0x08f6 + textpointer Text08f7 ; 0x08f7 + textpointer Text08f8 ; 0x08f8 + textpointer Text08f9 ; 0x08f9 + textpointer Text08fa ; 0x08fa + textpointer Text08fb ; 0x08fb + textpointer Text08fc ; 0x08fc + textpointer Text08fd ; 0x08fd + textpointer Text08fe ; 0x08fe + textpointer Text08ff ; 0x08ff + textpointer Text0900 ; 0x0900 + textpointer Text0901 ; 0x0901 + textpointer Text0902 ; 0x0902 + textpointer Text0903 ; 0x0903 + textpointer Text0904 ; 0x0904 + textpointer Text0905 ; 0x0905 + textpointer Text0906 ; 0x0906 + textpointer Text0907 ; 0x0907 + textpointer Text0908 ; 0x0908 + textpointer Text0909 ; 0x0909 + textpointer Text090a ; 0x090a + textpointer Text090b ; 0x090b + textpointer Text090c ; 0x090c + textpointer Text090d ; 0x090d + textpointer Text090e ; 0x090e + textpointer Text090f ; 0x090f + textpointer Text0910 ; 0x0910 + textpointer Text0911 ; 0x0911 + textpointer Text0912 ; 0x0912 + textpointer Text0913 ; 0x0913 + textpointer Text0914 ; 0x0914 + textpointer Text0915 ; 0x0915 + textpointer Text0916 ; 0x0916 + textpointer Text0917 ; 0x0917 + textpointer Text0918 ; 0x0918 + textpointer Text0919 ; 0x0919 + textpointer Text091a ; 0x091a + textpointer Text091b ; 0x091b + textpointer Text091c ; 0x091c + textpointer Text091d ; 0x091d + textpointer Text091e ; 0x091e + textpointer Text091f ; 0x091f + textpointer Text0920 ; 0x0920 + textpointer Text0921 ; 0x0921 + textpointer Text0922 ; 0x0922 + textpointer Text0923 ; 0x0923 + textpointer Text0924 ; 0x0924 + textpointer Text0925 ; 0x0925 + textpointer Text0926 ; 0x0926 + textpointer Text0927 ; 0x0927 + textpointer Text0928 ; 0x0928 + textpointer Text0929 ; 0x0929 + textpointer Text092a ; 0x092a + textpointer Text092b ; 0x092b + textpointer Text092c ; 0x092c + textpointer Text092d ; 0x092d + textpointer Text092e ; 0x092e + textpointer Text092f ; 0x092f + textpointer Text0930 ; 0x0930 + textpointer Text0931 ; 0x0931 + textpointer Text0932 ; 0x0932 + textpointer Text0933 ; 0x0933 + textpointer Text0934 ; 0x0934 + textpointer Text0935 ; 0x0935 + textpointer Text0936 ; 0x0936 + textpointer Text0937 ; 0x0937 + textpointer Text0938 ; 0x0938 + textpointer Text0939 ; 0x0939 + textpointer Text093a ; 0x093a + textpointer Text093b ; 0x093b + textpointer Text093c ; 0x093c + textpointer Text093d ; 0x093d + textpointer Text093e ; 0x093e + textpointer Text093f ; 0x093f textpointer ChangeDeckPromptText ; 0x0940 - textpointer Text0941 ; 0x0941 - textpointer Text0942 ; 0x0942 - textpointer Text0943 ; 0x0943 - textpointer Text0944 ; 0x0944 - textpointer Text0945 ; 0x0945 - textpointer Text0946 ; 0x0946 - textpointer Text0947 ; 0x0947 - textpointer Text0948 ; 0x0948 - textpointer Text0949 ; 0x0949 - textpointer Text094a ; 0x094a - textpointer Text094b ; 0x094b - textpointer Text094c ; 0x094c - textpointer Text094d ; 0x094d - textpointer Text094e ; 0x094e - textpointer Text094f ; 0x094f - textpointer Text0950 ; 0x0950 - textpointer Text0951 ; 0x0951 - textpointer Text0952 ; 0x0952 - textpointer Text0953 ; 0x0953 - textpointer Text0954 ; 0x0954 - textpointer Text0955 ; 0x0955 - textpointer Text0956 ; 0x0956 - textpointer Text0957 ; 0x0957 - textpointer Text0958 ; 0x0958 - textpointer Text0959 ; 0x0959 - textpointer Text095a ; 0x095a - textpointer Text095b ; 0x095b - textpointer Text095c ; 0x095c - textpointer Text095d ; 0x095d - textpointer Text095e ; 0x095e - textpointer Text095f ; 0x095f - textpointer Text0960 ; 0x0960 - textpointer Text0961 ; 0x0961 - textpointer Text0962 ; 0x0962 - textpointer Text0963 ; 0x0963 - textpointer Text0964 ; 0x0964 - textpointer Text0965 ; 0x0965 - textpointer Text0966 ; 0x0966 - textpointer Text0967 ; 0x0967 - textpointer Text0968 ; 0x0968 - textpointer Text0969 ; 0x0969 - textpointer Text096a ; 0x096a - textpointer Text096b ; 0x096b - textpointer Text096c ; 0x096c - textpointer Text096d ; 0x096d - textpointer Text096e ; 0x096e - textpointer Text096f ; 0x096f - textpointer Text0970 ; 0x0970 - textpointer Text0971 ; 0x0971 - textpointer Text0972 ; 0x0972 - textpointer Text0973 ; 0x0973 - textpointer Text0974 ; 0x0974 - textpointer Text0975 ; 0x0975 - textpointer Text0976 ; 0x0976 - textpointer Text0977 ; 0x0977 - textpointer Text0978 ; 0x0978 - textpointer Text0979 ; 0x0979 - textpointer Text097a ; 0x097a - textpointer Text097b ; 0x097b - textpointer Text097c ; 0x097c - textpointer Text097d ; 0x097d - textpointer Text097e ; 0x097e - textpointer Text097f ; 0x097f - textpointer Text0980 ; 0x0980 - textpointer Text0981 ; 0x0981 - textpointer Text0982 ; 0x0982 - textpointer Text0983 ; 0x0983 - textpointer Text0984 ; 0x0984 - textpointer Text0985 ; 0x0985 - textpointer Text0986 ; 0x0986 - textpointer Text0987 ; 0x0987 - textpointer Text0988 ; 0x0988 - textpointer Text0989 ; 0x0989 - textpointer Text098a ; 0x098a - textpointer Text098b ; 0x098b - textpointer Text098c ; 0x098c - textpointer Text098d ; 0x098d - textpointer Text098e ; 0x098e - textpointer Text098f ; 0x098f - textpointer Text0990 ; 0x0990 - textpointer Text0991 ; 0x0991 - textpointer Text0992 ; 0x0992 - textpointer Text0993 ; 0x0993 - textpointer Text0994 ; 0x0994 - textpointer Text0995 ; 0x0995 - textpointer Text0996 ; 0x0996 - textpointer Text0997 ; 0x0997 - textpointer Text0998 ; 0x0998 - textpointer Text0999 ; 0x0999 - textpointer Text099a ; 0x099a - textpointer Text099b ; 0x099b - textpointer Text099c ; 0x099c - textpointer Text099d ; 0x099d - textpointer Text099e ; 0x099e - textpointer Text099f ; 0x099f - textpointer Text09a0 ; 0x09a0 - textpointer Text09a1 ; 0x09a1 - textpointer Text09a2 ; 0x09a2 - textpointer Text09a3 ; 0x09a3 - textpointer Text09a4 ; 0x09a4 - textpointer Text09a5 ; 0x09a5 - textpointer Text09a6 ; 0x09a6 - textpointer Text09a7 ; 0x09a7 - textpointer Text09a8 ; 0x09a8 - textpointer Text09a9 ; 0x09a9 - textpointer Text09aa ; 0x09aa - textpointer Text09ab ; 0x09ab - textpointer Text09ac ; 0x09ac - textpointer Text09ad ; 0x09ad - textpointer Text09ae ; 0x09ae - textpointer Text09af ; 0x09af - textpointer Text09b0 ; 0x09b0 - textpointer Text09b1 ; 0x09b1 - textpointer Text09b2 ; 0x09b2 - textpointer Text09b3 ; 0x09b3 - textpointer Text09b4 ; 0x09b4 + textpointer Text0941 ; 0x0941 + textpointer Text0942 ; 0x0942 + textpointer Text0943 ; 0x0943 + textpointer Text0944 ; 0x0944 + textpointer Text0945 ; 0x0945 + textpointer Text0946 ; 0x0946 + textpointer Text0947 ; 0x0947 + textpointer Text0948 ; 0x0948 + textpointer Text0949 ; 0x0949 + textpointer Text094a ; 0x094a + textpointer Text094b ; 0x094b + textpointer Text094c ; 0x094c + textpointer Text094d ; 0x094d + textpointer Text094e ; 0x094e + textpointer Text094f ; 0x094f + textpointer Text0950 ; 0x0950 + textpointer Text0951 ; 0x0951 + textpointer Text0952 ; 0x0952 + textpointer Text0953 ; 0x0953 + textpointer Text0954 ; 0x0954 + textpointer Text0955 ; 0x0955 + textpointer Text0956 ; 0x0956 + textpointer Text0957 ; 0x0957 + textpointer Text0958 ; 0x0958 + textpointer Text0959 ; 0x0959 + textpointer Text095a ; 0x095a + textpointer Text095b ; 0x095b + textpointer Text095c ; 0x095c + textpointer Text095d ; 0x095d + textpointer Text095e ; 0x095e + textpointer Text095f ; 0x095f + textpointer Text0960 ; 0x0960 + textpointer Text0961 ; 0x0961 + textpointer Text0962 ; 0x0962 + textpointer Text0963 ; 0x0963 + textpointer Text0964 ; 0x0964 + textpointer Text0965 ; 0x0965 + textpointer Text0966 ; 0x0966 + textpointer Text0967 ; 0x0967 + textpointer Text0968 ; 0x0968 + textpointer Text0969 ; 0x0969 + textpointer Text096a ; 0x096a + textpointer Text096b ; 0x096b + textpointer Text096c ; 0x096c + textpointer Text096d ; 0x096d + textpointer Text096e ; 0x096e + textpointer Text096f ; 0x096f + textpointer Text0970 ; 0x0970 + textpointer Text0971 ; 0x0971 + textpointer Text0972 ; 0x0972 + textpointer Text0973 ; 0x0973 + textpointer Text0974 ; 0x0974 + textpointer Text0975 ; 0x0975 + textpointer Text0976 ; 0x0976 + textpointer Text0977 ; 0x0977 + textpointer Text0978 ; 0x0978 + textpointer Text0979 ; 0x0979 + textpointer Text097a ; 0x097a + textpointer Text097b ; 0x097b + textpointer Text097c ; 0x097c + textpointer Text097d ; 0x097d + textpointer Text097e ; 0x097e + textpointer Text097f ; 0x097f + textpointer Text0980 ; 0x0980 + textpointer Text0981 ; 0x0981 + textpointer Text0982 ; 0x0982 + textpointer Text0983 ; 0x0983 + textpointer Text0984 ; 0x0984 + textpointer Text0985 ; 0x0985 + textpointer Text0986 ; 0x0986 + textpointer Text0987 ; 0x0987 + textpointer Text0988 ; 0x0988 + textpointer Text0989 ; 0x0989 + textpointer Text098a ; 0x098a + textpointer Text098b ; 0x098b + textpointer Text098c ; 0x098c + textpointer Text098d ; 0x098d + textpointer Text098e ; 0x098e + textpointer Text098f ; 0x098f + textpointer Text0990 ; 0x0990 + textpointer Text0991 ; 0x0991 + textpointer Text0992 ; 0x0992 + textpointer Text0993 ; 0x0993 + textpointer Text0994 ; 0x0994 + textpointer Text0995 ; 0x0995 + textpointer Text0996 ; 0x0996 + textpointer Text0997 ; 0x0997 + textpointer Text0998 ; 0x0998 + textpointer Text0999 ; 0x0999 + textpointer Text099a ; 0x099a + textpointer Text099b ; 0x099b + textpointer Text099c ; 0x099c + textpointer Text099d ; 0x099d + textpointer Text099e ; 0x099e + textpointer Text099f ; 0x099f + textpointer Text09a0 ; 0x09a0 + textpointer Text09a1 ; 0x09a1 + textpointer Text09a2 ; 0x09a2 + textpointer Text09a3 ; 0x09a3 + textpointer Text09a4 ; 0x09a4 + textpointer Text09a5 ; 0x09a5 + textpointer Text09a6 ; 0x09a6 + textpointer Text09a7 ; 0x09a7 + textpointer Text09a8 ; 0x09a8 + textpointer Text09a9 ; 0x09a9 + textpointer Text09aa ; 0x09aa + textpointer Text09ab ; 0x09ab + textpointer Text09ac ; 0x09ac + textpointer Text09ad ; 0x09ad + textpointer Text09ae ; 0x09ae + textpointer Text09af ; 0x09af + textpointer Text09b0 ; 0x09b0 + textpointer Text09b1 ; 0x09b1 + textpointer Text09b2 ; 0x09b2 + textpointer Text09b3 ; 0x09b3 + textpointer Text09b4 ; 0x09b4 textpointer MapOpeningText ; 0x09b5 textpointer MapMasonLabText ; 0x09b6 textpointer MapIshiharasHouseText ; 0x09b7 @@ -2825,490 +2825,490 @@ TextOffsets:: textpointer TradeCardsPromptText ; 0x0b00 textpointer DuelPrepPromptText ; 0x0b01 textpointer GameCenterCardDungeonBetPromptText ; 0x0b02 - textpointer Text0b03 ; 0x0b03 - textpointer Text0b04 ; 0x0b04 - textpointer Text0b05 ; 0x0b05 - textpointer Text0b06 ; 0x0b06 - textpointer Text0b07 ; 0x0b07 - textpointer Text0b08 ; 0x0b08 - textpointer Text0b09 ; 0x0b09 - textpointer Text0b0a ; 0x0b0a - textpointer Text0b0b ; 0x0b0b - textpointer Text0b0c ; 0x0b0c - textpointer Text0b0d ; 0x0b0d - textpointer Text0b0e ; 0x0b0e - textpointer Text0b0f ; 0x0b0f - textpointer Text0b10 ; 0x0b10 - textpointer Text0b11 ; 0x0b11 - textpointer Text0b12 ; 0x0b12 - textpointer Text0b13 ; 0x0b13 - textpointer Text0b14 ; 0x0b14 - textpointer Text0b15 ; 0x0b15 - textpointer Text0b16 ; 0x0b16 - textpointer Text0b17 ; 0x0b17 - textpointer Text0b18 ; 0x0b18 - textpointer Text0b19 ; 0x0b19 - textpointer Text0b1a ; 0x0b1a - textpointer Text0b1b ; 0x0b1b - textpointer Text0b1c ; 0x0b1c - textpointer Text0b1d ; 0x0b1d - textpointer Text0b1e ; 0x0b1e - textpointer Text0b1f ; 0x0b1f - textpointer Text0b20 ; 0x0b20 - textpointer Text0b21 ; 0x0b21 - textpointer Text0b22 ; 0x0b22 - textpointer Text0b23 ; 0x0b23 - textpointer Text0b24 ; 0x0b24 - textpointer Text0b25 ; 0x0b25 - textpointer Text0b26 ; 0x0b26 - textpointer Text0b27 ; 0x0b27 - textpointer Text0b28 ; 0x0b28 - textpointer Text0b29 ; 0x0b29 - textpointer Text0b2a ; 0x0b2a - textpointer Text0b2b ; 0x0b2b - textpointer Text0b2c ; 0x0b2c - textpointer Text0b2d ; 0x0b2d - textpointer Text0b2e ; 0x0b2e - textpointer Text0b2f ; 0x0b2f - textpointer Text0b30 ; 0x0b30 - textpointer Text0b31 ; 0x0b31 - textpointer Text0b32 ; 0x0b32 - textpointer Text0b33 ; 0x0b33 - textpointer Text0b34 ; 0x0b34 - textpointer Text0b35 ; 0x0b35 - textpointer Text0b36 ; 0x0b36 - textpointer Text0b37 ; 0x0b37 - textpointer Text0b38 ; 0x0b38 - textpointer Text0b39 ; 0x0b39 - textpointer Text0b3a ; 0x0b3a - textpointer Text0b3b ; 0x0b3b - textpointer Text0b3c ; 0x0b3c - textpointer Text0b3d ; 0x0b3d - textpointer Text0b3e ; 0x0b3e - textpointer Text0b3f ; 0x0b3f - textpointer Text0b40 ; 0x0b40 - textpointer Text0b41 ; 0x0b41 - textpointer Text0b42 ; 0x0b42 - textpointer Text0b43 ; 0x0b43 - textpointer Text0b44 ; 0x0b44 - textpointer Text0b45 ; 0x0b45 - textpointer Text0b46 ; 0x0b46 - textpointer Text0b47 ; 0x0b47 - textpointer Text0b48 ; 0x0b48 - textpointer Text0b49 ; 0x0b49 - textpointer Text0b4a ; 0x0b4a - textpointer Text0b4b ; 0x0b4b - textpointer Text0b4c ; 0x0b4c - textpointer Text0b4d ; 0x0b4d - textpointer Text0b4e ; 0x0b4e - textpointer Text0b4f ; 0x0b4f - textpointer Text0b50 ; 0x0b50 - textpointer Text0b51 ; 0x0b51 - textpointer Text0b52 ; 0x0b52 - textpointer Text0b53 ; 0x0b53 - textpointer Text0b54 ; 0x0b54 - textpointer Text0b55 ; 0x0b55 - textpointer Text0b56 ; 0x0b56 - textpointer Text0b57 ; 0x0b57 - textpointer Text0b58 ; 0x0b58 - textpointer Text0b59 ; 0x0b59 - textpointer Text0b5a ; 0x0b5a - textpointer Text0b5b ; 0x0b5b - textpointer Text0b5c ; 0x0b5c - textpointer Text0b5d ; 0x0b5d - textpointer Text0b5e ; 0x0b5e - textpointer Text0b5f ; 0x0b5f - textpointer Text0b60 ; 0x0b60 - textpointer Text0b61 ; 0x0b61 - textpointer Text0b62 ; 0x0b62 - textpointer Text0b63 ; 0x0b63 - textpointer Text0b64 ; 0x0b64 - textpointer Text0b65 ; 0x0b65 - textpointer Text0b66 ; 0x0b66 - textpointer Text0b67 ; 0x0b67 - textpointer Text0b68 ; 0x0b68 - textpointer Text0b69 ; 0x0b69 - textpointer Text0b6a ; 0x0b6a - textpointer Text0b6b ; 0x0b6b - textpointer Text0b6c ; 0x0b6c - textpointer Text0b6d ; 0x0b6d - textpointer Text0b6e ; 0x0b6e - textpointer Text0b6f ; 0x0b6f - textpointer Text0b70 ; 0x0b70 - textpointer Text0b71 ; 0x0b71 - textpointer Text0b72 ; 0x0b72 - textpointer Text0b73 ; 0x0b73 - textpointer Text0b74 ; 0x0b74 - textpointer Text0b75 ; 0x0b75 - textpointer Text0b76 ; 0x0b76 - textpointer Text0b77 ; 0x0b77 - textpointer Text0b78 ; 0x0b78 - textpointer Text0b79 ; 0x0b79 - textpointer Text0b7a ; 0x0b7a - textpointer Text0b7b ; 0x0b7b - textpointer Text0b7c ; 0x0b7c - textpointer Text0b7d ; 0x0b7d - textpointer Text0b7e ; 0x0b7e - textpointer Text0b7f ; 0x0b7f - textpointer Text0b80 ; 0x0b80 - textpointer Text0b81 ; 0x0b81 - textpointer Text0b82 ; 0x0b82 - textpointer Text0b83 ; 0x0b83 - textpointer Text0b84 ; 0x0b84 - textpointer Text0b85 ; 0x0b85 - textpointer Text0b86 ; 0x0b86 - textpointer Text0b87 ; 0x0b87 - textpointer Text0b88 ; 0x0b88 - textpointer Text0b89 ; 0x0b89 - textpointer Text0b8a ; 0x0b8a - textpointer Text0b8b ; 0x0b8b - textpointer Text0b8c ; 0x0b8c - textpointer Text0b8d ; 0x0b8d - textpointer Text0b8e ; 0x0b8e - textpointer Text0b8f ; 0x0b8f - textpointer Text0b90 ; 0x0b90 - textpointer Text0b91 ; 0x0b91 - textpointer Text0b92 ; 0x0b92 - textpointer Text0b93 ; 0x0b93 - textpointer Text0b94 ; 0x0b94 - textpointer Text0b95 ; 0x0b95 - textpointer Text0b96 ; 0x0b96 - textpointer Text0b97 ; 0x0b97 - textpointer Text0b98 ; 0x0b98 - textpointer Text0b99 ; 0x0b99 - textpointer Text0b9a ; 0x0b9a - textpointer Text0b9b ; 0x0b9b - textpointer Text0b9c ; 0x0b9c - textpointer Text0b9d ; 0x0b9d - textpointer Text0b9e ; 0x0b9e - textpointer Text0b9f ; 0x0b9f - textpointer Text0ba0 ; 0x0ba0 - textpointer Text0ba1 ; 0x0ba1 - textpointer Text0ba2 ; 0x0ba2 - textpointer Text0ba3 ; 0x0ba3 - textpointer Text0ba4 ; 0x0ba4 - textpointer Text0ba5 ; 0x0ba5 - textpointer Text0ba6 ; 0x0ba6 - textpointer Text0ba7 ; 0x0ba7 - textpointer Text0ba8 ; 0x0ba8 - textpointer Text0ba9 ; 0x0ba9 - textpointer Text0baa ; 0x0baa - textpointer Text0bab ; 0x0bab - textpointer Text0bac ; 0x0bac - textpointer Text0bad ; 0x0bad - textpointer Text0bae ; 0x0bae - textpointer Text0baf ; 0x0baf - textpointer Text0bb0 ; 0x0bb0 - textpointer Text0bb1 ; 0x0bb1 - textpointer Text0bb2 ; 0x0bb2 - textpointer Text0bb3 ; 0x0bb3 - textpointer Text0bb4 ; 0x0bb4 - textpointer Text0bb5 ; 0x0bb5 - textpointer Text0bb6 ; 0x0bb6 - textpointer Text0bb7 ; 0x0bb7 - textpointer Text0bb8 ; 0x0bb8 - textpointer Text0bb9 ; 0x0bb9 - textpointer Text0bba ; 0x0bba - textpointer Text0bbb ; 0x0bbb - textpointer Text0bbc ; 0x0bbc - textpointer Text0bbd ; 0x0bbd - textpointer Text0bbe ; 0x0bbe - textpointer Text0bbf ; 0x0bbf - textpointer Text0bc0 ; 0x0bc0 - textpointer Text0bc1 ; 0x0bc1 - textpointer Text0bc2 ; 0x0bc2 - textpointer Text0bc3 ; 0x0bc3 - textpointer Text0bc4 ; 0x0bc4 - textpointer Text0bc5 ; 0x0bc5 - textpointer Text0bc6 ; 0x0bc6 - textpointer Text0bc7 ; 0x0bc7 - textpointer Text0bc8 ; 0x0bc8 - textpointer Text0bc9 ; 0x0bc9 - textpointer Text0bca ; 0x0bca + textpointer Text0b03 ; 0x0b03 + textpointer Text0b04 ; 0x0b04 + textpointer Text0b05 ; 0x0b05 + textpointer Text0b06 ; 0x0b06 + textpointer Text0b07 ; 0x0b07 + textpointer Text0b08 ; 0x0b08 + textpointer Text0b09 ; 0x0b09 + textpointer Text0b0a ; 0x0b0a + textpointer Text0b0b ; 0x0b0b + textpointer Text0b0c ; 0x0b0c + textpointer Text0b0d ; 0x0b0d + textpointer Text0b0e ; 0x0b0e + textpointer Text0b0f ; 0x0b0f + textpointer Text0b10 ; 0x0b10 + textpointer Text0b11 ; 0x0b11 + textpointer Text0b12 ; 0x0b12 + textpointer Text0b13 ; 0x0b13 + textpointer Text0b14 ; 0x0b14 + textpointer Text0b15 ; 0x0b15 + textpointer Text0b16 ; 0x0b16 + textpointer Text0b17 ; 0x0b17 + textpointer Text0b18 ; 0x0b18 + textpointer Text0b19 ; 0x0b19 + textpointer Text0b1a ; 0x0b1a + textpointer Text0b1b ; 0x0b1b + textpointer Text0b1c ; 0x0b1c + textpointer Text0b1d ; 0x0b1d + textpointer Text0b1e ; 0x0b1e + textpointer Text0b1f ; 0x0b1f + textpointer Text0b20 ; 0x0b20 + textpointer Text0b21 ; 0x0b21 + textpointer Text0b22 ; 0x0b22 + textpointer Text0b23 ; 0x0b23 + textpointer Text0b24 ; 0x0b24 + textpointer Text0b25 ; 0x0b25 + textpointer Text0b26 ; 0x0b26 + textpointer Text0b27 ; 0x0b27 + textpointer Text0b28 ; 0x0b28 + textpointer Text0b29 ; 0x0b29 + textpointer Text0b2a ; 0x0b2a + textpointer Text0b2b ; 0x0b2b + textpointer Text0b2c ; 0x0b2c + textpointer Text0b2d ; 0x0b2d + textpointer Text0b2e ; 0x0b2e + textpointer Text0b2f ; 0x0b2f + textpointer Text0b30 ; 0x0b30 + textpointer Text0b31 ; 0x0b31 + textpointer Text0b32 ; 0x0b32 + textpointer Text0b33 ; 0x0b33 + textpointer Text0b34 ; 0x0b34 + textpointer Text0b35 ; 0x0b35 + textpointer Text0b36 ; 0x0b36 + textpointer Text0b37 ; 0x0b37 + textpointer Text0b38 ; 0x0b38 + textpointer Text0b39 ; 0x0b39 + textpointer Text0b3a ; 0x0b3a + textpointer Text0b3b ; 0x0b3b + textpointer Text0b3c ; 0x0b3c + textpointer Text0b3d ; 0x0b3d + textpointer Text0b3e ; 0x0b3e + textpointer Text0b3f ; 0x0b3f + textpointer Text0b40 ; 0x0b40 + textpointer Text0b41 ; 0x0b41 + textpointer Text0b42 ; 0x0b42 + textpointer Text0b43 ; 0x0b43 + textpointer Text0b44 ; 0x0b44 + textpointer Text0b45 ; 0x0b45 + textpointer Text0b46 ; 0x0b46 + textpointer Text0b47 ; 0x0b47 + textpointer Text0b48 ; 0x0b48 + textpointer Text0b49 ; 0x0b49 + textpointer Text0b4a ; 0x0b4a + textpointer Text0b4b ; 0x0b4b + textpointer Text0b4c ; 0x0b4c + textpointer Text0b4d ; 0x0b4d + textpointer Text0b4e ; 0x0b4e + textpointer Text0b4f ; 0x0b4f + textpointer Text0b50 ; 0x0b50 + textpointer Text0b51 ; 0x0b51 + textpointer Text0b52 ; 0x0b52 + textpointer Text0b53 ; 0x0b53 + textpointer Text0b54 ; 0x0b54 + textpointer Text0b55 ; 0x0b55 + textpointer Text0b56 ; 0x0b56 + textpointer Text0b57 ; 0x0b57 + textpointer Text0b58 ; 0x0b58 + textpointer Text0b59 ; 0x0b59 + textpointer Text0b5a ; 0x0b5a + textpointer Text0b5b ; 0x0b5b + textpointer Text0b5c ; 0x0b5c + textpointer Text0b5d ; 0x0b5d + textpointer Text0b5e ; 0x0b5e + textpointer Text0b5f ; 0x0b5f + textpointer Text0b60 ; 0x0b60 + textpointer Text0b61 ; 0x0b61 + textpointer Text0b62 ; 0x0b62 + textpointer Text0b63 ; 0x0b63 + textpointer Text0b64 ; 0x0b64 + textpointer Text0b65 ; 0x0b65 + textpointer Text0b66 ; 0x0b66 + textpointer Text0b67 ; 0x0b67 + textpointer Text0b68 ; 0x0b68 + textpointer Text0b69 ; 0x0b69 + textpointer Text0b6a ; 0x0b6a + textpointer Text0b6b ; 0x0b6b + textpointer Text0b6c ; 0x0b6c + textpointer Text0b6d ; 0x0b6d + textpointer Text0b6e ; 0x0b6e + textpointer Text0b6f ; 0x0b6f + textpointer Text0b70 ; 0x0b70 + textpointer Text0b71 ; 0x0b71 + textpointer Text0b72 ; 0x0b72 + textpointer Text0b73 ; 0x0b73 + textpointer Text0b74 ; 0x0b74 + textpointer Text0b75 ; 0x0b75 + textpointer Text0b76 ; 0x0b76 + textpointer Text0b77 ; 0x0b77 + textpointer Text0b78 ; 0x0b78 + textpointer Text0b79 ; 0x0b79 + textpointer Text0b7a ; 0x0b7a + textpointer Text0b7b ; 0x0b7b + textpointer Text0b7c ; 0x0b7c + textpointer Text0b7d ; 0x0b7d + textpointer Text0b7e ; 0x0b7e + textpointer Text0b7f ; 0x0b7f + textpointer Text0b80 ; 0x0b80 + textpointer Text0b81 ; 0x0b81 + textpointer Text0b82 ; 0x0b82 + textpointer Text0b83 ; 0x0b83 + textpointer Text0b84 ; 0x0b84 + textpointer Text0b85 ; 0x0b85 + textpointer Text0b86 ; 0x0b86 + textpointer Text0b87 ; 0x0b87 + textpointer Text0b88 ; 0x0b88 + textpointer Text0b89 ; 0x0b89 + textpointer Text0b8a ; 0x0b8a + textpointer Text0b8b ; 0x0b8b + textpointer Text0b8c ; 0x0b8c + textpointer Text0b8d ; 0x0b8d + textpointer Text0b8e ; 0x0b8e + textpointer Text0b8f ; 0x0b8f + textpointer Text0b90 ; 0x0b90 + textpointer Text0b91 ; 0x0b91 + textpointer Text0b92 ; 0x0b92 + textpointer Text0b93 ; 0x0b93 + textpointer Text0b94 ; 0x0b94 + textpointer Text0b95 ; 0x0b95 + textpointer Text0b96 ; 0x0b96 + textpointer Text0b97 ; 0x0b97 + textpointer Text0b98 ; 0x0b98 + textpointer Text0b99 ; 0x0b99 + textpointer Text0b9a ; 0x0b9a + textpointer Text0b9b ; 0x0b9b + textpointer Text0b9c ; 0x0b9c + textpointer Text0b9d ; 0x0b9d + textpointer Text0b9e ; 0x0b9e + textpointer Text0b9f ; 0x0b9f + textpointer Text0ba0 ; 0x0ba0 + textpointer Text0ba1 ; 0x0ba1 + textpointer Text0ba2 ; 0x0ba2 + textpointer Text0ba3 ; 0x0ba3 + textpointer Text0ba4 ; 0x0ba4 + textpointer Text0ba5 ; 0x0ba5 + textpointer Text0ba6 ; 0x0ba6 + textpointer Text0ba7 ; 0x0ba7 + textpointer Text0ba8 ; 0x0ba8 + textpointer Text0ba9 ; 0x0ba9 + textpointer Text0baa ; 0x0baa + textpointer Text0bab ; 0x0bab + textpointer Text0bac ; 0x0bac + textpointer Text0bad ; 0x0bad + textpointer Text0bae ; 0x0bae + textpointer Text0baf ; 0x0baf + textpointer Text0bb0 ; 0x0bb0 + textpointer Text0bb1 ; 0x0bb1 + textpointer Text0bb2 ; 0x0bb2 + textpointer Text0bb3 ; 0x0bb3 + textpointer Text0bb4 ; 0x0bb4 + textpointer Text0bb5 ; 0x0bb5 + textpointer Text0bb6 ; 0x0bb6 + textpointer Text0bb7 ; 0x0bb7 + textpointer Text0bb8 ; 0x0bb8 + textpointer Text0bb9 ; 0x0bb9 + textpointer Text0bba ; 0x0bba + textpointer Text0bbb ; 0x0bbb + textpointer Text0bbc ; 0x0bbc + textpointer Text0bbd ; 0x0bbd + textpointer Text0bbe ; 0x0bbe + textpointer Text0bbf ; 0x0bbf + textpointer Text0bc0 ; 0x0bc0 + textpointer Text0bc1 ; 0x0bc1 + textpointer Text0bc2 ; 0x0bc2 + textpointer Text0bc3 ; 0x0bc3 + textpointer Text0bc4 ; 0x0bc4 + textpointer Text0bc5 ; 0x0bc5 + textpointer Text0bc6 ; 0x0bc6 + textpointer Text0bc7 ; 0x0bc7 + textpointer Text0bc8 ; 0x0bc8 + textpointer Text0bc9 ; 0x0bc9 + textpointer Text0bca ; 0x0bca textpointer StephanieBeatGR4AtLightningClubFirstText ; 0x0bcb - textpointer Text0bcc ; 0x0bcc - textpointer Text0bcd ; 0x0bcd - textpointer Text0bce ; 0x0bce - textpointer Text0bcf ; 0x0bcf - textpointer Text0bd0 ; 0x0bd0 - textpointer Text0bd1 ; 0x0bd1 - textpointer Text0bd2 ; 0x0bd2 - textpointer Text0bd3 ; 0x0bd3 - textpointer Text0bd4 ; 0x0bd4 - textpointer Text0bd5 ; 0x0bd5 - textpointer Text0bd6 ; 0x0bd6 - textpointer Text0bd7 ; 0x0bd7 - textpointer Text0bd8 ; 0x0bd8 - textpointer Text0bd9 ; 0x0bd9 - textpointer Text0bda ; 0x0bda - textpointer Text0bdb ; 0x0bdb - textpointer Text0bdc ; 0x0bdc - textpointer Text0bdd ; 0x0bdd - textpointer Text0bde ; 0x0bde - textpointer Text0bdf ; 0x0bdf - textpointer Text0be0 ; 0x0be0 - textpointer Text0be1 ; 0x0be1 - textpointer Text0be2 ; 0x0be2 - textpointer Text0be3 ; 0x0be3 - textpointer Text0be4 ; 0x0be4 - textpointer Text0be5 ; 0x0be5 - textpointer Text0be6 ; 0x0be6 - textpointer Text0be7 ; 0x0be7 - textpointer Text0be8 ; 0x0be8 - textpointer Text0be9 ; 0x0be9 - textpointer Text0bea ; 0x0bea - textpointer Text0beb ; 0x0beb - textpointer Text0bec ; 0x0bec - textpointer Text0bed ; 0x0bed - textpointer Text0bee ; 0x0bee - textpointer Text0bef ; 0x0bef - textpointer Text0bf0 ; 0x0bf0 - textpointer Text0bf1 ; 0x0bf1 - textpointer Text0bf2 ; 0x0bf2 - textpointer Text0bf3 ; 0x0bf3 - textpointer Text0bf4 ; 0x0bf4 - textpointer Text0bf5 ; 0x0bf5 - textpointer Text0bf6 ; 0x0bf6 - textpointer Text0bf7 ; 0x0bf7 - textpointer Text0bf8 ; 0x0bf8 - textpointer Text0bf9 ; 0x0bf9 - textpointer Text0bfa ; 0x0bfa - textpointer Text0bfb ; 0x0bfb - textpointer Text0bfc ; 0x0bfc - textpointer Text0bfd ; 0x0bfd - textpointer Text0bfe ; 0x0bfe - textpointer Text0bff ; 0x0bff - textpointer Text0c00 ; 0x0c00 - textpointer Text0c01 ; 0x0c01 - textpointer Text0c02 ; 0x0c02 - textpointer Text0c03 ; 0x0c03 - textpointer Text0c04 ; 0x0c04 - textpointer Text0c05 ; 0x0c05 - textpointer Text0c06 ; 0x0c06 - textpointer Text0c07 ; 0x0c07 - textpointer Text0c08 ; 0x0c08 - textpointer Text0c09 ; 0x0c09 - textpointer Text0c0a ; 0x0c0a - textpointer Text0c0b ; 0x0c0b - textpointer Text0c0c ; 0x0c0c - textpointer Text0c0d ; 0x0c0d - textpointer Text0c0e ; 0x0c0e - textpointer Text0c0f ; 0x0c0f - textpointer Text0c10 ; 0x0c10 - textpointer Text0c11 ; 0x0c11 - textpointer Text0c12 ; 0x0c12 - textpointer Text0c13 ; 0x0c13 - textpointer Text0c14 ; 0x0c14 - textpointer Text0c15 ; 0x0c15 - textpointer Text0c16 ; 0x0c16 - textpointer Text0c17 ; 0x0c17 - textpointer Text0c18 ; 0x0c18 - textpointer Text0c19 ; 0x0c19 - textpointer Text0c1a ; 0x0c1a - textpointer Text0c1b ; 0x0c1b - textpointer Text0c1c ; 0x0c1c - textpointer Text0c1d ; 0x0c1d - textpointer Text0c1e ; 0x0c1e - textpointer Text0c1f ; 0x0c1f - textpointer Text0c20 ; 0x0c20 - textpointer Text0c21 ; 0x0c21 - textpointer Text0c22 ; 0x0c22 - textpointer Text0c23 ; 0x0c23 - textpointer Text0c24 ; 0x0c24 - textpointer Text0c25 ; 0x0c25 - textpointer Text0c26 ; 0x0c26 - textpointer Text0c27 ; 0x0c27 - textpointer Text0c28 ; 0x0c28 - textpointer Text0c29 ; 0x0c29 - textpointer Text0c2a ; 0x0c2a - textpointer Text0c2b ; 0x0c2b - textpointer Text0c2c ; 0x0c2c - textpointer Text0c2d ; 0x0c2d - textpointer Text0c2e ; 0x0c2e - textpointer Text0c2f ; 0x0c2f - textpointer Text0c30 ; 0x0c30 - textpointer Text0c31 ; 0x0c31 - textpointer Text0c32 ; 0x0c32 - textpointer Text0c33 ; 0x0c33 - textpointer Text0c34 ; 0x0c34 - textpointer Text0c35 ; 0x0c35 - textpointer Text0c36 ; 0x0c36 - textpointer Text0c37 ; 0x0c37 - textpointer Text0c38 ; 0x0c38 - textpointer Text0c39 ; 0x0c39 - textpointer Text0c3a ; 0x0c3a - textpointer Text0c3b ; 0x0c3b - textpointer Text0c3c ; 0x0c3c - textpointer Text0c3d ; 0x0c3d - textpointer Text0c3e ; 0x0c3e - textpointer Text0c3f ; 0x0c3f - textpointer Text0c40 ; 0x0c40 - textpointer Text0c41 ; 0x0c41 - textpointer Text0c42 ; 0x0c42 - textpointer Text0c43 ; 0x0c43 - textpointer Text0c44 ; 0x0c44 - textpointer Text0c45 ; 0x0c45 - textpointer Text0c46 ; 0x0c46 - textpointer Text0c47 ; 0x0c47 - textpointer Text0c48 ; 0x0c48 - textpointer Text0c49 ; 0x0c49 - textpointer Text0c4a ; 0x0c4a - textpointer Text0c4b ; 0x0c4b - textpointer Text0c4c ; 0x0c4c - textpointer Text0c4d ; 0x0c4d - textpointer Text0c4e ; 0x0c4e - textpointer Text0c4f ; 0x0c4f - textpointer Text0c50 ; 0x0c50 - textpointer Text0c51 ; 0x0c51 - textpointer Text0c52 ; 0x0c52 - textpointer Text0c53 ; 0x0c53 - textpointer Text0c54 ; 0x0c54 - textpointer Text0c55 ; 0x0c55 - textpointer Text0c56 ; 0x0c56 - textpointer Text0c57 ; 0x0c57 - textpointer Text0c58 ; 0x0c58 - textpointer Text0c59 ; 0x0c59 - textpointer Text0c5a ; 0x0c5a - textpointer Text0c5b ; 0x0c5b - textpointer Text0c5c ; 0x0c5c - textpointer Text0c5d ; 0x0c5d - textpointer Text0c5e ; 0x0c5e - textpointer Text0c5f ; 0x0c5f - textpointer Text0c60 ; 0x0c60 - textpointer Text0c61 ; 0x0c61 - textpointer Text0c62 ; 0x0c62 - textpointer Text0c63 ; 0x0c63 - textpointer Text0c64 ; 0x0c64 - textpointer Text0c65 ; 0x0c65 - textpointer Text0c66 ; 0x0c66 - textpointer Text0c67 ; 0x0c67 - textpointer Text0c68 ; 0x0c68 - textpointer Text0c69 ; 0x0c69 - textpointer Text0c6a ; 0x0c6a - textpointer Text0c6b ; 0x0c6b - textpointer Text0c6c ; 0x0c6c - textpointer Text0c6d ; 0x0c6d - textpointer Text0c6e ; 0x0c6e - textpointer Text0c6f ; 0x0c6f - textpointer Text0c70 ; 0x0c70 - textpointer Text0c71 ; 0x0c71 - textpointer Text0c72 ; 0x0c72 - textpointer Text0c73 ; 0x0c73 - textpointer Text0c74 ; 0x0c74 - textpointer Text0c75 ; 0x0c75 - textpointer Text0c76 ; 0x0c76 - textpointer Text0c77 ; 0x0c77 - textpointer Text0c78 ; 0x0c78 - textpointer Text0c79 ; 0x0c79 - textpointer Text0c7a ; 0x0c7a - textpointer Text0c7b ; 0x0c7b - textpointer Text0c7c ; 0x0c7c - textpointer Text0c7d ; 0x0c7d - textpointer Text0c7e ; 0x0c7e - textpointer Text0c7f ; 0x0c7f - textpointer Text0c80 ; 0x0c80 - textpointer Text0c81 ; 0x0c81 - textpointer Text0c82 ; 0x0c82 - textpointer Text0c83 ; 0x0c83 - textpointer Text0c84 ; 0x0c84 - textpointer Text0c85 ; 0x0c85 - textpointer Text0c86 ; 0x0c86 - textpointer Text0c87 ; 0x0c87 - textpointer Text0c88 ; 0x0c88 - textpointer Text0c89 ; 0x0c89 - textpointer Text0c8a ; 0x0c8a - textpointer Text0c8b ; 0x0c8b - textpointer Text0c8c ; 0x0c8c - textpointer Text0c8d ; 0x0c8d - textpointer Text0c8e ; 0x0c8e - textpointer Text0c8f ; 0x0c8f - textpointer Text0c90 ; 0x0c90 - textpointer Text0c91 ; 0x0c91 - textpointer Text0c92 ; 0x0c92 - textpointer Text0c93 ; 0x0c93 - textpointer Text0c94 ; 0x0c94 - textpointer Text0c95 ; 0x0c95 - textpointer Text0c96 ; 0x0c96 - textpointer Text0c97 ; 0x0c97 - textpointer Text0c98 ; 0x0c98 - textpointer Text0c99 ; 0x0c99 - textpointer Text0c9a ; 0x0c9a - textpointer Text0c9b ; 0x0c9b - textpointer Text0c9c ; 0x0c9c - textpointer Text0c9d ; 0x0c9d - textpointer Text0c9e ; 0x0c9e - textpointer Text0c9f ; 0x0c9f - textpointer Text0ca0 ; 0x0ca0 - textpointer Text0ca1 ; 0x0ca1 - textpointer Text0ca2 ; 0x0ca2 - textpointer Text0ca3 ; 0x0ca3 - textpointer Text0ca4 ; 0x0ca4 - textpointer Text0ca5 ; 0x0ca5 - textpointer Text0ca6 ; 0x0ca6 - textpointer Text0ca7 ; 0x0ca7 - textpointer Text0ca8 ; 0x0ca8 - textpointer Text0ca9 ; 0x0ca9 - textpointer Text0caa ; 0x0caa - textpointer Text0cab ; 0x0cab - textpointer Text0cac ; 0x0cac - textpointer Text0cad ; 0x0cad - textpointer Text0cae ; 0x0cae - textpointer Text0caf ; 0x0caf - textpointer Text0cb0 ; 0x0cb0 - textpointer Text0cb1 ; 0x0cb1 - textpointer Text0cb2 ; 0x0cb2 - textpointer Text0cb3 ; 0x0cb3 - textpointer Text0cb4 ; 0x0cb4 - textpointer Text0cb5 ; 0x0cb5 - textpointer Text0cb6 ; 0x0cb6 - textpointer Text0cb7 ; 0x0cb7 - textpointer Text0cb8 ; 0x0cb8 - textpointer Text0cb9 ; 0x0cb9 - textpointer Text0cba ; 0x0cba - textpointer Text0cbb ; 0x0cbb - textpointer Text0cbc ; 0x0cbc - textpointer Text0cbd ; 0x0cbd - textpointer Text0cbe ; 0x0cbe - textpointer Text0cbf ; 0x0cbf - textpointer Text0cc0 ; 0x0cc0 - textpointer Text0cc1 ; 0x0cc1 - textpointer Text0cc2 ; 0x0cc2 - textpointer Text0cc3 ; 0x0cc3 - textpointer Text0cc4 ; 0x0cc4 - textpointer Text0cc5 ; 0x0cc5 - textpointer Text0cc6 ; 0x0cc6 - textpointer Text0cc7 ; 0x0cc7 - textpointer Text0cc8 ; 0x0cc8 - textpointer Text0cc9 ; 0x0cc9 - textpointer Text0cca ; 0x0cca - textpointer Text0ccb ; 0x0ccb - textpointer Text0ccc ; 0x0ccc - textpointer Text0ccd ; 0x0ccd - textpointer Text0cce ; 0x0cce - textpointer Text0ccf ; 0x0ccf - textpointer Text0cd0 ; 0x0cd0 - textpointer Text0cd1 ; 0x0cd1 - textpointer Text0cd2 ; 0x0cd2 - textpointer Text0cd3 ; 0x0cd3 - textpointer Text0cd4 ; 0x0cd4 - textpointer Text0cd5 ; 0x0cd5 - textpointer Text0cd6 ; 0x0cd6 - textpointer Text0cd7 ; 0x0cd7 - textpointer Text0cd8 ; 0x0cd8 - textpointer Text0cd9 ; 0x0cd9 - textpointer Text0cda ; 0x0cda - textpointer Text0cdb ; 0x0cdb - textpointer Text0cdc ; 0x0cdc - textpointer Text0cdd ; 0x0cdd - textpointer Text0cde ; 0x0cde - textpointer Text0cdf ; 0x0cdf - textpointer Text0ce0 ; 0x0ce0 - textpointer Text0ce1 ; 0x0ce1 - textpointer Text0ce2 ; 0x0ce2 - textpointer Text0ce3 ; 0x0ce3 - textpointer Text0ce4 ; 0x0ce4 - textpointer Text0ce5 ; 0x0ce5 - textpointer Text0ce6 ; 0x0ce6 + textpointer Text0bcc ; 0x0bcc + textpointer Text0bcd ; 0x0bcd + textpointer Text0bce ; 0x0bce + textpointer Text0bcf ; 0x0bcf + textpointer Text0bd0 ; 0x0bd0 + textpointer Text0bd1 ; 0x0bd1 + textpointer Text0bd2 ; 0x0bd2 + textpointer Text0bd3 ; 0x0bd3 + textpointer Text0bd4 ; 0x0bd4 + textpointer Text0bd5 ; 0x0bd5 + textpointer Text0bd6 ; 0x0bd6 + textpointer Text0bd7 ; 0x0bd7 + textpointer Text0bd8 ; 0x0bd8 + textpointer Text0bd9 ; 0x0bd9 + textpointer Text0bda ; 0x0bda + textpointer Text0bdb ; 0x0bdb + textpointer Text0bdc ; 0x0bdc + textpointer Text0bdd ; 0x0bdd + textpointer Text0bde ; 0x0bde + textpointer Text0bdf ; 0x0bdf + textpointer Text0be0 ; 0x0be0 + textpointer Text0be1 ; 0x0be1 + textpointer Text0be2 ; 0x0be2 + textpointer Text0be3 ; 0x0be3 + textpointer Text0be4 ; 0x0be4 + textpointer Text0be5 ; 0x0be5 + textpointer Text0be6 ; 0x0be6 + textpointer Text0be7 ; 0x0be7 + textpointer Text0be8 ; 0x0be8 + textpointer Text0be9 ; 0x0be9 + textpointer Text0bea ; 0x0bea + textpointer Text0beb ; 0x0beb + textpointer Text0bec ; 0x0bec + textpointer Text0bed ; 0x0bed + textpointer Text0bee ; 0x0bee + textpointer Text0bef ; 0x0bef + textpointer Text0bf0 ; 0x0bf0 + textpointer Text0bf1 ; 0x0bf1 + textpointer Text0bf2 ; 0x0bf2 + textpointer Text0bf3 ; 0x0bf3 + textpointer Text0bf4 ; 0x0bf4 + textpointer Text0bf5 ; 0x0bf5 + textpointer Text0bf6 ; 0x0bf6 + textpointer Text0bf7 ; 0x0bf7 + textpointer Text0bf8 ; 0x0bf8 + textpointer Text0bf9 ; 0x0bf9 + textpointer Text0bfa ; 0x0bfa + textpointer Text0bfb ; 0x0bfb + textpointer Text0bfc ; 0x0bfc + textpointer Text0bfd ; 0x0bfd + textpointer Text0bfe ; 0x0bfe + textpointer Text0bff ; 0x0bff + textpointer Text0c00 ; 0x0c00 + textpointer Text0c01 ; 0x0c01 + textpointer Text0c02 ; 0x0c02 + textpointer Text0c03 ; 0x0c03 + textpointer Text0c04 ; 0x0c04 + textpointer Text0c05 ; 0x0c05 + textpointer Text0c06 ; 0x0c06 + textpointer Text0c07 ; 0x0c07 + textpointer Text0c08 ; 0x0c08 + textpointer Text0c09 ; 0x0c09 + textpointer Text0c0a ; 0x0c0a + textpointer Text0c0b ; 0x0c0b + textpointer Text0c0c ; 0x0c0c + textpointer Text0c0d ; 0x0c0d + textpointer Text0c0e ; 0x0c0e + textpointer Text0c0f ; 0x0c0f + textpointer Text0c10 ; 0x0c10 + textpointer Text0c11 ; 0x0c11 + textpointer Text0c12 ; 0x0c12 + textpointer Text0c13 ; 0x0c13 + textpointer Text0c14 ; 0x0c14 + textpointer Text0c15 ; 0x0c15 + textpointer Text0c16 ; 0x0c16 + textpointer Text0c17 ; 0x0c17 + textpointer Text0c18 ; 0x0c18 + textpointer Text0c19 ; 0x0c19 + textpointer Text0c1a ; 0x0c1a + textpointer Text0c1b ; 0x0c1b + textpointer Text0c1c ; 0x0c1c + textpointer Text0c1d ; 0x0c1d + textpointer Text0c1e ; 0x0c1e + textpointer Text0c1f ; 0x0c1f + textpointer Text0c20 ; 0x0c20 + textpointer Text0c21 ; 0x0c21 + textpointer Text0c22 ; 0x0c22 + textpointer Text0c23 ; 0x0c23 + textpointer Text0c24 ; 0x0c24 + textpointer Text0c25 ; 0x0c25 + textpointer Text0c26 ; 0x0c26 + textpointer Text0c27 ; 0x0c27 + textpointer Text0c28 ; 0x0c28 + textpointer Text0c29 ; 0x0c29 + textpointer Text0c2a ; 0x0c2a + textpointer Text0c2b ; 0x0c2b + textpointer Text0c2c ; 0x0c2c + textpointer Text0c2d ; 0x0c2d + textpointer Text0c2e ; 0x0c2e + textpointer Text0c2f ; 0x0c2f + textpointer Text0c30 ; 0x0c30 + textpointer Text0c31 ; 0x0c31 + textpointer Text0c32 ; 0x0c32 + textpointer Text0c33 ; 0x0c33 + textpointer Text0c34 ; 0x0c34 + textpointer Text0c35 ; 0x0c35 + textpointer Text0c36 ; 0x0c36 + textpointer Text0c37 ; 0x0c37 + textpointer Text0c38 ; 0x0c38 + textpointer Text0c39 ; 0x0c39 + textpointer Text0c3a ; 0x0c3a + textpointer Text0c3b ; 0x0c3b + textpointer Text0c3c ; 0x0c3c + textpointer Text0c3d ; 0x0c3d + textpointer Text0c3e ; 0x0c3e + textpointer Text0c3f ; 0x0c3f + textpointer Text0c40 ; 0x0c40 + textpointer Text0c41 ; 0x0c41 + textpointer Text0c42 ; 0x0c42 + textpointer Text0c43 ; 0x0c43 + textpointer Text0c44 ; 0x0c44 + textpointer Text0c45 ; 0x0c45 + textpointer Text0c46 ; 0x0c46 + textpointer Text0c47 ; 0x0c47 + textpointer Text0c48 ; 0x0c48 + textpointer Text0c49 ; 0x0c49 + textpointer Text0c4a ; 0x0c4a + textpointer Text0c4b ; 0x0c4b + textpointer Text0c4c ; 0x0c4c + textpointer Text0c4d ; 0x0c4d + textpointer Text0c4e ; 0x0c4e + textpointer Text0c4f ; 0x0c4f + textpointer Text0c50 ; 0x0c50 + textpointer Text0c51 ; 0x0c51 + textpointer Text0c52 ; 0x0c52 + textpointer Text0c53 ; 0x0c53 + textpointer Text0c54 ; 0x0c54 + textpointer Text0c55 ; 0x0c55 + textpointer Text0c56 ; 0x0c56 + textpointer Text0c57 ; 0x0c57 + textpointer Text0c58 ; 0x0c58 + textpointer Text0c59 ; 0x0c59 + textpointer Text0c5a ; 0x0c5a + textpointer Text0c5b ; 0x0c5b + textpointer Text0c5c ; 0x0c5c + textpointer Text0c5d ; 0x0c5d + textpointer Text0c5e ; 0x0c5e + textpointer Text0c5f ; 0x0c5f + textpointer Text0c60 ; 0x0c60 + textpointer Text0c61 ; 0x0c61 + textpointer Text0c62 ; 0x0c62 + textpointer Text0c63 ; 0x0c63 + textpointer Text0c64 ; 0x0c64 + textpointer Text0c65 ; 0x0c65 + textpointer Text0c66 ; 0x0c66 + textpointer Text0c67 ; 0x0c67 + textpointer Text0c68 ; 0x0c68 + textpointer Text0c69 ; 0x0c69 + textpointer Text0c6a ; 0x0c6a + textpointer Text0c6b ; 0x0c6b + textpointer Text0c6c ; 0x0c6c + textpointer Text0c6d ; 0x0c6d + textpointer Text0c6e ; 0x0c6e + textpointer Text0c6f ; 0x0c6f + textpointer Text0c70 ; 0x0c70 + textpointer Text0c71 ; 0x0c71 + textpointer Text0c72 ; 0x0c72 + textpointer Text0c73 ; 0x0c73 + textpointer Text0c74 ; 0x0c74 + textpointer Text0c75 ; 0x0c75 + textpointer Text0c76 ; 0x0c76 + textpointer Text0c77 ; 0x0c77 + textpointer Text0c78 ; 0x0c78 + textpointer Text0c79 ; 0x0c79 + textpointer Text0c7a ; 0x0c7a + textpointer Text0c7b ; 0x0c7b + textpointer Text0c7c ; 0x0c7c + textpointer Text0c7d ; 0x0c7d + textpointer Text0c7e ; 0x0c7e + textpointer Text0c7f ; 0x0c7f + textpointer Text0c80 ; 0x0c80 + textpointer Text0c81 ; 0x0c81 + textpointer Text0c82 ; 0x0c82 + textpointer Text0c83 ; 0x0c83 + textpointer Text0c84 ; 0x0c84 + textpointer Text0c85 ; 0x0c85 + textpointer Text0c86 ; 0x0c86 + textpointer Text0c87 ; 0x0c87 + textpointer Text0c88 ; 0x0c88 + textpointer Text0c89 ; 0x0c89 + textpointer Text0c8a ; 0x0c8a + textpointer Text0c8b ; 0x0c8b + textpointer Text0c8c ; 0x0c8c + textpointer Text0c8d ; 0x0c8d + textpointer Text0c8e ; 0x0c8e + textpointer Text0c8f ; 0x0c8f + textpointer Text0c90 ; 0x0c90 + textpointer Text0c91 ; 0x0c91 + textpointer Text0c92 ; 0x0c92 + textpointer Text0c93 ; 0x0c93 + textpointer Text0c94 ; 0x0c94 + textpointer Text0c95 ; 0x0c95 + textpointer Text0c96 ; 0x0c96 + textpointer Text0c97 ; 0x0c97 + textpointer Text0c98 ; 0x0c98 + textpointer Text0c99 ; 0x0c99 + textpointer Text0c9a ; 0x0c9a + textpointer Text0c9b ; 0x0c9b + textpointer Text0c9c ; 0x0c9c + textpointer Text0c9d ; 0x0c9d + textpointer Text0c9e ; 0x0c9e + textpointer Text0c9f ; 0x0c9f + textpointer Text0ca0 ; 0x0ca0 + textpointer Text0ca1 ; 0x0ca1 + textpointer Text0ca2 ; 0x0ca2 + textpointer Text0ca3 ; 0x0ca3 + textpointer Text0ca4 ; 0x0ca4 + textpointer Text0ca5 ; 0x0ca5 + textpointer Text0ca6 ; 0x0ca6 + textpointer Text0ca7 ; 0x0ca7 + textpointer Text0ca8 ; 0x0ca8 + textpointer Text0ca9 ; 0x0ca9 + textpointer Text0caa ; 0x0caa + textpointer Text0cab ; 0x0cab + textpointer Text0cac ; 0x0cac + textpointer Text0cad ; 0x0cad + textpointer Text0cae ; 0x0cae + textpointer Text0caf ; 0x0caf + textpointer Text0cb0 ; 0x0cb0 + textpointer Text0cb1 ; 0x0cb1 + textpointer Text0cb2 ; 0x0cb2 + textpointer Text0cb3 ; 0x0cb3 + textpointer Text0cb4 ; 0x0cb4 + textpointer Text0cb5 ; 0x0cb5 + textpointer Text0cb6 ; 0x0cb6 + textpointer Text0cb7 ; 0x0cb7 + textpointer Text0cb8 ; 0x0cb8 + textpointer Text0cb9 ; 0x0cb9 + textpointer Text0cba ; 0x0cba + textpointer Text0cbb ; 0x0cbb + textpointer Text0cbc ; 0x0cbc + textpointer Text0cbd ; 0x0cbd + textpointer Text0cbe ; 0x0cbe + textpointer Text0cbf ; 0x0cbf + textpointer Text0cc0 ; 0x0cc0 + textpointer Text0cc1 ; 0x0cc1 + textpointer Text0cc2 ; 0x0cc2 + textpointer Text0cc3 ; 0x0cc3 + textpointer Text0cc4 ; 0x0cc4 + textpointer Text0cc5 ; 0x0cc5 + textpointer Text0cc6 ; 0x0cc6 + textpointer Text0cc7 ; 0x0cc7 + textpointer Text0cc8 ; 0x0cc8 + textpointer Text0cc9 ; 0x0cc9 + textpointer Text0cca ; 0x0cca + textpointer Text0ccb ; 0x0ccb + textpointer Text0ccc ; 0x0ccc + textpointer Text0ccd ; 0x0ccd + textpointer Text0cce ; 0x0cce + textpointer Text0ccf ; 0x0ccf + textpointer Text0cd0 ; 0x0cd0 + textpointer Text0cd1 ; 0x0cd1 + textpointer Text0cd2 ; 0x0cd2 + textpointer Text0cd3 ; 0x0cd3 + textpointer Text0cd4 ; 0x0cd4 + textpointer Text0cd5 ; 0x0cd5 + textpointer Text0cd6 ; 0x0cd6 + textpointer Text0cd7 ; 0x0cd7 + textpointer Text0cd8 ; 0x0cd8 + textpointer Text0cd9 ; 0x0cd9 + textpointer Text0cda ; 0x0cda + textpointer Text0cdb ; 0x0cdb + textpointer Text0cdc ; 0x0cdc + textpointer Text0cdd ; 0x0cdd + textpointer Text0cde ; 0x0cde + textpointer Text0cdf ; 0x0cdf + textpointer Text0ce0 ; 0x0ce0 + textpointer Text0ce1 ; 0x0ce1 + textpointer Text0ce2 ; 0x0ce2 + textpointer Text0ce3 ; 0x0ce3 + textpointer Text0ce4 ; 0x0ce4 + textpointer Text0ce5 ; 0x0ce5 + textpointer Text0ce6 ; 0x0ce6 textpointer PawnWantsToDuelInitialText ; 0x0ce7 textpointer PawnWantsToDuelRepeatText ; 0x0ce8 textpointer PawnDuelPromptText ; 0x0ce9 @@ -3423,10 +3423,10 @@ TextOffsets:: textpointer GameCenterCoinFlipAttendantStartText ; 0x0d56 textpointer GameCenterCoinFlipAttendantNotEnoughChipsText ; 0x0d57 textpointer GameCenterCoinFlipAttendantComeAgainText ; 0x0d58 - textpointer Text0d59 ; 0x0d59 - textpointer Text0d5a ; 0x0d5a - textpointer Text0d5b ; 0x0d5b - textpointer Text0d5c ; 0x0d5c + textpointer Text0d59 ; 0x0d59 + textpointer Text0d5a ; 0x0d5a + textpointer Text0d5b ; 0x0d5b + textpointer Text0d5c ; 0x0d5c textpointer GameCenterSlotMachine1AttendantWelcomeText ; 0x0d5d textpointer GameCenterSlotMachine1AttendantGuidePromptText ; 0x0d5e textpointer GameCenterSlotMachine1AttendantGuideText ; 0x0d5f @@ -3444,14 +3444,14 @@ TextOffsets:: textpointer GameCenterCardDungeonAttendantPlayerWonComeAgainText ; 0x0d6b textpointer GameCenterCardDungeonAttendantPlayerLostTryAgainText ; 0x0d6c textpointer GameCenterCardDungeonAttendantPlayerQuitTryAgainText ; 0x0d6d - textpointer Text0d6e ; 0x0d6e - textpointer Text0d6f ; 0x0d6f - textpointer Text0d70 ; 0x0d70 - textpointer Text0d71 ; 0x0d71 - textpointer Text0d72 ; 0x0d72 - textpointer Text0d73 ; 0x0d73 - textpointer Text0d74 ; 0x0d74 - textpointer Text0d75 ; 0x0d75 + textpointer Text0d6e ; 0x0d6e + textpointer Text0d6f ; 0x0d6f + textpointer Text0d70 ; 0x0d70 + textpointer Text0d71 ; 0x0d71 + textpointer Text0d72 ; 0x0d72 + textpointer Text0d73 ; 0x0d73 + textpointer Text0d74 ; 0x0d74 + textpointer Text0d75 ; 0x0d75 textpointer GameCenterChipDeskWelcomeText ; 0x0d76 textpointer GameCenterChipDeskDepositInfoText ; 0x0d77 textpointer GameCenterChipDeskDepositReturnPromptText ; 0x0d78 @@ -3469,1298 +3469,1298 @@ TextOffsets:: textpointer GameCenterChipGirlRefillReminderText ; 0x0d84 textpointer GameCenterChipSecurityReminderText ; 0x0d85 textpointer GameCenterChipSecurityWarningText ; 0x0d86 - textpointer Text0d87 ; 0x0d87 - textpointer Text0d88 ; 0x0d88 - textpointer Text0d89 ; 0x0d89 - textpointer Text0d8a ; 0x0d8a - textpointer Text0d8b ; 0x0d8b - textpointer Text0d8c ; 0x0d8c - textpointer Text0d8d ; 0x0d8d - textpointer Text0d8e ; 0x0d8e - textpointer Text0d8f ; 0x0d8f - textpointer Text0d90 ; 0x0d90 - textpointer Text0d91 ; 0x0d91 - textpointer Text0d92 ; 0x0d92 - textpointer Text0d93 ; 0x0d93 - textpointer Text0d94 ; 0x0d94 - textpointer Text0d95 ; 0x0d95 - textpointer Text0d96 ; 0x0d96 - textpointer Text0d97 ; 0x0d97 - textpointer Text0d98 ; 0x0d98 - textpointer Text0d99 ; 0x0d99 - textpointer Text0d9a ; 0x0d9a - textpointer Text0d9b ; 0x0d9b - textpointer Text0d9c ; 0x0d9c - textpointer Text0d9d ; 0x0d9d - textpointer Text0d9e ; 0x0d9e - textpointer Text0d9f ; 0x0d9f - textpointer Text0da0 ; 0x0da0 - textpointer Text0da1 ; 0x0da1 - textpointer Text0da2 ; 0x0da2 - textpointer Text0da3 ; 0x0da3 - textpointer Text0da4 ; 0x0da4 - textpointer Text0da5 ; 0x0da5 - textpointer Text0da6 ; 0x0da6 - textpointer Text0da7 ; 0x0da7 - textpointer Text0da8 ; 0x0da8 - textpointer Text0da9 ; 0x0da9 - textpointer Text0daa ; 0x0daa - textpointer Text0dab ; 0x0dab - textpointer Text0dac ; 0x0dac - textpointer Text0dad ; 0x0dad - textpointer Text0dae ; 0x0dae - textpointer Text0daf ; 0x0daf - textpointer Text0db0 ; 0x0db0 - textpointer Text0db1 ; 0x0db1 - textpointer Text0db2 ; 0x0db2 - textpointer Text0db3 ; 0x0db3 - textpointer Text0db4 ; 0x0db4 - textpointer Text0db5 ; 0x0db5 - textpointer Text0db6 ; 0x0db6 - textpointer Text0db7 ; 0x0db7 - textpointer Text0db8 ; 0x0db8 - textpointer Text0db9 ; 0x0db9 - textpointer Text0dba ; 0x0dba - textpointer Text0dbb ; 0x0dbb - textpointer Text0dbc ; 0x0dbc - textpointer Text0dbd ; 0x0dbd - textpointer Text0dbe ; 0x0dbe - textpointer Text0dbf ; 0x0dbf - textpointer Text0dc0 ; 0x0dc0 - textpointer Text0dc1 ; 0x0dc1 - textpointer Text0dc2 ; 0x0dc2 - textpointer Text0dc3 ; 0x0dc3 - textpointer Text0dc4 ; 0x0dc4 - textpointer Text0dc5 ; 0x0dc5 - textpointer Text0dc6 ; 0x0dc6 - textpointer Text0dc7 ; 0x0dc7 - textpointer Text0dc8 ; 0x0dc8 - textpointer Text0dc9 ; 0x0dc9 - textpointer Text0dca ; 0x0dca - textpointer Text0dcb ; 0x0dcb - textpointer Text0dcc ; 0x0dcc - textpointer Text0dcd ; 0x0dcd - textpointer Text0dce ; 0x0dce - textpointer Text0dcf ; 0x0dcf - textpointer Text0dd0 ; 0x0dd0 - textpointer Text0dd1 ; 0x0dd1 - textpointer Text0dd2 ; 0x0dd2 - textpointer Text0dd3 ; 0x0dd3 - textpointer Text0dd4 ; 0x0dd4 - textpointer Text0dd5 ; 0x0dd5 - textpointer Text0dd6 ; 0x0dd6 - textpointer Text0dd7 ; 0x0dd7 - textpointer Text0dd8 ; 0x0dd8 - textpointer Text0dd9 ; 0x0dd9 - textpointer Text0dda ; 0x0dda - textpointer Text0ddb ; 0x0ddb - textpointer Text0ddc ; 0x0ddc - textpointer Text0ddd ; 0x0ddd - textpointer Text0dde ; 0x0dde - textpointer Text0ddf ; 0x0ddf - textpointer Text0de0 ; 0x0de0 - textpointer Text0de1 ; 0x0de1 - textpointer Text0de2 ; 0x0de2 - textpointer Text0de3 ; 0x0de3 - textpointer Text0de4 ; 0x0de4 - textpointer Text0de5 ; 0x0de5 - textpointer Text0de6 ; 0x0de6 - textpointer Text0de7 ; 0x0de7 - textpointer Text0de8 ; 0x0de8 - textpointer Text0de9 ; 0x0de9 - textpointer Text0dea ; 0x0dea - textpointer Text0deb ; 0x0deb - textpointer Text0dec ; 0x0dec - textpointer Text0ded ; 0x0ded - textpointer Text0dee ; 0x0dee - textpointer Text0def ; 0x0def - textpointer Text0df0 ; 0x0df0 - textpointer Text0df1 ; 0x0df1 - textpointer Text0df2 ; 0x0df2 - textpointer Text0df3 ; 0x0df3 - textpointer Text0df4 ; 0x0df4 - textpointer Text0df5 ; 0x0df5 - textpointer Text0df6 ; 0x0df6 - textpointer Text0df7 ; 0x0df7 - textpointer Text0df8 ; 0x0df8 - textpointer Text0df9 ; 0x0df9 - textpointer Text0dfa ; 0x0dfa - textpointer Text0dfb ; 0x0dfb - textpointer Text0dfc ; 0x0dfc - textpointer Text0dfd ; 0x0dfd - textpointer Text0dfe ; 0x0dfe - textpointer Text0dff ; 0x0dff - textpointer Text0e00 ; 0x0e00 - textpointer Text0e01 ; 0x0e01 - textpointer Text0e02 ; 0x0e02 - textpointer Text0e03 ; 0x0e03 - textpointer Text0e04 ; 0x0e04 - textpointer Text0e05 ; 0x0e05 - textpointer Text0e06 ; 0x0e06 - textpointer Text0e07 ; 0x0e07 - textpointer Text0e08 ; 0x0e08 - textpointer Text0e09 ; 0x0e09 - textpointer Text0e0a ; 0x0e0a - textpointer Text0e0b ; 0x0e0b - textpointer Text0e0c ; 0x0e0c - textpointer Text0e0d ; 0x0e0d - textpointer Text0e0e ; 0x0e0e - textpointer Text0e0f ; 0x0e0f - textpointer Text0e10 ; 0x0e10 - textpointer Text0e11 ; 0x0e11 - textpointer Text0e12 ; 0x0e12 - textpointer Text0e13 ; 0x0e13 - textpointer Text0e14 ; 0x0e14 - textpointer Text0e15 ; 0x0e15 - textpointer Text0e16 ; 0x0e16 - textpointer Text0e17 ; 0x0e17 - textpointer Text0e18 ; 0x0e18 - textpointer Text0e19 ; 0x0e19 - textpointer Text0e1a ; 0x0e1a - textpointer Text0e1b ; 0x0e1b - textpointer Text0e1c ; 0x0e1c - textpointer Text0e1d ; 0x0e1d - textpointer Text0e1e ; 0x0e1e - textpointer Text0e1f ; 0x0e1f - textpointer Text0e20 ; 0x0e20 - textpointer Text0e21 ; 0x0e21 - textpointer Text0e22 ; 0x0e22 - textpointer Text0e23 ; 0x0e23 - textpointer Text0e24 ; 0x0e24 - textpointer Text0e25 ; 0x0e25 - textpointer Text0e26 ; 0x0e26 - textpointer Text0e27 ; 0x0e27 - textpointer Text0e28 ; 0x0e28 - textpointer Text0e29 ; 0x0e29 - textpointer Text0e2a ; 0x0e2a - textpointer Text0e2b ; 0x0e2b - textpointer Text0e2c ; 0x0e2c - textpointer Text0e2d ; 0x0e2d - textpointer Text0e2e ; 0x0e2e - textpointer Text0e2f ; 0x0e2f - textpointer Text0e30 ; 0x0e30 - textpointer Text0e31 ; 0x0e31 - textpointer Text0e32 ; 0x0e32 - textpointer Text0e33 ; 0x0e33 - textpointer Text0e34 ; 0x0e34 - textpointer Text0e35 ; 0x0e35 - textpointer Text0e36 ; 0x0e36 - textpointer Text0e37 ; 0x0e37 - textpointer Text0e38 ; 0x0e38 - textpointer Text0e39 ; 0x0e39 - textpointer Text0e3a ; 0x0e3a - textpointer Text0e3b ; 0x0e3b - textpointer Text0e3c ; 0x0e3c - textpointer Text0e3d ; 0x0e3d - textpointer Text0e3e ; 0x0e3e - textpointer Text0e3f ; 0x0e3f - textpointer Text0e40 ; 0x0e40 - textpointer Text0e41 ; 0x0e41 - textpointer Text0e42 ; 0x0e42 - textpointer Text0e43 ; 0x0e43 - textpointer Text0e44 ; 0x0e44 - textpointer Text0e45 ; 0x0e45 - textpointer Text0e46 ; 0x0e46 - textpointer Text0e47 ; 0x0e47 - textpointer Text0e48 ; 0x0e48 - textpointer Text0e49 ; 0x0e49 - textpointer Text0e4a ; 0x0e4a - textpointer Text0e4b ; 0x0e4b - textpointer Text0e4c ; 0x0e4c - textpointer Text0e4d ; 0x0e4d - textpointer Text0e4e ; 0x0e4e - textpointer Text0e4f ; 0x0e4f - textpointer Text0e50 ; 0x0e50 - textpointer Text0e51 ; 0x0e51 - textpointer Text0e52 ; 0x0e52 - textpointer Text0e53 ; 0x0e53 - textpointer Text0e54 ; 0x0e54 - textpointer Text0e55 ; 0x0e55 - textpointer Text0e56 ; 0x0e56 - textpointer Text0e57 ; 0x0e57 - textpointer Text0e58 ; 0x0e58 - textpointer Text0e59 ; 0x0e59 - textpointer Text0e5a ; 0x0e5a - textpointer Text0e5b ; 0x0e5b - textpointer Text0e5c ; 0x0e5c - textpointer Text0e5d ; 0x0e5d - textpointer Text0e5e ; 0x0e5e - textpointer Text0e5f ; 0x0e5f - textpointer Text0e60 ; 0x0e60 - textpointer Text0e61 ; 0x0e61 - textpointer Text0e62 ; 0x0e62 - textpointer Text0e63 ; 0x0e63 - textpointer Text0e64 ; 0x0e64 - textpointer Text0e65 ; 0x0e65 - textpointer Text0e66 ; 0x0e66 - textpointer Text0e67 ; 0x0e67 - textpointer Text0e68 ; 0x0e68 - textpointer Text0e69 ; 0x0e69 - textpointer Text0e6a ; 0x0e6a - textpointer Text0e6b ; 0x0e6b - textpointer Text0e6c ; 0x0e6c - textpointer Text0e6d ; 0x0e6d - textpointer Text0e6e ; 0x0e6e - textpointer Text0e6f ; 0x0e6f - textpointer Text0e70 ; 0x0e70 - textpointer Text0e71 ; 0x0e71 - textpointer Text0e72 ; 0x0e72 - textpointer Text0e73 ; 0x0e73 - textpointer Text0e74 ; 0x0e74 - textpointer Text0e75 ; 0x0e75 - textpointer Text0e76 ; 0x0e76 - textpointer Text0e77 ; 0x0e77 - textpointer Text0e78 ; 0x0e78 - textpointer Text0e79 ; 0x0e79 - textpointer Text0e7a ; 0x0e7a - textpointer Text0e7b ; 0x0e7b - textpointer Text0e7c ; 0x0e7c - textpointer Text0e7d ; 0x0e7d - textpointer Text0e7e ; 0x0e7e - textpointer Text0e7f ; 0x0e7f - textpointer Text0e80 ; 0x0e80 - textpointer Text0e81 ; 0x0e81 - textpointer Text0e82 ; 0x0e82 - textpointer Text0e83 ; 0x0e83 - textpointer Text0e84 ; 0x0e84 - textpointer Text0e85 ; 0x0e85 - textpointer Text0e86 ; 0x0e86 - textpointer Text0e87 ; 0x0e87 - textpointer Text0e88 ; 0x0e88 - textpointer Text0e89 ; 0x0e89 - textpointer Text0e8a ; 0x0e8a - textpointer Text0e8b ; 0x0e8b - textpointer Text0e8c ; 0x0e8c - textpointer Text0e8d ; 0x0e8d - textpointer Text0e8e ; 0x0e8e - textpointer Text0e8f ; 0x0e8f - textpointer Text0e90 ; 0x0e90 - textpointer Text0e91 ; 0x0e91 - textpointer Text0e92 ; 0x0e92 - textpointer Text0e93 ; 0x0e93 - textpointer Text0e94 ; 0x0e94 - textpointer Text0e95 ; 0x0e95 - textpointer Text0e96 ; 0x0e96 - textpointer Text0e97 ; 0x0e97 - textpointer Text0e98 ; 0x0e98 - textpointer Text0e99 ; 0x0e99 - textpointer Text0e9a ; 0x0e9a - textpointer Text0e9b ; 0x0e9b - textpointer Text0e9c ; 0x0e9c - textpointer Text0e9d ; 0x0e9d - textpointer Text0e9e ; 0x0e9e - textpointer Text0e9f ; 0x0e9f - textpointer Text0ea0 ; 0x0ea0 - textpointer Text0ea1 ; 0x0ea1 - textpointer Text0ea2 ; 0x0ea2 - textpointer Text0ea3 ; 0x0ea3 - textpointer Text0ea4 ; 0x0ea4 - textpointer Text0ea5 ; 0x0ea5 - textpointer Text0ea6 ; 0x0ea6 - textpointer Text0ea7 ; 0x0ea7 - textpointer Text0ea8 ; 0x0ea8 - textpointer Text0ea9 ; 0x0ea9 - textpointer Text0eaa ; 0x0eaa - textpointer Text0eab ; 0x0eab - textpointer Text0eac ; 0x0eac - textpointer Text0ead ; 0x0ead - textpointer Text0eae ; 0x0eae - textpointer Text0eaf ; 0x0eaf - textpointer Text0eb0 ; 0x0eb0 - textpointer Text0eb1 ; 0x0eb1 - textpointer Text0eb2 ; 0x0eb2 - textpointer Text0eb3 ; 0x0eb3 - textpointer Text0eb4 ; 0x0eb4 - textpointer Text0eb5 ; 0x0eb5 - textpointer Text0eb6 ; 0x0eb6 - textpointer Text0eb7 ; 0x0eb7 - textpointer Text0eb8 ; 0x0eb8 - textpointer Text0eb9 ; 0x0eb9 - textpointer Text0eba ; 0x0eba - textpointer Text0ebb ; 0x0ebb - textpointer Text0ebc ; 0x0ebc - textpointer Text0ebd ; 0x0ebd - textpointer Text0ebe ; 0x0ebe - textpointer Text0ebf ; 0x0ebf - textpointer Text0ec0 ; 0x0ec0 - textpointer Text0ec1 ; 0x0ec1 - textpointer Text0ec2 ; 0x0ec2 - textpointer Text0ec3 ; 0x0ec3 - textpointer Text0ec4 ; 0x0ec4 - textpointer Text0ec5 ; 0x0ec5 - textpointer Text0ec6 ; 0x0ec6 - textpointer Text0ec7 ; 0x0ec7 - textpointer Text0ec8 ; 0x0ec8 - textpointer Text0ec9 ; 0x0ec9 - textpointer Text0eca ; 0x0eca - textpointer Text0ecb ; 0x0ecb - textpointer Text0ecc ; 0x0ecc - textpointer Text0ecd ; 0x0ecd - textpointer Text0ece ; 0x0ece - textpointer Text0ecf ; 0x0ecf - textpointer Text0ed0 ; 0x0ed0 - textpointer Text0ed1 ; 0x0ed1 - textpointer Text0ed2 ; 0x0ed2 - textpointer Text0ed3 ; 0x0ed3 - textpointer Text0ed4 ; 0x0ed4 - textpointer Text0ed5 ; 0x0ed5 - textpointer Text0ed6 ; 0x0ed6 - textpointer Text0ed7 ; 0x0ed7 - textpointer Text0ed8 ; 0x0ed8 - textpointer Text0ed9 ; 0x0ed9 - textpointer Text0eda ; 0x0eda - textpointer Text0edb ; 0x0edb - textpointer Text0edc ; 0x0edc - textpointer Text0edd ; 0x0edd - textpointer Text0ede ; 0x0ede - textpointer Text0edf ; 0x0edf - textpointer Text0ee0 ; 0x0ee0 - textpointer Text0ee1 ; 0x0ee1 - textpointer Text0ee2 ; 0x0ee2 - textpointer Text0ee3 ; 0x0ee3 - textpointer Text0ee4 ; 0x0ee4 - textpointer Text0ee5 ; 0x0ee5 - textpointer Text0ee6 ; 0x0ee6 - textpointer Text0ee7 ; 0x0ee7 - textpointer Text0ee8 ; 0x0ee8 - textpointer Text0ee9 ; 0x0ee9 - textpointer Text0eea ; 0x0eea - textpointer Text0eeb ; 0x0eeb - textpointer Text0eec ; 0x0eec - textpointer Text0eed ; 0x0eed - textpointer Text0eee ; 0x0eee - textpointer Text0eef ; 0x0eef - textpointer Text0ef0 ; 0x0ef0 - textpointer Text0ef1 ; 0x0ef1 - textpointer Text0ef2 ; 0x0ef2 - textpointer Text0ef3 ; 0x0ef3 - textpointer Text0ef4 ; 0x0ef4 - textpointer Text0ef5 ; 0x0ef5 - textpointer Text0ef6 ; 0x0ef6 - textpointer Text0ef7 ; 0x0ef7 - textpointer Text0ef8 ; 0x0ef8 - textpointer Text0ef9 ; 0x0ef9 - textpointer Text0efa ; 0x0efa - textpointer Text0efb ; 0x0efb - textpointer Text0efc ; 0x0efc - textpointer Text0efd ; 0x0efd - textpointer Text0efe ; 0x0efe - textpointer Text0eff ; 0x0eff - textpointer Text0f00 ; 0x0f00 - textpointer Text0f01 ; 0x0f01 - textpointer Text0f02 ; 0x0f02 - textpointer Text0f03 ; 0x0f03 - textpointer Text0f04 ; 0x0f04 - textpointer Text0f05 ; 0x0f05 - textpointer Text0f06 ; 0x0f06 - textpointer Text0f07 ; 0x0f07 - textpointer Text0f08 ; 0x0f08 - textpointer Text0f09 ; 0x0f09 - textpointer Text0f0a ; 0x0f0a - textpointer Text0f0b ; 0x0f0b - textpointer Text0f0c ; 0x0f0c - textpointer Text0f0d ; 0x0f0d - textpointer Text0f0e ; 0x0f0e - textpointer Text0f0f ; 0x0f0f - textpointer Text0f10 ; 0x0f10 - textpointer Text0f11 ; 0x0f11 - textpointer Text0f12 ; 0x0f12 - textpointer Text0f13 ; 0x0f13 - textpointer Text0f14 ; 0x0f14 - textpointer Text0f15 ; 0x0f15 - textpointer Text0f16 ; 0x0f16 - textpointer Text0f17 ; 0x0f17 - textpointer Text0f18 ; 0x0f18 - textpointer Text0f19 ; 0x0f19 - textpointer Text0f1a ; 0x0f1a - textpointer Text0f1b ; 0x0f1b - textpointer Text0f1c ; 0x0f1c - textpointer Text0f1d ; 0x0f1d - textpointer Text0f1e ; 0x0f1e - textpointer Text0f1f ; 0x0f1f - textpointer Text0f20 ; 0x0f20 - textpointer Text0f21 ; 0x0f21 - textpointer Text0f22 ; 0x0f22 - textpointer Text0f23 ; 0x0f23 - textpointer Text0f24 ; 0x0f24 - textpointer Text0f25 ; 0x0f25 - textpointer Text0f26 ; 0x0f26 - textpointer Text0f27 ; 0x0f27 - textpointer Text0f28 ; 0x0f28 - textpointer Text0f29 ; 0x0f29 - textpointer Text0f2a ; 0x0f2a - textpointer Text0f2b ; 0x0f2b - textpointer Text0f2c ; 0x0f2c - textpointer Text0f2d ; 0x0f2d - textpointer Text0f2e ; 0x0f2e - textpointer Text0f2f ; 0x0f2f - textpointer Text0f30 ; 0x0f30 - textpointer Text0f31 ; 0x0f31 - textpointer Text0f32 ; 0x0f32 - textpointer Text0f33 ; 0x0f33 - textpointer Text0f34 ; 0x0f34 - textpointer Text0f35 ; 0x0f35 - textpointer Text0f36 ; 0x0f36 - textpointer Text0f37 ; 0x0f37 - textpointer Text0f38 ; 0x0f38 - textpointer Text0f39 ; 0x0f39 - textpointer Text0f3a ; 0x0f3a - textpointer Text0f3b ; 0x0f3b - textpointer Text0f3c ; 0x0f3c - textpointer Text0f3d ; 0x0f3d - textpointer Text0f3e ; 0x0f3e - textpointer Text0f3f ; 0x0f3f - textpointer Text0f40 ; 0x0f40 - textpointer Text0f41 ; 0x0f41 - textpointer Text0f42 ; 0x0f42 - textpointer Text0f43 ; 0x0f43 - textpointer Text0f44 ; 0x0f44 - textpointer Text0f45 ; 0x0f45 - textpointer Text0f46 ; 0x0f46 - textpointer Text0f47 ; 0x0f47 - textpointer Text0f48 ; 0x0f48 - textpointer Text0f49 ; 0x0f49 - textpointer Text0f4a ; 0x0f4a - textpointer Text0f4b ; 0x0f4b - textpointer Text0f4c ; 0x0f4c - textpointer Text0f4d ; 0x0f4d - textpointer Text0f4e ; 0x0f4e - textpointer Text0f4f ; 0x0f4f - textpointer Text0f50 ; 0x0f50 - textpointer Text0f51 ; 0x0f51 - textpointer Text0f52 ; 0x0f52 - textpointer Text0f53 ; 0x0f53 - textpointer Text0f54 ; 0x0f54 - textpointer Text0f55 ; 0x0f55 - textpointer Text0f56 ; 0x0f56 - textpointer Text0f57 ; 0x0f57 - textpointer Text0f58 ; 0x0f58 - textpointer Text0f59 ; 0x0f59 - textpointer Text0f5a ; 0x0f5a - textpointer Text0f5b ; 0x0f5b - textpointer Text0f5c ; 0x0f5c - textpointer Text0f5d ; 0x0f5d - textpointer Text0f5e ; 0x0f5e - textpointer Text0f5f ; 0x0f5f - textpointer Text0f60 ; 0x0f60 - textpointer Text0f61 ; 0x0f61 - textpointer Text0f62 ; 0x0f62 - textpointer Text0f63 ; 0x0f63 - textpointer Text0f64 ; 0x0f64 - textpointer Text0f65 ; 0x0f65 - textpointer Text0f66 ; 0x0f66 - textpointer Text0f67 ; 0x0f67 - textpointer Text0f68 ; 0x0f68 - textpointer Text0f69 ; 0x0f69 - textpointer Text0f6a ; 0x0f6a - textpointer Text0f6b ; 0x0f6b - textpointer Text0f6c ; 0x0f6c - textpointer Text0f6d ; 0x0f6d - textpointer Text0f6e ; 0x0f6e - textpointer Text0f6f ; 0x0f6f - textpointer Text0f70 ; 0x0f70 - textpointer Text0f71 ; 0x0f71 - textpointer Text0f72 ; 0x0f72 - textpointer Text0f73 ; 0x0f73 - textpointer Text0f74 ; 0x0f74 - textpointer Text0f75 ; 0x0f75 - textpointer Text0f76 ; 0x0f76 - textpointer Text0f77 ; 0x0f77 - textpointer Text0f78 ; 0x0f78 - textpointer Text0f79 ; 0x0f79 - textpointer Text0f7a ; 0x0f7a - textpointer Text0f7b ; 0x0f7b - textpointer Text0f7c ; 0x0f7c - textpointer Text0f7d ; 0x0f7d - textpointer Text0f7e ; 0x0f7e - textpointer Text0f7f ; 0x0f7f - textpointer Text0f80 ; 0x0f80 - textpointer Text0f81 ; 0x0f81 - textpointer Text0f82 ; 0x0f82 - textpointer Text0f83 ; 0x0f83 - textpointer Text0f84 ; 0x0f84 - textpointer Text0f85 ; 0x0f85 - textpointer Text0f86 ; 0x0f86 - textpointer Text0f87 ; 0x0f87 - textpointer Text0f88 ; 0x0f88 - textpointer Text0f89 ; 0x0f89 - textpointer Text0f8a ; 0x0f8a - textpointer Text0f8b ; 0x0f8b - textpointer Text0f8c ; 0x0f8c - textpointer Text0f8d ; 0x0f8d - textpointer Text0f8e ; 0x0f8e - textpointer Text0f8f ; 0x0f8f - textpointer Text0f90 ; 0x0f90 - textpointer Text0f91 ; 0x0f91 - textpointer Text0f92 ; 0x0f92 - textpointer Text0f93 ; 0x0f93 - textpointer Text0f94 ; 0x0f94 - textpointer Text0f95 ; 0x0f95 - textpointer Text0f96 ; 0x0f96 - textpointer Text0f97 ; 0x0f97 - textpointer Text0f98 ; 0x0f98 - textpointer Text0f99 ; 0x0f99 - textpointer Text0f9a ; 0x0f9a - textpointer Text0f9b ; 0x0f9b - textpointer Text0f9c ; 0x0f9c - textpointer Text0f9d ; 0x0f9d - textpointer Text0f9e ; 0x0f9e - textpointer Text0f9f ; 0x0f9f - textpointer Text0fa0 ; 0x0fa0 - textpointer Text0fa1 ; 0x0fa1 - textpointer Text0fa2 ; 0x0fa2 - textpointer Text0fa3 ; 0x0fa3 - textpointer Text0fa4 ; 0x0fa4 - textpointer Text0fa5 ; 0x0fa5 - textpointer Text0fa6 ; 0x0fa6 - textpointer Text0fa7 ; 0x0fa7 - textpointer Text0fa8 ; 0x0fa8 - textpointer Text0fa9 ; 0x0fa9 - textpointer Text0faa ; 0x0faa - textpointer Text0fab ; 0x0fab - textpointer Text0fac ; 0x0fac - textpointer Text0fad ; 0x0fad - textpointer Text0fae ; 0x0fae - textpointer Text0faf ; 0x0faf - textpointer Text0fb0 ; 0x0fb0 - textpointer Text0fb1 ; 0x0fb1 - textpointer Text0fb2 ; 0x0fb2 - textpointer Text0fb3 ; 0x0fb3 - textpointer Text0fb4 ; 0x0fb4 - textpointer Text0fb5 ; 0x0fb5 - textpointer Text0fb6 ; 0x0fb6 - textpointer Text0fb7 ; 0x0fb7 - textpointer Text0fb8 ; 0x0fb8 - textpointer Text0fb9 ; 0x0fb9 - textpointer Text0fba ; 0x0fba - textpointer Text0fbb ; 0x0fbb - textpointer Text0fbc ; 0x0fbc - textpointer Text0fbd ; 0x0fbd - textpointer Text0fbe ; 0x0fbe - textpointer Text0fbf ; 0x0fbf - textpointer Text0fc0 ; 0x0fc0 - textpointer Text0fc1 ; 0x0fc1 - textpointer Text0fc2 ; 0x0fc2 - textpointer Text0fc3 ; 0x0fc3 - textpointer Text0fc4 ; 0x0fc4 - textpointer Text0fc5 ; 0x0fc5 - textpointer Text0fc6 ; 0x0fc6 - textpointer Text0fc7 ; 0x0fc7 - textpointer Text0fc8 ; 0x0fc8 - textpointer Text0fc9 ; 0x0fc9 - textpointer Text0fca ; 0x0fca - textpointer Text0fcb ; 0x0fcb - textpointer Text0fcc ; 0x0fcc - textpointer Text0fcd ; 0x0fcd - textpointer Text0fce ; 0x0fce - textpointer Text0fcf ; 0x0fcf - textpointer Text0fd0 ; 0x0fd0 - textpointer Text0fd1 ; 0x0fd1 - textpointer Text0fd2 ; 0x0fd2 - textpointer Text0fd3 ; 0x0fd3 - textpointer Text0fd4 ; 0x0fd4 - textpointer Text0fd5 ; 0x0fd5 - textpointer Text0fd6 ; 0x0fd6 - textpointer Text0fd7 ; 0x0fd7 - textpointer Text0fd8 ; 0x0fd8 - textpointer Text0fd9 ; 0x0fd9 - textpointer Text0fda ; 0x0fda - textpointer Text0fdb ; 0x0fdb - textpointer Text0fdc ; 0x0fdc - textpointer Text0fdd ; 0x0fdd - textpointer Text0fde ; 0x0fde - textpointer Text0fdf ; 0x0fdf - textpointer Text0fe0 ; 0x0fe0 - textpointer Text0fe1 ; 0x0fe1 - textpointer Text0fe2 ; 0x0fe2 - textpointer Text0fe3 ; 0x0fe3 - textpointer Text0fe4 ; 0x0fe4 - textpointer Text0fe5 ; 0x0fe5 - textpointer Text0fe6 ; 0x0fe6 - textpointer Text0fe7 ; 0x0fe7 - textpointer Text0fe8 ; 0x0fe8 - textpointer Text0fe9 ; 0x0fe9 - textpointer Text0fea ; 0x0fea - textpointer Text0feb ; 0x0feb - textpointer Text0fec ; 0x0fec - textpointer Text0fed ; 0x0fed - textpointer Text0fee ; 0x0fee - textpointer Text0fef ; 0x0fef - textpointer Text0ff0 ; 0x0ff0 - textpointer Text0ff1 ; 0x0ff1 - textpointer Text0ff2 ; 0x0ff2 - textpointer Text0ff3 ; 0x0ff3 - textpointer Text0ff4 ; 0x0ff4 - textpointer Text0ff5 ; 0x0ff5 - textpointer Text0ff6 ; 0x0ff6 - textpointer Text0ff7 ; 0x0ff7 - textpointer Text0ff8 ; 0x0ff8 - textpointer Text0ff9 ; 0x0ff9 - textpointer Text0ffa ; 0x0ffa - textpointer Text0ffb ; 0x0ffb - textpointer Text0ffc ; 0x0ffc - textpointer Text0ffd ; 0x0ffd - textpointer Text0ffe ; 0x0ffe - textpointer Text0fff ; 0x0fff + textpointer Text0d87 ; 0x0d87 + textpointer Text0d88 ; 0x0d88 + textpointer Text0d89 ; 0x0d89 + textpointer Text0d8a ; 0x0d8a + textpointer Text0d8b ; 0x0d8b + textpointer Text0d8c ; 0x0d8c + textpointer Text0d8d ; 0x0d8d + textpointer Text0d8e ; 0x0d8e + textpointer Text0d8f ; 0x0d8f + textpointer Text0d90 ; 0x0d90 + textpointer Text0d91 ; 0x0d91 + textpointer Text0d92 ; 0x0d92 + textpointer Text0d93 ; 0x0d93 + textpointer Text0d94 ; 0x0d94 + textpointer Text0d95 ; 0x0d95 + textpointer Text0d96 ; 0x0d96 + textpointer Text0d97 ; 0x0d97 + textpointer Text0d98 ; 0x0d98 + textpointer Text0d99 ; 0x0d99 + textpointer Text0d9a ; 0x0d9a + textpointer Text0d9b ; 0x0d9b + textpointer Text0d9c ; 0x0d9c + textpointer Text0d9d ; 0x0d9d + textpointer Text0d9e ; 0x0d9e + textpointer Text0d9f ; 0x0d9f + textpointer Text0da0 ; 0x0da0 + textpointer Text0da1 ; 0x0da1 + textpointer Text0da2 ; 0x0da2 + textpointer Text0da3 ; 0x0da3 + textpointer Text0da4 ; 0x0da4 + textpointer Text0da5 ; 0x0da5 + textpointer Text0da6 ; 0x0da6 + textpointer Text0da7 ; 0x0da7 + textpointer Text0da8 ; 0x0da8 + textpointer Text0da9 ; 0x0da9 + textpointer Text0daa ; 0x0daa + textpointer Text0dab ; 0x0dab + textpointer Text0dac ; 0x0dac + textpointer Text0dad ; 0x0dad + textpointer Text0dae ; 0x0dae + textpointer Text0daf ; 0x0daf + textpointer Text0db0 ; 0x0db0 + textpointer Text0db1 ; 0x0db1 + textpointer Text0db2 ; 0x0db2 + textpointer Text0db3 ; 0x0db3 + textpointer Text0db4 ; 0x0db4 + textpointer Text0db5 ; 0x0db5 + textpointer Text0db6 ; 0x0db6 + textpointer Text0db7 ; 0x0db7 + textpointer Text0db8 ; 0x0db8 + textpointer Text0db9 ; 0x0db9 + textpointer Text0dba ; 0x0dba + textpointer Text0dbb ; 0x0dbb + textpointer Text0dbc ; 0x0dbc + textpointer Text0dbd ; 0x0dbd + textpointer Text0dbe ; 0x0dbe + textpointer Text0dbf ; 0x0dbf + textpointer Text0dc0 ; 0x0dc0 + textpointer Text0dc1 ; 0x0dc1 + textpointer Text0dc2 ; 0x0dc2 + textpointer Text0dc3 ; 0x0dc3 + textpointer Text0dc4 ; 0x0dc4 + textpointer Text0dc5 ; 0x0dc5 + textpointer Text0dc6 ; 0x0dc6 + textpointer Text0dc7 ; 0x0dc7 + textpointer Text0dc8 ; 0x0dc8 + textpointer Text0dc9 ; 0x0dc9 + textpointer Text0dca ; 0x0dca + textpointer Text0dcb ; 0x0dcb + textpointer Text0dcc ; 0x0dcc + textpointer Text0dcd ; 0x0dcd + textpointer Text0dce ; 0x0dce + textpointer Text0dcf ; 0x0dcf + textpointer Text0dd0 ; 0x0dd0 + textpointer Text0dd1 ; 0x0dd1 + textpointer Text0dd2 ; 0x0dd2 + textpointer Text0dd3 ; 0x0dd3 + textpointer Text0dd4 ; 0x0dd4 + textpointer Text0dd5 ; 0x0dd5 + textpointer Text0dd6 ; 0x0dd6 + textpointer Text0dd7 ; 0x0dd7 + textpointer Text0dd8 ; 0x0dd8 + textpointer Text0dd9 ; 0x0dd9 + textpointer Text0dda ; 0x0dda + textpointer Text0ddb ; 0x0ddb + textpointer Text0ddc ; 0x0ddc + textpointer Text0ddd ; 0x0ddd + textpointer Text0dde ; 0x0dde + textpointer Text0ddf ; 0x0ddf + textpointer Text0de0 ; 0x0de0 + textpointer Text0de1 ; 0x0de1 + textpointer Text0de2 ; 0x0de2 + textpointer Text0de3 ; 0x0de3 + textpointer Text0de4 ; 0x0de4 + textpointer Text0de5 ; 0x0de5 + textpointer Text0de6 ; 0x0de6 + textpointer Text0de7 ; 0x0de7 + textpointer Text0de8 ; 0x0de8 + textpointer Text0de9 ; 0x0de9 + textpointer Text0dea ; 0x0dea + textpointer Text0deb ; 0x0deb + textpointer Text0dec ; 0x0dec + textpointer Text0ded ; 0x0ded + textpointer Text0dee ; 0x0dee + textpointer Text0def ; 0x0def + textpointer Text0df0 ; 0x0df0 + textpointer Text0df1 ; 0x0df1 + textpointer Text0df2 ; 0x0df2 + textpointer Text0df3 ; 0x0df3 + textpointer Text0df4 ; 0x0df4 + textpointer Text0df5 ; 0x0df5 + textpointer Text0df6 ; 0x0df6 + textpointer Text0df7 ; 0x0df7 + textpointer Text0df8 ; 0x0df8 + textpointer Text0df9 ; 0x0df9 + textpointer Text0dfa ; 0x0dfa + textpointer Text0dfb ; 0x0dfb + textpointer Text0dfc ; 0x0dfc + textpointer Text0dfd ; 0x0dfd + textpointer Text0dfe ; 0x0dfe + textpointer Text0dff ; 0x0dff + textpointer Text0e00 ; 0x0e00 + textpointer Text0e01 ; 0x0e01 + textpointer Text0e02 ; 0x0e02 + textpointer Text0e03 ; 0x0e03 + textpointer Text0e04 ; 0x0e04 + textpointer Text0e05 ; 0x0e05 + textpointer Text0e06 ; 0x0e06 + textpointer Text0e07 ; 0x0e07 + textpointer Text0e08 ; 0x0e08 + textpointer Text0e09 ; 0x0e09 + textpointer Text0e0a ; 0x0e0a + textpointer Text0e0b ; 0x0e0b + textpointer Text0e0c ; 0x0e0c + textpointer Text0e0d ; 0x0e0d + textpointer Text0e0e ; 0x0e0e + textpointer Text0e0f ; 0x0e0f + textpointer Text0e10 ; 0x0e10 + textpointer Text0e11 ; 0x0e11 + textpointer Text0e12 ; 0x0e12 + textpointer Text0e13 ; 0x0e13 + textpointer Text0e14 ; 0x0e14 + textpointer Text0e15 ; 0x0e15 + textpointer Text0e16 ; 0x0e16 + textpointer Text0e17 ; 0x0e17 + textpointer Text0e18 ; 0x0e18 + textpointer Text0e19 ; 0x0e19 + textpointer Text0e1a ; 0x0e1a + textpointer Text0e1b ; 0x0e1b + textpointer Text0e1c ; 0x0e1c + textpointer Text0e1d ; 0x0e1d + textpointer Text0e1e ; 0x0e1e + textpointer Text0e1f ; 0x0e1f + textpointer Text0e20 ; 0x0e20 + textpointer Text0e21 ; 0x0e21 + textpointer Text0e22 ; 0x0e22 + textpointer Text0e23 ; 0x0e23 + textpointer Text0e24 ; 0x0e24 + textpointer Text0e25 ; 0x0e25 + textpointer Text0e26 ; 0x0e26 + textpointer Text0e27 ; 0x0e27 + textpointer Text0e28 ; 0x0e28 + textpointer Text0e29 ; 0x0e29 + textpointer Text0e2a ; 0x0e2a + textpointer Text0e2b ; 0x0e2b + textpointer Text0e2c ; 0x0e2c + textpointer Text0e2d ; 0x0e2d + textpointer Text0e2e ; 0x0e2e + textpointer Text0e2f ; 0x0e2f + textpointer Text0e30 ; 0x0e30 + textpointer Text0e31 ; 0x0e31 + textpointer Text0e32 ; 0x0e32 + textpointer Text0e33 ; 0x0e33 + textpointer Text0e34 ; 0x0e34 + textpointer Text0e35 ; 0x0e35 + textpointer Text0e36 ; 0x0e36 + textpointer Text0e37 ; 0x0e37 + textpointer Text0e38 ; 0x0e38 + textpointer Text0e39 ; 0x0e39 + textpointer Text0e3a ; 0x0e3a + textpointer Text0e3b ; 0x0e3b + textpointer Text0e3c ; 0x0e3c + textpointer Text0e3d ; 0x0e3d + textpointer Text0e3e ; 0x0e3e + textpointer Text0e3f ; 0x0e3f + textpointer Text0e40 ; 0x0e40 + textpointer Text0e41 ; 0x0e41 + textpointer Text0e42 ; 0x0e42 + textpointer Text0e43 ; 0x0e43 + textpointer Text0e44 ; 0x0e44 + textpointer Text0e45 ; 0x0e45 + textpointer Text0e46 ; 0x0e46 + textpointer Text0e47 ; 0x0e47 + textpointer Text0e48 ; 0x0e48 + textpointer Text0e49 ; 0x0e49 + textpointer Text0e4a ; 0x0e4a + textpointer Text0e4b ; 0x0e4b + textpointer Text0e4c ; 0x0e4c + textpointer Text0e4d ; 0x0e4d + textpointer Text0e4e ; 0x0e4e + textpointer Text0e4f ; 0x0e4f + textpointer Text0e50 ; 0x0e50 + textpointer Text0e51 ; 0x0e51 + textpointer Text0e52 ; 0x0e52 + textpointer Text0e53 ; 0x0e53 + textpointer Text0e54 ; 0x0e54 + textpointer Text0e55 ; 0x0e55 + textpointer Text0e56 ; 0x0e56 + textpointer Text0e57 ; 0x0e57 + textpointer Text0e58 ; 0x0e58 + textpointer Text0e59 ; 0x0e59 + textpointer Text0e5a ; 0x0e5a + textpointer Text0e5b ; 0x0e5b + textpointer Text0e5c ; 0x0e5c + textpointer Text0e5d ; 0x0e5d + textpointer Text0e5e ; 0x0e5e + textpointer Text0e5f ; 0x0e5f + textpointer Text0e60 ; 0x0e60 + textpointer Text0e61 ; 0x0e61 + textpointer Text0e62 ; 0x0e62 + textpointer Text0e63 ; 0x0e63 + textpointer Text0e64 ; 0x0e64 + textpointer Text0e65 ; 0x0e65 + textpointer Text0e66 ; 0x0e66 + textpointer Text0e67 ; 0x0e67 + textpointer Text0e68 ; 0x0e68 + textpointer Text0e69 ; 0x0e69 + textpointer Text0e6a ; 0x0e6a + textpointer Text0e6b ; 0x0e6b + textpointer Text0e6c ; 0x0e6c + textpointer Text0e6d ; 0x0e6d + textpointer Text0e6e ; 0x0e6e + textpointer Text0e6f ; 0x0e6f + textpointer Text0e70 ; 0x0e70 + textpointer Text0e71 ; 0x0e71 + textpointer Text0e72 ; 0x0e72 + textpointer Text0e73 ; 0x0e73 + textpointer Text0e74 ; 0x0e74 + textpointer Text0e75 ; 0x0e75 + textpointer Text0e76 ; 0x0e76 + textpointer Text0e77 ; 0x0e77 + textpointer Text0e78 ; 0x0e78 + textpointer Text0e79 ; 0x0e79 + textpointer Text0e7a ; 0x0e7a + textpointer Text0e7b ; 0x0e7b + textpointer Text0e7c ; 0x0e7c + textpointer Text0e7d ; 0x0e7d + textpointer Text0e7e ; 0x0e7e + textpointer Text0e7f ; 0x0e7f + textpointer Text0e80 ; 0x0e80 + textpointer Text0e81 ; 0x0e81 + textpointer Text0e82 ; 0x0e82 + textpointer Text0e83 ; 0x0e83 + textpointer Text0e84 ; 0x0e84 + textpointer Text0e85 ; 0x0e85 + textpointer Text0e86 ; 0x0e86 + textpointer Text0e87 ; 0x0e87 + textpointer Text0e88 ; 0x0e88 + textpointer Text0e89 ; 0x0e89 + textpointer Text0e8a ; 0x0e8a + textpointer Text0e8b ; 0x0e8b + textpointer Text0e8c ; 0x0e8c + textpointer Text0e8d ; 0x0e8d + textpointer Text0e8e ; 0x0e8e + textpointer Text0e8f ; 0x0e8f + textpointer Text0e90 ; 0x0e90 + textpointer Text0e91 ; 0x0e91 + textpointer Text0e92 ; 0x0e92 + textpointer Text0e93 ; 0x0e93 + textpointer Text0e94 ; 0x0e94 + textpointer Text0e95 ; 0x0e95 + textpointer Text0e96 ; 0x0e96 + textpointer Text0e97 ; 0x0e97 + textpointer Text0e98 ; 0x0e98 + textpointer Text0e99 ; 0x0e99 + textpointer Text0e9a ; 0x0e9a + textpointer Text0e9b ; 0x0e9b + textpointer Text0e9c ; 0x0e9c + textpointer Text0e9d ; 0x0e9d + textpointer Text0e9e ; 0x0e9e + textpointer Text0e9f ; 0x0e9f + textpointer Text0ea0 ; 0x0ea0 + textpointer Text0ea1 ; 0x0ea1 + textpointer Text0ea2 ; 0x0ea2 + textpointer Text0ea3 ; 0x0ea3 + textpointer Text0ea4 ; 0x0ea4 + textpointer Text0ea5 ; 0x0ea5 + textpointer Text0ea6 ; 0x0ea6 + textpointer Text0ea7 ; 0x0ea7 + textpointer Text0ea8 ; 0x0ea8 + textpointer Text0ea9 ; 0x0ea9 + textpointer Text0eaa ; 0x0eaa + textpointer Text0eab ; 0x0eab + textpointer Text0eac ; 0x0eac + textpointer Text0ead ; 0x0ead + textpointer Text0eae ; 0x0eae + textpointer Text0eaf ; 0x0eaf + textpointer Text0eb0 ; 0x0eb0 + textpointer Text0eb1 ; 0x0eb1 + textpointer Text0eb2 ; 0x0eb2 + textpointer Text0eb3 ; 0x0eb3 + textpointer Text0eb4 ; 0x0eb4 + textpointer Text0eb5 ; 0x0eb5 + textpointer Text0eb6 ; 0x0eb6 + textpointer Text0eb7 ; 0x0eb7 + textpointer Text0eb8 ; 0x0eb8 + textpointer Text0eb9 ; 0x0eb9 + textpointer Text0eba ; 0x0eba + textpointer Text0ebb ; 0x0ebb + textpointer Text0ebc ; 0x0ebc + textpointer Text0ebd ; 0x0ebd + textpointer Text0ebe ; 0x0ebe + textpointer Text0ebf ; 0x0ebf + textpointer Text0ec0 ; 0x0ec0 + textpointer Text0ec1 ; 0x0ec1 + textpointer Text0ec2 ; 0x0ec2 + textpointer Text0ec3 ; 0x0ec3 + textpointer Text0ec4 ; 0x0ec4 + textpointer Text0ec5 ; 0x0ec5 + textpointer Text0ec6 ; 0x0ec6 + textpointer Text0ec7 ; 0x0ec7 + textpointer Text0ec8 ; 0x0ec8 + textpointer Text0ec9 ; 0x0ec9 + textpointer Text0eca ; 0x0eca + textpointer Text0ecb ; 0x0ecb + textpointer Text0ecc ; 0x0ecc + textpointer Text0ecd ; 0x0ecd + textpointer Text0ece ; 0x0ece + textpointer Text0ecf ; 0x0ecf + textpointer Text0ed0 ; 0x0ed0 + textpointer Text0ed1 ; 0x0ed1 + textpointer Text0ed2 ; 0x0ed2 + textpointer Text0ed3 ; 0x0ed3 + textpointer Text0ed4 ; 0x0ed4 + textpointer Text0ed5 ; 0x0ed5 + textpointer Text0ed6 ; 0x0ed6 + textpointer Text0ed7 ; 0x0ed7 + textpointer Text0ed8 ; 0x0ed8 + textpointer Text0ed9 ; 0x0ed9 + textpointer Text0eda ; 0x0eda + textpointer Text0edb ; 0x0edb + textpointer Text0edc ; 0x0edc + textpointer Text0edd ; 0x0edd + textpointer Text0ede ; 0x0ede + textpointer Text0edf ; 0x0edf + textpointer Text0ee0 ; 0x0ee0 + textpointer Text0ee1 ; 0x0ee1 + textpointer Text0ee2 ; 0x0ee2 + textpointer Text0ee3 ; 0x0ee3 + textpointer Text0ee4 ; 0x0ee4 + textpointer Text0ee5 ; 0x0ee5 + textpointer Text0ee6 ; 0x0ee6 + textpointer Text0ee7 ; 0x0ee7 + textpointer Text0ee8 ; 0x0ee8 + textpointer Text0ee9 ; 0x0ee9 + textpointer Text0eea ; 0x0eea + textpointer Text0eeb ; 0x0eeb + textpointer ItsAutoDeckMachine1Text ; 0x0eec + textpointer AutoDeckMachine1PromptText ; 0x0eed + textpointer ItsAutoDeckMachine2Text ; 0x0eee + textpointer AutoDeckMachine2PromptText ; 0x0eef + textpointer ItsDeckSaveMachineText ; 0x0ef0 + textpointer DeckSaveMachinePromptText ; 0x0ef1 + textpointer Text0ef2 ; 0x0ef2 + textpointer Text0ef3 ; 0x0ef3 + textpointer Text0ef4 ; 0x0ef4 + textpointer Text0ef5 ; 0x0ef5 + textpointer Text0ef6 ; 0x0ef6 + textpointer Text0ef7 ; 0x0ef7 + textpointer Text0ef8 ; 0x0ef8 + textpointer Text0ef9 ; 0x0ef9 + textpointer Text0efa ; 0x0efa + textpointer Text0efb ; 0x0efb + textpointer Text0efc ; 0x0efc + textpointer Text0efd ; 0x0efd + textpointer Text0efe ; 0x0efe + textpointer Text0eff ; 0x0eff + textpointer Text0f00 ; 0x0f00 + textpointer Text0f01 ; 0x0f01 + textpointer Text0f02 ; 0x0f02 + textpointer Text0f03 ; 0x0f03 + textpointer Text0f04 ; 0x0f04 + textpointer Text0f05 ; 0x0f05 + textpointer Text0f06 ; 0x0f06 + textpointer Text0f07 ; 0x0f07 + textpointer Text0f08 ; 0x0f08 + textpointer Text0f09 ; 0x0f09 + textpointer Text0f0a ; 0x0f0a + textpointer Text0f0b ; 0x0f0b + textpointer Text0f0c ; 0x0f0c + textpointer Text0f0d ; 0x0f0d + textpointer Text0f0e ; 0x0f0e + textpointer Text0f0f ; 0x0f0f + textpointer Text0f10 ; 0x0f10 + textpointer Text0f11 ; 0x0f11 + textpointer Text0f12 ; 0x0f12 + textpointer Text0f13 ; 0x0f13 + textpointer Text0f14 ; 0x0f14 + textpointer Text0f15 ; 0x0f15 + textpointer Text0f16 ; 0x0f16 + textpointer Text0f17 ; 0x0f17 + textpointer Text0f18 ; 0x0f18 + textpointer Text0f19 ; 0x0f19 + textpointer Text0f1a ; 0x0f1a + textpointer Text0f1b ; 0x0f1b + textpointer Text0f1c ; 0x0f1c + textpointer Text0f1d ; 0x0f1d + textpointer Text0f1e ; 0x0f1e + textpointer Text0f1f ; 0x0f1f + textpointer Text0f20 ; 0x0f20 + textpointer Text0f21 ; 0x0f21 + textpointer Text0f22 ; 0x0f22 + textpointer Text0f23 ; 0x0f23 + textpointer Text0f24 ; 0x0f24 + textpointer Text0f25 ; 0x0f25 + textpointer Text0f26 ; 0x0f26 + textpointer Text0f27 ; 0x0f27 + textpointer Text0f28 ; 0x0f28 + textpointer Text0f29 ; 0x0f29 + textpointer Text0f2a ; 0x0f2a + textpointer Text0f2b ; 0x0f2b + textpointer Text0f2c ; 0x0f2c + textpointer Text0f2d ; 0x0f2d + textpointer Text0f2e ; 0x0f2e + textpointer Text0f2f ; 0x0f2f + textpointer Text0f30 ; 0x0f30 + textpointer Text0f31 ; 0x0f31 + textpointer Text0f32 ; 0x0f32 + textpointer Text0f33 ; 0x0f33 + textpointer Text0f34 ; 0x0f34 + textpointer Text0f35 ; 0x0f35 + textpointer Text0f36 ; 0x0f36 + textpointer Text0f37 ; 0x0f37 + textpointer Text0f38 ; 0x0f38 + textpointer Text0f39 ; 0x0f39 + textpointer Text0f3a ; 0x0f3a + textpointer Text0f3b ; 0x0f3b + textpointer Text0f3c ; 0x0f3c + textpointer Text0f3d ; 0x0f3d + textpointer Text0f3e ; 0x0f3e + textpointer Text0f3f ; 0x0f3f + textpointer Text0f40 ; 0x0f40 + textpointer Text0f41 ; 0x0f41 + textpointer Text0f42 ; 0x0f42 + textpointer Text0f43 ; 0x0f43 + textpointer Text0f44 ; 0x0f44 + textpointer Text0f45 ; 0x0f45 + textpointer Text0f46 ; 0x0f46 + textpointer Text0f47 ; 0x0f47 + textpointer Text0f48 ; 0x0f48 + textpointer Text0f49 ; 0x0f49 + textpointer Text0f4a ; 0x0f4a + textpointer Text0f4b ; 0x0f4b + textpointer Text0f4c ; 0x0f4c + textpointer Text0f4d ; 0x0f4d + textpointer Text0f4e ; 0x0f4e + textpointer Text0f4f ; 0x0f4f + textpointer Text0f50 ; 0x0f50 + textpointer Text0f51 ; 0x0f51 + textpointer Text0f52 ; 0x0f52 + textpointer Text0f53 ; 0x0f53 + textpointer Text0f54 ; 0x0f54 + textpointer Text0f55 ; 0x0f55 + textpointer Text0f56 ; 0x0f56 + textpointer Text0f57 ; 0x0f57 + textpointer Text0f58 ; 0x0f58 + textpointer Text0f59 ; 0x0f59 + textpointer Text0f5a ; 0x0f5a + textpointer Text0f5b ; 0x0f5b + textpointer Text0f5c ; 0x0f5c + textpointer Text0f5d ; 0x0f5d + textpointer Text0f5e ; 0x0f5e + textpointer Text0f5f ; 0x0f5f + textpointer Text0f60 ; 0x0f60 + textpointer Text0f61 ; 0x0f61 + textpointer Text0f62 ; 0x0f62 + textpointer Text0f63 ; 0x0f63 + textpointer Text0f64 ; 0x0f64 + textpointer Text0f65 ; 0x0f65 + textpointer Text0f66 ; 0x0f66 + textpointer Text0f67 ; 0x0f67 + textpointer Text0f68 ; 0x0f68 + textpointer Text0f69 ; 0x0f69 + textpointer Text0f6a ; 0x0f6a + textpointer Text0f6b ; 0x0f6b + textpointer Text0f6c ; 0x0f6c + textpointer Text0f6d ; 0x0f6d + textpointer Text0f6e ; 0x0f6e + textpointer Text0f6f ; 0x0f6f + textpointer Text0f70 ; 0x0f70 + textpointer Text0f71 ; 0x0f71 + textpointer Text0f72 ; 0x0f72 + textpointer Text0f73 ; 0x0f73 + textpointer Text0f74 ; 0x0f74 + textpointer Text0f75 ; 0x0f75 + textpointer Text0f76 ; 0x0f76 + textpointer Text0f77 ; 0x0f77 + textpointer Text0f78 ; 0x0f78 + textpointer Text0f79 ; 0x0f79 + textpointer Text0f7a ; 0x0f7a + textpointer Text0f7b ; 0x0f7b + textpointer Text0f7c ; 0x0f7c + textpointer Text0f7d ; 0x0f7d + textpointer Text0f7e ; 0x0f7e + textpointer Text0f7f ; 0x0f7f + textpointer Text0f80 ; 0x0f80 + textpointer Text0f81 ; 0x0f81 + textpointer Text0f82 ; 0x0f82 + textpointer Text0f83 ; 0x0f83 + textpointer Text0f84 ; 0x0f84 + textpointer Text0f85 ; 0x0f85 + textpointer Text0f86 ; 0x0f86 + textpointer Text0f87 ; 0x0f87 + textpointer Text0f88 ; 0x0f88 + textpointer Text0f89 ; 0x0f89 + textpointer Text0f8a ; 0x0f8a + textpointer Text0f8b ; 0x0f8b + textpointer Text0f8c ; 0x0f8c + textpointer Text0f8d ; 0x0f8d + textpointer Text0f8e ; 0x0f8e + textpointer Text0f8f ; 0x0f8f + textpointer Text0f90 ; 0x0f90 + textpointer Text0f91 ; 0x0f91 + textpointer Text0f92 ; 0x0f92 + textpointer Text0f93 ; 0x0f93 + textpointer Text0f94 ; 0x0f94 + textpointer Text0f95 ; 0x0f95 + textpointer Text0f96 ; 0x0f96 + textpointer Text0f97 ; 0x0f97 + textpointer Text0f98 ; 0x0f98 + textpointer Text0f99 ; 0x0f99 + textpointer Text0f9a ; 0x0f9a + textpointer Text0f9b ; 0x0f9b + textpointer Text0f9c ; 0x0f9c + textpointer Text0f9d ; 0x0f9d + textpointer Text0f9e ; 0x0f9e + textpointer Text0f9f ; 0x0f9f + textpointer Text0fa0 ; 0x0fa0 + textpointer Text0fa1 ; 0x0fa1 + textpointer Text0fa2 ; 0x0fa2 + textpointer Text0fa3 ; 0x0fa3 + textpointer Text0fa4 ; 0x0fa4 + textpointer Text0fa5 ; 0x0fa5 + textpointer Text0fa6 ; 0x0fa6 + textpointer Text0fa7 ; 0x0fa7 + textpointer Text0fa8 ; 0x0fa8 + textpointer Text0fa9 ; 0x0fa9 + textpointer Text0faa ; 0x0faa + textpointer Text0fab ; 0x0fab + textpointer Text0fac ; 0x0fac + textpointer Text0fad ; 0x0fad + textpointer Text0fae ; 0x0fae + textpointer Text0faf ; 0x0faf + textpointer Text0fb0 ; 0x0fb0 + textpointer Text0fb1 ; 0x0fb1 + textpointer Text0fb2 ; 0x0fb2 + textpointer Text0fb3 ; 0x0fb3 + textpointer Text0fb4 ; 0x0fb4 + textpointer Text0fb5 ; 0x0fb5 + textpointer Text0fb6 ; 0x0fb6 + textpointer Text0fb7 ; 0x0fb7 + textpointer Text0fb8 ; 0x0fb8 + textpointer Text0fb9 ; 0x0fb9 + textpointer Text0fba ; 0x0fba + textpointer Text0fbb ; 0x0fbb + textpointer Text0fbc ; 0x0fbc + textpointer Text0fbd ; 0x0fbd + textpointer Text0fbe ; 0x0fbe + textpointer Text0fbf ; 0x0fbf + textpointer Text0fc0 ; 0x0fc0 + textpointer Text0fc1 ; 0x0fc1 + textpointer Text0fc2 ; 0x0fc2 + textpointer Text0fc3 ; 0x0fc3 + textpointer Text0fc4 ; 0x0fc4 + textpointer Text0fc5 ; 0x0fc5 + textpointer Text0fc6 ; 0x0fc6 + textpointer Text0fc7 ; 0x0fc7 + textpointer Text0fc8 ; 0x0fc8 + textpointer Text0fc9 ; 0x0fc9 + textpointer Text0fca ; 0x0fca + textpointer Text0fcb ; 0x0fcb + textpointer Text0fcc ; 0x0fcc + textpointer Text0fcd ; 0x0fcd + textpointer Text0fce ; 0x0fce + textpointer Text0fcf ; 0x0fcf + textpointer Text0fd0 ; 0x0fd0 + textpointer Text0fd1 ; 0x0fd1 + textpointer Text0fd2 ; 0x0fd2 + textpointer Text0fd3 ; 0x0fd3 + textpointer Text0fd4 ; 0x0fd4 + textpointer Text0fd5 ; 0x0fd5 + textpointer Text0fd6 ; 0x0fd6 + textpointer Text0fd7 ; 0x0fd7 + textpointer Text0fd8 ; 0x0fd8 + textpointer Text0fd9 ; 0x0fd9 + textpointer Text0fda ; 0x0fda + textpointer Text0fdb ; 0x0fdb + textpointer Text0fdc ; 0x0fdc + textpointer Text0fdd ; 0x0fdd + textpointer Text0fde ; 0x0fde + textpointer Text0fdf ; 0x0fdf + textpointer Text0fe0 ; 0x0fe0 + textpointer Text0fe1 ; 0x0fe1 + textpointer Text0fe2 ; 0x0fe2 + textpointer Text0fe3 ; 0x0fe3 + textpointer Text0fe4 ; 0x0fe4 + textpointer Text0fe5 ; 0x0fe5 + textpointer Text0fe6 ; 0x0fe6 + textpointer Text0fe7 ; 0x0fe7 + textpointer Text0fe8 ; 0x0fe8 + textpointer Text0fe9 ; 0x0fe9 + textpointer Text0fea ; 0x0fea + textpointer Text0feb ; 0x0feb + textpointer Text0fec ; 0x0fec + textpointer Text0fed ; 0x0fed + textpointer Text0fee ; 0x0fee + textpointer Text0fef ; 0x0fef + textpointer Text0ff0 ; 0x0ff0 + textpointer Text0ff1 ; 0x0ff1 + textpointer Text0ff2 ; 0x0ff2 + textpointer Text0ff3 ; 0x0ff3 + textpointer Text0ff4 ; 0x0ff4 + textpointer Text0ff5 ; 0x0ff5 + textpointer Text0ff6 ; 0x0ff6 + textpointer Text0ff7 ; 0x0ff7 + textpointer Text0ff8 ; 0x0ff8 + textpointer Text0ff9 ; 0x0ff9 + textpointer Text0ffa ; 0x0ffa + textpointer Text0ffb ; 0x0ffb + textpointer Text0ffc ; 0x0ffc + textpointer Text0ffd ; 0x0ffd + textpointer Text0ffe ; 0x0ffe + textpointer Text0fff ; 0x0fff SECTION "Text Offsets 2", ROMX - textpointer Text1000 ; 0x1000 - textpointer Text1001 ; 0x1001 - textpointer Text1002 ; 0x1002 - textpointer Text1003 ; 0x1003 - textpointer Text1004 ; 0x1004 - textpointer Text1005 ; 0x1005 - textpointer Text1006 ; 0x1006 - textpointer Text1007 ; 0x1007 - textpointer Text1008 ; 0x1008 - textpointer Text1009 ; 0x1009 - textpointer Text100a ; 0x100a - textpointer Text100b ; 0x100b - textpointer Text100c ; 0x100c - textpointer Text100d ; 0x100d - textpointer Text100e ; 0x100e - textpointer Text100f ; 0x100f - textpointer Text1010 ; 0x1010 - textpointer Text1011 ; 0x1011 - textpointer Text1012 ; 0x1012 - textpointer Text1013 ; 0x1013 - textpointer Text1014 ; 0x1014 - textpointer Text1015 ; 0x1015 - textpointer Text1016 ; 0x1016 - textpointer Text1017 ; 0x1017 - textpointer Text1018 ; 0x1018 - textpointer Text1019 ; 0x1019 - textpointer Text101a ; 0x101a - textpointer Text101b ; 0x101b - textpointer Text101c ; 0x101c - textpointer Text101d ; 0x101d - textpointer Text101e ; 0x101e - textpointer Text101f ; 0x101f - textpointer Text1020 ; 0x1020 - textpointer Text1021 ; 0x1021 - textpointer Text1022 ; 0x1022 - textpointer Text1023 ; 0x1023 - textpointer Text1024 ; 0x1024 - textpointer Text1025 ; 0x1025 - textpointer Text1026 ; 0x1026 - textpointer Text1027 ; 0x1027 - textpointer Text1028 ; 0x1028 - textpointer Text1029 ; 0x1029 - textpointer Text102a ; 0x102a - textpointer Text102b ; 0x102b - textpointer Text102c ; 0x102c - textpointer Text102d ; 0x102d - textpointer Text102e ; 0x102e - textpointer Text102f ; 0x102f - textpointer Text1030 ; 0x1030 - textpointer Text1031 ; 0x1031 - textpointer Text1032 ; 0x1032 - textpointer Text1033 ; 0x1033 - textpointer Text1034 ; 0x1034 - textpointer Text1035 ; 0x1035 - textpointer Text1036 ; 0x1036 - textpointer Text1037 ; 0x1037 - textpointer Text1038 ; 0x1038 - textpointer Text1039 ; 0x1039 - textpointer Text103a ; 0x103a - textpointer Text103b ; 0x103b - textpointer Text103c ; 0x103c - textpointer Text103d ; 0x103d - textpointer Text103e ; 0x103e - textpointer Text103f ; 0x103f - textpointer Text1040 ; 0x1040 - textpointer Text1041 ; 0x1041 - textpointer Text1042 ; 0x1042 - textpointer Text1043 ; 0x1043 - textpointer Text1044 ; 0x1044 - textpointer Text1045 ; 0x1045 - textpointer Text1046 ; 0x1046 - textpointer Text1047 ; 0x1047 - textpointer Text1048 ; 0x1048 - textpointer Text1049 ; 0x1049 - textpointer Text104a ; 0x104a - textpointer Text104b ; 0x104b - textpointer Text104c ; 0x104c - textpointer Text104d ; 0x104d - textpointer Text104e ; 0x104e - textpointer Text104f ; 0x104f - textpointer Text1050 ; 0x1050 - textpointer Text1051 ; 0x1051 - textpointer Text1052 ; 0x1052 - textpointer Text1053 ; 0x1053 - textpointer Text1054 ; 0x1054 - textpointer Text1055 ; 0x1055 - textpointer Text1056 ; 0x1056 - textpointer Text1057 ; 0x1057 - textpointer Text1058 ; 0x1058 - textpointer Text1059 ; 0x1059 - textpointer Text105a ; 0x105a - textpointer Text105b ; 0x105b - textpointer Text105c ; 0x105c - textpointer Text105d ; 0x105d - textpointer Text105e ; 0x105e - textpointer Text105f ; 0x105f - textpointer Text1060 ; 0x1060 - textpointer Text1061 ; 0x1061 - textpointer Text1062 ; 0x1062 - textpointer Text1063 ; 0x1063 - textpointer Text1064 ; 0x1064 - textpointer Text1065 ; 0x1065 - textpointer Text1066 ; 0x1066 - textpointer Text1067 ; 0x1067 - textpointer Text1068 ; 0x1068 - textpointer Text1069 ; 0x1069 - textpointer Text106a ; 0x106a - textpointer Text106b ; 0x106b - textpointer Text106c ; 0x106c - textpointer Text106d ; 0x106d - textpointer Text106e ; 0x106e - textpointer Text106f ; 0x106f - textpointer Text1070 ; 0x1070 - textpointer Text1071 ; 0x1071 - textpointer Text1072 ; 0x1072 - textpointer Text1073 ; 0x1073 - textpointer Text1074 ; 0x1074 - textpointer Text1075 ; 0x1075 - textpointer Text1076 ; 0x1076 - textpointer Text1077 ; 0x1077 - textpointer Text1078 ; 0x1078 - textpointer Text1079 ; 0x1079 - textpointer Text107a ; 0x107a - textpointer Text107b ; 0x107b - textpointer Text107c ; 0x107c - textpointer Text107d ; 0x107d - textpointer Text107e ; 0x107e - textpointer Text107f ; 0x107f - textpointer Text1080 ; 0x1080 - textpointer Text1081 ; 0x1081 - textpointer Text1082 ; 0x1082 - textpointer Text1083 ; 0x1083 - textpointer Text1084 ; 0x1084 - textpointer Text1085 ; 0x1085 - textpointer Text1086 ; 0x1086 - textpointer Text1087 ; 0x1087 - textpointer Text1088 ; 0x1088 - textpointer Text1089 ; 0x1089 - textpointer Text108a ; 0x108a - textpointer Text108b ; 0x108b - textpointer Text108c ; 0x108c - textpointer Text108d ; 0x108d - textpointer Text108e ; 0x108e - textpointer Text108f ; 0x108f - textpointer Text1090 ; 0x1090 - textpointer Text1091 ; 0x1091 - textpointer Text1092 ; 0x1092 - textpointer Text1093 ; 0x1093 - textpointer Text1094 ; 0x1094 - textpointer Text1095 ; 0x1095 - textpointer Text1096 ; 0x1096 - textpointer Text1097 ; 0x1097 - textpointer Text1098 ; 0x1098 - textpointer Text1099 ; 0x1099 - textpointer Text109a ; 0x109a - textpointer Text109b ; 0x109b - textpointer Text109c ; 0x109c - textpointer Text109d ; 0x109d - textpointer Text109e ; 0x109e - textpointer Text109f ; 0x109f - textpointer Text10a0 ; 0x10a0 - textpointer Text10a1 ; 0x10a1 - textpointer Text10a2 ; 0x10a2 - textpointer Text10a3 ; 0x10a3 - textpointer Text10a4 ; 0x10a4 - textpointer Text10a5 ; 0x10a5 - textpointer Text10a6 ; 0x10a6 - textpointer Text10a7 ; 0x10a7 - textpointer Text10a8 ; 0x10a8 - textpointer Text10a9 ; 0x10a9 - textpointer Text10aa ; 0x10aa - textpointer Text10ab ; 0x10ab - textpointer Text10ac ; 0x10ac - textpointer Text10ad ; 0x10ad - textpointer Text10ae ; 0x10ae - textpointer Text10af ; 0x10af - textpointer Text10b0 ; 0x10b0 - textpointer Text10b1 ; 0x10b1 - textpointer Text10b2 ; 0x10b2 - textpointer Text10b3 ; 0x10b3 - textpointer Text10b4 ; 0x10b4 - textpointer Text10b5 ; 0x10b5 - textpointer Text10b6 ; 0x10b6 - textpointer Text10b7 ; 0x10b7 - textpointer Text10b8 ; 0x10b8 - textpointer Text10b9 ; 0x10b9 - textpointer Text10ba ; 0x10ba - textpointer Text10bb ; 0x10bb - textpointer Text10bc ; 0x10bc - textpointer Text10bd ; 0x10bd - textpointer Text10be ; 0x10be - textpointer Text10bf ; 0x10bf - textpointer Text10c0 ; 0x10c0 - textpointer Text10c1 ; 0x10c1 - textpointer Text10c2 ; 0x10c2 - textpointer Text10c3 ; 0x10c3 - textpointer Text10c4 ; 0x10c4 - textpointer Text10c5 ; 0x10c5 - textpointer Text10c6 ; 0x10c6 - textpointer Text10c7 ; 0x10c7 - textpointer Text10c8 ; 0x10c8 - textpointer Text10c9 ; 0x10c9 - textpointer Text10ca ; 0x10ca - textpointer Text10cb ; 0x10cb - textpointer Text10cc ; 0x10cc - textpointer Text10cd ; 0x10cd - textpointer Text10ce ; 0x10ce - textpointer Text10cf ; 0x10cf - textpointer Text10d0 ; 0x10d0 - textpointer Text10d1 ; 0x10d1 - textpointer Text10d2 ; 0x10d2 - textpointer Text10d3 ; 0x10d3 - textpointer Text10d4 ; 0x10d4 - textpointer Text10d5 ; 0x10d5 - textpointer Text10d6 ; 0x10d6 - textpointer Text10d7 ; 0x10d7 - textpointer Text10d8 ; 0x10d8 - textpointer Text10d9 ; 0x10d9 - textpointer Text10da ; 0x10da - textpointer Text10db ; 0x10db - textpointer Text10dc ; 0x10dc - textpointer Text10dd ; 0x10dd - textpointer Text10de ; 0x10de - textpointer Text10df ; 0x10df - textpointer Text10e0 ; 0x10e0 - textpointer Text10e1 ; 0x10e1 - textpointer Text10e2 ; 0x10e2 - textpointer Text10e3 ; 0x10e3 - textpointer Text10e4 ; 0x10e4 - textpointer Text10e5 ; 0x10e5 - textpointer Text10e6 ; 0x10e6 - textpointer Text10e7 ; 0x10e7 - textpointer Text10e8 ; 0x10e8 - textpointer Text10e9 ; 0x10e9 - textpointer Text10ea ; 0x10ea - textpointer Text10eb ; 0x10eb - textpointer Text10ec ; 0x10ec - textpointer Text10ed ; 0x10ed - textpointer Text10ee ; 0x10ee - textpointer Text10ef ; 0x10ef - textpointer Text10f0 ; 0x10f0 - textpointer Text10f1 ; 0x10f1 - textpointer Text10f2 ; 0x10f2 - textpointer Text10f3 ; 0x10f3 - textpointer Text10f4 ; 0x10f4 - textpointer Text10f5 ; 0x10f5 - textpointer Text10f6 ; 0x10f6 - textpointer Text10f7 ; 0x10f7 - textpointer Text10f8 ; 0x10f8 - textpointer Text10f9 ; 0x10f9 - textpointer Text10fa ; 0x10fa - textpointer Text10fb ; 0x10fb - textpointer Text10fc ; 0x10fc - textpointer Text10fd ; 0x10fd - textpointer Text10fe ; 0x10fe - textpointer Text10ff ; 0x10ff - textpointer Text1100 ; 0x1100 - textpointer Text1101 ; 0x1101 - textpointer Text1102 ; 0x1102 - textpointer Text1103 ; 0x1103 - textpointer Text1104 ; 0x1104 - textpointer Text1105 ; 0x1105 - textpointer Text1106 ; 0x1106 - textpointer Text1107 ; 0x1107 - textpointer Text1108 ; 0x1108 - textpointer Text1109 ; 0x1109 - textpointer Text110a ; 0x110a - textpointer Text110b ; 0x110b - textpointer Text110c ; 0x110c - textpointer Text110d ; 0x110d - textpointer Text110e ; 0x110e - textpointer Text110f ; 0x110f - textpointer Text1110 ; 0x1110 - textpointer Text1111 ; 0x1111 - textpointer Text1112 ; 0x1112 - textpointer Text1113 ; 0x1113 - textpointer Text1114 ; 0x1114 - textpointer Text1115 ; 0x1115 - textpointer Text1116 ; 0x1116 - textpointer Text1117 ; 0x1117 - textpointer Text1118 ; 0x1118 - textpointer Text1119 ; 0x1119 - textpointer Text111a ; 0x111a - textpointer Text111b ; 0x111b - textpointer Text111c ; 0x111c - textpointer Text111d ; 0x111d - textpointer Text111e ; 0x111e - textpointer Text111f ; 0x111f - textpointer Text1120 ; 0x1120 - textpointer Text1121 ; 0x1121 - textpointer Text1122 ; 0x1122 - textpointer Text1123 ; 0x1123 - textpointer Text1124 ; 0x1124 - textpointer Text1125 ; 0x1125 - textpointer Text1126 ; 0x1126 - textpointer Text1127 ; 0x1127 - textpointer Text1128 ; 0x1128 - textpointer Text1129 ; 0x1129 - textpointer Text112a ; 0x112a - textpointer Text112b ; 0x112b - textpointer Text112c ; 0x112c - textpointer Text112d ; 0x112d - textpointer Text112e ; 0x112e - textpointer Text112f ; 0x112f - textpointer Text1130 ; 0x1130 - textpointer Text1131 ; 0x1131 - textpointer Text1132 ; 0x1132 - textpointer Text1133 ; 0x1133 - textpointer Text1134 ; 0x1134 - textpointer Text1135 ; 0x1135 - textpointer Text1136 ; 0x1136 - textpointer Text1137 ; 0x1137 - textpointer Text1138 ; 0x1138 - textpointer Text1139 ; 0x1139 - textpointer Text113a ; 0x113a - textpointer Text113b ; 0x113b - textpointer Text113c ; 0x113c - textpointer Text113d ; 0x113d - textpointer Text113e ; 0x113e - textpointer Text113f ; 0x113f - textpointer Text1140 ; 0x1140 - textpointer Text1141 ; 0x1141 - textpointer Text1142 ; 0x1142 - textpointer Text1143 ; 0x1143 - textpointer Text1144 ; 0x1144 - textpointer Text1145 ; 0x1145 - textpointer Text1146 ; 0x1146 - textpointer Text1147 ; 0x1147 - textpointer Text1148 ; 0x1148 - textpointer Text1149 ; 0x1149 - textpointer Text114a ; 0x114a - textpointer Text114b ; 0x114b - textpointer Text114c ; 0x114c - textpointer Text114d ; 0x114d - textpointer Text114e ; 0x114e - textpointer Text114f ; 0x114f - textpointer Text1150 ; 0x1150 - textpointer Text1151 ; 0x1151 - textpointer Text1152 ; 0x1152 - textpointer Text1153 ; 0x1153 - textpointer Text1154 ; 0x1154 - textpointer Text1155 ; 0x1155 - textpointer Text1156 ; 0x1156 - textpointer Text1157 ; 0x1157 - textpointer Text1158 ; 0x1158 - textpointer Text1159 ; 0x1159 - textpointer Text115a ; 0x115a - textpointer Text115b ; 0x115b - textpointer Text115c ; 0x115c - textpointer Text115d ; 0x115d - textpointer Text115e ; 0x115e - textpointer Text115f ; 0x115f - textpointer Text1160 ; 0x1160 - textpointer Text1161 ; 0x1161 - textpointer Text1162 ; 0x1162 - textpointer Text1163 ; 0x1163 - textpointer Text1164 ; 0x1164 - textpointer Text1165 ; 0x1165 - textpointer Text1166 ; 0x1166 - textpointer Text1167 ; 0x1167 - textpointer Text1168 ; 0x1168 - textpointer Text1169 ; 0x1169 - textpointer Text116a ; 0x116a - textpointer Text116b ; 0x116b - textpointer Text116c ; 0x116c - textpointer Text116d ; 0x116d - textpointer Text116e ; 0x116e - textpointer Text116f ; 0x116f - textpointer Text1170 ; 0x1170 - textpointer Text1171 ; 0x1171 - textpointer Text1172 ; 0x1172 - textpointer Text1173 ; 0x1173 - textpointer Text1174 ; 0x1174 - textpointer Text1175 ; 0x1175 - textpointer Text1176 ; 0x1176 - textpointer Text1177 ; 0x1177 - textpointer Text1178 ; 0x1178 - textpointer Text1179 ; 0x1179 - textpointer Text117a ; 0x117a - textpointer Text117b ; 0x117b - textpointer Text117c ; 0x117c - textpointer Text117d ; 0x117d - textpointer Text117e ; 0x117e - textpointer Text117f ; 0x117f - textpointer Text1180 ; 0x1180 - textpointer Text1181 ; 0x1181 - textpointer Text1182 ; 0x1182 - textpointer Text1183 ; 0x1183 - textpointer Text1184 ; 0x1184 - textpointer Text1185 ; 0x1185 - textpointer Text1186 ; 0x1186 - textpointer Text1187 ; 0x1187 - textpointer Text1188 ; 0x1188 - textpointer Text1189 ; 0x1189 - textpointer Text118a ; 0x118a - textpointer Text118b ; 0x118b - textpointer Text118c ; 0x118c - textpointer Text118d ; 0x118d - textpointer Text118e ; 0x118e - textpointer Text118f ; 0x118f - textpointer Text1190 ; 0x1190 - textpointer Text1191 ; 0x1191 - textpointer Text1192 ; 0x1192 - textpointer Text1193 ; 0x1193 - textpointer Text1194 ; 0x1194 - textpointer Text1195 ; 0x1195 - textpointer Text1196 ; 0x1196 - textpointer Text1197 ; 0x1197 - textpointer Text1198 ; 0x1198 - textpointer Text1199 ; 0x1199 - textpointer Text119a ; 0x119a - textpointer Text119b ; 0x119b - textpointer Text119c ; 0x119c - textpointer Text119d ; 0x119d - textpointer Text119e ; 0x119e - textpointer Text119f ; 0x119f - textpointer Text11a0 ; 0x11a0 - textpointer Text11a1 ; 0x11a1 - textpointer Text11a2 ; 0x11a2 - textpointer Text11a3 ; 0x11a3 - textpointer Text11a4 ; 0x11a4 - textpointer Text11a5 ; 0x11a5 - textpointer Text11a6 ; 0x11a6 - textpointer Text11a7 ; 0x11a7 - textpointer Text11a8 ; 0x11a8 - textpointer Text11a9 ; 0x11a9 - textpointer Text11aa ; 0x11aa - textpointer Text11ab ; 0x11ab - textpointer Text11ac ; 0x11ac - textpointer Text11ad ; 0x11ad - textpointer Text11ae ; 0x11ae - textpointer Text11af ; 0x11af - textpointer Text11b0 ; 0x11b0 - textpointer Text11b1 ; 0x11b1 - textpointer Text11b2 ; 0x11b2 - textpointer Text11b3 ; 0x11b3 - textpointer Text11b4 ; 0x11b4 - textpointer Text11b5 ; 0x11b5 - textpointer Text11b6 ; 0x11b6 - textpointer Text11b7 ; 0x11b7 - textpointer Text11b8 ; 0x11b8 - textpointer Text11b9 ; 0x11b9 - textpointer Text11ba ; 0x11ba - textpointer Text11bb ; 0x11bb - textpointer Text11bc ; 0x11bc - textpointer Text11bd ; 0x11bd - textpointer Text11be ; 0x11be - textpointer Text11bf ; 0x11bf - textpointer Text11c0 ; 0x11c0 - textpointer Text11c1 ; 0x11c1 - textpointer Text11c2 ; 0x11c2 - textpointer Text11c3 ; 0x11c3 - textpointer Text11c4 ; 0x11c4 - textpointer Text11c5 ; 0x11c5 - textpointer Text11c6 ; 0x11c6 - textpointer Text11c7 ; 0x11c7 - textpointer Text11c8 ; 0x11c8 - textpointer Text11c9 ; 0x11c9 - textpointer Text11ca ; 0x11ca - textpointer Text11cb ; 0x11cb - textpointer Text11cc ; 0x11cc - textpointer Text11cd ; 0x11cd - textpointer Text11ce ; 0x11ce - textpointer Text11cf ; 0x11cf - textpointer Text11d0 ; 0x11d0 - textpointer Text11d1 ; 0x11d1 - textpointer Text11d2 ; 0x11d2 - textpointer Text11d3 ; 0x11d3 - textpointer Text11d4 ; 0x11d4 - textpointer Text11d5 ; 0x11d5 - textpointer Text11d6 ; 0x11d6 - textpointer Text11d7 ; 0x11d7 - textpointer Text11d8 ; 0x11d8 - textpointer Text11d9 ; 0x11d9 - textpointer Text11da ; 0x11da - textpointer Text11db ; 0x11db - textpointer Text11dc ; 0x11dc - textpointer Text11dd ; 0x11dd - textpointer Text11de ; 0x11de - textpointer Text11df ; 0x11df - textpointer Text11e0 ; 0x11e0 - textpointer Text11e1 ; 0x11e1 - textpointer Text11e2 ; 0x11e2 - textpointer Text11e3 ; 0x11e3 - textpointer Text11e4 ; 0x11e4 - textpointer Text11e5 ; 0x11e5 - textpointer Text11e6 ; 0x11e6 - textpointer Text11e7 ; 0x11e7 - textpointer Text11e8 ; 0x11e8 - textpointer Text11e9 ; 0x11e9 - textpointer Text11ea ; 0x11ea - textpointer Text11eb ; 0x11eb - textpointer Text11ec ; 0x11ec - textpointer Text11ed ; 0x11ed - textpointer Text11ee ; 0x11ee - textpointer Text11ef ; 0x11ef - textpointer Text11f0 ; 0x11f0 - textpointer Text11f1 ; 0x11f1 - textpointer Text11f2 ; 0x11f2 - textpointer Text11f3 ; 0x11f3 - textpointer Text11f4 ; 0x11f4 - textpointer Text11f5 ; 0x11f5 - textpointer Text11f6 ; 0x11f6 - textpointer Text11f7 ; 0x11f7 - textpointer Text11f8 ; 0x11f8 - textpointer Text11f9 ; 0x11f9 - textpointer Text11fa ; 0x11fa - textpointer Text11fb ; 0x11fb - textpointer Text11fc ; 0x11fc - textpointer Text11fd ; 0x11fd - textpointer Text11fe ; 0x11fe - textpointer Text11ff ; 0x11ff - textpointer Text1200 ; 0x1200 - textpointer Text1201 ; 0x1201 - textpointer Text1202 ; 0x1202 - textpointer Text1203 ; 0x1203 - textpointer Text1204 ; 0x1204 - textpointer Text1205 ; 0x1205 - textpointer Text1206 ; 0x1206 - textpointer Text1207 ; 0x1207 - textpointer Text1208 ; 0x1208 - textpointer Text1209 ; 0x1209 - textpointer Text120a ; 0x120a - textpointer Text120b ; 0x120b - textpointer Text120c ; 0x120c - textpointer Text120d ; 0x120d - textpointer Text120e ; 0x120e - textpointer Text120f ; 0x120f - textpointer Text1210 ; 0x1210 - textpointer Text1211 ; 0x1211 - textpointer Text1212 ; 0x1212 - textpointer Text1213 ; 0x1213 - textpointer Text1214 ; 0x1214 - textpointer Text1215 ; 0x1215 - textpointer Text1216 ; 0x1216 - textpointer Text1217 ; 0x1217 - textpointer Text1218 ; 0x1218 - textpointer Text1219 ; 0x1219 - textpointer Text121a ; 0x121a - textpointer Text121b ; 0x121b - textpointer Text121c ; 0x121c - textpointer Text121d ; 0x121d - textpointer Text121e ; 0x121e - textpointer Text121f ; 0x121f - textpointer Text1220 ; 0x1220 - textpointer Text1221 ; 0x1221 - textpointer Text1222 ; 0x1222 - textpointer Text1223 ; 0x1223 - textpointer Text1224 ; 0x1224 - textpointer Text1225 ; 0x1225 - textpointer Text1226 ; 0x1226 - textpointer Text1227 ; 0x1227 - textpointer Text1228 ; 0x1228 - textpointer Text1229 ; 0x1229 - textpointer Text122a ; 0x122a - textpointer Text122b ; 0x122b - textpointer Text122c ; 0x122c - textpointer Text122d ; 0x122d - textpointer Text122e ; 0x122e - textpointer Text122f ; 0x122f - textpointer Text1230 ; 0x1230 - textpointer Text1231 ; 0x1231 - textpointer Text1232 ; 0x1232 - textpointer Text1233 ; 0x1233 - textpointer Text1234 ; 0x1234 - textpointer Text1235 ; 0x1235 - textpointer Text1236 ; 0x1236 - textpointer Text1237 ; 0x1237 - textpointer Text1238 ; 0x1238 - textpointer Text1239 ; 0x1239 - textpointer Text123a ; 0x123a - textpointer Text123b ; 0x123b - textpointer Text123c ; 0x123c - textpointer Text123d ; 0x123d - textpointer Text123e ; 0x123e - textpointer Text123f ; 0x123f - textpointer Text1240 ; 0x1240 - textpointer Text1241 ; 0x1241 - textpointer Text1242 ; 0x1242 - textpointer Text1243 ; 0x1243 - textpointer Text1244 ; 0x1244 - textpointer Text1245 ; 0x1245 - textpointer Text1246 ; 0x1246 - textpointer Text1247 ; 0x1247 - textpointer Text1248 ; 0x1248 - textpointer Text1249 ; 0x1249 - textpointer Text124a ; 0x124a - textpointer Text124b ; 0x124b - textpointer Text124c ; 0x124c - textpointer Text124d ; 0x124d - textpointer Text124e ; 0x124e - textpointer Text124f ; 0x124f - textpointer Text1250 ; 0x1250 - textpointer Text1251 ; 0x1251 - textpointer Text1252 ; 0x1252 - textpointer Text1253 ; 0x1253 - textpointer Text1254 ; 0x1254 - textpointer Text1255 ; 0x1255 - textpointer Text1256 ; 0x1256 - textpointer Text1257 ; 0x1257 - textpointer Text1258 ; 0x1258 - textpointer Text1259 ; 0x1259 - textpointer Text125a ; 0x125a - textpointer Text125b ; 0x125b - textpointer Text125c ; 0x125c - textpointer Text125d ; 0x125d - textpointer Text125e ; 0x125e - textpointer Text125f ; 0x125f - textpointer Text1260 ; 0x1260 - textpointer Text1261 ; 0x1261 - textpointer Text1262 ; 0x1262 - textpointer Text1263 ; 0x1263 - textpointer Text1264 ; 0x1264 - textpointer Text1265 ; 0x1265 - textpointer Text1266 ; 0x1266 - textpointer Text1267 ; 0x1267 - textpointer Text1268 ; 0x1268 - textpointer Text1269 ; 0x1269 - textpointer Text126a ; 0x126a - textpointer Text126b ; 0x126b - textpointer Text126c ; 0x126c + textpointer Text1000 ; 0x1000 + textpointer Text1001 ; 0x1001 + textpointer Text1002 ; 0x1002 + textpointer Text1003 ; 0x1003 + textpointer Text1004 ; 0x1004 + textpointer Text1005 ; 0x1005 + textpointer Text1006 ; 0x1006 + textpointer Text1007 ; 0x1007 + textpointer Text1008 ; 0x1008 + textpointer Text1009 ; 0x1009 + textpointer Text100a ; 0x100a + textpointer Text100b ; 0x100b + textpointer Text100c ; 0x100c + textpointer Text100d ; 0x100d + textpointer Text100e ; 0x100e + textpointer Text100f ; 0x100f + textpointer Text1010 ; 0x1010 + textpointer Text1011 ; 0x1011 + textpointer Text1012 ; 0x1012 + textpointer Text1013 ; 0x1013 + textpointer Text1014 ; 0x1014 + textpointer Text1015 ; 0x1015 + textpointer Text1016 ; 0x1016 + textpointer GrandMasterCupClerkWelcomeText ; 0x1017 + textpointer GrandMasterCupClerkPrizesText ; 0x1018 + textpointer GrandMasterCupClerkInviteText ; 0x1019 + textpointer GrandMasterCupClerkPlayerLostText ; 0x101a + textpointer GrandMasterCupClerkPlayerWonGrandFinalText ; 0x101b + textpointer GrandMasterCupClerkEnterPromptText ; 0x101c + textpointer GrandMasterCupClerkEnterAcceptedText ; 0x101d + textpointer GrandMasterCupClerkEnterDeclinedText ; 0x101e + textpointer Text101f ; 0x101f + textpointer Text1020 ; 0x1020 + textpointer Text1021 ; 0x1021 + textpointer Text1022 ; 0x1022 + textpointer Text1023 ; 0x1023 + textpointer Text1024 ; 0x1024 + textpointer Text1025 ; 0x1025 + textpointer Text1026 ; 0x1026 + textpointer Text1027 ; 0x1027 + textpointer Text1028 ; 0x1028 + textpointer Text1029 ; 0x1029 + textpointer Text102a ; 0x102a + textpointer Text102b ; 0x102b + textpointer Text102c ; 0x102c + textpointer Text102d ; 0x102d + textpointer Text102e ; 0x102e + textpointer Text102f ; 0x102f + textpointer Text1030 ; 0x1030 + textpointer Text1031 ; 0x1031 + textpointer Text1032 ; 0x1032 + textpointer Text1033 ; 0x1033 + textpointer Text1034 ; 0x1034 + textpointer Text1035 ; 0x1035 + textpointer Text1036 ; 0x1036 + textpointer Text1037 ; 0x1037 + textpointer Text1038 ; 0x1038 + textpointer Text1039 ; 0x1039 + textpointer Text103a ; 0x103a + textpointer Text103b ; 0x103b + textpointer Text103c ; 0x103c + textpointer Text103d ; 0x103d + textpointer Text103e ; 0x103e + textpointer Text103f ; 0x103f + textpointer Text1040 ; 0x1040 + textpointer Text1041 ; 0x1041 + textpointer Text1042 ; 0x1042 + textpointer Text1043 ; 0x1043 + textpointer Text1044 ; 0x1044 + textpointer Text1045 ; 0x1045 + textpointer Text1046 ; 0x1046 + textpointer Text1047 ; 0x1047 + textpointer Text1048 ; 0x1048 + textpointer Text1049 ; 0x1049 + textpointer Text104a ; 0x104a + textpointer Text104b ; 0x104b + textpointer Text104c ; 0x104c + textpointer Text104d ; 0x104d + textpointer Text104e ; 0x104e + textpointer Text104f ; 0x104f + textpointer Text1050 ; 0x1050 + textpointer Text1051 ; 0x1051 + textpointer Text1052 ; 0x1052 + textpointer Text1053 ; 0x1053 + textpointer Text1054 ; 0x1054 + textpointer Text1055 ; 0x1055 + textpointer Text1056 ; 0x1056 + textpointer Text1057 ; 0x1057 + textpointer Text1058 ; 0x1058 + textpointer Text1059 ; 0x1059 + textpointer Text105a ; 0x105a + textpointer Text105b ; 0x105b + textpointer Text105c ; 0x105c + textpointer Text105d ; 0x105d + textpointer Text105e ; 0x105e + textpointer Text105f ; 0x105f + textpointer Text1060 ; 0x1060 + textpointer Text1061 ; 0x1061 + textpointer Text1062 ; 0x1062 + textpointer Text1063 ; 0x1063 + textpointer Text1064 ; 0x1064 + textpointer Text1065 ; 0x1065 + textpointer Text1066 ; 0x1066 + textpointer Text1067 ; 0x1067 + textpointer Text1068 ; 0x1068 + textpointer Text1069 ; 0x1069 + textpointer Text106a ; 0x106a + textpointer Text106b ; 0x106b + textpointer Text106c ; 0x106c + textpointer Text106d ; 0x106d + textpointer Text106e ; 0x106e + textpointer Text106f ; 0x106f + textpointer Text1070 ; 0x1070 + textpointer Text1071 ; 0x1071 + textpointer Text1072 ; 0x1072 + textpointer Text1073 ; 0x1073 + textpointer Text1074 ; 0x1074 + textpointer Text1075 ; 0x1075 + textpointer Text1076 ; 0x1076 + textpointer Text1077 ; 0x1077 + textpointer Text1078 ; 0x1078 + textpointer Text1079 ; 0x1079 + textpointer Text107a ; 0x107a + textpointer Text107b ; 0x107b + textpointer Text107c ; 0x107c + textpointer Text107d ; 0x107d + textpointer Text107e ; 0x107e + textpointer Text107f ; 0x107f + textpointer Text1080 ; 0x1080 + textpointer Text1081 ; 0x1081 + textpointer Text1082 ; 0x1082 + textpointer Text1083 ; 0x1083 + textpointer Text1084 ; 0x1084 + textpointer Text1085 ; 0x1085 + textpointer Text1086 ; 0x1086 + textpointer Text1087 ; 0x1087 + textpointer Text1088 ; 0x1088 + textpointer Text1089 ; 0x1089 + textpointer Text108a ; 0x108a + textpointer Text108b ; 0x108b + textpointer Text108c ; 0x108c + textpointer Text108d ; 0x108d + textpointer Text108e ; 0x108e + textpointer Text108f ; 0x108f + textpointer Text1090 ; 0x1090 + textpointer Text1091 ; 0x1091 + textpointer Text1092 ; 0x1092 + textpointer Text1093 ; 0x1093 + textpointer Text1094 ; 0x1094 + textpointer Text1095 ; 0x1095 + textpointer Text1096 ; 0x1096 + textpointer Text1097 ; 0x1097 + textpointer Text1098 ; 0x1098 + textpointer Text1099 ; 0x1099 + textpointer Text109a ; 0x109a + textpointer Text109b ; 0x109b + textpointer Text109c ; 0x109c + textpointer Text109d ; 0x109d + textpointer Text109e ; 0x109e + textpointer Text109f ; 0x109f + textpointer Text10a0 ; 0x10a0 + textpointer Text10a1 ; 0x10a1 + textpointer Text10a2 ; 0x10a2 + textpointer Text10a3 ; 0x10a3 + textpointer Text10a4 ; 0x10a4 + textpointer Text10a5 ; 0x10a5 + textpointer Text10a6 ; 0x10a6 + textpointer Text10a7 ; 0x10a7 + textpointer Text10a8 ; 0x10a8 + textpointer Text10a9 ; 0x10a9 + textpointer Text10aa ; 0x10aa + textpointer Text10ab ; 0x10ab + textpointer Text10ac ; 0x10ac + textpointer Text10ad ; 0x10ad + textpointer Text10ae ; 0x10ae + textpointer Text10af ; 0x10af + textpointer Text10b0 ; 0x10b0 + textpointer Text10b1 ; 0x10b1 + textpointer Text10b2 ; 0x10b2 + textpointer Text10b3 ; 0x10b3 + textpointer Text10b4 ; 0x10b4 + textpointer Text10b5 ; 0x10b5 + textpointer Text10b6 ; 0x10b6 + textpointer Text10b7 ; 0x10b7 + textpointer Text10b8 ; 0x10b8 + textpointer Text10b9 ; 0x10b9 + textpointer Text10ba ; 0x10ba + textpointer Text10bb ; 0x10bb + textpointer Text10bc ; 0x10bc + textpointer Text10bd ; 0x10bd + textpointer Text10be ; 0x10be + textpointer Text10bf ; 0x10bf + textpointer Text10c0 ; 0x10c0 + textpointer Text10c1 ; 0x10c1 + textpointer Text10c2 ; 0x10c2 + textpointer Text10c3 ; 0x10c3 + textpointer Text10c4 ; 0x10c4 + textpointer Text10c5 ; 0x10c5 + textpointer Text10c6 ; 0x10c6 + textpointer Text10c7 ; 0x10c7 + textpointer Text10c8 ; 0x10c8 + textpointer Text10c9 ; 0x10c9 + textpointer Text10ca ; 0x10ca + textpointer Text10cb ; 0x10cb + textpointer Text10cc ; 0x10cc + textpointer Text10cd ; 0x10cd + textpointer Text10ce ; 0x10ce + textpointer Text10cf ; 0x10cf + textpointer Text10d0 ; 0x10d0 + textpointer Text10d1 ; 0x10d1 + textpointer Text10d2 ; 0x10d2 + textpointer Text10d3 ; 0x10d3 + textpointer Text10d4 ; 0x10d4 + textpointer Text10d5 ; 0x10d5 + textpointer Text10d6 ; 0x10d6 + textpointer Text10d7 ; 0x10d7 + textpointer Text10d8 ; 0x10d8 + textpointer Text10d9 ; 0x10d9 + textpointer Text10da ; 0x10da + textpointer Text10db ; 0x10db + textpointer Text10dc ; 0x10dc + textpointer Text10dd ; 0x10dd + textpointer Text10de ; 0x10de + textpointer Text10df ; 0x10df + textpointer Text10e0 ; 0x10e0 + textpointer Text10e1 ; 0x10e1 + textpointer Text10e2 ; 0x10e2 + textpointer Text10e3 ; 0x10e3 + textpointer Text10e4 ; 0x10e4 + textpointer Text10e5 ; 0x10e5 + textpointer Text10e6 ; 0x10e6 + textpointer Text10e7 ; 0x10e7 + textpointer Text10e8 ; 0x10e8 + textpointer Text10e9 ; 0x10e9 + textpointer Text10ea ; 0x10ea + textpointer Text10eb ; 0x10eb + textpointer Text10ec ; 0x10ec + textpointer Text10ed ; 0x10ed + textpointer Text10ee ; 0x10ee + textpointer Text10ef ; 0x10ef + textpointer Text10f0 ; 0x10f0 + textpointer Text10f1 ; 0x10f1 + textpointer Text10f2 ; 0x10f2 + textpointer Text10f3 ; 0x10f3 + textpointer Text10f4 ; 0x10f4 + textpointer Text10f5 ; 0x10f5 + textpointer Text10f6 ; 0x10f6 + textpointer Text10f7 ; 0x10f7 + textpointer Text10f8 ; 0x10f8 + textpointer Text10f9 ; 0x10f9 + textpointer Text10fa ; 0x10fa + textpointer Text10fb ; 0x10fb + textpointer Text10fc ; 0x10fc + textpointer Text10fd ; 0x10fd + textpointer Text10fe ; 0x10fe + textpointer Text10ff ; 0x10ff + textpointer Text1100 ; 0x1100 + textpointer Text1101 ; 0x1101 + textpointer Text1102 ; 0x1102 + textpointer Text1103 ; 0x1103 + textpointer Text1104 ; 0x1104 + textpointer Text1105 ; 0x1105 + textpointer Text1106 ; 0x1106 + textpointer Text1107 ; 0x1107 + textpointer Text1108 ; 0x1108 + textpointer Text1109 ; 0x1109 + textpointer Text110a ; 0x110a + textpointer Text110b ; 0x110b + textpointer Text110c ; 0x110c + textpointer Text110d ; 0x110d + textpointer Text110e ; 0x110e + textpointer Text110f ; 0x110f + textpointer Text1110 ; 0x1110 + textpointer Text1111 ; 0x1111 + textpointer Text1112 ; 0x1112 + textpointer Text1113 ; 0x1113 + textpointer Text1114 ; 0x1114 + textpointer Text1115 ; 0x1115 + textpointer Text1116 ; 0x1116 + textpointer Text1117 ; 0x1117 + textpointer Text1118 ; 0x1118 + textpointer Text1119 ; 0x1119 + textpointer Text111a ; 0x111a + textpointer Text111b ; 0x111b + textpointer Text111c ; 0x111c + textpointer Text111d ; 0x111d + textpointer Text111e ; 0x111e + textpointer Text111f ; 0x111f + textpointer Text1120 ; 0x1120 + textpointer Text1121 ; 0x1121 + textpointer Text1122 ; 0x1122 + textpointer Text1123 ; 0x1123 + textpointer Text1124 ; 0x1124 + textpointer Text1125 ; 0x1125 + textpointer Text1126 ; 0x1126 + textpointer Text1127 ; 0x1127 + textpointer Text1128 ; 0x1128 + textpointer Text1129 ; 0x1129 + textpointer Text112a ; 0x112a + textpointer Text112b ; 0x112b + textpointer Text112c ; 0x112c + textpointer Text112d ; 0x112d + textpointer Text112e ; 0x112e + textpointer Text112f ; 0x112f + textpointer Text1130 ; 0x1130 + textpointer Text1131 ; 0x1131 + textpointer Text1132 ; 0x1132 + textpointer Text1133 ; 0x1133 + textpointer Text1134 ; 0x1134 + textpointer Text1135 ; 0x1135 + textpointer Text1136 ; 0x1136 + textpointer Text1137 ; 0x1137 + textpointer Text1138 ; 0x1138 + textpointer Text1139 ; 0x1139 + textpointer Text113a ; 0x113a + textpointer Text113b ; 0x113b + textpointer Text113c ; 0x113c + textpointer Text113d ; 0x113d + textpointer Text113e ; 0x113e + textpointer Text113f ; 0x113f + textpointer Text1140 ; 0x1140 + textpointer Text1141 ; 0x1141 + textpointer Text1142 ; 0x1142 + textpointer Text1143 ; 0x1143 + textpointer Text1144 ; 0x1144 + textpointer Text1145 ; 0x1145 + textpointer Text1146 ; 0x1146 + textpointer Text1147 ; 0x1147 + textpointer Text1148 ; 0x1148 + textpointer Text1149 ; 0x1149 + textpointer Text114a ; 0x114a + textpointer Text114b ; 0x114b + textpointer Text114c ; 0x114c + textpointer Text114d ; 0x114d + textpointer Text114e ; 0x114e + textpointer Text114f ; 0x114f + textpointer Text1150 ; 0x1150 + textpointer Text1151 ; 0x1151 + textpointer Text1152 ; 0x1152 + textpointer Text1153 ; 0x1153 + textpointer Text1154 ; 0x1154 + textpointer Text1155 ; 0x1155 + textpointer Text1156 ; 0x1156 + textpointer Text1157 ; 0x1157 + textpointer Text1158 ; 0x1158 + textpointer Text1159 ; 0x1159 + textpointer Text115a ; 0x115a + textpointer Text115b ; 0x115b + textpointer Text115c ; 0x115c + textpointer Text115d ; 0x115d + textpointer Text115e ; 0x115e + textpointer Text115f ; 0x115f + textpointer Text1160 ; 0x1160 + textpointer Text1161 ; 0x1161 + textpointer Text1162 ; 0x1162 + textpointer Text1163 ; 0x1163 + textpointer Text1164 ; 0x1164 + textpointer Text1165 ; 0x1165 + textpointer Text1166 ; 0x1166 + textpointer Text1167 ; 0x1167 + textpointer Text1168 ; 0x1168 + textpointer Text1169 ; 0x1169 + textpointer Text116a ; 0x116a + textpointer Text116b ; 0x116b + textpointer Text116c ; 0x116c + textpointer Text116d ; 0x116d + textpointer Text116e ; 0x116e + textpointer Text116f ; 0x116f + textpointer Text1170 ; 0x1170 + textpointer Text1171 ; 0x1171 + textpointer Text1172 ; 0x1172 + textpointer Text1173 ; 0x1173 + textpointer Text1174 ; 0x1174 + textpointer Text1175 ; 0x1175 + textpointer Text1176 ; 0x1176 + textpointer Text1177 ; 0x1177 + textpointer Text1178 ; 0x1178 + textpointer Text1179 ; 0x1179 + textpointer Text117a ; 0x117a + textpointer Text117b ; 0x117b + textpointer Text117c ; 0x117c + textpointer Text117d ; 0x117d + textpointer Text117e ; 0x117e + textpointer Text117f ; 0x117f + textpointer Text1180 ; 0x1180 + textpointer Text1181 ; 0x1181 + textpointer Text1182 ; 0x1182 + textpointer Text1183 ; 0x1183 + textpointer Text1184 ; 0x1184 + textpointer Text1185 ; 0x1185 + textpointer Text1186 ; 0x1186 + textpointer Text1187 ; 0x1187 + textpointer Text1188 ; 0x1188 + textpointer Text1189 ; 0x1189 + textpointer Text118a ; 0x118a + textpointer Text118b ; 0x118b + textpointer Text118c ; 0x118c + textpointer Text118d ; 0x118d + textpointer Text118e ; 0x118e + textpointer Text118f ; 0x118f + textpointer Text1190 ; 0x1190 + textpointer Text1191 ; 0x1191 + textpointer Text1192 ; 0x1192 + textpointer Text1193 ; 0x1193 + textpointer Text1194 ; 0x1194 + textpointer Text1195 ; 0x1195 + textpointer Text1196 ; 0x1196 + textpointer Text1197 ; 0x1197 + textpointer Text1198 ; 0x1198 + textpointer Text1199 ; 0x1199 + textpointer Text119a ; 0x119a + textpointer Text119b ; 0x119b + textpointer Text119c ; 0x119c + textpointer Text119d ; 0x119d + textpointer Text119e ; 0x119e + textpointer Text119f ; 0x119f + textpointer Text11a0 ; 0x11a0 + textpointer Text11a1 ; 0x11a1 + textpointer Text11a2 ; 0x11a2 + textpointer Text11a3 ; 0x11a3 + textpointer Text11a4 ; 0x11a4 + textpointer Text11a5 ; 0x11a5 + textpointer Text11a6 ; 0x11a6 + textpointer Text11a7 ; 0x11a7 + textpointer Text11a8 ; 0x11a8 + textpointer Text11a9 ; 0x11a9 + textpointer Text11aa ; 0x11aa + textpointer Text11ab ; 0x11ab + textpointer Text11ac ; 0x11ac + textpointer Text11ad ; 0x11ad + textpointer Text11ae ; 0x11ae + textpointer Text11af ; 0x11af + textpointer Text11b0 ; 0x11b0 + textpointer Text11b1 ; 0x11b1 + textpointer Text11b2 ; 0x11b2 + textpointer Text11b3 ; 0x11b3 + textpointer Text11b4 ; 0x11b4 + textpointer Text11b5 ; 0x11b5 + textpointer Text11b6 ; 0x11b6 + textpointer Text11b7 ; 0x11b7 + textpointer Text11b8 ; 0x11b8 + textpointer Text11b9 ; 0x11b9 + textpointer Text11ba ; 0x11ba + textpointer Text11bb ; 0x11bb + textpointer Text11bc ; 0x11bc + textpointer Text11bd ; 0x11bd + textpointer Text11be ; 0x11be + textpointer Text11bf ; 0x11bf + textpointer Text11c0 ; 0x11c0 + textpointer Text11c1 ; 0x11c1 + textpointer Text11c2 ; 0x11c2 + textpointer Text11c3 ; 0x11c3 + textpointer Text11c4 ; 0x11c4 + textpointer Text11c5 ; 0x11c5 + textpointer Text11c6 ; 0x11c6 + textpointer Text11c7 ; 0x11c7 + textpointer Text11c8 ; 0x11c8 + textpointer Text11c9 ; 0x11c9 + textpointer Text11ca ; 0x11ca + textpointer Text11cb ; 0x11cb + textpointer Text11cc ; 0x11cc + textpointer Text11cd ; 0x11cd + textpointer Text11ce ; 0x11ce + textpointer Text11cf ; 0x11cf + textpointer Text11d0 ; 0x11d0 + textpointer Text11d1 ; 0x11d1 + textpointer Text11d2 ; 0x11d2 + textpointer Text11d3 ; 0x11d3 + textpointer Text11d4 ; 0x11d4 + textpointer Text11d5 ; 0x11d5 + textpointer Text11d6 ; 0x11d6 + textpointer Text11d7 ; 0x11d7 + textpointer Text11d8 ; 0x11d8 + textpointer Text11d9 ; 0x11d9 + textpointer Text11da ; 0x11da + textpointer Text11db ; 0x11db + textpointer Text11dc ; 0x11dc + textpointer Text11dd ; 0x11dd + textpointer Text11de ; 0x11de + textpointer Text11df ; 0x11df + textpointer Text11e0 ; 0x11e0 + textpointer Text11e1 ; 0x11e1 + textpointer Text11e2 ; 0x11e2 + textpointer Text11e3 ; 0x11e3 + textpointer Text11e4 ; 0x11e4 + textpointer Text11e5 ; 0x11e5 + textpointer Text11e6 ; 0x11e6 + textpointer Text11e7 ; 0x11e7 + textpointer Text11e8 ; 0x11e8 + textpointer Text11e9 ; 0x11e9 + textpointer Text11ea ; 0x11ea + textpointer Text11eb ; 0x11eb + textpointer Text11ec ; 0x11ec + textpointer Text11ed ; 0x11ed + textpointer Text11ee ; 0x11ee + textpointer Text11ef ; 0x11ef + textpointer Text11f0 ; 0x11f0 + textpointer Text11f1 ; 0x11f1 + textpointer Text11f2 ; 0x11f2 + textpointer Text11f3 ; 0x11f3 + textpointer Text11f4 ; 0x11f4 + textpointer Text11f5 ; 0x11f5 + textpointer Text11f6 ; 0x11f6 + textpointer Text11f7 ; 0x11f7 + textpointer Text11f8 ; 0x11f8 + textpointer Text11f9 ; 0x11f9 + textpointer Text11fa ; 0x11fa + textpointer Text11fb ; 0x11fb + textpointer Text11fc ; 0x11fc + textpointer Text11fd ; 0x11fd + textpointer Text11fe ; 0x11fe + textpointer Text11ff ; 0x11ff + textpointer Text1200 ; 0x1200 + textpointer Text1201 ; 0x1201 + textpointer Text1202 ; 0x1202 + textpointer Text1203 ; 0x1203 + textpointer Text1204 ; 0x1204 + textpointer Text1205 ; 0x1205 + textpointer Text1206 ; 0x1206 + textpointer Text1207 ; 0x1207 + textpointer Text1208 ; 0x1208 + textpointer Text1209 ; 0x1209 + textpointer Text120a ; 0x120a + textpointer Text120b ; 0x120b + textpointer Text120c ; 0x120c + textpointer Text120d ; 0x120d + textpointer Text120e ; 0x120e + textpointer Text120f ; 0x120f + textpointer Text1210 ; 0x1210 + textpointer Text1211 ; 0x1211 + textpointer Text1212 ; 0x1212 + textpointer Text1213 ; 0x1213 + textpointer Text1214 ; 0x1214 + textpointer Text1215 ; 0x1215 + textpointer Text1216 ; 0x1216 + textpointer Text1217 ; 0x1217 + textpointer Text1218 ; 0x1218 + textpointer Text1219 ; 0x1219 + textpointer Text121a ; 0x121a + textpointer Text121b ; 0x121b + textpointer Text121c ; 0x121c + textpointer Text121d ; 0x121d + textpointer Text121e ; 0x121e + textpointer Text121f ; 0x121f + textpointer Text1220 ; 0x1220 + textpointer Text1221 ; 0x1221 + textpointer Text1222 ; 0x1222 + textpointer Text1223 ; 0x1223 + textpointer Text1224 ; 0x1224 + textpointer Text1225 ; 0x1225 + textpointer Text1226 ; 0x1226 + textpointer Text1227 ; 0x1227 + textpointer Text1228 ; 0x1228 + textpointer Text1229 ; 0x1229 + textpointer Text122a ; 0x122a + textpointer Text122b ; 0x122b + textpointer Text122c ; 0x122c + textpointer Text122d ; 0x122d + textpointer Text122e ; 0x122e + textpointer Text122f ; 0x122f + textpointer Text1230 ; 0x1230 + textpointer Text1231 ; 0x1231 + textpointer Text1232 ; 0x1232 + textpointer Text1233 ; 0x1233 + textpointer Text1234 ; 0x1234 + textpointer Text1235 ; 0x1235 + textpointer Text1236 ; 0x1236 + textpointer Text1237 ; 0x1237 + textpointer Text1238 ; 0x1238 + textpointer Text1239 ; 0x1239 + textpointer Text123a ; 0x123a + textpointer Text123b ; 0x123b + textpointer Text123c ; 0x123c + textpointer Text123d ; 0x123d + textpointer Text123e ; 0x123e + textpointer Text123f ; 0x123f + textpointer Text1240 ; 0x1240 + textpointer Text1241 ; 0x1241 + textpointer Text1242 ; 0x1242 + textpointer Text1243 ; 0x1243 + textpointer Text1244 ; 0x1244 + textpointer Text1245 ; 0x1245 + textpointer Text1246 ; 0x1246 + textpointer Text1247 ; 0x1247 + textpointer Text1248 ; 0x1248 + textpointer Text1249 ; 0x1249 + textpointer Text124a ; 0x124a + textpointer Text124b ; 0x124b + textpointer Text124c ; 0x124c + textpointer Text124d ; 0x124d + textpointer Text124e ; 0x124e + textpointer Text124f ; 0x124f + textpointer Text1250 ; 0x1250 + textpointer Text1251 ; 0x1251 + textpointer Text1252 ; 0x1252 + textpointer Text1253 ; 0x1253 + textpointer Text1254 ; 0x1254 + textpointer Text1255 ; 0x1255 + textpointer Text1256 ; 0x1256 + textpointer Text1257 ; 0x1257 + textpointer Text1258 ; 0x1258 + textpointer Text1259 ; 0x1259 + textpointer Text125a ; 0x125a + textpointer Text125b ; 0x125b + textpointer Text125c ; 0x125c + textpointer Text125d ; 0x125d + textpointer Text125e ; 0x125e + textpointer Text125f ; 0x125f + textpointer Text1260 ; 0x1260 + textpointer Text1261 ; 0x1261 + textpointer Text1262 ; 0x1262 + textpointer Text1263 ; 0x1263 + textpointer Text1264 ; 0x1264 + textpointer Text1265 ; 0x1265 + textpointer Text1266 ; 0x1266 + textpointer Text1267 ; 0x1267 + textpointer Text1268 ; 0x1268 + textpointer Text1269 ; 0x1269 + textpointer Text126a ; 0x126a + textpointer Text126b ; 0x126b + textpointer Text126c ; 0x126c textpointer RonaldGCPieces2WantsToDuelText ; 0x126d textpointer RonaldGCPieces2PlayerWon1Text ; 0x126e textpointer RonaldGCPieces2PlayerWon2Text ; 0x126f textpointer RonaldGCPieces2PlayerLostText ; 0x1270 - textpointer Text1271 ; 0x1271 - textpointer Text1272 ; 0x1272 - textpointer Text1273 ; 0x1273 - textpointer Text1274 ; 0x1274 - textpointer Text1275 ; 0x1275 - textpointer Text1276 ; 0x1276 - textpointer Text1277 ; 0x1277 - textpointer Text1278 ; 0x1278 - textpointer Text1279 ; 0x1279 - textpointer Text127a ; 0x127a - textpointer Text127b ; 0x127b - textpointer Text127c ; 0x127c - textpointer Text127d ; 0x127d - textpointer Text127e ; 0x127e - textpointer Text127f ; 0x127f - textpointer Text1280 ; 0x1280 - textpointer Text1281 ; 0x1281 - textpointer Text1282 ; 0x1282 - textpointer Text1283 ; 0x1283 - textpointer Text1284 ; 0x1284 - textpointer Text1285 ; 0x1285 - textpointer Text1286 ; 0x1286 - textpointer Text1287 ; 0x1287 - textpointer Text1288 ; 0x1288 - textpointer Text1289 ; 0x1289 - textpointer Text128a ; 0x128a - textpointer Text128b ; 0x128b - textpointer Text128c ; 0x128c - textpointer Text128d ; 0x128d - textpointer Text128e ; 0x128e - textpointer Text128f ; 0x128f + textpointer Text1271 ; 0x1271 + textpointer Text1272 ; 0x1272 + textpointer Text1273 ; 0x1273 + textpointer Text1274 ; 0x1274 + textpointer Text1275 ; 0x1275 + textpointer Text1276 ; 0x1276 + textpointer Text1277 ; 0x1277 + textpointer Text1278 ; 0x1278 + textpointer Text1279 ; 0x1279 + textpointer Text127a ; 0x127a + textpointer Text127b ; 0x127b + textpointer Text127c ; 0x127c + textpointer Text127d ; 0x127d + textpointer Text127e ; 0x127e + textpointer Text127f ; 0x127f + textpointer Text1280 ; 0x1280 + textpointer Text1281 ; 0x1281 + textpointer Text1282 ; 0x1282 + textpointer Text1283 ; 0x1283 + textpointer Text1284 ; 0x1284 + textpointer Text1285 ; 0x1285 + textpointer Text1286 ; 0x1286 + textpointer Text1287 ; 0x1287 + textpointer Text1288 ; 0x1288 + textpointer Text1289 ; 0x1289 + textpointer Text128a ; 0x128a + textpointer Text128b ; 0x128b + textpointer Text128c ; 0x128c + textpointer Text128d ; 0x128d + textpointer Text128e ; 0x128e + textpointer Text128f ; 0x128f textpointer CombosBookText ; 0x1290 textpointer EnergyTransBookText ; 0x1291 textpointer ToxicGasBookText ; 0x1292 @@ -4828,23 +4828,23 @@ SECTION "Text Offsets 2", ROMX textpointer ImakuniBlackPlayerWon6Text ; 0x12d0 textpointer ImakuniBlackPlayerWon9Text ; 0x12d1 textpointer ImakuniBlackPlayerWonManyText ; 0x12d2 - textpointer Text12d3 ; 0x12d3 - textpointer Text12d4 ; 0x12d4 - textpointer Text12d5 ; 0x12d5 - textpointer Text12d6 ; 0x12d6 - textpointer Text12d7 ; 0x12d7 - textpointer Text12d8 ; 0x12d8 - textpointer Text12d9 ; 0x12d9 - textpointer Text12da ; 0x12da - textpointer Text12db ; 0x12db - textpointer Text12dc ; 0x12dc - textpointer Text12dd ; 0x12dd - textpointer Text12de ; 0x12de - textpointer Text12df ; 0x12df - textpointer Text12e0 ; 0x12e0 - textpointer Text12e1 ; 0x12e1 - textpointer Text12e2 ; 0x12e2 - textpointer Text12e3 ; 0x12e3 + textpointer Text12d3 ; 0x12d3 + textpointer Text12d4 ; 0x12d4 + textpointer Text12d5 ; 0x12d5 + textpointer Text12d6 ; 0x12d6 + textpointer Text12d7 ; 0x12d7 + textpointer Text12d8 ; 0x12d8 + textpointer Text12d9 ; 0x12d9 + textpointer Text12da ; 0x12da + textpointer Text12db ; 0x12db + textpointer Text12dc ; 0x12dc + textpointer Text12dd ; 0x12dd + textpointer Text12de ; 0x12de + textpointer Text12df ; 0x12df + textpointer Text12e0 ; 0x12e0 + textpointer Text12e1 ; 0x12e1 + textpointer Text12e2 ; 0x12e2 + textpointer Text12e3 ; 0x12e3 textpointer BattleCenterWelcomeText ; 0x12e4 textpointer BattleCenterBeginPromptText ; 0x12e5 textpointer BattleCenterThankYouText ; 0x12e6 @@ -4854,1602 +4854,1602 @@ SECTION "Text Offsets 2", ROMX textpointer BattleCenter50WinsRewardsText ; 0x12ea textpointer BattleCenterAppreciateContinuedSupportText ; 0x12eb textpointer BattleCenter100WinsRewardsText ; 0x12ec - textpointer GrassEnergyName ; 0x12ed - textpointer GrassEnergyDescription ; 0x12ee - textpointer FireEnergyName ; 0x12ef - textpointer FireEnergyDescription ; 0x12f0 - textpointer WaterEnergyName ; 0x12f1 - textpointer WaterEnergyDescription ; 0x12f2 - textpointer LightningEnergyName ; 0x12f3 - textpointer LightningEnergyDescription ; 0x12f4 - textpointer FightingEnergyName ; 0x12f5 - textpointer FightingEnergyDescription ; 0x12f6 - textpointer PsychicEnergyName ; 0x12f7 - textpointer PsychicEnergyDescription ; 0x12f8 - textpointer DoubleColorlessEnergyName ; 0x12f9 - textpointer DoubleColorlessEnergyDescription ; 0x12fa - textpointer PotionEnergyName ; 0x12fb - textpointer PotionEnergyDescription ; 0x12fc - textpointer PotionEnergyDescriptionCont ; 0x12fd - textpointer FullHealEnergyName ; 0x12fe - textpointer FullHealEnergyDescription ; 0x12ff - textpointer RainbowEnergyName ; 0x1300 - textpointer RainbowEnergyDescription ; 0x1301 - textpointer RecycleEnergyName ; 0x1302 - textpointer RecycleEnergyDescription ; 0x1303 - textpointer BulbasaurName ; 0x1304 - textpointer TackleName ; 0x1305 - textpointer RazorLeafName ; 0x1306 - textpointer SeedName ; 0x1307 - textpointer BulbasaurLv12Description ; 0x1308 - textpointer LeechSeedName ; 0x1309 - textpointer LeechSeedDescription ; 0x130a - textpointer BulbasaurLv13Description ; 0x130b - textpointer FirstAidName ; 0x130c - textpointer FirstAidDescription ; 0x130d - textpointer PoisonSeedName ; 0x130e - textpointer InflictPoisonDescription ; 0x130f - textpointer BulbasaurLv15Description ; 0x1310 - textpointer IvysaurName ; 0x1311 - textpointer VineWhipName ; 0x1312 - textpointer PoisonPowderName ; 0x1313 - textpointer IvysaurLv20Description ; 0x1314 - textpointer LeechSeedAltName ; 0x1315 - textpointer IvysaursLeechSeedDescription ; 0x1316 - textpointer VineWhipAltName ; 0x1317 - textpointer IvysaurLv26Description ; 0x1318 - textpointer DarkIvysaurName ; 0x1319 - textpointer VinePullName ; 0x131a - textpointer VinePullDescription ; 0x131b - textpointer FuryStrikesName ; 0x131c - textpointer FuryStrikesDescription ; 0x131d - textpointer DarkIvysaurDescription ; 0x131e - textpointer VenusaurName ; 0x131f - textpointer SolarPowerName ; 0x1320 - textpointer SolarPowerDescription ; 0x1321 - textpointer MegaDrainName ; 0x1322 - textpointer MegaDrainDescription ; 0x1323 - textpointer VenusaurLv64Description ; 0x1324 - textpointer EnergyTransName ; 0x1325 - textpointer EnergyTransDescription ; 0x1326 - textpointer SolarbeamName ; 0x1327 - textpointer VenusaurLv67Description ; 0x1328 - textpointer DarkVenusaurName ; 0x1329 - textpointer HorridPollenName ; 0x132a - textpointer HorridPollenDescription ; 0x132b - textpointer DarkVenusaurDescription ; 0x132c - textpointer CaterpieName ; 0x132d - textpointer StringShotName ; 0x132e - textpointer MayInflictParalysisDescription ; 0x132f - textpointer WormName ; 0x1330 - textpointer CaterpieDescription ; 0x1331 - textpointer MetapodName ; 0x1332 - textpointer GreenShieldName ; 0x1333 - textpointer GreenShieldDescription ; 0x1334 - textpointer MysteriousPowerName ; 0x1335 - textpointer MayInflictConfusionDescription ; 0x1336 - textpointer CocoonName ; 0x1337 - textpointer MetapodLv20Description ; 0x1338 - textpointer StiffenName ; 0x1339 - textpointer PreventDamageCardEffectDescription ; 0x133a - textpointer StunSporeName ; 0x133b - textpointer MetapodLv21Description ; 0x133c - textpointer ButterfreeName ; 0x133d - textpointer WhirlwindName ; 0x133e - textpointer WhirlwindDescription ; 0x133f - textpointer ButterflyName ; 0x1340 - textpointer ButterfreeDescription ; 0x1341 - textpointer WeedleName ; 0x1342 - textpointer PoisonStingName ; 0x1343 - textpointer MayInflictPoisonDescription ; 0x1344 - textpointer HairyBugName ; 0x1345 - textpointer WeedleLv12Description ; 0x1346 - textpointer PeckName ; 0x1347 - textpointer PoisonHornName ; 0x1348 - textpointer WeedleLv15Description ; 0x1349 - textpointer KakunaName ; 0x134a - textpointer PoisonFluidName ; 0x134b - textpointer PoisonFluidDescription ; 0x134c - textpointer RolloutName ; 0x134d - textpointer KakunaLv20Description ; 0x134e - textpointer KakunaLv23Description ; 0x134f - textpointer BeedrillName ; 0x1350 - textpointer TwineedleName ; 0x1351 - textpointer Do30DamageNumberOfHeadsDescription ; 0x1352 - textpointer PoisonBeeName ; 0x1353 - textpointer BeedrillDescription ; 0x1354 - textpointer EkansName ; 0x1355 - textpointer SpitPoisonName ; 0x1356 - textpointer WrapName ; 0x1357 - textpointer SnakeName ; 0x1358 - textpointer EkansLv10Description ; 0x1359 - textpointer BiteName ; 0x135a - textpointer MayInflictPoisonAltDescription ; 0x135b - textpointer EkansLv15Description ; 0x135c - textpointer ArbokName ; 0x135d - textpointer TerrorStrikeName ; 0x135e - textpointer TerrorStrikeDescription ; 0x135f - textpointer PoisonFangName ; 0x1360 - textpointer CobraName ; 0x1361 - textpointer ArbokLv27Description ; 0x1362 - textpointer MayInflictParalysisAltDescription ; 0x1363 - textpointer DeadlyPoisonName ; 0x1364 - textpointer DeadlyPoisonDescription ; 0x1365 - textpointer ArbokLv30Description ; 0x1366 - textpointer DarkArbokName ; 0x1367 - textpointer StareName ; 0x1368 - textpointer StareDescription ; 0x1369 - textpointer PoisonVaporName ; 0x136a - textpointer PoisonVaporDescription ; 0x136b - textpointer DarkArbokDescription ; 0x136c - textpointer NidoranFName ; 0x136d - textpointer TailWhipName ; 0x136e - textpointer TailWhipDescription ; 0x136f - textpointer NidoranFLv12Description ; 0x1370 - textpointer FurySwipesName ; 0x1371 - textpointer FurySwipes10DamageDescription ; 0x1372 - textpointer CallForFamilyName ; 0x1373 - textpointer CallForFamilyNidoranDescription ; 0x1374 - textpointer NidoranFLv13Description ; 0x1375 - textpointer NidorinaName ; 0x1376 - textpointer StrengthInNumbersName ; 0x1377 - textpointer StrengthInNumbersDescription ; 0x1378 - textpointer FurySwipes30DamageDescription ; 0x1379 - textpointer NidorinaLv22Description ; 0x137a - textpointer SupersonicName ; 0x137b - textpointer MayInflictConfusionAltDescription ; 0x137c - textpointer DoubleKickName ; 0x137d - textpointer NidorinaLv24Description ; 0x137e - textpointer NidoqueenName ; 0x137f - textpointer BoyfriendsName ; 0x1380 - textpointer BoyfriendsDescription ; 0x1381 - textpointer MegaPunchName ; 0x1382 - textpointer DrillName ; 0x1383 - textpointer NidoqueenDescription ; 0x1384 - textpointer NidoranMName ; 0x1385 - textpointer HornHazardName ; 0x1386 - textpointer IfTailsDoNothingDescription ; 0x1387 - textpointer NidoranMLv20Description ; 0x1388 - textpointer FocusEnergyName ; 0x1389 - textpointer FocusEnergyHornRushDescription ; 0x138a - textpointer HornRushName ; 0x138b - textpointer IfTailsDoNothingAltDescription ; 0x138c - textpointer NidoranMLv22Description ; 0x138d - textpointer NidorinoName ; 0x138e - textpointer SwiftLungeName ; 0x138f - textpointer SwiftLungeDescription ; 0x1390 - textpointer NidorinoLv23Description ; 0x1391 - textpointer HornDrillName ; 0x1392 - textpointer NidorinoLv25Description ; 0x1393 - textpointer NidokingName ; 0x1394 - textpointer ThrashName ; 0x1395 - textpointer ThrashDescription ; 0x1396 - textpointer ToxicName ; 0x1397 - textpointer ToxicDescription ; 0x1398 - textpointer NidokingDescription ; 0x1399 - textpointer ZubatName ; 0x139a - textpointer RamName ; 0x139b - textpointer BatName ; 0x139c - textpointer ZubatLv9Description ; 0x139d - textpointer LeechLifeName ; 0x139e - textpointer LeechLifeDescription ; 0x139f - textpointer ZubatLv10Description ; 0x13a0 - textpointer SuspiciousSoundwaveName ; 0x13a1 - textpointer ZubatLv12Description ; 0x13a2 - textpointer GolbatName ; 0x13a3 - textpointer LeechLifeAltDescription ; 0x13a4 - textpointer NosediveName ; 0x13a5 - textpointer NosediveDescription ; 0x13a6 - textpointer GolbatLv25Description ; 0x13a7 - textpointer WingAttackName ; 0x13a8 - textpointer GolbatLv29Description ; 0x13a9 - textpointer DarkGolbatName ; 0x13aa - textpointer SneakAttackName ; 0x13ab - textpointer SneakAttackDescription ; 0x13ac - textpointer FlitterName ; 0x13ad - textpointer FlitterDescription ; 0x13ae - textpointer DarkGolbatDescription ; 0x13af - textpointer OddishName ; 0x13b0 - textpointer SproutName ; 0x13b1 - textpointer SproutDescription ; 0x13b2 - textpointer WeedName ; 0x13b3 - textpointer OddishLv8Description ; 0x13b4 - textpointer SleepPowderName ; 0x13b5 - textpointer InflictSleepDescription ; 0x13b6 - textpointer OddishLv21Description ; 0x13b7 - textpointer GloomName ; 0x13b8 - textpointer FoulOdorName ; 0x13b9 - textpointer FoulOdorDescription ; 0x13ba - textpointer GloomDescription ; 0x13bb - textpointer DarkGloomName ; 0x13bc - textpointer PollenStenchName ; 0x13bd - textpointer PollenStenchDescription ; 0x13be - textpointer DarkGloomDescription ; 0x13bf - textpointer VileplumeName ; 0x13c0 - textpointer HealName ; 0x13c1 - textpointer HealDescription ; 0x13c2 - textpointer PetalDanceName ; 0x13c3 - textpointer PetalDanceDescription ; 0x13c4 - textpointer FlowerName ; 0x13c5 - textpointer VileplumeDescription ; 0x13c6 - textpointer DarkVileplumeName ; 0x13c7 - textpointer HayFeverName ; 0x13c8 - textpointer HayFeverDescription ; 0x13c9 - textpointer PetalWhirlwindName ; 0x13ca - textpointer PetalWhirlwindDescription ; 0x13cb - textpointer DarkVileplumeDescription ; 0x13cc - textpointer ParasName ; 0x13cd - textpointer ScratchName ; 0x13ce - textpointer SporeName ; 0x13cf - textpointer MushroomName ; 0x13d0 - textpointer ParasLv8Description ; 0x13d1 - textpointer ScatterSporesName ; 0x13d2 - textpointer ScatterSporesDescription ; 0x13d3 - textpointer ParasLv15Description ; 0x13d4 - textpointer ParasectName ; 0x13d5 - textpointer SlashName ; 0x13d6 - textpointer ParasectLv28Description ; 0x13d7 - textpointer ToxicSporeName ; 0x13d8 - textpointer ParasectLv29Description ; 0x13d9 - textpointer VenonatName ; 0x13da - textpointer InsectName ; 0x13db - textpointer VenonatLv12Description ; 0x13dc - textpointer DisableName ; 0x13dd - textpointer DisableDescription ; 0x13de - textpointer PsybeamName ; 0x13df - textpointer VenonatLv15Description ; 0x13e0 - textpointer VenomothName ; 0x13e1 - textpointer StirUpTwisterName ; 0x13e2 - textpointer StirUpTwisterDescription ; 0x13e3 - textpointer RainbowPowderName ; 0x13e4 - textpointer RainbowPowderDescription ; 0x13e5 - textpointer PoisonMothName ; 0x13e6 - textpointer VenomothLv22Description ; 0x13e7 - textpointer ShiftName ; 0x13e8 - textpointer ShiftDescription ; 0x13e9 - textpointer ShiftDescriptionCont ; 0x13ea - textpointer VenomPowderName ; 0x13eb - textpointer VenomPowderDescription ; 0x13ec - textpointer VenomothLv28Description ; 0x13ed - textpointer BellsproutName ; 0x13ee - textpointer SwayName ; 0x13ef - textpointer BellsproutLv10Description ; 0x13f0 - textpointer CallForFamilyBellsproutDescription ; 0x13f1 - textpointer BellsproutLv11Description ; 0x13f2 - textpointer WeepinbellName ; 0x13f3 - textpointer RegenerationName ; 0x13f4 - textpointer RegenerationDescription ; 0x13f5 - textpointer DissolveName ; 0x13f6 - textpointer DissolveDescription ; 0x13f7 - textpointer FlycatcherName ; 0x13f8 - textpointer WeepinbellLv23Description ; 0x13f9 - textpointer WeepinbellLv28Description ; 0x13fa - textpointer VictreebelName ; 0x13fb - textpointer LureName ; 0x13fc - textpointer LureDescription ; 0x13fd - textpointer AcidName ; 0x13fe - textpointer AcidDescription ; 0x13ff - textpointer VictreebelDescription ; 0x1400 - textpointer GrimerName ; 0x1401 - textpointer PoisonGasName ; 0x1402 - textpointer StickyHandsName ; 0x1403 - textpointer StickyHandsDescription ; 0x1404 - textpointer SludgeCategoryName ; 0x1405 - textpointer GrimerLv10Description ; 0x1406 - textpointer NastyGooName ; 0x1407 - textpointer MinimizeName ; 0x1408 - textpointer MinimizeDescription ; 0x1409 - textpointer GrimerLv17Description ; 0x140a - textpointer MukName ; 0x140b - textpointer ToxicGasName ; 0x140c - textpointer ToxicGasDescription ; 0x140d - textpointer SludgeMoveName ; 0x140e - textpointer MukDescription ; 0x140f - textpointer DarkMukName ; 0x1410 - textpointer StickyGooName ; 0x1411 - textpointer StickyGooDescription ; 0x1412 - textpointer SludgePunchName ; 0x1413 - textpointer DarkMukDescription ; 0x1414 - textpointer ExeggcuteName ; 0x1415 - textpointer HypnosisMoveName ; 0x1416 - textpointer EggName ; 0x1417 - textpointer ExeggcuteDescription ; 0x1418 - textpointer ExeggutorName ; 0x1419 - textpointer TeleportName ; 0x141a - textpointer TeleportDescription ; 0x141b - textpointer BigEggsplosionName ; 0x141c - textpointer BigEggsplosionDescription ; 0x141d - textpointer CoconutName ; 0x141e - textpointer ExeggutorDescription ; 0x141f - textpointer KoffingName ; 0x1420 - textpointer KoffingLv12Description ; 0x1421 - textpointer FoulGasName ; 0x1422 - textpointer FoulGasDescription ; 0x1423 - textpointer KoffingLv13Description ; 0x1424 - textpointer ConfusionGasName ; 0x1425 - textpointer KoffingLv14Description ; 0x1426 - textpointer WeezingName ; 0x1427 - textpointer PoisonMistName ; 0x1428 - textpointer PoisonMistDescription ; 0x1429 - textpointer PoisonMistDescriptionCont ; 0x142a - textpointer GasExplosionName ; 0x142b - textpointer GasExplosionDescription ; 0x142c - textpointer WeezingLv26Description ; 0x142d - textpointer SmogName ; 0x142e - textpointer SelfdestructName ; 0x142f - textpointer Selfdestruct60DamageDescription ; 0x1430 - textpointer WeezingLv27Description ; 0x1431 - textpointer DarkWeezingName ; 0x1432 - textpointer MassExplosionName ; 0x1433 - textpointer MassExplosionDescription ; 0x1434 - textpointer StunGasName ; 0x1435 - textpointer StunGasDescription ; 0x1436 - textpointer DarkWeezingDescription ; 0x1437 - textpointer TangelaName ; 0x1438 - textpointer BindName ; 0x1439 - textpointer VineName ; 0x143a - textpointer TangelaLv8Description ; 0x143b - textpointer PoisonWhipName ; 0x143c - textpointer TangelaLv12Description ; 0x143d - textpointer ScytherName ; 0x143e - textpointer SlashingStrikeName ; 0x143f - textpointer SlashingStrikeDescription ; 0x1440 - textpointer MantisName ; 0x1441 - textpointer ScytherLv23Description ; 0x1442 - textpointer SwordsDanceName ; 0x1443 - textpointer SwordsDanceDescription ; 0x1444 - textpointer ScytherLv25Description ; 0x1445 - textpointer PinsirName ; 0x1446 - textpointer SlicingThrowName ; 0x1447 - textpointer IfHeadsDo10DamageDescription ; 0x1448 - textpointer StagbeetleName ; 0x1449 - textpointer PinsirLv15Description ; 0x144a - textpointer IrongripName ; 0x144b - textpointer GuillotineName ; 0x144c - textpointer PinsirLv24Description ; 0x144d - textpointer CharmanderName ; 0x144e - textpointer GatherFireName ; 0x144f - textpointer GatherFireDescription ; 0x1450 - textpointer FireTailName ; 0x1451 - textpointer LizardName ; 0x1452 - textpointer CharmanderLv9Description ; 0x1453 - textpointer EmberName ; 0x1454 - textpointer DiscardOneFireEnergyDescription ; 0x1455 - textpointer CharmanderLv10Description ; 0x1456 - textpointer GrowlName ; 0x1457 - textpointer GrowlDescription ; 0x1458 - textpointer CharmanderLv12Description ; 0x1459 - textpointer CharmeleonName ; 0x145a - textpointer FlamethrowerName ; 0x145b - textpointer FlameName ; 0x145c - textpointer CharmeleonDescription ; 0x145d - textpointer DarkCharmeleonName ; 0x145e - textpointer TailSlapName ; 0x145f - textpointer FireballName ; 0x1460 - textpointer FireballDescription ; 0x1461 - textpointer DarkCharmeleonDescription ; 0x1462 - textpointer CharizardName ; 0x1463 - textpointer EnergyBurnName ; 0x1464 - textpointer EnergyBurnDescription ; 0x1465 - textpointer FireSpinName ; 0x1466 - textpointer FireSpinDescription ; 0x1467 - textpointer CharizardDescription ; 0x1468 - textpointer CharizardAltDescription ; 0x1469 - textpointer DarkCharizardName ; 0x146a - textpointer NailFlickName ; 0x146b - textpointer ContinuousFireballName ; 0x146c - textpointer ContinuousFireballDescription ; 0x146d - textpointer DarkCharizardDescription ; 0x146e - textpointer VulpixName ; 0x146f - textpointer ConfuseRayName ; 0x1470 - textpointer FoxName ; 0x1471 - textpointer VulpixLv11Description ; 0x1472 - textpointer FoxFireName ; 0x1473 - textpointer FoxFireDescription ; 0x1474 - textpointer VulpixLv13Description ; 0x1475 - textpointer NinetalesName ; 0x1476 - textpointer LureAltName ; 0x1477 - textpointer FireBlastName ; 0x1478 - textpointer NinetalesLv32Description ; 0x1479 - textpointer MixUpName ; 0x147a - textpointer MixUpDescription ; 0x147b - textpointer DancingEmbersName ; 0x147c - textpointer DancingEmbersDescription ; 0x147d - textpointer NinetalesLv35Description ; 0x147e - textpointer DarkNinetalesName ; 0x147f - textpointer PerplexName ; 0x1480 - textpointer PerplexDescription ; 0x1481 - textpointer NineTailsName ; 0x1482 - textpointer NineTailsDescription ; 0x1483 - textpointer DarkNinetalesDescription ; 0x1484 - textpointer GrowlitheName ; 0x1485 - textpointer LungeName ; 0x1486 - textpointer PuppyName ; 0x1487 - textpointer GrowlitheLv12Description ; 0x1488 - textpointer ErrandRunningName ; 0x1489 - textpointer ErrandRunningDescription ; 0x148a - textpointer DiscardOneFireEnergyAltDescription ; 0x148b - textpointer GrowlitheLv16Description ; 0x148c - textpointer FlareName ; 0x148d - textpointer GrowlitheLv18Description ; 0x148e - textpointer ArcanineName ; 0x148f - textpointer QuickAttackName ; 0x1490 - textpointer QuickAttackDescription ; 0x1491 - textpointer FlamesOfRageName ; 0x1492 - textpointer FlamesOfRageDescription ; 0x1493 - textpointer LegendaryName ; 0x1494 - textpointer ArcanineLv34Description ; 0x1495 - textpointer TakeDownName ; 0x1496 - textpointer Do20DamageToSelfDescription ; 0x1497 - textpointer ArcanineLv35Description ; 0x1498 - textpointer Do30DamageToSelfDescription ; 0x1499 - textpointer ArcanineLv45Description ; 0x149a - textpointer PonytaName ; 0x149b - textpointer SmashKickName ; 0x149c - textpointer FireworksName ; 0x149d - textpointer FireworksDescription ; 0x149e - textpointer FireHorseName ; 0x149f - textpointer PonytaLv8Description ; 0x14a0 - textpointer PonytaLv10Description ; 0x14a1 - textpointer PonytaLv15Description ; 0x14a2 - textpointer RapidashName ; 0x14a3 - textpointer FlameInfernoName ; 0x14a4 - textpointer FlameInfernoDescription ; 0x14a5 - textpointer KickAwayName ; 0x14a6 - textpointer SwitchWithBenchedMonDescription ; 0x14a7 - textpointer RapidashLv30Description ; 0x14a8 - textpointer StompName ; 0x14a9 - textpointer StompDescription ; 0x14aa - textpointer AgilityName ; 0x14ab - textpointer AgilityDescription ; 0x14ac - textpointer RapidashLv33Description ; 0x14ad - textpointer DarkRapidashName ; 0x14ae - textpointer RearKickName ; 0x14af - textpointer FlamePillarName ; 0x14b0 - textpointer FlamePillarDescription ; 0x14b1 - textpointer DarkRapidashDescription ; 0x14b2 - textpointer MagmarName ; 0x14b3 - textpointer FirePunchName ; 0x14b4 - textpointer SpitfireName ; 0x14b5 - textpointer MagmarLv18Description ; 0x14b6 - textpointer MagmarLv24Description ; 0x14b7 - textpointer BurningFireName ; 0x14b8 - textpointer BurningFireDescription ; 0x14b9 - textpointer MagmaPunchName ; 0x14ba - textpointer MagmarLv27Description ; 0x14bb - textpointer SmokescreenName ; 0x14bc - textpointer SmokescreenDescription ; 0x14bd - textpointer MagmarLv31Description ; 0x14be - textpointer FlareonName ; 0x14bf - textpointer EeveeName ; 0x14c0 - textpointer RageName ; 0x14c1 - textpointer RageDescription ; 0x14c2 - textpointer FlareonLv22Description ; 0x14c3 - textpointer FlareonLv28Description ; 0x14c4 - textpointer DarkFlareonName ; 0x14c5 - textpointer PlayingWithFireName ; 0x14c6 - textpointer PlayingWithFireDescription ; 0x14c7 - textpointer DarkFlareonDescription ; 0x14c8 - textpointer MoltresName ; 0x14c9 - textpointer WildfireName ; 0x14ca - textpointer WildfireDescription ; 0x14cb - textpointer DiveBombName ; 0x14cc - textpointer MoltresLv35Description ; 0x14cd - textpointer DryUpName ; 0x14ce - textpointer DryUpDescription ; 0x14cf - textpointer FireWingName ; 0x14d0 - textpointer MoltresSharedDescription ; 0x14d1 - textpointer FiregiverName ; 0x14d2 - textpointer FiregiverDescription ; 0x14d3 - textpointer FiregiverDescriptionCont ; 0x14d4 - textpointer SquirtleName ; 0x14d5 - textpointer BubbleName ; 0x14d6 - textpointer WithdrawName ; 0x14d7 - textpointer TinyTurtleName ; 0x14d8 - textpointer SquirtleLv8Description ; 0x14d9 - textpointer SkullBashName ; 0x14da - textpointer SquirtleLv14Description ; 0x14db - textpointer WaterPowerName ; 0x14dc - textpointer WaterPowerDescription ; 0x14dd - textpointer PoundName ; 0x14de - textpointer SquirtleLv15Description ; 0x14df - textpointer ShellAttackName ; 0x14e0 - textpointer SquirtleLv16Description ; 0x14e1 - textpointer WartortleName ; 0x14e2 - textpointer TurtleName ; 0x14e3 - textpointer WartortleLv22Description ; 0x14e4 - textpointer SurfName ; 0x14e5 - textpointer WartortleLv24Description ; 0x14e6 - textpointer DarkWartortleName ; 0x14e7 - textpointer DoubleSlapName ; 0x14e8 - textpointer Do10DamageNumberOfHeadsDescription ; 0x14e9 - textpointer MirrorShellName ; 0x14ea - textpointer MirrorShellDescription ; 0x14eb - textpointer DarkWartortleDescription ; 0x14ec - textpointer BlastoiseName ; 0x14ed - textpointer RainDanceName ; 0x14ee - textpointer RainDanceDescription ; 0x14ef - textpointer HydroPumpName ; 0x14f0 - textpointer Do20DamagePlus10WaterEnergyDescription ; 0x14f1 - textpointer ShellfishName ; 0x14f2 - textpointer BlastoiseDescription ; 0x14f3 - textpointer BlastoiseAltDescription ; 0x14f4 - textpointer DarkBlastoiseName ; 0x14f5 - textpointer HydrocannonName ; 0x14f6 - textpointer HydrocannonDescription ; 0x14f7 - textpointer RocketTackleName ; 0x14f8 - textpointer RocketTackleDescription ; 0x14f9 - textpointer DarkBlastoiseDescription ; 0x14fa - textpointer PsyduckName ; 0x14fb - textpointer HeadacheName ; 0x14fc - textpointer HeadacheDescription ; 0x14fd - textpointer DuckName ; 0x14fe - textpointer PsyduckLv15Description ; 0x14ff - textpointer DizzinessName ; 0x1500 - textpointer DizzinessDescription ; 0x1501 - textpointer WaterGunName ; 0x1502 - textpointer PsyduckLv16Description ; 0x1503 - textpointer GolduckName ; 0x1504 - textpointer PsyshockName ; 0x1505 - textpointer HyperBeamName ; 0x1506 - textpointer HyperBeamDescription ; 0x1507 - textpointer GolduckLv27Description ; 0x1508 - textpointer PsychicName ; 0x1509 - textpointer PsychicDescription ; 0x150a - textpointer WaveSplashName ; 0x150b - textpointer GolduckLv28Description ; 0x150c - textpointer DarkGolduckName ; 0x150d - textpointer ThirdEyeName ; 0x150e - textpointer ThirdEyeDescription ; 0x150f - textpointer SuperPsyName ; 0x1510 - textpointer DarkGolduckDescription ; 0x1511 - textpointer PoliwagName ; 0x1512 - textpointer Do20DamagePlus10WaterEnergyAltDescription1 ; 0x1513 - textpointer TadpoleName ; 0x1514 - textpointer PoliwagLv13Description ; 0x1515 - textpointer PoliwagLv15Description ; 0x1516 - textpointer PoliwhirlName ; 0x1517 - textpointer AmnesiaName ; 0x1518 - textpointer AmnesiaDescription ; 0x1519 - textpointer PoliwhirlLv28Description ; 0x151a - textpointer TwiddleName ; 0x151b - textpointer TwiddleDescription ; 0x151c - textpointer BodySlamName ; 0x151d - textpointer PoliwhirlLv30Description ; 0x151e - textpointer PoliwrathName ; 0x151f - textpointer PoliwrathLv40Description ; 0x1520 - textpointer WhirlpoolName ; 0x1521 - textpointer PoliwrathLv48Description ; 0x1522 - textpointer TentacoolName ; 0x1523 - textpointer CowardiceName ; 0x1524 - textpointer CowardiceDescription ; 0x1525 - textpointer JellyfishName ; 0x1526 - textpointer TentacoolDescription ; 0x1527 - textpointer TentacruelName ; 0x1528 - textpointer JellyfishStingName ; 0x1529 - textpointer TentacruelDescription ; 0x152a - textpointer SeelName ; 0x152b - textpointer GrowlAltDescription1 ; 0x152c - textpointer IceBeamName ; 0x152d - textpointer SeaLionName ; 0x152e - textpointer SeelLv10Description ; 0x152f - textpointer HeadbuttName ; 0x1530 - textpointer SeelLv12Description ; 0x1531 - textpointer DewgongName ; 0x1532 - textpointer RestName ; 0x1533 - textpointer RestDescription ; 0x1534 - textpointer AuroraWaveName ; 0x1535 - textpointer DewgongLv24Description ; 0x1536 - textpointer AuroraBeamName ; 0x1537 - textpointer DewgongLv42Description ; 0x1538 - textpointer ShellderName ; 0x1539 - textpointer HideInShellName ; 0x153a - textpointer BivalveName ; 0x153b - textpointer ShellderLv8Description ; 0x153c - textpointer WaterSpoutName ; 0x153d - textpointer Do20DamagePlus10WaterEnergyAltDescription2 ; 0x153e - textpointer ShellderLv16Description ; 0x153f - textpointer CloysterName ; 0x1540 - textpointer ClampName ; 0x1541 - textpointer ClampDescription ; 0x1542 - textpointer SpikeCannonName ; 0x1543 - textpointer CloysterDescription ; 0x1544 - textpointer KrabbyName ; 0x1545 - textpointer GuillotineAltName ; 0x1546 - textpointer RiverCrabName ; 0x1547 - textpointer KrabbyLv17Description ; 0x1548 - textpointer CallForFamilyKrabbyDescription ; 0x1549 - textpointer IrongripAltName ; 0x154a - textpointer KrabbyLv20Description ; 0x154b - textpointer KinglerName ; 0x154c - textpointer FlailName ; 0x154d - textpointer FlailDescription ; 0x154e - textpointer CrabhammerName ; 0x154f - textpointer PincerName ; 0x1550 - textpointer KinglerLv27Description ; 0x1551 - textpointer SaltWaterName ; 0x1552 - textpointer SaltWaterDescription ; 0x1553 - textpointer DoubleEdgedPincersName ; 0x1554 - textpointer DoubleEdgedPincersDescription ; 0x1555 - textpointer KinglerLv33Description ; 0x1556 - textpointer HorseaName ; 0x1557 - textpointer DragonName ; 0x1558 - textpointer HorseaLv19Description ; 0x1559 - textpointer HideName ; 0x155a - textpointer HideDescription ; 0x155b - textpointer HorseaLv20Description ; 0x155c - textpointer SeadraName ; 0x155d - textpointer SeadraLv23Description ; 0x155e - textpointer WaterBombName ; 0x155f - textpointer WaterBombDescription ; 0x1560 - textpointer WaterBombDescriptionCont ; 0x1561 - textpointer SeadraLv26Description ; 0x1562 - textpointer GoldeenName ; 0x1563 - textpointer HornAttackName ; 0x1564 - textpointer GoldfishName ; 0x1565 - textpointer GoldeenDescription ; 0x1566 - textpointer SeakingName ; 0x1567 - textpointer WaterfallName ; 0x1568 - textpointer SeakingDescription ; 0x1569 - textpointer StaryuName ; 0x156a - textpointer SlapName ; 0x156b - textpointer StarshapeName ; 0x156c - textpointer StaryuLv15Description ; 0x156d - textpointer StrangeBeamName ; 0x156e - textpointer StrangeBeamDescription ; 0x156f - textpointer SpinningAttackName ; 0x1570 - textpointer StaryuLv17Description ; 0x1571 - textpointer StarmieName ; 0x1572 - textpointer RecoverName ; 0x1573 - textpointer RecoverWaterDescription ; 0x1574 - textpointer StarFreezeName ; 0x1575 - textpointer MysteriousName ; 0x1576 - textpointer StarmieDescription ; 0x1577 - textpointer DarkStarmieName ; 0x1578 - textpointer RebirthName ; 0x1579 - textpointer RebirthDescription ; 0x157a - textpointer RebirthDescriptionCont ; 0x157b - textpointer SpinningShowerName ; 0x157c - textpointer SpinningShowerDescription ; 0x157d - textpointer DarkStarmieDescription ; 0x157e - textpointer MagikarpName ; 0x157f - textpointer FlopName ; 0x1580 - textpointer RapidEvolutionName ; 0x1581 - textpointer RapidEvolutionDescription ; 0x1582 - textpointer FishName ; 0x1583 - textpointer MagikarpLv6Description ; 0x1584 - textpointer MagikarpLv8Description ; 0x1585 - textpointer TrickleName ; 0x1586 - textpointer Plus10DamagePerHeadsDescription ; 0x1587 - textpointer DragonRageName ; 0x1588 - textpointer IfEitherTailsDoNothingDescription ; 0x1589 - textpointer MagikarpLv10Description ; 0x158a - textpointer GyaradosName ; 0x158b - textpointer BubblebeamName ; 0x158c - textpointer AtrociousName ; 0x158d - textpointer GyaradosDescription ; 0x158e - textpointer DarkGyaradosName ; 0x158f - textpointer FinalBeamName ; 0x1590 - textpointer FinalBeamDescription ; 0x1591 - textpointer FinalBeamDescriptionCont ; 0x1592 - textpointer DarkGyaradosDescription ; 0x1593 - textpointer LaprasName ; 0x1594 - textpointer SingName ; 0x1595 - textpointer MayInflictSleepDescription ; 0x1596 - textpointer TransportName ; 0x1597 - textpointer LaprasLv24Description ; 0x1598 - textpointer LaprasLv31Description ; 0x1599 - textpointer VaporeonName ; 0x159a - textpointer FocusEnergyBiteDescription ; 0x159b - textpointer BubbleJetName ; 0x159c - textpointer VaporeonLv29Description ; 0x159d - textpointer VaporeonLv42Description ; 0x159e - textpointer DarkVaporeonName ; 0x159f - textpointer WhirlpoolDescription ; 0x15a0 - textpointer DarkVaporeonDescription ; 0x15a1 - textpointer OmanyteName ; 0x15a2 - textpointer MysteriousFossilName ; 0x15a3 - textpointer ClairvoyanceName ; 0x15a4 - textpointer ClairvoyanceDescription ; 0x15a5 - textpointer SpiralName ; 0x15a6 - textpointer OmanyteLv19Description ; 0x15a7 - textpointer PrehistoricDreamName ; 0x15a8 - textpointer PrehistoricDreamDescription ; 0x15a9 - textpointer PowerCantBeUsedIfStatusDescription ; 0x15aa - textpointer RollingTackleName ; 0x15ab - textpointer OmanyteSharedDescription ; 0x15ac - textpointer FossilGuidanceName ; 0x15ad - textpointer FossilGuidanceDescription ; 0x15ae - textpointer OmastarName ; 0x15af - textpointer OmastarLv32Description ; 0x15b0 - textpointer TentacleGripName ; 0x15b1 - textpointer TentacleGripDescription ; 0x15b2 - textpointer CorrosiveAcidName ; 0x15b3 - textpointer CorrosiveAcidDescription ; 0x15b4 - textpointer OmastarLv36Description ; 0x15b5 - textpointer ArticunoName ; 0x15b6 - textpointer AuroraVeilName ; 0x15b7 - textpointer AuroraVeilDescription ; 0x15b8 - textpointer FreezeName ; 0x15b9 - textpointer ArticunoLv34Description ; 0x15ba - textpointer FreezeDryName ; 0x15bb - textpointer BlizzardName ; 0x15bc - textpointer BlizzardDescription ; 0x15bd - textpointer ArticunoLv35Description ; 0x15be - textpointer QuickfreezeName ; 0x15bf - textpointer QuickfreezeDescription ; 0x15c0 - textpointer IceBreathName ; 0x15c1 - textpointer IceBreathDescription ; 0x15c2 - textpointer ArticunoLv37Description ; 0x15c3 - textpointer MarillName ; 0x15c4 - textpointer AquamouseName ; 0x15c5 - textpointer MarillDescription ; 0x15c6 - textpointer PikachuName ; 0x15c7 - textpointer ThundershockName ; 0x15c8 - textpointer MouseName ; 0x15c9 - textpointer PikachuLv5Description ; 0x15ca - textpointer GnawName ; 0x15cb - textpointer ThunderJoltName ; 0x15cc - textpointer ThunderJoltDescription ; 0x15cd - textpointer PikachuSharedDescription ; 0x15ce - textpointer RechargeName ; 0x15cf - textpointer RechargeDescription ; 0x15d0 - textpointer ThunderboltName ; 0x15d1 - textpointer ThunderboltDescription ; 0x15d2 - textpointer PikachuLv13Description ; 0x15d3 - textpointer SparkName ; 0x15d4 - textpointer Do10DamageToABenchedMonDescription ; 0x15d5 - textpointer PikachuLv14Description ; 0x15d6 - textpointer FlyingPikachuName ; 0x15d7 - textpointer FlyName ; 0x15d8 - textpointer FlyDescription ; 0x15d9 - textpointer FlyingPikachuDescription ; 0x15da - textpointer SurfingPikachuName ; 0x15db - textpointer SurfingPikachuDescription ; 0x15dc - textpointer RaichuName ; 0x15dd - textpointer ShortCircuitName ; 0x15de - textpointer ShortCircuitDescription ; 0x15df - textpointer SparkingKickName ; 0x15e0 - textpointer RaichuLv32Description ; 0x15e1 - textpointer QuickAttackAltDescription1 ; 0x15e2 - textpointer ThunderboltAltDescription1 ; 0x15e3 - textpointer RaichuLv33Description ; 0x15e4 - textpointer ThunderName ; 0x15e5 - textpointer ThunderDescription ; 0x15e6 - textpointer RaichuSharedDescription ; 0x15e7 - textpointer GigashockName ; 0x15e8 - textpointer GigashockDescription ; 0x15e9 - textpointer DarkRaichuName ; 0x15ea - textpointer SurpriseThunderName ; 0x15eb - textpointer SurpriseThunderDescription ; 0x15ec - textpointer DarkRaichuDescription ; 0x15ed - textpointer MagnemiteName ; 0x15ee - textpointer MagnetismName ; 0x15ef - textpointer MagnetismDescription ; 0x15f0 - textpointer MagnetCategoryName ; 0x15f1 - textpointer MagnemiteLv12Description ; 0x15f2 - textpointer ThunderWaveName ; 0x15f3 - textpointer Selfdestruct40DamageDescription ; 0x15f4 - textpointer MagnemiteLv13Description ; 0x15f5 - textpointer MagneticStormName ; 0x15f6 - textpointer MagneticStormDescription ; 0x15f7 - textpointer MagnemiteLv14Description ; 0x15f8 - textpointer MagnetMoveName ; 0x15f9 - textpointer MagnetMoveDescription ; 0x15fa - textpointer SuperconductivityName ; 0x15fb - textpointer SuperconductivityDescription ; 0x15fc - textpointer MagnemiteLv15Description ; 0x15fd - textpointer MagnetonName ; 0x15fe - textpointer Selfdestruct80DamageDescription ; 0x15ff - textpointer MagnetonSharedDescription ; 0x1600 - textpointer MicrowaveName ; 0x1601 - textpointer MicrowaveDescription ; 0x1602 - textpointer MagnetonLv30Description ; 0x1603 - textpointer SonicboomName ; 0x1604 - textpointer SonicboomDescription ; 0x1605 - textpointer Selfdestruct100DamageDescription ; 0x1606 - textpointer DarkMagnetonName ; 0x1607 - textpointer SonicboomAltDescription ; 0x1608 - textpointer MagneticLinesName ; 0x1609 - textpointer MagneticLinesDescription ; 0x160a - textpointer DarkMagnetonDescription ; 0x160b - textpointer VoltorbName ; 0x160c - textpointer GroupSparkName ; 0x160d - textpointer GroupSparkDescription ; 0x160e - textpointer BallName ; 0x160f - textpointer VoltorbLv8Description ; 0x1610 - textpointer VoltorbLv10Description ; 0x1611 - textpointer SpeedBallName ; 0x1612 - textpointer VoltorbLv13Description ; 0x1613 - textpointer ElectrodeName ; 0x1614 - textpointer EnergySpikeName ; 0x1615 - textpointer EnergySpikeDescription ; 0x1616 - textpointer ElectrodeLv35Description ; 0x1617 - textpointer ChainLightningName ; 0x1618 - textpointer ChainLightningDescription ; 0x1619 - textpointer ElectrodeLv42Description ; 0x161a - textpointer DarkElectrodeName ; 0x161b - textpointer EnergyBombName ; 0x161c - textpointer EnergyBombDescription ; 0x161d - textpointer DarkElectrodeDescription ; 0x161e - textpointer ElectabuzzName ; 0x161f - textpointer LightScreenName ; 0x1620 - textpointer LightScreenDescription ; 0x1621 - textpointer ElectabuzzLv20Description ; 0x1622 - textpointer ElectabuzzLv30Description ; 0x1623 - textpointer ThunderpunchName ; 0x1624 - textpointer ThunderpunchDescription ; 0x1625 - textpointer ElectabuzzLv35Description ; 0x1626 - textpointer JolteonName ; 0x1627 - textpointer Do20DamageNumberOfHeadsDescription ; 0x1628 - textpointer StunNeedleName ; 0x1629 - textpointer JolteonLv24Description ; 0x162a - textpointer QuickAttackAltDescription2 ; 0x162b - textpointer PinMissileName ; 0x162c - textpointer PinMissileDescription ; 0x162d - textpointer JolteonLv29Description ; 0x162e - textpointer DarkJolteonName ; 0x162f - textpointer LightningFlashName ; 0x1630 - textpointer LightningFlashDescription ; 0x1631 - textpointer ThunderAttackName ; 0x1632 - textpointer ThunderAttackDescription ; 0x1633 - textpointer DarkJolteonDescription ; 0x1634 - textpointer ZapdosName ; 0x1635 - textpointer RagingThunderName ; 0x1636 - textpointer RagingThunderDescription ; 0x1637 - textpointer ThunderCrashName ; 0x1638 - textpointer ThunderCrashDescription ; 0x1639 - textpointer ZapdosLv28Description ; 0x163a - textpointer ThunderstormName ; 0x163b - textpointer ThunderstormDescription ; 0x163c - textpointer ZapdosLv40Description ; 0x163d - textpointer ThunderboltAltDescription2 ; 0x163e - textpointer ZapdosLv64Description ; 0x163f - textpointer PealOfThunderName ; 0x1640 - textpointer PealOfThunderDescription ; 0x1641 - textpointer BigThunderName ; 0x1642 - textpointer BigThunderDescription ; 0x1643 - textpointer ZapdosLv68Description ; 0x1644 - textpointer SandshrewName ; 0x1645 - textpointer SandAttackName ; 0x1646 - textpointer SandshrewLv12Description ; 0x1647 - textpointer SwiftName ; 0x1648 - textpointer SwiftDescription ; 0x1649 - textpointer SandshrewLv15Description ; 0x164a - textpointer SandslashName ; 0x164b - textpointer FurySwipes20DamageDescription ; 0x164c - textpointer SandslashLv33Description ; 0x164d - textpointer SandVeilName ; 0x164e - textpointer RollingNeedleName ; 0x164f - textpointer RollingNeedleDescription ; 0x1650 - textpointer SandslashLv35Description ; 0x1651 - textpointer DiglettName ; 0x1652 - textpointer DigName ; 0x1653 - textpointer MudSlapName ; 0x1654 - textpointer MoleName ; 0x1655 - textpointer DiglettLv8Description ; 0x1656 - textpointer DigUnderName ; 0x1657 - textpointer DigUnderDescription ; 0x1658 - textpointer DiglettLv15Description ; 0x1659 - textpointer TripOverName ; 0x165a - textpointer DiglettLv16Description ; 0x165b - textpointer DugtrioName ; 0x165c - textpointer EarthquakeName ; 0x165d - textpointer EarthquakeDescription ; 0x165e - textpointer DugtrioLv36Description ; 0x165f - textpointer GoUndergroundName ; 0x1660 - textpointer GoUndergroundDescription ; 0x1661 - textpointer EarthWaveName ; 0x1662 - textpointer EarthWaveDescription ; 0x1663 - textpointer DugtrioLv40Description ; 0x1664 - textpointer DarkDugtrioName ; 0x1665 - textpointer SinkholeName ; 0x1666 - textpointer SinkholeDescription ; 0x1667 - textpointer KnockDownName ; 0x1668 - textpointer KnockDownDescription ; 0x1669 - textpointer DarkDugtrioDescription ; 0x166a - textpointer MankeyName ; 0x166b - textpointer PeekName ; 0x166c - textpointer PeekDescription ; 0x166d - textpointer PigMonkeyName ; 0x166e - textpointer MankeyLv7Description ; 0x166f - textpointer MischiefName ; 0x1670 - textpointer MischiefDescription ; 0x1671 - textpointer AngerName ; 0x1672 - textpointer MankeyLv14Description ; 0x1673 - textpointer PrimeapeName ; 0x1674 - textpointer TantrumName ; 0x1675 - textpointer TantrumDescription ; 0x1676 - textpointer PrimeapeDescription ; 0x1677 - textpointer DarkPrimeapeName ; 0x1678 - textpointer FrenzyName ; 0x1679 - textpointer FrenzyDescription ; 0x167a - textpointer FrenziedAttackName ; 0x167b - textpointer FrenziedAttackDescription ; 0x167c - textpointer DarkPrimeapeDescription ; 0x167d - textpointer MachopName ; 0x167e - textpointer FocusedOneShotName ; 0x167f - textpointer FocusedOneShotDescription ; 0x1680 - textpointer CorkscrewPunchName ; 0x1681 - textpointer SuperpowerName ; 0x1682 - textpointer MachopLv18Description ; 0x1683 - textpointer LowKickName ; 0x1684 - textpointer MachopLv20Description ; 0x1685 - textpointer PunchName ; 0x1686 - textpointer KickName ; 0x1687 - textpointer MachopLv24Description ; 0x1688 - textpointer MachokeName ; 0x1689 - textpointer WickedJabName ; 0x168a - textpointer FocusBlastName ; 0x168b - textpointer FocusBlastDescription ; 0x168c - textpointer MachokeLv24Description ; 0x168d - textpointer MegaKickName ; 0x168e - textpointer SteadyPunchName ; 0x168f - textpointer MachokeLv28Description ; 0x1690 - textpointer KarateChopName ; 0x1691 - textpointer KarateChopDescription ; 0x1692 - textpointer SubmissionName ; 0x1693 - textpointer MachokeLv40Description ; 0x1694 - textpointer DarkMachokeName ; 0x1695 - textpointer DragOffName ; 0x1696 - textpointer DragOffDescription ; 0x1697 - textpointer KnockBackName ; 0x1698 - textpointer DarkMachokeDescription ; 0x1699 - textpointer MachampName ; 0x169a - textpointer SeethingAngerName ; 0x169b - textpointer SeethingAngerDescription ; 0x169c - textpointer FlingName ; 0x169d - textpointer MachampLv54Description ; 0x169e - textpointer StrikesBackName ; 0x169f - textpointer StrikesBackDescription ; 0x16a0 - textpointer StrikesBackDescriptionCont ; 0x16a1 - textpointer SeismicTossName ; 0x16a2 - textpointer MachampLv67Description ; 0x16a3 - textpointer DarkMachampName ; 0x16a4 - textpointer FlingAltName ; 0x16a5 - textpointer FlingDescription ; 0x16a6 - textpointer DarkMachampDescription ; 0x16a7 - textpointer GeodudeName ; 0x16a8 - textpointer HardenName ; 0x16a9 - textpointer Harden20DamageDescription ; 0x16aa - textpointer RockName ; 0x16ab - textpointer GeodudeLv15Description ; 0x16ac - textpointer StoneBarrageName ; 0x16ad - textpointer StoneBarrage10DamageDescription ; 0x16ae - textpointer GeodudeLv16Description ; 0x16af - textpointer GravelerName ; 0x16b0 - textpointer BoulderSmashName ; 0x16b1 - textpointer BoulderSmashDescription ; 0x16b2 - textpointer GravelerLv27Description ; 0x16b3 - textpointer StoneBarrageAltName ; 0x16b4 - textpointer StoneBarrage20DamageDescription ; 0x16b5 - textpointer EarthquakeAltDescription ; 0x16b6 - textpointer GravelerLv28Description ; 0x16b7 - textpointer Harden30DamageDescription ; 0x16b8 - textpointer RockThrowName ; 0x16b9 - textpointer GravelerLv29Description ; 0x16ba - textpointer GolemName ; 0x16bb - textpointer AvalancheName ; 0x16bc - textpointer MegatonName ; 0x16bd - textpointer GolemLv36Description ; 0x16be - textpointer RockBlastName ; 0x16bf - textpointer RockBlastDescription ; 0x16c0 - textpointer RockBlastDescriptionCont ; 0x16c1 - textpointer GolemLv37Description ; 0x16c2 - textpointer OnixName ; 0x16c3 - textpointer Harden30DamageAltDescription ; 0x16c4 - textpointer RockSnakeName ; 0x16c5 - textpointer OnixLv12Description ; 0x16c6 - textpointer RockSealName ; 0x16c7 - textpointer RockSealDescription ; 0x16c8 - textpointer OnixLv25Description ; 0x16c9 - textpointer CuboneName ; 0x16ca - textpointer SnivelName ; 0x16cb - textpointer SnivelDescription ; 0x16cc - textpointer LonelyName ; 0x16cd - textpointer CuboneLv13Description ; 0x16ce - textpointer BoneTossName ; 0x16cf - textpointer BoneTossDescription ; 0x16d0 - textpointer CuboneLv14Description ; 0x16d1 - textpointer MarowakName ; 0x16d2 - textpointer BonemerangName ; 0x16d3 - textpointer CallForFriendName ; 0x16d4 - textpointer CallForFriendDescription ; 0x16d5 - textpointer BoneKeeperName ; 0x16d6 - textpointer MarowakLv26Description ; 0x16d7 - textpointer BoneAttackName ; 0x16d8 - textpointer BoneAttackDescription ; 0x16d9 - textpointer WailName ; 0x16da - textpointer WailDescription ; 0x16db - textpointer MarowakLv32Description ; 0x16dc - textpointer DarkMarowakName ; 0x16dd - textpointer BoneHeadbuttName ; 0x16de - textpointer BoneHeadbuttDescription ; 0x16df - textpointer DarkMarowakDescription ; 0x16e0 - textpointer HitmonleeName ; 0x16e1 - textpointer RollingKickName ; 0x16e2 - textpointer HitmonleeLv23Description ; 0x16e3 - textpointer StretchKickName ; 0x16e4 - textpointer StretchKickDescription ; 0x16e5 - textpointer HighJumpKick ; 0x16e6 - textpointer HitmonleeLv30Description ; 0x16e7 - textpointer HitmonchanName ; 0x16e8 - textpointer MatchPunchName ; 0x16e9 - textpointer MatchPunchDescription ; 0x16ea - textpointer HitmonchanLv23Description ; 0x16eb - textpointer JabName ; 0x16ec - textpointer SpecialPunchName ; 0x16ed - textpointer HitmonchanLv33Description ; 0x16ee - textpointer RhyhornName ; 0x16ef - textpointer LeerName ; 0x16f0 - textpointer LeerDescription ; 0x16f1 - textpointer SpikesName ; 0x16f2 - textpointer RhyhornDescription ; 0x16f3 - textpointer RhydonName ; 0x16f4 - textpointer MountainBreakName ; 0x16f5 - textpointer MountainBreakDescription ; 0x16f6 - textpointer OneTwoStrikeName ; 0x16f7 - textpointer RhydonLv37Description ; 0x16f8 - textpointer RamAltName ; 0x16f9 - textpointer RamDescription ; 0x16fa - textpointer RhydonLv48Description ; 0x16fb - textpointer KabutoName ; 0x16fc - textpointer KabutoArmorName ; 0x16fd - textpointer KabutoArmorDescription ; 0x16fe - textpointer KabutoLv9Description ; 0x16ff - textpointer FossilizeName ; 0x1700 - textpointer FossilizeDescription ; 0x1701 - textpointer SharpClawsName ; 0x1702 - textpointer SharpClawsDescription ; 0x1703 - textpointer KabutoLv22Description ; 0x1704 - textpointer KabutopsName ; 0x1705 - textpointer SharpSickleName ; 0x1706 - textpointer AbsorbName ; 0x1707 - textpointer KabutopsDescription ; 0x1708 - textpointer AerodactylName ; 0x1709 - textpointer PrehistoricPowerName ; 0x170a - textpointer PrehistoricPowerDescription ; 0x170b - textpointer FossilName ; 0x170c - textpointer AerodactylLv28Description ; 0x170d - textpointer TailspinAttackName ; 0x170e - textpointer TailspinAttackDescription ; 0x170f - textpointer AerodactylLv30Description ; 0x1710 - textpointer AbraName ; 0x1711 - textpointer PsychicBeamName ; 0x1712 - textpointer PsychicBeamDescription ; 0x1713 - textpointer AbraLv8Description ; 0x1714 - textpointer AbraLv10Description ; 0x1715 - textpointer VanishName ; 0x1716 - textpointer VanishDescription ; 0x1717 - textpointer AbraLv14Description ; 0x1718 - textpointer KadabraName ; 0x1719 - textpointer RecoverPsychicDescription ; 0x171a - textpointer KadabraLv38Description ; 0x171b - textpointer PsychoPanicName ; 0x171c - textpointer PsychoPanicDescription ; 0x171d - textpointer BlinkName ; 0x171e - textpointer BlinkDescription ; 0x171f - textpointer KadabraLv39Description ; 0x1720 - textpointer DarkKadabraName ; 0x1721 - textpointer MatterExchangeName ; 0x1722 - textpointer MatterExchangeDescription ; 0x1723 - textpointer MindShockName ; 0x1724 - textpointer MindShockDescription ; 0x1725 - textpointer DarkKadabraDescription ; 0x1726 - textpointer AlakazamName ; 0x1727 - textpointer DamageSwapName ; 0x1728 - textpointer DamageSwapDescription ; 0x1729 - textpointer AlakazamLv42Description ; 0x172a - textpointer TransDamageName ; 0x172b - textpointer TransDamageDescription ; 0x172c - textpointer AlakazamLv45Description ; 0x172d - textpointer DarkAlakazamName ; 0x172e - textpointer TeleportBlastName ; 0x172f - textpointer TeleportBlastDescription ; 0x1730 - textpointer DarkAlakazamDescription ; 0x1731 - textpointer SlowpokeName ; 0x1732 - textpointer DopeyName ; 0x1733 - textpointer SlowpokeLv9Description ; 0x1734 - textpointer AfternoonNapName ; 0x1735 - textpointer AfternoonNapDescription ; 0x1736 - textpointer SlowpokeLv16Description ; 0x1737 - textpointer SpacingOutName ; 0x1738 - textpointer SpacingOutDescription ; 0x1739 - textpointer ScavengeName ; 0x173a - textpointer ScavengeDescription ; 0x173b - textpointer SlowpokeLv18Description ; 0x173c - textpointer SlowbroName ; 0x173d - textpointer StrangeBehaviorName ; 0x173e - textpointer StrangeBehaviorDescription ; 0x173f - textpointer HermitcrabName ; 0x1740 - textpointer SlowbroLv26Description ; 0x1741 - textpointer BigYawnName ; 0x1742 - textpointer BigYawnDescription ; 0x1743 - textpointer BigSnoreName ; 0x1744 - textpointer BigSnoreDescription ; 0x1745 - textpointer SlowbroLv35Description ; 0x1746 - textpointer DarkSlowbroName ; 0x1747 - textpointer ReelInName ; 0x1748 - textpointer ReelInDescription ; 0x1749 - textpointer FickleAttackName ; 0x174a - textpointer DarkSlowbroDescription ; 0x174b - textpointer GastlyName ; 0x174c - textpointer SleepingGasName ; 0x174d - textpointer MayInflictSleepAltDescription ; 0x174e - textpointer DestinyBondName ; 0x174f - textpointer DestinyBondDescription ; 0x1750 - textpointer GasName ; 0x1751 - textpointer GastlyLv8Description ; 0x1752 - textpointer SpookifyName ; 0x1753 - textpointer SpookifyDescription ; 0x1754 - textpointer FadeToBlackName ; 0x1755 - textpointer GastlyLv13Description ; 0x1756 - textpointer LickName ; 0x1757 - textpointer EnergyConversionName ; 0x1758 - textpointer EnergyConversionDescription ; 0x1759 - textpointer GastlyLv17Description ; 0x175a - textpointer HaunterName ; 0x175b - textpointer TransparencyName ; 0x175c - textpointer TransparencyDescription ; 0x175d - textpointer NightmareName ; 0x175e - textpointer HaunterSharedDescription1 ; 0x175f - textpointer DreamEaterName ; 0x1760 - textpointer DreamEaterDescription ; 0x1761 - textpointer EerieLightName ; 0x1762 - textpointer GrudgeName ; 0x1763 - textpointer GrudgeDescription ; 0x1764 - textpointer HaunterSharedDescription2 ; 0x1765 - textpointer PoltergeistName ; 0x1766 - textpointer PoltergeistDescription ; 0x1767 - textpointer BadDreamsName ; 0x1768 - textpointer BadDreamsDescription ; 0x1769 - textpointer DarkHaunterName ; 0x176a - textpointer BotherName ; 0x176b - textpointer BotherDescription ; 0x176c - textpointer DarkHaunterDescription ; 0x176d - textpointer GengarName ; 0x176e - textpointer CurseName ; 0x176f - textpointer CurseDescription ; 0x1770 - textpointer DarkMindName ; 0x1771 - textpointer ShadowName ; 0x1772 - textpointer GengarLv38Description ; 0x1773 - textpointer PowerOfDarknessName ; 0x1774 - textpointer PowerOfDarknessDescription ; 0x1775 - textpointer PsyHorrorName ; 0x1776 - textpointer GengarLv40Description ; 0x1777 - textpointer DarkGengarName ; 0x1778 - textpointer PlayTricksName ; 0x1779 - textpointer PlayTricksDescription ; 0x177a - textpointer PushAsideName ; 0x177b - textpointer PushAsideDescription ; 0x177c - textpointer DarkGengarDescription ; 0x177d - textpointer DrowzeeName ; 0x177e - textpointer LongDistanceHypnosisName ; 0x177f - textpointer LongDistanceHypnosisDescription ; 0x1780 - textpointer HypnosisCategoryName ; 0x1781 - textpointer DrowzeeLv10Description ; 0x1782 - textpointer DrowzeeLv12Description ; 0x1783 - textpointer HypnoName ; 0x1784 - textpointer PuppetMasterName ; 0x1785 - textpointer PuppetMasterDescription ; 0x1786 - textpointer HypnoLv30Description ; 0x1787 - textpointer ProphecyName ; 0x1788 - textpointer ProphecyDescription ; 0x1789 - textpointer HypnoLv36Description ; 0x178a - textpointer DarkHypnoName ; 0x178b - textpointer PsypunchName ; 0x178c - textpointer BenchManipulationName ; 0x178d - textpointer BenchManipulationDescription ; 0x178e - textpointer DarkHypnoDescription ; 0x178f - textpointer MrMimeName ; 0x1790 - textpointer DampeningShieldName ; 0x1791 - textpointer DampeningShieldDescription ; 0x1792 - textpointer JugglingName ; 0x1793 - textpointer JugglingDescription ; 0x1794 - textpointer BarrierName ; 0x1795 - textpointer MrMimeLv20Description ; 0x1796 - textpointer InvisibleWallName ; 0x1797 - textpointer InvisibleWallDescription ; 0x1798 - textpointer MeditateName ; 0x1799 - textpointer MeditateDescription ; 0x179a - textpointer MrMimeLv28Description ; 0x179b - textpointer JynxName ; 0x179c - textpointer IcePunchName ; 0x179d - textpointer ColdBreathName ; 0x179e - textpointer HumanShapeName ; 0x179f - textpointer JynxLv18Description ; 0x17a0 - textpointer JynxLv23Description ; 0x17a1 - textpointer JynxLv27Description ; 0x17a2 - textpointer MewtwoName ; 0x17a3 - textpointer EnergyControlDescription ; 0x17a4 - textpointer TelekinesisName ; 0x17a5 - textpointer TelekinesisDescription ; 0x17a6 - textpointer GeneticName ; 0x17a7 - textpointer MewtwoLv30Description ; 0x17a8 - textpointer BarrierDescription ; 0x17a9 - textpointer MewtwoLv53Description ; 0x17aa - textpointer PsycrushName ; 0x17ab - textpointer PsycrushDescription ; 0x17ac - textpointer MewtwoLv54Description ; 0x17ad - textpointer EnergyAbsorptionName ; 0x17ae - textpointer EnergyAbsorptionDescription ; 0x17af - textpointer PsyburnName ; 0x17b0 - textpointer MewtwoLv60Description ; 0x17b1 - textpointer CompleteRecoveryName ; 0x17b2 - textpointer CompleteRecoveryDescription ; 0x17b3 - textpointer PsychoBlastName ; 0x17b4 - textpointer PsychoBlastDescription ; 0x17b5 - textpointer MewtwoLv67Description ; 0x17b6 - textpointer GRsMewtwoName ; 0x17b7 - textpointer DarkWaveName ; 0x17b8 - textpointer DarkWaveDescription ; 0x17b9 - textpointer DarkAmplificationName ; 0x17ba - textpointer DarkAmplificationDescription ; 0x17bb - textpointer GRsMewtwoDescription ; 0x17bc - textpointer MewName ; 0x17bd - textpointer NeutralShieldName ; 0x17be - textpointer NeutralShieldDescription ; 0x17bf - textpointer NewSpeciesName ; 0x17c0 - textpointer MewLv8Description ; 0x17c1 - textpointer MysteryAttackName ; 0x17c2 - textpointer MysteryAttackDescription ; 0x17c3 - textpointer MewLv15Description ; 0x17c4 - textpointer PsywaveName ; 0x17c5 - textpointer PsywaveDescription ; 0x17c6 - textpointer DevolutionBeamName ; 0x17c7 - textpointer DevolutionBeamDescription ; 0x17c8 - textpointer MewLv23Description ; 0x17c9 - textpointer PidgeyName ; 0x17ca - textpointer TinyBirdName ; 0x17cb - textpointer PidgeyLv8Description ; 0x17cc - textpointer GustName ; 0x17cd - textpointer PidgeyLv10Description ; 0x17ce - textpointer PidgeottoName ; 0x17cf - textpointer MirrorMoveName ; 0x17d0 - textpointer MirrorMoveDescription ; 0x17d1 - textpointer BirdName ; 0x17d2 - textpointer PidgeottoLv36Description ; 0x17d3 - textpointer TwisterName ; 0x17d4 - textpointer TwisterDescription ; 0x17d5 - textpointer FlyAltDescription ; 0x17d6 - textpointer PidgeottoLv38Description ; 0x17d7 - textpointer PidgeotName ; 0x17d8 - textpointer SlicingWingName ; 0x17d9 - textpointer SlicingWingDescription ; 0x17da - textpointer GaleName ; 0x17db - textpointer GaleDescription ; 0x17dc - textpointer PidgeotLv38Description ; 0x17dd - textpointer HurricaneName ; 0x17de - textpointer HurricaneDescription ; 0x17df - textpointer PidgeotLv40Description ; 0x17e0 - textpointer RattataName ; 0x17e1 - textpointer RattataLv9Description ; 0x17e2 - textpointer TrickeryName ; 0x17e3 - textpointer TrickeryDescription ; 0x17e4 - textpointer RattataLv12Description ; 0x17e5 - textpointer RattataLv15Description ; 0x17e6 - textpointer RaticateName ; 0x17e7 - textpointer SuperFangName ; 0x17e8 - textpointer SuperFangDescription ; 0x17e9 - textpointer RaticateDescription ; 0x17ea - textpointer DarkRaticateName ; 0x17eb - textpointer HyperFangName ; 0x17ec - textpointer DarkRaticateDescription ; 0x17ed - textpointer SpearowName ; 0x17ee - textpointer SpearowLv9Description ; 0x17ef - textpointer FuryAttackName ; 0x17f0 - textpointer SpearowLv12Description ; 0x17f1 - textpointer SpearowLv13Description ; 0x17f2 - textpointer FearowName ; 0x17f3 - textpointer DrillDescentName ; 0x17f4 - textpointer BeakName ; 0x17f5 - textpointer FearowLv24Description ; 0x17f6 - textpointer DrillPeckName ; 0x17f7 - textpointer FearowLv27Description ; 0x17f8 - textpointer DarkFearowName ; 0x17f9 - textpointer FlyHighName ; 0x17fa - textpointer FlyHighDescription ; 0x17fb - textpointer DrillDiveName ; 0x17fc - textpointer DrillDiveDescription ; 0x17fd - textpointer DarkFearowDescription ; 0x17fe - textpointer ClefairyName ; 0x17ff - textpointer MetronomeName ; 0x1800 - textpointer MetronomeDescription ; 0x1801 - textpointer FairyName ; 0x1802 - textpointer ClefairyLv14Description ; 0x1803 - textpointer FollowMeName ; 0x1804 - textpointer ShiningFingersName ; 0x1805 - textpointer ClefairyLv15Description ; 0x1806 - textpointer ClefableName ; 0x1807 - textpointer MinimizeAltDescription ; 0x1808 - textpointer ClefableDescription ; 0x1809 - textpointer DarkClefableName ; 0x180a - textpointer DarknessVeilName ; 0x180b - textpointer DarknessVeiDescription ; 0x180c - textpointer DarkSongName ; 0x180d - textpointer DarkSongDescription ; 0x180e - textpointer DarkClefableDescription ; 0x180f - textpointer JigglypuffName ; 0x1810 - textpointer DoubleEdgeName ; 0x1811 - textpointer BalloonName ; 0x1812 - textpointer JigglypuffLv12Description ; 0x1813 - textpointer FriendshipSongName ; 0x1814 - textpointer FriendshipSongDescription ; 0x1815 - textpointer ExpandName ; 0x1816 - textpointer ExpandDescription ; 0x1817 - textpointer JigglypuffLv13Description ; 0x1818 - textpointer LullabyName ; 0x1819 - textpointer JigglypuffLv14Description ; 0x181a - textpointer WigglytuffName ; 0x181b - textpointer DoTheWaveName ; 0x181c - textpointer DoTheWaveDescription ; 0x181d - textpointer WigglytuffLv36Description ; 0x181e - textpointer HelpingHandName ; 0x181f - textpointer HelpingHandDescription ; 0x1820 - textpointer ExpandAltDescription ; 0x1821 - textpointer WigglytuffLv40Description ; 0x1822 - textpointer MeowthName ; 0x1823 - textpointer CoinHurlName ; 0x1824 - textpointer CoinHurlDescription ; 0x1825 - textpointer ScratchCatName ; 0x1826 - textpointer MeowthLv10Description ; 0x1827 - textpointer CatPunchName ; 0x1828 - textpointer CatPunchDescription ; 0x1829 - textpointer MeowthLv13Description ; 0x182a - textpointer ClearProfitName ; 0x182b - textpointer ClearProfitDescription ; 0x182c - textpointer MeowthLv14Description ; 0x182d - textpointer PayDayName ; 0x182e - textpointer PayDayDescription ; 0x182f - textpointer MeowthLv15Description ; 0x1830 - textpointer MeowthLv17Description ; 0x1831 - textpointer PersianName ; 0x1832 - textpointer PounceName ; 0x1833 - textpointer PounceDescription ; 0x1834 - textpointer ClassyCatName ; 0x1835 - textpointer PersianDescription ; 0x1836 - textpointer DarkPersianName ; 0x1837 - textpointer FascinateName ; 0x1838 - textpointer FascinateDescription ; 0x1839 - textpointer PoisonClawsName ; 0x183a - textpointer DarkPersianDescription ; 0x183b - textpointer FarfetchdName ; 0x183c - textpointer LeekSlapName ; 0x183d - textpointer LeekSlapDescription ; 0x183e - textpointer PotSmashName ; 0x183f - textpointer WildDuckName ; 0x1840 - textpointer FarfetchdLv20Description ; 0x1841 - textpointer LeekSlapAltDescription ; 0x1842 - textpointer FarfetchdAltDescription ; 0x1843 - textpointer DoduoName ; 0x1844 - textpointer GrowlAltDescription2 ; 0x1845 - textpointer TwinBirdName ; 0x1846 - textpointer DoduoLv8Description ; 0x1847 - textpointer DoduoLv10Description ; 0x1848 - textpointer DodrioName ; 0x1849 - textpointer TriAttackName ; 0x184a - textpointer TripleBirdName ; 0x184b - textpointer DodrioLv25Description ; 0x184c - textpointer RetreatAidName ; 0x184d - textpointer RetreatAidDescription ; 0x184e - textpointer DodrioLv28Description ; 0x184f - textpointer LickitungName ; 0x1850 - textpointer LickAltName ; 0x1851 - textpointer LickingName ; 0x1852 - textpointer LickitungLv20Description ; 0x1853 - textpointer TongueWrapName ; 0x1854 - textpointer LickitungLv26Description ; 0x1855 - textpointer ChanseyName ; 0x1856 - textpointer DoubleSlapAltName ; 0x1857 - textpointer ChanseyLv40Description ; 0x1858 - textpointer ScrunchName ; 0x1859 - textpointer Do80DamageToSelfDescription ; 0x185a - textpointer ChanseyLv55Description ; 0x185b - textpointer KangaskhanName ; 0x185c - textpointer TailDropName ; 0x185d - textpointer ParentName ; 0x185e - textpointer KangaskhanLv36Description ; 0x185f - textpointer DizzyPunchName ; 0x1860 - textpointer KangaskhanLv38Description ; 0x1861 - textpointer FetchName ; 0x1862 - textpointer FetchDescription ; 0x1863 - textpointer CometPunchName ; 0x1864 - textpointer KangaskhanLv40Description ; 0x1865 - textpointer TaurosName ; 0x1866 - textpointer RampageName ; 0x1867 - textpointer RampageDescription ; 0x1868 - textpointer WildBullName ; 0x1869 - textpointer TaurosLv32Description ; 0x186a - textpointer KickingAndStampingName ; 0x186b - textpointer KickingAndStampingDescription ; 0x186c - textpointer TaurosLv35Description ; 0x186d - textpointer DittoName ; 0x186e - textpointer MorphName ; 0x186f - textpointer MorphDescription ; 0x1870 - textpointer MorphDescriptionCont ; 0x1871 - textpointer TransformName ; 0x1872 - textpointer DittoDescription ; 0x1873 - textpointer EvolutionName ; 0x1874 - textpointer EeveeLv5Description ; 0x1875 - textpointer SandAttackDescription ; 0x1876 - textpointer EeveeLv9Description ; 0x1877 - textpointer EeveeLv12Description ; 0x1878 - textpointer PorygonName ; 0x1879 - textpointer Conversion1Name ; 0x187a - textpointer Conversion1Description ; 0x187b - textpointer Conversion2Name ; 0x187c - textpointer Conversion2Description ; 0x187d - textpointer VirtualName ; 0x187e - textpointer PorygonLv12Description ; 0x187f - textpointer Porygon3DAttackName ; 0x1880 - textpointer Porygon3DAttack10DamageDescription ; 0x1881 - textpointer PorygonSharedDescription ; 0x1882 - textpointer Conversion1AltDescription ; 0x1883 - textpointer PorygonLv20Description ; 0x1884 - textpointer CoolPorygonName ; 0x1885 - textpointer TextureMagicName ; 0x1886 - textpointer TextureMagicDescription ; 0x1887 - textpointer Porygon3DAttack20DamageDescription ; 0x1888 - textpointer SnorlaxName ; 0x1889 - textpointer ThickSkinnedName ; 0x188a - textpointer ThickSkinnedDescription ; 0x188b - textpointer SleepingName ; 0x188c - textpointer SnorlaxLv20Description ; 0x188d - textpointer GuardName ; 0x188e - textpointer GuardDescription ; 0x188f - textpointer RollOverName ; 0x1890 - textpointer RollOverDescription ; 0x1891 - textpointer SnorlaxLv35Description ; 0x1892 - textpointer HungrySnorlaxName ; 0x1893 - textpointer EatName ; 0x1894 - textpointer EatDescription ; 0x1895 - textpointer RolloutDescription ; 0x1896 - textpointer HungrySnorlaxDescription ; 0x1897 - textpointer DratiniName ; 0x1898 - textpointer DratiniLv10Description ; 0x1899 - textpointer DratiniLv12Description ; 0x189a - textpointer DragonairName ; 0x189b - textpointer SlamName ; 0x189c - textpointer DragonairDescription ; 0x189d - textpointer DarkDragonairName ; 0x189e - textpointer EvolutionaryLightName ; 0x189f - textpointer EvolutionaryLightDescription ; 0x18a0 - textpointer TailStrikeName ; 0x18a1 - textpointer DarkDragonairDescription ; 0x18a2 - textpointer DragoniteName ; 0x18a3 - textpointer HealingWindName ; 0x18a4 - textpointer HealingWindDescription ; 0x18a5 - textpointer DragoniteLv41Description ; 0x18a6 - textpointer SpecialDeliveryName ; 0x18a7 - textpointer SpecialDeliveryDescription ; 0x18a8 - textpointer SupersonicFlightName ; 0x18a9 - textpointer DragoniteSharedDescription ; 0x18aa - textpointer StepInName ; 0x18ab - textpointer StepInDescription ; 0x18ac - textpointer SlamDescription ; 0x18ad - textpointer DarkDragoniteName ; 0x18ae - textpointer SummonMinionsName ; 0x18af - textpointer SummonMinionsDescription ; 0x18b0 - textpointer GiantTailName ; 0x18b1 - textpointer DarkDragoniteDescription ; 0x18b2 - textpointer TogepiName ; 0x18b3 - textpointer SnivelAltDescription ; 0x18b4 - textpointer MetronomeCoinTossDescription ; 0x18b5 - textpointer SpikeBallName ; 0x18b6 - textpointer TogepiDescription ; 0x18b7 - textpointer LugiaName ; 0x18b8 - textpointer AeroblastName ; 0x18b9 - textpointer AeroblastDescription ; 0x18ba - textpointer DivingName ; 0x18bb - textpointer LugiaDescription ; 0x18bc - textpointer SuperPotionName ; 0x18bd - textpointer SuperPotionDescription ; 0x18be - textpointer ImakuniCardName ; 0x18bf - textpointer ImakuniCardDescription ; 0x18c0 - textpointer EnergyRemovalName ; 0x18c1 - textpointer EnergyRemovalDescription ; 0x18c2 - textpointer EnergyRetrievalName ; 0x18c3 - textpointer EnergyRetrievalDescription ; 0x18c4 - textpointer EnergySearchName ; 0x18c5 - textpointer EnergySearchDescription ; 0x18c6 - textpointer ProfessorOakName ; 0x18c7 - textpointer ProfessorOakDescription ; 0x18c8 - textpointer FossilExcavationName ; 0x18c9 - textpointer FossilExcavationDescription ; 0x18ca - textpointer PotionName ; 0x18cb - textpointer PotionDescription ; 0x18cc - textpointer GamblerName ; 0x18cd - textpointer GamblerDescription ; 0x18ce - textpointer ReviveName ; 0x18cf - textpointer ReviveDescription ; 0x18d0 - textpointer MaxReviveName ; 0x18d1 - textpointer MaxReviveDescription ; 0x18d2 - textpointer MaxReviveDescriptionCont ; 0x18d3 - textpointer SuperScoopUpName ; 0x18d4 - textpointer SuperScoopUpDescription ; 0x18d5 - textpointer DevolutionSprayName ; 0x18d6 - textpointer DevolutionSprayDescription ; 0x18d7 - textpointer ItemFinderName ; 0x18d8 - textpointer ItemFinderDescription ; 0x18d9 - textpointer ChallengeName ; 0x18da - textpointer ChallengeDescription ; 0x18db - textpointer ChallengeDescriptionCont ; 0x18dc - textpointer SuperEnergyRetrievalName ; 0x18dd - textpointer SuperEnergyRetrievalDescription ; 0x18de - textpointer SuperEnergyRemovalName ; 0x18df - textpointer SuperEnergyRemovalDescription ; 0x18e0 - textpointer MoonStoneName ; 0x18e1 - textpointer MoonStoneDescription ; 0x18e2 - textpointer DefenderName ; 0x18e3 - textpointer DefenderDescription ; 0x18e4 - textpointer GustOfWindName ; 0x18e5 - textpointer GustOfWindDescription ; 0x18e6 - textpointer MysteriousFossilDescription ; 0x18e7 - textpointer MysteriousFossilDescriptionCont ; 0x18e8 - textpointer FullHealName ; 0x18e9 - textpointer FullHealDescription ; 0x18ea - textpointer ImposterOaksRevengeName ; 0x18eb - textpointer ImposterOaksRevengeDescription ; 0x18ec - textpointer ImposterProfessorOakName ; 0x18ed - textpointer ImposterProfessorOakDescription ; 0x18ee - textpointer SleepName ; 0x18ef - textpointer SleepDescription ; 0x18f0 - textpointer ComputerErrorName ; 0x18f1 - textpointer ComputerErrorDescription ; 0x18f2 - textpointer ComputerSearchName ; 0x18f3 - textpointer ComputerSearchDescription ; 0x18f4 - textpointer DiggerName ; 0x18f5 - textpointer DiggerDescription ; 0x18f6 - textpointer ClefairyDollName ; 0x18f7 - textpointer ClefairyDollDescription ; 0x18f8 - textpointer ClefairyDollDescriptionCont ; 0x18f9 - textpointer MrFujiName ; 0x18fa - textpointer MrFujiDescription ; 0x18fb - textpointer PlusPowerName ; 0x18fc - textpointer PlusPowerDescription ; 0x18fd - textpointer SwitchName ; 0x18fe - textpointer SwitchDescription ; 0x18ff - textpointer ScoopUpName ; 0x1900 - textpointer ScoopUpDescription ; 0x1901 - textpointer PokemonTraderName ; 0x1902 - textpointer PokemonTraderDescription ; 0x1903 - textpointer PokemonTraderDescriptionCont ; 0x1904 - textpointer PokemonRecallName ; 0x1905 - textpointer PokemonRecallDescription ; 0x1906 - textpointer PokedexName ; 0x1907 - textpointer PokedexDescription ; 0x1908 - textpointer PokemonCenterName ; 0x1909 - textpointer PokemonCenterDescription ; 0x190a - textpointer PokemonBreederName ; 0x190b - textpointer PokemonBreederDescription ; 0x190c - textpointer PokemonFluteName ; 0x190d - textpointer PokemonFluteDescription ; 0x190e - textpointer TheBosssWayName ; 0x190f - textpointer TheBosssWayDescription ; 0x1910 - textpointer GoopGasAttackName ; 0x1911 - textpointer GoopGasAttackDescription ; 0x1912 - textpointer BillName ; 0x1913 - textpointer BillDescription ; 0x1914 - textpointer BillsTeleporterName ; 0x1915 - textpointer BillsTeleporterDescription ; 0x1916 - textpointer BillsComputerName ; 0x1917 - textpointer BillsComputerDescription ; 0x1918 - textpointer BillsComputerDescriptionCont ; 0x1919 - textpointer MasterBallName ; 0x191a - textpointer MasterBallDescription ; 0x191b - textpointer LassName ; 0x191c - textpointer LassDescription ; 0x191d - textpointer MaintenanceName ; 0x191e - textpointer MaintenanceDescription ; 0x191f - textpointer PokeballName ; 0x1920 - textpointer PokeballDescription ; 0x1921 - textpointer NightlyGarbageRunName ; 0x1922 - textpointer NightlyGarbageRunDescription ; 0x1923 - textpointer RecycleName ; 0x1924 - textpointer RecycleDescription ; 0x1925 - textpointer RocketsSneakAttackName ; 0x1926 - textpointer RocketsSneakAttackDescription ; 0x1927 - textpointer HereComesTeamRocketName ; 0x1928 - textpointer HereComesTeamRocketDescription ; 0x1929 - textpointer TheRocketsTrapName ; 0x192a - textpointer TheRocketsTrapDescription ; 0x192b + textpointer GrassEnergyName ; 0x12ed + textpointer GrassEnergyDescription ; 0x12ee + textpointer FireEnergyName ; 0x12ef + textpointer FireEnergyDescription ; 0x12f0 + textpointer WaterEnergyName ; 0x12f1 + textpointer WaterEnergyDescription ; 0x12f2 + textpointer LightningEnergyName ; 0x12f3 + textpointer LightningEnergyDescription ; 0x12f4 + textpointer FightingEnergyName ; 0x12f5 + textpointer FightingEnergyDescription ; 0x12f6 + textpointer PsychicEnergyName ; 0x12f7 + textpointer PsychicEnergyDescription ; 0x12f8 + textpointer DoubleColorlessEnergyName ; 0x12f9 + textpointer DoubleColorlessEnergyDescription ; 0x12fa + textpointer PotionEnergyName ; 0x12fb + textpointer PotionEnergyDescription ; 0x12fc + textpointer PotionEnergyDescriptionCont ; 0x12fd + textpointer FullHealEnergyName ; 0x12fe + textpointer FullHealEnergyDescription ; 0x12ff + textpointer RainbowEnergyName ; 0x1300 + textpointer RainbowEnergyDescription ; 0x1301 + textpointer RecycleEnergyName ; 0x1302 + textpointer RecycleEnergyDescription ; 0x1303 + textpointer BulbasaurName ; 0x1304 + textpointer TackleName ; 0x1305 + textpointer RazorLeafName ; 0x1306 + textpointer SeedName ; 0x1307 + textpointer BulbasaurLv12Description ; 0x1308 + textpointer LeechSeedName ; 0x1309 + textpointer LeechSeedDescription ; 0x130a + textpointer BulbasaurLv13Description ; 0x130b + textpointer FirstAidName ; 0x130c + textpointer FirstAidDescription ; 0x130d + textpointer PoisonSeedName ; 0x130e + textpointer InflictPoisonDescription ; 0x130f + textpointer BulbasaurLv15Description ; 0x1310 + textpointer IvysaurName ; 0x1311 + textpointer VineWhipName ; 0x1312 + textpointer PoisonPowderName ; 0x1313 + textpointer IvysaurLv20Description ; 0x1314 + textpointer LeechSeedAltName ; 0x1315 + textpointer IvysaursLeechSeedDescription ; 0x1316 + textpointer VineWhipAltName ; 0x1317 + textpointer IvysaurLv26Description ; 0x1318 + textpointer DarkIvysaurName ; 0x1319 + textpointer VinePullName ; 0x131a + textpointer VinePullDescription ; 0x131b + textpointer FuryStrikesName ; 0x131c + textpointer FuryStrikesDescription ; 0x131d + textpointer DarkIvysaurDescription ; 0x131e + textpointer VenusaurName ; 0x131f + textpointer SolarPowerName ; 0x1320 + textpointer SolarPowerDescription ; 0x1321 + textpointer MegaDrainName ; 0x1322 + textpointer MegaDrainDescription ; 0x1323 + textpointer VenusaurLv64Description ; 0x1324 + textpointer EnergyTransName ; 0x1325 + textpointer EnergyTransDescription ; 0x1326 + textpointer SolarbeamName ; 0x1327 + textpointer VenusaurLv67Description ; 0x1328 + textpointer DarkVenusaurName ; 0x1329 + textpointer HorridPollenName ; 0x132a + textpointer HorridPollenDescription ; 0x132b + textpointer DarkVenusaurDescription ; 0x132c + textpointer CaterpieName ; 0x132d + textpointer StringShotName ; 0x132e + textpointer MayInflictParalysisDescription ; 0x132f + textpointer WormName ; 0x1330 + textpointer CaterpieDescription ; 0x1331 + textpointer MetapodName ; 0x1332 + textpointer GreenShieldName ; 0x1333 + textpointer GreenShieldDescription ; 0x1334 + textpointer MysteriousPowerName ; 0x1335 + textpointer MayInflictConfusionDescription ; 0x1336 + textpointer CocoonName ; 0x1337 + textpointer MetapodLv20Description ; 0x1338 + textpointer StiffenName ; 0x1339 + textpointer PreventDamageCardEffectDescription ; 0x133a + textpointer StunSporeName ; 0x133b + textpointer MetapodLv21Description ; 0x133c + textpointer ButterfreeName ; 0x133d + textpointer WhirlwindName ; 0x133e + textpointer WhirlwindDescription ; 0x133f + textpointer ButterflyName ; 0x1340 + textpointer ButterfreeDescription ; 0x1341 + textpointer WeedleName ; 0x1342 + textpointer PoisonStingName ; 0x1343 + textpointer MayInflictPoisonDescription ; 0x1344 + textpointer HairyBugName ; 0x1345 + textpointer WeedleLv12Description ; 0x1346 + textpointer PeckName ; 0x1347 + textpointer PoisonHornName ; 0x1348 + textpointer WeedleLv15Description ; 0x1349 + textpointer KakunaName ; 0x134a + textpointer PoisonFluidName ; 0x134b + textpointer PoisonFluidDescription ; 0x134c + textpointer RolloutName ; 0x134d + textpointer KakunaLv20Description ; 0x134e + textpointer KakunaLv23Description ; 0x134f + textpointer BeedrillName ; 0x1350 + textpointer TwineedleName ; 0x1351 + textpointer Do30DamageNumberOfHeadsDescription ; 0x1352 + textpointer PoisonBeeName ; 0x1353 + textpointer BeedrillDescription ; 0x1354 + textpointer EkansName ; 0x1355 + textpointer SpitPoisonName ; 0x1356 + textpointer WrapName ; 0x1357 + textpointer SnakeName ; 0x1358 + textpointer EkansLv10Description ; 0x1359 + textpointer BiteName ; 0x135a + textpointer MayInflictPoisonAltDescription ; 0x135b + textpointer EkansLv15Description ; 0x135c + textpointer ArbokName ; 0x135d + textpointer TerrorStrikeName ; 0x135e + textpointer TerrorStrikeDescription ; 0x135f + textpointer PoisonFangName ; 0x1360 + textpointer CobraName ; 0x1361 + textpointer ArbokLv27Description ; 0x1362 + textpointer MayInflictParalysisAltDescription ; 0x1363 + textpointer DeadlyPoisonName ; 0x1364 + textpointer DeadlyPoisonDescription ; 0x1365 + textpointer ArbokLv30Description ; 0x1366 + textpointer DarkArbokName ; 0x1367 + textpointer StareName ; 0x1368 + textpointer StareDescription ; 0x1369 + textpointer PoisonVaporName ; 0x136a + textpointer PoisonVaporDescription ; 0x136b + textpointer DarkArbokDescription ; 0x136c + textpointer NidoranFName ; 0x136d + textpointer TailWhipName ; 0x136e + textpointer TailWhipDescription ; 0x136f + textpointer NidoranFLv12Description ; 0x1370 + textpointer FurySwipesName ; 0x1371 + textpointer FurySwipes10DamageDescription ; 0x1372 + textpointer CallForFamilyName ; 0x1373 + textpointer CallForFamilyNidoranDescription ; 0x1374 + textpointer NidoranFLv13Description ; 0x1375 + textpointer NidorinaName ; 0x1376 + textpointer StrengthInNumbersName ; 0x1377 + textpointer StrengthInNumbersDescription ; 0x1378 + textpointer FurySwipes30DamageDescription ; 0x1379 + textpointer NidorinaLv22Description ; 0x137a + textpointer SupersonicName ; 0x137b + textpointer MayInflictConfusionAltDescription ; 0x137c + textpointer DoubleKickName ; 0x137d + textpointer NidorinaLv24Description ; 0x137e + textpointer NidoqueenName ; 0x137f + textpointer BoyfriendsName ; 0x1380 + textpointer BoyfriendsDescription ; 0x1381 + textpointer MegaPunchName ; 0x1382 + textpointer DrillName ; 0x1383 + textpointer NidoqueenDescription ; 0x1384 + textpointer NidoranMName ; 0x1385 + textpointer HornHazardName ; 0x1386 + textpointer IfTailsDoNothingDescription ; 0x1387 + textpointer NidoranMLv20Description ; 0x1388 + textpointer FocusEnergyName ; 0x1389 + textpointer FocusEnergyHornRushDescription ; 0x138a + textpointer HornRushName ; 0x138b + textpointer IfTailsDoNothingAltDescription ; 0x138c + textpointer NidoranMLv22Description ; 0x138d + textpointer NidorinoName ; 0x138e + textpointer SwiftLungeName ; 0x138f + textpointer SwiftLungeDescription ; 0x1390 + textpointer NidorinoLv23Description ; 0x1391 + textpointer HornDrillName ; 0x1392 + textpointer NidorinoLv25Description ; 0x1393 + textpointer NidokingName ; 0x1394 + textpointer ThrashName ; 0x1395 + textpointer ThrashDescription ; 0x1396 + textpointer ToxicName ; 0x1397 + textpointer ToxicDescription ; 0x1398 + textpointer NidokingDescription ; 0x1399 + textpointer ZubatName ; 0x139a + textpointer RamName ; 0x139b + textpointer BatName ; 0x139c + textpointer ZubatLv9Description ; 0x139d + textpointer LeechLifeName ; 0x139e + textpointer LeechLifeDescription ; 0x139f + textpointer ZubatLv10Description ; 0x13a0 + textpointer SuspiciousSoundwaveName ; 0x13a1 + textpointer ZubatLv12Description ; 0x13a2 + textpointer GolbatName ; 0x13a3 + textpointer LeechLifeAltDescription ; 0x13a4 + textpointer NosediveName ; 0x13a5 + textpointer NosediveDescription ; 0x13a6 + textpointer GolbatLv25Description ; 0x13a7 + textpointer WingAttackName ; 0x13a8 + textpointer GolbatLv29Description ; 0x13a9 + textpointer DarkGolbatName ; 0x13aa + textpointer SneakAttackName ; 0x13ab + textpointer SneakAttackDescription ; 0x13ac + textpointer FlitterName ; 0x13ad + textpointer FlitterDescription ; 0x13ae + textpointer DarkGolbatDescription ; 0x13af + textpointer OddishName ; 0x13b0 + textpointer SproutName ; 0x13b1 + textpointer SproutDescription ; 0x13b2 + textpointer WeedName ; 0x13b3 + textpointer OddishLv8Description ; 0x13b4 + textpointer SleepPowderName ; 0x13b5 + textpointer InflictSleepDescription ; 0x13b6 + textpointer OddishLv21Description ; 0x13b7 + textpointer GloomName ; 0x13b8 + textpointer FoulOdorName ; 0x13b9 + textpointer FoulOdorDescription ; 0x13ba + textpointer GloomDescription ; 0x13bb + textpointer DarkGloomName ; 0x13bc + textpointer PollenStenchName ; 0x13bd + textpointer PollenStenchDescription ; 0x13be + textpointer DarkGloomDescription ; 0x13bf + textpointer VileplumeName ; 0x13c0 + textpointer HealName ; 0x13c1 + textpointer HealDescription ; 0x13c2 + textpointer PetalDanceName ; 0x13c3 + textpointer PetalDanceDescription ; 0x13c4 + textpointer FlowerName ; 0x13c5 + textpointer VileplumeDescription ; 0x13c6 + textpointer DarkVileplumeName ; 0x13c7 + textpointer HayFeverName ; 0x13c8 + textpointer HayFeverDescription ; 0x13c9 + textpointer PetalWhirlwindName ; 0x13ca + textpointer PetalWhirlwindDescription ; 0x13cb + textpointer DarkVileplumeDescription ; 0x13cc + textpointer ParasName ; 0x13cd + textpointer ScratchName ; 0x13ce + textpointer SporeName ; 0x13cf + textpointer MushroomName ; 0x13d0 + textpointer ParasLv8Description ; 0x13d1 + textpointer ScatterSporesName ; 0x13d2 + textpointer ScatterSporesDescription ; 0x13d3 + textpointer ParasLv15Description ; 0x13d4 + textpointer ParasectName ; 0x13d5 + textpointer SlashName ; 0x13d6 + textpointer ParasectLv28Description ; 0x13d7 + textpointer ToxicSporeName ; 0x13d8 + textpointer ParasectLv29Description ; 0x13d9 + textpointer VenonatName ; 0x13da + textpointer InsectName ; 0x13db + textpointer VenonatLv12Description ; 0x13dc + textpointer DisableName ; 0x13dd + textpointer DisableDescription ; 0x13de + textpointer PsybeamName ; 0x13df + textpointer VenonatLv15Description ; 0x13e0 + textpointer VenomothName ; 0x13e1 + textpointer StirUpTwisterName ; 0x13e2 + textpointer StirUpTwisterDescription ; 0x13e3 + textpointer RainbowPowderName ; 0x13e4 + textpointer RainbowPowderDescription ; 0x13e5 + textpointer PoisonMothName ; 0x13e6 + textpointer VenomothLv22Description ; 0x13e7 + textpointer ShiftName ; 0x13e8 + textpointer ShiftDescription ; 0x13e9 + textpointer ShiftDescriptionCont ; 0x13ea + textpointer VenomPowderName ; 0x13eb + textpointer VenomPowderDescription ; 0x13ec + textpointer VenomothLv28Description ; 0x13ed + textpointer BellsproutName ; 0x13ee + textpointer SwayName ; 0x13ef + textpointer BellsproutLv10Description ; 0x13f0 + textpointer CallForFamilyBellsproutDescription ; 0x13f1 + textpointer BellsproutLv11Description ; 0x13f2 + textpointer WeepinbellName ; 0x13f3 + textpointer RegenerationName ; 0x13f4 + textpointer RegenerationDescription ; 0x13f5 + textpointer DissolveName ; 0x13f6 + textpointer DissolveDescription ; 0x13f7 + textpointer FlycatcherName ; 0x13f8 + textpointer WeepinbellLv23Description ; 0x13f9 + textpointer WeepinbellLv28Description ; 0x13fa + textpointer VictreebelName ; 0x13fb + textpointer LureName ; 0x13fc + textpointer LureDescription ; 0x13fd + textpointer AcidName ; 0x13fe + textpointer AcidDescription ; 0x13ff + textpointer VictreebelDescription ; 0x1400 + textpointer GrimerName ; 0x1401 + textpointer PoisonGasName ; 0x1402 + textpointer StickyHandsName ; 0x1403 + textpointer StickyHandsDescription ; 0x1404 + textpointer SludgeCategoryName ; 0x1405 + textpointer GrimerLv10Description ; 0x1406 + textpointer NastyGooName ; 0x1407 + textpointer MinimizeName ; 0x1408 + textpointer MinimizeDescription ; 0x1409 + textpointer GrimerLv17Description ; 0x140a + textpointer MukName ; 0x140b + textpointer ToxicGasName ; 0x140c + textpointer ToxicGasDescription ; 0x140d + textpointer SludgeMoveName ; 0x140e + textpointer MukDescription ; 0x140f + textpointer DarkMukName ; 0x1410 + textpointer StickyGooName ; 0x1411 + textpointer StickyGooDescription ; 0x1412 + textpointer SludgePunchName ; 0x1413 + textpointer DarkMukDescription ; 0x1414 + textpointer ExeggcuteName ; 0x1415 + textpointer HypnosisMoveName ; 0x1416 + textpointer EggName ; 0x1417 + textpointer ExeggcuteDescription ; 0x1418 + textpointer ExeggutorName ; 0x1419 + textpointer TeleportName ; 0x141a + textpointer TeleportDescription ; 0x141b + textpointer BigEggsplosionName ; 0x141c + textpointer BigEggsplosionDescription ; 0x141d + textpointer CoconutName ; 0x141e + textpointer ExeggutorDescription ; 0x141f + textpointer KoffingName ; 0x1420 + textpointer KoffingLv12Description ; 0x1421 + textpointer FoulGasName ; 0x1422 + textpointer FoulGasDescription ; 0x1423 + textpointer KoffingLv13Description ; 0x1424 + textpointer ConfusionGasName ; 0x1425 + textpointer KoffingLv14Description ; 0x1426 + textpointer WeezingName ; 0x1427 + textpointer PoisonMistName ; 0x1428 + textpointer PoisonMistDescription ; 0x1429 + textpointer PoisonMistDescriptionCont ; 0x142a + textpointer GasExplosionName ; 0x142b + textpointer GasExplosionDescription ; 0x142c + textpointer WeezingLv26Description ; 0x142d + textpointer SmogName ; 0x142e + textpointer SelfdestructName ; 0x142f + textpointer Selfdestruct60DamageDescription ; 0x1430 + textpointer WeezingLv27Description ; 0x1431 + textpointer DarkWeezingName ; 0x1432 + textpointer MassExplosionName ; 0x1433 + textpointer MassExplosionDescription ; 0x1434 + textpointer StunGasName ; 0x1435 + textpointer StunGasDescription ; 0x1436 + textpointer DarkWeezingDescription ; 0x1437 + textpointer TangelaName ; 0x1438 + textpointer BindName ; 0x1439 + textpointer VineName ; 0x143a + textpointer TangelaLv8Description ; 0x143b + textpointer PoisonWhipName ; 0x143c + textpointer TangelaLv12Description ; 0x143d + textpointer ScytherName ; 0x143e + textpointer SlashingStrikeName ; 0x143f + textpointer SlashingStrikeDescription ; 0x1440 + textpointer MantisName ; 0x1441 + textpointer ScytherLv23Description ; 0x1442 + textpointer SwordsDanceName ; 0x1443 + textpointer SwordsDanceDescription ; 0x1444 + textpointer ScytherLv25Description ; 0x1445 + textpointer PinsirName ; 0x1446 + textpointer SlicingThrowName ; 0x1447 + textpointer IfHeadsDo10DamageDescription ; 0x1448 + textpointer StagbeetleName ; 0x1449 + textpointer PinsirLv15Description ; 0x144a + textpointer IrongripName ; 0x144b + textpointer GuillotineName ; 0x144c + textpointer PinsirLv24Description ; 0x144d + textpointer CharmanderName ; 0x144e + textpointer GatherFireName ; 0x144f + textpointer GatherFireDescription ; 0x1450 + textpointer FireTailName ; 0x1451 + textpointer LizardName ; 0x1452 + textpointer CharmanderLv9Description ; 0x1453 + textpointer EmberName ; 0x1454 + textpointer DiscardOneFireEnergyDescription ; 0x1455 + textpointer CharmanderLv10Description ; 0x1456 + textpointer GrowlName ; 0x1457 + textpointer GrowlDescription ; 0x1458 + textpointer CharmanderLv12Description ; 0x1459 + textpointer CharmeleonName ; 0x145a + textpointer FlamethrowerName ; 0x145b + textpointer FlameName ; 0x145c + textpointer CharmeleonDescription ; 0x145d + textpointer DarkCharmeleonName ; 0x145e + textpointer TailSlapName ; 0x145f + textpointer FireballName ; 0x1460 + textpointer FireballDescription ; 0x1461 + textpointer DarkCharmeleonDescription ; 0x1462 + textpointer CharizardName ; 0x1463 + textpointer EnergyBurnName ; 0x1464 + textpointer EnergyBurnDescription ; 0x1465 + textpointer FireSpinName ; 0x1466 + textpointer FireSpinDescription ; 0x1467 + textpointer CharizardDescription ; 0x1468 + textpointer CharizardAltDescription ; 0x1469 + textpointer DarkCharizardName ; 0x146a + textpointer NailFlickName ; 0x146b + textpointer ContinuousFireballName ; 0x146c + textpointer ContinuousFireballDescription ; 0x146d + textpointer DarkCharizardDescription ; 0x146e + textpointer VulpixName ; 0x146f + textpointer ConfuseRayName ; 0x1470 + textpointer FoxName ; 0x1471 + textpointer VulpixLv11Description ; 0x1472 + textpointer FoxFireName ; 0x1473 + textpointer FoxFireDescription ; 0x1474 + textpointer VulpixLv13Description ; 0x1475 + textpointer NinetalesName ; 0x1476 + textpointer LureAltName ; 0x1477 + textpointer FireBlastName ; 0x1478 + textpointer NinetalesLv32Description ; 0x1479 + textpointer MixUpName ; 0x147a + textpointer MixUpDescription ; 0x147b + textpointer DancingEmbersName ; 0x147c + textpointer DancingEmbersDescription ; 0x147d + textpointer NinetalesLv35Description ; 0x147e + textpointer DarkNinetalesName ; 0x147f + textpointer PerplexName ; 0x1480 + textpointer PerplexDescription ; 0x1481 + textpointer NineTailsName ; 0x1482 + textpointer NineTailsDescription ; 0x1483 + textpointer DarkNinetalesDescription ; 0x1484 + textpointer GrowlitheName ; 0x1485 + textpointer LungeName ; 0x1486 + textpointer PuppyName ; 0x1487 + textpointer GrowlitheLv12Description ; 0x1488 + textpointer ErrandRunningName ; 0x1489 + textpointer ErrandRunningDescription ; 0x148a + textpointer DiscardOneFireEnergyAltDescription ; 0x148b + textpointer GrowlitheLv16Description ; 0x148c + textpointer FlareName ; 0x148d + textpointer GrowlitheLv18Description ; 0x148e + textpointer ArcanineName ; 0x148f + textpointer QuickAttackName ; 0x1490 + textpointer QuickAttackDescription ; 0x1491 + textpointer FlamesOfRageName ; 0x1492 + textpointer FlamesOfRageDescription ; 0x1493 + textpointer LegendaryName ; 0x1494 + textpointer ArcanineLv34Description ; 0x1495 + textpointer TakeDownName ; 0x1496 + textpointer Do20DamageToSelfDescription ; 0x1497 + textpointer ArcanineLv35Description ; 0x1498 + textpointer Do30DamageToSelfDescription ; 0x1499 + textpointer ArcanineLv45Description ; 0x149a + textpointer PonytaName ; 0x149b + textpointer SmashKickName ; 0x149c + textpointer FireworksName ; 0x149d + textpointer FireworksDescription ; 0x149e + textpointer FireHorseName ; 0x149f + textpointer PonytaLv8Description ; 0x14a0 + textpointer PonytaLv10Description ; 0x14a1 + textpointer PonytaLv15Description ; 0x14a2 + textpointer RapidashName ; 0x14a3 + textpointer FlameInfernoName ; 0x14a4 + textpointer FlameInfernoDescription ; 0x14a5 + textpointer KickAwayName ; 0x14a6 + textpointer SwitchWithBenchedMonDescription ; 0x14a7 + textpointer RapidashLv30Description ; 0x14a8 + textpointer StompName ; 0x14a9 + textpointer StompDescription ; 0x14aa + textpointer AgilityName ; 0x14ab + textpointer AgilityDescription ; 0x14ac + textpointer RapidashLv33Description ; 0x14ad + textpointer DarkRapidashName ; 0x14ae + textpointer RearKickName ; 0x14af + textpointer FlamePillarName ; 0x14b0 + textpointer FlamePillarDescription ; 0x14b1 + textpointer DarkRapidashDescription ; 0x14b2 + textpointer MagmarName ; 0x14b3 + textpointer FirePunchName ; 0x14b4 + textpointer SpitfireName ; 0x14b5 + textpointer MagmarLv18Description ; 0x14b6 + textpointer MagmarLv24Description ; 0x14b7 + textpointer BurningFireName ; 0x14b8 + textpointer BurningFireDescription ; 0x14b9 + textpointer MagmaPunchName ; 0x14ba + textpointer MagmarLv27Description ; 0x14bb + textpointer SmokescreenName ; 0x14bc + textpointer SmokescreenDescription ; 0x14bd + textpointer MagmarLv31Description ; 0x14be + textpointer FlareonName ; 0x14bf + textpointer EeveeName ; 0x14c0 + textpointer RageName ; 0x14c1 + textpointer RageDescription ; 0x14c2 + textpointer FlareonLv22Description ; 0x14c3 + textpointer FlareonLv28Description ; 0x14c4 + textpointer DarkFlareonName ; 0x14c5 + textpointer PlayingWithFireName ; 0x14c6 + textpointer PlayingWithFireDescription ; 0x14c7 + textpointer DarkFlareonDescription ; 0x14c8 + textpointer MoltresName ; 0x14c9 + textpointer WildfireName ; 0x14ca + textpointer WildfireDescription ; 0x14cb + textpointer DiveBombName ; 0x14cc + textpointer MoltresLv35Description ; 0x14cd + textpointer DryUpName ; 0x14ce + textpointer DryUpDescription ; 0x14cf + textpointer FireWingName ; 0x14d0 + textpointer MoltresSharedDescription ; 0x14d1 + textpointer FiregiverName ; 0x14d2 + textpointer FiregiverDescription ; 0x14d3 + textpointer FiregiverDescriptionCont ; 0x14d4 + textpointer SquirtleName ; 0x14d5 + textpointer BubbleName ; 0x14d6 + textpointer WithdrawName ; 0x14d7 + textpointer TinyTurtleName ; 0x14d8 + textpointer SquirtleLv8Description ; 0x14d9 + textpointer SkullBashName ; 0x14da + textpointer SquirtleLv14Description ; 0x14db + textpointer WaterPowerName ; 0x14dc + textpointer WaterPowerDescription ; 0x14dd + textpointer PoundName ; 0x14de + textpointer SquirtleLv15Description ; 0x14df + textpointer ShellAttackName ; 0x14e0 + textpointer SquirtleLv16Description ; 0x14e1 + textpointer WartortleName ; 0x14e2 + textpointer TurtleName ; 0x14e3 + textpointer WartortleLv22Description ; 0x14e4 + textpointer SurfName ; 0x14e5 + textpointer WartortleLv24Description ; 0x14e6 + textpointer DarkWartortleName ; 0x14e7 + textpointer DoubleSlapName ; 0x14e8 + textpointer Do10DamageNumberOfHeadsDescription ; 0x14e9 + textpointer MirrorShellName ; 0x14ea + textpointer MirrorShellDescription ; 0x14eb + textpointer DarkWartortleDescription ; 0x14ec + textpointer BlastoiseName ; 0x14ed + textpointer RainDanceName ; 0x14ee + textpointer RainDanceDescription ; 0x14ef + textpointer HydroPumpName ; 0x14f0 + textpointer Do20DamagePlus10WaterEnergyDescription ; 0x14f1 + textpointer ShellfishName ; 0x14f2 + textpointer BlastoiseDescription ; 0x14f3 + textpointer BlastoiseAltDescription ; 0x14f4 + textpointer DarkBlastoiseName ; 0x14f5 + textpointer HydrocannonName ; 0x14f6 + textpointer HydrocannonDescription ; 0x14f7 + textpointer RocketTackleName ; 0x14f8 + textpointer RocketTackleDescription ; 0x14f9 + textpointer DarkBlastoiseDescription ; 0x14fa + textpointer PsyduckName ; 0x14fb + textpointer HeadacheName ; 0x14fc + textpointer HeadacheDescription ; 0x14fd + textpointer DuckName ; 0x14fe + textpointer PsyduckLv15Description ; 0x14ff + textpointer DizzinessName ; 0x1500 + textpointer DizzinessDescription ; 0x1501 + textpointer WaterGunName ; 0x1502 + textpointer PsyduckLv16Description ; 0x1503 + textpointer GolduckName ; 0x1504 + textpointer PsyshockName ; 0x1505 + textpointer HyperBeamName ; 0x1506 + textpointer HyperBeamDescription ; 0x1507 + textpointer GolduckLv27Description ; 0x1508 + textpointer PsychicName ; 0x1509 + textpointer PsychicDescription ; 0x150a + textpointer WaveSplashName ; 0x150b + textpointer GolduckLv28Description ; 0x150c + textpointer DarkGolduckName ; 0x150d + textpointer ThirdEyeName ; 0x150e + textpointer ThirdEyeDescription ; 0x150f + textpointer SuperPsyName ; 0x1510 + textpointer DarkGolduckDescription ; 0x1511 + textpointer PoliwagName ; 0x1512 + textpointer Do20DamagePlus10WaterEnergyAltDescription1 ; 0x1513 + textpointer TadpoleName ; 0x1514 + textpointer PoliwagLv13Description ; 0x1515 + textpointer PoliwagLv15Description ; 0x1516 + textpointer PoliwhirlName ; 0x1517 + textpointer AmnesiaName ; 0x1518 + textpointer AmnesiaDescription ; 0x1519 + textpointer PoliwhirlLv28Description ; 0x151a + textpointer TwiddleName ; 0x151b + textpointer TwiddleDescription ; 0x151c + textpointer BodySlamName ; 0x151d + textpointer PoliwhirlLv30Description ; 0x151e + textpointer PoliwrathName ; 0x151f + textpointer PoliwrathLv40Description ; 0x1520 + textpointer WhirlpoolName ; 0x1521 + textpointer PoliwrathLv48Description ; 0x1522 + textpointer TentacoolName ; 0x1523 + textpointer CowardiceName ; 0x1524 + textpointer CowardiceDescription ; 0x1525 + textpointer JellyfishName ; 0x1526 + textpointer TentacoolDescription ; 0x1527 + textpointer TentacruelName ; 0x1528 + textpointer JellyfishStingName ; 0x1529 + textpointer TentacruelDescription ; 0x152a + textpointer SeelName ; 0x152b + textpointer GrowlAltDescription1 ; 0x152c + textpointer IceBeamName ; 0x152d + textpointer SeaLionName ; 0x152e + textpointer SeelLv10Description ; 0x152f + textpointer HeadbuttName ; 0x1530 + textpointer SeelLv12Description ; 0x1531 + textpointer DewgongName ; 0x1532 + textpointer RestName ; 0x1533 + textpointer RestDescription ; 0x1534 + textpointer AuroraWaveName ; 0x1535 + textpointer DewgongLv24Description ; 0x1536 + textpointer AuroraBeamName ; 0x1537 + textpointer DewgongLv42Description ; 0x1538 + textpointer ShellderName ; 0x1539 + textpointer HideInShellName ; 0x153a + textpointer BivalveName ; 0x153b + textpointer ShellderLv8Description ; 0x153c + textpointer WaterSpoutName ; 0x153d + textpointer Do20DamagePlus10WaterEnergyAltDescription2 ; 0x153e + textpointer ShellderLv16Description ; 0x153f + textpointer CloysterName ; 0x1540 + textpointer ClampName ; 0x1541 + textpointer ClampDescription ; 0x1542 + textpointer SpikeCannonName ; 0x1543 + textpointer CloysterDescription ; 0x1544 + textpointer KrabbyName ; 0x1545 + textpointer GuillotineAltName ; 0x1546 + textpointer RiverCrabName ; 0x1547 + textpointer KrabbyLv17Description ; 0x1548 + textpointer CallForFamilyKrabbyDescription ; 0x1549 + textpointer IrongripAltName ; 0x154a + textpointer KrabbyLv20Description ; 0x154b + textpointer KinglerName ; 0x154c + textpointer FlailName ; 0x154d + textpointer FlailDescription ; 0x154e + textpointer CrabhammerName ; 0x154f + textpointer PincerName ; 0x1550 + textpointer KinglerLv27Description ; 0x1551 + textpointer SaltWaterName ; 0x1552 + textpointer SaltWaterDescription ; 0x1553 + textpointer DoubleEdgedPincersName ; 0x1554 + textpointer DoubleEdgedPincersDescription ; 0x1555 + textpointer KinglerLv33Description ; 0x1556 + textpointer HorseaName ; 0x1557 + textpointer DragonName ; 0x1558 + textpointer HorseaLv19Description ; 0x1559 + textpointer HideName ; 0x155a + textpointer HideDescription ; 0x155b + textpointer HorseaLv20Description ; 0x155c + textpointer SeadraName ; 0x155d + textpointer SeadraLv23Description ; 0x155e + textpointer WaterBombName ; 0x155f + textpointer WaterBombDescription ; 0x1560 + textpointer WaterBombDescriptionCont ; 0x1561 + textpointer SeadraLv26Description ; 0x1562 + textpointer GoldeenName ; 0x1563 + textpointer HornAttackName ; 0x1564 + textpointer GoldfishName ; 0x1565 + textpointer GoldeenDescription ; 0x1566 + textpointer SeakingName ; 0x1567 + textpointer WaterfallName ; 0x1568 + textpointer SeakingDescription ; 0x1569 + textpointer StaryuName ; 0x156a + textpointer SlapName ; 0x156b + textpointer StarshapeName ; 0x156c + textpointer StaryuLv15Description ; 0x156d + textpointer StrangeBeamName ; 0x156e + textpointer StrangeBeamDescription ; 0x156f + textpointer SpinningAttackName ; 0x1570 + textpointer StaryuLv17Description ; 0x1571 + textpointer StarmieName ; 0x1572 + textpointer RecoverName ; 0x1573 + textpointer RecoverWaterDescription ; 0x1574 + textpointer StarFreezeName ; 0x1575 + textpointer MysteriousName ; 0x1576 + textpointer StarmieDescription ; 0x1577 + textpointer DarkStarmieName ; 0x1578 + textpointer RebirthName ; 0x1579 + textpointer RebirthDescription ; 0x157a + textpointer RebirthDescriptionCont ; 0x157b + textpointer SpinningShowerName ; 0x157c + textpointer SpinningShowerDescription ; 0x157d + textpointer DarkStarmieDescription ; 0x157e + textpointer MagikarpName ; 0x157f + textpointer FlopName ; 0x1580 + textpointer RapidEvolutionName ; 0x1581 + textpointer RapidEvolutionDescription ; 0x1582 + textpointer FishName ; 0x1583 + textpointer MagikarpLv6Description ; 0x1584 + textpointer MagikarpLv8Description ; 0x1585 + textpointer TrickleName ; 0x1586 + textpointer Plus10DamagePerHeadsDescription ; 0x1587 + textpointer DragonRageName ; 0x1588 + textpointer IfEitherTailsDoNothingDescription ; 0x1589 + textpointer MagikarpLv10Description ; 0x158a + textpointer GyaradosName ; 0x158b + textpointer BubblebeamName ; 0x158c + textpointer AtrociousName ; 0x158d + textpointer GyaradosDescription ; 0x158e + textpointer DarkGyaradosName ; 0x158f + textpointer FinalBeamName ; 0x1590 + textpointer FinalBeamDescription ; 0x1591 + textpointer FinalBeamDescriptionCont ; 0x1592 + textpointer DarkGyaradosDescription ; 0x1593 + textpointer LaprasName ; 0x1594 + textpointer SingName ; 0x1595 + textpointer MayInflictSleepDescription ; 0x1596 + textpointer TransportName ; 0x1597 + textpointer LaprasLv24Description ; 0x1598 + textpointer LaprasLv31Description ; 0x1599 + textpointer VaporeonName ; 0x159a + textpointer FocusEnergyBiteDescription ; 0x159b + textpointer BubbleJetName ; 0x159c + textpointer VaporeonLv29Description ; 0x159d + textpointer VaporeonLv42Description ; 0x159e + textpointer DarkVaporeonName ; 0x159f + textpointer WhirlpoolDescription ; 0x15a0 + textpointer DarkVaporeonDescription ; 0x15a1 + textpointer OmanyteName ; 0x15a2 + textpointer MysteriousFossilName ; 0x15a3 + textpointer ClairvoyanceName ; 0x15a4 + textpointer ClairvoyanceDescription ; 0x15a5 + textpointer SpiralName ; 0x15a6 + textpointer OmanyteLv19Description ; 0x15a7 + textpointer PrehistoricDreamName ; 0x15a8 + textpointer PrehistoricDreamDescription ; 0x15a9 + textpointer PowerCantBeUsedIfStatusDescription ; 0x15aa + textpointer RollingTackleName ; 0x15ab + textpointer OmanyteSharedDescription ; 0x15ac + textpointer FossilGuidanceName ; 0x15ad + textpointer FossilGuidanceDescription ; 0x15ae + textpointer OmastarName ; 0x15af + textpointer OmastarLv32Description ; 0x15b0 + textpointer TentacleGripName ; 0x15b1 + textpointer TentacleGripDescription ; 0x15b2 + textpointer CorrosiveAcidName ; 0x15b3 + textpointer CorrosiveAcidDescription ; 0x15b4 + textpointer OmastarLv36Description ; 0x15b5 + textpointer ArticunoName ; 0x15b6 + textpointer AuroraVeilName ; 0x15b7 + textpointer AuroraVeilDescription ; 0x15b8 + textpointer FreezeName ; 0x15b9 + textpointer ArticunoLv34Description ; 0x15ba + textpointer FreezeDryName ; 0x15bb + textpointer BlizzardName ; 0x15bc + textpointer BlizzardDescription ; 0x15bd + textpointer ArticunoLv35Description ; 0x15be + textpointer QuickfreezeName ; 0x15bf + textpointer QuickfreezeDescription ; 0x15c0 + textpointer IceBreathName ; 0x15c1 + textpointer IceBreathDescription ; 0x15c2 + textpointer ArticunoLv37Description ; 0x15c3 + textpointer MarillName ; 0x15c4 + textpointer AquamouseName ; 0x15c5 + textpointer MarillDescription ; 0x15c6 + textpointer PikachuName ; 0x15c7 + textpointer ThundershockName ; 0x15c8 + textpointer MouseName ; 0x15c9 + textpointer PikachuLv5Description ; 0x15ca + textpointer GnawName ; 0x15cb + textpointer ThunderJoltName ; 0x15cc + textpointer ThunderJoltDescription ; 0x15cd + textpointer PikachuSharedDescription ; 0x15ce + textpointer RechargeName ; 0x15cf + textpointer RechargeDescription ; 0x15d0 + textpointer ThunderboltName ; 0x15d1 + textpointer ThunderboltDescription ; 0x15d2 + textpointer PikachuLv13Description ; 0x15d3 + textpointer SparkName ; 0x15d4 + textpointer Do10DamageToABenchedMonDescription ; 0x15d5 + textpointer PikachuLv14Description ; 0x15d6 + textpointer FlyingPikachuName ; 0x15d7 + textpointer FlyName ; 0x15d8 + textpointer FlyDescription ; 0x15d9 + textpointer FlyingPikachuDescription ; 0x15da + textpointer SurfingPikachuName ; 0x15db + textpointer SurfingPikachuDescription ; 0x15dc + textpointer RaichuName ; 0x15dd + textpointer ShortCircuitName ; 0x15de + textpointer ShortCircuitDescription ; 0x15df + textpointer SparkingKickName ; 0x15e0 + textpointer RaichuLv32Description ; 0x15e1 + textpointer QuickAttackAltDescription1 ; 0x15e2 + textpointer ThunderboltAltDescription1 ; 0x15e3 + textpointer RaichuLv33Description ; 0x15e4 + textpointer ThunderName ; 0x15e5 + textpointer ThunderDescription ; 0x15e6 + textpointer RaichuSharedDescription ; 0x15e7 + textpointer GigashockName ; 0x15e8 + textpointer GigashockDescription ; 0x15e9 + textpointer DarkRaichuName ; 0x15ea + textpointer SurpriseThunderName ; 0x15eb + textpointer SurpriseThunderDescription ; 0x15ec + textpointer DarkRaichuDescription ; 0x15ed + textpointer MagnemiteName ; 0x15ee + textpointer MagnetismName ; 0x15ef + textpointer MagnetismDescription ; 0x15f0 + textpointer MagnetCategoryName ; 0x15f1 + textpointer MagnemiteLv12Description ; 0x15f2 + textpointer ThunderWaveName ; 0x15f3 + textpointer Selfdestruct40DamageDescription ; 0x15f4 + textpointer MagnemiteLv13Description ; 0x15f5 + textpointer MagneticStormName ; 0x15f6 + textpointer MagneticStormDescription ; 0x15f7 + textpointer MagnemiteLv14Description ; 0x15f8 + textpointer MagnetMoveName ; 0x15f9 + textpointer MagnetMoveDescription ; 0x15fa + textpointer SuperconductivityName ; 0x15fb + textpointer SuperconductivityDescription ; 0x15fc + textpointer MagnemiteLv15Description ; 0x15fd + textpointer MagnetonName ; 0x15fe + textpointer Selfdestruct80DamageDescription ; 0x15ff + textpointer MagnetonSharedDescription ; 0x1600 + textpointer MicrowaveName ; 0x1601 + textpointer MicrowaveDescription ; 0x1602 + textpointer MagnetonLv30Description ; 0x1603 + textpointer SonicboomName ; 0x1604 + textpointer SonicboomDescription ; 0x1605 + textpointer Selfdestruct100DamageDescription ; 0x1606 + textpointer DarkMagnetonName ; 0x1607 + textpointer SonicboomAltDescription ; 0x1608 + textpointer MagneticLinesName ; 0x1609 + textpointer MagneticLinesDescription ; 0x160a + textpointer DarkMagnetonDescription ; 0x160b + textpointer VoltorbName ; 0x160c + textpointer GroupSparkName ; 0x160d + textpointer GroupSparkDescription ; 0x160e + textpointer BallName ; 0x160f + textpointer VoltorbLv8Description ; 0x1610 + textpointer VoltorbLv10Description ; 0x1611 + textpointer SpeedBallName ; 0x1612 + textpointer VoltorbLv13Description ; 0x1613 + textpointer ElectrodeName ; 0x1614 + textpointer EnergySpikeName ; 0x1615 + textpointer EnergySpikeDescription ; 0x1616 + textpointer ElectrodeLv35Description ; 0x1617 + textpointer ChainLightningName ; 0x1618 + textpointer ChainLightningDescription ; 0x1619 + textpointer ElectrodeLv42Description ; 0x161a + textpointer DarkElectrodeName ; 0x161b + textpointer EnergyBombName ; 0x161c + textpointer EnergyBombDescription ; 0x161d + textpointer DarkElectrodeDescription ; 0x161e + textpointer ElectabuzzName ; 0x161f + textpointer LightScreenName ; 0x1620 + textpointer LightScreenDescription ; 0x1621 + textpointer ElectabuzzLv20Description ; 0x1622 + textpointer ElectabuzzLv30Description ; 0x1623 + textpointer ThunderpunchName ; 0x1624 + textpointer ThunderpunchDescription ; 0x1625 + textpointer ElectabuzzLv35Description ; 0x1626 + textpointer JolteonName ; 0x1627 + textpointer Do20DamageNumberOfHeadsDescription ; 0x1628 + textpointer StunNeedleName ; 0x1629 + textpointer JolteonLv24Description ; 0x162a + textpointer QuickAttackAltDescription2 ; 0x162b + textpointer PinMissileName ; 0x162c + textpointer PinMissileDescription ; 0x162d + textpointer JolteonLv29Description ; 0x162e + textpointer DarkJolteonName ; 0x162f + textpointer LightningFlashName ; 0x1630 + textpointer LightningFlashDescription ; 0x1631 + textpointer ThunderAttackName ; 0x1632 + textpointer ThunderAttackDescription ; 0x1633 + textpointer DarkJolteonDescription ; 0x1634 + textpointer ZapdosName ; 0x1635 + textpointer RagingThunderName ; 0x1636 + textpointer RagingThunderDescription ; 0x1637 + textpointer ThunderCrashName ; 0x1638 + textpointer ThunderCrashDescription ; 0x1639 + textpointer ZapdosLv28Description ; 0x163a + textpointer ThunderstormName ; 0x163b + textpointer ThunderstormDescription ; 0x163c + textpointer ZapdosLv40Description ; 0x163d + textpointer ThunderboltAltDescription2 ; 0x163e + textpointer ZapdosLv64Description ; 0x163f + textpointer PealOfThunderName ; 0x1640 + textpointer PealOfThunderDescription ; 0x1641 + textpointer BigThunderName ; 0x1642 + textpointer BigThunderDescription ; 0x1643 + textpointer ZapdosLv68Description ; 0x1644 + textpointer SandshrewName ; 0x1645 + textpointer SandAttackName ; 0x1646 + textpointer SandshrewLv12Description ; 0x1647 + textpointer SwiftName ; 0x1648 + textpointer SwiftDescription ; 0x1649 + textpointer SandshrewLv15Description ; 0x164a + textpointer SandslashName ; 0x164b + textpointer FurySwipes20DamageDescription ; 0x164c + textpointer SandslashLv33Description ; 0x164d + textpointer SandVeilName ; 0x164e + textpointer RollingNeedleName ; 0x164f + textpointer RollingNeedleDescription ; 0x1650 + textpointer SandslashLv35Description ; 0x1651 + textpointer DiglettName ; 0x1652 + textpointer DigName ; 0x1653 + textpointer MudSlapName ; 0x1654 + textpointer MoleName ; 0x1655 + textpointer DiglettLv8Description ; 0x1656 + textpointer DigUnderName ; 0x1657 + textpointer DigUnderDescription ; 0x1658 + textpointer DiglettLv15Description ; 0x1659 + textpointer TripOverName ; 0x165a + textpointer DiglettLv16Description ; 0x165b + textpointer DugtrioName ; 0x165c + textpointer EarthquakeName ; 0x165d + textpointer EarthquakeDescription ; 0x165e + textpointer DugtrioLv36Description ; 0x165f + textpointer GoUndergroundName ; 0x1660 + textpointer GoUndergroundDescription ; 0x1661 + textpointer EarthWaveName ; 0x1662 + textpointer EarthWaveDescription ; 0x1663 + textpointer DugtrioLv40Description ; 0x1664 + textpointer DarkDugtrioName ; 0x1665 + textpointer SinkholeName ; 0x1666 + textpointer SinkholeDescription ; 0x1667 + textpointer KnockDownName ; 0x1668 + textpointer KnockDownDescription ; 0x1669 + textpointer DarkDugtrioDescription ; 0x166a + textpointer MankeyName ; 0x166b + textpointer PeekName ; 0x166c + textpointer PeekDescription ; 0x166d + textpointer PigMonkeyName ; 0x166e + textpointer MankeyLv7Description ; 0x166f + textpointer MischiefName ; 0x1670 + textpointer MischiefDescription ; 0x1671 + textpointer AngerName ; 0x1672 + textpointer MankeyLv14Description ; 0x1673 + textpointer PrimeapeName ; 0x1674 + textpointer TantrumName ; 0x1675 + textpointer TantrumDescription ; 0x1676 + textpointer PrimeapeDescription ; 0x1677 + textpointer DarkPrimeapeName ; 0x1678 + textpointer FrenzyName ; 0x1679 + textpointer FrenzyDescription ; 0x167a + textpointer FrenziedAttackName ; 0x167b + textpointer FrenziedAttackDescription ; 0x167c + textpointer DarkPrimeapeDescription ; 0x167d + textpointer MachopName ; 0x167e + textpointer FocusedOneShotName ; 0x167f + textpointer FocusedOneShotDescription ; 0x1680 + textpointer CorkscrewPunchName ; 0x1681 + textpointer SuperpowerName ; 0x1682 + textpointer MachopLv18Description ; 0x1683 + textpointer LowKickName ; 0x1684 + textpointer MachopLv20Description ; 0x1685 + textpointer PunchName ; 0x1686 + textpointer KickName ; 0x1687 + textpointer MachopLv24Description ; 0x1688 + textpointer MachokeName ; 0x1689 + textpointer WickedJabName ; 0x168a + textpointer FocusBlastName ; 0x168b + textpointer FocusBlastDescription ; 0x168c + textpointer MachokeLv24Description ; 0x168d + textpointer MegaKickName ; 0x168e + textpointer SteadyPunchName ; 0x168f + textpointer MachokeLv28Description ; 0x1690 + textpointer KarateChopName ; 0x1691 + textpointer KarateChopDescription ; 0x1692 + textpointer SubmissionName ; 0x1693 + textpointer MachokeLv40Description ; 0x1694 + textpointer DarkMachokeName ; 0x1695 + textpointer DragOffName ; 0x1696 + textpointer DragOffDescription ; 0x1697 + textpointer KnockBackName ; 0x1698 + textpointer DarkMachokeDescription ; 0x1699 + textpointer MachampName ; 0x169a + textpointer SeethingAngerName ; 0x169b + textpointer SeethingAngerDescription ; 0x169c + textpointer FlingName ; 0x169d + textpointer MachampLv54Description ; 0x169e + textpointer StrikesBackName ; 0x169f + textpointer StrikesBackDescription ; 0x16a0 + textpointer StrikesBackDescriptionCont ; 0x16a1 + textpointer SeismicTossName ; 0x16a2 + textpointer MachampLv67Description ; 0x16a3 + textpointer DarkMachampName ; 0x16a4 + textpointer FlingAltName ; 0x16a5 + textpointer FlingDescription ; 0x16a6 + textpointer DarkMachampDescription ; 0x16a7 + textpointer GeodudeName ; 0x16a8 + textpointer HardenName ; 0x16a9 + textpointer Harden20DamageDescription ; 0x16aa + textpointer RockName ; 0x16ab + textpointer GeodudeLv15Description ; 0x16ac + textpointer StoneBarrageName ; 0x16ad + textpointer StoneBarrage10DamageDescription ; 0x16ae + textpointer GeodudeLv16Description ; 0x16af + textpointer GravelerName ; 0x16b0 + textpointer BoulderSmashName ; 0x16b1 + textpointer BoulderSmashDescription ; 0x16b2 + textpointer GravelerLv27Description ; 0x16b3 + textpointer StoneBarrageAltName ; 0x16b4 + textpointer StoneBarrage20DamageDescription ; 0x16b5 + textpointer EarthquakeAltDescription ; 0x16b6 + textpointer GravelerLv28Description ; 0x16b7 + textpointer Harden30DamageDescription ; 0x16b8 + textpointer RockThrowName ; 0x16b9 + textpointer GravelerLv29Description ; 0x16ba + textpointer GolemName ; 0x16bb + textpointer AvalancheName ; 0x16bc + textpointer MegatonName ; 0x16bd + textpointer GolemLv36Description ; 0x16be + textpointer RockBlastName ; 0x16bf + textpointer RockBlastDescription ; 0x16c0 + textpointer RockBlastDescriptionCont ; 0x16c1 + textpointer GolemLv37Description ; 0x16c2 + textpointer OnixName ; 0x16c3 + textpointer Harden30DamageAltDescription ; 0x16c4 + textpointer RockSnakeName ; 0x16c5 + textpointer OnixLv12Description ; 0x16c6 + textpointer RockSealName ; 0x16c7 + textpointer RockSealDescription ; 0x16c8 + textpointer OnixLv25Description ; 0x16c9 + textpointer CuboneName ; 0x16ca + textpointer SnivelName ; 0x16cb + textpointer SnivelDescription ; 0x16cc + textpointer LonelyName ; 0x16cd + textpointer CuboneLv13Description ; 0x16ce + textpointer BoneTossName ; 0x16cf + textpointer BoneTossDescription ; 0x16d0 + textpointer CuboneLv14Description ; 0x16d1 + textpointer MarowakName ; 0x16d2 + textpointer BonemerangName ; 0x16d3 + textpointer CallForFriendName ; 0x16d4 + textpointer CallForFriendDescription ; 0x16d5 + textpointer BoneKeeperName ; 0x16d6 + textpointer MarowakLv26Description ; 0x16d7 + textpointer BoneAttackName ; 0x16d8 + textpointer BoneAttackDescription ; 0x16d9 + textpointer WailName ; 0x16da + textpointer WailDescription ; 0x16db + textpointer MarowakLv32Description ; 0x16dc + textpointer DarkMarowakName ; 0x16dd + textpointer BoneHeadbuttName ; 0x16de + textpointer BoneHeadbuttDescription ; 0x16df + textpointer DarkMarowakDescription ; 0x16e0 + textpointer HitmonleeName ; 0x16e1 + textpointer RollingKickName ; 0x16e2 + textpointer HitmonleeLv23Description ; 0x16e3 + textpointer StretchKickName ; 0x16e4 + textpointer StretchKickDescription ; 0x16e5 + textpointer HighJumpKick ; 0x16e6 + textpointer HitmonleeLv30Description ; 0x16e7 + textpointer HitmonchanName ; 0x16e8 + textpointer MatchPunchName ; 0x16e9 + textpointer MatchPunchDescription ; 0x16ea + textpointer HitmonchanLv23Description ; 0x16eb + textpointer JabName ; 0x16ec + textpointer SpecialPunchName ; 0x16ed + textpointer HitmonchanLv33Description ; 0x16ee + textpointer RhyhornName ; 0x16ef + textpointer LeerName ; 0x16f0 + textpointer LeerDescription ; 0x16f1 + textpointer SpikesName ; 0x16f2 + textpointer RhyhornDescription ; 0x16f3 + textpointer RhydonName ; 0x16f4 + textpointer MountainBreakName ; 0x16f5 + textpointer MountainBreakDescription ; 0x16f6 + textpointer OneTwoStrikeName ; 0x16f7 + textpointer RhydonLv37Description ; 0x16f8 + textpointer RamAltName ; 0x16f9 + textpointer RamDescription ; 0x16fa + textpointer RhydonLv48Description ; 0x16fb + textpointer KabutoName ; 0x16fc + textpointer KabutoArmorName ; 0x16fd + textpointer KabutoArmorDescription ; 0x16fe + textpointer KabutoLv9Description ; 0x16ff + textpointer FossilizeName ; 0x1700 + textpointer FossilizeDescription ; 0x1701 + textpointer SharpClawsName ; 0x1702 + textpointer SharpClawsDescription ; 0x1703 + textpointer KabutoLv22Description ; 0x1704 + textpointer KabutopsName ; 0x1705 + textpointer SharpSickleName ; 0x1706 + textpointer AbsorbName ; 0x1707 + textpointer KabutopsDescription ; 0x1708 + textpointer AerodactylName ; 0x1709 + textpointer PrehistoricPowerName ; 0x170a + textpointer PrehistoricPowerDescription ; 0x170b + textpointer FossilName ; 0x170c + textpointer AerodactylLv28Description ; 0x170d + textpointer TailspinAttackName ; 0x170e + textpointer TailspinAttackDescription ; 0x170f + textpointer AerodactylLv30Description ; 0x1710 + textpointer AbraName ; 0x1711 + textpointer PsychicBeamName ; 0x1712 + textpointer PsychicBeamDescription ; 0x1713 + textpointer AbraLv8Description ; 0x1714 + textpointer AbraLv10Description ; 0x1715 + textpointer VanishName ; 0x1716 + textpointer VanishDescription ; 0x1717 + textpointer AbraLv14Description ; 0x1718 + textpointer KadabraName ; 0x1719 + textpointer RecoverPsychicDescription ; 0x171a + textpointer KadabraLv38Description ; 0x171b + textpointer PsychoPanicName ; 0x171c + textpointer PsychoPanicDescription ; 0x171d + textpointer BlinkName ; 0x171e + textpointer BlinkDescription ; 0x171f + textpointer KadabraLv39Description ; 0x1720 + textpointer DarkKadabraName ; 0x1721 + textpointer MatterExchangeName ; 0x1722 + textpointer MatterExchangeDescription ; 0x1723 + textpointer MindShockName ; 0x1724 + textpointer MindShockDescription ; 0x1725 + textpointer DarkKadabraDescription ; 0x1726 + textpointer AlakazamName ; 0x1727 + textpointer DamageSwapName ; 0x1728 + textpointer DamageSwapDescription ; 0x1729 + textpointer AlakazamLv42Description ; 0x172a + textpointer TransDamageName ; 0x172b + textpointer TransDamageDescription ; 0x172c + textpointer AlakazamLv45Description ; 0x172d + textpointer DarkAlakazamName ; 0x172e + textpointer TeleportBlastName ; 0x172f + textpointer TeleportBlastDescription ; 0x1730 + textpointer DarkAlakazamDescription ; 0x1731 + textpointer SlowpokeName ; 0x1732 + textpointer DopeyName ; 0x1733 + textpointer SlowpokeLv9Description ; 0x1734 + textpointer AfternoonNapName ; 0x1735 + textpointer AfternoonNapDescription ; 0x1736 + textpointer SlowpokeLv16Description ; 0x1737 + textpointer SpacingOutName ; 0x1738 + textpointer SpacingOutDescription ; 0x1739 + textpointer ScavengeName ; 0x173a + textpointer ScavengeDescription ; 0x173b + textpointer SlowpokeLv18Description ; 0x173c + textpointer SlowbroName ; 0x173d + textpointer StrangeBehaviorName ; 0x173e + textpointer StrangeBehaviorDescription ; 0x173f + textpointer HermitcrabName ; 0x1740 + textpointer SlowbroLv26Description ; 0x1741 + textpointer BigYawnName ; 0x1742 + textpointer BigYawnDescription ; 0x1743 + textpointer BigSnoreName ; 0x1744 + textpointer BigSnoreDescription ; 0x1745 + textpointer SlowbroLv35Description ; 0x1746 + textpointer DarkSlowbroName ; 0x1747 + textpointer ReelInName ; 0x1748 + textpointer ReelInDescription ; 0x1749 + textpointer FickleAttackName ; 0x174a + textpointer DarkSlowbroDescription ; 0x174b + textpointer GastlyName ; 0x174c + textpointer SleepingGasName ; 0x174d + textpointer MayInflictSleepAltDescription ; 0x174e + textpointer DestinyBondName ; 0x174f + textpointer DestinyBondDescription ; 0x1750 + textpointer GasName ; 0x1751 + textpointer GastlyLv8Description ; 0x1752 + textpointer SpookifyName ; 0x1753 + textpointer SpookifyDescription ; 0x1754 + textpointer FadeToBlackName ; 0x1755 + textpointer GastlyLv13Description ; 0x1756 + textpointer LickName ; 0x1757 + textpointer EnergyConversionName ; 0x1758 + textpointer EnergyConversionDescription ; 0x1759 + textpointer GastlyLv17Description ; 0x175a + textpointer HaunterName ; 0x175b + textpointer TransparencyName ; 0x175c + textpointer TransparencyDescription ; 0x175d + textpointer NightmareName ; 0x175e + textpointer HaunterSharedDescription1 ; 0x175f + textpointer DreamEaterName ; 0x1760 + textpointer DreamEaterDescription ; 0x1761 + textpointer EerieLightName ; 0x1762 + textpointer GrudgeName ; 0x1763 + textpointer GrudgeDescription ; 0x1764 + textpointer HaunterSharedDescription2 ; 0x1765 + textpointer PoltergeistName ; 0x1766 + textpointer PoltergeistDescription ; 0x1767 + textpointer BadDreamsName ; 0x1768 + textpointer BadDreamsDescription ; 0x1769 + textpointer DarkHaunterName ; 0x176a + textpointer BotherName ; 0x176b + textpointer BotherDescription ; 0x176c + textpointer DarkHaunterDescription ; 0x176d + textpointer GengarName ; 0x176e + textpointer CurseName ; 0x176f + textpointer CurseDescription ; 0x1770 + textpointer DarkMindName ; 0x1771 + textpointer ShadowName ; 0x1772 + textpointer GengarLv38Description ; 0x1773 + textpointer PowerOfDarknessName ; 0x1774 + textpointer PowerOfDarknessDescription ; 0x1775 + textpointer PsyHorrorName ; 0x1776 + textpointer GengarLv40Description ; 0x1777 + textpointer DarkGengarName ; 0x1778 + textpointer PlayTricksName ; 0x1779 + textpointer PlayTricksDescription ; 0x177a + textpointer PushAsideName ; 0x177b + textpointer PushAsideDescription ; 0x177c + textpointer DarkGengarDescription ; 0x177d + textpointer DrowzeeName ; 0x177e + textpointer LongDistanceHypnosisName ; 0x177f + textpointer LongDistanceHypnosisDescription ; 0x1780 + textpointer HypnosisCategoryName ; 0x1781 + textpointer DrowzeeLv10Description ; 0x1782 + textpointer DrowzeeLv12Description ; 0x1783 + textpointer HypnoName ; 0x1784 + textpointer PuppetMasterName ; 0x1785 + textpointer PuppetMasterDescription ; 0x1786 + textpointer HypnoLv30Description ; 0x1787 + textpointer ProphecyName ; 0x1788 + textpointer ProphecyDescription ; 0x1789 + textpointer HypnoLv36Description ; 0x178a + textpointer DarkHypnoName ; 0x178b + textpointer PsypunchName ; 0x178c + textpointer BenchManipulationName ; 0x178d + textpointer BenchManipulationDescription ; 0x178e + textpointer DarkHypnoDescription ; 0x178f + textpointer MrMimeName ; 0x1790 + textpointer DampeningShieldName ; 0x1791 + textpointer DampeningShieldDescription ; 0x1792 + textpointer JugglingName ; 0x1793 + textpointer JugglingDescription ; 0x1794 + textpointer BarrierName ; 0x1795 + textpointer MrMimeLv20Description ; 0x1796 + textpointer InvisibleWallName ; 0x1797 + textpointer InvisibleWallDescription ; 0x1798 + textpointer MeditateName ; 0x1799 + textpointer MeditateDescription ; 0x179a + textpointer MrMimeLv28Description ; 0x179b + textpointer JynxName ; 0x179c + textpointer IcePunchName ; 0x179d + textpointer ColdBreathName ; 0x179e + textpointer HumanShapeName ; 0x179f + textpointer JynxLv18Description ; 0x17a0 + textpointer JynxLv23Description ; 0x17a1 + textpointer JynxLv27Description ; 0x17a2 + textpointer MewtwoName ; 0x17a3 + textpointer EnergyControlDescription ; 0x17a4 + textpointer TelekinesisName ; 0x17a5 + textpointer TelekinesisDescription ; 0x17a6 + textpointer GeneticName ; 0x17a7 + textpointer MewtwoLv30Description ; 0x17a8 + textpointer BarrierDescription ; 0x17a9 + textpointer MewtwoLv53Description ; 0x17aa + textpointer PsycrushName ; 0x17ab + textpointer PsycrushDescription ; 0x17ac + textpointer MewtwoLv54Description ; 0x17ad + textpointer EnergyAbsorptionName ; 0x17ae + textpointer EnergyAbsorptionDescription ; 0x17af + textpointer PsyburnName ; 0x17b0 + textpointer MewtwoLv60Description ; 0x17b1 + textpointer CompleteRecoveryName ; 0x17b2 + textpointer CompleteRecoveryDescription ; 0x17b3 + textpointer PsychoBlastName ; 0x17b4 + textpointer PsychoBlastDescription ; 0x17b5 + textpointer MewtwoLv67Description ; 0x17b6 + textpointer GRsMewtwoName ; 0x17b7 + textpointer DarkWaveName ; 0x17b8 + textpointer DarkWaveDescription ; 0x17b9 + textpointer DarkAmplificationName ; 0x17ba + textpointer DarkAmplificationDescription ; 0x17bb + textpointer GRsMewtwoDescription ; 0x17bc + textpointer MewName ; 0x17bd + textpointer NeutralShieldName ; 0x17be + textpointer NeutralShieldDescription ; 0x17bf + textpointer NewSpeciesName ; 0x17c0 + textpointer MewLv8Description ; 0x17c1 + textpointer MysteryAttackName ; 0x17c2 + textpointer MysteryAttackDescription ; 0x17c3 + textpointer MewLv15Description ; 0x17c4 + textpointer PsywaveName ; 0x17c5 + textpointer PsywaveDescription ; 0x17c6 + textpointer DevolutionBeamName ; 0x17c7 + textpointer DevolutionBeamDescription ; 0x17c8 + textpointer MewLv23Description ; 0x17c9 + textpointer PidgeyName ; 0x17ca + textpointer TinyBirdName ; 0x17cb + textpointer PidgeyLv8Description ; 0x17cc + textpointer GustName ; 0x17cd + textpointer PidgeyLv10Description ; 0x17ce + textpointer PidgeottoName ; 0x17cf + textpointer MirrorMoveName ; 0x17d0 + textpointer MirrorMoveDescription ; 0x17d1 + textpointer BirdName ; 0x17d2 + textpointer PidgeottoLv36Description ; 0x17d3 + textpointer TwisterName ; 0x17d4 + textpointer TwisterDescription ; 0x17d5 + textpointer FlyAltDescription ; 0x17d6 + textpointer PidgeottoLv38Description ; 0x17d7 + textpointer PidgeotName ; 0x17d8 + textpointer SlicingWingName ; 0x17d9 + textpointer SlicingWingDescription ; 0x17da + textpointer GaleName ; 0x17db + textpointer GaleDescription ; 0x17dc + textpointer PidgeotLv38Description ; 0x17dd + textpointer HurricaneName ; 0x17de + textpointer HurricaneDescription ; 0x17df + textpointer PidgeotLv40Description ; 0x17e0 + textpointer RattataName ; 0x17e1 + textpointer RattataLv9Description ; 0x17e2 + textpointer TrickeryName ; 0x17e3 + textpointer TrickeryDescription ; 0x17e4 + textpointer RattataLv12Description ; 0x17e5 + textpointer RattataLv15Description ; 0x17e6 + textpointer RaticateName ; 0x17e7 + textpointer SuperFangName ; 0x17e8 + textpointer SuperFangDescription ; 0x17e9 + textpointer RaticateDescription ; 0x17ea + textpointer DarkRaticateName ; 0x17eb + textpointer HyperFangName ; 0x17ec + textpointer DarkRaticateDescription ; 0x17ed + textpointer SpearowName ; 0x17ee + textpointer SpearowLv9Description ; 0x17ef + textpointer FuryAttackName ; 0x17f0 + textpointer SpearowLv12Description ; 0x17f1 + textpointer SpearowLv13Description ; 0x17f2 + textpointer FearowName ; 0x17f3 + textpointer DrillDescentName ; 0x17f4 + textpointer BeakName ; 0x17f5 + textpointer FearowLv24Description ; 0x17f6 + textpointer DrillPeckName ; 0x17f7 + textpointer FearowLv27Description ; 0x17f8 + textpointer DarkFearowName ; 0x17f9 + textpointer FlyHighName ; 0x17fa + textpointer FlyHighDescription ; 0x17fb + textpointer DrillDiveName ; 0x17fc + textpointer DrillDiveDescription ; 0x17fd + textpointer DarkFearowDescription ; 0x17fe + textpointer ClefairyName ; 0x17ff + textpointer MetronomeName ; 0x1800 + textpointer MetronomeDescription ; 0x1801 + textpointer FairyName ; 0x1802 + textpointer ClefairyLv14Description ; 0x1803 + textpointer FollowMeName ; 0x1804 + textpointer ShiningFingersName ; 0x1805 + textpointer ClefairyLv15Description ; 0x1806 + textpointer ClefableName ; 0x1807 + textpointer MinimizeAltDescription ; 0x1808 + textpointer ClefableDescription ; 0x1809 + textpointer DarkClefableName ; 0x180a + textpointer DarknessVeilName ; 0x180b + textpointer DarknessVeiDescription ; 0x180c + textpointer DarkSongName ; 0x180d + textpointer DarkSongDescription ; 0x180e + textpointer DarkClefableDescription ; 0x180f + textpointer JigglypuffName ; 0x1810 + textpointer DoubleEdgeName ; 0x1811 + textpointer BalloonName ; 0x1812 + textpointer JigglypuffLv12Description ; 0x1813 + textpointer FriendshipSongName ; 0x1814 + textpointer FriendshipSongDescription ; 0x1815 + textpointer ExpandName ; 0x1816 + textpointer ExpandDescription ; 0x1817 + textpointer JigglypuffLv13Description ; 0x1818 + textpointer LullabyName ; 0x1819 + textpointer JigglypuffLv14Description ; 0x181a + textpointer WigglytuffName ; 0x181b + textpointer DoTheWaveName ; 0x181c + textpointer DoTheWaveDescription ; 0x181d + textpointer WigglytuffLv36Description ; 0x181e + textpointer HelpingHandName ; 0x181f + textpointer HelpingHandDescription ; 0x1820 + textpointer ExpandAltDescription ; 0x1821 + textpointer WigglytuffLv40Description ; 0x1822 + textpointer MeowthName ; 0x1823 + textpointer CoinHurlName ; 0x1824 + textpointer CoinHurlDescription ; 0x1825 + textpointer ScratchCatName ; 0x1826 + textpointer MeowthLv10Description ; 0x1827 + textpointer CatPunchName ; 0x1828 + textpointer CatPunchDescription ; 0x1829 + textpointer MeowthLv13Description ; 0x182a + textpointer ClearProfitName ; 0x182b + textpointer ClearProfitDescription ; 0x182c + textpointer MeowthLv14Description ; 0x182d + textpointer PayDayName ; 0x182e + textpointer PayDayDescription ; 0x182f + textpointer MeowthLv15Description ; 0x1830 + textpointer MeowthLv17Description ; 0x1831 + textpointer PersianName ; 0x1832 + textpointer PounceName ; 0x1833 + textpointer PounceDescription ; 0x1834 + textpointer ClassyCatName ; 0x1835 + textpointer PersianDescription ; 0x1836 + textpointer DarkPersianName ; 0x1837 + textpointer FascinateName ; 0x1838 + textpointer FascinateDescription ; 0x1839 + textpointer PoisonClawsName ; 0x183a + textpointer DarkPersianDescription ; 0x183b + textpointer FarfetchdName ; 0x183c + textpointer LeekSlapName ; 0x183d + textpointer LeekSlapDescription ; 0x183e + textpointer PotSmashName ; 0x183f + textpointer WildDuckName ; 0x1840 + textpointer FarfetchdLv20Description ; 0x1841 + textpointer LeekSlapAltDescription ; 0x1842 + textpointer FarfetchdAltDescription ; 0x1843 + textpointer DoduoName ; 0x1844 + textpointer GrowlAltDescription2 ; 0x1845 + textpointer TwinBirdName ; 0x1846 + textpointer DoduoLv8Description ; 0x1847 + textpointer DoduoLv10Description ; 0x1848 + textpointer DodrioName ; 0x1849 + textpointer TriAttackName ; 0x184a + textpointer TripleBirdName ; 0x184b + textpointer DodrioLv25Description ; 0x184c + textpointer RetreatAidName ; 0x184d + textpointer RetreatAidDescription ; 0x184e + textpointer DodrioLv28Description ; 0x184f + textpointer LickitungName ; 0x1850 + textpointer LickAltName ; 0x1851 + textpointer LickingName ; 0x1852 + textpointer LickitungLv20Description ; 0x1853 + textpointer TongueWrapName ; 0x1854 + textpointer LickitungLv26Description ; 0x1855 + textpointer ChanseyName ; 0x1856 + textpointer DoubleSlapAltName ; 0x1857 + textpointer ChanseyLv40Description ; 0x1858 + textpointer ScrunchName ; 0x1859 + textpointer Do80DamageToSelfDescription ; 0x185a + textpointer ChanseyLv55Description ; 0x185b + textpointer KangaskhanName ; 0x185c + textpointer TailDropName ; 0x185d + textpointer ParentName ; 0x185e + textpointer KangaskhanLv36Description ; 0x185f + textpointer DizzyPunchName ; 0x1860 + textpointer KangaskhanLv38Description ; 0x1861 + textpointer FetchName ; 0x1862 + textpointer FetchDescription ; 0x1863 + textpointer CometPunchName ; 0x1864 + textpointer KangaskhanLv40Description ; 0x1865 + textpointer TaurosName ; 0x1866 + textpointer RampageName ; 0x1867 + textpointer RampageDescription ; 0x1868 + textpointer WildBullName ; 0x1869 + textpointer TaurosLv32Description ; 0x186a + textpointer KickingAndStampingName ; 0x186b + textpointer KickingAndStampingDescription ; 0x186c + textpointer TaurosLv35Description ; 0x186d + textpointer DittoName ; 0x186e + textpointer MorphName ; 0x186f + textpointer MorphDescription ; 0x1870 + textpointer MorphDescriptionCont ; 0x1871 + textpointer TransformName ; 0x1872 + textpointer DittoDescription ; 0x1873 + textpointer EvolutionName ; 0x1874 + textpointer EeveeLv5Description ; 0x1875 + textpointer SandAttackDescription ; 0x1876 + textpointer EeveeLv9Description ; 0x1877 + textpointer EeveeLv12Description ; 0x1878 + textpointer PorygonName ; 0x1879 + textpointer Conversion1Name ; 0x187a + textpointer Conversion1Description ; 0x187b + textpointer Conversion2Name ; 0x187c + textpointer Conversion2Description ; 0x187d + textpointer VirtualName ; 0x187e + textpointer PorygonLv12Description ; 0x187f + textpointer Porygon3DAttackName ; 0x1880 + textpointer Porygon3DAttack10DamageDescription ; 0x1881 + textpointer PorygonSharedDescription ; 0x1882 + textpointer Conversion1AltDescription ; 0x1883 + textpointer PorygonLv20Description ; 0x1884 + textpointer CoolPorygonName ; 0x1885 + textpointer TextureMagicName ; 0x1886 + textpointer TextureMagicDescription ; 0x1887 + textpointer Porygon3DAttack20DamageDescription ; 0x1888 + textpointer SnorlaxName ; 0x1889 + textpointer ThickSkinnedName ; 0x188a + textpointer ThickSkinnedDescription ; 0x188b + textpointer SleepingName ; 0x188c + textpointer SnorlaxLv20Description ; 0x188d + textpointer GuardName ; 0x188e + textpointer GuardDescription ; 0x188f + textpointer RollOverName ; 0x1890 + textpointer RollOverDescription ; 0x1891 + textpointer SnorlaxLv35Description ; 0x1892 + textpointer HungrySnorlaxName ; 0x1893 + textpointer EatName ; 0x1894 + textpointer EatDescription ; 0x1895 + textpointer RolloutDescription ; 0x1896 + textpointer HungrySnorlaxDescription ; 0x1897 + textpointer DratiniName ; 0x1898 + textpointer DratiniLv10Description ; 0x1899 + textpointer DratiniLv12Description ; 0x189a + textpointer DragonairName ; 0x189b + textpointer SlamName ; 0x189c + textpointer DragonairDescription ; 0x189d + textpointer DarkDragonairName ; 0x189e + textpointer EvolutionaryLightName ; 0x189f + textpointer EvolutionaryLightDescription ; 0x18a0 + textpointer TailStrikeName ; 0x18a1 + textpointer DarkDragonairDescription ; 0x18a2 + textpointer DragoniteName ; 0x18a3 + textpointer HealingWindName ; 0x18a4 + textpointer HealingWindDescription ; 0x18a5 + textpointer DragoniteLv41Description ; 0x18a6 + textpointer SpecialDeliveryName ; 0x18a7 + textpointer SpecialDeliveryDescription ; 0x18a8 + textpointer SupersonicFlightName ; 0x18a9 + textpointer DragoniteSharedDescription ; 0x18aa + textpointer StepInName ; 0x18ab + textpointer StepInDescription ; 0x18ac + textpointer SlamDescription ; 0x18ad + textpointer DarkDragoniteName ; 0x18ae + textpointer SummonMinionsName ; 0x18af + textpointer SummonMinionsDescription ; 0x18b0 + textpointer GiantTailName ; 0x18b1 + textpointer DarkDragoniteDescription ; 0x18b2 + textpointer TogepiName ; 0x18b3 + textpointer SnivelAltDescription ; 0x18b4 + textpointer MetronomeCoinTossDescription ; 0x18b5 + textpointer SpikeBallName ; 0x18b6 + textpointer TogepiDescription ; 0x18b7 + textpointer LugiaName ; 0x18b8 + textpointer AeroblastName ; 0x18b9 + textpointer AeroblastDescription ; 0x18ba + textpointer DivingName ; 0x18bb + textpointer LugiaDescription ; 0x18bc + textpointer SuperPotionName ; 0x18bd + textpointer SuperPotionDescription ; 0x18be + textpointer ImakuniCardName ; 0x18bf + textpointer ImakuniCardDescription ; 0x18c0 + textpointer EnergyRemovalName ; 0x18c1 + textpointer EnergyRemovalDescription ; 0x18c2 + textpointer EnergyRetrievalName ; 0x18c3 + textpointer EnergyRetrievalDescription ; 0x18c4 + textpointer EnergySearchName ; 0x18c5 + textpointer EnergySearchDescription ; 0x18c6 + textpointer ProfessorOakName ; 0x18c7 + textpointer ProfessorOakDescription ; 0x18c8 + textpointer FossilExcavationName ; 0x18c9 + textpointer FossilExcavationDescription ; 0x18ca + textpointer PotionName ; 0x18cb + textpointer PotionDescription ; 0x18cc + textpointer GamblerName ; 0x18cd + textpointer GamblerDescription ; 0x18ce + textpointer ReviveName ; 0x18cf + textpointer ReviveDescription ; 0x18d0 + textpointer MaxReviveName ; 0x18d1 + textpointer MaxReviveDescription ; 0x18d2 + textpointer MaxReviveDescriptionCont ; 0x18d3 + textpointer SuperScoopUpName ; 0x18d4 + textpointer SuperScoopUpDescription ; 0x18d5 + textpointer DevolutionSprayName ; 0x18d6 + textpointer DevolutionSprayDescription ; 0x18d7 + textpointer ItemFinderName ; 0x18d8 + textpointer ItemFinderDescription ; 0x18d9 + textpointer ChallengeName ; 0x18da + textpointer ChallengeDescription ; 0x18db + textpointer ChallengeDescriptionCont ; 0x18dc + textpointer SuperEnergyRetrievalName ; 0x18dd + textpointer SuperEnergyRetrievalDescription ; 0x18de + textpointer SuperEnergyRemovalName ; 0x18df + textpointer SuperEnergyRemovalDescription ; 0x18e0 + textpointer MoonStoneName ; 0x18e1 + textpointer MoonStoneDescription ; 0x18e2 + textpointer DefenderName ; 0x18e3 + textpointer DefenderDescription ; 0x18e4 + textpointer GustOfWindName ; 0x18e5 + textpointer GustOfWindDescription ; 0x18e6 + textpointer MysteriousFossilDescription ; 0x18e7 + textpointer MysteriousFossilDescriptionCont ; 0x18e8 + textpointer FullHealName ; 0x18e9 + textpointer FullHealDescription ; 0x18ea + textpointer ImposterOaksRevengeName ; 0x18eb + textpointer ImposterOaksRevengeDescription ; 0x18ec + textpointer ImposterProfessorOakName ; 0x18ed + textpointer ImposterProfessorOakDescription ; 0x18ee + textpointer SleepName ; 0x18ef + textpointer SleepDescription ; 0x18f0 + textpointer ComputerErrorName ; 0x18f1 + textpointer ComputerErrorDescription ; 0x18f2 + textpointer ComputerSearchName ; 0x18f3 + textpointer ComputerSearchDescription ; 0x18f4 + textpointer DiggerName ; 0x18f5 + textpointer DiggerDescription ; 0x18f6 + textpointer ClefairyDollName ; 0x18f7 + textpointer ClefairyDollDescription ; 0x18f8 + textpointer ClefairyDollDescriptionCont ; 0x18f9 + textpointer MrFujiName ; 0x18fa + textpointer MrFujiDescription ; 0x18fb + textpointer PlusPowerName ; 0x18fc + textpointer PlusPowerDescription ; 0x18fd + textpointer SwitchName ; 0x18fe + textpointer SwitchDescription ; 0x18ff + textpointer ScoopUpName ; 0x1900 + textpointer ScoopUpDescription ; 0x1901 + textpointer PokemonTraderName ; 0x1902 + textpointer PokemonTraderDescription ; 0x1903 + textpointer PokemonTraderDescriptionCont ; 0x1904 + textpointer PokemonRecallName ; 0x1905 + textpointer PokemonRecallDescription ; 0x1906 + textpointer PokedexName ; 0x1907 + textpointer PokedexDescription ; 0x1908 + textpointer PokemonCenterName ; 0x1909 + textpointer PokemonCenterDescription ; 0x190a + textpointer PokemonBreederName ; 0x190b + textpointer PokemonBreederDescription ; 0x190c + textpointer PokemonFluteName ; 0x190d + textpointer PokemonFluteDescription ; 0x190e + textpointer TheBosssWayName ; 0x190f + textpointer TheBosssWayDescription ; 0x1910 + textpointer GoopGasAttackName ; 0x1911 + textpointer GoopGasAttackDescription ; 0x1912 + textpointer BillName ; 0x1913 + textpointer BillDescription ; 0x1914 + textpointer BillsTeleporterName ; 0x1915 + textpointer BillsTeleporterDescription ; 0x1916 + textpointer BillsComputerName ; 0x1917 + textpointer BillsComputerDescription ; 0x1918 + textpointer BillsComputerDescriptionCont ; 0x1919 + textpointer MasterBallName ; 0x191a + textpointer MasterBallDescription ; 0x191b + textpointer LassName ; 0x191c + textpointer LassDescription ; 0x191d + textpointer MaintenanceName ; 0x191e + textpointer MaintenanceDescription ; 0x191f + textpointer PokeballName ; 0x1920 + textpointer PokeballDescription ; 0x1921 + textpointer NightlyGarbageRunName ; 0x1922 + textpointer NightlyGarbageRunDescription ; 0x1923 + textpointer RecycleName ; 0x1924 + textpointer RecycleDescription ; 0x1925 + textpointer RocketsSneakAttackName ; 0x1926 + textpointer RocketsSneakAttackDescription ; 0x1927 + textpointer HereComesTeamRocketName ; 0x1928 + textpointer HereComesTeamRocketDescription ; 0x1929 + textpointer TheRocketsTrapName ; 0x192a + textpointer TheRocketsTrapDescription ; 0x192b diff --git a/src/wram.asm b/src/wram.asm index df4dd82..87fc291 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -1189,7 +1189,7 @@ wCurGigashockItem:: ; cdf8 ; to be used by Metronome. wMetronomeSelectedAttack:: ; cdf9 ds $2 - + wBackupPlayerAreaHP:: ; cdfb ds MAX_PLAY_AREA_POKEMON @@ -2285,6 +2285,9 @@ wd554:: ; d554 wCurrentNPCDuelistData:: ; d555 ds NPC_DUELIST_STRUCT_SIZE +; TODO: is this really union? +UNION + wd561:: ; d561 ds $1 @@ -2297,11 +2300,21 @@ wd563:: ; d563 wd565:: ; d565 ds $1 - ds $f +NEXTU + +wNumBlackBoxInputPkmnPerType:: ; d561 + ds NUM_PKMN_TYPES + +ENDU + + ds $d wFilteredListPtr:: ; d575 ds $2 +; TODO: is this really union? +UNION + wRemainingIntroCards:: ; d577 ds $1 @@ -2314,15 +2327,34 @@ wd579:: ; d579 wIntroCardsRepeatsAllowed:: ; d57b ds $1 -wd57c:: ; d57c +NEXTU + +wBlackBoxOutputCountCircle:: ; d577 + ds $1 + +wBlackBoxOutputCountDiamond:: ; d578 + ds $1 + +wBlackBoxOutputCountStar:: ; d579 + ds $1 + ds $2 -wd57e:: ; d57e +wTempBlackBoxInputEvoLine:: ; d57c + +wTempBlackBoxInputBasic:: ; d57c ds $2 -wd580:: ; d580 +wTempBlackBoxInputStage1:: ; d57e ds $2 +wTempBlackBoxInputStage2:: ; d580 + ds $2 + +wTempBlackBoxInputEvoLineEnd:: ; d582 + +ENDU + wd582:: ; d582 ds $1 @@ -2418,6 +2450,8 @@ wEventVars:: ; d59e wGeneralVars:: ; d5d2 ds GENERAL_VAR_BYTES +; various temp flags +; e.g. blackbox input type flags, evo stage flags, etc. wd606:: ; d606 ds wD606_STRUCT_SIZE @@ -3373,7 +3407,7 @@ wMailOptionSelected:: ; dd5e ; card offsets. the cards mailed to you after using the Game Center black box wBlackBoxCardReceived:: ; dd5f - ds BLACK_BOX_CARDS_BUFFER_SIZE + ds BLACK_BOX_OUTPUT_BYTES ; card offset. the card mailed to you after using the Game Center Bill's PC wBillsPCCardReceived:: ; dd73 @@ -3539,7 +3573,8 @@ w2d28e:: ; d28e w2d38e:: ; d38e ds $80 - ds $180 +wAutoDecks:: ; d40e + ds DECK_COMPRESSED_STRUCT_SIZE * NUM_AUTO_DECK_MACHINE_SLOTS w2d58e:: ; d58e ds $80 diff --git a/tools/constants.py b/tools/constants.py index 738b10e..876a625 100644 --- a/tools/constants.py +++ b/tools/constants.py @@ -2972,17 +2972,17 @@ vars = [ "VAR_0D", "VAR_0E", "VAR_0F", - "VAR_10", - "VAR_11", - "VAR_12", - "VAR_13", - "VAR_14", - "VAR_15", - "VAR_16", - "VAR_17", - "VAR_18", - "VAR_19", - "VAR_1A", + "VAR_GRANDMASTERCUP_PRIZE_INDEX_0", + "VAR_GRANDMASTERCUP_PRIZE_INDEX_1", + "VAR_GRANDMASTERCUP_PRIZE_INDEX_2", + "VAR_GRANDMASTERCUP_PRIZE_INDEX_3", + "VAR_GRANDMASTERCUP_OPPONENT_DECK_0", + "VAR_GRANDMASTERCUP_OPPONENT_DECK_1", + "VAR_GRANDMASTERCUP_OPPONENT_DECK_2", + "VAR_GRANDMASTERCUP_OPPONENT_DECK_3", + "VAR_GRANDMASTERCUP_OPPONENT_DECK_4", + "VAR_GRANDMASTERCUP_OPPONENT_DECK_5", + "VAR_GRANDMASTERCUP_OPPONENT_DECK_6", "VAR_1B", "VAR_1C", "VAR_1D", @@ -2997,7 +2997,7 @@ vars = [ "VAR_26", "VAR_27", "VAR_28", - "VAR_29", + "VAR_TCG_CHALLENGE_CUP_PRIZE_INDEX", "VAR_2A", "VAR_2B", "VAR_2C", @@ -3005,7 +3005,7 @@ vars = [ "VAR_2E", "VAR_2F", "VAR_30", - "VAR_31", + "VAR_GR_CHALLENGE_CUP_PRIZE_INDEX", "VAR_32", "VAR_33", "VAR_34", diff --git a/tools/tcg2disasm.py b/tools/tcg2disasm.py index 88102e8..313b115 100644 --- a/tools/tcg2disasm.py +++ b/tools/tcg2disasm.py @@ -1198,7 +1198,8 @@ class Disassembler(object): opcode_arg_3 = rom[offset+3] if opcode_nargs == 0: - # handle cp16 + # handle cp16* + # cp16 card_id if opcode_byte == 0x7a \ and rom[offset+1] == 0xfe \ and rom[offset+3] == 0x20 and rom[offset+4] == 0x03 \ @@ -1207,6 +1208,61 @@ class Disassembler(object): card_id = (rom[offset+2] << 8) + rom[offset+7] opcode_output_str = "cp16 " + cards[card_id] opcode_nargs = 7 + # cp16 bc + elif opcode_byte == 0x7a \ + and rom[offset+1] == 0xb8 \ + and rom[offset+2] == 0x20 and rom[offset+3] == 0x02 \ + and rom[offset+4] == 0x7b \ + and rom[offset+5] == 0xb9: + opcode_output_str = "cp16 bc" + opcode_nargs = 5 + # cp16_long + elif opcode_byte == 0x7a \ + and rom[offset+1] == 0xfe \ + and rom[offset+3] == 0x38 and rom[offset+4] == 0x05 \ + and rom[offset+5] == 0x20 and rom[offset+6] == 0x03 \ + and rom[offset+7] == 0x7b \ + and rom[offset+8] == 0xfe: + cp16val = (rom[offset+2] << 8) + rom[offset+9] + opcode_output_str = "cp16_long ${:x}".format(cp16val) + opcode_nargs = 9 + # cp16_long bc + elif opcode_byte == 0x7a \ + and rom[offset+1] == 0xb8 \ + and rom[offset+2] == 0x38 and rom[offset+3] == 0x04 \ + and rom[offset+4] == 0x20 and rom[offset+5] == 0x02 \ + and rom[offset+6] == 0x7b \ + and rom[offset+7] == 0xb9: + opcode_output_str = "cp16_long bc" + opcode_nargs = 7 + # cp16bc_long + elif opcode_byte == 0x78 \ + and rom[offset+1] == 0xb8 \ + and rom[offset+3] == 0x38 and rom[offset+4] == 0x05 \ + and rom[offset+5] == 0x20 and rom[offset+6] == 0x03 \ + and rom[offset+7] == 0x79 \ + and rom[offset+8] == 0xfe: + cp16val = (rom[offset+2] << 8) + rom[offset+9] + opcode_output_str = "cp16bc_long ${:x}".format(cp16val) + opcode_nargs = 9 + # cp16bc_long de + elif opcode_byte == 0x78 \ + and rom[offset+1] == 0xba \ + and rom[offset+2] == 0x38 and rom[offset+3] == 0x04 \ + and rom[offset+4] == 0x20 and rom[offset+5] == 0x02 \ + and rom[offset+6] == 0x79 \ + and rom[offset+7] == 0xbb: + opcode_output_str = "cp16bc_long de" + opcode_nargs = 7 + # cp16bc_long hl + elif opcode_byte == 0x78 \ + and rom[offset+1] == 0xbc \ + and rom[offset+2] == 0x38 and rom[offset+3] == 0x04 \ + and rom[offset+4] == 0x20 and rom[offset+5] == 0x02 \ + and rom[offset+6] == 0x79 \ + and rom[offset+7] == 0xbd: + opcode_output_str = "cp16bc_long hl" + opcode_nargs = 7 # handle cphl elif opcode_byte == 0x23 \ and rom[offset+1] == 0x3a \ @@ -1217,6 +1273,28 @@ class Disassembler(object): card_id = (rom[offset+3] << 8) + rom[offset+8] opcode_output_str = "cphl " + cards[card_id] opcode_nargs = 8 + # handle add_*_a + # add_hl_a + elif opcode_byte == 0x85 \ + and rom[offset+1] == 0x6f \ + and rom[offset+2] == 0x30 and rom[offset+3] == 0x01 \ + and rom[offset+4] == 0x24: + opcode_output_str = "add_hl_a" + opcode_nargs = 4 + # add_de_a + elif opcode_byte == 0x83 \ + and rom[offset+1] == 0x5f \ + and rom[offset+2] == 0x30 and rom[offset+3] == 0x01 \ + and rom[offset+4] == 0x14: + opcode_output_str = "add_de_a" + opcode_nargs = 4 + # add_at_hl_a + elif opcode_byte == 0x86 \ + and rom[offset+1] == 0x22 \ + and rom[offset+2] == 0x30 and rom[offset+3] == 0x01 \ + and rom[offset+4] == 0x34: + opcode_output_str = "add_at_hl_a" + opcode_nargs = 4 else: # set output string simply as the opcode opcode_output_str = opcode_str