ref: 94c7def4883fbdbcd3987a067443a2069b8bb610
parent: 89b9292db0898f8ad2b6ea8513a3190762eb58c8
parent: d554b997c590825f030bd1be71989653b16a2ae0
author: yenatch <yenatch@gmail.com>
date: Sat Dec 9 20:47:10 EST 2017
Merge pull request #409 from roukaour/master Document constants with comments, actual names, and more thorough usage
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -58,7 +58,7 @@
- `gcc-core`
Then download [**rgbds**](https://github.com/rednex/rgbds/releases/).
-Extract the archive and put all the `exe` and `dll` files individually in `C:\cygwin64\usr\local\bin`.
+Extract rgbds-0.3.3-win64.tar.gz and put all the `exe` and `dll` files individually in **C:\Cygwin64\usr\local\bin**. If you are using 32-bit Windows and Cygwin, extract **rgbds-0.3.3-win32.tar.gz** to **C:\Cygwin\usr\local\bin**.
**Note: If you have an older rgbds, you will need to update to 0.3.3 or newer.** Ignore this if you have never installed rgbds before.
--- a/Makefile
+++ b/Makefile
@@ -140,8 +140,8 @@
### Misc file-specific graphics rules
-gfx/shrink1.2bpp: rgbgfx += -h
-gfx/shrink2.2bpp: rgbgfx += -h
+gfx/shrink/shrink1.2bpp: rgbgfx += -h
+gfx/shrink/shrink2.2bpp: rgbgfx += -h
gfx/trainers/%.2bpp: rgbgfx += -h
gfx/trainers/%.pal: gfx/trainers/%.gbcpal
@@ -153,7 +153,9 @@
gfx/mail/0b9dc6.1bpp: tools/gfx += --remove-whitespace
gfx/mail/0b9cfe.1bpp: tools/gfx += --remove-whitespace
-gfx/pokedex/%.2bpp: tools/gfx += --trim-whitespace
+gfx/pokedex/pokedex.2bpp: tools/gfx += --trim-whitespace
+gfx/pokedex/sgb.2bpp: tools/gfx += --trim-whitespace
+gfx/pokedex/slowpoke.2bpp: tools/gfx += --trim-whitespace
gfx/title/crystal.2bpp: tools/gfx += --interleave --png=$<
gfx/title/old_fg.2bpp: tools/gfx += --interleave --png=$<
@@ -162,11 +164,11 @@
gfx/trade/ball.2bpp: tools/gfx += --remove-whitespace
gfx/trade/game_boy_n64.2bpp: tools/gfx += --trim-whitespace
-gfx/slots_2.2bpp: tools/gfx += --interleave --png=$<
-gfx/slots_3.2bpp: tools/gfx += --interleave --png=$< --remove-duplicates --keep-whitespace --remove-xflip
-gfx/slots_3a.2bpp: tools/gfx += --interleave --png=$<
-gfx/slots_3b.2bpp: tools/gfx += --interleave --png=$< --remove-duplicates --keep-whitespace --remove-xflip
+gfx/slots/slots_2.2bpp: tools/gfx += --interleave --png=$<
+gfx/slots/slots_3.2bpp: tools/gfx += --interleave --png=$< --remove-duplicates --keep-whitespace --remove-xflip
+gfx/card_flip/card_flip_2.2bpp: tools/gfx += --remove-whitespace
+
gfx/fx/angels.2bpp: tools/gfx += --trim-whitespace
gfx/fx/beam.2bpp: tools/gfx += --remove-xflip --remove-yflip --remove-whitespace
gfx/fx/bubble.2bpp: tools/gfx += --trim-whitespace
@@ -185,18 +187,21 @@
gfx/fx/skyattack.2bpp: tools/gfx += --remove-whitespace
gfx/fx/status.2bpp: tools/gfx += --remove-whitespace
-gfx/misc/chris.2bpp: rgbgfx += -h
-gfx/misc/chris_card.2bpp: rgbgfx += -h
-gfx/misc/kris.2bpp: rgbgfx += -h
-gfx/misc/kris_card.2bpp: rgbgfx += -h
-gfx/misc/kris_back.2bpp: rgbgfx += -h
-gfx/misc/dude.2bpp: rgbgfx += -h
+gfx/player/chris.2bpp: rgbgfx += -h
+gfx/player/chris_back.2bpp: rgbgfx += -h
+gfx/player/kris.2bpp: rgbgfx += -h
+gfx/player/kris_back.2bpp: rgbgfx += -h
+
+gfx/trainer_card/chris_card.2bpp: rgbgfx += -h
+gfx/trainer_card/kris_card.2bpp: rgbgfx += -h
+
+gfx/battle/dude.2bpp: rgbgfx += -h
+
gfx/misc/unknown_egg.2bpp: rgbgfx += -h
-gfx/misc/player.2bpp: rgbgfx += -h
-gfx/misc/pokegear.2bpp: rgbgfx += -x2
-gfx/misc/pokegear_sprites.2bpp: tools/gfx += --trim-whitespace
-gfx/unknown/0e0ea8.2bpp: tools/gfx += --remove-whitespace
+gfx/pokegear/pokegear.2bpp: rgbgfx += -x2
+gfx/pokegear/pokegear_sprites.2bpp: tools/gfx += --trim-whitespace
+
gfx/unknown/0f8f34.1bpp: tools/gfx += --trim-whitespace
gfx/unknown/16c173.2bpp: tools/gfx += --remove-duplicates --remove-xflip
gfx/unknown/170d16.2bpp: tools/gfx += --trim-whitespace
--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -22,7 +22,7 @@
ld [hli], a ; ff26 ; music channels
ld hl, rNR10 ; sound channel registers
- ld e, $4 ; number of channels
+ ld e, NUM_MUSIC_CHANS
.clearsound
; sound channel 1 2 3 4
xor a
@@ -47,7 +47,7 @@
ld a, e
or d
jr nz, .clearchannels
- ld a, $77 ; max
+ ld a, MAX_VOLUME
ld [Volume], a
call MusicOn
pop af
@@ -60,15 +60,15 @@
MusicFadeRestart: ; e803d
; restart but keep the music id to fade in to
- ld a, [MusicFadeIDHi]
+ ld a, [MusicFadeID + 1]
push af
- ld a, [MusicFadeIDLo]
+ ld a, [MusicFadeID]
push af
call _MapSetup_Sound_Off
pop af
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
pop af
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ret
; e8051
@@ -151,7 +151,7 @@
jr z, .next
; are we in a sfx channel right now?
ld a, [CurChannel]
- cp $4
+ cp CHAN5
jr nc, .next
; are any sfx channels active?
; if so, mute
@@ -174,7 +174,7 @@
.next
; are we in a sfx channel right now?
ld a, [CurChannel]
- cp $4 ; sfx
+ cp CHAN5
jr nc, .sfx_channel
ld hl, Channel5Flags - Channel1
add hl, bc
@@ -654,11 +654,11 @@
; restart sound
call MusicFadeRestart
; get new song id
- ld a, [MusicFadeIDLo]
+ ld a, [MusicFadeID]
and a
jr z, .quit ; this assumes there are fewer than 256 songs!
ld e, a
- ld a, [MusicFadeIDHi]
+ ld a, [MusicFadeID + 1]
ld d, a
; load new song
call _PlayMusic
@@ -679,9 +679,9 @@
xor a
ld [Volume], a
; get new song id
- ld a, [MusicFadeIDLo]
+ ld a, [MusicFadeID]
ld e, a
- ld a, [MusicFadeIDHi]
+ ld a, [MusicFadeID + 1]
ld d, a
; load new song
call _PlayMusic
@@ -744,7 +744,7 @@
sub [hl]
ld e, a
ld a, d
- sbc a, 0
+ sbc 0
ld d, a
ld hl, Channel1PitchWheelTarget + 1 - Channel1
add hl, bc
@@ -766,7 +766,7 @@
sub e
ld e, a
ld a, d
- sbc a, 0
+ sbc 0
ld d, a
; ????
ld hl, Channel1PitchWheelTarget + 1 - Channel1
@@ -793,7 +793,7 @@
sub [hl]
ld e, a
ld a, d
- sbc a, 0
+ sbc 0
ld d, a
ld hl, Channel1PitchWheelTarget + 1 - Channel1
add hl, bc
@@ -1021,7 +1021,7 @@
sub e
ld e, a
ld a, d
- sbc a, 0
+ sbc 0
ld d, a
; [Channel*Field0x25] *= 2
; if rollover: Frequency -= 1
@@ -1031,10 +1031,10 @@
add a
ld [hl], a
ld a, e
- sbc a, 0
+ sbc 0
ld e, a
ld a, d
- sbc a, 0
+ sbc 0
ld d, a
; Compare the dw at [Channel*PitchWheelTarget] to de.
; If frequency is lower, we're finished.
@@ -1223,7 +1223,7 @@
bit SOUND_SUBROUTINE, [hl] ; in a subroutine?
jr nz, .readcommand ; execute
ld a, [CurChannel]
- cp $4 ; channels 0-3?
+ cp CHAN5
jr nc, .chan_5to8
; ????
ld hl, Channel5Flags - Channel1
@@ -1237,7 +1237,7 @@
call nz, RestoreVolume
; end music
ld a, [CurChannel]
- cp $4 ; channel 5?
+ cp CHAN5
jr nz, .ok
; ????
xor a
@@ -1266,7 +1266,7 @@
RestoreVolume: ; e8679
; ch5 only
ld a, [CurChannel]
- cp $4
+ cp CHAN5
ret nz
xor a
ld hl, Channel6CryPitch
@@ -1364,9 +1364,9 @@
add hl, de
; load sample pointer into NoiseSampleAddress
ld a, [hli]
- ld [NoiseSampleAddressLo], a
+ ld [NoiseSampleAddress], a
ld a, [hl]
- ld [NoiseSampleAddressHi], a
+ ld [NoiseSampleAddress + 1], a
; clear ????
xor a
ld [wNoiseSampleDelay], a
@@ -1378,7 +1378,7 @@
; reload command
ld a, [CurMusicByte]
; get command #
- sub a, $d0 ; first command
+ sub $d0 ; first command
ld e, a
ld d, 0
; seek command pointer
@@ -1968,7 +1968,7 @@
ld [hl], a
ld a, [CurChannel]
and $3
- cp CHAN4 ; CHAN8 & $3
+ cp CHAN8 & $3
ret z
; intensity
call Music_Intensity
@@ -2063,7 +2063,7 @@
; params: 1
; stereo on?
ld a, [Options]
- bit 5, a ; stereo
+ bit STEREO, a
jr nz, Music_Panning
; skip param
call GetMusicByte
@@ -2160,9 +2160,9 @@
ld hl, Channel1MusicID - Channel1
add hl, bc
ld a, [hli]
- ld [MusicIDLo], a
+ ld [MusicID], a
ld a, [hl]
- ld [MusicIDHi], a
+ ld [MusicID + 1], a
; update music bank
ld hl, Channel1MusicBank - Channel1
add hl, bc
@@ -2437,7 +2437,7 @@
ld hl, MusicID
ld [hl], e ; song number
inc hl
- ld [hl], d ; MusicIDHi (always $)
+ ld [hl], d ; (always 0)
ld hl, Music
add hl, de ; three
add hl, de ; byte
@@ -2466,8 +2466,8 @@
ld [Channel2JumpCondition], a
ld [Channel3JumpCondition], a
ld [Channel4JumpCondition], a
- ld [NoiseSampleAddressLo], a
- ld [NoiseSampleAddressHi], a
+ ld [NoiseSampleAddress], a
+ ld [NoiseSampleAddress + 1], a
ld [wNoiseSampleDelay], a
ld [MusicNoiseSampleSet], a
call MusicOn
@@ -2552,7 +2552,7 @@
; This only applies in-battle.
ld a, [Options]
- bit 5, a ; stereo
+ bit STEREO, a
jr z, .next
; [Tracks] &= [CryTracks]
@@ -2577,7 +2577,7 @@
ld a, [Volume]
ld [LastVolume], a
- ld a, $77
+ ld a, MAX_VOLUME
ld [Volume], a
.end
@@ -2647,8 +2647,8 @@
ld a, $80
ld [rNR44], a ; restart sound (freq hi = 0)
xor a
- ld [NoiseSampleAddressLo], a
- ld [NoiseSampleAddressHi], a
+ ld [NoiseSampleAddress], a
+ ld [NoiseSampleAddress + 1], a
.chscleared
; start reading sfx header for # chs
ld hl, MusicID
@@ -2696,7 +2696,7 @@
; standard procedure if stereo's off
ld a, [Options]
- bit 5, a
+ bit STEREO, a
jp z, _PlaySFX
; else, let's go ahead with this
@@ -2825,9 +2825,9 @@
; load music id
ld hl, Channel1MusicID - Channel1
add hl, bc
- ld a, [MusicIDLo]
+ ld a, [MusicID]
ld [hli], a
- ld a, [MusicIDHi]
+ ld a, [MusicID + 1]
ld [hl], a
; load music bank
ld hl, Channel1MusicBank - Channel1
@@ -3231,7 +3231,7 @@
; gets the default sound l/r channels
; stores mono/stereo table in hl
ld a, [Options]
- bit 5, a ; stereo
+ bit STEREO, a
; made redundant, could have had a purpose in gold
jr nz, .stereo
ld hl, MonoTracks
@@ -3279,7 +3279,7 @@
ld a, $80
ld [hli], a
ld hl, rNR10
- ld e, $4
+ ld e, NUM_MUSIC_CHANS
.loop
call ClearChannel
dec e
--- a/battle/ai/items.asm
+++ b/battle/ai/items.asm
@@ -27,7 +27,7 @@
ld a, [TrainerClass]
dec a
- ld bc, 7
+ ld bc, NUM_TRAINER_ATTRIBUTES
call AddNTimes
.ok
bit SWITCH_OFTEN_F, [hl]
@@ -174,8 +174,8 @@
ld a, [TrainerClass]
dec a
- ld hl, TrainerClassAttributes + 5
- ld bc, 7
+ ld hl, TrainerClassAttributes + TRNATTR_AI_ITEM_SWITCH
+ ld bc, NUM_TRAINER_ATTRIBUTES
call AddNTimes
ld b, h
ld c, l
--- a/battle/anim_commands.asm
+++ b/battle/anim_commands.asm
@@ -57,7 +57,7 @@
BattleAnimRunScript: ; cc11c
- ld a, [FXAnimIDHi]
+ ld a, [FXAnimID + 1]
and a
jr nz, .hi_byte
@@ -86,9 +86,9 @@
ld de, ANIM_MISS
add hl, de
ld a, l
- ld [FXAnimIDLo], a
+ ld [FXAnimID], a
ld a, h
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
.hi_byte
call WaitSFX
@@ -112,11 +112,11 @@
call BattleAnimRequestPals
; Speed up Rollout's animation.
- ld a, [FXAnimIDHi]
+ ld a, [FXAnimID + 1]
or a
jr nz, .not_rollout
- ld a, [FXAnimIDLo]
+ ld a, [FXAnimID]
cp ROLLOUT
jr nz, .not_rollout
@@ -1393,7 +1393,7 @@
or b
jr nz, .loop
- ld hl, FXAnimIDLo
+ ld hl, FXAnimID
ld e, [hl]
inc hl
ld d, [hl]
--- a/battle/bg_effects.asm
+++ b/battle/bg_effects.asm
@@ -868,7 +868,7 @@
.BGSquares:
bgsquare: MACRO
- dn \1,\2
+ dn \1, \2
dw \3
endm
@@ -1538,10 +1538,10 @@
Functionc88a5: ; c88a5 (32:48a5)
push af
- ld a, [FXAnimIDHi] ; FXAnimIDHi
+ ld a, [FXAnimID + 1] ; FXAnimID + 1
or a
jr nz, .not_rollout
- ld a, [FXAnimIDLo] ; FXAnimID
+ ld a, [FXAnimID] ; FXAnimID
cp ROLLOUT
jr z, .rollout
.not_rollout
@@ -2581,8 +2581,8 @@
ld a, h
push bc
push af
- ld hl, BGPals ; BGPals
- ld de, UnknBGPals ; wd000
+ ld hl, BGPals
+ ld de, UnknBGPals
ld b, a
ld c, $1
call CopyPals
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -633,7 +633,7 @@
xor a
ld [wMoveSelectionMenuType], a
inc a ; POUND
- ld [FXAnimIDLo], a
+ ld [FXAnimID], a
call MoveSelectionScreen
push af
call Call_LoadTempTileMapToTileMap
@@ -1305,7 +1305,7 @@
ld a, [de]
ld [wd265], a
- ld [FXAnimIDLo], a
+ ld [FXAnimID], a
call GetMoveName
dec [hl]
jr z, .release_from_bounds
@@ -1318,7 +1318,7 @@
call SwitchTurnCore
xor a
ld [wNumHits], a
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
predef PlayBattleAnim
call SwitchTurnCore
@@ -4213,7 +4213,7 @@
call GetMonBackpic
xor a
ld [hGraphicStartTile], a
- ld [wd0d2], a
+ ld [wBattleMenuCursorBuffer], a
ld [CurMoveNum], a
ld [TypeModifier], a
ld [wPlayerMoveStruct + MOVE_ANIM], a
@@ -4551,11 +4551,11 @@
push bc
call EmptyBattleTextBox
ld a, RECOVER
- ld [FXAnimIDLo], a
+ ld [FXAnimID], a
call SwitchTurnCore
xor a
ld [wNumHits], a
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
predef PlayBattleAnim
call SwitchTurnCore
pop bc
@@ -5130,7 +5130,7 @@
.next
ld a, $1
ld [hBGMapMode], a
- ld a, [wd0d2]
+ ld a, [wBattleMenuCursorBuffer]
cp $1
jp z, BattleMenu_Fight
cp $3
@@ -6267,13 +6267,13 @@
; 25% chance of getting an item
call BattleRandom
- cp a, 1 + (75 percent)
+ cp 1 + (75 percent)
ld a, NO_ITEM
jr c, .UpdateItem
; From there, an 8% chance for Item2
call BattleRandom
- cp a, 8 percent ; 8% of 25% = 2% Item2
+ cp 8 percent ; 8% of 25% = 2% Item2
ld a, [BaseItems]
jr nc, .UpdateItem
ld a, [BaseItems+1]
@@ -6320,7 +6320,7 @@
; Roaming monsters (Entei, Raikou) work differently
; They have their own structs, which are shorter than normal
ld a, [BattleType]
- cp a, BATTLETYPE_ROAMING
+ cp BATTLETYPE_ROAMING
jr nz, .NotRoaming
; Grab HP
@@ -6361,7 +6361,7 @@
; Forced shiny battle type
; Used by Red Gyarados at Lake of Rage
- cp a, BATTLETYPE_SHINY
+ cp BATTLETYPE_SHINY
jr nz, .GenerateDVs
ld b, ATKDEFDV_SHINY ; $ea
@@ -6391,7 +6391,7 @@
; Unown
ld a, [TempEnemyMonSpecies]
- cp a, UNOWN
+ cp UNOWN
jr nz, .Magikarp
; Get letter based on DVs
@@ -6406,7 +6406,7 @@
; Skimming this part recommended
ld a, [TempEnemyMonSpecies]
- cp a, MAGIKARP
+ cp MAGIKARP
jr nz, .Happiness
; Get Magikarp's length
@@ -6415,26 +6415,26 @@
callab CalcMagikarpLength
; We're clear if the length is < 1536
- ld a, [MagikarpLength]
- cp a, $06 ; $600 = 1536
+ ld a, [wMagikarpLength]
+ cp $06 ; $600 = 1536
jr nz, .CheckMagikarpArea
; 5% chance of skipping size checks
call Random
- cp a, $0c ; / $100
+ cp $0c ; / $100
jr c, .CheckMagikarpArea
; Try again if > 1614
- ld a, [MagikarpLength + 1]
- cp a, $50
+ ld a, [wMagikarpLength + 1]
+ cp $50
jr nc, .GenerateDVs
; 20% chance of skipping this check
call Random
- cp a, $32 ; / $100
+ cp $32 ; / $100
jr c, .CheckMagikarpArea
; Try again if > 1598
- ld a, [MagikarpLength + 1]
- cp a, $40
+ ld a, [wMagikarpLength + 1]
+ cp $40
jr nc, .GenerateDVs
.CheckMagikarpArea:
@@ -6448,18 +6448,18 @@
; Intended behavior enforces a minimum size at Lake of Rage
; The real behavior prevents size flooring in the Lake of Rage area
ld a, [MapGroup]
- cp a, GROUP_LAKE_OF_RAGE
+ cp GROUP_LAKE_OF_RAGE
jr z, .Happiness
ld a, [MapNumber]
- cp a, MAP_LAKE_OF_RAGE
+ cp MAP_LAKE_OF_RAGE
jr z, .Happiness
; 40% chance of not flooring
call Random
- cp a, $64 ; / $100
+ cp $64 ; / $100
jr c, .Happiness
; Floor at length 1024
- ld a, [MagikarpLength]
- cp a, 1024 >> 8
+ ld a, [wMagikarpLength]
+ cp 1024 >> 8
jr c, .GenerateDVs ; try again
; Finally done with DVs
@@ -6480,7 +6480,7 @@
; If we're in a trainer battle,
; get the rest of the parameters from the party struct
ld a, [wBattleMode]
- cp a, TRAINER_BATTLE
+ cp TRAINER_BATTLE
jr z, .OpponentParty
; If we're in a wild battle, check wild-specific stuff
@@ -6515,7 +6515,7 @@
; ..unless it's a RoamMon
ld a, [BattleType]
- cp a, BATTLETYPE_ROAMING
+ cp BATTLETYPE_ROAMING
jr nz, .Moves
; Grab HP
@@ -6568,7 +6568,7 @@
ld de, EnemyMonMoves
; Are we in a trainer battle?
ld a, [wBattleMode]
- cp a, TRAINER_BATTLE
+ cp TRAINER_BATTLE
jr nz, .WildMoves
; Then copy moves from the party struct
ld hl, OTPartyMon1Moves
@@ -6588,7 +6588,7 @@
ld [hli], a
ld [hl], a
; Make sure the predef knows this isn't a partymon
- ld [MagikarpLength], a
+ ld [wEvolutionOldSpecies], a
; Fill moves based on level
predef FillMoves
@@ -6595,7 +6595,7 @@
.PP:
; Trainer battle?
ld a, [wBattleMode]
- cp a, TRAINER_BATTLE
+ cp TRAINER_BATTLE
jr z, .TrainerPP
; Fill wild PP
@@ -6670,13 +6670,13 @@
; Don't do anything if this isn't a tree encounter
ld a, [BattleType]
- cp a, BATTLETYPE_TREE
+ cp BATTLETYPE_TREE
jr nz, .NotSleeping
; Get list for the time of day
ld hl, .Morn
ld a, [TimeOfDay]
- cp a, DAY
+ cp DAY
jr c, .Check
ld hl, .Day
jr z, .Check
@@ -6759,7 +6759,7 @@
inc e
inc e
ld a, e
- cp a, .Set1 - .LetterSets
+ cp .Set1 - .LetterSets
jr c, .loop
; Hasn't been unlocked, or the letter is invalid
@@ -7285,9 +7285,9 @@
Call_PlayBattleAnim: ; 3ee17
ld a, e
- ld [FXAnimIDLo], a
+ ld [FXAnimID], a
ld a, d
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
call WaitBGMap
predef_jump PlayBattleAnim
; 3ee27
@@ -8405,7 +8405,7 @@
call LoadTrainerOrWildMonPic
xor a
ld [TempBattleMonSpecies], a
- ld [wd0d2], a
+ ld [wBattleMenuCursorBuffer], a
xor a
ld [hMapAnims], a
callba PlayBattleMusic
@@ -8670,7 +8670,7 @@
ld [wPartyMenuCursor], a
ld [wKeyItemsPocketCursor], a
ld [wItemsPocketCursor], a
- ld [wd0d2], a
+ ld [wBattleMenuCursorBuffer], a
ld [CurMoveNum], a
ld [wBallsPocketCursor], a
ld [wLastPocket], a
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -70,16 +70,16 @@
; Start at the first command.
ld hl, BattleScriptBuffer
ld a, l
- ld [BattleScriptBufferLoc], a
+ ld [BattleScriptBufferAddress], a
ld a, h
- ld [BattleScriptBufferLoc + 1], a
+ ld [BattleScriptBufferAddress + 1], a
.ReadMoveEffectCommand:
-; ld a, [BattleScriptBufferLoc++]
- ld a, [BattleScriptBufferLoc]
+; ld a, [BattleScriptBufferAddress++]
+ ld a, [BattleScriptBufferAddress]
ld l, a
- ld a, [BattleScriptBufferLoc + 1]
+ ld a, [BattleScriptBufferAddress + 1]
ld h, a
ld a, [hli]
@@ -86,9 +86,9 @@
push af
ld a, l
- ld [BattleScriptBufferLoc], a
+ ld [BattleScriptBufferAddress], a
ld a, h
- ld [BattleScriptBufferLoc + 1], a
+ ld [BattleScriptBufferAddress + 1], a
pop af
; endturn_command (-2) is used to terminate branches without ending the read cycle.
@@ -2103,7 +2103,7 @@
xor a
ld [wNumHits], a
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
inc a
ld [wKickCounter], a
ld a, SUBSTITUTE
@@ -2280,7 +2280,7 @@
xor a
ld [wNumHits], a
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
ld a, $2
ld [wKickCounter], a
ld a, SUBSTITUTE
@@ -2645,7 +2645,7 @@
call BattleCommand_SwitchTurn
xor a
ld [wNumHits], a
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
inc a
ld [wKickCounter], a
ld a, DESTINY_BOND
@@ -2743,9 +2743,9 @@
EndMoveEffect: ; 352a3
- ld a, [BattleScriptBufferLoc]
+ ld a, [BattleScriptBufferAddress]
ld l, a
- ld a, [BattleScriptBufferLoc + 1]
+ ld a, [BattleScriptBufferAddress + 1]
ld h, a
ld a, $ff
ld [hli], a
@@ -4738,9 +4738,9 @@
PlayFXAnimID: ; 35d08
ld a, e
- ld [FXAnimIDLo], a
+ ld [FXAnimID], a
ld a, d
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
ld c, 3
call DelayFrames
@@ -7097,9 +7097,9 @@
; Loop back to the command before 'critical'.
.loop_back_to_critical
- ld a, [BattleScriptBufferLoc + 1]
+ ld a, [BattleScriptBufferAddress + 1]
ld h, a
- ld a, [BattleScriptBufferLoc]
+ ld a, [BattleScriptBufferAddress]
ld l, a
.not_critical
ld a, [hld]
@@ -7107,9 +7107,9 @@
jr nz, .not_critical
inc hl
ld a, h
- ld [BattleScriptBufferLoc + 1], a
+ ld [BattleScriptBufferAddress + 1], a
ld a, l
- ld [BattleScriptBufferLoc], a
+ ld [BattleScriptBufferAddress], a
ret
; 36a82
@@ -7882,7 +7882,7 @@
xor a
ld [wNumHits], a
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
ld [wKickCounter], a
ld a, SUBSTITUTE
call LoadAnim
@@ -9862,7 +9862,7 @@
PlayDamageAnim: ; 37e19
xor a
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
@@ -9869,7 +9869,7 @@
and a
ret z
- ld [FXAnimIDLo], a
+ ld [FXAnimID], a
ld a, [hBattleTurn]
and a
@@ -9888,7 +9888,7 @@
LoadMoveAnim: ; 37e36
xor a
ld [wNumHits], a
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
@@ -9901,7 +9901,7 @@
LoadAnim: ; 37e44
- ld [FXAnimIDLo], a
+ ld [FXAnimID], a
; fallthrough
; 37e47
@@ -9922,9 +9922,9 @@
PlayOpponentBattleAnim: ; 37e54
ld a, e
- ld [FXAnimIDLo], a
+ ld [FXAnimID], a
ld a, d
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
xor a
ld [wNumHits], a
@@ -9983,9 +9983,9 @@
SkipToBattleCommand: ; 37e8c
; Skip over commands until reaching command b.
- ld a, [BattleScriptBufferLoc + 1]
+ ld a, [BattleScriptBufferAddress + 1]
ld h, a
- ld a, [BattleScriptBufferLoc]
+ ld a, [BattleScriptBufferAddress]
ld l, a
.loop
ld a, [hli]
@@ -9993,9 +9993,9 @@
jr nz, .loop
ld a, h
- ld [BattleScriptBufferLoc + 1], a
+ ld [BattleScriptBufferAddress + 1], a
ld a, l
- ld [BattleScriptBufferLoc], a
+ ld [BattleScriptBufferAddress], a
ret
; 37ea1
--- a/battle/effects/transform.asm
+++ b/battle/effects/transform.asm
@@ -11,7 +11,7 @@
jp nz, BattleEffect_ButItFailed
xor a
ld [wNumHits], a
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
ld a, $1
ld [wKickCounter], a
ld a, BATTLE_VARS_SUBSTATUS4
@@ -129,7 +129,7 @@
.after_anim
xor a
ld [wNumHits], a
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
ld a, $2
ld [wKickCounter], a
pop af
--- a/battle/magikarp_length.asm
+++ b/battle/magikarp_length.asm
@@ -1,5 +1,5 @@
CalcMagikarpLength: ; fbbfc
-; Return Magikarp's length (in mm) at MagikarpLength (big endian).
+; Return Magikarp's length (in mm) at wMagikarpLength (big endian).
;
; input:
; de: EnemyMonDVs
@@ -16,9 +16,9 @@
; bc = rrc(dv[0]) ++ rrc(dv[1]) ^ rrc(id)
-; if bc < 10: [MagikarpLength] = c + 190
-; if bc >= $ff00: [MagikarpLength] = c + 1370
-; else: [MagikarpLength] = z * 100 + (bc - x) / y
+; if bc < 10: [wMagikarpLength] = c + 190
+; if bc >= $ff00: [wMagikarpLength] = c + 1370
+; else: [wMagikarpLength] = z * 100 + (bc - x) / y
; X, Y, and Z depend on the value of b as follows:
@@ -165,7 +165,7 @@
.ok
ld e, a
- ld hl, MagikarpLength
+ ld hl, wMagikarpLength
ld [hl], d
inc hl
ld [hl], e
--- a/battle/menu.asm
+++ b/battle/menu.asm
@@ -1,11 +1,11 @@
LoadBattleMenu: ; 24ef2
ld hl, BattleMenuDataHeader
call LoadMenuDataHeader
- ld a, [wd0d2]
+ ld a, [wBattleMenuCursorBuffer]
ld [wMenuCursorBuffer], a
call InterpretBattleMenu
ld a, [wMenuCursorBuffer]
- ld [wd0d2], a
+ ld [wBattleMenuCursorBuffer], a
call ExitMenu
ret
; 24f0b
@@ -23,11 +23,11 @@
; 24f19
Function24f19: ; 24f19
- ld a, [wd0d2]
+ ld a, [wBattleMenuCursorBuffer]
ld [wMenuCursorBuffer], a
call _2DMenu
ld a, [wMenuCursorBuffer]
- ld [wd0d2], a
+ ld [wBattleMenuCursorBuffer], a
call ExitMenu
ret
; 24f2c
--- a/battle/objects/data.asm
+++ b/battle/objects/data.asm
@@ -1,573 +1,585 @@
BattleAnimObjects: ; ccb56
battleanimobj: MACRO
-
-; ??, ??, frameset, function, ??, tile offset
- db \1, \2, \3, \4, \5, \6
+ db \1 ; flags
+ ; bit 7: priority
+ ; bit 6: y flip (for enemy)
+ ; bit 5: x flip (for enemy)
+ ; bit 0: enable enemy animation coord fixing (x = $b4 - x; see below for y)
+ db \2 ; enemy animation y fix param
+ ; if $FF: y = y + 5 tiles
+ ; else: y = -y - (1 tile) * (is_softboiled_animation)
+ db \3 ; video sequence
+ db \4 ; callback
+ db \5 ; palette
+ db \6 ; tile offset
endm
+ABSOLUTE_X EQU $00
+RELATIVE_X EQU $01
+
; ANIM_OBJ_00
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, $02, $01
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_01
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, $02, $01
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_02
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, $02, $01
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_03
- battleanimobj $01, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, $02, $01
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_04
- battleanimobj $01, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, $02, $01
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_05
- battleanimobj $01, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, $02, $01
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_06
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, $02, $01
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_07
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, $02, $01
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_08
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, $02, $01
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_09
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, $02, $01
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_0A
- battleanimobj $01, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, $02, $01
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_0B
- battleanimobj $01, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, $04, $03
+ battleanimobj RELATIVE_X, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, PAL_BATTLE_RED, $03
; ANIM_OBJ_0C
- battleanimobj $01, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, $04, $03
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, PAL_BATTLE_RED, $03
; ANIM_OBJ_0D
- battleanimobj $01, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, $04, $03
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, PAL_BATTLE_RED, $03
; ANIM_OBJ_0E
- battleanimobj $01, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, $04, $03
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, PAL_BATTLE_RED, $03
; ANIM_OBJ_0F
- battleanimobj $01, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, $04, $03
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, PAL_BATTLE_RED, $03
; ANIM_OBJ_BURNED
- battleanimobj $01, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, $04, $03
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, PAL_BATTLE_RED, $03
; ANIM_OBJ_BLIZZARD
- battleanimobj $01, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, $06, $0a
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, PAL_BATTLE_BLUE, $0a
; ANIM_OBJ_12
- battleanimobj $01, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, $06, $0a
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, PAL_BATTLE_BLUE, $0a
; ANIM_OBJ_ICE_BEAM
- battleanimobj $01, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, $06, $0a
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, PAL_BATTLE_BLUE, $0a
; ANIM_OBJ_RAZOR_LEAF
- battleanimobj $21, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_RAZOR_LEAF, $05, $06
+ battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_RAZOR_LEAF, PAL_BATTLE_GREEN, $06
; ANIM_OBJ_POKE_BALL
- battleanimobj $00, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, $04, $0b
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, PAL_BATTLE_RED, $0b
; ANIM_OBJ_POKE_BALL_BLOCKED
- battleanimobj $00, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, $04, $0b
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, PAL_BATTLE_RED, $0b
; ANIM_OBJ_17
- battleanimobj $01, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, $04, $08
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_RED, $08
; ANIM_OBJ_18
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, $04, $08
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_RED, $08
; ANIM_OBJ_19
- battleanimobj $01, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, $02, $0c
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, PAL_BATTLE_GRAY, $0c
; ANIM_OBJ_1A
- battleanimobj $01, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, $02, $0c
+ battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, PAL_BATTLE_GRAY, $0c
; ANIM_OBJ_1B
- battleanimobj $01, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, $02, $07
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $07
; ANIM_OBJ_BALL_POOF
- battleanimobj $01, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, $02, $07
+ battleanimobj RELATIVE_X, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $07
; ANIM_OBJ_1D
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, $07, $09
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, PAL_BATTLE_BROWN, $09
; ANIM_OBJ_1E
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, $07, $09
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, PAL_BATTLE_BROWN, $09
; ANIM_OBJ_1F
- battleanimobj $01, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, $07, $09
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, PAL_BATTLE_BROWN, $09
; ANIM_OBJ_20
- battleanimobj $01, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, $06, $21
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, PAL_BATTLE_BLUE, $21
; ANIM_OBJ_BUBBLE
- battleanimobj $01, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, $06, $0d
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, PAL_BATTLE_BLUE, $0d
; ANIM_OBJ_22
- battleanimobj $00, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, $06, $0d
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, PAL_BATTLE_BLUE, $0d
; ANIM_OBJ_23
- battleanimobj $01, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, $02, $0e
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, PAL_BATTLE_GRAY, $0e
; ANIM_OBJ_24
- battleanimobj $61, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, $06, $04
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, PAL_BATTLE_BLUE, $04
; ANIM_OBJ_25
- battleanimobj $01, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, $06, $04
+ battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, PAL_BATTLE_BLUE, $04
; ANIM_OBJ_26
- battleanimobj $01, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, $05, $0f
+ battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, PAL_BATTLE_GREEN, $0f
; ANIM_OBJ_27
- battleanimobj $61, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, $03, $10
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $10
; ANIM_OBJ_28
- battleanimobj $61, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, $03, $10
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_YELLOW, $10
; ANIM_OBJ_ICE_BUILDUP
- battleanimobj $01, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, $06, $0a
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, PAL_BATTLE_BLUE, $0a
; ANIM_OBJ_FROZEN
- battleanimobj $01, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, $06, $0a
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, PAL_BATTLE_BLUE, $0a
; ANIM_OBJ_MASTER_BALL_SPARKLE
- battleanimobj $01, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, $07, $11
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, PAL_BATTLE_BROWN, $11
; ANIM_OBJ_2C
- battleanimobj $01, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, $03, $0d
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, PAL_BATTLE_YELLOW, $0d
; ANIM_OBJ_2D
- battleanimobj $21, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, $03, $05
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $05
; ANIM_OBJ_2E
- battleanimobj $21, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, $03, $05
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $05
; ANIM_OBJ_2F
- battleanimobj $21, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, $03, $05
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $05
; ANIM_OBJ_30
- battleanimobj $21, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, $03, $05
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, PAL_BATTLE_YELLOW, $05
; ANIM_OBJ_31
- battleanimobj $21, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, $03, $05
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $05
; ANIM_OBJ_LIGHTNING_BOLT
- battleanimobj $21, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, $02, $08
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, PAL_BATTLE_GRAY, $08
; ANIM_OBJ_33
- battleanimobj $21, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, $03, $05
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $05
; ANIM_OBJ_34
- battleanimobj $21, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, $02, $08
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, PAL_BATTLE_GRAY, $08
; ANIM_OBJ_35
- battleanimobj $21, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, $02, $02
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, PAL_BATTLE_GRAY, $02
; ANIM_OBJ_36
- battleanimobj $01, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, $02, $02
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, PAL_BATTLE_GRAY, $02
; ANIM_OBJ_37
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, $02, $02
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $02
; ANIM_OBJ_38
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, $02, $02
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $02
; ANIM_OBJ_39
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, $02, $02
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $02
; ANIM_OBJ_3A
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, $02, $02
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $02
; ANIM_OBJ_3B
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, $02, $02
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $02
; ANIM_OBJ_3C
- battleanimobj $01, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, $05, $12
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, PAL_BATTLE_GREEN, $12
; ANIM_OBJ_3D
- battleanimobj $01, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, $05, $12
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, PAL_BATTLE_GREEN, $12
; ANIM_OBJ_GUST
- battleanimobj $21, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, $02, $13
+ battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, PAL_BATTLE_GRAY, $13
; ANIM_OBJ_3F
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, $02, $14
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $14
; ANIM_OBJ_40
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, $02, $14
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $14
; ANIM_OBJ_41
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, $02, $14
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, PAL_BATTLE_GRAY, $14
; ANIM_OBJ_42
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, $02, $14
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, PAL_BATTLE_GRAY, $14
; ANIM_OBJ_43
- battleanimobj $21, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, $02, $14
+ battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, PAL_BATTLE_GRAY, $14
; ANIM_OBJ_44
- battleanimobj $21, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, $03, $11
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $11
; ANIM_OBJ_ABSORB
- battleanimobj $01, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, $05, $12
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, PAL_BATTLE_GREEN, $12
; ANIM_OBJ_46
- battleanimobj $21, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, $02, $15
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, PAL_BATTLE_GRAY, $15
; ANIM_OBJ_47
- battleanimobj $01, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, $03, $11
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, PAL_BATTLE_YELLOW, $11
; ANIM_OBJ_48
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, $05, $16
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, PAL_BATTLE_GREEN, $16
; ANIM_OBJ_49
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, $05, $16
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, PAL_BATTLE_GREEN, $16
; ANIM_OBJ_LEECH_SEED
- battleanimobj $21, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_LEECH_SEED, $05, $06
+ battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_LEECH_SEED, PAL_BATTLE_GREEN, $06
; ANIM_OBJ_4B
- battleanimobj $21, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, $02, $0e
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, PAL_BATTLE_GRAY, $0e
; ANIM_OBJ_4C
- battleanimobj $21, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, $02, $17
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, PAL_BATTLE_GRAY, $17
; ANIM_OBJ_4D
- battleanimobj $01, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, $03, $11
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, PAL_BATTLE_YELLOW, $11
; ANIM_OBJ_4E
- battleanimobj $61, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, $03, $10
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $10
; ANIM_OBJ_4F
- battleanimobj $61, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, $03, $10
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_YELLOW, $10
; ANIM_OBJ_50
- battleanimobj $21, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, $03, $18
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $18
; ANIM_OBJ_51
- battleanimobj $21, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, $02, $18
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $18
; ANIM_OBJ_CHICK
- battleanimobj $21, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, $03, $19
+ battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, PAL_BATTLE_YELLOW, $19
; ANIM_OBJ_53
- battleanimobj $01, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, $02, $19
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, PAL_BATTLE_GRAY, $19
; ANIM_OBJ_54
- battleanimobj $01, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, $02, $19
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, PAL_BATTLE_GRAY, $19
; ANIM_OBJ_SKULL
- battleanimobj $01, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, $02, $0c
+ battleanimobj RELATIVE_X, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $0c
; ANIM_OBJ_56
- battleanimobj $21, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, $07, $1a
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, PAL_BATTLE_BROWN, $1a
; ANIM_OBJ_57
- battleanimobj $21, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, $07, $1a
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, PAL_BATTLE_BROWN, $1a
; ANIM_OBJ_58
- battleanimobj $21, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, $02, $1a
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, PAL_BATTLE_GRAY, $1a
; ANIM_OBJ_PARALYZED
- battleanimobj $21, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, $03, $19
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, PAL_BATTLE_YELLOW, $19
; ANIM_OBJ_5A
- battleanimobj $21, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, $02, $1b
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, PAL_BATTLE_GRAY, $1b
; ANIM_OBJ_HAZE
- battleanimobj $00, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, $02, $1c
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_GRAY, $1c
; ANIM_OBJ_MIST
- battleanimobj $21, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_SPRIAL_DESCENT, $02, $1c
+ battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_GRAY, $1c
; ANIM_OBJ_SMOG
- battleanimobj $21, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, $02, $1c
+ battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_GRAY, $1c
; ANIM_OBJ_POISON_GAS
- battleanimobj $21, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_POISON_GAS, $02, $1c
+ battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_GRAY, $1c
; ANIM_OBJ_HORN
- battleanimobj $61, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_HORN, $02, $1d
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_HORN, PAL_BATTLE_GRAY, $1d
; ANIM_OBJ_60
- battleanimobj $61, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, $02, $1d
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, PAL_BATTLE_GRAY, $1d
; ANIM_OBJ_61
- battleanimobj $01, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, $04, $1e
+ battleanimobj RELATIVE_X, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, PAL_BATTLE_RED, $1e
; ANIM_OBJ_62
- battleanimobj $01, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, $02, $15
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, PAL_BATTLE_GRAY, $15
; ANIM_OBJ_63
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, $07, $19
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, PAL_BATTLE_BROWN, $19
; ANIM_OBJ_64
- battleanimobj $21, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, $02, $14
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, PAL_BATTLE_GRAY, $14
; ANIM_OBJ_65
- battleanimobj $01, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, $02, $11
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, PAL_BATTLE_GRAY, $11
; ANIM_OBJ_66
- battleanimobj $01, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_POISON_GAS, $04, $23
+ battleanimobj RELATIVE_X, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_RED, $23
; ANIM_OBJ_67
- battleanimobj $01, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, $02, $1f
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_68
- battleanimobj $01, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, $02, $1f
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_69
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, $02, $1f
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_6A
- battleanimobj $01, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, $03, $23
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, PAL_BATTLE_YELLOW, $23
; ANIM_OBJ_6B
- battleanimobj $21, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, $02, $1f
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_6C
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, $03, $11
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_YELLOW, $11
; ANIM_OBJ_6D
- battleanimobj $01, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, $03, $11
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_YELLOW, $11
; ANIM_OBJ_SKY_ATTACK_FEAROW
- battleanimobj $21, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, $02, $20
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, PAL_BATTLE_GRAY, $20
; ANIM_OBJ_LICK
- battleanimobj $21, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, $02, $04
+ battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $04
; ANIM_OBJ_WITHDRAW
- battleanimobj $21, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, $02, $18
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $18
; ANIM_OBJ_71
- battleanimobj $01, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, $06, $0d
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, PAL_BATTLE_BLUE, $0d
; ANIM_OBJ_72
- battleanimobj $01, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, $03, $12
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, PAL_BATTLE_YELLOW, $12
; ANIM_OBJ_73
- battleanimobj $01, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, $02, $08
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, PAL_BATTLE_GRAY, $08
; ANIM_OBJ_74
- battleanimobj $21, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, $02, $1c
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, PAL_BATTLE_GRAY, $1c
; ANIM_OBJ_75
- battleanimobj $21, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, $02, $15
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, PAL_BATTLE_GRAY, $15
; ANIM_OBJ_76
- battleanimobj $21, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, $02, $14
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, PAL_BATTLE_GRAY, $14
; ANIM_OBJ_77
- battleanimobj $01, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, $02, $11
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, PAL_BATTLE_GRAY, $11
; ANIM_OBJ_78
- battleanimobj $01, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, $02, $22
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $22
; ANIM_OBJ_79
- battleanimobj $01, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, $02, $22
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $22
; ANIM_OBJ_7A
- battleanimobj $01, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, $02, $1f
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_7B
- battleanimobj $01, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, $03, $11
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, PAL_BATTLE_YELLOW, $11
; ANIM_OBJ_7C
- battleanimobj $21, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, $03, $05
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $05
; ANIM_OBJ_7D
- battleanimobj $a1, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, $06, $13
+ battleanimobj RELATIVE_X | X_FLIP | BEHIND_BG, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, PAL_BATTLE_BLUE, $13
; ANIM_OBJ_HEART
- battleanimobj $01, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, $04, $23
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, PAL_BATTLE_RED, $23
; ANIM_OBJ_7F
- battleanimobj $01, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, $04, $03
+ battleanimobj RELATIVE_X, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, PAL_BATTLE_RED, $03
; ANIM_OBJ_80
- battleanimobj $01, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, $04, $03
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, PAL_BATTLE_RED, $03
; ANIM_OBJ_COTTON_SPORE
- battleanimobj $21, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_SPRIAL_DESCENT, $02, $1f
+ battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_82
- battleanimobj $21, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, $02, $1f
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_83
- battleanimobj $21, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, $02, $1f
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_84
- battleanimobj $21, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, $03, $1f
+ battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $1f
; ANIM_OBJ_85
- battleanimobj $01, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, $02, $0e
+ battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, PAL_BATTLE_GRAY, $0e
; ANIM_OBJ_86
- battleanimobj $21, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, $04, $1f
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, PAL_BATTLE_RED, $1f
; ANIM_OBJ_87
- battleanimobj $21, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, $02, $1f
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_88
- battleanimobj $21, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, $02, $1f
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_89
- battleanimobj $21, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, $02, $1f
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_8A
- battleanimobj $21, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, $03, $23
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, PAL_BATTLE_YELLOW, $23
; ANIM_OBJ_8B
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, $02, $19
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, PAL_BATTLE_GRAY, $19
; ANIM_OBJ_8C
- battleanimobj $21, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, $02, $15
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, PAL_BATTLE_GRAY, $15
; ANIM_OBJ_8D
- battleanimobj $21, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, $04, $19
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, PAL_BATTLE_RED, $19
; ANIM_OBJ_SPIKES
- battleanimobj $21, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, $02, $1f
+ battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, PAL_BATTLE_GRAY, $1f
; ANIM_OBJ_8F
- battleanimobj $01, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, $02, $0a
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, PAL_BATTLE_GRAY, $0a
; ANIM_OBJ_90
- battleanimobj $01, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, $04, $03
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, PAL_BATTLE_RED, $03
; ANIM_OBJ_91
- battleanimobj $01, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, $02, $08
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, PAL_BATTLE_GRAY, $08
; ANIM_OBJ_92
- battleanimobj $01, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, $02, $1b
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $1b
; ANIM_OBJ_93
- battleanimobj $21, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, $04, $23
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, PAL_BATTLE_RED, $23
; ANIM_OBJ_94
- battleanimobj $21, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, $02, $25
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, PAL_BATTLE_GRAY, $25
; ANIM_OBJ_95
- battleanimobj $21, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, $02, $25
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, PAL_BATTLE_GRAY, $25
; ANIM_OBJ_96
- battleanimobj $21, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, $02, $25
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $25
; ANIM_OBJ_97
- battleanimobj $21, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, $06, $25
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, PAL_BATTLE_BLUE, $25
; ANIM_OBJ_98
- battleanimobj $61, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, $05, $23
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, PAL_BATTLE_GREEN, $23
; ANIM_OBJ_99
- battleanimobj $21, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, $02, $23
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, PAL_BATTLE_GRAY, $23
; ANIM_OBJ_9A
- battleanimobj $21, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, $03, $23
+ battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, PAL_BATTLE_YELLOW, $23
; ANIM_OBJ_9B
- battleanimobj $21, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, $02, $25
+ battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, PAL_BATTLE_GRAY, $25
; ANIM_OBJ_9C
- battleanimobj $21, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, $03, $24
+ battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, PAL_BATTLE_YELLOW, $24
; ANIM_OBJ_9D
- battleanimobj $01, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, $02, $24
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $24
; ANIM_OBJ_9E
- battleanimobj $01, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, $03, $24
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $24
; ANIM_OBJ_9F
- battleanimobj $01, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, $04, $12
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, PAL_BATTLE_RED, $12
; ANIM_OBJ_A0
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, $02, $02
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $02
; ANIM_OBJ_A1
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, $02, $02
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $02
; ANIM_OBJ_A2
- battleanimobj $21, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, $07, $0f
+ battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, PAL_BATTLE_BROWN, $0f
; ANIM_OBJ_A3
- battleanimobj $21, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, $03, $05
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, PAL_BATTLE_YELLOW, $05
; ANIM_OBJ_A4
- battleanimobj $21, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, $02, $25
+ battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, PAL_BATTLE_GRAY, $25
; ANIM_OBJ_A5
- battleanimobj $61, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, $02, $23
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, PAL_BATTLE_GRAY, $23
; ANIM_OBJ_PERISH_SONG
- battleanimobj $00, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, $02, $0e
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, PAL_BATTLE_GRAY, $0e
; ANIM_OBJ_A7
- battleanimobj $01, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, $02, $24
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $24
; ANIM_OBJ_A8
- battleanimobj $21, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, $02, $13
+ battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, PAL_BATTLE_GRAY, $13
; ANIM_OBJ_A9
- battleanimobj $21, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, $02, $13
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, PAL_BATTLE_GRAY, $13
; ANIM_OBJ_AA
- battleanimobj $01, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, $02, $01
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_AB
- battleanimobj $01, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, $02, $0e
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, PAL_BATTLE_GRAY, $0e
; ANIM_OBJ_AC
- battleanimobj $01, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, $06, $17
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, PAL_BATTLE_BLUE, $17
; ANIM_OBJ_AD
- battleanimobj $01, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, $02, $01
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, PAL_BATTLE_GRAY, $01
; ANIM_OBJ_AE
- battleanimobj $21, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, $03, $11
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, PAL_BATTLE_YELLOW, $11
; ANIM_OBJ_AF
- battleanimobj $21, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, $02, $04
+ battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, PAL_BATTLE_GRAY, $04
; ANIM_OBJ_B0
- battleanimobj $00, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, $04, $1c
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, PAL_BATTLE_RED, $1c
; ANIM_OBJ_B1
- battleanimobj $01, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, $02, $19
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, PAL_BATTLE_GRAY, $19
; ANIM_OBJ_B2
- battleanimobj $01, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, $07, $09
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, PAL_BATTLE_BROWN, $09
; ANIM_OBJ_B3
- battleanimobj $61, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, $03, $27
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, PAL_BATTLE_YELLOW, $27
; ANIM_OBJ_B4
- battleanimobj $61, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, $06, $15
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, PAL_BATTLE_BLUE, $15
; ANIM_OBJ_B5
- battleanimobj $21, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, $07, $09
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, PAL_BATTLE_BROWN, $09
; ANIM_OBJ_FLOWER
- battleanimobj $01, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, $04, $1e
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, PAL_BATTLE_RED, $1e
; ANIM_OBJ_COTTON
- battleanimobj $01, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, $04, $1f
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, PAL_BATTLE_RED, $1f
; ANIM_OBJ_PLAYERFEETFOLLOW
- battleanimobj $00, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, $00, $28
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, PAL_BATTLE_ENEMY, $28
; ANIM_OBJ_ENEMYFEETFOLLOW
- battleanimobj $00, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, $01, $29
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, PAL_BATTLE_PLAYER, $29
; ANIM_OBJ_BA
- battleanimobj $00, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, $00, $28
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, PAL_BATTLE_ENEMY, $28
; ANIM_OBJ_BB
- battleanimobj $00, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, $01, $29
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, PAL_BATTLE_PLAYER, $29
; ccfbe
--- a/battle/objects/engine.asm
+++ b/battle/objects/engine.asm
@@ -249,10 +249,10 @@
.check_kinesis_softboiled_milkdrink
sub d
push af
- ld a, [FXAnimIDHi]
+ ld a, [FXAnimID + 1]
or a
jr nz, .no_sub
- ld a, [FXAnimIDLo]
+ ld a, [FXAnimID]
cp KINESIS
jr z, .kinesis
cp SOFTBOILED
--- a/battle/objects/functions.asm
+++ b/battle/objects/functions.asm
@@ -451,18 +451,18 @@
; cd26c (33:526c)
.balls
- db MASTER_BALL, 5
- db ULTRA_BALL, 3
- db GREAT_BALL, 6
- db POKE_BALL, 4
- db HEAVY_BALL, 2
- db LEVEL_BALL, 7
- db LURE_BALL, 6
- db FAST_BALL, 6
- db FRIEND_BALL, 3
- db MOON_BALL, 2
- db LOVE_BALL, 4
- db -1, 2
+ db MASTER_BALL, PAL_BATTLE_GREEN
+ db ULTRA_BALL, PAL_BATTLE_YELLOW
+ db GREAT_BALL, PAL_BATTLE_BLUE
+ db POKE_BALL, PAL_BATTLE_RED
+ db HEAVY_BALL, PAL_BATTLE_GRAY
+ db LEVEL_BALL, PAL_BATTLE_BROWN
+ db LURE_BALL, PAL_BATTLE_BLUE
+ db FAST_BALL, PAL_BATTLE_BLUE
+ db FRIEND_BALL, PAL_BATTLE_YELLOW
+ db MOON_BALL, PAL_BATTLE_GRAY
+ db LOVE_BALL, PAL_BATTLE_RED
+ db -1, PAL_BATTLE_GRAY
; cd284
BattleAnimFunction_10: ; cd284 (33:5284)
call BattleAnim_AnonJumptable
--- a/battle/trainer_huds.asm
+++ b/battle/trainer_huds.asm
@@ -256,9 +256,9 @@
ld de, OTPlayerName
call PlaceString
hlcoord 9, 8
- ld a, $69 ; "V"
+ ld a, "<BOLD_V>"
ld [hli], a
- ld [hl], $6a ; "S"
+ ld [hl], "<BOLD_S>"
callba LinkBattle_TrainerHuds ; no need to callba
ld b, SCGB_DIPLOMA
call GetSGBLayout
--- a/constants.asm
+++ b/constants.asm
@@ -22,6 +22,7 @@
INCLUDE "constants/phone_constants.asm"
INCLUDE "constants/gfx_constants.asm"
INCLUDE "constants/pokemon_data_constants.asm"
+INCLUDE "constants/mobile_constants.asm"
INCLUDE "constants/misc_constants.asm"
INCLUDE "constants/std_constants.asm"
INCLUDE "constants/deco_constants.asm"
--- a/constants/animation_constants.asm
+++ b/constants/animation_constants.asm
@@ -1,3 +1,4 @@
+; battle_anim_struct members (see macros/wram.asm)
const_def
const BATTLEANIMSTRUCT_INDEX
const BATTLEANIMSTRUCT_01
@@ -25,6 +26,7 @@
const BATTLEANIMSTRUCT_17
BATTLEANIMSTRUCT_LENGTH EQU const_value
+; BattleAnimObjects indexes (see battle/objects/data.asm)
const_def
const ANIM_OBJ_00
const ANIM_OBJ_01
@@ -215,6 +217,7 @@
const ANIM_OBJ_BA
const ANIM_OBJ_BB
+; DoBattleAnimFrame arguments (see battle/objects/functions.asm)
const_def
const BATTLEANIMFUNC_00
const BATTLEANIMFUNC_01
@@ -297,6 +300,7 @@
const BATTLEANIMFUNC_4E
const BATTLEANIMFUNC_4F
+; BattleAnimFrameData indexes (see battle/objects/framesets.asm)
const_def
const BATTLEANIMFRAMESET_00
const BATTLEANIMFRAMESET_01
@@ -484,6 +488,7 @@
const BATTLEANIMFRAMESET_B7
const BATTLEANIMFRAMESET_B8
+; BattleAnimOAMData indexes (see battle/objects/oam.asm)
const_def
const BATTLEANIMOAMSET_00
const BATTLEANIMOAMSET_01
@@ -702,6 +707,7 @@
const BATTLEANIMOAMSET_D6
const BATTLEANIMOAMSET_D7
+; BattleBGEffects indexes (see battle/bg_effects.asm)
const_value SET 1
const ANIM_BG_FLASH_INVERTED
const ANIM_BG_FLASH_WHITE
@@ -757,17 +763,19 @@
const ANIM_BG_WOBBLE_MON
const ANIM_BG_35
+; PokeAnims indexes (see gfx/pics/animation.asm)
const_def
- const ANIM_MON_SLOW ; 0
- const ANIM_MON_NORMAL ; 1
- const ANIM_MON_MENU ; 2
- const ANIM_MON_TRADE ; 3
- const ANIM_MON_EVOLVE ; 4
- const ANIM_MON_HATCH ; 5
- const ANIM_MON_UNUSED ; 6
- const ANIM_MON_EGG1 ; 7
- const ANIM_MON_EGG2 ; 8
+ const ANIM_MON_SLOW
+ const ANIM_MON_NORMAL
+ const ANIM_MON_MENU
+ const ANIM_MON_TRADE
+ const ANIM_MON_EVOLVE
+ const ANIM_MON_HATCH
+ const ANIM_MON_UNUSED
+ const ANIM_MON_EGG1
+ const ANIM_MON_EGG2
+; AnimObjGFX indexes (see battle/objects/gfx_headers.asm)
const_value SET 1
const ANIM_GFX_HIT
const ANIM_GFX_CUT
@@ -809,8 +817,20 @@
const ANIM_GFX_WAVE
const ANIM_GFX_AEROBLAST
+; battle_bg_effect struct members (see macros/wram.asm)
const_def
const BG_EFFECT_STRUCT_FUNCTION
const BG_EFFECT_STRUCT_JT_INDEX
const BG_EFFECT_STRUCT_BATTLE_TURN
const BG_EFFECT_STRUCT_03
+
+; animation object palettes
+ const_def
+ const PAL_BATTLE_ENEMY ; 0
+ const PAL_BATTLE_PLAYER ; 1
+ const PAL_BATTLE_GRAY ; 2
+ const PAL_BATTLE_YELLOW ; 3
+ const PAL_BATTLE_RED ; 4
+ const PAL_BATTLE_GREEN ; 5
+ const PAL_BATTLE_BLUE ; 6
+ const PAL_BATTLE_BROWN ; 7
--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -1,63 +1,69 @@
-
-
; pitch
const_def
- const __
- const C_
- const C#
- const D_
- const D#
- const E_
- const F_
- const F#
- const G_
- const G#
- const A_
- const A#
- const B_
- const CC ; used for pitchoffset
+ const __ ; 0
+ const C_ ; 1
+ const C# ; 2
+ const D_ ; 3
+ const D# ; 4
+ const E_ ; 5
+ const F_ ; 6
+ const F# ; 7
+ const G_ ; 8
+ const G# ; 9
+ const A_ ; a
+ const A# ; b
+ const B_ ; c
+ const CC ; d (used for pitchoffset)
; channel
+; ChannelPointers indexes (see engine/audio.asm)
const_def
- const CHAN1
- const CHAN2
- const CHAN3
- const CHAN4
+ const CHAN1 ; 0
+ const CHAN2 ; 1
+ const CHAN3 ; 2
+ const CHAN4 ; 3
NUM_MUSIC_CHANS EQU const_value
NUM_NOISE_CHANS EQU const_value
- const CHAN5
- const CHAN6
- const CHAN7
- const CHAN8
+ const CHAN5 ; 4
+ const CHAN6 ; 5
+ const CHAN7 ; 6
+ const CHAN8 ; 7
NUM_CHANNELS EQU const_value
; Flags1
-SOUND_CHANNEL_ON EQU 0
-SOUND_SUBROUTINE EQU 1
-SOUND_LOOPING EQU 2
-SOUND_SFX EQU 3
-SOUND_NOISE EQU 4
-SOUND_REST EQU 5
+ const_def
+ const SOUND_CHANNEL_ON ; 0
+ const SOUND_SUBROUTINE ; 1
+ const SOUND_LOOPING ; 2
+ const SOUND_SFX ; 3
+ const SOUND_NOISE ; 4
+ const SOUND_REST ; 5
; Flags2
+ const_def
+ const SOUND_VIBRATO ; 0
+ const SOUND_PITCH_WHEEL ; 1
+ const SOUND_DUTY ; 2
+ const SOUND_UNKN_0B ; 3
+ const SOUND_CRY_PITCH ; 4
+ const SOUND_UNKN_0D ; 5
+ const SOUND_UNKN_0E ; 6
+ const SOUND_UNKN_0F ; 7
-SOUND_VIBRATO EQU 0
-SOUND_PITCH_WHEEL EQU 1
-SOUND_DUTY EQU 2
-SOUND_UNKN_0B EQU 3
-SOUND_CRY_PITCH EQU 4
-SOUND_UNKN_0D EQU 5
-SOUND_UNKN_0E EQU 6
-SOUND_UNKN_0F EQU 7
-
; Flags3
-SOUND_VIBRATO_DIR EQU 0
-SOUND_PITCH_WHEEL_DIR EQU 1
+ const_def
+ const SOUND_VIBRATO_DIR ; 0
+ const SOUND_PITCH_WHEEL_DIR ; 1
; NoteFlags
-NOTE_DUTY_OVERRIDE EQU 0
-NOTE_FREQ_OVERRIDE EQU 1
-NOTE_UNKN_3 EQU 3
-NOTE_NOISE_SAMPLING EQU 4
-NOTE_REST EQU 5
-NOTE_VIBRATO_OVERRIDE EQU 6
+ const_def
+ const NOTE_DUTY_OVERRIDE ; 0
+ const NOTE_FREQ_OVERRIDE ; 1
+ const NOTE_UNUSED ; 2
+ const NOTE_UNKN_3 ; 3
+ const NOTE_NOISE_SAMPLING ; 4
+ const NOTE_REST ; 5
+ const NOTE_VIBRATO_OVERRIDE ; 6
+
+; Volume:
+MAX_VOLUME EQU $77
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -1,12 +1,20 @@
+; significant level values
MAX_LEVEL EQU 100
MIN_LEVEL EQU 2
EGG_LEVEL EQU 5
+
+; maximum moves known per mon
NUM_MOVES EQU 4
-REST_TURNS EQU 2
-MAX_STAT_LEVEL EQU 13
+; significant stat values
BASE_STAT_LEVEL EQU 7
+MAX_STAT_LEVEL EQU 13
+; turns that Rest sleep lasts
+REST_TURNS EQU 2
+
+; PlayerStatLevels and EnemyStatLevels indexes
+; used for GetStatName
const_def
const ATTACK
const DEFENSE
@@ -15,10 +23,10 @@
const SP_DEFENSE
const ACCURACY
const EVASION
- const ABILITY
+ const ABILITY ; used for BattleCommand_Curse
NUM_LEVEL_STATS EQU const_value
-; move struct
+; move struct members (see battle/moves/moves.asm)
const_def
const MOVE_ANIM
const MOVE_EFFECT
@@ -30,6 +38,9 @@
const MOVE_LENGTH
; stat constants
+; indexes for:
+; - PlayerStats and EnemyStats (see wram.asm)
+; - party_struct and battle_struct members (see macros/wram.asm)
const_value SET 1
const STAT_HP
const STAT_ATK
@@ -38,6 +49,8 @@
const STAT_SATK
const STAT_SDEF
NUM_STATS EQU const_value
+
+; stat formula constants
STAT_MIN_NORMAL EQU 5
STAT_MIN_HP EQU 10
@@ -45,12 +58,12 @@
ATKDEFDV_SHINY EQU $EA
SPDSPCDV_SHINY EQU $AA
-; battle classes
+; battle classes (wBattleMode values)
const_value SET 1
const WILD_BATTLE
const TRAINER_BATTLE
-; battle types
+; battle types (BattleType values)
const_def
const BATTLETYPE_NORMAL
const BATTLETYPE_CANLOSE
@@ -66,7 +79,7 @@
const BATTLETYPE_CELEBI
const BATTLETYPE_SUICUNE
-; battle variables
+; GetBattleVar and GetBattleVarAddr arguments (see home/battle.asm)
const_def
const BATTLE_VARS_SUBSTATUS1
const BATTLE_VARS_SUBSTATUS2
@@ -90,8 +103,37 @@
const BATTLE_VARS_LAST_MOVE
const BATTLE_VARS_LAST_MOVE_OPP
-; status
-SLP EQU 7 ; 0-7 turns
+; GetBattleVar and GetBattleVarAddr internal indexes (see home/battle.asm)
+ const_def
+ const PLAYER_SUBSTATUS_1
+ const ENEMY_SUBSTATUS_1
+ const PLAYER_SUBSTATUS_2
+ const ENEMY_SUBSTATUS_2
+ const PLAYER_SUBSTATUS_3
+ const ENEMY_SUBSTATUS_3
+ const PLAYER_SUBSTATUS_4
+ const ENEMY_SUBSTATUS_4
+ const PLAYER_SUBSTATUS_5
+ const ENEMY_SUBSTATUS_5
+ const PLAYER_STATUS
+ const ENEMY_STATUS
+ const PLAYER_MOVE_ANIMATION
+ const ENEMY_MOVE_ANIMATION
+ const PLAYER_MOVE_EFFECT
+ const ENEMY_MOVE_EFFECT
+ const PLAYER_MOVE_POWER
+ const ENEMY_MOVE_POWER
+ const PLAYER_MOVE_TYPE
+ const ENEMY_MOVE_TYPE
+ const PLAYER_CUR_MOVE
+ const ENEMY_CUR_MOVE
+ const PLAYER_COUNTER_MOVE
+ const ENEMY_COUNTER_MOVE
+ const PLAYER_LAST_MOVE
+ const ENEMY_LAST_MOVE
+
+; status condition bit flags
+SLP EQU %111 ; 0-7 turns
const_value SET 3
const PSN
const BRN
@@ -100,7 +142,7 @@
ALL_STATUS EQU (1 << PSN) + (1 << BRN) + (1 << FRZ) + (1 << PAR) + SLP
-; substatus
+; PlayerSubStatus1 or EnemySubStatus1 bit flags
enum_start 7, -1
enum SUBSTATUS_IN_LOVE
enum SUBSTATUS_ROLLOUT
@@ -111,8 +153,10 @@
enum SUBSTATUS_CURSE
enum SUBSTATUS_NIGHTMARE
-SUBSTATUS_CURLED EQU 0
+; PlayerSubStatus2 or EnemySubStatus2 bit flags
+SUBSTATUS_CURLED EQU 0
+; PlayerSubStatus3 or EnemySubStatus3 bit flags
enum_start 7, -1
enum SUBSTATUS_CONFUSED
enum SUBSTATUS_FLYING
@@ -123,6 +167,7 @@
enum SUBSTATUS_RAMPAGE
enum SUBSTATUS_BIDE
+; PlayerSubStatus4 or EnemySubStatus4 bit flags
enum_start 7, -1
enum SUBSTATUS_LEECH_SEED
enum SUBSTATUS_RAGE
@@ -133,6 +178,7 @@
enum SUBSTATUS_MIST
enum SUBSTATUS_X_ACCURACY
+; PlayerSubStatus5 or EnemySubStatus5 bit flags
enum_start 7, -1
enum SUBSTATUS_CANT_RUN
enum SUBSTATUS_DESTINY_BOND
@@ -143,7 +189,7 @@
enum SUBSTATUS_UNKNOWN_3
enum SUBSTATUS_TOXIC
-; environmental
+; PlayerScreens or EnemyScreens bit flags
enum_start 4, -1
enum SCREENS_REFLECT
enum SCREENS_LIGHT_SCREEN
@@ -151,7 +197,7 @@
enum SCREENS_UNUSED
enum SCREENS_SPIKES
-; weather
+; Weather values
const_def
const WEATHER_NONE
const WEATHER_RAIN
@@ -161,8 +207,7 @@
const WEATHER_SUN_END
const WEATHER_SANDSTORM_END
-
-; move effects
+; MoveEffectsPointers indexes (see battle/moves/move_effects_pointers.asm)
const_def
const EFFECT_NORMAL_HIT
const EFFECT_SLEEP
@@ -322,35 +367,6 @@
const EFFECT_FLY
const EFFECT_DEFENSE_CURL
-; Battle vars used in home/battle.asm
- const_def
- const PLAYER_SUBSTATUS_1
- const ENEMY_SUBSTATUS_1
- const PLAYER_SUBSTATUS_2
- const ENEMY_SUBSTATUS_2
- const PLAYER_SUBSTATUS_3
- const ENEMY_SUBSTATUS_3
- const PLAYER_SUBSTATUS_4
- const ENEMY_SUBSTATUS_4
- const PLAYER_SUBSTATUS_5
- const ENEMY_SUBSTATUS_5
- const PLAYER_STATUS
- const ENEMY_STATUS
- const PLAYER_MOVE_ANIMATION
- const ENEMY_MOVE_ANIMATION
- const PLAYER_MOVE_EFFECT
- const ENEMY_MOVE_EFFECT
- const PLAYER_MOVE_POWER
- const ENEMY_MOVE_POWER
- const PLAYER_MOVE_TYPE
- const ENEMY_MOVE_TYPE
- const PLAYER_CUR_MOVE
- const ENEMY_CUR_MOVE
- const PLAYER_COUNTER_MOVE
- const ENEMY_COUNTER_MOVE
- const PLAYER_LAST_MOVE
- const ENEMY_LAST_MOVE
-
; wBattleAction
const_def
const BATTLEACTION_MOVE1
@@ -370,6 +386,7 @@
const BATTLEACTION_E
const BATTLEACTION_FORFEIT
+; wBattleResult
const_def
const WIN
const LOSE
--- a/constants/battle_tower_constants.asm
+++ b/constants/battle_tower_constants.asm
@@ -1,3 +1,4 @@
+; BattleTowerAction arguments (see misc/battle_tower_5c.asm)
const_def
const BATTLETOWERACTION_CHECK_EXPLANATION_READ
const BATTLETOWERACTION_SET_EXPLANATION_READ
@@ -32,8 +33,19 @@
const BATTLETOWERACTION_CHOOSEREWARD ; save options
const BATTLETOWERACTION_SAVEOPTIONS
-BATTLETOWER_NO_CHALLENGE EQU 0
-BATTLETOWER_SAVED_AND_LEFT EQU 1
-BATTLETOWER_CHALLENGE_IN_PROGESS EQU 2
-BATTLETOWER_WON_CHALLENGE EQU 3
-BATTLETOWER_RECEIVED_REWARD EQU 4
+; sBattleTowerChallengeState
+ const_def
+ const BATTLETOWER_NO_CHALLENGE
+ const BATTLETOWER_SAVED_AND_LEFT
+ const BATTLETOWER_CHALLENGE_IN_PROGESS
+ const BATTLETOWER_WON_CHALLENGE
+ const BATTLETOWER_RECEIVED_REWARD
+
+BATTLETOWER_NROFPKMNS EQU 3
+BATTLETOWER_TRAINERDATALENGTH EQU $24
+BATTLETOWER_NROFTRAINERS EQU 7
+BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS
+BATTLE_TOWER_STRUCT_LENGTH EQU $e0 ; NAME_LENGTH + 3 * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH
+
+; return value from BattleTowerAction(BATTLETOWERACTION_CHECKMOBILEEVENT)
+MOBILE_EVENT_OBJECT_GS_BALL EQU $b
--- a/constants/cgb_constants.asm
+++ b/constants/cgb_constants.asm
@@ -1,3 +1,4 @@
+; GetSGBLayout arguments (see predef/cgb.asm and predef/sgb.asm)
const_def
const SCGB_BATTLE_GRAYSCALE
const SCGB_BATTLE_COLORS
--- a/constants/cry_constants.asm
+++ b/constants/cry_constants.asm
@@ -1,3 +1,4 @@
+; Cries indexes (see audio/cry_pointers.asm)
const_def
; gen 1
--- a/constants/deco_constants.asm
+++ b/constants/deco_constants.asm
@@ -1,3 +1,4 @@
+; decoration types
const_value = 1
const DECO_PLANT
const DECO_BED
@@ -6,6 +7,7 @@
const DECO_DOLL
const DECO_BIGDOLL
+; DecorationNames indexes (see engine/decorations.asm)
const_value = 1
const PUT_IT_AWAY
const MAGNAPLANT
@@ -33,6 +35,7 @@
const YELLOW_CARPET
const GREEN_CARPET
+; DoDecorationAction2 arguments (see engine/decorations.asm)
const_value = 1
const SET_UP_BED
const PUT_AWAY_BED
@@ -56,66 +59,67 @@
enum DECOFLAG_\1
endm
+; decorations
const_value = 1
__enum__ = 0
const BEDS
- deco FEATHERY_BED ; 2 (0)
- deco PINK_BED ; 3 (1)
- deco POLKADOT_BED ; 4 (2)
- deco PIKACHU_BED ; 5 (3)
+ deco FEATHERY_BED
+ deco PINK_BED
+ deco POLKADOT_BED
+ deco PIKACHU_BED
const CARPETS
- deco RED_CARPET ; 7 (4)
- deco BLUE_CARPET ; 8 (5)
- deco YELLOW_CARPET ; 9 (6)
- deco GREEN_CARPET ; a (7)
+ deco RED_CARPET
+ deco BLUE_CARPET
+ deco YELLOW_CARPET
+ deco GREEN_CARPET
const PLANTS
- deco MAGNAPLANT ; c (8)
- deco TROPICPLANT ; d (9)
- deco JUMBOPLANT ; e (a)
+ deco MAGNAPLANT
+ deco TROPICPLANT
+ deco JUMBOPLANT
const POSTERS
- deco TOWN_MAP ; 10 (b)
- deco PIKACHU_POSTER ; 11 (c)
- deco CLEFAIRY_POSTER ; 12 (d)
- deco JIGGLYPUFF_POSTER ; 13(e)
+ deco TOWN_MAP
+ deco PIKACHU_POSTER
+ deco CLEFAIRY_POSTER
+ deco JIGGLYPUFF_POSTER
const CONSOLES
- deco FAMICOM ; 15 (f)
- deco SNES ; 16 (10)
- deco N64 ; 17 (11)
- deco VIRTUAL_BOY ; 18 (12)
+ deco FAMICOM
+ deco SNES
+ deco N64
+ deco VIRTUAL_BOY
const BIG_DOLLS
- deco BIG_SNORLAX_DOLL ; 1a (13)
- deco BIG_ONIX_DOLL ; 1b (14)
- deco BIG_LAPRAS_DOLL ; 1c (15)
+ deco BIG_SNORLAX_DOLL
+ deco BIG_ONIX_DOLL
+ deco BIG_LAPRAS_DOLL
const DOLLS
- deco PIKACHU_DOLL ; 1e (16)
- deco SURF_PIKACHU_DOLL ; 1f (17)
- deco CLEFAIRY_DOLL ; 20 (18)
- deco JIGGLYPUFF_DOLL ; 21 (19)
- deco BULBASAUR_DOLL ; 22 (1a)
- deco CHARMANDER_DOLL ; 23 (1b)
- deco SQUIRTLE_DOLL ; 24 (1c)
- deco POLIWAG_DOLL ; 25 (1d)
- deco DIGLETT_DOLL ; 26 (1e)
- deco STARMIE_DOLL ; 27 (1f)
- deco MAGIKARP_DOLL ; 28 (20)
- deco ODDISH_DOLL ; 29 (21)
- deco GENGAR_DOLL ; 2a (22)
- deco SHELLDER_DOLL ; 2b (23)
- deco GRIMER_DOLL ; 2c (24)
- deco VOLTORB_DOLL ; 2d (25)
- deco WEEDLE_DOLL ; 2e (26)
- deco UNOWN_DOLL ; 2f (27)
- deco GEODUDE_DOLL ; 30 (28)
- deco MACHOP_DOLL ; 31 (29)
- deco TENTACOOL_DOLL ; 32 (2a)
- deco GOLD_TROPHY_DOLL ; 33 (2b)
- deco SILVER_TROPHY_DOLL ; 34 (2c)
+ deco PIKACHU_DOLL
+ deco SURF_PIKACHU_DOLL
+ deco CLEFAIRY_DOLL
+ deco JIGGLYPUFF_DOLL
+ deco BULBASAUR_DOLL
+ deco CHARMANDER_DOLL
+ deco SQUIRTLE_DOLL
+ deco POLIWAG_DOLL
+ deco DIGLETT_DOLL
+ deco STARMIE_DOLL
+ deco MAGIKARP_DOLL
+ deco ODDISH_DOLL
+ deco GENGAR_DOLL
+ deco SHELLDER_DOLL
+ deco GRIMER_DOLL
+ deco VOLTORB_DOLL
+ deco WEEDLE_DOLL
+ deco UNOWN_DOLL
+ deco GEODUDE_DOLL
+ deco MACHOP_DOLL
+ deco TENTACOOL_DOLL
+ deco GOLD_TROPHY_DOLL
+ deco SILVER_TROPHY_DOLL
-NUM_NON_TROPHY_DECOS EQU $2b
-NUM_DECOS EQU $2d
+NUM_DECOS = __enum__
+NUM_NON_TROPHY_DECOS = NUM_DECOS +- 2
--- a/constants/engine_flags.asm
+++ b/constants/engine_flags.asm
@@ -1,16 +1,22 @@
+; EngineFlags indexes (see engine/engine_flasg.asm)
const_def
-
+; wPokegearFlags
const ENGINE_RADIO_CARD
const ENGINE_MAP_CARD
const ENGINE_PHONE_CARD
const ENGINE_EXPN_CARD
const ENGINE_POKEGEAR
+; wDaycareMan
const ENGINE_DAYCARE_MAN_HAS_EGG
const ENGINE_DAYCARE_MAN_HAS_MON
+; wDaycareLady
const ENGINE_DAYCARE_LADY_HAS_MON
+; wMomSavingMoney
const ENGINE_MOM_SAVING_MONEY
const ENGINE_DST
+; wUnusedTwoDayTimerOn
const ENGINE_0A
+; StatusFlags
const ENGINE_POKEDEX
const ENGINE_UNOWN_DEX
const ENGINE_POKERUS
@@ -17,6 +23,7 @@
const ENGINE_ROCKET_SIGNAL_ON_CH20
const ENGINE_CREDITS_SKIP
const ENGINE_BUG_CONTEST_ON ; 10
+; StatusFlags2
const ENGINE_BUG_CONTEST_TIMER
const ENGINE_SAFARI_ZONE
const ENGINE_ROCKETS_IN_RADIO_TOWER
@@ -24,9 +31,11 @@
const ENGINE_GIVE_POKERUS
const ENGINE_FLORIA
const ENGINE_ROCKETS_IN_MAHOGANY
+; BikeFlags
const ENGINE_STRENGTH_ACTIVE
const ENGINE_ALWAYS_ON_BIKE
const ENGINE_DOWNHILL
+; JohtoBadges
const ENGINE_ZEPHYRBADGE
const ENGINE_HIVEBADGE
const ENGINE_PLAINBADGE
@@ -35,6 +44,7 @@
const ENGINE_STORMBADGE ; 20
const ENGINE_GLACIERBADGE
const ENGINE_RISINGBADGE
+; KantoBadges
const ENGINE_BOULDERBADGE
const ENGINE_CASCADEBADGE
const ENGINE_THUNDERBADGE
@@ -43,6 +53,7 @@
const ENGINE_MARSHBADGE
const ENGINE_VOLCANOBADGE
const ENGINE_EARTHBADGE
+; UnlockedUnowns
const ENGINE_UNLOCKED_UNOWNS_1
const ENGINE_UNLOCKED_UNOWNS_2
const ENGINE_UNLOCKED_UNOWNS_3
@@ -51,6 +62,7 @@
const ENGINE_UNLOCKED_UNOWNS_6 ; 30
const ENGINE_UNLOCKED_UNOWNS_7
const ENGINE_UNLOCKED_UNOWNS_8
+; VisitedSpawns
const ENGINE_FLYPOINT_KRISS_HOUSE
const ENGINE_FLYPOINT_VIRIDIAN_POKECENTER
const ENGINE_FLYPOINT_PALLET
@@ -78,8 +90,11 @@
const ENGINE_FLYPOINT_BLACKTHORN
const ENGINE_FLYPOINT_SILVER_CAVE
const ENGINE_FLYPOINT_UNUSED
+; wLuckyNumberShowFlag
const ENGINE_LUCKY_NUMBER_SHOW
+; StatusFlags2
const ENGINE_4F
+; DailyFlags
const ENGINE_KURT_MAKING_BALLS ; 50
const ENGINE_DAILY_BUG_CONTEST
const ENGINE_SPECIAL_WILDDATA
@@ -88,6 +103,7 @@
const ENGINE_SHUCKLE_GIVEN
const ENGINE_GOLDENROD_UNDERGROUND_MERCHANT_CLOSED
const ENGINE_FOUGHT_IN_TRAINER_HALL_TODAY
+; WeeklyFlags
const ENGINE_MT_MOON_SQUARE_CLEFAIRY
const ENGINE_UNION_CAVE_LAPRAS
const ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT
@@ -96,11 +112,16 @@
const ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT
const ENGINE_DAILY_MOVE_TUTOR
const ENGINE_BUENAS_PASSWORD
+; SwarmFlags
const ENGINE_BUENAS_PASSWORD_2 ; 60
const ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON
+; GameTimerPause
const ENGINE_62
+; PlayerGender
const ENGINE_PLAYER_IS_FEMALE
+; wCelebiEvent
const ENGINE_HAVE_EXAMINED_GS_BALL
+; wDailyRematchFlags
const ENGINE_JACK
const ENGINE_HUEY
const ENGINE_GAVEN
@@ -125,6 +146,7 @@
const ENGINE_WILTON
const ENGINE_PARRY
const ENGINE_ERIN
+; wDailyPhoneItemFlags
const ENGINE_BEVERLY_HAS_NUGGET
const ENGINE_JOSE_HAS_STAR_PIECE
const ENGINE_WADE_HAS_ITEM
@@ -135,6 +157,7 @@
const ENGINE_TULLY_HAS_WATER_STONE
const ENGINE_TIFFANY_HAS_PINK_BOW
const ENGINE_WILTON_HAS_ITEM
+; wDailyPhoneTimeOfDayFlags
const ENGINE_JACK_MONDAY_MORNING
const ENGINE_HUEY_WEDNESDAY_NIGHT
const ENGINE_GAVEN_THURSDAY_MORNING
@@ -159,7 +182,9 @@
const ENGINE_WILTON_THRUSDAY_MORNING
const ENGINE_PARRY_FRIDAY_AFTERNOON
const ENGINE_ERIN_SATURDAY_NIGHT
+; wPlayerSpriteSetupFlags
const ENGINE_KRIS_IN_CABLE_CLUB
+; SwarmFlags
const ENGINE_DUNSPARCE_SWARM ; a0
const ENGINE_YANMA_SWARM
NUM_ENGINE_FLAGS EQU const_value
--- a/constants/event_flags.asm
+++ b/constants/event_flags.asm
@@ -1,7 +1,6 @@
-
+; EventFlags bit flags
const_def
-
-; These first eight flags are reset upon reloading the map.
+; The first eight flags are reset upon reloading the map
const EVENT_GAVE_KURT_APRICORNS ; 000
const EVENT_RECEIVED_BALLS_FROM_KURT
const EVENT_DRAGON_SHRINE_QUESTION_2
@@ -10,7 +9,7 @@
const EVENT_DRAGON_SHRINE_QUESTION_5
const EVENT_JUST_RECEIVED_DRATINI
const EVENT_IN_YOUR_ROOM
-; Johto story events
+; Johto Gym Leader TM gifts
const EVENT_GOT_TM31_MUD_SLAP
const EVENT_GOT_TM49_FURY_CUTTER
const EVENT_GOT_TM01_DYNAMICPUNCH
@@ -19,6 +18,7 @@
const EVENT_GOT_TM23_IRON_TAIL
const EVENT_GOT_TM16_ICY_WIND
const EVENT_GOT_TM24_DRAGONBREATH
+; HMs (EVENT_GOT_HM07_WATERFALL is with the Johto itemballs)
const EVENT_GOT_HM01_CUT
const EVENT_GOT_HM02_FLY
const EVENT_GOT_HM03_SURF
@@ -26,9 +26,11 @@
const EVENT_GOT_HM05_FLASH
const EVENT_GOT_HM06_WHIRLPOOL
const EVENT_016
+; Rods
const EVENT_GOT_OLD_ROD
const EVENT_GOT_GOOD_ROD
const EVENT_GOT_SUPER_ROD
+; Johto story events
const EVENT_GOT_A_POKEMON_FROM_ELM
const EVENT_GOT_CYNDAQUIL_FROM_ELM
const EVENT_GOT_TOTODILE_FROM_ELM
@@ -128,7 +130,7 @@
const EVENT_GOT_TM12_SWEET_SCENT
const EVENT_RELEASED_THE_BEASTS
const EVENT_GOT_MASTER_BALL_FROM_ELM
-; Johto Signpost Items
+; Johto signpost items
const EVENT_TIN_TOWER_4F_HIDDEN_MAX_POTION
const EVENT_TIN_TOWER_5F_HIDDEN_FULL_RESTORE
const EVENT_TIN_TOWER_5F_HIDDEN_CARBOS
@@ -234,7 +236,7 @@
const EVENT_TALKED_TO_OAK_IN_KANTO
const EVENT_GOT_HP_UP_FROM_VERMILION_GUY
const EVENT_GOT_TM29_PSYCHIC
-; Kanto Signpost Items
+; Kanto signpost items
const EVENT_DIGLETTS_CAVE_HIDDEN_MAX_REVIVE
const EVENT_UNDERGROUND_HIDDEN_FULL_RESTORE
const EVENT_UNDERGROUND_HIDDEN_X_SPECIAL
@@ -608,7 +610,7 @@
const EVENT_255
const EVENT_256
const EVENT_257
-; Kurt events
+; Kurt Apricorn events
const EVENT_GAVE_KURT_RED_APRICORN
const EVENT_GAVE_KURT_BLU_APRICORN
const EVENT_GAVE_KURT_YLW_APRICORN
@@ -682,7 +684,7 @@
const EVENT_ERIN_ASKED_FOR_PHONE_NUMBER
const EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD
const EVENT_29F
-; Ruins Of Alph puzzles
+; Ruins of Alph puzzles
const EVENT_SOLVED_HO_OH_PUZZLE ; 2a0
const EVENT_SOLVED_KABUTO_PUZZLE
const EVENT_SOLVED_OMANYTE_PUZZLE
@@ -734,7 +736,7 @@
const EVENT_DECO_BIG_SNORLAX_DOLL
const EVENT_DECO_BIG_ONIX_DOLL ; 2d0
const EVENT_DECO_BIG_LAPRAS_DOLL
-; More Johto events
+; More Johto story events
const EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE
const EVENT_SWITCH_1
const EVENT_SWITCH_2
@@ -818,7 +820,7 @@
const EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
const EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
const EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA
-; More Crystal-specific events
+; More Crystal-exclusive events in Johto
const EVENT_LISTENED_TO_INITIAL_RADIO
const EVENT_WALL_OPENED_IN_HO_OH_CHAMBER
const EVENT_WALL_OPENED_IN_KABUTO_CHAMBER
@@ -1015,7 +1017,7 @@
const EVENT_3E5
const EVENT_3E6
const EVENT_3E7
-; Trainer Flags
+; Trainer flags
; Swimmer F
const EVENT_BEAT_SWIMMERF_ELAINE
const EVENT_BEAT_SWIMMERF_PAULA
@@ -1530,7 +1532,7 @@
const EVENT_BEAT_ELITE_4_BRUNO
const EVENT_BEAT_ELITE_4_KAREN
const EVENT_BEAT_CHAMPION_LANCE
-; New to Crystal
+; Crystal-exclusive trainer flags
const EVENT_BEAT_COOLTRAINERM_DARIN
const EVENT_BEAT_COOLTRAINERF_CARA
const EVENT_BEAT_TWINS_LEA_AND_PIA
@@ -1663,10 +1665,11 @@
const EVENT_63D
const EVENT_63E
const EVENT_63F
-; Sprite visibility: When these events are cleared, the sprite becomes visible; when set, the sprite is hidden.
+; Sprite visibility flags
+; When these events are cleared, the sprite becomes visible; when set, the sprite is hidden.
; The map script command macros `disappear` and `appear` set/clear these flags and immediately apply the effect on visibility.
; The map script command macros `setevent` and `clearevent` set/clear these flags, and their effects will be seen when the map is reloaded.
-; Johto items: 0x640
+; Johto itemballs
const EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
const EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
const EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
@@ -1986,6 +1989,7 @@
const EVENT_MT_MOON_RIVAL
const EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
const EVENT_TELEPORT_GUY
+; Kanto itemballs
const EVENT_PICKED_UP_FOCUS_BAND
const EVENT_ROCK_TUNNEL_1F_ELIXER
const EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -1,4 +1,3 @@
LEN_2BPP_TILE EQU 16
LEN_1BPP_TILE EQU 8
TILES_PER_FRAME EQU 6
-TILESIZE EQU $10
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -1,3 +1,9 @@
+; item ids
+; indexes for:
+; - ItemAttributes (see items/item_attributes.asm)
+; - ItemDescriptions (see items/item_descriptions.asm)
+; - ItemEffects (see items/item_effects.asm)
+; - ItemNames (see items/item_names.asm)
const_def
const NO_ITEM ; $00
const MASTER_BALL ; $01
@@ -243,7 +249,7 @@
add_tm FIRE_PUNCH ; $F0
add_tm FURY_CUTTER ; $F1
add_tm NIGHTMARE ; $F2
-NUM_TMS = const_value - TM01 - 2
+NUM_TMS = const_value - TM01 - 2 ; discount ITEM_C3 and ITEM_DC
add_hm CUT ; $F3
add_hm FLY ; $F4
@@ -253,27 +259,37 @@
add_hm WHIRLPOOL ; $F8
add_hm WATERFALL ; $F9
NUM_HMS = const_value - HM01
- const HM_08 ; $FA
+ const ITEM_FA ; $FA
add_mt FLAMETHROWER
add_mt THUNDERBOLT
add_mt ICE_BEAM
+NUM_TM_HM_TUTOR = __enum__ +- 1
-ITEM_FROM_MEM EQU $ff
+ITEM_FROM_MEM EQU $FF
-
; leftovers from red
-SAFARI_BALL EQU 8 ; MOON_STONE
-MOON_STONE_RED EQU 10 ; BURN_HEAL
-FULL_HEAL_RED EQU 52 ; X_SPEED
-MAIL_MAX_LENGTH EQU $20
+SAFARI_BALL EQU $08 ; MOON_STONE
+MOON_STONE_RED EQU $0A ; BURN_HEAL
+FULL_HEAL_RED EQU $34 ; X_SPEED
-; pockets
+MAIL_MSG_LENGTH EQU $20
+MAILBOX_CAPACITY EQU 10
+MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct
+
+; pack pockets
ITEM EQU 1
KEY_ITEM EQU 2
BALL EQU 3
TM_HM EQU 4
+; pack pocket sizes
+MAX_ITEMS EQU 20
+MAX_KEY_ITEMS EQU 25
+MAX_BALLS EQU 12
+MAX_PC_ITEMS EQU 50
+
; item actions
CANT_SELECT EQU 1 << 6
CANT_TOSS EQU 1 << 7
@@ -356,6 +372,7 @@
const HELD_78
const HELD_FOCUS_BAND
+; item_attribute struct members (see items/item_attributes.asm)
const_def
const ITEMATTR_PRICE
const ITEMATTR_PRICE_HI
@@ -366,11 +383,13 @@
const ITEMATTR_HELP
NUM_ITEMATTRS EQU const_value
-ITEMMENU_NOUSE EQU 0
-ITEMMENU_CURRENT EQU 4
-ITEMMENU_PARTY EQU 5
-ITEMMENU_CLOSE EQU 6
+; item menu types
+ITEMMENU_NOUSE EQU 0
+ITEMMENU_CURRENT EQU 4
+ITEMMENU_PARTY EQU 5
+ITEMMENU_CLOSE EQU 6
+; mart types (see engine/mart.asm)
const_def
const MARTTYPE_STANDARD
const MARTTYPE_BITTER
@@ -378,6 +397,7 @@
const MARTTYPE_PHARMACY
const MARTTYPE_ROOFTOP
+; Marts indexes (see items/marts.asm)
const_def
const MART_CHERRYGROVE
const MART_CHERRYGROVE_DEX
@@ -414,7 +434,8 @@
const MART_INDIGO_PLATEAU
const MART_UNDERGROUND
-; PartyMenuActionText
+; PartyMenuActionText values
+; GetPartyMenuTilemapPointers arguments (see engine/party_menu.asm)
const_def
const PARTYMENUACTION_CHOOSE_POKEMON
const PARTYMENUACTION_HEALING_ITEM
@@ -426,7 +447,7 @@
const PARTYMENUACTION_GIVE_MON_FEMALE ; unused
const PARTYMENUACTION_GIVE_ITEM
const PARTYMENUACTION_MOBILE ; mobile
-
+; PrintPartyMenuActionText arguments (see engine/party_menu.asm)
const_value set $f0
const PARTYMENUTEXT_HEAL_PSN
const PARTYMENUTEXT_HEAL_BRN
--- a/constants/landmark_constants.asm
+++ b/constants/landmark_constants.asm
@@ -1,6 +1,7 @@
-
+; Landmarks indexes (see engine/landmarks.asm)
const_def
+; Johto landmarks
const SPECIAL_MAP ; 00
const NEW_BARK_TOWN ; 01
const ROUTE_29 ; 02
@@ -50,7 +51,6 @@
const SILVER_CAVE ; 2e
KANTO_LANDMARK EQU const_value
-
const PALLET_TOWN ; 2f
const ROUTE_1 ; 30
const VIRIDIAN_CITY ; 31
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -5,7 +5,13 @@
MAP_NONE EQU 0
; map group ids
+; `newgroup` indexes are for:
+; - MapGroupPointers (see maps/map_headers.asm)
+; - OutdoorSprites (see engine/overworld.asm)
+; - MapGroupRoofs (see tilesets/roofs.asm)
+; `mapgroup` indexes are for the sub-tables of MapGroupPointers (see maps/map_headers.asm)
const_def
+
newgroup ; 1
mapgroup OLIVINE_POKECENTER_1F, 4, 5 ; 1
@@ -473,26 +479,42 @@
mapgroup ROUTE_31_VIOLET_GATE, 4, 5 ; 11
-; elevator floors
+; map permissions (wPermission)
+const_value SET 1
+ const TOWN
+ const ROUTE
+ const INDOOR
+ const CAVE
+ const PERM_5
+ const GATE
+ const DUNGEON
+; map palettes (wPermission)
const_def
- const _B4F
- const _B3F
- const _B2F
- const _B1F
- const _1F
- const _2F
- const _3F
- const _4F
- const _5F
- const _6F
- const _7F
- const _8F
- const _9F
- const _10F
- const _11F
- const _ROOF
+ const PALETTE_AUTO
+ const PALETTE_DAY
+ const PALETTE_NITE
+ const PALETTE_MORN
+ const PALETTE_DARK
+; fish groups
+ const_def
+ const FISHGROUP_NONE
+ const FISHGROUP_SHORE
+ const FISHGROUP_OCEAN
+ const FISHGROUP_LAKE
+ const FISHGROUP_POND
+ const FISHGROUP_DRATINI
+ const FISHGROUP_QWILFISH_SWARM
+ const FISHGROUP_REMORAID_SWARM
+ const FISHGROUP_GYARADOS
+ const FISHGROUP_DRATINI_2
+ const FISHGROUP_WHIRL_ISLANDS
+ const FISHGROUP_QWILFISH
+ const FISHGROUP_REMORAID
+ const FISHGROUP_QWILFISH_NO_SWARM
+
+
; connection directions
const_def
const EAST_F
@@ -500,6 +522,7 @@
const SOUTH_F
const NORTH_F
+; MapConnections
const_def
shift_const EAST
shift_const WEST
@@ -506,17 +529,8 @@
shift_const SOUTH
shift_const NORTH
-; permissions
-const_value SET 1
- const TOWN
- const ROUTE
- const INDOOR
- const CAVE
- const PERM_5
- const GATE
- const DUNGEON
-; object struct
+; object_struct members (see macros/wram.asm)
const_def
const OBJECT_SPRITE ; 00
const OBJECT_MAP_OBJECT_INDEX ; 01
@@ -553,7 +567,7 @@
const OBJECT_RANGE ; 20
; 33-39 are not used
-; map object struct
+; map_object struct members (see macros/wram.asm)
const_def
const MAPOBJECT_OBJECT_STRUCT_ID ; 0
const MAPOBJECT_SPRITE ; 1
@@ -576,46 +590,25 @@
MAPOBJECT_SCREEN_HEIGHT EQU 11
MAPOBJECT_SCREEN_WIDTH EQU 12
+; object_struct OBJECT_FACING values
OW_DOWN EQU DOWN << 2
OW_UP EQU UP << 2
OW_LEFT EQU LEFT << 2
OW_RIGHT EQU RIGHT << 2
- const_def
- const EMOTE_SHOCK ; 0
- const EMOTE_QUESTION ; 1
- const EMOTE_HAPPY ; 2
- const EMOTE_SAD ; 3
- const EMOTE_HEART ; 4
- const EMOTE_BOLT ; 5
- const EMOTE_SLEEP ; 6
- const EMOTE_FISH ; 7
- const EMOTE_SHADOW ; 8
- const EMOTE_ROD ; 9
- const EMOTE_BOULDER_DUST ; 10
- const EMOTE_0B ; 11
-EMOTE_MEM EQU -1
+; object_struct OBJECT_FLAGS1 bit flags
+INVISIBLE EQU 0
+FIXED_FACING EQU 2
+SLIDING EQU 3
+EMOTE_OBJECT EQU 7
- const_def
- const SIGNPOST_READ
- const SIGNPOST_UP
- const SIGNPOST_DOWN
- const SIGNPOST_RIGHT
- const SIGNPOST_LEFT
- const SIGNPOST_IFSET
- const SIGNPOST_IFNOTSET
- const SIGNPOST_ITEM
- const SIGNPOST_COPY
-; I'm relocating spawn constants here, so that they can be used anywhere in the disassembly.
-
-
+; SpawnPoints indexes (see engine/spawn_points.asm)
const_value = -1
const SPAWN_N_A
-
const SPAWN_HOME
const SPAWN_DEBUG
-
+; kanto
const SPAWN_PALLET
const SPAWN_VIRIDIAN
const SPAWN_PEWTER
@@ -628,7 +621,7 @@
const SPAWN_FUCHSIA
const SPAWN_CINNABAR
const SPAWN_INDIGO
-
+; johto
const SPAWN_NEW_BARK
const SPAWN_CHERRYGROVE
const SPAWN_VIOLET
@@ -645,18 +638,21 @@
const SPAWN_FAST_SHIP
NUM_SPAWNS EQU const_value
+
+; TryReadSign arguments (see engine/events.asm)
const_def
- const PALETTE_AUTO
- const PALETTE_DAY
- const PALETTE_NITE
- const PALETTE_MORN
- const PALETTE_DARK
+ const SIGNPOST_READ
+ const SIGNPOST_UP
+ const SIGNPOST_DOWN
+ const SIGNPOST_RIGHT
+ const SIGNPOST_LEFT
+ const SIGNPOST_IFSET
+ const SIGNPOST_IFNOTSET
+ const SIGNPOST_ITEM
+ const SIGNPOST_COPY
-INVISIBLE EQU 0
-FIXED_FACING EQU 2
-SLIDING EQU 3
-EMOTE_OBJECT EQU 7
-
+; person_event types
+; TryObjectEvent arguments (see engine/events.asm)
const_def
const PERSONTYPE_SCRIPT
const PERSONTYPE_ITEMBALL
@@ -666,7 +662,24 @@
const PERSONTYPE_5
const PERSONTYPE_6
-; fruit trees
+
+; EmotesPointers indexes (see engine/overworld.asm)
+ const_def
+ const EMOTE_SHOCK ; 0
+ const EMOTE_QUESTION ; 1
+ const EMOTE_HAPPY ; 2
+ const EMOTE_SAD ; 3
+ const EMOTE_HEART ; 4
+ const EMOTE_BOLT ; 5
+ const EMOTE_SLEEP ; 6
+ const EMOTE_FISH ; 7
+ const EMOTE_SHADOW ; 8
+ const EMOTE_ROD ; 9
+ const EMOTE_BOULDER_DUST ; 10
+ const EMOTE_GRASS_RUSTLE ; 11
+EMOTE_MEM EQU -1
+
+; FruitTreeItems indexes (see engine/fruit_trees.asm)
const_value SET 1
const FRUITTREE_ROUTE_29 ; 01
const FRUITTREE_ROUTE_30_1 ; 02
@@ -700,6 +713,27 @@
const FRUITTREE_FUCHSIA_CITY ; 1e
NUM_FRUIT_TREES EQU const_value +- 1
+; elevator floors
+; used by `elevfloor`
+ const_def
+ const _B4F
+ const _B3F
+ const _B2F
+ const _B1F
+ const _1F
+ const _2F
+ const _3F
+ const _4F
+ const _5F
+ const _6F
+ const _7F
+ const _8F
+ const _9F
+ const _10F
+ const _11F
+ const _ROOF
+
+; command queue members
CMDQUEUE_TYPE EQU 0
CMDQUEUE_ADDR EQU 1
CMDQUEUE_03 EQU 3
@@ -708,4 +742,9 @@
CMDQUEUE_ENTRY_SIZE EQU 6
CMDQUEUE_CAPACITY EQU 4
+; command queue types
CMDQUEUE_STONETABLE EQU 2
+
+; see engine/overworld.asm
+MAX_OUTDOOR_SPRITES EQU 23
+SPRITE_GFX_LIST_CAPACITY EQU $20
--- a/constants/map_setup_constants.asm
+++ b/constants/map_setup_constants.asm
@@ -1,3 +1,5 @@
+; hMapEntryMethod values
+; MapSetupScripts indexes (see engine/map_setup.asm)
const_value SET $f1
const MAPSETUP_WARP
const MAPSETUP_CONTINUE
@@ -12,6 +14,7 @@
const MAPSETUP_BADWARP
const MAPSETUP_FLY
+; callback types
const_value SET 1
const MAPCALLBACK_TILES
const MAPCALLBACK_OBJECTS
@@ -19,9 +22,10 @@
const MAPCALLBACK_SPRITES
const MAPCALLBACK_NEWMAP
-; Command descriptions from Condensation water's scripting compendium.
+; MapSetupCommands indexes (see engine/map_setup.asm)
+; Names taken from Condensation water's scripting compendium
+; https://hax.iimarck.us/files/scriptingcodes_eng.htm
const_def
-
const map_lcd_on ; 00
const map_lcd_off ; 01
const map_sound_off ; 02
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -1,21 +1,32 @@
-PARTY_LENGTH EQU 6
+; Boolean checks
+FALSE EQU 0
+TRUE EQU 1
-MAX_ITEMS EQU 20
-MAX_BALLS EQU 12
-MAX_KEY_ITEMS EQU 25
-MAX_PC_ITEMS EQU 50
+; genders
+MALE EQU 0
+FEMALE EQU 1
-; strings
+; FlagAction arguments (see home/flag.asm)
+RESET_FLAG EQU 0
+SET_FLAG EQU 1
+CHECK_FLAG EQU 2
+
+; GetHPPal return values (see home.asm)
+HP_GREEN EQU 0
+HP_YELLOW EQU 1
+HP_RED EQU 2
+
+
+; name lengths
+NAME_LENGTH EQU 11
PLAYER_NAME_LENGTH EQU 8
-BOX_NAME_LENGTH EQU 9
-PKMN_NAME_LENGTH EQU 11
-MOVE_NAME_LENGTH EQU 13
-ITEM_NAME_LENGTH EQU 13
+BOX_NAME_LENGTH EQU 9
+PKMN_NAME_LENGTH EQU 11
+MOVE_NAME_LENGTH EQU 13
+ITEM_NAME_LENGTH EQU 13
TRAINER_CLASS_NAME_LENGTH EQU 13
-NAME_LENGTH EQU 11
-LV_CHAR EQU $6e
-; GetName types
+; GetName types (see home.asm)
PKMN_NAME EQU 1
MOVE_NAME EQU 2
; dummied out EQU 3
@@ -25,20 +36,11 @@
TRAINER_NAME EQU 7
; broken ptr EQU 8
-; hp
-HP_GREEN EQU 0
-HP_YELLOW EQU 1
-HP_RED EQU 2
; boxes
MONS_PER_BOX EQU 20
NUM_BOXES EQU 14
-MAIL_STRUCT_LENGTH EQU $2f
-MAILBOX_CAPACITY EQU 10
-MAIL_MSG_LENGTH EQU $20
-
; hall of fame
HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (PKMN_NAME_LENGTH +- 1) ; species, id, dvs, level, nick
HOF_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator
@@ -45,15 +47,6 @@
NUM_HOF_TEAMS = 30
-; flag manipulation
-RESET_FLAG EQU 0
-SET_FLAG EQU 1
-CHECK_FLAG EQU 2
-
-; Boolean checks
-FALSE EQU 0
-TRUE EQU 1
-
; joypad
const_def
@@ -82,7 +75,9 @@
R_DPAD EQU %00100000
R_BUTTONS EQU %00010000
+
; screen
+
HP_BAR_LENGTH EQU 6
HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * 8
EXP_BAR_LENGTH EQU 8
@@ -101,52 +96,8 @@
TILE_WIDTH EQU 8
-; movement
-STEP_SLOW EQU 0
-STEP_WALK EQU 1
-STEP_BIKE EQU 2
-STEP_LEDGE EQU 3
-STEP_ICE EQU 4
-STEP_TURN EQU 5
-STEP_BACK_LEDGE EQU 6
-STEP_WALK_IN_PLACE EQU 7
+; printing text
-
-; ai
-CONTEXT_USE_F EQU 6
-UNKNOWN_USE_F EQU 5
-ALWAYS_USE_F EQU 4
-SWITCH_SOMETIMES_F EQU 2
-SWITCH_RARELY_F EQU 1
-SWITCH_OFTEN_F EQU 0
-
-CONTEXT_USE EQU 1 << CONTEXT_USE_F
-UNKNOWN_USE EQU 1 << UNKNOWN_USE_F
-ALWAYS_USE EQU 1 << ALWAYS_USE_F
-SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F
-SWITCH_RARELY EQU 1 << SWITCH_RARELY_F
-SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F
-SPRITE_GFX_LIST_CAPACITY EQU $20
-
-const_value = 1
- const MOM_ITEM
- const MOM_DOLL
-
-BATTLETOWER_NROFPKMNS EQU 3
-BATTLETOWER_TRAINERDATALENGTH EQU $24
-BATTLETOWER_NROFTRAINERS EQU 7
-BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS
-BATTLE_TOWER_STRUCT_LENGTH EQU $e0 ; NAME_LENGTH + 3 * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH
-
-NUM_WILDMONS_PER_AREA_TIME_OF_DAY EQU 7
-WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY)
-
-MOBILE_EVENT_OBJECT_GS_BALL EQU $b
-MOBILE_LOGIN_PASSWORD_LENGTH EQU 17
-
-MALE EQU 0
-FEMALE EQU 1
-
PRINTNUM_MONEY_F EQU 5
PRINTNUM_RIGHTALIGN_F EQU 6
PRINTNUM_LEADINGZEROS_F EQU 7
@@ -155,6 +106,20 @@
PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F
PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
+
+; movement
+ const_def
+ const STEP_SLOW ; 0
+ const STEP_WALK ; 1
+ const STEP_BIKE ; 2
+ const STEP_LEDGE ; 3
+ const STEP_ICE ; 4
+ const STEP_TURN ; 5
+ const STEP_BACK_LEDGE ; 6
+ const STEP_WALK_IN_PLACE ; 7
+
+
+; ChangeHappiness arguments (see event/happiness_egg.asm)
const_value = 1
const HAPPINESS_GAINLEVEL ; 01
const HAPPINESS_USEDITEM ; 02
@@ -178,85 +143,16 @@
const_def
- const LINK_NULL
- const LINK_TIMECAPSULE
- const LINK_TRADECENTER
- const LINK_COLOSSEUM
- const LINK_MOBILE
+ const LINK_NULL ; 0
+ const LINK_TIMECAPSULE ; 1
+ const LINK_TRADECENTER ; 2
+ const LINK_COLOSSEUM ; 3
+ const LINK_MOBILE ; 4
SERIAL_TIMECAPSULE EQU $60
SERIAL_TRADECENTER EQU $70
SERIAL_BATTLE EQU $80
+
HMENURETURN_SCRIPT EQU %10000000
HMENURETURN_ASM EQU %11111111
-
-NUM_MON_SUBMENU_ITEMS EQU 8
-
- const_def
- const ZEPHYRBADGE
- const HIVEBADGE
- const PLAINBADGE
- const FOGBADGE
- const MINERALBADGE
- const STORMBADGE
- const GLACIERBADGE
- const RISINGBADGE
-NUM_JOHTO_BADGES EQU const_value
- const_def
- const BOULDERBADGE
- const CASCADEBADGE
- const THUNDERBADGE
- const RAINBOWBADGE
- const SOULBADGE
- const MARSHBADGE
- const VOLCANOBADGE
- const EARTHBADGE
-NUM_KANTO_BADGES EQU const_value
-NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
-NUM_KANA EQU $2d
-
- const_def
- const EZCHAT_POKEMON
- const EZCHAT_TYPES
- const EZCHAT_GREETINGS
- const EZCHAT_PEOPLE
- const EZCHAT_BATTLE
- const EZCHAT_EXCLAMATIONS
- const EZCHAT_CONVERSATION
- const EZCHAT_FEELINGS
- const EZCHAT_CONDITIONS
- const EZCHAT_LIFE
- const EZCHAT_HOBBIES
- const EZCHAT_ACTIONS
- const EZCHAT_TIME
- const EZCHAT_FAREWELLS
- const EZCHAT_THISANDTHAT
-
-SWARM_DUNSPARCE EQU 0
-SWARM_YANMA EQU 1
-
-FISHSWARM_QWILFISH EQU 1
-FISHSWARM_REMORAID EQU 2
-
- const_def
- const FISHGROUP_NONE
- const FISHGROUP_SHORE
- const FISHGROUP_OCEAN
- const FISHGROUP_LAKE
- const FISHGROUP_POND
- const FISHGROUP_DRATINI
- const FISHGROUP_QWILFISH_SWARM
- const FISHGROUP_REMORAID_SWARM
- const FISHGROUP_GYARADOS
- const FISHGROUP_DRATINI_2
- const FISHGROUP_WHIRL_ISLANDS
- const FISHGROUP_QWILFISH
- const FISHGROUP_REMORAID
- const FISHGROUP_QWILFISH_NO_SWARM
-
-INIT_ENEMYOT_LIST EQU 1
-INIT_BAG_ITEM_LIST EQU 2
-INIT_OTHER_ITEM_LIST EQU 3
-INIT_PLAYEROT_LIST EQU 4
-INIT_MON_LIST EQU 5
--- /dev/null
+++ b/constants/mobile_constants.asm
@@ -1,0 +1,21 @@
+; MobileEZChatCategoryPointers indexes (see misc/fixed_words.asm)
+ const_def
+ const EZCHAT_POKEMON
+ const EZCHAT_TYPES
+ const EZCHAT_GREETINGS
+ const EZCHAT_PEOPLE
+ const EZCHAT_BATTLE
+ const EZCHAT_EXCLAMATIONS
+ const EZCHAT_CONVERSATION
+ const EZCHAT_FEELINGS
+ const EZCHAT_CONDITIONS
+ const EZCHAT_LIFE
+ const EZCHAT_HOBBIES
+ const EZCHAT_ACTIONS
+ const EZCHAT_TIME
+ const EZCHAT_FAREWELLS
+ const EZCHAT_THISANDTHAT
+
+NUM_KANA EQU 45 ; length of SortedPokemon table (see misc/fixed_words.asm)
+
+MOBILE_LOGIN_PASSWORD_LENGTH EQU 17
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -1,291 +1,293 @@
-
+; move ids
+; indexes for:
+; - MoveDescriptions (see battle/moves/move_descriptions.asm)
+; - Moves (see battle/moves/moves.asm)
+; - MoveNames (see battle/move_names.asm)
+; - BattleAnimations (see battle/anims.asm)
const_def
- const NO_MOVE ; $00
- const POUND ; $01
- const KARATE_CHOP ; $02
- const DOUBLESLAP ; $03
- const COMET_PUNCH ; $04
- const MEGA_PUNCH ; $05
- const PAY_DAY ; $06
- const FIRE_PUNCH ; $07
- const ICE_PUNCH ; $08
- const THUNDERPUNCH ; $09
- const SCRATCH ; $0a
- const VICEGRIP ; $0b
- const GUILLOTINE ; $0c
- const RAZOR_WIND ; $0d
- const SWORDS_DANCE ; $0e
- const CUT ; $0f
- const GUST ; $10
- const WING_ATTACK ; $11
- const WHIRLWIND ; $12
- const FLY ; $13
- const BIND ; $14
- const SLAM ; $15
- const VINE_WHIP ; $16
- const STOMP ; $17
- const DOUBLE_KICK ; $18
- const MEGA_KICK ; $19
- const JUMP_KICK ; $1a
- const ROLLING_KICK ; $1b
- const SAND_ATTACK ; $1c
- const HEADBUTT ; $1d
- const HORN_ATTACK ; $1e
- const FURY_ATTACK ; $1f
- const HORN_DRILL ; $20
- const TACKLE ; $21
- const BODY_SLAM ; $22
- const WRAP ; $23
- const TAKE_DOWN ; $24
- const THRASH ; $25
- const DOUBLE_EDGE ; $26
- const TAIL_WHIP ; $27
- const POISON_STING ; $28
- const TWINEEDLE ; $29
- const PIN_MISSILE ; $2a
- const LEER ; $2b
- const BITE ; $2c
- const GROWL ; $2d
- const ROAR ; $2e
- const SING ; $2f
- const SUPERSONIC ; $30
- const SONICBOOM ; $31
- const DISABLE ; $32
- const ACID ; $33
- const EMBER ; $34
- const FLAMETHROWER ; $35
- const MIST ; $36
- const WATER_GUN ; $37
- const HYDRO_PUMP ; $38
- const SURF ; $39
- const ICE_BEAM ; $3a
- const BLIZZARD ; $3b
- const PSYBEAM ; $3c
- const BUBBLEBEAM ; $3d
- const AURORA_BEAM ; $3e
- const HYPER_BEAM ; $3f
- const PECK ; $40
- const DRILL_PECK ; $41
- const SUBMISSION ; $42
- const LOW_KICK ; $43
- const COUNTER ; $44
- const SEISMIC_TOSS ; $45
- const STRENGTH ; $46
- const ABSORB ; $47
- const MEGA_DRAIN ; $48
- const LEECH_SEED ; $49
- const GROWTH ; $4a
- const RAZOR_LEAF ; $4b
- const SOLARBEAM ; $4c
- const POISONPOWDER ; $4d
- const STUN_SPORE ; $4e
- const SLEEP_POWDER ; $4f
- const PETAL_DANCE ; $50
- const STRING_SHOT ; $51
- const DRAGON_RAGE ; $52
- const FIRE_SPIN ; $53
- const THUNDERSHOCK ; $54
- const THUNDERBOLT ; $55
- const THUNDER_WAVE ; $56
- const THUNDER ; $57
- const ROCK_THROW ; $58
- const EARTHQUAKE ; $59
- const FISSURE ; $5a
- const DIG ; $5b
- const TOXIC ; $5c
- const CONFUSION ; $5d
- const PSYCHIC_M ; $5e
- const HYPNOSIS ; $5f
- const MEDITATE ; $60
- const AGILITY ; $61
- const QUICK_ATTACK ; $62
- const RAGE ; $63
- const TELEPORT ; $64
- const NIGHT_SHADE ; $65
- const MIMIC ; $66
- const SCREECH ; $67
- const DOUBLE_TEAM ; $68
- const RECOVER ; $69
- const HARDEN ; $6a
- const MINIMIZE ; $6b
- const SMOKESCREEN ; $6c
- const CONFUSE_RAY ; $6d
- const WITHDRAW ; $6e
- const DEFENSE_CURL ; $6f
- const BARRIER ; $70
- const LIGHT_SCREEN ; $71
- const HAZE ; $72
- const REFLECT ; $73
- const FOCUS_ENERGY ; $74
- const BIDE ; $75
- const METRONOME ; $76
- const MIRROR_MOVE ; $77
- const SELFDESTRUCT ; $78
- const EGG_BOMB ; $79
- const LICK ; $7a
- const SMOG ; $7b
- const SLUDGE ; $7c
- const BONE_CLUB ; $7d
- const FIRE_BLAST ; $7e
- const WATERFALL ; $7f
- const CLAMP ; $80
- const SWIFT ; $81
- const SKULL_BASH ; $82
- const SPIKE_CANNON ; $83
- const CONSTRICT ; $84
- const AMNESIA ; $85
- const KINESIS ; $86
- const SOFTBOILED ; $87
- const HI_JUMP_KICK ; $88
- const GLARE ; $89
- const DREAM_EATER ; $8a
- const POISON_GAS ; $8b
- const BARRAGE ; $8c
- const LEECH_LIFE ; $8d
- const LOVELY_KISS ; $8e
- const SKY_ATTACK ; $8f
- const TRANSFORM ; $90
- const BUBBLE ; $91
- const DIZZY_PUNCH ; $92
- const SPORE ; $93
- const FLASH ; $94
- const PSYWAVE ; $95
- const SPLASH ; $96
- const ACID_ARMOR ; $97
- const CRABHAMMER ; $98
- const EXPLOSION ; $99
- const FURY_SWIPES ; $9a
- const BONEMERANG ; $9b
- const REST ; $9c
- const ROCK_SLIDE ; $9d
- const HYPER_FANG ; $9e
- const SHARPEN ; $9f
- const CONVERSION ; $a0
- const TRI_ATTACK ; $a1
- const SUPER_FANG ; $a2
- const SLASH ; $a3
- const SUBSTITUTE ; $a4
- const STRUGGLE ; $a5
- const SKETCH ; $a6
- const TRIPLE_KICK ; $a7
- const THIEF ; $a8
- const SPIDER_WEB ; $a9
- const MIND_READER ; $aa
- const NIGHTMARE ; $ab
- const FLAME_WHEEL ; $ac
- const SNORE ; $ad
- const CURSE ; $ae
- const FLAIL ; $af
- const CONVERSION2 ; $b0
- const AEROBLAST ; $b1
- const COTTON_SPORE ; $b2
- const REVERSAL ; $b3
- const SPITE ; $b4
- const POWDER_SNOW ; $b5
- const PROTECT ; $b6
- const MACH_PUNCH ; $b7
- const SCARY_FACE ; $b8
- const FAINT_ATTACK ; $b9
- const SWEET_KISS ; $ba
- const BELLY_DRUM ; $bb
- const SLUDGE_BOMB ; $bc
- const MUD_SLAP ; $bd
- const OCTAZOOKA ; $be
- const SPIKES ; $bf
- const ZAP_CANNON ; $c0
- const FORESIGHT ; $c1
- const DESTINY_BOND ; $c2
- const PERISH_SONG ; $c3
- const ICY_WIND ; $c4
- const DETECT ; $c5
- const BONE_RUSH ; $c6
- const LOCK_ON ; $c7
- const OUTRAGE ; $c8
- const SANDSTORM ; $c9
- const GIGA_DRAIN ; $ca
- const ENDURE ; $cb
- const CHARM ; $cc
- const ROLLOUT ; $cd
- const FALSE_SWIPE ; $ce
- const SWAGGER ; $cf
- const MILK_DRINK ; $d0
- const SPARK ; $d1
- const FURY_CUTTER ; $d2
- const STEEL_WING ; $d3
- const MEAN_LOOK ; $d4
- const ATTRACT ; $d5
- const SLEEP_TALK ; $d6
- const HEAL_BELL ; $d7
- const RETURN ; $d8
- const PRESENT ; $d9
- const FRUSTRATION ; $da
- const SAFEGUARD ; $db
- const PAIN_SPLIT ; $dc
- const SACRED_FIRE ; $dd
- const MAGNITUDE ; $de
- const DYNAMICPUNCH ; $df
- const MEGAHORN ; $e0
- const DRAGONBREATH ; $e1
- const BATON_PASS ; $e2
- const ENCORE ; $e3
- const PURSUIT ; $e4
- const RAPID_SPIN ; $e5
- const SWEET_SCENT ; $e6
- const IRON_TAIL ; $e7
- const METAL_CLAW ; $e8
- const VITAL_THROW ; $e9
- const MORNING_SUN ; $ea
- const SYNTHESIS ; $eb
- const MOONLIGHT ; $ec
- const HIDDEN_POWER ; $ed
- const CROSS_CHOP ; $ee
- const TWISTER ; $ef
- const RAIN_DANCE ; $f0
- const SUNNY_DAY ; $f1
- const CRUNCH ; $f2
- const MIRROR_COAT ; $f3
- const PSYCH_UP ; $f4
- const EXTREMESPEED ; $f5
- const ANCIENTPOWER ; $f6
- const SHADOW_BALL ; $f7
- const FUTURE_SIGHT ; $f8
- const ROCK_SMASH ; $f9
- const WHIRLPOOL ; $fa
- const BEAT_UP ; $fb
+ const NO_MOVE ; 00
+ const POUND ; 01
+ const KARATE_CHOP ; 02
+ const DOUBLESLAP ; 03
+ const COMET_PUNCH ; 04
+ const MEGA_PUNCH ; 05
+ const PAY_DAY ; 06
+ const FIRE_PUNCH ; 07
+ const ICE_PUNCH ; 08
+ const THUNDERPUNCH ; 09
+ const SCRATCH ; 0a
+ const VICEGRIP ; 0b
+ const GUILLOTINE ; 0c
+ const RAZOR_WIND ; 0d
+ const SWORDS_DANCE ; 0e
+ const CUT ; 0f
+ const GUST ; 10
+ const WING_ATTACK ; 11
+ const WHIRLWIND ; 12
+ const FLY ; 13
+ const BIND ; 14
+ const SLAM ; 15
+ const VINE_WHIP ; 16
+ const STOMP ; 17
+ const DOUBLE_KICK ; 18
+ const MEGA_KICK ; 19
+ const JUMP_KICK ; 1a
+ const ROLLING_KICK ; 1b
+ const SAND_ATTACK ; 1c
+ const HEADBUTT ; 1d
+ const HORN_ATTACK ; 1e
+ const FURY_ATTACK ; 1f
+ const HORN_DRILL ; 20
+ const TACKLE ; 21
+ const BODY_SLAM ; 22
+ const WRAP ; 23
+ const TAKE_DOWN ; 24
+ const THRASH ; 25
+ const DOUBLE_EDGE ; 26
+ const TAIL_WHIP ; 27
+ const POISON_STING ; 28
+ const TWINEEDLE ; 29
+ const PIN_MISSILE ; 2a
+ const LEER ; 2b
+ const BITE ; 2c
+ const GROWL ; 2d
+ const ROAR ; 2e
+ const SING ; 2f
+ const SUPERSONIC ; 30
+ const SONICBOOM ; 31
+ const DISABLE ; 32
+ const ACID ; 33
+ const EMBER ; 34
+ const FLAMETHROWER ; 35
+ const MIST ; 36
+ const WATER_GUN ; 37
+ const HYDRO_PUMP ; 38
+ const SURF ; 39
+ const ICE_BEAM ; 3a
+ const BLIZZARD ; 3b
+ const PSYBEAM ; 3c
+ const BUBBLEBEAM ; 3d
+ const AURORA_BEAM ; 3e
+ const HYPER_BEAM ; 3f
+ const PECK ; 40
+ const DRILL_PECK ; 41
+ const SUBMISSION ; 42
+ const LOW_KICK ; 43
+ const COUNTER ; 44
+ const SEISMIC_TOSS ; 45
+ const STRENGTH ; 46
+ const ABSORB ; 47
+ const MEGA_DRAIN ; 48
+ const LEECH_SEED ; 49
+ const GROWTH ; 4a
+ const RAZOR_LEAF ; 4b
+ const SOLARBEAM ; 4c
+ const POISONPOWDER ; 4d
+ const STUN_SPORE ; 4e
+ const SLEEP_POWDER ; 4f
+ const PETAL_DANCE ; 50
+ const STRING_SHOT ; 51
+ const DRAGON_RAGE ; 52
+ const FIRE_SPIN ; 53
+ const THUNDERSHOCK ; 54
+ const THUNDERBOLT ; 55
+ const THUNDER_WAVE ; 56
+ const THUNDER ; 57
+ const ROCK_THROW ; 58
+ const EARTHQUAKE ; 59
+ const FISSURE ; 5a
+ const DIG ; 5b
+ const TOXIC ; 5c
+ const CONFUSION ; 5d
+ const PSYCHIC_M ; 5e
+ const HYPNOSIS ; 5f
+ const MEDITATE ; 60
+ const AGILITY ; 61
+ const QUICK_ATTACK ; 62
+ const RAGE ; 63
+ const TELEPORT ; 64
+ const NIGHT_SHADE ; 65
+ const MIMIC ; 66
+ const SCREECH ; 67
+ const DOUBLE_TEAM ; 68
+ const RECOVER ; 69
+ const HARDEN ; 6a
+ const MINIMIZE ; 6b
+ const SMOKESCREEN ; 6c
+ const CONFUSE_RAY ; 6d
+ const WITHDRAW ; 6e
+ const DEFENSE_CURL ; 6f
+ const BARRIER ; 70
+ const LIGHT_SCREEN ; 71
+ const HAZE ; 72
+ const REFLECT ; 73
+ const FOCUS_ENERGY ; 74
+ const BIDE ; 75
+ const METRONOME ; 76
+ const MIRROR_MOVE ; 77
+ const SELFDESTRUCT ; 78
+ const EGG_BOMB ; 79
+ const LICK ; 7a
+ const SMOG ; 7b
+ const SLUDGE ; 7c
+ const BONE_CLUB ; 7d
+ const FIRE_BLAST ; 7e
+ const WATERFALL ; 7f
+ const CLAMP ; 80
+ const SWIFT ; 81
+ const SKULL_BASH ; 82
+ const SPIKE_CANNON ; 83
+ const CONSTRICT ; 84
+ const AMNESIA ; 85
+ const KINESIS ; 86
+ const SOFTBOILED ; 87
+ const HI_JUMP_KICK ; 88
+ const GLARE ; 89
+ const DREAM_EATER ; 8a
+ const POISON_GAS ; 8b
+ const BARRAGE ; 8c
+ const LEECH_LIFE ; 8d
+ const LOVELY_KISS ; 8e
+ const SKY_ATTACK ; 8f
+ const TRANSFORM ; 90
+ const BUBBLE ; 91
+ const DIZZY_PUNCH ; 92
+ const SPORE ; 93
+ const FLASH ; 94
+ const PSYWAVE ; 95
+ const SPLASH ; 96
+ const ACID_ARMOR ; 97
+ const CRABHAMMER ; 98
+ const EXPLOSION ; 99
+ const FURY_SWIPES ; 9a
+ const BONEMERANG ; 9b
+ const REST ; 9c
+ const ROCK_SLIDE ; 9d
+ const HYPER_FANG ; 9e
+ const SHARPEN ; 9f
+ const CONVERSION ; a0
+ const TRI_ATTACK ; a1
+ const SUPER_FANG ; a2
+ const SLASH ; a3
+ const SUBSTITUTE ; a4
+ const STRUGGLE ; a5
+ const SKETCH ; a6
+ const TRIPLE_KICK ; a7
+ const THIEF ; a8
+ const SPIDER_WEB ; a9
+ const MIND_READER ; aa
+ const NIGHTMARE ; ab
+ const FLAME_WHEEL ; ac
+ const SNORE ; ad
+ const CURSE ; ae
+ const FLAIL ; af
+ const CONVERSION2 ; b0
+ const AEROBLAST ; b1
+ const COTTON_SPORE ; b2
+ const REVERSAL ; b3
+ const SPITE ; b4
+ const POWDER_SNOW ; b5
+ const PROTECT ; b6
+ const MACH_PUNCH ; b7
+ const SCARY_FACE ; b8
+ const FAINT_ATTACK ; b9
+ const SWEET_KISS ; ba
+ const BELLY_DRUM ; bb
+ const SLUDGE_BOMB ; bc
+ const MUD_SLAP ; bd
+ const OCTAZOOKA ; be
+ const SPIKES ; bf
+ const ZAP_CANNON ; c0
+ const FORESIGHT ; c1
+ const DESTINY_BOND ; c2
+ const PERISH_SONG ; c3
+ const ICY_WIND ; c4
+ const DETECT ; c5
+ const BONE_RUSH ; c6
+ const LOCK_ON ; c7
+ const OUTRAGE ; c8
+ const SANDSTORM ; c9
+ const GIGA_DRAIN ; ca
+ const ENDURE ; cb
+ const CHARM ; cc
+ const ROLLOUT ; cd
+ const FALSE_SWIPE ; ce
+ const SWAGGER ; cf
+ const MILK_DRINK ; d0
+ const SPARK ; d1
+ const FURY_CUTTER ; d2
+ const STEEL_WING ; d3
+ const MEAN_LOOK ; d4
+ const ATTRACT ; d5
+ const SLEEP_TALK ; d6
+ const HEAL_BELL ; d7
+ const RETURN ; d8
+ const PRESENT ; d9
+ const FRUSTRATION ; da
+ const SAFEGUARD ; db
+ const PAIN_SPLIT ; dc
+ const SACRED_FIRE ; dd
+ const MAGNITUDE ; de
+ const DYNAMICPUNCH ; df
+ const MEGAHORN ; e0
+ const DRAGONBREATH ; e1
+ const BATON_PASS ; e2
+ const ENCORE ; e3
+ const PURSUIT ; e4
+ const RAPID_SPIN ; e5
+ const SWEET_SCENT ; e6
+ const IRON_TAIL ; e7
+ const METAL_CLAW ; e8
+ const VITAL_THROW ; e9
+ const MORNING_SUN ; ea
+ const SYNTHESIS ; eb
+ const MOONLIGHT ; ec
+ const HIDDEN_POWER ; ed
+ const CROSS_CHOP ; ee
+ const TWISTER ; ef
+ const RAIN_DANCE ; f0
+ const SUNNY_DAY ; f1
+ const CRUNCH ; f2
+ const MIRROR_COAT ; f3
+ const PSYCH_UP ; f4
+ const EXTREMESPEED ; f5
+ const ANCIENTPOWER ; f6
+ const SHADOW_BALL ; f7
+ const FUTURE_SIGHT ; f8
+ const ROCK_SMASH ; f9
+ const WHIRLPOOL ; fa
+ const BEAT_UP ; fb
+NUM_ATTACKS EQU const_value + -1
-const_value SET const_value + -1
+ const MOVE_OR_ANIM_FC ; fc
+ const MOVE_OR_ANIM_FD ; fd
+ const MOVE_OR_ANIM_FE ; fe
- const NUM_ATTACKS ; $fb
-
-; Battle animations use the same constants
-; as the moves up to this point.
- const ANIM_FC ; $fc
- const ANIM_FD ; $fd
- const ANIM_FE ; $fe
- const ANIM_SWEET_SCENT_2 ; $ff
- const ANIM_THROW_POKE_BALL ; $100
- const ANIM_SEND_OUT_MON ; $101
- const ANIM_RETURN_MON ; $102
- const ANIM_CONFUSED ; $103
- const ANIM_SLP ; $104
- const ANIM_BRN ; $105
- const ANIM_PSN ; $106
- const ANIM_SAP ; $107
- const ANIM_FRZ ; $108
- const ANIM_PAR ; $109
- const ANIM_IN_LOVE ; $10a
- const ANIM_IN_SANDSTORM ; $10b
- const ANIM_IN_NIGHTMARE ; $10c
- const ANIM_IN_WHIRLPOOL ; $10d
+; Battle animations use the same constants as the moves up to this point
+ const ANIM_SWEET_SCENT_2 ; ff
+ const ANIM_THROW_POKE_BALL ; 100
+ const ANIM_SEND_OUT_MON ; 101
+ const ANIM_RETURN_MON ; 102
+ const ANIM_CONFUSED ; 103
+ const ANIM_SLP ; 104
+ const ANIM_BRN ; 105
+ const ANIM_PSN ; 106
+ const ANIM_SAP ; 107
+ const ANIM_FRZ ; 108
+ const ANIM_PAR ; 109
+ const ANIM_IN_LOVE ; 10a
+ const ANIM_IN_SANDSTORM ; 10b
+ const ANIM_IN_NIGHTMARE ; 10c
+ const ANIM_IN_WHIRLPOOL ; 10d
; battle anims
- const ANIM_MISS ; $10e
- const ANIM_ENEMY_DAMAGE ; $10f
- const ANIM_ENEMY_STAT_DOWN ; $110
- const ANIM_PLAYER_STAT_DOWN ; $111
- const ANIM_PLAYER_DAMAGE ; $112
- const ANIM_WOBBLE ; $113
- const ANIM_SHAKE ; $114
- const ANIM_HIT_CONFUSION ; $115
+ const ANIM_MISS ; 10e
+ const ANIM_ENEMY_DAMAGE ; 10f
+ const ANIM_ENEMY_STAT_DOWN ; 110
+ const ANIM_PLAYER_STAT_DOWN ; 111
+ const ANIM_PLAYER_DAMAGE ; 112
+ const ANIM_WOBBLE ; 113
+ const ANIM_SHAKE ; 114
+ const ANIM_HIT_CONFUSION ; 115
; wNumHits uses offsets from ANIM_MISS
const_def
@@ -296,4 +298,4 @@
const BATTLEANIM_PLAYER_DAMAGE
const BATTLEANIM_WOBBLE
const BATTLEANIM_SHAKE
- const BATTLEANIM_HIT_CONFUSION
\ No newline at end of file
+ const BATTLEANIM_HIT_CONFUSION
--- a/constants/music_constants.asm
+++ b/constants/music_constants.asm
@@ -1,3 +1,5 @@
+; song ids
+; Music indexes (see audio/music_pointers.asm)
const_def
const MUSIC_NONE ; 00
@@ -93,6 +95,8 @@
const MUSIC_LAKE_OF_RAGE_ROCKET_RADIO ; 5a
const MUSIC_PRINTER ; 5b
const MUSIC_POST_CREDITS ; 5c
+
+; new to Crystal
const MUSIC_CLAIR ; 5d
const MUSIC_MOBILE_ADAPTER_MENU ; 5e
const MUSIC_MOBILE_ADAPTER ; 5f
@@ -104,4 +108,7 @@
const MUSIC_BATTLE_TOWER_LOBBY ; 65
const MUSIC_MOBILE_CENTER ; 66
-MUSIC_MAHOGANY_MART EQU $64 ; leftover from gold
+; GetMapHeaderMusic picks music for this value (see home/map.asm)
+MUSIC_MAHOGANY_MART EQU $64
+; GetMapHeaderMusic picks music for this bit flag
+RADIO_TOWER_MUSIC EQU 7
--- a/constants/phone_constants.asm
+++ b/constants/phone_constants.asm
@@ -1,4 +1,4 @@
-
+; PhoneContacts indexes (see engine/phone.asm)
const_def
const PHONE_00
const PHONE_MOM
@@ -39,6 +39,7 @@
const PHONE_PICNICKER_ERIN
const PHONE_BUENA
+; SpecialPhoneCallList indexes (see engine/phone.asm)
const_def
const SPECIALCALL_NONE
const SPECIALCALL_POKERUS
@@ -50,6 +51,7 @@
const SPECIALCALL_WORRIED
const SPECIALCALL_MASTERBALL
+; phone struct members
const_def
const PHONE_CONTACT_TRAINER_CLASS
const PHONE_CONTACT_TRAINER_NUMBER
@@ -64,4 +66,6 @@
const PHONE_CONTACT_SCRIPT2_ADDR_LO
const PHONE_CONTACT_SCRIPT2_ADDR_HI
PHONE_TABLE_WIDTH EQU const_value
+
+; maximum number of pokegear contacts
CONTACT_LIST_SIZE EQU 10
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -1,265 +1,280 @@
-
-; pokemon
+; pokemon ids
+; indexes for:
+; - CryHeaders (see audio/cry_headers.asm)
+; - BaseData (see data/base_stats.asm)
+; - EggMovePointers (see data/egg_move_pointers.asm)
+; - EvosAttacksPointers (see data/evos_attacks_pointers.asm)
+; - PokemonNames (see data/pokemon_names.asm)
+; - PokedexDataPointerTable (see data/pokedex/entry_pointers.asm)
+; - AnimationPointers (see gfx/pics/anim_pointers.asm)
+; - BitmasksPointers (see gfx/pics/bitmask_pointers.asm)
+; - AnimationExtraPointers (see gfx/pics/extra_pointers.asm)
+; - FramesPointers (see gfx/pics/frame_pointers.asm)
+; - PokemonPalettes (see gfx/pics/palette_pointers.asm)
+; - PicPointers (see gfx/pics/pic_pointers.asm)
+; - AlphabeticalPokedexOrder (see data/pokedex/order_alpha.asm)
+; - NewPokedexOrder (see data/pokedex/order_new.asm)
+; - MonMenuIcons (see menu/mon_icons.asm)
+; - Pokered_MonIndices (see engine/time_capsule/conversion.asm)
+; - SortedPokemon (see misc/fixed_words.asm)
const_value set 1
- const BULBASAUR
- const IVYSAUR
- const VENUSAUR
- const CHARMANDER
- const CHARMELEON
- const CHARIZARD
- const SQUIRTLE
- const WARTORTLE
- const BLASTOISE
- const CATERPIE
- const METAPOD
- const BUTTERFREE
- const WEEDLE
- const KAKUNA
- const BEEDRILL
- const PIDGEY
- const PIDGEOTTO
- const PIDGEOT
- const RATTATA
- const RATICATE
- const SPEAROW
- const FEAROW
- const EKANS
- const ARBOK
- const PIKACHU
- const RAICHU
- const SANDSHREW
- const SANDSLASH
- const NIDORAN_F
- const NIDORINA
- const NIDOQUEEN
- const NIDORAN_M
- const NIDORINO
- const NIDOKING
- const CLEFAIRY
- const CLEFABLE
- const VULPIX
- const NINETALES
- const JIGGLYPUFF
- const WIGGLYTUFF
- const ZUBAT
- const GOLBAT
- const ODDISH
- const GLOOM
- const VILEPLUME
- const PARAS
- const PARASECT
- const VENONAT
- const VENOMOTH
- const DIGLETT
- const DUGTRIO
- const MEOWTH
- const PERSIAN
- const PSYDUCK
- const GOLDUCK
- const MANKEY
- const PRIMEAPE
- const GROWLITHE
- const ARCANINE
- const POLIWAG
- const POLIWHIRL
- const POLIWRATH
- const ABRA
- const KADABRA
- const ALAKAZAM
- const MACHOP
- const MACHOKE
- const MACHAMP
- const BELLSPROUT
- const WEEPINBELL
- const VICTREEBEL
- const TENTACOOL
- const TENTACRUEL
- const GEODUDE
- const GRAVELER
- const GOLEM
- const PONYTA
- const RAPIDASH
- const SLOWPOKE
- const SLOWBRO
- const MAGNEMITE
- const MAGNETON
- const FARFETCH_D
- const DODUO
- const DODRIO
- const SEEL
- const DEWGONG
- const GRIMER
- const MUK
- const SHELLDER
- const CLOYSTER
- const GASTLY
- const HAUNTER
- const GENGAR
- const ONIX
- const DROWZEE
- const HYPNO
- const KRABBY
- const KINGLER
- const VOLTORB
- const ELECTRODE
- const EXEGGCUTE
- const EXEGGUTOR
- const CUBONE
- const MAROWAK
- const HITMONLEE
- const HITMONCHAN
- const LICKITUNG
- const KOFFING
- const WEEZING
- const RHYHORN
- const RHYDON
- const CHANSEY
- const TANGELA
- const KANGASKHAN
- const HORSEA
- const SEADRA
- const GOLDEEN
- const SEAKING
- const STARYU
- const STARMIE
- const MR__MIME
- const SCYTHER
- const JYNX
- const ELECTABUZZ
- const MAGMAR
- const PINSIR
- const TAUROS
- const MAGIKARP
- const GYARADOS
- const LAPRAS
- const DITTO
- const EEVEE
- const VAPOREON
- const JOLTEON
- const FLAREON
- const PORYGON
- const OMANYTE
- const OMASTAR
- const KABUTO
- const KABUTOPS
- const AERODACTYL
- const SNORLAX
- const ARTICUNO
- const ZAPDOS
- const MOLTRES
- const DRATINI
- const DRAGONAIR
- const DRAGONITE
- const MEWTWO
- const MEW
- const CHIKORITA
- const BAYLEEF
- const MEGANIUM
- const CYNDAQUIL
- const QUILAVA
- const TYPHLOSION
- const TOTODILE
- const CROCONAW
- const FERALIGATR
- const SENTRET
- const FURRET
- const HOOTHOOT
- const NOCTOWL
- const LEDYBA
- const LEDIAN
- const SPINARAK
- const ARIADOS
- const CROBAT
- const CHINCHOU
- const LANTURN
- const PICHU
- const CLEFFA
- const IGGLYBUFF
- const TOGEPI
- const TOGETIC
- const NATU
- const XATU
- const MAREEP
- const FLAAFFY
- const AMPHAROS
- const BELLOSSOM
- const MARILL
- const AZUMARILL
- const SUDOWOODO
- const POLITOED
- const HOPPIP
- const SKIPLOOM
- const JUMPLUFF
- const AIPOM
- const SUNKERN
- const SUNFLORA
- const YANMA
- const WOOPER
- const QUAGSIRE
- const ESPEON
- const UMBREON
- const MURKROW
- const SLOWKING
- const MISDREAVUS
- const UNOWN
- const WOBBUFFET
- const GIRAFARIG
- const PINECO
- const FORRETRESS
- const DUNSPARCE
- const GLIGAR
- const STEELIX
- const SNUBBULL
- const GRANBULL
- const QWILFISH
- const SCIZOR
- const SHUCKLE
- const HERACROSS
- const SNEASEL
- const TEDDIURSA
- const URSARING
- const SLUGMA
- const MAGCARGO
- const SWINUB
- const PILOSWINE
- const CORSOLA
- const REMORAID
- const OCTILLERY
- const DELIBIRD
- const MANTINE
- const SKARMORY
- const HOUNDOUR
- const HOUNDOOM
- const KINGDRA
- const PHANPY
- const DONPHAN
- const PORYGON2
- const STANTLER
- const SMEARGLE
- const TYROGUE
- const HITMONTOP
- const SMOOCHUM
- const ELEKID
- const MAGBY
- const MILTANK
- const BLISSEY
- const RAIKOU
- const ENTEI
- const SUICUNE
- const LARVITAR
- const PUPITAR
- const TYRANITAR
- const LUGIA
- const HO_OH
- const CELEBI
+ const BULBASAUR ; 01
+ const IVYSAUR ; 02
+ const VENUSAUR ; 03
+ const CHARMANDER ; 04
+ const CHARMELEON ; 05
+ const CHARIZARD ; 06
+ const SQUIRTLE ; 07
+ const WARTORTLE ; 08
+ const BLASTOISE ; 09
+ const CATERPIE ; 0a
+ const METAPOD ; 0b
+ const BUTTERFREE ; 0c
+ const WEEDLE ; 0d
+ const KAKUNA ; 0e
+ const BEEDRILL ; 0f
+ const PIDGEY ; 10
+ const PIDGEOTTO ; 11
+ const PIDGEOT ; 12
+ const RATTATA ; 13
+ const RATICATE ; 14
+ const SPEAROW ; 15
+ const FEAROW ; 16
+ const EKANS ; 17
+ const ARBOK ; 18
+ const PIKACHU ; 19
+ const RAICHU ; 1a
+ const SANDSHREW ; 1b
+ const SANDSLASH ; 1c
+ const NIDORAN_F ; 1d
+ const NIDORINA ; 1e
+ const NIDOQUEEN ; 1f
+ const NIDORAN_M ; 20
+ const NIDORINO ; 21
+ const NIDOKING ; 22
+ const CLEFAIRY ; 23
+ const CLEFABLE ; 24
+ const VULPIX ; 25
+ const NINETALES ; 26
+ const JIGGLYPUFF ; 27
+ const WIGGLYTUFF ; 28
+ const ZUBAT ; 29
+ const GOLBAT ; 2a
+ const ODDISH ; 2b
+ const GLOOM ; 2c
+ const VILEPLUME ; 2d
+ const PARAS ; 2e
+ const PARASECT ; 2f
+ const VENONAT ; 30
+ const VENOMOTH ; 31
+ const DIGLETT ; 32
+ const DUGTRIO ; 33
+ const MEOWTH ; 34
+ const PERSIAN ; 35
+ const PSYDUCK ; 36
+ const GOLDUCK ; 37
+ const MANKEY ; 38
+ const PRIMEAPE ; 39
+ const GROWLITHE ; 3a
+ const ARCANINE ; 3b
+ const POLIWAG ; 3c
+ const POLIWHIRL ; 3d
+ const POLIWRATH ; 3e
+ const ABRA ; 3f
+ const KADABRA ; 40
+ const ALAKAZAM ; 41
+ const MACHOP ; 42
+ const MACHOKE ; 43
+ const MACHAMP ; 44
+ const BELLSPROUT ; 45
+ const WEEPINBELL ; 46
+ const VICTREEBEL ; 47
+ const TENTACOOL ; 48
+ const TENTACRUEL ; 49
+ const GEODUDE ; 4a
+ const GRAVELER ; 4b
+ const GOLEM ; 4c
+ const PONYTA ; 4d
+ const RAPIDASH ; 4e
+ const SLOWPOKE ; 4f
+ const SLOWBRO ; 50
+ const MAGNEMITE ; 51
+ const MAGNETON ; 52
+ const FARFETCH_D ; 53
+ const DODUO ; 54
+ const DODRIO ; 55
+ const SEEL ; 56
+ const DEWGONG ; 57
+ const GRIMER ; 58
+ const MUK ; 59
+ const SHELLDER ; 5a
+ const CLOYSTER ; 5b
+ const GASTLY ; 5c
+ const HAUNTER ; 5d
+ const GENGAR ; 5e
+ const ONIX ; 5f
+ const DROWZEE ; 60
+ const HYPNO ; 61
+ const KRABBY ; 62
+ const KINGLER ; 63
+ const VOLTORB ; 64
+ const ELECTRODE ; 65
+ const EXEGGCUTE ; 66
+ const EXEGGUTOR ; 67
+ const CUBONE ; 68
+ const MAROWAK ; 69
+ const HITMONLEE ; 6a
+ const HITMONCHAN ; 6b
+ const LICKITUNG ; 6c
+ const KOFFING ; 6d
+ const WEEZING ; 6e
+ const RHYHORN ; 6f
+ const RHYDON ; 70
+ const CHANSEY ; 71
+ const TANGELA ; 72
+ const KANGASKHAN ; 73
+ const HORSEA ; 74
+ const SEADRA ; 75
+ const GOLDEEN ; 76
+ const SEAKING ; 77
+ const STARYU ; 78
+ const STARMIE ; 79
+ const MR__MIME ; 7a
+ const SCYTHER ; 7b
+ const JYNX ; 7c
+ const ELECTABUZZ ; 7d
+ const MAGMAR ; 7e
+ const PINSIR ; 7f
+ const TAUROS ; 80
+ const MAGIKARP ; 81
+ const GYARADOS ; 82
+ const LAPRAS ; 83
+ const DITTO ; 84
+ const EEVEE ; 85
+ const VAPOREON ; 86
+ const JOLTEON ; 87
+ const FLAREON ; 88
+ const PORYGON ; 89
+ const OMANYTE ; 8a
+ const OMASTAR ; 8b
+ const KABUTO ; 8c
+ const KABUTOPS ; 8d
+ const AERODACTYL ; 8e
+ const SNORLAX ; 8f
+ const ARTICUNO ; 90
+ const ZAPDOS ; 91
+ const MOLTRES ; 92
+ const DRATINI ; 93
+ const DRAGONAIR ; 94
+ const DRAGONITE ; 95
+ const MEWTWO ; 96
+ const MEW ; 97
+ const CHIKORITA ; 98
+ const BAYLEEF ; 99
+ const MEGANIUM ; 9a
+ const CYNDAQUIL ; 9b
+ const QUILAVA ; 9c
+ const TYPHLOSION ; 9d
+ const TOTODILE ; 9e
+ const CROCONAW ; 9f
+ const FERALIGATR ; a0
+ const SENTRET ; a1
+ const FURRET ; a2
+ const HOOTHOOT ; a3
+ const NOCTOWL ; a4
+ const LEDYBA ; a5
+ const LEDIAN ; a6
+ const SPINARAK ; a7
+ const ARIADOS ; a8
+ const CROBAT ; a9
+ const CHINCHOU ; aa
+ const LANTURN ; ab
+ const PICHU ; ac
+ const CLEFFA ; ad
+ const IGGLYBUFF ; ae
+ const TOGEPI ; af
+ const TOGETIC ; b0
+ const NATU ; b1
+ const XATU ; b2
+ const MAREEP ; b3
+ const FLAAFFY ; b4
+ const AMPHAROS ; b5
+ const BELLOSSOM ; b6
+ const MARILL ; b7
+ const AZUMARILL ; b8
+ const SUDOWOODO ; b9
+ const POLITOED ; ba
+ const HOPPIP ; bb
+ const SKIPLOOM ; bc
+ const JUMPLUFF ; bd
+ const AIPOM ; be
+ const SUNKERN ; bf
+ const SUNFLORA ; c0
+ const YANMA ; c1
+ const WOOPER ; c2
+ const QUAGSIRE ; c3
+ const ESPEON ; c4
+ const UMBREON ; c5
+ const MURKROW ; c6
+ const SLOWKING ; c7
+ const MISDREAVUS ; c8
+ const UNOWN ; c9
+ const WOBBUFFET ; ca
+ const GIRAFARIG ; cb
+ const PINECO ; cc
+ const FORRETRESS ; cd
+ const DUNSPARCE ; ce
+ const GLIGAR ; cf
+ const STEELIX ; d0
+ const SNUBBULL ; d1
+ const GRANBULL ; d2
+ const QWILFISH ; d3
+ const SCIZOR ; d4
+ const SHUCKLE ; d5
+ const HERACROSS ; d6
+ const SNEASEL ; d7
+ const TEDDIURSA ; d8
+ const URSARING ; d9
+ const SLUGMA ; da
+ const MAGCARGO ; db
+ const SWINUB ; dc
+ const PILOSWINE ; dd
+ const CORSOLA ; de
+ const REMORAID ; df
+ const OCTILLERY ; e0
+ const DELIBIRD ; e1
+ const MANTINE ; e2
+ const SKARMORY ; e3
+ const HOUNDOUR ; e4
+ const HOUNDOOM ; e5
+ const KINGDRA ; e6
+ const PHANPY ; e7
+ const DONPHAN ; e8
+ const PORYGON2 ; e9
+ const STANTLER ; ea
+ const SMEARGLE ; eb
+ const TYROGUE ; ec
+ const HITMONTOP ; ed
+ const SMOOCHUM ; ee
+ const ELEKID ; ef
+ const MAGBY ; f0
+ const MILTANK ; f1
+ const BLISSEY ; f2
+ const RAIKOU ; f3
+ const ENTEI ; f4
+ const SUICUNE ; f5
+ const LARVITAR ; f6
+ const PUPITAR ; f7
+ const TYRANITAR ; f8
+ const LUGIA ; f9
+ const HO_OH ; fa
+ const CELEBI ; fb
+NUM_POKEMON EQU const_value +- 1
+ const MON_FC ; fc
+ const EGG ; fd
+ const MON_FE ; fe
-const_value SET const_value + -1
-
-NUM_POKEMON EQU const_value
-
-EGG EQU 253
-
-; pokemon structure in RAM
+; party_struct members (see macros/wram.asm)
MON_SPECIES EQUS "(PartyMon1Species - PartyMon1)"
MON_ITEM EQUS "(PartyMon1Item - PartyMon1)"
MON_MOVES EQUS "(PartyMon1Moves - PartyMon1)"
@@ -293,7 +308,9 @@
PARTYMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1)"
REDMON_STRUCT_LENGTH EQU 44
+; MonMenuOptions indexes (see engine/mon_menu.asm)
const_value SET 1
+; moves
const MONMENU_CUT ; 1
const MONMENU_FLY ; 2
const MONMENU_SURF ; 3
@@ -308,7 +325,7 @@
const MONMENU_ROCKSMASH ; 12
const MONMENU_MILKDRINK ; 13
const MONMENU_SWEETSCENT ; 14
-
+; options
const MONMENU_STATS ; 15
const MONMENU_SWITCH ; 16
const MONMENU_ITEM ; 17
@@ -317,5 +334,14 @@
const MONMENU_MAIL ; 20
const MONMENU_ERROR ; 21
+; MonMenuOptions types
MONMENU_FIELD_MOVE EQU 0
MONMENU_MENUOPTION EQU 1
+
+NUM_MONMENU_ITEMS EQU 8
+
+; maximum number of party pokemon
+PARTY_LENGTH EQU 6
+
+; number of Unown forms
+NUM_UNOWN EQU 26
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -1,4 +1,5 @@
-; growth rate
+; BaseGrowthRate values
+; GrowthRates indexes (see main.asm)
const_def
const MEDIUM_FAST
const SLIGHTLY_FAST
@@ -7,7 +8,7 @@
const FAST
const SLOW
-; egg group constants
+; BaseEggGroups values
const_value SET 1
const MONSTER ; 1
const AMPHIBIAN ; 2
@@ -26,7 +27,7 @@
const NO_EGGS ; f
-; menu sprites
+; IconPointers indexes (see menu/mon_icons.asm)
const_value SET 1
const ICON_POLIWAG
const ICON_JIGGLYPUFF
@@ -68,7 +69,7 @@
const ICON_BIGMON
-; evolution types
+; evolution types (used in data/evos_attacks.asm)
const_value SET 1
const EVOLVE_LEVEL
const EVOLVE_ITEM
@@ -76,26 +77,36 @@
const EVOLVE_HAPPINESS
const EVOLVE_STAT
-
-BASE_HAPPINESS EQU 70
-FRIEND_BALL_HAPPINESS EQU 200
-
-; happiness evolution triggers
-HAPPINESS_TO_EVOLVE EQU 220
+; EVOLVE_HAPPINESS triggers
const_value SET 1
const TR_ANYTIME
const TR_MORNDAY
const TR_NITE
-
-; stat evolution triggers
+; EVOLVE_STAT triggers
const_value SET 1
const ATK_GT_DEF
const ATK_LT_DEF
const ATK_EQ_DEF
-NUM_GRASSMON EQU 7
-NUM_WATERMON EQU 3
+; significant happiness values
+BASE_HAPPINESS EQU 70
+FRIEND_BALL_HAPPINESS EQU 200
+HAPPINESS_TO_EVOLVE EQU 220
+
+
+NUM_GRASSMON EQU 7 ; data/wild/*_grass.asm table size
+NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size
+
GRASS_WILDDATA_LENGTH EQU (NUM_GRASSMON * 2 + 1) * 3 + 2
WATER_WILDDATA_LENGTH EQU (NUM_WATERMON * 2 + 1) * 1 + 2
+
+
+; swarms
+
+SWARM_DUNSPARCE EQU 0
+SWARM_YANMA EQU 1
+
+FISHSWARM_QWILFISH EQU 1
+FISHSWARM_REMORAID EQU 2
--- a/constants/printer_constants.asm
+++ b/constants/printer_constants.asm
@@ -1,5 +1,5 @@
+; wPrinterStatus
const_value SET 1
-
const PRINTER_STATUS_CHECKING
const PRINTER_STATUS_TRANSMITTING
const PRINTER_STATUS_PRINTING
--- a/constants/radio_constants.asm
+++ b/constants/radio_constants.asm
@@ -1,3 +1,4 @@
+; PlayRadioShow arguments, RadioJumptable indexes (see engine/radio.asm)
const_def
const OAKS_POKEMON_TALK ; $00
const POKEDEX_SHOW ; $01
@@ -88,6 +89,7 @@
const POKEDEX_SHOW_7 ; $56
const POKEDEX_SHOW_8 ; $57
+; PlayRadio arguments (see engine/pokegear.asm)
const_def
const MAPRADIO_POKEMON_CHANNEL
const MAPRADIO_OAKS_MON_TALK
@@ -99,13 +101,8 @@
const MAPRADIO_LETS_ALL_SING
const MAPRADIO_ROCKET
+; PasswordTable indexes (see engine/radio.asm)
const_def
- const BUENA_MON
- const BUENA_ITEM
- const BUENA_MOVE
- const BUENA_STRING
-
- const_def
const BUENA_STARTERS
const BUENA_DRINKS
const BUENA_ITEMS
@@ -119,3 +116,10 @@
const BUENA_STATIONS
NUM_PASSWORD_CATEGORIES EQU const_value
NUM_PASSWORDS_PER_CATEGORY EQU 3
+
+; PasswordTable string types (see engine/radio.asm)
+ const_def
+ const BUENA_MON
+ const BUENA_ITEM
+ const BUENA_MOVE
+ const BUENA_STRING
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -2,6 +2,7 @@
PLAYER EQU 0
LAST_TALKED EQU -2
+; GetVarAction arguments (see engine/variables.asm)
const_def
const VAR_STRINGBUFFER2 ; 00
const VAR_PARTYCOUNT ; 01
@@ -32,10 +33,12 @@
const VAR_KENJI_BREAK ; 1a
NUM_VARS EQU const_value ; 1b
+; variable action types
RETVAR_STRBUF2 EQU (0 << 6)
RETVAR_ADDR_DE EQU (1 << 6)
RETVAR_EXECUTE EQU (2 << 6)
+; PlayerEventScriptPointers indexes (see engine/events.asm)
const_value SET -1
const PLAYEREVENT_MAPSCRIPT
const PLAYEREVENT_NONE
--- a/constants/sfx_constants.asm
+++ b/constants/sfx_constants.asm
@@ -1,3 +1,4 @@
+; SFX indexes (see audio/sfx_pointers.asm)
const_def
const SFX_DEX_FANFARE_50_79 ; 00
@@ -191,6 +192,7 @@
const SFX_GLASS_TING ; bc
const SFX_GLASS_TING_2 ; bd
+; new to Crystal
const SFX_INTRO_UNOWN_1 ; be
const SFX_INTRO_UNOWN_2 ; bf
const SFX_INTRO_UNOWN_3 ; c0
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -1,5 +1,5 @@
-
-; sprites
+; sprite ids
+; SpriteHeaders indexes (see gfx/overworld/sprite_headers.asm)
const_def
const SPRITE_NONE ; 00
const SPRITE_CHRIS ; 01
@@ -105,8 +105,8 @@
const SPRITE_RAIKOU ; 65
const SPRITE_STANDING_YOUNGSTER ; 66
+; SpriteMons indexes (see engine/overworld.asm)
const_value SET $80
-
SPRITE_POKEMON EQU const_value
const SPRITE_UNOWN ; 80
const SPRITE_GEODUDE ; 81
@@ -144,10 +144,12 @@
const SPRITE_LUGIA ; a1
const SPRITE_HO_OH ; a2
+; special GetMonSprite values (see engine/overworld.asm)
const_value SET $e0
const SPRITE_DAYCARE_MON_1 ; e0
const SPRITE_DAYCARE_MON_2 ; e1
+; VariableSprites indexes (see wram.asm)
const_value SET $f0
SPRITE_VARS EQU const_value
const SPRITE_CONSOLE ; f0
@@ -164,13 +166,7 @@
const SPRITE_COPYCAT ; fb
const SPRITE_JANINE_IMPERSONATOR ; fc
-; sprite types
-const_value SET 1
- const WALKING_SPRITE
- const STANDING_SPRITE
- const STILL_SPRITE
-
-; sprite header fields
+; sprite_header struct members (see gfx/overworld/sprite_headers.asm)
const_def
const SPRITEHEADER_ADDR_LO
const SPRITEHEADER_ADDR_HI
@@ -180,18 +176,24 @@
const SPRITEHEADER_PALETTE
NUM_SPRITEHEADER_FIELDS EQU const_value
+; sprite types
+const_value SET 1
+ const WALKING_SPRITE
+ const STANDING_SPRITE
+ const STILL_SPRITE
+
; sprite palettes
const_def
- const PAL_OW_RED
- const PAL_OW_BLUE
- const PAL_OW_GREEN
- const PAL_OW_BROWN
- const PAL_OW_PINK
- const PAL_OW_SILVER
- const PAL_OW_TREE
- const PAL_OW_ROCK
+ const PAL_OW_RED ; 0
+ const PAL_OW_BLUE ; 1
+ const PAL_OW_GREEN ; 2
+ const PAL_OW_BROWN ; 3
+ const PAL_OW_PINK ; 4
+ const PAL_OW_SILVER ; 5
+ const PAL_OW_TREE ; 6
+ const PAL_OW_ROCK ; 7
-; sprite movement data table indices
+; SpriteMovementData indexes (see data/map_objects.asm)
const_def
const SPRITEMOVEDATA_00 ; 00
const SPRITEMOVEDATA_ITEM_TREE ; 01
@@ -233,7 +235,7 @@
NUM_SPRITEMOVEDATA EQU const_value
SPRITEMOVEDATA_FIELDS EQU 6
-; sprite movement functions
+; MapObjectMovementPattern.Pointers indexes (see engine/map_objects.asm)
const_def
const SPRITEMOVEFN_00
const SPRITEMOVEFN_RANDOM_WALK_Y
@@ -264,8 +266,7 @@
const SPRITEMOVEFN_BOULDERDUST
const SPRITEMOVEFN_GRASS
-MAX_OUTDOOR_SPRITES EQU 23
-
+; StepTypesJumptable indexes (see engine/map_objects.asm)
const_def
const STEP_TYPE_00
const STEP_TYPE_SLEEP
@@ -294,6 +295,7 @@
const STEP_TYPE_18
const STEP_TYPE_SKYFALL_TOP
+; PersonActionPairPointers indexes (see engine/map_object_action.asm)
const_def
const PERSON_ACTION_00
const PERSON_ACTION_STAND
@@ -313,6 +315,7 @@
const PERSON_ACTION_GRASS_SHAKE
const PERSON_ACTION_SKYFALL
+; Facings indexes (see engine/facings.asm)
const_def
const FACING_STEP_DOWN_0
const FACING_STEP_DOWN_1
@@ -347,6 +350,7 @@
const FACING_GRASS_1
const FACING_GRASS_2
+; sprite_anim_struct members (see macros/wram.asm)
const_def
const SPRITEANIMSTRUCT_INDEX ; 0
const SPRITEANIMSTRUCT_FRAMESET_ID ; 1
@@ -365,6 +369,7 @@
const SPRITEANIMSTRUCT_0E ; e
const SPRITEANIMSTRUCT_0F ; f
+; SpriteAnimFrameData indexes (see data/sprite_engine.asm)
const_def
const SPRITE_ANIM_FRAMESET_00
const SPRITE_ANIM_FRAMESET_PARTY_MON
@@ -377,13 +382,13 @@
const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR
const SPRITE_ANIM_FRAMESET_09 ; unused?
const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO
- const SPRITE_ANIM_FRAMESET_0B
- const SPRITE_ANIM_FRAMESET_0C
+ const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR
+ const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE
const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM
const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY
const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2
const SPRITE_ANIM_FRAMESET_SLOTS_EGG
- const SPRITE_ANIM_FRAMESET_WALK_CYCLE
+ const SPRITE_ANIM_FRAMESET_RED_WALK
const SPRITE_ANIM_FRAMESET_STILL_CURSOR
const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL
const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_0
@@ -433,29 +438,30 @@
const SPRITE_ANIM_FRAMESET_CELEBI_LEFT
const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT
+; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm)
const_def
const SPRITE_ANIM_SEQ_NULL
- const SPRITE_ANIM_SEQ_01
- const SPRITE_ANIM_SEQ_02
- const SPRITE_ANIM_SEQ_03
+ const SPRITE_ANIM_SEQ_PARTY_MON
+ const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH
+ const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED
const SPRITE_ANIM_SEQ_04
- const SPRITE_ANIM_SEQ_05
+ const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR
const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO
- const SPRITE_ANIM_SEQ_07
- const SPRITE_ANIM_SEQ_08
- const SPRITE_ANIM_SEQ_SLOT_GOLEM
+ const SPRITE_ANIM_SEQ_GS_INTRO_STAR
+ const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE
+ const SPRITE_ANIM_SEQ_SLOTS_GOLEM
const SPRITE_ANIM_SEQ_SLOTS_CHANSEY
const SPRITE_ANIM_SEQ_SLOTS_EGG
- const SPRITE_ANIM_SEQ_0C
+ const SPRITE_ANIM_SEQ_MAIL_CURSOR
const SPRITE_ANIM_SEQ_0D
const SPRITE_ANIM_SEQ_0E
const SPRITE_ANIM_SEQ_0F
- const SPRITE_ANIM_SEQ_10
- const SPRITE_ANIM_SEQ_11
+ const SPRITE_ANIM_SEQ_TRADE_POKE_BALL
+ const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE
const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE
- const SPRITE_ANIM_SEQ_13
- const SPRITE_ANIM_SEQ_14
- const SPRITE_ANIM_SEQ_15
+ const SPRITE_ANIM_SEQ_REVEAL_NEW_MON
+ const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB
+ const SPRITE_ANIM_SEQ_CUT_LEAVES
const SPRITE_ANIM_SEQ_FLY_FROM
const SPRITE_ANIM_SEQ_FLY_LEAF
const SPRITE_ANIM_SEQ_FLY_TO
@@ -463,46 +469,47 @@
const SPRITE_ANIM_SEQ_1A
const SPRITE_ANIM_SEQ_1B
const SPRITE_ANIM_SEQ_1C
- const SPRITE_ANIM_SEQ_1D
- const SPRITE_ANIM_SEQ_1E
- const SPRITE_ANIM_SEQ_1F
- const SPRITE_ANIM_SEQ_20
- const SPRITE_ANIM_SEQ_21
- const SPRITE_ANIM_SEQ_22
+ const SPRITE_ANIM_SEQ_INTRO_SUICUNE
+ const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER
+ const SPRITE_ANIM_SEQ_CELEBI
+ const SPRITE_ANIM_SEQ_INTRO_UNOWN
+ const SPRITE_ANIM_SEQ_INTRO_UNOWN_F
+ const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY
+; SpriteAnimSeqData indexes (see engine/sprites.asm)
const_def
- const SPRITE_ANIM_INDEX_00
+ const SPRITE_ANIM_INDEX_PARTY_MON
const SPRITE_ANIM_INDEX_01
- const SPRITE_ANIM_INDEX_02
- const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
- const SPRITE_ANIM_INDEX_04
const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
- const SPRITE_ANIM_INDEX_SLOT_GOLEM
+ const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
+ const SPRITE_ANIM_INDEX_GS_INTRO_STAR
+ const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE
+ const SPRITE_ANIM_INDEX_SLOTS_GOLEM
const SPRITE_ANIM_INDEX_SLOTS_CHANSEY
const SPRITE_ANIM_INDEX_SLOTS_EGG
- const SPRITE_ANIM_INDEX_09
+ const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
const SPRITE_ANIM_INDEX_RED_WALK
const SPRITE_ANIM_INDEX_0B
- const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
+ const SPRITE_ANIM_INDEX_DUMMY_GAME
const SPRITE_ANIM_INDEX_0D
- const SPRITE_ANIM_INDEX_0E
- const SPRITE_ANIM_INDEX_0F
- const SPRITE_ANIM_INDEX_10
+ const SPRITE_ANIM_INDEX_TRADE_POKE_BALL
+ const SPRITE_ANIM_INDEX_TRADE_POOF
+ const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
const SPRITE_ANIM_INDEX_TRADEMON_ICON
const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
- const SPRITE_ANIM_INDEX_13
- const SPRITE_ANIM_INDEX_14
- const SPRITE_ANIM_INDEX_15
+ const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT
+ const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB
+ const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
const SPRITE_ANIM_INDEX_LEAF
const SPRITE_ANIM_INDEX_CUT_TREE
const SPRITE_ANIM_INDEX_FLY_LEAF
- const SPRITE_ANIM_INDEX_19
+ const SPRITE_ANIM_INDEX_EGG_CRACK
const SPRITE_ANIM_INDEX_1A
- const SPRITE_ANIM_INDEX_1B
- const SPRITE_ANIM_INDEX_1C
+ const SPRITE_ANIM_INDEX_HEADBUTT
+ const SPRITE_ANIM_INDEX_EGG_HATCH
const SPRITE_ANIM_INDEX_1D
const SPRITE_ANIM_INDEX_BLUE_WALK
- const SPRITE_ANIM_INDEX_1F
+ const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
const SPRITE_ANIM_INDEX_20
const SPRITE_ANIM_INDEX_21
const SPRITE_ANIM_INDEX_22
@@ -509,16 +516,16 @@
const SPRITE_ANIM_INDEX_23
const SPRITE_ANIM_INDEX_24
const SPRITE_ANIM_INDEX_25
- const SPRITE_ANIM_INDEX_26
- const SPRITE_ANIM_INDEX_27
- const SPRITE_ANIM_INDEX_28
- const SPRITE_ANIM_INDEX_29
- const SPRITE_ANIM_INDEX_2A
- const SPRITE_ANIM_INDEX_2B
- const SPRITE_ANIM_INDEX_2C
+ const SPRITE_ANIM_INDEX_INTRO_SUICUNE
+ const SPRITE_ANIM_INDEX_INTRO_PICHU
+ const SPRITE_ANIM_INDEX_INTRO_WOOPER
+ const SPRITE_ANIM_INDEX_INTRO_UNOWN
+ const SPRITE_ANIM_INDEX_INTRO_UNOWN_F
+ const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
+ const SPRITE_ANIM_INDEX_CELEBI
+; SpriteAnimOAMData indexes (see data/sprite_engine.asm)
const_def
-
const SPRITE_ANIM_FRAME_IDX_00
const SPRITE_ANIM_FRAME_IDX_01
const SPRITE_ANIM_FRAME_IDX_02
--- a/constants/std_constants.asm
+++ b/constants/std_constants.asm
@@ -1,3 +1,5 @@
+; StdScripts indexes (see engine/std_scripts.asm)
+; also used in CheckFacingTileForStd (see main.asm)
enum_start
enum pokecenternurse
enum difficultbookshelf
--- a/constants/tilemap_constants.asm
+++ b/constants/tilemap_constants.asm
@@ -1,9 +1,10 @@
-LANDTILE EQU 0
+; collision values (see tilesets/collision.asm)
+LANDTILE EQU $0
+WATERTILE EQU $1
WALLTILE EQU $f
-WATERTILE EQU 1
+TALK EQU $10
-TALK EQU 1 << 4
-
+; Tilesets indexes (see tilesets/tileset_headers.asm)
const_value SET 1
const TILESET_JOHTO_1 ; 01
const TILESET_JOHTO_2 ; 02
@@ -42,12 +43,13 @@
const TILESET_OMANYTE_WORD_ROOM ; 23
const TILESET_AERODACTYL_WORD_ROOM ; 24
+; bg palette values (see tilesets/*_palette_map.asm)
const_def
- const PAL_BG_GRAY
- const PAL_BG_RED
- const PAL_BG_GREEN
- const PAL_BG_WATER
- const PAL_BG_YELLOW
- const PAL_BG_BROWN
- const PAL_BG_ROOF
- const PAL_BG_TEXT
+ const PAL_BG_GRAY ; 0
+ const PAL_BG_RED ; 1
+ const PAL_BG_GREEN ; 2
+ const PAL_BG_WATER ; 3
+ const PAL_BG_YELLOW ; 4
+ const PAL_BG_BROWN ; 5
+ const PAL_BG_ROOF ; 6
+ const PAL_BG_TEXT ; 7
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -1,4 +1,11 @@
-; trainer groups
+; trainer class ids
+; `trainerclass` indexes are for:
+; - TrainerClassAttributes (see trainers/attributes.asm)
+; - TrainerClassDVs (see trainers/dvs.asm)
+; - TrainerGroups (see trainers/trainer_pointers.asm)
+; - TrainerEncounterMusic (see audio/trainer_encounters.asm)
+; - BTTrainerClassGenders (see misc/battle_tower_47.asm)
+; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see trainers/trainers.asm)
enum_start
CHRIS EQU __enum__
trainerclass TRAINER_NONE ; 0
@@ -26,21 +33,21 @@
trainerclass CLAIR ; 8
trainerclass RIVAL1 ; 9
- const RIVAL1_1
- const RIVAL1_2
- const RIVAL1_3
- const RIVAL1_4
- const RIVAL1_5
- const RIVAL1_6
- const RIVAL1_7
- const RIVAL1_8
- const RIVAL1_9
- const RIVAL1_10
- const RIVAL1_11
- const RIVAL1_12
- const RIVAL1_13
- const RIVAL1_14
- const RIVAL1_15
+ const RIVAL1_1_CHIKORITA
+ const RIVAL1_1_CYNDAQUIL
+ const RIVAL1_1_TOTODILE
+ const RIVAL1_2_CHIKORITA
+ const RIVAL1_2_CYNDAQUIL
+ const RIVAL1_2_TOTODILE
+ const RIVAL1_3_CHIKORITA
+ const RIVAL1_3_CYNDAQUIL
+ const RIVAL1_3_TOTODILE
+ const RIVAL1_4_CHIKORITA
+ const RIVAL1_4_CYNDAQUIL
+ const RIVAL1_4_TOTODILE
+ const RIVAL1_5_CHIKORITA
+ const RIVAL1_5_CYNDAQUIL
+ const RIVAL1_5_TOTODILE
trainerclass POKEMON_PROF ; a
@@ -415,6 +422,12 @@
const MARKUS
trainerclass RIVAL2 ; 2a
+ const RIVAL2_1_CHIKORITA
+ const RIVAL2_1_CYNDAQUIL
+ const RIVAL2_1_TOTODILE
+ const RIVAL2_2_CHIKORITA
+ const RIVAL2_2_CYNDAQUIL
+ const RIVAL2_2_TOTODILE
trainerclass GUITARIST ; 2b
const CLYDE
@@ -492,6 +505,10 @@
const WAI
trainerclass EXECUTIVEM ; 33
+ const EXECUTIVEM_1
+ const EXECUTIVEM_2
+ const EXECUTIVEM_3
+ const EXECUTIVEM_4
trainerclass PSYCHIC_T ; 34
const NATHAN
@@ -560,6 +577,8 @@
const QUENTIN
trainerclass EXECUTIVEF ; 37
+ const EXECUTIVEF_1
+ const EXECUTIVEF_2
trainerclass SAGE ; 38
const CHOW
@@ -648,13 +667,24 @@
const GRUNTF_4
const GRUNTF_5
-
trainerclass MYSTICALMAN ; 43
const EUSINE
NUM_TRAINER_CLASSES EQU __enum__
+; TrainerClassAttributes fields (see trainers/attributes.asm)
const_def
+ const TRNATTR_ITEM1
+ const TRNATTR_ITEM2
+ const TRNATTR_BASEMONEY
+ const TRNATTR_AI_MOVE_WEIGHTS
+ const TRNATTR_AI2
+ const TRNATTR_AI_ITEM_SWITCH
+ const TRNATTR_AI4
+NUM_TRAINER_ATTRIBUTES EQU const_value
+
+; TRNATTR_AI_MOVE_WEIGHTS bit flags (wEnemyTrainerAIFlags)
+ const_def
const NO_AI
const_value = 0
shift_const AI_BASIC
@@ -674,12 +704,24 @@
shift_const AI_14
shift_const AI_15
+; TRNATTR_AI_ITEM_SWITCH bit flags
+CONTEXT_USE_F EQU 6
+UNKNOWN_USE_F EQU 5
+ALWAYS_USE_F EQU 4
+SWITCH_SOMETIMES_F EQU 2
+SWITCH_RARELY_F EQU 1
+SWITCH_OFTEN_F EQU 0
+
+CONTEXT_USE EQU 1 << CONTEXT_USE_F
+UNKNOWN_USE EQU 1 << UNKNOWN_USE_F
+ALWAYS_USE EQU 1 << ALWAYS_USE_F
+SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F
+SWITCH_RARELY EQU 1 << SWITCH_RARELY_F
+SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F
+
+; TrainerTypes indexes (see trainers/read_party.asm)
const_def
- const TRNATTR_ITEM1
- const TRNATTR_ITEM2
- const TRNATTR_BASEMONEY
- const TRNATTR_AI_MOVE_WEIGHTS
- const TRNATTR_AI2
- const TRNATTR_AI_ITEM_SWITCH
- const TRNATTR_AI4
-NUM_TRAINER_ATTRIBUTES EQU const_value
+ const TRAINERTYPE_NORMAL
+ const TRAINERTYPE_MOVES
+ const TRAINERTYPE_ITEM
+ const TRAINERTYPE_ITEM_MOVES
--- a/constants/type_constants.asm
+++ b/constants/type_constants.asm
@@ -1,3 +1,7 @@
+; TypeNames indexes (see text/types.asm)
+; also used in:
+; - TypeMatchup (see battle.type_matchup.asm)
+; - Pokedex_SearchForMons.TypeConversionTable and Pokedex_PlaceSearchScreenTypeStrings.TypeStrings (see engine/pokedex.asm)
const_def
PHYSICAL EQU const_value
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -1,23 +1,26 @@
-
; MonType: ; cf5f
-PARTYMON EQU 0
-OTPARTYMON EQU 1
-BOXMON EQU 2
-TEMPMON EQU 3
-WILDMON EQU 4
+ const_def
+ const PARTYMON ; 0
+ const OTPARTYMON ; 1
+ const BOXMON ; 2
+ const TEMPMON ; 3
+ const WILDMON ; 4
-; Options: ; cfcc
+; Options: (bits) ; cfcc
+const_value SET 5
+ const STEREO ; 5
+ const BATTLE_SHIFT ; 6
+ const BATTLE_SCENE ; 7
+
+; Options: (bits 0-2 values) ; cfcc
FAST_TEXT EQU 0
MED_TEXT EQU 1
SLOW_TEXT EQU 2
NO_TEXT_SCROLL EQU 4
-; bits
-STEREO EQU 5
-BATTLE_SHIFT EQU 6
-BATTLE_SCENE EQU 7
; Options2:
-MENU_ACCOUNT EQU 0
+ const_def
+ const MENU_ACCOUNT ; 0
; GBPrinter:
PRINT_LIGHTEST EQU $00
@@ -27,11 +30,12 @@
PRINT_DARKEST EQU $7f
; WalkingDirection: ; d043
-STANDING EQU -1
-DOWN EQU 0
-UP EQU 1
-LEFT EQU 2
-RIGHT EQU 3
+const_value SET -1
+ const STANDING ; -1
+ const DOWN ; 0
+ const UP ; 1
+ const LEFT ; 2
+ const RIGHT ; 3
; FacingDirection: ; d044
FACE_CURRENT EQU 0
@@ -41,10 +45,11 @@
FACE_RIGHT EQU 1
; TimeOfDay: ; d269
-MORN EQU 0
-DAY EQU 1
-NITE EQU 2
-DARKNESS EQU 3
+ const_def
+ const MORN ; 0
+ const DAY ; 1
+ const NITE ; 2
+ const DARKNESS ; 3
; ScriptFlags: ; d434
SCRIPT_RUNNING EQU 2
@@ -56,13 +61,14 @@
SCRIPT_WAIT EQU 3
; CurDay: ; d4cb
-SUNDAY EQU 0
-MONDAY EQU 1
-TUESDAY EQU 2
-WEDNESDAY EQU 3
-THURSDAY EQU 4
-FRIDAY EQU 5
-SATURDAY EQU 6
+ const_def
+ const SUNDAY ; 0
+ const MONDAY ; 1
+ const TUESDAY ; 2
+ const WEDNESDAY ; 3
+ const THURSDAY ; 4
+ const FRIDAY ; 5
+ const SATURDAY ; 6
; MapObjects: ; d71e
@@ -103,3 +109,35 @@
const DEXMODE_OLD
const DEXMODE_ABC
const DEXMODE_UNOWN
+
+; JohtoBadges:
+ const_def
+ const ZEPHYRBADGE
+ const HIVEBADGE
+ const PLAINBADGE
+ const FOGBADGE
+ const MINERALBADGE
+ const STORMBADGE
+ const GLACIERBADGE
+ const RISINGBADGE
+NUM_JOHTO_BADGES EQU const_value
+
+; KantoBadges:
+ const_def
+ const BOULDERBADGE
+ const CASCADEBADGE
+ const THUNDERBADGE
+ const RAINBOWBADGE
+ const SOULBADGE
+ const MARSHBADGE
+ const VOLCANOBADGE
+ const EARTHBADGE
+NUM_KANTO_BADGES EQU const_value
+NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
+
+; wInitListType:
+INIT_ENEMYOT_LIST EQU 1
+INIT_BAG_ITEM_LIST EQU 2
+INIT_OTHER_ITEM_LIST EQU 3
+INIT_PLAYEROT_LIST EQU 4
+INIT_MON_LIST EQU 5
--- a/data/map_objects.asm
+++ b/data/map_objects.asm
@@ -1,3 +1,5 @@
+; entries correspond to SPRITEMOVEDATA_* constants
+
sprite_movement_data: macro
db \1, \2, \3, \4, \5
dn \6, 0
--- a/data/sprite_engine.asm
+++ b/data/sprite_engine.asm
@@ -1,70 +1,71 @@
SpriteAnimFrameData: ; 8d6e6
- dw .Frameset_00 ; 00
- dw .Frameset_01 ; 01
- dw .Frameset_02 ; 02
- dw .Frameset_03 ; 03
- dw .Frameset_04 ; 04
- dw .Frameset_05 ; 05
- dw .Frameset_06 ; 06
- dw .Frameset_07 ; 07
- dw .Frameset_08 ; 08
- dw .Frameset_09 ; 09
- dw .Frameset_0a ; 0a
- dw .Frameset_0b ; 0b
- dw .Frameset_0c ; 0c
- dw .Frameset_0d ; 0d
- dw .Frameset_0e ; 0e
- dw .Frameset_0f ; 0f
- dw .Frameset_10 ; 10
- dw .Frameset_11 ; 11
- dw .Frameset_12 ; 12
- dw .Frameset_13 ; 13
- dw .Frameset_14 ; 14
- dw .Frameset_15 ; 15
- dw .Frameset_16 ; 16
- dw .Frameset_17 ; 17
- dw .Frameset_18 ; 18
- dw .Frameset_19 ; 19
- dw .Frameset_1a ; 1a
- dw .Frameset_1b ; 1b
- dw .Frameset_1c ; 1c
- dw .Frameset_1d ; 1d
- dw .Frameset_1e ; 1e
- dw .Frameset_1f ; 1f
- dw .Frameset_20 ; 20
- dw .Frameset_21 ; 21
- dw .Frameset_22 ; 22
- dw .Frameset_23 ; 23
- dw .Frameset_24 ; 24
- dw .Frameset_25 ; 25 headbutt
- dw .Frameset_26 ; 26
- dw .Frameset_27 ; 27
- dw .Frameset_28 ; 28
- dw .Frameset_29 ; 29
- dw .Frameset_2a ; 2a
- dw .Frameset_2b ; 2b
- dw .Frameset_2c ; 2c
- dw .Frameset_2d ; 2d
- dw .Frameset_2e ; 2e
- dw .Frameset_2f ; 2f
- dw .Frameset_30 ; 30
- dw .Frameset_31 ; 31
- dw .Frameset_32 ; 32
- dw .Frameset_33 ; 33
- dw .Frameset_34 ; 34
- dw .Frameset_35 ; 35
- dw .Frameset_36 ; 36
- dw .Frameset_37 ; 37
- dw .Frameset_38 ; 38
- dw .Frameset_39 ; 39 unown in intro
- dw .Frameset_3a ; 3a unown in intro
- dw .Frameset_3b ; 3b unown in intro
- dw .Frameset_3c ; 3c unown in intro
- dw .Frameset_3d ; 3d
- dw .Frameset_3e ; 3e
- dw .Frameset_3f ; 3f
- dw .Frameset_40 ; 40 celebi on the left
- dw .Frameset_41 ; 41 celebi on the right
+; entries correspond to SPRITE_ANIM_FRAMESET_* constants
+ dw .Frameset_00
+ dw .Frameset_PartyMon
+ dw .Frameset_02
+ dw .Frameset_03
+ dw .Frameset_04
+ dw .Frameset_05
+ dw .Frameset_06
+ dw .Frameset_07
+ dw .Frameset_TextEntryCursor
+ dw .Frameset_09
+ dw .Frameset_GameFreakLogo
+ dw .Frameset_GSIntroStar
+ dw .Frameset_GSIntroSparkle
+ dw .Frameset_SlotsGolem
+ dw .Frameset_SlotsChansey
+ dw .Frameset_SlotsChansey2
+ dw .Frameset_SlotsEgg
+ dw .Frameset_RedWalk
+ dw .Frameset_StillCursor
+ dw .Frameset_TradePokeBall
+ dw .Frameset_TradePokeBall0
+ dw .Frameset_TradePoof
+ dw .Frameset_TradeTubeBulge
+ dw .Frameset_TrademonIcon
+ dw .Frameset_TrademonBubble
+ dw .Frameset_EvolutionBallOfLight
+ dw .Frameset_RadioTuningKnob
+ dw .Frameset_MagnetTrainRed
+ dw .Frameset_1c
+ dw .Frameset_Leaf
+ dw .Frameset_CutTree
+ dw .Frameset_EggCrack
+ dw .Frameset_EggHatch
+ dw .Frameset_21
+ dw .Frameset_22
+ dw .Frameset_23
+ dw .Frameset_24
+ dw .Frameset_HeadbuttTree
+ dw .Frameset_26
+ dw .Frameset_27
+ dw .Frameset_28
+ dw .Frameset_29
+ dw .Frameset_2a
+ dw .Frameset_2b
+ dw .Frameset_2c
+ dw .Frameset_BlueWalk
+ dw .Frameset_MagnetTrainBlue
+ dw .Frameset_2f
+ dw .Frameset_30
+ dw .Frameset_31
+ dw .Frameset_32
+ dw .Frameset_33
+ dw .Frameset_34
+ dw .Frameset_IntroSuicune
+ dw .Frameset_IntroSuicune2
+ dw .Frameset_IntroPichu
+ dw .Frameset_IntroWooper
+ dw .Frameset_IntroUnown1
+ dw .Frameset_IntroUnown2
+ dw .Frameset_IntroUnown3
+ dw .Frameset_IntroUnown4
+ dw .Frameset_IntroUnownF2
+ dw .Frameset_IntroSuicuneAway
+ dw .Frameset_IntroUnownF
+ dw .Frameset_CelebiLeft
+ dw .Frameset_CelebiRight
; 8d76a
.Frameset_00:
@@ -71,7 +72,7 @@
frame SPRITE_ANIM_FRAME_IDX_00, 32
endanim
-.Frameset_01:
+.Frameset_PartyMon:
frame SPRITE_ANIM_FRAME_IDX_00, 8
frame SPRITE_ANIM_FRAME_IDX_01, 8
dorestart
@@ -101,7 +102,7 @@
frame SPRITE_ANIM_FRAME_IDX_40, 4
dorestart
-.Frameset_11:
+.Frameset_RedWalk:
frame SPRITE_ANIM_FRAME_IDX_00, 8
frame SPRITE_ANIM_FRAME_IDX_01, 8
frame SPRITE_ANIM_FRAME_IDX_00, 8
@@ -108,7 +109,7 @@
frame SPRITE_ANIM_FRAME_IDX_01, 8, OAM_X_FLIP
dorestart
-.Frameset_2d:
+.Frameset_BlueWalk:
frame SPRITE_ANIM_FRAME_IDX_63, 8
frame SPRITE_ANIM_FRAME_IDX_64, 8
frame SPRITE_ANIM_FRAME_IDX_63, 8
@@ -115,7 +116,7 @@
frame SPRITE_ANIM_FRAME_IDX_64, 8, OAM_X_FLIP
dorestart
-.Frameset_2e:
+.Frameset_MagnetTrainBlue:
frame SPRITE_ANIM_FRAME_IDX_65, 8
frame SPRITE_ANIM_FRAME_IDX_66, 8
frame SPRITE_ANIM_FRAME_IDX_65, 8
@@ -127,7 +128,7 @@
frame SPRITE_ANIM_FRAME_IDX_1F, 1
dorestart
-.Frameset_08:
+.Frameset_TextEntryCursor:
frame SPRITE_ANIM_FRAME_IDX_20, 1
dorepeat 1
dorestart
@@ -137,7 +138,7 @@
dorepeat 1
dorestart
-.Frameset_0a:
+.Frameset_GameFreakLogo:
frame SPRITE_ANIM_FRAME_IDX_81, 12
frame SPRITE_ANIM_FRAME_IDX_82, 1
frame SPRITE_ANIM_FRAME_IDX_83, 1
@@ -155,12 +156,12 @@
frame SPRITE_ANIM_FRAME_IDX_8B, 7
endanim
-.Frameset_0b:
+.Frameset_GSIntroStar:
frame SPRITE_ANIM_FRAME_IDX_23, 3
frame SPRITE_ANIM_FRAME_IDX_23, 3, OAM_Y_FLIP
dorestart
-.Frameset_0c:
+.Frameset_GSIntroSparkle:
frame SPRITE_ANIM_FRAME_IDX_24, 2
frame SPRITE_ANIM_FRAME_IDX_25, 2
frame SPRITE_ANIM_FRAME_IDX_26, 2
@@ -167,7 +168,7 @@
frame SPRITE_ANIM_FRAME_IDX_25, 2
dorestart
-.Frameset_0d:
+.Frameset_SlotsGolem:
frame SPRITE_ANIM_FRAME_IDX_27, 7
frame SPRITE_ANIM_FRAME_IDX_28, 7
frame SPRITE_ANIM_FRAME_IDX_27, 7, OAM_Y_FLIP
@@ -174,7 +175,7 @@
frame SPRITE_ANIM_FRAME_IDX_28, 7, OAM_X_FLIP
dorestart
-.Frameset_0e:
+.Frameset_SlotsChansey:
frame SPRITE_ANIM_FRAME_IDX_29, 7
frame SPRITE_ANIM_FRAME_IDX_2A, 7
frame SPRITE_ANIM_FRAME_IDX_29, 7
@@ -181,7 +182,7 @@
frame SPRITE_ANIM_FRAME_IDX_2B, 7
dorestart
-.Frameset_0f:
+.Frameset_SlotsChansey2:
frame SPRITE_ANIM_FRAME_IDX_29, 7
frame SPRITE_ANIM_FRAME_IDX_2C, 7
frame SPRITE_ANIM_FRAME_IDX_2D, 7
@@ -189,19 +190,19 @@
frame SPRITE_ANIM_FRAME_IDX_29, 7
endanim
-.Frameset_10:
+.Frameset_SlotsEgg:
frame SPRITE_ANIM_FRAME_IDX_2E, 20
endanim
-.Frameset_12:
+.Frameset_StillCursor:
frame SPRITE_ANIM_FRAME_IDX_2F, 32
endanim
-.Frameset_13:
+.Frameset_TradePokeBall:
frame SPRITE_ANIM_FRAME_IDX_30, 32
endanim
-.Frameset_14:
+.Frameset_TradePokeBall0:
frame SPRITE_ANIM_FRAME_IDX_30, 3
frame SPRITE_ANIM_FRAME_IDX_31, 3
frame SPRITE_ANIM_FRAME_IDX_30, 3
@@ -208,37 +209,37 @@
frame SPRITE_ANIM_FRAME_IDX_31, 3, OAM_X_FLIP
dorestart
-.Frameset_15:
+.Frameset_TradePoof:
frame SPRITE_ANIM_FRAME_IDX_32, 4
frame SPRITE_ANIM_FRAME_IDX_33, 4
frame SPRITE_ANIM_FRAME_IDX_34, 4
delanim
-.Frameset_16:
+.Frameset_TradeTubeBulge:
frame SPRITE_ANIM_FRAME_IDX_35, 3
frame SPRITE_ANIM_FRAME_IDX_36, 3
dorestart
-.Frameset_17:
+.Frameset_TrademonIcon:
frame SPRITE_ANIM_FRAME_IDX_37, 7
frame SPRITE_ANIM_FRAME_IDX_38, 7
dorestart
-.Frameset_18:
+.Frameset_TrademonBubble:
frame SPRITE_ANIM_FRAME_IDX_39, 32
endanim
-.Frameset_19:
+.Frameset_EvolutionBallOfLight:
frame SPRITE_ANIM_FRAME_IDX_3B, 2
frame SPRITE_ANIM_FRAME_IDX_3A, 2
frame SPRITE_ANIM_FRAME_IDX_3B, 2
endanim
-.Frameset_1a:
+.Frameset_RadioTuningKnob:
frame SPRITE_ANIM_FRAME_IDX_3C, 32
endanim
-.Frameset_1b:
+.Frameset_MagnetTrainRed:
frame SPRITE_ANIM_FRAME_IDX_41, 8
frame SPRITE_ANIM_FRAME_IDX_42, 8
frame SPRITE_ANIM_FRAME_IDX_41, 8
@@ -292,11 +293,11 @@
dorepeat 32
endanim
-.Frameset_1d:
+.Frameset_Leaf:
frame SPRITE_ANIM_FRAME_IDX_4F, 32
endanim
-.Frameset_1e:
+.Frameset_CutTree:
frame SPRITE_ANIM_FRAME_IDX_50, 2
frame SPRITE_ANIM_FRAME_IDX_51, 16
dorepeat 1
@@ -305,11 +306,11 @@
frame SPRITE_ANIM_FRAME_IDX_53, 1
delanim
-.Frameset_1f:
+.Frameset_EggCrack:
frame SPRITE_ANIM_FRAME_IDX_54, 32
endanim
-.Frameset_20:
+.Frameset_EggHatch:
frame SPRITE_ANIM_FRAME_IDX_55, 32
endanim
@@ -334,7 +335,7 @@
frame SPRITE_ANIM_FRAME_IDX_5A, 10
dorestart
-.Frameset_25:
+.Frameset_HeadbuttTree:
frame SPRITE_ANIM_FRAME_IDX_50, 2
frame SPRITE_ANIM_FRAME_IDX_5B, 2
frame SPRITE_ANIM_FRAME_IDX_50, 2
@@ -424,7 +425,7 @@
frame SPRITE_ANIM_FRAME_IDX_6B, 2
delanim
-.Frameset_35:
+.Frameset_IntroSuicune:
frame SPRITE_ANIM_FRAME_IDX_6E, 3
frame SPRITE_ANIM_FRAME_IDX_6F, 3
frame SPRITE_ANIM_FRAME_IDX_70, 3
@@ -431,46 +432,46 @@
frame SPRITE_ANIM_FRAME_IDX_71, 3
dorestart
-.Frameset_36:
+.Frameset_IntroSuicune2:
frame SPRITE_ANIM_FRAME_IDX_71, 3
frame SPRITE_ANIM_FRAME_IDX_6E, 7
endanim
-.Frameset_37:
+.Frameset_IntroPichu:
frame SPRITE_ANIM_FRAME_IDX_72, 32
frame SPRITE_ANIM_FRAME_IDX_73, 7
frame SPRITE_ANIM_FRAME_IDX_74, 7
endanim
-.Frameset_38:
+.Frameset_IntroWooper:
frame SPRITE_ANIM_FRAME_IDX_75, 3
endanim
-.Frameset_39:
+.Frameset_IntroUnown1:
frame SPRITE_ANIM_FRAME_IDX_76, 3
frame SPRITE_ANIM_FRAME_IDX_77, 3
frame SPRITE_ANIM_FRAME_IDX_78, 7
delanim
-.Frameset_3a:
+.Frameset_IntroUnown2:
frame SPRITE_ANIM_FRAME_IDX_76, 3, OAM_X_FLIP
frame SPRITE_ANIM_FRAME_IDX_77, 3, OAM_X_FLIP
frame SPRITE_ANIM_FRAME_IDX_78, 7, OAM_X_FLIP
delanim
-.Frameset_3b:
+.Frameset_IntroUnown3:
frame SPRITE_ANIM_FRAME_IDX_76, 3, OAM_Y_FLIP
frame SPRITE_ANIM_FRAME_IDX_77, 3, OAM_Y_FLIP
frame SPRITE_ANIM_FRAME_IDX_78, 7, OAM_Y_FLIP
delanim
-.Frameset_3c:
+.Frameset_IntroUnown4:
frame SPRITE_ANIM_FRAME_IDX_76, 3, OAM_X_FLIP, OAM_Y_FLIP
frame SPRITE_ANIM_FRAME_IDX_77, 3, OAM_X_FLIP, OAM_Y_FLIP
frame SPRITE_ANIM_FRAME_IDX_78, 7, OAM_X_FLIP, OAM_Y_FLIP
delanim
-.Frameset_3d:
+.Frameset_IntroUnownF2:
frame SPRITE_ANIM_FRAME_IDX_79, 3
frame SPRITE_ANIM_FRAME_IDX_7A, 3
frame SPRITE_ANIM_FRAME_IDX_7B, 3
@@ -478,20 +479,20 @@
frame SPRITE_ANIM_FRAME_IDX_7D, 7
endanim
-.Frameset_3e:
+.Frameset_IntroSuicuneAway:
frame SPRITE_ANIM_FRAME_IDX_7E, 3
endanim
-.Frameset_3f:
+.Frameset_IntroUnownF:
dorepeat 0
endanim
-.Frameset_40:
+.Frameset_CelebiLeft:
frame SPRITE_ANIM_FRAME_IDX_7F, 8
frame SPRITE_ANIM_FRAME_IDX_80, 8
endanim
-.Frameset_41:
+.Frameset_CelebiRight:
frame SPRITE_ANIM_FRAME_IDX_7F, 8, OAM_X_FLIP
frame SPRITE_ANIM_FRAME_IDX_80, 8, OAM_X_FLIP
endanim
@@ -498,6 +499,7 @@
; 8d94d
SpriteAnimOAMData: ; 8d94d
+; entries correspond to SPRITE_ANIM_FRAME_IDX_* constants
; vtile offset, pointer
dbw $00, .OAMData_00 ; 00
dbw $04, .OAMData_00 ; 01
@@ -1632,6 +1634,7 @@
dsprite 0, 0, 0, 4, $52, $01
dsprite 0, 0, 1, 4, $53, $01
; 8e706
+
BrokenStdGFXPointers: ; Broken 2bpp pointers
dbbw $80, $01, .deleted ; 128-tile 2bpp at 1:672a (inside Multiply)
dbbw $80, $01, .deleted
--- a/engine/battle_start.asm
+++ b/engine/battle_start.asm
@@ -141,7 +141,7 @@
; 8c2f4
TrainerBattlePokeballTiles: ; 8c2f4
-INCBIN "gfx/overworld/trainer_battle_pokeball_tiles.2bpp"
+INCBIN "gfx/ow_fx/trainer_battle_pokeball_tiles.2bpp"
FlashyTransitionToBattle: ; 8c314
--- a/engine/billspc.asm
+++ b/engine/billspc.asm
@@ -1783,7 +1783,7 @@
call CopyNicknameToTemp
ld hl, PartyMonOT
call CopyOTNameToTemp
- ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld hl, PartyMon1
ld bc, PARTYMON_STRUCT_LENGTH
ld a, [CurPartyMon]
call AddNTimes
@@ -2280,8 +2280,8 @@
ret
; e3419 (38:7419)
-PCSelectLZ: INCBIN "gfx/pc.2bpp.lz"
-PCMailGFX: INCBIN "gfx/pc_mail.2bpp"
+PCSelectLZ: INCBIN "gfx/pc/pc.2bpp.lz"
+PCMailGFX: INCBIN "gfx/pc/pc_mail.2bpp"
; e34dd
PCString_ChooseaPKMN: db "Choose a <PK><MN>.@"
--- a/engine/billspctop.asm
+++ b/engine/billspctop.asm
@@ -245,10 +245,10 @@
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
ld a, " "
call ByteFill
- hlcoord 0,0
+ hlcoord 0, 0
lb bc, 10, 18
call TextBox
- hlcoord 0,12
+ hlcoord 0, 12
lb bc, 4, 18
call TextBox
call WaitBGMap2
--- a/engine/breeding/egg.asm
+++ b/engine/breeding/egg.asm
@@ -234,7 +234,7 @@
callba SetEggMonCaughtData
callba TrainerRankings_EggsHatched
ld a, [CurPartyMon]
- ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld hl, PartyMon1Species
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld a, [hl]
@@ -263,7 +263,7 @@
ld [wd26b], a
call GetBaseData
ld a, [CurPartyMon]
- ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld hl, PartyMon1
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
push hl
@@ -309,7 +309,7 @@
ld a, [PlayerID + 1]
ld [hl], a
ld a, [CurPartyMon]
- ld hl, PartyMonOT ; wddff (aliases: PartyMonOT)
+ ld hl, PartyMonOT
ld bc, NAME_LENGTH
call AddNTimes
ld d, h
@@ -803,7 +803,7 @@
add 9 * 8 + 4
ld d, a
ld e, 11 * 8
- ld a, SPRITE_ANIM_INDEX_19
+ ld a, SPRITE_ANIM_INDEX_EGG_CRACK
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_TILE_ID
add hl, bc
@@ -813,7 +813,7 @@
; 17393 (5:7393)
EggHatchGFX: ; 17393
-INCBIN "gfx/unknown/017393.2bpp"
+INCBIN "gfx/evo/egg_hatch.2bpp"
; 173b3
Hatch_InitShellFragments: ; 173b3 (5:73b3)
@@ -833,7 +833,7 @@
push hl
push bc
- ld a, SPRITE_ANIM_INDEX_1C
+ ld a, SPRITE_ANIM_INDEX_EGG_HATCH
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_TILE_ID
--- a/engine/card_flip.asm
+++ b/engine/card_flip.asm
@@ -499,12 +499,12 @@
.Deck: ; e0459
; level, pic anchor (3x3)
- db "1",$4e, "1",$57, "1",$69, "1",$60
- db "2",$4e, "2",$57, "2",$69, "2",$60
- db "3",$4e, "3",$57, "3",$69, "3",$60
- db "4",$4e, "4",$57, "4",$69, "4",$60
- db "5",$4e, "5",$57, "5",$69, "5",$60
- db "6",$4e, "6",$57, "6",$69, "6",$60
+ db "1", $4e, "1", $57, "1", $69, "1", $60
+ db "2", $4e, "2", $57, "2", $69, "2", $60
+ db "3", $4e, "3", $57, "3", $69, "3", $60
+ db "4", $4e, "4", $57, "4", $69, "4", $60
+ db "5", $4e, "5", $57, "5", $69, "5", $60
+ db "6", $4e, "6", $57, "6", $69, "6", $60
; e0489
CardFlip_UpdateCoinBalanceDisplay: ; e0489
@@ -1712,19 +1712,19 @@
; e0cdb
CardFlipLZ03: ; e0cdb
-INCBIN "gfx/unknown/0e0cdb.2bpp.lz"
+INCBIN "gfx/card_flip/card_flip_3.2bpp.lz"
CardFlipOffButtonGFX: ; e0cf6
-INCBIN "gfx/unknown/0e0cf6.2bpp"
+INCBIN "gfx/card_flip/off.2bpp"
CardFlipOnButtonGFX: ; e0d06
-INCBIN "gfx/unknown/0e0d06.2bpp"
+INCBIN "gfx/card_flip/on.2bpp"
CardFlipLZ01: ; e0d16
-INCBIN "gfx/unknown/0e0d16.2bpp.lz"
+INCBIN "gfx/card_flip/card_flip_1.2bpp.lz"
CardFlipLZ02: ; e0ea8
-INCBIN "gfx/unknown/0e0ea8.2bpp.lz"
+INCBIN "gfx/card_flip/card_flip_2.2bpp.lz"
CardFlipTilemap: ; e110c
db $ef, $15, $27, $2a, $2a, $06, $27, $2a, $2a, $06, $27
--- a/engine/clock_reset.asm
+++ b/engine/clock_reset.asm
@@ -66,7 +66,7 @@
.SetClock: ; 20051 (8:4051)
ld a, 1
ld [Buffer1], a ; which digit
- ld [Buffer2], a ; wd1eb (aliases: MovementType)
+ ld [Buffer2], a
ld a, 8
ld [Buffer3], a
call UpdateTime
@@ -151,7 +151,7 @@
ret
.pressed_up
- ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
+ ld a, [Buffer1]
call ResetClock_GetWraparoundTime
ld a, [de]
inc a
@@ -163,7 +163,7 @@
jr .done_scroll
.pressed_down
- ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
+ ld a, [Buffer1]
call ResetClock_GetWraparoundTime
ld a, [de]
dec a
@@ -176,7 +176,7 @@
jr .done_scroll
.pressed_left
- ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
+ ld hl, Buffer1
dec [hl]
jr nz, .done_scroll
ld [hl], $3
@@ -183,7 +183,7 @@
jr .done_scroll
.pressed_right
- ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
+ ld hl, Buffer1
inc [hl]
ld a, [hl]
cp $4
@@ -209,14 +209,14 @@
ld c, a
decoord 11, 8
callba PrintHoursMins
- ld a, [Buffer2] ; wd1eb (aliases: MovementType)
+ ld a, [Buffer2]
lb de, " ", " "
call .PlaceChars
- ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
+ ld a, [Buffer1]
lb de, "▲", "▼"
call .PlaceChars
- ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
- ld [Buffer2], a ; wd1eb (aliases: MovementType)
+ ld a, [Buffer1]
+ ld [Buffer2], a
ret
; 20160 (8:4160)
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -196,7 +196,7 @@
xor a
ld [hBGMapMode], a
ld [CreditsPos], a
- ld [wcd21], a
+ ld [CreditsUnusedCD21], a
ld [CreditsTimer], a
.execution_loop
@@ -491,7 +491,7 @@
ld a, MUSIC_POST_CREDITS % $100
ld [MusicFadeID], a
ld a, MUSIC_POST_CREDITS / $100
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ret
.get
@@ -1303,9 +1303,9 @@
.Copyright:
; (C) 1 9 9 5 - 2 0 0 1 N i n t e n d o
- db $60,$61,$62,$63,$64,$65,$66, $67, $68, $69, $6a, $6b, $6c
- ; (C) 1 9 9 5 - 2 0 0 1 C r e a t u r e s i n c .
- next $60,$61,$62,$63,$64,$65,$66, $6d, $6e, $6f, $70, $71, $72, $7a, $7b, $7c
- ; (C) 1 9 9 5 - 2 0 0 1 G A M E F R E A K i n c .
- next $60,$61,$62,$63,$64,$65,$66, $73, $74, $75, $76, $77, $78, $79, $7a, $7b, $7c
+ db $60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6a,$6b,$6c
+ ; (C) 1 9 9 5 - 2 0 0 1 C r e a t u r e s i n c .
+ next $60,$61,$62,$63,$64,$65,$66,$6d,$6e,$6f,$70,$71,$72, $7a,$7b,$7c
+ ; (C) 1 9 9 5 - 2 0 0 1 G A M E F R E A K i n c .
+ next $60,$61,$62,$63,$64,$65,$66,$73,$74,$75,$76,$77,$78,$79, $7a,$7b,$7c
db "@"
--- a/engine/crystal_intro.asm
+++ b/engine/crystal_intro.asm
@@ -183,7 +183,7 @@
.place_presents
ld [hl], 0
ld hl, .presents
- decoord 7,11
+ decoord 7, 11
ld bc, .end - .presents
call CopyBytes
call PlaceGameFreakPresents_AdvanceIndex
@@ -773,7 +773,7 @@
call Intro_ResetLYOverrides
callba ClearSpriteAnims
depixel 13, 27, 4, 0
- ld a, SPRITE_ANIM_INDEX_26
+ ld a, SPRITE_ANIM_INDEX_INTRO_SUICUNE
call _InitSpriteAnimStruct
ld a, $f0
ld [wGlobalAnimXOffset], a
@@ -866,7 +866,7 @@
.pichu
depixel 21, 16, 1, 0
- ld a, SPRITE_ANIM_INDEX_27
+ ld a, SPRITE_ANIM_INDEX_INTRO_PICHU
call _InitSpriteAnimStruct
ld de, SFX_INTRO_PICHU
call PlaySFX
@@ -874,7 +874,7 @@
.wooper
depixel 22, 6
- ld a, SPRITE_ANIM_INDEX_28
+ ld a, SPRITE_ANIM_INDEX_INTRO_WOOPER
call _InitSpriteAnimStruct
ld de, SFX_INTRO_PICHU
call PlaySFX
@@ -1054,7 +1054,7 @@
ld [hWY], a
callba ClearSpriteAnims
depixel 13, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_26
+ ld a, SPRITE_ANIM_INDEX_INTRO_SUICUNE
call _InitSpriteAnimStruct
ld de, MUSIC_CRYSTAL_OPENING
call PlayMusic
@@ -1165,10 +1165,10 @@
callba ClearSpriteAnims
call Intro_SetCGBPalUpdate
depixel 8, 5
- ld a, SPRITE_ANIM_INDEX_2A
+ ld a, SPRITE_ANIM_INDEX_INTRO_UNOWN_F
call _InitSpriteAnimStruct
depixel 12, 0
- ld a, SPRITE_ANIM_INDEX_2B
+ ld a, SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
call _InitSpriteAnimStruct
xor a
ld [wIntroSceneFrameCounter], a
@@ -1317,7 +1317,7 @@
ld [hl], $7f
call Intro_SetCGBPalUpdate
depixel 12, 0
- ld a, SPRITE_ANIM_INDEX_2B
+ ld a, SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
call _InitSpriteAnimStruct
xor a
ld [wIntroSceneFrameCounter], a
@@ -1617,7 +1617,7 @@
CrystalIntro_InitUnownAnim: ; e51dc (39:51dc)
push de
- ld a, SPRITE_ANIM_INDEX_29
+ ld a, SPRITE_ANIM_INDEX_INTRO_UNOWN
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
@@ -1627,7 +1627,7 @@
pop de
push de
- ld a, SPRITE_ANIM_INDEX_29
+ ld a, SPRITE_ANIM_INDEX_INTRO_UNOWN
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
@@ -1637,7 +1637,7 @@
pop de
push de
- ld a, SPRITE_ANIM_INDEX_29
+ ld a, SPRITE_ANIM_INDEX_INTRO_UNOWN
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
@@ -1646,7 +1646,7 @@
call ReinitSpriteAnimFrame
pop de
- ld a, SPRITE_ANIM_INDEX_29
+ ld a, SPRITE_ANIM_INDEX_INTRO_UNOWN
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
--- a/engine/decorations.asm
+++ b/engine/decorations.asm
@@ -908,9 +908,9 @@
DecoAction_FinishUp_Ornament: ; 26dd6
call QueryWhichSide
- ld a, [wd1ec]
+ ld a, [wSelectedDecoration]
ld [hl], a
- ld a, [wd1ed]
+ ld a, [wOtherDecoration]
ld [de], a
xor a
ret
@@ -917,7 +917,7 @@
; 26de3
DecoAction_SetItUp_Ornament: ; 26de3
- ld a, [wd1ec]
+ ld a, [wSelectedDecoration]
and a
jr z, .nothingthere
ld b, a
@@ -931,7 +931,7 @@
ld hl, StringBuffer4
call GetDecorationName
ld a, [MenuSelection]
- ld [wd1ec], a
+ ld [wSelectedDecoration], a
call .getwhichside
ld hl, DecoText_PutAwayAndSetUp
call MenuTextBoxBackup
@@ -940,7 +940,7 @@
.nothingthere
ld a, [MenuSelection]
- ld [wd1ec], a
+ ld [wSelectedDecoration], a
call .getwhichside
ld a, [MenuSelection]
ld hl, StringBuffer3
@@ -960,11 +960,11 @@
.getwhichside ; 26e33
ld a, [MenuSelection]
ld b, a
- ld a, [wd1ed]
+ ld a, [wOtherDecoration]
cp b
ret nz
xor a
- ld [wd1ed], a
+ ld [wOtherDecoration], a
ret
; 26e41
@@ -975,7 +975,7 @@
; 0x26e46
DecoAction_PutItAway_Ornament: ; 26e46
- ld a, [wd1ec]
+ ld a, [wSelectedDecoration]
and a
jr z, .nothingthere
ld hl, StringBuffer3
@@ -983,7 +983,7 @@
ld a, $1
ld [Buffer5], a
xor a
- ld [wd1ec], a
+ ld [wSelectedDecoration], a
ld hl, DecoText_PutAwayTheDeco
call MenuTextBoxBackup
xor a
@@ -1015,9 +1015,9 @@
ld [Buffer2], a
call QueryWhichSide
ld a, [hl]
- ld [wd1ec], a
+ ld [wSelectedDecoration], a
ld a, [de]
- ld [wd1ed], a
+ ld [wOtherDecoration], a
xor a
ret
--- a/engine/diploma.asm
+++ b/engine/diploma.asm
@@ -85,10 +85,10 @@
; 1dd805
DiplomaGFX: ; 1dd805
-INCBIN "gfx/unknown/1dd805.2bpp.lz"
+INCBIN "gfx/diploma/diploma.2bpp.lz"
DiplomaPage1Tilemap: ; 1ddc4b
-INCBIN "gfx/unknown/1ddc4b.tilemap"
+INCBIN "gfx/diploma/page1.tilemap"
DiplomaPage2Tilemap: ; 1dddb3
-INCBIN "gfx/unknown/1dddb3.tilemap"
+INCBIN "gfx/diploma/page2.tilemap"
--- a/engine/dummy_game.asm
+++ b/engine/dummy_game.asm
@@ -109,7 +109,7 @@
.spawn_object
depixel 6, 3, 4, 4
- ld a, SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
+ ld a, SPRITE_ANIM_INDEX_DUMMY_GAME
call _InitSpriteAnimStruct
ld a, 5
ld [wDummyGameNumberTriesRemaining], a
@@ -609,4 +609,4 @@
; e2221 (38:6221)
LZ_e2221: ; e2221
-INCBIN "gfx/unknown/0e2221.2bpp.lz"
+INCBIN "gfx/dummy_game/dummy_game.2bpp.lz"
--- a/engine/engine_flags.asm
+++ b/engine/engine_flags.asm
@@ -208,7 +208,7 @@
engine_flag WeeklyFlags, 6 ; move tutor
engine_flag WeeklyFlags, 7 ; buenas password
- engine_flag SwarmFlags, 0 ; $60
+ engine_flag SwarmFlags, 0 ; buenas password 2
engine_flag SwarmFlags, 1 ; goldenrod dept store sale is on
engine_flag GameTimerPause, 7 ; $62
--- a/engine/events_2.asm
+++ b/engine/events_2.asm
@@ -627,7 +627,7 @@
ld hl, OBJECT_MOVEMENTTYPE
add hl, de
ld a, [hl]
- cp STEP_TYPE_SKYFALL_TOP
+ cp SPRITEMOVEDATA_STRENGTH_BOULDER
jr nz, .next
ld hl, OBJECT_NEXT_TILE
--- a/engine/events_3.asm
+++ b/engine/events_3.asm
@@ -850,9 +850,9 @@
; b84f2
FishingGFX: ; b84f2
-INCBIN "gfx/overworld/chris_fish.2bpp"
+INCBIN "gfx/ow_fx/chris_fish.2bpp"
; b8582
KrisFishingGFX: ; b8582
-INCBIN "gfx/overworld/kris_fish.2bpp"
+INCBIN "gfx/ow_fx/kris_fish.2bpp"
; b8612
--- a/engine/evolution_animation.asm
+++ b/engine/evolution_animation.asm
@@ -316,7 +316,7 @@
.GenerateBallOfLight: ; 4e7e8
push de
depixel 9, 11
- ld a, SPRITE_ANIM_INDEX_13
+ ld a, SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
--- a/engine/facings.asm
+++ b/engine/facings.asm
@@ -1,4 +1,5 @@
Facings: ; 4049
+; entries correspond to FACING_* constants
dw FacingStepDown0
dw FacingStepDown1
dw FacingStepDown2
@@ -31,7 +32,8 @@
dw FacingBoulderDust2
dw FacingGrass1
dw FacingGrass2
-FacingsEnd: dw 0
+FacingsEnd:
+ dw 0
NUM_FACINGS EQU (FacingsEnd - Facings) / 2
@@ -40,12 +42,6 @@
; Format:
; db y, x, attributes, tile index
-
-; Attributes:
-X_FLIP EQU 1 << OAM_X_FLIP
-Y_FLIP EQU 1 << OAM_Y_FLIP
-BEHIND_BG EQU 1 << OAM_PRIORITY
-
FacingStepDown0:
FacingStepDown2:
--- a/engine/healmachineanim.asm
+++ b/engine/healmachineanim.asm
@@ -137,7 +137,7 @@
; 123fc
.HealMachineGFX: ; 123fc
-INCBIN "gfx/unknown/0123fc.2bpp"
+INCBIN "gfx/ow_fx/heal_machine.2bpp"
; 1241c
.HOF_OAM: ; 1241c
--- a/engine/init_gender.asm
+++ b/engine/init_gender.asm
@@ -68,9 +68,9 @@
ld a, $10
ld [MusicFade], a
ld a, MUSIC_NONE
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, $0
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld c, 8
call DelayFrames
call ClearBGPalettes
--- a/engine/intro_menu.asm
+++ b/engine/intro_menu.asm
@@ -111,8 +111,8 @@
xor a
call ByteFill
- ld hl, wd000
- ld bc, wGameData - wd000
+ ld hl, wRAM1Start
+ ld bc, wGameData - wRAM1Start
xor a
call ByteFill
@@ -375,9 +375,9 @@
ld a, $8
ld [MusicFade], a
ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
call ClearBGPalettes
call Continue_MobileAdapterMenu
call CloseWindow
@@ -429,9 +429,9 @@
ld a, 5
ld [MusicFade], a
ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld c, 20
call DelayFrames
ld c, $1
@@ -440,9 +440,9 @@
ld a, 8
ld [MusicFade], a
ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld c, 35
call DelayFrames
ret
@@ -859,9 +859,9 @@
ld [MusicFade], a
ld de, MUSIC_NONE
ld a, e
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, d
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld de, SFX_ESCAPE_ROPE
call PlaySFX
@@ -1051,7 +1051,7 @@
ld b, SCGB_DIPLOMA
call GetSGBLayout
call UpdateTimePals
- ld a, [wcf64]
+ ld a, [wIntroSceneFrameCounter]
cp $5
jr c, .ok
xor a
@@ -1191,7 +1191,7 @@
inc [hl]
; Start a timer
- ld hl, wcf65
+ ld hl, wTitleScreenTimer
ld de, 73 * 60 + 36
ld [hl], e
inc hl
@@ -1202,7 +1202,7 @@
TitleScreenMain: ; 6304
; Run the timer down.
- ld hl, wcf65
+ ld hl, wTitleScreenTimer
ld e, [hl]
inc hl
ld d, [hl]
@@ -1268,7 +1268,7 @@
ld a, 1
.done
- ld [wcf64], a
+ ld [wIntroSceneFrameCounter], a
; Return to the intro sequence.
ld hl, wJumptableIndex
@@ -1282,18 +1282,18 @@
; Fade out the title screen music
xor a
- ld [MusicFadeIDLo], a
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID], a
+ ld [MusicFadeID + 1], a
ld hl, MusicFade
ld [hl], 8 ; 1 second
- ld hl, wcf65
+ ld hl, wTitleScreenTimer
inc [hl]
ret
.clock_reset
ld a, 4
- ld [wcf64], a
+ ld [wIntroSceneFrameCounter], a
; Return to the intro sequence.
ld hl, wJumptableIndex
@@ -1305,7 +1305,7 @@
; Wait until the music is done fading.
- ld hl, wcf65
+ ld hl, wTitleScreenTimer
inc [hl]
ld a, [MusicFade]
@@ -1313,7 +1313,7 @@
ret nz
ld a, 2
- ld [wcf64], a
+ ld [wIntroSceneFrameCounter], a
; Back to the intro.
ld hl, wJumptableIndex
@@ -1332,8 +1332,8 @@
; 639b
Function639b: ; unreferenced
- ; If bit 0 or 1 of [wcf65] is set, we don't need to be here.
- ld a, [wcf65]
+ ; If bit 0 or 1 of [wTitleScreenTimer] is set, we don't need to be here.
+ ld a, [wTitleScreenTimer]
and $3
ret nz
ld bc, SpriteAnim10
@@ -1345,8 +1345,8 @@
add hl, hl
ld de, Data63ca
add hl, de
- ; If bit 2 of [wcf65] is set, get the second dw; else, get the first dw
- ld a, [wcf65]
+ ; If bit 2 of [wTitleScreenTimer] is set, get the second dw; else, get the first dw
+ ld a, [wTitleScreenTimer]
and %00000100
srl a
srl a
--- a/engine/items.asm
+++ b/engine/items.asm
@@ -331,7 +331,7 @@
ret
TossKeyItem: ; d374
- ld a, [wd107]
+ ld a, [CurItemQuantity]
ld e, a
ld d, 0
ld hl, NumKeyItems
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -390,7 +390,7 @@
ld [de], a
.skip_mail
- ld hl, wLinkData
+ ld hl, wLinkPlayerName
ld de, OTPlayerName
ld bc, NAME_LENGTH
call CopyBytes
@@ -1143,7 +1143,7 @@
db ITEM_BE, BERRY
db ITEM_C3, BERRY
db ITEM_DC, BERRY
- db HM_08, BERRY
+ db ITEM_FA, BERRY
db -1, BERRY
db 0
; 2879e
--- a/engine/link_trade.asm
+++ b/engine/link_trade.asm
@@ -1,5 +1,5 @@
LinkCommsBorderGFX:
-INCBIN "gfx/unknown/16cfc1.2bpp"
+INCBIN "gfx/trade/border_tiles.2bpp"
; 16d421
__LoadTradeScreenBorder: ; 16d421
@@ -35,13 +35,13 @@
; 16d465
Tilemap_16d465:
-INCBIN "gfx/unknown/16d465.tilemap"
+INCBIN "gfx/trade/border_mobile_fullscreen.tilemap"
Tilemap_16d5cd:
-INCBIN "gfx/unknown/16d5cd.tilemap"
+INCBIN "gfx/trade/border_cable_top.tilemap"
Tilemap_16d5f5:
-INCBIN "gfx/unknown/16d5f5.tilemap"
+INCBIN "gfx/trade/border_cable_bottom.tilemap"
_LinkTextbox: ; 16d61d
ld h, d
--- a/engine/map_object_action.asm
+++ b/engine/map_object_action.asm
@@ -1,36 +1,22 @@
- ld hl, OBJECT_ACTION
- add hl, bc
- ld a, [hl]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call _hl_
- ret
-; 445f
-
-Pointers445f: ; 445f
- dw SetFacingStanding, SetFacingStanding ; 00
- dw SetFacingStandAction, SetFacingCurrent ; 01 standing?
- dw SetFacingStepAction, SetFacingCurrent ; 02 walking?
- dw SetFacingBumpAction, SetFacingCurrent ; 03 bumping?
- dw SetFacingCounterclockwiseSpin, SetFacingCurrent ; 04
- dw SetFacingCounterclockwiseSpin2, SetFacingStanding ; 05
- dw SetFacingFish, SetFacingFish ; 06
- dw SetFacingShadow, SetFacingStanding ; 07
- dw SetFacingEmote, SetFacingEmote ; 08
- dw SetFacingBigDollSym, SetFacingBigDollSym ; 09
- dw SetFacingBounce, SetFacingFreezeBounce ; 0a
- dw SetFacingWeirdTree, SetFacingCurrent ; 0b
- dw SetFacingBigDollAsym, SetFacingBigDollAsym ; 0c
- dw SetFacingBigDoll, SetFacingBigDoll ; 0d
- dw SetFacingBoulderDust, SetFacingStanding ; 0e
- dw SetFacingGrassShake, SetFacingStanding ; 0f
- dw SetFacingSkyfall, SetFacingCurrent ; 10
+PersonActionPairPointers: ; 445f
+; entries correspond to PERSON_ACTION_* constants
+ dw SetFacingStanding, SetFacingStanding
+ dw SetFacingStandAction, SetFacingCurrent
+ dw SetFacingStepAction, SetFacingCurrent
+ dw SetFacingBumpAction, SetFacingCurrent
+ dw SetFacingCounterclockwiseSpin, SetFacingCurrent
+ dw SetFacingCounterclockwiseSpin2, SetFacingStanding
+ dw SetFacingFish, SetFacingFish
+ dw SetFacingShadow, SetFacingStanding
+ dw SetFacingEmote, SetFacingEmote
+ dw SetFacingBigDollSym, SetFacingBigDollSym
+ dw SetFacingBounce, SetFacingFreezeBounce
+ dw SetFacingWeirdTree, SetFacingCurrent
+ dw SetFacingBigDollAsym, SetFacingBigDollAsym
+ dw SetFacingBigDoll, SetFacingBigDoll
+ dw SetFacingBoulderDust, SetFacingStanding
+ dw SetFacingGrassShake, SetFacingStanding
+ dw SetFacingSkyfall, SetFacingCurrent
; 44a3
SetFacingStanding: ; 44a3
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -155,8 +155,8 @@
jr nz, SetFacingStanding
bit 5, [hl]
jr nz, asm_4448
- ld de, Pointers445f ; use first column
- jr asm_444d
+ ld de, PersonActionPairPointers ; use first column
+ jr _HandleObjectAction
; 4440
Function4440: ; 4440
@@ -164,13 +164,28 @@
add hl, bc
bit INVISIBLE, [hl]
jr nz, SetFacingStanding
-asm_4448 ; use second column
- ld de, Pointers445f + 2
- jr asm_444d
+asm_4448
+ ld de, PersonActionPairPointers + 2 ; use second column
+ jr _HandleObjectAction
; 444d
-asm_444d
+_HandleObjectAction
; call [4 * ObjectStructs[ObjInd, OBJECT_ACTION] + de]
+ ld hl, OBJECT_ACTION
+ add hl, bc
+ ld a, [hl]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call _hl_
+ ret
+; 445f
+
INCLUDE "engine/map_object_action.asm"
CopyNextCoordsTileToStandingCoordsTile: ; 4600
@@ -535,6 +550,7 @@
ret
.Pointers: ; 47e9
+; entries correspond to SPRITEMOVEFN_* constants
dw .Null_00 ; 00
dw .RandomWalkY ; 01
dw .RandomWalkX ; 02
@@ -1085,7 +1101,7 @@
; 4b45
StepTypesJumptable: ; 4b45
-; These pointers use OBJECT_STEP_TYPE. See constants/sprite_constants.asm
+; entries correspond to STEP_TYPE_* constants
dw ObjectMovementReset ; 00
dw MapObjectMovementPattern ; unused
dw NPCStep ; 02 npc walk
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -414,9 +414,9 @@
RotatePalettesRightMapAndMusic: ; 15574
ld e, 0
- ld a, [MusicFadeIDLo]
+ ld a, [MusicFadeID]
ld d, 0
- ld a, [MusicFadeIDHi]
+ ld a, [MusicFadeID + 1]
ld a, $4
ld [MusicFade], a
call RotateThreePalettesRight
--- a/engine/mart.asm
+++ b/engine/mart.asm
@@ -370,9 +370,9 @@
call FadeToMenu
callba BlankScreen
xor a
- ld [wd045 + 1], a
+ ld [wMenuScrollPositionBackup], a
ld a, 1
- ld [wd045], a
+ ld [wMenuCursorBufferBackup], a
.loop
call BuyMenuLoop ; menu loop
jr nc, .loop
@@ -471,15 +471,15 @@
call UpdateSprites
ld hl, MenuDataHeader_Buy
call CopyMenuDataHeader
- ld a, [wd045]
+ ld a, [wMenuCursorBufferBackup]
ld [wMenuCursorBuffer], a
- ld a, [wd045 + 1]
+ ld a, [wMenuScrollPositionBackup]
ld [wMenuScrollPosition], a
call ScrollingMenu
ld a, [wMenuScrollPosition]
- ld [wd045 + 1], a
+ ld [wMenuScrollPositionBackup], a
ld a, [wMenuCursorY]
- ld [wd045], a
+ ld [wMenuCursorBufferBackup], a
call SpeechTextBox
ld a, [wMenuJoypad]
cp B_BUTTON
--- a/engine/mon_icons.asm
+++ b/engine/mon_icons.asm
@@ -178,7 +178,7 @@
; x coord
ld e, $10
; type is partymon icon
- ld a, SPRITE_ANIM_INDEX_00
+ ld a, SPRITE_ANIM_INDEX_PARTY_MON
call InitSpriteAnimStruct
pop af
ld hl, SPRITEANIMSTRUCT_TILE_ID
@@ -215,7 +215,9 @@
; 8e95e (23:695e)
.speeds ; 8e95e
- db $00, $40, $80
+ db $00 ; HP_GREEN
+ db $40 ; HP_YELLOW
+ db $80 ; HP_RED
; 8e961
NamingScreen_InitAnimatedMonIcon: ; 8e961 (23:6961)
@@ -225,7 +227,7 @@
xor a
call GetIconGFX
depixel 4, 4, 4, 0
- ld a, SPRITE_ANIM_INDEX_00
+ ld a, SPRITE_ANIM_INDEX_PARTY_MON
call InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
add hl, bc
@@ -238,9 +240,9 @@
ld [CurIcon], a
xor a
call GetIconGFX
- ld d, 3 * 8 + 2
+ ld d, 3 * 8 + 2 ; depixel 3, 4, 2, 4
ld e, 4 * 8 + 4
- ld a, SPRITE_ANIM_INDEX_00
+ ld a, SPRITE_ANIM_INDEX_PARTY_MON
call InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
add hl, bc
@@ -376,7 +378,7 @@
jr .ok
.loadwithtwo
- ld a, SPRITE_ANIM_SEQ_02
+ ld a, SPRITE_ANIM_SEQ_PARTY_MON_SWITCH
.ok
push hl
@@ -407,7 +409,7 @@
ld b, h
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
add hl, bc
- ld [hl], SPRITE_ANIM_SEQ_01
+ ld [hl], SPRITE_ANIM_SEQ_PARTY_MON
pop hl
.next
ld bc, $10
@@ -428,11 +430,11 @@
jr z, .next
cp d
jr z, .is_switchmon
- ld a, SPRITE_ANIM_SEQ_03
+ ld a, SPRITE_ANIM_SEQ_PARTY_MON_SELECTED
jr .join_back
.is_switchmon
- ld a, SPRITE_ANIM_SEQ_02
+ ld a, SPRITE_ANIM_SEQ_PARTY_MON_SWITCH
.join_back
push hl
ld c, l
--- a/engine/mon_menu.asm
+++ b/engine/mon_menu.asm
@@ -9,8 +9,7 @@
; 24cd9
MonMenuOptions: ; 24cd9
-
-; Moves
+; moves
db MONMENU_FIELD_MOVE, MONMENU_CUT, CUT
db MONMENU_FIELD_MOVE, MONMENU_FLY, FLY
db MONMENU_FIELD_MOVE, MONMENU_SURF, SURF
@@ -25,8 +24,7 @@
db MONMENU_FIELD_MOVE, MONMENU_ROCKSMASH, ROCK_SMASH
db MONMENU_FIELD_MOVE, MONMENU_MILKDRINK, MILK_DRINK
db MONMENU_FIELD_MOVE, MONMENU_SWEETSCENT, SWEET_SCENT
-
-; Options
+; options
db MONMENU_MENUOPTION, MONMENU_STATS, 1 ; STATS
db MONMENU_MENUOPTION, MONMENU_SWITCH, 2 ; SWITCH
db MONMENU_MENUOPTION, MONMENU_ITEM, 3 ; ITEM
@@ -34,7 +32,6 @@
db MONMENU_MENUOPTION, MONMENU_MOVE, 5 ; MOVE
db MONMENU_MENUOPTION, MONMENU_MAIL, 6 ; MAIL
db MONMENU_MENUOPTION, MONMENU_ERROR, 7 ; ERROR!
-
db -1
; 24d19
@@ -216,7 +213,7 @@
.skip2
ld a, [Buffer1]
- cp NUM_MON_SUBMENU_ITEMS
+ cp NUM_MONMENU_ITEMS
jr z, .ok2
ld a, MONMENU_CANCEL
call AddMonMenuItem
@@ -261,7 +258,7 @@
xor a
ld [Buffer1], a
ld hl, Buffer2
- ld bc, NUM_MON_SUBMENU_ITEMS + 1
+ ld bc, NUM_MONMENU_ITEMS + 1
call ByteFill
ret
; 24e76
--- a/engine/move_mon.asm
+++ b/engine/move_mon.asm
@@ -1543,7 +1543,7 @@
call Divide
ld a, c
cp STAT_HP
- ld a, 5
+ ld a, STAT_MIN_NORMAL
jr nz, .not_hp
ld a, [CurPartyLevel]
ld b, a
@@ -1556,7 +1556,7 @@
ld [hMultiplicand + 1], a
.no_overflow_3
- ld a, 10
+ ld a, STAT_MIN_HP
.not_hp
ld b, a
--- a/engine/mysterygift.asm
+++ b/engine/mysterygift.asm
@@ -815,7 +815,7 @@
ld c, rRP % $100
ld d, $3d
call Function104dd1
- ld hl, hPrintNum2 ; $ffb4 (aliases: hMultiplicand)
+ ld hl, hPrintNum2
ld a, $5a
ld [hli], a
ld [hl], b
@@ -830,7 +830,7 @@
ld a, [hPrintNum6]
ld [hPrintNum3], a
push hl
- ld hl, hPrintNum2 ; $ffb4 (aliases: hMultiplicand)
+ ld hl, hPrintNum2
ld b, $2
call Function104ed6
ld hl, hMGStatusFlags
@@ -934,7 +934,7 @@
ld [hPrintNum6], a
push bc
push hl
- ld hl, hPrintNum2 ; $ffb4 (aliases: hMultiplicand)
+ ld hl, hPrintNum2
ld b, $2
call Function104faf
ld a, [hPrintNum3]
@@ -954,11 +954,11 @@
ld e, a
push hl
push de
- ld hl, hPrintNum2 ; $ffb4 (aliases: hMultiplicand)
+ ld hl, hPrintNum2
ld b, $2
call Function104faf
pop de
- ld hl, hPrintNum2 ; $ffb4 (aliases: hMultiplicand)
+ ld hl, hPrintNum2
ld a, [hli]
xor d
ld b, a
--- a/engine/mysterygift2.asm
+++ b/engine/mysterygift2.asm
@@ -9,7 +9,7 @@
ld a, [hli]
ld [de], a
ld b, a
- inc de
+ inc de ; wc802
ld a, [hl]
ld [de], a
ld c, a
--- a/engine/namingscreen.asm
+++ b/engine/namingscreen.asm
@@ -419,7 +419,7 @@
jr nz, .got_cursor_position
ld d, 8 * 8
.got_cursor_position
- ld a, SPRITE_ANIM_INDEX_02
+ ld a, SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
call _InitSpriteAnimStruct
ld a, c
ld [wNamingScreenCursorObjectPointer], a
@@ -946,11 +946,11 @@
; 11cb7
NamingScreenGFX_Border: ; 11cb7
-INCBIN "gfx/unknown/011cb7.2bpp"
+INCBIN "gfx/namingscreen/border.2bpp"
; 11cc7
NamingScreenGFX_Cursor: ; 11cc7
-INCBIN "gfx/unknown/011cc7.2bpp"
+INCBIN "gfx/namingscreen/cursor.2bpp"
; 11ce7
NameInputLower:
@@ -985,16 +985,16 @@
; 11e5d
-GFX_11e5d: ; ????
-INCBIN "gfx/unknown/011e5d.1bpp"
+NamingScreenGFX_End: ; unused
+INCBIN "gfx/namingscreen/end.1bpp"
; 11e6d
NamingScreenGFX_MiddleLine:
-INCBIN "gfx/unknown/011e65.1bpp"
+INCBIN "gfx/namingscreen/middle_line.1bpp"
; 11e6d
NamingScreenGFX_UnderLine: ; 11e6d
-INCBIN "gfx/unknown/011e6d.1bpp"
+INCBIN "gfx/namingscreen/underline.1bpp"
; 11e75
_ComposeMailMessage: ; 11e75 (mail?)
@@ -1039,7 +1039,7 @@
; init mail icon
depixel 3, 2
- ld a, SPRITE_ANIM_INDEX_00
+ ld a, SPRITE_ANIM_INDEX_PARTY_MON
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
@@ -1174,7 +1174,7 @@
.init_blinking_cursor ; 1201b (4:601b)
depixel 9, 2
- ld a, SPRITE_ANIM_INDEX_09
+ ld a, SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
call _InitSpriteAnimStruct
ld a, c
ld [wNamingScreenCursorObjectPointer], a
--- a/engine/overworld.asm
+++ b/engine/overworld.asm
@@ -181,7 +181,7 @@
callba LoadEmote
call GetMapPermission
call CheckOutdoorMap
- ld c, EMOTE_0B
+ ld c, EMOTE_GRASS_RUSTLE
jr z, .outdoor
ld c, EMOTE_BOULDER_DUST
.outdoor
@@ -723,10 +723,8 @@
ENDM
EmotesPointers: ; 144d
-; dw source address
-; db length, bank
-; dw dest address
-
+; entries correspond to EMOTE_* constants
+; graphics address, length, starting tile
emote_header ShockEmote, 4, $78
emote_header QuestionEmote, 4, $78
emote_header HappyEmote, 4, $78
@@ -736,9 +734,9 @@
emote_header SleepEmote, 4, $78
emote_header FishEmote, 4, $78
emote_header JumpShadowGFX, 1, $7c
- emote_header FishingRodGFX2, 2, $7c
+ emote_header FishingRodGFX, 2, $7c
emote_header BoulderDustGFX, 2, $7e
- emote_header FishingRodGFX4, 1, $7e
+ emote_header GrassRustleGFX, 1, $7e
; 14495
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -1716,6 +1716,6 @@
; 0x10b16
PackMenuGFX:
-INCBIN "gfx/misc/pack_menu.2bpp"
+INCBIN "gfx/pack/pack_menu.2bpp"
PackGFX:
-INCBIN "gfx/misc/pack.2bpp"
+INCBIN "gfx/pack/pack.2bpp"
--- a/engine/phone.asm
+++ b/engine/phone.asm
@@ -203,7 +203,7 @@
GetAvailableCallers: ; 900de (24:40de)
callba CheckTime
ld a, c
- ld [EngineBuffer1], a ; wd03e (aliases: MenuItemsList, CurFruitTree, CurInput)
+ ld [EngineBuffer1], a
ld hl, EngineBuffer3
ld bc, 11
xor a
@@ -219,7 +219,7 @@
ld hl, PhoneContacts + PHONE_CONTACT_SCRIPT2_TIME
ld bc, PHONE_TABLE_WIDTH
call AddNTimes
- ld a, [EngineBuffer1] ; wd03e (aliases: MenuItemsList, CurFruitTree, CurInput)
+ ld a, [EngineBuffer1]
and [hl]
jr z, .not_good_for_call
ld bc, PHONE_CONTACT_MAP_GROUP - PHONE_CONTACT_SCRIPT2_TIME
@@ -381,11 +381,11 @@
.DoPhoneCall:
ld a, b
- ld [wd002], a
+ ld [PhoneScriptBank], a
ld a, l
- ld [wd003], a
+ ld [PhoneCaller], a
ld a, h
- ld [wd004], a
+ ld [PhoneCaller + 1], a
ld b, BANK(UnknownScript_0x90205)
ld de, UnknownScript_0x90205
call ExecuteCallbackScript
@@ -495,9 +495,9 @@
ld a, b
ld [PhoneScriptBank], a
ld a, e
- ld [PhoneCallerLo], a
+ ld [PhoneCaller], a
ld a, d
- ld [PhoneCallerHi], a
+ ld [PhoneCaller + 1], a
call Phone_FirstOfTwoRings
call Phone_FirstOfTwoRings
callba TrainerRankings_PhoneCalls
@@ -518,14 +518,14 @@
Phone_CallerTextboxWithName2: ; 902c9
call Phone_CallerTextbox
hlcoord 1, 2
- ld [hl], $62
+ ld [hl], "<PHONE>"
inc hl
inc hl
ld a, [PhoneScriptBank]
ld b, a
- ld a, [PhoneCallerLo]
+ ld a, [PhoneCaller]
ld e, a
- ld a, [PhoneCallerHi]
+ ld a, [PhoneCaller + 1]
ld d, a
call FarPlaceString
ret
@@ -618,7 +618,7 @@
push bc
call Phone_CallerTextbox
hlcoord 1, 1
- ld [hl], $62
+ ld [hl], "<PHONE>"
inc hl
inc hl
ld d, h
@@ -769,7 +769,7 @@
db \6
dba \7 ; script 2
ENDM
-
+; entries correspond to PHONE_* constants
phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript
phone TRAINER_NONE, PHONECONTACT_MOM, KRISS_HOUSE_1F, 7, MomPhoneScript, 0, UnusedPhoneScript
phone TRAINER_NONE, PHONECONTACT_BIKESHOP, OAKS_LAB, 0, UnusedPhoneScript, 0, UnusedPhoneScript
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -117,7 +117,7 @@
ret
Pokedex_InitCursorPosition: ; 400b4
- ld hl, wPokedexDataStart
+ ld hl, wPokedexOrder
ld a, [wLastDexEntry]
and a
jr z, .done
@@ -512,7 +512,7 @@
call ClearSprites
call Pokedex_DrawOptionScreenBG
call Pokedex_InitArrowCursor
- ld a, [wCurrentDexMode]
+ ld a, [wCurrentDexMode] ; Index of the topmost visible item in a scrolling menu ???
ld [wDexArrowCursorPosIndex], a
call Pokedex_DisplayModeDescription
call WaitBGMap
@@ -1479,11 +1479,11 @@
ld a, " "
call Pokedex_FillBox
-; Load de with wPokedexDataStart + [wDexListingScrollOffset]
+; Load de with wPokedexOrder + [wDexListingScrollOffset]
ld a, [wDexListingScrollOffset]
ld e, a
ld d, $0
- ld hl, wPokedexDataStart
+ ld hl, wPokedexOrder
add hl, de
ld e, l
ld d, h
@@ -1583,7 +1583,7 @@
add [hl]
ld e, a
ld d, $0
- ld hl, wPokedexDataStart
+ ld hl, wPokedexOrder
add hl, de
ld a, [hl]
ld [wd265], a
@@ -1614,8 +1614,8 @@
Pokedex_OrderMonsByMode: ; 40bdc
- ld hl, wPokedexDataStart
- ld bc, wPokedexMetadata - wPokedexDataStart
+ ld hl, wPokedexOrder
+ ld bc, wPokedexOrderEnd - wPokedexOrder
xor a
call ByteFill
ld a, [wCurrentDexMode]
@@ -1632,7 +1632,7 @@
.NewMode: ; 40bf6 (10:4bf6)
ld de, NewPokedexOrder
- ld hl, wPokedexDataStart
+ ld hl, wPokedexOrder
ld c, NUM_POKEMON
.loopnew
ld a, [de]
@@ -1644,7 +1644,7 @@
ret
.OldMode: ; 40c08 (10:4c08)
- ld hl, wPokedexDataStart
+ ld hl, wPokedexOrder
ld a, $1
ld c, NUM_POKEMON
.loopold
@@ -1656,7 +1656,7 @@
ret
.FindLastSeen: ; 40c18 (10:4c18)
- ld hl, wPokedexDataStart + NUM_POKEMON - 1
+ ld hl, wPokedexOrder + NUM_POKEMON - 1
ld d, NUM_POKEMON
ld e, d
.loopfindend
@@ -1675,7 +1675,7 @@
Pokedex_ABCMode: ; 40c30
xor a
ld [wDexListingEnd], a
- ld hl, wPokedexDataStart
+ ld hl, wPokedexOrder
ld de, AlphabeticalPokedexOrder
ld c, NUM_POKEMON
.loop1abc
@@ -1915,8 +1915,8 @@
add hl, de
ld a, [hl]
ld [wDexConvertedMonType], a
- ld hl, wPokedexDataStart
- ld de, wPokedexDataStart
+ ld hl, wPokedexOrder
+ ld de, wPokedexOrder
ld c, NUM_POKEMON
xor a
ld [wDexSearchResultCount], a
--- a/engine/pokegear.asm
+++ b/engine/pokegear.asm
@@ -136,7 +136,7 @@
; 90cb2
FastShipGFX: ; 90cb2
-INCBIN "gfx/misc/fast_ship.2bpp"
+INCBIN "gfx/pokegear/fast_ship.2bpp"
; 90d32
InitPokegearModeIndicatorArrow: ; 90d32 (24:4d32)
@@ -751,7 +751,7 @@
PokegearRadio_Init: ; 910f9 (24:50f9)
call InitPokegearTilemap
depixel 4, 10, 4, 4
- ld a, SPRITE_ANIM_INDEX_14
+ ld a, SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_TILE_ID
add hl, bc
@@ -1407,7 +1407,7 @@
; 0x914dd
PokegearSpritesGFX: ; 914dd
-INCBIN "gfx/misc/pokegear_sprites.2bpp.lz"
+INCBIN "gfx/pokegear/pokegear_sprites.2bpp.lz"
; 9150d
RadioTilemapRLE: ; 9150d
@@ -1619,8 +1619,8 @@
LoadStation_OaksPokemonTalk: ; 91753 (24:5753)
xor a ; OAKS_POKEMON_TALK
- ld [wd002], a
- ld [wd005], a
+ ld [wCurrentRadioLine], a
+ ld [wNumRadioLinesPrinted], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
@@ -1629,9 +1629,9 @@
LoadStation_PokedexShow: ; 91766 (24:5766)
ld a, POKEDEX_SHOW
- ld [wd002], a
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
@@ -1640,9 +1640,9 @@
LoadStation_PokemonMusic: ; 9177b (24:577b)
ld a, POKEMON_MUSIC
- ld [wd002], a
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
@@ -1651,9 +1651,9 @@
LoadStation_LuckyChannel: ; 91790 (24:5790)
ld a, LUCKY_CHANNEL
- ld [wd002], a
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
@@ -1662,9 +1662,9 @@
LoadStation_BuenasPassword: ; 917a5 (24:57a5)
ld a, BUENAS_PASSWORD
- ld [wd002], a
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
@@ -1682,9 +1682,9 @@
LoadStation_UnownRadio: ; 917d5 (24:57d5)
ld a, UNOWN_RADIO
- ld [wd002], a
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
@@ -1693,9 +1693,9 @@
LoadStation_PlacesAndPeople: ; 917ea (24:57ea)
ld a, PLACES_AND_PEOPLE
- ld [wd002], a
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
@@ -1704,9 +1704,9 @@
LoadStation_LetsAllSing: ; 917ff (24:57ff)
ld a, LETS_ALL_SING
- ld [wd002], a
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
@@ -1717,9 +1717,9 @@
LoadStation_RocketRadio: ; 91814
ld a, ROCKET_RADIO
- ld [wd002], a
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
@@ -1730,9 +1730,9 @@
LoadStation_PokeFluteRadio: ; 91829 (24:5829)
ld a, POKE_FLUTE_RADIO
- ld [wd002], a
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
@@ -1741,9 +1741,9 @@
LoadStation_EvolutionRadio: ; 9183e (24:583e)
ld a, EVOLUTION_RADIO
- ld [wd002], a
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld a, BANK(PlayRadioShow)
ld hl, PlayRadioShow
call Radio_BackUpFarCallParams
@@ -1855,20 +1855,20 @@
ld a, $e3
ld [rLCDC], a
call TownMap_GetCurrentLandmark
- ld [wd002], a
- ld [wd003], a
+ ld [wTownMapPlayerIconLandmark], a
+ ld [wTownMapCursorLandmark], a
xor a
ld [hBGMapMode], a
call .InitTilemap
call WaitBGMap2
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
call PokegearMap_InitPlayerIcon
- ld a, [wd003]
+ ld a, [wTownMapCursorLandmark]
call PokegearMap_InitCursor
ld a, c
- ld [wd004], a
+ ld [wTownMapCursorObjectPointer], a
ld a, b
- ld [wd005], a
+ ld [wTownMapCursorObjectPointer + 1], a
ld b, SCGB_POKEGEAR_PALS
call GetSGBLayout
call SetPalettes
@@ -1880,7 +1880,7 @@
call DelayFrame
.dmg
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
cp KANTO_LANDMARK
jr nc, .kanto
ld d, KANTO_LANDMARK - 1
@@ -1925,7 +1925,7 @@
jr .loop
.pressed_up
- ld hl, wd003
+ ld hl, wTownMapCursorLandmark
ld a, [hl]
cp d
jr c, .okay
@@ -1938,7 +1938,7 @@
jr .next
.pressed_down
- ld hl, wd003
+ ld hl, wTownMapCursorLandmark
ld a, [hl]
cp e
jr nz, .okay2
@@ -1951,13 +1951,13 @@
.next
push de
- ld a, [wd003]
+ ld a, [wTownMapCursorLandmark]
call PokegearMap_UpdateLandmarkName
- ld a, [wd004]
+ ld a, [wTownMapCursorObjectPointer]
ld c, a
- ld a, [wd005]
+ ld a, [wTownMapCursorObjectPointer + 1]
ld b, a
- ld a, [wd003]
+ ld a, [wTownMapCursorLandmark]
call PokegearMap_UpdateCursorPosition
pop de
jr .loop2
@@ -1964,7 +1964,7 @@
; 91a04
.InitTilemap: ; 91a04
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
cp KANTO_LANDMARK
jr nc, .kanto2
ld e, $0
@@ -1992,7 +1992,7 @@
call ByteFill
hlcoord 19, 2
ld [hl], $17
- ld a, [wd003]
+ ld a, [wTownMapCursorLandmark]
call PokegearMap_UpdateLandmarkName
callba TownMapPals
ret
@@ -2147,7 +2147,7 @@
jr .exit
.pressedA
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
ld l, a
ld h, 0
add hl, hl
@@ -2155,7 +2155,7 @@
add hl, de
ld a, [hl]
.exit
- ld [wd002], a
+ ld [wTownMapPlayerIconLandmark], a
pop af
ld [hInMenu], a
call ClearBGPalettes
@@ -2165,7 +2165,7 @@
ld [hBGMapAddress], a
ld a, VBGMap0 / $100
ld [hBGMapAddress + 1], a
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
ld e, a
ret
@@ -2186,7 +2186,7 @@
ret
.ScrollNext:
- ld hl, wd002
+ ld hl, wTownMapPlayerIconLandmark
ld a, [hl]
cp d
jr nz, .NotAtEndYet
@@ -2200,7 +2200,7 @@
jr .Finally
.ScrollPrev:
- ld hl, wd002
+ ld hl, wTownMapPlayerIconLandmark
ld a, [hl]
cp e
jr nz, .NotAtStartYet
@@ -2269,7 +2269,7 @@
.Name:
; We need the map location of the default flypoint
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
ld l, a
ld h, 0
add hl, hl ; two bytes per flypoint
@@ -2285,7 +2285,7 @@
; 91c17
GetMapCursorCoordinates: ; 91c17
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
ld l, a
ld h, $0
add hl, hl
@@ -2293,9 +2293,9 @@
add hl, de
ld e, [hl]
callba GetLandmarkCoords
- ld a, [wd003]
+ ld a, [wTownMapCursorCoordinates]
ld c, a
- ld a, [wd004]
+ ld a, [wTownMapCursorCoordinates + 1]
ld b, a
ld hl, $4
add hl, bc
@@ -2389,8 +2389,7 @@
ld c, a
call GetWorldMapLocation
; If we're not in a valid location, i.e. Pokecenter floor 2F,
-
-; the backup map information is used
+; the backup map information is used.
cp SPECIAL_MAP
jr nz, .CheckRegion
ld a, [BackupMapGroup]
@@ -2399,7 +2398,7 @@
ld c, a
call GetWorldMapLocation
.CheckRegion:
-; The first 46 locations are part of Johto. The rest are in Kanto
+; The first 46 locations are part of Johto. The rest are in Kanto.
cp KANTO_LANDMARK
jr nc, .KantoFlyMap
.JohtoFlyMap:
@@ -2407,10 +2406,10 @@
push af
; Start from New Bark Town
ld a, FLY_NEW_BARK
- ld [wd002], a
+ ld [wTownMapPlayerIconLandmark], a
; Flypoints begin at New Bark Town...
ld [StartFlypoint], a
-; ..and end at Silver Cave
+; ..and end at Silver Cave.
ld a, FLY_MT_SILVER
ld [EndFlypoint], a
; Fill out the map
@@ -2422,17 +2421,13 @@
.KantoFlyMap:
; The event that there are no flypoints enabled in a map is not
-
; accounted for. As a result, if you attempt to select a flypoint
; when there are none enabled, the game will crash. Additionally,
-
; the flypoint selection has a default starting point that
-; can be flown to even if none are enabled
-
+; can be flown to even if none are enabled.
; To prevent both of these things from happening when the player
; enters Kanto, fly access is restricted until Indigo Plateau is
-
-; visited and its flypoint enabled
+; visited and its flypoint enabled.
push af
ld c, SPAWN_INDIGO
call HasVisitedSpawn
@@ -2447,9 +2442,8 @@
ld a, FLY_INDIGO
ld [EndFlypoint], a
; Because Indigo Plateau is the first flypoint the player
-
-; visits, it's made the default flypoint
- ld [wd002], a
+; visits, it's made the default flypoint.
+ ld [wTownMapPlayerIconLandmark], a
; Fill out the map
call FillKantoMap
call .MapHud
@@ -2462,7 +2456,7 @@
; Start from New Bark Town
ld a, FLY_NEW_BARK
- ld [wd002], a
+ ld [wTownMapPlayerIconLandmark], a
; Flypoints begin at New Bark Town...
ld [StartFlypoint], a
; ..and end at Silver Cave
@@ -2477,9 +2471,9 @@
call TownMapBGUpdate
call TownMapMon
ld a, c
- ld [wd003], a
+ ld [wTownMapCursorCoordinates], a
ld a, b
- ld [wd004], a
+ ld [wTownMapCursorCoordinates + 1], a
ret
; 91d11
@@ -2486,12 +2480,12 @@
_Area: ; 91d11
; e: Current landmark
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
push af
- ld a, [wd003]
+ ld a, [wTownMapCursorLandmark]
push af
ld a, e
- ld [wd002], a
+ ld [wTownMapPlayerIconLandmark], a
call ClearSprites
xor a
ld [hBGMapMode], a
@@ -2545,9 +2539,9 @@
.a_b
call ClearSprites
pop af
- ld [wd003], a
+ ld [wTownMapCursorLandmark], a
pop af
- ld [wd002], a
+ ld [wTownMapPlayerIconLandmark], a
ret
; 91d9b
@@ -2636,7 +2630,7 @@
; 91e1e
.GetAndPlaceNest: ; 91e1e
- ld [wd003], a
+ ld [wTownMapCursorLandmark], a
ld e, a
callba FindNest ; load nest landmarks into TileMap[0,0]
decoord 0, 0
@@ -2678,7 +2672,7 @@
.HideNestsShowPlayer: ; 91e5a
call .CheckPlayerLocation
ret c
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
ld e, a
callba GetLandmarkCoords
ld c, e
@@ -2731,22 +2725,21 @@
.CheckPlayerLocation: ; 91ea9
; Don't show the player's sprite if you're
-
; not in the same region as what's currently
; on the screen.
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
cp FAST_SHIP
jr z, .johto
cp KANTO_LANDMARK
jr c, .johto
.kanto
- ld a, [wd003]
+ ld a, [wTownMapCursorLandmark]
and a
jr z, .clear
jr .ok
.johto
- ld a, [wd003]
+ ld a, [wTownMapCursorLandmark]
and a
jr nz, .clear
.ok
@@ -2764,7 +2757,7 @@
; 91ed0
.GetPlayerOrFastShipIcon: ; 91ed0
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
cp FAST_SHIP
jr z, .FastShip
callba GetPlayerIcon
@@ -2910,7 +2903,7 @@
callba GetSpeciesIcon
; Animation/palette
depixel 0, 0
- ld a, SPRITE_ANIM_INDEX_00
+ ld a, SPRITE_ANIM_INDEX_PARTY_MON
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_TILE_ID
add hl, bc
@@ -2977,11 +2970,11 @@
; 91fff
JohtoMap: ; 91fff
-INCBIN "gfx/misc/johto.bin"
+INCBIN "gfx/pokegear/johto.bin"
; 92168
KantoMap: ; 92168
-INCBIN "gfx/misc/kanto.bin"
+INCBIN "gfx/pokegear/kanto.bin"
; 922d1
PokedexNestIconGFX: ; 922d1
@@ -2991,7 +2984,7 @@
; XXX
xor a
- ld [wd002], a
+ ld [wTownMapPlayerIconLandmark], a
call ClearBGPalettes
call ClearTileMap
call ClearSprites
@@ -3019,9 +3012,9 @@
call TownMapBGUpdate
call TownMapMon
ld a, c
- ld [wd003], a
+ ld [wTownMapCursorCoordinates], a
ld a, b
- ld [wd004], a
+ ld [wTownMapCursorCoordinates + 1], a
ld b, SCGB_POKEGEAR_PALS
call GetSGBLayout
call SetPalettes
@@ -3045,7 +3038,7 @@
jr .finished_a_b
.pressedA
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
ld l, a
ld h, 0
add hl, hl
@@ -3053,7 +3046,7 @@
add hl, de
ld a, [hl]
.finished_a_b
- ld [wd002], a
+ ld [wTownMapPlayerIconLandmark], a
pop af
ld [hInMenu], a
call ClearBGPalettes
@@ -3063,7 +3056,7 @@
ld [hBGMapAddress], a
ld a, VBGMap0 / $100
ld [hBGMapAddress + 1], a
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
ld e, a
ret
@@ -3080,7 +3073,7 @@
ret
.down_right
- ld hl, wd002
+ ld hl, wTownMapPlayerIconLandmark
ld a, [hl]
cp FLY_INDIGO
jr c, .okay_dr
@@ -3090,7 +3083,7 @@
jr .continue
.up_left
- ld hl, wd002
+ ld hl, wTownMapPlayerIconLandmark
ld a, [hl]
and a
jr nz, .okay_ul
@@ -3098,7 +3091,7 @@
.okay_ul
dec [hl]
.continue
- ld a, [wd002]
+ ld a, [wTownMapPlayerIconLandmark]
cp KANTO_FLYPOINT
jr c, .johto
call FillKantoMap
--- a/engine/printer/serial.asm
+++ b/engine/printer/serial.asm
@@ -292,13 +292,13 @@
Printer_CopyPacket: ; 841e2 (21:41e2)
ld a, [hli]
- ld [wca82], a
+ ld [wPrinterData], a
ld a, [hli]
- ld [wca83], a
+ ld [wPrinterData + 1], a
ld a, [hli]
- ld [wca84], a
+ ld [wPrinterData + 2], a
ld a, [hli]
- ld [wca85], a
+ ld [wPrinterData + 3], a
ld a, [hli]
ld [wPrinterChecksum], a
ld a, [hl]
@@ -307,7 +307,7 @@
Printer_ResetData: ; 841fb (21:41fb)
xor a
- ld hl, wca82
+ ld hl, wPrinterData
ld [hli], a
ld [hli], a
ld [hli], a
@@ -326,7 +326,7 @@
Printer_ComputeChecksum: ; 84219 (21:4219)
ld hl, 0
ld bc, 4
- ld de, wca82
+ ld de, wPrinterData
call .ComputeChecksum
ld a, [wPrinterSendByteCounter]
ld c, a
@@ -476,10 +476,10 @@
dw Printer_DoNothing ; 00
dw Printer_Send0x33 ; 01
- dw Printer_Sendwca82 ; 02
- dw Printer_Sendwca83 ; 03
- dw Printer_Sendwca84 ; 04
- dw Printer_Sendwca85 ; 05
+ dw Printer_SendPrinterData1 ; 02
+ dw Printer_SendPrinterData2 ; 03
+ dw Printer_SendPrinterData3 ; 04
+ dw Printer_SendPrinterData4 ; 05
dw Printer_SendNextByte ; 06
dw Printer_SendwPrinterChecksumLo ; 07
dw Printer_SendwPrinterChecksumHi ; 08
@@ -524,26 +524,26 @@
call Printer_NextInstruction
ret
-Printer_Sendwca82: ; 84339 (21:4339)
- ld a, [wca82]
+Printer_SendPrinterData1: ; 84339 (21:4339)
+ ld a, [wPrinterData]
call Printer_SerialSend
call Printer_NextInstruction
ret
-Printer_Sendwca83: ; 84343 (21:4343)
- ld a, [wca83]
+Printer_SendPrinterData2: ; 84343 (21:4343)
+ ld a, [wPrinterData + 1]
call Printer_SerialSend
call Printer_NextInstruction
ret
-Printer_Sendwca84: ; 8434d (21:434d)
- ld a, [wca84]
+Printer_SendPrinterData3: ; 8434d (21:434d)
+ ld a, [wPrinterData + 2]
call Printer_SerialSend
call Printer_NextInstruction
ret
-Printer_Sendwca85: ; 84357 (21:4357)
- ld a, [wca85]
+Printer_SendPrinterData4: ; 84357 (21:4357)
+ ld a, [wPrinterData + 3]
call Printer_SerialSend
call Printer_NextInstruction
ret
--- a/engine/printnum.asm
+++ b/engine/printnum.asm
@@ -275,7 +275,7 @@
dec e
ret nz
inc hl
- ld [hl], "·"
+ ld [hl], "<DOT>"
ret
.PrintLeadingZero: ; c644
--- a/engine/radio.asm
+++ b/engine/radio.asm
@@ -234,7 +234,7 @@
jr z, .done
.next
dec hl
- ld de, WILDMON_GRASS_STRUCTURE_LENGTH
+ ld de, GRASS_WILDDATA_LENGTH
add hl, de
jr .loop
@@ -249,12 +249,12 @@
cp 3
jr z, .loop2
- ld bc, 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY
+ ld bc, 2 * NUM_GRASSMON
call AddNTimes
.loop3
; Choose one of the middle three Pokemon.
call Random
- and NUM_WILDMONS_PER_AREA_TIME_OF_DAY
+ and NUM_GRASSMON
cp 2
jr c, .loop3
cp 5
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -979,7 +979,7 @@
ret
GetScriptPerson:
- and a
+ and a ; PLAYER?
ret z
cp LAST_TALKED
ret z
@@ -1355,19 +1355,19 @@
; param (DecimalParam)
ld hl, EarthquakeMovement
- ld de, wd002
+ ld de, wEarthquakeMovementDataBuffer
ld bc, EarthquakeMovementEnd - EarthquakeMovement
call CopyBytes
call GetScriptByte
- ld [wd003], a
- and (1 << 6) - 1
- ld [wd005], a
+ ld [wEarthquakeMovementDataBuffer + 1], a
+ and %00111111
+ ld [wEarthquakeMovementDataBuffer + 3], a
ld b, BANK(.script)
ld de, .script
jp ScriptCall
.script
- applymovement PLAYER, wd002
+ applymovement PLAYER, wEarthquakeMovementDataBuffer
end
EarthquakeMovement:
@@ -2170,7 +2170,7 @@
ld b, a
push bc
inc hl
- ld bc, MAIL_MAX_LENGTH
+ ld bc, MAIL_MSG_LENGTH
ld de, wd002
ld a, [ScriptBank]
call FarCopyBytes
@@ -2668,7 +2668,7 @@
call GetScriptByte
ld [YCoord], a
ld a, -1
- ld [wd001], a
+ ld [DefaultSpawnpoint], a
ld a, MAPSETUP_WARP
ld [hMapEntryMethod], a
ld a, 1
@@ -2681,7 +2681,7 @@
call GetScriptByte
call GetScriptByte
ld a, -1
- ld [wd001], a
+ ld [DefaultSpawnpoint], a
ld a, MAPSETUP_BADWARP
ld [hMapEntryMethod], a
ld a, 1
@@ -2955,9 +2955,9 @@
ld e, [hl]
ld d, $0
ld hl, wScriptStack
- add hl,de
- add hl,de
- add hl,de
+ add hl, de
+ add hl, de
+ add hl, de
ld a, [hli]
ld b, a
and " "
--- a/engine/selectmenu.asm
+++ b/engine/selectmenu.asm
@@ -94,7 +94,7 @@
dec a
cp [hl]
jr nc, .NotEnoughItems
- ld [wd107], a
+ ld [CurItemQuantity], a
and a
ret
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -1067,7 +1067,7 @@
push bc
push af
depixel 12, 13
- ld a, SPRITE_ANIM_INDEX_SLOT_GOLEM
+ ld a, SPRITE_ANIM_INDEX_SLOTS_GOLEM
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_0E
add hl, bc
@@ -2211,17 +2211,17 @@
; 9335d
SlotsTilemap: ; 9335d
-INCBIN "gfx/slots.tilemap"
+INCBIN "gfx/slots/slots.tilemap"
; 9344d
Slots1LZ: ; 9344d
-INCBIN "gfx/slots_1.2bpp.lz"
+INCBIN "gfx/slots/slots_1.2bpp.lz"
; 935cd
Slots2LZ: ; 935cd
-INCBIN "gfx/slots_2.2bpp.lz"
+INCBIN "gfx/slots/slots_2.2bpp.lz"
; 9382d
Slots3LZ: ; 9382d
-INCBIN "gfx/slots_3.2bpp.lz"
+INCBIN "gfx/slots/slots_3.2bpp.lz"
; 93a3d
--- a/engine/spawn_points.asm
+++ b/engine/spawn_points.asm
@@ -42,17 +42,16 @@
LoadSpawnPoint: ; 1531f
- ; loads the spawn point in wd001
+ ; loads the spawn point in DefaultSpawnpoint
push hl
push de
- ld a, [wd001]
+ ld a, [DefaultSpawnpoint]
cp SPAWN_N_A
jr z, .spawn_n_a
ld l, a
ld h, 0
-rept 2 ; multiply hl by 4
- add hl,hl
-endr
+ add hl, hl
+ add hl, hl
ld de, SpawnPoints
add hl, de
ld a, [hli]
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -2,9 +2,9 @@
Special:: ; c01b
; Run script special de.
ld hl, SpecialsPointers
- add hl,de
- add hl,de
- add hl,de
+ add hl, de
+ add hl, de
+ add hl, de
ld b, [hl]
inc hl
ld a, [hli]
@@ -618,9 +618,9 @@
Special_FadeOutMusic: ; c48f
ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld a, $2
ld [MusicFade], a
ret
--- a/engine/sprite_anims.asm
+++ b/engine/sprite_anims.asm
@@ -13,54 +13,54 @@
; 8d25b
.Jumptable: ; 8d25b (23:525b)
-
- dw .Null ; null
- dw .one ; bouncing mon icon
- dw .two ; bouncing mon icon, selected
- dw .three ; bouncing mon icon, menu open
- dw .four
+; entries correspond to SPRITE_ANIM_SEQ_* constants
+ dw .Null
+ dw .PartyMon
+ dw .PartyMonSwitch
+ dw .PartyMonSelected
+ dw .sprite_anim_seq_04
dw .namingscreencursor
- dw .GameFreakLogo ; Game Freak logo
- dw .seven
- dw .eight
- dw .SlotsGolem ; Something to do with slots
- dw .SlotsChansey ; Something to do with slots
- dw .SlotsChanseyEgg ; Something to do with slots
- dw .mailcompositioncursor ; blinking cursor
- dw .thirteen
- dw .fourteen
- dw .fifteen
- dw .sixteen
- dw .seventeen
- dw .eighteen
- dw .EggShell ; finish egg hatching animation
- dw .RadioTuningKnob ; radio tuning knob
- dw .twentyone ; cut grass leaves
- dw .FlyFrom ; flying sprite
- dw .FlyLeaf ; flying leaves
- dw .FlyTo ; fly to
- dw .twentyfive
- dw .twentysix
- dw .twentyseven
- dw .twentyeight
- dw .twentynine ; intro suicune
- dw .thirty ; intro pichu wooper
- dw .thirtyone ; celebi
- dw .thirtytwo ; intro unown
- dw .thirtythree ; intro unown F with suicune leaping up
- dw .thirtyfour ; intro suicune facing away from us
+ dw .GameFreakLogo
+ dw .GSIntroStar
+ dw .GSIntroSparkle
+ dw .SlotsGolem
+ dw .SlotsChansey
+ dw .SlotsChanseyEgg
+ dw .MailCursor
+ dw .sprite_anim_seq_0D
+ dw .sprite_anim_seq_0E
+ dw .sprite_anim_seq_0F
+ dw .TradePokeBall
+ dw .TradeTubeBulge
+ dw .TrademonInTube
+ dw .RevealNewMon
+ dw .RadioTuningKnob
+ dw .CutLeaves
+ dw .FlyFrom
+ dw .FlyLeaf
+ dw .FlyTo
+ dw .sprite_anim_seq_19
+ dw .sprite_anim_seq_1A
+ dw .sprite_anim_seq_1B
+ dw .sprite_anim_seq_1C
+ dw .IntroSuicune
+ dw .IntroPichuWooper
+ dw .Celebi
+ dw .IntroUnown
+ dw .IntroUnownF
+ dw .IntroSuicuneAway
.Null: ; 8d2a1 (23:52a1)
ret
-.one ; 8d2a2 (23:52a2)
+.PartyMon ; 8d2a2 (23:52a2)
ld a, [wMenuCursorY]
ld hl, SPRITEANIMSTRUCT_INDEX
add hl, bc
cp [hl]
- jr z, .two
+ jr z, .PartyMonSwitch
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
@@ -71,7 +71,7 @@
ld [hl], $0
ret
-.two ; 8d2b9 (23:52b9)
+.PartyMonSwitch ; 8d2b9 (23:52b9)
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld [hl], 8 * 3
@@ -113,7 +113,7 @@
ld [hl], a
ret
-.three ; 8d2ea (23:52ea)
+.PartyMonSelected ; 8d2ea (23:52ea)
ld a, [wMenuCursorY]
ld hl, SPRITEANIMSTRUCT_INDEX
@@ -132,7 +132,7 @@
ld [hl], 8 * 3
ret
-.four ; 8d302 (23:5302)
+.sprite_anim_seq_04 ; 8d302 (23:5302)
call .AnonymousJumptable
jp hl
; 8d306 (23:5306)
@@ -203,7 +203,7 @@
ret
; 8d35a
-.twentyfive ; 8d35a (23:535a)
+.sprite_anim_seq_19 ; 8d35a (23:535a)
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
@@ -221,7 +221,7 @@
callab NamingScreen_AnimateCursor
ret
-.mailcompositioncursor ; 8d373 (23:5373)
+.MailCursor ; 8d373 (23:5373)
callab ComposeMail_AnimateCursor
ret
@@ -229,7 +229,7 @@
callab GameFreakLogoJumper
ret
-.seven ; 8d381 (23:5381)
+.GSIntroStar ; 8d381 (23:5381)
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
@@ -279,7 +279,7 @@
call DeinitializeSprite
ret
-.eight ; 8d3c3 (23:53c3)
+.GSIntroSparkle ; 8d3c3 (23:53c3)
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hli]
@@ -404,33 +404,33 @@
ld [hl], a
ret
-.thirteen ; 8d46e (23:546e)
+.sprite_anim_seq_0D ; 8d46e (23:546e)
callab ret_e00ed
ret
-.fifteen ; 8d475 (23:5475)
+.sprite_anim_seq_0F ; 8d475 (23:5475)
callab AnimatePokegearModeIndicatorArrow
ret
-.fourteen ; 8d47c (23:547c)
+.sprite_anim_seq_0E ; 8d47c (23:547c)
callab DummyGame_InterpretJoypad_AnimateCursor
ret
-.sixteen ; 8d483 (23:5483)
+.TradePokeBall ; 8d483 (23:5483)
call .AnonymousJumptable
jp hl
; 8d487 (23:5487)
; Anonymous dw (see .AnonymousJumptable)
- dw .sixteen_zero
- dw .sixteen_one
- dw .sixteen_two
- dw .sixteen_three
- dw .sixteen_four
- dw .sixteen_five
+ dw .TradePokeBall_zero
+ dw .TradePokeBall_one
+ dw .TradePokeBall_two
+ dw .TradePokeBall_three
+ dw .TradePokeBall_four
+ dw .TradePokeBall_five
; 8d493
-.sixteen_zero ; 8d493
+.TradePokeBall_zero ; 8d493
ld a, SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_0
call _ReinitSpriteAnimFrame
@@ -444,7 +444,7 @@
ret
; 8d4a5
-.sixteen_two ; 8d4a5
+.TradePokeBall_two ; 8d4a5
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
@@ -460,7 +460,7 @@
add hl, bc
ld [hl], $40
-.sixteen_three ; 8d4b8
+.TradePokeBall_three ; 8d4b8
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
@@ -478,10 +478,10 @@
.asm_8d4cd
ld de, SFX_GOT_SAFARI_BALLS
call PlaySFX
- jr .sixteen_five
+ jr .TradePokeBall_five
; 8d4d5
-.sixteen_one ; 8d4d5
+.TradePokeBall_one ; 8d4d5
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
ld [hl], $4
@@ -496,7 +496,7 @@
ret
; 8d4e8
-.sixteen_four ; 8d4e8
+.TradePokeBall_four ; 8d4e8
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld a, [hl]
@@ -542,12 +542,12 @@
call .IncrementJumptableIndex
ret
-.sixteen_five ; 8d526
+.TradePokeBall_five ; 8d526
call DeinitializeSprite
ret
; 8d52a
-.seventeen ; 8d52a (23:552a)
+.TradeTubeBulge ; 8d52a (23:552a)
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
@@ -565,11 +565,11 @@
call DeinitializeSprite
ret
-.eighteen ; 8d543 (23:5543)
+.TrademonInTube ; 8d543 (23:5543)
callab TradeAnim_AnimateTrademonInTube
ret
-.EggShell: ; 8d54a (23:554a)
+.RevealNewMon: ; 8d54a (23:554a)
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
@@ -610,7 +610,7 @@
callab AnimateTuningKnob
ret
-.twentyone ; 8d57f (23:557f)
+.CutLeaves ; 8d57f (23:557f)
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld e, [hl]
@@ -749,15 +749,15 @@
ld [hl], a
ret
-.twentyseven ; 8d630 (23:5630)
+.sprite_anim_seq_1B ; 8d630 (23:5630)
callba Function108bc7
ret
-.twentyeight ; 8d637 (23:5637)
+.sprite_anim_seq_1C ; 8d637 (23:5637)
callba Function108be0
ret
-.twentynine ; 8d63e (23:563e)
+.IntroSuicune ; 8d63e (23:563e)
ld a, [wcf65]
and a
jr nz, .asm_8d645
@@ -784,7 +784,7 @@
call _ReinitSpriteAnimFrame
ret
-.thirty ; 8d666 (23:5666)
+.IntroPichuWooper ; 8d666 (23:5666)
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
@@ -803,7 +803,7 @@
.asm_8d67f
ret
-.thirtytwo ; 8d680 (23:5680)
+.IntroUnown ; 8d680 (23:5680)
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
ld d, [hl]
@@ -830,7 +830,7 @@
ld [hl], a
ret
-.thirtythree ; 8d6a2 (23:56a2)
+.IntroUnownF ; 8d6a2 (23:56a2)
ld a, [wcf64]
cp $40
ret nz
@@ -838,7 +838,7 @@
call _ReinitSpriteAnimFrame
ret
-.thirtyfour ; 8d6ae (23:56ae)
+.IntroSuicuneAway ; 8d6ae (23:56ae)
ld hl, SPRITEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
@@ -846,11 +846,11 @@
ld [hl], a
ret
-.twentysix ; 8d6b7 (23:56b7)
+.sprite_anim_seq_1A ; 8d6b7 (23:56b7)
callba AnimateEZChatCursor
ret
-.thirtyone ; 8d6be (23:56be)
+.Celebi ; 8d6be (23:56be)
callba UpdateCelebiPosition
ret
--- a/engine/sprites.asm
+++ b/engine/sprites.asm
@@ -551,51 +551,97 @@
; 8d1c4
SpriteAnimSeqData: ; 8d1c4
+; entries correspond to SPRITE_ANIM_INDEX_* constants
; frameset sequence, tile
- db SPRITE_ANIM_FRAMESET_PARTY_MON, SPRITE_ANIM_SEQ_01, $00 ; 00
- db SPRITE_ANIM_FRAMESET_07, SPRITE_ANIM_SEQ_04, $00 ; 01
- db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_05, $05 ; 02
- db SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO, SPRITE_ANIM_SEQ_GAMEFREAK_LOGO, $00 ; 03
- db SPRITE_ANIM_FRAMESET_0B, SPRITE_ANIM_SEQ_07, $06 ; 04 gs intro star
- db SPRITE_ANIM_FRAMESET_0C, SPRITE_ANIM_SEQ_08, $06 ; 05 gs intro sparkle
- db SPRITE_ANIM_FRAMESET_SLOTS_GOLEM, SPRITE_ANIM_SEQ_SLOT_GOLEM, $07 ; 06 slots golem
- db SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY, SPRITE_ANIM_SEQ_SLOTS_CHANSEY, $07 ; 07 slots chansey
- db SPRITE_ANIM_FRAMESET_SLOTS_EGG, SPRITE_ANIM_SEQ_SLOTS_EGG, $07 ; 08 slots egg
- db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_0C, $05 ; 09
- db SPRITE_ANIM_FRAMESET_WALK_CYCLE, SPRITE_ANIM_SEQ_NULL, $00 ; 0a walk cycle
- db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0D, $08 ; 0b
- db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0E, $08 ; 0c
- db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0F, $08 ; 0d
- db SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL, SPRITE_ANIM_SEQ_10, $00 ; 0e
- db SPRITE_ANIM_FRAMESET_TRADE_POOF, SPRITE_ANIM_SEQ_NULL, $00 ; 0f
- db SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE, SPRITE_ANIM_SEQ_11, $00 ; 10
- db SPRITE_ANIM_FRAMESET_TRADEMON_ICON, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00 ; 11
- db SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00 ; 12
- db SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT, SPRITE_ANIM_SEQ_13, $00 ; 13
- db SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB, SPRITE_ANIM_SEQ_14, $00 ; 14 radio tuning knob
- db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED, SPRITE_ANIM_SEQ_NULL, $00 ; 15 chris on magnet train
- db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_15, $00 ; 16 leaves when cutting down a tree
- db SPRITE_ANIM_FRAMESET_CUT_TREE, SPRITE_ANIM_SEQ_NULL, $00 ; 17
- db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_FLY_LEAF, $00 ; 18 flying leaves
- db SPRITE_ANIM_FRAMESET_EGG_CRACK, SPRITE_ANIM_SEQ_NULL, $00 ; 19
- db SPRITE_ANIM_FRAMESET_24, SPRITE_ANIM_SEQ_19, $00 ; 1a
- db SPRITE_ANIM_FRAMESET_HEADBUTT, SPRITE_ANIM_SEQ_NULL, $00 ; 1b headbutt
- db SPRITE_ANIM_FRAMESET_EGG_HATCH, SPRITE_ANIM_SEQ_13, $00 ; 1c
- db SPRITE_ANIM_FRAMESET_26, SPRITE_ANIM_SEQ_1A, $00 ; 1d
- db SPRITE_ANIM_FRAMESET_BLUE_WALK, SPRITE_ANIM_SEQ_NULL, $00 ; 1e kris on map
- db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE, SPRITE_ANIM_SEQ_NULL, $00 ; 1f kris on magnet train
- db SPRITE_ANIM_FRAMESET_2F, SPRITE_ANIM_SEQ_NULL, $00 ; 20
- db SPRITE_ANIM_FRAMESET_30, SPRITE_ANIM_SEQ_NULL, $00 ; 21
- db SPRITE_ANIM_FRAMESET_31, SPRITE_ANIM_SEQ_NULL, $00 ; 22
- db SPRITE_ANIM_FRAMESET_32, SPRITE_ANIM_SEQ_1B, $00 ; 23
- db SPRITE_ANIM_FRAMESET_33, SPRITE_ANIM_SEQ_1C, $00 ; 24
- db SPRITE_ANIM_FRAMESET_34, SPRITE_ANIM_SEQ_NULL, $00 ; 25
- db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE, SPRITE_ANIM_SEQ_1D, $00 ; 26
- db SPRITE_ANIM_FRAMESET_INTRO_PICHU, SPRITE_ANIM_SEQ_1E, $00 ; 27
- db SPRITE_ANIM_FRAMESET_INTRO_WOOPER, SPRITE_ANIM_SEQ_1E, $00 ; 28
- db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1, SPRITE_ANIM_SEQ_20, $00 ; 29 intro unown
- db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F, SPRITE_ANIM_SEQ_21, $00 ; 2a
- db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY, SPRITE_ANIM_SEQ_22, $00 ; 2b
+; SPRITE_ANIM_INDEX_PARTY_MON
+ db SPRITE_ANIM_FRAMESET_PARTY_MON, SPRITE_ANIM_SEQ_PARTY_MON, $00
+; SPRITE_ANIM_INDEX_01
+ db SPRITE_ANIM_FRAMESET_07, SPRITE_ANIM_SEQ_04, $00
+; SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
+ db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR, $05
+; SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
+ db SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO, SPRITE_ANIM_SEQ_GAMEFREAK_LOGO, $00
+; SPRITE_ANIM_INDEX_GS_INTRO_STAR
+ db SPRITE_ANIM_FRAMESET_GS_INTRO_STAR, SPRITE_ANIM_SEQ_GS_INTRO_STAR, $06
+; SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE
+ db SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE, SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE, $06
+; SPRITE_ANIM_INDEX_SLOTS_GOLEM
+ db SPRITE_ANIM_FRAMESET_SLOTS_GOLEM, SPRITE_ANIM_SEQ_SLOTS_GOLEM, $07
+; SPRITE_ANIM_INDEX_SLOTS_CHANSEY
+ db SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY, SPRITE_ANIM_SEQ_SLOTS_CHANSEY, $07
+; SPRITE_ANIM_INDEX_SLOTS_EGG
+ db SPRITE_ANIM_FRAMESET_SLOTS_EGG, SPRITE_ANIM_SEQ_SLOTS_EGG, $07
+; SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
+ db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_MAIL_CURSOR, $05
+; SPRITE_ANIM_INDEX_RED_WALK
+ db SPRITE_ANIM_FRAMESET_RED_WALK, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_0B
+ db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0D, $08
+; SPRITE_ANIM_INDEX_DUMMY_GAME
+ db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0E, $08
+; SPRITE_ANIM_INDEX_0D
+ db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0F, $08
+; SPRITE_ANIM_INDEX_TRADE_POKE_BALL
+ db SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL, SPRITE_ANIM_SEQ_TRADE_POKE_BALL, $00
+; SPRITE_ANIM_INDEX_TRADE_POOF
+ db SPRITE_ANIM_FRAMESET_TRADE_POOF, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
+ db SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE, SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE, $00
+; SPRITE_ANIM_INDEX_TRADEMON_ICON
+ db SPRITE_ANIM_FRAMESET_TRADEMON_ICON, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00
+; SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
+ db SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00
+; SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT
+ db SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT, SPRITE_ANIM_SEQ_REVEAL_NEW_MON, $00
+; SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB
+ db SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB, SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB, $00
+; SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
+ db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_LEAF
+ db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_CUT_LEAVES, $00
+; SPRITE_ANIM_INDEX_CUT_TREE
+ db SPRITE_ANIM_FRAMESET_CUT_TREE, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_FLY_LEAF
+ db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_FLY_LEAF, $00
+; SPRITE_ANIM_INDEX_EGG_CRACK
+ db SPRITE_ANIM_FRAMESET_EGG_CRACK, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_1A
+ db SPRITE_ANIM_FRAMESET_24, SPRITE_ANIM_SEQ_19, $00
+; SPRITE_ANIM_INDEX_HEADBUTT
+ db SPRITE_ANIM_FRAMESET_HEADBUTT, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_EGG_HATCH
+ db SPRITE_ANIM_FRAMESET_EGG_HATCH, SPRITE_ANIM_SEQ_REVEAL_NEW_MON, $00
+; SPRITE_ANIM_INDEX_1D
+ db SPRITE_ANIM_FRAMESET_26, SPRITE_ANIM_SEQ_1A, $00
+; SPRITE_ANIM_INDEX_BLUE_WALK
+ db SPRITE_ANIM_FRAMESET_BLUE_WALK, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
+ db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_20
+ db SPRITE_ANIM_FRAMESET_2F, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_21
+ db SPRITE_ANIM_FRAMESET_30, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_22
+ db SPRITE_ANIM_FRAMESET_31, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_23
+ db SPRITE_ANIM_FRAMESET_32, SPRITE_ANIM_SEQ_1B, $00
+; SPRITE_ANIM_INDEX_24
+ db SPRITE_ANIM_FRAMESET_33, SPRITE_ANIM_SEQ_1C, $00
+; SPRITE_ANIM_INDEX_25
+ db SPRITE_ANIM_FRAMESET_34, SPRITE_ANIM_SEQ_NULL, $00
+; SPRITE_ANIM_INDEX_INTRO_SUICUNE
+ db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE, SPRITE_ANIM_SEQ_INTRO_SUICUNE, $00
+; SPRITE_ANIM_INDEX_INTRO_PICHU
+ db SPRITE_ANIM_FRAMESET_INTRO_PICHU, SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER, $00
+; SPRITE_ANIM_INDEX_INTRO_WOOPER
+ db SPRITE_ANIM_FRAMESET_INTRO_WOOPER, SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER, $00
+; SPRITE_ANIM_INDEX_INTRO_UNOWN
+ db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1, SPRITE_ANIM_SEQ_INTRO_UNOWN, $00
+; SPRITE_ANIM_INDEX_INTRO_UNOWN_F
+ db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F, SPRITE_ANIM_SEQ_INTRO_UNOWN_F, $00
+; SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
+ db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY, SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY, $00
+; SPRITE_ANIM_INDEX_CELEBI
db SPRITE_ANIM_FRAMESET_CELEBI_LEFT, SPRITE_ANIM_SEQ_NULL, $00 ; 2c
; 8d24b
--- a/engine/startmenu.asm
+++ b/engine/startmenu.asm
@@ -16,7 +16,7 @@
call LoadMenuDataHeader
call .SetUpMenuItems
- ld a, [wd0d2]
+ ld a, [wBattleMenuCursorBuffer]
ld [wMenuCursorBuffer], a
call .DrawMenuAccount_
call DrawVariableLengthMenuBox
@@ -32,7 +32,7 @@
call UpdateSprites
call UpdateTimePals
call .SetUpMenuItems
- ld a, [wd0d2]
+ ld a, [wBattleMenuCursorBuffer]
ld [wMenuCursorBuffer], a
.Select:
@@ -40,7 +40,7 @@
jr c, .Exit
call .DrawMenuAccount
ld a, [wMenuCursorBuffer]
- ld [wd0d2], a
+ ld [wBattleMenuCursorBuffer], a
call PlayClickSFX
call PlaceHollowCursor
call .OpenMenu
@@ -614,7 +614,7 @@
pop af
jr c, .quit
pop hl
- ld a, [wd107]
+ ld a, [CurItemQuantity]
call TossItem
call PartyMonItemName
ld hl, .TossedThisMany
--- a/engine/stats_screen.asm
+++ b/engine/stats_screen.asm
@@ -3,7 +3,7 @@
cp LINK_MOBILE
jr nz, StatsScreenInit
- ld a, [wBattleMode] ; wd22d (aliases: EnemyMonEnd)
+ ld a, [wBattleMode]
and a
jr z, StatsScreenInit
jr _MobileStatsScreenInit
@@ -377,7 +377,7 @@
call .PlaceHPBar
xor a
ld [hBGMapMode], a
- ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
+ ld a, [CurBaseData]
ld [wd265], a
ld [CurSpecies], a
hlcoord 8, 0
@@ -401,7 +401,7 @@
hlcoord 9, 4
ld a, "/"
ld [hli], a
- ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
+ ld a, [CurBaseData]
ld [wd265], a
call GetPokemonName
call PlaceString
@@ -420,7 +420,7 @@
ld d, a
ld e, [hl]
callba ComputeHPBarPixels
- ld hl, wcda1
+ ld hl, wCurHPPal
call SetHPPal
ld b, SCGB_STATS_SCREEN_HP_PALS
call GetSGBLayout
@@ -453,7 +453,7 @@
ld bc, SCREEN_WIDTH
ld d, SCREEN_HEIGHT
.loop
- ld a, $31
+ ld a, "|"
ld [hl], a
add hl, bc
dec d
@@ -487,7 +487,7 @@
ret
StatsScreen_LoadGFX: ; 4dfb6 (13:5fb6)
- ld a, [BaseDexNo] ; wd236 (aliases: BaseDexNo)
+ ld a, [BaseDexNo]
ld [wd265], a
ld [CurSpecies], a
xor a
@@ -583,7 +583,7 @@
hlcoord 9, 8
ld de, SCREEN_WIDTH
ld b, 10
- ld a, $31
+ ld a, "|"
.vertical_divider
ld [hl], a
add hl, de
@@ -601,7 +601,7 @@
call .CalcExpToNextLevel
hlcoord 13, 13
lb bc, 3, 7
- ld de, Buffer1 ; wd1ea (aliases: MagikarpLength)
+ ld de, Buffer1
call PrintNum
ld de, .LevelUpStr
hlcoord 10, 12
@@ -649,14 +649,14 @@
ld a, [hQuotient + 1]
sbc [hl]
dec hl
- ld [Buffer2], a ; wd1eb (aliases: MovementType)
+ ld [Buffer2], a
ld a, [hQuotient]
sbc [hl]
- ld [Buffer1], a ; wd1ea (aliases: MagikarpLength)
+ ld [Buffer1], a
ret
.AlreadyAtMaxLevel:
- ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
+ ld hl, Buffer1
xor a
ld [hli], a
ld [hli], a
@@ -743,7 +743,7 @@
hlcoord 10, 8
ld de, SCREEN_WIDTH
ld b, 10
- ld a, $31
+ ld a, "|"
.BluePageVerticalDivider:
ld [hl], a
add hl, de
@@ -891,7 +891,7 @@
.PartyMon: ; 4e2bf (13:62bf)
ld a, [CurPartyMon]
- ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld hl, PartyMon1
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld b, h
@@ -918,7 +918,7 @@
ret
.Tempmon: ; 4e2ed (13:62ed)
- ld bc, TempMonSpecies ; wd10e (aliases: TempMon)
+ ld bc, TempMonSpecies
jr .CheckEggFaintedFrzSlp ; utterly pointless
.CheckEggFaintedFrzSlp: ; 4e2f2 (13:62f2)
@@ -973,7 +973,7 @@
EggStatsScreen: ; 4e33a
xor a
ld [hBGMapMode], a
- ld hl, wcda1
+ ld hl, wCurHPPal
call SetHPPal
ld b, SCGB_STATS_SCREEN_HP_PALS
call GetSGBLayout
--- a/engine/timeset.asm
+++ b/engine/timeset.asm
@@ -10,9 +10,9 @@
ld a, $10
ld [MusicFade], a
ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld c, 8
call DelayFrames
call RotateFourPalettesLeft
@@ -23,17 +23,17 @@
xor a
ld [hBGMapMode], a
call LoadStandardFont
- ld de, GFX_908fb
+ ld de, TimeSetBackgroundGFX
ld hl, VTiles2 tile $00
- lb bc, BANK(GFX_908fb), 1
+ lb bc, BANK(TimeSetBackgroundGFX), 1
call Request1bpp
- ld de, GFX_90903
+ ld de, TimeSetUpArrowGFX
ld hl, VTiles2 tile $01
- lb bc, BANK(GFX_90903), 1
+ lb bc, BANK(TimeSetUpArrowGFX), 1
call Request1bpp
- ld de, GFX_9090b
+ ld de, TimeSetDownArrowGFX
ld hl, VTiles2 tile $02
- lb bc, BANK(GFX_9090b), 1
+ lb bc, BANK(TimeSetDownArrowGFX), 1
call Request1bpp
call .ClearScreen
call WaitBGMap
@@ -396,12 +396,12 @@
db "@"
; 0x908fb
-GFX_908fb: ; 908fb
-INCBIN "gfx/unknown/0908fb.1bpp"
-GFX_90903: ; 90903
-INCBIN "gfx/unknown/090903.1bpp"
-GFX_9090b: ; 9090b
-INCBIN "gfx/unknown/09090b.1bpp"
+TimeSetBackgroundGFX: ; 908fb
+INCBIN "gfx/timeset/background.1bpp"
+TimeSetUpArrowGFX: ; 90903
+INCBIN "gfx/timeset/up_arrow.1bpp"
+TimeSetDownArrowGFX: ; 9090b
+INCBIN "gfx/timeset/down_arrow.1bpp"
; 90913
Special_SetDayOfWeek: ; 90913
@@ -409,13 +409,13 @@
push af
ld a, $1
ld [hInMenu], a
- ld de, GFX_90903
+ ld de, TimeSetUpArrowGFX
ld hl, VTiles1 tile $6f
- lb bc, BANK(GFX_90903), 1
+ lb bc, BANK(TimeSetUpArrowGFX), 1
call Request1bpp
- ld de, GFX_9090b
+ ld de, TimeSetDownArrowGFX
ld hl, VTiles1 tile $75
- lb bc, BANK(GFX_9090b), 1
+ lb bc, BANK(TimeSetDownArrowGFX), 1
call Request1bpp
xor a
ld [wTempDayOfWeek], a
--- a/engine/title.asm
+++ b/engine/title.asm
@@ -10,10 +10,10 @@
; Reset timing variables
ld hl, wJumptableIndex
- ld [hli], a ; cf63 ; Scene?
- ld [hli], a ; cf64
- ld [hli], a ; cf65 ; Timer lo
- ld [hl], a ; cf66 ; Timer hi
+ ld [hli], a ; wJumptableIndex
+ ld [hli], a ; wIntroSceneFrameCounter
+ ld [hli], a ; wTitleScreenTimer
+ ld [hl], a ; wTitleScreenTimer + 1
; Turn LCD off
call DisableLCD
@@ -145,12 +145,12 @@
; Update palette colors
ld hl, TitleScreenPalettes
ld de, UnknBGPals
- ld bc, 4 * 32
+ ld bc, 16 palettes
call CopyBytes
ld hl, TitleScreenPalettes
ld de, BGPals
- ld bc, 4 * 32
+ ld bc, 16 palettes
call CopyBytes
; Restore WRAM bank
--- a/engine/trade/animation.asm
+++ b/engine/trade/animation.asm
@@ -100,7 +100,7 @@
tradeanim_end
RunTradeAnimScript: ; 28fa1
- ld hl, wTradeAnimPointer
+ ld hl, wTradeAnimAddress
ld [hl], e
inc hl
ld [hl], d
@@ -294,7 +294,7 @@
; 29114
TradeAnim_AdvanceScriptPointer: ; 29114
- ld hl, wTradeAnimPointer
+ ld hl, wTradeAnimAddress
ld e, [hl]
inc hl
ld d, [hl]
@@ -1110,7 +1110,7 @@
TradeAnim_RockingBall: ; 2961b
depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_0E
+ ld a, SPRITE_ANIM_INDEX_TRADE_POKE_BALL
call _InitSpriteAnimStruct
call TradeAnim_AdvanceScriptPointer
ld a, $20
@@ -1121,7 +1121,7 @@
TradeAnim_DropBall: ; 2962c
depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_0E
+ ld a, SPRITE_ANIM_INDEX_TRADE_POKE_BALL
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_JUMPTABLE_INDEX
add hl, bc
@@ -1138,7 +1138,7 @@
TradeAnim_Poof: ; 29649
depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_0F
+ ld a, SPRITE_ANIM_INDEX_TRADE_POOF
call _InitSpriteAnimStruct
call TradeAnim_AdvanceScriptPointer
ld a, $10
@@ -1153,7 +1153,7 @@
ld a, %11100100 ; 3,2,1,0
call DmgToCgbObjPal0
depixel 5, 11
- ld a, SPRITE_ANIM_INDEX_10
+ ld a, SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
call _InitSpriteAnimStruct
call TradeAnim_AdvanceScriptPointer
ld a, $40
--- a/engine/trainer_card.asm
+++ b/engine/trainer_card.asm
@@ -448,7 +448,7 @@
ret nz
hlcoord 15, 12
ld a, [hl]
- xor %01010001 ; $7F <--> $2E
+ xor %01010001 ; $7F (space) <--> $2E (colon)
ld [hl], a
ret
@@ -606,11 +606,11 @@
db $1c | $80, $20, $24, $20 | $80
; 25523
-CardStatusGFX: INCBIN "gfx/misc/card_status.2bpp"
+CardStatusGFX: INCBIN "gfx/trainer_card/card_status.2bpp"
-LeaderGFX: INCBIN "gfx/misc/leaders.2bpp"
-LeaderGFX2: INCBIN "gfx/misc/leaders.2bpp"
-BadgeGFX: INCBIN "gfx/misc/badges.2bpp"
-BadgeGFX2: INCBIN "gfx/misc/badges.2bpp"
+LeaderGFX: INCBIN "gfx/trainer_card/leaders.2bpp"
+LeaderGFX2: INCBIN "gfx/trainer_card/leaders.2bpp"
+BadgeGFX: INCBIN "gfx/trainer_card/badges.2bpp"
+BadgeGFX2: INCBIN "gfx/trainer_card/badges.2bpp"
-CardRightCornerGFX: INCBIN "gfx/misc/card_right_corner.2bpp"
+CardRightCornerGFX: INCBIN "gfx/trainer_card/card_right_corner.2bpp"
--- a/engine/unowndex.asm
+++ b/engine/unowndex.asm
@@ -1,7 +1,7 @@
UpdateUnownDex: ; fba18
ld a, [UnownLetter]
ld c, a
- ld b, 26
+ ld b, NUM_UNOWN
ld hl, UnownDex
.loop
ld a, [hli]
--- a/engine/variables.asm
+++ b/engine/variables.asm
@@ -35,9 +35,9 @@
; 80671 (20:4671)
.VarActionTable: ; 80671
-; $00: copy [de] to StringBuffer2
-; $40: return address in de
-; $80: call function
+; RETVAR_STRBUF2: copy [de] to StringBuffer2
+; RETVAR_ADDR_DE: return address in de
+; RETVAR_EXECUTE: call function
dwb StringBuffer2, RETVAR_STRBUF2
dwb PartyCount, RETVAR_STRBUF2
dwb .BattleResult, RETVAR_EXECUTE
--- a/engine/warp_connection.asm
+++ b/engine/warp_connection.asm
@@ -184,7 +184,7 @@
ret z
.not_mt_moon_or_tin_tower
ld a, [wPrevWarp]
- ld [wDigWarp], a
+ ld [wDigWarpNumber], a
ld a, [wPrevMapGroup]
ld [wDigMapGroup], a
ld a, [wPrevMapNumber]
@@ -254,7 +254,7 @@
pop af
ld [rVBK], a
- ld a, $60
+ ld a, "<BLACK>"
ld bc, VBGMap1 - VBGMap0
hlbgcoord 0, 0
call ByteFill
--- a/engine/wildmons.asm
+++ b/engine/wildmons.asm
@@ -65,7 +65,7 @@
inc hl
inc hl
inc hl
- ld a, NUM_WILDMONS_PER_AREA_TIME_OF_DAY * 3
+ ld a, NUM_GRASSMON * 3
call .SearchMapForMon
jr nc, .next_grass
ld [de], a
@@ -73,7 +73,7 @@
.next_grass
pop hl
- ld bc, WILDMON_GRASS_STRUCTURE_LENGTH
+ ld bc, GRASS_WILDDATA_LENGTH
add hl, bc
jr .FindGrass
; 2a06e
--- a/event/celebi.asm
+++ b/event/celebi.asm
@@ -6,7 +6,7 @@
ld [VramState], a
call LoadCelebiGFX
depixel 0, 10, 7, 0
- ld a, SPRITE_ANIM_INDEX_2C
+ ld a, SPRITE_ANIM_INDEX_CELEBI
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_TILE_ID
add hl, bc
@@ -13,7 +13,7 @@
ld [hl], $84
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
add hl, bc
- ld [hl], SPRITE_ANIM_SEQ_1F
+ ld [hl], SPRITE_ANIM_SEQ_CELEBI
ld hl, SPRITEANIMSTRUCT_0F
add hl, bc
ld a, $80
--- a/event/elevator.asm
+++ b/event/elevator.asm
@@ -21,9 +21,9 @@
ld a, b
ld [wElevatorPointerBank], a
ld a, e
- ld [wElevatorPointerLo], a
+ ld [wElevatorPointer], a
ld a, d
- ld [wElevatorPointerHi], a
+ ld [wElevatorPointer + 1], a
call .LoadFloors
ret
; 1345a
@@ -31,7 +31,7 @@
.LoadFloors: ; 1345a
ld de, CurElevator
ld bc, 4
- ld hl, wElevatorPointerLo
+ ld hl, wElevatorPointer
ld a, [hli]
ld h, [hl]
ld l, a
@@ -52,7 +52,7 @@
; 1347d
.FindCurrentFloor: ; 1347d
- ld hl, wElevatorPointerLo
+ ld hl, wElevatorPointer
ld a, [hli]
ld h, [hl]
ld l, a
@@ -102,7 +102,7 @@
Elevator_GoToFloor: ; 134c0
push af
- ld hl, wElevatorPointerLo
+ ld hl, wElevatorPointer
ld a, [hli]
ld h, [hl]
ld l, a
--- a/event/field_moves.asm
+++ b/event/field_moves.asm
@@ -30,7 +30,7 @@
lb bc, BANK(HeadbuttTreeGFX), 8
call Request2bpp
call Cut_Headbutt_GetPixelFacing
- ld a, SPRITE_ANIM_INDEX_1B
+ ld a, SPRITE_ANIM_INDEX_HEADBUTT
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_TILE_ID
add hl, bc
@@ -75,7 +75,7 @@
; 8c893
HeadbuttTreeGFX: ; 8c893
-INCBIN "gfx/overworld/headbutt_tree.2bpp"
+INCBIN "gfx/ow_fx/headbutt_tree.2bpp"
; 8c913
HideHeadbuttTree: ; 8c913
@@ -152,11 +152,11 @@
; 8c98c
CutTreeGFX: ; c898c
-INCBIN "gfx/misc/cut_tree.2bpp"
+INCBIN "gfx/ow_fx/cut_tree.2bpp"
; c89cc
CutGrassGFX: ; 8c9cc
-INCBIN "gfx/misc/cut_grass.2bpp"
+INCBIN "gfx/ow_fx/cut_grass.2bpp"
; 8ca0c
OWCutJumptable: ; 8ca0c
--- a/event/halloffame.asm
+++ b/event/halloffame.asm
@@ -1,3 +1,5 @@
+HALLOFFAME_COLON EQU $63
+
HallOfFame:: ; 0x8640e
call HallOfFame_FadeOutMusic
ld a, [StatusFlags]
@@ -35,9 +37,9 @@
RedCredits:: ; 86455
ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld a, 10
ld [MusicFade], a
callba FadeOutPalettes
@@ -58,9 +60,9 @@
HallOfFame_FadeOutMusic: ; 8648e
ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld a, 10
ld [MusicFade], a
callba FadeOutPalettes
@@ -487,7 +489,7 @@
hlcoord 1, 13
ld a, "№"
ld [hli], a
- ld [hl], "·"
+ ld [hl], "<DOT>"
hlcoord 3, 13
ld de, wd265
lb bc, PRINTNUM_LEADINGZEROS | 1, 3
@@ -531,8 +533,8 @@
HOF_AnimatePlayerPic: ; 86810
call ClearBGPalettes
- ld hl, VTiles2 tile $63
- ld de, FontExtra + 13 tiles
+ ld hl, VTiles2 tile HALLOFFAME_COLON
+ ld de, FontExtra + 13 tiles ; "<COLON>"
lb bc, BANK(FontExtra), 1
call Request2bpp
hlcoord 0, 0
@@ -604,7 +606,7 @@
ld de, GameTimeHours
lb bc, 2, 3
call PrintNum
- ld [hl], 99
+ ld [hl], HALLOFFAME_COLON
inc hl
ld de, GameTimeMinutes
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
--- a/event/magikarp.asm
+++ b/event/magikarp.asm
@@ -33,7 +33,7 @@
call PrintText
; Did we beat the record?
- ld hl, Buffer1
+ ld hl, wMagikarpLength
ld de, wBestMagikarpLengthFeet
ld c, 2
call StringCmp
@@ -40,7 +40,7 @@
jr nc, .not_long_enough
; NEW RECORD!!! Let's save that.
- ld hl, Buffer1
+ ld hl, wMagikarpLength
ld de, wBestMagikarpLengthFeet
ld a, [hli]
ld [de], a
@@ -79,7 +79,7 @@
; 0xfbbae
Magikarp_LoadFeetInchesChars: ; fbbae
- ld hl, VTiles2 tile "′"
+ ld hl, VTiles2 tile "′" ; $6e
ld de, .feetinchchars
lb bc, BANK(.feetinchchars), 2
call Request2bpp
@@ -87,18 +87,18 @@
; fbbbb
.feetinchchars ; fbbb
-INCBIN "gfx/unknown/0fbbbb.2bpp"
+INCBIN "gfx/font/feet_inches.2bpp"
; fbbdb
PrintMagikarpLength: ; fbbdb
call Magikarp_LoadFeetInchesChars
ld hl, StringBuffer1
- ld de, Buffer1
+ ld de, wMagikarpLength
lb bc, PRINTNUM_RIGHTALIGN | 1, 2
call PrintNum
ld [hl], "′"
inc hl
- ld de, Buffer2
+ ld de, wMagikarpLength + 1
lb bc, PRINTNUM_RIGHTALIGN | 1, 2
call PrintNum
ld [hl], "″"
@@ -108,7 +108,7 @@
; fbbfc
CalcMagikarpLength: ; fbbfc
-; Return Magikarp's length (in mm) at MagikarpLength (big endian).
+; Return Magikarp's length (in mm) at wMagikarpLength (big endian).
;
; input:
; de: EnemyMonDVs
@@ -125,9 +125,9 @@
; bc = rrc(dv[0]) ++ rrc(dv[1]) ^ rrc(id)
-; if bc < 10: [MagikarpLength] = c + 190
-; if bc ≥ $ff00: [MagikarpLength] = c + 1370
-; else: [MagikarpLength] = z × 100 + (bc − x) / y
+; if bc < 10: [wMagikarpLength] = c + 190
+; if bc ≥ $ff00: [wMagikarpLength] = c + 1370
+; else: [wMagikarpLength] = z × 100 + (bc − x) / y
; X, Y, and Z depend on the value of b as follows:
@@ -274,7 +274,7 @@
.ok
ld e, a
- ld hl, MagikarpLength
+ ld hl, wMagikarpLength
ld [hl], d
inc hl
ld [hl], e
@@ -326,9 +326,9 @@
Special_MagikarpHouseSign: ; fbcd2
ld a, [wBestMagikarpLengthFeet]
- ld [Buffer1], a
+ ld [wMagikarpLength], a
ld a, [wBestMagikarpLengthInches]
- ld [Buffer2], a
+ ld [wMagikarpLength + 1], a
call PrintMagikarpLength
ld hl, .CurrentRecordtext
call PrintText
--- a/event/magnet_train.asm
+++ b/event/magnet_train.asm
@@ -323,7 +323,7 @@
ld d, 10 * 8 + 5
ld a, [wMagnetTrainPlayerSpriteInitX]
ld e, a
- ld b, SPRITE_ANIM_INDEX_15
+ ld b, SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
ld a, [rSVBK]
push af
ld a, $1
@@ -331,7 +331,7 @@
ld a, [PlayerGender]
bit 0, a
jr z, .got_gender
- ld b, SPRITE_ANIM_INDEX_1F
+ ld b, SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
.got_gender
pop af
--- a/event/mom_phone.asm
+++ b/event/mom_phone.asm
@@ -1,3 +1,7 @@
+const_value = 1
+ const MOM_ITEM
+ const MOM_DOLL
+
MomTriesToBuySomething:: ; fcfec
ld a, [wMapReentryScriptQueueFlag]
and a
@@ -214,7 +218,6 @@
dt \2
db \3, \4
ENDM
-
MomItems_1: ; fd136
momitem 0, 600, MOM_ITEM, SUPER_POTION
--- a/event/overworld.asm
+++ b/event/overworld.asm
@@ -77,9 +77,9 @@
ld a, [hl]
and a
jr z, .no
- cp a, -1
+ cp -1
jr z, .no
- cp a, EGG
+ cp EGG
jr z, .next
ld bc, PARTYMON_STRUCT_LENGTH
@@ -432,7 +432,7 @@
.DoSurf: ; c95f (3:495f)
call GetSurfType
- ld [Buffer2], a ; wd1eb (aliases: MovementType)
+ ld [Buffer2], a
call GetPartyNick
ld hl, SurfFromMenuScript
call QueueScript
@@ -510,7 +510,7 @@
; Get player direction
ld a, [PlayerDirection]
- and a, %00001100 ; bits 2 and 3 contain direction
+ and %00001100 ; bits 2 and 3 contain direction
rrca
rrca
ld e, a
@@ -569,7 +569,7 @@
jr nz, .quit
call GetSurfType
- ld [MovementType], a
+ ld [Buffer2], a
call GetPartyNick
ld a, BANK(AskSurfScript)
@@ -632,7 +632,7 @@
cp NUM_SPAWNS
jr nc, .illegal
- ld [wd001], a
+ ld [DefaultSpawnpoint], a
call CloseWindow
ld a, $1
ret
@@ -837,7 +837,7 @@
ret
.incave
- ld hl, wDigWarp
+ ld hl, wDigWarpNumber
ld a, [hli]
and a
jr z, .fail
@@ -851,7 +851,7 @@
ret
.DoDig: ; cbd8
- ld hl, wDigWarp
+ ld hl, wDigWarpNumber
ld de, wNextWarp
ld bc, 3
call CopyBytes
@@ -962,7 +962,7 @@
callba IsSpawnPoint
jr nc, .nope
ld a, c
- ld [wd001], a
+ ld [DefaultSpawnpoint], a
ld a, $1
ret
--- a/event/whiteout.asm
+++ b/event/whiteout.asm
@@ -77,6 +77,6 @@
xor a ; SPAWN_HOME
.yes
- ld [wd001], a
+ ld [DefaultSpawnpoint], a
ret
; 1253d
--- a/gbhw.asm
+++ b/gbhw.asm
@@ -36,6 +36,9 @@
OAM_Y_FLIP EQU 6
OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
+X_FLIP EQU 1 << OAM_X_FLIP
+Y_FLIP EQU 1 << OAM_Y_FLIP
+BEHIND_BG EQU 1 << OAM_PRIORITY
; Hardware registers
rJOYP EQU $ff00 ; Joypad (R/W)
binary files /dev/null b/gfx/battle/dude.2bpp.lz.d13fb490 differ
binary files /dev/null b/gfx/battle/dude.png differ
binary files /dev/null b/gfx/card_flip/card_flip_1.2bpp.lz.86f267e8 differ
binary files /dev/null b/gfx/card_flip/card_flip_1.png differ
binary files /dev/null b/gfx/card_flip/card_flip_2.2bpp.lz.6a6c671d differ
binary files /dev/null b/gfx/card_flip/card_flip_2.png differ
binary files /dev/null b/gfx/card_flip/card_flip_3.2bpp.lz.53679db7 differ
binary files /dev/null b/gfx/card_flip/card_flip_3.png differ
binary files /dev/null b/gfx/card_flip/off.png differ
binary files /dev/null b/gfx/card_flip/on.png differ
binary files /dev/null b/gfx/diploma/diploma.2bpp.lz.7b56f7e5 differ
binary files /dev/null b/gfx/diploma/diploma.png differ
binary files /dev/null b/gfx/diploma/page1.tilemap differ
binary files /dev/null b/gfx/diploma/page2.tilemap differ
binary files /dev/null b/gfx/dummy_game/dummy_game.2bpp.lz.821ba441 differ
binary files /dev/null b/gfx/dummy_game/dummy_game.png differ
binary files /dev/null b/gfx/evo/egg_hatch.png differ
--- a/gfx/font.asm
+++ b/gfx/font.asm
@@ -1,11 +1,11 @@
FontExtra:
-INCBIN "gfx/misc/font_extra.2bpp"
+INCBIN "gfx/font/font_extra.2bpp"
Font:
-INCBIN "gfx/misc/font.1bpp"
+INCBIN "gfx/font/font.1bpp"
FontBattleExtra:
-INCBIN "gfx/misc/font_battle_extra.2bpp"
+INCBIN "gfx/font/font_battle_extra.2bpp"
Frames: ; f8800
INCBIN "gfx/frames/1.1bpp"
@@ -19,19 +19,19 @@
INCBIN "gfx/frames/9.1bpp"
; f89b0
-; TODO: Various misc graphics here.
+; Various misc graphics here.
StatsScreenPageTilesGFX: ; f89b0
-INCBIN "gfx/unknown/0f89b0.2bpp"
+INCBIN "gfx/stats/stats_tiles.2bpp"
; f8a90
-ShinyIcon: ; f8a90
+ShinyIconGFX: ; f8a90
; also part of StatsScreenPageTilesGFX
INCBIN "gfx/stats/shiny.2bpp"
-StatsScreenPageTilesGFX_Part2: ; f8aa0
+ExpBarEndsGFX: ; f8aa0
; not referenced on its own, but part of StatsScreenPageTilesGFX
-INCBIN "gfx/unknown/0f8aa0.2bpp"
+INCBIN "gfx/stats/exp_bar_ends.2bpp"
; f8ac0
EnemyHPBarBorderGFX: ; f8ac0
@@ -47,7 +47,7 @@
; f8ba0
TownMapGFX: ; f8ba0
-INCBIN "gfx/misc/town_map.2bpp.lz"
+INCBIN "gfx/pokegear/town_map.2bpp.lz"
; f8ea4
WeekdayKanjiGFX: ; unused kanji
@@ -75,11 +75,11 @@
; f9424
FontsExtra2_UpArrowGFX: ; f9424
-INCBIN "gfx/unknown/0f9424.2bpp"
+INCBIN "gfx/font/up_arrow.2bpp"
; f9434
Footprints: ; f9434
-INCBIN "gfx/misc/footprints.1bpp"
+INCBIN "gfx/pokedex/footprints.1bpp"
; fb434
; This and the following two functions are unreferenced.
@@ -131,11 +131,11 @@
_LoadFontsExtra1:: ; fb48a
ld de, MobilePhoneTilesGFX
- ld hl, VTiles2 tile $60
+ ld hl, VTiles2 tile "<BLACK>" ; $60
lb bc, BANK(MobilePhoneTilesGFX), 1
call Get1bpp_2
ld de, OverworldPhoneIconGFX
- ld hl, VTiles2 tile $62
+ ld hl, VTiles2 tile "<PHONE>" ; $62
lb bc, BANK(OverworldPhoneIconGFX), 1
call Get2bpp_2
ld de, FontExtra + 3 * LEN_2BPP_TILE
@@ -147,7 +147,7 @@
_LoadFontsExtra2:: ; fb4b0
ld de, FontsExtra2_UpArrowGFX
- ld hl, VTiles2 tile $61
+ ld hl, VTiles2 tile "▲" ; $61
ld b, BANK(FontsExtra2_UpArrowGFX)
ld c, 1
call Get2bpp_2
@@ -170,10 +170,10 @@
call AddNTimes
ld d, h
ld e, l
- ld hl, VTiles2 tile $79
+ ld hl, VTiles2 tile "┌" ; $79
lb bc, BANK(Frames), TILES_PER_FRAME
call Get1bpp_2
- ld hl, VTiles2 tile $7f
+ ld hl, VTiles2 tile " " ; $7f
ld de, TextBoxSpaceGFX
lb bc, BANK(TextBoxSpaceGFX), 1
call Get1bpp_2
@@ -186,7 +186,7 @@
lb bc, BANK(FontBattleExtra), $c
call Get2bpp_2
ld hl, VTiles2 tile $70
- ld de, FontBattleExtra + $10 * LEN_2BPP_TILE
+ ld de, FontBattleExtra tile $10
lb bc, BANK(FontBattleExtra), 3
call Get2bpp_2
call LoadFrame
binary files /dev/null b/gfx/font/feet_inches.png differ
binary files /dev/null b/gfx/font/font.png differ
binary files /dev/null b/gfx/font/font_battle_extra.png differ
binary files /dev/null b/gfx/font/font_extra.png differ
binary files /dev/null b/gfx/font/font_inversed.png differ
binary files /dev/null b/gfx/font/unown_font.png differ
binary files /dev/null b/gfx/font/up_arrow.png differ
--- a/gfx/load_pics.asm
+++ b/gfx/load_pics.asm
@@ -83,14 +83,14 @@
ld b, a
push bc
call GetFrontpicPointer
- ld a, BANK(wDecompressScratch)
+ ld a, BANK(wDecompressEnemyFrontpic)
ld [rSVBK], a
ld a, b
- ld de, wDecompressScratch + $800
+ ld de, wDecompressEnemyFrontpic
call FarDecompress
pop bc
ld hl, wDecompressScratch
- ld de, wDecompressScratch + $800
+ ld de, wDecompressEnemyFrontpic
call PadFrontpic
pop hl
push hl
@@ -149,15 +149,15 @@
call GetFarWRAMByte
pop hl
and $f
- ld de, w6_d800 + 5 * 5 tiles
+ ld de, wDecompressEnemyFrontpic + 5 * 5 tiles
ld c, 5 * 5
cp 5
jr z, .got_dims
- ld de, w6_d800 + 6 * 6 tiles
+ ld de, wDecompressEnemyFrontpic + 6 * 6 tiles
ld c, 6 * 6
cp 6
jr z, .got_dims
- ld de, w6_d800 + 7 * 7 tiles
+ ld de, wDecompressEnemyFrontpic + 7 * 7 tiles
ld c, 7 * 7
.got_dims
binary files a/gfx/misc/badges.png /dev/null differ
binary files a/gfx/misc/boulderdust.png /dev/null differ
binary files a/gfx/misc/card_right_corner.png /dev/null differ
binary files a/gfx/misc/card_status.png /dev/null differ
binary files a/gfx/misc/chris.png /dev/null differ
binary files a/gfx/misc/chris_card.png /dev/null differ
binary files a/gfx/misc/copyright.png /dev/null differ
binary files a/gfx/misc/cut_grass.png /dev/null differ
binary files a/gfx/misc/cut_tree.png /dev/null differ
binary files a/gfx/misc/dude.2bpp.lz.d13fb490 /dev/null differ
binary files a/gfx/misc/dude.png /dev/null differ
binary files a/gfx/misc/fast_ship.png /dev/null differ
binary files a/gfx/misc/fishing2.png /dev/null differ
binary files a/gfx/misc/fishing4.png /dev/null differ
binary files a/gfx/misc/font.png /dev/null differ
binary files a/gfx/misc/font_battle_extra.png /dev/null differ
binary files a/gfx/misc/font_extra.png /dev/null differ
binary files a/gfx/misc/font_inversed.png /dev/null differ
binary files a/gfx/misc/footprints.png /dev/null differ
binary files a/gfx/misc/johto.bin /dev/null differ
binary files a/gfx/misc/kanto.bin /dev/null differ
binary files a/gfx/misc/kris.png /dev/null differ
binary files a/gfx/misc/kris_back.png /dev/null differ
binary files a/gfx/misc/kris_card.png /dev/null differ
binary files a/gfx/misc/leaders.png /dev/null differ
binary files a/gfx/misc/pack.png /dev/null differ
binary files a/gfx/misc/pack_f.png /dev/null differ
binary files a/gfx/misc/pack_menu.png /dev/null differ
binary files a/gfx/misc/player.2bpp.lz.0312ddce /dev/null differ
binary files a/gfx/misc/player.png /dev/null differ
binary files a/gfx/misc/pokegear.2bpp.lz.42315ab4 /dev/null differ
binary files a/gfx/misc/pokegear.png /dev/null differ
binary files a/gfx/misc/pokegear_sprites.2bpp.lz.7a3cc91f /dev/null differ
binary files a/gfx/misc/pokegear_sprites.png /dev/null differ
binary files a/gfx/misc/shadow.png /dev/null differ
binary files a/gfx/misc/town_map.2bpp.lz.c0587c86 /dev/null differ
binary files a/gfx/misc/town_map.png /dev/null differ
binary files a/gfx/misc/trainer_card.png /dev/null differ
binary files a/gfx/misc/unown_font.png /dev/null differ
binary files /dev/null b/gfx/namingscreen/border.png differ
binary files /dev/null b/gfx/namingscreen/cursor.png differ
binary files /dev/null b/gfx/namingscreen/end.png differ
binary files /dev/null b/gfx/namingscreen/middle_line.png differ
binary files /dev/null b/gfx/namingscreen/underline.png differ
binary files a/gfx/overworld/chris_fish.png /dev/null differ
binary files a/gfx/overworld/headbutt_tree.png /dev/null differ
binary files a/gfx/overworld/kris_fish.png /dev/null differ
binary files a/gfx/overworld/trainer_battle_pokeball_tiles.png /dev/null differ
binary files /dev/null b/gfx/ow_fx/boulder_dust.png differ
binary files /dev/null b/gfx/ow_fx/chris_fish.png differ
binary files /dev/null b/gfx/ow_fx/cut_grass.png differ
binary files /dev/null b/gfx/ow_fx/cut_tree.png differ
binary files /dev/null b/gfx/ow_fx/fishing_rod.png differ
binary files /dev/null b/gfx/ow_fx/grass_rustle.png differ
binary files /dev/null b/gfx/ow_fx/headbutt_tree.png differ
binary files /dev/null b/gfx/ow_fx/heal_machine.png differ
binary files /dev/null b/gfx/ow_fx/kris_fish.png differ
binary files /dev/null b/gfx/ow_fx/shadow.png differ
binary files /dev/null b/gfx/ow_fx/trainer_battle_pokeball_tiles.png differ
binary files /dev/null b/gfx/pack/pack.png differ
binary files /dev/null b/gfx/pack/pack_f.png differ
binary files /dev/null b/gfx/pack/pack_menu.png differ
binary files a/gfx/pc.2bpp.lz.2201c1aa /dev/null differ
binary files a/gfx/pc.png /dev/null differ
binary files /dev/null b/gfx/pc/pc.2bpp.lz.2201c1aa differ
binary files /dev/null b/gfx/pc/pc.png differ
binary files /dev/null b/gfx/pc/pc_mail.png differ
binary files a/gfx/pc_mail.png /dev/null differ
binary files /dev/null b/gfx/player/chris.png differ
binary files /dev/null b/gfx/player/chris_back.2bpp.lz.0312ddce differ
binary files /dev/null b/gfx/player/chris_back.png differ
binary files /dev/null b/gfx/player/kris.png differ
binary files /dev/null b/gfx/player/kris_back.png differ
binary files /dev/null b/gfx/pokedex/footprints.png differ
--- /dev/null
+++ b/gfx/pokegear/dexmap_nest_icon.2bpp
@@ -1,0 +1,1 @@
+BBff��������ZZ$$
\ No newline at end of file
binary files /dev/null b/gfx/pokegear/fast_ship.png differ
binary files /dev/null b/gfx/pokegear/flymap_label_border.1bpp differ
binary files /dev/null b/gfx/pokegear/johto.bin differ
binary files /dev/null b/gfx/pokegear/kanto.bin differ
binary files /dev/null b/gfx/pokegear/pokegear.2bpp.lz.42315ab4 differ
binary files /dev/null b/gfx/pokegear/pokegear.png differ
binary files /dev/null b/gfx/pokegear/pokegear_sprites.2bpp.lz.7a3cc91f differ
binary files /dev/null b/gfx/pokegear/pokegear_sprites.png differ
binary files /dev/null b/gfx/pokegear/town_map.2bpp.lz.c0587c86 differ
binary files /dev/null b/gfx/pokegear/town_map.png differ
binary files /dev/null b/gfx/shrink/shrink1.2bpp.lz.d4443930 differ
binary files /dev/null b/gfx/shrink/shrink1.png differ
binary files /dev/null b/gfx/shrink/shrink2.2bpp.lz.3f58480a differ
binary files /dev/null b/gfx/shrink/shrink2.png differ
binary files a/gfx/shrink1.2bpp.lz.d4443930 /dev/null differ
binary files a/gfx/shrink1.png /dev/null differ
binary files a/gfx/shrink2.2bpp.lz.3f58480a /dev/null differ
binary files a/gfx/shrink2.png /dev/null differ
binary files a/gfx/slots.tilemap /dev/null differ
binary files /dev/null b/gfx/slots/slots.tilemap differ
binary files /dev/null b/gfx/slots/slots_1.2bpp.lz.b22ddc13 differ
binary files /dev/null b/gfx/slots/slots_1.png differ
binary files /dev/null b/gfx/slots/slots_2.2bpp.lz.b28f76e3 differ
binary files /dev/null b/gfx/slots/slots_2.png differ
binary files /dev/null b/gfx/slots/slots_3.2bpp.lz.70c2984c differ
binary files /dev/null b/gfx/slots/slots_3.png differ
binary files a/gfx/slots_1.2bpp.lz.b22ddc13 /dev/null differ
binary files a/gfx/slots_1.png /dev/null differ
binary files a/gfx/slots_2.2bpp.lz.b28f76e3 /dev/null differ
binary files a/gfx/slots_2.png /dev/null differ
binary files a/gfx/slots_3.2bpp.lz.70c2984c /dev/null differ
binary files a/gfx/slots_3.png /dev/null differ
binary files /dev/null b/gfx/splash/copyright.png differ
binary files /dev/null b/gfx/stats/exp_bar_ends.png differ
binary files /dev/null b/gfx/stats/stats_tiles.png differ
binary files a/gfx/tilesets/water.png /dev/null differ
binary files /dev/null b/gfx/tilesets/water/water.png differ
binary files /dev/null b/gfx/timeset/background.png differ
binary files /dev/null b/gfx/timeset/down_arrow.png differ
binary files /dev/null b/gfx/timeset/up_arrow.png differ
--- /dev/null
+++ b/gfx/trade/border_cable_bottom.tilemap
@@ -1,0 +1,1 @@
+/'()/>??????????@*+,-.DE
\ No newline at end of file
--- /dev/null
+++ b/gfx/trade/border_cable_top.tilemap
@@ -1,0 +1,1 @@
+?@ E
\ No newline at end of file
--- /dev/null
+++ b/gfx/trade/border_mobile_fullscreen.tilemap
@@ -1,0 +1,1 @@
+?@ EEEEEEEE EEEEEEBC/$%&/>??????????@89:;<=DE
\ No newline at end of file
binary files /dev/null b/gfx/trade/border_tiles.png differ
binary files /dev/null b/gfx/trainer_card/badges.png differ
binary files /dev/null b/gfx/trainer_card/card_right_corner.png differ
binary files /dev/null b/gfx/trainer_card/card_status.png differ
binary files /dev/null b/gfx/trainer_card/chris_card.png differ
binary files /dev/null b/gfx/trainer_card/kris_card.png differ
binary files /dev/null b/gfx/trainer_card/leaders.png differ
binary files /dev/null b/gfx/trainer_card/trainer_card.png differ
binary files a/gfx/unknown/011cb7.png /dev/null differ
binary files a/gfx/unknown/011cc7.png /dev/null differ
binary files a/gfx/unknown/011e5d.png /dev/null differ
binary files a/gfx/unknown/011e65.png /dev/null differ
binary files a/gfx/unknown/011e6d.png /dev/null differ
binary files a/gfx/unknown/0123fc.png /dev/null differ
binary files a/gfx/unknown/017393.png /dev/null differ
binary files a/gfx/unknown/0908fb.png /dev/null differ
binary files a/gfx/unknown/090903.png /dev/null differ
binary files a/gfx/unknown/09090b.png /dev/null differ
binary files a/gfx/unknown/0e0cdb.2bpp.lz.53679db7 /dev/null differ
binary files a/gfx/unknown/0e0cdb.png /dev/null differ
binary files a/gfx/unknown/0e0cf6.png /dev/null differ
binary files a/gfx/unknown/0e0d06.png /dev/null differ
binary files a/gfx/unknown/0e0d16.2bpp.lz.86f267e8 /dev/null differ
binary files a/gfx/unknown/0e0d16.png /dev/null differ
binary files a/gfx/unknown/0e0ea8.2bpp.lz.6a6c671d /dev/null differ
binary files a/gfx/unknown/0e0ea8.png /dev/null differ
binary files a/gfx/unknown/0e2221.2bpp.lz.821ba441 /dev/null differ
binary files a/gfx/unknown/0e2221.png /dev/null differ
binary files a/gfx/unknown/0f89b0.png /dev/null differ
binary files a/gfx/unknown/0f8aa0.png /dev/null differ
binary files a/gfx/unknown/0f9424.png /dev/null differ
binary files a/gfx/unknown/0fbbbb.png /dev/null differ
binary files a/gfx/unknown/16cfc1.png /dev/null differ
--- a/gfx/unknown/16d465.tilemap
+++ /dev/null
@@ -1,1 +1,0 @@
-?@ EEEEEEEE EEEEEEBC/$%&/>??????????@89:;<=DE
\ No newline at end of file
--- a/gfx/unknown/16d5cd.tilemap
+++ /dev/null
@@ -1,1 +1,0 @@
-?@ E
\ No newline at end of file
--- a/gfx/unknown/16d5f5.tilemap
+++ /dev/null
@@ -1,1 +1,0 @@
-/'()/>??????????@*+,-.DE
\ No newline at end of file
binary files a/gfx/unknown/1dd805.2bpp.lz.7b56f7e5 /dev/null differ
binary files a/gfx/unknown/1dd805.png /dev/null differ
binary files a/gfx/unknown/1ddc4b.tilemap /dev/null differ
binary files a/gfx/unknown/1dddb3.tilemap /dev/null differ
--- a/home.asm
+++ b/home.asm
@@ -718,15 +718,14 @@
GetHPPal:: ; 3353
; Get palette for hp bar pixel length e in d.
-
ld d, HP_GREEN
ld a, e
cp (50 * 48 / 100)
ret nc
- inc d ; yellow
+ inc d ; HP_YELLOW
cp (21 * 48 / 100)
ret nc
- inc d ; red
+ inc d ; HP_RED
ret
; 335f
@@ -733,7 +732,6 @@
CountSetBits:: ; 0x335f
; Count the number of set bits in b bytes starting from hl.
; Return in a, c and [wd265].
-
ld c, 0
.next
ld a, [hli]
@@ -1832,7 +1830,7 @@
; 0x38f2
PrintBCDDigit:: ; 38f2
- and a, %00001111
+ and %00001111
and a
jr z, .zeroDigit
.nonzeroDigit
@@ -1847,7 +1845,7 @@
.skipCurrencySymbol
res 7, b ; unset 7 to indicate that a nonzero digit has been reached
.outputDigit
- add a, "0"
+ add "0"
ld [hli], a
jp PrintLetterDelay
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -295,7 +295,7 @@
; 3c97
MaxVolume:: ; 3c97
- ld a, $77 ; max
+ ld a, MAX_VOLUME
ld [Volume], a
ret
; 3c9d
@@ -348,9 +348,9 @@
ld a, 8
ld [MusicFade], a
ld a, e
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, d
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld a, e
ld [wMapMusic], a
--- a/home/flag.asm
+++ b/home/flag.asm
@@ -38,9 +38,9 @@
; inputs:
; b: function
-; 0 clear bit
-; 1 set bit
-; 2 check bit
+; 0 RESET_FLAG clear bit
+; 1 SET_FLAG set bit
+; 2 CHECK_FLAG check bit
; de: bit number
; hl: index within bit table
@@ -75,9 +75,9 @@
; check b's value: 0, 1, 2
ld a, b
- cp 1
- jr c, .clearbit ; 0
- jr z, .setbit ; 1
+ cp SET_FLAG
+ jr c, .clearbit ; RESET_FLAG
+ jr z, .setbit ; SET_FLAG
; check bit
ld a, [hl]
--- a/home/init.asm
+++ b/home/init.asm
@@ -69,8 +69,8 @@
ld [rLCDC], a
; Clear WRAM bank 0
- ld hl, wc000
- ld bc, wd000 - wc000
+ ld hl, wRAM0Start
+ ld bc, wRAM1Start - wRAM0Start
.ByteFill:
ld [hl], 0
inc hl
--- a/home/joypad.asm
+++ b/home/joypad.asm
@@ -130,7 +130,7 @@
; The player input can be automated using an input stream.
; See more below.
ld a, [InputType]
- cp a, AUTO_INPUT
+ cp AUTO_INPUT
jr z, .auto
; To get deltas, take this and last frame's input.
@@ -197,7 +197,7 @@
.updateauto
; An input of $ff will end the stream.
ld a, [hli]
- cp a, -1
+ cp -1
jr z, .stopauto
ld b, a
@@ -204,7 +204,7 @@
; A duration of $ff will end the stream indefinitely.
ld a, [hli]
ld [AutoInputLength], a
- cp a, -1
+ cp -1
jr nz, .next
; The current input is overwritten.
--- a/home/map.asm
+++ b/home/map.asm
@@ -1415,7 +1415,7 @@
ld a, $1
ld [rVBK], a
- ld hl, w6_d600
+ ld hl, wDecompressScratch + $60 tiles
ld de, VTiles2
ld bc, $60 tiles
call CopyBytes
@@ -2284,8 +2284,6 @@
; 0x2cbd
GetMapHeaderMusic:: ; 2cbd
-RADIO_TOWER_MUSIC EQU 7
-
push hl
push bc
ld de, 6 ; music
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -485,7 +485,7 @@
ld e, a
ld d, 0
rept SPRITEMOVEDATA_FIELDS
- add hl,de
+ add hl, de
endr
ld a, [hl]
ret
@@ -498,7 +498,7 @@
ld d, 0
ld hl, SpriteMovementData + 1 ; init facing
rept SPRITEMOVEDATA_FIELDS
- add hl,de
+ add hl, de
endr
ld a, BANK(SpriteMovementData)
call GetFarByte
--- a/home/movement.asm
+++ b/home/movement.asm
@@ -3,11 +3,11 @@
xor a
ld [wMovementBufferCount], a
ld a, $0 ; useless
- ld [wd004], a
+ ld [wUnusedMovementBufferBank], a
ld a, MovementBuffer % $100
- ld [wd005], a
+ ld [wUnusedMovementBufferPointer], a
ld a, MovementBuffer / $100
- ld [wd006], a
+ ld [wUnusedMovementBufferPointer + 1], a
ret
; 1b35
--- a/home/text.asm
+++ b/home/text.asm
@@ -230,41 +230,41 @@
._\@:
endm
- dict "<DAY>", Char15
- dict "<LINE>", LineChar
- dict "<NEXT>", NextLineChar
- dict TX_FAR, TextFar
- dict $00, NullChar
- dict $4c, Char4C
- dict $4b, Char4B
- dict "<PARA>", Paragraph
- dict "<MOM>", PrintMomsName
+ dict "<DAY>", Char15
+ dict "<LINE>", LineChar
+ dict "<NEXT>", NextLineChar
+ dict TX_FAR, TextFar
+ dict $00, NullChar
+ dict $4c, Char4C
+ dict $4b, Char4B
+ dict "<PARA>", Paragraph
+ dict "<MOM>", PrintMomsName
dict "<PLAYER>", PrintPlayerName
- dict "<RIVAL>", PrintRivalName
- dict $35, Char35
- dict $36, Char36
- dict $37, Char37
- dict "<RED>", PrintRedsName
- dict "<GREEN>", PrintGreensName
- dict "#", PlacePOKe
- dict "<PC>", PCChar
+ dict "<RIVAL>", PrintRivalName
+ dict $35, Char35
+ dict $36, Char36
+ dict $37, Char37
+ dict "<RED>", PrintRedsName
+ dict "<GREEN>", PrintGreensName
+ dict "#", PlacePOKe
+ dict "<PC>", PCChar
dict "<ROCKET>", RocketChar
- dict "<TM>", TMChar
- dict "<TRNER>", TrainerChar
- dict $23, PlaceKougeki
- dict "<LNBRK>", Char22
- dict "<CONT>", ContText
+ dict "<TM>", TMChar
+ dict "<TRNER>", TrainerChar
+ dict $23, PlaceKougeki
+ dict "<LNBRK>", Char22
+ dict "<CONT>", ContText
dict "<......>", SixDotsChar
- dict "<DONE>", DoneText
+ dict "<DONE>", DoneText
dict "<PROMPT>", PromptText
- dict "<PKMN>", PlacePKMN
- dict "<POKE>", PlacePOKE
- dict $25, NextChar
- dict2 $1f, " "
+ dict "<PKMN>", PlacePKMN
+ dict "<POKE>", PlacePOKE
+ dict $25, NextChar
+ dict2 $1f, " "
dict "<DEXEND>", PlaceDexEnd
dict "<TARGET>", PlaceMoveTargetsName
- dict "<USER>", PlaceMoveUsersName
- dict "<ENEMY>", PlaceEnemysName
+ dict "<USER>", PlaceMoveUsersName
+ dict "<ENEMY>", PlaceEnemysName
dict "<PLAY_G>", PlaceGenderedPlayerName
cp "゚"
--- a/interrupts.asm
+++ b/interrupts.asm
@@ -1,16 +1,16 @@
; Game Boy hardware interrupts
-SECTION "vblank",ROM0
+SECTION "vblank", ROM0
jp VBlank
-SECTION "lcd",ROM0
+SECTION "lcd", ROM0
jp LCD
-SECTION "timer",ROM0
+SECTION "timer", ROM0
jp Timer
-SECTION "serial",ROM0
+SECTION "serial", ROM0
jp Serial
-SECTION "joypad",ROM0
+SECTION "joypad", ROM0
jp JoypadInt
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -407,9 +407,9 @@
ld de, ANIM_THROW_POKE_BALL
ld a, e
- ld [FXAnimIDLo], a
+ ld [FXAnimID], a
ld a, d
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
xor a
ld [hBattleTurn], a
ld [Buffer2], a
@@ -2945,9 +2945,9 @@
call ReturnToBattle_UseBall
ld de, ANIM_THROW_POKE_BALL
ld a, e
- ld [FXAnimIDLo], a
+ ld [FXAnimID], a
ld a, d
- ld [FXAnimIDHi], a
+ ld [FXAnimID + 1], a
xor a
ld [wBattleAnimParam], a
ld [hBattleTurn], a
--- a/lib/mobile/main.asm
+++ b/lib/mobile/main.asm
@@ -9073,8 +9073,8 @@
dw $cbef
Unknown_113b7e: ; 113b7e
- db $01,$23,$45,$67,$89,$ab,$cd,$ef
- db $fe,$dc,$ba,$98,$76,$54,$32,$10
+ db $01, $23, $45, $67, $89, $ab, $cd, $ef
+ db $fe, $dc, $ba, $98, $76, $54, $32, $10
Unknown_113b8e:
db $78, $a4, $6a, $d7, $56, $b7, $c7, $e8, $db, $70, $20, $24, $ee, $ce, $bd, $c1
--- a/macros/basestats.asm
+++ b/macros/basestats.asm
@@ -29,38 +29,37 @@
enum \1_TMNUM
ENDM
+; N TMs/HMs need (N+7)/8 bytes for their bit flags.
+; The rgbasm integers tms1, tms2, tms3 each hold 3 bytes, or 24 bits.
tmhm: MACRO
-x = 0
-y = 0
-w = 0
- rept _NARG
+tms1 = 0
+tms2 = 0
+tms3 = 0
+rept _NARG
if def(\1_TMNUM)
- if \1_TMNUM < 25
-x = x | (1 << ((\1_TMNUM) - 1))
+ if \1_TMNUM < 24 + 1
+tms1 = tms1 | (1 << ((\1_TMNUM) - 1))
+ elif \1_TMNUM < 48 + 1
+tms2 = tms2 | (1 << ((\1_TMNUM) - 1 - 24))
else
- if \1_TMNUM < 49
-y = y | (1 << ((\1_TMNUM) - 1 - 24))
- else
-w = w | (1 << ((\1_TMNUM) - 1 - 48))
+tms3 = tms3 | (1 << ((\1_TMNUM) - 1 - 48))
endc
- endc
else
fail "\1 is not a TM, HM, or move tutor move"
endc
-
shift
- endr
+endr
- rept 3
- db x & $ff
-x = x >> 8
- endr
- rept 3
- db y & $ff
-y = y >> 8
- endr
- rept 2
- db w & $ff
-w = w >> 8
- endr
+rept 3
+ db tms1 & $ff
+tms1 = tms1 >> 8
+endr
+rept 3
+ db tms2 & $ff
+tms2 = tms2 >> 8
+endr
+rept 2
+ db tms3 & $ff
+tms3 = tms3 >> 8
+endr
ENDM
--- a/macros/charmap.asm
+++ b/macros/charmap.asm
@@ -1,53 +1,63 @@
; Control characters
charmap "<START>", $00
- charmap "<PLAY_G>", $14 ; <PLAYER> + gender
+ charmap "<PLAY_G>", $14 ; gendered PlayerName; same as "<PLAYER>" in English
charmap "<DAY>", $15
- charmap "¯", $1f
+ charmap "¯", $1f ; soft linebreak
charmap "<LNBRK>", $22
- charmap "<POKE>", $24
+ charmap "<POKE>", $24 ; "<PO><KE>"
charmap "%", $25
- charmap "<RED>", $38
- charmap "<GREEN>", $39
+ charmap "<RED>", $38 ; RedsName
+ charmap "<GREEN>", $39 ; GreensName
charmap "<ENEMY>", $3f
- charmap "<SHINY>", $3f
- charmap "<MOM>", $49
- charmap "<PKMN>", $4a
+ charmap "<MOM>", $49 ; MomsName
+ charmap "<PKMN>", $4a ; "<PK><MN>"
charmap "<NEXT>", $4e
charmap "<LINE>", $4f
charmap "@", $50
charmap "<PARA>", $51
- charmap "<PLAYER>", $52
+ charmap "<PLAYER>", $52 ; PlayerName
charmap "<RIVAL>", $53
charmap "#", $54
charmap "<CONT>", $55
- charmap "<......>", $56
+ charmap "<......>", $56 ; "……"
charmap "<DONE>", $57
charmap "<PROMPT>", $58
charmap "<TARGET>", $59
charmap "<USER>", $5a
- charmap "<PC>", $5b
- charmap "<TM>", $5c
- charmap "<TRNER>", $5d
- charmap "<ROCKET>", $5e
+ charmap "<PC>", $5b ; "PC"
+ charmap "<TM>", $5c ; "TM"
+ charmap "<TRNER>", $5d ; "TRAINER"
+ charmap "<ROCKET>", $5e ; "ROCKET"
charmap "<DEXEND>", $5f
-; Actual characters
- charmap "▲", $61
- charmap "_", $62
- charmap "<COLON>", $6d ; necessary because ":" is already used
- charmap "′", $6e
- charmap "<LV>", $6e
- charmap "″", $6f
+; Actual characters (from gfx/misc/font_extra.png)
+ charmap "<BOLD_A>", $60 ; unused
+ charmap "<BOLD_B>", $61 ; unused
+ charmap "<BOLD_C>", $62 ; unused
+ charmap "<BOLD_D>", $63 ; unused
+ charmap "<BOLD_E>", $64 ; unused
+ charmap "<BOLD_F>", $65 ; unused
+ charmap "<BOLD_G>", $66 ; unused
+ charmap "<BOLD_H>", $67 ; unused
+ charmap "<BOLD_I>", $68 ; unused
+ charmap "<BOLD_V>", $69
+ charmap "<BOLD_S>", $6a
+ charmap "<BOLD_L>", $6b ; unused
+ charmap "<BOLD_M>", $6c ; unused
+ charmap "<COLON>", $6d ; colon with tinier dots than ":"
+ charmap "ぃ", $6e ; hiragana small i, unused
+ charmap "ぅ", $6f ; hiragana small u, unused
charmap "<PO>", $70
charmap "<KE>", $71
- charmap "◀", $71
- charmap "<``>", $72
- charmap "<''>", $73
- charmap "<ID>", $73
- charmap "№", $74
- charmap "…", $75
+ charmap "<``>", $72 ; opening quote
+ charmap "<''>", $73 ; closing quote
+ charmap "·", $74 ; middle dot, unused
+ charmap "…", $75 ; ellipsis
+ charmap "ぁ", $76 ; hiragana small a, unused
+ charmap "ぇ", $77 ; hiragana small e, unused
+ charmap "ぉ", $78 ; hiragana small o, unused
charmap "┌", $79
charmap "─", $7a
@@ -57,6 +67,32 @@
charmap "┘", $7e
charmap " ", $7f
+; Actual characters (from gfx/misc/font_battle_extra.png)
+
+ charmap "<LV>", $6e
+
+ charmap "<ど>", $70 ; hiragana small do, unused
+ charmap "◀", $71
+ charmap "『", $72 ; Japanese opening quote, unused
+ charmap "<ID>", $73
+ charmap "№", $74
+
+; Actual characters (from other graphics files)
+
+ charmap "|", $31 ; from gfx/stats/stats_tiles
+
+ charmap "<SHINY>", $3f ; gfx/stats/shiny
+
+ charmap "<BLACK>", $60 ; from gfx/mobile/phone_tiles.2bpp
+ charmap "▲", $61 ; gfx/font/up_arrow.png
+ charmap "<PHONE>", $62 ; gfx/mobile/overworld_phone_icon.2bpp
+ charmap "_", $62 ; from gfx/battle/hp_exp_bar_border.1bpp
+
+ charmap "′", $6e ; gfx/font/feet_inches.png
+ charmap "″", $6f ; gfx/font/feet_inches.png
+
+; Actual characters (from gfx/misc/font.png)
+
charmap "A", $80
charmap "B", $81
charmap "C", $82
@@ -152,7 +188,7 @@
charmap "♂", $ef
charmap "¥", $f0
charmap "×", $f1
- charmap "·", $f2
+ charmap "<DOT>", $f2 ; same as "." in English
charmap "/", $f3
charmap ",", $f4
charmap "♀", $f5
@@ -168,8 +204,7 @@
charmap "8", $fe
charmap "9", $ff
-; Japanese, for those bits of text that
-; were not translated to English.
+; Japanese kana, for those bits of text that were not translated to English
charmap "ガ", $5
charmap "ギ", $6
--- a/macros/text.asm
+++ b/macros/text.asm
@@ -1,15 +1,11 @@
text EQUS "db $00," ; Start writing text.
next EQUS "db $4e," ; Move a line down.
line EQUS "db $4f," ; Start writing at the bottom line.
+page EQUS "db $50," ; Start a new Pokedex page.
para EQUS "db $51," ; Start a new paragraph.
cont EQUS "db $55," ; Scroll to the next line.
done EQUS "db $57" ; End a text box.
prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some other event).
-
-; Pokedex text commands are only used with pokered.
-; They are included for compatibility.
-page EQUS "db $50," ; Start a new Pokedex page.
-dex EQUS "db $e8, $50" ; End a Pokedex entry.
; TX_RAM EQU $01
; TX_FAR EQU $16
--- a/main.asm
+++ b/main.asm
@@ -92,7 +92,7 @@
xor a
ld [hBGMapMode], a
ld [hWY], a
- callba HDMATransfer_FillBGMap0WithTile60 ; no need to farcall
+ callba HDMATransfer_FillBGMap0WithBlack ; no need to farcall
ld a, VBGMap0 / $100
call .LoadBGMapAddrIntoHRAM
xor a
@@ -131,13 +131,13 @@
call LoadStandardFont
ret
-HDMATransfer_FillBGMap0WithTile60: ; 64db
+HDMATransfer_FillBGMap0WithBlack: ; 64db
ld a, [rSVBK]
push af
ld a, $6
ld [rSVBK], a
- ld a, $60
+ ld a, "<BLACK>" ; $60
ld hl, wDecompressScratch
ld bc, wScratchAttrMap - wDecompressScratch
call ByteFill
@@ -183,7 +183,7 @@
inc hl
; reached end of commands table?
ld a, [hl]
- cp a, -1
+ cp -1
jr z, .done
; is the current char between this value (inclusive)...
@@ -492,7 +492,7 @@
db "@"
SetMemEvent: ; 1364f
- ld hl, EngineBuffer1 ; wd03e (aliases: MenuItemsList, CurFruitTree, CurInput)
+ ld hl, EngineBuffer1
ld a, [hli]
ld d, [hl]
ld e, a
@@ -1178,10 +1178,10 @@
INCLUDE "battle/link_result.asm"
ChrisBackpic: ; 2ba1a
-INCBIN "gfx/misc/player.2bpp.lz"
+INCBIN "gfx/player/chris_back.2bpp.lz"
DudeBackpic: ; 2bbaa
-INCBIN "gfx/misc/dude.2bpp.lz"
+INCBIN "gfx/battle/dude.2bpp.lz"
SECTION "bankB", ROMX
@@ -1481,7 +1481,7 @@
jr nz, .othertrainer
ld a, [OtherTrainerID]
- cp 4 ; Rival in Indigo Plateau
+ cp RIVAL2_2_CHIKORITA ; Rival in Indigo Plateau
jr c, .done
ld de, MUSIC_CHAMPION_BATTLE
jr .done
@@ -1969,7 +1969,7 @@
dw PackFGFX + (15 tiles) * 2
PackFGFX: ; 48e9b
-INCBIN "gfx/misc/pack_f.2bpp"
+INCBIN "gfx/pack/pack_f.2bpp"
Special_MoveTutor: ; 4925b
call FadeToMenu
@@ -2487,10 +2487,10 @@
ret
Shrink1Pic: ; 4d249
-INCBIN "gfx/shrink1.2bpp.lz"
+INCBIN "gfx/shrink/shrink1.2bpp.lz"
Shrink2Pic: ; 4d2d9
-INCBIN "gfx/shrink2.2bpp.lz"
+INCBIN "gfx/shrink/shrink2.2bpp.lz"
LinkMonStatsScreen: ; 4d319
ld a, [wMenuCursorY]
@@ -3332,7 +3332,7 @@
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
xor a
call ByteFill
- ld hl, wd000 ; UnknBGPals
+ ld hl, UnknBGPals
ld c, 4 tiles
.load_white_palettes
ld a, (palred 31 + palgreen 31 + palblue 31) % $100
@@ -4501,13 +4501,13 @@
ld b, a
ld a, [wMenuCursorY]
dec a
- ld [Buffer2], a ; wd1eb (aliases: MovementType)
+ ld [Buffer2], a
cp b
jr z, .skip
call .SwapMonAndMail
ld a, [Buffer3]
call .ClearSprite
- ld a, [Buffer2] ; wd1eb (aliases: MovementType)
+ ld a, [Buffer2]
call .ClearSprite
.skip
ret
@@ -4540,7 +4540,7 @@
push de
push bc
ld bc, PartySpecies
- ld a, [Buffer2] ; wd1eb (aliases: MovementType)
+ ld a, [Buffer2]
ld l, a
ld h, $0
add hl, bc
@@ -4556,8 +4556,8 @@
ld [hl], a
pop af
ld [de], a
- ld a, [Buffer2] ; wd1eb (aliases: MovementType)
- ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld a, [Buffer2]
+ ld hl, PartyMon1Species
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
push hl
@@ -4565,7 +4565,7 @@
ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
ld a, [Buffer3]
- ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld hl, PartyMon1
ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
pop de
@@ -4576,7 +4576,7 @@
ld hl, wd002
ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
- ld a, [Buffer2] ; wd1eb (aliases: MovementType)
+ ld a, [Buffer2]
ld hl, PartyMonOT
call SkipNames
push hl
@@ -4591,7 +4591,7 @@
ld hl, wd002
call .CopyName
ld hl, PartyMonNicknames
- ld a, [Buffer2] ; wd1eb (aliases: MovementType)
+ ld a, [Buffer2]
call SkipNames
push hl
call .CopyNameTowd002
@@ -4605,7 +4605,7 @@
ld hl, wd002
call .CopyName
ld hl, sPartyMail
- ld a, [Buffer2] ; wd1eb (aliases: MovementType)
+ ld a, [Buffer2]
ld bc, MAIL_STRUCT_LENGTH
call AddNTimes
push hl
@@ -4857,13 +4857,13 @@
ret
ChrisCardPic: ; 88365
-INCBIN "gfx/misc/chris_card.2bpp"
+INCBIN "gfx/trainer_card/chris_card.2bpp"
KrisCardPic: ; 88595
-INCBIN "gfx/misc/kris_card.2bpp"
+INCBIN "gfx/trainer_card/kris_card.2bpp"
CardGFX: ; 887c5
-INCBIN "gfx/misc/trainer_card.2bpp"
+INCBIN "gfx/trainer_card/trainer_card.2bpp"
GetPlayerBackpic: ; 88825
ld a, [PlayerGender]
@@ -4943,10 +4943,10 @@
ret
ChrisPic: ; 888a9
-INCBIN "gfx/misc/chris.2bpp"
+INCBIN "gfx/player/chris.2bpp"
KrisPic: ; 88bb9
-INCBIN "gfx/misc/kris.2bpp"
+INCBIN "gfx/player/kris.2bpp"
GetKrisBackpic: ; 88ec9
; Kris's backpic is uncompressed.
@@ -4957,7 +4957,7 @@
ret
KrisBackpic: ; 88ed6
-INCBIN "gfx/misc/kris_back.2bpp"
+INCBIN "gfx/player/kris_back.2bpp"
String_89116:
db "-----@"
@@ -5310,7 +5310,7 @@
SECTION "bank36", ROMX
-FontInversed: INCBIN "gfx/misc/font_inversed.1bpp"
+FontInversed: INCBIN "gfx/font/font_inversed.1bpp"
SECTION "Pic Animations 3", ROMX
@@ -5452,7 +5452,7 @@
SECTION "bank39", ROMX
CopyrightGFX:: ; e4000
-INCBIN "gfx/misc/copyright.2bpp"
+INCBIN "gfx/splash/copyright.2bpp"
INCLUDE "engine/options_menu.asm"
INCLUDE "engine/crystal_intro.asm"
@@ -5595,7 +5595,7 @@
SECTION "bank77", ROMX
UnownFont: ; 1dc000
-INCBIN "gfx/misc/unown_font.2bpp"
+INCBIN "gfx/font/unown_font.2bpp"
INCLUDE "misc/printer_77.asm"
@@ -5908,7 +5908,7 @@
ret
PokegearGFX: ; 1de2e4
-INCBIN "gfx/misc/pokegear.2bpp.lz"
+INCBIN "gfx/pokegear/pokegear.2bpp.lz"
IsMailEuropean: ; 1de5c8
; return 1 if French
--- a/maps/AzaleaTown.asm
+++ b/maps/AzaleaTown.asm
@@ -72,7 +72,7 @@
iftrue .Chikorita
winlosstext AzaleaTownRivalWinText, AzaleaTownRivalLossText
setlasttalked AZALEATOWN_SILVER
- loadtrainer RIVAL1, RIVAL1_6
+ loadtrainer RIVAL1, RIVAL1_2_TOTODILE
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -81,7 +81,7 @@
.Totodile:
winlosstext AzaleaTownRivalWinText, AzaleaTownRivalLossText
setlasttalked AZALEATOWN_SILVER
- loadtrainer RIVAL1, RIVAL1_4
+ loadtrainer RIVAL1, RIVAL1_2_CHIKORITA
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -90,7 +90,7 @@
.Chikorita:
winlosstext AzaleaTownRivalWinText, AzaleaTownRivalLossText
setlasttalked AZALEATOWN_SILVER
- loadtrainer RIVAL1, RIVAL1_5
+ loadtrainer RIVAL1, RIVAL1_2_CYNDAQUIL
startbattle
dontrestartmapmusic
reloadmapafterbattle
--- a/maps/BurnedTower1F.asm
+++ b/maps/BurnedTower1F.asm
@@ -73,7 +73,7 @@
iftrue .chikorita
winlosstext BurnedTowerSilver_WinText, BurnedTowerSilver_LossText
setlasttalked BURNEDTOWER1F_SILVER
- loadtrainer RIVAL1, RIVAL1_9
+ loadtrainer RIVAL1, RIVAL1_3_TOTODILE
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -82,7 +82,7 @@
.totodile
winlosstext BurnedTowerSilver_WinText, BurnedTowerSilver_LossText
setlasttalked BURNEDTOWER1F_SILVER
- loadtrainer RIVAL1, RIVAL1_7
+ loadtrainer RIVAL1, RIVAL1_3_CHIKORITA
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -91,7 +91,7 @@
.chikorita
winlosstext BurnedTowerSilver_WinText, BurnedTowerSilver_LossText
setlasttalked BURNEDTOWER1F_SILVER
- loadtrainer RIVAL1, RIVAL1_8
+ loadtrainer RIVAL1, RIVAL1_3_CYNDAQUIL
startbattle
dontrestartmapmusic
reloadmapafterbattle
--- a/maps/CherrygroveCity.asm
+++ b/maps/CherrygroveCity.asm
@@ -125,7 +125,7 @@
iftrue .Chikorita
winlosstext SilverCherrygroveWinText, SilverCherrygroveLossText
setlasttalked CHERRYGROVECITY_SILVER
- loadtrainer RIVAL1, RIVAL1_3
+ loadtrainer RIVAL1, RIVAL1_1_TOTODILE
writecode VAR_BATTLETYPE, BATTLETYPE_CANLOSE
startbattle
dontrestartmapmusic
@@ -136,7 +136,7 @@
.Totodile:
winlosstext SilverCherrygroveWinText, SilverCherrygroveLossText
setlasttalked CHERRYGROVECITY_SILVER
- loadtrainer RIVAL1, RIVAL1_1
+ loadtrainer RIVAL1, RIVAL1_1_CHIKORITA
writecode VAR_BATTLETYPE, BATTLETYPE_CANLOSE
startbattle
dontrestartmapmusic
@@ -147,7 +147,7 @@
.Chikorita:
winlosstext SilverCherrygroveWinText, SilverCherrygroveLossText
setlasttalked CHERRYGROVECITY_SILVER
- loadtrainer RIVAL1, RIVAL1_2
+ loadtrainer RIVAL1, RIVAL1_1_CYNDAQUIL
writecode VAR_BATTLETYPE, BATTLETYPE_CANLOSE
startbattle
dontrestartmapmusic
--- a/maps/IndigoPlateauPokeCenter1F.asm
+++ b/maps/IndigoPlateauPokeCenter1F.asm
@@ -102,7 +102,7 @@
; Cyndaquil
winlosstext PlateauRivalWinText, PlateauRivalLoseText
setlasttalked INDIGOPLATEAUPOKECENTER1F_SILVER
- loadtrainer RIVAL2, 6
+ loadtrainer RIVAL2, RIVAL2_2_TOTODILE
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -111,7 +111,7 @@
.Totodile:
winlosstext PlateauRivalWinText, PlateauRivalLoseText
setlasttalked INDIGOPLATEAUPOKECENTER1F_SILVER
- loadtrainer RIVAL2, 4
+ loadtrainer RIVAL2, RIVAL2_2_CHIKORITA
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -120,7 +120,7 @@
.Chikorita:
winlosstext PlateauRivalWinText, PlateauRivalLoseText
setlasttalked INDIGOPLATEAUPOKECENTER1F_SILVER
- loadtrainer RIVAL2, 5
+ loadtrainer RIVAL2, RIVAL2_2_CYNDAQUIL
startbattle
dontrestartmapmusic
reloadmapafterbattle
--- a/maps/MountMoon.asm
+++ b/maps/MountMoon.asm
@@ -36,7 +36,7 @@
iftrue .Chikorita
winlosstext MountMoonSilverTextWin, MountMoonSilverTextLoss
setlasttalked MOUNTMOON_SILVER
- loadtrainer RIVAL2, 3
+ loadtrainer RIVAL2, RIVAL2_1_TOTODILE
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -45,7 +45,7 @@
.Totodile:
winlosstext MountMoonSilverTextWin, MountMoonSilverTextLoss
setlasttalked MOUNTMOON_SILVER
- loadtrainer RIVAL2, 1
+ loadtrainer RIVAL2, RIVAL2_1_CHIKORITA
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -54,7 +54,7 @@
.Chikorita:
winlosstext MountMoonSilverTextWin, MountMoonSilverTextLoss
setlasttalked MOUNTMOON_SILVER
- loadtrainer RIVAL2, 2
+ loadtrainer RIVAL2, RIVAL2_1_CYNDAQUIL
startbattle
dontrestartmapmusic
reloadmapafterbattle
--- a/maps/RadioTower4F.asm
+++ b/maps/RadioTower4F.asm
@@ -67,7 +67,7 @@
end
TrainerExecutivem2:
- trainer EVENT_BEAT_ROCKET_EXECUTIVEM_2, EXECUTIVEM, 2, Executivem2SeenText, Executivem2BeatenText, 0, Executivem2Script
+ trainer EVENT_BEAT_ROCKET_EXECUTIVEM_2, EXECUTIVEM, EXECUTIVEM_2, Executivem2SeenText, Executivem2BeatenText, 0, Executivem2Script
Executivem2Script:
end_if_just_battled
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -41,7 +41,7 @@
closetext
winlosstext FakeDirectorWinText, 0
setlasttalked RADIOTOWER5F_DIRECTOR
- loadtrainer EXECUTIVEM, 3
+ loadtrainer EXECUTIVEM, EXECUTIVEM_3
startbattle
reloadmapafterbattle
opentext
@@ -70,7 +70,7 @@
end
TrainerExecutivef1:
- trainer EVENT_BEAT_ROCKET_EXECUTIVEF_1, EXECUTIVEF, 1, Executivef1SeenText, Executivef1BeatenText, 0, Executivef1Script
+ trainer EVENT_BEAT_ROCKET_EXECUTIVEF_1, EXECUTIVEF, EXECUTIVEF_1, Executivef1SeenText, Executivef1BeatenText, 0, Executivef1Script
Executivef1Script:
end_if_just_battled
@@ -90,7 +90,7 @@
closetext
winlosstext RadioTower5FRocketBossWinText, 0
setlasttalked RADIOTOWER5F_ROCKET
- loadtrainer EXECUTIVEM, 1
+ loadtrainer EXECUTIVEM, EXECUTIVEM_1
startbattle
reloadmapafterbattle
opentext
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -102,7 +102,7 @@
applymovement TEAMROCKETBASEB2F_ROCKET_GIRL, MovementData_0x6d248
winlosstext UnknownText_0x6d45c, 0
setlasttalked TEAMROCKETBASEB2F_ROCKET_GIRL
- loadtrainer EXECUTIVEF, 2
+ loadtrainer EXECUTIVEF, EXECUTIVEF_2
startbattle
disappear TEAMROCKETBASEB2F_DRAGON
setevent EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
--- a/maps/TeamRocketBaseB3F.asm
+++ b/maps/TeamRocketBaseB3F.asm
@@ -109,7 +109,7 @@
applymovement TEAMROCKETBASEB3F_ROCKET1, MovementData_0x6e142
winlosstext UnknownText_0x6e511, 0
setlasttalked TEAMROCKETBASEB3F_ROCKET1
- loadtrainer EXECUTIVEM, 4
+ loadtrainer EXECUTIVEM, EXECUTIVEM_4
startbattle
reloadmapafterbattle
setevent EVENT_BEAT_ROCKET_EXECUTIVEM_4
--- a/maps/UndergroundPathSwitchRoomEntrances.asm
+++ b/maps/UndergroundPathSwitchRoomEntrances.asm
@@ -178,7 +178,7 @@
iftrue .Chikorita
winlosstext UndergroundSilverWinText, UndergroundSilverLossText
setlasttalked UNDERGROUNDPATHSWITCHROOMENTRANCES_SILVER
- loadtrainer RIVAL1, RIVAL1_12
+ loadtrainer RIVAL1, RIVAL1_4_TOTODILE
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -187,7 +187,7 @@
.Totodile:
winlosstext UndergroundSilverWinText, UndergroundSilverLossText
setlasttalked UNDERGROUNDPATHSWITCHROOMENTRANCES_SILVER
- loadtrainer RIVAL1, RIVAL1_10
+ loadtrainer RIVAL1, RIVAL1_4_CHIKORITA
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -196,7 +196,7 @@
.Chikorita:
winlosstext UndergroundSilverWinText, UndergroundSilverLossText
setlasttalked UNDERGROUNDPATHSWITCHROOMENTRANCES_SILVER
- loadtrainer RIVAL1, RIVAL1_11
+ loadtrainer RIVAL1, RIVAL1_4_CYNDAQUIL
startbattle
dontrestartmapmusic
reloadmapafterbattle
--- a/maps/VictoryRoad.asm
+++ b/maps/VictoryRoad.asm
@@ -66,7 +66,7 @@
iftrue UnknownScript_0x7450f
winlosstext UnknownText_0x7463d, UnknownText_0x747aa
setlasttalked VICTORYROAD_SILVER
- loadtrainer RIVAL1, RIVAL1_15
+ loadtrainer RIVAL1, RIVAL1_5_TOTODILE
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -75,7 +75,7 @@
UnknownScript_0x744ff:
winlosstext UnknownText_0x7463d, UnknownText_0x747aa
setlasttalked VICTORYROAD_SILVER
- loadtrainer RIVAL1, RIVAL1_13
+ loadtrainer RIVAL1, RIVAL1_5_CHIKORITA
startbattle
dontrestartmapmusic
reloadmapafterbattle
@@ -84,7 +84,7 @@
UnknownScript_0x7450f:
winlosstext UnknownText_0x7463d, UnknownText_0x747aa
setlasttalked VICTORYROAD_SILVER
- loadtrainer RIVAL1, RIVAL1_14
+ loadtrainer RIVAL1, RIVAL1_5_CYNDAQUIL
startbattle
dontrestartmapmusic
reloadmapafterbattle
--- a/maps/map_headers.asm
+++ b/maps/map_headers.asm
@@ -72,11 +72,11 @@
map_header BurnedTowerB1F, TILESET_CAVE, CAVE, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, FISHGROUP_SHORE
map_header NationalPark, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_NATIONAL_PARK, 0, PALETTE_AUTO, FISHGROUP_SHORE
map_header NationalParkBugContest, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, 0, PALETTE_AUTO, FISHGROUP_SHORE
- map_header RadioTower1F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
- map_header RadioTower2F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
- map_header RadioTower3F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
- map_header RadioTower4F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
- map_header RadioTower5F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+ map_header RadioTower1F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, (1 << RADIO_TOWER_MUSIC) | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+ map_header RadioTower2F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, (1 << RADIO_TOWER_MUSIC) | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+ map_header RadioTower3F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, (1 << RADIO_TOWER_MUSIC) | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+ map_header RadioTower4F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, (1 << RADIO_TOWER_MUSIC) | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
+ map_header RadioTower5F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, (1 << RADIO_TOWER_MUSIC) | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, FISHGROUP_SHORE
map_header RuinsofAlphOutside, TILESET_JOHTO_1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_AUTO, FISHGROUP_POND
map_header RuinsofAlphHoOhChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
map_header RuinsofAlphKabutoChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, FISHGROUP_SHORE
--- a/misc/battle_tower_5c.asm
+++ b/misc/battle_tower_5c.asm
@@ -1361,7 +1361,7 @@
cp EGG
jr nz, .not_egg
push hl
- ld hl, PartyMonOT ; wddff (aliases: PartyMonOT)
+ ld hl, PartyMonOT
ld de, $6 ; NAME_LENGTH
ld a, b
and a
--- a/misc/fixed_words.asm
+++ b/misc/fixed_words.asm
@@ -3416,6 +3416,7 @@
; 11daac
MobileEZChatCategoryPointers: ; 11daac
+; entries correspond to EZCHAT_* constants
dw .Types ; 01
dw .Greetings ; 02
dw .People ; 03
--- a/misc/gfx_41.asm
+++ b/misc/gfx_41.asm
@@ -632,7 +632,7 @@
BoltEmote: INCBIN "gfx/emotes/bolt.2bpp"
SleepEmote: INCBIN "gfx/emotes/sleep.2bpp"
FishEmote: INCBIN "gfx/emotes/fish.2bpp"
-JumpShadowGFX: INCBIN "gfx/misc/shadow.2bpp"
-FishingRodGFX2: INCBIN "gfx/misc/fishing2.2bpp"
-BoulderDustGFX: INCBIN "gfx/misc/boulderdust.2bpp"
-FishingRodGFX4: INCBIN "gfx/misc/fishing4.2bpp"
+JumpShadowGFX: INCBIN "gfx/ow_fx/shadow.2bpp"
+FishingRodGFX: INCBIN "gfx/ow_fx/fishing_rod.2bpp"
+BoulderDustGFX: INCBIN "gfx/ow_fx/boulder_dust.2bpp"
+GrassRustleGFX: INCBIN "gfx/ow_fx/grass_rustle.2bpp"
--- a/misc/mobile_12.asm
+++ b/misc/mobile_12.asm
@@ -40,9 +40,9 @@
ld a, $5
ld [MusicFade], a
ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld c, 20
call DelayFrames
ld b, $1
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -1804,7 +1804,7 @@
call FarCall_de
ld a, BANK(BattleMenuDataHeader)
ld [wMenuData2_2DMenuItemStringsBank], a
- ld a, [wd0d2]
+ ld a, [wBattleMenuCursorBuffer]
ld [wMenuCursorBuffer], a
call Function100e72
call Function100b45
@@ -1811,7 +1811,7 @@
callba InitPartyMenuBGPal7
call Function100ed4
ld a, [wMenuCursorBuffer]
- ld [wd0d2], a
+ ld [wBattleMenuCursorBuffer], a
call ExitMenu
ret
; 100b45
@@ -5410,7 +5410,7 @@
dec a
ld [CurPartyMon], a
xor a
- ld [wd10b], a
+ ld [wPokemonWithdrawDepositParameter], a
callba RemoveMonFromPartyOrBox
ld hl, PartyCount
inc [hl]
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -83,7 +83,7 @@
mobiletradeanim_end
RunMobileTradeAnim_Frontpics: ; 10805b
- ld hl, wTradeAnimPointer
+ ld hl, wTradeAnimAddress
ld [hl], e
inc hl
ld [hl], d
@@ -113,7 +113,7 @@
; 108089
RunMobileTradeAnim_NoFrontpics: ; 108089
- ld hl, wTradeAnimPointer
+ ld hl, wTradeAnimAddress
ld [hl], e
inc hl
ld [hl], d
@@ -411,7 +411,7 @@
; 1082b7
GetMobileTradeAnimByte: ; 1082b7
- ld hl, wTradeAnimPointer
+ ld hl, wTradeAnimAddress
ld e, [hl]
inc hl
ld d, [hl]
@@ -1313,7 +1313,7 @@
.EggTemplate: ; 108a1d
db "タマゴ"
next "おや/?????"
- next "<ID>№·?????"
+ next "<ID>№<DOT>?????"
db "@"
; 108a33
@@ -1353,10 +1353,10 @@
; 108a79
.MonTemplate: ; 108a79
- db "─ №·"
+ db "─ №<DOT>"
next ""
next "おや/"
- next "<ID>№·"
+ next "<ID>№<DOT>"
db "@"
; 108a87
--- a/misc/mobile_45_sprite_engine.asm
+++ b/misc/mobile_45_sprite_engine.asm
@@ -496,9 +496,9 @@
ld [MusicFade], a
ld de, MUSIC_MOBILE_ADAPTER
ld a, e
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, d
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld a, [$c319]
inc a
ld [$c319], a
@@ -680,9 +680,9 @@
ld a, $8
ld [MusicFade], a
ld a, [wMapMusic]
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
xor a
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
xor a
ld [$c319], a
ld [wc30d], a
@@ -728,9 +728,9 @@
ld a, $8
ld [MusicFade], a
ld a, [wMapMusic]
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
xor a
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
jr .asm_116439
.asm_11642a
@@ -737,9 +737,9 @@
ld a, $8
ld [MusicFade], a
ld a, $0
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, $0
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
.asm_116439
xor a
@@ -757,9 +757,9 @@
ld a, $8
ld [MusicFade], a
ld a, [wMapMusic]
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
xor a
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
xor a
ld [$c319], a
ld [wc30d], a
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -559,9 +559,9 @@
ld de, MUSIC_MOBILE_CENTER
ld a, e
ld [wMapMusic], a
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, d
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
call PlayMusic
call ReturnToMapFromSubmenu
call CloseSubmenu
@@ -4728,9 +4728,9 @@
ld [MusicFade], a
ld de, MUSIC_NONE
ld a, e
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, d
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld a, " "
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
@@ -5274,9 +5274,9 @@
ld a, $8
ld [MusicFade], a
ld a, [wMapMusic]
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
xor a
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld hl, wc303
set 7, [hl]
ret
--- a/misc/mobile_menu.asm
+++ b/misc/mobile_menu.asm
@@ -856,9 +856,9 @@
ld a, $5
ld [MusicFade], a
ld a, e
- ld [MusicFadeIDLo], a
+ ld [MusicFadeID], a
ld a, d
- ld [MusicFadeIDHi], a
+ ld [MusicFadeID + 1], a
ld c, 22
call DelayFrames
ret
--- a/misc/printer_77.asm
+++ b/misc/printer_77.asm
@@ -150,9 +150,9 @@
lb bc, BANK(MobileLvIcon), 1
call Request1bpp
- ld de, ShinyIcon
+ ld de, ShinyIconGFX
ld hl, VTiles2 tile $3f
- lb bc, BANK(ShinyIcon), 1
+ lb bc, BANK(ShinyIconGFX), 1
call Get2bpp
xor a
--- a/predef/cgb.asm
+++ b/predef/cgb.asm
@@ -204,7 +204,7 @@
_CGB_StatsScreenHPPals: ; 8edb
ld de, UnknBGPals
- ld a, [wcda1]
+ ld a, [wCurHPPal]
ld l, a
ld h, $0
add hl, hl
--- a/predef/sgb.asm
+++ b/predef/sgb.asm
@@ -168,7 +168,7 @@
ld de, wSGBPals
ld bc, $10
call CopyBytes
- ld a, [wcda1]
+ ld a, [wCurHPPal]
ld l, a
ld h, 0
add hl, hl
--- a/tilesets/animations.asm
+++ b/tilesets/animations.asm
@@ -304,7 +304,7 @@
StandingTileFrame8: ; fc2ff
ld a, [TileAnimationTimer]
inc a
- and a, 7
+ and 7
ld [TileAnimationTimer], a
ret
; fc309
@@ -492,7 +492,7 @@
; fc41c
WaterTileFrames: ; fc41c
- INCBIN "gfx/tilesets/water.2bpp"
+ INCBIN "gfx/tilesets/water/water.2bpp"
; fc45c
--- a/tilesets/collision.asm
+++ b/tilesets/collision.asm
@@ -1,9 +1,3 @@
-
-; 00 land
-; 01 water
-; 0f wall
-; 11 talkable water
-; 1f talkable wall
NONTALKABLE EQUS "db"
TALKABLE EQUS "db TALK +"
NONTALKABLE LANDTILE ; 00
--- a/tilesets/tileset_headers.asm
+++ b/tilesets/tileset_headers.asm
@@ -1,3 +1,5 @@
+; entries correspond to TILESET_* constants
+
tileset: macro
dba \1GFX, \1Meta, \1Coll
dw \1Anim
--- a/trainers/trainers.asm
+++ b/trainers/trainers.asm
@@ -4,10 +4,10 @@
; Name
; String in format "TEXT@"
; Type
- ; 0: Level, species
- ; 1: Level, species, moves
- ; 2: Level, species, item
- ; 3: Level, species, item, moves
+ ; TRAINERTYPE_NORMAL: level, species
+ ; TRAINERTYPE_MOVES: level, species, moves
+ ; TRAINERTYPE_ITEM: level, species, item
+ ; TRAINERTYPE_ITEM_MOVES: level, species, item, moves
; Party
; Up to six monsters following the data type
; $ff
@@ -19,7 +19,7 @@
; FALKNER (1)
db "FALKNER@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -47,7 +47,7 @@
; WHITNEY (1)
db "WHITNEY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -75,7 +75,7 @@
; BUGSY (1)
db "BUGSY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -109,7 +109,7 @@
; MORTY (1)
db "MORTY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -149,7 +149,7 @@
; PRYCE (1)
db "PRYCE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -183,7 +183,7 @@
; JASMINE (1)
db "JASMINE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -217,7 +217,7 @@
; CHUCK (1)
db "CHUCK@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -245,7 +245,7 @@
; CLAIR (1)
db "CLAIR@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -285,7 +285,7 @@
; RIVAL1 (1)
db "?@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 5, CHIKORITA
@@ -296,7 +296,7 @@
; RIVAL1 (2)
db "?@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 5, CYNDAQUIL
@@ -307,7 +307,7 @@
; RIVAL1 (3)
db "?@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 5, TOTODILE
@@ -318,7 +318,7 @@
; RIVAL1 (4)
db "?@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 12, GASTLY
@@ -331,7 +331,7 @@
; RIVAL1 (5)
db "?@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 12, GASTLY
@@ -344,7 +344,7 @@
; RIVAL1 (6)
db "?@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 12, GASTLY
@@ -357,7 +357,7 @@
; RIVAL1 (7)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -391,7 +391,7 @@
; RIVAL1 (8)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -425,7 +425,7 @@
; RIVAL1 (9)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -459,7 +459,7 @@
; RIVAL1 (10)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -499,7 +499,7 @@
; RIVAL1 (11)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -539,7 +539,7 @@
; RIVAL1 (12)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -579,7 +579,7 @@
; RIVAL1 (13)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -625,7 +625,7 @@
; RIVAL1 (14)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -671,7 +671,7 @@
; RIVAL1 (15)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -729,7 +729,7 @@
; WILL (1)
db "WILL@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -775,7 +775,7 @@
; CAL (1)
db "CAL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, CHIKORITA
@@ -788,7 +788,7 @@
; CAL (2)
db "CAL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, BAYLEEF
@@ -801,7 +801,7 @@
; CAL (3)
db "CAL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 50, MEGANIUM
@@ -820,7 +820,7 @@
; BRUNO (1)
db "BRUNO@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -866,7 +866,7 @@
; KAREN (1)
db "KAREN@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -912,7 +912,7 @@
; KOGA (1)
db "KOGA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -958,7 +958,7 @@
; CHAMPION (1)
db "LANCE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1010,7 +1010,7 @@
; BROCK (1)
db "BROCK@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1056,7 +1056,7 @@
; MISTY (1)
db "MISTY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1096,7 +1096,7 @@
; LT_SURGE (1)
db "LT.SURGE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1142,7 +1142,7 @@
; SCIENTIST (1)
db "ROSS@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 22, KOFFING
@@ -1154,7 +1154,7 @@
; SCIENTIST (2)
db "MITCH@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, DITTO
@@ -1165,7 +1165,7 @@
; SCIENTIST (3)
db "JED@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, MAGNEMITE
@@ -1178,7 +1178,7 @@
; SCIENTIST (4)
db "MARC@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, MAGNEMITE
@@ -1191,7 +1191,7 @@
; SCIENTIST (5)
db "RICH@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1213,7 +1213,7 @@
; ERIKA (1)
db "ERIKA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1253,7 +1253,7 @@
; YOUNGSTER (1)
db "JOEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 4, RATTATA
@@ -1264,7 +1264,7 @@
; YOUNGSTER (2)
db "MIKEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 2, PIDGEY
@@ -1276,7 +1276,7 @@
; YOUNGSTER (3)
db "ALBERT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 6, RATTATA
@@ -1288,7 +1288,7 @@
; YOUNGSTER (4)
db "GORDON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, WOOPER
@@ -1299,7 +1299,7 @@
; YOUNGSTER (5)
db "SAMUEL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 7, RATTATA
@@ -1313,7 +1313,7 @@
; YOUNGSTER (6)
db "IAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, MANKEY
@@ -1325,7 +1325,7 @@
; YOUNGSTER (7)
db "JOEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, RATTATA
@@ -1336,7 +1336,7 @@
; YOUNGSTER (8)
db "JOEY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1352,7 +1352,7 @@
; YOUNGSTER (9)
db "WARREN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, FEAROW
@@ -1363,7 +1363,7 @@
; YOUNGSTER (10)
db "JIMMY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, RATICATE
@@ -1375,7 +1375,7 @@
; YOUNGSTER (11)
db "OWEN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, GROWLITHE
@@ -1386,7 +1386,7 @@
; YOUNGSTER (12)
db "JASON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, SANDSLASH
@@ -1398,7 +1398,7 @@
; YOUNGSTER (13)
db "JOEY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1414,7 +1414,7 @@
; YOUNGSTER (14)
db "JOEY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1436,7 +1436,7 @@
; SCHOOLBOY (1)
db "JACK@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 12, ODDISH
@@ -1448,7 +1448,7 @@
; SCHOOLBOY (2)
db "KIPP@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, VOLTORB
@@ -1462,7 +1462,7 @@
; SCHOOLBOY (3)
db "ALAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 16, TANGELA
@@ -1473,7 +1473,7 @@
; SCHOOLBOY (4)
db "JOHNNY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 29, BELLSPROUT
@@ -1486,7 +1486,7 @@
; SCHOOLBOY (5)
db "DANNY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 31, JYNX
@@ -1499,7 +1499,7 @@
; SCHOOLBOY (6)
db "TOMMY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, XATU
@@ -1511,7 +1511,7 @@
; SCHOOLBOY (7)
db "DUDLEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, ODDISH
@@ -1522,7 +1522,7 @@
; SCHOOLBOY (8)
db "JOE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, TANGELA
@@ -1534,7 +1534,7 @@
; SCHOOLBOY (9)
db "BILLY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, PARAS
@@ -1548,7 +1548,7 @@
; SCHOOLBOY (10)
db "CHAD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 19, MR__MIME
@@ -1559,7 +1559,7 @@
; SCHOOLBOY (11)
db "NATE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, LEDIAN
@@ -1571,7 +1571,7 @@
; SCHOOLBOY (12)
db "RICKY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, AIPOM
@@ -1583,7 +1583,7 @@
; SCHOOLBOY (13)
db "JACK@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 14, ODDISH
@@ -1595,7 +1595,7 @@
; SCHOOLBOY (14)
db "JACK@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, GLOOM
@@ -1607,7 +1607,7 @@
; SCHOOLBOY (15)
db "ALAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, TANGELA
@@ -1619,7 +1619,7 @@
; SCHOOLBOY (16)
db "ALAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, NATU
@@ -1633,7 +1633,7 @@
; SCHOOLBOY (17)
db "CHAD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 19, MR__MIME
@@ -1645,7 +1645,7 @@
; SCHOOLBOY (18)
db "CHAD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, MR__MIME
@@ -1657,7 +1657,7 @@
; SCHOOLBOY (19)
db "JACK@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, GLOOM
@@ -1670,7 +1670,7 @@
; SCHOOLBOY (20)
db "JACK@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1698,7 +1698,7 @@
; SCHOOLBOY (21)
db "ALAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, NATU
@@ -1712,7 +1712,7 @@
; SCHOOLBOY (22)
db "ALAN@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1746,7 +1746,7 @@
; SCHOOLBOY (23)
db "CHAD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, MR__MIME
@@ -1758,7 +1758,7 @@
; SCHOOLBOY (24)
db "CHAD@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1786,7 +1786,7 @@
; BIRD_KEEPER (1)
db "ROD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 7, PIDGEY
@@ -1798,7 +1798,7 @@
; BIRD_KEEPER (2)
db "ABE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 9, SPEAROW
@@ -1809,7 +1809,7 @@
; BIRD_KEEPER (3)
db "BRYAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 12, PIDGEY
@@ -1821,7 +1821,7 @@
; BIRD_KEEPER (4)
db "THEO@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, PIDGEY
@@ -1836,7 +1836,7 @@
; BIRD_KEEPER (5)
db "TOBY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, DODUO
@@ -1849,7 +1849,7 @@
; BIRD_KEEPER (6)
db "DENIS@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, SPEAROW
@@ -1862,7 +1862,7 @@
; BIRD_KEEPER (7)
db "VANCE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, PIDGEOTTO
@@ -1874,7 +1874,7 @@
; BIRD_KEEPER (8)
db "HANK@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 12, PIDGEY
@@ -1886,7 +1886,7 @@
; BIRD_KEEPER (9)
db "ROY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 29, FEAROW
@@ -1898,7 +1898,7 @@
; BIRD_KEEPER (10)
db "BORIS@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, DODUO
@@ -1911,7 +1911,7 @@
; BIRD_KEEPER (11)
db "BOB@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, NOCTOWL
@@ -1922,7 +1922,7 @@
; BIRD_KEEPER (12)
db "JOSE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 36, FARFETCH_D
@@ -1933,7 +1933,7 @@
; BIRD_KEEPER (13)
db "PETER@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 6, PIDGEY
@@ -1946,7 +1946,7 @@
; BIRD_KEEPER (14)
db "JOSE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, FARFETCH_D
@@ -1957,7 +1957,7 @@
; BIRD_KEEPER (15)
db "PERRY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, FARFETCH_D
@@ -1968,7 +1968,7 @@
; BIRD_KEEPER (16)
db "BRET@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, PIDGEOTTO
@@ -1980,7 +1980,7 @@
; BIRD_KEEPER (17)
db "JOSE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -1996,7 +1996,7 @@
; BIRD_KEEPER (18)
db "VANCE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, PIDGEOTTO
@@ -2008,7 +2008,7 @@
; BIRD_KEEPER (19)
db "VANCE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2036,7 +2036,7 @@
; LASS (1)
db "CARRIE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2052,7 +2052,7 @@
; LASS (2)
db "BRIDGET@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, JIGGLYPUFF
@@ -2065,7 +2065,7 @@
; LASS (3)
db "ALICE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, GLOOM
@@ -2078,7 +2078,7 @@
; LASS (4)
db "KRISE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 12, ODDISH
@@ -2090,7 +2090,7 @@
; LASS (5)
db "CONNIE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 21, MARILL
@@ -2101,7 +2101,7 @@
; LASS (6)
db "LINDA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, BULBASAUR
@@ -2114,7 +2114,7 @@
; LASS (7)
db "LAURA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, GLOOM
@@ -2127,7 +2127,7 @@
; LASS (8)
db "SHANNON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 29, PARAS
@@ -2140,7 +2140,7 @@
; LASS (9)
db "MICHELLE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, SKIPLOOM
@@ -2153,7 +2153,7 @@
; LASS (10)
db "DANA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2175,7 +2175,7 @@
; LASS (11)
db "ELLEN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, WIGGLYTUFF
@@ -2187,7 +2187,7 @@
; LASS (12)
db "CONNIE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 21, MARILL
@@ -2198,7 +2198,7 @@
; LASS (13)
db "CONNIE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 21, MARILL
@@ -2209,7 +2209,7 @@
; LASS (14)
db "DANA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2231,7 +2231,7 @@
; LASS (15)
db "DANA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2253,7 +2253,7 @@
; LASS (16)
db "DANA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2275,7 +2275,7 @@
; LASS (17)
db "DANA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2303,7 +2303,7 @@
; JANINE (1)
db "JANINE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2349,7 +2349,7 @@
; COOLTRAINERM (1)
db "NICK@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2377,7 +2377,7 @@
; COOLTRAINERM (2)
db "AARON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, IVYSAUR
@@ -2390,7 +2390,7 @@
; COOLTRAINERM (3)
db "PAUL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, DRATINI
@@ -2403,7 +2403,7 @@
; COOLTRAINERM (4)
db "CODY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, HORSEA
@@ -2415,7 +2415,7 @@
; COOLTRAINERM (5)
db "MIKE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 37, DRAGONAIR
@@ -2426,7 +2426,7 @@
; COOLTRAINERM (6)
db "GAVEN@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2454,7 +2454,7 @@
; COOLTRAINERM (7)
db "GAVEN@"
- db 3 ; item + moves
+ db TRAINERTYPE_ITEM_MOVES
; party
@@ -2482,7 +2482,7 @@
; COOLTRAINERM (8)
db "RYAN@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2504,7 +2504,7 @@
; COOLTRAINERM (9)
db "JAKE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2526,7 +2526,7 @@
; COOLTRAINERM (10)
db "GAVEN@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2554,7 +2554,7 @@
; COOLTRAINERM (11)
db "BLAKE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2582,7 +2582,7 @@
; COOLTRAINERM (12)
db "BRIAN@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2598,7 +2598,7 @@
; COOLTRAINERM (13)
db "ERICK@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, BULBASAUR
@@ -2611,7 +2611,7 @@
; COOLTRAINERM (14)
db "ANDY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, BULBASAUR
@@ -2624,7 +2624,7 @@
; COOLTRAINERM (15)
db "TYLER@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, BULBASAUR
@@ -2637,7 +2637,7 @@
; COOLTRAINERM (16)
db "SEAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, FLAREON
@@ -2650,7 +2650,7 @@
; COOLTRAINERM (17)
db "KEVIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 38, RHYHORN
@@ -2663,7 +2663,7 @@
; COOLTRAINERM (18)
db "STEVE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 14, BULBASAUR
@@ -2676,7 +2676,7 @@
; COOLTRAINERM (19)
db "ALLEN@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2692,7 +2692,7 @@
; COOLTRAINERM (20)
db "DARIN@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2714,7 +2714,7 @@
; COOLTRAINERF (1)
db "GWEN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, EEVEE
@@ -2728,7 +2728,7 @@
; COOLTRAINERF (2)
db "LOIS@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2750,7 +2750,7 @@
; COOLTRAINERF (3)
db "FRAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 37, SEADRA
@@ -2761,7 +2761,7 @@
; COOLTRAINERF (4)
db "LOLA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, DRATINI
@@ -2773,7 +2773,7 @@
; COOLTRAINERF (5)
db "KATE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, SHELLDER
@@ -2785,7 +2785,7 @@
; COOLTRAINERF (6)
db "IRENE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 22, GOLDEEN
@@ -2797,7 +2797,7 @@
; COOLTRAINERF (7)
db "KELLY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, MARILL
@@ -2810,7 +2810,7 @@
; COOLTRAINERF (8)
db "JOYCE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2832,7 +2832,7 @@
; COOLTRAINERF (9)
db "BETH@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2848,7 +2848,7 @@
; COOLTRAINERF (10)
db "REENA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 31, STARMIE
@@ -2861,7 +2861,7 @@
; COOLTRAINERF (11)
db "MEGAN@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2889,7 +2889,7 @@
; COOLTRAINERF (12)
db "BETH@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2905,7 +2905,7 @@
; COOLTRAINERF (13)
db "CAROL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, ELECTRODE
@@ -2918,7 +2918,7 @@
; COOLTRAINERF (14)
db "QUINN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 38, IVYSAUR
@@ -2930,7 +2930,7 @@
; COOLTRAINERF (15)
db "EMMA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, POLIWHIRL
@@ -2941,7 +2941,7 @@
; COOLTRAINERF (16)
db "CYBIL@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -2963,7 +2963,7 @@
; COOLTRAINERF (17)
db "JENN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, STARYU
@@ -2975,7 +2975,7 @@
; COOLTRAINERF (18)
db "BETH@"
- db 3 ; item + moves
+ db TRAINERTYPE_ITEM_MOVES
; party
@@ -2991,7 +2991,7 @@
; COOLTRAINERF (19)
db "REENA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, STARMIE
@@ -3004,7 +3004,7 @@
; COOLTRAINERF (20)
db "REENA@"
- db 3 ; item + moves
+ db TRAINERTYPE_ITEM_MOVES
; party
@@ -3032,7 +3032,7 @@
; COOLTRAINERF (21)
db "CARA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -3066,7 +3066,7 @@
; BEAUTY (1)
db "VICTORIA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 9, SENTRET
@@ -3079,7 +3079,7 @@
; BEAUTY (2)
db "SAMANTHA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -3101,7 +3101,7 @@
; BEAUTY (3)
db "JULIE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, SENTRET
@@ -3112,7 +3112,7 @@
; BEAUTY (4)
db "JACLYN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, SENTRET
@@ -3123,7 +3123,7 @@
; BEAUTY (5)
db "BRENDA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 16, FURRET
@@ -3134,7 +3134,7 @@
; BEAUTY (6)
db "CASSIE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, VILEPLUME
@@ -3146,7 +3146,7 @@
; BEAUTY (7)
db "CAROLINE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, MARILL
@@ -3159,7 +3159,7 @@
; BEAUTY (8)
db "CARLENE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, SENTRET
@@ -3170,7 +3170,7 @@
; BEAUTY (9)
db "JESSICA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, SENTRET
@@ -3181,7 +3181,7 @@
; BEAUTY (10)
db "RACHAEL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, SENTRET
@@ -3192,7 +3192,7 @@
; BEAUTY (11)
db "ANGELICA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, SENTRET
@@ -3203,7 +3203,7 @@
; BEAUTY (12)
db "KENDRA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, SENTRET
@@ -3214,7 +3214,7 @@
; BEAUTY (13)
db "VERONICA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, SENTRET
@@ -3225,7 +3225,7 @@
; BEAUTY (14)
db "JULIA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, PARAS
@@ -3238,7 +3238,7 @@
; BEAUTY (15)
db "THERESA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, SENTRET
@@ -3249,7 +3249,7 @@
; BEAUTY (16)
db "VALERIE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -3271,7 +3271,7 @@
; BEAUTY (17)
db "OLIVIA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 19, CORSOLA
@@ -3288,7 +3288,7 @@
; POKEMANIAC (1)
db "LARRY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, SLOWPOKE
@@ -3299,7 +3299,7 @@
; POKEMANIAC (2)
db "ANDREW@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, MAROWAK
@@ -3311,7 +3311,7 @@
; POKEMANIAC (3)
db "CALVIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, KANGASKHAN
@@ -3322,7 +3322,7 @@
; POKEMANIAC (4)
db "SHANE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 16, NIDORINA
@@ -3334,7 +3334,7 @@
; POKEMANIAC (5)
db "BEN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 19, SLOWBRO
@@ -3345,7 +3345,7 @@
; POKEMANIAC (6)
db "BRENT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 19, LICKITUNG
@@ -3356,7 +3356,7 @@
; POKEMANIAC (7)
db "RON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 19, NIDOKING
@@ -3367,7 +3367,7 @@
; POKEMANIAC (8)
db "ETHAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 31, RHYHORN
@@ -3379,7 +3379,7 @@
; POKEMANIAC (9)
db "BRENT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, KANGASKHAN
@@ -3390,7 +3390,7 @@
; POKEMANIAC (10)
db "BRENT@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -3406,7 +3406,7 @@
; POKEMANIAC (11)
db "ISSAC@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -3422,7 +3422,7 @@
; POKEMANIAC (12)
db "DONALD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, SLOWPOKE
@@ -3434,7 +3434,7 @@
; POKEMANIAC (13)
db "ZACH@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, RHYHORN
@@ -3445,7 +3445,7 @@
; POKEMANIAC (14)
db "BRENT@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -3461,7 +3461,7 @@
; POKEMANIAC (15)
db "MILLER@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, NIDOKING
@@ -3479,7 +3479,7 @@
; GRUNTM (1)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 14, KOFFING
@@ -3490,7 +3490,7 @@
; GRUNTM (2)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 7, RATTATA
@@ -3503,7 +3503,7 @@
; GRUNTM (3)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, RATICATE
@@ -3515,7 +3515,7 @@
; GRUNTM (4)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, GRIMER
@@ -3528,7 +3528,7 @@
; GRUNTM (5)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 21, RATTATA
@@ -3543,7 +3543,7 @@
; GRUNTM (6)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, ZUBAT
@@ -3555,7 +3555,7 @@
; GRUNTM (7)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, KOFFING
@@ -3569,7 +3569,7 @@
; GRUNTM (8)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, WEEZING
@@ -3580,7 +3580,7 @@
; GRUNTM (9)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, RATICATE
@@ -3592,7 +3592,7 @@
; GRUNTM (10)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 22, ZUBAT
@@ -3605,7 +3605,7 @@
; GRUNTM (11)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, MUK
@@ -3618,7 +3618,7 @@
; GRUNTM (12)
db "EXECUTIVE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, HOUNDOUR
@@ -3629,7 +3629,7 @@
; GRUNTM (13)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, RATTATA
@@ -3640,7 +3640,7 @@
; GRUNTM (14)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, RATICATE
@@ -3652,7 +3652,7 @@
; GRUNTM (15)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, GRIMER
@@ -3664,7 +3664,7 @@
; GRUNTM (16)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 16, RATTATA
@@ -3678,7 +3678,7 @@
; GRUNTM (17)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, GOLBAT
@@ -3689,7 +3689,7 @@
; GRUNTM (18)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, RATTATA
@@ -3702,7 +3702,7 @@
; GRUNTM (19)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, VENONAT
@@ -3714,7 +3714,7 @@
; GRUNTM (20)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, DROWZEE
@@ -3726,7 +3726,7 @@
; GRUNTM (21)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 16, ZUBAT
@@ -3739,7 +3739,7 @@
; GRUNTM (22)
db "EXECUTIVE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 36, GOLBAT
@@ -3750,7 +3750,7 @@
; GRUNTM (23)
db "EXECUTIVE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, KOFFING
@@ -3761,7 +3761,7 @@
; GRUNTM (24)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, KOFFING
@@ -3773,7 +3773,7 @@
; GRUNTM (25)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, KOFFING
@@ -3785,7 +3785,7 @@
; GRUNTM (26)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, RATTATA
@@ -3797,7 +3797,7 @@
; GRUNTM (27)
db "EXECUTIVE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 22, ZUBAT
@@ -3808,7 +3808,7 @@
; GRUNTM (28)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 19, RATICATE
@@ -3819,7 +3819,7 @@
; GRUNTM (29)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 9, RATTATA
@@ -3831,7 +3831,7 @@
; GRUNTM (30)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, GOLBAT
@@ -3844,7 +3844,7 @@
; GRUNTM (31)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, GOLBAT
@@ -3861,7 +3861,7 @@
; GENTLEMAN (1)
db "PRESTON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, GROWLITHE
@@ -3873,7 +3873,7 @@
; GENTLEMAN (2)
db "EDWARD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, PERSIAN
@@ -3884,7 +3884,7 @@
; GENTLEMAN (3)
db "GREGORY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 37, PIKACHU
@@ -3896,7 +3896,7 @@
; GENTLEMAN (4)
db "VIRGIL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, PONYTA
@@ -3907,7 +3907,7 @@
; GENTLEMAN (5)
db "ALFRED@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, NOCTOWL
@@ -3924,7 +3924,7 @@
; SKIER (1)
db "ROXANNE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, JYNX
@@ -3935,7 +3935,7 @@
; SKIER (2)
db "CLARISSA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, DEWGONG
@@ -3952,7 +3952,7 @@
; TEACHER (1)
db "COLETTE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 36, CLEFAIRY
@@ -3963,7 +3963,7 @@
; TEACHER (2)
db "HILLARY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, AIPOM
@@ -3975,7 +3975,7 @@
; TEACHER (3)
db "SHIRLEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, JIGGLYPUFF
@@ -3992,7 +3992,7 @@
; SABRINA (1)
db "SABRINA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -4026,7 +4026,7 @@
; BUG_CATCHER (1)
db "DON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 3, CATERPIE
@@ -4038,7 +4038,7 @@
; BUG_CATCHER (2)
db "ROB@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, BEEDRILL
@@ -4050,7 +4050,7 @@
; BUG_CATCHER (3)
db "ED@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, BEEDRILL
@@ -4063,7 +4063,7 @@
; BUG_CATCHER (4)
db "WADE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 2, CATERPIE
@@ -4077,7 +4077,7 @@
; BUG_CATCHER (5)
db "BENNY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 7, WEEDLE
@@ -4090,7 +4090,7 @@
; BUG_CATCHER (6)
db "AL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 12, CATERPIE
@@ -4102,7 +4102,7 @@
; BUG_CATCHER (7)
db "JOSH@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 13, PARAS
@@ -4113,7 +4113,7 @@
; BUG_CATCHER (8)
db "ARNIE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, VENONAT
@@ -4124,7 +4124,7 @@
; BUG_CATCHER (9)
db "KEN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, ARIADOS
@@ -4136,7 +4136,7 @@
; BUG_CATCHER (10)
db "WADE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 9, METAPOD
@@ -4150,7 +4150,7 @@
; BUG_CATCHER (11)
db "WADE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 14, BUTTERFREE
@@ -4164,7 +4164,7 @@
; BUG_CATCHER (12)
db "DOUG@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, ARIADOS
@@ -4175,7 +4175,7 @@
; BUG_CATCHER (13)
db "ARNIE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 19, VENONAT
@@ -4186,7 +4186,7 @@
; BUG_CATCHER (14)
db "ARNIE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -4202,7 +4202,7 @@
; BUG_CATCHER (15)
db "WADE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -4236,7 +4236,7 @@
; BUG_CATCHER (16)
db "WADE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -4270,7 +4270,7 @@
; BUG_CATCHER (17)
db "ARNIE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -4286,7 +4286,7 @@
; BUG_CATCHER (18)
db "ARNIE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -4302,7 +4302,7 @@
; BUG_CATCHER (19)
db "WAYNE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 8, LEDYBA
@@ -4320,7 +4320,7 @@
; FISHER (1)
db "JUSTIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 5, MAGIKARP
@@ -4334,7 +4334,7 @@
; FISHER (2)
db "RALPH@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, GOLDEEN
@@ -4345,7 +4345,7 @@
; FISHER (3)
db "ARNOLD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, TENTACRUEL
@@ -4356,7 +4356,7 @@
; FISHER (4)
db "KYLE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, SEAKING
@@ -4369,7 +4369,7 @@
; FISHER (5)
db "HENRY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 8, POLIWAG
@@ -4381,7 +4381,7 @@
; FISHER (6)
db "MARVIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, MAGIKARP
@@ -4395,7 +4395,7 @@
; FISHER (7)
db "TULLY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, QWILFISH
@@ -4406,7 +4406,7 @@
; FISHER (8)
db "ANDRE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, GYARADOS
@@ -4417,7 +4417,7 @@
; FISHER (9)
db "RAYMOND@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 22, MAGIKARP
@@ -4431,7 +4431,7 @@
; FISHER (10)
db "WILTON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, GOLDEEN
@@ -4444,7 +4444,7 @@
; FISHER (11)
db "EDGAR@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -4466,7 +4466,7 @@
; FISHER (12)
db "JONAH@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, SHELLDER
@@ -4480,7 +4480,7 @@
; FISHER (13)
db "MARTIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, REMORAID
@@ -4492,7 +4492,7 @@
; FISHER (14)
db "STEPHEN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, MAGIKARP
@@ -4506,7 +4506,7 @@
; FISHER (15)
db "BARNEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, GYARADOS
@@ -4519,7 +4519,7 @@
; FISHER (16)
db "RALPH@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, GOLDEEN
@@ -4530,7 +4530,7 @@
; FISHER (17)
db "RALPH@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, QWILFISH
@@ -4542,7 +4542,7 @@
; FISHER (18)
db "TULLY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, QWILFISH
@@ -4553,7 +4553,7 @@
; FISHER (19)
db "TULLY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, GOLDEEN
@@ -4566,7 +4566,7 @@
; FISHER (20)
db "WILTON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 29, GOLDEEN
@@ -4579,7 +4579,7 @@
; FISHER (21)
db "SCOTT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, QWILFISH
@@ -4592,7 +4592,7 @@
; FISHER (22)
db "WILTON@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -4620,7 +4620,7 @@
; FISHER (23)
db "RALPH@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, QWILFISH
@@ -4632,7 +4632,7 @@
; FISHER (24)
db "RALPH@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -4654,7 +4654,7 @@
; FISHER (25)
db "TULLY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -4688,7 +4688,7 @@
; SWIMMERM (1)
db "HAROLD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, REMORAID
@@ -4700,7 +4700,7 @@
; SWIMMERM (2)
db "SIMON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, TENTACOOL
@@ -4712,7 +4712,7 @@
; SWIMMERM (3)
db "RANDALL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, SHELLDER
@@ -4725,7 +4725,7 @@
; SWIMMERM (4)
db "CHARLIE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 21, SHELLDER
@@ -4738,7 +4738,7 @@
; SWIMMERM (5)
db "GEORGE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 16, TENTACOOL
@@ -4754,7 +4754,7 @@
; SWIMMERM (6)
db "BERKE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, QWILFISH
@@ -4765,7 +4765,7 @@
; SWIMMERM (7)
db "KIRK@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, GYARADOS
@@ -4777,7 +4777,7 @@
; SWIMMERM (8)
db "MATHEW@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, KRABBY
@@ -4788,7 +4788,7 @@
; SWIMMERM (9)
db "HAL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, SEEL
@@ -4801,7 +4801,7 @@
; SWIMMERM (10)
db "PATON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, PILOSWINE
@@ -4813,7 +4813,7 @@
; SWIMMERM (11)
db "DARYL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, SHELLDER
@@ -4826,7 +4826,7 @@
; SWIMMERM (12)
db "WALTER@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, HORSEA
@@ -4839,7 +4839,7 @@
; SWIMMERM (13)
db "TONY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 13, STARYU
@@ -4852,7 +4852,7 @@
; SWIMMERM (14)
db "JEROME@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, SEADRA
@@ -4866,7 +4866,7 @@
; SWIMMERM (15)
db "TUCKER@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, SHELLDER
@@ -4878,7 +4878,7 @@
; SWIMMERM (16)
db "RICK@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 13, STARYU
@@ -4891,7 +4891,7 @@
; SWIMMERM (17)
db "CAMERON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, MARILL
@@ -4902,7 +4902,7 @@
; SWIMMERM (18)
db "SETH@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 29, QUAGSIRE
@@ -4915,7 +4915,7 @@
; SWIMMERM (19)
db "JAMES@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 13, STARYU
@@ -4928,7 +4928,7 @@
; SWIMMERM (20)
db "LEWIS@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 13, STARYU
@@ -4941,7 +4941,7 @@
; SWIMMERM (21)
db "PARKER@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, HORSEA
@@ -4960,7 +4960,7 @@
; SWIMMERF (1)
db "ELAINE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 21, STARYU
@@ -4971,7 +4971,7 @@
; SWIMMERF (2)
db "PAULA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 19, STARYU
@@ -4983,7 +4983,7 @@
; SWIMMERF (3)
db "KAYLEE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, GOLDEEN
@@ -4996,7 +4996,7 @@
; SWIMMERF (4)
db "SUSIE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5018,7 +5018,7 @@
; SWIMMERF (5)
db "DENISE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 22, SEEL
@@ -5029,7 +5029,7 @@
; SWIMMERF (6)
db "KARA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, STARYU
@@ -5041,7 +5041,7 @@
; SWIMMERF (7)
db "WENDY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5063,7 +5063,7 @@
; SWIMMERF (8)
db "LISA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, JYNX
@@ -5074,7 +5074,7 @@
; SWIMMERF (9)
db "JILL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, DEWGONG
@@ -5085,7 +5085,7 @@
; SWIMMERF (10)
db "MARY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, SEAKING
@@ -5096,7 +5096,7 @@
; SWIMMERF (11)
db "KATIE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, DEWGONG
@@ -5107,7 +5107,7 @@
; SWIMMERF (12)
db "DAWN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, SEAKING
@@ -5118,7 +5118,7 @@
; SWIMMERF (13)
db "TARA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, SEAKING
@@ -5129,7 +5129,7 @@
; SWIMMERF (14)
db "NICOLE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 29, MARILL
@@ -5142,7 +5142,7 @@
; SWIMMERF (15)
db "LORI@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, STARMIE
@@ -5154,7 +5154,7 @@
; SWIMMERF (16)
db "JODY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, SEAKING
@@ -5165,7 +5165,7 @@
; SWIMMERF (17)
db "NIKKI@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, SEEL
@@ -5179,7 +5179,7 @@
; SWIMMERF (18)
db "DIANA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 37, GOLDUCK
@@ -5190,7 +5190,7 @@
; SWIMMERF (19)
db "BRIANA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, SEAKING
@@ -5208,7 +5208,7 @@
; SAILOR (1)
db "EUGENE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, POLIWHIRL
@@ -5221,7 +5221,7 @@
; SAILOR (2)
db "HUEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, POLIWAG
@@ -5233,7 +5233,7 @@
; SAILOR (3)
db "TERRELL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, POLIWHIRL
@@ -5244,7 +5244,7 @@
; SAILOR (4)
db "KENT@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5266,7 +5266,7 @@
; SAILOR (5)
db "ERNEST@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, MACHOP
@@ -5279,7 +5279,7 @@
; SAILOR (6)
db "JEFF@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, RATICATE
@@ -5291,7 +5291,7 @@
; SAILOR (7)
db "GARRETT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, KINGLER
@@ -5302,7 +5302,7 @@
; SAILOR (8)
db "KENNETH@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, MACHOP
@@ -5316,7 +5316,7 @@
; SAILOR (9)
db "STANLY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 31, MACHOP
@@ -5329,7 +5329,7 @@
; SAILOR (10)
db "HARRY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 19, WOOPER
@@ -5340,7 +5340,7 @@
; SAILOR (11)
db "HUEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, POLIWHIRL
@@ -5352,7 +5352,7 @@
; SAILOR (12)
db "HUEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, POLIWHIRL
@@ -5364,7 +5364,7 @@
; SAILOR (13)
db "HUEY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5392,7 +5392,7 @@
; SUPER_NERD (1)
db "STAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, GRIMER
@@ -5403,7 +5403,7 @@
; SUPER_NERD (2)
db "ERIC@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 11, GRIMER
@@ -5415,7 +5415,7 @@
; SUPER_NERD (3)
db "GREGG@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, MAGNEMITE
@@ -5428,7 +5428,7 @@
; SUPER_NERD (4)
db "JAY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 22, KOFFING
@@ -5440,7 +5440,7 @@
; SUPER_NERD (5)
db "DAVE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, DITTO
@@ -5451,7 +5451,7 @@
; SUPER_NERD (6)
db "SAM@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, GRIMER
@@ -5463,7 +5463,7 @@
; SUPER_NERD (7)
db "TOM@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, MAGNEMITE
@@ -5476,7 +5476,7 @@
; SUPER_NERD (8)
db "PAT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 36, PORYGON
@@ -5487,7 +5487,7 @@
; SUPER_NERD (9)
db "SHAWN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 31, MAGNEMITE
@@ -5500,7 +5500,7 @@
; SUPER_NERD (10)
db "TERU@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 7, MAGNEMITE
@@ -5514,7 +5514,7 @@
; SUPER_NERD (11)
db "RUSS@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, MAGNEMITE
@@ -5527,7 +5527,7 @@
; SUPER_NERD (12)
db "NORTON@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5543,7 +5543,7 @@
; SUPER_NERD (13)
db "HUGH@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5559,7 +5559,7 @@
; SUPER_NERD (14)
db "MARKUS@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5581,7 +5581,7 @@
; RIVAL2 (1)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5627,7 +5627,7 @@
; RIVAL2 (2)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5673,7 +5673,7 @@
; RIVAL2 (3)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5719,7 +5719,7 @@
; RIVAL2 (4)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5765,7 +5765,7 @@
; RIVAL2 (5)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5811,7 +5811,7 @@
; RIVAL2 (6)
db "?@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -5863,7 +5863,7 @@
; GUITARIST (1)
db "CLYDE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, ELECTABUZZ
@@ -5874,7 +5874,7 @@
; GUITARIST (2)
db "VINCENT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, MAGNEMITE
@@ -5894,7 +5894,7 @@
; HIKER (1)
db "ANTHONY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 16, GEODUDE
@@ -5906,7 +5906,7 @@
; HIKER (2)
db "RUSSELL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 4, GEODUDE
@@ -5919,7 +5919,7 @@
; HIKER (3)
db "PHILLIP@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, GEODUDE
@@ -5932,7 +5932,7 @@
; HIKER (4)
db "LEONARD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, GEODUDE
@@ -5944,7 +5944,7 @@
; HIKER (5)
db "ANTHONY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 11, GEODUDE
@@ -5956,7 +5956,7 @@
; HIKER (6)
db "BENJAMIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 14, DIGLETT
@@ -5969,7 +5969,7 @@
; HIKER (7)
db "ERIK@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, MACHOP
@@ -5982,7 +5982,7 @@
; HIKER (8)
db "MICHAEL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, GEODUDE
@@ -5995,7 +5995,7 @@
; HIKER (9)
db "PARRY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, ONIX
@@ -6007,7 +6007,7 @@
; HIKER (10)
db "TIMOTHY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6029,7 +6029,7 @@
; HIKER (11)
db "BAILEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 13, GEODUDE
@@ -6044,7 +6044,7 @@
; HIKER (12)
db "ANTHONY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, GRAVELER
@@ -6057,7 +6057,7 @@
; HIKER (13)
db "TIM@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 31, GRAVELER
@@ -6070,7 +6070,7 @@
; HIKER (14)
db "NOLAND@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 31, SANDSLASH
@@ -6082,7 +6082,7 @@
; HIKER (15)
db "SIDNEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, DUGTRIO
@@ -6094,7 +6094,7 @@
; HIKER (16)
db "KENNY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, SANDSLASH
@@ -6108,7 +6108,7 @@
; HIKER (17)
db "JIM@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, MACHAMP
@@ -6119,7 +6119,7 @@
; HIKER (18)
db "DANIEL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 11, ONIX
@@ -6130,7 +6130,7 @@
; HIKER (19)
db "PARRY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6158,7 +6158,7 @@
; HIKER (20)
db "PARRY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 29, ONIX
@@ -6169,7 +6169,7 @@
; HIKER (21)
db "ANTHONY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, GRAVELER
@@ -6182,7 +6182,7 @@
; HIKER (22)
db "ANTHONY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6216,7 +6216,7 @@
; BIKER (1)
db "BENNY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, KOFFING
@@ -6229,7 +6229,7 @@
; BIKER (2)
db "KAZU@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, KOFFING
@@ -6242,7 +6242,7 @@
; BIKER (3)
db "DWAYNE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, KOFFING
@@ -6256,7 +6256,7 @@
; BIKER (4)
db "HARRIS@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, FLAREON
@@ -6267,7 +6267,7 @@
; BIKER (5)
db "ZEKE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, KOFFING
@@ -6279,7 +6279,7 @@
; BIKER (6)
db "CHARLES@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, KOFFING
@@ -6292,7 +6292,7 @@
; BIKER (7)
db "RILEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, WEEZING
@@ -6303,7 +6303,7 @@
; BIKER (8)
db "JOEL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, MAGMAR
@@ -6315,7 +6315,7 @@
; BIKER (9)
db "GLENN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, KOFFING
@@ -6334,7 +6334,7 @@
; BLAINE (1)
db "BLAINE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6368,7 +6368,7 @@
; BURGLAR (1)
db "DUNCAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, KOFFING
@@ -6381,7 +6381,7 @@
; BURGLAR (2)
db "EDDIE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6403,7 +6403,7 @@
; BURGLAR (3)
db "COREY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, KOFFING
@@ -6423,7 +6423,7 @@
; FIREBREATHER (1)
db "OTIS@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 29, MAGMAR
@@ -6436,7 +6436,7 @@
; FIREBREATHER (2)
db "DICK@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, CHARMELEON
@@ -6447,7 +6447,7 @@
; FIREBREATHER (3)
db "NED@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, KOFFING
@@ -6460,7 +6460,7 @@
; FIREBREATHER (4)
db "BURT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, KOFFING
@@ -6472,7 +6472,7 @@
; FIREBREATHER (5)
db "BILL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 6, KOFFING
@@ -6484,7 +6484,7 @@
; FIREBREATHER (6)
db "WALT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 11, MAGMAR
@@ -6496,7 +6496,7 @@
; FIREBREATHER (7)
db "RAY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 9, VULPIX
@@ -6507,7 +6507,7 @@
; FIREBREATHER (8)
db "LYLE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, KOFFING
@@ -6526,7 +6526,7 @@
; JUGGLER (1)
db "IRWIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 2, VOLTORB
@@ -6540,7 +6540,7 @@
; JUGGLER (2)
db "FRITZ@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 29, MR__MIME
@@ -6553,7 +6553,7 @@
; JUGGLER (3)
db "HORTON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, ELECTRODE
@@ -6567,7 +6567,7 @@
; JUGGLER (4)
db "IRWIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 6, VOLTORB
@@ -6581,7 +6581,7 @@
; JUGGLER (5)
db "IRWIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, VOLTORB
@@ -6595,7 +6595,7 @@
; JUGGLER (6)
db "IRWIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, VOLTORB
@@ -6615,7 +6615,7 @@
; BLACKBELT_T (1)
db "KENJI@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 27, ONIX
@@ -6629,7 +6629,7 @@
; BLACKBELT_T (2)
db "YOSHI@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6645,7 +6645,7 @@
; BLACKBELT_T (3)
db "KENJI@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6679,7 +6679,7 @@
; BLACKBELT_T (4)
db "LAO@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6695,7 +6695,7 @@
; BLACKBELT_T (5)
db "NOB@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6717,7 +6717,7 @@
; BLACKBELT_T (6)
db "KIYO@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, HITMONLEE
@@ -6729,7 +6729,7 @@
; BLACKBELT_T (7)
db "LUNG@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, MANKEY
@@ -6742,7 +6742,7 @@
; BLACKBELT_T (8)
db "KENJI@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 28, MACHOKE
@@ -6753,7 +6753,7 @@
; BLACKBELT_T (9)
db "WAI@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, MACHOKE
@@ -6772,7 +6772,7 @@
; EXECUTIVEM (1)
db "EXECUTIVE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6800,7 +6800,7 @@
; EXECUTIVEM (2)
db "EXECUTIVE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6816,7 +6816,7 @@
; EXECUTIVEM (3)
db "EXECUTIVE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6862,7 +6862,7 @@
; EXECUTIVEM (4)
db "EXECUTIVE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 22, ZUBAT
@@ -6881,7 +6881,7 @@
; PSYCHIC_T (1)
db "NATHAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, GIRAFARIG
@@ -6892,7 +6892,7 @@
; PSYCHIC_T (2)
db "FRANKLIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 37, KADABRA
@@ -6903,7 +6903,7 @@
; PSYCHIC_T (3)
db "HERMAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, EXEGGCUTE
@@ -6916,7 +6916,7 @@
; PSYCHIC_T (4)
db "FIDEL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, XATU
@@ -6927,7 +6927,7 @@
; PSYCHIC_T (5)
db "GREG@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6943,7 +6943,7 @@
; PSYCHIC_T (6)
db "NORMAN@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6965,7 +6965,7 @@
; PSYCHIC_T (7)
db "MARK@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -6993,7 +6993,7 @@
; PSYCHIC_T (8)
db "PHIL@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7015,7 +7015,7 @@
; PSYCHIC_T (9)
db "RICHARD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 36, ESPEON
@@ -7026,7 +7026,7 @@
; PSYCHIC_T (10)
db "GILBERT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, STARMIE
@@ -7039,7 +7039,7 @@
; PSYCHIC_T (11)
db "JARED@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, MR__MIME
@@ -7052,7 +7052,7 @@
; PSYCHIC_T (12)
db "RODNEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 29, DROWZEE
@@ -7070,7 +7070,7 @@
; PICNICKER (1)
db "LIZ@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 9, NIDORAN_F
@@ -7081,7 +7081,7 @@
; PICNICKER (2)
db "GINA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 9, HOPPIP
@@ -7094,7 +7094,7 @@
; PICNICKER (3)
db "BROOKE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7110,7 +7110,7 @@
; PICNICKER (4)
db "KIM@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, VULPIX
@@ -7121,7 +7121,7 @@
; PICNICKER (5)
db "CINDY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 36, NIDOQUEEN
@@ -7132,7 +7132,7 @@
; PICNICKER (6)
db "HOPE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, FLAAFFY
@@ -7143,7 +7143,7 @@
; PICNICKER (7)
db "SHARON@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 31, FURRET
@@ -7155,7 +7155,7 @@
; PICNICKER (8)
db "DEBRA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, SEAKING
@@ -7166,7 +7166,7 @@
; PICNICKER (9)
db "GINA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 14, HOPPIP
@@ -7179,7 +7179,7 @@
; PICNICKER (10)
db "ERIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 16, PONYTA
@@ -7191,7 +7191,7 @@
; PICNICKER (11)
db "LIZ@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, WEEPINBELL
@@ -7203,7 +7203,7 @@
; PICNICKER (12)
db "LIZ@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 19, WEEPINBELL
@@ -7216,7 +7216,7 @@
; PICNICKER (13)
db "HEIDI@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, SKIPLOOM
@@ -7228,7 +7228,7 @@
; PICNICKER (14)
db "EDNA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, NIDORINA
@@ -7240,7 +7240,7 @@
; PICNICKER (15)
db "GINA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, SKIPLOOM
@@ -7253,7 +7253,7 @@
; PICNICKER (16)
db "TIFFANY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7269,7 +7269,7 @@
; PICNICKER (17)
db "TIFFANY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7285,7 +7285,7 @@
; PICNICKER (18)
db "ERIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, PONYTA
@@ -7297,7 +7297,7 @@
; PICNICKER (19)
db "TANYA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 37, EXEGGUTOR
@@ -7308,7 +7308,7 @@
; PICNICKER (20)
db "TIFFANY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7324,7 +7324,7 @@
; PICNICKER (21)
db "ERIN@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7352,7 +7352,7 @@
; PICNICKER (22)
db "LIZ@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, WEEPINBELL
@@ -7365,7 +7365,7 @@
; PICNICKER (23)
db "LIZ@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7393,7 +7393,7 @@
; PICNICKER (24)
db "GINA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, SKIPLOOM
@@ -7406,7 +7406,7 @@
; PICNICKER (25)
db "GINA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7434,7 +7434,7 @@
; PICNICKER (26)
db "TIFFANY@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7456,7 +7456,7 @@
; CAMPER (1)
db "ROLAND@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 9, NIDORAN_M
@@ -7467,7 +7467,7 @@
; CAMPER (2)
db "TODD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 14, PSYDUCK
@@ -7478,7 +7478,7 @@
; CAMPER (3)
db "IVAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, DIGLETT
@@ -7491,7 +7491,7 @@
; CAMPER (4)
db "ELLIOT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 13, SANDSHREW
@@ -7503,7 +7503,7 @@
; CAMPER (5)
db "BARRY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 36, NIDOKING
@@ -7514,7 +7514,7 @@
; CAMPER (6)
db "LLOYD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, NIDOKING
@@ -7525,7 +7525,7 @@
; CAMPER (7)
db "DEAN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, GOLDUCK
@@ -7537,7 +7537,7 @@
; CAMPER (8)
db "SID@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, DUGTRIO
@@ -7550,7 +7550,7 @@
; CAMPER (9)
db "HARVEY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, NIDORINO
@@ -7561,7 +7561,7 @@
; CAMPER (10)
db "DALE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 15, NIDORINO
@@ -7572,7 +7572,7 @@
; CAMPER (11)
db "TED@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, MANKEY
@@ -7583,7 +7583,7 @@
; CAMPER (12)
db "TODD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, GEODUDE
@@ -7596,7 +7596,7 @@
; CAMPER (13)
db "TODD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 23, GEODUDE
@@ -7609,7 +7609,7 @@
; CAMPER (14)
db "THOMAS@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, GRAVELER
@@ -7623,7 +7623,7 @@
; CAMPER (15)
db "LEROY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, GRAVELER
@@ -7637,7 +7637,7 @@
; CAMPER (16)
db "DAVID@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, GRAVELER
@@ -7651,7 +7651,7 @@
; CAMPER (17)
db "JOHN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 33, GRAVELER
@@ -7665,7 +7665,7 @@
; CAMPER (18)
db "JERRY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 37, SANDSLASH
@@ -7676,7 +7676,7 @@
; CAMPER (19)
db "SPENCER@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, SANDSHREW
@@ -7689,7 +7689,7 @@
; CAMPER (20)
db "TODD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, GRAVELER
@@ -7703,7 +7703,7 @@
; CAMPER (21)
db "TODD@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7737,7 +7737,7 @@
; CAMPER (22)
db "QUENTIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 30, FEAROW
@@ -7756,7 +7756,7 @@
; EXECUTIVEF (1)
db "EXECUTIVE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7784,7 +7784,7 @@
; EXECUTIVEF (2)
db "EXECUTIVE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -7818,7 +7818,7 @@
; SAGE (1)
db "CHOW@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 3, BELLSPROUT
@@ -7831,7 +7831,7 @@
; SAGE (2)
db "NICO@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 3, BELLSPROUT
@@ -7844,7 +7844,7 @@
; SAGE (3)
db "JIN@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 6, BELLSPROUT
@@ -7855,7 +7855,7 @@
; SAGE (4)
db "TROY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 7, BELLSPROUT
@@ -7867,7 +7867,7 @@
; SAGE (5)
db "JEFFREY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 22, HAUNTER
@@ -7878,7 +7878,7 @@
; SAGE (6)
db "PING@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 16, GASTLY
@@ -7893,7 +7893,7 @@
; SAGE (7)
db "EDMOND@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 3, BELLSPROUT
@@ -7906,7 +7906,7 @@
; SAGE (8)
db "NEAL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 6, BELLSPROUT
@@ -7917,7 +7917,7 @@
; SAGE (9)
db "LI@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 7, BELLSPROUT
@@ -7930,7 +7930,7 @@
; SAGE (10)
db "GAKU@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, NOCTOWL
@@ -7942,7 +7942,7 @@
; SAGE (11)
db "MASA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, NOCTOWL
@@ -7954,7 +7954,7 @@
; SAGE (12)
db "KOJI@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 32, NOCTOWL
@@ -7972,7 +7972,7 @@
; MEDIUM (1)
db "MARTHA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 18, GASTLY
@@ -7985,7 +7985,7 @@
; MEDIUM (2)
db "GRACE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, HAUNTER
@@ -7997,7 +7997,7 @@
; MEDIUM (3)
db "BETHANY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, HAUNTER
@@ -8008,7 +8008,7 @@
; MEDIUM (4)
db "MARGRET@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, HAUNTER
@@ -8019,7 +8019,7 @@
; MEDIUM (5)
db "ETHEL@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, HAUNTER
@@ -8030,7 +8030,7 @@
; MEDIUM (6)
db "REBECCA@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, DROWZEE
@@ -8042,7 +8042,7 @@
; MEDIUM (7)
db "DORIS@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 34, SLOWPOKE
@@ -8060,7 +8060,7 @@
; BOARDER (1)
db "RONALD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, SEEL
@@ -8073,7 +8073,7 @@
; BOARDER (2)
db "BRAD@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, SWINUB
@@ -8085,7 +8085,7 @@
; BOARDER (3)
db "DOUGLAS@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 24, SHELLDER
@@ -8104,7 +8104,7 @@
; POKEFANM (1)
db "WILLIAM@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 14, RAICHU, BERRY
@@ -8115,7 +8115,7 @@
; POKEFANM (2)
db "DEREK@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 17, PIKACHU, BERRY
@@ -8126,7 +8126,7 @@
; POKEFANM (3)
db "ROBERT@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 33, QUAGSIRE, BERRY
@@ -8137,7 +8137,7 @@
; POKEFANM (4)
db "JOSHUA@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 23, PIKACHU, BERRY
@@ -8153,7 +8153,7 @@
; POKEFANM (5)
db "CARTER@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 29, BULBASAUR, BERRY
@@ -8166,7 +8166,7 @@
; POKEFANM (6)
db "TREVOR@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 33, PSYDUCK, BERRY
@@ -8177,7 +8177,7 @@
; POKEFANM (7)
db "BRANDON@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 13, SNUBBULL, BERRY
@@ -8188,7 +8188,7 @@
; POKEFANM (8)
db "JEREMY@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 28, MEOWTH, BERRY
@@ -8201,7 +8201,7 @@
; POKEFANM (9)
db "COLIN@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 32, DELIBIRD, BERRY
@@ -8212,7 +8212,7 @@
; POKEFANM (10)
db "DEREK@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 19, PIKACHU, BERRY
@@ -8223,7 +8223,7 @@
; POKEFANM (11)
db "DEREK@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 36, PIKACHU, BERRY
@@ -8234,7 +8234,7 @@
; POKEFANM (12)
db "ALEX@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 29, NIDOKING, BERRY
@@ -8247,7 +8247,7 @@
; POKEFANM (13)
db "REX@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 35, PHANPY, BERRY
@@ -8258,7 +8258,7 @@
; POKEFANM (14)
db "ALLAN@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 35, TEDDIURSA, BERRY
@@ -8275,7 +8275,7 @@
; KIMONO_GIRL (1)
db "NAOKO@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 20, SKIPLOOM
@@ -8288,7 +8288,7 @@
; KIMONO_GIRL (2)
db "NAOKO@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, FLAREON
@@ -8299,7 +8299,7 @@
; KIMONO_GIRL (3)
db "SAYO@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, ESPEON
@@ -8310,7 +8310,7 @@
; KIMONO_GIRL (4)
db "ZUKI@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, UMBREON
@@ -8321,7 +8321,7 @@
; KIMONO_GIRL (5)
db "KUNI@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, VAPOREON
@@ -8332,7 +8332,7 @@
; KIMONO_GIRL (6)
db "MIKI@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, JOLTEON
@@ -8349,7 +8349,7 @@
; TWINS (1)
db "AMY & MAY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, SPINARAK
@@ -8361,7 +8361,7 @@
; TWINS (2)
db "ANN & ANNE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -8383,7 +8383,7 @@
; TWINS (3)
db "ANN & ANNE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -8405,7 +8405,7 @@
; TWINS (4)
db "AMY & MAY@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 10, LEDYBA
@@ -8417,7 +8417,7 @@
; TWINS (5)
db "JO & ZOE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, VICTREEBEL
@@ -8429,7 +8429,7 @@
; TWINS (6)
db "JO & ZOE@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 35, VILEPLUME
@@ -8441,7 +8441,7 @@
; TWINS (7)
db "MEG & PEG@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 31, TEDDIURSA
@@ -8453,7 +8453,7 @@
; TWINS (8)
db "MEG & PEG@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 31, PHANPY
@@ -8465,7 +8465,7 @@
; TWINS (9)
db "LEA & PIA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -8487,7 +8487,7 @@
; TWINS (10)
db "LEA & PIA@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -8515,7 +8515,7 @@
; POKEFANF (1)
db "BEVERLY@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 14, SNUBBULL, BERRY
@@ -8526,7 +8526,7 @@
; POKEFANF (2)
db "RUTH@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 17, PIKACHU, BERRY
@@ -8537,7 +8537,7 @@
; POKEFANF (3)
db "BEVERLY@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 18, SNUBBULL, BERRY
@@ -8548,7 +8548,7 @@
; POKEFANF (4)
db "BEVERLY@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 30, GRANBULL, BERRY
@@ -8559,7 +8559,7 @@
; POKEFANF (5)
db "GEORGIA@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 23, SENTRET, BERRY
@@ -8574,7 +8574,7 @@
; POKEFANF (6)
db "JAIME@"
- db 2 ; item
+ db TRAINERTYPE_ITEM
; party
db 16, MEOWTH, BERRY
@@ -8591,7 +8591,7 @@
; RED (1)
db "RED@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -8643,7 +8643,7 @@
; BLUE (1)
db "BLUE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -8695,7 +8695,7 @@
; OFFICER (1)
db "KEITH@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 17, GROWLITHE
@@ -8706,7 +8706,7 @@
; OFFICER (2)
db "DIRK@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 14, GROWLITHE
@@ -8724,7 +8724,7 @@
; GRUNTF (1)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 9, ZUBAT
@@ -8736,7 +8736,7 @@
; GRUNTF (2)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 26, ARBOK
@@ -8747,7 +8747,7 @@
; GRUNTF (3)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 25, GLOOM
@@ -8759,7 +8759,7 @@
; GRUNTF (4)
db "GRUNT@"
- db 0 ; normal
+ db TRAINERTYPE_NORMAL
; party
db 21, EKANS
@@ -8773,7 +8773,7 @@
; GRUNTF (5)
db "GRUNT@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
@@ -8801,7 +8801,7 @@
; MYSTICALMAN (1)
db "EUSINE@"
- db 1 ; moves
+ db TRAINERTYPE_MOVES
; party
--- a/wram.asm
+++ b/wram.asm
@@ -2,8 +2,10 @@
INCLUDE "macros/wram.asm"
INCLUDE "vram.asm"
+
SECTION "Stack", WRAM0
-wc000::
+
+wRAM0Start::
StackBottom::
ds $100 - 1
Stack::
@@ -12,10 +14,11 @@
SECTION "Audio RAM", WRAM0
+
wMusic::
-MusicPlaying:: ; c100
+
; nonzero if playing
- ds 1
+MusicPlaying:: db ; c100
Channels::
Channel1:: channel_struct Channel1 ; c101
@@ -30,16 +33,15 @@
Channel8:: channel_struct Channel8 ; c25f
ds 1 ; c291
-wCurTrackDuty:: ds 1
-wCurTrackIntensity:: ds 1
+
+wCurTrackDuty:: db
+wCurTrackIntensity:: db
wCurTrackFrequency:: dw
-wc296:: ds 1 ; BCD value, dummied out
-wCurNoteDuration:: ds 1 ; used in MusicE0 and LoadNote
+wc296:: db ; BCD value, dummied out
+wCurNoteDuration:: db ; used in MusicE0 and LoadNote
-CurMusicByte:: ; c298
- ds 1
-CurChannel:: ; c299
- ds 1
+CurMusicByte:: db ; c298
+CurChannel:: db ; c299
Volume:: ; c29a
; corresponds to $ff24
; Channel control / ON-OFF / Volume (R/W)
@@ -47,12 +49,12 @@
; 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
+ db
SoundOutput:: ; c29b
; corresponds to $ff25
; bit 4-7: ch1-4 so2 on/off
; bit 0-3: ch1-4 so1 on/off
- ds 1
+ db
SoundInput:: ; c29c
; corresponds to $ff26
; bit 7: global on/off
@@ -60,80 +62,69 @@
; bit 1: ch2 on/off
; bit 2: ch3 on/off
; bit 3: ch4 on/off
- ds 1
+ db
-MusicID::
-MusicIDLo:: ; c29d
- ds 1
-MusicIDHi:: ; c29e
- ds 1
-MusicBank:: ; c29f
- ds 1
-NoiseSampleAddress::
-NoiseSampleAddressLo:: ; c2a0
- ds 1
-NoiseSampleAddressHi:: ; c2a1
- ds 1
-wNoiseSampleDelay:: ; noise delay? ; c2a2
- ds 1
-; c2a3
- ds 1
-MusicNoiseSampleSet:: ; c2a4
- ds 1
-SFXNoiseSampleSet:: ; c2a5
- ds 1
+MusicID:: dw ; c29d
+MusicBank:: db ; c29f
+NoiseSampleAddress:: dw ; c2a0
+wNoiseSampleDelay:: db ; c2a2
+ ds 1 ; c2a3
+MusicNoiseSampleSet:: db ; c2a4
+SFXNoiseSampleSet:: db ; c2a5
+
Danger:: ; c2a6
; bit 7: on/off
; bit 4: pitch
; bit 0-3: counter
- ds 1
+ db
+
MusicFade:: ; c2a7
; fades volume over x frames
; bit 7: fade in/out
; bit 0-5: number of frames for each volume level
; $00 = none (default)
- ds 1
-MusicFadeCount:: ; c2a8
- ds 1
-MusicFadeID::
-wc2a9::
-MusicFadeIDLo:: ; c2a9
- ds 1
-wc2aa::
-MusicFadeIDHi:: ; c2aa
- ds 1
+ db
+MusicFadeCount:: db ; c2a8
+MusicFadeID:: dw ; c2a9
+
ds 5
-CryPitch:: ; c2b0
- ds 2
-CryLength:: ; c2b2
- ds 2
-LastVolume:: ; c2b4
- ds 1
-wc2b5:: ds 1
+
+CryPitch:: dw ; c2b0
+CryLength:: dw ; c2b2
+
+LastVolume:: db ; c2b4
+wc2b5:: db ; c2b5
+
SFXPriority:: ; c2b6
; if nonzero, turn off music when playing sfx
+ db
+
ds 1
- ds 1
-Channel1JumpCondition:: ds 1
-Channel2JumpCondition:: ds 1
-Channel3JumpCondition:: ds 1
-Channel4JumpCondition:: ds 1
-wStereoPanningMask:: ds 1 ; c2bc
+
+Channel1JumpCondition:: db
+Channel2JumpCondition:: db
+Channel3JumpCondition:: db
+Channel4JumpCondition:: db
+
+wStereoPanningMask:: db ; c2bc
+
CryTracks:: ; c2bd
; plays only in left or right track depending on what side the monster is on
; both tracks active outside of battle
- ds 1
-wSFXDuration:: ds 1
+ db
+
+wSFXDuration:: db
CurSFX:: ; c2bf
; id of sfx currently playing
- ds 1
+ db
ChannelsEnd::
-wMapMusic:: ; c2c0
- ds 1
-wDontPlayMapMusicOnReload:: ds 1
+wMapMusic:: db ; c2c0
+
+wDontPlayMapMusicOnReload:: db
wMusicEnd::
+
SECTION "WRAM", WRAM0
wLZAddress:: dw ; c2c2
@@ -141,69 +132,66 @@
ds 1
-wBoxAlignment:: ds 1
-InputType:: ; c2c7
- ds 1
-AutoInputAddress:: ; c2c8
- ds 2
-AutoInputBank:: ; c2ca
- ds 1
-AutoInputLength:: ; c2cb
- ds 1
+wBoxAlignment:: db
-wMonStatusFlags:: ds 1
-wGameLogicPaused:: ds 1 ; c2cd
-wSpriteUpdatesEnabled:: ds 1
-wc2cf:: ds 1
-wMapTimeOfDay:: ds 1
+InputType:: db ; c2c7
+AutoInputAddress:: dw ; c2c8
+AutoInputBank:: db ; c2ca
+AutoInputLength:: db ; c2cb
+
+wMonStatusFlags:: db
+wGameLogicPaused:: db ; c2cd
+wSpriteUpdatesEnabled:: db
+
+wc2cf:: db ; ????
+
+wMapTimeOfDay:: db
+
ds 3
-wPrinterConnectionOpen:: ds 1
-wPrinterOpcode:: ds 1
-wLastDexEntry:: ds 1
-wDisableTextAcceleration:: ds 1
-wPreviousLandmark:: ds 1
-wCurrentLandmark:: ds 1
-wLandmarkSignTimer:: ds 2
+
+wPrinterConnectionOpen:: db
+wPrinterOpcode:: db
+wLastDexEntry:: db
+wDisableTextAcceleration:: db
+wPreviousLandmark:: db
+wCurrentLandmark:: db
+wLandmarkSignTimer:: dw
wLinkMode:: ; c2dc
; 0 not in link battle
; 1 link battle
; 4 mobile battle
- ds 1
+ db
-ScriptVar:: ; c2dd
- ds 1
+ScriptVar:: db ; c2dd
-wPlayerNextMovement:: ds 1
-wPlayerMovement:: ds 1
+wPlayerNextMovement:: db
+wPlayerMovement:: db
ds 2
wc2e2::
-wMovementPerson:: ds 1
+wMovementPerson:: db
wMovementDataPointer:: ds 3 ; dba
wc2e6:: ds 4
-wMovementByteWasControlSwitch:: ds 1
-wMovementPointer:: ds 2 ; c2eb
+wMovementByteWasControlSwitch:: db
+wMovementPointer:: dw ; c2eb
+
ds 3
-wTempObjectCopyMapObjectIndex:: ds 1 ; c2f0
-wTempObjectCopySprite:: ds 1 ; c2f1
-wTempObjectCopySpriteVTile:: ds 1 ; c2f2
-wTempObjectCopyPalette:: ds 1 ; c2f3
-wTempObjectCopyMovement:: ds 1 ; c2f4
-wTempObjectCopyRange:: ds 1 ; c2f5
-wTempObjectCopyX:: ds 1 ; c2f6
-wTempObjectCopyY:: ds 1 ; c2f7
-wTempObjectCopyRadius:: ds 1 ; c2f8
+wTempObjectCopyMapObjectIndex:: db ; c2f0
+wTempObjectCopySprite:: db ; c2f1
+wTempObjectCopySpriteVTile:: db ; c2f2
+wTempObjectCopyPalette:: db ; c2f3
+wTempObjectCopyMovement:: db ; c2f4
+wTempObjectCopyRange:: db ; c2f5
+wTempObjectCopyX:: db ; c2f6
+wTempObjectCopyY:: db ; c2f7
+wTempObjectCopyRadius:: db ; c2f8
ds 1
-TileDown:: ; c2fa
- ds 1
-TileUp:: ; c2fb
- ds 1
-TileLeft:: ; c2fc
- ds 1
-TileRight:: ; c2fd
- ds 1
+TileDown:: db ; c2fa
+TileUp:: db ; c2fb
+TileLeft:: db ; c2fc
+TileRight:: db ; c2fd
TilePermissions:: ; c2fe
; set if tile behavior prevents
@@ -212,19 +200,36 @@
; bit 2: up
; bit 1: left
; bit 0: right
- ds 1
+ db
ds 1
+
SECTION "wSpriteAnims", WRAM0
-; wc300 - wc313 is a 10x2 dictionary.
+
+UNION ; c300
+; wSpriteAnimDict is a 10x2 dictionary
; keys: taken from third column of SpriteAnimSeqData
; values: VTiles
-
-UNION
wSpriteAnimDict:: ds 10 * 2
-NEXTU
+wSpriteAnimationStructs::
+; field 0: index
+; fields 1-3: loaded from SpriteAnimSeqData
+SpriteAnim1:: sprite_anim_struct SpriteAnim1
+SpriteAnim2:: sprite_anim_struct SpriteAnim2
+SpriteAnim3:: sprite_anim_struct SpriteAnim3
+SpriteAnim4:: sprite_anim_struct SpriteAnim4
+SpriteAnim5:: sprite_anim_struct SpriteAnim5
+SpriteAnim6:: sprite_anim_struct SpriteAnim6
+SpriteAnim7:: sprite_anim_struct SpriteAnim7
+SpriteAnim8:: sprite_anim_struct SpriteAnim8
+SpriteAnim9:: sprite_anim_struct SpriteAnim9
+SpriteAnim10:: sprite_anim_struct SpriteAnim10
+wSpriteAnimationStructsEnd::
+
+NEXTU ; c300
+; mobile data
wc300:: ds 1
wc301:: ds 1
wc302:: ds 1
@@ -244,62 +249,32 @@
wc311:: ds 1
wc312:: ds 1
wc313:: ds 1
-ENDU
+wc314:: ds 152
+wc3ac:: ds 8
+ENDU ; c3b4
-wSpriteAnimationStructs::
-; Field 0: Index
-; Fields 1-3: Loaded from SpriteAnimSeqData
-wc314::
-SpriteAnim1:: sprite_anim_struct SpriteAnim1
-wc324::
-SpriteAnim2:: sprite_anim_struct SpriteAnim2
-wc334::
-SpriteAnim3:: sprite_anim_struct SpriteAnim3
-wc344::
-SpriteAnim4:: sprite_anim_struct SpriteAnim4
-wc354::
-SpriteAnim5:: sprite_anim_struct SpriteAnim5
-wc364::
-SpriteAnim6:: sprite_anim_struct SpriteAnim6
-wc374::
-SpriteAnim7:: sprite_anim_struct SpriteAnim7
-wc384::
-SpriteAnim8:: sprite_anim_struct SpriteAnim8
-wc394::
-SpriteAnim9:: sprite_anim_struct SpriteAnim9
-wc3a4::
+wSpriteAnimCount:: db
+wCurrSpriteOAMAddr:: db
-UNION
-SpriteAnim10:: sprite_anim_struct SpriteAnim10
-wSpriteAnimationStructsEnd::
-NEXTU
- ds 8
-wc3ac:: ds 8 ; c3ac
-ENDU
+CurIcon:: db ; c3b6
-wSpriteAnimCount:: ds 1
-wCurrSpriteOAMAddr:: ds 1
-
-CurIcon:: ; c3b6
- ds 1
-
-
-wCurIconTile:: ds 1
+wCurIconTile:: db
wSpriteAnimAddrBackup::
wSpriteAnimIDBuffer::
wCurrSpriteAddSubFlags::
- ds 2
-wCurrAnimVTile:: ds 1
-wCurrAnimXCoord:: ds 1
-wCurrAnimYCoord:: ds 1
-wCurrAnimXOffset:: ds 1
-wCurrAnimYOffset:: ds 1
-wGlobalAnimYOffset:: ds 1
-wGlobalAnimXOffset:: ds 1
+ dw
+wCurrAnimVTile:: db
+wCurrAnimXCoord:: db
+wCurrAnimYCoord:: db
+wCurrAnimXOffset:: db
+wCurrAnimYOffset:: db
+wGlobalAnimYOffset:: db
+wGlobalAnimXOffset:: db
wSpriteAnimsEnd::
ds 11
+; mobile data
wc3cc:: ds 1
wc3cd:: ds 31
wc3ec:: ds 1
@@ -352,30 +327,42 @@
SECTION "Battle", WRAM0
-UNION
+
+UNION ; c608
+; unidentified uses
wc608::
+
+NEXTU ; c608
+; miscellaneous
+wMisc:: ds (SCREEN_WIDTH + 4) * (SCREEN_HEIGHT + 2)
+wMiscEnd::
+
+NEXTU ; c608
+; odd egg
wOddEgg:: party_struct OddEgg
wOddEggName:: ds PKMN_NAME_LENGTH
wOddEggOTName:: ds PKMN_NAME_LENGTH
-NEXTU
+NEXTU ; c608
+; battle tower temp struct
wBT_OTTemp:: battle_tower_struct wBT_OTTemp
-NEXTU
+NEXTU ; c608
+; hall of fame temp struct
hall_of_fame wHallOfFameTemp
-NEXTU
-wMisc:: ; ds (SCREEN_WIDTH + 4) * (SCREEN_HEIGHT + 2)
+NEXTU ; c608
+; timeset temp storage
+ ds 20
+wInitHourBuffer:: db ; c61c
+
+NEXTU ; c608
+; link engine data
ds 10
-wc612::
- ds 6
-wc618::
- ds 4
-wInitHourBuffer:: ; c61c
- ds 10
-wc626::
+wc612:: ds 10
-NEXTU
+NEXTU ; c608
+; battle data
wBattle::
wEnemyMoveStruct:: move_struct wEnemyMoveStruct ; c608
wPlayerMoveStruct:: move_struct wPlayerMoveStruct ; c60f
@@ -387,16 +374,15 @@
ds 2
-wWildMon:: ds 1 ; c64e
+wWildMon:: db ; c64e
ds 1
-wEnemyTrainerItem1:: ds 1 ; c650
-wEnemyTrainerItem2:: ds 1 ; c651
-wEnemyTrainerBaseReward:: ds 1 ; c652
+wEnemyTrainerItem1:: db ; c650
+wEnemyTrainerItem2:: db ; c651
+wEnemyTrainerBaseReward:: db ; c652
wEnemyTrainerAIFlags:: ds 3 ; c653
OTClassName:: ds TRAINER_CLASS_NAME_LENGTH ; c656
-CurOTMon:: ; c663
- ds 1
+CurOTMon:: db ; c663
wBattleParticipantsNotFainted::
; Bit array. Bits 0 - 5 correspond to party members 1 - 6.
@@ -404,7 +390,7 @@
; Bit cleared if the mon faints.
; Backed up if the enemy switches.
; All bits cleared if the enemy faints.
- ds 1
+ db
TypeModifier:: ; c665
; >10: super-effective
@@ -411,21 +397,21 @@
; 10: normal
; <10: not very effective
; bit 7: stab
- ds 1
+ db
CriticalHit:: ; c666
; 0 if not critical
; 1 for a critical hit
; 2 for a OHKO
- ds 1
+ db
AttackMissed:: ; c667
; nonzero for a miss
- ds 1
+ db
PlayerSubStatus1:: ; c668
; bit
-; 7 attract
+; 7 in love
; 6 rollout
; 5 endure
; 4 perish song
@@ -433,7 +419,7 @@
; 2 protect
; 1 curse
; 0 nightmare
- ds 1
+ db
PlayerSubStatus2:: ; c669
; bit
; 7
@@ -444,7 +430,7 @@
; 2
; 1
; 0 curled
- ds 1
+ db
PlayerSubStatus3:: ; c66a
; bit
; 7 confused
@@ -451,11 +437,11 @@
; 6 flying
; 5 underground
; 4 charged
-; 3 flinch
-; 2
-; 1 rollout
+; 3 flinched
+; 2 in loop
+; 1 rampage
; 0 bide
- ds 1
+ db
PlayerSubStatus4:: ; c66b
; bit
; 7 leech seed
@@ -466,228 +452,181 @@
; 2 focus energy
; 1 mist
; 0 x accuracy
- ds 1
+ db
PlayerSubStatus5:: ; c66c
; bit
-; 7 cant run
+; 7 can't run
; 6 destiny bond
; 5 lock-on
-; 4 encore
+; 4 encored
; 3 transformed
; 2
; 1
; 0 toxic
- ds 1
+ db
EnemySubStatus1:: ; c66d
; see PlayerSubStatus1
- ds 1
+ db
EnemySubStatus2:: ; c66e
; see PlayerSubStatus2
- ds 1
+ db
EnemySubStatus3:: ; c66f
; see PlayerSubStatus3
- ds 1
+ db
EnemySubStatus4:: ; c670
; see PlayerSubStatus4
- ds 1
+ db
EnemySubStatus5:: ; c671
; see PlayerSubStatus5
- ds 1
+ db
-PlayerRolloutCount:: ; c672
- ds 1
-PlayerConfuseCount:: ; c673
- ds 1
-PlayerToxicCount:: ; c674
- ds 1
-PlayerDisableCount:: ; c675
- ds 1
-PlayerEncoreCount:: ; c676
- ds 1
-PlayerPerishCount:: ; c677
- ds 1
-PlayerFuryCutterCount:: ; c678
- ds 1
-PlayerProtectCount:: ; c679
- ds 1
+PlayerRolloutCount:: db ; c672
+PlayerConfuseCount:: db ; c673
+PlayerToxicCount:: db ; c674
+PlayerDisableCount:: db ; c675
+PlayerEncoreCount:: db ; c676
+PlayerPerishCount:: db ; c677
+PlayerFuryCutterCount:: db ; c678
+PlayerProtectCount:: db ; c679
-EnemyRolloutCount:: ; c67a
- ds 1
-EnemyConfuseCount:: ; c67b
- ds 1
-EnemyToxicCount:: ; c67c
- ds 1
-EnemyDisableCount:: ; c67d
- ds 1
-EnemyEncoreCount:: ; c67e
- ds 1
-EnemyPerishCount:: ; c67f
- ds 1
-EnemyFuryCutterCount:: ; c680
- ds 1
-EnemyProtectCount:: ; c681
- ds 1
+EnemyRolloutCount:: db ; c67a
+EnemyConfuseCount:: db ; c67b
+EnemyToxicCount:: db ; c67c
+EnemyDisableCount:: db ; c67d
+EnemyEncoreCount:: db ; c67e
+EnemyPerishCount:: db ; c67f
+EnemyFuryCutterCount:: db ; c680
+EnemyProtectCount:: db ; c681
-PlayerDamageTaken:: ; c682
- ds 2
-EnemyDamageTaken:: ; c684
- ds 2
+PlayerDamageTaken:: dw ; c682
+EnemyDamageTaken:: dw ; c684
wBattleReward:: ds 3 ; c686
wBattleAnimParam::
wKickCounter::
-wPresentPower:: ds 1 ; c689
-BattleScriptBuffer:: ; c68a
- ds 40
+wPresentPower:: db ; c689
+BattleScriptBuffer:: ds 40 ; c68a
-BattleScriptBufferLoc:: ; c6b2
- ds 2
+BattleScriptBufferAddress:: dw ; c6b2
-wTurnEnded:: ds 1 ; c6b4
+wTurnEnded:: db ; c6b4
+
ds 1
PlayerStats:: ; c6b6
-PlayerAttack:: ds 2
-PlayerDefense:: ds 2
-PlayerSpeed:: ds 2
-PlayerSpAtk:: ds 2
-PlayerSpDef:: ds 2
+PlayerAttack:: dw
+PlayerDefense:: dw
+PlayerSpeed:: dw
+PlayerSpAtk:: dw
+PlayerSpDef:: dw
ds 1
+
EnemyStats:: ; c6c1
-EnemyAttack:: ds 2
-EnemyDefense:: ds 2
-EnemySpeed:: ds 2
-EnemySpAtk:: ds 2
-EnemySpDef:: ds 2
+EnemyAttack:: dw
+EnemyDefense:: dw
+EnemySpeed:: dw
+EnemySpAtk:: dw
+EnemySpDef:: dw
ds 1
PlayerStatLevels:: ; c6cc
; 07 neutral
-PlayerAtkLevel:: ; c6cc
- ds 1
-PlayerDefLevel:: ; c6cd
- ds 1
-PlayerSpdLevel:: ; c6ce
- ds 1
-PlayerSAtkLevel:: ; c6cf
- ds 1
+PlayerAtkLevel:: db ; c6cc
+PlayerDefLevel:: db ; c6cd
+PlayerSpdLevel:: db ; c6ce
+PlayerSAtkLevel:: db ; c6cf
-UNION
-wc6d0::
-PlayerSDefLevel:: ; c6d0
- ds 1
-PlayerAccLevel:: ; c6d1
- ds 1
-PlayerEvaLevel:: ; c6d2
- ds 1
-; c6d3
- ds 1
+UNION ; c6d0
+; finish battle RAM
+PlayerSDefLevel:: db ; c6d0
+PlayerAccLevel:: db ; c6d1
+PlayerEvaLevel:: db ; c6d2
+ ds 1 ; c6d3
PlayerStatLevelsEnd::
EnemyStatLevels:: ; c6d4
; 07 neutral
-EnemyAtkLevel:: ; c6d4
+EnemyAtkLevel:: db ; c6d4
+EnemyDefLevel:: db ; c6d5
+EnemySpdLevel:: db ; c6d6
+EnemySAtkLevel:: db ; c6d7
+EnemySDefLevel:: db ; c6d8
+EnemyAccLevel:: db ; c6d9
+EnemyEvaLevel:: db ; c6da
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
+EnemyTurnsTaken:: db ; c6dc
+PlayerTurnsTaken:: db ; c6dd
ds 1
-EnemyTurnsTaken:: ; c6dc
- ds 1
-PlayerTurnsTaken:: ; c6dd
- ds 1
- ds 1
+PlayerSubstituteHP:: db ; c6df
+EnemySubstituteHP:: db ; c6e0
-PlayerSubstituteHP:: ; c6df
+wUnusedPlayerLockedMove:: db ; c6e1
ds 1
-EnemySubstituteHP:: ; c6e0
- ds 1
-wUnusedPlayerLockedMove:: ds 1 ; c6e1
- ds 1
-CurPlayerMove:: ; c6e3
- ds 1
-CurEnemyMove:: ; c6e4
- ds 1
+CurPlayerMove:: db ; c6e3
+CurEnemyMove:: db ; c6e4
LinkBattleRNCount:: ; c6e5
; how far through the prng stream
- ds 1
+ db
-wEnemyItemState:: ds 1 ; c6e6
+wEnemyItemState:: db ; c6e6
ds 2
-CurEnemyMoveNum:: ; c6e9
- ds 1
+CurEnemyMoveNum:: db ; c6e9
-wEnemyHPAtTimeOfPlayerSwitch:: ds 2 ; c6ea
+wEnemyHPAtTimeOfPlayerSwitch:: dw ; c6ea
wPayDayMoney:: ds 3 ; c6ec
-wSafariMonAngerCount:: ds 1
-wSafariMonEating:: ds 2
-wEnemyBackupDVs:: ; used when enemy is transformed
- ds 2
-AlreadyDisobeyed:: ; c6f4
+wSafariMonAngerCount:: db
+wSafariMonEating:: db
ds 1
+wEnemyBackupDVs:: dw ; used when enemy is transformed
+AlreadyDisobeyed:: db ; c6f4
-DisabledMove:: ; c6f5
- ds 1
-EnemyDisabledMove:: ; c6f6
- ds 1
-wWhichMonFaintedFirst:: ds 1
+DisabledMove:: db ; c6f5
+EnemyDisabledMove:: db ; c6f6
+wWhichMonFaintedFirst:: db
; exists so you can't counter on switch
-LastPlayerCounterMove:: ; c6f8
- ds 1
-LastEnemyCounterMove:: ; c6f9
- ds 1
+LastPlayerCounterMove:: db ; c6f8
+LastEnemyCounterMove:: db ; c6f9
-wEnemyMinimized:: ds 1 ; c6fa
+wEnemyMinimized:: db ; c6fa
-AlreadyFailed:: ; c6fb
- ds 1
+AlreadyFailed:: db ; c6fb
-wBattleParticipantsIncludingFainted:: ds 1 ; c6fc
-wDanger:: ds 1 ; c6fd
-wPlayerMinimized:: ds 1 ; c6fe
+wBattleParticipantsIncludingFainted:: db ; c6fc
+wDanger:: db ; c6fd
+wPlayerMinimized:: db ; c6fe
PlayerScreens:: ; c6ff
; bit
+; 7
+; 6
+; 5
; 4 reflect
; 3 light screen
; 2 safeguard
+; 1
; 0 spikes
- ds 1
+ db
EnemyScreens:: ; c700
; see PlayerScreens
- ds 1
+ db
-PlayerSafeguardCount:: ; c701
+PlayerSafeguardCount:: db ; c701
+PlayerLightScreenCount:: db ; c702
+PlayerReflectCount:: db ; c703
ds 1
-PlayerLightScreenCount:: ; c702
- ds 1
-PlayerReflectCount:: ; c703
- ds 1
- ds 1
-EnemySafeguardCount:: ; c705
- ds 1
-EnemyLightScreenCount:: ; c706
- ds 1
-EnemyReflectCount:: ; c707
- ds 1
+EnemySafeguardCount:: db ; c705
+EnemyLightScreenCount:: db ; c706
+EnemyReflectCount:: db ; c707
ds 2
+
Weather:: ; c70a
; 00 normal
; 01 rain
@@ -696,113 +635,110 @@
; 04 rain stopped
; 05 sunliight faded
; 06 sandstorm subsided
- ds 1
+ db
WeatherCount:: ; c70b
; # turns remaining
- ds 1
+ db
-LoweredStat:: ; c70c
- ds 1
-EffectFailed:: ; c70d
- ds 1
-FailedMessage:: ; c70e
- ds 1
-wEnemyGoesFirst:: ; c70f
- ds 1
-wPlayerIsSwitching:: ds 1 ; c710
-wEnemyIsSwitching:: ds 1 ; c711
+LoweredStat:: db ; c70c
+EffectFailed:: db ; c70d
+FailedMessage:: db ; c70e
+wEnemyGoesFirst:: db ; c70f
+wPlayerIsSwitching:: db ; c710
+wEnemyIsSwitching:: db ; c711
+
PlayerUsedMoves:: ; c712
; add a move that has been used once by the player
; added in order of use
ds NUM_MOVES
-wEnemyAISwitchScore:: ds 1 ; c716
-wEnemySwitchMonParam:: ds 1 ; c717
-wEnemySwitchMonIndex:: ds 1 ; c718
-wTempLevel:: ds 1 ; c719
-LastPlayerMon:: ds 1 ; c71a
-LastPlayerMove:: ; c71b
- ds 1
-LastEnemyMove:: ; c71c
- ds 1
+wEnemyAISwitchScore:: db ; c716
+wEnemySwitchMonParam:: db ; c717
+wEnemySwitchMonIndex:: db ; c718
+wTempLevel:: db ; c719
+LastPlayerMon:: db ; c71a
+LastPlayerMove:: db ; c71b
+LastEnemyMove:: db ; c71c
-wPlayerFutureSightCount:: ds 1 ; c71d
-wEnemyFutureSightCount:: ds 1 ; c71e
-wGivingExperienceToExpShareHolders:: ds 1 ; c71f
+wPlayerFutureSightCount:: db ; c71d
+wEnemyFutureSightCount:: db ; c71e
+
+wGivingExperienceToExpShareHolders:: db ; c71f
+
wBackupEnemyMonBaseStats:: ds 5 ; c720
wBackupEnemyMonCatchRate:: db ; c725
wBackupEnemyMonBaseExp:: db ; c726
-wPlayerFutureSightDamage:: ds 2 ; c727
-wEnemyFutureSightDamage:: ds 2 ; c729
-wPlayerRageCounter:: ds 1 ; c72b
-wEnemyRageCounter:: ds 1 ; c72c
-wBeatUpHitAtLeastOnce:: ds 1 ; c72d
-wPlayerTrappingMove:: ds 1 ; c72e
-wEnemyTrappingMove:: ds 1 ; c72f
-wPlayerWrapCount:: ds 1 ; c730
-wEnemyWrapCount:: ds 1 ; c731
-wPlayerCharging:: ds 1 ; c732
-wEnemyCharging:: ds 1 ; c733
-BattleEnded:: ; c734
- ds 1
+wPlayerFutureSightDamage:: dw ; c727
+wEnemyFutureSightDamage:: dw ; c729
+wPlayerRageCounter:: db ; c72b
+wEnemyRageCounter:: db ; c72c
+
+wBeatUpHitAtLeastOnce:: db ; c72d
+
+wPlayerTrappingMove:: db ; c72e
+wEnemyTrappingMove:: db ; c72f
+wPlayerWrapCount:: db ; c730
+wEnemyWrapCount:: db ; c731
+wPlayerCharging:: db ; c732
+wEnemyCharging:: db ; c733
+
+BattleEnded:: db ; c734
+
wWildMonMoves:: ds NUM_MOVES ; c735
wWildMonPP:: ds NUM_MOVES ; c739
-wAmuletCoin:: ds 1 ; c73a
-wSomeoneIsRampaging:: ds 1 ; c73b
-wPlayerJustGotFrozen:: ds 1 ; c73c
-wEnemyJustGotFrozen:: ds 1 ; c73d
+
+wAmuletCoin:: db ; c73a
+
+wSomeoneIsRampaging:: db ; c73b
+
+wPlayerJustGotFrozen:: db ; c73c
+wEnemyJustGotFrozen:: db ; c73d
wBattleEnd::
; Battle RAM
-
; c741
-NEXTU
+
+NEXTU ; c6d0
+; trade
wTrademons::
wPlayerTrademon:: trademon wPlayerTrademon
wOTTrademon:: trademon wOTTrademon
wTrademonsEnd::
-wTradeAnimPointer::
- ds 2
+wTradeAnimAddress:: dw
wLinkPlayer1Name:: ds NAME_LENGTH
wLinkPlayer2Name:: ds NAME_LENGTH
-wLinkTradeSendmonSpecies:: ds 1
-wLinkTradeGetmonSpecies:: ds 1
-wc74e:: ds 107
-wc7b9:: ds 1
-wc7ba:: ds 1
-wc7bb:: ds 2
-wc7bd::
+wLinkTradeSendmonSpecies:: db
+wLinkTradeGetmonSpecies:: db
-NEXTU
+NEXTU ; c6d0
; naming screen
-wNamingScreenDestinationPointer:: ds 2 ; c6d0
-wNamingScreenCurrNameLength:: ds 1 ; c6d2
-wNamingScreenMaxNameLength:: ds 1 ; c6d3
-wNamingScreenType:: ds 1 ; c6d4
-wNamingScreenCursorObjectPointer:: ds 2 ; c6d5
-wNamingScreenLastCharacter:: ds 1 ; c6d7
-wNamingScreenStringEntryCoord:: ds 2 ; c6d8
+wNamingScreenDestinationPointer:: dw ; c6d0
+wNamingScreenCurrNameLength:: db ; c6d2
+wNamingScreenMaxNameLength:: db ; c6d3
+wNamingScreenType:: db ; c6d4
+wNamingScreenCursorObjectPointer:: dw ; c6d5
+wNamingScreenLastCharacter:: db ; c6d7
+wNamingScreenStringEntryCoord:: dw ; c6d8
-NEXTU
+NEXTU ; c6d0
; pokegear
-wPokegearPhoneLoadNameBuffer:: ds 1 ; c6d0
-wPokegearPhoneCursorPosition:: ds 1 ; c6d1
-wPokegearPhoneScrollPosition:: ds 1 ; c6d2
-wPokegearPhoneSelectedPerson:: ds 1 ; c6d3
-wPokegearPhoneSubmenuCursor:: ds 1 ; c6d4
-wPokegearMapCursorObjectPointer:: ds 2 ; c6d5
-wPokegearMapCursorLandmark:: ds 1 ; c6d7
-wPokegearMapPlayerIconLandmark:: ds 1 ; c6d8
-wPokegearRadioChannelBank:: ds 1 ; c6d9
-wPokegearRadioChannelAddr:: ds 2 ; c6da
-wPokegearRadioMusicPlaying:: ds 1 ; c6dc
+wPokegearPhoneLoadNameBuffer:: db ; c6d0
+wPokegearPhoneCursorPosition:: db ; c6d1
+wPokegearPhoneScrollPosition:: db ; c6d2
+wPokegearPhoneSelectedPerson:: db ; c6d3
+wPokegearPhoneSubmenuCursor:: db ; c6d4
+wPokegearMapCursorObjectPointer:: dw ; c6d5
+wPokegearMapCursorLandmark:: db ; c6d7
+wPokegearMapPlayerIconLandmark:: db ; c6d8
+wPokegearRadioChannelBank:: db ; c6d9
+wPokegearRadioChannelAddr:: dw ; c6da
+wPokegearRadioMusicPlaying:: db ; c6dc
-NEXTU
+NEXTU ; c6d0
+; slot machine
wSlots::
-; Slot Machine
-; c6d0
wReel1:: slot_reel wReel1
wReel2:: slot_reel wReel2
wReel3:: slot_reel wReel3
@@ -810,144 +746,141 @@
wReel1Stopped:: ds 3
wReel2Stopped:: ds 3
wReel3Stopped:: ds 3
-wSlotBias:: ds 1
-wSlotBet:: ds 1
-wFirstTwoReelsMatching:: ds 1
-wFirstTwoReelsMatchingSevens:: ds 1
-wSlotMatched:: ds 1
+wSlotBias:: db
+wSlotBet:: db
+wFirstTwoReelsMatching:: db
+wFirstTwoReelsMatchingSevens:: db
+wSlotMatched:: db
wCurrReelStopped:: ds 3
-wPayout:: ds 2
-wCurrReelXCoord:: ds 1
-wCurrReelYCoord:: ds 1
+wPayout:: dw
+wCurrReelXCoord:: db
+wCurrReelYCoord:: db
ds 2
-wSlotBuildingMatch:: ds 1
+wSlotBuildingMatch:: db
wSlotsDataEnd::
ds 28
wSlotsEnd::
-NEXTU
-; Card Flip
-; c6d0
+NEXTU ; c6d0
+; card flip
wCardFlip::
wDeck:: ds 24
wDeckEnd::
; c6e8
-wCardFlipNumCardsPlayed:: ds 1
-wCardFlipFaceUpCard:: ds 1
+wCardFlipNumCardsPlayed:: db
+wCardFlipFaceUpCard:: db
wDiscardPile:: ds 24
wDiscardPileEnd::
wCardFlipEnd::
-NEXTU
-; Dummy Game
-; c6d0
+NEXTU ; c6d0
+; dummy game
wDummyGame::
wDummyGameCards:: ds 9 * 5
wDummyGameCardsEnd::
-wDummyGameLastCardPicked:: ds 1 ; c6fd
-wDummyGameCard1:: ds 1 ; c6fe
-wDummyGameCard2:: ds 1 ; c6ff
-wDummyGameCard1Location:: ds 1 ; c700
-wDummyGameCard2Location:: ds 1 ; c701
-wDummyGameNumberTriesRemaining:: ds 1 ; c702
+wDummyGameLastCardPicked:: db ; c6fd
+wDummyGameCard1:: db ; c6fe
+wDummyGameCard2:: db ; c6ff
+wDummyGameCard1Location:: db ; c700
+wDummyGameCard2Location:: db ; c701
+wDummyGameNumberTriesRemaining:: db ; c702
wDummyGameLastMatches:: ds 5 ; c703
-wDummyGameCounter:: ds 1 ; c708
-wDummyGameNumCardsMatched:: ds 1 ; c709
+wDummyGameCounter:: db ; c708
+wDummyGameNumCardsMatched:: db ; c709
wDummyGameEnd::
-NEXTU
-; Unown Puzzle
+NEXTU ; c6d0
+; unown puzzle
wUnownPuzzle::
-wPuzzlePieces::
- ds 6 * 6
+wPuzzlePieces:: ds 6 * 6
wUnownPuzzleEnd::
-NEXTU
+NEXTU ; c6d0
+; pokedex
wPokedexDataStart::
-wPokedexOrder:: ds NUM_POKEMON +- 1
-wPokedexOrderEnd:: ds 6
+wPokedexOrder:: ds $100 ; NUM_POKEMON + 5
+wPokedexOrderEnd::
wPokedexMetadata::
-wDexListingScrollOffset:: ; offset of the first displayed entry from the start
-wc7d0:: ds 1
-wDexListingCursor::
-wc7d1:: ds 1 ; Dex cursor
-wDexListingEnd::
-wc7d2:: ds 1 ; Last mon to display
-wDexListingHeight:: ; number of entries displayed at once in the dex listing
-wc7d3:: ds 1
-wCurrentDexMode:: ; Pokedex Mode
-wc7d4:: ds 1 ; Index of the topmost visible item in a scrolling menu
-wDexSearchMonType1:: ds 1 ; first type to search
-wDexSearchMonType2:: ds 1 ; second type to search
-wDexSearchResultCount:: ds 1
-wDexArrowCursorPosIndex:: ds 1
-wDexArrowCursorDelayCounter:: ds 1
-wDexArrowCursorBlinkCounter:: ds 1
-wDexSearchSlowpokeFrame:: ds 1
-wUnlockedUnownMode:: ds 1
-wDexCurrentUnownIndex:: ds 1
-wDexUnownCount:: ds 1
-wDexConvertedMonType:: ds 1 ; mon type converted from dex search mon type
-wDexListingScrollOffsetBackup:: ds 1
-wDexListingCursorBackup:: ds 1
-wBackupDexListingCursor::
-wc7e2:: ds 1
-wBackupDexListingPage::
-wc7e3:: ds 1
-wDexCurrentLocation::
-wc7e4:: ds 1
+wDexListingScrollOffset:: db ; offset of the first displayed entry from the start
+wDexListingCursor:: db ; Dex cursor
+wDexListingEnd:: db ; Last mon to display
+wDexListingHeight:: db ; number of entries displayed at once in the dex listing
+wCurrentDexMode:: db ; Pokedex Mode
+wDexSearchMonType1:: db ; first type to search
+wDexSearchMonType2:: db ; second type to search
+wDexSearchResultCount:: db
+wDexArrowCursorPosIndex:: db
+wDexArrowCursorDelayCounter:: db
+wDexArrowCursorBlinkCounter:: db
+wDexSearchSlowpokeFrame:: db
+wUnlockedUnownMode:: db
+wDexCurrentUnownIndex:: db
+wDexUnownCount:: db
+wDexConvertedMonType:: db ; mon type converted from dex search mon type
+wDexListingScrollOffsetBackup:: db
+wDexListingCursorBackup:: db
+wBackupDexListingCursor:: db
+wBackupDexListingPage:: db
+wDexCurrentLocation:: db
IF DEF(CRYSTAL11)
-wPokedexStatus::
-ELSE
+wPokedexStatus:: db
wPokedexDataEnd::
+ELSE
+wPokedexDataEnd:: ds 1
ENDC
- ds 1
-IF DEF(CRYSTAL11)
-wPokedexDataEnd::
-ENDC
ds 2
-wMiscEnd::
-ENDU
-ENDU
+NEXTU ; c6d0
+; mobile data
+wc6d0:: ds 126
+wc74e:: ds 107
+wc7b9:: ds 1
+wc7ba:: ds 1
+wc7bb:: ds 2
+wc7bd:: ds 19
+wc7d0:: ds 1
+wc7d1:: ds 1
+wc7d2:: ds 1
+wc7d3:: ds 1
+wc7d4:: ds 1
+ENDU ; c7e8
+ENDU ; c7e8
wc7e8:: ds 24 ; ????
+
SECTION "Overworld Map", WRAM0
-UNION
-OverworldMap:: ; c800
- ds 1300
+UNION ; c800
+OverworldMap:: ds 1300 ; c800
OverworldMapEnd::
-NEXTU
+NEXTU ; c800
+; GB Printer screen RAM
wGameboyPrinterRAM::
wGameboyPrinterScreen:: ds SCREEN_HEIGHT * SCREEN_WIDTH ; c800
wGameboyPrinterScreenEnd:: ; c968
-NEXTU
-wGameboyPrinter2bppSource::
- ds 40 tiles
+NEXTU ; c800
+; GB Printer data
+wGameboyPrinter2bppSource:: ds 40 tiles
wGameboyPrinter2bppSourceEnd::
-wca80:: ds 1
-wPrinterRowIndex:: ds 1
+wca80:: db
+wPrinterRowIndex:: db
; Printer data header
-wca82:: ds 1
-wca83:: ds 1
-wca84:: ds 1
-wca85:: ds 1
+wPrinterData:: ds 4
wPrinterChecksum:: dw ; ca86
-wPrinterHandshake:: ds 1
+wPrinterHandshake:: db
wPrinterStatusFlags::
; bit 7: set if error 1 (battery low)
; bit 6: set if error 4 (too hot or cold)
; bit 5: set if error 3 (paper jammed or empty)
; if this and the previous byte are both $ff: error 2 (connection error)
- ds 1
+ db
-wHandshakeFrameDelay:: ds 1
-wPrinterSerialFrameDelay:: ds 1
+wHandshakeFrameDelay:: db
+wPrinterSerialFrameDelay:: db
wPrinterSendByteOffset:: dw
wPrinterSendByteCounter:: dw
@@ -954,27 +887,33 @@
; tilemap backup?
wPrinterTileMapBuffer:: ds SCREEN_HEIGHT * SCREEN_WIDTH ; ca90
wPrinterTileMapBufferEnd::
-wPrinterStatus:: ds 1 ; cbf8
+wPrinterStatus:: db ; cbf8
ds 1
wcbfa:: ds 1
-wGBPrinterSettings:: ds 1
+wGBPrinterSettings:: db
ds 16
wGameboyPrinterRAMEnd::
-NEXTU
+NEXTU ; c800
+; bill's pc data
wBillsPCPokemonList:: ; c800
; Pokemon, box number, list index
+ ds 3 * 30
-wMysteryGiftPartyTemp:: ; ds PARTY_LENGTH * (1 + 1 + NUM_MOVES)
-wMysteryGiftStaging::
+NEXTU ; c800
+; raw link data
+wLinkData:: ds $514
+wLinkDataEnd::
-wLinkData:: ; ds $514
+NEXTU ; c800
+; link data members
wLinkPlayerName:: ds NAME_LENGTH
-wLinkPartyCount:: ds 1
+wLinkPartyCount:: db
wLinkPartySpecies:: ds PARTY_LENGTH
-wLinkPartySpeciesEnd:: ds 1
+wLinkPartySpeciesEnd:: db ; legacy scripts don't check PartyCount
-UNION
+UNION ; c813
+; time capsule party data
wTimeCapsulePlayerData::
wTimeCapsulePartyMon1:: red_party_struct wTimeCapsulePartyMon1
wTimeCapsulePartyMon2:: red_party_struct wTimeCapsulePartyMon2
@@ -986,7 +925,8 @@
wTimeCapsulePartyMonNicks:: ds PARTY_LENGTH * PKMN_NAME_LENGTH
wTimeCapsulePlayerDataEnd::
-NEXTU
+NEXTU ; c813
+; link player data
wLinkPlayerData::
wLinkPlayerPartyMon1:: party_struct wLinkPlayerPartyMon1
wLinkPlayerPartyMon2:: party_struct wLinkPlayerPartyMon2
@@ -997,13 +937,13 @@
wLinkPlayerPartyMonOTNames:: ds PARTY_LENGTH * NAME_LENGTH
wLinkPlayerPartyMonNicks:: ds PARTY_LENGTH * PKMN_NAME_LENGTH
wLinkPlayerDataEnd::
-ENDU
- ds $35d
+ENDU ; c9b7
-wLinkDataEnd::
-NEXTU
-
-wc800:: ds 1
+NEXTU ; c800
+; mystery gift data
+wMysteryGiftPartyTemp:: ; ds PARTY_LENGTH * (1 + 1 + NUM_MOVES)
+wMysteryGiftStaging::
+wc800:: ds 1
wc801:: ds 1
wc802:: ds 1
wc803:: ds 4
@@ -1017,14 +957,13 @@
wc814:: ds 4
wc818:: ds 8
wc820:: ds 1
-wc821:: ds 15
-wc830:: ds 16
-wc840:: ds 16
-UNION
+wc821:: ds 47
+
+UNION ; c850
wMysteryGiftTrainerData:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
wMysteryGiftTrainerDataEnd::
-NEXTU
+NEXTU ; c850
wc850:: ds 16
wc860:: ds 16
wc870:: ds 16
@@ -1036,62 +975,53 @@
wc8d0:: ds 16
wc8e0:: ds 16
wc8f0:: ds 16
-ENDU
+ENDU ; c900
wMysteryGiftPartnerData::
-wc900:: ds 1
-wMysteryGiftPartnerID:: ds 2
+wc900:: db
+wMysteryGiftPartnerID:: dw
wMysteryGiftPartnerName:: ds NAME_LENGTH
-wMysteryGiftPartnerDexCaught:: ds 1
+wMysteryGiftPartnerDexCaught:: db
wc90f::
-wMysteryGiftPartnerSentDeco:: ds 1
-wMysteryGiftPartnerWhichItem:: ds 1
-wMysteryGiftPartnerWhichDeco:: ds 1
-wMysteryGiftPartnerBackupItem:: ds 2
+wMysteryGiftPartnerSentDeco:: db
+wMysteryGiftPartnerWhichItem:: db
+wMysteryGiftPartnerWhichDeco:: db
+wMysteryGiftPartnerBackupItem:: db
+ ds 1
wMysteryGiftPartnerDataEnd::
- ds 12
-wc920:: ds 16
-wc930:: ds 16
-wc940:: ds 16
+
+ ds 60
+
wMysteryGiftPlayerData::
-wc950:: ds 1
-wMysteryGiftPlayerID:: ds 2
+ ds 1
+wMysteryGiftPlayerID:: dw
wMysteryGiftPlayerName:: ds NAME_LENGTH
-wMysteryGiftPlayerDexCaught:: ds 1
-wMysteryGiftPlayerSentDeco:: ds 1
-wMysteryGiftPlayerWhichItem:: ds 1
-wMysteryGiftPlayerWhichDeco:: ds 1
-wMysteryGiftPlayerBackupItem:: ds 2
+wMysteryGiftPlayerDexCaught:: db
+wMysteryGiftPlayerSentDeco:: db
+wMysteryGiftPlayerWhichItem:: db
+wMysteryGiftPlayerWhichDeco:: db
+wMysteryGiftPlayerBackupItem:: db
+ ds 1
wMysteryGiftPlayerDataEnd::
-wc964:: ds 12
-wc970:: ds 16
-wc980:: ds 16
-wc990:: ds 16
-wc9a0:: ds 16
-wc9b0:: ds 16
-wc9c0:: ds 16
-wc9d0:: ds 16
-wc9e0:: ds 16
-wc9f0:: ds 4
+ ds 144
+
wc9f4:: ds 5
wc9f9:: ds 7
-wCreditsFaux2bpp::
-wca00:: ds 1
-wca01:: ds 1
-wca02:: ds 14
-wca10:: ds 16
-wca20:: ds 16
-wca30:: ds 16
-wca40:: ds 16
-wca50:: ds 16
-wca60:: ds 16
-wca70:: ds 16
+UNION ; ca00
+; blank credits tile buffer
+wCreditsFaux2bpp:: ds 128
- ds 35
+NEXTU ; ca00
+; mystery gift data
+wca00:: db
+wca01:: db
+wca02:: db
+ ds 160
+ENDU ; caa3
-wcaa3:: ds 2 ; caa3
+wcaa3:: ds 2
wcaa5:: ds 16
wcab5:: ds 10
wcabf:: ds 10
@@ -1100,16 +1030,18 @@
wcb0e:: ds 5
wcb13:: ds 9
wcb1c:: ds 14
-wBillsPC_ScrollPosition:: ds 1
-wBillsPC_CursorPosition:: ds 1
-wBillsPC_NumMonsInBox:: ds 1
-wBillsPC_NumMonsOnScreen:: ds 1
-wBillsPC_LoadedBox:: ds 1 ; 0 if party, 1 - 14 if box, 15 if active box
-wBillsPC_BackupScrollPosition:: ds 1
-wBillsPC_BackupCursorPosition:: ds 1
-wBillsPC_BackupLoadedBox:: ds 1
-wBillsPC_MonHasMail:: ds 1
+
+wBillsPC_ScrollPosition:: db
+wBillsPC_CursorPosition:: db
+wBillsPC_NumMonsInBox:: db
+wBillsPC_NumMonsOnScreen:: db
+wBillsPC_LoadedBox:: db ; 0 if party, 1 - 14 if box, 15 if active box
+wBillsPC_BackupScrollPosition:: db
+wBillsPC_BackupCursorPosition:: db
+wBillsPC_BackupLoadedBox:: db
+wBillsPC_MonHasMail:: db
ds 18
+
wcb45:: ds 20
wcb59:: ds 20
wcb6d:: ds 1
@@ -1116,8 +1048,7 @@
wcb6e:: ds 22
wcb84:: ds 100
wcbe8:: dw
-wLinkOTPartyMonTypes::
- ds 2 * PARTY_LENGTH
+wLinkOTPartyMonTypes:: ds 2 * PARTY_LENGTH
ds 84
wcc4a:: ds 22
@@ -1132,13 +1063,26 @@
wccb8:: ds 1
wccb9:: ds 1
wccba:: ds 102
-ENDU
+ENDU ; cd20
+
SECTION "Video", WRAM0
-UNION
-CreditsPos::
-BGMapBuffer::
+UNION ; cd20
+; BGMapBuffer
+BGMapBuffer:: ds 40 ; cd20
+BGMapPalBuffer:: ds 40 ; cd48
+BGMapBufferPtrs:: ds 40 ; cd70 ; 20 bg map addresses (16x8 tiles)
+BGMapBufferEnd::
+
+NEXTU ; cd20
+; credits
+CreditsPos:: db
+CreditsUnusedCD21:: db
+CreditsTimer:: db
+
+NEXTU ; cd20
+; mobile data
wMobileMonSpeciesPointerBuffer:: dw
wMobileMonStructurePointerBuffer:: dw
wMobileMonOTNamePointerBuffer:: dw
@@ -1145,13 +1089,11 @@
wMobileMonNicknamePointerBuffer:: dw
wMobileMonMailPointerBuffer:: dw
-NEXTU
+NEXTU ; cd20
+; more mobile data
wcd20:: ds 1
wcd21:: ds 1
-wcd22::
-CreditsTimer:: ; cd22
- ds 1
-
+wcd22:: ds 1
wcd23:: ds 1
wcd24:: ds 1
wMobileCommsJumptableIndex:: ds 1 ; cd25
@@ -1159,11 +1101,11 @@
wcd27:: ds 1
wcd28:: ds 1
wcd29:: ds 1
-ENDU
wMobileMonSpeciesBuffer::
-wcd2a:: ds 1
-wTempOddEggNickname::
+wcd2a:: db
+
+wTempOddEggNickname:: ; ds 11
wcd2b:: ds 1
wcd2c:: ds 1
wcd2d:: ds 1
@@ -1177,9 +1119,9 @@
wcd35:: ds 1
; current time for link/mobile?
-wcd36:: ds 1 ; hours
-wcd37:: ds 1 ; mins
-wcd38:: ds 1 ; secs
+wcd36:: db ; hours
+wcd37:: db ; mins
+wcd38:: db ; secs
wcd39:: ds 1
wcd3a:: ds 1
@@ -1194,29 +1136,31 @@
wcd43:: ds 1
; some sort of timer in link battles
-wMobileInactivityTimerMinutes:: ds 1 ; mins
-wMobileInactivityTimerSeconds:: ds 1 ; secs
-wMobileInactivityTimerFrames:: ds 1 ; frames
-
+wMobileInactivityTimerMinutes:: db ; mins
+wMobileInactivityTimerSeconds:: db ; secs
+wMobileInactivityTimerFrames:: db ; frames
wcd47:: ds 1
-BGMapPalBuffer:: ; cd48
- ds 1 ; 40
+ ds 1
wBTTempOTSprite::
-wcd49:: ds 1
+wcd49:: db
+
wcd4a:: ds 1
wcd4b:: ds 1
+
wEZChatCursorXCoord::
-wcd4c:: ds 1
+wcd4c:: db
wEZChatCursorYCoord::
-wcd4d:: ds 1
+wcd4d:: db
+
wcd4e:: ds 1
wcd4f:: ds 1
wcd50:: ds 1
wcd51:: ds 1
wcd52:: ds 1
-wMobileOpponentBattleMessage:: ; dc $c
+
+wMobileOpponentBattleMessage:: ; ds 12
wcd53:: ds 1
wcd54:: ds 1
wcd55:: ds 1
@@ -1244,18 +1188,15 @@
wcd6c:: ds 1
wcd6d:: ds 1
wcd6e:: ds 1
-wcd6f:: ds 1
-
-BGMapBufferPtrs:: ; cd70
-; 20 bg map addresses (16x8 tiles)
- ds 1 ; 40
-
+wcd6f:: ds 2
wcd71:: ds 1
wcd72:: ds 1
wcd73:: ds 1
wcd74:: ds 1
+
wOTMonSelection:: ds 2 ; ds 3
wcd77:: ds 1
+
wcd78:: ds 1
wcd79:: ds 1
wcd7a:: ds 2
@@ -1272,17 +1213,18 @@
wcd8b:: ds 1
wcd8c:: ds 1
wcd8d:: ds 11
-BGMapBufferEnd::
+ENDU ; cd98
-SGBPredef:: ; cd98
- ds 1
-PlayerHPPal:: ; cd99
- ds 1
-EnemyHPPal:: ; cd9a
- ds 1
+SGBPredef:: db ; cd98
+PlayerHPPal:: db ; cd99
+EnemyHPPal:: db ; cd9a
+
wHPPals:: ds PARTY_LENGTH
-wcda1:: ds 8
+wCurHPPal:: db
+
+ ds 7
+
wSGBPals:: ds 48 ; cda9
AttrMap:: ; cdd9
@@ -1297,101 +1239,123 @@
ds SCREEN_WIDTH * SCREEN_HEIGHT
AttrMapEnd::
-UNION
+UNION ; cf41
+; addresses dealing with serial comms
ds 1
-wcf42:: ds 2
-wcf44:: ds 1
-wcf45::
+wcf42:: db
+ ds 1
+wcf44:: db
+wcf45:: db
-NEXTU
-wTileAnimBuffer::
- ds $10
-; addresses dealing with serial comms
-ENDU
+NEXTU ; cf41
+wTileAnimBuffer:: ds 1 tiles
+ENDU ; cf51
-wOtherPlayerLinkMode:: ds 1
-wOtherPlayerLinkAction:: ds 4
-wPlayerLinkAction:: ds 1
-wcf57:: ds 4
+; link data
+wOtherPlayerLinkMode:: db
+wOtherPlayerLinkAction:: db
+ ds 3
+wPlayerLinkAction:: db
+wcf57:: db
+ ds 3
wLinkTimeoutFrames:: dw ; cf5b
-wcf5d:: ds 2
+wcf5d:: dw
-MonType:: ; cf5f
- ds 1
+MonType:: db ; cf5f
-CurSpecies:: ; cf60
-CurMove::
- ds 1
+CurSpecies::
+CurMove:: db ; cf60
-wNamedObjectTypeBuffer:: ds 1
+wNamedObjectTypeBuffer:: db
+
ds 1
-wJumptableIndex::
+
wBattleTowerBattleEnded::
-wcf63:: ds 1
-wNrOfBeatenBattleTowerTrainers::
-wMomBankDigitCursorPosition::
-wIntroSceneFrameCounter::
-wHoldingUnownPuzzlePiece::
-wCardFlipCursorY::
-wCreditsBorderFrame::
-wDexEntryPrevJumptableIndex::
-wcf64:: ds 1
+wJumptableIndex:: db
+
+UNION ; cf64
+; unidentified
+wcf64:: db
+wcf65:: db
+wcf66:: db
+
+NEXTU ; cf64
+; intro and title data
+wIntroSceneFrameCounter:: db
+wTitleScreenTimer:: dw
+
+NEXTU ; cf64
+; credits data
+wCreditsBorderFrame:: db
+wCreditsBorderMon:: db
+wCreditsLYOverride:: db
+
+NEXTU ; cf64
+; unown puzzle data
+wHoldingUnownPuzzlePiece:: db
+wUnownPuzzleCursorPosition:: db
+wUnownPuzzleHeldPiece:: db
+
+NEXTU ; cf64
+; card flip data
+wCardFlipCursorY:: db
+wCardFlipCursorX:: db
+wCardFlipWhichCard:: db
+
+NEXTU ; cf64
+; pokedex
+wDexEntryPrevJumptableIndex:: db
IF !DEF(CRYSTAL11)
-wPokedexStatus::
+wPokedexStatus:: db
ENDC
-wCreditsBorderMon::
-wTitleScreenTimerLo::
-wUnownPuzzleCursorPosition::
-wCardFlipCursorX::
+
+NEXTU ; cf64
+; miscellaneous
+wNrOfBeatenBattleTowerTrainers::
+wMomBankDigitCursorPosition::
+ db
wCurrPocket::
wPrinterQueueLength::
-wcf65:: ds 1
-wCreditsLYOverride::
-wTitleScreenTimerHi::
-wUnownPuzzleHeldPiece::
-wCardFlipWhichCard::
-wcf66:: ds 1
+ db
+ENDU ; cf67
-Requested2bpp:: ; cf67
-Requested2bppSize::
- ds 1
-Requested2bppSource:: ; cf68
- ds 2
-Requested2bppDest:: ; cf6a
- ds 2
+Requested2bpp::
+Requested2bppSize:: db ; cf67
+Requested2bppSource:: dw ; cf68
+Requested2bppDest:: dw ; cf6a
-Requested1bpp:: ; cf6c
-Requested1bppSize::
- ds 1
-Requested1bppSource:: ; cf6d
- ds 2
-Requested1bppDest:: ; cf6f
- ds 2
+Requested1bpp::
+Requested1bppSize:: db ; cf6c
+Requested1bppSource:: dw ; cf6d
+Requested1bppDest:: dw ; cf6f
wWindowStackPointer:: dw ; cf71
-wMenuJoypad:: ds 1 ; cf73
-MenuSelection:: ds 1 ; cf74
-MenuSelectionQuantity:: ds 1 ; cf75
-wWhichIndexSet:: ds 1 ; cf76
-wScrollingMenuCursorPosition:: ds 1 ; cf77
-wWindowStackSize:: ds 9 ; cf78
+wMenuJoypad:: db ; cf73
+MenuSelection:: db ; cf74
+MenuSelectionQuantity:: db ; cf75
+wWhichIndexSet:: db ; cf76
+wScrollingMenuCursorPosition:: db ; cf77
+wWindowStackSize:: db ; cf78
+ ds 8
+
; menu data header
wMenuDataHeader:: ; cf81
-wMenuFlags:: ds 1
-wMenuBorderTopCoord:: ds 1
-wMenuBorderLeftCoord:: ds 1
-wMenuBorderBottomCoord:: ds 1
-wMenuBorderRightCoord:: ds 1
-wMenuData2Pointer:: ds 2
-wMenuCursorBuffer:: ds 2
-; end menu data header
-wMenuDataBank:: ds 1 ; menu data bank?
+wMenuFlags:: db
+wMenuBorderTopCoord:: db
+wMenuBorderLeftCoord:: db
+wMenuBorderBottomCoord:: db
+wMenuBorderRightCoord:: db
+wMenuData2Pointer:: dw
+wMenuCursorBuffer:: dw
+wMenuDataBank:: db
ds 6
wMenuDataHeaderEnd::
wMenuData2::
-wMenuData2Flags:: ds 1 ; cf91
+UNION ; cf91
+; MenuData2
+wMenuData2Flags:: ; cf91
; bit 7: When set, start printing text one tile to the right of the border
; In scrolling menus, SELECT is functional
; bit 6: When set, start printing text one tile below the border
@@ -1402,105 +1366,99 @@
; bit 2: ????
; bit 1: Enable Select button
; bit 0: Disable B button
+ db
+wMenuData2Items:: db ; cf92
+wMenuData2IndicesPointer:: dw ; cf94
+wMenuData2DisplayFunctionPointer:: dw ; cf96
+wMenuData2PointerTableAddr:: dw ; cf97
-wMenuData2_ScrollingMenuHeight::
-wMenuData2Items::
- ds 1 ; cf92
-wMenuData2IndicesPointer::
-wMenuData2Spacing::
-wMenuData2_ScrollingMenuWidth::
- ds 1 ; cf93
-wMenuData2_2DMenuItemStringsBank::
-wMenuData2_ScrollingMenuSpacing::
- ds 1 ; cf94
-wMenuData2_2DMenuItemStringsAddr::
-wMenuData2DisplayFunctionPointer::
-wMenuData2_ItemsPointerBank::
- ds 1 ; cf95
-wMenuData2_ItemsPointerAddr::
- ds 1 ; cf96
-wMenuData2PointerTableAddr::
-wMenuData2_2DMenuFunctionBank::
- ds 1 ; cf97
-wMenuData2_2DMenuFunctionAddr::
-wMenuData2_ScrollingMenuFunction1::
- ds 3 ; cf98
-wMenuData2_ScrollingMenuFunction2::
- ds 3 ; cf9b
-wMenuData2_ScrollingMenuFunction3::
- ds 3 ; cf9e
+NEXTU ; cf91
+; 2D menu
+ ds 2 ; cf91
+wMenuData2Spacing:: db ; cf93
+wMenuData2_2DMenuItemStringsBank:: db ; cf94
+wMenuData2_2DMenuItemStringsAddr:: dw ; cf96
+wMenuData2_2DMenuFunctionBank:: db ; cf97
+wMenuData2_2DMenuFunctionAddr:: dw ; cf98
+
+NEXTU ; cf91
+; scrolling menu
+ ds 1 ; cf91
+wMenuData2_ScrollingMenuHeight:: db ; cf92
+wMenuData2_ScrollingMenuWidth:: db ; cf93
+wMenuData2_ScrollingMenuSpacing:: db ; cf94
+wMenuData2_ItemsPointerBank:: db ; cf95
+wMenuData2_ItemsPointerAddr:: dw ; cf97
+wMenuData2_ScrollingMenuFunction1:: ds 3 ; cf98
+wMenuData2_ScrollingMenuFunction2:: ds 3 ; cf9b
+wMenuData2_ScrollingMenuFunction3:: ds 3 ; cf9e
+ENDU ; cfa1
wMenuData2End::
wMenuData3::
-w2DMenuCursorInitY:: ds 1 ; cfa1
-w2DMenuCursorInitX:: ds 1 ; cfa2
-w2DMenuNumRows:: ds 1 ; cfa3
-w2DMenuNumCols:: ds 1 ; cfa4
-w2DMenuFlags1:: ds 1 ; cfa5
-w2DMenuFlags2:: ds 1 ; cfa6
-w2DMenuCursorOffsets:: ds 1 ; cfa7
-wMenuJoypadFilter:: ds 1 ; cfa8
+w2DMenuCursorInitY:: db ; cfa1
+w2DMenuCursorInitX:: db ; cfa2
+w2DMenuNumRows:: db ; cfa3
+w2DMenuNumCols:: db ; cfa4
+w2DMenuFlags1:: db ; cfa5
+w2DMenuFlags2:: db ; cfa6
+w2DMenuCursorOffsets:: db ; cfa7
+wMenuJoypadFilter:: db ; cfa8
wMenuData3End::
-wMenuCursorY:: ds 1 ; cfa9
-wMenuCursorX:: ds 1 ; cfaa
-wCursorOffCharacter:: ds 1 ; cfab
-wCursorCurrentTile:: ds 2 ; cfac
+wMenuCursorY:: db ; cfa9
+wMenuCursorX:: db ; cfaa
+wCursorOffCharacter:: db ; cfab
+wCursorCurrentTile:: dw ; cfac
+
ds 3
-OverworldDelay:: ; cfb1
- ds 1
-TextDelayFrames:: ; cfb2
- ds 1
-VBlankOccurred:: ; cfb3
- ds 1
+OverworldDelay:: db ; cfb1
+TextDelayFrames:: db ; cfb2
+VBlankOccurred:: db ; cfb3
-PredefID:: ; cfb4
- ds 1
-PredefTemp:: ; cfb5
- ds 2
-PredefAddress:: ; cfb7
- ds 2
-wFarCallBCBuffer:: ; cfb9
- ds 2
+PredefID:: db ; cfb4
+PredefTemp:: dw ; cfb5
+PredefAddress:: dw ; cfb7
+wFarCallBCBuffer:: dw ; cfb9
-wcfbb:: ds 1
+wcfbb:: db
+
GameTimerPause:: ; cfbc
; bit 0
- ds 1
+ db
ds 1
-wcfbe::
-; SGB flags?
- ds 2
+wcfbe:: ; SGB flags?
+; bit 7
+ db
+ ds 1
+
InBattleTowerBattle:: ; cfc0
; 0 not in BattleTower-Battle
; 1 BattleTower-Battle
- ds 1
+ db
ds 1
-FXAnimID::
-FXAnimIDLo:: ; cfc2
- ds 1
-FXAnimIDHi:: ; cfc3
- ds 1
-wPlaceBallsX:: ; cfc4
- ds 1
-wPlaceBallsY:: ; cfc5
- ds 1
-TileAnimationTimer:: ; cfc6
- ds 1
+FXAnimID:: dw ; cfc2
+wPlaceBallsX:: db ; cfc4
+wPlaceBallsY:: db ; cfc5
+
+TileAnimationTimer:: db ; cfc6
+
; palette backups?
-wBGP:: ds 1
-wOBP0:: ds 1
-wOBP1:: ds 1
+wBGP:: db
+wOBP0:: db
+wOBP1:: db
-wNumHits:: ds 2
+wNumHits:: db
+ ds 1
+
Options:: ; cfcc
; bit 0-2: number of frames to delay when printing text
; fast 1; mid 3; slow 5
@@ -1509,16 +1467,12 @@
; bit 5: stereo off/on
; bit 6: battle style shift/set
; bit 7: battle scene off/on
- ds 1
-
-wSaveFileExists:: ds 1
-
+ db
+wSaveFileExists:: db
TextBoxFrame:: ; cfce
; bits 0-2: textbox frame 0-7
- ds 1
-TextBoxFlags::
- ds 1
-
+ db
+TextBoxFlags:: db
GBPrinter:: ; cfd0
; bit 0-6: brightness
; lightest: $00
@@ -1526,49 +1480,47 @@
; normal: $40 (default)
; darker: $60
; darkest: $7F
- ds 1
-
+ db
Options2:: ; cfd1
; bit 1: menu account off/on
- ds 1
-
+ db
ds 2
OptionsEnd::
; Time buffer, for counting the amount of time since
; an event began.
+wSecondsSince:: db
+wMinutesSince:: db
+wHoursSince:: db
+wDaysSince:: db
-wSecondsSince:: ds 1
-wMinutesSince:: ds 1
-wHoursSince:: ds 1
-wDaysSince:: ds 1
-wRAM0End:: ; cfd8
-
-
SECTION "WRAM 1", WRAMX
+wRAM1Start::
wd000:: ds 1
-DefaultSpawnpoint::
-wd001:: ds 1
-; d002
-UNION
+DefaultSpawnpoint:: db
+
+UNION ; d002
+; mail temp storage
wTempMail:: mailmsg wTempMail
-NEXTU
-wSeerAction:: ds 1
+NEXTU ; d002
+; poke seer
+wSeerAction:: db
wSeerNickname:: ds PKMN_NAME_LENGTH
wSeerCaughtLocation:: ds 17
wSeerTimeOfDay:: ds NAME_LENGTH
wSeerOTName:: ds NAME_LENGTH
-wSeerOTNameGrammar:: ds 1
+wSeerOTNameGrammar:: db
wSeerCaughtLevelString:: ds 4
-wSeerCaughtLevel:: ds 1
-wSeerCaughtData:: ds 1
-wSeerCaughtGender:: ds 1
+wSeerCaughtLevel:: db
+wSeerCaughtData:: db
+wSeerCaughtGender:: db
-NEXTU
+NEXTU ; d002
+; mon buffer
wBufferMonNick:: ds PKMN_NAME_LENGTH ; d002
wBufferMonOT:: ds NAME_LENGTH ; d00d
wBufferMon:: party_struct wBufferMon ; d018
@@ -1575,7 +1527,8 @@
ds 8
wMonOrItemNameBuffer::
-NEXTU
+NEXTU ; d002
+; bug-catching contest
wBugContestResults::
bugcontestwinner wBugContestFirstPlace
bugcontestwinner wBugContestSecondPlace
@@ -1585,89 +1538,120 @@
ds 4
wBugContestWinnerName:: ds NAME_LENGTH
+NEXTU ; d002
+; mart items
+wMartItem1BCD:: ds 3
+wMartItem2BCD:: ds 3
+wMartItem3BCD:: ds 3
+wMartItem4BCD:: ds 3
+wMartItem5BCD:: ds 3
+wMartItem6BCD:: ds 3
+wMartItem7BCD:: ds 3
+wMartItem8BCD:: ds 3
+wMartItem9BCD:: ds 3
+wMartItem10BCD:: ds 3
+wMartItemBCDEnd::
+
+NEXTU ; d002
+; town map data
+wTownMapPlayerIconLandmark:: ds 1
+UNION
+wTownMapCursorLandmark:: ds 1
+wTownMapCursorObjectPointer:: ds 2
NEXTU
-wd002::
-wTempDayOfWeek::
-wApricorns::
-PhoneScriptBank::
-LuckyNumberDigit1Buffer::
-wCurrentRadioLine::
-wMovementBufferCount::
-wMartItem1BCD::
-wWhichBoxMonToPrint::
- ds 1
-wd003::
-LuckyNumberDigit2Buffer::
-PhoneCallerLo::
-wNextRadioLine::
-wMovementBufferPerson::
-wPlaceBallsDirection::
-wFinishedPrintingBox::
- ds 1
-wd004::
-LuckyNumberDigit3Buffer::
-PhoneCallerHi::
-wRadioTextDelay::
-wTrainerHUDTiles::
-wAddrOfBoxToPrint::
- ds 1
-wd005::
-LuckyNumberDigit4Buffer::
-StartFlypoint:: ; d005
-wNumRadioLinesPrinted::
-wMartItem2BCD::
- ds 1
-wd006::
-wMobileParticipant1Nickname::
-LuckyNumberDigit5Buffer::
-EndFlypoint:: ; d006
-wOaksPkmnTalkSegmentCounter::
-wBankOfBoxToPrint::
- ds 1
+wTownMapCursorCoordinates:: ds 2
+ENDU
-wd007::
-wWhichBoxToPrint::
-MovementBuffer:: ; d007
- ds 1
+NEXTU ; d002
+; phone call data
+PhoneScriptBank:: db
+PhoneCaller:: dw
-wMartItem3BCD::
-wd008:: ds 2
-wd00a:: ds 1
-wMartItem4BCD::
-wd00b:: ds 1
-
-UNION
+NEXTU ; d002
+; radio data
+wCurrentRadioLine:: db
+wNextRadioLine:: db
+wRadioTextDelay:: db
+wNumRadioLinesPrinted:: db
+wOaksPkmnTalkSegmentCounter:: db
+ ds 5
wRadioText:: ds 2 * SCREEN_WIDTH
wRadioTextEnd::
-NEXTU
-wMobileParticipant2Nickname::
+NEXTU ; d002
+; lucky number show
+LuckyNumberDigit1Buffer:: db
+LuckyNumberDigit2Buffer:: db
+LuckyNumberDigit3Buffer:: db
+LuckyNumberDigit4Buffer:: db
+LuckyNumberDigit5Buffer:: db
+
+NEXTU ; d002
+; movement buffer data
+wMovementBufferCount:: db
+wMovementBufferPerson:: db
+wUnusedMovementBufferBank:: db
+wUnusedMovementBufferPointer:: dw
+MovementBuffer:: ds 55
+
+NEXTU ; d002
+; box printing
+wWhichBoxMonToPrint:: db
+wFinishedPrintingBox:: db
+wAddrOfBoxToPrint:: dw
+wBankOfBoxToPrint:: db
+wWhichBoxToPrint:: db
+
+NEXTU ; d002
+; trainer HUD data
+ ds 1
+wPlaceBallsDirection:: db
+wTrainerHUDTiles:: db
+
+NEXTU ; d002
+; mobile participant nicknames
+ ds 4
+wMobileParticipant1Nickname:: ds 6
+wMobileParticipant2Nickname:: ds 6
+wMobileParticipant3Nickname:: ds 6
+
+NEXTU ; d002
+; earthquake data buffer
+wEarthquakeMovementDataBuffer:: ds 5
+
+NEXTU ; d002
+; miscellaneous
+wTempDayOfWeek::
+wApricorns:: db
+ ds 2
+
+StartFlypoint:: db
+EndFlypoint:: db
+
+NEXTU ; d002
+; unidentified
+wd002:: db
+wd003:: db
+wd004:: db
+
+; mobile?
+ ds 3
+wd008:: ds 2
+ ds 2
wd00c:: ds 1
wd00d:: ds 1
-wMartItem5BCD::
-wd00e:: ds 1
+ ds 1
wd00f:: ds 1
wd010:: ds 1
-wMartItem6BCD::
wd011:: ds 1
-wMobileParticipant3Nickname::
wd012:: ds 1
wd013:: ds 1
-wMartItem7BCD::
wd014:: ds 2
-wd016:: ds 1
-wMartItem8BCD::
+ ds 1
wd017:: ds 1
-
wd018:: ds 1
wd019:: ds 1
-wMartItem9BCD::
-wd01a:: ds 3
-wMartItem10BCD:: ds 2
-wd01f:: ds 1
-wMartItemBCDEnd::
- ds 13
-
+ ds 19
wd02d:: ds 1
wd02e:: ds 1
wd02f:: ds 1
@@ -1677,129 +1661,144 @@
wd033:: ds 1
wd034:: ds 2
wd036:: ds 2
-wd038:: ds 3
-wd03b:: ds 3
-ENDU
+ ds 6
-MenuItemsList::
-CurFruitTree::
-CurInput::
-wElevatorPointerBank::
-wCurCoordEventTriggerID::
-wCurSignpostYCoord::
-EngineBuffer1:: ; d03e
- ds 1
+UNION ; d03e
+; engine buffers
+EngineBuffer1:: db
+EngineBuffer2:: db
+EngineBuffer3:: db
+EngineBuffer4:: db
+EngineBuffer5:: db
-wd03f::
-wJumpStdScriptBuffer::
-CurFruit:: ; d03f
-MartPointerBank::
-wElevatorPointerLo::
-wCurCoordEventMapY::
-wCurSignpostXCoord::
-EngineBuffer2::
- ds 1
+NEXTU ; d03e
+; menu items list
+MenuItemsList:: ds 16
+MenuItemsListEnd::
-wd040::
-wElevatorPointerHi::
-MartPointer:: ; d040
-wCurCoordEventMapX::
-wCurSignpostType::
-EngineBuffer3::
- ds 1
+NEXTU ; d03e
+; fruit tree data
+CurFruitTree:: db
+CurFruit:: db
-wd041::
-wElevatorOriginFloor::
-wTempTrainerHeader::
-wTempTrainerEventFlagLo::
-wCurSignpostScriptAddr::
-EngineBuffer4::
- ds 1
+NEXTU ; d03e
+; elevator data
+wElevatorPointerBank:: db
+wElevatorPointer:: dw
+wElevatorOriginFloor:: db
-wTempTrainerEventFlagHi::
-MovementAnimation:: ; d042
-wCurCoordEventScriptAddr::
-EngineBuffer5::
+NEXTU ; d03e
+; coord event data
+wCurCoordEventTriggerID:: db
+wCurCoordEventMapY:: db
+wCurCoordEventMapX:: db
ds 1
+wCurCoordEventScriptAddr:: dw
-wTempTrainerClass::
-WalkingDirection:: ; d043
-wBargainShopFlags::
- ds 1
+NEXTU ; d03e
+; signpost data
+wCurSignpostYCoord:: db
+wCurSignpostXCoord:: db
+wCurSignpostType:: db
+wCurSignpostScriptAddr:: dw
-wTempTrainerID::
-FacingDirection:: ; d044
+NEXTU ; d03e
+; mart data
ds 1
-
-wSeenTextPointer::
-WalkingX::
-wd045:: ; d045
+MartPointerBank:: db
+MartPointer:: dw
ds 1
-WalkingY:: ; d046
- ds 1
+wBargainShopFlags:: db
-WalkingTile:: ; d047
-wWinTextPointer::
- ds 1
-
-wPhoneScriptPointer:: ds 1
-wLossTextPointer:: ds 2
-wScriptAfterPointer:: ds 2
-wRunningTrainerBattleScript:: ds 1
-MenuItemsListEnd::
+NEXTU ; d03e
+; trainer data
+ ds 3
+wTempTrainerHeader::
+wTempTrainerEventFlag:: dw
+wTempTrainerClass:: db
+wTempTrainerID:: db
+wSeenTextPointer:: dw
+wWinTextPointer:: dw
+wLossTextPointer:: dw
+wScriptAfterPointer:: dw
+wRunningTrainerBattleScript:: db
wTempTrainerHeaderEnd::
-wPlayerTurningDirection:: ; d04e
- ds 24
-ENDU
-wTMHMMoveNameBackup:: ds MOVE_NAME_LENGTH ; d066
-StringBuffer1:: ; d073
- ds 19
+NEXTU ; d03e
+; player movement data
+CurInput:: db
+wd03f:: db
+wd040:: db
+wd041:: db
+MovementAnimation:: db
+WalkingDirection:: db
+FacingDirection:: db
+WalkingX:: db
+WalkingY:: db
+WalkingTile:: db
+ ds 6
+wPlayerTurningDirection:: db
-StringBuffer2:: ; d086
- ds 19
+NEXTU ; d03e
+; std script buffer
+ ds 1
+wJumpStdScriptBuffer:: ds 3
-StringBuffer3:: ; d099
- ds 19
+NEXTU ; d03e
+; phone script pointer
+ ds 10
+wPhoneScriptPointer:: dw
-StringBuffer4:: ; d0ac
- ds 19
+NEXTU ; d03e
+; backup menu data
+ ds 7
+wMenuCursorBufferBackup:: db
+wMenuScrollPositionBackup:: db
+ ds 31
+ENDU ; d066
+ENDU ; d066
-StringBuffer5:: ; d0bf
- ds 19
+wTMHMMoveNameBackup:: ds MOVE_NAME_LENGTH ; d066
-wd0d2:: ds 2
+StringBuffer1:: ds 19 ; d073
+StringBuffer2:: ds 19 ; d086
+StringBuffer3:: ds 19 ; d099
+StringBuffer4:: ds 19 ; d0ac
+StringBuffer5:: ds 19 ; d0bf
-CurBattleMon:: ; d0d4
- ds 1
-CurMoveNum:: ; d0d5
- ds 1
+wBattleMenuCursorBuffer:: dw ; d0d2
-wLastPocket:: ds 1
+CurBattleMon:: db ; d0d4
+CurMoveNum:: db ; d0d5
-wPCItemsCursor:: ds 1
-wPartyMenuCursor:: ds 1
-wItemsPocketCursor:: ds 1
-wKeyItemsPocketCursor:: ds 1
-wBallsPocketCursor:: ds 1
-wTMHMPocketCursor:: ds 1
+wLastPocket:: db
-wPCItemsScrollPosition:: ds 1
-wPartyMenuScrollPosition:: ds 1 ; unused
-wItemsPocketScrollPosition:: ds 1
-wKeyItemsPocketScrollPosition:: ds 1
-wBallsPocketScrollPosition:: ds 1
-wTMHMPocketScrollPosition:: ds 1
+wPCItemsCursor:: db
+wPartyMenuCursor:: db
+wItemsPocketCursor:: db
+wKeyItemsPocketCursor:: db
+wBallsPocketCursor:: db
+wTMHMPocketCursor:: db
-wMoveSwapBuffer::
+wPCItemsScrollPosition:: db
+wPartyMenuScrollPosition:: db ; unused
+wItemsPocketScrollPosition:: db
+wKeyItemsPocketScrollPosition:: db
+wBallsPocketScrollPosition:: db
+wTMHMPocketScrollPosition:: db
+
wSwitchMon::
wSwitchItem::
+wMoveSwapBuffer::
wd0e3:: ds 1
+
wMenuScrollPosition:: ds 4
-wQueuedScriptBank:: ds 1
-wQueuedScriptAddr:: ds 2
-wNumMoves::
-wd0eb:: ds 1
+
+wQueuedScriptBank:: db
+wQueuedScriptAddr:: dw
+
+wNumMoves:: db
+
wFieldMoveSucceeded::
wItemEffectSucceeded::
wPlayerAction::
@@ -1807,7 +1806,7 @@
; 1 - use item
; 2 - switch
wSolvedUnownPuzzle::
- ds 1 ; d0ec
+ db ; d0ec
VramState:: ; d0ed
; bit 0: overworld sprite updating on/off
@@ -1814,259 +1813,203 @@
; bit 6: something to do with text
; bit 7: on when surf initiates
; flickers when climbing waterfall
- ds 1
+ db
-wBattleResult:: ds 1 ; d0ee
-wUsingItemWithSelect:: ds 1 ; d0ef
+wBattleResult:: db ; d0ee
+wUsingItemWithSelect:: db ; d0ef
-UNION
-CurMart:: ds 16 ; d0f0
+UNION ; d0f0
+; mart data
+CurMart:: ds 16
CurMartEnd::
-NEXTU
-CurElevator:: ds 1
-wd0f1::
-CurElevatorFloors::
-wCurMessageIndex:: ds 1
-wd0f2::
-wMailboxCount:: ds 1
+NEXTU ; d0f0
+; elevator data
+CurElevator:: db
+CurElevatorFloors:: db
+
+NEXTU ; d0f0
+; mailbox data
+ ds 1
+wCurMessageIndex:: db
+wMailboxCount:: db
wMailboxItems:: ds MAILBOX_CAPACITY
wMailboxEnd:: ds 1 ; d0fe
+ENDU ; d100
-ENDU
wListPointer:: dw ; d100
wUnusedD102:: dw ; d102
wItemAttributesPtr:: dw ; d104
-CurItem:: ds 1 ; d106
+CurItem:: db ; d106
CurItemQuantity:: ; d107
wMartItemID::
-wd107:: ds 1
+ db
-CurPartySpecies:: ; d108
- ds 1
+CurPartySpecies:: db ; d108
CurPartyMon:: ; d109
; contains which monster in a party
; is being dealt with at the moment
; 0-5
- ds 1
+ db
wWhichHPBar::
; 0: Enemy
; 1: Player
; 2: Party Menu
- ds 1
+ db
wPokemonWithdrawDepositParameter::
; 0: Take from PC
; 1: Put into PC
; 2: Take from Daycare
; 3: Put into Daycare
-wd10b:: ds 1
-wItemQuantityChangeBuffer:: ds 1
-wItemQuantityBuffer:: ds 1
+ db
-TempMon:: ; d10e
- party_struct TempMon
+wItemQuantityChangeBuffer:: db
+wItemQuantityBuffer:: db
-wSpriteFlags:: ds 1 ; d13e
+TempMon:: party_struct TempMon ; d10e
-wHandlePlayerStep:: ds 2 ; d13f
+wSpriteFlags:: db ; d13e
-PartyMenuActionText:: ; d141
- ds 1
+wHandlePlayerStep:: dw ; d13f
-wItemAttributeParamBuffer:: ; d142
- ds 1
+PartyMenuActionText:: db ; d141
-CurPartyLevel:: ; d143
- ds 1
+wItemAttributeParamBuffer:: db ; d142
-wScrollingMenuListSize:: ds 2
+CurPartyLevel:: db ; d143
+wScrollingMenuListSize:: dw
+
; used when following a map warp
; d146
-wNextWarp:: ds 1
-wNextMapGroup:: ds 1
-wNextMapNumber:: ds 1
-wPrevWarp:: ds 1
-wPrevMapGroup:: ds 1
-wPrevMapNumber:: ds 1
+wNextWarp:: db
+wNextMapGroup:: db
+wNextMapNumber:: db
+wPrevWarp:: db
+wPrevMapGroup:: db
+wPrevMapNumber:: db
; d14c
-wPlayerBGMapOffsetX:: ds 1 ; used in FollowNotExact; unit is pixels
-wPlayerBGMapOffsetY:: ds 1 ; used in FollowNotExact; unit is pixels
+wPlayerBGMapOffsetX:: db ; used in FollowNotExact; unit is pixels
+wPlayerBGMapOffsetY:: db ; used in FollowNotExact; unit is pixels
; Player movement
-wPlayerStepVectorX:: ds 1 ; d14e
-wPlayerStepVectorY:: ds 1 ; d14f
-wPlayerStepFlags:: ds 1 ; d150
+wPlayerStepVectorX:: db ; d14e
+wPlayerStepVectorY:: db ; d14f
+wPlayerStepFlags:: db ; d150
+wPlayerStepDirection:: ; d151
; bit 7: Start step
; bit 6: Stop step
; bit 5: Doing step
; bit 4: In midair
; bits 0-3: unused
-wPlayerStepDirection:: ds 1 ; d151
+ db
-wBGMapAnchor:: ds 2 ; d152
+wBGMapAnchor:: dw ; d152
-UNION
-UsedSprites:: ds 64 ; d154
+UNION ; d154
+UsedSprites:: ds 64
UsedSpritesEnd::
-NEXTU
-wd154:: ; d154
- ds 31 ; 64
+NEXTU ; d154
+ ds 31
+wd173:: db ; related to command queue type 3
+ENDU ; d194
-wd173:: ds 1 ; related to command queue type 3
- ds 13
-wd181:: ds 1
-wd182:: ds 1
- ds 14
-
-wd191:: ds 1
-wd192:: ds 1
-wd193:: ds 1
-ENDU
-
wOverworldMapAnchor:: dw ; d194
-wMetatileStandingY:: ds 1 ; d196
-wMetatileStandingX:: ds 1 ; d197
-wSecondMapHeaderBank:: ds 1 ; d198
-wTileset:: ds 1 ; d199
-wPermission:: ds 1 ; d19a
+wMetatileStandingY:: db ; d196
+wMetatileStandingX:: db ; d197
+
+wSecondMapHeaderBank:: db ; d198
+wTileset:: db ; d199
+wPermission:: db ; d19a
wSecondMapHeaderAddr:: dw ; d19b
; width/height are in blocks (2x2 walkable tiles, 4x4 graphics tiles)
MapHeader:: ; d19d
-MapBorderBlock:: ; 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
+MapBorderBlock:: db ; d19d
+MapHeight:: db ; d19e
+MapWidth:: db ; d19f
+MapBlockDataBank:: db; d1a0
+MapBlockDataPointer:: dw ; d1a1
+MapScriptHeaderBank:: db ; d1a3
+MapScriptHeaderPointer:: dw ; d1a4
+MapEventHeaderPointer:: dw ; d1a6
; bit set
-MapConnections:: ; d1a8
- ds 1
+MapConnections:: db ; d1a8
+
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
+NorthConnectedMapGroup:: db ; d1a9
+NorthConnectedMapNumber:: db ; d1aa
+NorthConnectionStripPointer:: dw ; d1ab
+NorthConnectionStripLocation:: dw ; d1ad
+NorthConnectionStripLength:: db ; d1af
+NorthConnectedMapWidth:: db ; d1b0
+NorthConnectionStripYOffset:: db ; d1b1
+NorthConnectionStripXOffset:: db ; d1b2
+NorthConnectionWindow:: dw ; d1b3
SouthMapConnection:: ; d1b5
-SouthConnectedMapGroup:: ; 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
+SouthConnectedMapGroup:: db ; d1b5
+SouthConnectedMapNumber:: db ; d1b6
+SouthConnectionStripPointer:: dw ; d1b7
+SouthConnectionStripLocation:: dw ; d1b9
+SouthConnectionStripLength:: db ; d1bb
+SouthConnectedMapWidth:: db ; d1bc
+SouthConnectionStripYOffset:: db ; d1bd
+SouthConnectionStripXOffset:: db ; d1be
+SouthConnectionWindow:: dw ; d1bf
WestMapConnection:: ; d1c1
-WestConnectedMapGroup:: ; 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
+WestConnectedMapGroup:: db ; d1c1
+WestConnectedMapNumber:: db ; d1c2
+WestConnectionStripPointer:: dw ; d1c3
+WestConnectionStripLocation:: dw ; d1c5
+WestConnectionStripLength:: db ; d1c7
+WestConnectedMapWidth:: db ; d1c8
+WestConnectionStripYOffset:: db ; d1c9
+WestConnectionStripXOffset:: db ; d1ca
+WestConnectionWindow:: dw ; d1cb
EastMapConnection:: ; d1cd
-EastConnectedMapGroup:: ; 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
+EastConnectedMapGroup:: db ; d1cd
+EastConnectedMapNumber:: db ; d1ce
+EastConnectionStripPointer:: dw ; d1cf
+EastConnectionStripLocation:: dw ; d1d1
+EastConnectionStripLength:: db ; d1d3
+EastConnectedMapWidth:: db ; d1d4
+EastConnectionStripYOffset:: db ; d1d5
+EastConnectionStripXOffset:: db ; d1d6
+EastConnectionWindow:: dw ; d1d7
-
TilesetHeader::
-TilesetBank:: ; 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
+TilesetBank:: db ; d1d9
+TilesetAddress:: dw ; d1da
+TilesetBlocksBank:: db ; d1dc
+TilesetBlocksAddress:: dw ; d1dd
+TilesetCollisionBank:: db ; d1df
+TilesetCollisionAddress:: dw ; d1e0
+TilesetAnim:: dw ; bank 3f ; d1e2
+ ds 2 ; unused ; d1e4
+TilesetPalettes:: dw ; bank 3f ; d1e6
-EvolvableFlags:: ; d1e8
- flag_array PARTY_LENGTH
+EvolvableFlags:: flag_array PARTY_LENGTH ; d1e8
wForceEvolution:: db ; d1e9
-UNION
+UNION ; d1ea
+; general-purpose buffers
+Buffer1:: db ; d1ea
+Buffer2:: db ; d1eb
+Buffer3:: db ; d1ec
+Buffer4:: db ; d1ed
+Buffer5:: db ; d1ee
+Buffer6:: db ; d1ef
+
+NEXTU ; d1ea
; HP bar animations
wCurHPAnimMaxHP:: dw ; d1ea
wCurHPAnimOldHP:: dw ; d1ec
@@ -2078,42 +2021,41 @@
wCurHPAnimLowHP:: db ; d1f5
wCurHPAnimHighHP:: db ; d1f6
-NEXTU
-MagikarpLength::
-wEvolutionOldSpecies::
-Buffer1:: ; d1ea
- ds 1
-MovementType::
-wEvolutionNewSpecies::
-Buffer2:: ; d1eb
- ds 1
-wEvolutionPicOffset::
-Buffer3::
+NEXTU ; d1ea
+; evolution data
+wEvolutionOldSpecies:: db ; d1ea
+wEvolutionNewSpecies:: db ; d1eb
+wEvolutionPicOffset:: db ; d1ec
+wEvolutionCanceled:: db ; d1ed
+
+NEXTU ; d1ea
+; mobile
+ ds 2
wd1ec:: ds 1
-wEvolutionCanceled::
-Buffer4::
wd1ed:: ds 1
-Buffer5::
wd1ee:: ds 1
-Buffer6::
wd1ef:: ds 1
wd1f0:: ds 1
-CurEnemyItem::
wd1f1:: ds 1
wd1f2:: ds 1
-wd1f3:: ds 1
-wd1f4:: ds 1
-wd1f5:: ds 1
-wd1f6::
- ds 4
-ENDU
+wd1f3:: ds 4
-LinkBattleRNs:: ; d1fa
- ds 10
+NEXTU ; d1ea
+; miscellaneous
+wMagikarpLength:: dw
+wSelectedDecoration:: db
+wOtherDecoration:: db
+ ds 3
+CurEnemyItem:: db
+ENDU ; d1f7
-TempEnemyMonSpecies:: ds 1 ; d204
-TempBattleMonSpecies:: ds 1 ; d205
+ ds 3
+LinkBattleRNs:: ds 10 ; d1fa
+
+TempEnemyMonSpecies:: db ; d204
+TempBattleMonSpecies:: db ; d205
+
EnemyMon:: battle_struct EnemyMon ; d206
EnemyMonBaseStats:: ds 5 ; d226
EnemyMonCatchRate:: db ; d22b
@@ -2125,120 +2067,88 @@
; 0: overworld
; 1: wild battle
; 2: trainer battle
- ds 1
+ db
-TempWildMonSpecies:: ds 1
+TempWildMonSpecies:: db
+
OtherTrainerClass:: ; d22f
; class (Youngster, Bug Catcher, etc.) of opposing trainer
; 0 if opponent is a wild Pokémon, not a trainer
- ds 1
+ db
-BattleType:: ; d230
-; $00 normal
-; $01 can lose
-; $02 debug
-; $03 dude/tutorial
-; $04 fishing
-; $05 roaming
-; $06 contest
-; $07 shiny
-; $08 headbutt/rock smash
-; $09 trap
-; $0a force Item1
-; $0b celebi
-; $0c suicune
- ds 1
+; BATTLETYPE_* values
+BattleType:: db ; d230
OtherTrainerID:: ; d231
; which trainer of the class that you're fighting
; (Joey, Mikey, Albert, etc.)
- ds 1
+ db
-wForcedSwitch:: ds 1
+wForcedSwitch:: db
-TrainerClass:: ; d233
- ds 1
+TrainerClass:: db ; d233
-UnownLetter:: ; d234
- ds 1
+UnownLetter:: db ; d234
-wMoveSelectionMenuType:: ds 1
+wMoveSelectionMenuType:: db
+; corresponds to the data/base_stats/*.asm contents
CurBaseData:: ; d236
-BaseDexNo:: ; d236
- ds 1
+BaseDexNo:: db ; d236
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
+BaseHP:: db ; d237
+BaseAttack:: db ; d238
+BaseDefense:: db ; d239
+BaseSpeed:: db ; d23a
+BaseSpecialAttack:: db ; d23b
+BaseSpecialDefense:: db ; d23c
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
+BaseType1:: db ; d23d
+BaseType2:: db ; d23e
+BaseCatchRate:: db ; d23f
+BaseExp:: db ; d240
+BaseItems:: dw ; d241
+BaseGender:: db ; d243
+BaseUnknown1:: db ; d244
+BaseEggSteps:: db ; d245
+BaseUnknown2:: db ; d246
+BasePicSize:: db ; d247
+BasePadding:: ds 4 ; d248
+BaseGrowthRate:: db ; d24c
+BaseEggGroups:: db ; d24d
+BaseTMHM:: flag_array NUM_TM_HM_TUTOR ; d24e
+CurDamage:: dw ; d256
-CurDamage:: ; d256
ds 2
- ds 2
-wMornEncounterRate:: ds 1 ; d25a
-wDayEncounterRate:: ds 1 ; d25b
-wNiteEncounterRate:: ds 1 ; d25c
-wWaterEncounterRate:: ds 1 ; d25d
+wMornEncounterRate:: db ; d25a
+wDayEncounterRate:: db ; d25b
+wNiteEncounterRate:: db ; d25c
+wWaterEncounterRate:: db ; d25d
wListMoves_MoveIndicesBuffer:: ds NUM_MOVES
-wPutativeTMHMMove:: ds 1
-wInitListType:: ds 1
-wBattleHasJustStarted:: ds 1
+wPutativeTMHMMove:: db
+wInitListType:: db
+wBattleHasJustStarted:: db
+
wFoundMatchingIDInParty::
wNamedObjectIndexBuffer::
wCurTMHM::
wTypeMatchup::
-wd265:: ds 1
-wFailedToFlee:: ds 1
-wNumFleeAttempts:: ds 1
-wMonTriedToEvolve:: ds 1
+wd265:: db
-TimeOfDay:: ; d269
- ds 1
+wFailedToFlee:: db
+wNumFleeAttempts:: db
+wMonTriedToEvolve:: db
+TimeOfDay:: db ; d269
+
ds 1
+
SECTION "Enemy Party", WRAMX
-UNION
+
+UNION ; d26b
wPokedexShowPointerAddr::
wd26b:: ds 1
wd26c:: ds 1
@@ -2247,33 +2157,35 @@
ds 3
wd271:: ds 5
-NEXTU
+NEXTU ; d26b
; SECTION "Enemy Party", WRAMX
OTPlayerName:: ds NAME_LENGTH ; d26b
-ENDU
+ENDU ; d276
OTPlayerID:: ds 2 ; d276
ds 8
OTPartyCount:: ds 1 ; d280
OTPartySpecies:: ds PARTY_LENGTH ; d281
-OTPartyEnd:: ds 1
+OTPartyEnd:: ds 1 ; legacy scripts don't check PartyCount
-UNION
-wDudeBag:: ; d288
-wDudeNumItems:: ds 1
+UNION ; d288
+; catch tutorial dude pack
+wDudeBag::
+wDudeNumItems:: db
wDudeItems:: ds 2 * 4
-wDudeItemsEnd:: ds 1
+wDudeItemsEnd:: db
-wDudeNumKeyItems:: ds 1 ; d292
+wDudeNumKeyItems:: db ; d292
wDudeKeyItems:: ds 18
-wDudeKeyItemsEnd:: ds 1
+wDudeKeyItemsEnd:: db
-wDudeNumBalls:: ds 1 ; d2a6
+wDudeNumBalls:: db ; d2a6
wDudeBalls:: ds 2 * 4 ; d2a7
-wDudeBallsEnd:: ds 1 ; d2af
+wDudeBallsEnd:: db ; d2af
wDudeBagEnd::
-NEXTU
+NEXTU ; d288
+; ot party mons
OTPartyMons::
OTPartyMon1:: party_struct OTPartyMon1 ; d288
OTPartyMon2:: party_struct OTPartyMon2 ; d2b8
@@ -2287,24 +2199,23 @@
OTPartyMonNicknames:: ds PKMN_NAME_LENGTH * PARTY_LENGTH ; d3ea
OTPartyDataEnd::
ds 4
-ENDU
+ENDU ; d430
wd430::
-wBattleAction:: ds 1 ; d430
+wBattleAction:: db ; d430
-wd431:: ds 1
-MapStatus:: ; d432
- ds 1
+wd431:: db
+MapStatus:: db ; d432
MapEventStatus:: ; d433
; 0: do map events
; 1: do background events
- ds 1
+ db
ScriptFlags:: ; d434
; bit 3: priority jump
- ds 1
+ db
ScriptFlags2:: ; d435
- ds 1
+ db
ScriptFlags3:: ; d436
; bit 0: count steps
; bit 1: xy triggers
@@ -2311,48 +2222,43 @@
; bit 2: warps and connections
; bit 4: wild encounters
; bit 5: unknown
- ds 1
+ db
-ScriptMode:: ; d437
- ds 1
-ScriptRunning:: ; d438
- ds 1
-ScriptBank:: ; d439
- ds 1
-ScriptPos:: ; d43a
- ds 2
+ScriptMode:: db ; d437
+ScriptRunning:: db ; d438
+ScriptBank:: db ; d439
+ScriptPos:: dw ; d43a
-wScriptStackSize:: ds 1
+wScriptStackSize:: db
wScriptStack:: ds 3 * 5
ds 1
-ScriptDelay:: ; d44d
- ds 1
+ScriptDelay:: db ; d44d
wPriorityScriptBank::
-wScriptTextBank::
- ds 1 ; d44e
+wScriptTextBank:: db ; d44e
wPriorityScriptAddr::
-wScriptTextAddr:: ds 2 ; d44f
+wScriptTextAddr:: dw ; d44f
ds 1
-wWildEncounterCooldown:: ds 1 ; d452
-wXYComparePointer:: ds 2 ; d453
+wWildEncounterCooldown:: db ; d452
+wXYComparePointer:: dw ; d453
ds 4
-wBattleScriptFlags:: ds 2 ; d459
-wPlayerSpriteSetupFlags:: ds 1 ; d45b
+wBattleScriptFlags:: dw ; d459
+wPlayerSpriteSetupFlags:: ; d45b
; bit 7: if set, cancel PlayerAction
; bit 5: if set, set facing according to bits 0-1
; bits 0-1: direction facing
-wMapReentryScriptQueueFlag:: ds 1 ; d45c MemScriptFlag
-wMapReentryScriptBank:: ds 1 ; d45d MemScriptBank
-wMapReentryScriptAddress:: ds 2 ; d45e MemScriptAddr
- ds 4 ; ?????????????
-wTimeCyclesSinceLastCall:: ds 1 ; d464
-wReceiveCallDelay_MinsRemaining:: ds 1 ; d465
+ db
+wMapReentryScriptQueueFlag:: db ; d45c MemScriptFlag
+wMapReentryScriptBank:: db ; d45d MemScriptBank
+wMapReentryScriptAddress:: dw ; d45e MemScriptAddr
+ ds 4
+wTimeCyclesSinceLastCall:: db ; d464
+wReceiveCallDelay_MinsRemaining:: db ; d465
wReceiveCallDelay_StartTime:: ds 3 ; d466
ds 3
-wBugContestMinsRemaining:: ds 1 ; d46c
-wBugContestSecsRemaining:: ds 1 ; d46d
+wBugContestMinsRemaining:: db ; d46c
+wBugContestSecsRemaining:: db ; d46d
ds 2
wMapStatusEnd:: ds 2 ; d470
@@ -2361,7 +2267,7 @@
; bit 0:
; 0 male
; 1 female
- ds 1
+ db
wd473:: ds 1
wd474:: ds 1
wd475:: ds 1
@@ -2375,7 +2281,7 @@
wGameData::
wPlayerData::
PlayerID:: ; d47b
- ds 2
+ dw
PlayerName:: ds NAME_LENGTH ; d47d
MomsName:: ds NAME_LENGTH ; d488
@@ -2383,45 +2289,34 @@
RedsName:: ds NAME_LENGTH ; d49e
GreensName:: ds NAME_LENGTH ; d4a9
-wSavedAtLeastOnce:: ds 1
-wSpawnAfterChampion:: ds 1
+wSavedAtLeastOnce:: db
+wSpawnAfterChampion:: db
; init time set at newgame
-StartDay:: ; d4b6
- ds 1
-StartHour:: ; d4b7
- ds 1
-StartMinute:: ; d4b8
- ds 1
-StartSecond:: ; d4b9
- ds 1
+StartDay:: db ; d4b6
+StartHour:: db ; d4b7
+StartMinute:: db ; d4b8
+StartSecond:: db ; d4b9
-wRTC:: ; d4ba
- ds 8
-wDST:: ; d4c2
- ds 1
+wRTC:: ds 8 ; d4ba
+wDST:: db ; d4c2
-GameTimeCap:: ; d4c3
- ds 1
-GameTimeHours:: ; d4c4
- ds 2
-GameTimeMinutes:: ; d4c6
- ds 1
-GameTimeSeconds:: ; d4c7
- ds 1
-GameTimeFrames:: ; d4c8
- ds 1
+GameTimeCap:: db ; d4c3
+GameTimeHours:: dw ; d4c4
+GameTimeMinutes:: db ; d4c6
+GameTimeSeconds:: db ; d4c7
+GameTimeFrames:: db ; d4c8
ds 2
-CurDay:: ; d4cb
- ds 1
+CurDay:: db ; d4cb
ds 1
-wObjectFollow_Leader:: ds 1
-wObjectFollow_Follower:: ds 1
-wCenteredObject:: ds 1
-wFollowerMovementQueueLength:: ds 1
+
+wObjectFollow_Leader:: db
+wObjectFollow_Follower:: db
+wCenteredObject:: db
+wFollowerMovementQueueLength:: db
wFollowMovementQueue:: ds 5
ObjectStructs:: ; d4d6
@@ -2441,8 +2336,9 @@
ObjectStructsEnd:: ; d6de
wCmdQueue:: ds CMDQUEUE_CAPACITY * CMDQUEUE_ENTRY_SIZE
- ds $28
+ ds 40
+
MapObjects:: ; d71e
map_object Player
map_object Map1
@@ -2464,23 +2360,19 @@
wObjectMasks:: ds NUM_OBJECTS ; d81e
-VariableSprites:: ; d82e
- ds $10
+VariableSprites:: ds 16; d82e
-wEnteredMapFromContinue:: ds 1 ; d83e
+wEnteredMapFromContinue:: db ; d83e
ds 2
-TimeOfDayPal:: ; d841
- ds 1
+TimeOfDayPal:: db ; d841
ds 4
-; d846
-wTimeOfDayPalFlags:: ds 1
-wTimeOfDayPalset:: ds 1
-CurTimeOfDay:: ; d848
- ds 1
+wTimeOfDayPalFlags:: db ; d846
+wTimeOfDayPalset:: db
+CurTimeOfDay:: db ; d848
ds 1
-wSecretID:: ds 2
+wSecretID:: dw
StatusFlags:: ; d84c
; 0 - pokedex
; 1 - unown dex
@@ -2490,7 +2382,7 @@
; 5 - wild encounters on/off
; 6 - hall of fame
; 7 - bug contest on
- ds 1
+ db
StatusFlags2:: ; d84d
; 0 - rockets
@@ -2501,79 +2393,60 @@
; 5 - pokerus
; 6 - berry juice?
; 7 - rockets in mahogany
- ds 1
+ db
-Money:: ; d84e
- ds 3
+Money:: ds 3 ; d84e
+wMomsMoney:: ds 3 ; d851
+wMomSavingMoney:: db ; d854
-wMomsMoney:: ; d851
- ds 3
-wMomSavingMoney:: ; d854
- ds 1
+Coins:: dw ; d855
-Coins:: ; d855
- ds 2
-
Badges::
-JohtoBadges:: ; d857
- flag_array 8
-KantoBadges:: ; d858
- flag_array 8
+JohtoBadges:: flag_array NUM_JOHTO_BADGES ; d857
+KantoBadges:: flag_array NUM_KANTO_BADGES ; d858
-TMsHMs:: ; d859
- ds NUM_TMS + NUM_HMS
+TMsHMs:: ds NUM_TMS + NUM_HMS ; d859
TMsHMsEnd::
-NumItems:: ; d892
- ds 1
-Items:: ; d893
- ds MAX_ITEMS * 2 + 1
+NumItems:: db ; d892
+Items:: ds MAX_ITEMS * 2 + 1 ; d893
ItemsEnd::
-NumKeyItems:: ; d8bc
- ds 1
-KeyItems:: ; d8bd
- ds MAX_KEY_ITEMS + 1
+NumKeyItems:: db ; d8bc
+KeyItems:: ds MAX_KEY_ITEMS + 1 ; d8bd
KeyItemsEnd::
-NumBalls:: ; d8d7
- ds 1
-Balls:: ; d8d8
- ds MAX_BALLS * 2 + 1
+NumBalls:: db ; d8d7
+Balls:: ds MAX_BALLS * 2 + 1 ; d8d8
BallsEnd::
-PCItems:: ; d8f1
- ds MAX_PC_ITEMS * 2 + 1
+PCItems:: ds MAX_PC_ITEMS * 2 + 1 ; d8f1
PCItemsEnd::
ds 1
-wPokegearFlags:: ds 1
+wPokegearFlags::
; bit 0: map
; bit 1: radio
; bit 2: phone
; bit 3: expn
; bit 7: on/off
-wRadioTuningKnob:: ds 1
-wLastDexMode:: ds 2
-WhichRegisteredItem:: ; d95b
+ db
+wRadioTuningKnob:: db
+wLastDexMode:: db
ds 1
-RegisteredItem:: ; d95c
- ds 1
+WhichRegisteredItem:: db ; d95b
+RegisteredItem:: db ; d95c
-PlayerState:: ; d95d
- ds 1
+PlayerState:: db ; d95d
-wHallOfFameCount:: ds 2
+wHallOfFameCount:: dw
wTradeFlags:: flag_array 6 ; d960
ds 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
+MooMooBerries:: db ; d962
+UndergroundSwitchPositions:: db ; d963
+FarfetchdPosition:: db ; d964
ds 13
@@ -2580,85 +2453,85 @@
;SECTION "Map Triggers", WRAMX
-wPokecenter2FTrigger:: ds 1 ; d972
-wTradeCenterTrigger:: ds 1 ; d973
-wColosseumTrigger:: ds 1 ; d974
-wTimeCapsuleTrigger:: ds 1 ; d975
-wPowerPlantTrigger:: ds 1 ; d976
-wCeruleanGymTrigger:: ds 1 ; d977
-wRoute25Trigger:: ds 1 ; d978
-wTrainerHouseB1FTrigger:: ds 1 ; d979
-wVictoryRoadGateTrigger:: ds 1 ; d97a
-wSaffronTrainStationTrigger:: ds 1 ; d97b
-wRoute16GateTrigger:: ds 1 ; d97c
-wRoute1718GateTrigger:: ds 1 ; d97d
-wIndigoPlateauPokecenter1FTrigger:: ds 1 ; d97e
-wWillsRoomTrigger:: ds 1 ; d97f
-wKogasRoomTrigger:: ds 1 ; d980
-wBrunosRoomTrigger:: ds 1 ; d981
-wKarensRoomTrigger:: ds 1 ; d982
-wLancesRoomTrigger:: ds 1 ; d983
-wHallOfFameTrigger:: ds 1 ; d984
-wRoute27Trigger:: ds 1 ; d985
-wNewBarkTownTrigger:: ds 1 ; d986
-wElmsLabTrigger:: ds 1 ; d987
-wKrissHouse1FTrigger:: ds 1 ; d988
-wRoute29Trigger:: ds 1 ; d989
-wCherrygroveCityTrigger:: ds 1 ; d98a
-wMrPokemonsHouseTrigger:: ds 1 ; d98b
-wRoute32Trigger:: ds 1 ; d98c
-wRoute35NationalParkGateTrigger:: ds 1 ; d98d
-wRoute36Trigger:: ds 1 ; d98e
-wRoute36NationalParkGateTrigger:: ds 1 ; d98f
-wAzaleaTownTrigger:: ds 1 ; d990
-wGoldenrodGymTrigger:: ds 1 ; d991
-wGoldenrodMagnetTrainStationTrigger:: ds 1 ; d992
-wGoldenrodPokecenter1FTrigger:: ds 1 ; d993
-wOlivineCityTrigger:: ds 1 ; d994
-wRoute34Trigger:: ds 1 ; d995
-wRoute34IlexForestGateTrigger:: ds 1 ; d996
-wEcruteakHouseTrigger:: ds 1 ; d997
-wWiseTriosRoomTrigger:: ds 1 ; d998
-wEcruteakPokecenter1FTrigger:: ds 1 ; d999
-wEcruteakGymTrigger:: ds 1 ; d99a
-wMahoganyTownTrigger:: ds 1 ; d99b
-wRoute42Trigger:: ds 1 ; d99c
-wCianwoodCityTrigger:: ds 1 ; d99d
-wBattleTower1FTrigger:: ds 1 ; d99e
-wBattleTowerBattleRoomTrigger:: ds 1 ; d99f
-wBattleTowerElevatorTrigger:: ds 1 ; d9a0
-wBattleTowerHallwayTrigger:: ds 1 ; d9a1
-wBattleTowerOutsideTrigger:: ds 1 ; d9a2
-wRoute43GateTrigger:: ds 1 ; d9a3
-wMountMoonTrigger:: ds 1 ; d9a4
-wSproutTower3FTrigger:: ds 1 ; d9a5
-wTinTower1FTrigger:: ds 1 ; d9a6
-wBurnedTower1FTrigger:: ds 1 ; d9a7
-wBurnedTowerB1FTrigger:: ds 1 ; d9a8
-wRadioTower5FTrigger:: ds 1 ; d9a9
-wRuinsOfAlphOutsideTrigger:: ds 1 ; d9aa
-wRuinsOfAlphResearchCenterTrigger:: ds 1 ; d9ab
-wRuinsOfAlphHoOhChamberTrigger:: ds 1 ; d9ac
-wRuinsOfAlphKabutoChamberTrigger:: ds 1 ; d9ad
-wRuinsOfAlphOmanyteChamberTrigger:: ds 1 ; d9ae
-wRuinsOfAlphAerodactylChamberTrigger:: ds 1 ; d9af
-wRuinsOfAlphInnerChamberTrigger:: ds 1 ; d9b0
-wMahoganyMart1FTrigger:: ds 1 ; d9b1
-wTeamRocketBaseB1FTrigger:: ds 1 ; d9b2
-wTeamRocketBaseB2FTrigger:: ds 1 ; d9b3
-wTeamRocketBaseB3FTrigger:: ds 1 ; d9b4
-wUndergroundPathSwitchRoomEntrancesTrigger:: ds 1 ; d9b5
-wSilverCaveRoom3Trigger:: ds 1 ; d9b6
-wVictoryRoadTrigger:: ds 1 ; d9b7
-wDragonsDenB1FTrigger:: ds 1 ; d9b8
-wDragonShrineTrigger:: ds 1 ; d9b9
-wOlivinePortTrigger:: ds 1 ; d9ba
-wVermilionPortTrigger:: ds 1 ; d9bb
-wFastShip1FTrigger:: ds 1 ; d9bc
-wFastShipB1FTrigger:: ds 1 ; d9bd
-wMountMoonSquareTrigger:: ds 1 ; d9be
-wMobileTradeRoomMobileTrigger:: ds 1 ; d9bf
-wMobileBattleRoomTrigger:: ds 1 ; d9c0
+wPokecenter2FTrigger:: db ; d972
+wTradeCenterTrigger:: db ; d973
+wColosseumTrigger:: db ; d974
+wTimeCapsuleTrigger:: db ; d975
+wPowerPlantTrigger:: db ; d976
+wCeruleanGymTrigger:: db ; d977
+wRoute25Trigger:: db ; d978
+wTrainerHouseB1FTrigger:: db ; d979
+wVictoryRoadGateTrigger:: db ; d97a
+wSaffronTrainStationTrigger:: db ; d97b
+wRoute16GateTrigger:: db ; d97c
+wRoute1718GateTrigger:: db ; d97d
+wIndigoPlateauPokecenter1FTrigger:: db ; d97e
+wWillsRoomTrigger:: db ; d97f
+wKogasRoomTrigger:: db ; d980
+wBrunosRoomTrigger:: db ; d981
+wKarensRoomTrigger:: db ; d982
+wLancesRoomTrigger:: db ; d983
+wHallOfFameTrigger:: db ; d984
+wRoute27Trigger:: db ; d985
+wNewBarkTownTrigger:: db ; d986
+wElmsLabTrigger:: db ; d987
+wKrissHouse1FTrigger:: db ; d988
+wRoute29Trigger:: db ; d989
+wCherrygroveCityTrigger:: db ; d98a
+wMrPokemonsHouseTrigger:: db ; d98b
+wRoute32Trigger:: db ; d98c
+wRoute35NationalParkGateTrigger:: db ; d98d
+wRoute36Trigger:: db ; d98e
+wRoute36NationalParkGateTrigger:: db ; d98f
+wAzaleaTownTrigger:: db ; d990
+wGoldenrodGymTrigger:: db ; d991
+wGoldenrodMagnetTrainStationTrigger:: db ; d992
+wGoldenrodPokecenter1FTrigger:: db ; d993
+wOlivineCityTrigger:: db ; d994
+wRoute34Trigger:: db ; d995
+wRoute34IlexForestGateTrigger:: db ; d996
+wEcruteakHouseTrigger:: db ; d997
+wWiseTriosRoomTrigger:: db ; d998
+wEcruteakPokecenter1FTrigger:: db ; d999
+wEcruteakGymTrigger:: db ; d99a
+wMahoganyTownTrigger:: db ; d99b
+wRoute42Trigger:: db ; d99c
+wCianwoodCityTrigger:: db ; d99d
+wBattleTower1FTrigger:: db ; d99e
+wBattleTowerBattleRoomTrigger:: db ; d99f
+wBattleTowerElevatorTrigger:: db ; d9a0
+wBattleTowerHallwayTrigger:: db ; d9a1
+wBattleTowerOutsideTrigger:: db ; d9a2
+wRoute43GateTrigger:: db ; d9a3
+wMountMoonTrigger:: db ; d9a4
+wSproutTower3FTrigger:: db ; d9a5
+wTinTower1FTrigger:: db ; d9a6
+wBurnedTower1FTrigger:: db ; d9a7
+wBurnedTowerB1FTrigger:: db ; d9a8
+wRadioTower5FTrigger:: db ; d9a9
+wRuinsOfAlphOutsideTrigger:: db ; d9aa
+wRuinsOfAlphResearchCenterTrigger:: db ; d9ab
+wRuinsOfAlphHoOhChamberTrigger:: db ; d9ac
+wRuinsOfAlphKabutoChamberTrigger:: db ; d9ad
+wRuinsOfAlphOmanyteChamberTrigger:: db ; d9ae
+wRuinsOfAlphAerodactylChamberTrigger:: db ; d9af
+wRuinsOfAlphInnerChamberTrigger:: db ; d9b0
+wMahoganyMart1FTrigger:: db ; d9b1
+wTeamRocketBaseB1FTrigger:: db ; d9b2
+wTeamRocketBaseB2FTrigger:: db ; d9b3
+wTeamRocketBaseB3FTrigger:: db ; d9b4
+wUndergroundPathSwitchRoomEntrancesTrigger:: db ; d9b5
+wSilverCaveRoom3Trigger:: db ; d9b6
+wVictoryRoadTrigger:: db ; d9b7
+wDragonsDenB1FTrigger:: db ; d9b8
+wDragonShrineTrigger:: db ; d9b9
+wOlivinePortTrigger:: db ; d9ba
+wVermilionPortTrigger:: db ; d9bb
+wFastShip1FTrigger:: db ; d9bc
+wFastShipB1FTrigger:: db ; d9bd
+wMountMoonSquareTrigger:: db ; d9be
+wMobileTradeRoomMobileTrigger:: db ; d9bf
+wMobileBattleRoomTrigger:: db ; d9c0
ds 49
@@ -2665,45 +2538,43 @@
;SECTION "Events", WRAMX
-wJackFightCount:: ds 1 ; d9f2
-wBeverlyFightCount:: ds 1 ; unused
-wHueyFightCount:: ds 1
-wGavenFightCount:: ds 1
-wBethFightCount:: ds 1
-wJoseFightCount:: ds 1
-wReenaFightCount:: ds 1
-wJoeyFightCount:: ds 1
-wWadeFightCount:: ds 1
-wRalphFightCount:: ds 1
-wLizFightCount:: ds 1
-wAnthonyFightCount:: ds 1
-wToddFightCount:: ds 1
-wGinaFightCount:: ds 1
-wIrwinFightCount:: ds 1 ; unused
-wArnieFightCount:: ds 1
-wAlanFightCount:: ds 1
-wDanaFightCount:: ds 1
-wChadFightCount:: ds 1
-wDerekFightCount:: ds 1 ; unused
-wTullyFightCount:: ds 1
-wBrentFightCount:: ds 1
-wTiffanyFightCount:: ds 1
-wVanceFightCount:: ds 1
-wWiltonFightCount:: ds 1
-wKenjiFightCount:: ds 1 ; unused
-wParryFightCount:: ds 1
-wErinFightCount:: ds 1
+wJackFightCount:: db ; d9f2
+wBeverlyFightCount:: db ; unused
+wHueyFightCount:: db
+wGavenFightCount:: db
+wBethFightCount:: db
+wJoseFightCount:: db
+wReenaFightCount:: db
+wJoeyFightCount:: db
+wWadeFightCount:: db
+wRalphFightCount:: db
+wLizFightCount:: db
+wAnthonyFightCount:: db
+wToddFightCount:: db
+wGinaFightCount:: db
+wIrwinFightCount:: db ; unused
+wArnieFightCount:: db
+wAlanFightCount:: db
+wDanaFightCount:: db
+wChadFightCount:: db
+wDerekFightCount:: db ; unused
+wTullyFightCount:: db
+wBrentFightCount:: db
+wTiffanyFightCount:: db
+wVanceFightCount:: db
+wWiltonFightCount:: db
+wKenjiFightCount:: db ; unused
+wParryFightCount:: db
+wErinFightCount:: db
; da0e
ds 100
-EventFlags:: ; da72
- flag_array NUM_EVENTS
+EventFlags:: flag_array NUM_EVENTS ; da72
; db6c
ds 6
-wCurBox:: ; db72
- ds 1
+wCurBox:: db ; db72
ds 2
@@ -2710,7 +2581,8 @@
; 8 chars + $50
wBoxNames:: ds BOX_NAME_LENGTH * NUM_BOXES ; db75
-wCelebiEvent:: ds 1
+wCelebiEvent:: db
+
ds 1
BikeFlags:: ; dbf5
@@ -2717,55 +2589,49 @@
; bit 0: using strength
; bit 1: always on bike
; bit 2: downhill
- ds 1
+ db
ds 1
-wCurrentMapTriggerPointer:: ds 2 ; dbf7
-wCurrentCaller:: ds 2 ; dbf9
-wCurrMapWarpCount:: ds 1 ; dbfb
-wCurrMapWarpHeaderPointer:: ds 2 ; dbfc
-wCurrentMapXYTriggerCount:: ds 1 ; dbfe
-wCurrentMapXYTriggerHeaderPointer:: ds 2 ; dbff
-wCurrentMapSignpostCount:: ds 1 ; dc01
-wCurrentMapSignpostHeaderPointer:: ds 2 ; dc02
-wCurrentMapPersonEventCount:: ds 1 ; dc04
-wCurrentMapPersonEventHeaderPointer:: ds 2 ; dc05
-wCurrMapTriggerCount:: ds 1 ; dc07
-wCurrMapTriggerHeaderPointer:: ds 2 ; dc08
-wCurrMapCallbackCount:: ds 1 ; dc0a
-wCurrMapCallbackHeaderPointer:: ds 2 ; dc0b
+wCurrentMapTriggerPointer:: dw ; dbf7
+
+wCurrentCaller:: dw ; dbf9
+wCurrMapWarpCount:: db ; dbfb
+wCurrMapWarpHeaderPointer:: dw ; dbfc
+wCurrentMapXYTriggerCount:: db ; dbfe
+wCurrentMapXYTriggerHeaderPointer:: dw ; dbff
+wCurrentMapSignpostCount:: db ; dc01
+wCurrentMapSignpostHeaderPointer:: dw ; dc02
+wCurrentMapPersonEventCount:: db ; dc04
+wCurrentMapPersonEventHeaderPointer:: dw ; dc05
+wCurrMapTriggerCount:: db ; dc07
+wCurrMapTriggerHeaderPointer:: dw ; dc08
+wCurrMapCallbackCount:: db ; dc0a
+wCurrMapCallbackHeaderPointer:: dw ; dc0b
+
ds 2
; Sprite id of each decoration
-Bed:: ; 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
+Bed:: db ; dc0f
+Carpet:: db ; dc10
+Plant:: db ; dc11
+Poster:: db ; dc12
+Console:: db ; dc13
+LeftOrnament:: db ; dc14
+RightOrnament:: db ; dc15
+BigDoll:: db ; dc16
; Items bought from Mom
-wWhichMomItem:: ds 1 ; dc17
-wWhichMomItemSet:: ds 1 ; dc18
+wWhichMomItem:: db ; dc17
+wWhichMomItemSet:: db ; dc18
MomItemTriggerBalance:: ds 3 ; dc19
-wDailyResetTimer:: ds 2 ; dc1c
-DailyFlags:: ds 1
-WeeklyFlags:: ds 1
-SwarmFlags:: ds 1
+wDailyResetTimer:: dw ; dc1c
+DailyFlags:: db
+WeeklyFlags:: db
+SwarmFlags:: db
ds 2
-wStartDay:: ds 1
+wStartDay:: db
ds 3
FruitTreeFlags:: flag_array NUM_FRUIT_TREES ; dc27
@@ -2772,85 +2638,78 @@
ds 2
-wLuckyNumberDayBuffer:: ds 2 ; dc2d
+wLuckyNumberDayBuffer:: dw ; dc2d
ds 2
-wSpecialPhoneCallID:: ds 1 ; dc31
+wSpecialPhoneCallID:: db ; dc31
ds 3
wBugContestStartTime:: ds 4 ; day, hour, min, sec ; dc35
-wUnusedTwoDayTimerOn:: ds 1 ; dc39
-wUnusedTwoDayTimer:: ds 1
-wUnusedTwoDayTimerStartDate:: ds 1
+wUnusedTwoDayTimerOn:: db ; dc39
+wUnusedTwoDayTimer:: db
+wUnusedTwoDayTimerStartDate:: db
ds 4
-wMobileOrCable_LastSelection:: ds 1
+wMobileOrCable_LastSelection:: db
wdc41:: ds 1
wdc42:: ds 8
-wBuenasPassword:: ds 1
-wBlueCardBalance:: ds 1
+wBuenasPassword:: db
+wBlueCardBalance:: db
wDailyRematchFlags:: ds 4
wDailyPhoneItemFlags:: ds 4
wDailyPhoneTimeOfDayFlags:: ds 4
wKenjiBreakTimer:: ds 2 ; Kenji
-wYanmaMapGroup:: ds 1 ; dc5a
-wYanmaMapNumber:: ds 1
+wYanmaMapGroup:: db ; dc5a
+wYanmaMapNumber:: db
wPlayerMonSelection:: ds 3
wdc5f:: ds 1
wdc60:: ds 19
-StepCount:: ; dc73
- ds 1
-PoisonStepCount:: ; dc74
- ds 1
-
+StepCount:: db ; dc73
+PoisonStepCount:: db ; dc74
ds 2
-wHappinessStepCount:: ds 1
+wHappinessStepCount:: db
ds 1
+
wParkBallsRemaining::
-wSafariBallsRemaining:: ds 1 ; dc79
-wSafariTimeRemaining:: ds 2 ; dc7a
+wSafariBallsRemaining:: db ; dc79
+wSafariTimeRemaining:: dw ; dc7a
+
wPhoneList:: ds CONTACT_LIST_SIZE ; dc7c
; dc86
ds 23
-wLuckyNumberShowFlag:: ds 2 ; dc9d
-wLuckyIDNumber:: ds 2 ; dc9f
-wRepelEffect:: ds 1 ; If a Repel is in use, it contains the nr of steps it's still active
-wBikeStep:: ds 2
-wKurtApricornQuantity:: ds 1
+wLuckyNumberShowFlag:: dw ; dc9d
+wLuckyIDNumber:: dw ; dc9f
+
+wRepelEffect:: db ; If a Repel is in use, it contains the nr of steps it's still active
+wBikeStep:: dw
+wKurtApricornQuantity:: db
+
wPlayerDataEnd::
wMapData::
-VisitedSpawns:: ; dca5
- flag_array NUM_SPAWNS
+VisitedSpawns:: flag_array NUM_SPAWNS ; dca5
-wDigWarp:: ds 1 ; dcaa
-wDigMapGroup:: ds 1 ; dcab
-wDigMapNumber:: ds 1 ; dcac
+wDigWarpNumber:: db ; dcaa
+wDigMapGroup:: db ; dcab
+wDigMapNumber:: db ; dcac
+
; used on maps like second floor pokécenter, which are reused, so we know which
; map to return to
-BackupWarpNumber:: ; dcad
- ds 1
-BackupMapGroup:: ; dcae
- ds 1
-BackupMapNumber:: ; dcaf
- ds 1
+BackupWarpNumber:: db ; dcad
+BackupMapGroup:: db ; dcae
+BackupMapNumber:: db ; dcaf
ds 3
-wLastSpawnMapGroup:: ds 1
-wLastSpawnMapNumber:: ds 1
+wLastSpawnMapGroup:: db
+wLastSpawnMapNumber:: db
-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
+WarpNumber:: db ; dcb4
+MapGroup:: db ; dcb5 ; map group of current map
+MapNumber:: db ; dcb6 ; map number of current map
+YCoord:: db ; dcb7 ; current y coordinate relative to top-left corner of current map
+XCoord:: db ; dcb8 ; current x coordinate relative to top-left corner of current map
wScreenSave:: ds 6 * 5
wMapDataEnd::
@@ -2860,12 +2719,9 @@
wPokemonData::
-PartyCount:: ; dcd7
- ds 1 ; number of Pokémon in party
-PartySpecies:: ; dcd8
- ds PARTY_LENGTH ; species of each Pokémon in party
-PartyEnd:: ; dcde
- ds 1 ; legacy scripts don't check PartyCount
+PartyCount:: db ; dcd7 ; number of Pokémon in party
+PartySpecies:: ds PARTY_LENGTH ; dcd8 ; species of each Pokémon in party
+PartyEnd:: db ; dcde ; legacy scripts don't check PartyCount
PartyMons::
PartyMon1:: party_struct PartyMon1 ; dcdf
@@ -2880,32 +2736,25 @@
PartyMonNicknames:: ds PKMN_NAME_LENGTH * PARTY_LENGTH ; de41
PartyMonNicknamesEnd::
-
ds 22
-PokedexCaught:: ; de99
- flag_array NUM_POKEMON
+PokedexCaught:: flag_array NUM_POKEMON ; de99
EndPokedexCaught::
-PokedexSeen:: ; deb9
- flag_array NUM_POKEMON
+PokedexSeen:: flag_array NUM_POKEMON ; deb9
EndPokedexSeen::
-UnownDex:: ; ded9
- ds 26
-UnlockedUnowns:: ; def3
- ds 1
+UnownDex:: ds NUM_UNOWN ; ded9
+UnlockedUnowns:: db ; def3
+wFirstUnownSeen:: db
-wFirstUnownSeen:: ds 1
-
-
wDaycareMan:: ; def5
; bit 7: active
; bit 6: monsters are compatible
; bit 5: egg ready
; bit 0: monster 1 in daycare
- ds 1
+ db
wBreedMon1::
wBreedMon1Nick:: ds PKMN_NAME_LENGTH ; def6
@@ -2915,14 +2764,14 @@
wDaycareLady:: ; df2c
; bit 7: active
; bit 0: monster 2 in daycare
- ds 1
+ db
wStepsToEgg:: ; df2d
- ds 1
+ db
wBreedMotherOrNonDitto:: ; df2e
; z: yes
; nz: no
- ds 1
+ db
wBreedMon2::
wBreedMon2Nick:: ds PKMN_NAME_LENGTH ; df2f
@@ -2933,62 +2782,64 @@
wEggOT:: ds NAME_LENGTH ; df70
wEggMon:: box_struct wEggMon ; df7b
-wBugContestSecondPartySpecies:: ds 1
+wBugContestSecondPartySpecies:: db
wContestMon:: party_struct wContestMon ; df9c
-wDunsparceMapGroup:: ds 1
-wDunsparceMapNumber:: ds 1
-wFishingSwarmFlag:: ds 1
+wDunsparceMapGroup:: db
+wDunsparceMapNumber:: db
+wFishingSwarmFlag:: db
wRoamMon1:: roam_struct wRoamMon1 ; dfcf
wRoamMon2:: roam_struct wRoamMon2 ; dfd6
wRoamMon3:: roam_struct wRoamMon3 ; dfdd
-wRoamMons_CurrentMapNumber:: ds 1
-wRoamMons_CurrentMapGroup:: ds 1
-wRoamMons_LastMapNumber:: ds 1
-wRoamMons_LastMapGroup:: ds 1
-wBestMagikarpLengthFeet:: ds 1
-wBestMagikarpLengthInches:: ds 1
+wRoamMons_CurrentMapNumber:: db
+wRoamMons_CurrentMapGroup:: db
+wRoamMons_LastMapNumber:: db
+wRoamMons_LastMapGroup:: db
+wBestMagikarpLengthFeet:: db
+wBestMagikarpLengthInches:: db
wMagikarpRecordHoldersName:: ds NAME_LENGTH
; dff5
wPokemonDataEnd::
wGameDataEnd::
+
SECTION "Pic Animations", WRAMX
TempTileMap::
; 20x18 grid of 8x8 tiles
ds SCREEN_WIDTH * SCREEN_HEIGHT ; $168 = 360
+
; PokeAnim Header
-wPokeAnimSceneIndex:: ds 1
-wPokeAnimPointer:: ds 2
-wPokeAnimSpecies:: ds 1
-wPokeAnimUnownLetter:: ds 1
-wPokeAnimSpeciesOrUnown:: ds 1
-wPokeAnimGraphicStartTile:: ds 1
-wPokeAnimCoord:: ds 2
-wPokeAnimFrontpicHeight:: ds 1
+wPokeAnimSceneIndex:: db
+wPokeAnimPointer:: dw
+wPokeAnimSpecies:: db
+wPokeAnimUnownLetter:: db
+wPokeAnimSpeciesOrUnown:: db
+wPokeAnimGraphicStartTile:: db
+wPokeAnimCoord:: dw
+wPokeAnimFrontpicHeight:: db
; PokeAnim Data
-wPokeAnimExtraFlag:: ds 1
-wPokeAnimSpeed:: ds 1
-wPokeAnimPointerBank:: ds 1
-wPokeAnimPointerAddr:: ds 2
-wPokeAnimFramesBank:: ds 1
-wPokeAnimFramesAddr:: ds 2
-wPokeAnimBitmaskBank:: ds 1
-wPokeAnimBitmaskAddr:: ds 2
-wPokeAnimFrame:: ds 1
-wPokeAnimJumptableIndex:: ds 1
-wPokeAnimRepeatTimer:: ds 1
-wPokeAnimCurBitmask:: ds 1
-wPokeAnimWaitCounter:: ds 1
-wPokeAnimCommand:: ds 1
-wPokeAnimParameter:: ds 1
+wPokeAnimExtraFlag:: db
+wPokeAnimSpeed:: db
+wPokeAnimPointerBank:: db
+wPokeAnimPointerAddr:: dw
+wPokeAnimFramesBank:: db
+wPokeAnimFramesAddr:: dw
+wPokeAnimBitmaskBank:: db
+wPokeAnimBitmaskAddr:: dw
+wPokeAnimFrame:: db
+wPokeAnimJumptableIndex:: db
+wPokeAnimRepeatTimer:: db
+wPokeAnimCurBitmask:: db
+wPokeAnimWaitCounter:: db
+wPokeAnimCommand:: db
+wPokeAnimParameter:: db
ds 1
-wPokeAnimBitmaskCurCol:: ds 1
-wPokeAnimBitmaskCurRow:: ds 1
-wPokeAnimBitmaskCurBit:: ds 1
+wPokeAnimBitmaskCurCol:: db
+wPokeAnimBitmaskCurRow:: db
+wPokeAnimBitmaskCurBit:: db
wPokeAnimBitmaskBuffer:: ds 7
ds 2
wPokeAnimStructEnd::
@@ -3017,17 +2868,17 @@
w3_d4a2:: battle_tower_struct w3_d4a2
w3_d582:: battle_tower_struct w3_d582
w3_d662:: battle_tower_struct w3_d662
-UNION
+UNION ; d742
w3_d742:: battle_tower_struct w3_d742
; d822
-NEXTU
+NEXTU ; d742
ds $be
wBTChoiceOfLvlGroup::
w3_d800:: ; ds BG_MAP_WIDTH * SCREEN_HEIGHT ($240)
ds $69
-ENDU
+ENDU ; d869
w3_d869:: ds $17
w3_d880:: ds 1
w3_d881:: ds 1
@@ -3049,28 +2900,29 @@
w3_dfec:: ds $10
w3_dffc:: ds 4
+
SECTION "GBC Video", WRAMX
-; 8 4-color palettes
+; eight 4-color palettes each
UnknBGPals:: ds 8 palettes ; d000
UnknOBPals:: ds 8 palettes ; d040
BGPals:: ds 8 palettes ; d080
OBPals:: ds 8 palettes ; d0c0
-LYOverrides:: ; d100
- ds SCREEN_HEIGHT_PX
+LYOverrides:: ds SCREEN_HEIGHT_PX ; d100
LYOverridesEnd:: ; d190
ds 1
-wMagnetTrainDirection:: ds 1
-wMagnetTrainInitPosition:: ds 1
-wMagnetTrainHoldPosition:: ds 1
-wMagnetTrainFinalPosition:: ds 1
-wMagnetTrainPlayerSpriteInitX:: ds 1
+
+wMagnetTrainDirection:: db
+wMagnetTrainInitPosition:: db
+wMagnetTrainHoldPosition:: db
+wMagnetTrainFinalPosition:: db
+wMagnetTrainPlayerSpriteInitX:: db
+
ds 106
-LYOverridesBackup:: ; d200
- ds SCREEN_HEIGHT_PX
+LYOverridesBackup:: ds SCREEN_HEIGHT_PX ; d200
LYOverridesBackupEnd::
@@ -3099,51 +2951,46 @@
BGEffect5:: battle_bg_effect BGEffect5
ActiveBGEffectsEnd::
-wNumActiveBattleAnims:: ds 1 ; d40e
+wNumActiveBattleAnims:: db ; d40e
-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
-wBattleAnimOAMPointerLo:: ds 1 ; d418
+BattleAnimFlags:: db ; d40f
+BattleAnimAddress:: dw ; d410
+BattleAnimDuration:: db ; d412
+BattleAnimParent:: dw ; d413
+BattleAnimLoops:: db ; d415
+BattleAnimVar:: db ; d416
+BattleAnimByte:: db ; d417
+wBattleAnimOAMPointerLo:: db ; d418
BattleAnimTemps:: ; d419
wBattleAnimTempOAMFlags::
-wBattleAnimTemp0:: ds 1
-wBattleAnimTemp1:: ds 1
+wBattleAnimTemp0:: db
+wBattleAnimTemp1:: db
wBattleAnimTempTileID::
-wBattleAnimTemp2:: ds 1
+wBattleAnimTemp2:: db
wBattleAnimTempXCoord::
-wBattleAnimTemp3:: ds 1
+wBattleAnimTemp3:: db
wBattleAnimTempYCoord::
-wBattleAnimTemp4:: ds 1
+wBattleAnimTemp4:: db
wBattleAnimTempXOffset::
-wBattleAnimTemp5:: ds 1
+wBattleAnimTemp5:: db
wBattleAnimTempYOffset::
-wBattleAnimTemp6:: ds 1
-wBattleAnimTemp7:: ds 1
+wBattleAnimTemp6:: db
+wBattleAnimTemp7:: db
wBattleAnimTempPalette::
-wBattleAnimTemp8:: ds 1
+wBattleAnimTemp8:: db
-UNION
+UNION ; d422
wSurfWaveBGEffect:: ds $40
wSurfWaveBGEffectEnd::
-NEXTU
+NEXTU ; d422
ds $32
wBattleAnimEnd::
-ENDU
+ENDU ; d462
+
SECTION "WRAM 5 MOBILE", WRAMX
+
w5_d800:: ds $200
w5_da00:: ds $200
w5_dc00:: ds $d
@@ -3154,17 +3001,23 @@
w5_MobileOpponentBattleWinMessage:: ds $c ; dc32
w5_MobileOpponentBattleLossMessage:: ds $c ; dc3e
+
SECTION "WRAM 6", WRAMX
-wDecompressScratch::
-wScratchTileMap::
- ds BG_MAP_WIDTH * BG_MAP_HEIGHT
-wScratchAttrMap:: ds $200
-w6_d600:: ds $200
-w6_d800::
+UNION ; d000
+wScratchTileMap:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
+wScratchAttrMap:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
-INCLUDE "sram.asm"
+NEXTU ; d000
+wDecompressScratch:: ds $80 tiles
+wDecompressEnemyFrontpic:: ds $80 tiles
+ENDU ; e000
+
SECTION "WRAM 7", WRAMX
+
wWindowStack:: ds $1000 - 1
wWindowStackBottom:: ds 1
+
+
+INCLUDE "sram.asm"