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

This commit is contained in:
Rangi 2018-06-12 23:29:15 -04:00
parent 6130fc5cd6
commit fbe82a7fe0
27 changed files with 62 additions and 67 deletions

View File

@ -836,6 +836,7 @@ LovelyKissDescription:
SkyAttackDescription: SkyAttackDescription:
db "1st turn: Prepare" db "1st turn: Prepare"
next "2nd turn: Attack@" next "2nd turn: Attack@"
TransformDescription: TransformDescription:
db "The user assumes" db "The user assumes"
next "the foe's guise.@" next "the foe's guise.@"

View File

@ -1,4 +1,4 @@
MoveEffects: ; 2732e MoveEffects: ; used only for BANK(MoveEffects)
NormalHit: NormalHit:
checkobedience checkobedience

View File

@ -3,7 +3,6 @@ INCLUDE "constants.asm"
SECTION "Pokedex Entries 001-064", ROMX SECTION "Pokedex Entries 001-064", ROMX
PokedexEntries1::
BulbasaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/bulbasaur.asm" BulbasaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/bulbasaur.asm"
IvysaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ivysaur.asm" IvysaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ivysaur.asm"
VenusaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/venusaur.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 SECTION "Pokedex Entries 065-128", ROMX
PokedexEntries2::
AlakazamPokedexEntry:: INCLUDE "data/pokemon/dex_entries/alakazam.asm" AlakazamPokedexEntry:: INCLUDE "data/pokemon/dex_entries/alakazam.asm"
MachopPokedexEntry:: INCLUDE "data/pokemon/dex_entries/machop.asm" MachopPokedexEntry:: INCLUDE "data/pokemon/dex_entries/machop.asm"
MachokePokedexEntry:: INCLUDE "data/pokemon/dex_entries/machoke.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 SECTION "Pokedex Entries 129-192", ROMX
PokedexEntries3::
MagikarpPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magikarp.asm" MagikarpPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magikarp.asm"
GyaradosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gyarados.asm" GyaradosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gyarados.asm"
LaprasPokedexEntry:: INCLUDE "data/pokemon/dex_entries/lapras.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 SECTION "Pokedex Entries 193-251", ROMX
PokedexEntries4::
YanmaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/yanma.asm" YanmaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/yanma.asm"
WooperPokedexEntry:: INCLUDE "data/pokemon/dex_entries/wooper.asm" WooperPokedexEntry:: INCLUDE "data/pokemon/dex_entries/wooper.asm"
QuagsirePokedexEntry:: INCLUDE "data/pokemon/dex_entries/quagsire.asm" QuagsirePokedexEntry:: INCLUDE "data/pokemon/dex_entries/quagsire.asm"

View File

@ -11,12 +11,8 @@ SECTION "Egg Moves", ROMX
; Staryu's egg moves were removed in Crystal, because Staryu is genderless ; Staryu's egg moves were removed in Crystal, because Staryu is genderless
; and can only breed with Ditto. ; and can only breed with Ditto.
INCLUDE "data/pokemon/egg_move_pointers.asm" INCLUDE "data/pokemon/egg_move_pointers.asm"
EggMoves::
BulbasaurEggMoves: BulbasaurEggMoves:
db LIGHT_SCREEN db LIGHT_SCREEN
db SKULL_BASH db SKULL_BASH

View File

@ -3,11 +3,6 @@ INCLUDE "constants.asm"
SECTION "Evolutions and Attacks", ROMX SECTION "Evolutions and Attacks", ROMX
INCLUDE "data/pokemon/evos_attacks_pointers.asm"
EvosAttacks::
; Evos+attacks data structure: ; Evos+attacks data structure:
; - Evolution methods: ; - Evolution methods:
; * db EVOLVE_LEVEL, level, species ; * db EVOLVE_LEVEL, level, species
@ -20,6 +15,7 @@ EvosAttacks::
; * db level, move ; * db level, move
; - db 0 ; no more level-up moves ; - db 0 ; no more level-up moves
INCLUDE "data/pokemon/evos_attacks_pointers.asm"
BulbasaurEvosAttacks: BulbasaurEvosAttacks:
db EVOLVE_LEVEL, 16, IVYSAUR db EVOLVE_LEVEL, 16, IVYSAUR

View File

