mirror of https://github.com/pret/pokecrystal.git
2276 lines
31 KiB
NASM
2276 lines
31 KiB
NASM
INCLUDE "includes.asm"
|
|
|
|
|
|
party_struct: MACRO
|
|
|
|
\1Species:: db
|
|
\1Item:: db
|
|
|
|
\1Moves::
|
|
\1Move1:: db
|
|
\1Move2:: db
|
|
\1Move3:: db
|
|
\1Move4:: db
|
|
|
|
\1ID:: dw
|
|
\1Exp:: ds 3 ; Big endian
|
|
\1StatExp::
|
|
\1HPExp:: dw
|
|
\1AtkExp:: dw
|
|
\1DefExp:: dw
|
|
\1SpdExp:: dw
|
|
\1SpclExp:: dw
|
|
|
|
\1DVs::
|
|
\1AtkDefDV:: db
|
|
\1SpdSpcDV:: db
|
|
|
|
\1PP::
|
|
\1PPMove1:: db
|
|
\1PPMove2:: db
|
|
\1PPMove3:: db
|
|
\1PPMove4:: db
|
|
|
|
\1Happiness:: db
|
|
\1PokerusStatus:: db
|
|
|
|
\1CaughtData::
|
|
\1CaughtTime::
|
|
\1CaughtLevel:: db
|
|
\1CaughtGender::
|
|
\1CaughtLocation:: db
|
|
|
|
\1Level:: db
|
|
|
|
\1Status:: db
|
|
\1Unused:: db
|
|
|
|
; Stats are big endian.
|
|
\1HP:: dw
|
|
\1MaxHP:: dw
|
|
\1Attack:: dw
|
|
\1Defense:: dw
|
|
\1Speed:: dw
|
|
\1SpclAtk:: dw
|
|
\1SpclDef:: dw
|
|
|
|
ENDM
|
|
|
|
|
|
SECTION "tiles0",VRAM[$8000],BANK[0]
|
|
VTiles0::
|
|
SECTION "tiles1",VRAM[$8800],BANK[0]
|
|
VTiles1::
|
|
SECTION "tiles2",VRAM[$9000],BANK[0]
|
|
VTiles2::
|
|
SECTION "bgmap0",VRAM[$9800],BANK[0]
|
|
VBGMap0::
|
|
SECTION "bgmap1",VRAM[$9C00],BANK[0]
|
|
VBGMap1::
|
|
|
|
|
|
|
|
SECTION "WRAMBank0",WRAM0[$c000]
|
|
|
|
SECTION "stack",WRAM0[$c0ff]
|
|
Stack:: ; c0ff
|
|
ds -$100
|
|
|
|
|
|
SECTION "audio",WRAM0[$c100]
|
|
MusicPlaying:: ; c100
|
|
; nonzero if playing
|
|
ds 1
|
|
|
|
Channels::
|
|
Channel1::
|
|
Channel1MusicID:: ; c101
|
|
ds 2
|
|
Channel1MusicBank:: ; c103
|
|
ds 1
|
|
Channel1Flags:: ; c104
|
|
; 0: on/off
|
|
; 1: subroutine
|
|
; 2:
|
|
; 3:
|
|
; 4: noise sampling on/off
|
|
; 5:
|
|
; 6:
|
|
; 7:
|
|
ds 1
|
|
Channel1Flags2:: ; c105
|
|
; 0: vibrato on/off
|
|
; 1:
|
|
; 2: duty cycle on/off
|
|
; 3:
|
|
; 4:
|
|
; 5:
|
|
; 6:
|
|
; 7:
|
|
ds 1
|
|
Channel1Flags3:: ; c106
|
|
; 0: vibrato up/down
|
|
; 1:
|
|
; 2:
|
|
; 3:
|
|
; 4:
|
|
; 5:
|
|
; 6:
|
|
; 7:
|
|
ds 1
|
|
Channel1MusicAddress:: ; c107
|
|
ds 2
|
|
Channel1LastMusicAddress:: ; c109
|
|
ds 2
|
|
; could have been meant as a third-level address
|
|
ds 2
|
|
Channel1NoteFlags:: ; c10d
|
|
; 0:
|
|
; 1:
|
|
; 2:
|
|
; 3:
|
|
; 4:
|
|
; 5: rest
|
|
; 6:
|
|
; 7:
|
|
ds 1
|
|
Channel1Condition:: ; c10e
|
|
; used for conditional jumps
|
|
ds 1
|
|
Channel1DutyCycle:: ; c10f
|
|
; uses top 2 bits only
|
|
; 0: 12.5%
|
|
; 1: 25%
|
|
; 2: 50%
|
|
; 3: 75%
|
|
ds 1
|
|
Channel1Intensity:: ; c110
|
|
; hi: pressure
|
|
; lo: velocity
|
|
ds 1
|
|
Channel1Frequency::
|
|
; 11 bits
|
|
Channel1FrequencyLo:: ; c111
|
|
ds 1
|
|
Channel1FrequencyHi:: ; c112
|
|
ds 1
|
|
Channel1Pitch:: ; c113
|
|
; 0: rest
|
|
; 1: C
|
|
; 2: C#
|
|
; 3: D
|
|
; 4: D#
|
|
; 5: E
|
|
; 6: F
|
|
; 7: F#
|
|
; 8: G
|
|
; 9: G#
|
|
; a: A
|
|
; b: A#
|
|
; c: B
|
|
ds 1
|
|
Channel1Octave:: ; c114
|
|
; 0: highest
|
|
; 7: lowest
|
|
ds 1
|
|
Channel1StartingOctave:: ; c115
|
|
; raises existing octaves by this value
|
|
; used for repeating phrases in a higher octave to save space
|
|
ds 1
|
|
Channel1NoteDuration:: ; c116
|
|
; number of frames remaining in the current note
|
|
ds 1
|
|
; c117
|
|
ds 1
|
|
; c118
|
|
ds 1
|
|
Channel1LoopCount:: ; c119
|
|
ds 1
|
|
Channel1Tempo:: ; c11a
|
|
ds 2
|
|
Channel1Tracks:: ; c11c
|
|
; hi: l
|
|
; lo: r
|
|
ds 1
|
|
; c11d
|
|
ds 1
|
|
|
|
Channel1VibratoDelayCount:: ; c11e
|
|
; initialized at the value in VibratoDelay
|
|
; decrements each frame
|
|
; at 0, vibrato starts
|
|
ds 1
|
|
Channel1VibratoDelay:: ; c11f
|
|
; number of frames a note plays until vibrato starts
|
|
ds 1
|
|
Channel1VibratoExtent:: ; c120
|
|
; difference in
|
|
ds 1
|
|
Channel1VibratoRate:: ; c121
|
|
; counts down from a max of 15 frames
|
|
; over which the pitch is alternated
|
|
; hi: init frames
|
|
; lo: frame count
|
|
ds 1
|
|
|
|
; c122
|
|
ds 1
|
|
; c123
|
|
ds 1
|
|
; c124
|
|
ds 1
|
|
; c125
|
|
ds 1
|
|
; c126
|
|
ds 1
|
|
; c127
|
|
ds 1
|
|
Channel1CryPitch:: ; c128
|
|
ds 1
|
|
Channel1CryEcho:: ; c129
|
|
ds 1
|
|
ds 4
|
|
Channel1NoteLength:: ; c12e
|
|
; # frames per 16th note
|
|
ds 1
|
|
; c12f
|
|
ds 1
|
|
; c130
|
|
ds 1
|
|
; c131
|
|
ds 1
|
|
; c132
|
|
ds 1
|
|
; end
|
|
|
|
Channel2:: ; c133
|
|
ds 50
|
|
Channel3:: ; c165
|
|
ds 50
|
|
Channel4:: ; c197
|
|
ds 50
|
|
|
|
SFXChannels::
|
|
Channel5:: ; c1c9
|
|
ds 50
|
|
Channel6:: ; c1fb
|
|
ds 50
|
|
Channel7:: ; c22d
|
|
ds 50
|
|
Channel8:: ; c25f
|
|
ds 50
|
|
|
|
; c291
|
|
ds 1
|
|
; c292
|
|
ds 1
|
|
; c293
|
|
ds 1
|
|
; c294
|
|
ds 1
|
|
; c295
|
|
ds 1
|
|
; c296
|
|
ds 1
|
|
; c297
|
|
ds 1
|
|
|
|
CurMusicByte:: ; c298
|
|
ds 1
|
|
CurChannel:: ; c299
|
|
ds 1
|
|
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)
|
|
ds 1
|
|
SoundOutput:: ; c29b
|
|
; corresponds to $ff25
|
|
; bit 4-7: ch1-4 so2 on/off
|
|
; bit 0-3: ch1-4 so1 on/off
|
|
ds 1
|
|
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
|
|
ds 1
|
|
|
|
MusicID::
|
|
MusicIDLo:: ; c29d
|
|
ds 1
|
|
MusicIDHi:: ; c29e
|
|
ds 1
|
|
MusicBank:: ; c29f
|
|
ds 1
|
|
NoiseSampleAddress::
|
|
NoiseSampleAddressLo:: ; c2a0
|
|
ds 1
|
|
NoiseSampleAddressHi:: ; c2a1
|
|
ds 1
|
|
; noise delay? ; c2a2
|
|
ds 1
|
|
; c2a3
|
|
ds 1
|
|
MusicNoiseSampleSet:: ; c2a4
|
|
ds 1
|
|
SFXNoiseSampleSet:: ; c2a5
|
|
ds 1
|
|
Danger:: ; c2a6
|
|
; bit 7: on/off
|
|
; bit 4: pitch
|
|
; bit 0-3: counter
|
|
ds 1
|
|
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)
|
|
ds 1
|
|
MusicFadeCount:: ; c2a8
|
|
ds 1
|
|
MusicFadeID::
|
|
MusicFadeIDLo:: ; c2a9
|
|
ds 1
|
|
MusicFadeIDHi:: ; c2aa
|
|
ds 1
|
|
ds 5
|
|
CryPitch:: ; c2b0
|
|
ds 1
|
|
CryEcho:: ; c2b1
|
|
ds 1
|
|
CryLength:: ; c2b2
|
|
ds 2
|
|
LastVolume:: ; c2b4
|
|
ds 1
|
|
ds 1
|
|
SFXPriority:: ; c2b6
|
|
; if nonzero, turn off music when playing sfx
|
|
ds 1
|
|
ds 6
|
|
CryTracks:: ; c2bd
|
|
; plays only in left or right track depending on what side the monster is on
|
|
; both tracks active outside of battle
|
|
ds 1
|
|
ds 1
|
|
CurSFX:: ; c2bf
|
|
; id of sfx currently playing
|
|
ds 1
|
|
CurMusic:: ; c2c0
|
|
; id of music currently playing
|
|
ds 1
|
|
|
|
SECTION "auto",WRAM0[$c2c7]
|
|
InputType:: ; c2c7
|
|
ds 1
|
|
AutoInputAddress:: ; c2c8
|
|
ds 2
|
|
AutoInputBank:: ; c2ca
|
|
ds 1
|
|
AutoInputLength:: ; c2cb
|
|
ds 1
|
|
|
|
SECTION "linkbattle",WRAM0[$c2dc]
|
|
InLinkBattle:: ; c2dc
|
|
; 0 not in link battle
|
|
; 1 link battle
|
|
; 4 mobile battle
|
|
ds 1
|
|
|
|
SECTION "scriptengine",WRAM0[$c2dd]
|
|
ScriptVar:: ; c2dd
|
|
ds 1
|
|
|
|
|
|
SECTION "tiles",WRAM0[$c2fa]
|
|
TileDown:: ; c2fa
|
|
ds 1
|
|
TileUp:: ; c2fb
|
|
ds 1
|
|
TileLeft:: ; c2fc
|
|
ds 1
|
|
TileRight:: ; c2fd
|
|
ds 1
|
|
|
|
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
|
|
ds 1
|
|
|
|
SECTION "icons",WRAM0[$c3b6]
|
|
|
|
CurIcon:: ; c3b6
|
|
ds 1
|
|
|
|
SECTION "gfx",WRAM0[$c400]
|
|
|
|
Sprites:: ; c400
|
|
; 4 bytes per sprite
|
|
; 40 sprites
|
|
; struct:
|
|
; y in pixels
|
|
; x in pixels
|
|
; 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 160
|
|
SpritesEnd::
|
|
|
|
TileMap:: ; c4a0
|
|
; 20x18 grid of 8x8 tiles
|
|
ds 360
|
|
TileMapEnd::
|
|
|
|
SECTION "BattleMons",WRAM0[$c608]
|
|
|
|
EnemyMoveStruct::
|
|
EnemyMoveAnimation:: ; c608
|
|
ds 1
|
|
EnemyMoveEffect:: ; c609
|
|
ds 1
|
|
EnemyMovePower:: ; c60a
|
|
ds 1
|
|
EnemyMoveType:: ; c60b
|
|
ds 1
|
|
EnemyMoveAccuracy:: ; c60c
|
|
ds 1
|
|
EnemyMovePP:: ; c60d
|
|
ds 1
|
|
EnemyMoveEffectChance:: ; c60e
|
|
ds 1
|
|
|
|
PlayerMoveStruct::
|
|
PlayerMoveAnimation:: ; c60f
|
|
ds 1
|
|
PlayerMoveEffect:: ; c610
|
|
ds 1
|
|
PlayerMovePower:: ; c611
|
|
ds 1
|
|
PlayerMoveType:: ; c612
|
|
ds 1
|
|
PlayerMoveAccuracy:: ; c613
|
|
ds 1
|
|
PlayerMovePP:: ; c614
|
|
ds 1
|
|
PlayerMoveEffectChance:: ; c615
|
|
ds 1
|
|
|
|
EnemyMonNick:: ; c616
|
|
ds 11
|
|
BattleMonNick:: ; c621
|
|
ds 11
|
|
|
|
|
|
BattleMonSpecies:: ; c62c
|
|
ds 1
|
|
BattleMonItem:: ; c62d
|
|
ds 1
|
|
|
|
BattleMonMoves::
|
|
BattleMonMove1:: ; c62e
|
|
ds 1
|
|
BattleMonMove2:: ; c62f
|
|
ds 1
|
|
BattleMonMove3:: ; c630
|
|
ds 1
|
|
BattleMonMove4:: ; c631
|
|
ds 1
|
|
|
|
BattleMonDVs::
|
|
BattleMonAtkDefDV:: ; c632
|
|
ds 1
|
|
BattleMonSpdSpclDV:: ; c633
|
|
ds 1
|
|
|
|
BattleMonPP::
|
|
BattleMonPPMove1:: ; c634
|
|
ds 1
|
|
BattleMonPPMove2:: ; c635
|
|
ds 1
|
|
BattleMonPPMove3:: ; c636
|
|
ds 1
|
|
BattleMonPPMove4:: ; c637
|
|
ds 1
|
|
|
|
BattleMonHappiness:: ; c638
|
|
ds 1
|
|
BattleMonLevel:: ; c639
|
|
ds 1
|
|
|
|
BattleMonStatus:: ; c63a
|
|
ds 2
|
|
|
|
BattleMonHP:: ; c63c
|
|
ds 2
|
|
BattleMonMaxHP:: ; c63e
|
|
ds 2
|
|
|
|
BattleMonAtk:: ; c640
|
|
ds 2
|
|
BattleMonDef:: ; c642
|
|
ds 2
|
|
BattleMonSpd:: ; c644
|
|
ds 2
|
|
BattleMonSpclAtk:: ; c646
|
|
ds 2
|
|
BattleMonSpclDef:: ; c648
|
|
ds 2
|
|
|
|
BattleMonType1:: ; c64a
|
|
ds 1
|
|
BattleMonType2:: ; c64b
|
|
ds 1
|
|
|
|
ds 10
|
|
|
|
OTName:: ; c656
|
|
ds 13
|
|
|
|
CurOTMon:: ; c663
|
|
ds 1
|
|
|
|
ds 1
|
|
|
|
TypeModifier:: ; c665
|
|
; >10: super-effective
|
|
; 10: normal
|
|
; <10: not very effective
|
|
|
|
; bit 7: stab
|
|
ds 1
|
|
|
|
CriticalHit:: ; c666
|
|
; nonzero for a critical hit
|
|
ds 1
|
|
|
|
AttackMissed:: ; c667
|
|
; nonzero for a miss
|
|
ds 1
|
|
|
|
PlayerSubStatus1:: ; c668
|
|
; bit
|
|
; 7 attract
|
|
; 6 encore
|
|
; 5 endure
|
|
; 4 perish song
|
|
; 3 identified
|
|
; 2 protect
|
|
; 1 curse
|
|
; 0 nightmare
|
|
ds 1
|
|
PlayerSubStatus2:: ; c669
|
|
; bit
|
|
; 7
|
|
; 6
|
|
; 5
|
|
; 4
|
|
; 3
|
|
; 2
|
|
; 1
|
|
; 0 curled
|
|
ds 1
|
|
PlayerSubStatus3:: ; c66a
|
|
; bit
|
|
; 7 confused
|
|
; 6 flying
|
|
; 5 underground
|
|
; 4 charged
|
|
; 3 flinch
|
|
; 2
|
|
; 1 rollout
|
|
; 0 bide
|
|
ds 1
|
|
PlayerSubStatus4:: ; c66b
|
|
; bit
|
|
; 7 leech seed
|
|
; 6 rage
|
|
; 5 recharge
|
|
; 4 substitute
|
|
; 3
|
|
; 2 focus energy
|
|
; 1 mist
|
|
; 0 bide: unleashed energy
|
|
ds 1
|
|
PlayerSubStatus5:: ; c66c
|
|
; bit
|
|
; 7 cant run
|
|
; 6 destiny bond
|
|
; 5 lock-on
|
|
; 4
|
|
; 3
|
|
; 2
|
|
; 1
|
|
; 0 toxic
|
|
ds 1
|
|
|
|
EnemySubStatus1:: ; c66d
|
|
; see PlayerSubStatus1
|
|
ds 1
|
|
EnemySubStatus2:: ; c66e
|
|
; see PlayerSubStatus2
|
|
ds 1
|
|
EnemySubStatus3:: ; c66f
|
|
; see PlayerSubStatus3
|
|
ds 1
|
|
EnemySubStatus4:: ; c670
|
|
; see PlayerSubStatus4
|
|
ds 1
|
|
EnemySubStatus5:: ; c671
|
|
; see PlayerSubStatus5
|
|
ds 1
|
|
|
|
PlayerRolloutCount:: ; c672
|
|
ds 1
|
|
PlayerConfuseCount:: ; c673
|
|
ds 1
|
|
ds 1
|
|
PlayerDisableCount:: ; c675
|
|
ds 1
|
|
PlayerEncoreCount:: ; c676
|
|
ds 1
|
|
PlayerPerishCount:: ; c677
|
|
ds 1
|
|
PlayerFuryCutterCount:: ; c678
|
|
ds 1
|
|
PlayerProtectCount:: ; c679
|
|
ds 1
|
|
|
|
EnemyRolloutCount:: ; c67a
|
|
ds 1
|
|
EnemyConfuseCount:: ; c67b
|
|
ds 1
|
|
ds 1
|
|
EnemyDisableCount:: ; c67d
|
|
ds 1
|
|
EnemyEncoreCount:: ; c67e
|
|
ds 1
|
|
EnemyPerishCount:: ; c67f
|
|
ds 1
|
|
EnemyFuryCutterCount:: ; c680
|
|
ds 1
|
|
EnemyProtectCount:: ; c681
|
|
ds 1
|
|
|
|
PlayerDamageTaken:: ; c682
|
|
ds 2
|
|
EnemyDamageTaken:: ; c684
|
|
ds 2
|
|
|
|
ds 3
|
|
|
|
ds 1
|
|
|
|
BattleScriptBuffer:: ; c68a
|
|
ds 40
|
|
|
|
BattleScriptBufferLoc:: ; c6b2
|
|
ds 2
|
|
|
|
ds 2
|
|
|
|
PlayerStats:: ; c6b6
|
|
ds 10
|
|
ds 1
|
|
EnemyStats:: ; c6c1
|
|
ds 10
|
|
ds 1
|
|
|
|
PlayerStatLevels:: ; c6cc
|
|
; 07 neutral
|
|
PlayerAtkLevel:: ; c6cc
|
|
ds 1
|
|
PlayerDefLevel:: ; c6cd
|
|
ds 1
|
|
PlayerSpdLevel:: ; c6ce
|
|
ds 1
|
|
PlayerSAtkLevel:: ; c6cf
|
|
ds 1
|
|
PlayerSDefLevel:: ; c6d0
|
|
ds 1
|
|
PlayerAccLevel:: ; c6d1
|
|
ds 1
|
|
PlayerEvaLevel:: ; c6d2
|
|
ds 1
|
|
; c6d3
|
|
ds 1
|
|
PlayerStatLevelsEnd::
|
|
|
|
EnemyStatLevels:: ; c6d4
|
|
; 07 neutral
|
|
EnemyAtkLevel:: ; c6d4
|
|
ds 1
|
|
EnemyDefLevel:: ; c6d5
|
|
ds 1
|
|
EnemySpdLevel:: ; c6d6
|
|
ds 1
|
|
EnemySAtkLevel:: ; c6d7
|
|
ds 1
|
|
EnemySDefLevel:: ; c6d8
|
|
ds 1
|
|
EnemyAccLevel:: ; c6d9
|
|
ds 1
|
|
EnemyEvaLevel:: ; c6da
|
|
ds 1
|
|
; c6db
|
|
ds 1
|
|
|
|
EnemyTurnsTaken:: ; c6dc
|
|
ds 1
|
|
PlayerTurnsTaken:: ; c6dd
|
|
ds 1
|
|
|
|
ds 5
|
|
|
|
CurPlayerMove:: ; c6e3
|
|
ds 1
|
|
CurEnemyMove:: ; c6e4
|
|
ds 1
|
|
|
|
LinkBattleRNCount:: ; c6e5
|
|
; how far through the prng stream
|
|
ds 1
|
|
|
|
ds 3
|
|
|
|
CurEnemyMoveNum:: ; c6e9
|
|
ds 1
|
|
|
|
ds 10
|
|
|
|
AlreadyDisobeyed:: ; c6f4
|
|
ds 1
|
|
|
|
DisabledMove:: ; c6f5
|
|
ds 1
|
|
EnemyDisabledMove:: ; c6f6
|
|
ds 1
|
|
ds 1
|
|
|
|
; exists so you can't counter on switch
|
|
LastEnemyCounterMove:: ; c6f8
|
|
ds 1
|
|
LastPlayerCounterMove:: ; c6f9
|
|
ds 1
|
|
|
|
ds 1
|
|
|
|
AlreadyFailed:: ; c6fb
|
|
ds 1
|
|
|
|
ds 3
|
|
|
|
PlayerScreens:: ; c6ff
|
|
; bit
|
|
; 4 reflect
|
|
; 3 light screen
|
|
; 2 safeguard
|
|
; 0 spikes
|
|
ds 1
|
|
|
|
EnemyScreens:: ; c700
|
|
; see PlayerScreens
|
|
ds 1
|
|
|
|
ds 1
|
|
|
|
PlayerLightScreenCount:: ; c702
|
|
ds 1
|
|
PlayerReflectCount:: ; c703
|
|
ds 1
|
|
|
|
ds 2
|
|
|
|
EnemyLightScreenCount:: ; c706
|
|
ds 1
|
|
EnemyReflectCount:: ; c707
|
|
ds 1
|
|
|
|
ds 2
|
|
|
|
Weather:: ; c70a
|
|
; 00 normal
|
|
; 01 rain
|
|
; 02 sun
|
|
; 03 sandstorm
|
|
; 04 rain stopped
|
|
; 05 sunliight faded
|
|
; 06 sandstorm subsided
|
|
ds 1
|
|
|
|
WeatherCount:: ; c70b
|
|
; # turns remaining
|
|
ds 1
|
|
|
|
LoweredStat:: ; c70c
|
|
ds 1
|
|
EffectFailed:: ; c70d
|
|
ds 1
|
|
FailedMessage:: ; c70e
|
|
ds 1
|
|
|
|
ds 3
|
|
|
|
PlayerUsedMoves:: ; c712
|
|
; add a move that has been used once by the player
|
|
; added in order of use
|
|
ds 4
|
|
|
|
ds 5
|
|
|
|
LastPlayerMove:: ; c71b
|
|
ds 1
|
|
LastEnemyMove:: ; c71c
|
|
ds 1
|
|
|
|
|
|
SECTION "battle",WRAM0[$c734]
|
|
BattleEnded:: ; c734
|
|
ds 1
|
|
|
|
|
|
SECTION "overworldmap",WRAM0[$c800]
|
|
OverworldMap:: ; c800
|
|
ds 1300
|
|
OverworldMapEnd::
|
|
|
|
ds 12
|
|
|
|
SECTION "gfx2",WRAM0[$cd20]
|
|
CreditsPos::
|
|
BGMapBuffer:: ; cd20
|
|
ds 2
|
|
CreditsTimer:: ; cd22
|
|
ds 1
|
|
ds 37
|
|
|
|
BGMapPalBuffer:: ; cd48
|
|
ds 40
|
|
|
|
BGMapBufferPtrs:: ; cd70
|
|
; 20 bg map addresses (16x8 tiles)
|
|
ds 40
|
|
|
|
SGBPredef:: ; cd98
|
|
ds 1
|
|
PlayerHPPal:: ; cd99
|
|
ds 1
|
|
EnemyHPPal:: ; cd9a
|
|
ds 1
|
|
|
|
ds 62
|
|
|
|
AttrMap:: ; cdd9
|
|
; 20x18 grid of palettes for 8x8 tiles
|
|
; read horizontally from the top row
|
|
; bit 3: vram bank
|
|
; bit 0-2: palette id
|
|
ds 360
|
|
|
|
ds 30
|
|
|
|
MonType:: ; cf5f
|
|
ds 1
|
|
|
|
CurSpecies:: ; cf60
|
|
ds 1
|
|
|
|
ds 6
|
|
|
|
Requested2bpp:: ; cf67
|
|
ds 1
|
|
Requested2bppSource:: ; cf68
|
|
ds 2
|
|
Requested2bppDest:: ; cf6a
|
|
ds 2
|
|
|
|
Requested1bpp:: ; cf6c
|
|
ds 1
|
|
Requested1bppSource:: ; cf6d
|
|
ds 2
|
|
Requested1bppDest:: ; cf6f
|
|
ds 2
|
|
|
|
ds 3
|
|
|
|
MenuSelection:: ; cf74
|
|
ds 1
|
|
|
|
|
|
|
|
SECTION "VBlank",WRAM0[$cfb1]
|
|
OverworldDelay:: ; cfb1
|
|
ds 1
|
|
TextDelayFrames:: ; cfb2
|
|
ds 1
|
|
VBlankOccurred:: ; cfb3
|
|
ds 1
|
|
|
|
PredefID:: ; cfb4
|
|
ds 1
|
|
PredefTemp:: ; cfb5
|
|
ds 2
|
|
PredefAddress:: ; cfb7
|
|
ds 2
|
|
|
|
ds 3
|
|
|
|
GameTimerPause:: ; cfbc
|
|
; bit 0
|
|
ds 1
|
|
|
|
SECTION "Engine",WRAM0[$cfc2]
|
|
FXAnimID::
|
|
FXAnimIDLo:: ; cfc2
|
|
ds 1
|
|
FXAnimIDHi:: ; cfc3
|
|
ds 1
|
|
|
|
ds 2
|
|
|
|
TileAnimationTimer:: ; cfc6
|
|
ds 1
|
|
|
|
ds 5
|
|
|
|
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
|
|
ds 1
|
|
|
|
ds 1
|
|
|
|
TextBoxFrame:: ; cfce
|
|
; bits 0-2: textbox frame 0-7
|
|
ds 1
|
|
|
|
ds 1
|
|
|
|
GBPrinter:: ; cfd0
|
|
; bit 0-6: brightness
|
|
; lightest: $00
|
|
; lighter: $20
|
|
; normal: $40 (default)
|
|
; darker: $60
|
|
; darkest: $7F
|
|
ds 1
|
|
|
|
Options2:: ; cfd1
|
|
; bit 1: menu account off/on
|
|
ds 1
|
|
|
|
ds 46
|
|
|
|
|
|
SECTION "WRAMBank1",WRAMX[$d000],BANK[1]
|
|
|
|
ds 2
|
|
|
|
DefaultFlypoint:: ; d002
|
|
ds 1
|
|
; d003
|
|
ds 1
|
|
; d004
|
|
ds 1
|
|
StartFlypoint:: ; d005
|
|
ds 1
|
|
EndFlypoint:: ; d006
|
|
ds 1
|
|
|
|
MovementBuffer:: ; d007
|
|
|
|
ds 55
|
|
|
|
MenuItemsList::
|
|
CurFruitTree::
|
|
CurInput::
|
|
EngineBuffer1:: ; d03e
|
|
ds 1
|
|
CurFruit:: ; d03f
|
|
ds 1
|
|
|
|
MartPointer:: ; d040
|
|
ds 2
|
|
|
|
MovementAnimation:: ; d042
|
|
ds 1
|
|
|
|
WalkingDirection:: ; d043
|
|
ds 1
|
|
|
|
FacingDirection:: ; d044
|
|
ds 1
|
|
|
|
WalkingX:: ; d045
|
|
ds 1
|
|
WalkingY:: ; d046
|
|
ds 1
|
|
WalkingTile:: ; d047
|
|
ds 1
|
|
|
|
ds 43
|
|
|
|
StringBuffer1:: ; d073
|
|
ds 19
|
|
StringBuffer2:: ; d086
|
|
ds 19
|
|
StringBuffer3:: ; d099
|
|
ds 19
|
|
StringBuffer4:: ; d0ac
|
|
ds 19
|
|
StringBuffer5:: ; d0bf
|
|
ds 19
|
|
|
|
ds 2
|
|
|
|
CurBattleMon:: ; d0d4
|
|
ds 1
|
|
CurMoveNum:: ; d0d5
|
|
ds 1
|
|
|
|
ds 23
|
|
|
|
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
|
|
ds 1
|
|
|
|
ds 2
|
|
|
|
CurMart:: ; d0f0
|
|
ds 16
|
|
CurMartEnd::
|
|
|
|
ds 6
|
|
|
|
CurItem:: ; d106
|
|
ds 1
|
|
|
|
ds 1
|
|
|
|
CurPartySpecies:: ; d108
|
|
ds 1
|
|
|
|
CurPartyMon:: ; d109
|
|
; contains which monster in a party
|
|
; is being dealt with at the moment
|
|
; 0-5
|
|
ds 1
|
|
|
|
ds 4
|
|
|
|
TempMon::
|
|
TempMonSpecies:: ; d10e
|
|
ds 1
|
|
TempMonItem:: ; d10f
|
|
ds 1
|
|
TempMonMoves:: ; d110
|
|
TempMonMove1:: ; d110
|
|
ds 1
|
|
TempMonMove2:: ; d111
|
|
ds 1
|
|
TempMonMove3:: ; d112
|
|
ds 1
|
|
TempMonMove4:: ; d113
|
|
ds 1
|
|
TempMonID:: ; d114
|
|
ds 2
|
|
TempMonExp:: ; d116
|
|
ds 3
|
|
TempMonHPExp:: ; d119
|
|
ds 2
|
|
TempMonAtkExp:: ; d11b
|
|
ds 2
|
|
TempMonDefExp:: ; d11d
|
|
ds 2
|
|
TempMonSpdExp:: ; d11f
|
|
ds 2
|
|
TempMonSpclExp:: ; d121
|
|
ds 2
|
|
TempMonDVs:: ; d123
|
|
; hp = %1000 for each dv
|
|
ds 1 ; atk/def
|
|
ds 1 ; spd/spc
|
|
TempMonPP:: ; d125
|
|
ds 4
|
|
TempMonHappiness:: ; d129
|
|
ds 1
|
|
TempMonPokerusStatus:: ; d12a
|
|
ds 1
|
|
TempMonCaughtData:: ; d12b
|
|
TempMonCaughtTime:: ; d12b
|
|
TempMonCaughtLevel:: ; d12b
|
|
ds 1
|
|
TempMonCaughtGender:: ; d12c
|
|
TempMonCaughtLocation:: ; d12c
|
|
ds 1
|
|
TempMonLevel:: ; d12d
|
|
ds 1
|
|
TempMonStatus:: ; d12e
|
|
ds 1
|
|
; d12f
|
|
ds 1
|
|
TempMonHP:: ; d130
|
|
ds 2
|
|
TempMonMaxHP:: ; d132
|
|
ds 2
|
|
TempMonAtk:: ; d134
|
|
ds 2
|
|
TempMonDef:: ; d136
|
|
ds 2
|
|
TempMonSpd:: ; d138
|
|
ds 2
|
|
TempMonSpclAtk:: ; d13a
|
|
ds 2
|
|
TempMonSpclDef:: ; d13c
|
|
ds 2
|
|
TempMonEnd:: ; d13e
|
|
|
|
ds 3
|
|
|
|
PartyMenuActionText:: ; d141
|
|
ds 1
|
|
ds 1
|
|
|
|
CurPartyLevel:: ; d143
|
|
ds 1
|
|
|
|
|
|
SECTION "UsedSprites",WRAMX[$d154],BANK[1]
|
|
UsedSprites:: ; d154
|
|
ds 32
|
|
|
|
SECTION "map",WRAMX[$d19d],BANK[1]
|
|
|
|
; both are in blocks (2x2 walkable tiles, 4x4 graphics tiles)
|
|
MapHeader:: ; d19d
|
|
MapBorderBlock:: ; d19d
|
|
ds 1
|
|
MapHeight:: ; d19e
|
|
ds 1
|
|
MapWidth:: ; d19f
|
|
ds 1
|
|
MapBlockDataBank:: ; d1a0
|
|
ds 1
|
|
MapBlockDataPointer:: ; d1a1
|
|
ds 2
|
|
MapScriptHeaderBank:: ; d1a3
|
|
ds 1
|
|
MapScriptHeaderPointer:: ; d1a4
|
|
ds 2
|
|
MapEventHeaderPointer:: ; d1a6
|
|
ds 2
|
|
; bit set
|
|
MapConnections:: ; d1a8
|
|
ds 1
|
|
NorthMapConnection:: ; d1a9
|
|
NorthConnectedMapGroup:: ; d1a9
|
|
ds 1
|
|
NorthConnectedMapNumber:: ; d1aa
|
|
ds 1
|
|
NorthConnectionStripPointer:: ; d1ab
|
|
ds 2
|
|
NorthConnectionStripLocation:: ; d1ad
|
|
ds 2
|
|
NorthConnectionStripLength:: ; d1af
|
|
ds 1
|
|
NorthConnectedMapWidth:: ; d1b0
|
|
ds 1
|
|
NorthConnectionStripYOffset:: ; d1b1
|
|
ds 1
|
|
NorthConnectionStripXOffset:: ; d1b2
|
|
ds 1
|
|
NorthConnectionWindow:: ; d1b3
|
|
ds 2
|
|
|
|
SouthMapConnection:: ; d1b5
|
|
SouthConnectedMapGroup:: ; d1b5
|
|
ds 1
|
|
SouthConnectedMapNumber:: ; d1b6
|
|
ds 1
|
|
SouthConnectionStripPointer:: ; d1b7
|
|
ds 2
|
|
SouthConnectionStripLocation:: ; d1b9
|
|
ds 2
|
|
SouthConnectionStripLength:: ; d1bb
|
|
ds 1
|
|
SouthConnectedMapWidth:: ; d1bc
|
|
ds 1
|
|
SouthConnectionStripYOffset:: ; d1bd
|
|
ds 1
|
|
SouthConnectionStripXOffset:: ; d1be
|
|
ds 1
|
|
SouthConnectionWindow:: ; d1bf
|
|
ds 2
|
|
|
|
WestMapConnection:: ; d1c1
|
|
WestConnectedMapGroup:: ; d1c1
|
|
ds 1
|
|
WestConnectedMapNumber:: ; d1c2
|
|
ds 1
|
|
WestConnectionStripPointer:: ; d1c3
|
|
ds 2
|
|
WestConnectionStripLocation:: ; d1c5
|
|
ds 2
|
|
WestConnectionStripLength:: ; d1c7
|
|
ds 1
|
|
WestConnectedMapWidth:: ; d1c8
|
|
ds 1
|
|
WestConnectionStripYOffset:: ; d1c9
|
|
ds 1
|
|
WestConnectionStripXOffset:: ; d1ca
|
|
ds 1
|
|
WestConnectionWindow:: ; d1cb
|
|
ds 2
|
|
|
|
EastMapConnection:: ; d1cd
|
|
EastConnectedMapGroup:: ; d1cd
|
|
ds 1
|
|
EastConnectedMapNumber:: ; d1ce
|
|
ds 1
|
|
EastConnectionStripPointer:: ; d1cf
|
|
ds 2
|
|
EastConnectionStripLocation:: ; d1d1
|
|
ds 2
|
|
EastConnectionStripLength:: ; d1d3
|
|
ds 1
|
|
EastConnectedMapWidth:: ; d1d4
|
|
ds 1
|
|
EastConnectionStripYOffset:: ; d1d5
|
|
ds 1
|
|
EastConnectionStripXOffset:: ; d1d6
|
|
ds 1
|
|
EastConnectionWindow:: ; d1d7
|
|
ds 2
|
|
|
|
|
|
TilesetHeader::
|
|
TilesetBank:: ; d1d9
|
|
ds 1
|
|
TilesetAddress:: ; d1da
|
|
ds 2
|
|
TilesetBlocksBank:: ; d1dc
|
|
ds 1
|
|
TilesetBlocksAddress:: ; d1dd
|
|
ds 2
|
|
TilesetCollisionBank:: ; d1df
|
|
ds 1
|
|
TilesetCollisionAddress:: ; d1e0
|
|
ds 2
|
|
TilesetAnim:: ; d1e2
|
|
; bank 3f
|
|
ds 2
|
|
; unused ; d1e4
|
|
ds 2
|
|
TilesetPalettes:: ; d1e6
|
|
; bank 3f
|
|
ds 2
|
|
|
|
EvolvableFlags:: ; d1e8
|
|
ds 1
|
|
|
|
ds 1
|
|
|
|
MagikarpLength::
|
|
Buffer1:: ; d1ea
|
|
ds 1
|
|
MovementType::
|
|
Buffer2:: ; d1eb
|
|
ds 1
|
|
|
|
SECTION "BattleMons2",WRAMX[$d1fa],BANK[1]
|
|
LinkBattleRNs:: ; d1fa
|
|
ds 10
|
|
|
|
TempEnemyMonSpecies:: ; d204
|
|
ds 1
|
|
TempBattleMonSpecies:: ; d205
|
|
ds 1
|
|
|
|
EnemyMon::
|
|
EnemyMonSpecies:: ; d206
|
|
ds 1
|
|
EnemyMonItem:: ; d207
|
|
ds 1
|
|
|
|
EnemyMonMoves::
|
|
EnemyMonMove1:: ; d208
|
|
ds 1
|
|
EnemyMonMove2:: ; d209
|
|
ds 1
|
|
EnemyMonMove3:: ; d20a
|
|
ds 1
|
|
EnemyMonMove4:: ; d20b
|
|
ds 1
|
|
EnemyMonMovesEnd::
|
|
|
|
EnemyMonDVs::
|
|
EnemyMonAtkDefDV:: ; d20c
|
|
ds 1
|
|
EnemyMonSpdSpclDV:: ; d20d
|
|
ds 1
|
|
|
|
EnemyMonPP::
|
|
EnemyMonPPMove1:: ; d20e
|
|
ds 1
|
|
EnemyMonPPMove2:: ; d20f
|
|
ds 1
|
|
EnemyMonPPMove3:: ; d210
|
|
ds 1
|
|
EnemyMonPPMove4:: ; d211
|
|
ds 1
|
|
|
|
EnemyMonHappiness:: ; d212
|
|
ds 1
|
|
EnemyMonLevel:: ; d213
|
|
ds 1
|
|
|
|
EnemyMonStatus:: ; d214
|
|
ds 2
|
|
|
|
EnemyMonHP::
|
|
EnemyMonHPHi:: ; d216
|
|
ds 1
|
|
EnemyMonHPLo:: ; d217
|
|
ds 1
|
|
|
|
EnemyMonMaxHP::
|
|
EnemyMonMaxHPHi:: ; d218
|
|
ds 1
|
|
EnemyMonMaxHPLo:: ; d219
|
|
ds 1
|
|
|
|
EnemyMonStats::
|
|
EnemyMonAtk:: ; d21a
|
|
ds 2
|
|
EnemyMonDef:: ; d21c
|
|
ds 2
|
|
EnemyMonSpd:: ; d21e
|
|
ds 2
|
|
EnemyMonSpclAtk:: ; d220
|
|
ds 2
|
|
EnemyMonSpclDef:: ; d222
|
|
ds 2
|
|
EnemyMonStatsEnd::
|
|
|
|
EnemyMonType1:: ; d224
|
|
ds 1
|
|
EnemyMonType2:: ; d225
|
|
ds 1
|
|
|
|
EnemyMonBaseStats:: ; d226
|
|
ds 5
|
|
|
|
EnemyMonCatchRate:: ; d22b
|
|
ds 1
|
|
EnemyMonBaseExp:: ; d22c
|
|
ds 1
|
|
|
|
EnemyMonEnd::
|
|
|
|
|
|
IsInBattle:: ; d22d
|
|
; 0: overworld
|
|
; 1: wild battle
|
|
; 2: trainer battle
|
|
ds 1
|
|
|
|
ds 1
|
|
|
|
OtherTrainerClass:: ; d22f
|
|
; class (Youngster, Bug Catcher, etc.) of opposing trainer
|
|
; 0 if opponent is a wild Pokémon, not a trainer
|
|
ds 1
|
|
|
|
BattleType:: ; d230
|
|
; $00 normal
|
|
; $01
|
|
; $02
|
|
; $03 dude
|
|
; $04 fishing
|
|
; $05 roaming
|
|
; $06
|
|
; $07 shiny
|
|
; $08 headbutt/rock smash
|
|
; $09
|
|
; $0a force Item1
|
|
; $0b
|
|
; $0c suicune
|
|
ds 1
|
|
|
|
OtherTrainerID:: ; d231
|
|
; which trainer of the class that you're fighting
|
|
; (Joey, Mikey, Albert, etc.)
|
|
ds 1
|
|
|
|
ds 1
|
|
|
|
TrainerClass:: ; d233
|
|
ds 1
|
|
|
|
UnownLetter:: ; d234
|
|
ds 1
|
|
|
|
ds 1
|
|
|
|
CurBaseData:: ; d236
|
|
BaseDexNo:: ; d236
|
|
ds 1
|
|
BaseStats:: ; d237
|
|
BaseHP:: ; d237
|
|
ds 1
|
|
BaseAttack:: ; d238
|
|
ds 1
|
|
BaseDefense:: ; d239
|
|
ds 1
|
|
BaseSpeed:: ; d23a
|
|
ds 1
|
|
BaseSpecialAttack:: ; d23b
|
|
ds 1
|
|
BaseSpecialDefense:: ; d23c
|
|
ds 1
|
|
BaseType:: ; d23d
|
|
BaseType1:: ; d23d
|
|
ds 1
|
|
BaseType2:: ; d23e
|
|
ds 1
|
|
BaseCatchRate:: ; d23f
|
|
ds 1
|
|
BaseExp:: ; d240
|
|
ds 1
|
|
BaseItems:: ; d241
|
|
ds 2
|
|
BaseGender:: ; d243
|
|
ds 1
|
|
BaseUnknown1:: ; d244
|
|
ds 1
|
|
BaseEggSteps:: ; d245
|
|
ds 1
|
|
BaseUnknown2:: ; d246
|
|
ds 1
|
|
BasePicSize:: ; d247
|
|
ds 1
|
|
BasePadding:: ; d248
|
|
ds 4
|
|
BaseGrowthRate:: ; d24c
|
|
ds 1
|
|
BaseEggGroups:: ; d24d
|
|
ds 1
|
|
BaseTMHM:: ; d24e
|
|
ds 8
|
|
|
|
|
|
CurDamage:: ; d256
|
|
ds 2
|
|
|
|
|
|
SECTION "TimeOfDay",WRAMX[$d269],BANK[1]
|
|
|
|
TimeOfDay:: ; d269
|
|
ds 1
|
|
|
|
SECTION "OTParty",WRAMX[$d280],BANK[1]
|
|
|
|
OTPartyCount:: ; d280
|
|
ds 1 ; number of Pokémon in party
|
|
OTPartySpecies:: ; d281
|
|
ds 6 ; species of each Pokémon in party
|
|
; d287
|
|
ds 1 ; any empty slots including the 7th must be FF
|
|
; or the routine will keep going
|
|
|
|
OTPartyMon1:: ; d288
|
|
party_struct OTPartyMon1
|
|
OTPartyMon2:: ; d2b8
|
|
party_struct OTPartyMon2
|
|
OTPartyMon3:: ; d2e8
|
|
party_struct OTPartyMon3
|
|
OTPartyMon4:: ; d318
|
|
party_struct OTPartyMon4
|
|
OTPartyMon5:: ; d348
|
|
party_struct OTPartyMon5
|
|
OTPartyMon6:: ; d378
|
|
party_struct OTPartyMon6
|
|
|
|
|
|
OTPartyMonOT::
|
|
OTPartyMon1OT:: ; d3a8
|
|
ds 11
|
|
OTPartyMon2OT:: ; d3b3
|
|
ds 11
|
|
OTPartyMon3OT:: ; d3be
|
|
ds 11
|
|
OTPartyMon4OT:: ; d3c9
|
|
ds 11
|
|
OTPartyMon5OT:: ; d3d4
|
|
ds 11
|
|
OTPartyMon6OT:: ; d3df
|
|
ds 11
|
|
|
|
OTPartyMonNicknames::
|
|
OTPartyMon1Nickname:: ; d3ea
|
|
ds 11
|
|
OTPartyMon2Nickname:: ; d3f5
|
|
ds 11
|
|
OTPartyMon3Nickname:: ; d400
|
|
ds 11
|
|
OTPartyMon4Nickname:: ; d40b
|
|
ds 11
|
|
OTPartyMon5Nickname:: ; d416
|
|
ds 11
|
|
OTPartyMon6Nickname:: ; d421
|
|
ds 11
|
|
|
|
SECTION "Map Events", WRAMX[$d432], BANK[1]
|
|
MapStatus:: ; d432
|
|
ds 1
|
|
MapEventStatus:: ; d433
|
|
ds 1
|
|
|
|
ScriptFlags:: ; d434
|
|
ds 1
|
|
ScriptFlags2:: ; d435
|
|
ds 1
|
|
ScriptFlags3:: ; d436
|
|
ds 1
|
|
|
|
ScriptMode:: ; d437
|
|
ds 1
|
|
ScriptRunning:: ; d438
|
|
ds 1
|
|
ScriptBank:: ; d439
|
|
ds 1
|
|
ScriptPos:: ; d43a
|
|
ds 2
|
|
|
|
ds 17
|
|
|
|
ScriptDelay:: ; d44d
|
|
ds 1
|
|
|
|
SECTION "Player",WRAMX[$d472],BANK[1]
|
|
PlayerGender:: ; d472
|
|
; bit 0:
|
|
; 0 male
|
|
; 1 female
|
|
ds 1
|
|
ds 8
|
|
PlayerID:: ; d47b
|
|
ds 2
|
|
|
|
PlayerName:: ; d47d
|
|
ds 11
|
|
MomsName:: ; d488
|
|
ds 11
|
|
RivalName:: ; d493
|
|
ds 11
|
|
RedsName:: ; d49e
|
|
ds 11
|
|
GreensName:: ; d4a9
|
|
ds 11
|
|
|
|
ds 2
|
|
|
|
; init time set at newgame
|
|
StartDay:: ; d4b6
|
|
ds 1
|
|
StartHour:: ; d4b7
|
|
ds 1
|
|
StartMinute:: ; d4b8
|
|
ds 1
|
|
StartSecond:: ; d4b9
|
|
ds 1
|
|
|
|
ds 9
|
|
|
|
GameTimeCap:: ; d4c3
|
|
ds 1
|
|
GameTimeHours:: ; d4c4
|
|
ds 2
|
|
GameTimeMinutes:: ; d4c6
|
|
ds 1
|
|
GameTimeSeconds:: ; d4c7
|
|
ds 1
|
|
GameTimeFrames:: ; d4c8
|
|
ds 1
|
|
|
|
ds 2
|
|
|
|
CurDay:: ; d4cb
|
|
ds 1
|
|
|
|
ds 10
|
|
|
|
|
|
ObjectStructs::
|
|
|
|
PlayerStruct:: ; d4d6
|
|
ds 2
|
|
PlayerSprite:: ; d4d8
|
|
ds 1
|
|
ds 3
|
|
PlayerPalette:: ; d4dc
|
|
ds 1
|
|
ds 1
|
|
PlayerDirection:: ; d4de
|
|
; uses bits 2 and 3 / $0c / %00001100
|
|
; %00 down
|
|
; %01 up
|
|
; %10 left
|
|
; $11 right
|
|
ds 1
|
|
ds 2
|
|
PlayerAction:: ; d4e1
|
|
; 1 standing
|
|
; 2 walking
|
|
; 4 spinning
|
|
; 6 fishing
|
|
ds 1
|
|
ds 1
|
|
PlayerFacing:: ; d4e3
|
|
ds 1
|
|
StandingTile:: ; d4e4
|
|
ds 1
|
|
StandingTile2:: ; d4e5
|
|
ds 1
|
|
; relative to the map struct including borders
|
|
MapX:: ; d4e6
|
|
ds 1
|
|
MapY:: ; d4e7
|
|
ds 1
|
|
MapX2:: ; d4e8
|
|
ds 1
|
|
MapY2:: ; d4e9
|
|
ds 1
|
|
ds 3
|
|
; relative to the bg map, in px
|
|
PlayerSpriteX:: ; d4ed
|
|
ds 1
|
|
PlayerSpriteY:: ; d4ee
|
|
ds 1
|
|
ds 15
|
|
|
|
ObjectStruct1:: ; d4fe
|
|
ds 40
|
|
ObjectStruct2:: ; d526
|
|
ds 40
|
|
ObjectStruct3:: ; d54e
|
|
ds 40
|
|
ObjectStruct4:: ; d576
|
|
ds 40
|
|
ObjectStruct5:: ; d59e
|
|
ds 40
|
|
ObjectStruct6:: ; d5c6
|
|
ds 40
|
|
ObjectStruct7:: ; d5ee
|
|
ds 40
|
|
ObjectStruct8:: ; d616
|
|
ds 40
|
|
ObjectStruct9:: ; d63e
|
|
ds 40
|
|
ObjectStruct10:: ; d666
|
|
ds 40
|
|
ObjectStruct11:: ; d68e
|
|
ds 40
|
|
ObjectStruct12:: ; d6b6
|
|
ds 40
|
|
; d6de
|
|
|
|
SECTION "Objects",WRAMX[$d71e],BANK[1]
|
|
MapObjects:: ; d71e
|
|
ds OBJECT_LENGTH * NUM_OBJECTS
|
|
|
|
|
|
SECTION "VariableSprites",WRAMX[$d82e],BANK[1]
|
|
VariableSprites:: ; d82e
|
|
ds $10
|
|
|
|
|
|
SECTION "Status",WRAMX[$d841],BANK[1]
|
|
TimeOfDayPal:: ; d841
|
|
ds 1
|
|
ds 4
|
|
; d846
|
|
ds 1
|
|
ds 1
|
|
CurTimeOfDay:: ; d848
|
|
ds 1
|
|
|
|
ds 3
|
|
|
|
StatusFlags:: ; d84c
|
|
ds 1
|
|
StatusFlags2:: ; d84d
|
|
ds 1
|
|
|
|
Money:: ; d84e
|
|
ds 3
|
|
|
|
ds 4
|
|
|
|
Coins:: ; d855
|
|
ds 2
|
|
|
|
Badges::
|
|
JohtoBadges:: ; d857
|
|
ds 1
|
|
KantoBadges:: ; d858
|
|
ds 1
|
|
|
|
SECTION "Items",WRAMX[$d859],BANK[1]
|
|
TMsHMs:: ; d859
|
|
ds 57
|
|
TMsHMsEnd::
|
|
|
|
NumItems:: ; d892
|
|
ds 1
|
|
Items:: ; d893
|
|
ds 41
|
|
ItemsEnd::
|
|
|
|
NumKeyItems:: ; d8bc
|
|
ds 1
|
|
KeyItems:: ; d8bd
|
|
ds 26
|
|
KeyItemsEnd::
|
|
|
|
NumBalls:: ; d8d7
|
|
ds 1
|
|
Balls:: ; d8d8
|
|
ds 25
|
|
BallsEnd::
|
|
|
|
PCItems:: ; d8f1
|
|
ds 101
|
|
PCItemsEnd::
|
|
|
|
|
|
SECTION "overworld",WRAMX[$d95b],BANK[1]
|
|
WhichRegisteredItem:: ; d95b
|
|
ds 1
|
|
RegisteredItem:: ; d95c
|
|
ds 1
|
|
|
|
PlayerState:: ; d95d
|
|
ds 1
|
|
|
|
SECTION "scriptram",WRAMX[$d962],BANK[1]
|
|
MooMooBerries:: ; d962
|
|
ds 1 ; how many berries fed to MooMoo
|
|
UndergroundSwitchPositions:: ; d963
|
|
ds 1 ; which positions the switches are in
|
|
FarfetchdPosition:: ; d964
|
|
ds 1 ; which position the ilex farfetch'd is in
|
|
|
|
SECTION "Events",WRAMX[$da72],BANK[1]
|
|
|
|
EventFlags:: ; da72
|
|
;RoomDecorations:: ; dac6
|
|
;TeamRocketAzaleaTownAttackEvent:: ; db51
|
|
;PoliceAtElmsLabEvent:: ; db52
|
|
;SalesmanMahoganyTownEvent:: ; db5c
|
|
;RedGyaradosEvent:: ; db5c
|
|
ds 250
|
|
; db6c
|
|
|
|
SECTION "BoxNames",WRAMX[$db75],BANK[1]
|
|
; 8 chars + $50
|
|
Box1Name:: ; db75
|
|
ds 9
|
|
Box2Name:: ; db7e
|
|
ds 9
|
|
Box3Name:: ; db87
|
|
ds 9
|
|
Box4Name:: ; db90
|
|
ds 9
|
|
Box5Name:: ; db99
|
|
ds 9
|
|
Box6Name:: ; dba2
|
|
ds 9
|
|
Box7Name:: ; dbab
|
|
ds 9
|
|
Box8Name:: ; dbb4
|
|
ds 9
|
|
Box9Name:: ; dbbd
|
|
ds 9
|
|
Box10Name:: ; dbc6
|
|
ds 9
|
|
Box11Name:: ; dbcf
|
|
ds 9
|
|
Box12Name:: ; dbd8
|
|
ds 9
|
|
Box13Name:: ; dbe1
|
|
ds 9
|
|
Box14Name:: ; dbea
|
|
ds 9
|
|
|
|
SECTION "bike", WRAMX[$dbf5],BANK[1]
|
|
BikeFlags:: ; dbf5
|
|
; bit 1: always on bike
|
|
; bit 2: downhill
|
|
ds 1
|
|
|
|
SECTION "decorations", WRAMX[$dc0f],BANK[1]
|
|
; Sprite id of each decoration
|
|
Bed:: ; dc0f
|
|
ds 1
|
|
Carpet:: ; dc10
|
|
ds 1
|
|
Plant:: ; dc11
|
|
ds 1
|
|
Poster:: ; dc12
|
|
ds 1
|
|
Console:: ; dc13
|
|
ds 1
|
|
LeftOrnament:: ; dc14
|
|
ds 1
|
|
RightOrnament:: ; dc15
|
|
ds 1
|
|
BigDoll:: ; dc16
|
|
ds 1
|
|
|
|
SECTION "fruittrees", WRAMX[$dc27],BANK[1]
|
|
FruitTreeFlags:: ; dc27
|
|
ds 1
|
|
|
|
SECTION "steps", WRAMX[$dc73],BANK[1]
|
|
StepCount:: ; dc73
|
|
ds 1
|
|
PoisonStepCount:: ; dc74
|
|
ds 1
|
|
|
|
SECTION "Visited Spawn Points", WRAMX[$dca5],BANK[1]
|
|
VisitedSpawns:: ; dca5
|
|
ds 4
|
|
|
|
SECTION "BackupMapInfo", WRAMX[$dcad],BANK[1]
|
|
|
|
; used on maps like second floor pokécenter, which are reused, so we know which
|
|
; map to return to
|
|
BackupMapGroup:: ; dcad
|
|
ds 1
|
|
BackupMapNumber:: ; dcae
|
|
ds 1
|
|
|
|
SECTION "PlayerMapInfo", WRAMX[$dcb4],BANK[1]
|
|
|
|
WarpNumber:: ; dcb4
|
|
ds 1
|
|
MapGroup:: ; dcb5
|
|
ds 1 ; map group of current map
|
|
MapNumber:: ; dcb6
|
|
ds 1 ; map number of current map
|
|
YCoord:: ; dcb7
|
|
ds 1 ; current y coordinate relative to top-left corner of current map
|
|
XCoord:: ; dcb8
|
|
ds 1 ; current x coordinate relative to top-left corner of current map
|
|
|
|
SECTION "PlayerParty",WRAMX[$dcd7],BANK[1]
|
|
|
|
PartyCount:: ; dcd7
|
|
ds 1 ; number of Pokémon in party
|
|
PartySpecies:: ; dcd8
|
|
ds 6 ; species of each Pokémon in party
|
|
PartyEnd:: ; dcde
|
|
ds 1 ; legacy functions don't check PartyCount
|
|
|
|
PartyMons::
|
|
PartyMon1:: ; dcdf
|
|
party_struct PartyMon1
|
|
PartyMon2:: ; dd0f
|
|
party_struct PartyMon2
|
|
PartyMon3:: ; dd3f
|
|
party_struct PartyMon3
|
|
PartyMon4:: ; dd6f
|
|
party_struct PartyMon4
|
|
PartyMon5:: ; dd9f
|
|
party_struct PartyMon5
|
|
PartyMon6:: ; ddcf
|
|
party_struct PartyMon6
|
|
|
|
PartyMonOT::
|
|
PartyMon1OT:: ; ddff
|
|
ds 11
|
|
PartyMon2OT:: ; de0a
|
|
ds 11
|
|
PartyMon3OT:: ; de15
|
|
ds 11
|
|
PartyMon4OT:: ; de20
|
|
ds 11
|
|
PartyMon5OT:: ; de2b
|
|
ds 11
|
|
PartyMon6OT:: ; de36
|
|
ds 11
|
|
|
|
PartyMonNicknames::
|
|
PartyMon1Nickname:: ; de41
|
|
ds 11
|
|
PartyMon2Nickname:: ; de4c
|
|
ds 11
|
|
PartyMon3Nickname:: ; de57
|
|
ds 11
|
|
PartyMon4Nickname:: ; de62
|
|
ds 11
|
|
PartyMon5Nickname:: ; de6d
|
|
ds 11
|
|
PartyMon6Nickname:: ; de78
|
|
ds 11
|
|
PartyMonNicknamesEnd::
|
|
|
|
SECTION "Pokedex",WRAMX[$de99],BANK[1]
|
|
PokedexCaught:: ; de99
|
|
ds 32
|
|
EndPokedexCaught::
|
|
PokedexSeen:: ; deb9
|
|
ds 32
|
|
EndPokedexSeen::
|
|
UnownDex:: ; ded9
|
|
ds 26
|
|
UnlockedUnowns:: ; def3
|
|
ds 1
|
|
|
|
SECTION "Breeding",WRAMX[$def5],BANK[1]
|
|
DaycareMan:: ; def5
|
|
; bit 7: active
|
|
; bit 6: monsters are compatible
|
|
; bit 5: egg ready
|
|
; bit 0: monster 1 in daycare
|
|
ds 1
|
|
|
|
BreedMon1::
|
|
BreedMon1Nick:: ; def6
|
|
ds 11
|
|
BreedMon1OT:: ; df01
|
|
ds 11
|
|
BreedMon1Stats::
|
|
BreedMon1Species:: ; df0c
|
|
ds 1
|
|
ds 31
|
|
|
|
DaycareLady:: ; df2c
|
|
; bit 7: active
|
|
; bit 0: monster 2 in daycare
|
|
ds 1
|
|
|
|
StepsToEgg:: ; df2d
|
|
ds 1
|
|
DittoInDaycare:: ; df2e
|
|
; z: yes
|
|
; nz: no
|
|
ds 1
|
|
|
|
BreedMon2::
|
|
BreedMon2Nick:: ; df2f
|
|
ds 11
|
|
BreedMon2OT:: ; df3a
|
|
ds 11
|
|
BreedMon2Stats::
|
|
BreedMon2Species:: ; df45
|
|
ds 1
|
|
ds 31
|
|
|
|
EggNick:: ; df65
|
|
; EGG@
|
|
ds 11
|
|
EggOT:: ; df70
|
|
ds 11
|
|
EggStats::
|
|
EggSpecies:: ; df7b
|
|
ds 1
|
|
ds 31
|
|
|
|
ds 1
|
|
|
|
wContestMon:: ; df9c
|
|
party_struct wContestMon
|
|
|
|
ds 3
|
|
|
|
RoamMon1Species:: ; dfcf
|
|
ds 1
|
|
RoamMon1Level:: ; dfd0
|
|
ds 1
|
|
RoamMon1MapGroup:: ; dfd1
|
|
ds 1
|
|
RoamMon1MapNumber:: ; dfd2
|
|
ds 1
|
|
RoamMon1HP:: ; dfd3
|
|
ds 1
|
|
RoamMon1DVs:: ; dfd4
|
|
ds 2
|
|
|
|
RoamMon2Species:: ; dfd6
|
|
ds 1
|
|
RoamMon2Level:: ; dfd7
|
|
ds 1
|
|
RoamMon2MapGroup:: ; dfd8
|
|
ds 1
|
|
RoamMon2MapNumber:: ; dfd9
|
|
ds 1
|
|
RoamMon2HP:: ; dfda
|
|
ds 1
|
|
RoamMon2DVs:: ; dfdb
|
|
ds 2
|
|
|
|
RoamMon3Species:: ; dfdd
|
|
ds 1
|
|
RoamMon3Level:: ; dfde
|
|
ds 1
|
|
RoamMon3MapGroup:: ; dfdf
|
|
ds 1
|
|
RoamMon3MapNumber:: ; dfe0
|
|
ds 1
|
|
RoamMon3HP:: ; dfe1
|
|
ds 1
|
|
RoamMon3DVs:: ; dfe2
|
|
ds 2
|
|
|
|
|
|
|
|
SECTION "WRAMBank5",WRAMX[$d000],BANK[5]
|
|
|
|
; 8 4-color palettes
|
|
Unkn1Pals:: ; d000
|
|
ds $40
|
|
Unkn2Pals:: ; d040
|
|
ds $40
|
|
BGPals:: ; d080
|
|
ds $40
|
|
OBPals:: ; d0c0
|
|
ds $40
|
|
|
|
LYOverrides:: ; d100
|
|
ds 144
|
|
LYOverridesEnd::
|
|
|
|
ds 112
|
|
|
|
LYOverridesBackup:: ; d200
|
|
ds 144
|
|
LYOverridesBackupEnd::
|
|
|
|
|
|
SECTION "Battle Animations", WRAMX[$d30a], BANK[5]
|
|
|
|
ActiveAnimObjects:: ; d30a
|
|
ds 4 * 40
|
|
|
|
ds 80
|
|
|
|
ActiveBGEffects:: ; d3fa
|
|
ds 4 * 5
|
|
|
|
ds 1
|
|
|
|
BattleAnimFlags:: ; d40f
|
|
ds 1
|
|
BattleAnimAddress:: ; d410
|
|
ds 2
|
|
BattleAnimDuration:: ; d412
|
|
ds 1
|
|
BattleAnimParent:: ; d413
|
|
ds 2
|
|
BattleAnimLoops:: ; d415
|
|
ds 1
|
|
BattleAnimVar:: ; d416
|
|
ds 1
|
|
BattleAnimByte:: ; d417
|
|
ds 1
|
|
ds 1
|
|
BattleAnimTemps:: ; d419
|
|
ds 8
|
|
|
|
|
|
SECTION "SRAMBank1",SRAM,BANK[1]
|
|
|
|
SECTION "BoxMons",SRAM[$ad10],BANK[1]
|
|
BoxCount:: ; ad10
|
|
ds 1
|
|
BoxSpecies:: ; ad11
|
|
ds 20
|
|
ds 1
|
|
BoxMons::
|
|
BoxMon1::
|
|
BoxMon1Species:: ; ad26
|
|
ds 1
|
|
BoxMon1Item:: ; ad27
|
|
ds 1
|
|
BoxMon1Moves:: ; ad28
|
|
ds 4
|
|
BoxMon1ID:: ; ad2c
|
|
ds 2
|
|
BoxMon1Exp:: ; ad2e
|
|
ds 3
|
|
BoxMon1HPExp:: ; ad31
|
|
ds 2
|
|
BoxMon1AtkExp:: ; ad33
|
|
ds 2
|
|
BoxMon1DefExp:: ; ad35
|
|
ds 2
|
|
BoxMon1SpdExp:: ; ad37
|
|
ds 2
|
|
BoxMon1SpcExp:: ; ad39
|
|
ds 2
|
|
BoxMon1DVs:: ; ad3b
|
|
ds 2
|
|
BoxMon1PP:: ; ad3d
|
|
ds 4
|
|
BoxMon1Happiness:: ; ad41
|
|
ds 1
|
|
BoxMon1PokerusStatus:: ; ad42
|
|
ds 1
|
|
BoxMon1CaughtData::
|
|
BoxMon1CaughtTime::
|
|
BoxMon1CaughtLevel:: ; ad43
|
|
ds 1
|
|
BoxMon1CaughtGender::
|
|
BoxMon1CaughtLocation:: ; ad44
|
|
ds 1
|
|
BoxMon1Level:: ; ad45
|
|
ds 1
|
|
|
|
BoxMon2:: ; ad46
|
|
ds 32
|
|
BoxMon3:: ; ad66
|
|
ds 32
|
|
BoxMon4:: ; ad86
|
|
ds 32
|
|
BoxMon5:: ; ada6
|
|
ds 32
|
|
BoxMon6:: ; adc6
|
|
ds 32
|
|
BoxMon7:: ; ade6
|
|
ds 32
|
|
BoxMon8:: ; ae06
|
|
ds 32
|
|
BoxMon9:: ; ae26
|
|
ds 32
|
|
BoxMon10:: ; ae46
|
|
ds 32
|
|
BoxMon11:: ; ae66
|
|
ds 32
|
|
BoxMon12:: ; ae86
|
|
ds 32
|
|
BoxMon13:: ; aea6
|
|
ds 32
|
|
BoxMon14:: ; aec6
|
|
ds 32
|
|
BoxMon15:: ; aee6
|
|
ds 32
|
|
BoxMon16:: ; af06
|
|
ds 32
|
|
BoxMon17:: ; af26
|
|
ds 32
|
|
BoxMon18:: ; af46
|
|
ds 32
|
|
BoxMon19:: ; af66
|
|
ds 32
|
|
BoxMon20:: ; af86
|
|
ds 32
|
|
|
|
BoxMonOT::
|
|
BoxMon1OT:: ; afa6
|
|
ds 11
|
|
BoxMon2OT:: ; afb1
|
|
ds 11
|
|
BoxMon3OT:: ; afbc
|
|
ds 11
|
|
BoxMon4OT:: ; afc7
|
|
ds 11
|
|
BoxMon5OT:: ; afd2
|
|
ds 11
|
|
BoxMon6OT:: ; afdd
|
|
ds 11
|
|
BoxMon7OT:: ; afe8
|
|
ds 11
|
|
BoxMon8OT:: ; aff3
|
|
ds 11
|
|
BoxMon9OT:: ; affe
|
|
ds 11
|
|
BoxMon10OT:: ; b009
|
|
ds 11
|
|
BoxMon11OT:: ; b014
|
|
ds 11
|
|
BoxMon12OT:: ; b01f
|
|
ds 11
|
|
BoxMon13OT:: ; b02a
|
|
ds 11
|
|
BoxMon14OT:: ; b035
|
|
ds 11
|
|
BoxMon15OT:: ; b040
|
|
ds 11
|
|
BoxMon16OT:: ; b04b
|
|
ds 11
|
|
BoxMon17OT:: ; b056
|
|
ds 11
|
|
BoxMon18OT:: ; b061
|
|
ds 11
|
|
BoxMon19OT:: ; b06c
|
|
ds 11
|
|
BoxMon20OT:: ; b077
|
|
ds 11
|
|
|
|
BoxMonNicknames::
|
|
BoxMon1Nickname:: ; b082
|
|
ds 11
|
|
BoxMon2Nickname:: ; b08d
|
|
ds 11
|
|
BoxMon3Nickname:: ; b098
|
|
ds 11
|
|
BoxMon4Nickname:: ; b0a3
|
|
ds 11
|
|
BoxMon5Nickname:: ; b0ae
|
|
ds 11
|
|
BoxMon6Nickname:: ; b0b9
|
|
ds 11
|
|
BoxMon7Nickname:: ; b0c4
|
|
ds 11
|
|
BoxMon8Nickname:: ; b0cf
|
|
ds 11
|
|
BoxMon9Nickname:: ; b0da
|
|
ds 11
|
|
BoxMon10Nickname:: ; b0e5
|
|
ds 11
|
|
BoxMon11Nickname:: ; b0f0
|
|
ds 11
|
|
BoxMon12Nickname:: ; b0fb
|
|
ds 11
|
|
BoxMon13Nickname:: ; b106
|
|
ds 11
|
|
BoxMon14Nickname:: ; b111
|
|
ds 11
|
|
BoxMon15Nickname:: ; b11c
|
|
ds 11
|
|
BoxMon16Nickname:: ; b127
|
|
ds 11
|
|
BoxMon17Nickname:: ; b132
|
|
ds 11
|
|
BoxMon18Nickname:: ; b13d
|
|
ds 11
|
|
BoxMon19Nickname:: ; b148
|
|
ds 11
|
|
BoxMon20Nickname:: ; b153
|
|
ds 11
|
|
BoxMonNicknamesEnd::
|
|
|