mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-09-09 09:51:34 -07:00
31cce83e9b
(This is not expected to be their final location, but it makes them easier to relocate when necessary, and easier for users to edit until the whole project's file structure is finalized.)
3026 lines
60 KiB
NASM
3026 lines
60 KiB
NASM
INCLUDE "includes.asm"
|
|
INCLUDE "macros/wram.asm"
|
|
INCLUDE "vram.asm"
|
|
|
|
|
|
SECTION "Stack", WRAM0
|
|
|
|
wRAM0Start::
|
|
StackBottom::
|
|
ds $100 - 1
|
|
Stack::
|
|
StackTop::
|
|
ds 1
|
|
|
|
|
|
SECTION "Audio RAM", WRAM0
|
|
|
|
wMusic::
|
|
|
|
; nonzero if playing
|
|
MusicPlaying:: db ; c100
|
|
|
|
Channels::
|
|
Channel1:: channel_struct Channel1 ; c101
|
|
Channel2:: channel_struct Channel2 ; c133
|
|
Channel3:: channel_struct Channel3 ; c165
|
|
Channel4:: channel_struct Channel4 ; c197
|
|
|
|
SFXChannels::
|
|
Channel5:: channel_struct Channel5 ; c1c9
|
|
Channel6:: channel_struct Channel6 ; c1fb
|
|
Channel7:: channel_struct Channel7 ; c22d
|
|
Channel8:: channel_struct Channel8 ; c25f
|
|
|
|
ds 1 ; c291
|
|
|
|
wCurTrackDuty:: db
|
|
wCurTrackIntensity:: db
|
|
wCurTrackFrequency:: dw
|
|
wc296:: db ; BCD value, dummied out
|
|
wCurNoteDuration:: db ; used in MusicE0 and LoadNote
|
|
|
|
CurMusicByte:: db ; c298
|
|
CurChannel:: db ; c299
|
|
Volume:: ; c29a
|
|
; corresponds to $ff24
|
|
; Channel control / ON-OFF / Volume (R/W)
|
|
; bit 7 - Vin->SO2 ON/OFF
|
|
; bit 6-4 - SO2 output level (volume) (# 0-7)
|
|
; bit 3 - Vin->SO1 ON/OFF
|
|
; bit 2-0 - SO1 output level (volume) (# 0-7)
|
|
db
|
|
SoundOutput:: ; c29b
|
|
; corresponds to $ff25
|
|
; bit 4-7: ch1-4 so2 on/off
|
|
; bit 0-3: ch1-4 so1 on/off
|
|
db
|
|
SoundInput:: ; c29c
|
|
; corresponds to $ff26
|
|
; bit 7: global on/off
|
|
; bit 0: ch1 on/off
|
|
; bit 1: ch2 on/off
|
|
; bit 2: ch3 on/off
|
|
; bit 3: ch4 on/off
|
|
db
|
|
|
|
MusicID:: dw ; c29d
|
|
MusicBank:: db ; c29f
|
|
NoiseSampleAddress:: dw ; c2a0
|
|
wNoiseSampleDelay:: db ; c2a2
|
|
ds 1 ; c2a3
|
|
MusicNoiseSampleSet:: db ; c2a4
|
|
SFXNoiseSampleSet:: db ; c2a5
|
|
|
|
Danger:: ; c2a6
|
|
; bit 7: on/off
|
|
; bit 4: pitch
|
|
; bit 0-3: counter
|
|
db
|
|
|
|
MusicFade:: ; c2a7
|
|
; fades volume over x frames
|
|
; bit 7: fade in/out
|
|
; bit 0-5: number of frames for each volume level
|
|
; $00 = none (default)
|
|
db
|
|
MusicFadeCount:: db ; c2a8
|
|
MusicFadeID:: dw ; c2a9
|
|
|
|
ds 5
|
|
|
|
CryPitch:: dw ; c2b0
|
|
CryLength:: dw ; c2b2
|
|
|
|
LastVolume:: db ; c2b4
|
|
wc2b5:: db ; c2b5
|
|
|
|
SFXPriority:: ; c2b6
|
|
; if nonzero, turn off music when playing sfx
|
|
db
|
|
|
|
ds 1
|
|
|
|
Channel1JumpCondition:: db
|
|
Channel2JumpCondition:: db
|
|
Channel3JumpCondition:: db
|
|
Channel4JumpCondition:: db
|
|
|
|
wStereoPanningMask:: db ; c2bc
|
|
|
|
CryTracks:: ; c2bd
|
|
; plays only in left or right track depending on what side the monster is on
|
|
; both tracks active outside of battle
|
|
db
|
|
|
|
wSFXDuration:: db
|
|
CurSFX:: ; c2bf
|
|
; id of sfx currently playing
|
|
db
|
|
ChannelsEnd::
|
|
|
|
wMapMusic:: db ; c2c0
|
|
|
|
wDontPlayMapMusicOnReload:: db
|
|
wMusicEnd::
|
|
|
|
|
|
SECTION "WRAM", WRAM0
|
|
|
|
wLZAddress:: dw ; c2c2
|
|
wLZBank:: db ; c2c4
|
|
|
|
ds 1
|
|
|
|
wBoxAlignment:: db
|
|
|
|
InputType:: db ; c2c7
|
|
AutoInputAddress:: dw ; c2c8
|
|
AutoInputBank:: db ; c2ca
|
|
AutoInputLength:: db ; c2cb
|
|
|
|
wMonStatusFlags:: db
|
|
wGameLogicPaused:: db ; c2cd
|
|
wSpriteUpdatesEnabled:: db
|
|
|
|
wc2cf:: db ; ????
|
|
|
|
wMapTimeOfDay:: db
|
|
|
|
ds 3
|
|
|
|
wPrinterConnectionOpen:: db
|
|
wPrinterOpcode:: db
|
|
wLastDexEntry:: db
|
|
wDisableTextAcceleration:: db
|
|
wPreviousLandmark:: db
|
|
wCurrentLandmark:: db
|
|
wLandmarkSignTimer:: dw
|
|
wLinkMode:: ; c2dc
|
|
; 0 not in link battle
|
|
; 1 link battle
|
|
; 4 mobile battle
|
|
db
|
|
|
|
ScriptVar:: db ; c2dd
|
|
|
|
wPlayerNextMovement:: db
|
|
wPlayerMovement:: db
|
|
ds 2
|
|
wc2e2::
|
|
wMovementPerson:: db
|
|
wMovementDataPointer:: ds 3 ; dba
|
|
wc2e6:: ds 4
|
|
wMovementByteWasControlSwitch:: db
|
|
wMovementPointer:: dw ; c2eb
|
|
|
|
ds 3
|
|
|
|
wTempObjectCopyMapObjectIndex:: db ; c2f0
|
|
wTempObjectCopySprite:: db ; c2f1
|
|
wTempObjectCopySpriteVTile:: db ; c2f2
|
|
wTempObjectCopyPalette:: db ; c2f3
|
|
wTempObjectCopyMovement:: db ; c2f4
|
|
wTempObjectCopyRange:: db ; c2f5
|
|
wTempObjectCopyX:: db ; c2f6
|
|
wTempObjectCopyY:: db ; c2f7
|
|
wTempObjectCopyRadius:: db ; c2f8
|
|
|
|
ds 1
|
|
|
|
TileDown:: db ; c2fa
|
|
TileUp:: db ; c2fb
|
|
TileLeft:: db ; c2fc
|
|
TileRight:: db ; c2fd
|
|
|
|
TilePermissions:: ; c2fe
|
|
; set if tile behavior prevents
|
|
; you from walking in that direction
|
|
; bit 3: down
|
|
; bit 2: up
|
|
; bit 1: left
|
|
; bit 0: right
|
|
db
|
|
|
|
ds 1
|
|
|
|
|
|
SECTION "wSpriteAnims", WRAM0
|
|
|
|
UNION ; c300
|
|
; wSpriteAnimDict is a 10x2 dictionary
|
|
; keys: taken from third column of SpriteAnimSeqData
|
|
; values: VTiles
|
|
wSpriteAnimDict:: ds 10 * 2
|
|
|
|
wSpriteAnimationStructs::
|
|
; field 0: index
|
|
; fields 1-3: loaded from SpriteAnimSeqData
|
|
SpriteAnim1:: sprite_anim_struct SpriteAnim1
|
|
SpriteAnim2:: sprite_anim_struct SpriteAnim2
|
|
SpriteAnim3:: sprite_anim_struct SpriteAnim3
|
|
SpriteAnim4:: sprite_anim_struct SpriteAnim4
|
|
SpriteAnim5:: sprite_anim_struct SpriteAnim5
|
|
SpriteAnim6:: sprite_anim_struct SpriteAnim6
|
|
SpriteAnim7:: sprite_anim_struct SpriteAnim7
|
|
SpriteAnim8:: sprite_anim_struct SpriteAnim8
|
|
SpriteAnim9:: sprite_anim_struct SpriteAnim9
|
|
SpriteAnim10:: sprite_anim_struct SpriteAnim10
|
|
wSpriteAnimationStructsEnd::
|
|
|
|
NEXTU ; c300
|
|
; mobile data
|
|
wc300:: ds 1
|
|
wc301:: ds 1
|
|
wc302:: ds 1
|
|
wc303:: ds 2
|
|
wc305:: ds 1
|
|
wc306:: ds 1
|
|
wc307:: ds 1
|
|
wc308:: ds 1
|
|
wc309:: ds 1
|
|
wc30a:: ds 1
|
|
wc30b:: ds 1
|
|
wc30c:: ds 1
|
|
wc30d:: ds 1
|
|
wc30e:: ds 1
|
|
wc30f:: ds 1
|
|
wc310:: ds 1
|
|
wc311:: ds 1
|
|
wc312:: ds 1
|
|
wc313:: ds 1
|
|
wc314:: ds 152
|
|
wc3ac:: ds 8
|
|
ENDU ; c3b4
|
|
|
|
wSpriteAnimCount:: db
|
|
wCurrSpriteOAMAddr:: db
|
|
|
|
CurIcon:: db ; c3b6
|
|
|
|
wCurIconTile:: db
|
|
wSpriteAnimAddrBackup::
|
|
wSpriteAnimIDBuffer::
|
|
wCurrSpriteAddSubFlags::
|
|
dw
|
|
wCurrAnimVTile:: db
|
|
wCurrAnimXCoord:: db
|
|
wCurrAnimYCoord:: db
|
|
wCurrAnimXOffset:: db
|
|
wCurrAnimYOffset:: db
|
|
wGlobalAnimYOffset:: db
|
|
wGlobalAnimXOffset:: db
|
|
wSpriteAnimsEnd::
|
|
|
|
ds 11
|
|
|
|
; mobile data
|
|
wc3cc:: ds 1
|
|
wc3cd:: ds 31
|
|
wc3ec:: ds 1
|
|
wc3ed:: ds 1
|
|
wc3ee:: ds 1
|
|
wc3ef:: ds 1
|
|
wc3f0:: ds 1
|
|
wc3f1:: ds 1
|
|
wc3f2:: ds 1
|
|
wc3f3:: ds 1
|
|
wc3f4:: ds 1
|
|
wc3f5:: ds 1
|
|
wc3f6:: ds 1
|
|
wc3f7:: ds 1
|
|
wc3f8:: ds 1
|
|
wc3f9:: ds 1
|
|
wc3fa:: ds 1
|
|
wc3fb:: ds 1
|
|
wc3fc:: ds 1
|
|
|
|
ds 3
|
|
|
|
|
|
SECTION "Sprites", WRAM0
|
|
|
|
Sprites:: ; c400
|
|
; 4 bytes per sprite
|
|
; 40 sprites
|
|
; struct:
|
|
; y (px)
|
|
; x (px)
|
|
; tile id
|
|
; attributes:
|
|
; bit 7: priority
|
|
; bit 6: y flip
|
|
; bit 5: x flip
|
|
; bit 4: pal # (non-cgb)
|
|
; bit 3: vram bank (cgb only)
|
|
; bit 2-0: pal # (cgb only)
|
|
ds 4 * 40
|
|
SpritesEnd::
|
|
|
|
|
|
SECTION "Tilemap", WRAM0
|
|
|
|
TileMap:: ; c4a0
|
|
; 20x18 grid of 8x8 tiles
|
|
ds SCREEN_WIDTH * SCREEN_HEIGHT
|
|
TileMapEnd::
|
|
|
|
|
|
SECTION "Battle", WRAM0
|
|
|
|
UNION ; c608
|
|
; unidentified uses
|
|
wc608::
|
|
|
|
NEXTU ; c608
|
|
; miscellaneous
|
|
wMisc:: ds (SCREEN_WIDTH + 4) * (SCREEN_HEIGHT + 2)
|
|
wMiscEnd::
|
|
|
|
NEXTU ; c608
|
|
; odd egg
|
|
wOddEgg:: party_struct OddEgg
|
|
wOddEggName:: ds PKMN_NAME_LENGTH
|
|
wOddEggOTName:: ds PKMN_NAME_LENGTH
|
|
|
|
NEXTU ; c608
|
|
; battle tower temp struct
|
|
wBT_OTTemp:: battle_tower_struct wBT_OTTemp
|
|
|
|
NEXTU ; c608
|
|
; hall of fame temp struct
|
|
hall_of_fame wHallOfFameTemp
|
|
|
|
NEXTU ; c608
|
|
; timeset temp storage
|
|
ds 20
|
|
wInitHourBuffer:: db ; c61c
|
|
ds 9
|
|
wInitMinuteBuffer:: db ; c626
|
|
|
|
NEXTU ; c608
|
|
; link engine data
|
|
ds 10
|
|
wc612:: ds 10
|
|
|
|
NEXTU ; c608
|
|
; battle data
|
|
wBattle::
|
|
wEnemyMoveStruct:: move_struct wEnemyMoveStruct ; c608
|
|
wPlayerMoveStruct:: move_struct wPlayerMoveStruct ; c60f
|
|
|
|
EnemyMonNick:: ds PKMN_NAME_LENGTH ; c616
|
|
BattleMonNick:: ds PKMN_NAME_LENGTH ; c621
|
|
|
|
BattleMon:: battle_struct BattleMon ; c62c
|
|
|
|
ds 2
|
|
|
|
wWildMon:: db ; c64e
|
|
ds 1
|
|
wEnemyTrainerItem1:: db ; c650
|
|
wEnemyTrainerItem2:: db ; c651
|
|
wEnemyTrainerBaseReward:: db ; c652
|
|
wEnemyTrainerAIFlags:: ds 3 ; c653
|
|
OTClassName:: ds TRAINER_CLASS_NAME_LENGTH ; c656
|
|
|
|
CurOTMon:: db ; c663
|
|
|
|
wBattleParticipantsNotFainted::
|
|
; Bit array. Bits 0 - 5 correspond to party members 1 - 6.
|
|
; Bit set if the mon appears in battle.
|
|
; Bit cleared if the mon faints.
|
|
; Backed up if the enemy switches.
|
|
; All bits cleared if the enemy faints.
|
|
db
|
|
|
|
TypeModifier:: ; c665
|
|
; >10: super-effective
|
|
; 10: normal
|
|
; <10: not very effective
|
|
; bit 7: stab
|
|
db
|
|
|
|
CriticalHit:: ; c666
|
|
; 0 if not critical
|
|
; 1 for a critical hit
|
|
; 2 for a OHKO
|
|
db
|
|
|
|
AttackMissed:: ; c667
|
|
; nonzero for a miss
|
|
db
|
|
|
|
PlayerSubStatus1:: ; c668
|
|
; bit
|
|
; 7 in love
|
|
; 6 rollout
|
|
; 5 endure
|
|
; 4 perish song
|
|
; 3 identified
|
|
; 2 protect
|
|
; 1 curse
|
|
; 0 nightmare
|
|
db
|
|
PlayerSubStatus2:: ; c669
|
|
; bit
|
|
; 7
|
|
; 6
|
|
; 5
|
|
; 4
|
|
; 3
|
|
; 2
|
|
; 1
|
|
; 0 curled
|
|
db
|
|
PlayerSubStatus3:: ; c66a
|
|
; bit
|
|
; 7 confused
|
|
; 6 flying
|
|
; 5 underground
|
|
; 4 charged
|
|
; 3 flinched
|
|
; 2 in loop
|
|
; 1 rampage
|
|
; 0 bide
|
|
db
|
|
PlayerSubStatus4:: ; c66b
|
|
; bit
|
|
; 7 leech seed
|
|
; 6 rage
|
|
; 5 recharge
|
|
; 4 substitute
|
|
; 3
|
|
; 2 focus energy
|
|
; 1 mist
|
|
; 0 x accuracy
|
|
db
|
|
PlayerSubStatus5:: ; c66c
|
|
; bit
|
|
; 7 can't run
|
|
; 6 destiny bond
|
|
; 5 lock-on
|
|
; 4 encored
|
|
; 3 transformed
|
|
; 2
|
|
; 1
|
|
; 0 toxic
|
|
db
|
|
|
|
EnemySubStatus1:: ; c66d
|
|
; see PlayerSubStatus1
|
|
db
|
|
EnemySubStatus2:: ; c66e
|
|
; see PlayerSubStatus2
|
|
db
|
|
EnemySubStatus3:: ; c66f
|
|
; see PlayerSubStatus3
|
|
db
|
|
EnemySubStatus4:: ; c670
|
|
; see PlayerSubStatus4
|
|
db
|
|
EnemySubStatus5:: ; c671
|
|
; see PlayerSubStatus5
|
|
db
|
|
|
|
PlayerRolloutCount:: db ; c672
|
|
PlayerConfuseCount:: db ; c673
|
|
PlayerToxicCount:: db ; c674
|
|
PlayerDisableCount:: db ; c675
|
|
PlayerEncoreCount:: db ; c676
|
|
PlayerPerishCount:: db ; c677
|
|
PlayerFuryCutterCount:: db ; c678
|
|
PlayerProtectCount:: db ; c679
|
|
|
|
EnemyRolloutCount:: db ; c67a
|
|
EnemyConfuseCount:: db ; c67b
|
|
EnemyToxicCount:: db ; c67c
|
|
EnemyDisableCount:: db ; c67d
|
|
EnemyEncoreCount:: db ; c67e
|
|
EnemyPerishCount:: db ; c67f
|
|
EnemyFuryCutterCount:: db ; c680
|
|
EnemyProtectCount:: db ; c681
|
|
|
|
PlayerDamageTaken:: dw ; c682
|
|
EnemyDamageTaken:: dw ; c684
|
|
|
|
wBattleReward:: ds 3 ; c686
|
|
wBattleAnimParam::
|
|
wKickCounter::
|
|
wPresentPower:: db ; c689
|
|
BattleScriptBuffer:: ds 40 ; c68a
|
|
|
|
BattleScriptBufferAddress:: dw ; c6b2
|
|
|
|
wTurnEnded:: db ; c6b4
|
|
|
|
ds 1
|
|
|
|
PlayerStats:: ; c6b6
|
|
PlayerAttack:: dw
|
|
PlayerDefense:: dw
|
|
PlayerSpeed:: dw
|
|
PlayerSpAtk:: dw
|
|
PlayerSpDef:: dw
|
|
ds 1
|
|
|
|
EnemyStats:: ; c6c1
|
|
EnemyAttack:: dw
|
|
EnemyDefense:: dw
|
|
EnemySpeed:: dw
|
|
EnemySpAtk:: dw
|
|
EnemySpDef:: dw
|
|
ds 1
|
|
|
|
PlayerStatLevels:: ; c6cc
|
|
; 07 neutral
|
|
PlayerAtkLevel:: db ; c6cc
|
|
PlayerDefLevel:: db ; c6cd
|
|
PlayerSpdLevel:: db ; c6ce
|
|
PlayerSAtkLevel:: db ; c6cf
|
|
|
|
UNION ; c6d0
|
|
; finish battle RAM
|
|
PlayerSDefLevel:: db ; c6d0
|
|
PlayerAccLevel:: db ; c6d1
|
|
PlayerEvaLevel:: db ; c6d2
|
|
ds 1 ; c6d3
|
|
PlayerStatLevelsEnd::
|
|
|
|
EnemyStatLevels:: ; c6d4
|
|
; 07 neutral
|
|
EnemyAtkLevel:: db ; c6d4
|
|
EnemyDefLevel:: db ; c6d5
|
|
EnemySpdLevel:: db ; c6d6
|
|
EnemySAtkLevel:: db ; c6d7
|
|
EnemySDefLevel:: db ; c6d8
|
|
EnemyAccLevel:: db ; c6d9
|
|
EnemyEvaLevel:: db ; c6da
|
|
ds 1
|
|
|
|
EnemyTurnsTaken:: db ; c6dc
|
|
PlayerTurnsTaken:: db ; c6dd
|
|
ds 1
|
|
|
|
PlayerSubstituteHP:: db ; c6df
|
|
EnemySubstituteHP:: db ; c6e0
|
|
|
|
wUnusedPlayerLockedMove:: db ; c6e1
|
|
ds 1
|
|
|
|
CurPlayerMove:: db ; c6e3
|
|
CurEnemyMove:: db ; c6e4
|
|
|
|
LinkBattleRNCount:: ; c6e5
|
|
; how far through the prng stream
|
|
db
|
|
|
|
wEnemyItemState:: db ; c6e6
|
|
ds 2
|
|
CurEnemyMoveNum:: db ; c6e9
|
|
|
|
wEnemyHPAtTimeOfPlayerSwitch:: dw ; c6ea
|
|
wPayDayMoney:: ds 3 ; c6ec
|
|
|
|
wSafariMonAngerCount:: db
|
|
wSafariMonEating:: db
|
|
ds 1
|
|
wEnemyBackupDVs:: dw ; used when enemy is transformed
|
|
AlreadyDisobeyed:: db ; c6f4
|
|
|
|
DisabledMove:: db ; c6f5
|
|
EnemyDisabledMove:: db ; c6f6
|
|
wWhichMonFaintedFirst:: db
|
|
|
|
; exists so you can't counter on switch
|
|
LastPlayerCounterMove:: db ; c6f8
|
|
LastEnemyCounterMove:: db ; c6f9
|
|
|
|
wEnemyMinimized:: db ; c6fa
|
|
|
|
AlreadyFailed:: db ; c6fb
|
|
|
|
wBattleParticipantsIncludingFainted:: db ; c6fc
|
|
wDanger:: db ; c6fd
|
|
wPlayerMinimized:: db ; c6fe
|
|
PlayerScreens:: ; c6ff
|
|
; bit
|
|
; 7
|
|
; 6
|
|
; 5
|
|
; 4 reflect
|
|
; 3 light screen
|
|
; 2 safeguard
|
|
; 1
|
|
; 0 spikes
|
|
db
|
|
|
|
EnemyScreens:: ; c700
|
|
; see PlayerScreens
|
|
db
|
|
|
|
PlayerSafeguardCount:: db ; c701
|
|
PlayerLightScreenCount:: db ; c702
|
|
PlayerReflectCount:: db ; c703
|
|
ds 1
|
|
|
|
EnemySafeguardCount:: db ; c705
|
|
EnemyLightScreenCount:: db ; c706
|
|
EnemyReflectCount:: db ; c707
|
|
ds 2
|
|
|
|
Weather:: ; c70a
|
|
; 00 normal
|
|
; 01 rain
|
|
; 02 sun
|
|
; 03 sandstorm
|
|
; 04 rain stopped
|
|
; 05 sunliight faded
|
|
; 06 sandstorm subsided
|
|
db
|
|
|
|
WeatherCount:: ; c70b
|
|
; # turns remaining
|
|
db
|
|
|
|
LoweredStat:: db ; c70c
|
|
EffectFailed:: db ; c70d
|
|
FailedMessage:: db ; c70e
|
|
wEnemyGoesFirst:: db ; c70f
|
|
|
|
wPlayerIsSwitching:: db ; c710
|
|
wEnemyIsSwitching:: db ; c711
|
|
|
|
PlayerUsedMoves:: ; c712
|
|
; add a move that has been used once by the player
|
|
; added in order of use
|
|
ds NUM_MOVES
|
|
|
|
wEnemyAISwitchScore:: db ; c716
|
|
wEnemySwitchMonParam:: db ; c717
|
|
wEnemySwitchMonIndex:: db ; c718
|
|
wTempLevel:: db ; c719
|
|
LastPlayerMon:: db ; c71a
|
|
LastPlayerMove:: db ; c71b
|
|
LastEnemyMove:: db ; c71c
|
|
|
|
wPlayerFutureSightCount:: db ; c71d
|
|
wEnemyFutureSightCount:: db ; c71e
|
|
|
|
wGivingExperienceToExpShareHolders:: db ; c71f
|
|
|
|
wBackupEnemyMonBaseStats:: ds 5 ; c720
|
|
wBackupEnemyMonCatchRate:: db ; c725
|
|
wBackupEnemyMonBaseExp:: db ; c726
|
|
|
|
wPlayerFutureSightDamage:: dw ; c727
|
|
wEnemyFutureSightDamage:: dw ; c729
|
|
wPlayerRageCounter:: db ; c72b
|
|
wEnemyRageCounter:: db ; c72c
|
|
|
|
wBeatUpHitAtLeastOnce:: db ; c72d
|
|
|
|
wPlayerTrappingMove:: db ; c72e
|
|
wEnemyTrappingMove:: db ; c72f
|
|
wPlayerWrapCount:: db ; c730
|
|
wEnemyWrapCount:: db ; c731
|
|
wPlayerCharging:: db ; c732
|
|
wEnemyCharging:: db ; c733
|
|
|
|
BattleEnded:: db ; c734
|
|
|
|
wWildMonMoves:: ds NUM_MOVES ; c735
|
|
wWildMonPP:: ds NUM_MOVES ; c739
|
|
|
|
wAmuletCoin:: db ; c73a
|
|
|
|
wSomeoneIsRampaging:: db ; c73b
|
|
|
|
wPlayerJustGotFrozen:: db ; c73c
|
|
wEnemyJustGotFrozen:: db ; c73d
|
|
wBattleEnd::
|
|
; Battle RAM
|
|
; c741
|
|
|
|
NEXTU ; c6d0
|
|
; trade
|
|
wTrademons::
|
|
wPlayerTrademon:: trademon wPlayerTrademon
|
|
wOTTrademon:: trademon wOTTrademon
|
|
wTrademonsEnd::
|
|
wTradeAnimAddress:: dw
|
|
wLinkPlayer1Name:: ds NAME_LENGTH
|
|
wLinkPlayer2Name:: ds NAME_LENGTH
|
|
wLinkTradeSendmonSpecies:: db
|
|
wLinkTradeGetmonSpecies:: db
|
|
|
|
NEXTU ; c6d0
|
|
; naming screen
|
|
wNamingScreenDestinationPointer:: dw ; c6d0
|
|
wNamingScreenCurrNameLength:: db ; c6d2
|
|
wNamingScreenMaxNameLength:: db ; c6d3
|
|
wNamingScreenType:: db ; c6d4
|
|
wNamingScreenCursorObjectPointer:: dw ; c6d5
|
|
wNamingScreenLastCharacter:: db ; c6d7
|
|
wNamingScreenStringEntryCoord:: dw ; c6d8
|
|
|
|
NEXTU ; c6d0
|
|
; pokegear
|
|
wPokegearPhoneLoadNameBuffer:: db ; c6d0
|
|
wPokegearPhoneCursorPosition:: db ; c6d1
|
|
wPokegearPhoneScrollPosition:: db ; c6d2
|
|
wPokegearPhoneSelectedPerson:: db ; c6d3
|
|
wPokegearPhoneSubmenuCursor:: db ; c6d4
|
|
wPokegearMapCursorObjectPointer:: dw ; c6d5
|
|
wPokegearMapCursorLandmark:: db ; c6d7
|
|
wPokegearMapPlayerIconLandmark:: db ; c6d8
|
|
wPokegearRadioChannelBank:: db ; c6d9
|
|
wPokegearRadioChannelAddr:: dw ; c6da
|
|
wPokegearRadioMusicPlaying:: db ; c6dc
|
|
|
|
NEXTU ; c6d0
|
|
; slot machine
|
|
wSlots::
|
|
wReel1:: slot_reel wReel1
|
|
wReel2:: slot_reel wReel2
|
|
wReel3:: slot_reel wReel3
|
|
; c700
|
|
wReel1Stopped:: ds 3
|
|
wReel2Stopped:: ds 3
|
|
wReel3Stopped:: ds 3
|
|
wSlotBias:: db
|
|
wSlotBet:: db
|
|
wFirstTwoReelsMatching:: db
|
|
wFirstTwoReelsMatchingSevens:: db
|
|
wSlotMatched:: db
|
|
wCurrReelStopped:: ds 3
|
|
wPayout:: dw
|
|
wCurrReelXCoord:: db
|
|
wCurrReelYCoord:: db
|
|
ds 2
|
|
wSlotBuildingMatch:: db
|
|
wSlotsDataEnd::
|
|
ds 28
|
|
wSlotsEnd::
|
|
|
|
NEXTU ; c6d0
|
|
; card flip
|
|
wCardFlip::
|
|
wDeck:: ds 24
|
|
wDeckEnd::
|
|
; c6e8
|
|
wCardFlipNumCardsPlayed:: db
|
|
wCardFlipFaceUpCard:: db
|
|
wDiscardPile:: ds 24
|
|
wDiscardPileEnd::
|
|
wCardFlipEnd::
|
|
|
|
NEXTU ; c6d0
|
|
; dummy game
|
|
wDummyGame::
|
|
wDummyGameCards:: ds 9 * 5
|
|
wDummyGameCardsEnd::
|
|
wDummyGameLastCardPicked:: db ; c6fd
|
|
wDummyGameCard1:: db ; c6fe
|
|
wDummyGameCard2:: db ; c6ff
|
|
wDummyGameCard1Location:: db ; c700
|
|
wDummyGameCard2Location:: db ; c701
|
|
wDummyGameNumberTriesRemaining:: db ; c702
|
|
wDummyGameLastMatches:: ds 5 ; c703
|
|
wDummyGameCounter:: db ; c708
|
|
wDummyGameNumCardsMatched:: db ; c709
|
|
wDummyGameEnd::
|
|
|
|
NEXTU ; c6d0
|
|
; unown puzzle
|
|
wUnownPuzzle::
|
|
wPuzzlePieces:: ds 6 * 6
|
|
wUnownPuzzleEnd::
|
|
|
|
NEXTU ; c6d0
|
|
; pokedex
|
|
wPokedexDataStart::
|
|
wPokedexOrder:: ds $100 ; NUM_POKEMON + 5
|
|
wPokedexOrderEnd::
|
|
wPokedexMetadata::
|
|
wDexListingScrollOffset:: db ; offset of the first displayed entry from the start
|
|
wDexListingCursor:: db ; Dex cursor
|
|
wDexListingEnd:: db ; Last mon to display
|
|
wDexListingHeight:: db ; number of entries displayed at once in the dex listing
|
|
wCurrentDexMode:: db ; Pokedex Mode
|
|
wDexSearchMonType1:: db ; first type to search
|
|
wDexSearchMonType2:: db ; second type to search
|
|
wDexSearchResultCount:: db
|
|
wDexArrowCursorPosIndex:: db
|
|
wDexArrowCursorDelayCounter:: db
|
|
wDexArrowCursorBlinkCounter:: db
|
|
wDexSearchSlowpokeFrame:: db
|
|
wUnlockedUnownMode:: db
|
|
wDexCurrentUnownIndex:: db
|
|
wDexUnownCount:: db
|
|
wDexConvertedMonType:: db ; mon type converted from dex search mon type
|
|
wDexListingScrollOffsetBackup:: db
|
|
wDexListingCursorBackup:: db
|
|
wBackupDexListingCursor:: db
|
|
wBackupDexListingPage:: db
|
|
wDexCurrentLocation:: db
|
|
IF DEF(CRYSTAL11)
|
|
wPokedexStatus:: db
|
|
wPokedexDataEnd::
|
|
ELSE
|
|
wPokedexDataEnd:: ds 1
|
|
ENDC
|
|
ds 2
|
|
|
|
NEXTU ; c6d0
|
|
; mobile data
|
|
wc6d0:: ds 126
|
|
wc74e:: ds 107
|
|
wc7b9:: ds 1
|
|
wc7ba:: ds 1
|
|
wc7bb:: ds 2
|
|
wc7bd:: ds 19
|
|
wc7d0:: ds 1
|
|
wc7d1:: ds 1
|
|
wc7d2:: ds 1
|
|
wc7d3:: ds 1
|
|
wc7d4:: ds 1
|
|
ENDU ; c7e8
|
|
ENDU ; c7e8
|
|
|
|
wc7e8:: ds 24 ; ????
|
|
|
|
|
|
SECTION "Overworld Map", WRAM0
|
|
|
|
UNION ; c800
|
|
OverworldMap:: ds 1300 ; c800
|
|
OverworldMapEnd::
|
|
|
|
NEXTU ; c800
|
|
; GB Printer screen RAM
|
|
wGameboyPrinterRAM::
|
|
wGameboyPrinterScreen:: ds SCREEN_HEIGHT * SCREEN_WIDTH ; c800
|
|
wGameboyPrinterScreenEnd:: ; c968
|
|
|
|
NEXTU ; c800
|
|
; GB Printer data
|
|
wGameboyPrinter2bppSource:: ds 40 tiles
|
|
wGameboyPrinter2bppSourceEnd::
|
|
wca80:: db
|
|
wPrinterRowIndex:: db
|
|
|
|
; Printer data header
|
|
wPrinterData:: ds 4
|
|
wPrinterChecksum:: dw ; ca86
|
|
wPrinterHandshake:: db
|
|
wPrinterStatusFlags::
|
|
; bit 7: set if error 1 (battery low)
|
|
; bit 6: set if error 4 (too hot or cold)
|
|
; bit 5: set if error 3 (paper jammed or empty)
|
|
; if this and the previous byte are both $ff: error 2 (connection error)
|
|
db
|
|
|
|
wHandshakeFrameDelay:: db
|
|
wPrinterSerialFrameDelay:: db
|
|
wPrinterSendByteOffset:: dw
|
|
wPrinterSendByteCounter:: dw
|
|
|
|
; tilemap backup?
|
|
wPrinterTileMapBuffer:: ds SCREEN_HEIGHT * SCREEN_WIDTH ; ca90
|
|
wPrinterTileMapBufferEnd::
|
|
wPrinterStatus:: db ; cbf8
|
|
ds 1
|
|
wcbfa:: ds 1
|
|
wGBPrinterSettings:: db
|
|
ds 16
|
|
wGameboyPrinterRAMEnd::
|
|
|
|
NEXTU ; c800
|
|
; bill's pc data
|
|
wBillsPCPokemonList:: ; c800
|
|
; Pokemon, box number, list index
|
|
ds 3 * 30
|
|
|
|
NEXTU ; c800
|
|
; raw link data
|
|
wLinkData:: ds $514
|
|
wLinkDataEnd::
|
|
|
|
NEXTU ; c800
|
|
; link data members
|
|
wLinkPlayerName:: ds NAME_LENGTH
|
|
wLinkPartyCount:: db
|
|
wLinkPartySpecies:: ds PARTY_LENGTH
|
|
wLinkPartySpeciesEnd:: db ; legacy scripts don't check PartyCount
|
|
|
|
UNION ; c813
|
|
; time capsule party data
|
|
wTimeCapsulePlayerData::
|
|
wTimeCapsulePartyMon1:: red_party_struct wTimeCapsulePartyMon1
|
|
wTimeCapsulePartyMon2:: red_party_struct wTimeCapsulePartyMon2
|
|
wTimeCapsulePartyMon3:: red_party_struct wTimeCapsulePartyMon3
|
|
wTimeCapsulePartyMon4:: red_party_struct wTimeCapsulePartyMon4
|
|
wTimeCapsulePartyMon5:: red_party_struct wTimeCapsulePartyMon5
|
|
wTimeCapsulePartyMon6:: red_party_struct wTimeCapsulePartyMon6
|
|
wTimeCapsulePartyMonOTNames:: ds PARTY_LENGTH * NAME_LENGTH
|
|
wTimeCapsulePartyMonNicks:: ds PARTY_LENGTH * PKMN_NAME_LENGTH
|
|
wTimeCapsulePlayerDataEnd::
|
|
|
|
NEXTU ; c813
|
|
; link player data
|
|
wLinkPlayerData::
|
|
wLinkPlayerPartyMon1:: party_struct wLinkPlayerPartyMon1
|
|
wLinkPlayerPartyMon2:: party_struct wLinkPlayerPartyMon2
|
|
wLinkPlayerPartyMon3:: party_struct wLinkPlayerPartyMon3
|
|
wLinkPlayerPartyMon4:: party_struct wLinkPlayerPartyMon4
|
|
wLinkPlayerPartyMon5:: party_struct wLinkPlayerPartyMon5
|
|
wLinkPlayerPartyMon6:: party_struct wLinkPlayerPartyMon6
|
|
wLinkPlayerPartyMonOTNames:: ds PARTY_LENGTH * NAME_LENGTH
|
|
wLinkPlayerPartyMonNicks:: ds PARTY_LENGTH * PKMN_NAME_LENGTH
|
|
wLinkPlayerDataEnd::
|
|
ENDU ; c9b7
|
|
|
|
NEXTU ; c800
|
|
; mystery gift data
|
|
wMysteryGiftPartyTemp:: ; ds PARTY_LENGTH * (1 + 1 + NUM_MOVES)
|
|
wMysteryGiftStaging::
|
|
wc800:: ds 1
|
|
wc801:: ds 1
|
|
wc802:: ds 1
|
|
wc803:: ds 4
|
|
wc807:: ds 7
|
|
wc80e:: ds 1
|
|
wc80f:: ds 1
|
|
wc810:: ds 1
|
|
wc811:: ds 1
|
|
wc812:: ds 1
|
|
wc813:: ds 1
|
|
wc814:: ds 4
|
|
wc818:: ds 8
|
|
wc820:: ds 1
|
|
wc821:: ds 47
|
|
|
|
UNION ; c850
|
|
wMysteryGiftTrainerData:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
|
|
wMysteryGiftTrainerDataEnd::
|
|
|
|
NEXTU ; c850
|
|
wc850:: ds 16
|
|
wc860:: ds 16
|
|
wc870:: ds 16
|
|
wc880:: ds 16
|
|
wc890:: ds 16
|
|
wc8a0:: ds 16
|
|
wc8b0:: ds 16
|
|
wc8c0:: ds 16
|
|
wc8d0:: ds 16
|
|
wc8e0:: ds 16
|
|
wc8f0:: ds 16
|
|
ENDU ; c900
|
|
|
|
wMysteryGiftPartnerData::
|
|
wc900:: db
|
|
wMysteryGiftPartnerID:: dw
|
|
wMysteryGiftPartnerName:: ds NAME_LENGTH
|
|
wMysteryGiftPartnerDexCaught:: db
|
|
wc90f::
|
|
wMysteryGiftPartnerSentDeco:: db
|
|
wMysteryGiftPartnerWhichItem:: db
|
|
wMysteryGiftPartnerWhichDeco:: db
|
|
wMysteryGiftPartnerBackupItem:: db
|
|
ds 1
|
|
wMysteryGiftPartnerDataEnd::
|
|
|
|
ds 60
|
|
|
|
wMysteryGiftPlayerData::
|
|
ds 1
|
|
wMysteryGiftPlayerID:: dw
|
|
wMysteryGiftPlayerName:: ds NAME_LENGTH
|
|
wMysteryGiftPlayerDexCaught:: db
|
|
wMysteryGiftPlayerSentDeco:: db
|
|
wMysteryGiftPlayerWhichItem:: db
|
|
wMysteryGiftPlayerWhichDeco:: db
|
|
wMysteryGiftPlayerBackupItem:: db
|
|
ds 1
|
|
wMysteryGiftPlayerDataEnd::
|
|
|
|
ds 144
|
|
|
|
wc9f4:: ds 5
|
|
wc9f9:: ds 7
|
|
|
|
UNION ; ca00
|
|
; blank credits tile buffer
|
|
wCreditsFaux2bpp:: ds 128
|
|
|
|
NEXTU ; ca00
|
|
; mystery gift data
|
|
wca00:: db
|
|
wca01:: db
|
|
wca02:: db
|
|
ds 160
|
|
ENDU ; caa3
|
|
|
|
wcaa3:: ds 2
|
|
wcaa5:: ds 16
|
|
wcab5:: ds 10
|
|
wcabf:: ds 10
|
|
wcac9:: ds 63
|
|
wcb08:: ds 6
|
|
wcb0e:: ds 5
|
|
wcb13:: ds 9
|
|
wcb1c:: ds 14
|
|
|
|
wBillsPC_ScrollPosition:: db
|
|
wBillsPC_CursorPosition:: db
|
|
wBillsPC_NumMonsInBox:: db
|
|
wBillsPC_NumMonsOnScreen:: db
|
|
wBillsPC_LoadedBox:: db ; 0 if party, 1 - 14 if box, 15 if active box
|
|
wBillsPC_BackupScrollPosition:: db
|
|
wBillsPC_BackupCursorPosition:: db
|
|
wBillsPC_BackupLoadedBox:: db
|
|
wBillsPC_MonHasMail:: db
|
|
ds 18
|
|
|
|
wcb45:: ds 20
|
|
wcb59:: ds 20
|
|
wcb6d:: ds 1
|
|
wcb6e:: ds 22
|
|
wcb84:: ds 100
|
|
wcbe8:: dw
|
|
wLinkOTPartyMonTypes:: ds 2 * PARTY_LENGTH
|
|
ds 84
|
|
|
|
wcc4a:: ds 22
|
|
wcc60:: ds 1
|
|
wcc61:: ds 1
|
|
wcc62:: ds 2
|
|
wcc64:: ds 1
|
|
wcc65:: ds 57
|
|
wcc9e:: ds 22
|
|
wccb4:: ds 1
|
|
wccb5:: ds 3
|
|
wccb8:: ds 1
|
|
wccb9:: ds 1
|
|
wccba:: ds 102
|
|
ENDU ; cd20
|
|
|
|
|
|
SECTION "Video", WRAM0
|
|
|
|
UNION ; cd20
|
|
; BGMapBuffer
|
|
BGMapBuffer:: ds 40 ; cd20
|
|
BGMapPalBuffer:: ds 40 ; cd48
|
|
BGMapBufferPtrs:: ds 40 ; cd70 ; 20 bg map addresses (16x8 tiles)
|
|
BGMapBufferEnd::
|
|
|
|
NEXTU ; cd20
|
|
; credits
|
|
CreditsPos:: db
|
|
CreditsUnusedCD21:: db
|
|
CreditsTimer:: db
|
|
|
|
NEXTU ; cd20
|
|
; mobile data
|
|
wMobileMonSpeciesPointerBuffer:: dw
|
|
wMobileMonStructurePointerBuffer:: dw
|
|
wMobileMonOTNamePointerBuffer:: dw
|
|
wMobileMonNicknamePointerBuffer:: dw
|
|
wMobileMonMailPointerBuffer:: dw
|
|
|
|
NEXTU ; cd20
|
|
; more mobile data
|
|
wcd20:: ds 1
|
|
wcd21:: ds 1
|
|
wcd22:: ds 1
|
|
wcd23:: ds 1
|
|
wcd24:: ds 1
|
|
wMobileCommsJumptableIndex:: ds 1 ; cd25
|
|
wcd26:: ds 1
|
|
wcd27:: ds 1
|
|
wcd28:: ds 1
|
|
wcd29:: ds 1
|
|
|
|
wMobileMonSpeciesBuffer::
|
|
wcd2a:: db
|
|
|
|
wTempOddEggNickname:: ; ds 11
|
|
wcd2b:: ds 1
|
|
wcd2c:: ds 1
|
|
wcd2d:: ds 1
|
|
wcd2e:: ds 1
|
|
wcd2f:: ds 1
|
|
wcd30:: ds 1
|
|
wcd31:: ds 1
|
|
wcd32:: ds 1
|
|
wcd33:: ds 1
|
|
wcd34:: ds 1
|
|
wcd35:: ds 1
|
|
|
|
; current time for link/mobile?
|
|
wcd36:: db ; hours
|
|
wcd37:: db ; mins
|
|
wcd38:: db ; secs
|
|
|
|
wcd39:: ds 1
|
|
wcd3a:: ds 1
|
|
wcd3b:: ds 1
|
|
wcd3c:: ds 1
|
|
wcd3d:: ds 1
|
|
wcd3e:: ds 1
|
|
wcd3f:: ds 1
|
|
wcd40:: ds 1
|
|
wcd41:: ds 1
|
|
wcd42:: ds 1
|
|
wcd43:: ds 1
|
|
|
|
; some sort of timer in link battles
|
|
wMobileInactivityTimerMinutes:: db ; mins
|
|
wMobileInactivityTimerSeconds:: db ; secs
|
|
wMobileInactivityTimerFrames:: db ; frames
|
|
wcd47:: ds 1
|
|
|
|
ds 1
|
|
|
|
wBTTempOTSprite::
|
|
wcd49:: db
|
|
|
|
wcd4a:: ds 1
|
|
wcd4b:: ds 1
|
|
|
|
wEZChatCursorXCoord::
|
|
wcd4c:: db
|
|
wEZChatCursorYCoord::
|
|
wcd4d:: db
|
|
|
|
wcd4e:: ds 1
|
|
wcd4f:: ds 1
|
|
wcd50:: ds 1
|
|
wcd51:: ds 1
|
|
wcd52:: ds 1
|
|
|
|
wMobileOpponentBattleMessage:: ; ds 12
|
|
wcd53:: ds 1
|
|
wcd54:: ds 1
|
|
wcd55:: ds 1
|
|
wcd56:: ds 1
|
|
wcd57:: ds 1
|
|
wcd58:: ds 1
|
|
wcd59:: ds 1
|
|
wcd5a:: ds 1
|
|
wcd5b:: ds 1
|
|
wcd5c:: ds 1
|
|
wcd5d:: ds 1
|
|
wcd5e:: ds 1
|
|
wcd5f:: ds 1
|
|
wcd60:: ds 2
|
|
wcd62:: ds 1
|
|
wcd63:: ds 1
|
|
wcd64:: ds 1
|
|
wcd65:: ds 1
|
|
wcd66:: ds 1
|
|
wcd67:: ds 1
|
|
wcd68:: ds 1
|
|
wcd69:: ds 1
|
|
wcd6a:: ds 1
|
|
wcd6b:: ds 1
|
|
wcd6c:: ds 1
|
|
wcd6d:: ds 1
|
|
wcd6e:: ds 1
|
|
wcd6f:: ds 2
|
|
wcd71:: ds 1
|
|
wcd72:: ds 1
|
|
wcd73:: ds 1
|
|
wcd74:: ds 1
|
|
|
|
wOTMonSelection:: ds 2 ; ds 3
|
|
wcd77:: ds 1
|
|
|
|
wcd78:: ds 1
|
|
wcd79:: ds 1
|
|
wcd7a:: ds 2
|
|
wcd7c:: ds 3
|
|
wcd7f:: ds 1
|
|
wcd80:: ds 1
|
|
wcd81:: ds 1
|
|
wcd82:: ds 1
|
|
wcd83:: ds 1
|
|
wcd84:: ds 1
|
|
wcd85:: ds 4
|
|
wcd89:: ds 1
|
|
wcd8a:: ds 1
|
|
wcd8b:: ds 1
|
|
wcd8c:: ds 1
|
|
wcd8d:: ds 11
|
|
ENDU ; cd98
|
|
|
|
SGBPredef:: db ; cd98
|
|
|
|
PlayerHPPal:: db ; cd99
|
|
EnemyHPPal:: db ; cd9a
|
|
|
|
wHPPals:: ds PARTY_LENGTH
|
|
wCurHPPal:: db
|
|
|
|
ds 7
|
|
|
|
wSGBPals:: ds 48 ; cda9
|
|
|
|
AttrMap:: ; cdd9
|
|
; 20x18 grid of bg tile attributes for 8x8 tiles
|
|
; read horizontally from the top row
|
|
; bit 7: priority
|
|
; bit 6: y flip
|
|
; bit 5: x flip
|
|
; bit 4: pal # (non-cgb)
|
|
; bit 3: vram bank (cgb only)
|
|
; bit 2-0: pal # (cgb only)
|
|
ds SCREEN_WIDTH * SCREEN_HEIGHT
|
|
AttrMapEnd::
|
|
|
|
UNION ; cf41
|
|
; addresses dealing with serial comms
|
|
ds 1
|
|
wcf42:: db
|
|
ds 1
|
|
wcf44:: db
|
|
wcf45:: db
|
|
|
|
NEXTU ; cf41
|
|
wTileAnimBuffer:: ds 1 tiles
|
|
ENDU ; cf51
|
|
|
|
; link data
|
|
wOtherPlayerLinkMode:: db
|
|
wOtherPlayerLinkAction:: db
|
|
ds 3
|
|
wPlayerLinkAction:: db
|
|
wcf57:: db
|
|
ds 3
|
|
wLinkTimeoutFrames:: dw ; cf5b
|
|
wcf5d:: dw
|
|
|
|
MonType:: db ; cf5f
|
|
|
|
CurSpecies::
|
|
CurMove:: db ; cf60
|
|
|
|
wNamedObjectTypeBuffer:: db
|
|
|
|
ds 1
|
|
|
|
wBattleTowerBattleEnded::
|
|
wJumptableIndex:: db
|
|
|
|
UNION ; cf64
|
|
; unidentified
|
|
wcf64:: db
|
|
wcf65:: db
|
|
wcf66:: db
|
|
|
|
NEXTU ; cf64
|
|
; intro and title data
|
|
wIntroSceneFrameCounter:: db
|
|
wTitleScreenTimer:: dw
|
|
|
|
NEXTU ; cf64
|
|
; credits data
|
|
wCreditsBorderFrame:: db
|
|
wCreditsBorderMon:: db
|
|
wCreditsLYOverride:: db
|
|
|
|
NEXTU ; cf64
|
|
; unown puzzle data
|
|
wHoldingUnownPuzzlePiece:: db
|
|
wUnownPuzzleCursorPosition:: db
|
|
wUnownPuzzleHeldPiece:: db
|
|
|
|
NEXTU ; cf64
|
|
; card flip data
|
|
wCardFlipCursorY:: db
|
|
wCardFlipCursorX:: db
|
|
wCardFlipWhichCard:: db
|
|
|
|
NEXTU ; cf64
|
|
; pokedex
|
|
wDexEntryPrevJumptableIndex:: db
|
|
IF !DEF(CRYSTAL11)
|
|
wPokedexStatus:: db
|
|
ENDC
|
|
|
|
NEXTU ; cf64
|
|
; miscellaneous
|
|
wNrOfBeatenBattleTowerTrainers::
|
|
wMomBankDigitCursorPosition::
|
|
db
|
|
wCurrPocket::
|
|
wPrinterQueueLength::
|
|
db
|
|
ENDU ; cf67
|
|
|
|
Requested2bpp::
|
|
Requested2bppSize:: db ; cf67
|
|
Requested2bppSource:: dw ; cf68
|
|
Requested2bppDest:: dw ; cf6a
|
|
|
|
Requested1bpp::
|
|
Requested1bppSize:: db ; cf6c
|
|
Requested1bppSource:: dw ; cf6d
|
|
Requested1bppDest:: dw ; cf6f
|
|
|
|
wWindowStackPointer:: dw ; cf71
|
|
wMenuJoypad:: db ; cf73
|
|
MenuSelection:: db ; cf74
|
|
MenuSelectionQuantity:: db ; cf75
|
|
wWhichIndexSet:: db ; cf76
|
|
wScrollingMenuCursorPosition:: db ; cf77
|
|
wWindowStackSize:: db ; cf78
|
|
|
|
ds 8
|
|
|
|
; menu data header
|
|
wMenuDataHeader:: ; cf81
|
|
wMenuFlags:: db
|
|
wMenuBorderTopCoord:: db
|
|
wMenuBorderLeftCoord:: db
|
|
wMenuBorderBottomCoord:: db
|
|
wMenuBorderRightCoord:: db
|
|
wMenuData2Pointer:: dw
|
|
wMenuCursorBuffer:: dw
|
|
wMenuDataBank:: db
|
|
ds 6
|
|
wMenuDataHeaderEnd::
|
|
|
|
wMenuData2::
|
|
UNION ; cf91
|
|
; MenuData2
|
|
wMenuData2Flags:: ; cf91
|
|
; bit 7: When set, start printing text one tile to the right of the border
|
|
; In scrolling menus, SELECT is functional
|
|
; bit 6: When set, start printing text one tile below the border
|
|
; In scrolling menus, START is functional
|
|
; bit 5: ????
|
|
; bit 4: ????
|
|
; bit 3: ????
|
|
; bit 2: ????
|
|
; bit 1: Enable Select button
|
|
; bit 0: Disable B button
|
|
db
|
|
wMenuData2Items:: db ; cf92
|
|
wMenuData2IndicesPointer:: dw ; cf94
|
|
wMenuData2DisplayFunctionPointer:: dw ; cf96
|
|
wMenuData2PointerTableAddr:: dw ; cf97
|
|
|
|
NEXTU ; cf91
|
|
; 2D menu
|
|
ds 2 ; cf91
|
|
wMenuData2Spacing:: db ; cf93
|
|
wMenuData2_2DMenuItemStringsBank:: db ; cf94
|
|
wMenuData2_2DMenuItemStringsAddr:: dw ; cf96
|
|
wMenuData2_2DMenuFunctionBank:: db ; cf97
|
|
wMenuData2_2DMenuFunctionAddr:: dw ; cf98
|
|
|
|
NEXTU ; cf91
|
|
; scrolling menu
|
|
ds 1 ; cf91
|
|
wMenuData2_ScrollingMenuHeight:: db ; cf92
|
|
wMenuData2_ScrollingMenuWidth:: db ; cf93
|
|
wMenuData2_ScrollingMenuSpacing:: db ; cf94
|
|
wMenuData2_ItemsPointerBank:: db ; cf95
|
|
wMenuData2_ItemsPointerAddr:: dw ; cf97
|
|
wMenuData2_ScrollingMenuFunction1:: ds 3 ; cf98
|
|
wMenuData2_ScrollingMenuFunction2:: ds 3 ; cf9b
|
|
wMenuData2_ScrollingMenuFunction3:: ds 3 ; cf9e
|
|
ENDU ; cfa1
|
|
wMenuData2End::
|
|
|
|
wMenuData3::
|
|
w2DMenuCursorInitY:: db ; cfa1
|
|
w2DMenuCursorInitX:: db ; cfa2
|
|
w2DMenuNumRows:: db ; cfa3
|
|
w2DMenuNumCols:: db ; cfa4
|
|
w2DMenuFlags1:: db ; cfa5
|
|
w2DMenuFlags2:: db ; cfa6
|
|
w2DMenuCursorOffsets:: db ; cfa7
|
|
wMenuJoypadFilter:: db ; cfa8
|
|
wMenuData3End::
|
|
|
|
wMenuCursorY:: db ; cfa9
|
|
wMenuCursorX:: db ; cfaa
|
|
wCursorOffCharacter:: db ; cfab
|
|
wCursorCurrentTile:: dw ; cfac
|
|
|
|
ds 3
|
|
|
|
OverworldDelay:: db ; cfb1
|
|
TextDelayFrames:: db ; cfb2
|
|
VBlankOccurred:: db ; cfb3
|
|
|
|
PredefID:: db ; cfb4
|
|
PredefTemp:: dw ; cfb5
|
|
PredefAddress:: dw ; cfb7
|
|
wFarCallBCBuffer:: dw ; cfb9
|
|
|
|
wcfbb:: db
|
|
|
|
GameTimerPause:: ; cfbc
|
|
; bit 0
|
|
db
|
|
|
|
ds 1
|
|
|
|
wcfbe:: ; SGB flags?
|
|
; bit 7
|
|
db
|
|
|
|
ds 1
|
|
|
|
InBattleTowerBattle:: ; cfc0
|
|
; 0 not in BattleTower-Battle
|
|
; 1 BattleTower-Battle
|
|
db
|
|
|
|
ds 1
|
|
|
|
FXAnimID:: dw ; cfc2
|
|
|
|
wPlaceBallsX:: db ; cfc4
|
|
wPlaceBallsY:: db ; cfc5
|
|
|
|
TileAnimationTimer:: db ; cfc6
|
|
|
|
; palette backups?
|
|
wBGP:: db
|
|
wOBP0:: db
|
|
wOBP1:: db
|
|
|
|
wNumHits:: db
|
|
|
|
ds 1
|
|
|
|
Options:: ; cfcc
|
|
; bit 0-2: number of frames to delay when printing text
|
|
; fast 1; mid 3; slow 5
|
|
; bit 3: ?
|
|
; bit 4: no text delay
|
|
; bit 5: stereo off/on
|
|
; bit 6: battle style shift/set
|
|
; bit 7: battle scene off/on
|
|
db
|
|
wSaveFileExists:: db
|
|
TextBoxFrame:: ; cfce
|
|
; bits 0-2: textbox frame 0-7
|
|
db
|
|
TextBoxFlags:: db
|
|
GBPrinter:: ; cfd0
|
|
; bit 0-6: brightness
|
|
; lightest: $00
|
|
; lighter: $20
|
|
; normal: $40 (default)
|
|
; darker: $60
|
|
; darkest: $7F
|
|
db
|
|
Options2:: ; cfd1
|
|
; bit 1: menu account off/on
|
|
db
|
|
ds 2
|
|
OptionsEnd::
|
|
|
|
; Time buffer, for counting the amount of time since
|
|
; an event began.
|
|
wSecondsSince:: db
|
|
wMinutesSince:: db
|
|
wHoursSince:: db
|
|
wDaysSince:: db
|
|
|
|
|
|
SECTION "WRAM 1", WRAMX
|
|
|
|
wRAM1Start::
|
|
wd000:: ds 1
|
|
|
|
DefaultSpawnpoint:: db
|
|
|
|
UNION ; d002
|
|
; mail temp storage
|
|
wTempMail:: mailmsg wTempMail
|
|
|
|
NEXTU ; d002
|
|
; poke seer
|
|
wSeerAction:: db
|
|
wSeerNickname:: ds PKMN_NAME_LENGTH
|
|
wSeerCaughtLocation:: ds 17
|
|
wSeerTimeOfDay:: ds NAME_LENGTH
|
|
wSeerOTName:: ds NAME_LENGTH
|
|
wSeerOTNameGrammar:: db
|
|
wSeerCaughtLevelString:: ds 4
|
|
wSeerCaughtLevel:: db
|
|
wSeerCaughtData:: db
|
|
wSeerCaughtGender:: db
|
|
|
|
NEXTU ; d002
|
|
; mon buffer
|
|
wBufferMonNick:: ds PKMN_NAME_LENGTH ; d002
|
|
wBufferMonOT:: ds NAME_LENGTH ; d00d
|
|
wBufferMon:: party_struct wBufferMon ; d018
|
|
ds 8
|
|
wMonOrItemNameBuffer::
|
|
|
|
NEXTU ; d002
|
|
; bug-catching contest
|
|
wBugContestResults::
|
|
bugcontestwinner wBugContestFirstPlace
|
|
bugcontestwinner wBugContestSecondPlace
|
|
bugcontestwinner wBugContestThirdPlace
|
|
wBugContestWinnersEnd::
|
|
bugcontestwinner wBugContestTemp
|
|
ds 4
|
|
wBugContestWinnerName:: ds NAME_LENGTH
|
|
|
|
NEXTU ; d002
|
|
; mart items
|
|
wMartItem1BCD:: ds 3
|
|
wMartItem2BCD:: ds 3
|
|
wMartItem3BCD:: ds 3
|
|
wMartItem4BCD:: ds 3
|
|
wMartItem5BCD:: ds 3
|
|
wMartItem6BCD:: ds 3
|
|
wMartItem7BCD:: ds 3
|
|
wMartItem8BCD:: ds 3
|
|
wMartItem9BCD:: ds 3
|
|
wMartItem10BCD:: ds 3
|
|
wMartItemBCDEnd::
|
|
|
|
NEXTU ; d002
|
|
; town map data
|
|
wTownMapPlayerIconLandmark:: ds 1
|
|
UNION
|
|
wTownMapCursorLandmark:: ds 1
|
|
wTownMapCursorObjectPointer:: ds 2
|
|
NEXTU
|
|
wTownMapCursorCoordinates:: ds 2
|
|
ENDU
|
|
|
|
NEXTU ; d002
|
|
; phone call data
|
|
PhoneScriptBank:: db
|
|
PhoneCaller:: dw
|
|
|
|
NEXTU ; d002
|
|
; radio data
|
|
wCurrentRadioLine:: db
|
|
wNextRadioLine:: db
|
|
wRadioTextDelay:: db
|
|
wNumRadioLinesPrinted:: db
|
|
wOaksPkmnTalkSegmentCounter:: db
|
|
ds 5
|
|
wRadioText:: ds 2 * SCREEN_WIDTH
|
|
wRadioTextEnd::
|
|
|
|
NEXTU ; d002
|
|
; lucky number show
|
|
LuckyNumberDigit1Buffer:: db
|
|
LuckyNumberDigit2Buffer:: db
|
|
LuckyNumberDigit3Buffer:: db
|
|
LuckyNumberDigit4Buffer:: db
|
|
LuckyNumberDigit5Buffer:: db
|
|
|
|
NEXTU ; d002
|
|
; movement buffer data
|
|
wMovementBufferCount:: db
|
|
wMovementBufferPerson:: db
|
|
wUnusedMovementBufferBank:: db
|
|
wUnusedMovementBufferPointer:: dw
|
|
MovementBuffer:: ds 55
|
|
|
|
NEXTU ; d002
|
|
; box printing
|
|
wWhichBoxMonToPrint:: db
|
|
wFinishedPrintingBox:: db
|
|
wAddrOfBoxToPrint:: dw
|
|
wBankOfBoxToPrint:: db
|
|
wWhichBoxToPrint:: db
|
|
|
|
NEXTU ; d002
|
|
; trainer HUD data
|
|
ds 1
|
|
wPlaceBallsDirection:: db
|
|
wTrainerHUDTiles:: db
|
|
|
|
NEXTU ; d002
|
|
; mobile participant nicknames
|
|
ds 4
|
|
wMobileParticipant1Nickname:: ds NAME_LENGTH_JAPANESE
|
|
wMobileParticipant2Nickname:: ds NAME_LENGTH_JAPANESE
|
|
wMobileParticipant3Nickname:: ds NAME_LENGTH_JAPANESE
|
|
|
|
NEXTU ; d002
|
|
; earthquake data buffer
|
|
wEarthquakeMovementDataBuffer:: ds 5
|
|
|
|
NEXTU ; d002
|
|
; miscellaneous
|
|
wTempDayOfWeek::
|
|
wApricorns:: db
|
|
ds 2
|
|
|
|
StartFlypoint:: db
|
|
EndFlypoint:: db
|
|
|
|
NEXTU ; d002
|
|
; unidentified
|
|
wd002:: db
|
|
wd003:: db
|
|
wd004:: db
|
|
|
|
; mobile?
|
|
ds 3
|
|
wd008:: ds 2
|
|
ds 2
|
|
wd00c:: ds 1
|
|
wd00d:: ds 1
|
|
ds 1
|
|
wd00f:: ds 1
|
|
wd010:: ds 1
|
|
wd011:: ds 1
|
|
wd012:: ds 1
|
|
wd013:: ds 1
|
|
wd014:: ds 2
|
|
ds 1
|
|
wd017:: ds 1
|
|
wd018:: ds 1
|
|
wd019:: ds 1
|
|
ds 19
|
|
wd02d:: ds 1
|
|
wd02e:: ds 1
|
|
wd02f:: ds 1
|
|
wd030:: ds 1
|
|
wd031:: ds 1
|
|
wd032:: ds 1
|
|
wd033:: ds 1
|
|
wd034:: ds 2
|
|
wd036:: ds 2
|
|
ds 6
|
|
|
|
UNION ; d03e
|
|
; engine buffers
|
|
EngineBuffer1:: db
|
|
EngineBuffer2:: db
|
|
EngineBuffer3:: db
|
|
EngineBuffer4:: db
|
|
EngineBuffer5:: db
|
|
|
|
NEXTU ; d03e
|
|
; menu items list
|
|
MenuItemsList:: ds 16
|
|
MenuItemsListEnd::
|
|
|
|
NEXTU ; d03e
|
|
; fruit tree data
|
|
CurFruitTree:: db
|
|
CurFruit:: db
|
|
|
|
NEXTU ; d03e
|
|
; elevator data
|
|
wElevatorPointerBank:: db
|
|
wElevatorPointer:: dw
|
|
wElevatorOriginFloor:: db
|
|
|
|
NEXTU ; d03e
|
|
; coord event data
|
|
wCurCoordEventTriggerID:: db
|
|
wCurCoordEventMapY:: db
|
|
wCurCoordEventMapX:: db
|
|
ds 1
|
|
wCurCoordEventScriptAddr:: dw
|
|
|
|
NEXTU ; d03e
|
|
; signpost data
|
|
wCurSignpostYCoord:: db
|
|
wCurSignpostXCoord:: db
|
|
wCurSignpostType:: db
|
|
wCurSignpostScriptAddr:: dw
|
|
|
|
NEXTU ; d03e
|
|
; mart data
|
|
ds 1
|
|
MartPointerBank:: db
|
|
MartPointer:: dw
|
|
ds 1
|
|
wBargainShopFlags:: db
|
|
|
|
NEXTU ; d03e
|
|
; trainer data
|
|
ds 3
|
|
wTempTrainerHeader::
|
|
wTempTrainerEventFlag:: dw
|
|
wTempTrainerClass:: db
|
|
wTempTrainerID:: db
|
|
wSeenTextPointer:: dw
|
|
wWinTextPointer:: dw
|
|
wLossTextPointer:: dw
|
|
wScriptAfterPointer:: dw
|
|
wRunningTrainerBattleScript:: db
|
|
wTempTrainerHeaderEnd::
|
|
|
|
NEXTU ; d03e
|
|
; player movement data
|
|
CurInput:: db
|
|
wd03f:: db
|
|
wd040:: db
|
|
wd041:: db
|
|
MovementAnimation:: db
|
|
WalkingDirection:: db
|
|
FacingDirection:: db
|
|
WalkingX:: db
|
|
WalkingY:: db
|
|
WalkingTile:: db
|
|
ds 6
|
|
wPlayerTurningDirection:: db
|
|
|
|
NEXTU ; d03e
|
|
; std script buffer
|
|
ds 1
|
|
wJumpStdScriptBuffer:: ds 3
|
|
|
|
NEXTU ; d03e
|
|
; phone script pointer
|
|
ds 10
|
|
wPhoneScriptPointer:: dw
|
|
|
|
NEXTU ; d03e
|
|
; backup menu data
|
|
ds 7
|
|
wMenuCursorBufferBackup:: db
|
|
wMenuScrollPositionBackup:: db
|
|
ds 31
|
|
ENDU ; d066
|
|
ENDU ; d066
|
|
|
|
wTMHMMoveNameBackup:: ds MOVE_NAME_LENGTH ; d066
|
|
|
|
StringBuffer1:: ds 19 ; d073
|
|
StringBuffer2:: ds 19 ; d086
|
|
StringBuffer3:: ds 19 ; d099
|
|
StringBuffer4:: ds 19 ; d0ac
|
|
StringBuffer5:: ds 19 ; d0bf
|
|
|
|
wBattleMenuCursorBuffer:: dw ; d0d2
|
|
|
|
CurBattleMon:: db ; d0d4
|
|
CurMoveNum:: db ; d0d5
|
|
|
|
wLastPocket:: db
|
|
|
|
wPCItemsCursor:: db
|
|
wPartyMenuCursor:: db
|
|
wItemsPocketCursor:: db
|
|
wKeyItemsPocketCursor:: db
|
|
wBallsPocketCursor:: db
|
|
wTMHMPocketCursor:: db
|
|
|
|
wPCItemsScrollPosition:: db
|
|
wPartyMenuScrollPosition:: db ; unused
|
|
wItemsPocketScrollPosition:: db
|
|
wKeyItemsPocketScrollPosition:: db
|
|
wBallsPocketScrollPosition:: db
|
|
wTMHMPocketScrollPosition:: db
|
|
|
|
wSwitchMon::
|
|
wSwitchItem::
|
|
wMoveSwapBuffer::
|
|
wd0e3:: ds 1
|
|
|
|
wMenuScrollPosition:: ds 4
|
|
|
|
wQueuedScriptBank:: db
|
|
wQueuedScriptAddr:: dw
|
|
|
|
wNumMoves:: db
|
|
|
|
wFieldMoveSucceeded::
|
|
wItemEffectSucceeded::
|
|
wPlayerAction::
|
|
; 0 - use move
|
|
; 1 - use item
|
|
; 2 - switch
|
|
wSolvedUnownPuzzle::
|
|
db ; d0ec
|
|
|
|
VramState:: ; d0ed
|
|
; bit 0: overworld sprite updating on/off
|
|
; bit 6: something to do with text
|
|
; bit 7: on when surf initiates
|
|
; flickers when climbing waterfall
|
|
db
|
|
|
|
wBattleResult:: db ; d0ee
|
|
wUsingItemWithSelect:: db ; d0ef
|
|
|
|
UNION ; d0f0
|
|
; mart data
|
|
CurMart:: ds 16
|
|
CurMartEnd::
|
|
|
|
NEXTU ; d0f0
|
|
; elevator data
|
|
CurElevator:: db
|
|
CurElevatorFloors:: db
|
|
|
|
NEXTU ; d0f0
|
|
; mailbox data
|
|
ds 1
|
|
wCurMessageIndex:: db
|
|
wMailboxCount:: db
|
|
wMailboxItems:: ds MAILBOX_CAPACITY
|
|
wMailboxEnd:: ds 1 ; d0fe
|
|
ENDU ; d100
|
|
|
|
wListPointer:: dw ; d100
|
|
wUnusedD102:: dw ; d102
|
|
wItemAttributesPtr:: dw ; d104
|
|
|
|
CurItem:: db ; d106
|
|
CurItemQuantity:: ; d107
|
|
wMartItemID::
|
|
db
|
|
|
|
CurPartySpecies:: db ; d108
|
|
|
|
CurPartyMon:: ; d109
|
|
; contains which monster in a party
|
|
; is being dealt with at the moment
|
|
; 0-5
|
|
db
|
|
|
|
wWhichHPBar::
|
|
; 0: Enemy
|
|
; 1: Player
|
|
; 2: Party Menu
|
|
db
|
|
wPokemonWithdrawDepositParameter::
|
|
; 0: Take from PC
|
|
; 1: Put into PC
|
|
; 2: Take from Day-Care
|
|
; 3: Put into Day-Care
|
|
db
|
|
|
|
wItemQuantityChangeBuffer:: db
|
|
wItemQuantityBuffer:: db
|
|
|
|
TempMon:: party_struct TempMon ; d10e
|
|
|
|
wSpriteFlags:: db ; d13e
|
|
|
|
wHandlePlayerStep:: dw ; d13f
|
|
|
|
PartyMenuActionText:: db ; d141
|
|
|
|
wItemAttributeParamBuffer:: db ; d142
|
|
|
|
CurPartyLevel:: db ; d143
|
|
|
|
wScrollingMenuListSize:: dw
|
|
|
|
; used when following a map warp
|
|
; d146
|
|
wNextWarp:: db
|
|
wNextMapGroup:: db
|
|
wNextMapNumber:: db
|
|
wPrevWarp:: db
|
|
wPrevMapGroup:: db
|
|
wPrevMapNumber:: db
|
|
; d14c
|
|
|
|
wPlayerBGMapOffsetX:: db ; used in FollowNotExact; unit is pixels
|
|
wPlayerBGMapOffsetY:: db ; used in FollowNotExact; unit is pixels
|
|
|
|
; Player movement
|
|
wPlayerStepVectorX:: db ; d14e
|
|
wPlayerStepVectorY:: db ; d14f
|
|
wPlayerStepFlags:: db ; d150
|
|
wPlayerStepDirection:: ; d151
|
|
; bit 7: Start step
|
|
; bit 6: Stop step
|
|
; bit 5: Doing step
|
|
; bit 4: In midair
|
|
; bits 0-3: unused
|
|
db
|
|
|
|
wBGMapAnchor:: dw ; d152
|
|
|
|
UNION ; d154
|
|
UsedSprites:: ds 64
|
|
UsedSpritesEnd::
|
|
|
|
NEXTU ; d154
|
|
ds 31
|
|
wd173:: db ; related to command queue type 3
|
|
ENDU ; d194
|
|
|
|
wOverworldMapAnchor:: dw ; d194
|
|
wMetatileStandingY:: db ; d196
|
|
wMetatileStandingX:: db ; d197
|
|
|
|
wSecondMapHeaderBank:: db ; d198
|
|
wTileset:: db ; d199
|
|
wPermission:: db ; d19a
|
|
wSecondMapHeaderAddr:: dw ; d19b
|
|
|
|
; width/height are in blocks (2x2 walkable tiles, 4x4 graphics tiles)
|
|
MapHeader:: ; d19d
|
|
MapBorderBlock:: db ; d19d
|
|
MapHeight:: db ; d19e
|
|
MapWidth:: db ; d19f
|
|
MapBlockDataBank:: db; d1a0
|
|
MapBlockDataPointer:: dw ; d1a1
|
|
MapScriptHeaderBank:: db ; d1a3
|
|
MapScriptHeaderPointer:: dw ; d1a4
|
|
MapEventHeaderPointer:: dw ; d1a6
|
|
; bit set
|
|
MapConnections:: db ; d1a8
|
|
|
|
NorthMapConnection:: ; d1a9
|
|
NorthConnectedMapGroup:: db ; d1a9
|
|
NorthConnectedMapNumber:: db ; d1aa
|
|
NorthConnectionStripPointer:: dw ; d1ab
|
|
NorthConnectionStripLocation:: dw ; d1ad
|
|
NorthConnectionStripLength:: db ; d1af
|
|
NorthConnectedMapWidth:: db ; d1b0
|
|
NorthConnectionStripYOffset:: db ; d1b1
|
|
NorthConnectionStripXOffset:: db ; d1b2
|
|
NorthConnectionWindow:: dw ; d1b3
|
|
|
|
SouthMapConnection:: ; d1b5
|
|
SouthConnectedMapGroup:: db ; d1b5
|
|
SouthConnectedMapNumber:: db ; d1b6
|
|
SouthConnectionStripPointer:: dw ; d1b7
|
|
SouthConnectionStripLocation:: dw ; d1b9
|
|
SouthConnectionStripLength:: db ; d1bb
|
|
SouthConnectedMapWidth:: db ; d1bc
|
|
SouthConnectionStripYOffset:: db ; d1bd
|
|
SouthConnectionStripXOffset:: db ; d1be
|
|
SouthConnectionWindow:: dw ; d1bf
|
|
|
|
WestMapConnection:: ; d1c1
|
|
WestConnectedMapGroup:: db ; d1c1
|
|
WestConnectedMapNumber:: db ; d1c2
|
|
WestConnectionStripPointer:: dw ; d1c3
|
|
WestConnectionStripLocation:: dw ; d1c5
|
|
WestConnectionStripLength:: db ; d1c7
|
|
WestConnectedMapWidth:: db ; d1c8
|
|
WestConnectionStripYOffset:: db ; d1c9
|
|
WestConnectionStripXOffset:: db ; d1ca
|
|
WestConnectionWindow:: dw ; d1cb
|
|
|
|
EastMapConnection:: ; d1cd
|
|
EastConnectedMapGroup:: db ; d1cd
|
|
EastConnectedMapNumber:: db ; d1ce
|
|
EastConnectionStripPointer:: dw ; d1cf
|
|
EastConnectionStripLocation:: dw ; d1d1
|
|
EastConnectionStripLength:: db ; d1d3
|
|
EastConnectedMapWidth:: db ; d1d4
|
|
EastConnectionStripYOffset:: db ; d1d5
|
|
EastConnectionStripXOffset:: db ; d1d6
|
|
EastConnectionWindow:: dw ; d1d7
|
|
|
|
TilesetHeader::
|
|
TilesetBank:: db ; d1d9
|
|
TilesetAddress:: dw ; d1da
|
|
TilesetBlocksBank:: db ; d1dc
|
|
TilesetBlocksAddress:: dw ; d1dd
|
|
TilesetCollisionBank:: db ; d1df
|
|
TilesetCollisionAddress:: dw ; d1e0
|
|
TilesetAnim:: dw ; bank 3f ; d1e2
|
|
ds 2 ; unused ; d1e4
|
|
TilesetPalettes:: dw ; bank 3f ; d1e6
|
|
|
|
EvolvableFlags:: flag_array PARTY_LENGTH ; d1e8
|
|
|
|
wForceEvolution:: db ; d1e9
|
|
|
|
UNION ; d1ea
|
|
; general-purpose buffers
|
|
Buffer1:: db ; d1ea
|
|
Buffer2:: db ; d1eb
|
|
Buffer3:: db ; d1ec
|
|
Buffer4:: db ; d1ed
|
|
Buffer5:: db ; d1ee
|
|
Buffer6:: db ; d1ef
|
|
|
|
NEXTU ; d1ea
|
|
; HP bar animations
|
|
wCurHPAnimMaxHP:: dw ; d1ea
|
|
wCurHPAnimOldHP:: dw ; d1ec
|
|
wCurHPAnimNewHP:: dw ; d1ee
|
|
wCurHPAnimPal:: db ; d1f0
|
|
wCurHPBarPixels:: db ; d1f1
|
|
wNewHPBarPixels:: db ; d1f2
|
|
wCurHPAnimDeltaHP:: dw ; d1f3
|
|
wCurHPAnimLowHP:: db ; d1f5
|
|
wCurHPAnimHighHP:: db ; d1f6
|
|
|
|
NEXTU ; d1ea
|
|
; evolution data
|
|
wEvolutionOldSpecies:: db ; d1ea
|
|
wEvolutionNewSpecies:: db ; d1eb
|
|
wEvolutionPicOffset:: db ; d1ec
|
|
wEvolutionCanceled:: db ; d1ed
|
|
|
|
NEXTU ; d1ea
|
|
; mobile
|
|
ds 2
|
|
wd1ec:: ds 1
|
|
wd1ed:: ds 1
|
|
wd1ee:: ds 1
|
|
wd1ef:: ds 1
|
|
wd1f0:: ds 1
|
|
wd1f1:: ds 1
|
|
wd1f2:: ds 1
|
|
wd1f3:: ds 4
|
|
|
|
NEXTU ; d1ea
|
|
; miscellaneous
|
|
wMagikarpLength:: dw
|
|
wSelectedDecoration:: db
|
|
wOtherDecoration:: db
|
|
ds 3
|
|
CurEnemyItem:: db
|
|
ENDU ; d1f7
|
|
|
|
ds 3
|
|
|
|
LinkBattleRNs:: ds 10 ; d1fa
|
|
|
|
TempEnemyMonSpecies:: db ; d204
|
|
TempBattleMonSpecies:: db ; d205
|
|
|
|
EnemyMon:: battle_struct EnemyMon ; d206
|
|
EnemyMonBaseStats:: ds 5 ; d226
|
|
EnemyMonCatchRate:: db ; d22b
|
|
EnemyMonBaseExp:: db ; d22c
|
|
EnemyMonEnd::
|
|
|
|
|
|
wBattleMode:: ; d22d
|
|
; 0: overworld
|
|
; 1: wild battle
|
|
; 2: trainer battle
|
|
db
|
|
|
|
TempWildMonSpecies:: db
|
|
|
|
OtherTrainerClass:: ; d22f
|
|
; class (Youngster, Bug Catcher, etc.) of opposing trainer
|
|
; 0 if opponent is a wild Pokémon, not a trainer
|
|
db
|
|
|
|
; BATTLETYPE_* values
|
|
BattleType:: db ; d230
|
|
|
|
OtherTrainerID:: ; d231
|
|
; which trainer of the class that you're fighting
|
|
; (Joey, Mikey, Albert, etc.)
|
|
db
|
|
|
|
wForcedSwitch:: db
|
|
|
|
TrainerClass:: db ; d233
|
|
|
|
UnownLetter:: db ; d234
|
|
|
|
wMoveSelectionMenuType:: db
|
|
|
|
; corresponds to the data/base_stats/*.asm contents
|
|
CurBaseData:: ; d236
|
|
BaseDexNo:: db ; d236
|
|
BaseStats:: ; d237
|
|
BaseHP:: db ; d237
|
|
BaseAttack:: db ; d238
|
|
BaseDefense:: db ; d239
|
|
BaseSpeed:: db ; d23a
|
|
BaseSpecialAttack:: db ; d23b
|
|
BaseSpecialDefense:: db ; d23c
|
|
BaseType:: ; d23d
|
|
BaseType1:: db ; d23d
|
|
BaseType2:: db ; d23e
|
|
BaseCatchRate:: db ; d23f
|
|
BaseExp:: db ; d240
|
|
BaseItems:: dw ; d241
|
|
BaseGender:: db ; d243
|
|
BaseUnknown1:: db ; d244
|
|
BaseEggSteps:: db ; d245
|
|
BaseUnknown2:: db ; d246
|
|
BasePicSize:: db ; d247
|
|
BasePadding:: ds 4 ; d248
|
|
BaseGrowthRate:: db ; d24c
|
|
BaseEggGroups:: db ; d24d
|
|
BaseTMHM:: flag_array NUM_TM_HM_TUTOR ; d24e
|
|
|
|
CurDamage:: dw ; d256
|
|
|
|
ds 2
|
|
|
|
wMornEncounterRate:: db ; d25a
|
|
wDayEncounterRate:: db ; d25b
|
|
wNiteEncounterRate:: db ; d25c
|
|
wWaterEncounterRate:: db ; d25d
|
|
wListMoves_MoveIndicesBuffer:: ds NUM_MOVES
|
|
wPutativeTMHMMove:: db
|
|
wInitListType:: db
|
|
wBattleHasJustStarted:: db
|
|
|
|
wFoundMatchingIDInParty::
|
|
wNamedObjectIndexBuffer::
|
|
wCurTMHM::
|
|
wTypeMatchup::
|
|
wd265:: db
|
|
|
|
wFailedToFlee:: db
|
|
wNumFleeAttempts:: db
|
|
wMonTriedToEvolve:: db
|
|
|
|
TimeOfDay:: db ; d269
|
|
|
|
ds 1
|
|
|
|
|
|
SECTION "Enemy Party", WRAMX
|
|
|
|
UNION ; d26b
|
|
wPokedexShowPointerAddr::
|
|
wd26b:: ds 1
|
|
wd26c:: ds 1
|
|
wPokedexShowPointerBank::
|
|
wd26d:: ds 1
|
|
ds 3
|
|
wd271:: ds 5
|
|
|
|
NEXTU ; d26b
|
|
; SECTION "Enemy Party", WRAMX
|
|
OTPlayerName:: ds NAME_LENGTH ; d26b
|
|
ENDU ; d276
|
|
|
|
OTPlayerID:: ds 2 ; d276
|
|
ds 8
|
|
OTPartyCount:: ds 1 ; d280
|
|
OTPartySpecies:: ds PARTY_LENGTH ; d281
|
|
OTPartyEnd:: ds 1 ; legacy scripts don't check PartyCount
|
|
|
|
UNION ; d288
|
|
; catch tutorial dude pack
|
|
wDudeBag::
|
|
wDudeNumItems:: db
|
|
wDudeItems:: ds 2 * 4
|
|
wDudeItemsEnd:: db
|
|
|
|
wDudeNumKeyItems:: db ; d292
|
|
wDudeKeyItems:: ds 18
|
|
wDudeKeyItemsEnd:: db
|
|
|
|
wDudeNumBalls:: db ; d2a6
|
|
wDudeBalls:: ds 2 * 4 ; d2a7
|
|
wDudeBallsEnd:: db ; d2af
|
|
wDudeBagEnd::
|
|
|
|
NEXTU ; d288
|
|
; ot party mons
|
|
OTPartyMons::
|
|
OTPartyMon1:: party_struct OTPartyMon1 ; d288
|
|
OTPartyMon2:: party_struct OTPartyMon2 ; d2b8
|
|
OTPartyMon3:: party_struct OTPartyMon3 ; d2e8
|
|
OTPartyMon4:: party_struct OTPartyMon4 ; d318
|
|
OTPartyMon5:: party_struct OTPartyMon5 ; d348
|
|
OTPartyMon6:: party_struct OTPartyMon6 ; d378
|
|
OTPartyMonsEnd::
|
|
|
|
OTPartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; d3a8
|
|
OTPartyMonNicknames:: ds PKMN_NAME_LENGTH * PARTY_LENGTH ; d3ea
|
|
OTPartyDataEnd::
|
|
ds 4
|
|
ENDU ; d430
|
|
|
|
wd430::
|
|
wBattleAction:: db ; d430
|
|
|
|
wd431:: db
|
|
MapStatus:: db ; d432
|
|
MapEventStatus:: ; d433
|
|
; 0: do map events
|
|
; 1: do background events
|
|
db
|
|
|
|
ScriptFlags:: ; d434
|
|
; bit 3: priority jump
|
|
db
|
|
ScriptFlags2:: ; d435
|
|
db
|
|
ScriptFlags3:: ; d436
|
|
; bit 0: count steps
|
|
; bit 1: xy triggers
|
|
; bit 2: warps and connections
|
|
; bit 4: wild encounters
|
|
; bit 5: unknown
|
|
db
|
|
|
|
ScriptMode:: db ; d437
|
|
ScriptRunning:: db ; d438
|
|
ScriptBank:: db ; d439
|
|
ScriptPos:: dw ; d43a
|
|
|
|
wScriptStackSize:: db
|
|
wScriptStack:: ds 3 * 5
|
|
ds 1
|
|
ScriptDelay:: db ; d44d
|
|
|
|
wPriorityScriptBank::
|
|
wScriptTextBank:: db ; d44e
|
|
wPriorityScriptAddr::
|
|
wScriptTextAddr:: dw ; d44f
|
|
ds 1
|
|
wWildEncounterCooldown:: db ; d452
|
|
wXYComparePointer:: dw ; d453
|
|
ds 4
|
|
|
|
wBattleScriptFlags:: dw ; d459
|
|
wPlayerSpriteSetupFlags:: ; d45b
|
|
; bit 7: if set, cancel PlayerAction
|
|
; bit 5: if set, set facing according to bits 0-1
|
|
; bits 0-1: direction facing
|
|
db
|
|
wMapReentryScriptQueueFlag:: db ; d45c MemScriptFlag
|
|
wMapReentryScriptBank:: db ; d45d MemScriptBank
|
|
wMapReentryScriptAddress:: dw ; d45e MemScriptAddr
|
|
ds 4
|
|
wTimeCyclesSinceLastCall:: db ; d464
|
|
wReceiveCallDelay_MinsRemaining:: db ; d465
|
|
wReceiveCallDelay_StartTime:: ds 3 ; d466
|
|
ds 3
|
|
wBugContestMinsRemaining:: db ; d46c
|
|
wBugContestSecsRemaining:: db ; d46d
|
|
ds 2
|
|
wMapStatusEnd:: ds 2 ; d470
|
|
|
|
wCrystalData::
|
|
PlayerGender:: ; d472
|
|
; bit 0:
|
|
; 0 male
|
|
; 1 female
|
|
db
|
|
wd473:: ds 1
|
|
wd474:: ds 1
|
|
wd475:: ds 1
|
|
wd476:: ds 1
|
|
wd477:: ds 1
|
|
wd478:: ds 1
|
|
wCrystalDataEnd::
|
|
|
|
wd479:: ds 2
|
|
|
|
wGameData::
|
|
wPlayerData::
|
|
PlayerID:: ; d47b
|
|
dw
|
|
|
|
PlayerName:: ds NAME_LENGTH ; d47d
|
|
MomsName:: ds NAME_LENGTH ; d488
|
|
RivalName:: ds NAME_LENGTH ; d493
|
|
RedsName:: ds NAME_LENGTH ; d49e
|
|
GreensName:: ds NAME_LENGTH ; d4a9
|
|
|
|
wSavedAtLeastOnce:: db
|
|
wSpawnAfterChampion:: db
|
|
|
|
; init time set at newgame
|
|
StartDay:: db ; d4b6
|
|
StartHour:: db ; d4b7
|
|
StartMinute:: db ; d4b8
|
|
StartSecond:: db ; d4b9
|
|
|
|
wRTC:: ds 8 ; d4ba
|
|
wDST:: db ; d4c2
|
|
|
|
GameTimeCap:: db ; d4c3
|
|
GameTimeHours:: dw ; d4c4
|
|
GameTimeMinutes:: db ; d4c6
|
|
GameTimeSeconds:: db ; d4c7
|
|
GameTimeFrames:: db ; d4c8
|
|
|
|
ds 2
|
|
|
|
CurDay:: db ; d4cb
|
|
|
|
ds 1
|
|
|
|
wObjectFollow_Leader:: db
|
|
wObjectFollow_Follower:: db
|
|
wCenteredObject:: db
|
|
wFollowerMovementQueueLength:: db
|
|
wFollowMovementQueue:: ds 5
|
|
|
|
ObjectStructs:: ; d4d6
|
|
object_struct Player
|
|
object_struct Object1
|
|
object_struct Object2
|
|
object_struct Object3
|
|
object_struct Object4
|
|
object_struct Object5
|
|
object_struct Object6
|
|
object_struct Object7
|
|
object_struct Object8
|
|
object_struct Object9
|
|
object_struct Object10
|
|
object_struct Object11
|
|
object_struct Object12
|
|
ObjectStructsEnd:: ; d6de
|
|
|
|
wCmdQueue:: ds CMDQUEUE_CAPACITY * CMDQUEUE_ENTRY_SIZE
|
|
|
|
ds 40
|
|
|
|
MapObjects:: ; d71e
|
|
map_object Player
|
|
map_object Map1
|
|
map_object Map2
|
|
map_object Map3
|
|
map_object Map4
|
|
map_object Map5
|
|
map_object Map6
|
|
map_object Map7
|
|
map_object Map8
|
|
map_object Map9
|
|
map_object Map10
|
|
map_object Map11
|
|
map_object Map12
|
|
map_object Map13
|
|
map_object Map14
|
|
map_object Map15
|
|
MapObjectsEnd::
|
|
|
|
wObjectMasks:: ds NUM_OBJECTS ; d81e
|
|
|
|
VariableSprites:: ds 16; d82e
|
|
|
|
wEnteredMapFromContinue:: db ; d83e
|
|
ds 2
|
|
TimeOfDayPal:: db ; d841
|
|
ds 4
|
|
wTimeOfDayPalFlags:: db ; d846
|
|
wTimeOfDayPalset:: db
|
|
CurTimeOfDay:: db ; d848
|
|
|
|
ds 1
|
|
|
|
wSecretID:: dw
|
|
StatusFlags:: ; d84c
|
|
; 0 - pokedex
|
|
; 1 - unown dex
|
|
; 2 -
|
|
; 3 - pokerus
|
|
; 4 - rocket signal
|
|
; 5 - wild encounters on/off
|
|
; 6 - hall of fame
|
|
; 7 - bug contest on
|
|
db
|
|
|
|
StatusFlags2:: ; d84d
|
|
; 0 - rockets
|
|
; 1 -
|
|
; 2 - bug contest timer
|
|
; 3 -
|
|
; 4 - bike shop call
|
|
; 5 - pokerus
|
|
; 6 - berry juice?
|
|
; 7 - rockets in mahogany
|
|
db
|
|
|
|
Money:: ds 3 ; d84e
|
|
wMomsMoney:: ds 3 ; d851
|
|
wMomSavingMoney:: db ; d854
|
|
|
|
Coins:: dw ; d855
|
|
|
|
Badges::
|
|
JohtoBadges:: flag_array NUM_JOHTO_BADGES ; d857
|
|
KantoBadges:: flag_array NUM_KANTO_BADGES ; d858
|
|
|
|
|
|
TMsHMs:: ds NUM_TMS + NUM_HMS ; d859
|
|
TMsHMsEnd::
|
|
|
|
NumItems:: db ; d892
|
|
Items:: ds MAX_ITEMS * 2 + 1 ; d893
|
|
ItemsEnd::
|
|
|
|
NumKeyItems:: db ; d8bc
|
|
KeyItems:: ds MAX_KEY_ITEMS + 1 ; d8bd
|
|
KeyItemsEnd::
|
|
|
|
NumBalls:: db ; d8d7
|
|
Balls:: ds MAX_BALLS * 2 + 1 ; d8d8
|
|
BallsEnd::
|
|
|
|
PCItems:: ds MAX_PC_ITEMS * 2 + 1 ; d8f1
|
|
PCItemsEnd::
|
|
|
|
ds 1
|
|
|
|
wPokegearFlags::
|
|
; bit 0: map
|
|
; bit 1: radio
|
|
; bit 2: phone
|
|
; bit 3: expn
|
|
; bit 7: on/off
|
|
db
|
|
wRadioTuningKnob:: db
|
|
wLastDexMode:: db
|
|
ds 1
|
|
WhichRegisteredItem:: db ; d95b
|
|
RegisteredItem:: db ; d95c
|
|
|
|
PlayerState:: db ; d95d
|
|
|
|
wHallOfFameCount:: dw
|
|
wTradeFlags:: flag_array 6 ; d960
|
|
ds 1
|
|
MooMooBerries:: db ; d962
|
|
UndergroundSwitchPositions:: db ; d963
|
|
FarfetchdPosition:: db ; d964
|
|
|
|
ds 13
|
|
|
|
|
|
;SECTION "Map Triggers", WRAMX
|
|
|
|
wPokecenter2FTrigger:: db ; d972
|
|
wTradeCenterTrigger:: db ; d973
|
|
wColosseumTrigger:: db ; d974
|
|
wTimeCapsuleTrigger:: db ; d975
|
|
wPowerPlantTrigger:: db ; d976
|
|
wCeruleanGymTrigger:: db ; d977
|
|
wRoute25Trigger:: db ; d978
|
|
wTrainerHouseB1FTrigger:: db ; d979
|
|
wVictoryRoadGateTrigger:: db ; d97a
|
|
wSaffronTrainStationTrigger:: db ; d97b
|
|
wRoute16GateTrigger:: db ; d97c
|
|
wRoute1718GateTrigger:: db ; d97d
|
|
wIndigoPlateauPokecenter1FTrigger:: db ; d97e
|
|
wWillsRoomTrigger:: db ; d97f
|
|
wKogasRoomTrigger:: db ; d980
|
|
wBrunosRoomTrigger:: db ; d981
|
|
wKarensRoomTrigger:: db ; d982
|
|
wLancesRoomTrigger:: db ; d983
|
|
wHallOfFameTrigger:: db ; d984
|
|
wRoute27Trigger:: db ; d985
|
|
wNewBarkTownTrigger:: db ; d986
|
|
wElmsLabTrigger:: db ; d987
|
|
wKrissHouse1FTrigger:: db ; d988
|
|
wRoute29Trigger:: db ; d989
|
|
wCherrygroveCityTrigger:: db ; d98a
|
|
wMrPokemonsHouseTrigger:: db ; d98b
|
|
wRoute32Trigger:: db ; d98c
|
|
wRoute35NationalParkGateTrigger:: db ; d98d
|
|
wRoute36Trigger:: db ; d98e
|
|
wRoute36NationalParkGateTrigger:: db ; d98f
|
|
wAzaleaTownTrigger:: db ; d990
|
|
wGoldenrodGymTrigger:: db ; d991
|
|
wGoldenrodMagnetTrainStationTrigger:: db ; d992
|
|
wGoldenrodPokecenter1FTrigger:: db ; d993
|
|
wOlivineCityTrigger:: db ; d994
|
|
wRoute34Trigger:: db ; d995
|
|
wRoute34IlexForestGateTrigger:: db ; d996
|
|
wEcruteakHouseTrigger:: db ; d997
|
|
wWiseTriosRoomTrigger:: db ; d998
|
|
wEcruteakPokecenter1FTrigger:: db ; d999
|
|
wEcruteakGymTrigger:: db ; d99a
|
|
wMahoganyTownTrigger:: db ; d99b
|
|
wRoute42Trigger:: db ; d99c
|
|
wCianwoodCityTrigger:: db ; d99d
|
|
wBattleTower1FTrigger:: db ; d99e
|
|
wBattleTowerBattleRoomTrigger:: db ; d99f
|
|
wBattleTowerElevatorTrigger:: db ; d9a0
|
|
wBattleTowerHallwayTrigger:: db ; d9a1
|
|
wBattleTowerOutsideTrigger:: db ; d9a2
|
|
wRoute43GateTrigger:: db ; d9a3
|
|
wMountMoonTrigger:: db ; d9a4
|
|
wSproutTower3FTrigger:: db ; d9a5
|
|
wTinTower1FTrigger:: db ; d9a6
|
|
wBurnedTower1FTrigger:: db ; d9a7
|
|
wBurnedTowerB1FTrigger:: db ; d9a8
|
|
wRadioTower5FTrigger:: db ; d9a9
|
|
wRuinsOfAlphOutsideTrigger:: db ; d9aa
|
|
wRuinsOfAlphResearchCenterTrigger:: db ; d9ab
|
|
wRuinsOfAlphHoOhChamberTrigger:: db ; d9ac
|
|
wRuinsOfAlphKabutoChamberTrigger:: db ; d9ad
|
|
wRuinsOfAlphOmanyteChamberTrigger:: db ; d9ae
|
|
wRuinsOfAlphAerodactylChamberTrigger:: db ; d9af
|
|
wRuinsOfAlphInnerChamberTrigger:: db ; d9b0
|
|
wMahoganyMart1FTrigger:: db ; d9b1
|
|
wTeamRocketBaseB1FTrigger:: db ; d9b2
|
|
wTeamRocketBaseB2FTrigger:: db ; d9b3
|
|
wTeamRocketBaseB3FTrigger:: db ; d9b4
|
|
wUndergroundPathSwitchRoomEntrancesTrigger:: db ; d9b5
|
|
wSilverCaveRoom3Trigger:: db ; d9b6
|
|
wVictoryRoadTrigger:: db ; d9b7
|
|
wDragonsDenB1FTrigger:: db ; d9b8
|
|
wDragonShrineTrigger:: db ; d9b9
|
|
wOlivinePortTrigger:: db ; d9ba
|
|
wVermilionPortTrigger:: db ; d9bb
|
|
wFastShip1FTrigger:: db ; d9bc
|
|
wFastShipB1FTrigger:: db ; d9bd
|
|
wMountMoonSquareTrigger:: db ; d9be
|
|
wMobileTradeRoomMobileTrigger:: db ; d9bf
|
|
wMobileBattleRoomTrigger:: db ; d9c0
|
|
|
|
ds 49
|
|
|
|
|
|
;SECTION "Events", WRAMX
|
|
|
|
wJackFightCount:: db ; d9f2
|
|
wBeverlyFightCount:: db ; unused
|
|
wHueyFightCount:: db
|
|
wGavenFightCount:: db
|
|
wBethFightCount:: db
|
|
wJoseFightCount:: db
|
|
wReenaFightCount:: db
|
|
wJoeyFightCount:: db
|
|
wWadeFightCount:: db
|
|
wRalphFightCount:: db
|
|
wLizFightCount:: db
|
|
wAnthonyFightCount:: db
|
|
wToddFightCount:: db
|
|
wGinaFightCount:: db
|
|
wIrwinFightCount:: db ; unused
|
|
wArnieFightCount:: db
|
|
wAlanFightCount:: db
|
|
wDanaFightCount:: db
|
|
wChadFightCount:: db
|
|
wDerekFightCount:: db ; unused
|
|
wTullyFightCount:: db
|
|
wBrentFightCount:: db
|
|
wTiffanyFightCount:: db
|
|
wVanceFightCount:: db
|
|
wWiltonFightCount:: db
|
|
wKenjiFightCount:: db ; unused
|
|
wParryFightCount:: db
|
|
wErinFightCount:: db
|
|
; da0e
|
|
ds 100
|
|
|
|
EventFlags:: flag_array NUM_EVENTS ; da72
|
|
; db6c
|
|
|
|
ds 6
|
|
|
|
wCurBox:: db ; db72
|
|
|
|
ds 2
|
|
|
|
; 8 chars + $50
|
|
wBoxNames:: ds BOX_NAME_LENGTH * NUM_BOXES ; db75
|
|
|
|
wCelebiEvent:: db
|
|
|
|
ds 1
|
|
|
|
BikeFlags:: ; dbf5
|
|
; bit 0: using strength
|
|
; bit 1: always on bike
|
|
; bit 2: downhill
|
|
db
|
|
|
|
ds 1
|
|
|
|
wCurrentMapTriggerPointer:: dw ; dbf7
|
|
|
|
wCurrentCaller:: dw ; dbf9
|
|
wCurrMapWarpCount:: db ; dbfb
|
|
wCurrMapWarpHeaderPointer:: dw ; dbfc
|
|
wCurrentMapXYTriggerCount:: db ; dbfe
|
|
wCurrentMapXYTriggerHeaderPointer:: dw ; dbff
|
|
wCurrentMapSignpostCount:: db ; dc01
|
|
wCurrentMapSignpostHeaderPointer:: dw ; dc02
|
|
wCurrentMapPersonEventCount:: db ; dc04
|
|
wCurrentMapPersonEventHeaderPointer:: dw ; dc05
|
|
wCurrMapTriggerCount:: db ; dc07
|
|
wCurrMapTriggerHeaderPointer:: dw ; dc08
|
|
wCurrMapCallbackCount:: db ; dc0a
|
|
wCurrMapCallbackHeaderPointer:: dw ; dc0b
|
|
|
|
ds 2
|
|
|
|
; Sprite id of each decoration
|
|
Bed:: db ; dc0f
|
|
Carpet:: db ; dc10
|
|
Plant:: db ; dc11
|
|
Poster:: db ; dc12
|
|
Console:: db ; dc13
|
|
LeftOrnament:: db ; dc14
|
|
RightOrnament:: db ; dc15
|
|
BigDoll:: db ; dc16
|
|
|
|
; Items bought from Mom
|
|
wWhichMomItem:: db ; dc17
|
|
wWhichMomItemSet:: db ; dc18
|
|
MomItemTriggerBalance:: ds 3 ; dc19
|
|
|
|
wDailyResetTimer:: dw ; dc1c
|
|
DailyFlags:: db
|
|
WeeklyFlags:: db
|
|
SwarmFlags:: db
|
|
ds 2
|
|
wStartDay:: db
|
|
ds 3
|
|
|
|
FruitTreeFlags:: flag_array NUM_FRUIT_TREES ; dc27
|
|
|
|
ds 2
|
|
|
|
wLuckyNumberDayBuffer:: dw ; dc2d
|
|
ds 2
|
|
wSpecialPhoneCallID:: db ; dc31
|
|
ds 3
|
|
wBugContestStartTime:: ds 4 ; day, hour, min, sec ; dc35
|
|
wUnusedTwoDayTimerOn:: db ; dc39
|
|
wUnusedTwoDayTimer:: db
|
|
wUnusedTwoDayTimerStartDate:: db
|
|
ds 4
|
|
wMobileOrCable_LastSelection:: db
|
|
wdc41:: ds 1
|
|
wdc42:: ds 8
|
|
wBuenasPassword:: db
|
|
wBlueCardBalance:: db
|
|
wDailyRematchFlags:: ds 4
|
|
wDailyPhoneItemFlags:: ds 4
|
|
wDailyPhoneTimeOfDayFlags:: ds 4
|
|
wKenjiBreakTimer:: ds 2 ; Kenji
|
|
wYanmaMapGroup:: db ; dc5a
|
|
wYanmaMapNumber:: db
|
|
wPlayerMonSelection:: ds 3
|
|
wdc5f:: ds 1
|
|
wdc60:: ds 19
|
|
|
|
StepCount:: db ; dc73
|
|
PoisonStepCount:: db ; dc74
|
|
ds 2
|
|
wHappinessStepCount:: db
|
|
ds 1
|
|
|
|
wParkBallsRemaining::
|
|
wSafariBallsRemaining:: db ; dc79
|
|
wSafariTimeRemaining:: dw ; dc7a
|
|
|
|
wPhoneList:: ds CONTACT_LIST_SIZE ; dc7c
|
|
; dc86
|
|
ds 23
|
|
|
|
wLuckyNumberShowFlag:: dw ; dc9d
|
|
wLuckyIDNumber:: dw ; dc9f
|
|
|
|
wRepelEffect:: db ; If a Repel is in use, it contains the nr of steps it's still active
|
|
wBikeStep:: dw
|
|
wKurtApricornQuantity:: db
|
|
|
|
wPlayerDataEnd::
|
|
|
|
|
|
wMapData::
|
|
|
|
VisitedSpawns:: flag_array NUM_SPAWNS ; dca5
|
|
|
|
wDigWarpNumber:: db ; dcaa
|
|
wDigMapGroup:: db ; dcab
|
|
wDigMapNumber:: db ; dcac
|
|
|
|
; used on maps like second floor pokécenter, which are reused, so we know which
|
|
; map to return to
|
|
BackupWarpNumber:: db ; dcad
|
|
BackupMapGroup:: db ; dcae
|
|
BackupMapNumber:: db ; dcaf
|
|
|
|
ds 3
|
|
|
|
wLastSpawnMapGroup:: db
|
|
wLastSpawnMapNumber:: db
|
|
|
|
WarpNumber:: db ; dcb4
|
|
MapGroup:: db ; dcb5 ; map group of current map
|
|
MapNumber:: db ; dcb6 ; map number of current map
|
|
YCoord:: db ; dcb7 ; current y coordinate relative to top-left corner of current map
|
|
XCoord:: db ; dcb8 ; current x coordinate relative to top-left corner of current map
|
|
wScreenSave:: ds 6 * 5
|
|
|
|
wMapDataEnd::
|
|
|
|
|
|
SECTION "Party", WRAMX
|
|
|
|
wPokemonData::
|
|
|
|
PartyCount:: db ; dcd7 ; number of Pokémon in party
|
|
PartySpecies:: ds PARTY_LENGTH ; dcd8 ; species of each Pokémon in party
|
|
PartyEnd:: db ; dcde ; legacy scripts don't check PartyCount
|
|
|
|
PartyMons::
|
|
PartyMon1:: party_struct PartyMon1 ; dcdf
|
|
PartyMon2:: party_struct PartyMon2 ; dd0f
|
|
PartyMon3:: party_struct PartyMon3 ; dd3f
|
|
PartyMon4:: party_struct PartyMon4 ; dd6f
|
|
PartyMon5:: party_struct PartyMon5 ; dd9f
|
|
PartyMon6:: party_struct PartyMon6 ; ddcf
|
|
|
|
PartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; ddff
|
|
|
|
PartyMonNicknames:: ds PKMN_NAME_LENGTH * PARTY_LENGTH ; de41
|
|
PartyMonNicknamesEnd::
|
|
|
|
ds 22
|
|
|
|
|
|
PokedexCaught:: flag_array NUM_POKEMON ; de99
|
|
EndPokedexCaught::
|
|
|
|
PokedexSeen:: flag_array NUM_POKEMON ; deb9
|
|
EndPokedexSeen::
|
|
|
|
UnownDex:: ds NUM_UNOWN ; ded9
|
|
UnlockedUnowns:: db ; def3
|
|
wFirstUnownSeen:: db
|
|
|
|
wDayCareMan:: ; def5
|
|
; bit 7: active
|
|
; bit 6: monsters are compatible
|
|
; bit 5: egg ready
|
|
; bit 0: monster 1 in day-care
|
|
db
|
|
|
|
wBreedMon1::
|
|
wBreedMon1Nick:: ds PKMN_NAME_LENGTH ; def6
|
|
wBreedMon1OT:: ds NAME_LENGTH ; df01
|
|
wBreedMon1Stats:: box_struct wBreedMon1 ; df0c
|
|
|
|
wDayCareLady:: ; df2c
|
|
; bit 7: active
|
|
; bit 0: monster 2 in day-care
|
|
db
|
|
|
|
wStepsToEgg:: ; df2d
|
|
db
|
|
wBreedMotherOrNonDitto:: ; df2e
|
|
; z: yes
|
|
; nz: no
|
|
db
|
|
|
|
wBreedMon2::
|
|
wBreedMon2Nick:: ds PKMN_NAME_LENGTH ; df2f
|
|
wBreedMon2OT:: ds NAME_LENGTH ; df3a
|
|
wBreedMon2Stats:: box_struct wBreedMon2 ; df45
|
|
|
|
wEggNick:: ds PKMN_NAME_LENGTH ; df65
|
|
wEggOT:: ds NAME_LENGTH ; df70
|
|
wEggMon:: box_struct wEggMon ; df7b
|
|
|
|
wBugContestSecondPartySpecies:: db
|
|
wContestMon:: party_struct wContestMon ; df9c
|
|
|
|
wDunsparceMapGroup:: db
|
|
wDunsparceMapNumber:: db
|
|
wFishingSwarmFlag:: db
|
|
|
|
wRoamMon1:: roam_struct wRoamMon1 ; dfcf
|
|
wRoamMon2:: roam_struct wRoamMon2 ; dfd6
|
|
wRoamMon3:: roam_struct wRoamMon3 ; dfdd
|
|
|
|
wRoamMons_CurrentMapNumber:: db
|
|
wRoamMons_CurrentMapGroup:: db
|
|
wRoamMons_LastMapNumber:: db
|
|
wRoamMons_LastMapGroup:: db
|
|
wBestMagikarpLengthFeet:: db
|
|
wBestMagikarpLengthInches:: db
|
|
wMagikarpRecordHoldersName:: ds NAME_LENGTH
|
|
; dff5
|
|
wPokemonDataEnd::
|
|
wGameDataEnd::
|
|
|
|
|
|
SECTION "Pic Animations", WRAMX
|
|
|
|
TempTileMap::
|
|
; 20x18 grid of 8x8 tiles
|
|
ds SCREEN_WIDTH * SCREEN_HEIGHT ; $168 = 360
|
|
|
|
; PokeAnim Header
|
|
wPokeAnimSceneIndex:: db
|
|
wPokeAnimPointer:: dw
|
|
wPokeAnimSpecies:: db
|
|
wPokeAnimUnownLetter:: db
|
|
wPokeAnimSpeciesOrUnown:: db
|
|
wPokeAnimGraphicStartTile:: db
|
|
wPokeAnimCoord:: dw
|
|
wPokeAnimFrontpicHeight:: db
|
|
; PokeAnim Data
|
|
wPokeAnimExtraFlag:: db
|
|
wPokeAnimSpeed:: db
|
|
wPokeAnimPointerBank:: db
|
|
wPokeAnimPointerAddr:: dw
|
|
wPokeAnimFramesBank:: db
|
|
wPokeAnimFramesAddr:: dw
|
|
wPokeAnimBitmaskBank:: db
|
|
wPokeAnimBitmaskAddr:: dw
|
|
wPokeAnimFrame:: db
|
|
wPokeAnimJumptableIndex:: db
|
|
wPokeAnimRepeatTimer:: db
|
|
wPokeAnimCurBitmask:: db
|
|
wPokeAnimWaitCounter:: db
|
|
wPokeAnimCommand:: db
|
|
wPokeAnimParameter:: db
|
|
ds 1
|
|
wPokeAnimBitmaskCurCol:: db
|
|
wPokeAnimBitmaskCurRow:: db
|
|
wPokeAnimBitmaskCurBit:: db
|
|
wPokeAnimBitmaskBuffer:: ds 7
|
|
ds 2
|
|
wPokeAnimStructEnd::
|
|
|
|
|
|
SECTION "Battle Tower", WRAMX
|
|
|
|
w3_d000:: ds 1 ; d000
|
|
w3_d001:: ds 1
|
|
w3_d002::
|
|
ds $7e
|
|
w3_d080::
|
|
ds $10
|
|
w3_d090::
|
|
ds $70
|
|
|
|
w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + $24)
|
|
BT_OTTrainer:: battle_tower_struct BT_OT
|
|
; d1e0
|
|
ds $20
|
|
; d200
|
|
BT_TrainerTextIndex:: ds 2
|
|
w3_d202:: battle_tower_struct w3_d202
|
|
w3_d2e2:: battle_tower_struct w3_d2e2
|
|
w3_d3c2:: battle_tower_struct w3_d3c2
|
|
w3_d4a2:: battle_tower_struct w3_d4a2
|
|
w3_d582:: battle_tower_struct w3_d582
|
|
w3_d662:: battle_tower_struct w3_d662
|
|
UNION ; d742
|
|
w3_d742:: battle_tower_struct w3_d742
|
|
; d822
|
|
|
|
NEXTU ; d742
|
|
ds $be
|
|
|
|
wBTChoiceOfLvlGroup::
|
|
w3_d800:: ; ds BG_MAP_WIDTH * SCREEN_HEIGHT ($240)
|
|
ds $69
|
|
ENDU ; d869
|
|
w3_d869:: ds $17
|
|
w3_d880:: ds 1
|
|
w3_d881:: ds 1
|
|
w3_d882:: ds 1
|
|
w3_d883:: ds 7
|
|
w3_d88a:: ds 5
|
|
w3_d88f:: ds 5
|
|
w3_d894:: ds 1
|
|
w3_d895:: ds 11
|
|
w3_d8a0:: ds 1
|
|
w3_d8a1:: ds 1
|
|
w3_d8a2:: ds 1
|
|
w3_d8a3:: ds $19d
|
|
w3_da40:: ds $1c0
|
|
|
|
w3_dc00:: ds SCREEN_WIDTH * SCREEN_HEIGHT
|
|
w3_dd68:: ds SCREEN_WIDTH * SCREEN_HEIGHT
|
|
ds $11c
|
|
w3_dfec:: ds $10
|
|
w3_dffc:: ds 4
|
|
|
|
|
|
SECTION "GBC Video", WRAMX
|
|
|
|
; eight 4-color palettes each
|
|
UnknBGPals:: ds 8 palettes ; d000
|
|
UnknOBPals:: ds 8 palettes ; d040
|
|
BGPals:: ds 8 palettes ; d080
|
|
OBPals:: ds 8 palettes ; d0c0
|
|
|
|
LYOverrides:: ds SCREEN_HEIGHT_PX ; d100
|
|
LYOverridesEnd:: ; d190
|
|
|
|
ds 1
|
|
|
|
wMagnetTrainDirection:: db
|
|
wMagnetTrainInitPosition:: db
|
|
wMagnetTrainHoldPosition:: db
|
|
wMagnetTrainFinalPosition:: db
|
|
wMagnetTrainPlayerSpriteInitX:: db
|
|
|
|
ds 106
|
|
|
|
LYOverridesBackup:: ds SCREEN_HEIGHT_PX ; d200
|
|
LYOverridesBackupEnd::
|
|
|
|
|
|
SECTION "Battle Animations", WRAMX
|
|
|
|
wBattleAnimTileDict:: ds 10
|
|
|
|
ActiveAnimObjects:: ; d30a
|
|
AnimObject01:: battle_anim_struct AnimObject01
|
|
AnimObject02:: battle_anim_struct AnimObject02
|
|
AnimObject03:: battle_anim_struct AnimObject03
|
|
AnimObject04:: battle_anim_struct AnimObject04
|
|
AnimObject05:: battle_anim_struct AnimObject05
|
|
AnimObject06:: battle_anim_struct AnimObject06
|
|
AnimObject07:: battle_anim_struct AnimObject07
|
|
AnimObject08:: battle_anim_struct AnimObject08
|
|
AnimObject09:: battle_anim_struct AnimObject09
|
|
AnimObject10:: battle_anim_struct AnimObject10
|
|
ActiveAnimObjectsEnd:: ; d3aa
|
|
|
|
ActiveBGEffects:: ; d3fa
|
|
BGEffect1:: battle_bg_effect BGEffect1
|
|
BGEffect2:: battle_bg_effect BGEffect2
|
|
BGEffect3:: battle_bg_effect BGEffect3
|
|
BGEffect4:: battle_bg_effect BGEffect4
|
|
BGEffect5:: battle_bg_effect BGEffect5
|
|
ActiveBGEffectsEnd::
|
|
|
|
wNumActiveBattleAnims:: db ; d40e
|
|
|
|
BattleAnimFlags:: db ; d40f
|
|
BattleAnimAddress:: dw ; d410
|
|
BattleAnimDuration:: db ; d412
|
|
BattleAnimParent:: dw ; d413
|
|
BattleAnimLoops:: db ; d415
|
|
BattleAnimVar:: db ; d416
|
|
BattleAnimByte:: db ; d417
|
|
wBattleAnimOAMPointerLo:: db ; d418
|
|
BattleAnimTemps:: ; d419
|
|
wBattleAnimTempOAMFlags::
|
|
wBattleAnimTemp0:: db
|
|
wBattleAnimTemp1:: db
|
|
wBattleAnimTempTileID::
|
|
wBattleAnimTemp2:: db
|
|
wBattleAnimTempXCoord::
|
|
wBattleAnimTemp3:: db
|
|
wBattleAnimTempYCoord::
|
|
wBattleAnimTemp4:: db
|
|
wBattleAnimTempXOffset::
|
|
wBattleAnimTemp5:: db
|
|
wBattleAnimTempYOffset::
|
|
wBattleAnimTemp6:: db
|
|
wBattleAnimTemp7:: db
|
|
wBattleAnimTempPalette::
|
|
wBattleAnimTemp8:: db
|
|
|
|
UNION ; d422
|
|
wSurfWaveBGEffect:: ds $40
|
|
wSurfWaveBGEffectEnd::
|
|
|
|
NEXTU ; d422
|
|
ds $32
|
|
wBattleAnimEnd::
|
|
ENDU ; d462
|
|
|
|
|
|
SECTION "WRAM 5 MOBILE", WRAMX
|
|
|
|
w5_d800:: ds $200
|
|
w5_da00:: ds $200
|
|
w5_dc00:: ds $d
|
|
w5_dc0d:: ds 4
|
|
w5_dc11:: ds 9
|
|
w5_MobileOpponentBattleMessages:: ds $c ; dc1a
|
|
w5_MobileOpponentBattleStartMessage:: ds $c ; dc26
|
|
w5_MobileOpponentBattleWinMessage:: ds $c ; dc32
|
|
w5_MobileOpponentBattleLossMessage:: ds $c ; dc3e
|
|
|
|
|
|
SECTION "WRAM 6", WRAMX
|
|
|
|
UNION ; d000
|
|
wScratchTileMap:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
|
|
wScratchAttrMap:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
|
|
|
|
NEXTU ; d000
|
|
wDecompressScratch:: ds $80 tiles
|
|
wDecompressEnemyFrontpic:: ds $80 tiles
|
|
ENDU ; e000
|
|
|
|
|
|
SECTION "WRAM 7", WRAMX
|
|
|
|
wWindowStack:: ds $1000 - 1
|
|
wWindowStackBottom:: ds 1
|
|
|
|
|
|
INCLUDE "sram.asm"
|