diff --git a/data/moves/descriptions.asm b/data/moves/descriptions.asm index d86ceea37..7f35132cf 100644 --- a/data/moves/descriptions.asm +++ b/data/moves/descriptions.asm @@ -836,6 +836,7 @@ LovelyKissDescription: SkyAttackDescription: db "1st turn: Prepare" next "2nd turn: Attack@" + TransformDescription: db "The user assumes" next "the foe's guise.@" diff --git a/data/moves/effects.asm b/data/moves/effects.asm index eeb02b3a1..df597f8bc 100644 --- a/data/moves/effects.asm +++ b/data/moves/effects.asm @@ -1,4 +1,4 @@ -MoveEffects: ; 2732e +MoveEffects: ; used only for BANK(MoveEffects) NormalHit: checkobedience diff --git a/data/pokemon/dex_entries.asm b/data/pokemon/dex_entries.asm index 7381a4262..a66f16737 100644 --- a/data/pokemon/dex_entries.asm +++ b/data/pokemon/dex_entries.asm @@ -3,7 +3,6 @@ INCLUDE "constants.asm" SECTION "Pokedex Entries 001-064", ROMX -PokedexEntries1:: BulbasaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/bulbasaur.asm" IvysaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ivysaur.asm" VenusaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/venusaur.asm" @@ -72,7 +71,6 @@ KadabraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kadabra.asm" SECTION "Pokedex Entries 065-128", ROMX -PokedexEntries2:: AlakazamPokedexEntry:: INCLUDE "data/pokemon/dex_entries/alakazam.asm" MachopPokedexEntry:: INCLUDE "data/pokemon/dex_entries/machop.asm" MachokePokedexEntry:: INCLUDE "data/pokemon/dex_entries/machoke.asm" @@ -141,7 +139,6 @@ TaurosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/tauros.asm" SECTION "Pokedex Entries 129-192", ROMX -PokedexEntries3:: MagikarpPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magikarp.asm" GyaradosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gyarados.asm" LaprasPokedexEntry:: INCLUDE "data/pokemon/dex_entries/lapras.asm" @@ -210,7 +207,6 @@ SunfloraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sunflora.asm" SECTION "Pokedex Entries 193-251", ROMX -PokedexEntries4:: YanmaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/yanma.asm" WooperPokedexEntry:: INCLUDE "data/pokemon/dex_entries/wooper.asm" QuagsirePokedexEntry:: INCLUDE "data/pokemon/dex_entries/quagsire.asm" diff --git a/data/pokemon/egg_moves.asm b/data/pokemon/egg_moves.asm index 886c47349..1ababff89 100644 --- a/data/pokemon/egg_moves.asm +++ b/data/pokemon/egg_moves.asm @@ -11,12 +11,8 @@ SECTION "Egg Moves", ROMX ; Staryu's egg moves were removed in Crystal, because Staryu is genderless ; and can only breed with Ditto. - INCLUDE "data/pokemon/egg_move_pointers.asm" - -EggMoves:: - BulbasaurEggMoves: db LIGHT_SCREEN db SKULL_BASH diff --git a/data/pokemon/evos_attacks.asm b/data/pokemon/evos_attacks.asm index b57f88408..1ec2f2886 100644 --- a/data/pokemon/evos_attacks.asm +++ b/data/pokemon/evos_attacks.asm @@ -3,11 +3,6 @@ INCLUDE "constants.asm" SECTION "Evolutions and Attacks", ROMX - -INCLUDE "data/pokemon/evos_attacks_pointers.asm" - - -EvosAttacks:: ; Evos+attacks data structure: ; - Evolution methods: ; * db EVOLVE_LEVEL, level, species @@ -20,6 +15,7 @@ EvosAttacks:: ; * db level, move ; - db 0 ; no more level-up moves +INCLUDE "data/pokemon/evos_attacks_pointers.asm" BulbasaurEvosAttacks: db EVOLVE_LEVEL, 16, IVYSAUR diff --git a/data/text/battle.asm b/data/text/battle.asm index 9508c8c80..2e7645015 100644 --- a/data/text/battle.asm +++ b/data/text/battle.asm @@ -1,4 +1,4 @@ -BattleText:: +BattleText:: ; used only for BANK(BattleText) BattleText_PlayerPickedUpPayDayMoney: ; 0x80730 text " picked up" diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md index 2b5a6a152..9133923ab 100644 --- a/docs/bugs_and_glitches.md +++ b/docs/bugs_and_glitches.md @@ -49,7 +49,7 @@ These are known bugs and glitches in the original Pokémon Crystal game: code th - [Catching a Transformed Pokémon always catches a Ditto](#catching-a-transformed-pokémon-always-catches-a-ditto) - [Using a Park Ball in normal battles has a corrupt animation](#using-a-park-ball-in-normal-battles-has-a-corrupt-animation) - [`HELD_CATCH_CHANCE` has no effect](#held_catch_chance-has-no-effect) -- [Only the first three `EvosAttacks` evolution entries can have Stone compatibility reported correctly](#only-the-first-three-evosattacks-evolution-entries-can-have-stone-compatibility-reported-correctly) +- [Only the first three evolution entries can have Stone compatibility reported correctly](#only-the-first-three-evolution-entries-can-have-stone-compatibility-reported-correctly) - [`EVOLVE_STAT` can break Stone compatibility reporting](#evolve_stat-can-break-stone-compatibility-reporting) - [`ScriptCall` can overflow `wScriptStack` and crash](#scriptcall-can-overflow-wscriptstack-and-crash) - [`LoadSpriteGFX` does not limit the capacity of `UsedSprites`](#loadspritegfx-does-not-limit-the-capacity-of-usedsprites) @@ -712,7 +712,7 @@ MoonBallMultiplier: ; No Pokémon evolve with Burn Heal, ; so Moon Balls always have a catch rate of 1×. push bc - ld a, BANK(EvosAttacks) + ld a, BANK("Evolutions and Attacks") call GetFarByte cp MOON_STONE_RED ; BURN_HEAL pop bc @@ -1360,7 +1360,7 @@ This is a bug with `PokeBallEffect` in [engine/items/item_effects.asm](/engine/i **Fix:** Uncomment `ld b, a`. -## Only the first three `EvosAttacks` evolution entries can have Stone compatibility reported correctly +## Only the first three evolution entries can have Stone compatibility reported correctly This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` in [engine/pokemon/party_menu.asm](/engine/pokemon/party_menu.asm): @@ -1375,7 +1375,7 @@ This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` i ld h, [hl] ld l, a ld de, wStringBuffer1 - ld a, BANK(EvosAttacks) + ld a, BANK("Evolutions and Attacks") ld bc, 10 call FarCopyBytes ``` diff --git a/docs/design_flaws.md b/docs/design_flaws.md index 6b015a56a..7494d5d68 100644 --- a/docs/design_flaws.md +++ b/docs/design_flaws.md @@ -393,10 +393,10 @@ GetDexEntryPointer: ; 44333 ret .PokedexEntryBanks: - db BANK(PokedexEntries1) - db BANK(PokedexEntries2) - db BANK(PokedexEntries3) - db BANK(PokedexEntries4) + db BANK("Pokedex Entries 001-064") + db BANK("Pokedex Entries 065-128") + db BANK("Pokedex Entries 129-192") + db BANK("Pokedex Entries 193-251") ``` `GetPokedexEntryBank` in [engine/items/item_effects.asm](/engine/items/item_effects.asm): @@ -419,10 +419,10 @@ GetPokedexEntryBank: ret .PokedexEntryBanks: - db BANK(PokedexEntries1) - db BANK(PokedexEntries2) - db BANK(PokedexEntries3) - db BANK(PokedexEntries4) + db BANK("Pokedex Entries 001-064") + db BANK("Pokedex Entries 065-128") + db BANK("Pokedex Entries 129-192") + db BANK("Pokedex Entries 193-251") ``` And `PokedexShow_GetDexEntryBank` in [engine/pokegear/radio.asm](/engine/pokegear/radio.asm): @@ -446,10 +446,10 @@ PokedexShow_GetDexEntryBank: ret .PokedexEntryBanks: - db BANK(PokedexEntries1) - db BANK(PokedexEntries2) - db BANK(PokedexEntries3) - db BANK(PokedexEntries4) + db BANK("Pokedex Entries 001-064") + db BANK("Pokedex Entries 065-128") + db BANK("Pokedex Entries 129-192") + db BANK("Pokedex Entries 193-251") ``` **Fix:** Use `dba` instead of `dw` in `PokedexDataPointerTable`, and modify the code that accesses it to match. diff --git a/engine/battle/ai/scoring.asm b/engine/battle/ai/scoring.asm index 567737c1f..d000fab5f 100644 --- a/engine/battle/ai/scoring.asm +++ b/engine/battle/ai/scoring.asm @@ -1,4 +1,4 @@ -AIScoring: ; 38591 +AIScoring: ; used only for BANK(AIScoring) AI_Basic: ; 38591 ; Don't do anything redundant: diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 3055f4e90..f7e461c80 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -1,5 +1,5 @@ ; Core components of the battle engine. -BattleCore: + DoBattle: ; 3c000 xor a ld [wBattleParticipantsNotFainted], a diff --git a/engine/battle/effect_commands.asm b/engine/battle/effect_commands.asm index 2723bba6b..ff114d870 100644 --- a/engine/battle/effect_commands.asm +++ b/engine/battle/effect_commands.asm @@ -7394,7 +7394,7 @@ PlayOpponentBattleAnim: ; 37e54 CallBattleCore: ; 37e73 - ld a, BANK(BattleCore) + ld a, BANK("Battle Core") rst FarCall ret @@ -7467,7 +7467,7 @@ GetMoveData: ; 37ead ld hl, Moves ld bc, MOVE_LENGTH call AddNTimes - ld a, Bank(Moves) + ld a, BANK(Moves) jp FarCopyBytes ; 37ebb diff --git a/engine/battle_anims/anim_commands.asm b/engine/battle_anims/anim_commands.asm index 1f4da606d..449febf5f 100644 --- a/engine/battle_anims/anim_commands.asm +++ b/engine/battle_anims/anim_commands.asm @@ -977,7 +977,7 @@ BattleAnimCmd_RaiseSub: ; cc640 (33:4640) xor a ; sScratch call GetSRAMBank -GetSubstitutePic: ; cc64c +GetSubstitutePic: ; used only for BANK(GetSubstitutePic) ld hl, sScratch ld bc, (7 * 7) tiles diff --git a/engine/events/catch_tutorial_input.asm b/engine/events/catch_tutorial_input.asm index 9d2a03db2..70f4f0ef7 100644 --- a/engine/events/catch_tutorial_input.asm +++ b/engine/events/catch_tutorial_input.asm @@ -15,7 +15,7 @@ _DudeAutoInput: ; 1de299 call StartAutoInput ret -DudeAutoInputs: +DudeAutoInputs: ; used only for BANK(DudeAutoInputs) DudeAutoInput_A: ; 1de29f db NO_INPUT, $50 diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm index a32ce0ef7..db0ee1be1 100644 --- a/engine/items/item_effects.asm +++ b/engine/items/item_effects.asm @@ -767,10 +767,10 @@ GetPokedexEntryBank: ret .PokedexEntryBanks: - db BANK(PokedexEntries1) - db BANK(PokedexEntries2) - db BANK(PokedexEntries3) - db BANK(PokedexEntries4) + db BANK("Pokedex Entries 001-064") + db BANK("Pokedex Entries 065-128") + db BANK("Pokedex Entries 129-192") + db BANK("Pokedex Entries 193-251") HeavyBallMultiplier: ; subtract 20 from catch rate if weight < 102.4 kg @@ -907,7 +907,7 @@ MoonBallMultiplier: pop bc push bc - ld a, BANK(EvosAttacks) + ld a, BANK("Evolutions and Attacks") call GetFarByte cp EVOLVE_ITEM pop bc @@ -921,7 +921,7 @@ MoonBallMultiplier: ; No Pokémon evolve with Burn Heal, ; so Moon Balls always have a catch rate of 1×. push bc - ld a, BANK(EvosAttacks) + ld a, BANK("Evolutions and Attacks") call GetFarByte cp MOON_STONE_RED ; BURN_HEAL pop bc diff --git a/engine/movie/credits.asm b/engine/movie/credits.asm index 1aaecf64a..87ebfb14f 100644 --- a/engine/movie/credits.asm +++ b/engine/movie/credits.asm @@ -611,7 +611,7 @@ Credits_TheEnd: ; 109c11 (42:5c11) CreditsBorderGFX: INCBIN "gfx/credits/border.2bpp" -CreditsMonsGFX: +CreditsMonsGFX: ; used only for BANK(CreditsMonsGFX) CreditsPichuGFX: INCBIN "gfx/credits/pichu.2bpp" CreditsSmoochumGFX: INCBIN "gfx/credits/smoochum.2bpp" CreditsDittoGFX: INCBIN "gfx/credits/ditto.2bpp" diff --git a/engine/pokedex/pokedex_2.asm b/engine/pokedex/pokedex_2.asm index b17832216..cca246ec7 100644 --- a/engine/pokedex/pokedex_2.asm +++ b/engine/pokedex/pokedex_2.asm @@ -242,10 +242,10 @@ GetDexEntryPointer: ; 44333 ret .PokedexEntryBanks: - db BANK(PokedexEntries1) - db BANK(PokedexEntries2) - db BANK(PokedexEntries3) - db BANK(PokedexEntries4) + db BANK("Pokedex Entries 001-064") + db BANK("Pokedex Entries 065-128") + db BANK("Pokedex Entries 129-192") + db BANK("Pokedex Entries 193-251") GetDexEntryPagePointer: ; 44355 call GetDexEntryPointer ; b:de diff --git a/engine/pokegear/radio.asm b/engine/pokegear/radio.asm index ffaef80f0..a4eb345d4 100644 --- a/engine/pokegear/radio.asm +++ b/engine/pokegear/radio.asm @@ -703,10 +703,10 @@ PokedexShow_GetDexEntryBank: ret .PokedexEntryBanks: - db BANK(PokedexEntries1) - db BANK(PokedexEntries2) - db BANK(PokedexEntries3) - db BANK(PokedexEntries4) + db BANK("Pokedex Entries 001-064") + db BANK("Pokedex Entries 065-128") + db BANK("Pokedex Entries 129-192") + db BANK("Pokedex Entries 193-251") PokedexShow1: call StartRadioStation diff --git a/engine/pokemon/breeding.asm b/engine/pokemon/breeding.asm index e32d1a3a6..cc32122a7 100644 --- a/engine/pokemon/breeding.asm +++ b/engine/pokemon/breeding.asm @@ -445,7 +445,7 @@ GetEggMove: ; 170e4 ld a, BANK(EggMovePointers) call GetFarHalfword .loop - ld a, BANK(EggMoves) + ld a, BANK("Egg Moves") call GetFarByte cp -1 jr z, .reached_end @@ -479,18 +479,18 @@ GetEggMove: ; 170e4 ld a, BANK(EvosAttacksPointers) call GetFarHalfword .loop3 - ld a, BANK(EvosAttacks) + ld a, BANK("Evolutions and Attacks") call GetFarByte inc hl and a jr nz, .loop3 .loop4 - ld a, BANK(EvosAttacks) + ld a, BANK("Evolutions and Attacks") call GetFarByte and a jr z, .inherit_tmhm inc hl - ld a, BANK(EvosAttacks) + ld a, BANK("Evolutions and Attacks") call GetFarByte ld b, a ld a, [de] diff --git a/engine/pokemon/party_menu.asm b/engine/pokemon/party_menu.asm index 11edc0412..da9ae7e10 100644 --- a/engine/pokemon/party_menu.asm +++ b/engine/pokemon/party_menu.asm @@ -416,7 +416,7 @@ PlacePartyMonEvoStoneCompatibility: ; 5022f ld h, [hl] ld l, a ld de, wStringBuffer1 - ld a, BANK(EvosAttacks) + ld a, BANK("Evolutions and Attacks") ld bc, 10 call FarCopyBytes ld hl, wStringBuffer1 diff --git a/engine/printer/print_party.asm b/engine/printer/print_party.asm index 1095ce584..fa225a2a9 100644 --- a/engine/printer/print_party.asm +++ b/engine/printer/print_party.asm @@ -103,7 +103,7 @@ PrintPage2: ; 1dc213 ret ; 1dc275 -GBPrinterStrings: +GBPrinterStrings: ; used only for BANK(GBPrinterStrings) GBPrinterString_Null: db "@" GBPrinterString_CheckingLink: next " CHECKING LINK...@" GBPrinterString_Transmitting: next " TRANSMITTING...@" diff --git a/gfx/icons.asm b/gfx/icons.asm index 0733c26f6..a394f2813 100644 --- a/gfx/icons.asm +++ b/gfx/icons.asm @@ -1,4 +1,5 @@ -Icons: +Icons: ; used only for BANK(Icons) + NullIcon: PoliwagIcon: INCBIN "gfx/icons/poliwag.2bpp" ; 0x8ec0d JigglypuffIcon: INCBIN "gfx/icons/jigglypuff.2bpp" ; 0x8ec8d diff --git a/gfx/pokemon/anims.asm b/gfx/pokemon/anims.asm index 8efba2c30..761e7125c 100644 --- a/gfx/pokemon/anims.asm +++ b/gfx/pokemon/anims.asm @@ -1,4 +1,5 @@ -PicAnimations: +PicAnimations: ; used only for BANK(PicAnimations) + BulbasaurAnimation: INCLUDE "gfx/pokemon/bulbasaur/anim.asm" IvysaurAnimation: INCLUDE "gfx/pokemon/ivysaur/anim.asm" VenusaurAnimation: INCLUDE "gfx/pokemon/venusaur/anim.asm" diff --git a/gfx/pokemon/johto_frames.asm b/gfx/pokemon/johto_frames.asm index 56ea6eb00..f8e3b3ff5 100644 --- a/gfx/pokemon/johto_frames.asm +++ b/gfx/pokemon/johto_frames.asm @@ -1,4 +1,5 @@ -JohtoFrames: +JohtoFrames: ; used only for BANK(JohtoFrames) + ChikoritaFrames: INCLUDE "gfx/pokemon/chikorita/frames.asm" BayleefFrames: INCLUDE "gfx/pokemon/bayleef/frames.asm" MeganiumFrames: INCLUDE "gfx/pokemon/meganium/frames.asm" diff --git a/gfx/pokemon/kanto_frames.asm b/gfx/pokemon/kanto_frames.asm index 9a7aa7c85..67a066156 100644 --- a/gfx/pokemon/kanto_frames.asm +++ b/gfx/pokemon/kanto_frames.asm @@ -1,4 +1,5 @@ -KantoFrames: +KantoFrames: ; used only for BANK(KantoFrames) + BulbasaurFrames: INCLUDE "gfx/pokemon/bulbasaur/frames.asm" IvysaurFrames: INCLUDE "gfx/pokemon/ivysaur/frames.asm" VenusaurFrames: INCLUDE "gfx/pokemon/venusaur/frames.asm" diff --git a/gfx/pokemon/unown_anims.asm b/gfx/pokemon/unown_anims.asm index ea4d46410..6e8d251d5 100644 --- a/gfx/pokemon/unown_anims.asm +++ b/gfx/pokemon/unown_anims.asm @@ -1,4 +1,5 @@ -UnownAnimations: +UnownAnimations: ; used only for BANK(UnownAnimations) + UnownAAnimation: INCLUDE "gfx/pokemon/unown_a/anim.asm" UnownBAnimation: INCLUDE "gfx/pokemon/unown_b/anim.asm" UnownCAnimation: INCLUDE "gfx/pokemon/unown_c/anim.asm" diff --git a/gfx/pokemon/unown_frames.asm b/gfx/pokemon/unown_frames.asm index 7b7c5bc7e..d5ed3d621 100644 --- a/gfx/pokemon/unown_frames.asm +++ b/gfx/pokemon/unown_frames.asm @@ -1,4 +1,5 @@ -UnownsFrames: +UnownsFrames: ; used only for BANK(UnownsFrames) + UnownAFrames: INCLUDE "gfx/pokemon/unown_a/frames.asm" UnownBFrames: INCLUDE "gfx/pokemon/unown_b/frames.asm" UnownCFrames: INCLUDE "gfx/pokemon/unown_c/frames.asm" diff --git a/wram.asm b/wram.asm index 9158a4047..6cf4d037b 100644 --- a/wram.asm +++ b/wram.asm @@ -2361,7 +2361,7 @@ wDST:: ; d4c2 ; bit 7: dst db -wGameTime:: +wGameTime:: ; used only for BANK(wGameTime) wGameTimeCap:: db ; d4c3 wGameTimeHours:: dw ; d4c4 wGameTimeMinutes:: db ; d4c6 @@ -2972,7 +2972,7 @@ w3_dffc:: ds 4 SECTION "GBC Video", WRAMX ; eight 4-color palettes each -wGBCPalettes:: +wGBCPalettes:: ; used only for BANK(wGBCPalettes) wBGPals1:: ds 8 palettes ; d000 wOBPals1:: ds 8 palettes ; d040 wBGPals2:: ds 8 palettes ; d080 @@ -2983,7 +2983,7 @@ wLYOverridesEnd:: ; d190 ds 1 -wMagnetTrain:: +wMagnetTrain:: ; used only for BANK(wMagnetTrain) wMagnetTrainDirection:: db wMagnetTrainInitPosition:: db wMagnetTrainHoldPosition:: db