@ -1,4 +1,4 @@
BattleText:: BattleText:: ; used only for BANK(BattleText)
BattleText_PlayerPickedUpPayDayMoney: ; 0x80730 BattleText_PlayerPickedUpPayDayMoney: ; 0x80730
text "<PLAYER> picked up" text "<PLAYER> picked up"

View File

@ -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) - [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) - [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) - [`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) - [`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) - [`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) - [`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, ; No Pokémon evolve with Burn Heal,
; so Moon Balls always have a catch rate of 1×. ; so Moon Balls always have a catch rate of 1×.
push bc push bc
ld a, BANK(EvosAttacks) ld a, BANK("Evolutions and Attacks")
call GetFarByte call GetFarByte
cp MOON_STONE_RED ; BURN_HEAL cp MOON_STONE_RED ; BURN_HEAL
pop bc 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`. **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): 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 h, [hl]
ld l, a ld l, a
ld de, wStringBuffer1 ld de, wStringBuffer1
ld a, BANK(EvosAttacks) ld a, BANK("Evolutions and Attacks")
ld bc, 10 ld bc, 10
call FarCopyBytes call FarCopyBytes
``` ```

View File

@ -393,10 +393,10 @@ GetDexEntryPointer: ; 44333
ret ret
.PokedexEntryBanks: .PokedexEntryBanks:
db BANK(PokedexEntries1) db BANK("Pokedex Entries 001-064")
db BANK(PokedexEntries2) db BANK("Pokedex Entries 065-128")
db BANK(PokedexEntries3) db BANK("Pokedex Entries 129-192")
db BANK(PokedexEntries4) db BANK("Pokedex Entries 193-251")
``` ```
`GetPokedexEntryBank` in [engine/items/item_effects.asm](/engine/items/item_effects.asm): `GetPokedexEntryBank` in [engine/items/item_effects.asm](/engine/items/item_effects.asm):
@ -419,10 +419,10 @@ GetPokedexEntryBank:
ret ret
.PokedexEntryBanks: .PokedexEntryBanks:
db BANK(PokedexEntries1) db BANK("Pokedex Entries 001-064")
db BANK(PokedexEntries2) db BANK("Pokedex Entries 065-128")
db BANK(PokedexEntries3) db BANK("Pokedex Entries 129-192")
db BANK(PokedexEntries4) db BANK("Pokedex Entries 193-251")
``` ```
And `PokedexShow_GetDexEntryBank` in [engine/pokegear/radio.asm](/engine/pokegear/radio.asm): And `PokedexShow_GetDexEntryBank` in [engine/pokegear/radio.asm](/engine/pokegear/radio.asm):
@ -446,10 +446,10 @@ PokedexShow_GetDexEntryBank:
ret ret
.PokedexEntryBanks: .PokedexEntryBanks:
db BANK(PokedexEntries1) db BANK("Pokedex Entries 001-064")
db BANK(PokedexEntries2) db BANK("Pokedex Entries 065-128")
db BANK(PokedexEntries3) db BANK("Pokedex Entries 129-192")
db BANK(PokedexEntries4) db BANK("Pokedex Entries 193-251")
``` ```
**Fix:** Use `dba` instead of `dw` in `PokedexDataPointerTable`, and modify the code that accesses it to match. **Fix:** Use `dba` instead of `dw` in `PokedexDataPointerTable`, and modify the code that accesses it to match.

View File

@ -1,4 +1,4 @@
AIScoring: ; 38591 AIScoring: ; used only for BANK(AIScoring)
AI_Basic: ; 38591 AI_Basic: ; 38591
; Don't do anything redundant: ; Don't do anything redundant:

View File

@ -1,5 +1,5 @@
; Core components of the battle engine. ; Core components of the battle engine.
BattleCore:
DoBattle: ; 3c000 DoBattle: ; 3c000
xor a xor a
ld [wBattleParticipantsNotFainted], a ld [wBattleParticipantsNotFainted], a

View File

@ -7394,7 +7394,7 @@ PlayOpponentBattleAnim: ; 37e54
CallBattleCore: ; 37e73 CallBattleCore: ; 37e73
ld a, BANK(BattleCore) ld a, BANK("Battle Core")
rst FarCall rst FarCall
ret ret
@ -7467,7 +7467,7 @@ GetMoveData: ; 37ead
ld hl, Moves ld hl, Moves
ld bc, MOVE_LENGTH ld bc, MOVE_LENGTH
call AddNTimes call AddNTimes
ld a, Bank(Moves) ld a, BANK(Moves)
jp FarCopyBytes jp FarCopyBytes
; 37ebb ; 37ebb

View File

@ -977,7 +977,7 @@ BattleAnimCmd_RaiseSub: ; cc640 (33:4640)
xor a ; sScratch xor a ; sScratch
call GetSRAMBank call GetSRAMBank
GetSubstitutePic: ; cc64c GetSubstitutePic: ; used only for BANK(GetSubstitutePic)
ld hl, sScratch ld hl, sScratch
ld bc, (7 * 7) tiles ld bc, (7 * 7) tiles

View File

@ -15,7 +15,7 @@ _DudeAutoInput: ; 1de299
call StartAutoInput call StartAutoInput
ret ret
DudeAutoInputs: DudeAutoInputs: ; used only for BANK(DudeAutoInputs)
DudeAutoInput_A: ; 1de29f DudeAutoInput_A: ; 1de29f
db NO_INPUT, $50 db NO_INPUT, $50

View File

@ -767,10 +767,10 @@ GetPokedexEntryBank:
ret ret
.PokedexEntryBanks: .PokedexEntryBanks:
db BANK(PokedexEntries1) db BANK("Pokedex Entries 001-064")
db BANK(PokedexEntries2) db BANK("Pokedex Entries 065-128")
db BANK(PokedexEntries3) db BANK("Pokedex Entries 129-192")
db BANK(PokedexEntries4) db BANK("Pokedex Entries 193-251")
HeavyBallMultiplier: HeavyBallMultiplier:
; subtract 20 from catch rate if weight < 102.4 kg ; subtract 20 from catch rate if weight < 102.4 kg
@ -907,7 +907,7 @@ MoonBallMultiplier:
pop bc pop bc
push bc push bc
ld a, BANK(EvosAttacks) ld a, BANK("Evolutions and Attacks")
call GetFarByte call GetFarByte
cp EVOLVE_ITEM cp EVOLVE_ITEM
pop bc pop bc
@ -921,7 +921,7 @@ MoonBallMultiplier:
; No Pokémon evolve with Burn Heal, ; No Pokémon evolve with Burn Heal,
; so Moon Balls always have a catch rate of 1×. ; so Moon Balls always have a catch rate of 1×.
push bc push bc
ld a, BANK(EvosAttacks) ld a, BANK("Evolutions and Attacks")
call GetFarByte call GetFarByte
cp MOON_STONE_RED ; BURN_HEAL cp MOON_STONE_RED ; BURN_HEAL
pop bc pop bc

View File

@ -611,7 +611,7 @@ Credits_TheEnd: ; 109c11 (42:5c11)
CreditsBorderGFX: INCBIN "gfx/credits/border.2bpp" CreditsBorderGFX: INCBIN "gfx/credits/border.2bpp"
CreditsMonsGFX: CreditsMonsGFX: ; used only for BANK(CreditsMonsGFX)
CreditsPichuGFX: INCBIN "gfx/credits/pichu.2bpp" CreditsPichuGFX: INCBIN "gfx/credits/pichu.2bpp"
CreditsSmoochumGFX: INCBIN "gfx/credits/smoochum.2bpp" CreditsSmoochumGFX: INCBIN "gfx/credits/smoochum.2bpp"
CreditsDittoGFX: INCBIN "gfx/credits/ditto.2bpp" CreditsDittoGFX: INCBIN "gfx/credits/ditto.2bpp"

View File

@ -242,10 +242,10 @@ GetDexEntryPointer: ; 44333
ret ret
.PokedexEntryBanks: .PokedexEntryBanks:
db BANK(PokedexEntries1) db BANK("Pokedex Entries 001-064")
db BANK(PokedexEntries2) db BANK("Pokedex Entries 065-128")
db BANK(PokedexEntries3) db BANK("Pokedex Entries 129-192")
db BANK(PokedexEntries4) db BANK("Pokedex Entries 193-251")
GetDexEntryPagePointer: ; 44355 GetDexEntryPagePointer: ; 44355
call GetDexEntryPointer ; b:de call GetDexEntryPointer ; b:de

View File

@ -703,10 +703,10 @@ PokedexShow_GetDexEntryBank:
ret ret
.PokedexEntryBanks: .PokedexEntryBanks:
db BANK(PokedexEntries1) db BANK("Pokedex Entries 001-064")
db BANK(PokedexEntries2) db BANK("Pokedex Entries 065-128")
db BANK(PokedexEntries3) db BANK("Pokedex Entries 129-192")
db BANK(PokedexEntries4) db BANK("Pokedex Entries 193-251")
PokedexShow1: PokedexShow1:
call StartRadioStation call StartRadioStation

View File

@ -445,7 +445,7 @@ GetEggMove: ; 170e4
ld a, BANK(EggMovePointers) ld a, BANK(EggMovePointers)
call GetFarHalfword call GetFarHalfword
.loop .loop
ld a, BANK(EggMoves) ld a, BANK("Egg Moves")
call GetFarByte call GetFarByte
cp -1 cp -1
jr z, .reached_end jr z, .reached_end
@ -479,18 +479,18 @@ GetEggMove: ; 170e4
ld a, BANK(EvosAttacksPointers) ld a, BANK(EvosAttacksPointers)
call GetFarHalfword call GetFarHalfword
.loop3 .loop3
ld a, BANK(EvosAttacks) ld a, BANK("Evolutions and Attacks")
call GetFarByte call GetFarByte
inc hl inc hl
and a and a
jr nz, .loop3 jr nz, .loop3
.loop4 .loop4
ld a, BANK(EvosAttacks) ld a, BANK("Evolutions and Attacks")
call GetFarByte call GetFarByte
and a and a
jr z, .inherit_tmhm jr z, .inherit_tmhm
inc hl inc hl
ld a, BANK(EvosAttacks) ld a, BANK("Evolutions and Attacks")
call GetFarByte call GetFarByte
ld b, a ld b, a
ld a, [de] ld a, [de]

View File

@ -416,7 +416,7 @@ PlacePartyMonEvoStoneCompatibility: ; 5022f
ld h, [hl] ld h, [hl]
ld l, a ld l, a
ld de, wStringBuffer1 ld de, wStringBuffer1
ld a, BANK(EvosAttacks) ld a, BANK("Evolutions and Attacks")
ld bc, 10 ld bc, 10
call FarCopyBytes call FarCopyBytes
ld hl, wStringBuffer1 ld hl, wStringBuffer1

View File

@ -103,7 +103,7 @@ PrintPage2: ; 1dc213
ret ret
; 1dc275 ; 1dc275
GBPrinterStrings: GBPrinterStrings: ; used only for BANK(GBPrinterStrings)
GBPrinterString_Null: db "@" GBPrinterString_Null: db "@"
GBPrinterString_CheckingLink: next " CHECKING LINK...@" GBPrinterString_CheckingLink: next " CHECKING LINK...@"
GBPrinterString_Transmitting: next " TRANSMITTING...@" GBPrinterString_Transmitting: next " TRANSMITTING...@"

View File

@ -1,4 +1,5 @@
Icons: Icons: ; used only for BANK(Icons)
NullIcon: NullIcon:
PoliwagIcon: INCBIN "gfx/icons/poliwag.2bpp" ; 0x8ec0d PoliwagIcon: INCBIN "gfx/icons/poliwag.2bpp" ; 0x8ec0d
JigglypuffIcon: INCBIN "gfx/icons/jigglypuff.2bpp" ; 0x8ec8d JigglypuffIcon: INCBIN "gfx/icons/jigglypuff.2bpp" ; 0x8ec8d

View File

@ -1,4 +1,5 @@
PicAnimations: PicAnimations: ; used only for BANK(PicAnimations)
BulbasaurAnimation: INCLUDE "gfx/pokemon/bulbasaur/anim.asm" BulbasaurAnimation: INCLUDE "gfx/pokemon/bulbasaur/anim.asm"
IvysaurAnimation: INCLUDE "gfx/pokemon/ivysaur/anim.asm" IvysaurAnimation: INCLUDE "gfx/pokemon/ivysaur/anim.asm"
VenusaurAnimation: INCLUDE "gfx/pokemon/venusaur/anim.asm" VenusaurAnimation: INCLUDE "gfx/pokemon/venusaur/anim.asm"

View File

@ -1,4 +1,5 @@
JohtoFrames: JohtoFrames: ; used only for BANK(JohtoFrames)
ChikoritaFrames: INCLUDE "gfx/pokemon/chikorita/frames.asm" ChikoritaFrames: INCLUDE "gfx/pokemon/chikorita/frames.asm"
BayleefFrames: INCLUDE "gfx/pokemon/bayleef/frames.asm" BayleefFrames: INCLUDE "gfx/pokemon/bayleef/frames.asm"
MeganiumFrames: INCLUDE "gfx/pokemon/meganium/frames.asm" MeganiumFrames: INCLUDE "gfx/pokemon/meganium/frames.asm"

View File

@ -1,4 +1,5 @@
KantoFrames: KantoFrames: ; used only for BANK(KantoFrames)
BulbasaurFrames: INCLUDE "gfx/pokemon/bulbasaur/frames.asm" BulbasaurFrames: INCLUDE "gfx/pokemon/bulbasaur/frames.asm"
IvysaurFrames: INCLUDE "gfx/pokemon/ivysaur/frames.asm" IvysaurFrames: INCLUDE "gfx/pokemon/ivysaur/frames.asm"
VenusaurFrames: INCLUDE "gfx/pokemon/venusaur/frames.asm" VenusaurFrames: INCLUDE "gfx/pokemon/venusaur/frames.asm"

View File

@ -1,4 +1,5 @@
UnownAnimations: UnownAnimations: ; used only for BANK(UnownAnimations)
UnownAAnimation: INCLUDE "gfx/pokemon/unown_a/anim.asm" UnownAAnimation: INCLUDE "gfx/pokemon/unown_a/anim.asm"
UnownBAnimation: INCLUDE "gfx/pokemon/unown_b/anim.asm" UnownBAnimation: INCLUDE "gfx/pokemon/unown_b/anim.asm"
UnownCAnimation: INCLUDE "gfx/pokemon/unown_c/anim.asm" UnownCAnimation: INCLUDE "gfx/pokemon/unown_c/anim.asm"

View File

@ -1,4 +1,5 @@
UnownsFrames: UnownsFrames: ; used only for BANK(UnownsFrames)
UnownAFrames: INCLUDE "gfx/pokemon/unown_a/frames.asm" UnownAFrames: INCLUDE "gfx/pokemon/unown_a/frames.asm"
UnownBFrames: INCLUDE "gfx/pokemon/unown_b/frames.asm" UnownBFrames: INCLUDE "gfx/pokemon/unown_b/frames.asm"
UnownCFrames: INCLUDE "gfx/pokemon/unown_c/frames.asm" UnownCFrames: INCLUDE "gfx/pokemon/unown_c/frames.asm"

View File

@ -2361,7 +2361,7 @@ wDST:: ; d4c2
; bit 7: dst ; bit 7: dst
db db
wGameTime:: wGameTime:: ; used only for BANK(wGameTime)
wGameTimeCap:: db ; d4c3 wGameTimeCap:: db ; d4c3
wGameTimeHours:: dw ; d4c4 wGameTimeHours:: dw ; d4c4
wGameTimeMinutes:: db ; d4c6 wGameTimeMinutes:: db ; d4c6
@ -2972,7 +2972,7 @@ w3_dffc:: ds 4
SECTION "GBC Video", WRAMX SECTION "GBC Video", WRAMX
; eight 4-color palettes each ; eight 4-color palettes each
wGBCPalettes:: wGBCPalettes:: ; used only for BANK(wGBCPalettes)
wBGPals1:: ds 8 palettes ; d000 wBGPals1:: ds 8 palettes ; d000
wOBPals1:: ds 8 palettes ; d040 wOBPals1:: ds 8 palettes ; d040
wBGPals2:: ds 8 palettes ; d080 wBGPals2:: ds 8 palettes ; d080
@ -2983,7 +2983,7 @@ wLYOverridesEnd:: ; d190
ds 1 ds 1
wMagnetTrain:: wMagnetTrain:: ; used only for BANK(wMagnetTrain)
wMagnetTrainDirection:: db wMagnetTrainDirection:: db
wMagnetTrainInitPosition:: db wMagnetTrainInitPosition:: db
wMagnetTrainHoldPosition:: db wMagnetTrainHoldPosition:: db