mirror of https://github.com/pret/pokecrystal.git
2350 lines
31 KiB
NASM
2350 lines
31 KiB
NASM
INCLUDE "includes.asm"
|
|
|
|
|
|
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
|
|
|
|
ds 21
|
|
|
|
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
|
|
TempMonCurHP: ; 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:
|
|
OTPartyMon1Species: ; d288
|
|
ds 1
|
|
OTPartyMon1Item: ; d289
|
|
ds 1
|
|
|
|
OTPartyMon1Moves: ; d28a
|
|
OTPartyMon1Move1: ; d28a
|
|
ds 1
|
|
OTPartyMon1Move2: ; d28b
|
|
ds 1
|
|
OTPartyMon1Move3: ; d28c
|
|
ds 1
|
|
OTPartyMon1Move4: ; d28d
|
|
ds 1
|
|
|
|
OTPartyMon1ID: ; d28e
|
|
ds 2
|
|
OTPartyMon1Exp: ; d290
|
|
ds 3
|
|
OTPartyMon1HPExp: ; d293
|
|
ds 2
|
|
OTPartyMon1AtkExp: ; d295
|
|
ds 2
|
|
OTPartyMon1DefExp: ; d297
|
|
ds 2
|
|
OTPartyMon1SpdExp: ; d299
|
|
ds 2
|
|
OTPartyMon1SpclExp: ; d29b
|
|
ds 2
|
|
|
|
OTPartyMon1DVs: ; d29d
|
|
OTPartyMon1AtkDefDV: ; d29d
|
|
ds 1
|
|
OTPartyMon1SpdSpclDV: ; d29e
|
|
ds 1
|
|
|
|
OTPartyMon1PP: ; d29f
|
|
OTPartyMon1PPMove1: ; d29f
|
|
ds 1
|
|
OTPartyMon1PPMove2: ; d2a0
|
|
ds 1
|
|
OTPartyMon1PPMove3: ; d2a1
|
|
ds 1
|
|
OTPartyMon1PPMove4: ; d2a2
|
|
ds 1
|
|
|
|
OTPartyMon1Happiness: ; d2a3
|
|
ds 1
|
|
OTPartyMon1PokerusStatus: ; d2a4
|
|
ds 1
|
|
|
|
OTPartyMon1CaughtData: ; d2a5
|
|
OTPartyMon1CaughtGender: ; d2a5
|
|
OTPartyMon1CaughtLocation: ; d2a5
|
|
ds 1
|
|
OTPartyMon1CaughtTime: ; d2a6
|
|
ds 1
|
|
OTPartyMon1Level: ; d2a7
|
|
ds 1
|
|
|
|
OTPartyMon1Status: ; d2a8
|
|
ds 1
|
|
OTPartyMon1Unused: ; d2a9
|
|
ds 1
|
|
OTPartyMon1CurHP: ; d2aa
|
|
ds 2
|
|
OTPartyMon1MaxHP: ; d2ac
|
|
ds 2
|
|
OTPartyMon1Atk: ; d2ae
|
|
ds 2
|
|
OTPartyMon1Def: ; d2b0
|
|
ds 2
|
|
OTPartyMon1Spd: ; d2b2
|
|
ds 2
|
|
OTPartyMon1SpclAtk: ; d2b4
|
|
ds 2
|
|
OTPartyMon1SpclDef: ; d2b6
|
|
ds 2
|
|
|
|
OTPartyMon2: ; d2b8
|
|
ds 48
|
|
OTPartyMon3: ; d2e8
|
|
ds 48
|
|
OTPartyMon4: ; d318
|
|
ds 48
|
|
OTPartyMon5: ; d348
|
|
ds 48
|
|
OTPartyMon6: ; d378
|
|
ds 48
|
|
|
|
|
|
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 "Scripting",WRAMX[$d434],BANK[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
|
|
|
|
|
|
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 2
|
|
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:
|
|
PartyMon1Species: ; dcdf
|
|
ds 1
|
|
PartyMon1Item: ; dce0
|
|
ds 1
|
|
|
|
PartyMon1Moves: ; dce1
|
|
PartyMon1Move1: ; dce1
|
|
ds 1
|
|
PartyMon1Move2: ; dce2
|
|
ds 1
|
|
PartyMon1Move3: ; dce3
|
|
ds 1
|
|
PartyMon1Move4: ; dce4
|
|
ds 1
|
|
|
|
PartyMon1ID: ; dce5
|
|
ds 2
|
|
PartyMon1Exp: ; dce7
|
|
ds 3
|
|
|
|
PartyMon1HPExp: ; dcea
|
|
ds 2
|
|
PartyMon1AtkExp: ; dcec
|
|
ds 2
|
|
PartyMon1DefExp: ; dcee
|
|
ds 2
|
|
PartyMon1SpdExp: ; dcf0
|
|
ds 2
|
|
PartyMon1SpclExp: ; dcf2
|
|
ds 2
|
|
|
|
PartyMon1DVs: ; dcf4
|
|
; hp = %1000 for each dv
|
|
ds 1 ; atk/def
|
|
ds 1 ; spd/spc
|
|
PartyMon1PP: ; dcf6
|
|
ds 4
|
|
PartyMon1Happiness: ; dcfa
|
|
ds 1
|
|
PartyMon1PokerusStatus: ; dcfb
|
|
ds 1
|
|
PartyMon1CaughtData: ; dcfc
|
|
PartyMon1CaughtTime: ; dcfc
|
|
PartyMon1CaughtLevel: ; dcfc
|
|
ds 1
|
|
PartyMon1CaughtGender: ; dcfd
|
|
PartyMon1CaughtLocation: ; dcfd
|
|
ds 1
|
|
PartyMon1Level: ; dcfe
|
|
ds 1
|
|
PartyMon1Status: ; dcff
|
|
ds 1
|
|
; dd00 unused
|
|
ds 1
|
|
PartyMon1CurHP: ; dd01
|
|
ds 2
|
|
PartyMon1MaxHP: ; dd03
|
|
ds 2
|
|
PartyMon1Atk: ; dd05
|
|
ds 2
|
|
PartyMon1Def: ; dd07
|
|
ds 2
|
|
PartyMon1Spd: ; dd09
|
|
ds 2
|
|
PartyMon1SpclAtk: ; dd0b
|
|
ds 2
|
|
PartyMon1SpclDef: ; dd0d
|
|
ds 2
|
|
|
|
|
|
PartyMon2: ; dd0f
|
|
ds 48
|
|
PartyMon3: ; dd3f
|
|
ds 48
|
|
PartyMon4: ; dd6f
|
|
ds 48
|
|
PartyMon5: ; dd9f
|
|
ds 48
|
|
PartyMon6: ; ddcf
|
|
ds 48
|
|
|
|
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
|
|
|
|
SECTION "RoamMons",WRAMX[$dfcf],BANK[1]
|
|
RoamMon1Species: ; dfcf
|
|
ds 1
|
|
RoamMon1Level: ; dfd0
|
|
ds 1
|
|
RoamMon1MapGroup: ; dfd1
|
|
ds 1
|
|
RoamMon1MapNumber: ; dfd2
|
|
ds 1
|
|
RoamMon1CurHP: ; dfd3
|
|
ds 1
|
|
RoamMon1DVs: ; dfd4
|
|
ds 2
|
|
|
|
RoamMon2Species: ; dfd6
|
|
ds 1
|
|
RoamMon2Level: ; dfd7
|
|
ds 1
|
|
RoamMon2MapGroup: ; dfd8
|
|
ds 1
|
|
RoamMon2MapNumber: ; dfd9
|
|
ds 1
|
|
RoamMon2CurHP: ; dfda
|
|
ds 1
|
|
RoamMon2DVs: ; dfdb
|
|
ds 2
|
|
|
|
RoamMon3Species: ; dfdd
|
|
ds 1
|
|
RoamMon3Level: ; dfde
|
|
ds 1
|
|
RoamMon3MapGroup: ; dfdf
|
|
ds 1
|
|
RoamMon3MapNumber: ; dfe0
|
|
ds 1
|
|
RoamMon3CurHP: ; 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:
|
|
|