Merge pull request #409 from roukaour/master

Document constants with comments, actual names, and more thorough usage
This commit is contained in:
yenatch 2017-12-10 01:47:10 -05:00 committed by GitHub
commit 94c7def488
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
255 changed files with 4844 additions and 4679 deletions

View File

@ -58,7 +58,7 @@ In the installer, select the following packages:
- `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.

View File

@ -140,8 +140,8 @@ gfx/pics/%/front.animated.tilemap: gfx/pics/%/front.2bpp gfx/pics/%/front.dimens
### 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/0b9d86.1bpp: tools/gfx += --remove-whitespace
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,10 +164,10 @@ gfx/title/logo.2bpp: rgbgfx += -x 4
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
@ -185,18 +187,21 @@ gfx/fx/rocks.2bpp: tools/gfx += --remove-whitespace
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/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/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/pokegear/pokegear.2bpp: rgbgfx += -x2
gfx/pokegear/pokegear_sprites.2bpp: tools/gfx += --trim-whitespace
gfx/unknown/0e0ea8.2bpp: tools/gfx += --remove-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

View File

@ -22,7 +22,7 @@ _MapSetup_Sound_Off:: ; e8000
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 @@ _MapSetup_Sound_Off:: ; e8000
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 @@ _MapSetup_Sound_Off:: ; e8000
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 @@ _UpdateSound:: ; e805c
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 @@ _UpdateSound:: ; e805c
.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 @@ FadeMusic: ; e8358
; 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 @@ FadeMusic: ; e8358
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 @@ LoadNote: ; e83d1
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 @@ LoadNote: ; e83d1
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 @@ LoadNote: ; e83d1
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 @@ ApplyPitchWheel: ; e84f9
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 @@ ApplyPitchWheel: ; e84f9
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 @@ ParseMusic: ; e85e1
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 @@ ParseMusic: ; e85e1
call nz, RestoreVolume
; end music
ld a, [CurChannel]
cp $4 ; channel 5?
cp CHAN5
jr nz, .ok
; ????
xor a
@ -1266,7 +1266,7 @@ ParseMusic: ; e85e1
RestoreVolume: ; e8679
; ch5 only
ld a, [CurChannel]
cp $4
cp CHAN5
ret nz
xor a
ld hl, Channel6CryPitch
@ -1364,9 +1364,9 @@ GetNoiseSample: ; e86c5
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 @@ ParseMusicCommand: ; e870f
; 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 @@ Music_NoteType: ; e8963
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 @@ Music_StereoPanning: ; e89ba
; 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 @@ Music_RestartChannel: ; e8a08
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 @@ _PlayMusic:: ; e8b30
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 @@ _PlayMusic:: ; e8b30
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 @@ _PlayCryHeader:: ; e8b79
; This only applies in-battle.
ld a, [Options]
bit 5, a ; stereo
bit STEREO, a
jr z, .next
; [Tracks] &= [CryTracks]
@ -2577,7 +2577,7 @@ _PlayCryHeader:: ; e8b79
ld a, [Volume]
ld [LastVolume], a
ld a, $77
ld a, MAX_VOLUME
ld [Volume], a
.end
@ -2647,8 +2647,8 @@ _PlaySFX:: ; e8c04
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 @@ PlayStereoSFX:: ; e8ca6
; 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 @@ LoadChannel: ; e8d1b
; 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 @@ GetLRTracks: ; e8fc2
; 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 @@ ClearChannels:: ; e8fe9
ld a, $80
ld [hli], a
ld hl, rNR10
ld e, $4
ld e, NUM_MUSIC_CHANS
.loop
call ClearChannel
dec e

View File

@ -27,7 +27,7 @@ AI_SwitchOrTryItem: ; 38000
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 @@ AI_TryItem: ; 38105
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

View File

@ -57,7 +57,7 @@ _PlayBattleAnim: ; cc0e4
BattleAnimRunScript: ; cc11c
ld a, [FXAnimIDHi]
ld a, [FXAnimID + 1]
and a
jr nz, .hi_byte
@ -86,9 +86,9 @@ BattleAnimRunScript: ; cc11c
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 @@ RunBattleAnimScript: ; cc163
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 @@ ClearBattleAnims: ; cc8d3
or b
jr nz, .loop
ld hl, FXAnimIDLo
ld hl, FXAnimID
ld e, [hl]
inc hl
ld d, [hl]

View File

@ -868,7 +868,7 @@ BattleBGEffect_RunPicResizeScript: ; c83ed (32:43ed)
.BGSquares:
bgsquare: MACRO
dn \1,\2
dn \1, \2
dw \3
endm
@ -1538,10 +1538,10 @@ Tackle_BGEffect25_2d_two:
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 @@ BGEffects_LoadBGPal0_OBPal1: ; c8e52 (32:4e52)
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

View File

@ -633,7 +633,7 @@ ParsePlayerAction: ; 3c434
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 @@ HandleWrap: ; 3c874
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 @@ HandleWrap: ; 3c874
call SwitchTurnCore
xor a
ld [wNumHits], a
ld [FXAnimIDHi], a
ld [FXAnimID + 1], a
predef PlayBattleAnim
call SwitchTurnCore
@ -4213,7 +4213,7 @@ SendOutPlayerMon: ; 3db5f
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 @@ ItemRecoveryAnim: ; 3ddc8
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 @@ BattleMenu: ; 3e139
.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 @@ LoadEnemyMon: ; 3e8eb
; 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 @@ LoadEnemyMon: ; 3e8eb
; 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 @@ LoadEnemyMon: ; 3e8eb
; 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 @@ LoadEnemyMon: ; 3e8eb
; Unown
ld a, [TempEnemyMonSpecies]
cp a, UNOWN
cp UNOWN
jr nz, .Magikarp
; Get letter based on DVs
@ -6406,7 +6406,7 @@ LoadEnemyMon: ; 3e8eb
; Skimming this part recommended
ld a, [TempEnemyMonSpecies]
cp a, MAGIKARP
cp MAGIKARP
jr nz, .Happiness
; Get Magikarp's length
@ -6415,26 +6415,26 @@ LoadEnemyMon: ; 3e8eb
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 @@ LoadEnemyMon: ; 3e8eb
; 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 @@ LoadEnemyMon: ; 3e8eb
; 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 @@ LoadEnemyMon: ; 3e8eb
; ..unless it's a RoamMon
ld a, [BattleType]
cp a, BATTLETYPE_ROAMING
cp BATTLETYPE_ROAMING
jr nz, .Moves
; Grab HP
@ -6568,7 +6568,7 @@ LoadEnemyMon: ; 3e8eb
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,14 +6588,14 @@ LoadEnemyMon: ; 3e8eb
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
.PP:
; Trainer battle?
ld a, [wBattleMode]
cp a, TRAINER_BATTLE
cp TRAINER_BATTLE
jr z, .TrainerPP
; Fill wild PP
@ -6670,13 +6670,13 @@ CheckSleepingTreeMon: ; 3eb38
; 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 @@ CheckUnownLetter: ; 3eb75
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_OnlyIfVisible: ; 3ee0f
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 @@ BattleIntro: ; 3f4dd
call LoadTrainerOrWildMonPic
xor a
ld [TempBattleMonSpecies], a
ld [wd0d2], a
ld [wBattleMenuCursorBuffer], a
xor a
ld [hMapAnims], a
callba PlayBattleMusic
@ -8670,7 +8670,7 @@ CleanUpBattleRAM: ; 3f6d0
ld [wPartyMenuCursor], a
ld [wKeyItemsPocketCursor], a
ld [wItemsPocketCursor], a
ld [wd0d2], a
ld [wBattleMenuCursorBuffer], a
ld [CurMoveNum], a
ld [wBallsPocketCursor], a
ld [wLastPocket], a

View File

@ -70,25 +70,25 @@ DoMove: ; 3402c
; 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]
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 @@ BattleCommand_LowerSub: ; 34eee
xor a
ld [wNumHits], a
ld [FXAnimIDHi], a
ld [FXAnimID + 1], a
inc a
ld [wKickCounter], a
ld a, SUBSTITUTE
@ -2280,7 +2280,7 @@ BattleCommand_RaiseSub: ; 35004
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 @@ BattleCommand_CheckDestinyBond: ; 351c0
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 @@ BattleCommand_RageDamage: ; 3527b
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 @@ FarPlayBattleAnimation: ; 35d00
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 @@ BattleCommand_EndLoop: ; 369b6
; 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 @@ BattleCommand_EndLoop: ; 369b6
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 @@ BattleCommand_Substitute: ; 36e7c
xor a
ld [wNumHits], a
ld [FXAnimIDHi], a
ld [FXAnimID + 1], a
ld [wKickCounter], a
ld a, SUBSTITUTE
call LoadAnim
@ -9862,14 +9862,14 @@ AnimateCurrentMove: ; 37e01
PlayDamageAnim: ; 37e19
xor a
ld [FXAnimIDHi], a
ld [FXAnimID + 1], a
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
and a
ret z
ld [FXAnimIDLo], a
ld [FXAnimID], a
ld a, [hBattleTurn]
and a
@ -9888,7 +9888,7 @@ PlayDamageAnim: ; 37e19
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 @@ LoadMoveAnim: ; 37e36
LoadAnim: ; 37e44
ld [FXAnimIDLo], a
ld [FXAnimID], a
; fallthrough
; 37e47
@ -9922,9 +9922,9 @@ PlayUserBattleAnim: ; 37e47
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 @@ BattleCommand_ClearText: ; 37e85
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 @@ SkipToBattleCommand: ; 37e8c
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

View File

@ -11,7 +11,7 @@ BattleCommand_Transform: ; 371cd
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 @@ BattleCommand_Transform: ; 371cd
.after_anim
xor a
ld [wNumHits], a
ld [FXAnimIDHi], a
ld [FXAnimID + 1], a
ld a, $2
ld [wKickCounter], a
pop af

View File

@ -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 @@ CalcMagikarpLength: ; fbbfc
; 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 @@ CalcMagikarpLength: ; fbbfc
.ok
ld e, a
ld hl, MagikarpLength
ld hl, wMagikarpLength
ld [hl], d
inc hl
ld [hl], e

View File

@ -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 @@ ContestBattleMenu: ; 24f13
; 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

View File

@ -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

View File

@ -249,10 +249,10 @@ InitBattleAnimBuffer: ; ccaaa
.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

View File

@ -451,18 +451,18 @@ GetBallAnimPal: ; cd249 (33:5249)
; 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

View File

@ -256,9 +256,9 @@ _ShowLinkBattleParticipants: ; 2c1b2
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

View File

@ -22,6 +22,7 @@ INCLUDE "constants/animation_constants.asm"
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"

View File

@ -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 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
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 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
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 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
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 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value
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_value SET 1
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_value SET 1
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

View File

@ -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
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
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
; 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

View File

@ -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 @@ BASE_STAT_LEVEL EQU 7
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 @@ NUM_LEVEL_STATS EQU const_value
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_value SET 1
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 @@ STAT_MIN_HP EQU 10
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_value SET 1
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_value SET 1
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 @@ const_value SET 3
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 @@ ALL_STATUS EQU (1 << PSN) + (1 << BRN) + (1 << FRZ) + (1 << PAR) + SLP
enum SUBSTATUS_CURSE
enum SUBSTATUS_NIGHTMARE
; 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 @@ SUBSTATUS_CURLED EQU 0
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 @@ SUBSTATUS_CURLED EQU 0
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 @@ SUBSTATUS_CURLED EQU 0
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 @@ SUBSTATUS_CURLED EQU 0
enum SCREENS_UNUSED
enum SCREENS_SPIKES
; weather
; Weather values
const_def
const WEATHER_NONE
const WEATHER_RAIN
@ -161,8 +207,7 @@ SUBSTATUS_CURLED EQU 0
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 @@ SUBSTATUS_CURLED EQU 0
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 @@ SUBSTATUS_CURLED EQU 0
const BATTLEACTION_E
const BATTLEACTION_FORFEIT
; wBattleResult
const_def
const WIN
const LOSE

View File

@ -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

View File

@ -1,3 +1,4 @@
; GetSGBLayout arguments (see predef/cgb.asm and predef/sgb.asm)
const_def
const SCGB_BATTLE_GRAYSCALE
const SCGB_BATTLE_COLORS

View File

@ -1,3 +1,4 @@
; Cries indexes (see audio/cry_pointers.asm)
const_def
; gen 1

View File

@ -1,3 +1,4 @@
; decoration types
const_value = 1
const DECO_PLANT
const DECO_BED
@ -6,6 +7,7 @@ const_value = 1
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_value = 1
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 @@ deco: MACRO
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

View File

@ -1,22 +1,29 @@
; 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
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

View File

@ -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

View File

@ -1,4 +1,3 @@
LEN_2BPP_TILE EQU 16
LEN_1BPP_TILE EQU 8
TILES_PER_FRAME EQU 6
TILESIZE EQU $10

View File

@ -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 @@ NUM_TMS = const_value - TM01 - 2
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
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_value SET 70
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_value SET 70
const ITEMATTR_HELP
NUM_ITEMATTRS EQU const_value
; 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 @@ ITEMMENU_CLOSE EQU 6
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 @@ ITEMMENU_CLOSE EQU 6
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 @@ ITEMMENU_CLOSE EQU 6
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

View File

@ -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

View File

@ -5,7 +5,13 @@ GROUP_NONE EQU 0
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,40 +479,7 @@ MAP_NONE EQU 0
mapgroup ROUTE_31_VIOLET_GATE, 4, 5 ; 11
; elevator floors
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
; connection directions
const_def
const EAST_F
const WEST_F
const SOUTH_F
const NORTH_F
const_def
shift_const EAST
shift_const WEST
shift_const SOUTH
shift_const NORTH
; permissions
; map permissions (wPermission)
const_value SET 1
const TOWN
const ROUTE
@ -516,7 +489,48 @@ const_value SET 1
const GATE
const DUNGEON
; object struct
; map palettes (wPermission)
const_def
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
const WEST_F
const SOUTH_F
const NORTH_F
; MapConnections
const_def
shift_const EAST
shift_const WEST
shift_const SOUTH
shift_const NORTH
; object_struct members (see macros/wram.asm)
const_def
const OBJECT_SPRITE ; 00
const OBJECT_MAP_OBJECT_INDEX ; 01
@ -553,7 +567,7 @@ const_value SET 1
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 @@ OBJECT_LENGTH EQU const_value
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
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.
; object_struct OBJECT_FLAGS1 bit flags
INVISIBLE EQU 0
FIXED_FACING EQU 2
SLIDING EQU 3
EMOTE_OBJECT EQU 7
; 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_value = -1
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_value = -1
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
INVISIBLE EQU 0
FIXED_FACING EQU 2
SLIDING EQU 3
EMOTE_OBJECT EQU 7
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
; person_event types
; TryObjectEvent arguments (see engine/events.asm)
const_def
const PERSONTYPE_SCRIPT
const PERSONTYPE_ITEMBALL
@ -666,7 +662,24 @@ EMOTE_OBJECT EQU 7
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_value SET 1
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_05 EQU 5
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

View File

@ -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_value SET $f1
const MAPSETUP_BADWARP
const MAPSETUP_FLY
; callback types
const_value SET 1
const MAPCALLBACK_TILES
const MAPCALLBACK_OBJECTS
@ -19,9 +22,10 @@ const_value SET 1
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

View File

@ -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
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,35 +36,17 @@ ENEMY_OT_NAME EQU 6
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
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
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 @@ D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN
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,51 +96,7 @@ WMISC_HEIGHT EQU 5 * 4
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
; 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
; printing text
PRINTNUM_MONEY_F EQU 5
PRINTNUM_RIGHTALIGN_F EQU 6
@ -155,6 +106,20 @@ PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
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_value = 1
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

View File

@ -0,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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 @@ BOXMON_STRUCT_LENGTH EQUS "(PartyMon1End - PartyMon1)"
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_value SET 1
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_value SET 1
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

View File

@ -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_value SET 1
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_value SET 1
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_value SET 1
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

View File

@ -1,5 +1,5 @@
; wPrinterStatus
const_value SET 1
const PRINTER_STATUS_CHECKING
const PRINTER_STATUS_TRANSMITTING
const PRINTER_STATUS_PRINTING

View File

@ -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,12 +101,7 @@
const MAPRADIO_LETS_ALL_SING
const MAPRADIO_ROCKET
const_def
const BUENA_MON
const BUENA_ITEM
const BUENA_MOVE
const BUENA_STRING
; PasswordTable indexes (see engine/radio.asm)
const_def
const BUENA_STARTERS
const BUENA_DRINKS
@ -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

View File

@ -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 @@ LAST_TALKED EQU -2
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

View File

@ -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

View File

@ -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 @@ SPRITE_POKEMON EQU const_value
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 @@ SPRITE_VARS EQU const_value
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_value SET 1
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_SPRITEHEADER_FIELDS EQU const_value
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 @@ SPRITEMOVEDATA_FIELDS EQU 6
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 @@ MAX_OUTDOOR_SPRITES EQU 23
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 @@ MAX_OUTDOOR_SPRITES EQU 23
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 @@ MAX_OUTDOOR_SPRITES EQU 23
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 @@ MAX_OUTDOOR_SPRITES EQU 23
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 @@ MAX_OUTDOOR_SPRITES EQU 23
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 @@ MAX_OUTDOOR_SPRITES EQU 23
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,62 +469,63 @@ MAX_OUTDOOR_SPRITES EQU 23
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
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

View File

@ -1,3 +1,5 @@
; StdScripts indexes (see engine/std_scripts.asm)
; also used in CheckFacingTileForStd (see main.asm)
enum_start
enum pokecenternurse
enum difficultbookshelf

View File

@ -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 1 << 4
TALK EQU $10
; 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_value SET 1
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

View File

@ -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 @@ KRIS EQU __enum__
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 @@ KRIS EQU __enum__
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 @@ KRIS EQU __enum__
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 @@ KRIS EQU __enum__
const QUENTIN
trainerclass EXECUTIVEF ; 37
const EXECUTIVEF_1
const EXECUTIVEF_2
trainerclass SAGE ; 38
const CHOW
@ -648,12 +667,23 @@ KRIS EQU __enum__
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
@ -674,12 +704,24 @@ const_value = 0
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

View File

@ -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

View File

@ -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_DARKER EQU $60
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_LEFT EQU 2
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_MOVEMENT EQU 2
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 @@ DAYCARE_DEPOSIT EQU 3
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

View File

@ -1,3 +1,5 @@
; entries correspond to SPRITEMOVEDATA_* constants
sprite_movement_data: macro
db \1, \2, \3, \4, \5
dn \6, 0

View File

@ -1,77 +1,78 @@
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:
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,21 +102,21 @@ SpriteAnimFrameData: ; 8d6e6
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
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
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 @@ SpriteAnimFrameData: ; 8d6e6
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 @@ SpriteAnimFrameData: ; 8d6e6
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,33 +156,33 @@ SpriteAnimFrameData: ; 8d6e6
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
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
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
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,56 +190,56 @@ SpriteAnimFrameData: ; 8d6e6
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
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 @@ SpriteAnimFrameData: ; 8d6e6
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 @@ SpriteAnimFrameData: ; 8d6e6
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 @@ SpriteAnimFrameData: ; 8d6e6
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,53 +425,53 @@ SpriteAnimFrameData: ; 8d6e6
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
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,26 +479,27 @@ SpriteAnimFrameData: ; 8d6e6
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
; 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 @@ SpriteAnimOAMData: ; 8d94d
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

View File

@ -141,7 +141,7 @@ ConvertTrainerBattlePokeballTilesTo2bpp: ; 8c2cf
; 8c2f4
TrainerBattlePokeballTiles: ; 8c2f4
INCBIN "gfx/overworld/trainer_battle_pokeball_tiles.2bpp"
INCBIN "gfx/ow_fx/trainer_battle_pokeball_tiles.2bpp"
FlashyTransitionToBattle: ; 8c314

View File

@ -1783,7 +1783,7 @@ BillsPC_CopyMon: ; e2fd6 (38:6fd6)
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 @@ BillsPC_InitGFX: ; e33e8 (38:73e8)
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>.@"

View File

@ -245,10 +245,10 @@ ClearPCItemScreen: ; e58b
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

View File

@ -234,7 +234,7 @@ HatchEggs: ; 16f70 (5:6f70)
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 @@ HatchEggs: ; 16f70 (5:6f70)
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 @@ HatchEggs: ; 16f70 (5:6f70)
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 @@ EggHatch_CrackShell: ; 1736d (5:736d)
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 @@ EggHatch_CrackShell: ; 1736d (5:736d)
; 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 @@ Hatch_InitShellFragments: ; 173b3 (5:73b3)
push hl
push bc
ld a, SPRITE_ANIM_INDEX_1C
ld a, SPRITE_ANIM_INDEX_EGG_HATCH
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_TILE_ID

View File

@ -499,12 +499,12 @@ CardFlip_DisplayCardFaceUp: ; e03ec
.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 @@ CardFlip_InitAttrPals: ; e0c37 (38:4c37)
; 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

View File

@ -66,7 +66,7 @@ RestartClock: ; 20021 (8:4021)
.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 @@ RestartClock: ; 20021 (8:4021)
ret
.pressed_up
ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
ld a, [Buffer1]
call ResetClock_GetWraparoundTime
ld a, [de]
inc a
@ -163,7 +163,7 @@ RestartClock: ; 20021 (8:4021)
jr .done_scroll
.pressed_down
ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
ld a, [Buffer1]
call ResetClock_GetWraparoundTime
ld a, [de]
dec a
@ -176,14 +176,14 @@ RestartClock: ; 20021 (8:4021)
jr .done_scroll
.pressed_left
ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
ld hl, Buffer1
dec [hl]
jr nz, .done_scroll
ld [hl], $3
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 @@ RestartClock: ; 20021 (8:4021)
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)

View File

@ -196,7 +196,7 @@ Credits:: ; 109847
xor a
ld [hBGMapMode], a
ld [CreditsPos], a
ld [wcd21], a
ld [CreditsUnusedCD21], a
ld [CreditsTimer], a
.execution_loop
@ -491,7 +491,7 @@ ParseCredits: ; 1099aa
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 @@ CreditsStrings:
.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
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
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
next $60,$61,$62,$63,$64,$65,$66,$73,$74,$75,$76,$77,$78,$79, $7a,$7b,$7c
db "@"

View File

@ -183,7 +183,7 @@ PlaceGameFreakPresents_2: ; e46ba
.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 @@ IntroScene7: ; e4b3f (39:4b3f)
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 @@ IntroScene10: ; e4c4f (39:4c4f)
.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 @@ IntroScene10: ; e4c4f (39:4c4f)
.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 @@ IntroScene13: ; e4d6d (39:4d6d)
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 @@ IntroScene15: ; e4e40 (39:4e40)
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 @@ IntroScene19: ; e4f7e (39:4f7e)
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 @@ Intro_Scene24_ApplyPaletteFade: ; e5172 (39:5172)
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 @@ CrystalIntro_InitUnownAnim: ; e51dc (39:51dc)
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 @@ CrystalIntro_InitUnownAnim: ; e51dc (39:51dc)
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 @@ CrystalIntro_InitUnownAnim: ; e51dc (39:51dc)
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

View File

@ -908,16 +908,16 @@ DecoAction_putawayornament: ; 26dc9
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
; 26de3
DecoAction_SetItUp_Ornament: ; 26de3
ld a, [wd1ec]
ld a, [wSelectedDecoration]
and a
jr z, .nothingthere
ld b, a
@ -931,7 +931,7 @@ DecoAction_SetItUp_Ornament: ; 26de3
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 @@ DecoAction_SetItUp_Ornament: ; 26de3
.nothingthere
ld a, [MenuSelection]
ld [wd1ec], a
ld [wSelectedDecoration], a
call .getwhichside
ld a, [MenuSelection]
ld hl, StringBuffer3
@ -960,11 +960,11 @@ DecoAction_SetItUp_Ornament: ; 26de3
.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 @@ UnknownText_0x26e41: ; 0x26e41
; 0x26e46
DecoAction_PutItAway_Ornament: ; 26e46
ld a, [wd1ec]
ld a, [wSelectedDecoration]
and a
jr z, .nothingthere
ld hl, StringBuffer3
@ -983,7 +983,7 @@ DecoAction_PutItAway_Ornament: ; 26e46
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 @@ DecoAction_AskWhichSide: ; 26e70
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

View File

@ -85,10 +85,10 @@ PrintDiplomaPage2: ; 1dd7ae
; 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"

View File

@ -109,7 +109,7 @@ endr
.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 @@ DummyGame_InterpretJoypad_AnimateCursor: ; e21a1 (38:61a1)
; e2221 (38:6221)
LZ_e2221: ; e2221
INCBIN "gfx/unknown/0e2221.2bpp.lz"
INCBIN "gfx/dummy_game/dummy_game.2bpp.lz"

View File

@ -208,7 +208,7 @@ ENDM
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

View File

@ -627,7 +627,7 @@ CmdQueue_StoneTable: ; 97f42
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

View File

@ -850,9 +850,9 @@ LoadFishingGFX: ; b84b3
; 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

View File

@ -316,7 +316,7 @@ EvolutionAnimation: ; 4e5e1
.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

View File

@ -1,4 +1,5 @@
Facings: ; 4049
; entries correspond to FACING_* constants
dw FacingStepDown0
dw FacingStepDown1
dw FacingStepDown2
@ -31,7 +32,8 @@ Facings: ; 4049
dw FacingBoulderDust2
dw FacingGrass1
dw FacingGrass2
FacingsEnd: dw 0
FacingsEnd:
dw 0
NUM_FACINGS EQU (FacingsEnd - Facings) / 2
@ -41,12 +43,6 @@ NUM_FACINGS EQU (FacingsEnd - Facings) / 2
; 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:
FacingWeirdTree0:

View File

@ -137,7 +137,7 @@ HealMachineAnim: ; 12324
; 123fc
.HealMachineGFX: ; 123fc
INCBIN "gfx/unknown/0123fc.2bpp"
INCBIN "gfx/ow_fx/heal_machine.2bpp"
; 1241c
.HOF_OAM: ; 1241c

View File

@ -68,9 +68,9 @@ InitGenderScreen: ; 48e14 (12:4e14)
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

View File

@ -111,8 +111,8 @@ _ResetWRAM: ; 5bae
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 @@ Continue: ; 5d65
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 @@ Continue_MobileAdapterMenu: ; 5df0
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 @@ Continue_MobileAdapterMenu: ; 5df0
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 @@ ShrinkPlayer: ; 610f
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 @@ StartTitleScreen: ; 6219
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 @@ TitleScreenTimer: ; 62f6
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 @@ TitleScreenTimer: ; 62f6
TitleScreenMain: ; 6304
; Run the timer down.
ld hl, wcf65
ld hl, wTitleScreenTimer
ld e, [hl]
inc hl
ld d, [hl]
@ -1268,7 +1268,7 @@ TitleScreenMain: ; 6304
ld a, 1
.done
ld [wcf64], a
ld [wIntroSceneFrameCounter], a
; Return to the intro sequence.
ld hl, wJumptableIndex
@ -1282,18 +1282,18 @@ TitleScreenMain: ; 6304
; 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 @@ TitleScreenEnd: ; 6375
; Wait until the music is done fading.
ld hl, wcf65
ld hl, wTitleScreenTimer
inc [hl]
ld a, [MusicFade]
@ -1313,7 +1313,7 @@ TitleScreenEnd: ; 6375
ret nz
ld a, 2
ld [wcf64], a
ld [wIntroSceneFrameCounter], a
; Back to the intro.
ld hl, wJumptableIndex
@ -1332,8 +1332,8 @@ ResetClock: ; 6392
; 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 @@ Function639b: ; unreferenced
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

View File

@ -331,7 +331,7 @@ ReceiveKeyItem: ; d35a
ret
TossKeyItem: ; d374
ld a, [wd107]
ld a, [CurItemQuantity]
ld e, a
ld d, 0
ld hl, NumKeyItems

View File

@ -390,7 +390,7 @@ Gen2ToGen2LinkComms: ; 28177
ld [de], a
.skip_mail
ld hl, wLinkData
ld hl, wLinkPlayerName
ld de, OTPlayerName
ld bc, NAME_LENGTH
call CopyBytes
@ -1143,7 +1143,7 @@ TimeCapsule_ReplaceTeruSama: ; 28771
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

View File

@ -1,5 +1,5 @@
LinkCommsBorderGFX:
INCBIN "gfx/unknown/16cfc1.2bpp"
INCBIN "gfx/trade/border_tiles.2bpp"
; 16d421
__LoadTradeScreenBorder: ; 16d421
@ -35,13 +35,13 @@ Function16d43b: ; 16d43b
; 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

View File

@ -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

View File

@ -155,8 +155,8 @@ Function437b: ; 437b
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 @@ Function4440: ; 4440
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 @@ MapObjectMovementPattern: ; 47dd
ret
.Pointers: ; 47e9
; entries correspond to SPRITEMOVEFN_* constants
dw .Null_00 ; 00
dw .RandomWalkY ; 01
dw .RandomWalkX ; 02
@ -1085,7 +1101,7 @@ SetRandomStepDuration: ; 4b2d
; 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

View File

@ -414,9 +414,9 @@ RetainOldPalettes: ; 1556d
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

View File

@ -370,9 +370,9 @@ BuyMenu: ; 15c62
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 @@ BuyMenuLoop: ; 15cef
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

View File

@ -178,7 +178,7 @@ InitPartyMenuIcon: ; 8e908 (23:6908)
; 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 @@ SetPartyMonIconAnimSpeed: ; 8e936 (23:6936)
; 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 @@ NamingScreen_InitAnimatedMonIcon: ; 8e961 (23:6961)
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 @@ MoveList_InitAnimatedMonIcon: ; 8e97d (23:697d)
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 @@ FreezeMonIcons: ; 8ea4a
jr .ok
.loadwithtwo
ld a, SPRITE_ANIM_SEQ_02
ld a, SPRITE_ANIM_SEQ_PARTY_MON_SWITCH
.ok
push hl
@ -407,7 +409,7 @@ UnfreezeMonIcons: ; 8ea71
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 @@ HoldSwitchmonIcon: ; 8ea8c
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

View File

@ -9,8 +9,7 @@ MonMenuOptionStrings: ; 24caf
; 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 @@ MonMenuOptions: ; 24cd9
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 @@ MonMenuOptions: ; 24cd9
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 @@ GetMonSubmenuItems: ; 24dd4
.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 @@ ResetMonSubmenu: ; 24e68
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

View File

@ -1543,7 +1543,7 @@ CalcPkmnStatC: ; e17b
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 @@ CalcPkmnStatC: ; e17b
ld [hMultiplicand + 1], a
.no_overflow_3
ld a, 10
ld a, STAT_MIN_HP
.not_hp
ld b, a

View File

@ -815,7 +815,7 @@ Function104e93: ; 104e93 (41:4e93)
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 @@ Function104e93: ; 104e93 (41:4e93)
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 @@ Function104f57: ; 104f57 (41:4f57)
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 @@ Function104f57: ; 104f57 (41:4f57)
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

View File

@ -9,7 +9,7 @@ PrepMysteryGiftDataToSend: ; 2c642 (b:4642)
ld a, [hli]
ld [de], a
ld b, a
inc de
inc de ; wc802
ld a, [hl]
ld [de], a
ld c, a

View File

@ -419,7 +419,7 @@ NamingScreenJoypadLoop: ; 11915
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 @@ LoadNamingScreenGFX: ; 11c51
; 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 @@ BoxNameInputUpper:
; 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 @@ _ComposeMailMessage: ; 11e75 (mail?)
; 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 @@ INCBIN "gfx/icon/mail2.2bpp"
.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

View File

@ -181,7 +181,7 @@ MapCallbackSprites_LoadUsedSpritesGFX: ; 14209
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 @@ emote_header: MACRO
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 @@ EmotesPointers: ; 144d
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

View File

@ -1716,6 +1716,6 @@ TextJump_YouCantUseItInABattle: ; 0x10b11
; 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"

View File

@ -203,7 +203,7 @@ ChooseRandomCaller: ; 900bf (24:40bf)
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 @@ GetAvailableCallers: ; 900de (24:40de)
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 @@ Function90199: ; 90199 (24:4199)
.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 @@ PhoneCall:: ; 9029a
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_FirstOfTwoRings: ; 902b3
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 @@ Function90363: ; 90363 (24:4363)
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 @@ phone: MACRO
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

View File

@ -117,7 +117,7 @@ Pokedex_CheckUnlockedUnownMode: ; 400a2
ret
Pokedex_InitCursorPosition: ; 400b4
ld hl, wPokedexDataStart
ld hl, wPokedexOrder
ld a, [wLastDexEntry]
and a
jr z, .done
@ -512,7 +512,7 @@ Pokedex_InitOptionScreen: ; 4039d (10:439d)
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 @@ Pokedex_PrintListing: ; 40b0f (10:4b0f)
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 @@ Pokedex_GetSelectedMon: ; 40bb1
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_CheckSeen: ; 40bd0
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 @@ Pokedex_OrderMonsByMode: ; 40bdc
.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 @@ Pokedex_OrderMonsByMode: ; 40bdc
ret
.OldMode: ; 40c08 (10:4c08)
ld hl, wPokedexDataStart
ld hl, wPokedexOrder
ld a, $1
ld c, NUM_POKEMON
.loopold
@ -1656,7 +1656,7 @@ Pokedex_OrderMonsByMode: ; 40bdc
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_OrderMonsByMode: ; 40bdc
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 @@ Pokedex_SearchForMons: ; 41086
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

View File

@ -136,7 +136,7 @@ Pokegear_LoadGFX: ; 90c4e
; 90cb2
FastShipGFX: ; 90cb2
INCBIN "gfx/misc/fast_ship.2bpp"
INCBIN "gfx/pokegear/fast_ship.2bpp"
; 90d32
InitPokegearModeIndicatorArrow: ; 90d32 (24:4d32)
@ -751,7 +751,7 @@ TownMap_GetKantoLandmarkLimits: ; 910e8
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 @@ PokegearText_DeleteStoredNumber: ; 0x914d8
; 0x914dd
PokegearSpritesGFX: ; 914dd
INCBIN "gfx/misc/pokegear_sprites.2bpp.lz"
INCBIN "gfx/pokegear/pokegear_sprites.2bpp.lz"
; 9150d
RadioTilemapRLE: ; 9150d
@ -1619,8 +1619,8 @@ RadioChannels:
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_OaksPokemonTalk: ; 91753 (24:5753)
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_PokedexShow: ; 91766 (24:5766)
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_PokemonMusic: ; 9177b (24:577b)
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_LuckyChannel: ; 91790 (24:5790)
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 @@ NotBuenasPasswordName: db "@"
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_UnownRadio: ; 917d5 (24:57d5)
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_PlacesAndPeople: ; 917ea (24:57ea)
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_LetsAllSing: ; 917ff (24:57ff)
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_RocketRadio: ; 91814
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_PokeFluteRadio: ; 91829 (24:5829)
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 @@ _TownMap: ; 9191c
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 @@ _TownMap: ; 9191c
call DelayFrame
.dmg
ld a, [wd002]
ld a, [wTownMapPlayerIconLandmark]
cp KANTO_LANDMARK
jr nc, .kanto
ld d, KANTO_LANDMARK - 1
@ -1925,7 +1925,7 @@ _TownMap: ; 9191c
jr .loop
.pressed_up
ld hl, wd003
ld hl, wTownMapCursorLandmark
ld a, [hl]
cp d
jr c, .okay
@ -1938,7 +1938,7 @@ _TownMap: ; 9191c
jr .next
.pressed_down
ld hl, wd003
ld hl, wTownMapCursorLandmark
ld a, [hl]
cp e
jr nz, .okay2
@ -1951,20 +1951,20 @@ _TownMap: ; 9191c
.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
; 91a04
.InitTilemap: ; 91a04
ld a, [wd002]
ld a, [wTownMapPlayerIconLandmark]
cp KANTO_LANDMARK
jr nc, .kanto2
ld e, $0
@ -1992,7 +1992,7 @@ _TownMap: ; 9191c
call ByteFill
hlcoord 19, 2
ld [hl], $17
ld a, [wd003]
ld a, [wTownMapCursorLandmark]
call PokegearMap_UpdateLandmarkName
callba TownMapPals
ret
@ -2147,7 +2147,7 @@ _FlyMap: ; 91af3
jr .exit
.pressedA
ld a, [wd002]
ld a, [wTownMapPlayerIconLandmark]
ld l, a
ld h, 0
add hl, hl
@ -2155,7 +2155,7 @@ _FlyMap: ; 91af3
add hl, de
ld a, [hl]
.exit
ld [wd002], a
ld [wTownMapPlayerIconLandmark], a
pop af
ld [hInMenu], a
call ClearBGPalettes
@ -2165,7 +2165,7 @@ _FlyMap: ; 91af3
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 @@ FlyMapScroll: ; 91b73
ret
.ScrollNext:
ld hl, wd002
ld hl, wTownMapPlayerIconLandmark
ld a, [hl]
cp d
jr nz, .NotAtEndYet
@ -2200,7 +2200,7 @@ FlyMapScroll: ; 91b73
jr .Finally
.ScrollPrev:
ld hl, wd002
ld hl, wTownMapPlayerIconLandmark
ld a, [hl]
cp e
jr nz, .NotAtStartYet
@ -2269,7 +2269,7 @@ TownMapBubble: ; 91bb5
.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 @@ TownMapBubble: ; 91bb5
; 91c17
GetMapCursorCoordinates: ; 91c17
ld a, [wd002]
ld a, [wTownMapPlayerIconLandmark]
ld l, a
ld h, $0
add hl, hl
@ -2293,9 +2293,9 @@ GetMapCursorCoordinates: ; 91c17
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 @@ FlyMap: ; 91c90
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 @@ FlyMap: ; 91c90
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 @@ FlyMap: ; 91c90
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 @@ FlyMap: ; 91c90
.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 @@ FlyMap: ; 91c90
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 @@ FlyMap: ; 91c90
; 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,21 +2471,21 @@ FlyMap: ; 91c90
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
_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 @@ _Area: ; 91d11
.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 @@ _Area: ; 91d11
; 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 @@ _Area: ; 91d11
.HideNestsShowPlayer: ; 91e5a
call .CheckPlayerLocation
ret c
ld a, [wd002]
ld a, [wTownMapPlayerIconLandmark]
ld e, a
callba GetLandmarkCoords
ld c, e
@ -2731,22 +2725,21 @@ _Area: ; 91d11
.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 @@ _Area: ; 91d11
; 91ed0
.GetPlayerOrFastShipIcon: ; 91ed0
ld a, [wd002]
ld a, [wTownMapPlayerIconLandmark]
cp FAST_SHIP
jr z, .FastShip
callba GetPlayerIcon
@ -2910,7 +2903,7 @@ TownMapMon: ; 91f7b
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 @@ LoadTownMapGFX: ; 91ff2
; 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 @@ INCBIN "gfx/pokegear/flymap_label_border.1bpp"
; XXX
xor a
ld [wd002], a
ld [wTownMapPlayerIconLandmark], a
call ClearBGPalettes
call ClearTileMap
call ClearSprites
@ -3019,9 +3012,9 @@ INCBIN "gfx/pokegear/flymap_label_border.1bpp"
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 @@ INCBIN "gfx/pokegear/flymap_label_border.1bpp"
jr .finished_a_b
.pressedA
ld a, [wd002]
ld a, [wTownMapPlayerIconLandmark]
ld l, a
ld h, 0
add hl, hl
@ -3053,7 +3046,7 @@ INCBIN "gfx/pokegear/flymap_label_border.1bpp"
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 @@ INCBIN "gfx/pokegear/flymap_label_border.1bpp"
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 @@ INCBIN "gfx/pokegear/flymap_label_border.1bpp"
ret
.down_right
ld hl, wd002
ld hl, wTownMapPlayerIconLandmark
ld a, [hl]
cp FLY_INDIGO
jr c, .okay_dr
@ -3090,7 +3083,7 @@ INCBIN "gfx/pokegear/flymap_label_border.1bpp"
jr .continue
.up_left
ld hl, wd002
ld hl, wTownMapPlayerIconLandmark
ld a, [hl]
and a
jr nz, .okay_ul
@ -3098,7 +3091,7 @@ INCBIN "gfx/pokegear/flymap_label_border.1bpp"
.okay_ul
dec [hl]
.continue
ld a, [wd002]
ld a, [wTownMapPlayerIconLandmark]
cp KANTO_FLYPOINT
jr c, .johto
call FillKantoMap

View File

@ -292,13 +292,13 @@ Printer_WaitHandshake: ; 841c3 (21:41c3)
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_CopyPacket: ; 841e2 (21:41e2)
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_ResetData: ; 841fb (21:41fb)
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 @@ _PrinterReceive:: ; 842db
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 @@ Printer_Send0x33: ; 84330 (21:4330)
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

View File

@ -275,7 +275,7 @@ _PrintNum:: ; c4c7
dec e
ret nz
inc hl
ld [hl], "·"
ld [hl], "<DOT>"
ret
.PrintLeadingZero: ; c644

View File

@ -234,7 +234,7 @@ OaksPkmnTalk4:
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 @@ endr
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

View File

@ -979,7 +979,7 @@ Script_cry:
ret
GetScriptPerson:
and a
and a ; PLAYER?
ret z
cp LAST_TALKED
ret z
@ -1355,19 +1355,19 @@ Script_earthquake:
; 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 @@ Script_givepokeitem:
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 @@ Script_warp:
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 @@ Script_warp:
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 @@ ExitScriptSubroutine:
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 " "

View File

@ -94,7 +94,7 @@ CheckRegisteredItem: ; 13345
dec a
cp [hl]
jr nc, .NotEnoughItems
ld [wd107], a
ld [CurItemQuantity], a
and a
ret

View File

@ -1067,7 +1067,7 @@ ReelAction_InitGolem: ; 92d20
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 @@ Reel3Tilemap: ; 9334b
; 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

View File

@ -42,17 +42,16 @@ ENDM
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]

View File

@ -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 @@ SpecialGameboyCheck: ; c478
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

View File

@ -13,54 +13,54 @@ DoAnimFrame: ; 8d24b
; 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 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
ld [hl], a
ret
.three ; 8d2ea (23:52ea)
.PartyMonSelected ; 8d2ea (23:52ea)
ld a, [wMenuCursorY]
ld hl, SPRITEANIMSTRUCT_INDEX
@ -132,7 +132,7 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
callab NamingScreen_AnimateCursor
ret
.mailcompositioncursor ; 8d373 (23:5373)
.MailCursor ; 8d373 (23:5373)
callab ComposeMail_AnimateCursor
ret
@ -229,7 +229,7 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
ret
; 8d4a5
.sixteen_two ; 8d4a5
.TradePokeBall_two ; 8d4a5
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
@ -460,7 +460,7 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
.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 @@ DoAnimFrame: ; 8d24b
ret
; 8d4e8
.sixteen_four ; 8d4e8
.TradePokeBall_four ; 8d4e8
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld a, [hl]
@ -542,12 +542,12 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
.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 @@ DoAnimFrame: ; 8d24b
ld [hl], a
ret
.thirtythree ; 8d6a2 (23:56a2)
.IntroUnownF ; 8d6a2 (23:56a2)
ld a, [wcf64]
cp $40
ret nz
@ -838,7 +838,7 @@ DoAnimFrame: ; 8d24b
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 @@ DoAnimFrame: ; 8d24b
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

View File

@ -551,51 +551,97 @@ BrokenGetStdGraphics: ; 8d1ac
; 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

View File

@ -16,7 +16,7 @@ StartMenu:: ; 125cd
call LoadMenuDataHeader
call .SetUpMenuItems
ld a, [wd0d2]
ld a, [wBattleMenuCursorBuffer]
ld [wMenuCursorBuffer], a
call .DrawMenuAccount_
call DrawVariableLengthMenuBox
@ -32,7 +32,7 @@ StartMenu:: ; 125cd
call UpdateSprites
call UpdateTimePals
call .SetUpMenuItems
ld a, [wd0d2]
ld a, [wBattleMenuCursorBuffer]
ld [wMenuCursorBuffer], a
.Select:
@ -40,7 +40,7 @@ StartMenu:: ; 125cd
jr c, .Exit
call .DrawMenuAccount
ld a, [wMenuCursorBuffer]
ld [wd0d2], a
ld [wBattleMenuCursorBuffer], a
call PlayClickSFX
call PlaceHollowCursor
call .OpenMenu
@ -614,7 +614,7 @@ TossItemFromPC: ; 129f4
pop af
jr c, .quit
pop hl
ld a, [wd107]
ld a, [CurItemQuantity]
call TossItem
call PartyMonItemName
ld hl, .TossedThisMany

View File

@ -3,7 +3,7 @@ BattleStatsScreenInit: ; 4dc7b (13:5c7b)
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 @@ StatsScreen_InitUpperHalf: ; 4deea (13:5eea)
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 @@ StatsScreen_InitUpperHalf: ; 4deea (13:5eea)
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 @@ StatsScreen_InitUpperHalf: ; 4deea (13:5eea)
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 @@ Function4df7f: ; 4df7f
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 @@ StatsScreen_PlaceShinyIcon: ; 4dfa6 (13:5fa6)
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 @@ StatsScreen_LoadGFX: ; 4dfb6 (13:5fb6)
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 @@ StatsScreen_LoadGFX: ; 4dfb6 (13:5fb6)
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 @@ StatsScreen_LoadGFX: ; 4dfb6 (13:5fb6)
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 @@ StatsScreen_LoadGFX: ; 4dfb6 (13:5fb6)
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 @@ StatsScreen_GetAnimationParam: ; 4e2ad (13:62ad)
.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 @@ StatsScreen_GetAnimationParam: ; 4e2ad (13:62ad)
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 @@ Unknown_4e32a: ; 4e32a
EggStatsScreen: ; 4e33a
xor a
ld [hBGMapMode], a
ld hl, wcda1
ld hl, wCurHPPal
call SetHPPal
ld b, SCGB_STATS_SCREEN_HP_PALS
call GetSGBLayout

View File

@ -10,9 +10,9 @@ InitClock: ; 90672 (24:4672)
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 @@ InitClock: ; 90672 (24:4672)
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 @@ OakText_ResponseToSetTime: ; 0x908b8
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 @@ Special_SetDayOfWeek: ; 90913
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

View File

@ -10,10 +10,10 @@ _TitleScreen: ; 10ed67
; 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 @@ _TitleScreen: ; 10ed67
; 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

Some files were not shown because too many files have changed in this diff Show More