shithub: pokecrystal

ref: bfbb9b77e8b55fa2acdaf2c4267b5221fabb410b
dir: /wram.asm/

View raw version
SECTION "audio",BSS[$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
; unused? ; c10b
	ds 1
; unused? ; c10c
	ds 1
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
	ds 7
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
; c2a6
	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 9
LastVolume: ; c2b4
; preserves volume of a song playing so cries can have their own volume
	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


SECTION "linkbattle",BSS[$c2dc]

InLinkBattle: ; 0xc2dc
	ds 1 ; nonzero when in a link battle

SECTION "tiles",BSS[$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 "BattleMons",BSS[$c62a]

BattleMonSpecies: ; c62a
	ds 1
	ds 1
BattleMonSpecies2: ; 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

SECTION "prng",BSS[$c6e5]
LinkBattleRNCount: ; c6e5
	ds 1

SECTION "Engine",BSS[$cfcc]
Options: ; cfcc
; bit 0-2: number of frames to delay when printing text
;   fast 1; mid 3; slow 5
; bit 3-4: unused
; 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 161
	
StringBuffer1: ; d073
	ds 19
StringBuffer2: ; d086
	ds 19
StringBuffer3: ; d099
	ds 19
	
	ds 65

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 26
	
CurPartySpecies: ; d108
	ds 1

CurPartyMon: ; d109
; contains which monster in a party
; is being dealt with at the moment
; 0-5
	ds 1

	ds 57

CurPartyLevel: ; d143
	ds 1

	ds 166

Buffer1:
MagikarpLength:
MagikarpLengthHi: ; d1ea
	ds 1
Buffer2:
MagikarpLengthLo: ; d1eb
	ds 1

SECTION "prng2",BSS[$d1fa]
LinkBattleRNs: ; d1fa
	ds 10

SECTION "EnemyMon",BSS[$d204]

EnemyMonSpecies: ; d204
	ds 1
	ds 1
EnemyMonSpecies2: ; d206
	ds 1
EnemyMonItem: ; d207
	ds 1

EnemyMonMoves:
EnemyMonMove1: ; d208
	ds 1
EnemyMonMove2: ; d209
	ds 1
EnemyMonMove3: ; d20a
	ds 1
EnemyMonMove4: ; d20b
	ds 1

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

EnemyMonAtk: ; d21a
	ds 2
EnemyMonDef: ; d21c
	ds 2
EnemyMonSpd: ; d21e
	ds 2
EnemyMonSpclAtk: ; d220
	ds 2
EnemyMonSpclDef: ; d222
	ds 2

SECTION "Battle",BSS[$d22d]

BattleClass: ; d22d
; 0: wild battle
; 1: 
; 2: trainer battle
	ds 1
	
	ds 1

OtherTrainerClass: ; 0xd22f
; class (Youngster, Bug Catcher, etc.) of opposing trainer
; 0 if opponent is a wild Pokémon, not a trainer
	ds 1

BattleType: ; 0xd230
; $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: ; 0xd231
; which trainer of the class that you're fighting
; (Joey, Mikey, Albert, etc.)
	ds 1

	ds 2

UnownLetter: ; d234
	ds 1

	ds 1

CurBaseStats: ; d236
	ds 32

SECTION "TimeOfDay",BSS[$d269]

TimeOfDay: ; 0xd269
; 0 if morn
; 1 if day
; 2 if nite
	ds 1

SECTION "OtherTrainerParty",BSS[$d280]

OTPartyMonHeader: ; d280
TotalBeltMons: ; d280
	ds 1

OTPartyMonSpecies: ; d281
OTPartyMon1Species: ; d281
	ds 1
OTPartyMon2Species: ; d282
	ds 1
OTPartyMon3Species: ; d283
	ds 1
OTPartyMon4Species: ; d284
	ds 1
OTPartyMon5Species: ; d285
	ds 1
OTPartyMon6Species: ; d286
	ds 1
OTPartyMonsEnd: ; d287
	ds 1

OTPartyMon1:
OTPartyMon1Species2: ; 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
OTPartyMon2Species2: ; d2b8
	ds 1
OTPartyMon2Item: ; d2b9
	ds 1

OTPartyMon2Moves: ; d2ba
OTPartyMon2Move1: ; d2ba
	ds 1
OTPartyMon2Move2: ; d2bb
	ds 1
OTPartyMon2Move3: ; d2bc
	ds 1
OTPartyMon2Move4: ; d2bd
	ds 1
	
OTPartyMon2ID: ; d2be
	ds 2
OTPartyMon2Exp: ; d2c0
	ds 3
OTPartyMon2HPExp: ; d2c3
	ds 2
OTPartyMon2AtkExp: ; d2c5
	ds 2
OTPartyMon2DefExp: ; d2c7
	ds 2
OTPartyMon2SpdExp: ; d2c9
	ds 2
OTPartyMon2SpclExp: ; d2cb
	ds 2

OTPartyMon2DVs: ; d2cd
OTPartyMon2AtkDefDV: ; d2cd
	ds 1
OTPartyMon2SpdSpclDV: ; d2ce
	ds 1

OTPartyMon2PP: ; d2cf
OTPartyMon2PPMove1: ; d2cf
	ds 1
OTPartyMon2PPMove2: ; d2d0
	ds 1
OTPartyMon2PPMove3: ; d2d1
	ds 1
OTPartyMon2PPMove4: ; d2d2
	ds 1

OTPartyMon2Happiness: ; d2d3
	ds 1
OTPartyMon2PokerusStatus: ; d2d4
	ds 1

OTPartyMon2CaughtData: ; d2d5
OTPartyMon2CaughtGender: ; d2d5
OTPartyMon2CaughtLocation: ; d2d5
	ds 1
OTPartyMon2CaughtTime: ; d2d6
	ds 1
OTPartyMon2Level: ; d2d7
	ds 1
	
OTPartyMon2Status: ; d2d8
	ds 1
OTPartyMon2Unused: ; d2d9
	ds 1
OTPartyMon2CurHP: ; d2da
	ds 2
OTPartyMon2MaxHP: ; d2dc
	ds 2
OTPartyMon2Atk: ; d2de
	ds 2
OTPartyMon2Def: ; d2e0
	ds 2
OTPartyMon2Spd: ; d2e2
	ds 2
OTPartyMon2SpclAtk: ; d2e4
	ds 2
OTPartyMon2SpclDef: ; d2e6
	ds 2

OTPartyMon3: ; d2e8
OTPartyMon3Species2: ; d2e8
	ds 1
OTPartyMon3Item: ; d2e9
	ds 1

OTPartyMon3Moves: ; d2ea
OTPartyMon3Move1: ; d2ea
	ds 1
OTPartyMon3Move2: ; d2eb
	ds 1
OTPartyMon3Move3: ; d2ec
	ds 1
OTPartyMon3Move4: ; d2ed
	ds 1
	
OTPartyMon3ID: ; d2ee
	ds 2
OTPartyMon3Exp: ; d2f0
	ds 3
OTPartyMon3HPExp: ; d2f3
	ds 2
OTPartyMon3AtkExp: ; d2f5
	ds 2
OTPartyMon3DefExp: ; d2f7
	ds 2
OTPartyMon3SpdExp: ; d2f9
	ds 2
OTPartyMon3SpclExp: ; d2fb
	ds 2

OTPartyMon3DVs: ; d2fd
OTPartyMon3AtkDefDV: ; d2fd
	ds 1
OTPartyMon3SpdSpclDV: ; d2fe
	ds 1

OTPartyMon3PP: ; d2ff
OTPartyMon3PPMove1: ; d2ff
	ds 1
OTPartyMon3PPMove2: ; d300
	ds 1
OTPartyMon3PPMove3: ; d301
	ds 1
OTPartyMon3PPMove4: ; d302
	ds 1

OTPartyMon3Happiness: ; d303
	ds 1
OTPartyMon3PokerusStatus: ; d304
	ds 1

OTPartyMon3CaughtData: ; d305
OTPartyMon3CaughtGender: ; d305
OTPartyMon3CaughtLocation: ; d305
	ds 1
OTPartyMon3CaughtTime: ; d306
	ds 1
OTPartyMon3Level: ; d307
	ds 1
	
OTPartyMon3Status: ; d308
	ds 1
OTPartyMon3Unused: ; d309
	ds 1
OTPartyMon3CurHP: ; d30a
	ds 2
OTPartyMon3MaxHP: ; d30c
	ds 2
OTPartyMon3Atk: ; d30e
	ds 2
OTPartyMon3Def: ; d310
	ds 2
OTPartyMon3Spd: ; d312
	ds 2
OTPartyMon3SpclAtk: ; d314
	ds 2
OTPartyMon3SpclDef: ; d316
	ds 2

OTPartyMon4: ; d318
OTPartyMon4Species2: ; d318
	ds 1
OTPartyMon4Item: ; d319
	ds 1

OTPartyMon4Moves: ; d31a
OTPartyMon4Move1: ; d31a
	ds 1
OTPartyMon4Move2: ; d31b
	ds 1
OTPartyMon4Move3: ; d31c
	ds 1
OTPartyMon4Move4: ; d31d
	ds 1
	
OTPartyMon4ID: ; d31e
	ds 2
OTPartyMon4Exp: ; d320
	ds 3
OTPartyMon4HPExp: ; d323
	ds 2
OTPartyMon4AtkExp: ; d325
	ds 2
OTPartyMon4DefExp: ; d327
	ds 2
OTPartyMon4SpdExp: ; d329
	ds 2
OTPartyMon4SpclExp: ; d32b
	ds 2

OTPartyMon4DVs: ; d32d
OTPartyMon4AtkDefDV: ; d32d
	ds 1
OTPartyMon4SpdSpclDV: ; d32e
	ds 1

OTPartyMon4PP: ; d32f
OTPartyMon4PPMove1: ; d32f
	ds 1
OTPartyMon4PPMove2: ; d330
	ds 1
OTPartyMon4PPMove3: ; d331
	ds 1
OTPartyMon4PPMove4: ; d332
	ds 1

OTPartyMon4Happiness: ; d333
	ds 1
OTPartyMon4PokerusStatus: ; d334
	ds 1

OTPartyMon4CaughtData: ; d335
OTPartyMon4CaughtGender: ; d335
OTPartyMon4CaughtLocation: ; d335
	ds 1
OTPartyMon4CaughtTime: ; d336
	ds 1
OTPartyMon4Level: ; d337
	ds 1
	
OTPartyMon4Status: ; d338
	ds 1
OTPartyMon4Unused: ; d339
	ds 1
OTPartyMon4CurHP: ; d33a
	ds 2
OTPartyMon4MaxHP: ; d33c
	ds 2
OTPartyMon4Atk: ; d33e
	ds 2
OTPartyMon4Def: ; d340
	ds 2
OTPartyMon4Spd: ; d342
	ds 2
OTPartyMon4SpclAtk: ; d344
	ds 2
OTPartyMon4SpclDef: ; d346
	ds 2

OTPartyMon5: ; d348
OTPartyMon5Species2: ; d348
	ds 1
OTPartyMon5Item: ; d349
	ds 1

OTPartyMon5Moves: ; d34a
OTPartyMon5Move1: ; d34a
	ds 1
OTPartyMon5Move2: ; d34b
	ds 1
OTPartyMon5Move3: ; d34c
	ds 1
OTPartyMon5Move4: ; d34d
	ds 1
	
OTPartyMon5ID: ; d34e
	ds 2
OTPartyMon5Exp: ; d350
	ds 3
OTPartyMon5HPExp: ; d353
	ds 2
OTPartyMon5AtkExp: ; d355
	ds 2
OTPartyMon5DefExp: ; d357
	ds 2
OTPartyMon5SpdExp: ; d359
	ds 2
OTPartyMon5SpclExp: ; d35b
	ds 2

OTPartyMon5DVs: ; d35d
OTPartyMon5AtkDefDV: ; d35d
	ds 1
OTPartyMon5SpdSpclDV: ; d35e
	ds 1

OTPartyMon5PP: ; d35f
OTPartyMon5PPMove1: ; d35f
	ds 1
OTPartyMon5PPMove2: ; d360
	ds 1
OTPartyMon5PPMove3: ; d361
	ds 1
OTPartyMon5PPMove4: ; d362
	ds 1

OTPartyMon5Happiness: ; d363
	ds 1
OTPartyMon5PokerusStatus: ; d364
	ds 1

OTPartyMon5CaughtData: ; d365
OTPartyMon5CaughtGender: ; d365
OTPartyMon5CaughtLocation: ; d365
	ds 1
OTPartyMon5CaughtTime: ; d366
	ds 1
OTPartyMon5Level: ; d367
	ds 1
	
OTPartyMon5Status: ; d368
	ds 1
OTPartyMon5Unused: ; d369
	ds 1
OTPartyMon5CurHP: ; d36a
	ds 2
OTPartyMon5MaxHP: ; d36c
	ds 2
OTPartyMon5Atk: ; d36e
	ds 2
OTPartyMon5Def: ; d370
	ds 2
OTPartyMon5Spd: ; d372
	ds 2
OTPartyMon5SpclAtk: ; d374
	ds 2
OTPartyMon5SpclDef: ; d376
	ds 2

OTPartyMon6: ; d378
OTPartyMon6Species2: ; d378
	ds 1
OTPartyMon6Item: ; d379
	ds 1

OTPartyMon6Moves: ; d37a
OTPartyMon6Move1: ; d37a
	ds 1
OTPartyMon6Move2: ; d37b
	ds 1
OTPartyMon6Move3: ; d37c
	ds 1
OTPartyMon6Move4: ; d37d
	ds 1
	
OTPartyMon6ID: ; d37e
	ds 2
OTPartyMon6Exp: ; d380
	ds 3
OTPartyMon6HPExp: ; d383
	ds 2
OTPartyMon6AtkExp: ; d385
	ds 2
OTPartyMon6DefExp: ; d387
	ds 2
OTPartyMon6SpdExp: ; d389
	ds 2
OTPartyMon6SpclExp: ; d38b
	ds 2

OTPartyMon6DVs: ; d38d
OTPartyMon6AtkDefDV: ; d38d
	ds 1
OTPartyMon6SpdSpclDV: ; d38e
	ds 1

OTPartyMon6PP: ; d38f
OTPartyMon6PPMove1: ; d38f
	ds 1
OTPartyMon6PPMove2: ; d390
	ds 1
OTPartyMon6PPMove3: ; d391
	ds 1
OTPartyMon6PPMove4: ; d392
	ds 1

OTPartyMon6Happiness: ; d393
	ds 1
OTPartyMon6PokerusStatus: ; d394
	ds 1

OTPartyMon6CaughtData: ; d395
OTPartyMon6CaughtGender: ; d395
OTPartyMon6CaughtLocation: ; d395
	ds 1
OTPartyMon6CaughtTime: ; d396
	ds 1
OTPartyMon6Level: ; d397
	ds 1
	
OTPartyMon6Status: ; d398
	ds 1
OTPartyMon6Unused: ; d399
	ds 1
OTPartyMon6CurHP: ; d39a
	ds 2
OTPartyMon6MaxHP: ; d39c
	ds 2
OTPartyMon6Atk: ; d39e
	ds 2
OTPartyMon6Def: ; d3a0
	ds 2
OTPartyMon6Spd: ; d3a2
	ds 2
OTPartyMon6SpclAtk: ; d3a4
	ds 2
OTPartyMon6SpclDef: ; d3a6
	ds 2

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 "Player",BSS[$d47b]
PlayerID: ; 0xd47b
	ds 2
PlayerName: ; 0xd47d
	ds 11

	ds 46
	
; init time set at newgame
StartDay: ; d4b6
	ds 1
StartHour: ; d4b7
	ds 1
StartMinute: ; d4b8
	ds 1
StartSecond: ; d4b9
	ds 1

	ds 17

CurDay: ; d4cb
	ds 1

	ds 12

PlayerSprite: ; 0xd4d8
	ds 1

	ds 5

PlayerDirection: ; d4de
; uses bits 2 and 3 / $0c / %00001100
; %00 down
; %01 up
; %10 left
; $11 right
	ds 1

SECTION "Status",BSS[$d84e]
Money: ; d84e
	ds 3

	ds 6
	
Badges:
JohtoBadges: ; d857
	ds 1
KantoBadges: ; d858
	ds 1
	
SECTION "Items",BSS[$d859]
TMsHMs: ; d859
	ds 57

NumItems: ; d892
	ds 1
Items: ; d893
	ds 69

NumKeyItems: ; d8bc
	ds 1
KeyItems: ; d8bd
	ds 13
	
NumBalls: ; d8d7
	ds 1
Balls: ; d8d8
	ds 25
	
SECTION "overworld",BSS[$d95d]
PlayerState: ; d95d
; $00: normal
; $01: bicycle
; $04: surf
; $08: surf (pikachu)
	ds 1

SECTION "scriptram",BSS[$d962]
MooMooBerries: ; 0xd962
	ds 1 ; how many berries fed to MooMoo
UndergroundSwitchPositions: ; 0xd963
	ds 1 ; which positions the switches are in
FarfetchdPosition: ; 0xd964
	ds 1 ; which position the ilex farfetch'd is in

SECTION "Events",BSS[$dad4]

;RoomDecorations: ; dac6
;	db 7

HoOhEvent: ; dad4
	ds 1
LugiaEvent: ; dad5
	ds 1

; TODO
;SuicuneEvent: ; dad8 (tin tower)
;TeamRocketAzaleaTownAttackEvent: ; db51
;SudowoodoEvent: ; db51
;PoliceAtElmsLabEvent: ; db52
;SalesmanMahoganyTownEvent: ; db5c
;RedGyaradosEvent: ; db5c

SECTION "BoxNames",BSS[$db75]
; 8 chars + $50
Box1Name: ; 0xdb75
	ds 9
Box2Name: ; 0xdbce
	ds 9
Box3Name: ; 0xdbd7
	ds 9
Box4Name: ; 0xdbe0
	ds 9
Box5Name: ; 0xdbe9
	ds 9
Box6Name: ; 0xdbf2
	ds 9
Box7Name: ; 0xdbfb
	ds 9
Box8Name: ; 0xdc04
	ds 9
Box9Name: ; 0xdc0d
	ds 9
Box10Name: ; 0xdc16
	ds 9
Box11Name: ; 0xdc1f
	ds 9
Box12Name: ; 0xdc28
	ds 9
Box13Name: ; 0xdc31
	ds 9
Box14Name: ; 0xdc3a
	ds 9

SECTION "BackupMapInfo", BSS[$dcad]

; used on maps like second floor pokécenter, which are reused, so we know which
; map to return to
BackupMapGroup: ; 0xdcad
	ds 1
BackupMapNumber: ; 0xdcae
	ds 1

SECTION "PlayerMapInfo", BSS[$dcb4]

WarpNumber: ; 0xdcb4
	ds 1
MapGroup: ; 0xdcb5
	ds 1 ; map group of current map
MapNumber: ; 0xdcb6
	ds 1 ; map number of current map
YCoord: ; 0xdcb7
	ds 1 ; current y coordinate relative to top-left corner of current map
XCoord: ; 0xdcb8
	ds 1 ; current x coordinate relative to top-left corner of current map

SECTION "PlayerParty",BSS[$dcd7]

PartyCount: ; 0xdcd7
	ds 1 ; number of Pokémon in party
PartySpecies: ; 0xdcd8
	ds 6 ; species of each Pokémon in party
; 0xdcde
	ds 1 ; any empty slots including the 7th must be FF
	     ; or the routine will keep going
		 
PartyMons:
PartyMon1:
PartyMon1Species: ; 0xdcdf
	ds 1
PartyMon1Item: ; 0xdce0
	ds 1

PartyMon1Moves: ; 0xdce1
PartyMon1Move1: ; 0xdce1
	ds 1
PartyMon1Move2: ; 0xdce2
	ds 1
PartyMon1Move3: ; 0xdce3
	ds 1
PartyMon1Move4: ; 0xdce4
	ds 1

PartyMon1ID: ; 0xdce5
	ds 2
PartyMon1Exp: ; 0xdce7
	ds 3
PartyMon1HPExp: ; 0xdcea
	ds 2
PartyMon1AtkExp: ; 0xdcec
	ds 2
PartyMon1DefExp: ; 0xdcee
	ds 2
PartyMon1SpdExp: ; 0xdcf0
	ds 2
PartyMon1SpclExp: ; 0xdcf2
	ds 2
PartyMon1DVs: ; 0xdcf4
	ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
PartyMon1PP: ; 0xdcf6
	ds 4
PartyMon1Happiness: ; 0xdcfa
	ds 1
PartyMon1PokerusStatus: ; 0xdcfb
	ds 1
PartyMon1CaughtData: ; 0xdcfc
PartyMon1CaughtTime: ; 0xdcfc
PartyMon1CaughtLevel ; 0xdcfc
	ds 1
PartyMon1CaughtGender: ; 0xdcfd
PartyMon1CaughtLocation: ; 0xdcfd
	ds 1
PartyMon1Level: ; 0xdcfe
	ds 1
PartyMon1Status: ; 0xdcff
	ds 1
; 0xdd00 unused
	ds 1
PartyMon1CurHP: ; 0xdd01
	ds 2
PartyMon1MaxHP: ; 0xdd03
	ds 2
PartyMon1Atk: ; 0xdd05
	ds 2
PartyMon1Def: ; 0xdd07
	ds 2
PartyMon1Spd: ; 0xdd09
	ds 2
PartyMon1SpclAtk: ; 0xdd0b
	ds 2
PartyMon1SpclDef: ; 0xdd0d
	ds 2



PartyMon2: ; 0xdd0f
PartyMon2Species: ; 0xdd0f
	ds 1
PartyMon2Item: ; 0xdd10
	ds 1
PartyMon2Moves: ; 0xdd11
PartyMon2Move1: ; 0xdd11
	ds 1
PartyMon2Move2: ; 0xdd12
	ds 1
PartyMon2Move3: ; 0xdd13
	ds 1
PartyMon2Move4: ; 0xdd14
	ds 1
PartyMon2ID: ; 0xdd15
	ds 2
PartyMon2Exp: ; 0xdd17
	ds 3
PartyMon2HPExp: ; 0xdd1a
	ds 2
PartyMon2AtkExp: ; 0xdd1c
	ds 2
PartyMon2DefExp: ; 0xdd1e
	ds 2
PartyMon2SpdExp: ; 0xdd20
	ds 2
PartyMon2SpclExp: ; 0xdd22
	ds 2
PartyMon2DVs: ; 0xdd24
	ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
PartyMon2PP: ; 0xdd26
	ds 4
PartyMon2Happiness: ; 0xdd2a
	ds 1
PartyMon2PokerusStatus: ; 0xdd2b
	ds 1
PartyMon2CaughtData: ; 0xdd2c
PartyMon2CaughtTime: ; 0xdd2c
PartyMon2CaughtLevel ; 0xdd2c
	ds 1
PartyMon2CaughtGender: ; 0xdd2d
PartyMon2CaughtLocation: ; 0xdd2d
	ds 1
PartyMon2Level: ; 0xdd2e
	ds 1
PartyMon2Status: ; 0xdd2f
	ds 1
; 0xdd30 unused
	ds 1
PartyMon2CurHP: ; 0xdd31
	ds 2
PartyMon2MaxHP: ; 0xdd33
	ds 2
PartyMon2Atk: ; 0xdd35
	ds 2
PartyMon2Def: ; 0xdd37
	ds 2
PartyMon2Spd: ; 0xdd39
	ds 2
PartyMon2SpclAtk: ; 0xdd3b
	ds 2
PartyMon2SpclDef: ; 0xdd3d
	ds 2



PartyMon3: ; 0xdd3f
PartyMon3Species: ; 0xdd3f
	ds 1
PartyMon3Item: ; 0xdd40
	ds 1
PartyMon3Moves: ; 0xdd41
PartyMon3Move1: ; 0xdd41
	ds 1
PartyMon3Move2: ; 0xdd42
	ds 1
PartyMon3Move3: ; 0xdd43
	ds 1
PartyMon3Move4: ; 0xdd44
	ds 1
PartyMon3ID: ; 0xdd45
	ds 2
PartyMon3Exp: ; 0xdd47
	ds 3
PartyMon3HPExp: ; 0xdd4a
	ds 2
PartyMon3AtkExp: ; 0xdd4c
	ds 2
PartyMon3DefExp: ; 0xdd4e
	ds 2
PartyMon3SpdExp: ; 0xdd50
	ds 2
PartyMon3SpclExp: ; 0xdd52
	ds 2
PartyMon3DVs: ; 0xdd54
	ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
PartyMon3PP: ; 0xdd56
	ds 4
PartyMon3Happiness: ; 0xdd5a
	ds 1
PartyMon3PokerusStatus: ; 0xdd5b
	ds 1
PartyMon3CaughtData: ; 0xdd5c
PartyMon3CaughtTime: ; 0xdd5c
PartyMon3CaughtLevel ; 0xdd5c
	ds 1
PartyMon3CaughtGender: ; 0xdd5d
PartyMon3CaughtLocation: ; 0xdd5d
	ds 1
PartyMon3Level: ; 0xdd5e
	ds 1
PartyMon3Status: ; 0xdd5f
	ds 1
; 0xdd60 unused
	ds 1
PartyMon3CurHP: ; 0xdd61
	ds 2
PartyMon3MaxHP: ; 0xdd63
	ds 2
PartyMon3Atk: ; 0xdd65
	ds 2
PartyMon3Def: ; 0xdd67
	ds 2
PartyMon3Spd: ; 0xdd69
	ds 2
PartyMon3SpclAtk: ; 0xdd6b
	ds 2
PartyMon3SpclDef: ; 0xdd6d
	ds 2



PartyMon4: ; 0xdd6f
PartyMon4Species: ; 0xdd6f
	ds 1
PartyMon4Item: ; 0xdd70
	ds 1
PartyMon4Moves: ; 0xdd71
PartyMon4Move1: ; 0xdd71
	ds 1
PartyMon4Move2: ; 0xdd72
	ds 1
PartyMon4Move3: ; 0xdd73
	ds 1
PartyMon4Move4: ; 0xdd74
	ds 1
PartyMon4ID: ; 0xdd75
	ds 2
PartyMon4Exp: ; 0xdd77
	ds 3
PartyMon4HPExp: ; 0xdd7a
	ds 2
PartyMon4AtkExp: ; 0xdd7c
	ds 2
PartyMon4DefExp: ; 0xdd7e
	ds 2
PartyMon4SpdExp: ; 0xdd80
	ds 2
PartyMon4SpclExp: ; 0xdd82
	ds 2
PartyMon4DVs: ; 0xdd84
	ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
PartyMon4PP: ; 0xdd86
	ds 4
PartyMon4Happiness: ; 0xdd8a
	ds 1
PartyMon4PokerusStatus: ; 0xdd8b
	ds 1
PartyMon4CaughtData: ; 0xdd8c
PartyMon4CaughtTime: ; 0xdd8c
PartyMon4CaughtLevel ; 0xdd8c
	ds 1
PartyMon4CaughtGender: ; 0xdd8d
PartyMon4CaughtLocation: ; 0xdd8d
	ds 1
PartyMon4Level: ; 0xdd8e
	ds 1
PartyMon4Status: ; 0xdd8f
	ds 1
; 0xdd90 unused
	ds 1
PartyMon4CurHP: ; 0xdd91
	ds 2
PartyMon4MaxHP: ; 0xdd93
	ds 2
PartyMon4Atk: ; 0xdd95
	ds 2
PartyMon4Def: ; 0xdd97
	ds 2
PartyMon4Spd: ; 0xdd99
	ds 2
PartyMon4SpclAtk: ; 0xdd9b
	ds 2
PartyMon4SpclDef: ; 0xdd9d
	ds 2



PartyMon5: ; 0xdd9f
PartyMon5Species: ; 0xdd9f
	ds 1
PartyMon5Item: ; 0xdda0
	ds 1
PartyMon5Moves: ; 0xdda1
PartyMon5Move1: ; 0xdda1
	ds 1
PartyMon5Move2: ; 0xdda2
	ds 1
PartyMon5Move3: ; 0xdda3
	ds 1
PartyMon5Move4: ; 0xdda4
	ds 1
PartyMon5ID: ; 0xdda5
	ds 2
PartyMon5Exp: ; 0xdda7
	ds 3
PartyMon5HPExp: ; 0xddaa
	ds 2
PartyMon5AtkExp: ; 0xddac
	ds 2
PartyMon5DefExp: ; 0xddae
	ds 2
PartyMon5SpdExp: ; 0xddb0
	ds 2
PartyMon5SpclExp: ; 0xddb2
	ds 2
PartyMon5DVs: ; 0xddb4
	ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
PartyMon5PP: ; 0xddb6
	ds 4
PartyMon5Happiness: ; 0xddba
	ds 1
PartyMon5PokerusStatus: ; 0xddbb
	ds 1
PartyMon5CaughtData: ; 0xddbc
PartyMon5CaughtTime: ; 0xddbc
PartyMon5CaughtLevel ; 0xddbc
	ds 1
PartyMon5CaughtGender: ; 0xddbd
PartyMon5CaughtLocation: ; 0xddbd
	ds 1
PartyMon5Level: ; 0xddbe
	ds 1
PartyMon5Status: ; 0xddbf
	ds 1
; 0xddc0 unused
	ds 1
PartyMon5CurHP: ; 0xddc1
	ds 2
PartyMon5MaxHP: ; 0xddc3
	ds 2
PartyMon5Atk: ; 0xddc5
	ds 2
PartyMon5Def: ; 0xddc7
	ds 2
PartyMon5Spd: ; 0xddc9
	ds 2
PartyMon5SpclAtk: ; 0xddcb
	ds 2
PartyMon5SpclDef: ; 0xddcd
	ds 2



PartyMon6: ; 0xddcf
PartyMon6Species: ; 0xddcf
	ds 1
PartyMon6Item: ; 0xddd0
	ds 1
PartyMon6Moves: ; 0xddd1
PartyMon6Move1: ; 0xddd1
	ds 1
PartyMon6Move2: ; 0xddd2
	ds 1
PartyMon6Move3: ; 0xddd3
	ds 1
PartyMon6Move4: ; 0xddd4
	ds 1
PartyMon6ID: ; 0xddd5
	ds 2
PartyMon6Exp: ; 0xddd7
	ds 3
PartyMon6HPExp: ; 0xddda
	ds 2
PartyMon6AtkExp: ; 0xdddc
	ds 2
PartyMon6DefExp: ; 0xddde
	ds 2
PartyMon6SpdExp: ; 0xdde0
	ds 2
PartyMon6SpclExp: ; 0xdde2
	ds 2
PartyMon6DVs: ; 0xdde4
	ds 2 ; Atk/Def/Spd/Spcl, HP is the high bits of these four nybbles
PartyMon6PP: ; 0xdde6
	ds 4
PartyMon6Happiness: ; 0xddea
	ds 1
PartyMon6PokerusStatus: ; 0xddeb
	ds 1
PartyMon6CaughtData: ; 0xddec
PartyMon6CaughtTime: ; 0xddec
PartyMon6CaughtLevel ; 0xddec
	ds 1
PartyMon6CaughtGender: ; 0xdded
PartyMon6CaughtLocation: ; 0xdded
	ds 1
PartyMon6Level: ; 0xddee
	ds 1
PartyMon6Status: ; 0xddef
	ds 1
; 0xddf0 unused
	ds 1
PartyMon6CurHP: ; 0xddf1
	ds 2
PartyMon6MaxHP: ; 0xddf3
	ds 2
PartyMon6Atk: ; 0xddf5
	ds 2
PartyMon6Def: ; 0xddf7
	ds 2
PartyMon6Spd: ; 0xddf9
	ds 2
PartyMon6SpclAtk: ; 0xddfb
	ds 2
PartyMon6SpclDef: ; 0xddfd
	ds 2
	


PartyMon1OT: ; 0xddff
	ds 11
PartyMon2OT: ; 0xde0a
	ds 11
PartyMon3OT: ; 0xde15
	ds 11
PartyMon4OT: ; 0xde20
	ds 11
PartyMon5OT: ; 0xde2b
	ds 11
PartyMon6OT: ; 0xde36
	ds 11

PartyMon1Nickname: ; 0xde41
	ds 11
PartyMon2Nickname: ; 0xde4c
	ds 11
PartyMon3Nickname: ; 0xde57
	ds 11
PartyMon4Nickname: ; 0xde62
	ds 11
PartyMon5Nickname: ; 0xde6d
	ds 11
PartyMon6Nickname: ; 0xde78
	ds 11

SECTION "Pokedex",BSS[$de99]
PokedexSeen: ; de99
	ds 32
PokedexCaught: ; deb9
	ds 32
UnownDex: ; ded9
	ds 26
UnownUnlockedGroups: ; def3
	ds 1

SECTION "Breeding",BSS[$def5]
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:
BreedMon1Species: ; df45
	ds 1
	ds 31

EggNick: ; df65
; EGG@
	ds 11
EggOT: ; df70
	ds 11
EggStats:
EggSpecies: ; df7b
	ds 1
	ds 31

SECTION "RoamMons",BSS[$dfcf]
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