diff options
86 files changed, 3241 insertions, 3157 deletions
diff --git a/constants.asm b/constants.asm index 988c8b336..0d5e3cc87 100644 --- a/constants.asm +++ b/constants.asm @@ -29,6 +29,7 @@ INCLUDE "constants/misc_constants.asm" INCLUDE "constants/std_constants.asm" INCLUDE "constants/deco_constants.asm" INCLUDE "constants/radio_constants.asm" +INCLUDE "constants/npctrade_constants.asm" INCLUDE "constants/sprite_constants.asm" INCLUDE "constants/tileset_constants.asm" INCLUDE "constants/cgb_constants.asm" diff --git a/constants/deco_constants.asm b/constants/deco_constants.asm index 540920e5c..433b11e25 100644 --- a/constants/deco_constants.asm +++ b/constants/deco_constants.asm @@ -59,7 +59,7 @@ deco: MACRO enum DECOFLAG_\1 endm -; decorations +; decorations (see data/decoration_attribute.asm) const_value = 1 __enum__ = 0 const BEDS diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 443176f1f..996023e73 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -197,6 +197,7 @@ const MIRAGE_MAIL ; $BD const ITEM_BE ; $BE +; see data/tmhm_moves.asm for moves add_tm DYNAMICPUNCH ; $BF add_tm HEADBUTT ; $C0 add_tm CURSE ; $C1 diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm index f9c840595..e53d44d04 100644 --- a/constants/landmark_constants.asm +++ b/constants/landmark_constants.asm @@ -1,4 +1,4 @@ -; Landmarks indexes (see engine/landmarks.asm) +; Landmarks indexes (see data/landmarks.asm) const_def ; Johto landmarks diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 8e04c5782..a9b923deb 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -603,7 +603,7 @@ SLIDING EQU 3 EMOTE_OBJECT EQU 7 -; SpawnPoints indexes (see engine/spawn_points.asm) +; SpawnPoints indexes (see data/spawn_points.asm) const_value = -1 const SPAWN_N_A const SPAWN_HOME @@ -679,7 +679,7 @@ NUM_SPAWNS EQU const_value const EMOTE_GRASS_RUSTLE ; 11 EMOTE_MEM EQU -1 -; FruitTreeItems indexes (see engine/fruit_trees.asm) +; FruitTreeItems indexes (see data/fruit_tree_items.asm) const_value SET 1 const FRUITTREE_ROUTE_29 ; 01 const FRUITTREE_ROUTE_30_1 ; 02 diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index ff416e3cd..7510fdf50 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -25,6 +25,7 @@ PKMN_NAME_LENGTH EQU 11 MOVE_NAME_LENGTH EQU 13 ITEM_NAME_LENGTH EQU 13 TRAINER_CLASS_NAME_LENGTH EQU 13 +NAME_LENGTH_JAPANESE EQU 6 ; GetName types (see home.asm) PKMN_NAME EQU 1 @@ -82,7 +83,12 @@ HOF_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminato NUM_HOF_TEAMS = 30 -; ChangeHappiness arguments (see event/happiness_egg.asm) +; significant money values +START_MONEY EQU 3000 +MOM_MONEY EQU 2300 + + +; ChangeHappiness arguments (see data/happiness_changes.asm) const_value = 1 const HAPPINESS_GAINLEVEL ; 01 const HAPPINESS_USEDITEM ; 02 diff --git a/constants/npctrade_constants.asm b/constants/npctrade_constants.asm new file mode 100644 index 000000000..2da4abd64 --- /dev/null +++ b/constants/npctrade_constants.asm @@ -0,0 +1,21 @@ +; npctrade struct members (see data/npc_trades.asm) +TRADE_DIALOG EQU 0 +TRADE_GIVEMON EQU 1 +TRADE_GETMON EQU 2 +TRADE_NICK EQU 3 +TRADE_DVS EQU 14 +TRADE_ITEM EQU 16 +TRADE_OT_ID EQU 17 +TRADE_OT_NAME EQU 19 +TRADE_GENDER EQU 30 +TRADE_PADDING EQU 31 + +; NPCTrades indexes (see data/npc_trades.asm) + const_def + const NPCTRADE_MIKE ; 0 + const NPCTRADE_KYLE ; 1 + const NPCTRADE_TIM ; 2 + const NPCTRADE_EMY ; 3 + const NPCTRADE_CHRIS ; 4 + const NPCTRADE_KIM ; 5 + const NPCTRADE_FOREST ; 6 diff --git a/constants/phone_constants.asm b/constants/phone_constants.asm index fe602a413..b2312ab4b 100644 --- a/constants/phone_constants.asm +++ b/constants/phone_constants.asm @@ -1,4 +1,4 @@ -; PhoneContacts indexes (see engine/phone.asm) +; PhoneContacts indexes (see data/phone_contacts.asm) const_def const PHONE_00 const PHONE_MOM @@ -39,7 +39,7 @@ const PHONE_PICNICKER_ERIN const PHONE_BUENA -; SpecialPhoneCallList indexes (see engine/phone.asm) +; SpecialPhoneCallList indexes (see data/phone_special.asm) const_def const SPECIALCALL_NONE const SPECIALCALL_POKERUS diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index fb713507f..743325ea3 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -14,7 +14,7 @@ ; - PicPointers (see gfx/pics/pic_pointers.asm) ; - AlphabeticalPokedexOrder (see data/pokedex/order_alpha.asm) ; - NewPokedexOrder (see data/pokedex/order_new.asm) -; - MonMenuIcons (see menu/mon_icons.asm) +; - MonMenuIcons (see data/mon_menu_icons.asm) ; - Pokered_MonIndices (see engine/time_capsule/conversion.asm) ; - SortedPokemon (see misc/fixed_words.asm) const_value set 1 diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm index c7cf9dccb..08d5bdbd8 100644 --- a/constants/pokemon_data_constants.asm +++ b/constants/pokemon_data_constants.asm @@ -27,8 +27,9 @@ const_value SET 1 const NO_EGGS ; f -; IconPointers indexes (see menu/mon_icons.asm) -const_value SET 1 +; IconPointers indexes (see gfx/icon_pointers.asm) + const_def + const ICON_NULL const ICON_POLIWAG const ICON_JIGGLYPUFF const ICON_DIGLETT @@ -94,6 +95,8 @@ const_value SET 1 BASE_HAPPINESS EQU 70 FRIEND_BALL_HAPPINESS EQU 200 HAPPINESS_TO_EVOLVE EQU 220 +HAPPINESS_THRESHOLD_1 EQU 100 +HAPPINESS_THRESHOLD_2 EQU 200 NUM_GRASSMON EQU 7 ; data/wild/*_grass.asm table size diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 787e130f4..d2416c0fe 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -105,7 +105,7 @@ const SPRITE_RAIKOU ; 65 const SPRITE_STANDING_YOUNGSTER ; 66 -; SpriteMons indexes (see engine/overworld.asm) +; SpriteMons indexes (see data/sprite_mons.asm) const_value SET $80 SPRITE_POKEMON EQU const_value const SPRITE_UNOWN ; 80 @@ -326,7 +326,7 @@ SPRITEMOVEDATA_FIELDS EQU 6 const PERSON_ACTION_GRASS_SHAKE const PERSON_ACTION_SKYFALL -; Facings indexes (see engine/facings.asm) +; Facings indexes (see data/facings.asm) const_def const FACING_STEP_DOWN_0 const FACING_STEP_DOWN_1 @@ -487,7 +487,7 @@ SPRITEMOVEDATA_FIELDS EQU 6 const SPRITE_ANIM_SEQ_INTRO_UNOWN_F const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY -; SpriteAnimSeqData indexes (see engine/sprites.asm) +; SpriteAnimSeqData indexes (see data/sprite_anim_seqs.asm) const_def const SPRITE_ANIM_INDEX_PARTY_MON const SPRITE_ANIM_INDEX_01 diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index ade157165..a1047fc53 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -7,27 +7,38 @@ const WILDMON ; 4 ; Options: (bits) ; cfcc -const_value SET 5 - const STEREO ; 5 - const BATTLE_SHIFT ; 6 - const BATTLE_SCENE ; 7 - -; Options: (bits 0-2 values) ; cfcc -FAST_TEXT EQU 0 -MED_TEXT EQU 1 -SLOW_TEXT EQU 2 -NO_TEXT_SCROLL EQU 4 +const_value SET 4 + const NO_TEXT_SCROLL ; 4 + const STEREO ; 5 + const BATTLE_SHIFT ; 6 + const BATTLE_SCENE ; 7 + +; Options: (bits 0-2) +TEXT_DELAY_FAST EQU 1 +TEXT_DELAY_MED EQU 3 +TEXT_DELAY_SLOW EQU 5 + +; TextBoxFrame: ; cfce + const_def + const FRAME_1 ; 0 + const FRAME_2 ; 1 + const FRAME_3 ; 2 + const FRAME_4 ; 3 + const FRAME_5 ; 4 + const FRAME_6 ; 5 + const FRAME_7 ; 6 + const FRAME_8 ; 7 ; Options2: const_def const MENU_ACCOUNT ; 0 ; GBPrinter: -PRINT_LIGHTEST EQU $00 -PRINT_LIGHTER EQU $20 -PRINT_NORMAL EQU $40 -PRINT_DARKER EQU $60 -PRINT_DARKEST EQU $7f +GBPRINTER_LIGHTEST EQU $00 +GBPRINTER_LIGHTER EQU $20 +GBPRINTER_NORMAL EQU $40 +GBPRINTER_DARKER EQU $60 +GBPRINTER_DARKEST EQU $7f ; WalkingDirection: ; d043 const_value SET -1 diff --git a/data/battle_tower.asm b/data/battle_tower.asm index 8997a53b8..2c78ffb82 100644 --- a/data/battle_tower.asm +++ b/data/battle_tower.asm @@ -1,212 +1,3 @@ -Function_LoadOpponentTrainerAndPokemons: ; 1f8000 - ld a, [rSVBK] - push af - ld a, BANK(BT_OTTrainer) - ld [rSVBK], a - - ; Fill BT_OTTrainer with zeros - xor a - ld hl, BT_OTTrainer - ld bc, BT_OTTrainerEnd - BT_OTTrainer - call ByteFill - - ; Write $ff into the Item-Slots - ld a, $ff - ld [BT_OTPkmn1Item], a - ld [BT_OTPkmn2Item], a - ld [BT_OTPkmn3Item], a - - ; Set BT_OTTrainer as start address to write the following data to - ld de, BT_OTTrainer - - ld a, [hRandomAdd] - ld b, a -.resample ; loop to find a random trainer - call Random - ld a, [hRandomAdd] - add b - ld b, a ; b contains the nr of the trainer -IF DEF(CRYSTAL11) - and (1 << 7) - 1 - cp 70 -ELSE - and (1 << 5) - 1 - cp 21 -ENDC - jr nc, .resample - ld b, a - - ld a, BANK(sBTTrainers) - call GetSRAMBank - - ld c, BATTLETOWER_NROFTRAINERS - ld hl, sBTTrainers -.next_trainer - ld a, [hli] - cp b - jr z, .resample - dec c - jr nz, .next_trainer ; c <= 7 initialise all 7 trainers? - - ld hl, sBTTrainers - ld a, [sNrOfBeatenBattleTowerTrainers] - ld c, a - ld a, b - ld b, 0 - add hl, bc - ld [hl], a - - call CloseSRAM - - push af -; Copy name (10 bytes) and class (1 byte) of trainer - ld hl, BattleTowerTrainers - ld bc, NAME_LENGTH - call AddNTimes - ld bc, NAME_LENGTH - call CopyBytes - - call Function_LoadRandomBattleTowerPkmn - pop af - - ld hl, BattleTowerTrainerData - ld bc, BATTLETOWER_TRAINERDATALENGTH - call AddNTimes - ld bc, BATTLETOWER_TRAINERDATALENGTH -.copy_bt_trainer_data_loop - ld a, BANK(BattleTowerTrainerData) - call GetFarByte - ld [de], a - inc hl - inc de - dec bc - ld a, b - or c - jr nz, .copy_bt_trainer_data_loop - - pop af - ld [rSVBK], a - - ret - - -Function_LoadRandomBattleTowerPkmn: ; 1f8081 - ld c, BATTLETOWER_NROFPKMNS -.loop - push bc - ld a, BANK(sBTPkmnPrevTrainer1) - call GetSRAMBank - -.FindARandomBattleTowerPkmn: - ; From Which LevelGroup are the Pkmn loaded - ; a = 1..10 - ld a, [wBTChoiceOfLvlGroup] ; [$d800] - dec a - ld hl, BattleTowerMons - ld bc, BattleTowerMons2 - BattleTowerMons1 - call AddNTimes - - ld a, [hRandomAdd] - ld b, a -.resample - call Random - ld a, [hRandomAdd] - add b - ld b, a - and $1f - cp BATTLETOWER_NRMONSPERLEVELBRACKET - jr nc, .resample - ; in register 'a' is the chosen Pkmn of the LevelGroup - - ; Check if Pkmn was already loaded before - ; Check current and the 2 previous teams - ; includes check if item is double at the current team - ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH - call AddNTimes - ld a, [hli] - ld b, a - ld a, [hld] - ld c, a - ld a, [BT_OTPkmn1] - cp b - jr z, .FindARandomBattleTowerPkmn - ld a, [BT_OTPkmn1Item] - cp c - jr z, .FindARandomBattleTowerPkmn - ld a, [BT_OTPkmn2] - cp b - jr z, .FindARandomBattleTowerPkmn - ld a, [BT_OTPkmn2Item] - cp c - jr z, .FindARandomBattleTowerPkmn - ld a, [BT_OTPkmn3] - cp b - jr z, .FindARandomBattleTowerPkmn - ld a, [BT_OTPkmn3Item] - cp c - jr z, .FindARandomBattleTowerPkmn - ld a, [sBTPkmnPrevTrainer1] - cp b - jr z, .FindARandomBattleTowerPkmn - ld a, [sBTPkmnPrevTrainer2] - cp b - jr z, .FindARandomBattleTowerPkmn - ld a, [sBTPkmnPrevTrainer3] - cp b - jr z, .FindARandomBattleTowerPkmn - ld a, [sBTPkmnPrevPrevTrainer1] - cp b - jr z, .FindARandomBattleTowerPkmn - ld a, [sBTPkmnPrevPrevTrainer2] - cp b - jr z, .FindARandomBattleTowerPkmn - ld a, [sBTPkmnPrevPrevTrainer3] - cp b - jr z, .FindARandomBattleTowerPkmn - - ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH - call CopyBytes - - ld a, [wNamedObjectIndexBuffer] - push af - push de - ld hl, - (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) - add hl, de - ld a, [hl] - ld [wNamedObjectIndexBuffer], a - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - push hl - call GetPokemonName - ld h, d - ld l, e - pop de - ld bc, PKMN_NAME_LENGTH - call CopyBytes - - pop de - pop af - ld [wNamedObjectIndexBuffer], a - pop bc - dec c - jp nz, .loop - - ld a, [sBTPkmnPrevTrainer1] - ld [sBTPkmnPrevPrevTrainer1], a - ld a, [sBTPkmnPrevTrainer2] - ld [sBTPkmnPrevPrevTrainer2], a - ld a, [sBTPkmnPrevTrainer3] - ld [sBTPkmnPrevPrevTrainer3], a - ld a, [BT_OTPkmn1] - ld [sBTPkmnPrevTrainer1], a - ld a, [BT_OTPkmn2] - ld [sBTPkmnPrevTrainer2], a - ld a, [BT_OTPkmn3] - ld [sBTPkmnPrevTrainer3], a - call CloseSRAM - ret -; 1f814e - BattleTowerTrainers: ; 1f814e ; The trainer class is not used in Crystal 1.0 due to a bug. ; Instead, the sixth character in the trainer's name is used. diff --git a/data/decoration_attributes.asm b/data/decoration_attributes.asm new file mode 100644 index 000000000..07d4abb37 --- /dev/null +++ b/data/decoration_attributes.asm @@ -0,0 +1,60 @@ +decoration: MACRO + ; type, name, command, event flag, tile/sprite + db \1, \2, \3 + dw \4 + db \5 +ENDM + + decoration DECO_PLANT, $00, $0, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BED, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_BED, FEATHERY_BED, SET_UP_BED, EVENT_DECO_BED_1, $1b + decoration DECO_BED, PINK_BED, SET_UP_BED, EVENT_DECO_BED_2, $1c + decoration DECO_BED, POLKADOT_BED, SET_UP_BED, EVENT_DECO_BED_3, $1d + decoration DECO_BED, PIKACHU_BED, SET_UP_BED, EVENT_DECO_BED_4, $1e + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CARPET, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_CARPET, RED_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_1, $08 + decoration DECO_CARPET, BLUE_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_2, $0b + decoration DECO_CARPET, YELLOW_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_3, $0e + decoration DECO_CARPET, GREEN_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_4, $11 + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_PLANT, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_PLANT, MAGNAPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_1, $20 + decoration DECO_PLANT, TROPICPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_2, $21 + decoration DECO_PLANT, JUMBOPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_3, $22 + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_POSTER, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_PLANT, TOWN_MAP_D, SET_UP_POSTER, EVENT_DECO_PLANT_4, $1f + decoration DECO_POSTER, PIKACHU, SET_UP_POSTER, EVENT_DECO_POSTER_1, $23 + decoration DECO_POSTER, CLEFAIRY, SET_UP_POSTER, EVENT_DECO_POSTER_2, $24 + decoration DECO_POSTER, JIGGLYPUFF, SET_UP_POSTER, EVENT_DECO_POSTER_3, $25 + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CONSOLE, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_PLANT, FAMICOM, SET_UP_CONSOLE, EVENT_DECO_FAMICOM, SPRITE_FAMICOM + decoration DECO_PLANT, SUPER_NES, SET_UP_CONSOLE, EVENT_DECO_SNES, SPRITE_SNES + decoration DECO_PLANT, NINTENDO_64, SET_UP_CONSOLE, EVENT_DECO_N64, SPRITE_N64 + decoration DECO_PLANT, VIRTUAL_BOY, SET_UP_CONSOLE, EVENT_DECO_VIRTUAL_BOY, SPRITE_VIRTUAL_BOY + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BIG_DOLL, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_BIGDOLL, SNORLAX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_SNORLAX_DOLL, SPRITE_BIG_SNORLAX + decoration DECO_BIGDOLL, ONIX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_ONIX_DOLL, SPRITE_BIG_ONIX + decoration DECO_BIGDOLL, LAPRAS, SET_UP_BIG_DOLL, EVENT_DECO_BIG_LAPRAS_DOLL, SPRITE_BIG_LAPRAS + decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_DOLL, EVENT_GAVE_KURT_APRICORNS, $00 + decoration DECO_DOLL, PIKACHU, SET_UP_DOLL, EVENT_DECO_PIKACHU_DOLL, SPRITE_PIKACHU + decoration DECO_PLANT, SURF_PIKA_DOLL, SET_UP_DOLL, EVENT_DECO_SURFING_PIKACHU_DOLL, SPRITE_SURFING_PIKACHU + decoration DECO_DOLL, CLEFAIRY, SET_UP_DOLL, EVENT_DECO_CLEFAIRY_DOLL, SPRITE_CLEFAIRY + decoration DECO_DOLL, JIGGLYPUFF, SET_UP_DOLL, EVENT_DECO_JIGGLYPUFF_DOLL, SPRITE_JIGGLYPUFF + decoration DECO_DOLL, BULBASAUR, SET_UP_DOLL, EVENT_DECO_BULBASAUR_DOLL, SPRITE_BULBASAUR + decoration DECO_DOLL, CHARMANDER, SET_UP_DOLL, EVENT_DECO_CHARMANDER_DOLL, SPRITE_CHARMANDER + decoration DECO_DOLL, SQUIRTLE, SET_UP_DOLL, EVENT_DECO_SQUIRTLE_DOLL, SPRITE_SQUIRTLE + decoration DECO_DOLL, POLIWAG, SET_UP_DOLL, EVENT_DECO_POLIWAG_DOLL, SPRITE_POLIWAG + decoration DECO_DOLL, DIGLETT, SET_UP_DOLL, EVENT_DECO_DIGLETT_DOLL, SPRITE_DIGLETT + decoration DECO_DOLL, STARYU, SET_UP_DOLL, EVENT_DECO_STARMIE_DOLL, SPRITE_STARMIE + decoration DECO_DOLL, MAGIKARP, SET_UP_DOLL, EVENT_DECO_MAGIKARP_DOLL, SPRITE_MAGIKARP + decoration DECO_DOLL, ODDISH, SET_UP_DOLL, EVENT_DECO_ODDISH_DOLL, SPRITE_ODDISH + decoration DECO_DOLL, GENGAR, SET_UP_DOLL, EVENT_DECO_GENGAR_DOLL, SPRITE_GENGAR + decoration DECO_DOLL, SHELLDER, SET_UP_DOLL, EVENT_DECO_SHELLDER_DOLL, SPRITE_SHELLDER + decoration DECO_DOLL, GRIMER, SET_UP_DOLL, EVENT_DECO_GRIMER_DOLL, SPRITE_GRIMER + decoration DECO_DOLL, VOLTORB, SET_UP_DOLL, EVENT_DECO_VOLTORB_DOLL, SPRITE_VOLTORB + decoration DECO_DOLL, WEEDLE, SET_UP_DOLL, EVENT_DECO_WEEDLE_DOLL, SPRITE_WEEDLE + decoration DECO_DOLL, UNOWN, SET_UP_DOLL, EVENT_DECO_UNOWN_DOLL, SPRITE_UNOWN + decoration DECO_DOLL, GEODUDE, SET_UP_DOLL, EVENT_DECO_GEODUDE_DOLL, SPRITE_GEODUDE + decoration DECO_DOLL, MACHOP, SET_UP_DOLL, EVENT_DECO_MACHOP_DOLL, SPRITE_MACHOP + decoration DECO_DOLL, TENTACOOL, SET_UP_DOLL, EVENT_DECO_TENTACOOL_DOLL, SPRITE_TENTACOOL + decoration DECO_PLANT, GOLD_TROPHY, SET_UP_DOLL, EVENT_DECO_GOLD_TROPHY, SPRITE_GOLD_TROPHY + decoration DECO_PLANT, SILVER_TROPHY, SET_UP_DOLL, EVENT_DECO_SILVER_TROPHY, SPRITE_SILVER_TROPHY diff --git a/data/default_options.asm b/data/default_options.asm new file mode 100644 index 000000000..7ecbe3163 --- /dev/null +++ b/data/default_options.asm @@ -0,0 +1,16 @@ +; Options: med text speed + db TEXT_DELAY_MED +; wSaveFileExists: no + db $00 +; TextBoxFrame: frame 1 + db FRAME_1 +; TextBoxFlags: ?? + db $01 +; GBPrinter: normal brightness + db GBPRINTER_NORMAL +; Options2: menu account on + db $01 +; $cfd2: ?? + db $00 +; $cfd3: ?? + db $00 diff --git a/data/egg_move_pointers.asm b/data/egg_move_pointers.asm index 11665f23e..27558ddef 100644 --- a/data/egg_move_pointers.asm +++ b/data/egg_move_pointers.asm @@ -1,4 +1,3 @@ -EggMovePointers:: ; 0x23b11 dw BulbasaurEggMoves dw NoEggMoves dw NoEggMoves diff --git a/data/egg_moves.asm b/data/egg_moves.asm index 2fcf47232..d27c2f52b 100644 --- a/data/egg_moves.asm +++ b/data/egg_moves.asm @@ -10,6 +10,7 @@ SECTION "Egg Moves", ROMX ; and can only breed with Ditto. +EggMovePointers:: ; 0x23b11 INCLUDE "data/egg_move_pointers.asm" diff --git a/data/emote_headers.asm b/data/emote_headers.asm new file mode 100644 index 000000000..8605471f9 --- /dev/null +++ b/data/emote_headers.asm @@ -0,0 +1,20 @@ +emote_header: MACRO +; graphics pointer, length, starting tile + dw \1 + db \2 tiles, BANK(\1) + dw VTiles1 tile \3 +ENDM + +; entries correspond to EMOTE_* constants + emote_header ShockEmote, 4, $78 + emote_header QuestionEmote, 4, $78 + emote_header HappyEmote, 4, $78 + emote_header SadEmote, 4, $78 + emote_header HeartEmote, 4, $78 + emote_header BoltEmote, 4, $78 + emote_header SleepEmote, 4, $78 + emote_header FishEmote, 4, $78 + emote_header JumpShadowGFX, 1, $7c + emote_header FishingRodGFX, 2, $7c + emote_header BoulderDustGFX, 2, $7e + emote_header GrassRustleGFX, 1, $7e diff --git a/data/engine_flags.asm b/data/engine_flags.asm new file mode 100644 index 000000000..facc30bac --- /dev/null +++ b/data/engine_flags.asm @@ -0,0 +1,203 @@ +engine_flag: MACRO + dwb \1, 1 << \2 +ENDM + + ; location, bit + ; (all locations are in WRAM bank 1) + + ; pokegear + engine_flag wPokegearFlags, 1 ; radio card ; $0 + engine_flag wPokegearFlags, 0 ; map card + engine_flag wPokegearFlags, 2 ; phone card + engine_flag wPokegearFlags, 3 ; expn card + engine_flag wPokegearFlags, 7 ; on/off + + ; wDayCareMan, 7 ; day-care 1 on + engine_flag wDayCareMan, 6 ; egg is ready + ; wDayCareMan, 5 ; monster 1 and 2 are compatible + engine_flag wDayCareMan, 0 ; monster 1 in day-care + + ; wDayCareLady, 7 = day-care 2 on + engine_flag wDayCareLady, 0 ; monster 2 in day-care + + engine_flag wMomSavingMoney, 0 ; mom saving money ; $8 + engine_flag wMomSavingMoney, 7 ; dst + + engine_flag wUnusedTwoDayTimerOn, 0 ; unused, possibly related to a 2-day timer + + engine_flag StatusFlags, 0 ; pokedex + engine_flag StatusFlags, 1 ; unown dex + engine_flag StatusFlags, 3 ; pokerus + engine_flag StatusFlags, 4 ; rocket signal on ch20 + engine_flag StatusFlags, 6 ; credits skip + engine_flag StatusFlags, 7 ; bug contest on ; $10 + engine_flag StatusFlags2, 2 ; bug contest timer + engine_flag StatusFlags2, 1 ; safari zone? + engine_flag StatusFlags2, 0 ; rockets in radio tower + engine_flag StatusFlags2, 4 ; bike shop call enabled (1024 bike steps reqd) + engine_flag StatusFlags2, 5 ; give pokerus + engine_flag StatusFlags2, 6 ; berry -> berry juice when trading? + engine_flag StatusFlags2, 7 ; rockets in mahogany + + engine_flag BikeFlags, 0 ; strength active ; $18 + engine_flag BikeFlags, 1 ; always on bike (cant surf) + engine_flag BikeFlags, 2 ; downhill (cycling road) + + engine_flag JohtoBadges, 0 ; zephyrbadge + engine_flag JohtoBadges, 1 ; hivebadge + engine_flag JohtoBadges, 2 ; plainbadge + engine_flag JohtoBadges, 3 ; fogbadge + engine_flag JohtoBadges, 4 ; mineralbadge + engine_flag JohtoBadges, 5 ; stormbadge ; $20 + engine_flag JohtoBadges, 6 ; glacierbadge + engine_flag JohtoBadges, 7 ; risingbadge + + engine_flag KantoBadges, 0 ; boulderbadge + engine_flag KantoBadges, 1 ; cascadebadge + engine_flag KantoBadges, 2 ; thunderbadge + engine_flag KantoBadges, 3 ; rainbowbadge + engine_flag KantoBadges, 4 ; soulbadge + engine_flag KantoBadges, 5 ; marshbadge ; $28 + engine_flag KantoBadges, 6 ; volcanobadge + engine_flag KantoBadges, 7 ; earthbadge + + ; unown sets + engine_flag UnlockedUnowns, 0 ; 1 + engine_flag UnlockedUnowns, 1 ; 2 + engine_flag UnlockedUnowns, 2 ; 3 + engine_flag UnlockedUnowns, 3 ; 4 + engine_flag UnlockedUnowns, 4 ; 5 + engine_flag UnlockedUnowns, 5 ; 6 ; $30 + engine_flag UnlockedUnowns, 6 ; 7 + engine_flag UnlockedUnowns, 7 ; 8 + + ; fly + engine_flag VisitedSpawns, 0 ; your house + engine_flag VisitedSpawns, 1 ; viridian pokecenter + engine_flag VisitedSpawns, 2 ; pallet + engine_flag VisitedSpawns, 3 ; viridian + engine_flag VisitedSpawns, 4 ; pewter + engine_flag VisitedSpawns, 5 ; cerulean ; $38 + engine_flag VisitedSpawns, 6 ; rock tunnel + engine_flag VisitedSpawns, 7 ; vermilion + engine_flag VisitedSpawns + 1, 0 ; lavender + engine_flag VisitedSpawns + 1, 1 ; saffron + engine_flag VisitedSpawns + 1, 2 ; celadon + engine_flag VisitedSpawns + 1, 3 ; fuchsia + engine_flag VisitedSpawns + 1, 4 ; cinnabar + engine_flag VisitedSpawns + 1, 5 ; indigo plateau ; $40 + engine_flag VisitedSpawns + 1, 6 ; new bark + engine_flag VisitedSpawns + 1, 7 ; cherrygrove + engine_flag VisitedSpawns + 2, 0 ; violet + ; union cave + engine_flag VisitedSpawns + 2, 2 ; azalea + engine_flag VisitedSpawns + 2, 3 ; cianwood + engine_flag VisitedSpawns + 2, 4 ; goldenrod + engine_flag VisitedSpawns + 2, 5 ; olivine + engine_flag VisitedSpawns + 2, 6 ; ecruteak ; $48 + engine_flag VisitedSpawns + 2, 7 ; mahogany + engine_flag VisitedSpawns + 3, 0 ; lake of rage + engine_flag VisitedSpawns + 3, 1 ; blackthorn + engine_flag VisitedSpawns + 3, 2 ; silver cave + ; fast ship + engine_flag VisitedSpawns + 3, 4 ; unused + + engine_flag wLuckyNumberShowFlag, 0 ; lucky number show + engine_flag StatusFlags2, 3 ; ???? + + engine_flag DailyFlags, 0 ; kurt making balls ; $50 + engine_flag DailyFlags, 1 ; ???? + engine_flag DailyFlags, 2 ; special wilddata? + engine_flag DailyFlags, 3 ; time capsule (24h wait) + engine_flag DailyFlags, 4 ; all fruit trees + engine_flag DailyFlags, 5 ; shuckle given + engine_flag DailyFlags, 6 ; goldenrod underground merchant closed + engine_flag DailyFlags, 7 ; fought in trainer hall today + + engine_flag WeeklyFlags, 0 ; mt moon square clefairy ; $58 + engine_flag WeeklyFlags, 1 ; union cave lapras + engine_flag WeeklyFlags, 2 ; goldenrod underground haircut used + engine_flag WeeklyFlags, 3 ; goldenrod mall happiness event floor05 person07 + engine_flag WeeklyFlags, 4 ; tea in blues house + engine_flag WeeklyFlags, 5 ; indigo plateau rival fight + engine_flag WeeklyFlags, 6 ; move tutor + engine_flag WeeklyFlags, 7 ; buenas password + + engine_flag SwarmFlags, 0 ; buenas password 2 + engine_flag SwarmFlags, 1 ; goldenrod dept store sale is on + + engine_flag GameTimerPause, 7 ; $62 + + engine_flag PlayerGender, 0 ; player is female + + engine_flag wCelebiEvent, 2 ; have gs ball after kurt examined it + + ; rematches + engine_flag wDailyRematchFlags, 0 ; jack + engine_flag wDailyRematchFlags, 1 ; huey + engine_flag wDailyRematchFlags, 2 ; gaven + engine_flag wDailyRematchFlags, 3 ; beth ; $68 + engine_flag wDailyRematchFlags, 4 ; jose + engine_flag wDailyRematchFlags, 5 ; reena + engine_flag wDailyRematchFlags, 6 ; joey + engine_flag wDailyRematchFlags, 7 ; wade + engine_flag wDailyRematchFlags + 1, 0 ; ralph + engine_flag wDailyRematchFlags + 1, 1 ; liz + engine_flag wDailyRematchFlags + 1, 2 ; anthony + engine_flag wDailyRematchFlags + 1, 3 ; todd ; $70 + engine_flag wDailyRematchFlags + 1, 4 ; gina + engine_flag wDailyRematchFlags + 1, 5 ; arnie + engine_flag wDailyRematchFlags + 1, 6 ; alan + engine_flag wDailyRematchFlags + 1, 7 ; dana + engine_flag wDailyRematchFlags + 2, 0 ; chad + engine_flag wDailyRematchFlags + 2, 1 ; tully + engine_flag wDailyRematchFlags + 2, 2 ; brent + engine_flag wDailyRematchFlags + 2, 3 ; tiffany ; $78 + engine_flag wDailyRematchFlags + 2, 4 ; vance + engine_flag wDailyRematchFlags + 2, 5 ; wilton + engine_flag wDailyRematchFlags + 2, 6 ; parry + engine_flag wDailyRematchFlags + 2, 7 ; erin + + engine_flag wDailyPhoneItemFlags, 0 ; beverly has nugget + engine_flag wDailyPhoneItemFlags, 1 ; jose has star piece + engine_flag wDailyPhoneItemFlags, 2 ; wade has item (see EVENT_WADE_HAS_*** in constants/event_flags.asm) + engine_flag wDailyPhoneItemFlags, 3 ; gina has leaf stone ; $80 + engine_flag wDailyPhoneItemFlags, 4 ; alan has fire stone + engine_flag wDailyPhoneItemFlags, 5 ; liz has thunderstone + engine_flag wDailyPhoneItemFlags, 6 ; derek has nugget + engine_flag wDailyPhoneItemFlags, 7 ; tully has water stone + + engine_flag wDailyPhoneItemFlags + 1, 0 ; tiffany has pink bow + engine_flag wDailyPhoneItemFlags + 1, 1 ; wilton has item (see EVENT_WILTON_HAS_*** in constants/event_flags.asm) + + engine_flag wDailyPhoneTimeOfDayFlags, 0 + engine_flag wDailyPhoneTimeOfDayFlags, 1 ; $88 + engine_flag wDailyPhoneTimeOfDayFlags, 2 + engine_flag wDailyPhoneTimeOfDayFlags, 3 + engine_flag wDailyPhoneTimeOfDayFlags, 4 + engine_flag wDailyPhoneTimeOfDayFlags, 5 + engine_flag wDailyPhoneTimeOfDayFlags, 6 + engine_flag wDailyPhoneTimeOfDayFlags, 7 + + engine_flag wDailyPhoneTimeOfDayFlags + 1, 0 + engine_flag wDailyPhoneTimeOfDayFlags + 1, 1 ; $90 + engine_flag wDailyPhoneTimeOfDayFlags + 1, 2 + engine_flag wDailyPhoneTimeOfDayFlags + 1, 3 + engine_flag wDailyPhoneTimeOfDayFlags + 1, 4 + engine_flag wDailyPhoneTimeOfDayFlags + 1, 5 + engine_flag wDailyPhoneTimeOfDayFlags + 1, 6 + engine_flag wDailyPhoneTimeOfDayFlags + 1, 7 + + engine_flag wDailyPhoneTimeOfDayFlags + 2, 0 + engine_flag wDailyPhoneTimeOfDayFlags + 2, 1 ; $98 + engine_flag wDailyPhoneTimeOfDayFlags + 2, 2 + engine_flag wDailyPhoneTimeOfDayFlags + 2, 3 + engine_flag wDailyPhoneTimeOfDayFlags + 2, 4 + engine_flag wDailyPhoneTimeOfDayFlags + 2, 5 + engine_flag wDailyPhoneTimeOfDayFlags + 2, 6 + engine_flag wDailyPhoneTimeOfDayFlags + 2, 7 + + engine_flag wPlayerSpriteSetupFlags, 2 ; female player has been transformed into male + + engine_flag SwarmFlags, 2 ; dunsparce swarm ; $a0 + engine_flag SwarmFlags, 3 ; yanma swarm diff --git a/data/evos_attacks.asm b/data/evos_attacks.asm index 749731812..c8e5da236 100644 --- a/data/evos_attacks.asm +++ b/data/evos_attacks.asm @@ -4,6 +4,7 @@ INCLUDE "includes.asm" SECTION "Evolutions and Attacks", ROMX +EvosAttacksPointers:: ; 0x425b1 INCLUDE "data/evos_attacks_pointers.asm" diff --git a/data/evos_attacks_pointers.asm b/data/evos_attacks_pointers.asm index 4ce10b105..863e17824 100644 --- a/data/evos_attacks_pointers.asm +++ b/data/evos_attacks_pointers.asm @@ -1,8 +1,5 @@ -; Pointer table for evolutions and attacks. +; Evolutions and attacks are grouped together since they're both checked at level-up. -; These are grouped together since they're both checked at level-up. - -EvosAttacksPointers:: ; 0x425b1 dw BulbasaurEvosAttacks dw IvysaurEvosAttacks dw VenusaurEvosAttacks diff --git a/engine/facings.asm b/data/facings.asm index 4d2a55364..4d2a55364 100644 --- a/engine/facings.asm +++ b/data/facings.asm diff --git a/data/fruit_tree_items.asm b/data/fruit_tree_items.asm new file mode 100644 index 000000000..91fcb3a58 --- /dev/null +++ b/data/fruit_tree_items.asm @@ -0,0 +1,32 @@ +; entries correspond to FRUITTREE_* constants + + db BERRY ; ROUTE_29 + db BERRY ; ROUTE_30_1 + db BERRY ; ROUTE_38 + db BERRY ; ROUTE_46_1 + db PSNCUREBERRY ; ROUTE_30_2 + db PSNCUREBERRY ; ROUTE_33 + db BITTER_BERRY ; ROUTE_31 + db BITTER_BERRY ; ROUTE_43 + db PRZCUREBERRY ; VIOLET_CITY + db PRZCUREBERRY ; ROUTE_46_2 + db MYSTERYBERRY ; ROUTE_35 + db MYSTERYBERRY ; ROUTE_45 + db ICE_BERRY ; ROUTE_36 + db ICE_BERRY ; ROUTE_26 + db MINT_BERRY ; ROUTE_39 + db BURNT_BERRY ; ROUTE_44 + db RED_APRICORN ; ROUTE_37_1 + db BLU_APRICORN ; ROUTE_37_2 + db BLK_APRICORN ; ROUTE_37_3 + db WHT_APRICORN ; AZALEA_TOWN + db PNK_APRICORN ; ROUTE_42_1 + db GRN_APRICORN ; ROUTE_42_2 + db YLW_APRICORN ; ROUTE_42_3 + db BERRY ; ROUTE_11 + db PSNCUREBERRY ; ROUTE_2 + db BITTER_BERRY ; ROUTE_1 + db PRZCUREBERRY ; ROUTE_8 + db ICE_BERRY ; PEWTER_CITY_1 + db MINT_BERRY ; PEWTER_CITY_2 + db BURNT_BERRY ; FUCHSIA_CITY diff --git a/data/happiness_changes.asm b/data/happiness_changes.asm new file mode 100644 index 000000000..ba854bfc6 --- /dev/null +++ b/data/happiness_changes.asm @@ -0,0 +1,22 @@ +; entries correspond to HAPPINESS_* constants + +; change if happiness < 100, change if happiness < 200, change otherwise + db +5, +3, +2 ; Gained a level + db +5, +3, +2 ; Vitamin + db +1, +1, +0 ; X Item + db +3, +2, +1 ; Battled a Gym Leader + db +1, +1, +0 ; Learned a move + db -1, -1, -1 ; Lost to an enemy + db -5, -5, -10 ; Fainted due to poison + db -5, -5, -10 ; Lost to a much stronger enemy + db +1, +1, +1 ; Haircut (Y1) + db +3, +3, +1 ; Haircut (Y2) + db +5, +5, +2 ; Haircut (Y3) + db +1, +1, +1 ; Haircut (O1) + db +3, +3, +1 ; Haircut (O2) + db +10, +10, +4 ; Haircut (O3) + db -5, -5, -10 ; Used Heal Powder or Energypowder (bitter) + db -10, -10, -15 ; Used Energy Root (bitter) + db -15, -15, -20 ; Used Revival Herb (bitter) + db +3, +3, +1 ; Grooming + db +10, +6, +4 ; Gained a level in the place where it was caught diff --git a/data/hm_blocks.asm b/data/hm_blocks.asm new file mode 100644 index 000000000..5e9bbc1f4 --- /dev/null +++ b/data/hm_blocks.asm @@ -0,0 +1,53 @@ +CutTreeBlockPointers: ; c862 +; tileset, block list pointer + dbw TILESET_JOHTO_1, .johto1 + dbw TILESET_JOHTO_2, .johto2 + dbw TILESET_KANTO, .kanto + dbw TILESET_PARK, .park + dbw TILESET_ILEX_FOREST, .ilex + db -1 + +.johto1 ; Johto OW +; facing block, replacement block, animation + db $03, $02, $01 ; grass + db $5b, $3c, $00 ; tree + db $5f, $3d, $00 ; tree + db $63, $3f, $00 ; tree + db $67, $3e, $00 ; tree + db -1 + +.johto2 ; Goldenrod area +; facing block, replacement block, animation + db $03, $02, $01 ; grass + db -1 + +.kanto ; Kanto OW +; facing block, replacement block, animation + db $0b, $0a, $01 ; grass + db $32, $6d, $00 ; tree + db $33, $6c, $00 ; tree + db $34, $6f, $00 ; tree + db $35, $4c, $00 ; tree + db $60, $6e, $00 ; tree + db -1 + +.park ; National Park +; facing block, replacement block, animation + db $13, $03, $01 ; grass + db $03, $04, $01 ; grass + db -1 + +.ilex ; Ilex Forest +; facing block, replacement block, animation + db $0f, $17, $00 + db -1 + + +WhirlpoolBlockPointers: ; c8a4 + dbw TILESET_JOHTO_1, .johto + db -1 + +.johto ; c8a8 +; facing block, replacement block, animation + db $07, $36, $00 + db -1 diff --git a/data/landmarks.asm b/data/landmarks.asm new file mode 100644 index 000000000..1de292ef8 --- /dev/null +++ b/data/landmarks.asm @@ -0,0 +1,207 @@ +landmark: MACRO +; x, y, name + db \1, \2 + dw \3 +ENDM + +; entries correspond to constants/landmark_constants.asm + landmark 0, 0, SpecialMapName + landmark 148, 116, NewBarkTownName + landmark 136, 116, Route29Name + landmark 108, 116, CherrygroveCityName + landmark 108, 96, Route30Name + landmark 104, 76, Route31Name + landmark 92, 76, VioletCityName + landmark 93, 74, SproutTowerName + landmark 92, 108, Route32Name + landmark 84, 92, RuinsOfAlphName + landmark 92, 140, UnionCaveName + landmark 90, 140, Route33Name + landmark 76, 140, AzaleaTownName + landmark 78, 138, SlowpokeWellName + landmark 60, 136, IlexForestName + landmark 60, 128, Route34Name + landmark 60, 108, GoldenrodCityName + landmark 58, 108, RadioTowerName + landmark 60, 92, Route35Name + landmark 60, 76, NationalParkName + landmark 72, 76, Route36Name + landmark 76, 68, Route37Name + landmark 76, 60, EcruteakCityName + landmark 78, 58, TinTowerName + landmark 74, 58, BurnedTowerName + landmark 60, 60, Route38Name + landmark 44, 64, Route39Name + landmark 44, 76, OlivineCityName + landmark 46, 78, LighthouseName + landmark 36, 72, BattleTowerName + landmark 36, 80, Route40Name + landmark 36, 108, WhirlIslandsName + landmark 36, 116, Route41Name + landmark 28, 116, CianwoodCityName + landmark 100, 60, Route42Name + landmark 92, 60, MtMortarName + landmark 116, 60, MahoganyTownName + landmark 116, 52, Route43Name + landmark 116, 44, LakeOfRageName + landmark 128, 60, Route44Name + landmark 138, 54, IcePathName + landmark 140, 60, BlackthornCityName + landmark 140, 52, DragonsDenName + landmark 140, 80, Route45Name + landmark 120, 88, DarkCaveName + landmark 132, 104, Route46Name + landmark 156, 84, SilverCaveName + landmark 60, 124, PalletTownName + landmark 60, 108, Route1Name + landmark 60, 92, ViridianCityName + landmark 60, 80, Route2Name + landmark 60, 68, PewterCityName + landmark 72, 68, Route3Name + landmark 84, 68, MtMoonName + landmark 96, 68, Route4Name + landmark 108, 68, CeruleanCityName + landmark 108, 60, Route24Name + landmark 116, 52, Route25Name + landmark 108, 76, Route5Name + landmark 116, 92, UndergroundName + landmark 108, 92, Route6Name + landmark 108, 100, VermilionCityName + landmark 96, 76, DiglettsCaveName + landmark 96, 84, Route7Name + landmark 124, 84, Route8Name + landmark 124, 68, Route9Name + landmark 140, 68, RockTunnelName + landmark 140, 72, Route10Name + landmark 140, 76, PowerPlantName + landmark 140, 84, LavenderTownName + landmark 148, 84, LavRadioTowerName + landmark 84, 84, CeladonCityName + landmark 108, 84, SaffronCityName + landmark 124, 100, Route11Name + landmark 140, 96, Route12Name + landmark 132, 116, Route13Name + landmark 124, 128, Route14Name + landmark 112, 132, Route15Name + landmark 76, 84, Route16Name + landmark 76, 108, Route17Name + landmark 88, 132, Route18Name + landmark 100, 132, FuchsiaCityName + landmark 100, 144, Route19Name + landmark 84, 148, Route20Name + landmark 76, 148, SeafoamIslandsName + landmark 60, 148, CinnabarIslandName + landmark 60, 136, Route21Name + landmark 44, 84, Route22Name + landmark 36, 68, VictoryRoadName + landmark 36, 60, Route23Name + landmark 36, 52, IndigoPlateauName + landmark 36, 108, Route26Name + landmark 28, 116, Route27Name + landmark 20, 116, TohjoFallsName + landmark 28, 84, Route28Name + landmark 148, 132, FastShipName + + +NewBarkTownName: db "NEW BARK¯TOWN@" +CherrygroveCityName: db "CHERRYGROVE¯CITY@" +VioletCityName: db "VIOLET CITY@" +AzaleaTownName: db "AZALEA TOWN@" +GoldenrodCityName: db "GOLDENROD¯CITY@" +EcruteakCityName: db "ECRUTEAK¯CITY@" +OlivineCityName: db "OLIVINE¯CITY@" +CianwoodCityName: db "CIANWOOD¯CITY@" +MahoganyTownName: db "MAHOGANY¯TOWN@" +BlackthornCityName: db "BLACKTHORN¯CITY@" +LakeOfRageName: db "LAKE OF¯RAGE@" +SilverCaveName: db "SILVER CAVE@" +SproutTowerName: db "SPROUT¯TOWER@" +RuinsOfAlphName: db "RUINS¯OF ALPH@" +UnionCaveName: db "UNION CAVE@" +SlowpokeWellName: db "SLOWPOKE¯WELL@" +RadioTowerName: db "RADIO TOWER@" +PowerPlantName: db "POWER PLANT@" +NationalParkName: db "NATIONAL¯PARK@" +TinTowerName: db "TIN TOWER@" +LighthouseName: db "LIGHTHOUSE@" +WhirlIslandsName: db "WHIRL¯ISLANDS@" +MtMortarName: db "MT.MORTAR@" +DragonsDenName: db "DRAGON'S¯DEN@" +IcePathName: db "ICE PATH@" +NotApplicableName: db "N/A@" +PalletTownName: db "PALLET TOWN@" +ViridianCityName: db "VIRIDIAN¯CITY@" +PewterCityName: db "PEWTER CITY@" +CeruleanCityName: db "CERULEAN¯CITY@" +LavenderTownName: db "LAVENDER¯TOWN@" +VermilionCityName: db "VERMILION¯CITY@" +CeladonCityName: db "CELADON¯CITY@" +SaffronCityName: db "SAFFRON¯CITY@" +FuchsiaCityName: db "FUCHSIA¯CITY@" +CinnabarIslandName: db "CINNABAR¯ISLAND@" +IndigoPlateauName: db "INDIGO¯PLATEAU@" +VictoryRoadName: db "VICTORY¯ROAD@" +MtMoonName: db "MT.MOON@" +RockTunnelName: db "ROCK TUNNEL@" +LavRadioTowerName: db "LAV¯RADIO TOWER@" +SilphCoName: db "SILPH CO.@" +SafariZoneName: db "SAFARI ZONE@" +SeafoamIslandsName: db "SEAFOAM¯ISLANDS@" +PokemonMansionName: db "#MON¯MANSION@" +CeruleanCaveName: db "CERULEAN¯CAVE@" +Route1Name: db "ROUTE 1@" +Route2Name: db "ROUTE 2@" +Route3Name: db "ROUTE 3@" +Route4Name: db "ROUTE 4@" +Route5Name: db "ROUTE 5@" +Route6Name: db "ROUTE 6@" +Route7Name: db "ROUTE 7@" +Route8Name: db "ROUTE 8@" +Route9Name: db "ROUTE 9@" +Route10Name: db "ROUTE 10@" +Route11Name: db "ROUTE 11@" +Route12Name: db "ROUTE 12@" +Route13Name: db "ROUTE 13@" +Route14Name: db "ROUTE 14@" +Route15Name: db "ROUTE 15@" +Route16Name: db "ROUTE 16@" +Route17Name: db "ROUTE 17@" +Route18Name: db "ROUTE 18@" +Route19Name: db "ROUTE 19@" +Route20Name: db "ROUTE 20@" +Route21Name: db "ROUTE 21@" +Route22Name: db "ROUTE 22@" +Route23Name: db "ROUTE 23@" +Route24Name: db "ROUTE 24@" +Route25Name: db "ROUTE 25@" +Route26Name: db "ROUTE 26@" +Route27Name: db "ROUTE 27@" +Route28Name: db "ROUTE 28@" +Route29Name: db "ROUTE 29@" +Route30Name: db "ROUTE 30@" +Route31Name: db "ROUTE 31@" +Route32Name: db "ROUTE 32@" +Route33Name: db "ROUTE 33@" +Route34Name: db "ROUTE 34@" +Route35Name: db "ROUTE 35@" +Route36Name: db "ROUTE 36@" +Route37Name: db "ROUTE 37@" +Route38Name: db "ROUTE 38@" +Route39Name: db "ROUTE 39@" +Route40Name: db "ROUTE 40@" +Route41Name: db "ROUTE 41@" +Route42Name: db "ROUTE 42@" +Route43Name: db "ROUTE 43@" +Route44Name: db "ROUTE 44@" +Route45Name: db "ROUTE 45@" +Route46Name: db "ROUTE 46@" +DarkCaveName: db "DARK CAVE@" +IlexForestName: db "ILEX¯FOREST@" +BurnedTowerName: db "BURNED¯TOWER@" +FastShipName: db "FAST SHIP@" +ViridianForestName: db "VIRIDIAN¯FOREST@" +DiglettsCaveName: db "DIGLETT'S¯CAVE@" +TohjoFallsName: db "TOHJO FALLS@" +UndergroundName: db "UNDERGROUND@" +BattleTowerName: db "BATTLE¯TOWER@" +SpecialMapName: db "SPECIAL@" diff --git a/engine/map_triggers.asm b/data/map_triggers.asm index 2b190fa3e..567165392 100644 --- a/engine/map_triggers.asm +++ b/data/map_triggers.asm @@ -1,6 +1,3 @@ -MapTriggers:: ; 4d01e -; Map triggers - trigger_def: MACRO ; db group, map ; dw address @@ -88,4 +85,3 @@ ENDM trigger_def MOBILE_TRADE_ROOM_MOBILE, wMobileTradeRoomMobileTrigger trigger_def MOBILE_BATTLE_ROOM, wMobileBattleRoomTrigger db -1 -; 4d15b diff --git a/data/mom_phone_items.asm b/data/mom_phone_items.asm new file mode 100644 index 000000000..533241ca1 --- /dev/null +++ b/data/mom_phone_items.asm @@ -0,0 +1,27 @@ +momitem: macro +; money to trigger, cost, kind, item + dt \1 + dt \2 + db \3, \4 +ENDM + +MomItems_1: ; fd136 + momitem 0, 600, MOM_ITEM, SUPER_POTION + momitem 0, 90, MOM_ITEM, ANTIDOTE + momitem 0, 180, MOM_ITEM, POKE_BALL + momitem 0, 450, MOM_ITEM, ESCAPE_ROPE + momitem 0, 500, MOM_ITEM, GREAT_BALL +MomItems_1End: ; fd15e + +MomItems_2: ; fd15e + momitem 900, 600, MOM_ITEM, SUPER_POTION + momitem 4000, 270, MOM_ITEM, REPEL + momitem 7000, 600, MOM_ITEM, SUPER_POTION + momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL + momitem 15000, 3000, MOM_ITEM, MOON_STONE + momitem 19000, 600, MOM_ITEM, SUPER_POTION + momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL + momitem 40000, 900, MOM_ITEM, HYPER_POTION + momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL + momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL +MomItems_2End: ; fd1ae diff --git a/data/mon_menu_icons.asm b/data/mon_menu_icons.asm new file mode 100644 index 000000000..f5c4386ad --- /dev/null +++ b/data/mon_menu_icons.asm @@ -0,0 +1,252 @@ +; party menu icons + db ICON_BULBASAUR ; BULBASAUR + db ICON_BULBASAUR ; IVYSAUR + db ICON_BULBASAUR ; VENUSAUR + db ICON_CHARMANDER ; CHARMANDER + db ICON_CHARMANDER ; CHARMELEON + db ICON_BIGMON ; CHARIZARD + db ICON_SQUIRTLE ; SQUIRTLE + db ICON_SQUIRTLE ; WARTORTLE + db ICON_SQUIRTLE ; BLASTOISE + db ICON_CATERPILLAR ; CATERPIE + db ICON_CATERPILLAR ; METAPOD + db ICON_MOTH ; BUTTERFREE + db ICON_CATERPILLAR ; WEEDLE + db ICON_CATERPILLAR ; KAKUNA + db ICON_BUG ; BEEDRILL + db ICON_BIRD ; PIDGEY + db ICON_BIRD ; PIDGEOTTO + db ICON_BIRD ; PIDGEOT + db ICON_FOX ; RATTATA + db ICON_FOX ; RATICATE + db ICON_BIRD ; SPEAROW + db ICON_BIRD ; FEAROW + db ICON_SERPENT ; EKANS + db ICON_SERPENT ; ARBOK + db ICON_PIKACHU ; PIKACHU + db ICON_PIKACHU ; RAICHU + db ICON_MONSTER ; SANDSHREW + db ICON_MONSTER ; SANDSLASH + db ICON_FOX ; NIDORAN_F + db ICON_FOX ; NIDORINA + db ICON_MONSTER ; NIDOQUEEN + db ICON_FOX ; NIDORAN_M + db ICON_FOX ; NIDORINO + db ICON_MONSTER ; NIDOKING + db ICON_CLEFAIRY ; CLEFAIRY + db ICON_CLEFAIRY ; CLEFABLE + db ICON_FOX ; VULPIX + db ICON_FOX ; NINETALES + db ICON_JIGGLYPUFF ; JIGGLYPUFF + db ICON_JIGGLYPUFF ; WIGGLYTUFF + db ICON_BAT ; ZUBAT + db ICON_BAT ; GOLBAT + db ICON_ODDISH ; ODDISH + db ICON_ODDISH ; GLOOM + db ICON_ODDISH ; VILEPLUME + db ICON_BUG ; PARAS + db ICON_BUG ; PARASECT + db ICON_CATERPILLAR ; VENONAT + db ICON_MOTH ; VENOMOTH + db ICON_DIGLETT ; DIGLETT + db ICON_DIGLETT ; DUGTRIO + db ICON_FOX ; MEOWTH + db ICON_FOX ; PERSIAN + db ICON_MONSTER ; PSYDUCK + db ICON_MONSTER ; GOLDUCK + db ICON_FIGHTER ; MANKEY + db ICON_FIGHTER ; PRIMEAPE + db ICON_FOX ; GROWLITHE + db ICON_FOX ; ARCANINE + db ICON_POLIWAG ; POLIWAG + db ICON_POLIWAG ; POLIWHIRL + db ICON_POLIWAG ; POLIWRATH + db ICON_HUMANSHAPE ; ABRA + db ICON_HUMANSHAPE ; KADABRA + db ICON_HUMANSHAPE ; ALAKAZAM + db ICON_FIGHTER ; MACHOP + db ICON_FIGHTER ; MACHOKE + db ICON_FIGHTER ; MACHAMP + db ICON_ODDISH ; BELLSPROUT + db ICON_ODDISH ; WEEPINBELL + db ICON_ODDISH ; VICTREEBEL + db ICON_JELLYFISH ; TENTACOOL + db ICON_JELLYFISH ; TENTACRUEL + db ICON_GEODUDE ; GEODUDE + db ICON_GEODUDE ; GRAVELER + db ICON_GEODUDE ; GOLEM + db ICON_EQUINE ; PONYTA + db ICON_EQUINE ; RAPIDASH + db ICON_SLOWPOKE ; SLOWPOKE + db ICON_SLOWPOKE ; SLOWBRO + db ICON_VOLTORB ; MAGNEMITE + db ICON_VOLTORB ; MAGNETON + db ICON_BIRD ; FARFETCH_D + db ICON_BIRD ; DODUO + db ICON_BIRD ; DODRIO + db ICON_LAPRAS ; SEEL + db ICON_LAPRAS ; DEWGONG + db ICON_BLOB ; GRIMER + db ICON_BLOB ; MUK + db ICON_SHELL ; SHELLDER + db ICON_SHELL ; CLOYSTER + db ICON_GHOST ; GASTLY + db ICON_GHOST ; HAUNTER + db ICON_GHOST ; GENGAR + db ICON_SERPENT ; ONIX + db ICON_HUMANSHAPE ; DROWZEE + db ICON_HUMANSHAPE ; HYPNO + db ICON_SHELL ; KRABBY + db ICON_SHELL ; KINGLER + db ICON_VOLTORB ; VOLTORB + db ICON_VOLTORB ; ELECTRODE + db ICON_ODDISH ; EXEGGCUTE + db ICON_ODDISH ; EXEGGUTOR + db ICON_MONSTER ; CUBONE + db ICON_MONSTER ; MAROWAK + db ICON_FIGHTER ; HITMONLEE + db ICON_FIGHTER ; HITMONCHAN + db ICON_MONSTER ; LICKITUNG + db ICON_BLOB ; KOFFING + db ICON_BLOB ; WEEZING + db ICON_EQUINE ; RHYHORN + db ICON_MONSTER ; RHYDON + db ICON_CLEFAIRY ; CHANSEY + db ICON_ODDISH ; TANGELA + db ICON_MONSTER ; KANGASKHAN + db ICON_FISH ; HORSEA + db ICON_FISH ; SEADRA + db ICON_FISH ; GOLDEEN + db ICON_FISH ; SEAKING + db ICON_STARYU ; STARYU + db ICON_STARYU ; STARMIE + db ICON_HUMANSHAPE ; MR__MIME + db ICON_BUG ; SCYTHER + db ICON_HUMANSHAPE ; JYNX + db ICON_HUMANSHAPE ; ELECTABUZZ + db ICON_HUMANSHAPE ; MAGMAR + db ICON_BUG ; PINSIR + db ICON_EQUINE ; TAUROS + db ICON_FISH ; MAGIKARP + db ICON_GYARADOS ; GYARADOS + db ICON_LAPRAS ; LAPRAS + db ICON_BLOB ; DITTO + db ICON_FOX ; EEVEE + db ICON_FOX ; VAPOREON + db ICON_FOX ; JOLTEON + db ICON_FOX ; FLAREON + db ICON_VOLTORB ; PORYGON + db ICON_SHELL ; OMANYTE + db ICON_SHELL ; OMASTAR + db ICON_SHELL ; KABUTO + db ICON_SHELL ; KABUTOPS + db ICON_BIRD ; AERODACTYL + db ICON_SNORLAX ; SNORLAX + db ICON_BIRD ; ARTICUNO + db ICON_BIRD ; ZAPDOS + db ICON_BIRD ; MOLTRES + db ICON_SERPENT ; DRATINI + db ICON_SERPENT ; DRAGONAIR + db ICON_BIGMON ; DRAGONITE + db ICON_HUMANSHAPE ; MEWTWO + db ICON_HUMANSHAPE ; MEW + db ICON_ODDISH ; CHIKORITA + db ICON_ODDISH ; BAYLEEF + db ICON_ODDISH ; MEGANIUM + db ICON_FOX ; CYNDAQUIL + db ICON_FOX ; QUILAVA + db ICON_FOX ; TYPHLOSION + db ICON_MONSTER ; TOTODILE + db ICON_MONSTER ; CROCONAW + db ICON_MONSTER ; FERALIGATR + db ICON_FOX ; SENTRET + db ICON_FOX ; FURRET + db ICON_BIRD ; HOOTHOOT + db ICON_BIRD ; NOCTOWL + db ICON_BUG ; LEDYBA + db ICON_BUG ; LEDIAN + db ICON_BUG ; SPINARAK + db ICON_BUG ; ARIADOS + db ICON_BAT ; CROBAT + db ICON_FISH ; CHINCHOU + db ICON_FISH ; LANTURN + db ICON_PIKACHU ; PICHU + db ICON_CLEFAIRY ; CLEFFA + db ICON_JIGGLYPUFF ; IGGLYBUFF + db ICON_CLEFAIRY ; TOGEPI + db ICON_BIRD ; TOGETIC + db ICON_BIRD ; NATU + db ICON_BIRD ; XATU + db ICON_FOX ; MAREEP + db ICON_MONSTER ; FLAAFFY + db ICON_MONSTER ; AMPHAROS + db ICON_ODDISH ; BELLOSSOM + db ICON_JIGGLYPUFF ; MARILL + db ICON_JIGGLYPUFF ; AZUMARILL + db ICON_SUDOWOODO ; SUDOWOODO + db ICON_POLIWAG ; POLITOED + db ICON_ODDISH ; HOPPIP + db ICON_ODDISH ; SKIPLOOM + db ICON_ODDISH ; JUMPLUFF + db ICON_MONSTER ; AIPOM + db ICON_ODDISH ; SUNKERN + db ICON_ODDISH ; SUNFLORA + db ICON_BUG ; YANMA + db ICON_MONSTER ; WOOPER + db ICON_MONSTER ; QUAGSIRE + db ICON_FOX ; ESPEON + db ICON_FOX ; UMBREON + db ICON_BIRD ; MURKROW + db ICON_SLOWPOKE ; SLOWKING + db ICON_GHOST ; MISDREAVUS + db ICON_UNOWN ; UNOWN + db ICON_GHOST ; WOBBUFFET + db ICON_EQUINE ; GIRAFARIG + db ICON_BUG ; PINECO + db ICON_BUG ; FORRETRESS + db ICON_SERPENT ; DUNSPARCE + db ICON_BUG ; GLIGAR + db ICON_SERPENT ; STEELIX + db ICON_MONSTER ; SNUBBULL + db ICON_MONSTER ; GRANBULL + db ICON_FISH ; QWILFISH + db ICON_BUG ; SCIZOR + db ICON_BUG ; SHUCKLE + db ICON_BUG ; HERACROSS + db ICON_FOX ; SNEASEL + db ICON_MONSTER ; TEDDIURSA + db ICON_MONSTER ; URSARING + db ICON_BLOB ; SLUGMA + db ICON_BLOB ; MAGCARGO + db ICON_EQUINE ; SWINUB + db ICON_EQUINE ; PILOSWINE + db ICON_SHELL ; CORSOLA + db ICON_FISH ; REMORAID + db ICON_FISH ; OCTILLERY + db ICON_MONSTER ; DELIBIRD + db ICON_FISH ; MANTINE + db ICON_BIRD ; SKARMORY + db ICON_FOX ; HOUNDOUR + db ICON_FOX ; HOUNDOOM + db ICON_BIGMON ; KINGDRA + db ICON_EQUINE ; PHANPY + db ICON_EQUINE ; DONPHAN + db ICON_VOLTORB ; PORYGON2 + db ICON_EQUINE ; STANTLER + db ICON_MONSTER ; SMEARGLE + db ICON_FIGHTER ; TYROGUE + db ICON_FIGHTER ; HITMONTOP + db ICON_HUMANSHAPE ; SMOOCHUM + db ICON_HUMANSHAPE ; ELEKID + db ICON_HUMANSHAPE ; MAGBY + db ICON_EQUINE ; MILTANK + db ICON_CLEFAIRY ; BLISSEY + db ICON_FOX ; RAIKOU + db ICON_FOX ; ENTEI + db ICON_FOX ; SUICUNE + db ICON_MONSTER ; LARVITAR + db ICON_MONSTER ; PUPITAR + db ICON_MONSTER ; TYRANITAR + db ICON_LUGIA ; LUGIA + db ICON_HO_OH ; HO_OH + db ICON_HUMANSHAPE ; CELEBI diff --git a/data/mystery_gift/decos.asm b/data/mystery_gift/decos.asm new file mode 100644 index 000000000..18cc0ac30 --- /dev/null +++ b/data/mystery_gift/decos.asm @@ -0,0 +1,37 @@ + db DECOFLAG_PIKACHU_DOLL + db DECOFLAG_BULBASAUR_DOLL + db DECOFLAG_CHARMANDER_DOLL + db DECOFLAG_SQUIRTLE_DOLL + db DECOFLAG_POLIWAG_DOLL + db DECOFLAG_DIGLETT_DOLL + db DECOFLAG_STARMIE_DOLL + db DECOFLAG_MAGIKARP_DOLL + db DECOFLAG_ODDISH_DOLL + db DECOFLAG_GENGAR_DOLL + db DECOFLAG_CLEFAIRY_POSTER + db DECOFLAG_JIGGLYPUFF_POSTER + db DECOFLAG_SNES + db DECOFLAG_SHELLDER_DOLL + db DECOFLAG_VOLTORB_DOLL + db DECOFLAG_WEEDLE_DOLL + db DECOFLAG_MAGNAPLANT + db DECOFLAG_TROPICPLANT + db DECOFLAG_FAMICOM + db DECOFLAG_N64 + db DECOFLAG_SURF_PIKACHU_DOLL + db DECOFLAG_JIGGLYPUFF_DOLL + db DECOFLAG_PINK_BED + db DECOFLAG_POLKADOT_BED + db DECOFLAG_RED_CARPET + db DECOFLAG_BLUE_CARPET + db DECOFLAG_YELLOW_CARPET + db DECOFLAG_GREEN_CARPET + db DECOFLAG_JUMBOPLANT + db DECOFLAG_VIRTUAL_BOY + db DECOFLAG_MACHOP_DOLL + db DECOFLAG_PIKACHU_POSTER + db DECOFLAG_TENTACOOL_DOLL + db DECOFLAG_BIG_ONIX_DOLL + db DECOFLAG_PIKACHU_BED + db DECOFLAG_GRIMER_DOLL + db DECOFLAG_UNOWN_DOLL diff --git a/data/mystery_gift/items.asm b/data/mystery_gift/items.asm new file mode 100644 index 000000000..1970d6826 --- /dev/null +++ b/data/mystery_gift/items.asm @@ -0,0 +1,37 @@ + db BERRY + db PRZCUREBERRY + db MINT_BERRY + db ICE_BERRY + db BURNT_BERRY + db PSNCUREBERRY + db GUARD_SPEC + db X_DEFEND + db X_ATTACK + db BITTER_BERRY + db DIRE_HIT + db X_SPECIAL + db X_ACCURACY + db EON_MAIL + db MORPH_MAIL + db MUSIC_MAIL + db MIRACLEBERRY + db GOLD_BERRY + db REVIVE + db GREAT_BALL + db SUPER_REPEL + db MAX_REPEL + db ELIXER + db ETHER + db WATER_STONE + db FIRE_STONE + db LEAF_STONE + db THUNDERSTONE + db MAX_ETHER + db MAX_ELIXER + db MAX_REVIVE + db SCOPE_LENS + db HP_UP + db PP_UP + db RARE_CANDY + db BLUESKY_MAIL + db MIRAGE_MAIL diff --git a/data/npc_trades.asm b/data/npc_trades.asm new file mode 100644 index 000000000..1957d5c3f --- /dev/null +++ b/data/npc_trades.asm @@ -0,0 +1,20 @@ +npctrade: MACRO +; dialog set, requested mon, offered mon, nickname, dvs, item, OT ID, OT name, gender requested + db \1, \2, \3, \4, \5, \6, \7 + shift + dw \7 + db \8, \9, 0 +ENDM + +TRADE_EITHER_GENDER EQU 0 +TRADE_MALE_ONLY EQU 1 +TRADE_FEMALE_ONLY EQU 2 + +; entries correspond to NPCTRADE_* constants + npctrade 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, 37460, "MIKE@@@@@@@", TRADE_EITHER_GENDER + npctrade 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, 48926, "KYLE@@@@@@@", TRADE_EITHER_GENDER + npctrade 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, 29189, "TIM@@@@@@@@", TRADE_EITHER_GENDER + npctrade 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, 00283, "EMY@@@@@@@@", TRADE_FEMALE_ONLY + npctrade 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, 15616, "CHRIS@@@@@@", TRADE_EITHER_GENDER + npctrade 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, 26491, "KIM@@@@@@@@", TRADE_EITHER_GENDER + npctrade 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, 50082, "FOREST@@@@@", TRADE_EITHER_GENDER diff --git a/data/odd_eggs.asm b/data/odd_eggs.asm index 2a1e7d997..f3a3036f9 100644 --- a/data/odd_eggs.asm +++ b/data/odd_eggs.asm @@ -1,100 +1,4 @@ -GiveOddEgg: ; 1fb4b6 - - ; Figure out which egg to give. - - ; Compare a random word to - ; probabilities out of 0xffff. - call Random - ld hl, .Probabilities - ld c, 0 - ld b, c -.loop - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - - ; Break on $ffff. - ld a, d - cp $ffff / $100 - jr nz, .not_done - ld a, e - cp $ffff % $100 - jr z, .done -.not_done - - ; Break when [hRandom] <= de. - ld a, [hRandom + 1] - cp d - jr c, .done - jr z, .ok - jr .next -.ok - ld a, [hRandom + 0] - cp e - jr c, .done - jr z, .done -.next - inc bc - jr .loop -.done - - ld hl, OddEggs - ld a, OddEgg2 - OddEgg1 - call AddNTimes - - ld de, OddEggSpecies - ld bc, PARTYMON_STRUCT_LENGTH + 2 * PKMN_NAME_LENGTH - call CopyBytes - - ld a, EGG_TICKET - ld [CurItem], a - ld a, 1 - ld [wItemQuantityChangeBuffer], a - ld a, -1 - ld [CurItemQuantity], a - ld hl, NumItems - call TossItem - - ; load species in wcd2a - ld a, EGG - ld [wMobileMonSpeciesBuffer], a - - ; load pointer to (wMobileMonSpeciesBuffer - 1) in wMobileMonSpeciesPointerBuffer - ld a, (wMobileMonSpeciesBuffer - 1) % $100 - ld [wMobileMonSpeciesPointerBuffer], a - ld a, (wMobileMonSpeciesBuffer - 1) / $100 - ld [wMobileMonSpeciesPointerBuffer + 1], a - ; load pointer to OddEggSpecies in wMobileMonStructurePointerBuffer - ld a, OddEggSpecies % $100 - ld [wMobileMonStructurePointerBuffer], a - ld a, OddEggSpecies / $100 - ld [wMobileMonStructurePointerBuffer + 1], a - - ; load Odd Egg Name in wTempOddEggNickname - ld hl, .Odd - ld de, wTempOddEggNickname - ld bc, PKMN_NAME_LENGTH - call CopyBytes - - ; load pointer to wTempOddEggNickname in wMobileMonOTNamePointerBuffer - ld a, wTempOddEggNickname % $100 - ld [wMobileMonOTNamePointerBuffer], a - ld a, wTempOddEggNickname / $100 - ld [wMobileMonOTNamePointerBuffer + 1], a - ; load pointer to wOddEggName in wMobileMonNicknamePointerBuffer - ld a, wOddEggName % $100 - ld [wMobileMonNicknamePointerBuffer], a - ld a, wOddEggName / $100 - ld [wMobileMonNicknamePointerBuffer + 1], a - callba AddMobileMonToParty - ret -; 1fb546 - -.Odd: - db "ODD@@@@@@@@@" - -.Probabilities: +OddEggProbabilities: prob: MACRO prob_total = prob_total + (\1) diff --git a/data/outdoor_sprites.asm b/data/outdoor_sprites.asm new file mode 100644 index 000000000..ef88fbb8a --- /dev/null +++ b/data/outdoor_sprites.asm @@ -0,0 +1,694 @@ +OutdoorSprites: ; 144b8 +; Valid sprite IDs for each map group. + dw Group1Sprites + dw Group2Sprites + dw Group3Sprites + dw Group4Sprites + dw Group5Sprites + dw Group6Sprites + dw Group7Sprites + dw Group8Sprites + dw Group9Sprites + dw Group10Sprites + dw Group11Sprites + dw Group12Sprites + dw Group13Sprites + dw Group14Sprites + dw Group15Sprites + dw Group16Sprites + dw Group17Sprites + dw Group18Sprites + dw Group19Sprites + dw Group20Sprites + dw Group21Sprites + dw Group22Sprites + dw Group23Sprites + dw Group24Sprites + dw Group25Sprites + dw Group26Sprites +; 144ec + + +Group13Sprites: ; 144ec + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14503 + +Group23Sprites: ; 14503 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1451a + +Group14Sprites: ; 1451a + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14531 + +Group6Sprites: ; 14531 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14548 + +Group7Sprites: ; 14548 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_COOLTRAINER_M + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_POKEFAN_M + db SPRITE_ROCKET + db SPRITE_MISTY + db SPRITE_POKE_BALL + db SPRITE_SLOWPOKE +; 1455f + +Group25Sprites: ; 1455f + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_COOLTRAINER_M + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_POKEFAN_M + db SPRITE_ROCKET + db SPRITE_MISTY + db SPRITE_POKE_BALL + db SPRITE_SLOWPOKE +; 14576 + +Group21Sprites: ; 14576 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_FISHER + db SPRITE_POLIWAG + db SPRITE_TEACHER + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_BIKER + db SPRITE_SILVER + db SPRITE_BLUE + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1458d + +Group18Sprites: ; 1458d + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_MACHOP + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_BIG_SNORLAX + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 145a4 + +Group12Sprites: ; 145a4 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_MACHOP + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_BIG_SNORLAX + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 145bb + +Group17Sprites: ; 145bb + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_MACHOP + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_BIG_SNORLAX + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 145d2 + +Group16Sprites: ; 145d2 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_BUENA + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_MACHOP + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_BOULDER +; 145e9 + +Group24Sprites: ; 145e9 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SILVER + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_YOUNGSTER + db SPRITE_MONSTER + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14600 + +Group26Sprites: ; 14600 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SILVER + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_YOUNGSTER + db SPRITE_MONSTER + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14617 + +Group19Sprites: ; 14617 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SILVER + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_YOUNGSTER + db SPRITE_MONSTER + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1462e + +Group10Sprites: ; 1462e + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_FISHER + db SPRITE_LASS + db SPRITE_OFFICER + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_COOLTRAINER_M + db SPRITE_BUG_CATCHER + db SPRITE_SUPER_NERD + db SPRITE_WEIRD_TREE + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14645 + +Group4Sprites: ; 14645 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_FISHER + db SPRITE_LASS + db SPRITE_OFFICER + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_COOLTRAINER_M + db SPRITE_BUG_CATCHER + db SPRITE_SUPER_NERD + db SPRITE_WEIRD_TREE + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1465c + +Group8Sprites: ; 1465c + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_KURT_OUTSIDE + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_OFFICER + db SPRITE_POKEFAN_M + db SPRITE_BLACK_BELT + db SPRITE_TEACHER + db SPRITE_AZALEA_ROCKET + db SPRITE_LASS + db SPRITE_SILVER + db SPRITE_FRUIT_TREE + db SPRITE_SLOWPOKE +; 14673 + +Group11Sprites: ; 14673 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_OFFICER + db SPRITE_POKEFAN_M + db SPRITE_DAY_CARE_MON_1 + db SPRITE_COOLTRAINER_F + db SPRITE_ROCKET + db SPRITE_LASS + db SPRITE_DAY_CARE_MON_2 + db SPRITE_FRUIT_TREE + db SPRITE_SLOWPOKE +; 1468a + +Group22Sprites: ; 1468a + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_STANDING_YOUNGSTER + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_OLIVINE_RIVAL + db SPRITE_POKEFAN_M + db SPRITE_LASS + db SPRITE_BUENA + db SPRITE_SWIMMER_GIRL + db SPRITE_SAILOR + db SPRITE_POKEFAN_F + db SPRITE_SUPER_NERD + db SPRITE_TAUROS + db SPRITE_FRUIT_TREE + db SPRITE_ROCK +; 146a1 + +Group1Sprites: ; 146a1 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_STANDING_YOUNGSTER + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_OLIVINE_RIVAL + db SPRITE_POKEFAN_M + db SPRITE_LASS + db SPRITE_BUENA + db SPRITE_SWIMMER_GIRL + db SPRITE_SAILOR + db SPRITE_POKEFAN_F + db SPRITE_SUPER_NERD + db SPRITE_TAUROS + db SPRITE_FRUIT_TREE + db SPRITE_ROCK +; 146b8 + +Group9Sprites: ; 146b8 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_LANCE + db SPRITE_GRAMPS + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_LASS + db SPRITE_YOUNGSTER + db SPRITE_GYARADOS + db SPRITE_FRUIT_TREE + db SPRITE_POKE_BALL +; 146cf + +Group2Sprites: ; 146cf + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_M + db SPRITE_POKEFAN_M + db SPRITE_BLACK_BELT + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_FRUIT_TREE + db SPRITE_POKE_BALL +; 146e6 + +Group5Sprites: ; 146e6 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_M + db SPRITE_POKEFAN_M + db SPRITE_BLACK_BELT + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_FRUIT_TREE + db SPRITE_POKE_BALL +; 146fd + +Group3Sprites: ; 146fd + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_GAMEBOY_KID + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_LASS + db SPRITE_POKEFAN_F + db SPRITE_TEACHER + db SPRITE_YOUNGSTER + db SPRITE_GROWLITHE + db SPRITE_POKEFAN_M + db SPRITE_ROCKER + db SPRITE_FISHER + db SPRITE_SCIENTIST + db SPRITE_POKE_BALL + db SPRITE_BOULDER +; 14714 + +Group15Sprites: ; 14714 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SAILOR + db SPRITE_FISHING_GURU + db SPRITE_GENTLEMAN + db SPRITE_SUPER_NERD + db SPRITE_HO_OH + db SPRITE_TEACHER + db SPRITE_COOLTRAINER_F + db SPRITE_YOUNGSTER + db SPRITE_FAIRY + db SPRITE_POKE_BALL + db SPRITE_ROCK +; 1472b + +Group20Sprites: ; 1472b + db SPRITE_OAK + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_TWIN + db SPRITE_POKEFAN_M + db SPRITE_GRAMPS + db SPRITE_FAIRY + db SPRITE_SILVER + db SPRITE_FISHING_GURU + db SPRITE_POKE_BALL + db SPRITE_POKEDEX +; 14736 diff --git a/data/phone_contacts.asm b/data/phone_contacts.asm new file mode 100644 index 000000000..c5614a64c --- /dev/null +++ b/data/phone_contacts.asm @@ -0,0 +1,49 @@ +phone: macro +; trainer class, trainer id, map, ?, script 1, ?, script 2 + db \1, \2 + map \3 + db \4 + dba \5 + db \6 + dba \7 +endm + +; entries correspond to PHONE_* constants + phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone TRAINER_NONE, PHONECONTACT_MOM, KRISS_HOUSE_1F, 7, MomPhoneScript, 0, UnusedPhoneScript + phone TRAINER_NONE, PHONECONTACT_BIKESHOP, OAKS_LAB, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone TRAINER_NONE, PHONECONTACT_BILL, N_A, 7, BillPhoneScript1, 0, BillPhoneScript2 + phone TRAINER_NONE, PHONECONTACT_ELM, ELMS_LAB, 7, ElmPhoneScript1, 0, ElmPhoneScript2 + phone SCHOOLBOY, JACK1, NATIONAL_PARK, 7, JackPhoneScript1, 7, JackPhoneScript2 + phone POKEFANF, BEVERLY1, NATIONAL_PARK, 7, BeverlyPhoneScript1, 7, BeverlyPhoneScript2 + phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, 7, HueyPhoneScript1, 7, HueyPhoneScript2 + phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone COOLTRAINERM, GAVEN3, ROUTE_26, 7, GavenPhoneScript1, 7, GavenPhoneScript2 + phone COOLTRAINERF, BETH1, ROUTE_26, 7, BethPhoneScript1, 7, BethPhoneScript2 + phone BIRD_KEEPER, JOSE2, ROUTE_27, 7, JosePhoneScript1, 7, JosePhoneScript2 + phone COOLTRAINERF, REENA1, ROUTE_27, 7, ReenaPhoneScript1, 7, ReenaPhoneScript2 + phone YOUNGSTER, JOEY1, ROUTE_30, 7, JoeyPhoneScript1, 7, JoeyPhoneScript2 + phone BUG_CATCHER, WADE1, ROUTE_31, 7, WadePhoneScript1, 7, WadePhoneScript2 + phone FISHER, RALPH1, ROUTE_32, 7, RalphPhoneScript1, 7, RalphPhoneScript2 + phone PICNICKER, LIZ1, ROUTE_32, 7, LizPhoneScript1, 7, LizPhoneScript2 + phone HIKER, ANTHONY2, ROUTE_33, 7, AnthonyPhoneScript1, 7, AnthonyPhoneScript2 + phone CAMPER, TODD1, ROUTE_34, 7, ToddPhoneScript1, 7, ToddPhoneScript2 + phone PICNICKER, GINA1, ROUTE_34, 7, GinaPhoneScript1, 7, GinaPhoneScript2 + phone JUGGLER, IRWIN1, ROUTE_35, 7, IrwinPhoneScript1, 7, IrwinPhoneScript2 + phone BUG_CATCHER, ARNIE1, ROUTE_35, 7, ArniePhoneScript1, 7, ArniePhoneScript2 + phone SCHOOLBOY, ALAN1, ROUTE_36, 7, AlanPhoneScript1, 7, AlanPhoneScript2 + phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript + phone LASS, DANA1, ROUTE_38, 7, DanaPhoneScript1, 7, DanaPhoneScript2 + phone SCHOOLBOY, CHAD1, ROUTE_38, 7, ChadPhoneScript1, 7, ChadPhoneScript2 + phone POKEFANM, DEREK1, ROUTE_39, 7, DerekPhoneScript1, 7, DerekPhoneScript2 + phone FISHER, TULLY1, ROUTE_42, 7, TullyPhoneScript1, 7, TullyPhoneScript2 + phone POKEMANIAC, BRENT1, ROUTE_43, 7, BrentPhoneScript1, 7, BrentPhoneScript2 + phone PICNICKER, TIFFANY3, ROUTE_43, 7, TiffanyPhoneScript1, 7, TiffanyPhoneScript2 + phone BIRD_KEEPER, VANCE1, ROUTE_44, 7, VancePhoneScript1, 7, VancePhoneScript2 + phone FISHER, WILTON1, ROUTE_44, 7, WiltonPhoneScript1, 7, WiltonPhoneScript2 + phone BLACKBELT_T, KENJI3, ROUTE_45, 7, KenjiPhoneScript1, 7, KenjiPhoneScript2 + phone HIKER, PARRY1, ROUTE_45, 7, ParryPhoneScript1, 7, ParryPhoneScript2 + phone PICNICKER, ERIN1, ROUTE_46, 7, ErinPhoneScript1, 7, ErinPhoneScript2 + phone TRAINER_NONE, PHONECONTACT_BUENA, GOLDENROD_DEPT_STORE_ROOF, 7, BuenaPhoneScript1, 7, BuenaPhoneScript2 diff --git a/data/phone_special.asm b/data/phone_special.asm new file mode 100644 index 000000000..5446e95c9 --- /dev/null +++ b/data/phone_special.asm @@ -0,0 +1,16 @@ +specialcall: macro +; condition, contact, script + dw \1 + db \2 + dba \3 +endm + +; entries correspond to SPECIALCALL_* constants + specialcall SpecialCallOnlyWhenOutside, PHONE_ELM, ElmPhoneScript2 + specialcall SpecialCallOnlyWhenOutside, PHONE_ELM, ElmPhoneScript2 + specialcall SpecialCallOnlyWhenOutside, PHONE_ELM, ElmPhoneScript2 + specialcall SpecialCallOnlyWhenOutside, PHONE_ELM, ElmPhoneScript2 + specialcall SpecialCallWhereverYouAre, PHONE_ELM, ElmPhoneScript2 + specialcall SpecialCallWhereverYouAre, PHONE_OAK, BikeShopPhoneScript + specialcall SpecialCallWhereverYouAre, PHONE_MOM, MomPhoneLectureScript + specialcall SpecialCallOnlyWhenOutside, PHONE_ELM, ElmPhoneScript2 diff --git a/data/spawn_points.asm b/data/spawn_points.asm new file mode 100644 index 000000000..39b71c620 --- /dev/null +++ b/data/spawn_points.asm @@ -0,0 +1,39 @@ +spawn: MACRO +; map, y, x + map \1 + db \2, \3 +ENDM + +; entries correspond to SPAWN_* constants + + spawn KRISS_HOUSE_2F, 3, 3 + spawn VIRIDIAN_POKECENTER_1F, 5, 3 + + spawn PALLET_TOWN, 5, 6 + spawn VIRIDIAN_CITY, 23, 26 + spawn PEWTER_CITY, 13, 26 + spawn CERULEAN_CITY, 19, 22 + spawn ROUTE_10_NORTH, 11, 2 + spawn VERMILION_CITY, 9, 6 + spawn LAVENDER_TOWN, 5, 6 + spawn SAFFRON_CITY, 9, 30 + spawn CELADON_CITY, 29, 10 + spawn FUCHSIA_CITY, 19, 28 + spawn CINNABAR_ISLAND, 11, 12 + spawn ROUTE_23, 9, 6 + + spawn NEW_BARK_TOWN, 13, 6 + spawn CHERRYGROVE_CITY, 29, 4 + spawn VIOLET_CITY, 31, 26 + spawn ROUTE_32, 11, 74 + spawn AZALEA_TOWN, 15, 10 + spawn CIANWOOD_CITY, 23, 44 + spawn GOLDENROD_CITY, 15, 28 + spawn OLIVINE_CITY, 13, 22 + spawn ECRUTEAK_CITY, 23, 28 + spawn MAHOGANY_TOWN, 15, 14 + spawn LAKE_OF_RAGE, 21, 29 + spawn BLACKTHORN_CITY, 21, 30 + spawn SILVER_CAVE_OUTSIDE, 23, 20 + spawn FAST_SHIP_CABINS_SW_SSW_NW, 6, 2 + spawn N_A, -1, -1 diff --git a/data/sprite_anim_seqs.asm b/data/sprite_anim_seqs.asm new file mode 100644 index 000000000..8c70f96b3 --- /dev/null +++ b/data/sprite_anim_seqs.asm @@ -0,0 +1,92 @@ +; entries correspond to SPRITE_ANIM_INDEX_* constants + ; frameset sequence, tile +; SPRITE_ANIM_INDEX_PARTY_MON + db SPRITE_ANIM_FRAMESET_PARTY_MON, SPRITE_ANIM_SEQ_PARTY_MON, $00 +; SPRITE_ANIM_INDEX_01 + db SPRITE_ANIM_FRAMESET_07, SPRITE_ANIM_SEQ_04, $00 +; SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR + db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR, $05 +; SPRITE_ANIM_INDEX_GAMEFREAK_LOGO + db SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO, SPRITE_ANIM_SEQ_GAMEFREAK_LOGO, $00 +; SPRITE_ANIM_INDEX_GS_INTRO_STAR + db SPRITE_ANIM_FRAMESET_GS_INTRO_STAR, SPRITE_ANIM_SEQ_GS_INTRO_STAR, $06 +; SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE + db SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE, SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE, $06 +; SPRITE_ANIM_INDEX_SLOTS_GOLEM + db SPRITE_ANIM_FRAMESET_SLOTS_GOLEM, SPRITE_ANIM_SEQ_SLOTS_GOLEM, $07 +; SPRITE_ANIM_INDEX_SLOTS_CHANSEY + db SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY, SPRITE_ANIM_SEQ_SLOTS_CHANSEY, $07 +; SPRITE_ANIM_INDEX_SLOTS_EGG + db SPRITE_ANIM_FRAMESET_SLOTS_EGG, SPRITE_ANIM_SEQ_SLOTS_EGG, $07 +; SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR + db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_MAIL_CURSOR, $05 +; SPRITE_ANIM_INDEX_RED_WALK + db SPRITE_ANIM_FRAMESET_RED_WALK, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_0B + db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0D, $08 +; SPRITE_ANIM_INDEX_DUMMY_GAME + db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0E, $08 +; SPRITE_ANIM_INDEX_0D + db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0F, $08 +; SPRITE_ANIM_INDEX_TRADE_POKE_BALL + db SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL, SPRITE_ANIM_SEQ_TRADE_POKE_BALL, $00 +; SPRITE_ANIM_INDEX_TRADE_POOF + db SPRITE_ANIM_FRAMESET_TRADE_POOF, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE + db SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE, SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE, $00 +; SPRITE_ANIM_INDEX_TRADEMON_ICON + db SPRITE_ANIM_FRAMESET_TRADEMON_ICON, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00 +; SPRITE_ANIM_INDEX_TRADEMON_BUBBLE + db SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00 +; SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT + db SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT, SPRITE_ANIM_SEQ_REVEAL_NEW_MON, $00 +; SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB + db SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB, SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB, $00 +; SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED + db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_LEAF + db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_CUT_LEAVES, $00 +; SPRITE_ANIM_INDEX_CUT_TREE + db SPRITE_ANIM_FRAMESET_CUT_TREE, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_FLY_LEAF + db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_FLY_LEAF, $00 +; SPRITE_ANIM_INDEX_EGG_CRACK + db SPRITE_ANIM_FRAMESET_EGG_CRACK, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_1A + db SPRITE_ANIM_FRAMESET_24, SPRITE_ANIM_SEQ_19, $00 +; SPRITE_ANIM_INDEX_HEADBUTT + db SPRITE_ANIM_FRAMESET_HEADBUTT, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_EGG_HATCH + db SPRITE_ANIM_FRAMESET_EGG_HATCH, SPRITE_ANIM_SEQ_REVEAL_NEW_MON, $00 +; SPRITE_ANIM_INDEX_1D + db SPRITE_ANIM_FRAMESET_26, SPRITE_ANIM_SEQ_1A, $00 +; SPRITE_ANIM_INDEX_BLUE_WALK + db SPRITE_ANIM_FRAMESET_BLUE_WALK, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE + db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_20 + db SPRITE_ANIM_FRAMESET_2F, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_21 + db SPRITE_ANIM_FRAMESET_30, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_22 + db SPRITE_ANIM_FRAMESET_31, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_23 + db SPRITE_ANIM_FRAMESET_32, SPRITE_ANIM_SEQ_1B, $00 +; SPRITE_ANIM_INDEX_24 + db SPRITE_ANIM_FRAMESET_33, SPRITE_ANIM_SEQ_1C, $00 +; SPRITE_ANIM_INDEX_25 + db SPRITE_ANIM_FRAMESET_34, SPRITE_ANIM_SEQ_NULL, $00 +; SPRITE_ANIM_INDEX_INTRO_SUICUNE + db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE, SPRITE_ANIM_SEQ_INTRO_SUICUNE, $00 +; SPRITE_ANIM_INDEX_INTRO_PICHU + db SPRITE_ANIM_FRAMESET_INTRO_PICHU, SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER, $00 +; SPRITE_ANIM_INDEX_INTRO_WOOPER + db SPRITE_ANIM_FRAMESET_INTRO_WOOPER, SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER, $00 +; SPRITE_ANIM_INDEX_INTRO_UNOWN + db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1, SPRITE_ANIM_SEQ_INTRO_UNOWN, $00 +; SPRITE_ANIM_INDEX_INTRO_UNOWN_F + db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F, SPRITE_ANIM_SEQ_INTRO_UNOWN_F, $00 +; SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY + db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY, SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY, $00 +; SPRITE_ANIM_INDEX_CELEBI + db SPRITE_ANIM_FRAMESET_CELEBI_LEFT, SPRITE_ANIM_SEQ_NULL, $00 ; 2c diff --git a/data/sprite_mons.asm b/data/sprite_mons.asm new file mode 100644 index 000000000..62f7fc15d --- /dev/null +++ b/data/sprite_mons.asm @@ -0,0 +1,37 @@ +; entries correspond to SPRITE_* constants past SPRITE_POKEMON + + db UNOWN + db GEODUDE + db GROWLITHE + db WEEDLE + db SHELLDER + db ODDISH + db GENGAR + db ZUBAT + db MAGIKARP + db SQUIRTLE + db TOGEPI + db BUTTERFREE + db DIGLETT + db POLIWAG + db PIKACHU + db CLEFAIRY + db CHARMANDER + db JYNX + db STARMIE + db BULBASAUR + db JIGGLYPUFF + db GRIMER + db EKANS + db PARAS + db TENTACOOL + db TAUROS + db MACHOP + db VOLTORB + db LAPRAS + db RHYDON + db MOLTRES + db SNORLAX + db GYARADOS + db LUGIA + db HO_OH diff --git a/data/time_capsule/mon_order.asm b/data/time_capsule/mon_order.asm new file mode 100644 index 000000000..2769794e6 --- /dev/null +++ b/data/time_capsule/mon_order.asm @@ -0,0 +1,253 @@ + db RHYDON + db KANGASKHAN + db NIDORAN_M + db CLEFAIRY + db SPEAROW + db VOLTORB + db NIDOKING + db SLOWBRO + db IVYSAUR + db EXEGGUTOR + db LICKITUNG + db EXEGGCUTE + db GRIMER + db GENGAR + db NIDORAN_F + db NIDOQUEEN + db CUBONE + db RHYHORN + db LAPRAS + db ARCANINE + db MEW + db GYARADOS + db SHELLDER + db TENTACOOL + db GASTLY + db SCYTHER + db STARYU + db BLASTOISE + db PINSIR + db TANGELA + db SCIZOR ; MISSINGNO. + db SHUCKLE ; MISSINGNO. + db GROWLITHE + db ONIX + db FEAROW + db PIDGEY + db SLOWPOKE + db KADABRA + db GRAVELER + db CHANSEY + db MACHOKE + db MR__MIME + db HITMONLEE + db HITMONCHAN + db ARBOK + db PARASECT + db PSYDUCK + db DROWZEE + db GOLEM + db HERACROSS ; MISSINGNO. + db MAGMAR + db HO_OH ; MISSINGNO. + db ELECTABUZZ + db MAGNETON + db KOFFING + db SNEASEL ; MISSINGNO. + db MANKEY + db SEEL + db DIGLETT + db TAUROS + db TEDDIURSA ; MISSINGNO. + db URSARING ; MISSINGNO. + db SLUGMA ; MISSINGNO. + db FARFETCH_D + db VENONAT + db DRAGONITE + db MAGCARGO ; MISSINGNO. + db SWINUB ; MISSINGNO. + db PILOSWINE ; MISSINGNO. + db DODUO + db POLIWAG + db JYNX + db MOLTRES + db ARTICUNO + db ZAPDOS + db DITTO + db MEOWTH + db KRABBY + db CORSOLA ; MISSINGNO. + db REMORAID ; MISSINGNO. + db OCTILLERY ; MISSINGNO. + db VULPIX + db NINETALES + db PIKACHU + db RAICHU + db DELIBIRD ; MISSINGNO. + db MANTINE ; MISSINGNO. + db DRATINI + db DRAGONAIR + db KABUTO + db KABUTOPS + db HORSEA + db SEADRA + db SKARMORY ; MISSINGNO. + db HOUNDOUR ; MISSINGNO. + db SANDSHREW + db SANDSLASH + db OMANYTE + db OMASTAR + db JIGGLYPUFF + db WIGGLYTUFF + db EEVEE + db FLAREON + db JOLTEON + db VAPOREON + db MACHOP + db ZUBAT + db EKANS + db PARAS + db POLIWHIRL + db POLIWRATH + db WEEDLE + db KAKUNA + db BEEDRILL + db HOUNDOOM ; MISSINGNO. + db DODRIO + db PRIMEAPE + db DUGTRIO + db VENOMOTH + db DEWGONG + db KINGDRA ; MISSINGNO. + db PHANPY ; MISSINGNO. + db CATERPIE + db METAPOD + db BUTTERFREE + db MACHAMP + db DONPHAN ; MISSINGNO. + db GOLDUCK + db HYPNO + db GOLBAT + db MEWTWO + db SNORLAX + db MAGIKARP + db PORYGON2 ; MISSINGNO. + db STANTLER ; MISSINGNO. + db MUK + db SMEARGLE ; MISSINGNO. + db KINGLER + db CLOYSTER + db TYROGUE ; MISSINGNO. + db ELECTRODE + db CLEFABLE + db WEEZING + db PERSIAN + db MAROWAK + db HITMONTOP ; MISSINGNO. + db HAUNTER + db ABRA + db ALAKAZAM + db PIDGEOTTO + db PIDGEOT + db STARMIE + db BULBASAUR + db VENUSAUR + db TENTACRUEL + db SMOOCHUM ; MISSINGNO. + db GOLDEEN + db SEAKING + db ELEKID ; MISSINGNO. + db MAGBY ; MISSINGNO. + db MILTANK ; MISSINGNO. + db BLISSEY ; MISSINGNO. + db PONYTA + db RAPIDASH + db RATTATA + db RATICATE + db NIDORINO + db NIDORINA + db GEODUDE + db PORYGON + db AERODACTYL + db RAIKOU ; MISSINGNO. + db MAGNEMITE + db ENTEI ; MISSINGNO. + db SUICUNE ; MISSINGNO. + db CHARMANDER + db SQUIRTLE + db CHARMELEON + db WARTORTLE + db CHARIZARD + db LARVITAR ; MISSINGNO. + db PUPITAR ; MISSINGNO. KABUTOPS FOSSIL + db TYRANITAR ; MISSINGNO. AERODACTYL FOSSIL + db LUGIA ; MISSINGNO. GHOST + db ODDISH + db GLOOM + db VILEPLUME + db BELLSPROUT + db WEEPINBELL + db VICTREEBEL + + db CHIKORITA + db BAYLEEF + db MEGANIUM + db CYNDAQUIL + db QUILAVA + db TYPHLOSION + db TOTODILE + db CROCONAW + db FERALIGATR + db SENTRET + db FURRET + db HOOTHOOT + db NOCTOWL + db LEDYBA + db LEDIAN + db SPINARAK + db ARIADOS + db CROBAT + db CHINCHOU + db LANTURN + db PICHU + db CLEFFA + db IGGLYBUFF + db TOGEPI + db TOGETIC + db NATU + db XATU + db MAREEP + db FLAAFFY + db AMPHAROS + db BELLOSSOM + db MARILL + db AZUMARILL + db SUDOWOODO + db POLITOED + db HOPPIP + db SKIPLOOM + db JUMPLUFF + db AIPOM + db SUNKERN + db SUNFLORA + db YANMA + db WOOPER + db QUAGSIRE + db ESPEON + db UMBREON + db MURKROW + db SLOWKING + db MISDREAVUS + db UNOWN + db WOBBUFFET + db GIRAFARIG + db PINECO + db FORRETRESS + db DUNSPARCE + db GLIGAR + db STEELIX + db SNUBBULL + db GRANBULL + db QWILFISH + db WOBBUFFET + db WOBBUFFET diff --git a/data/time_capsule/special_stats.asm b/data/time_capsule/special_stats.asm new file mode 100644 index 000000000..7da90e1c9 --- /dev/null +++ b/data/time_capsule/special_stats.asm @@ -0,0 +1,152 @@ +; The original base Special stat for each Pokémon from Red/Blue + db 65 ; BULBASAUR + db 80 ; IVYSAUR + db 100 ; VENUSAUR + db 50 ; CHARMANDER + db 65 ; CHARMELEON + db 85 ; CHARIZARD + db 50 ; SQUIRTLE + db 65 ; WARTORTLE + db 85 ; BLASTOISE + db 20 ; CATERPIE + db 25 ; METAPOD + db 80 ; BUTTERFREE + db 20 ; WEEDLE + db 25 ; KAKUNA + db 45 ; BEEDRILL + db 35 ; PIDGEY + db 50 ; PIDGEOTTO + db 70 ; PIDGEOT + db 25 ; RATTATA + db 50 ; RATICATE + db 31 ; SPEAROW + db 61 ; FEAROW + db 40 ; EKANS + db 65 ; ARBOK + db 50 ; PIKACHU + db 90 ; RAICHU + db 30 ; SANDSHREW + db 55 ; SANDSLASH + db 40 ; NIDORAN_F + db 55 ; NIDORINA + db 75 ; NIDOQUEEN + db 40 ; NIDORAN_M + db 55 ; NIDORINO + db 75 ; NIDOKING + db 60 ; CLEFAIRY + db 85 ; CLEFABLE + db 65 ; VULPIX + db 100 ; NINETALES + db 25 ; JIGGLYPUFF + db 50 ; WIGGLYTUFF + db 40 ; ZUBAT + db 75 ; GOLBAT + db 75 ; ODDISH + db 85 ; GLOOM + db 100 ; VILEPLUME + db 55 ; PARAS + db 80 ; PARASECT + db 40 ; VENONAT + db 90 ; VENOMOTH + db 45 ; DIGLETT + db 70 ; DUGTRIO + db 40 ; MEOWTH + db 65 ; PERSIAN + db 50 ; PSYDUCK + db 80 ; GOLDUCK + db 35 ; MANKEY + db 60 ; PRIMEAPE + db 50 ; GROWLITHE + db 80 ; ARCANINE + db 40 ; POLIWAG + db 50 ; POLIWHIRL + db 70 ; POLIWRATH + db 105 ; ABRA + db 120 ; KADABRA + db 135 ; ALAKAZAM + db 35 ; MACHOP + db 50 ; MACHOKE + db 65 ; MACHAMP + db 70 ; BELLSPROUT + db 85 ; WEEPINBELL + db 100 ; VICTREEBEL + db 100 ; TENTACOOL + db 120 ; TENTACRUEL + db 30 ; GEODUDE + db 45 ; GRAVELER + db 55 ; GOLEM + db 65 ; PONYTA + db 80 ; RAPIDASH + db 40 ; SLOWPOKE + db 80 ; SLOWBRO + db 95 ; MAGNEMITE + db 120 ; MAGNETON + db 58 ; FARFETCH_D + db 35 ; DODUO + db 60 ; DODRIO + db 70 ; SEEL + db 95 ; DEWGONG + db 40 ; GRIMER + db 65 ; MUK + db 45 ; SHELLDER + db 85 ; CLOYSTER + db 100 ; GASTLY + db 115 ; HAUNTER + db 130 ; GENGAR + db 30 ; ONIX + db 90 ; DROWZEE + db 115 ; HYPNO + db 25 ; KRABBY + db 50 ; KINGLER + db 55 ; VOLTORB + db 80 ; ELECTRODE + db 60 ; EXEGGCUTE + db 125 ; EXEGGUTOR + db 40 ; CUBONE + db 50 ; MAROWAK + db 35 ; HITMONLEE + db 35 ; HITMONCHAN + db 60 ; LICKITUNG + db 60 ; KOFFING + db 85 ; WEEZING + db 30 ; RHYHORN + db 45 ; RHYDON + db 105 ; CHANSEY + db 100 ; TANGELA + db 40 ; KANGASKHAN + db 70 ; HORSEA + db 95 ; SEADRA + db 50 ; GOLDEEN + db 80 ; SEAKING + db 70 ; STARYU + db 100 ; STARMIE + db 100 ; MR__MIME + db 55 ; SCYTHER + db 95 ; JYNX + db 85 ; ELECTABUZZ + db 85 ; MAGMAR + db 55 ; PINSIR + db 70 ; TAUROS + db 20 ; MAGIKARP + db 100 ; GYARADOS + db 95 ; LAPRAS + db 48 ; DITTO + db 65 ; EEVEE + db 110 ; VAPOREON + db 110 ; JOLTEON + db 110 ; FLAREON + db 75 ; PORYGON + db 90 ; OMANYTE + db 115 ; OMASTAR + db 45 ; KABUTO + db 70 ; KABUTOPS + db 60 ; AERODACTYL + db 65 ; SNORLAX + db 125 ; ARTICUNO + db 125 ; ZAPDOS + db 125 ; MOLTRES + db 50 ; DRATINI + db 70 ; DRAGONAIR + db 100 ; DRAGONITE + db 154 ; MEWTWO + db 100 ; MEW diff --git a/data/tmhm_moves.asm b/data/tmhm_moves.asm new file mode 100644 index 000000000..be9d4916b --- /dev/null +++ b/data/tmhm_moves.asm @@ -0,0 +1,67 @@ +; TMs + db DYNAMICPUNCH + db HEADBUTT + db CURSE + db ROLLOUT + db ROAR + db TOXIC + db ZAP_CANNON + db ROCK_SMASH + db PSYCH_UP + db HIDDEN_POWER + db SUNNY_DAY + db SWEET_SCENT + db SNORE + db BLIZZARD + db HYPER_BEAM + db ICY_WIND + db PROTECT + db RAIN_DANCE + db GIGA_DRAIN + db ENDURE + db FRUSTRATION + db SOLARBEAM + db IRON_TAIL + db DRAGONBREATH + db THUNDER + db EARTHQUAKE + db RETURN + db DIG + db PSYCHIC_M + db SHADOW_BALL + db MUD_SLAP + db DOUBLE_TEAM + db ICE_PUNCH + db SWAGGER + db SLEEP_TALK + db SLUDGE_BOMB + db SANDSTORM + db FIRE_BLAST + db SWIFT + db DEFENSE_CURL + db THUNDERPUNCH + db DREAM_EATER + db DETECT + db REST + db ATTRACT + db THIEF + db STEEL_WING + db FIRE_PUNCH + db FURY_CUTTER + db NIGHTMARE + +; HMs + db CUT + db FLY + db SURF + db STRENGTH + db FLASH + db WHIRLPOOL + db WATERFALL + +; Move tutor + db FLAMETHROWER + db THUNDERBOLT + db ICE_BEAM + + db 0 ; end diff --git a/data/wild/bug_contest_mons.asm b/data/wild/bug_contest_mons.asm new file mode 100644 index 000000000..1b74fb3ee --- /dev/null +++ b/data/wild/bug_contest_mons.asm @@ -0,0 +1,12 @@ + ; %, species, min, max + db 20, CATERPIE, 7, 18 + db 20, WEEDLE, 7, 18 + db 10, METAPOD, 9, 18 + db 10, KAKUNA, 9, 18 + db 5, BUTTERFREE, 12, 15 + db 5, BEEDRILL, 12, 15 + db 10, VENONAT, 10, 16 + db 10, PARAS, 10, 17 + db 5, SCYTHER, 13, 14 + db 5, PINSIR, 13, 14 + db -1, VENOMOTH, 30, 40 diff --git a/data/wild/probabilities.asm b/data/wild/probabilities.asm new file mode 100644 index 000000000..a18e9d336 --- /dev/null +++ b/data/wild/probabilities.asm @@ -0,0 +1,15 @@ +GrassMonProbTable: ; 2a1cb + db 30, $0 ; 30% chance + db 60, $2 ; 30% chance + db 80, $4 ; 20% chance + db 90, $6 ; 10% chance + db 95, $8 ; 5% chance + db 99, $a ; 4% chance + db 100, $c ; 1% chance +; 2a1d9 + +WaterMonProbTable: ; 2a1d9 + db 60, $0 ; 60% chance + db 90, $2 ; 30% chance + db 100, $4 ; 10% chance +; 2a1df diff --git a/data/wild/roammon_maps.asm b/data/wild/roammon_maps.asm new file mode 100644 index 000000000..403ebef25 --- /dev/null +++ b/data/wild/roammon_maps.asm @@ -0,0 +1,31 @@ +; Maps that roaming monsters can be on, and possible maps they can jump to. +; Notably missing are Route 40 and Route 41, which are water routes. + +roam_map: macro +; map, # of other maps, other maps + map \1 + db \2 +rept \2 + map \3 + shift +endr + db 0 +endm + + roam_map ROUTE_29, 2, ROUTE_30, ROUTE_46 + roam_map ROUTE_30, 2, ROUTE_29, ROUTE_31 + roam_map ROUTE_31, 3, ROUTE_30, ROUTE_32, ROUTE_36 + roam_map ROUTE_32, 3, ROUTE_36, ROUTE_31, ROUTE_33 + roam_map ROUTE_33, 2, ROUTE_32, ROUTE_34 + roam_map ROUTE_34, 2, ROUTE_33, ROUTE_35 + roam_map ROUTE_35, 2, ROUTE_34, ROUTE_36 + roam_map ROUTE_36, 4, ROUTE_35, ROUTE_31, ROUTE_32, ROUTE_37 + roam_map ROUTE_37, 3, ROUTE_36, ROUTE_38, ROUTE_42 + roam_map ROUTE_38, 3, ROUTE_37, ROUTE_39, ROUTE_42 + roam_map ROUTE_39, 1, ROUTE_38 + roam_map ROUTE_42, 4, ROUTE_43, ROUTE_44, ROUTE_37, ROUTE_38 + roam_map ROUTE_43, 2, ROUTE_42, ROUTE_44 + roam_map ROUTE_44, 3, ROUTE_42, ROUTE_43, ROUTE_45 + roam_map ROUTE_45, 2, ROUTE_44, ROUTE_46 + roam_map ROUTE_46, 2, ROUTE_45, ROUTE_29 + db -1 ; end diff --git a/data/wild/treemon_maps.asm b/data/wild/treemon_maps.asm new file mode 100644 index 000000000..47491c2c9 --- /dev/null +++ b/data/wild/treemon_maps.asm @@ -0,0 +1,50 @@ +treemon_map: macro + map \1 + db \2 ; treemon set +endm + +TreeMonMaps: ; b825e + treemon_map ROUTE_26, 4 + treemon_map ROUTE_27, 4 + treemon_map ROUTE_28, 0 + treemon_map ROUTE_29, 3 + treemon_map ROUTE_30, 3 + treemon_map ROUTE_31, 3 + treemon_map ROUTE_32, 4 + treemon_map ROUTE_33, 2 + treemon_map ROUTE_34, 3 + treemon_map ROUTE_35, 3 + treemon_map ROUTE_36, 3 + treemon_map ROUTE_37, 3 + treemon_map ROUTE_38, 3 + treemon_map ROUTE_39, 3 + treemon_map ROUTE_40, 0 + treemon_map ROUTE_41, 0 + treemon_map ROUTE_42, 2 + treemon_map ROUTE_43, 5 + treemon_map ROUTE_44, 1 + treemon_map ROUTE_45, 1 + treemon_map ROUTE_46, 1 + treemon_map NEW_BARK_TOWN, 0 + treemon_map CHERRYGROVE_CITY, 0 + treemon_map VIOLET_CITY, 0 + treemon_map AZALEA_TOWN, 2 + treemon_map CIANWOOD_CITY, 0 + treemon_map GOLDENROD_CITY, 0 + treemon_map OLIVINE_CITY, 0 + treemon_map ECRUTEAK_CITY, 0 + treemon_map MAHOGANY_TOWN, 0 + treemon_map LAKE_OF_RAGE, 5 + treemon_map BLACKTHORN_CITY, 0 + treemon_map SILVER_CAVE_OUTSIDE, 0 + treemon_map ILEX_FOREST, 6 + db -1 +; b82c5 + +RockMonMaps: ; b82c5 + treemon_map CIANWOOD_CITY, 7 + treemon_map ROUTE_40, 7 + treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7 + treemon_map SLOWPOKE_WELL_B1F, 7 + db -1 +; b82d2 diff --git a/data/wild/treemons.asm b/data/wild/treemons.asm new file mode 100644 index 000000000..0cb8fa83d --- /dev/null +++ b/data/wild/treemons.asm @@ -0,0 +1,128 @@ +TreeMons: ; b82e8 + dw TreeMons1 + dw TreeMons1 + dw TreeMons2 + dw TreeMons3 + dw TreeMons4 + dw TreeMons5 + dw TreeMons6 + dw RockMons + dw TreeMons1 + +; Two tables each (common, rare). +; Structure: +; db %, species, level + +TreeMons1: ; b82fa +; common + db 50, SPEAROW, 10 + db 15, SPEAROW, 10 + db 15, SPEAROW, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 +; rare + db 50, SPEAROW, 10 + db 15, HERACROSS, 10 + db 15, HERACROSS, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 + +TreeMons2: ; b8320 +; common + db 50, SPEAROW, 10 + db 15, EKANS, 10 + db 15, SPEAROW, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 +; rare + db 50, SPEAROW, 10 + db 15, HERACROSS, 10 + db 15, HERACROSS, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 + +TreeMons3: ; b8346 +; common + db 50, HOOTHOOT, 10 + db 15, SPINARAK, 10 + db 15, LEDYBA, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 +; rare + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + +TreeMons4: ; b836c +; common + db 50, HOOTHOOT, 10 + db 15, EKANS, 10 + db 15, HOOTHOOT, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 +; rare + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + +TreeMons5: ; b8392 +; common + db 50, HOOTHOOT, 10 + db 15, VENONAT, 10 + db 15, HOOTHOOT, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 +; rare + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + +TreeMons6: ; b83b8 +; common + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, NOCTOWL, 10 + db 5, BUTTERFREE, 10 + db 5, BEEDRILL, 10 + db -1 +; rare + db 50, HOOTHOOT, 10 + db 15, CATERPIE, 10 + db 15, WEEDLE, 10 + db 10, HOOTHOOT, 10 + db 5, METAPOD, 10 + db 5, KAKUNA, 10 + db -1 + +RockMons: ; b83de + db 90, KRABBY, 15 + db 10, SHUCKLE, 15 + db -1 +; b83e5 diff --git a/engine/battle_tower.asm b/engine/battle_tower.asm new file mode 100644 index 000000000..b880a099b --- /dev/null +++ b/engine/battle_tower.asm @@ -0,0 +1,210 @@ +Function_LoadOpponentTrainerAndPokemons: ; 1f8000 + ld a, [rSVBK] + push af + ld a, BANK(BT_OTTrainer) + ld [rSVBK], a + + ; Fill BT_OTTrainer with zeros + xor a + ld hl, BT_OTTrainer + ld bc, BT_OTTrainerEnd - BT_OTTrainer + call ByteFill + + ; Write $ff into the Item-Slots + ld a, $ff + ld [BT_OTPkmn1Item], a + ld [BT_OTPkmn2Item], a + ld [BT_OTPkmn3Item], a + + ; Set BT_OTTrainer as start address to write the following data to + ld de, BT_OTTrainer + + ld a, [hRandomAdd] + ld b, a +.resample ; loop to find a random trainer + call Random + ld a, [hRandomAdd] + add b + ld b, a ; b contains the nr of the trainer +IF DEF(CRYSTAL11) + and (1 << 7) - 1 + cp 70 +ELSE + and (1 << 5) - 1 + cp 21 +ENDC + jr nc, .resample + ld b, a + + ld a, BANK(sBTTrainers) + call GetSRAMBank + + ld c, BATTLETOWER_NROFTRAINERS + ld hl, sBTTrainers +.next_trainer + ld a, [hli] + cp b + jr z, .resample + dec c + jr nz, .next_trainer ; c <= 7 initialise all 7 trainers? + + ld hl, sBTTrainers + ld a, [sNrOfBeatenBattleTowerTrainers] + ld c, a + ld a, b + ld b, 0 + add hl, bc + ld [hl], a + + call CloseSRAM + + push af +; Copy name (10 bytes) and class (1 byte) of trainer + ld hl, BattleTowerTrainers + ld bc, NAME_LENGTH + call AddNTimes + ld bc, NAME_LENGTH + call CopyBytes + + call Function_LoadRandomBattleTowerPkmn + pop af + + ld hl, BattleTowerTrainerData + ld bc, BATTLETOWER_TRAINERDATALENGTH + call AddNTimes + ld bc, BATTLETOWER_TRAINERDATALENGTH +.copy_bt_trainer_data_loop + ld a, BANK(BattleTowerTrainerData) + call GetFarByte + ld [de], a + inc hl + inc de + dec bc + ld a, b + or c + jr nz, .copy_bt_trainer_data_loop + + pop af + ld [rSVBK], a + + ret + + +Function_LoadRandomBattleTowerPkmn: ; 1f8081 + ld c, BATTLETOWER_NROFPKMNS +.loop + push bc + ld a, BANK(sBTPkmnPrevTrainer1) + call GetSRAMBank + +.FindARandomBattleTowerPkmn: + ; From Which LevelGroup are the Pkmn loaded + ; a = 1..10 + ld a, [wBTChoiceOfLvlGroup] ; [$d800] + dec a + ld hl, BattleTowerMons + ld bc, BattleTowerMons2 - BattleTowerMons1 + call AddNTimes + + ld a, [hRandomAdd] + ld b, a +.resample + call Random + ld a, [hRandomAdd] + add b + ld b, a + and $1f + cp BATTLETOWER_NRMONSPERLEVELBRACKET + jr nc, .resample + ; in register 'a' is the chosen Pkmn of the LevelGroup + + ; Check if Pkmn was already loaded before + ; Check current and the 2 previous teams + ; includes check if item is double at the current team + ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH + call AddNTimes + ld a, [hli] + ld b, a + ld a, [hld] + ld c, a + ld a, [BT_OTPkmn1] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn1Item] + cp c + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn2] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn2Item] + cp c + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn3] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn3Item] + cp c + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevTrainer1] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevTrainer2] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevTrainer3] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevPrevTrainer1] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevPrevTrainer2] + cp b + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevPrevTrainer3] + cp b + jr z, .FindARandomBattleTowerPkmn + + ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH + call CopyBytes + + ld a, [wNamedObjectIndexBuffer] + push af + push de + ld hl, - (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + add hl, de + ld a, [hl] + ld [wNamedObjectIndexBuffer], a + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + push hl + call GetPokemonName + ld h, d + ld l, e + pop de + ld bc, PKMN_NAME_LENGTH + call CopyBytes + + pop de + pop af + ld [wNamedObjectIndexBuffer], a + pop bc + dec c + jp nz, .loop + + ld a, [sBTPkmnPrevTrainer1] + ld [sBTPkmnPrevPrevTrainer1], a + ld a, [sBTPkmnPrevTrainer2] + ld [sBTPkmnPrevPrevTrainer2], a + ld a, [sBTPkmnPrevTrainer3] + ld [sBTPkmnPrevPrevTrainer3], a + ld a, [BT_OTPkmn1] + ld [sBTPkmnPrevTrainer1], a + ld a, [BT_OTPkmn2] + ld [sBTPkmnPrevTrainer2], a + ld a, [BT_OTPkmn3] + ld [sBTPkmnPrevTrainer3], a + call CloseSRAM + ret +; 1f814e + +INCLUDE "data/battle_tower.asm" diff --git a/engine/decorations.asm b/engine/decorations.asm index ad82a2080..4d8410bb6 100755 --- a/engine/decorations.asm +++ b/engine/decorations.asm @@ -541,70 +541,10 @@ GetDecorationSprite: ; 26a44 ret ; 26a4f -decoration: MACRO - ; type, name, command, event flag, tile/sprite - db \1, \2, \3 - dw \4 - db \5 -ENDM - DecorationAttributes: ; 26a4f - decoration DECO_PLANT, $00, $0, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BED, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_BED, FEATHERY_BED, SET_UP_BED, EVENT_DECO_BED_1, $1b - decoration DECO_BED, PINK_BED, SET_UP_BED, EVENT_DECO_BED_2, $1c - decoration DECO_BED, POLKADOT_BED, SET_UP_BED, EVENT_DECO_BED_3, $1d - decoration DECO_BED, PIKACHU_BED, SET_UP_BED, EVENT_DECO_BED_4, $1e - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CARPET, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_CARPET, RED_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_1, $08 - decoration DECO_CARPET, BLUE_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_2, $0b - decoration DECO_CARPET, YELLOW_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_3, $0e - decoration DECO_CARPET, GREEN_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_4, $11 - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_PLANT, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_PLANT, MAGNAPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_1, $20 - decoration DECO_PLANT, TROPICPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_2, $21 - decoration DECO_PLANT, JUMBOPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_3, $22 - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_POSTER, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_PLANT, TOWN_MAP_D, SET_UP_POSTER, EVENT_DECO_PLANT_4, $1f - decoration DECO_POSTER, PIKACHU, SET_UP_POSTER, EVENT_DECO_POSTER_1, $23 - decoration DECO_POSTER, CLEFAIRY, SET_UP_POSTER, EVENT_DECO_POSTER_2, $24 - decoration DECO_POSTER, JIGGLYPUFF, SET_UP_POSTER, EVENT_DECO_POSTER_3, $25 - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CONSOLE, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_PLANT, FAMICOM, SET_UP_CONSOLE, EVENT_DECO_FAMICOM, SPRITE_FAMICOM - decoration DECO_PLANT, SUPER_NES, SET_UP_CONSOLE, EVENT_DECO_SNES, SPRITE_SNES - decoration DECO_PLANT, NINTENDO_64, SET_UP_CONSOLE, EVENT_DECO_N64, SPRITE_N64 - decoration DECO_PLANT, VIRTUAL_BOY, SET_UP_CONSOLE, EVENT_DECO_VIRTUAL_BOY, SPRITE_VIRTUAL_BOY - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BIG_DOLL, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_BIGDOLL, SNORLAX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_SNORLAX_DOLL, SPRITE_BIG_SNORLAX - decoration DECO_BIGDOLL, ONIX, SET_UP_BIG_DOLL, EVENT_DECO_BIG_ONIX_DOLL, SPRITE_BIG_ONIX - decoration DECO_BIGDOLL, LAPRAS, SET_UP_BIG_DOLL, EVENT_DECO_BIG_LAPRAS_DOLL, SPRITE_BIG_LAPRAS - decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_DOLL, EVENT_GAVE_KURT_APRICORNS, $00 - decoration DECO_DOLL, PIKACHU, SET_UP_DOLL, EVENT_DECO_PIKACHU_DOLL, SPRITE_PIKACHU - decoration DECO_PLANT, SURF_PIKA_DOLL, SET_UP_DOLL, EVENT_DECO_SURFING_PIKACHU_DOLL, SPRITE_SURFING_PIKACHU - decoration DECO_DOLL, CLEFAIRY, SET_UP_DOLL, EVENT_DECO_CLEFAIRY_DOLL, SPRITE_CLEFAIRY - decoration DECO_DOLL, JIGGLYPUFF, SET_UP_DOLL, EVENT_DECO_JIGGLYPUFF_DOLL, SPRITE_JIGGLYPUFF - decoration DECO_DOLL, BULBASAUR, SET_UP_DOLL, EVENT_DECO_BULBASAUR_DOLL, SPRITE_BULBASAUR - decoration DECO_DOLL, CHARMANDER, SET_UP_DOLL, EVENT_DECO_CHARMANDER_DOLL, SPRITE_CHARMANDER - decoration DECO_DOLL, SQUIRTLE, SET_UP_DOLL, EVENT_DECO_SQUIRTLE_DOLL, SPRITE_SQUIRTLE - decoration DECO_DOLL, POLIWAG, SET_UP_DOLL, EVENT_DECO_POLIWAG_DOLL, SPRITE_POLIWAG - decoration DECO_DOLL, DIGLETT, SET_UP_DOLL, EVENT_DECO_DIGLETT_DOLL, SPRITE_DIGLETT - decoration DECO_DOLL, STARYU, SET_UP_DOLL, EVENT_DECO_STARMIE_DOLL, SPRITE_STARMIE - decoration DECO_DOLL, MAGIKARP, SET_UP_DOLL, EVENT_DECO_MAGIKARP_DOLL, SPRITE_MAGIKARP - decoration DECO_DOLL, ODDISH, SET_UP_DOLL, EVENT_DECO_ODDISH_DOLL, SPRITE_ODDISH - decoration DECO_DOLL, GENGAR, SET_UP_DOLL, EVENT_DECO_GENGAR_DOLL, SPRITE_GENGAR - decoration DECO_DOLL, SHELLDER, SET_UP_DOLL, EVENT_DECO_SHELLDER_DOLL, SPRITE_SHELLDER - decoration DECO_DOLL, GRIMER, SET_UP_DOLL, EVENT_DECO_GRIMER_DOLL, SPRITE_GRIMER - decoration DECO_DOLL, VOLTORB, SET_UP_DOLL, EVENT_DECO_VOLTORB_DOLL, SPRITE_VOLTORB - decoration DECO_DOLL, WEEDLE, SET_UP_DOLL, EVENT_DECO_WEEDLE_DOLL, SPRITE_WEEDLE - decoration DECO_DOLL, UNOWN, SET_UP_DOLL, EVENT_DECO_UNOWN_DOLL, SPRITE_UNOWN - decoration DECO_DOLL, GEODUDE, SET_UP_DOLL, EVENT_DECO_GEODUDE_DOLL, SPRITE_GEODUDE - decoration DECO_DOLL, MACHOP, SET_UP_DOLL, EVENT_DECO_MACHOP_DOLL, SPRITE_MACHOP - decoration DECO_DOLL, TENTACOOL, SET_UP_DOLL, EVENT_DECO_TENTACOOL_DOLL, SPRITE_TENTACOOL - decoration DECO_PLANT, GOLD_TROPHY, SET_UP_DOLL, EVENT_DECO_GOLD_TROPHY, SPRITE_GOLD_TROPHY - decoration DECO_PLANT, SILVER_TROPHY, SET_UP_DOLL, EVENT_DECO_SILVER_TROPHY, SPRITE_SILVER_TROPHY +INCLUDE "data/decoration_attributes.asm" ; 26b8d - DecorationNames: ; 26b8d db "CANCEL@" db "PUT IT AWAY@" diff --git a/engine/delete_save_change_clock.asm b/engine/delete_save_change_clock.asm index 7a806ad01..782b95425 100755 --- a/engine/delete_save_change_clock.asm +++ b/engine/delete_save_change_clock.asm @@ -127,7 +127,7 @@ ClockResetPassword: ; 4d41e ld e, a ld d, $0 add hl, de - ld [hl], $61 + ld [hl], "▲" ret .dpadinput ; 4d490 @@ -227,7 +227,7 @@ ClockResetPassword: ; 4d41e ld c, $2 call .ComponentFromNumber ld hl, sPlayerData + (PlayerName - wPlayerData) - ld c, $5 ; PLAYER_NAME_LENGTH_J + ld c, NAME_LENGTH_JAPANESE - 1 call .ComponentFromString ld hl, sPlayerData + (Money - wPlayerData) ld c, $3 diff --git a/engine/engine_flags.asm b/engine/engine_flags.asm index 943735ca6..3ff7f42dd 100644 --- a/engine/engine_flags.asm +++ b/engine/engine_flags.asm @@ -84,205 +84,4 @@ EngineFlagAction:: ; 80430 EngineFlags: ; 80462 -; All locations are in WRAM bank 1. -engine_flag: MACRO - dwb \1, 1 << \2 -ENDM - ; location, bit - - ; pokegear - engine_flag wPokegearFlags, 1 ; radio card ; $0 - engine_flag wPokegearFlags, 0 ; map card - engine_flag wPokegearFlags, 2 ; phone card - engine_flag wPokegearFlags, 3 ; expn card - engine_flag wPokegearFlags, 7 ; on/off - - ; wDayCareMan, 7 ; day-care 1 on - engine_flag wDayCareMan, 6 ; egg is ready - ; wDayCareMan, 5 ; monster 1 and 2 are compatible - engine_flag wDayCareMan, 0 ; monster 1 in day-care - - ; wDayCareLady, 7 = day-care 2 on - engine_flag wDayCareLady, 0 ; monster 2 in day-care - - engine_flag wMomSavingMoney, 0 ; mom saving money ; $8 - engine_flag wMomSavingMoney, 7 ; dst - - engine_flag wUnusedTwoDayTimerOn, 0 ; unused, possibly related to a 2-day timer - - engine_flag StatusFlags, 0 ; pokedex - engine_flag StatusFlags, 1 ; unown dex - engine_flag StatusFlags, 3 ; pokerus - engine_flag StatusFlags, 4 ; rocket signal on ch20 - engine_flag StatusFlags, 6 ; credits skip - engine_flag StatusFlags, 7 ; bug contest on ; $10 - engine_flag StatusFlags2, 2 ; bug contest timer - engine_flag StatusFlags2, 1 ; safari zone? - engine_flag StatusFlags2, 0 ; rockets in radio tower - engine_flag StatusFlags2, 4 ; bike shop call enabled (1024 bike steps reqd) - engine_flag StatusFlags2, 5 ; give pokerus - engine_flag StatusFlags2, 6 ; berry -> berry juice when trading? - engine_flag StatusFlags2, 7 ; rockets in mahogany - - engine_flag BikeFlags, 0 ; strength active ; $18 - engine_flag BikeFlags, 1 ; always on bike (cant surf) - engine_flag BikeFlags, 2 ; downhill (cycling road) - - engine_flag JohtoBadges, 0 ; zephyrbadge - engine_flag JohtoBadges, 1 ; hivebadge - engine_flag JohtoBadges, 2 ; plainbadge - engine_flag JohtoBadges, 3 ; fogbadge - engine_flag JohtoBadges, 4 ; mineralbadge - engine_flag JohtoBadges, 5 ; stormbadge ; $20 - engine_flag JohtoBadges, 6 ; glacierbadge - engine_flag JohtoBadges, 7 ; risingbadge - - engine_flag KantoBadges, 0 ; boulderbadge - engine_flag KantoBadges, 1 ; cascadebadge - engine_flag KantoBadges, 2 ; thunderbadge - engine_flag KantoBadges, 3 ; rainbowbadge - engine_flag KantoBadges, 4 ; soulbadge - engine_flag KantoBadges, 5 ; marshbadge ; $28 - engine_flag KantoBadges, 6 ; volcanobadge - engine_flag KantoBadges, 7 ; earthbadge - - ; unown sets - engine_flag UnlockedUnowns, 0 ; 1 - engine_flag UnlockedUnowns, 1 ; 2 - engine_flag UnlockedUnowns, 2 ; 3 - engine_flag UnlockedUnowns, 3 ; 4 - engine_flag UnlockedUnowns, 4 ; 5 - engine_flag UnlockedUnowns, 5 ; 6 ; $30 - engine_flag UnlockedUnowns, 6 ; 7 - engine_flag UnlockedUnowns, 7 ; 8 - - ; fly - engine_flag VisitedSpawns, 0 ; your house - engine_flag VisitedSpawns, 1 ; viridian pokecenter - engine_flag VisitedSpawns, 2 ; pallet - engine_flag VisitedSpawns, 3 ; viridian - engine_flag VisitedSpawns, 4 ; pewter - engine_flag VisitedSpawns, 5 ; cerulean ; $38 - engine_flag VisitedSpawns, 6 ; rock tunnel - engine_flag VisitedSpawns, 7 ; vermilion - engine_flag VisitedSpawns + 1, 0 ; lavender - engine_flag VisitedSpawns + 1, 1 ; saffron - engine_flag VisitedSpawns + 1, 2 ; celadon - engine_flag VisitedSpawns + 1, 3 ; fuchsia - engine_flag VisitedSpawns + 1, 4 ; cinnabar - engine_flag VisitedSpawns + 1, 5 ; indigo plateau ; $40 - engine_flag VisitedSpawns + 1, 6 ; new bark - engine_flag VisitedSpawns + 1, 7 ; cherrygrove - engine_flag VisitedSpawns + 2, 0 ; violet - ; union cave - engine_flag VisitedSpawns + 2, 2 ; azalea - engine_flag VisitedSpawns + 2, 3 ; cianwood - engine_flag VisitedSpawns + 2, 4 ; goldenrod - engine_flag VisitedSpawns + 2, 5 ; olivine - engine_flag VisitedSpawns + 2, 6 ; ecruteak ; $48 - engine_flag VisitedSpawns + 2, 7 ; mahogany - engine_flag VisitedSpawns + 3, 0 ; lake of rage - engine_flag VisitedSpawns + 3, 1 ; blackthorn - engine_flag VisitedSpawns + 3, 2 ; silver cave - ; fast ship - engine_flag VisitedSpawns + 3, 4 ; unused - - engine_flag wLuckyNumberShowFlag, 0 ; lucky number show - engine_flag StatusFlags2, 3 ; ???? - - engine_flag DailyFlags, 0 ; kurt making balls ; $50 - engine_flag DailyFlags, 1 ; ???? - engine_flag DailyFlags, 2 ; special wilddata? - engine_flag DailyFlags, 3 ; time capsule (24h wait) - engine_flag DailyFlags, 4 ; all fruit trees - engine_flag DailyFlags, 5 ; shuckle given - engine_flag DailyFlags, 6 ; goldenrod underground merchant closed - engine_flag DailyFlags, 7 ; fought in trainer hall today - - engine_flag WeeklyFlags, 0 ; mt moon square clefairy ; $58 - engine_flag WeeklyFlags, 1 ; union cave lapras - engine_flag WeeklyFlags, 2 ; goldenrod underground haircut used - engine_flag WeeklyFlags, 3 ; goldenrod mall happiness event floor05 person07 - engine_flag WeeklyFlags, 4 ; tea in blues house - engine_flag WeeklyFlags, 5 ; indigo plateau rival fight - engine_flag WeeklyFlags, 6 ; move tutor - engine_flag WeeklyFlags, 7 ; buenas password - - engine_flag SwarmFlags, 0 ; buenas password 2 - engine_flag SwarmFlags, 1 ; goldenrod dept store sale is on - - engine_flag GameTimerPause, 7 ; $62 - - engine_flag PlayerGender, 0 ; player is female - - engine_flag wCelebiEvent, 2 ; have gs ball after kurt examined it - - ; rematches - engine_flag wDailyRematchFlags, 0 ; jack - engine_flag wDailyRematchFlags, 1 ; huey - engine_flag wDailyRematchFlags, 2 ; gaven - engine_flag wDailyRematchFlags, 3 ; beth ; $68 - engine_flag wDailyRematchFlags, 4 ; jose - engine_flag wDailyRematchFlags, 5 ; reena - engine_flag wDailyRematchFlags, 6 ; joey - engine_flag wDailyRematchFlags, 7 ; wade - engine_flag wDailyRematchFlags + 1, 0 ; ralph - engine_flag wDailyRematchFlags + 1, 1 ; liz - engine_flag wDailyRematchFlags + 1, 2 ; anthony - engine_flag wDailyRematchFlags + 1, 3 ; todd ; $70 - engine_flag wDailyRematchFlags + 1, 4 ; gina - engine_flag wDailyRematchFlags + 1, 5 ; arnie - engine_flag wDailyRematchFlags + 1, 6 ; alan - engine_flag wDailyRematchFlags + 1, 7 ; dana - engine_flag wDailyRematchFlags + 2, 0 ; chad - engine_flag wDailyRematchFlags + 2, 1 ; tully - engine_flag wDailyRematchFlags + 2, 2 ; brent - engine_flag wDailyRematchFlags + 2, 3 ; tiffany ; $78 - engine_flag wDailyRematchFlags + 2, 4 ; vance - engine_flag wDailyRematchFlags + 2, 5 ; wilton - engine_flag wDailyRematchFlags + 2, 6 ; parry - engine_flag wDailyRematchFlags + 2, 7 ; erin - - engine_flag wDailyPhoneItemFlags, 0 ; beverly has nugget - engine_flag wDailyPhoneItemFlags, 1 ; jose has star piece - engine_flag wDailyPhoneItemFlags, 2 ; wade has item (see EVENT_WADE_HAS_*** in constants/event_flags.asm) - engine_flag wDailyPhoneItemFlags, 3 ; gina has leaf stone ; $80 - engine_flag wDailyPhoneItemFlags, 4 ; alan has fire stone - engine_flag wDailyPhoneItemFlags, 5 ; liz has thunderstone - engine_flag wDailyPhoneItemFlags, 6 ; derek has nugget - engine_flag wDailyPhoneItemFlags, 7 ; tully has water stone - - engine_flag wDailyPhoneItemFlags + 1, 0 ; tiffany has pink bow - engine_flag wDailyPhoneItemFlags + 1, 1 ; wilton has item (see EVENT_WILTON_HAS_*** in constants/event_flags.asm) - - engine_flag wDailyPhoneTimeOfDayFlags, 0 - engine_flag wDailyPhoneTimeOfDayFlags, 1 ; $88 - engine_flag wDailyPhoneTimeOfDayFlags, 2 - engine_flag wDailyPhoneTimeOfDayFlags, 3 - engine_flag wDailyPhoneTimeOfDayFlags, 4 - engine_flag wDailyPhoneTimeOfDayFlags, 5 - engine_flag wDailyPhoneTimeOfDayFlags, 6 - engine_flag wDailyPhoneTimeOfDayFlags, 7 - - engine_flag wDailyPhoneTimeOfDayFlags + 1, 0 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 1 ; $90 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 2 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 3 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 4 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 5 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 6 - engine_flag wDailyPhoneTimeOfDayFlags + 1, 7 - - engine_flag wDailyPhoneTimeOfDayFlags + 2, 0 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 1 ; $98 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 2 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 3 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 4 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 5 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 6 - engine_flag wDailyPhoneTimeOfDayFlags + 2, 7 - - engine_flag wPlayerSpriteSetupFlags, 2 ; female player has been transformed into male - - engine_flag SwarmFlags, 2 ; dunsparce swarm ; $a0 - engine_flag SwarmFlags, 3 ; yanma swarm +INCLUDE "data/engine_flags.asm" diff --git a/engine/events_2.asm b/engine/events_2.asm index 285b3e05b..5a89f5e68 100644 --- a/engine/events_2.asm +++ b/engine/events_2.asm @@ -254,18 +254,7 @@ TryWildEncounter_BugContest: ; 97d64 ; 97d87 ContestMons: ; 97d87 - ; %, species, min, max - db 20, CATERPIE, 7, 18 - db 20, WEEDLE, 7, 18 - db 10, METAPOD, 9, 18 - db 10, KAKUNA, 9, 18 - db 5, BUTTERFREE, 12, 15 - db 5, BEEDRILL, 12, 15 - db 10, VENONAT, 10, 16 - db 10, PARAS, 10, 17 - db 5, SCYTHER, 13, 14 - db 5, PINSIR, 13, 14 - db -1, VENOMOTH, 30, 40 +INCLUDE "data/wild/bug_contest_mons.asm" ; 97db3 DoBikeStep:: ; 97db3 diff --git a/engine/events_3.asm b/engine/events_3.asm index b6aaea3b7..f53297d61 100755 --- a/engine/events_3.asm +++ b/engine/events_3.asm @@ -455,55 +455,7 @@ GetTreeMonSet: ; b823f ret ; b825e -TreeMonMaps: ; b825e -treemon_map: macro - map \1 - db \2 ; treemon set -endm - treemon_map ROUTE_26, 4 - treemon_map ROUTE_27, 4 - treemon_map ROUTE_28, 0 - treemon_map ROUTE_29, 3 - treemon_map ROUTE_30, 3 - treemon_map ROUTE_31, 3 - treemon_map ROUTE_32, 4 - treemon_map ROUTE_33, 2 - treemon_map ROUTE_34, 3 - treemon_map ROUTE_35, 3 - treemon_map ROUTE_36, 3 - treemon_map ROUTE_37, 3 - treemon_map ROUTE_38, 3 - treemon_map ROUTE_39, 3 - treemon_map ROUTE_40, 0 - treemon_map ROUTE_41, 0 - treemon_map ROUTE_42, 2 - treemon_map ROUTE_43, 5 - treemon_map ROUTE_44, 1 - treemon_map ROUTE_45, 1 - treemon_map ROUTE_46, 1 - treemon_map NEW_BARK_TOWN, 0 - treemon_map CHERRYGROVE_CITY, 0 - treemon_map VIOLET_CITY, 0 - treemon_map AZALEA_TOWN, 2 - treemon_map CIANWOOD_CITY, 0 - treemon_map GOLDENROD_CITY, 0 - treemon_map OLIVINE_CITY, 0 - treemon_map ECRUTEAK_CITY, 0 - treemon_map MAHOGANY_TOWN, 0 - treemon_map LAKE_OF_RAGE, 5 - treemon_map BLACKTHORN_CITY, 0 - treemon_map SILVER_CAVE_OUTSIDE, 0 - treemon_map ILEX_FOREST, 6 - db -1 -; b82c5 - -RockMonMaps: ; b82c5 - treemon_map CIANWOOD_CITY, 7 - treemon_map ROUTE_40, 7 - treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7 - treemon_map SLOWPOKE_WELL_B1F, 7 - db -1 -; b82d2 +INCLUDE "data/wild/treemon_maps.asm" GetTreeMons: ; b82d2 ; Return the address of TreeMon table a in hl. @@ -533,128 +485,7 @@ GetTreeMons: ; b82d2 ret ; b82e8 -TreeMons: ; b82e8 - dw TreeMons1 - dw TreeMons1 - dw TreeMons2 - dw TreeMons3 - dw TreeMons4 - dw TreeMons5 - dw TreeMons6 - dw RockMons - dw TreeMons1 - -; Two tables each (normal, rare). -; Structure: -; db %, species, level - -TreeMons1: ; b82fa - db 50, SPEAROW, 10 - db 15, SPEAROW, 10 - db 15, SPEAROW, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - - db 50, SPEAROW, 10 - db 15, HERACROSS, 10 - db 15, HERACROSS, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - -TreeMons2: ; b8320 - db 50, SPEAROW, 10 - db 15, EKANS, 10 - db 15, SPEAROW, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - - db 50, SPEAROW, 10 - db 15, HERACROSS, 10 - db 15, HERACROSS, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - -TreeMons3: ; b8346 - db 50, HOOTHOOT, 10 - db 15, SPINARAK, 10 - db 15, LEDYBA, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons4: ; b836c - db 50, HOOTHOOT, 10 - db 15, EKANS, 10 - db 15, HOOTHOOT, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons5: ; b8392 - db 50, HOOTHOOT, 10 - db 15, VENONAT, 10 - db 15, HOOTHOOT, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons6: ; b83b8 - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, NOCTOWL, 10 - db 5, BUTTERFREE, 10 - db 5, BEEDRILL, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, CATERPIE, 10 - db 15, WEEDLE, 10 - db 10, HOOTHOOT, 10 - db 5, METAPOD, 10 - db 5, KAKUNA, 10 - db -1 - -RockMons: ; b83de - db 90, KRABBY, 15 - db 10, SHUCKLE, 15 - db -1 -; b83e5 +INCLUDE "data/wild/treemons.asm" GetTreeMon: ; b83e5 push hl diff --git a/engine/fruit_trees.asm b/engine/fruit_trees.asm index 6a40fb05c..134adda60 100644 --- a/engine/fruit_trees.asm +++ b/engine/fruit_trees.asm @@ -103,36 +103,7 @@ GetFruitTreeItem: ; 4408a ; 44097 FruitTreeItems: ; 44097 - db BERRY - db BERRY - db BERRY - db BERRY - db PSNCUREBERRY - db PSNCUREBERRY - db BITTER_BERRY - db BITTER_BERRY - db PRZCUREBERRY - db PRZCUREBERRY - db MYSTERYBERRY - db MYSTERYBERRY - db ICE_BERRY - db ICE_BERRY - db MINT_BERRY - db BURNT_BERRY - db RED_APRICORN - db BLU_APRICORN - db BLK_APRICORN - db WHT_APRICORN - db PNK_APRICORN - db GRN_APRICORN - db YLW_APRICORN - db BERRY - db PSNCUREBERRY - db BITTER_BERRY - db PRZCUREBERRY - db ICE_BERRY - db MINT_BERRY - db BURNT_BERRY +INCLUDE "data/fruit_tree_items.asm" ; 440b5 FruitBearingTreeText: ; 440b5 diff --git a/engine/intro_menu.asm b/engine/intro_menu.asm index 6dcda93f3..e0ecd41fe 100755 --- a/engine/intro_menu.asm +++ b/engine/intro_menu.asm @@ -199,8 +199,6 @@ _ResetWRAM: ; 5bae ld [Coins], a ld [Coins + 1], a -START_MONEY EQU 3000 - IF START_MONEY / $10000 ld a, START_MONEY / $10000 ENDC @@ -214,11 +212,11 @@ ENDC ld [wWhichMomItem], a ld hl, MomItemTriggerBalance - ld [hl], 2300 / $10000 + ld [hl], MOM_MONEY / $10000 inc hl - ld [hl], 2300 / $100 % $100 + ld [hl], MOM_MONEY / $100 % $100 inc hl - ld [hl], 2300 % $100 + ld [hl], MOM_MONEY % $100 call InitializeNPCNames diff --git a/engine/landmarks.asm b/engine/landmarks.asm index 465a70f3c..401073d83 100644 --- a/engine/landmarks.asm +++ b/engine/landmarks.asm @@ -48,212 +48,7 @@ GetLandmarkName:: ; 0x1ca8a5 Landmarks: ; 0x1ca8c3 - -landmark: MACRO - db \1, \2 - dw \3 -ENDM - - landmark 0, 0, SpecialMapName - landmark 148, 116, NewBarkTownName - landmark 136, 116, Route29Name - landmark 108, 116, CherrygroveCityName - landmark 108, 96, Route30Name - landmark 104, 76, Route31Name - landmark 92, 76, VioletCityName - landmark 93, 74, SproutTowerName - landmark 92, 108, Route32Name - landmark 84, 92, RuinsOfAlphName - landmark 92, 140, UnionCaveName - landmark 90, 140, Route33Name - landmark 76, 140, AzaleaTownName - landmark 78, 138, SlowpokeWellName - landmark 60, 136, IlexForestName - landmark 60, 128, Route34Name - landmark 60, 108, GoldenrodCityName - landmark 58, 108, RadioTowerName - landmark 60, 92, Route35Name - landmark 60, 76, NationalParkName - landmark 72, 76, Route36Name - landmark 76, 68, Route37Name - landmark 76, 60, EcruteakCityName - landmark 78, 58, TinTowerName - landmark 74, 58, BurnedTowerName - landmark 60, 60, Route38Name - landmark 44, 64, Route39Name - landmark 44, 76, OlivineCityName - landmark 46, 78, LighthouseName - landmark 36, 72, BattleTowerName - landmark 36, 80, Route40Name - landmark 36, 108, WhirlIslandsName - landmark 36, 116, Route41Name - landmark 28, 116, CianwoodCityName - landmark 100, 60, Route42Name - landmark 92, 60, MtMortarName - landmark 116, 60, MahoganyTownName - landmark 116, 52, Route43Name - landmark 116, 44, LakeOfRageName - landmark 128, 60, Route44Name - landmark 138, 54, IcePathName - landmark 140, 60, BlackthornCityName - landmark 140, 52, DragonsDenName - landmark 140, 80, Route45Name - landmark 120, 88, DarkCaveName - landmark 132, 104, Route46Name - landmark 156, 84, SilverCaveName - landmark 60, 124, PalletTownName - landmark 60, 108, Route1Name - landmark 60, 92, ViridianCityName - landmark 60, 80, Route2Name - landmark 60, 68, PewterCityName - landmark 72, 68, Route3Name - landmark 84, 68, MtMoonName - landmark 96, 68, Route4Name - landmark 108, 68, CeruleanCityName - landmark 108, 60, Route24Name - landmark 116, 52, Route25Name - landmark 108, 76, Route5Name - landmark 116, 92, UndergroundName - landmark 108, 92, Route6Name - landmark 108, 100, VermilionCityName - landmark 96, 76, DiglettsCaveName - landmark 96, 84, Route7Name - landmark 124, 84, Route8Name - landmark 124, 68, Route9Name - landmark 140, 68, RockTunnelName - landmark 140, 72, Route10Name - landmark 140, 76, PowerPlantName - landmark 140, 84, LavenderTownName - landmark 148, 84, LavRadioTowerName - landmark 84, 84, CeladonCityName - landmark 108, 84, SaffronCityName - landmark 124, 100, Route11Name - landmark 140, 96, Route12Name - landmark 132, 116, Route13Name - landmark 124, 128, Route14Name - landmark 112, 132, Route15Name - landmark 76, 84, Route16Name - landmark 76, 108, Route17Name - landmark 88, 132, Route18Name - landmark 100, 132, FuchsiaCityName - landmark 100, 144, Route19Name - landmark 84, 148, Route20Name - landmark 76, 148, SeafoamIslandsName - landmark 60, 148, CinnabarIslandName - landmark 60, 136, Route21Name - landmark 44, 84, Route22Name - landmark 36, 68, VictoryRoadName - landmark 36, 60, Route23Name - landmark 36, 52, IndigoPlateauName - landmark 36, 108, Route26Name - landmark 28, 116, Route27Name - landmark 20, 116, TohjoFallsName - landmark 28, 84, Route28Name - landmark 148, 132, FastShipName - - -NewBarkTownName: db "NEW BARK¯TOWN@" -CherrygroveCityName: db "CHERRYGROVE¯CITY@" -VioletCityName: db "VIOLET CITY@" -AzaleaTownName: db "AZALEA TOWN@" -GoldenrodCityName: db "GOLDENROD¯CITY@" -EcruteakCityName: db "ECRUTEAK¯CITY@" -OlivineCityName: db "OLIVINE¯CITY@" -CianwoodCityName: db "CIANWOOD¯CITY@" -MahoganyTownName: db "MAHOGANY¯TOWN@" -BlackthornCityName: db "BLACKTHORN¯CITY@" -LakeOfRageName: db "LAKE OF¯RAGE@" -SilverCaveName: db "SILVER CAVE@" -SproutTowerName: db "SPROUT¯TOWER@" -RuinsOfAlphName: db "RUINS¯OF ALPH@" -UnionCaveName: db "UNION CAVE@" -SlowpokeWellName: db "SLOWPOKE¯WELL@" -RadioTowerName: db "RADIO TOWER@" -PowerPlantName: db "POWER PLANT@" -NationalParkName: db "NATIONAL¯PARK@" -TinTowerName: db "TIN TOWER@" -LighthouseName: db "LIGHTHOUSE@" -WhirlIslandsName: db "WHIRL¯ISLANDS@" -MtMortarName: db "MT.MORTAR@" -DragonsDenName: db "DRAGON'S¯DEN@" -IcePathName: db "ICE PATH@" -NotApplicableName: db "N/A@" -PalletTownName: db "PALLET TOWN@" -ViridianCityName: db "VIRIDIAN¯CITY@" -PewterCityName: db "PEWTER CITY@" -CeruleanCityName: db "CERULEAN¯CITY@" -LavenderTownName: db "LAVENDER¯TOWN@" -VermilionCityName: db "VERMILION¯CITY@" -CeladonCityName: db "CELADON¯CITY@" -SaffronCityName: db "SAFFRON¯CITY@" -FuchsiaCityName: db "FUCHSIA¯CITY@" -CinnabarIslandName: db "CINNABAR¯ISLAND@" -IndigoPlateauName: db "INDIGO¯PLATEAU@" -VictoryRoadName: db "VICTORY¯ROAD@" -MtMoonName: db "MT.MOON@" -RockTunnelName: db "ROCK TUNNEL@" -LavRadioTowerName: db "LAV¯RADIO TOWER@" -SilphCoName: db "SILPH CO.@" -SafariZoneName: db "SAFARI ZONE@" -SeafoamIslandsName: db "SEAFOAM¯ISLANDS@" -PokemonMansionName: db "#MON¯MANSION@" -CeruleanCaveName: db "CERULEAN¯CAVE@" -Route1Name: db "ROUTE 1@" -Route2Name: db "ROUTE 2@" -Route3Name: db "ROUTE 3@" -Route4Name: db "ROUTE 4@" -Route5Name: db "ROUTE 5@" -Route6Name: db "ROUTE 6@" -Route7Name: db "ROUTE 7@" -Route8Name: db "ROUTE 8@" -Route9Name: db "ROUTE 9@" -Route10Name: db "ROUTE 10@" -Route11Name: db "ROUTE 11@" -Route12Name: db "ROUTE 12@" -Route13Name: db "ROUTE 13@" -Route14Name: db "ROUTE 14@" -Route15Name: db "ROUTE 15@" -Route16Name: db "ROUTE 16@" -Route17Name: db "ROUTE 17@" -Route18Name: db "ROUTE 18@" -Route19Name: db "ROUTE 19@" -Route20Name: db "ROUTE 20@" -Route21Name: db "ROUTE 21@" -Route22Name: db "ROUTE 22@" -Route23Name: db "ROUTE 23@" -Route24Name: db "ROUTE 24@" -Route25Name: db "ROUTE 25@" -Route26Name: db "ROUTE 26@" -Route27Name: db "ROUTE 27@" -Route28Name: db "ROUTE 28@" -Route29Name: db "ROUTE 29@" -Route30Name: db "ROUTE 30@" -Route31Name: db "ROUTE 31@" -Route32Name: db "ROUTE 32@" -Route33Name: db "ROUTE 33@" -Route34Name: db "ROUTE 34@" -Route35Name: db "ROUTE 35@" -Route36Name: db "ROUTE 36@" -Route37Name: db "ROUTE 37@" -Route38Name: db "ROUTE 38@" -Route39Name: db "ROUTE 39@" -Route40Name: db "ROUTE 40@" -Route41Name: db "ROUTE 41@" -Route42Name: db "ROUTE 42@" -Route43Name: db "ROUTE 43@" -Route44Name: db "ROUTE 44@" -Route45Name: db "ROUTE 45@" -Route46Name: db "ROUTE 46@" -DarkCaveName: db "DARK CAVE@" -IlexForestName: db "ILEX¯FOREST@" -BurnedTowerName: db "BURNED¯TOWER@" -FastShipName: db "FAST SHIP@" -ViridianForestName: db "VIRIDIAN¯FOREST@" -DiglettsCaveName: db "DIGLETT'S¯CAVE@" -TohjoFallsName: db "TOHJO FALLS@" -UndergroundName: db "UNDERGROUND@" -BattleTowerName: db "BATTLE¯TOWER@" -SpecialMapName: db "SPECIAL@" +INCLUDE "data/landmarks.asm" RegionCheck: ; 0x1caea1 diff --git a/engine/map_objects.asm b/engine/map_objects.asm index 83147c168..4ca7482fe 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -1,5 +1,5 @@ -INCLUDE "engine/facings.asm" +INCLUDE "data/facings.asm" SpriteMovementData:: ; 4273 INCLUDE "data/map_objects.asm" diff --git a/engine/mon_icons.asm b/engine/mon_icons.asm index 9c6fb1870..af1972dae 100755 --- a/engine/mon_icons.asm +++ b/engine/mon_icons.asm @@ -450,4 +450,27 @@ HoldSwitchmonIcon: ; 8ea8c jr nz, .loop ret -INCLUDE "menu/mon_icons.asm" +ReadMonMenuIcon: ; 8eab3 + cp EGG + jr z, .egg + dec a + ld hl, MonMenuIcons + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + ret +.egg + ld a, ICON_EGG + ret +; 8eac4 + +MonMenuIcons: ; 8eac4 +INCLUDE "data/mon_menu_icons.asm" + + +INCLUDE "gfx/icon_pointers.asm" + +Icons: +INCLUDE "gfx/icons.asm" + diff --git a/engine/mysterygift2.asm b/engine/mysterygift2.asm index 0b8948c5b..e2ed30f3d 100755 --- a/engine/mysterygift2.asm +++ b/engine/mysterygift2.asm @@ -123,7 +123,7 @@ PrepMysteryGiftDataToSend: ; 2c642 (b:4642) MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708) ld a, c - cp $25 ; 37 + cp MysteryGiftItemsEnd - MysteryGiftItems jr nc, MysteryGiftFallbackItem ld hl, MysteryGiftItems ld b, 0 @@ -133,7 +133,7 @@ MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708) MysteryGiftGetDecoration: ; 2c715 (b:4715) ld a, c - cp $25 ; 37 + cp MysteryGiftDecosEnd - MysteryGiftDecos jr nc, MysteryGiftFallbackItem ld hl, MysteryGiftDecos ld b, 0 @@ -147,81 +147,11 @@ MysteryGiftFallbackItem: ; 2c722 (b:4722) ; 2c725 (b:4725) MysteryGiftItems: ; 2c725 - db BERRY - db PRZCUREBERRY - db MINT_BERRY - db ICE_BERRY - db BURNT_BERRY - db PSNCUREBERRY - db GUARD_SPEC - db X_DEFEND - db X_ATTACK - db BITTER_BERRY - db DIRE_HIT - db X_SPECIAL - db X_ACCURACY - db EON_MAIL - db MORPH_MAIL - db MUSIC_MAIL - db MIRACLEBERRY - db GOLD_BERRY - db REVIVE - db GREAT_BALL - db SUPER_REPEL - db MAX_REPEL - db ELIXER - db ETHER - db WATER_STONE - db FIRE_STONE - db LEAF_STONE - db THUNDERSTONE - db MAX_ETHER - db MAX_ELIXER - db MAX_REVIVE - db SCOPE_LENS - db HP_UP - db PP_UP - db RARE_CANDY - db BLUESKY_MAIL - db MIRAGE_MAIL +INCLUDE "data/mystery_gift/items.asm" +MysteryGiftItemsEnd ; 2c74a MysteryGiftDecos: ; 2c74a - db DECOFLAG_PIKACHU_DOLL - db DECOFLAG_BULBASAUR_DOLL - db DECOFLAG_CHARMANDER_DOLL - db DECOFLAG_SQUIRTLE_DOLL - db DECOFLAG_POLIWAG_DOLL - db DECOFLAG_DIGLETT_DOLL - db DECOFLAG_STARMIE_DOLL - db DECOFLAG_MAGIKARP_DOLL - db DECOFLAG_ODDISH_DOLL - db DECOFLAG_GENGAR_DOLL - db DECOFLAG_CLEFAIRY_POSTER - db DECOFLAG_JIGGLYPUFF_POSTER - db DECOFLAG_SNES - db DECOFLAG_SHELLDER_DOLL - db DECOFLAG_VOLTORB_DOLL - db DECOFLAG_WEEDLE_DOLL - db DECOFLAG_MAGNAPLANT - db DECOFLAG_TROPICPLANT - db DECOFLAG_FAMICOM - db DECOFLAG_N64 - db DECOFLAG_SURF_PIKACHU_DOLL - db DECOFLAG_JIGGLYPUFF_DOLL - db DECOFLAG_PINK_BED - db DECOFLAG_POLKADOT_BED - db DECOFLAG_RED_CARPET - db DECOFLAG_BLUE_CARPET - db DECOFLAG_YELLOW_CARPET - db DECOFLAG_GREEN_CARPET - db DECOFLAG_JUMBOPLANT - db DECOFLAG_VIRTUAL_BOY - db DECOFLAG_MACHOP_DOLL - db DECOFLAG_PIKACHU_POSTER - db DECOFLAG_TENTACOOL_DOLL - db DECOFLAG_BIG_ONIX_DOLL - db DECOFLAG_PIKACHU_BED - db DECOFLAG_GRIMER_DOLL - db DECOFLAG_UNOWN_DOLL +INCLUDE "data/mystery_gift/decos.asm" +MysteryGiftDecosEnd ; 2c76f diff --git a/engine/npctrade.asm b/engine/npctrade.asm index fa1be880e..1ec828b54 100755 --- a/engine/npctrade.asm +++ b/engine/npctrade.asm @@ -1,26 +1,10 @@ - -; Trade struct -TRADE_DIALOG EQU 0 -TRADE_GIVEMON EQU 1 -TRADE_GETMON EQU 2 -TRADE_NICK EQU 3 -TRADE_DVS EQU 14 -TRADE_ITEM EQU 16 -TRADE_OT_ID EQU 17 -TRADE_OT_NAME EQU 19 -TRADE_GENDER EQU 30 -TRADE_PADDING EQU 31 - ; Trade dialogs -TRADE_INTRO EQU 0 -TRADE_CANCEL EQU 1 -TRADE_WRONG EQU 2 -TRADE_COMPLETE EQU 3 -TRADE_AFTER EQU 4 - -TRADE_EITHER_GENDER EQU 0 -TRADE_MALE_ONLY EQU 1 -TRADE_FEMALE_ONLY EQU 2 + const_def + const TRADE_INTRO + const TRADE_CANCEL + const TRADE_WRONG + const TRADE_COMPLETE + const TRADE_AFTER NPCTrade:: ; fcba8 ld a, e @@ -428,23 +412,7 @@ GetTradeMonNames: ; fce1b NPCTrades: ; fce58 -npctrade: MACRO - db \1, \2, \3, \4 ; dialog set, requested mon, offered mon, nickname - db \5, \6 ; dvs - shift - db \6 ; item - dw \7 ; OT ID - db \8, \9, 0 ; OT name, gender requested -ENDM - - - npctrade 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, 37460, "MIKE@@@@@@@", TRADE_EITHER_GENDER - npctrade 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, 48926, "KYLE@@@@@@@", TRADE_EITHER_GENDER - npctrade 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, 29189, "TIM@@@@@@@@", TRADE_EITHER_GENDER - npctrade 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, 00283, "EMY@@@@@@@@", TRADE_FEMALE_ONLY - npctrade 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, 15616, "CHRIS@@@@@@", TRADE_EITHER_GENDER - npctrade 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, 26491, "KIM@@@@@@@@", TRADE_EITHER_GENDER - npctrade 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, 50082, "FOREST@@@@@", TRADE_EITHER_GENDER +INCLUDE "data/npc_trades.asm" ; fcf38 diff --git a/engine/odd_eggs.asm b/engine/odd_eggs.asm new file mode 100644 index 000000000..93d753dfb --- /dev/null +++ b/engine/odd_eggs.asm @@ -0,0 +1,96 @@ +GiveOddEgg: ; 1fb4b6 + ; Figure out which egg to give. + + ; Compare a random word to + ; probabilities out of 0xffff. + call Random + ld hl, OddEggProbabilities + ld c, 0 + ld b, c +.loop + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + + ; Break on $ffff. + ld a, d + cp $ffff / $100 + jr nz, .not_done + ld a, e + cp $ffff % $100 + jr z, .done +.not_done + + ; Break when [hRandom] <= de. + ld a, [hRandom + 1] + cp d + jr c, .done + jr z, .ok + jr .next +.ok + ld a, [hRandom + 0] + cp e + jr c, .done + jr z, .done +.next + inc bc + jr .loop +.done + + ld hl, OddEggs + ld a, OddEgg2 - OddEgg1 + call AddNTimes + + ld de, OddEggSpecies + ld bc, PARTYMON_STRUCT_LENGTH + 2 * PKMN_NAME_LENGTH + call CopyBytes + + ld a, EGG_TICKET + ld [CurItem], a + ld a, 1 + ld [wItemQuantityChangeBuffer], a + ld a, -1 + ld [CurItemQuantity], a + ld hl, NumItems + call TossItem + + ; load species in wcd2a + ld a, EGG + ld [wMobileMonSpeciesBuffer], a + + ; load pointer to (wMobileMonSpeciesBuffer - 1) in wMobileMonSpeciesPointerBuffer + ld a, (wMobileMonSpeciesBuffer - 1) % $100 + ld [wMobileMonSpeciesPointerBuffer], a + ld a, (wMobileMonSpeciesBuffer - 1) / $100 + ld [wMobileMonSpeciesPointerBuffer + 1], a + ; load pointer to OddEggSpecies in wMobileMonStructurePointerBuffer + ld a, OddEggSpecies % $100 + ld [wMobileMonStructurePointerBuffer], a + ld a, OddEggSpecies / $100 + ld [wMobileMonStructurePointerBuffer + 1], a + + ; load Odd Egg Name in wTempOddEggNickname + ld hl, .Odd + ld de, wTempOddEggNickname + ld bc, PKMN_NAME_LENGTH + call CopyBytes + + ; load pointer to wTempOddEggNickname in wMobileMonOTNamePointerBuffer + ld a, wTempOddEggNickname % $100 + ld [wMobileMonOTNamePointerBuffer], a + ld a, wTempOddEggNickname / $100 + ld [wMobileMonOTNamePointerBuffer + 1], a + ; load pointer to wOddEggName in wMobileMonNicknamePointerBuffer + ld a, wOddEggName % $100 + ld [wMobileMonNicknamePointerBuffer], a + ld a, wOddEggName / $100 + ld [wMobileMonNicknamePointerBuffer + 1], a + callba AddMobileMonToParty + ret +; 1fb546 + +.Odd: + db "ODD@@@@@@@@@" + +INCLUDE "data/odd_eggs.asm" diff --git a/engine/options_menu.asm b/engine/options_menu.asm index ec41288ff..6e306a646 100755 --- a/engine/options_menu.asm +++ b/engine/options_menu.asm @@ -105,6 +105,11 @@ GetOptionPointer: ; e42d6 ; e42f5 + const_def + const TEXT_SPEED_FAST ; 0 + const TEXT_SPEED_MED ; 1 + const TEXT_SPEED_SLOW ; 2 + Options_TextSpeed: ; e42f5 call GetTextSpeed ld a, [hJoyPressed] @@ -113,9 +118,9 @@ Options_TextSpeed: ; e42f5 bit D_RIGHT_F, a jr z, .NonePressed ld a, c ; right pressed - cp SLOW_TEXT + cp TEXT_SPEED_SLOW jr c, .Increase - ld c, FAST_TEXT +- 1 + ld c, TEXT_SPEED_FAST +- 1 .Increase: inc c @@ -126,7 +131,7 @@ Options_TextSpeed: ; e42f5 ld a, c and a jr nz, .Decrease - ld c, SLOW_TEXT + 1 + ld c, TEXT_SPEED_SLOW + 1 .Decrease: dec c @@ -154,38 +159,39 @@ Options_TextSpeed: ; e42f5 ; e4331 .Strings: +; entries correspond to TEXT_SPEED_* constants dw .Fast dw .Mid dw .Slow -.Fast: - db "FAST@" -.Mid: - db "MID @" -.Slow: - db "SLOW@" +.Fast: db "FAST@" +.Mid: db "MID @" +.Slow: db "SLOW@" ; e4346 GetTextSpeed: ; e4346 - ld a, [Options] ; This converts the number of frames, to 0, 1, 2 representing speed - and 7 - cp 5 ; 5 frames of delay is slow +; converts TEXT_DELAY_* value in a to TEXT_SPEED_* value in c, +; with previous/next TEXT_DELAY_* values in d/e + ld a, [Options] + and $7 + cp TEXT_DELAY_SLOW jr z, .slow - cp 1 ; 1 frame of delay is fast + cp TEXT_DELAY_FAST jr z, .fast - ld c, MED_TEXT ; set it to mid if not one of the above - lb de, 1, 5 + ; none of the above + ld c, TEXT_SPEED_MED + lb de, TEXT_DELAY_FAST, TEXT_DELAY_SLOW ret .slow - ld c, SLOW_TEXT - lb de, 3, 1 + ld c, TEXT_SPEED_SLOW + lb de, TEXT_DELAY_MED, TEXT_DELAY_FAST ret .fast - ld c, FAST_TEXT - lb de, 5, 3 + ld c, TEXT_SPEED_FAST + lb de, TEXT_DELAY_SLOW, TEXT_DELAY_MED ret ; e4365 @@ -227,10 +233,8 @@ Options_BattleScene: ; e4365 ret ; e4398 -.On: - db "ON @" -.Off: - db "OFF@" +.On: db "ON @" +.Off: db "OFF@" ; e43a0 @@ -270,10 +274,8 @@ Options_BattleStyle: ; e43a0 ret ; e43d1 -.Shift: - db "SHIFT@" -.Set: - db "SET @" +.Shift: db "SHIFT@" +.Set: db "SET @" ; e43dd @@ -320,13 +322,18 @@ Options_Sound: ; e43dd ret ; e4416 -.Mono: - db "MONO @" -.Stereo: - db "STEREO@" +.Mono: db "MONO @" +.Stereo: db "STEREO@" ; e4424 + const_def + const PRINT_LIGHTEST ; 0 + const PRINT_LIGHTER ; 1 + const PRINT_NORMAL ; 2 + const PRINT_DARKER ; 3 + const PRINT_DARKEST ; 4 + Options_Print: ; e4424 call GetPrinterSetting ld a, [hJoyPressed] @@ -335,9 +342,9 @@ Options_Print: ; e4424 bit D_RIGHT_F, a jr z, .NonePressed ld a, c - cp 4 + cp PRINT_DARKEST jr c, .Increase - ld c, -1 + ld c, PRINT_LIGHTEST - 1 .Increase: inc c @@ -348,7 +355,7 @@ Options_Print: ; e4424 ld a, c and a jr nz, .Decrease - ld c, 5 + ld c, PRINT_DARKEST + 1 .Decrease: dec c @@ -373,57 +380,56 @@ Options_Print: ; e4424 ; e445a .Strings: +; entries correspond to PRINT_* constants dw .Lightest dw .Lighter dw .Normal dw .Darker dw .Darkest -.Lightest: - db "LIGHTEST@" -.Lighter: - db "LIGHTER @" -.Normal: - db "NORMAL @" -.Darker: - db "DARKER @" -.Darkest: - db "DARKEST @" +.Lightest: db "LIGHTEST@" +.Lighter: db "LIGHTER @" +.Normal: db "NORMAL @" +.Darker: db "DARKER @" +.Darkest: db "DARKEST @" ; e4491 GetPrinterSetting: ; e4491 - ld a, [GBPrinter] ; converts from the stored printer setting to 0,1,2,3,4 +; converts GBPRINTER_* value in a to PRINT_* value in c, +; with previous/next GBPRINTER_* values in d/e + ld a, [GBPrinter] and a jr z, .IsLightest - cp PRINT_LIGHTER + cp GBPRINTER_LIGHTER jr z, .IsLight - cp PRINT_DARKER + cp GBPRINTER_DARKER jr z, .IsDark - cp PRINT_DARKEST + cp GBPRINTER_DARKEST jr z, .IsDarkest - ld c, 2 ; normal if none of the above - lb de, PRINT_LIGHTER, PRINT_DARKER ; the 2 values next to this setting + ; none of the above + ld c, PRINT_NORMAL + lb de, GBPRINTER_LIGHTER, GBPRINTER_DARKER ret .IsLightest: - ld c, 0 - lb de, PRINT_DARKEST, PRINT_LIGHTER ; the 2 values next to this setting + ld c, PRINT_LIGHTEST + lb de, GBPRINTER_DARKEST, GBPRINTER_LIGHTER ret .IsLight: - ld c, 1 - lb de, PRINT_LIGHTEST, PRINT_NORMAL ; the 2 values next to this setting + ld c, PRINT_LIGHTER + lb de, GBPRINTER_LIGHTEST, GBPRINTER_NORMAL ret .IsDark: - ld c, 3 - lb de, PRINT_NORMAL, PRINT_DARKEST ; the 2 values next to this setting + ld c, PRINT_DARKER + lb de, GBPRINTER_NORMAL, GBPRINTER_DARKEST ret .IsDarkest: - ld c, 4 - lb de, PRINT_DARKER, PRINT_LIGHTEST ; the 2 values next to this setting + ld c, PRINT_DARKEST + lb de, GBPRINTER_DARKER, GBPRINTER_LIGHTEST ret ; e44c1 @@ -463,10 +469,8 @@ Options_MenuAccount: ; e44c1 ret ; e44f2 -.Off: - db "OFF@" -.On: - db "ON @" +.Off: db "OFF@" +.On: db "ON @" ; e44fa diff --git a/engine/overworld.asm b/engine/overworld.asm index 3ed029800..5681dd6b8 100755 --- a/engine/overworld.asm +++ b/engine/overworld.asm @@ -716,764 +716,18 @@ LoadEmote:: ; 1442f ret ; 1444d -emote_header: MACRO - dw \1 - db \2 tiles, BANK(\1) - dw VTiles1 tile \3 -ENDM EmotesPointers: ; 144d -; entries correspond to EMOTE_* constants -; graphics address, length, starting tile - emote_header ShockEmote, 4, $78 - emote_header QuestionEmote, 4, $78 - emote_header HappyEmote, 4, $78 - emote_header SadEmote, 4, $78 - emote_header HeartEmote, 4, $78 - emote_header BoltEmote, 4, $78 - emote_header SleepEmote, 4, $78 - emote_header FishEmote, 4, $78 - emote_header JumpShadowGFX, 1, $7c - emote_header FishingRodGFX, 2, $7c - emote_header BoulderDustGFX, 2, $7e - emote_header GrassRustleGFX, 1, $7e +INCLUDE "data/emote_headers.asm" ; 14495 SpriteMons: ; 14495 - db UNOWN - db GEODUDE - db GROWLITHE - db WEEDLE - db SHELLDER - db ODDISH - db GENGAR - db ZUBAT - db MAGIKARP - db SQUIRTLE - db TOGEPI - db BUTTERFREE - db DIGLETT - db POLIWAG - db PIKACHU - db CLEFAIRY - db CHARMANDER - db JYNX - db STARMIE - db BULBASAUR - db JIGGLYPUFF - db GRIMER - db EKANS - db PARAS - db TENTACOOL - db TAUROS - db MACHOP - db VOLTORB - db LAPRAS - db RHYDON - db MOLTRES - db SNORLAX - db GYARADOS - db LUGIA - db HO_OH +INCLUDE "data/sprite_mons.asm" ; 144b8 -OutdoorSprites: ; 144b8 -; Valid sprite IDs for each map group. - - dw Group1Sprites - dw Group2Sprites - dw Group3Sprites - dw Group4Sprites - dw Group5Sprites - dw Group6Sprites - dw Group7Sprites - dw Group8Sprites - dw Group9Sprites - dw Group10Sprites - dw Group11Sprites - dw Group12Sprites - dw Group13Sprites - dw Group14Sprites - dw Group15Sprites - dw Group16Sprites - dw Group17Sprites - dw Group18Sprites - dw Group19Sprites - dw Group20Sprites - dw Group21Sprites - dw Group22Sprites - dw Group23Sprites - dw Group24Sprites - dw Group25Sprites - dw Group26Sprites -; 144ec - - -Group13Sprites: ; 144ec - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14503 - -Group23Sprites: ; 14503 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1451a - -Group14Sprites: ; 1451a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14531 - -Group6Sprites: ; 14531 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14548 - -Group7Sprites: ; 14548 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 1455f - -Group25Sprites: ; 1455f - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 14576 - -Group21Sprites: ; 14576 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_POLIWAG - db SPRITE_TEACHER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_BIKER - db SPRITE_SILVER - db SPRITE_BLUE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1458d - -Group18Sprites: ; 1458d - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145a4 - -Group12Sprites: ; 145a4 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145bb - -Group17Sprites: ; 145bb - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145d2 - -Group16Sprites: ; 145d2 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_BUENA - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_MACHOP - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 145e9 - -Group24Sprites: ; 145e9 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14600 - -Group26Sprites: ; 14600 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14617 - -Group19Sprites: ; 14617 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1462e - -Group10Sprites: ; 1462e - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14645 - -Group4Sprites: ; 14645 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1465c - -Group8Sprites: ; 1465c - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_KURT_OUTSIDE - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_TEACHER - db SPRITE_AZALEA_ROCKET - db SPRITE_LASS - db SPRITE_SILVER - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 14673 - -Group11Sprites: ; 14673 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_POKE_BALL - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_DAY_CARE_MON_1 - db SPRITE_COOLTRAINER_F - db SPRITE_ROCKET - db SPRITE_LASS - db SPRITE_DAY_CARE_MON_2 - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 1468a - -Group22Sprites: ; 1468a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146a1 - -Group1Sprites: ; 146a1 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146b8 - -Group9Sprites: ; 146b8 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LANCE - db SPRITE_GRAMPS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_LASS - db SPRITE_YOUNGSTER - db SPRITE_GYARADOS - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146cf - -Group2Sprites: ; 146cf - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146e6 - -Group5Sprites: ; 146e6 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146fd - -Group3Sprites: ; 146fd - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_GAMEBOY_KID - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LASS - db SPRITE_POKEFAN_F - db SPRITE_TEACHER - db SPRITE_YOUNGSTER - db SPRITE_GROWLITHE - db SPRITE_POKEFAN_M - db SPRITE_ROCKER - db SPRITE_FISHER - db SPRITE_SCIENTIST - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 14714 - -Group15Sprites: ; 14714 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SAILOR - db SPRITE_FISHING_GURU - db SPRITE_GENTLEMAN - db SPRITE_SUPER_NERD - db SPRITE_HO_OH - db SPRITE_TEACHER - db SPRITE_COOLTRAINER_F - db SPRITE_YOUNGSTER - db SPRITE_FAIRY - db SPRITE_POKE_BALL - db SPRITE_ROCK -; 1472b - -Group20Sprites: ; 1472b - db SPRITE_OAK - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_TWIN - db SPRITE_POKEFAN_M - db SPRITE_GRAMPS - db SPRITE_FAIRY - db SPRITE_SILVER - db SPRITE_FISHING_GURU - db SPRITE_POKE_BALL - db SPRITE_POKEDEX -; 14736 +INCLUDE "data/outdoor_sprites.asm" SpriteHeaders: ; 14736 diff --git a/engine/phone.asm b/engine/phone.asm index 55deab4d1..ce9cfa081 100644 --- a/engine/phone.asm +++ b/engine/phone.asm @@ -761,87 +761,11 @@ GetCallerLocation: ; 90439 ; 9045f PhoneContacts: ; 9045f -phone: MACRO - db \1, \2 ; trainer - map \3 ; map - db \4 - dba \5 ; script 1 - db \6 - dba \7 ; script 2 -ENDM -; entries correspond to PHONE_* constants - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONECONTACT_MOM, KRISS_HOUSE_1F, 7, MomPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONECONTACT_BIKESHOP, OAKS_LAB, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONECONTACT_BILL, N_A, 7, BillPhoneScript1, 0, BillPhoneScript2 - phone TRAINER_NONE, PHONECONTACT_ELM, ELMS_LAB, 7, ElmPhoneScript1, 0, ElmPhoneScript2 - phone SCHOOLBOY, JACK1, NATIONAL_PARK, 7, JackPhoneScript1, 7, JackPhoneScript2 - phone POKEFANF, BEVERLY1, NATIONAL_PARK, 7, BeverlyPhoneScript1, 7, BeverlyPhoneScript2 - phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, 7, HueyPhoneScript1, 7, HueyPhoneScript2 - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone COOLTRAINERM, GAVEN3, ROUTE_26, 7, GavenPhoneScript1, 7, GavenPhoneScript2 - phone COOLTRAINERF, BETH1, ROUTE_26, 7, BethPhoneScript1, 7, BethPhoneScript2 - phone BIRD_KEEPER, JOSE2, ROUTE_27, 7, JosePhoneScript1, 7, JosePhoneScript2 - phone COOLTRAINERF, REENA1, ROUTE_27, 7, ReenaPhoneScript1, 7, ReenaPhoneScript2 - phone YOUNGSTER, JOEY1, ROUTE_30, 7, JoeyPhoneScript1, 7, JoeyPhoneScript2 - phone BUG_CATCHER, WADE1, ROUTE_31, 7, WadePhoneScript1, 7, WadePhoneScript2 - phone FISHER, RALPH1, ROUTE_32, 7, RalphPhoneScript1, 7, RalphPhoneScript2 - phone PICNICKER, LIZ1, ROUTE_32, 7, LizPhoneScript1, 7, LizPhoneScript2 - phone HIKER, ANTHONY2, ROUTE_33, 7, AnthonyPhoneScript1, 7, AnthonyPhoneScript2 - phone CAMPER, TODD1, ROUTE_34, 7, ToddPhoneScript1, 7, ToddPhoneScript2 - phone PICNICKER, GINA1, ROUTE_34, 7, GinaPhoneScript1, 7, GinaPhoneScript2 - phone JUGGLER, IRWIN1, ROUTE_35, 7, IrwinPhoneScript1, 7, IrwinPhoneScript2 - phone BUG_CATCHER, ARNIE1, ROUTE_35, 7, ArniePhoneScript1, 7, ArniePhoneScript2 - phone SCHOOLBOY, ALAN1, ROUTE_36, 7, AlanPhoneScript1, 7, AlanPhoneScript2 - phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript - phone LASS, DANA1, ROUTE_38, 7, DanaPhoneScript1, 7, DanaPhoneScript2 - phone SCHOOLBOY, CHAD1, ROUTE_38, 7, ChadPhoneScript1, 7, ChadPhoneScript2 - phone POKEFANM, DEREK1, ROUTE_39, 7, DerekPhoneScript1, 7, DerekPhoneScript2 - phone FISHER, TULLY1, ROUTE_42, 7, TullyPhoneScript1, 7, TullyPhoneScript2 - phone POKEMANIAC, BRENT1, ROUTE_43, 7, BrentPhoneScript1, 7, BrentPhoneScript2 - phone PICNICKER, TIFFANY3, ROUTE_43, 7, TiffanyPhoneScript1, 7, TiffanyPhoneScript2 - phone BIRD_KEEPER, VANCE1, ROUTE_44, 7, VancePhoneScript1, 7, VancePhoneScript2 - phone FISHER, WILTON1, ROUTE_44, 7, WiltonPhoneScript1, 7, WiltonPhoneScript2 - phone BLACKBELT_T, KENJI3, ROUTE_45, 7, KenjiPhoneScript1, 7, KenjiPhoneScript2 - phone HIKER, PARRY1, ROUTE_45, 7, ParryPhoneScript1, 7, ParryPhoneScript2 - phone PICNICKER, ERIN1, ROUTE_46, 7, ErinPhoneScript1, 7, ErinPhoneScript2 - phone TRAINER_NONE, PHONECONTACT_BUENA, GOLDENROD_DEPT_STORE_ROOF, 7, BuenaPhoneScript1, 7, BuenaPhoneScript2 +INCLUDE "data/phone_contacts.asm" ; 90627 SpecialPhoneCallList: ; 90627 - dw SpecialCallOnlyWhenOutside - db PHONE_ELM - dba ElmPhoneScript2 - - dw SpecialCallOnlyWhenOutside - db PHONE_ELM - dba ElmPhoneScript2 - - dw SpecialCallOnlyWhenOutside - db PHONE_ELM - dba ElmPhoneScript2 - - dw SpecialCallOnlyWhenOutside - db PHONE_ELM - dba ElmPhoneScript2 - - dw SpecialCallWhereverYouAre - db PHONE_ELM - dba ElmPhoneScript2 - - dw SpecialCallWhereverYouAre - db PHONE_OAK ; ???????? - dba BikeShopPhoneScript ; bike shop - - dw SpecialCallWhereverYouAre - db PHONE_MOM - dba MomPhoneLectureScript - - dw SpecialCallOnlyWhenOutside - db PHONE_ELM - dba ElmPhoneScript2 +INCLUDE "data/phone_special.asm" ; 90657 UnknownScript_0x90657: ; 0x90657 diff --git a/engine/save.asm b/engine/save.asm index de2d3bc65..97267347c 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -727,14 +727,7 @@ TryLoadSaveData: ; 14f1c ; 14f7c DefaultOptions: ; 14f7c - db $03 ; mid text speed - db $00 ; wSaveFileExists - db $00 ; frame 0 - db $01 ; TextBoxFlags - db $40 ; gb printer: normal brightness - db $01 ; menu account on - db $00 ; ?? - db $00 ; ?? +INCLUDE "data/default_options.asm" ; 14f84 CheckPrimarySaveFile: ; 14f84 diff --git a/engine/spawn_points.asm b/engine/spawn_points.asm index 8dda255a1..3ed0a98ce 100644 --- a/engine/spawn_points.asm +++ b/engine/spawn_points.asm @@ -1,44 +1,6 @@ SpawnPoints: ; 0x152ab - -spawn: MACRO -; map, y, x - map \1 - db \2, \3 -ENDM - - spawn KRISS_HOUSE_2F, 3, 3 - spawn VIRIDIAN_POKECENTER_1F, 5, 3 - - spawn PALLET_TOWN, 5, 6 - spawn VIRIDIAN_CITY, 23, 26 - spawn PEWTER_CITY, 13, 26 - spawn CERULEAN_CITY, 19, 22 - spawn ROUTE_10_NORTH, 11, 2 - spawn VERMILION_CITY, 9, 6 - spawn LAVENDER_TOWN, 5, 6 - spawn SAFFRON_CITY, 9, 30 - spawn CELADON_CITY, 29, 10 - spawn FUCHSIA_CITY, 19, 28 - spawn CINNABAR_ISLAND, 11, 12 - spawn ROUTE_23, 9, 6 - - spawn NEW_BARK_TOWN, 13, 6 - spawn CHERRYGROVE_CITY, 29, 4 - spawn VIOLET_CITY, 31, 26 - spawn ROUTE_32, 11, 74 - spawn AZALEA_TOWN, 15, 10 - spawn CIANWOOD_CITY, 23, 44 - spawn GOLDENROD_CITY, 15, 28 - spawn OLIVINE_CITY, 13, 22 - spawn ECRUTEAK_CITY, 23, 28 - spawn MAHOGANY_TOWN, 15, 14 - spawn LAKE_OF_RAGE, 21, 29 - spawn BLACKTHORN_CITY, 21, 30 - spawn SILVER_CAVE_OUTSIDE, 23, 20 - spawn FAST_SHIP_CABINS_SW_SSW_NW, 6, 2 - spawn N_A, -1, -1 - +INCLUDE "data/spawn_points.asm" LoadSpawnPoint: ; 1531f diff --git a/engine/sprites.asm b/engine/sprites.asm index ad36dfbc9..4b20a2371 100755 --- a/engine/sprites.asm +++ b/engine/sprites.asm @@ -551,98 +551,7 @@ BrokenGetStdGraphics: ; 8d1ac ; 8d1c4 SpriteAnimSeqData: ; 8d1c4 -; entries correspond to SPRITE_ANIM_INDEX_* constants - ; frameset sequence, tile -; SPRITE_ANIM_INDEX_PARTY_MON - db SPRITE_ANIM_FRAMESET_PARTY_MON, SPRITE_ANIM_SEQ_PARTY_MON, $00 -; SPRITE_ANIM_INDEX_01 - db SPRITE_ANIM_FRAMESET_07, SPRITE_ANIM_SEQ_04, $00 -; SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR - db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR, $05 -; SPRITE_ANIM_INDEX_GAMEFREAK_LOGO - db SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO, SPRITE_ANIM_SEQ_GAMEFREAK_LOGO, $00 -; SPRITE_ANIM_INDEX_GS_INTRO_STAR - db SPRITE_ANIM_FRAMESET_GS_INTRO_STAR, SPRITE_ANIM_SEQ_GS_INTRO_STAR, $06 -; SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE - db SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE, SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE, $06 -; SPRITE_ANIM_INDEX_SLOTS_GOLEM - db SPRITE_ANIM_FRAMESET_SLOTS_GOLEM, SPRITE_ANIM_SEQ_SLOTS_GOLEM, $07 -; SPRITE_ANIM_INDEX_SLOTS_CHANSEY - db SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY, SPRITE_ANIM_SEQ_SLOTS_CHANSEY, $07 -; SPRITE_ANIM_INDEX_SLOTS_EGG - db SPRITE_ANIM_FRAMESET_SLOTS_EGG, SPRITE_ANIM_SEQ_SLOTS_EGG, $07 -; SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR - db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_MAIL_CURSOR, $05 -; SPRITE_ANIM_INDEX_RED_WALK - db SPRITE_ANIM_FRAMESET_RED_WALK, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_0B - db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0D, $08 -; SPRITE_ANIM_INDEX_DUMMY_GAME - db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0E, $08 -; SPRITE_ANIM_INDEX_0D - db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0F, $08 -; SPRITE_ANIM_INDEX_TRADE_POKE_BALL - db SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL, SPRITE_ANIM_SEQ_TRADE_POKE_BALL, $00 -; SPRITE_ANIM_INDEX_TRADE_POOF - db SPRITE_ANIM_FRAMESET_TRADE_POOF, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE - db SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE, SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE, $00 -; SPRITE_ANIM_INDEX_TRADEMON_ICON - db SPRITE_ANIM_FRAMESET_TRADEMON_ICON, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00 -; SPRITE_ANIM_INDEX_TRADEMON_BUBBLE - db SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00 -; SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT - db SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT, SPRITE_ANIM_SEQ_REVEAL_NEW_MON, $00 -; SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB - db SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB, SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB, $00 -; SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED - db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_LEAF - db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_CUT_LEAVES, $00 -; SPRITE_ANIM_INDEX_CUT_TREE - db SPRITE_ANIM_FRAMESET_CUT_TREE, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_FLY_LEAF - db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_FLY_LEAF, $00 -; SPRITE_ANIM_INDEX_EGG_CRACK - db SPRITE_ANIM_FRAMESET_EGG_CRACK, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_1A - db SPRITE_ANIM_FRAMESET_24, SPRITE_ANIM_SEQ_19, $00 -; SPRITE_ANIM_INDEX_HEADBUTT - db SPRITE_ANIM_FRAMESET_HEADBUTT, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_EGG_HATCH - db SPRITE_ANIM_FRAMESET_EGG_HATCH, SPRITE_ANIM_SEQ_REVEAL_NEW_MON, $00 -; SPRITE_ANIM_INDEX_1D - db SPRITE_ANIM_FRAMESET_26, SPRITE_ANIM_SEQ_1A, $00 -; SPRITE_ANIM_INDEX_BLUE_WALK - db SPRITE_ANIM_FRAMESET_BLUE_WALK, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE - db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_20 - db SPRITE_ANIM_FRAMESET_2F, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_21 - db SPRITE_ANIM_FRAMESET_30, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_22 - db SPRITE_ANIM_FRAMESET_31, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_23 - db SPRITE_ANIM_FRAMESET_32, SPRITE_ANIM_SEQ_1B, $00 -; SPRITE_ANIM_INDEX_24 - db SPRITE_ANIM_FRAMESET_33, SPRITE_ANIM_SEQ_1C, $00 -; SPRITE_ANIM_INDEX_25 - db SPRITE_ANIM_FRAMESET_34, SPRITE_ANIM_SEQ_NULL, $00 -; SPRITE_ANIM_INDEX_INTRO_SUICUNE - db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE, SPRITE_ANIM_SEQ_INTRO_SUICUNE, $00 -; SPRITE_ANIM_INDEX_INTRO_PICHU - db SPRITE_ANIM_FRAMESET_INTRO_PICHU, SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER, $00 -; SPRITE_ANIM_INDEX_INTRO_WOOPER - db SPRITE_ANIM_FRAMESET_INTRO_WOOPER, SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER, $00 -; SPRITE_ANIM_INDEX_INTRO_UNOWN - db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1, SPRITE_ANIM_SEQ_INTRO_UNOWN, $00 -; SPRITE_ANIM_INDEX_INTRO_UNOWN_F - db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F, SPRITE_ANIM_SEQ_INTRO_UNOWN_F, $00 -; SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY - db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY, SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY, $00 -; SPRITE_ANIM_INDEX_CELEBI - db SPRITE_ANIM_FRAMESET_CELEBI_LEFT, SPRITE_ANIM_SEQ_NULL, $00 ; 2c +INCLUDE "data/sprite_anim_seqs.asm" ; 8d24b INCLUDE "engine/sprite_anims.asm" ; DoAnimFrame diff --git a/engine/time_capsule/conversion.asm b/engine/time_capsule/conversion.asm index 561721074..6f17398fd 100755 --- a/engine/time_capsule/conversion.asm +++ b/engine/time_capsule/conversion.asm @@ -145,159 +145,7 @@ PlaceTradePartnerNamesAndParty: ; fb60d ; fb656 KantoMonSpecials: ; fb656 -; The original special base stat for -; each Kanto monster from Red/Blue. - db 65 ; BULBASAUR - db 80 ; IVYSAUR - db 100 ; VENUSAUR - db 50 ; CHARMANDER - db 65 ; CHARMELEON - db 85 ; CHARIZARD - db 50 ; SQUIRTLE - db 65 ; WARTORTLE - db 85 ; BLASTOISE - db 20 ; CATERPIE - db 25 ; METAPOD - db 80 ; BUTTERFREE - db 20 ; WEEDLE - db 25 ; KAKUNA - db 45 ; BEEDRILL - db 35 ; PIDGEY - db 50 ; PIDGEOTTO - db 70 ; PIDGEOT - db 25 ; RATTATA - db 50 ; RATICATE - db 31 ; SPEAROW - db 61 ; FEAROW - db 40 ; EKANS - db 65 ; ARBOK - db 50 ; PIKACHU - db 90 ; RAICHU - db 30 ; SANDSHREW - db 55 ; SANDSLASH - db 40 ; NIDORAN_F - db 55 ; NIDORINA - db 75 ; NIDOQUEEN - db 40 ; NIDORAN_M - db 55 ; NIDORINO - db 75 ; NIDOKING - db 60 ; CLEFAIRY - db 85 ; CLEFABLE - db 65 ; VULPIX - db 100 ; NINETALES - db 25 ; JIGGLYPUFF - db 50 ; WIGGLYTUFF - db 40 ; ZUBAT - db 75 ; GOLBAT - db 75 ; ODDISH - db 85 ; GLOOM - db 100 ; VILEPLUME - db 55 ; PARAS - db 80 ; PARASECT - db 40 ; VENONAT - db 90 ; VENOMOTH - db 45 ; DIGLETT - db 70 ; DUGTRIO - db 40 ; MEOWTH - db 65 ; PERSIAN - db 50 ; PSYDUCK - db 80 ; GOLDUCK - db 35 ; MANKEY - db 60 ; PRIMEAPE - db 50 ; GROWLITHE - db 80 ; ARCANINE - db 40 ; POLIWAG - db 50 ; POLIWHIRL - db 70 ; POLIWRATH - db 105 ; ABRA - db 120 ; KADABRA - db 135 ; ALAKAZAM - db 35 ; MACHOP - db 50 ; MACHOKE - db 65 ; MACHAMP - db 70 ; BELLSPROUT - db 85 ; WEEPINBELL - db 100 ; VICTREEBEL - db 100 ; TENTACOOL - db 120 ; TENTACRUEL - db 30 ; GEODUDE - db 45 ; GRAVELER - db 55 ; GOLEM - db 65 ; PONYTA - db 80 ; RAPIDASH - db 40 ; SLOWPOKE - db 80 ; SLOWBRO - db 95 ; MAGNEMITE - db 120 ; MAGNETON - db 58 ; FARFETCH_D - db 35 ; DODUO - db 60 ; DODRIO - db 70 ; SEEL - db 95 ; DEWGONG - db 40 ; GRIMER - db 65 ; MUK - db 45 ; SHELLDER - db 85 ; CLOYSTER - db 100 ; GASTLY - db 115 ; HAUNTER - db 130 ; GENGAR - db 30 ; ONIX - db 90 ; DROWZEE - db 115 ; HYPNO - db 25 ; KRABBY - db 50 ; KINGLER - db 55 ; VOLTORB - db 80 ; ELECTRODE - db 60 ; EXEGGCUTE - db 125 ; EXEGGUTOR - db 40 ; CUBONE - db 50 ; MAROWAK - db 35 ; HITMONLEE - db 35 ; HITMONCHAN - db 60 ; LICKITUNG - db 60 ; KOFFING - db 85 ; WEEZING - db 30 ; RHYHORN - db 45 ; RHYDON - db 105 ; CHANSEY - db 100 ; TANGELA - db 40 ; KANGASKHAN - db 70 ; HORSEA - db 95 ; SEADRA - db 50 ; GOLDEEN - db 80 ; SEAKING - db 70 ; STARYU - db 100 ; STARMIE - db 100 ; MR__MIME - db 55 ; SCYTHER - db 95 ; JYNX - db 85 ; ELECTABUZZ - db 85 ; MAGMAR - db 55 ; PINSIR - db 70 ; TAUROS - db 20 ; MAGIKARP - db 100 ; GYARADOS - db 95 ; LAPRAS - db 48 ; DITTO - db 65 ; EEVEE - db 110 ; VAPOREON - db 110 ; JOLTEON - db 110 ; FLAREON - db 75 ; PORYGON - db 90 ; OMANYTE - db 115 ; OMASTAR - db 45 ; KABUTO - db 70 ; KABUTOPS - db 60 ; AERODACTYL - db 65 ; SNORLAX - db 125 ; ARTICUNO - db 125 ; ZAPDOS - db 125 ; MOLTRES - db 50 ; DRATINI - db 70 ; DRAGONAIR - db 100 ; DRAGONITE - db 154 ; MEWTWO - db 100 ; MEW +INCLUDE "data/time_capsule/special_stats.asm" ; fb6ed @@ -427,256 +275,5 @@ ConvertMon_1to2: ; fb908 ; fb91c Pokered_MonIndices: ; fb91c - db RHYDON - db KANGASKHAN - db NIDORAN_M - db CLEFAIRY - db SPEAROW - db VOLTORB - db NIDOKING - db SLOWBRO - db IVYSAUR - db EXEGGUTOR - db LICKITUNG - db EXEGGCUTE - db GRIMER - db GENGAR - db NIDORAN_F - db NIDOQUEEN - db CUBONE - db RHYHORN - db LAPRAS - db ARCANINE - db MEW - db GYARADOS - db SHELLDER - db TENTACOOL - db GASTLY - db SCYTHER - db STARYU - db BLASTOISE - db PINSIR - db TANGELA - db SCIZOR - db SHUCKLE - db GROWLITHE - db ONIX - db FEAROW - db PIDGEY - db SLOWPOKE - db KADABRA - db GRAVELER - db CHANSEY - db MACHOKE - db MR__MIME - db HITMONLEE - db HITMONCHAN - db ARBOK - db PARASECT - db PSYDUCK - db DROWZEE - db GOLEM - db HERACROSS - db MAGMAR - db HO_OH - db ELECTABUZZ - db MAGNETON - db KOFFING - db SNEASEL - db MANKEY - db SEEL - db DIGLETT - db TAUROS - db TEDDIURSA - db URSARING - db SLUGMA - db FARFETCH_D - db VENONAT - db DRAGONITE - db MAGCARGO - db SWINUB - db PILOSWINE - db DODUO - db POLIWAG - db JYNX - db MOLTRES - db ARTICUNO - db ZAPDOS - db DITTO - db MEOWTH - db KRABBY - db CORSOLA - db REMORAID - db OCTILLERY - db VULPIX - db NINETALES - db PIKACHU - db RAICHU - db DELIBIRD - db MANTINE - db DRATINI - db DRAGONAIR - db KABUTO - db KABUTOPS - db HORSEA - db SEADRA - db SKARMORY - db HOUNDOUR - db SANDSHREW - db SANDSLASH - db OMANYTE - db OMASTAR - db JIGGLYPUFF - db WIGGLYTUFF - db EEVEE - db FLAREON - db JOLTEON - db VAPOREON - db MACHOP - db ZUBAT - db EKANS - db PARAS - db POLIWHIRL - db POLIWRATH - db WEEDLE - db KAKUNA - db BEEDRILL - db HOUNDOOM - db DODRIO - db PRIMEAPE - db DUGTRIO - db VENOMOTH - db DEWGONG - db KINGDRA - db PHANPY - db CATERPIE - db METAPOD - db BUTTERFREE - db MACHAMP - db DONPHAN - db GOLDUCK - db HYPNO - db GOLBAT - db MEWTWO - db SNORLAX - db MAGIKARP - db PORYGON2 - db STANTLER - db MUK - db SMEARGLE - db KINGLER - db CLOYSTER - db TYROGUE - db ELECTRODE - db CLEFABLE - db WEEZING - db PERSIAN - db MAROWAK - db HITMONTOP - db HAUNTER - db ABRA - db ALAKAZAM - db PIDGEOTTO - db PIDGEOT - db STARMIE - db BULBASAUR - db VENUSAUR - db TENTACRUEL - db SMOOCHUM - db GOLDEEN - db SEAKING - db ELEKID - db MAGBY - db MILTANK - db BLISSEY - db PONYTA - db RAPIDASH - db RATTATA - db RATICATE - db NIDORINO - db NIDORINA - db GEODUDE - db PORYGON - db AERODACTYL - db RAIKOU - db MAGNEMITE - db ENTEI - db SUICUNE - db CHARMANDER - db SQUIRTLE - db CHARMELEON - db WARTORTLE - db CHARIZARD - db LARVITAR - db PUPITAR - db TYRANITAR - db LUGIA - db ODDISH - db GLOOM - db VILEPLUME - db BELLSPROUT - db WEEPINBELL - db VICTREEBEL - db CHIKORITA - db BAYLEEF - db MEGANIUM - db CYNDAQUIL - db QUILAVA - db TYPHLOSION - db TOTODILE - db CROCONAW - db FERALIGATR - db SENTRET - db FURRET - db HOOTHOOT - db NOCTOWL - db LEDYBA - db LEDIAN - db SPINARAK - db ARIADOS - db CROBAT - db CHINCHOU - db LANTURN - db PICHU - db CLEFFA - db IGGLYBUFF - db TOGEPI - db TOGETIC - db NATU - db XATU - db MAREEP - db FLAAFFY - db AMPHAROS - db BELLOSSOM - db MARILL - db AZUMARILL - db SUDOWOODO - db POLITOED - db HOPPIP - db SKIPLOOM - db JUMPLUFF - db AIPOM - db SUNKERN - db SUNFLORA - db YANMA - db WOOPER - db QUAGSIRE - db ESPEON - db UMBREON - db MURKROW - db SLOWKING - db MISDREAVUS - db UNOWN - db WOBBUFFET - db GIRAFARIG - db PINECO - db FORRETRESS - db DUNSPARCE - db GLIGAR - db STEELIX - db SNUBBULL - db GRANBULL - db QWILFISH - db WOBBUFFET - db WOBBUFFET +INCLUDE "data/time_capsule/mon_order.asm" ; fba18 diff --git a/engine/tmhm.asm b/engine/tmhm.asm index dc5d698e1..40922c9ad 100755 --- a/engine/tmhm.asm +++ b/engine/tmhm.asm @@ -46,68 +46,5 @@ GetTMHMMove: ; 1166a ; 1167a TMHMMoves: ; 1167a - db DYNAMICPUNCH - db HEADBUTT - db CURSE - db ROLLOUT - db ROAR - db TOXIC - db ZAP_CANNON - db ROCK_SMASH - db PSYCH_UP - db HIDDEN_POWER - db SUNNY_DAY - db SWEET_SCENT - db SNORE - db BLIZZARD - db HYPER_BEAM - db ICY_WIND - db PROTECT - db RAIN_DANCE - db GIGA_DRAIN - db ENDURE - db FRUSTRATION - db SOLARBEAM - db IRON_TAIL - db DRAGONBREATH - db THUNDER - db EARTHQUAKE - db RETURN - db DIG - db PSYCHIC_M - db SHADOW_BALL - db MUD_SLAP - db DOUBLE_TEAM - db ICE_PUNCH - db SWAGGER - db SLEEP_TALK - db SLUDGE_BOMB - db SANDSTORM - db FIRE_BLAST - db SWIFT - db DEFENSE_CURL - db THUNDERPUNCH - db DREAM_EATER - db DETECT - db REST - db ATTRACT - db THIEF - db STEEL_WING - db FIRE_PUNCH - db FURY_CUTTER - db NIGHTMARE - db CUT - db FLY - db SURF - db STRENGTH - db FLASH - db WHIRLPOOL - db WATERFALL - -; Move tutor - db FLAMETHROWER - db THUNDERBOLT - db ICE_BEAM - - db 0 ; end +INCLUDE "data/tmhm_moves.asm" ; 116b7 diff --git a/engine/wildmons.asm b/engine/wildmons.asm index bb668f2be..8fab382b7 100755 --- a/engine/wildmons.asm +++ b/engine/wildmons.asm @@ -271,14 +271,14 @@ ChooseWildEncounter: ; 2a14f inc hl inc hl call CheckOnWater - ld de, .WaterMonTable + ld de, WaterMonProbTable jr z, .watermon inc hl inc hl ld a, [TimeOfDay] ld bc, $e call AddNTimes - ld de, .GrassMonTable + ld de, GrassMonProbTable .watermon ; hl contains the pointer to the wild mon data, let's save that to the stack @@ -357,21 +357,7 @@ ChooseWildEncounter: ; 2a14f ret ; 2a1cb -.GrassMonTable: ; 2a1cb - db 30, $0 ; 30% chance - db 60, $2 ; 30% chance - db 80, $4 ; 20% chance - db 90, $6 ; 10% chance - db 95, $8 ; 5% chance - db 99, $a ; 4% chance - db 100, $c ; 1% chance -; 2a1d9 - -.WaterMonTable: ; 2a1d9 - db 60, $0 ; 60% chance - db 90, $2 ; 30% chance - db 100, $4 ; 10% chance -; 2a1df +INCLUDE "data/wild/probabilities.asm" CheckRepelEffect:: ; 2a1df ; If there is no active Repel, there's no need to be here. @@ -799,27 +785,7 @@ _BackUpMapIndices: ; 2a3f6 ; 2a40f RoamMaps: ; 2a40f -; Maps that roaming monsters can be on, -; and possible maps they can jump to. -; Notably missing are Route 40 and -; Route 41, which are water routes. - roam_map ROUTE_29, 2, ROUTE_30, ROUTE_46 - roam_map ROUTE_30, 2, ROUTE_29, ROUTE_31 - roam_map ROUTE_31, 3, ROUTE_30, ROUTE_32, ROUTE_36 - roam_map ROUTE_32, 3, ROUTE_36, ROUTE_31, ROUTE_33 - roam_map ROUTE_33, 2, ROUTE_32, ROUTE_34 - roam_map ROUTE_34, 2, ROUTE_33, ROUTE_35 - roam_map ROUTE_35, 2, ROUTE_34, ROUTE_36 - roam_map ROUTE_36, 4, ROUTE_35, ROUTE_31, ROUTE_32, ROUTE_37 - roam_map ROUTE_37, 3, ROUTE_36, ROUTE_38, ROUTE_42 - roam_map ROUTE_38, 3, ROUTE_37, ROUTE_39, ROUTE_42 - roam_map ROUTE_39, 1, ROUTE_38 - roam_map ROUTE_42, 4, ROUTE_43, ROUTE_44, ROUTE_37, ROUTE_38 - roam_map ROUTE_43, 2, ROUTE_42, ROUTE_44 - roam_map ROUTE_44, 3, ROUTE_42, ROUTE_43, ROUTE_45 - roam_map ROUTE_45, 2, ROUTE_44, ROUTE_46 - roam_map ROUTE_46, 2, ROUTE_45, ROUTE_29 - db -1 +INCLUDE "data/wild/roammon_maps.asm" ; 2a4a0 ValidateTempWildMonSpecies: ; 2a4a0 diff --git a/event/happiness_egg.asm b/event/happiness_egg.asm index 7588108bf..7c6d6f46b 100755 --- a/event/happiness_egg.asm +++ b/event/happiness_egg.asm @@ -55,11 +55,11 @@ ChangeHappiness: ; 71c2 push de ld a, [de] - cp 100 + cp HAPPINESS_THRESHOLD_1 ld e, 0 jr c, .ok inc e - cp 200 + cp HAPPINESS_THRESHOLD_2 jr c, .ok inc e @@ -73,7 +73,7 @@ ChangeHappiness: ; 71c2 ld d, 0 add hl, de ld a, [hl] - cp 100 + cp $64 ; $80? pop de ld a, [de] @@ -103,25 +103,7 @@ ChangeHappiness: ; 71c2 ret .Actions: - db +5, +3, +2 ; Gained a level - db +5, +3, +2 ; Vitamin - db +1, +1, +0 ; X Item - db +3, +2, +1 ; Battled a Gym Leader - db +1, +1, +0 ; Learned a move - db -1, -1, -1 ; Lost to an enemy - db -5, -5, -10 ; Fainted due to poison - db -5, -5, -10 ; Lost to a much stronger enemy - db +1, +1, +1 ; Haircut (Y1) - db +3, +3, +1 ; Haircut (Y2) - db +5, +5, +2 ; Haircut (Y3) - db +1, +1, +1 ; Haircut (O1) - db +3, +3, +1 ; Haircut (O2) - db +10, +10, +4 ; Haircut (O3) - db -5, -5, -10 ; Used Heal Powder or Energypowder (bitter) - db -10, -10, -15 ; Used Energy Root (bitter) - db -15, -15, -20 ; Used Revival Herb (bitter) - db +3, +3, +1 ; Grooming - db +10, +6, +4 ; Gained a level in the place where it was caught +INCLUDE "data/happiness_changes.asm" StepHappiness:: ; 725a ; Raise the party's happiness by 1 point every other step cycle. @@ -165,7 +147,7 @@ DayCareStep:: ; 7282 jr z, .day_care_lady ld a, [wBreedMon1Level] ; level - cp 100 + cp MAX_LEVEL jr nc, .day_care_lady ld hl, wBreedMon1Exp + 2 ; exp inc [hl] @@ -187,7 +169,7 @@ DayCareStep:: ; 7282 jr z, .check_egg ld a, [wBreedMon2Level] ; level - cp 100 + cp MAX_LEVEL jr nc, .check_egg ld hl, wBreedMon2Exp + 2 ; exp inc [hl] diff --git a/event/mom_phone.asm b/event/mom_phone.asm index 818010091..0d7a2366f 100755 --- a/event/mom_phone.asm +++ b/event/mom_phone.asm @@ -80,11 +80,11 @@ CheckBalance_MomItem2: ; fd044 .check_have_2300 ld hl, hMoneyTemp - ld [hl], (2300 / $10000) ; $00 + ld [hl], MOM_MONEY / $10000 inc hl - ld [hl], ((2300 % $10000) / $100) ; $08 + ld [hl], MOM_MONEY / $100 % $100 inc hl - ld [hl], (2300 % $100) ; $fc + ld [hl], MOM_MONEY % $100 .loop ld de, MomItemTriggerBalance ld bc, wMomsMoney @@ -212,31 +212,7 @@ endr ret ; fd136 -momitem: macro -; money to trigger, cost, kind, item - dt \1 - dt \2 - db \3, \4 -ENDM - -MomItems_1: ; fd136 - momitem 0, 600, MOM_ITEM, SUPER_POTION - momitem 0, 90, MOM_ITEM, ANTIDOTE - momitem 0, 180, MOM_ITEM, POKE_BALL - momitem 0, 450, MOM_ITEM, ESCAPE_ROPE - momitem 0, 500, MOM_ITEM, GREAT_BALL -MomItems_2: ; fd15e - momitem 900, 600, MOM_ITEM, SUPER_POTION - momitem 4000, 270, MOM_ITEM, REPEL - momitem 7000, 600, MOM_ITEM, SUPER_POTION - momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL - momitem 15000, 3000, MOM_ITEM, MOON_STONE - momitem 19000, 600, MOM_ITEM, SUPER_POTION - momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL - momitem 40000, 900, MOM_ITEM, HYPER_POTION - momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL - momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL -; fd1ae +INCLUDE "data/mom_phone_items.asm" db 0, 0, 0 ; XXX diff --git a/event/overworld.asm b/event/overworld.asm index 4d67bf61e..221f02a4f 100755 --- a/event/overworld.asm +++ b/event/overworld.asm @@ -277,53 +277,9 @@ CheckOverworldTileArrays: ; c840 xor a ret -CutTreeBlockPointers: ; c862 -; Which tileset are we in? - dbw TILESET_JOHTO_1, .johto1 - dbw TILESET_JOHTO_2, .johto2 - dbw TILESET_KANTO, .kanto - dbw TILESET_PARK, .park - dbw TILESET_ILEX_FOREST, .ilex - db -1 - -.johto1 ; Johto OW -; Which meta tile are we facing, which should we replace it with, and which animation? - db $03, $02, $01 ; grass - db $5b, $3c, $00 ; tree - db $5f, $3d, $00 ; tree - db $63, $3f, $00 ; tree - db $67, $3e, $00 ; tree - db -1 - -.johto2 ; Goldenrod area - db $03, $02, $01 ; grass - db -1 - -.kanto ; Kanto OW - db $0b, $0a, $01 ; grass - db $32, $6d, $00 ; tree - db $33, $6c, $00 ; tree - db $34, $6f, $00 ; tree - db $35, $4c, $00 ; tree - db $60, $6e, $00 ; tree - db -1 - -.park ; National Park - db $13, $03, $01 ; grass - db $03, $04, $01 ; grass - db -1 - -.ilex ; Ilex Forest - db $0f, $17, $00 - db -1 - -WhirlpoolBlockPointers: ; c8a4 - dbw TILESET_JOHTO_1, .johto - db -1 - -.johto ; c8a8 - db $07, $36, $00 - db -1 + +INCLUDE "data/hm_blocks.asm" + OWFlash: ; c8ac call .CheckUseFlash diff --git a/gfx/icon_pointers.asm b/gfx/icon_pointers.asm new file mode 100644 index 000000000..bfe07abb6 --- /dev/null +++ b/gfx/icon_pointers.asm @@ -0,0 +1,41 @@ +IconPointers: +; entries correspond to ICON_* constants + dw NullIcon + dw PoliwagIcon + dw JigglypuffIcon + dw DiglettIcon + dw PikachuIcon + dw StaryuIcon + dw FishIcon + dw BirdIcon + dw MonsterIcon + dw ClefairyIcon + dw OddishIcon + dw BugIcon + dw GhostIcon + dw LaprasIcon + dw HumanshapeIcon + dw FoxIcon + dw EquineIcon + dw ShellIcon + dw BlobIcon + dw SerpentIcon + dw VoltorbIcon + dw SquirtleIcon + dw BulbasaurIcon + dw CharmanderIcon + dw CaterpillarIcon + dw UnownIcon + dw GeodudeIcon + dw FighterIcon + dw EggIcon + dw JellyfishIcon + dw MothIcon + dw BatIcon + dw SnorlaxIcon + dw HoOhIcon + dw LugiaIcon + dw GyaradosIcon + dw SlowpokeIcon + dw SudowoodoIcon + dw BigmonIcon diff --git a/gfx/icons.asm b/gfx/icons.asm new file mode 100644 index 000000000..8d44c1fef --- /dev/null +++ b/gfx/icons.asm @@ -0,0 +1,39 @@ +NullIcon: +PoliwagIcon: INCBIN "gfx/icon/poliwag.2bpp" ; 0x8ec0d +JigglypuffIcon: INCBIN "gfx/icon/jigglypuff.2bpp" ; 0x8ec8d +DiglettIcon: INCBIN "gfx/icon/diglett.2bpp" ; 0x8ed0d +PikachuIcon: INCBIN "gfx/icon/pikachu.2bpp" ; 0x8ed8d +StaryuIcon: INCBIN "gfx/icon/staryu.2bpp" ; 0x8ee0d +FishIcon: INCBIN "gfx/icon/fish.2bpp" ; 0x8ee8d +BirdIcon: INCBIN "gfx/icon/bird.2bpp" ; 0x8ef0d +MonsterIcon: INCBIN "gfx/icon/monster.2bpp" ; 0x8ef8d +ClefairyIcon: INCBIN "gfx/icon/clefairy.2bpp" ; 0x8f00d +OddishIcon: INCBIN "gfx/icon/oddish.2bpp" ; 0x8f08d +BugIcon: INCBIN "gfx/icon/bug.2bpp" ; 0x8f10d +GhostIcon: INCBIN "gfx/icon/ghost.2bpp" ; 0x8f18d +LaprasIcon: INCBIN "gfx/icon/lapras.2bpp" ; 0x8f20d +HumanshapeIcon: INCBIN "gfx/icon/humanshape.2bpp" ; 0x8f28d +FoxIcon: INCBIN "gfx/icon/fox.2bpp" ; 0x8f30d +EquineIcon: INCBIN "gfx/icon/equine.2bpp" ; 0x8f38d +ShellIcon: INCBIN "gfx/icon/shell.2bpp" ; 0x8f40d +BlobIcon: INCBIN "gfx/icon/blob.2bpp" ; 0x8f48d +SerpentIcon: INCBIN "gfx/icon/serpent.2bpp" ; 0x8f50d +VoltorbIcon: INCBIN "gfx/icon/voltorb.2bpp" ; 0x8f58d +SquirtleIcon: INCBIN "gfx/icon/squirtle.2bpp" ; 0x8f60d +BulbasaurIcon: INCBIN "gfx/icon/bulbasaur.2bpp" ; 0x8f68d +CharmanderIcon: INCBIN "gfx/icon/charmander.2bpp" ; 0x8f70d +CaterpillarIcon: INCBIN "gfx/icon/caterpillar.2bpp" ; 0x8f78d +UnownIcon: INCBIN "gfx/icon/unown.2bpp" ; 0x8f80d +GeodudeIcon: INCBIN "gfx/icon/geodude.2bpp" ; 0x8f88d +FighterIcon: INCBIN "gfx/icon/fighter.2bpp" ; 0x8f90d +EggIcon: INCBIN "gfx/icon/egg.2bpp" ; 0x8f98d +JellyfishIcon: INCBIN "gfx/icon/jellyfish.2bpp" ; 0x8fa0d +MothIcon: INCBIN "gfx/icon/moth.2bpp" ; 0x8fa8d +BatIcon: INCBIN "gfx/icon/bat.2bpp" ; 0x8fb0d +SnorlaxIcon: INCBIN "gfx/icon/snorlax.2bpp" ; 0x8fb8d +HoOhIcon: INCBIN "gfx/icon/ho_oh.2bpp" ; 0x8fc0d +LugiaIcon: INCBIN "gfx/icon/lugia.2bpp" ; 0x8fc8d +GyaradosIcon: INCBIN "gfx/icon/gyarados.2bpp" ; 0x8fd0d +SlowpokeIcon: INCBIN "gfx/icon/slowpoke.2bpp" ; 0x8fd8d +SudowoodoIcon: INCBIN "gfx/icon/sudowoodo.2bpp" ; 0x8fe0d +BigmonIcon: INCBIN "gfx/icon/bigmon.2bpp" ; 0x8fe8d diff --git a/macros/map.asm b/macros/map.asm index 40555d71c..eb78be725 100644 --- a/macros/map.asm +++ b/macros/map.asm @@ -212,15 +212,3 @@ stonetable: macro db \1, \2 dw \3 endm - - -roam_map: macro -; A map and an arbitrary number of some more maps. - map \1 - db \2 -rept \2 - map \3 - shift -endr - db 0 -endm @@ -2350,7 +2350,9 @@ CheckSave:: ; 4cffe ld c, $0 ret -INCLUDE "engine/map_triggers.asm" +MapTriggers:: ; 4d01e +INCLUDE "data/map_triggers.asm" +; 4d15b _LoadMapPart:: ; 4d15b ld hl, wMisc @@ -6063,8 +6065,8 @@ INCBIN "unknown/1f5db4.bin" SECTION "bank7E", ROMX -INCLUDE "data/battle_tower.asm" -INCLUDE "data/odd_eggs.asm" +INCLUDE "engine/battle_tower.asm" +INCLUDE "engine/odd_eggs.asm" SECTION "bank7F", ROMX diff --git a/maps/BlackthornEmysHouse.asm b/maps/BlackthornEmysHouse.asm index 9869fe720..bb69914d4 100644 --- a/maps/BlackthornEmysHouse.asm +++ b/maps/BlackthornEmysHouse.asm @@ -11,7 +11,7 @@ BlackthornEmysHouse_MapScriptHeader: Emy: faceplayer opentext - trade $3 + trade NPCTRADE_EMY waitbutton closetext end diff --git a/maps/GoldenrodDeptStore5F.asm b/maps/GoldenrodDeptStore5F.asm index 247322ea6..0c33b44a3 100644 --- a/maps/GoldenrodDeptStore5F.asm +++ b/maps/GoldenrodDeptStore5F.asm @@ -126,7 +126,7 @@ LassScript_0x56130: Mike: faceplayer opentext - trade $0 + trade NPCTRADE_MIKE waitbutton closetext end diff --git a/maps/OlivineTimsHouse.asm b/maps/OlivineTimsHouse.asm index 0d9a2862c..bde18bee1 100644 --- a/maps/OlivineTimsHouse.asm +++ b/maps/OlivineTimsHouse.asm @@ -11,7 +11,7 @@ OlivineTimsHouse_MapScriptHeader: Tim: faceplayer opentext - trade $2 + trade NPCTRADE_TIM waitbutton closetext end diff --git a/maps/PewterPokecenter1F.asm b/maps/PewterPokecenter1F.asm index b0ef93e16..e9ddbbd32 100644 --- a/maps/PewterPokecenter1F.asm +++ b/maps/PewterPokecenter1F.asm @@ -32,7 +32,7 @@ BugCatcherScript_0x1a2ef7: Chris: faceplayer opentext - trade $4 + trade NPCTRADE_CHRIS waitbutton closetext end diff --git a/maps/PowerPlant.asm b/maps/PowerPlant.asm index 193bc7434..f96f0aef5 100644 --- a/maps/PowerPlant.asm +++ b/maps/PowerPlant.asm @@ -191,7 +191,7 @@ UnknownScript_0x188ec5: Forest: faceplayer opentext - trade $6 + trade NPCTRADE_FOREST waitbutton closetext end diff --git a/maps/Route14.asm b/maps/Route14.asm index 0b4372bd6..841ee2c97 100644 --- a/maps/Route14.asm +++ b/maps/Route14.asm @@ -14,7 +14,7 @@ Route14_MapScriptHeader: Kim: faceplayer opentext - trade $5 + trade NPCTRADE_KIM waitbutton closetext end diff --git a/maps/VioletOnixTradeHouse.asm b/maps/VioletOnixTradeHouse.asm index 8e6e44426..feb5b10af 100644 --- a/maps/VioletOnixTradeHouse.asm +++ b/maps/VioletOnixTradeHouse.asm @@ -15,7 +15,7 @@ PokefanMScript_0x6998d: Kyle: faceplayer opentext - trade $1 + trade NPCTRADE_KYLE waitbutton closetext end diff --git a/menu/mon_icons.asm b/menu/mon_icons.asm deleted file mode 100644 index aeb758282..000000000 --- a/menu/mon_icons.asm +++ /dev/null @@ -1,349 +0,0 @@ -ReadMonMenuIcon: ; 8eab3 - cp EGG - jr z, .egg - dec a - ld hl, MonMenuIcons - ld e, a - ld d, 0 - add hl, de - ld a, [hl] - ret -.egg - ld a, ICON_EGG - ret -; 8eac4 - -MonMenuIcons: ; 8eac4 - db ICON_BULBASAUR ; BULBASAUR - db ICON_BULBASAUR ; IVYSAUR - db ICON_BULBASAUR ; VENUSAUR - db ICON_CHARMANDER ; CHARMANDER - db ICON_CHARMANDER ; CHARMELEON - db ICON_BIGMON ; CHARIZARD - db ICON_SQUIRTLE ; SQUIRTLE - db ICON_SQUIRTLE ; WARTORTLE - db ICON_SQUIRTLE ; BLASTOISE - db ICON_CATERPILLAR ; CATERPIE - db ICON_CATERPILLAR ; METAPOD - db ICON_MOTH ; BUTTERFREE - db ICON_CATERPILLAR ; WEEDLE - db ICON_CATERPILLAR ; KAKUNA - db ICON_BUG ; BEEDRILL - db ICON_BIRD ; PIDGEY - db ICON_BIRD ; PIDGEOTTO - db ICON_BIRD ; PIDGEOT - db ICON_FOX ; RATTATA - db ICON_FOX ; RATICATE - db ICON_BIRD ; SPEAROW - db ICON_BIRD ; FEAROW - db ICON_SERPENT ; EKANS - db ICON_SERPENT ; ARBOK - db ICON_PIKACHU ; PIKACHU - db ICON_PIKACHU ; RAICHU - db ICON_MONSTER ; SANDSHREW - db ICON_MONSTER ; SANDSLASH - db ICON_FOX ; NIDORAN_F - db ICON_FOX ; NIDORINA - db ICON_MONSTER ; NIDOQUEEN - db ICON_FOX ; NIDORAN_M - db ICON_FOX ; NIDORINO - db ICON_MONSTER ; NIDOKING - db ICON_CLEFAIRY ; CLEFAIRY - db ICON_CLEFAIRY ; CLEFABLE - db ICON_FOX ; VULPIX - db ICON_FOX ; NINETALES - db ICON_JIGGLYPUFF ; JIGGLYPUFF - db ICON_JIGGLYPUFF ; WIGGLYTUFF - db ICON_BAT ; ZUBAT - db ICON_BAT ; GOLBAT - db ICON_ODDISH ; ODDISH - db ICON_ODDISH ; GLOOM - db ICON_ODDISH ; VILEPLUME - db ICON_BUG ; PARAS - db ICON_BUG ; PARASECT - db ICON_CATERPILLAR ; VENONAT - db ICON_MOTH ; VENOMOTH - db ICON_DIGLETT ; DIGLETT - db ICON_DIGLETT ; DUGTRIO - db ICON_FOX ; MEOWTH - db ICON_FOX ; PERSIAN - db ICON_MONSTER ; PSYDUCK - db ICON_MONSTER ; GOLDUCK - db ICON_FIGHTER ; MANKEY - db ICON_FIGHTER ; PRIMEAPE - db ICON_FOX ; GROWLITHE - db ICON_FOX ; ARCANINE - db ICON_POLIWAG ; POLIWAG - db ICON_POLIWAG ; POLIWHIRL - db ICON_POLIWAG ; POLIWRATH - db ICON_HUMANSHAPE ; ABRA - db ICON_HUMANSHAPE ; KADABRA - db ICON_HUMANSHAPE ; ALAKAZAM - db ICON_FIGHTER ; MACHOP - db ICON_FIGHTER ; MACHOKE - db ICON_FIGHTER ; MACHAMP - db ICON_ODDISH ; BELLSPROUT - db ICON_ODDISH ; WEEPINBELL - db ICON_ODDISH ; VICTREEBEL - db ICON_JELLYFISH ; TENTACOOL - db ICON_JELLYFISH ; TENTACRUEL - db ICON_GEODUDE ; GEODUDE - db ICON_GEODUDE ; GRAVELER - db ICON_GEODUDE ; GOLEM - db ICON_EQUINE ; PONYTA - db ICON_EQUINE ; RAPIDASH - db ICON_SLOWPOKE ; SLOWPOKE - db ICON_SLOWPOKE ; SLOWBRO - db ICON_VOLTORB ; MAGNEMITE - db ICON_VOLTORB ; MAGNETON - db ICON_BIRD ; FARFETCH_D - db ICON_BIRD ; DODUO - db ICON_BIRD ; DODRIO - db ICON_LAPRAS ; SEEL - db ICON_LAPRAS ; DEWGONG - db ICON_BLOB ; GRIMER - db ICON_BLOB ; MUK - db ICON_SHELL ; SHELLDER - db ICON_SHELL ; CLOYSTER - db ICON_GHOST ; GASTLY - db ICON_GHOST ; HAUNTER - db ICON_GHOST ; GENGAR - db ICON_SERPENT ; ONIX - db ICON_HUMANSHAPE ; DROWZEE - db ICON_HUMANSHAPE ; HYPNO - db ICON_SHELL ; KRABBY - db ICON_SHELL ; KINGLER - db ICON_VOLTORB ; VOLTORB - db ICON_VOLTORB ; ELECTRODE - db ICON_ODDISH ; EXEGGCUTE - db ICON_ODDISH ; EXEGGUTOR - db ICON_MONSTER ; CUBONE - db ICON_MONSTER ; MAROWAK - db ICON_FIGHTER ; HITMONLEE - db ICON_FIGHTER ; HITMONCHAN - db ICON_MONSTER ; LICKITUNG - db ICON_BLOB ; KOFFING - db ICON_BLOB ; WEEZING - db ICON_EQUINE ; RHYHORN - db ICON_MONSTER ; RHYDON - db ICON_CLEFAIRY ; CHANSEY - db ICON_ODDISH ; TANGELA - db ICON_MONSTER ; KANGASKHAN - db ICON_FISH ; HORSEA - db ICON_FISH ; SEADRA - db ICON_FISH ; GOLDEEN - db ICON_FISH ; SEAKING - db ICON_STARYU ; STARYU - db ICON_STARYU ; STARMIE - db ICON_HUMANSHAPE ; MR__MIME - db ICON_BUG ; SCYTHER - db ICON_HUMANSHAPE ; JYNX - db ICON_HUMANSHAPE ; ELECTABUZZ - db ICON_HUMANSHAPE ; MAGMAR - db ICON_BUG ; PINSIR - db ICON_EQUINE ; TAUROS - db ICON_FISH ; MAGIKARP - db ICON_GYARADOS ; GYARADOS - db ICON_LAPRAS ; LAPRAS - db ICON_BLOB ; DITTO - db ICON_FOX ; EEVEE - db ICON_FOX ; VAPOREON - db ICON_FOX ; JOLTEON - db ICON_FOX ; FLAREON - db ICON_VOLTORB ; PORYGON - db ICON_SHELL ; OMANYTE - db ICON_SHELL ; OMASTAR - db ICON_SHELL ; KABUTO - db ICON_SHELL ; KABUTOPS - db ICON_BIRD ; AERODACTYL - db ICON_SNORLAX ; SNORLAX - db ICON_BIRD ; ARTICUNO - db ICON_BIRD ; ZAPDOS - db ICON_BIRD ; MOLTRES - db ICON_SERPENT ; DRATINI - db ICON_SERPENT ; DRAGONAIR - db ICON_BIGMON ; DRAGONITE - db ICON_HUMANSHAPE ; MEWTWO - db ICON_HUMANSHAPE ; MEW - db ICON_ODDISH ; CHIKORITA - db ICON_ODDISH ; BAYLEEF - db ICON_ODDISH ; MEGANIUM - db ICON_FOX ; CYNDAQUIL - db ICON_FOX ; QUILAVA - db ICON_FOX ; TYPHLOSION - db ICON_MONSTER ; TOTODILE - db ICON_MONSTER ; CROCONAW - db ICON_MONSTER ; FERALIGATR - db ICON_FOX ; SENTRET - db ICON_FOX ; FURRET - db ICON_BIRD ; HOOTHOOT - db ICON_BIRD ; NOCTOWL - db ICON_BUG ; LEDYBA - db ICON_BUG ; LEDIAN - db ICON_BUG ; SPINARAK - db ICON_BUG ; ARIADOS - db ICON_BAT ; CROBAT - db ICON_FISH ; CHINCHOU - db ICON_FISH ; LANTURN - db ICON_PIKACHU ; PICHU - db ICON_CLEFAIRY ; CLEFFA - db ICON_JIGGLYPUFF ; IGGLYBUFF - db ICON_CLEFAIRY ; TOGEPI - db ICON_BIRD ; TOGETIC - db ICON_BIRD ; NATU - db ICON_BIRD ; XATU - db ICON_FOX ; MAREEP - db ICON_MONSTER ; FLAAFFY - db ICON_MONSTER ; AMPHAROS - db ICON_ODDISH ; BELLOSSOM - db ICON_JIGGLYPUFF ; MARILL - db ICON_JIGGLYPUFF ; AZUMARILL - db ICON_SUDOWOODO ; SUDOWOODO - db ICON_POLIWAG ; POLITOED - db ICON_ODDISH ; HOPPIP - db ICON_ODDISH ; SKIPLOOM - db ICON_ODDISH ; JUMPLUFF - db ICON_MONSTER ; AIPOM - db ICON_ODDISH ; SUNKERN - db ICON_ODDISH ; SUNFLORA - db ICON_BUG ; YANMA - db ICON_MONSTER ; WOOPER - db ICON_MONSTER ; QUAGSIRE - db ICON_FOX ; ESPEON - db ICON_FOX ; UMBREON - db ICON_BIRD ; MURKROW - db ICON_SLOWPOKE ; SLOWKING - db ICON_GHOST ; MISDREAVUS - db ICON_UNOWN ; UNOWN - db ICON_GHOST ; WOBBUFFET - db ICON_EQUINE ; GIRAFARIG - db ICON_BUG ; PINECO - db ICON_BUG ; FORRETRESS - db ICON_SERPENT ; DUNSPARCE - db ICON_BUG ; GLIGAR - db ICON_SERPENT ; STEELIX - db ICON_MONSTER ; SNUBBULL - db ICON_MONSTER ; GRANBULL - db ICON_FISH ; QWILFISH - db ICON_BUG ; SCIZOR - db ICON_BUG ; SHUCKLE - db ICON_BUG ; HERACROSS - db ICON_FOX ; SNEASEL - db ICON_MONSTER ; TEDDIURSA - db ICON_MONSTER ; URSARING - db ICON_BLOB ; SLUGMA - db ICON_BLOB ; MAGCARGO - db ICON_EQUINE ; SWINUB - db ICON_EQUINE ; PILOSWINE - db ICON_SHELL ; CORSOLA - db ICON_FISH ; REMORAID - db ICON_FISH ; OCTILLERY - db ICON_MONSTER ; DELIBIRD - db ICON_FISH ; MANTINE - db ICON_BIRD ; SKARMORY - db ICON_FOX ; HOUNDOUR - db ICON_FOX ; HOUNDOOM - db ICON_BIGMON ; KINGDRA - db ICON_EQUINE ; PHANPY - db ICON_EQUINE ; DONPHAN - db ICON_VOLTORB ; PORYGON2 - db ICON_EQUINE ; STANTLER - db ICON_MONSTER ; SMEARGLE - db ICON_FIGHTER ; TYROGUE - db ICON_FIGHTER ; HITMONTOP - db ICON_HUMANSHAPE ; SMOOCHUM - db ICON_HUMANSHAPE ; ELEKID - db ICON_HUMANSHAPE ; MAGBY - db ICON_EQUINE ; MILTANK - db ICON_CLEFAIRY ; BLISSEY - db ICON_FOX ; RAIKOU - db ICON_FOX ; ENTEI - db ICON_FOX ; SUICUNE - db ICON_MONSTER ; LARVITAR - db ICON_MONSTER ; PUPITAR - db ICON_MONSTER ; TYRANITAR - db ICON_LUGIA ; LUGIA - db ICON_HO_OH ; HO_OH - db ICON_HUMANSHAPE ; CELEBI - -IconPointers: - dw NullIcon - dw PoliwagIcon - dw JigglypuffIcon - dw DiglettIcon - dw PikachuIcon - dw StaryuIcon - dw FishIcon - dw BirdIcon - dw MonsterIcon - dw ClefairyIcon - dw OddishIcon - dw BugIcon - dw GhostIcon - dw LaprasIcon - dw HumanshapeIcon - dw FoxIcon - dw EquineIcon - dw ShellIcon - dw BlobIcon - dw SerpentIcon - dw VoltorbIcon - dw SquirtleIcon - dw BulbasaurIcon - dw CharmanderIcon - dw CaterpillarIcon - dw UnownIcon - dw GeodudeIcon - dw FighterIcon - dw EggIcon - dw JellyfishIcon - dw MothIcon - dw BatIcon - dw SnorlaxIcon - dw HoOhIcon - dw LugiaIcon - dw GyaradosIcon - dw SlowpokeIcon - dw SudowoodoIcon - dw BigmonIcon - -Icons: -NullIcon: -PoliwagIcon: INCBIN "gfx/icon/poliwag.2bpp" ; 0x8ec0d -JigglypuffIcon: INCBIN "gfx/icon/jigglypuff.2bpp" ; 0x8ec8d -DiglettIcon: INCBIN "gfx/icon/diglett.2bpp" ; 0x8ed0d -PikachuIcon: INCBIN "gfx/icon/pikachu.2bpp" ; 0x8ed8d -StaryuIcon: INCBIN "gfx/icon/staryu.2bpp" ; 0x8ee0d -FishIcon: INCBIN "gfx/icon/fish.2bpp" ; 0x8ee8d -BirdIcon: INCBIN "gfx/icon/bird.2bpp" ; 0x8ef0d -MonsterIcon: INCBIN "gfx/icon/monster.2bpp" ; 0x8ef8d -ClefairyIcon: INCBIN "gfx/icon/clefairy.2bpp" ; 0x8f00d -OddishIcon: INCBIN "gfx/icon/oddish.2bpp" ; 0x8f08d -BugIcon: INCBIN "gfx/icon/bug.2bpp" ; 0x8f10d -GhostIcon: INCBIN "gfx/icon/ghost.2bpp" ; 0x8f18d -LaprasIcon: INCBIN "gfx/icon/lapras.2bpp" ; 0x8f20d -HumanshapeIcon: INCBIN "gfx/icon/humanshape.2bpp" ; 0x8f28d -FoxIcon: INCBIN "gfx/icon/fox.2bpp" ; 0x8f30d -EquineIcon: INCBIN "gfx/icon/equine.2bpp" ; 0x8f38d -ShellIcon: INCBIN "gfx/icon/shell.2bpp" ; 0x8f40d -BlobIcon: INCBIN "gfx/icon/blob.2bpp" ; 0x8f48d -SerpentIcon: INCBIN "gfx/icon/serpent.2bpp" ; 0x8f50d -VoltorbIcon: INCBIN "gfx/icon/voltorb.2bpp" ; 0x8f58d -SquirtleIcon: INCBIN "gfx/icon/squirtle.2bpp" ; 0x8f60d -BulbasaurIcon: INCBIN "gfx/icon/bulbasaur.2bpp" ; 0x8f68d -CharmanderIcon: INCBIN "gfx/icon/charmander.2bpp" ; 0x8f70d -CaterpillarIcon: INCBIN "gfx/icon/caterpillar.2bpp" ; 0x8f78d -UnownIcon: INCBIN "gfx/icon/unown.2bpp" ; 0x8f80d -GeodudeIcon: INCBIN "gfx/icon/geodude.2bpp" ; 0x8f88d -FighterIcon: INCBIN "gfx/icon/fighter.2bpp" ; 0x8f90d -EggIcon: INCBIN "gfx/icon/egg.2bpp" ; 0x8f98d -JellyfishIcon: INCBIN "gfx/icon/jellyfish.2bpp" ; 0x8fa0d -MothIcon: INCBIN "gfx/icon/moth.2bpp" ; 0x8fa8d -BatIcon: INCBIN "gfx/icon/bat.2bpp" ; 0x8fb0d -SnorlaxIcon: INCBIN "gfx/icon/snorlax.2bpp" ; 0x8fb8d -HoOhIcon: INCBIN "gfx/icon/ho_oh.2bpp" ; 0x8fc0d -LugiaIcon: INCBIN "gfx/icon/lugia.2bpp" ; 0x8fc8d -GyaradosIcon: INCBIN "gfx/icon/gyarados.2bpp" ; 0x8fd0d -SlowpokeIcon: INCBIN "gfx/icon/slowpoke.2bpp" ; 0x8fd8d -SudowoodoIcon: INCBIN "gfx/icon/sudowoodo.2bpp" ; 0x8fe0d -BigmonIcon: INCBIN "gfx/icon/bigmon.2bpp" ; 0x8fe8d @@ -1613,9 +1613,9 @@ wTrainerHUDTiles:: db NEXTU ; d002 ; mobile participant nicknames ds 4 -wMobileParticipant1Nickname:: ds 6 -wMobileParticipant2Nickname:: ds 6 -wMobileParticipant3Nickname:: ds 6 +wMobileParticipant1Nickname:: ds NAME_LENGTH_JAPANESE +wMobileParticipant2Nickname:: ds NAME_LENGTH_JAPANESE +wMobileParticipant3Nickname:: ds NAME_LENGTH_JAPANESE NEXTU ; d002 ; earthquake data buffer |