shithub: pokecrystal

Download patch

ref: fbe82a7fe0f310ade7436d4d8f352ee04e05a1ec
parent: 6130fc5cd6b002f827d307c64a432e960629cb9b
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Tue Jun 12 19:29:15 EDT 2018

Note which labels are only needed for locating banks (relevant to issue #485)

--- a/data/moves/descriptions.asm
+++ b/data/moves/descriptions.asm
@@ -836,6 +836,7 @@
 SkyAttackDescription:
 	db   "1st turn: Prepare"
 	next "2nd turn: Attack@"
+
 TransformDescription:
 	db   "The user assumes"
 	next "the foe's guise.@"
--- a/data/moves/effects.asm
+++ b/data/moves/effects.asm
@@ -1,4 +1,4 @@
-MoveEffects: ; 2732e
+MoveEffects: ; used only for BANK(MoveEffects)
 
 NormalHit:
 	checkobedience
--- a/data/pokemon/dex_entries.asm
+++ b/data/pokemon/dex_entries.asm
@@ -3,7 +3,6 @@
 
 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 @@
 
 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 @@
 
 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 @@
 
 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"
--- a/data/pokemon/egg_moves.asm
+++ b/data/pokemon/egg_moves.asm
@@ -11,11 +11,7 @@
 ; 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
--- a/data/pokemon/evos_attacks.asm
+++ b/data/pokemon/evos_attacks.asm
@@ -3,11 +3,6 @@
 
 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 @@
 ;    * db level, move
 ; - db 0 ; no more level-up moves
 
+INCLUDE "data/pokemon/evos_attacks_pointers.asm"
 
 BulbasaurEvosAttacks:
 	db EVOLVE_LEVEL, 16, IVYSAUR
--- 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 "<PLAYER> picked up"
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -49,7 +49,7 @@
 - [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 @@
 ; 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 @@
 **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 @@
 	ld h, [hl]
 	ld l, a
 	ld de, wStringBuffer1
-	ld a, BANK(EvosAttacks)
+	ld a, BANK("Evolutions and Attacks")
 	ld bc, 10
 	call FarCopyBytes
 ```
--- a/docs/design_flaws.md
+++ b/docs/design_flaws.md
@@ -393,10 +393,10 @@
 	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 @@
 	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 @@
 	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.
--- 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:
--- 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
--- a/engine/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -7394,7 +7394,7 @@
 
 
 CallBattleCore: ; 37e73
-	ld a, BANK(BattleCore)
+	ld a, BANK("Battle Core")
 	rst FarCall
 	ret
 
@@ -7467,7 +7467,7 @@
 	ld hl, Moves
 	ld bc, MOVE_LENGTH
 	call AddNTimes
-	ld a, Bank(Moves)
+	ld a, BANK(Moves)
 	jp FarCopyBytes
 
 ; 37ebb
--- a/engine/battle_anims/anim_commands.asm
+++ b/engine/battle_anims/anim_commands.asm
@@ -977,7 +977,7 @@
 	xor a ; sScratch
 	call GetSRAMBank
 
-GetSubstitutePic: ; cc64c
+GetSubstitutePic: ; used only for BANK(GetSubstitutePic)
 
 	ld hl, sScratch
 	ld bc, (7 * 7) tiles
--- a/engine/events/catch_tutorial_input.asm
+++ b/engine/events/catch_tutorial_input.asm
@@ -15,7 +15,7 @@
 	call StartAutoInput
 	ret
 
-DudeAutoInputs:
+DudeAutoInputs: ; used only for BANK(DudeAutoInputs)
 
 DudeAutoInput_A: ; 1de29f
 	db NO_INPUT, $50
--- a/engine/items/item_effects.asm
+++ b/engine/items/item_effects.asm
@@ -767,10 +767,10 @@
 	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 @@
 	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 @@
 ; 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
--- a/engine/movie/credits.asm
+++ b/engine/movie/credits.asm
@@ -611,7 +611,7 @@
 
 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"
--- a/engine/pokedex/pokedex_2.asm
+++ b/engine/pokedex/pokedex_2.asm
@@ -242,10 +242,10 @@
 	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
--- a/engine/pokegear/radio.asm
+++ b/engine/pokegear/radio.asm
@@ -703,10 +703,10 @@
 	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
--- a/engine/pokemon/breeding.asm
+++ b/engine/pokemon/breeding.asm
@@ -445,7 +445,7 @@
 	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 @@
 	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]
--- a/engine/pokemon/party_menu.asm
+++ b/engine/pokemon/party_menu.asm
@@ -416,7 +416,7 @@
 	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
--- a/engine/printer/print_party.asm
+++ b/engine/printer/print_party.asm
@@ -103,7 +103,7 @@
 	ret
 ; 1dc275
 
-GBPrinterStrings:
+GBPrinterStrings: ; used only for BANK(GBPrinterStrings)
 GBPrinterString_Null: db "@"
 GBPrinterString_CheckingLink: next " CHECKING LINK...@"
 GBPrinterString_Transmitting: next "  TRANSMITTING...@"
--- 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
--- 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"
--- 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"
--- 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"
--- 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"
--- 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"
--- a/wram.asm
+++ b/wram.asm
@@ -2361,7 +2361,7 @@
 ; bit 7: dst
 	db
 
-wGameTime::
+wGameTime:: ; used only for BANK(wGameTime)
 wGameTimeCap::     db ; d4c3
 wGameTimeHours::   dw ; d4c4
 wGameTimeMinutes:: db ; d4c6
@@ -2972,7 +2972,7 @@
 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 @@
 
 	ds 1
 
-wMagnetTrain::
+wMagnetTrain:: ; used only for BANK(wMagnetTrain)
 wMagnetTrainDirection:: db
 wMagnetTrainInitPosition:: db
 wMagnetTrainHoldPosition:: db