First Commit

Upload literally everything from the pokecrystal16 expand-move-ID branch
This commit is contained in:
Zeta_Null 2023-09-10 12:35:35 -04:00
commit 2f8a41f833
4618 changed files with 480386 additions and 0 deletions

View file

@ -0,0 +1,17 @@
; Multiplier ratios for accuracy from modifier -6 to +6
; (for other stats, see data/battle/stat_multipliers.asm).
AccuracyLevelMultipliers:
db 33, 100 ; -6 = 33%
db 36, 100 ; -5 = 36%
db 43, 100 ; -4 = 43%
db 50, 100 ; -3 = 50%
db 60, 100 ; -2 = 60%
db 75, 100 ; -1 = 75%
db 1, 1 ; 0 = 100%
db 133, 100 ; +1 = 133%
db 166, 100 ; +2 = 166%
db 2, 1 ; +3 = 200%
db 233, 100 ; +4 = 233%
db 133, 50 ; +5 = 266%
db 3, 1 ; +6 = 300%

View file

@ -0,0 +1,10 @@
; AIDamageCalc uses BattleCommand_ConstantDamage
; to calculate damage for these instead of
; BattleCommand_DamageCalc and BattleCommand_Stab.
ConstantDamageEffects:
db EFFECT_SUPER_FANG
db EFFECT_STATIC_DAMAGE
db EFFECT_LEVEL_DAMAGE
db EFFECT_PSYWAVE
db -1 ; end

View file

@ -0,0 +1,34 @@
; AI_SMART encourages these moves with Encore.
EncoreMoves:
dw SWORDS_DANCE
dw WHIRLWIND
dw LEER
dw ROAR
dw DISABLE
dw MIST
dw LEECH_SEED
dw GROWTH
dw POISONPOWDER
dw STRING_SHOT
dw MEDITATE
dw AGILITY
dw TELEPORT
dw SCREECH
dw HAZE
dw FOCUS_ENERGY
dw DREAM_EATER
dw POISON_GAS
dw SPLASH
dw SHARPEN
dw CONVERSION
dw SUPER_FANG
dw SUBSTITUTE
dw TRIPLE_KICK
dw SPIDER_WEB
dw MIND_READER
dw FLAME_WHEEL
dw AEROBLAST
dw COTTON_SPORE
dw POWDER_SNOW
dw -1 ; end

View file

@ -0,0 +1,15 @@
; AI_SMART prefers these moves during rain.
RainDanceMoves:
dw WATER_GUN
dw HYDRO_PUMP
dw SURF
dw BUBBLEBEAM
dw THUNDER
dw WATERFALL
dw CLAMP
dw BUBBLE
dw CRABHAMMER
dw OCTAZOOKA
dw WHIRLPOOL
dw -1 ; end

View file

@ -0,0 +1,9 @@
; AI_AGGRESSIVE does not discourage these moves
; even if a stronger one is available.
RecklessMoves:
db EFFECT_SELFDESTRUCT
db EFFECT_RAMPAGE
db EFFECT_MULTI_HIT
db EFFECT_DOUBLE_HIT
db -1 ; end

View file

@ -0,0 +1,16 @@
; AI_CAUTIOUS discourages these moves after the first turn.
ResidualMoves:
dw MIST
dw LEECH_SEED
dw POISONPOWDER
dw STUN_SPORE
dw THUNDER_WAVE
dw FOCUS_ENERGY
dw BIDE
dw POISON_GAS
dw TRANSFORM
dw CONVERSION
dw SUBSTITUTE
dw SPIKES
dw -1 ; end

View file

@ -0,0 +1,7 @@
; AI_RISKY will not use these effects at max HP
; even if they would KO the player.
RiskyEffects:
db EFFECT_SELFDESTRUCT
db EFFECT_OHKO
db -1 ; end

View file

@ -0,0 +1,37 @@
; AI_OPPORTUNIST discourages these moves
; when the player's HP is low.
StallMoves:
dw SWORDS_DANCE
dw TAIL_WHIP
dw LEER
dw GROWL
dw DISABLE
dw MIST
dw COUNTER
dw LEECH_SEED
dw GROWTH
dw STRING_SHOT
dw MEDITATE
dw AGILITY
dw RAGE
dw MIMIC
dw SCREECH
dw HARDEN
dw WITHDRAW
dw DEFENSE_CURL
dw BARRIER
dw LIGHT_SCREEN
dw HAZE
dw REFLECT
dw FOCUS_ENERGY
dw BIDE
dw AMNESIA
dw TRANSFORM
dw SPLASH
dw ACID_ARMOR
dw SHARPEN
dw CONVERSION
dw SUBSTITUTE
dw FLAME_WHEEL
dw -1 ; end

View file

@ -0,0 +1,9 @@
; AI_BASIC discourages these effects if the player
; already has a status condition.
StatusOnlyEffects:
db EFFECT_SLEEP
db EFFECT_TOXIC
db EFFECT_POISON
db EFFECT_PARALYZE
db -1 ; end

View file

@ -0,0 +1,13 @@
; AI_SMART prefers these moves during harsh sunlight.
SunnyDayMoves:
; BUG: "Smart" AI does not encourage Solar Beam, Flame Wheel, or Moonlight during Sunny Day (see docs/bugs_and_glitches.md)
dw FIRE_PUNCH
dw EMBER
dw FLAMETHROWER
dw FIRE_SPIN
dw FIRE_BLAST
dw SACRED_FIRE
dw MORNING_SUN
dw SYNTHESIS
dw -1 ; end

View file

@ -0,0 +1,23 @@
; AI_SMART knows these moves are usable all-around.
UsefulMoves:
dw DOUBLE_EDGE
dw SING
dw FLAMETHROWER
dw HYDRO_PUMP
dw SURF
dw ICE_BEAM
dw BLIZZARD
dw HYPER_BEAM
dw SLEEP_POWDER
dw THUNDERBOLT
dw THUNDER
dw EARTHQUAKE
dw TOXIC
dw PSYCHIC_M
dw HYPNOSIS
dw RECOVER
dw FIRE_BLAST
dw SOFTBOILED
dw SUPER_FANG
dw -1 ; end

View file

@ -0,0 +1,8 @@
CriticalHitChances:
db 1 out_of 15 ; 0
db 1 out_of 8 ; +1
db 1 out_of 4 ; +2
db 1 out_of 3 ; +3
db 1 out_of 2 ; +4
db 1 out_of 2 ; +5
db 1 out_of 2 ; +6

View file

@ -0,0 +1,183 @@
; battle commands are defined in engine/battle/effect_commands.asm
dw 0 ; padding
BattleCommandPointers:
; entries correspond to macros/scripts/battle_commands.asm
table_width 2, BattleCommandPointers
dw BattleCommand_CheckTurn
dw BattleCommand_CheckObedience
dw BattleCommand_UsedMoveText
dw BattleCommand_DoTurn
dw BattleCommand_Critical
dw BattleCommand_DamageStats
dw BattleCommand_Stab
dw BattleCommand_DamageVariation
dw BattleCommand_CheckHit
dw BattleCommand_LowerSub
dw BattleCommand_MoveAnimNoSub
dw BattleCommand_RaiseSub
dw BattleCommand_FailureText
dw BattleCommand_ApplyDamage
dw BattleCommand_CriticalText
dw BattleCommand_SuperEffectiveText
dw BattleCommand_CheckFaint
dw BattleCommand_BuildOpponentRage
dw BattleCommand_PoisonTarget
dw BattleCommand_SleepTarget
dw BattleCommand_DrainTarget
dw BattleCommand_EatDream
dw BattleCommand_BurnTarget
dw BattleCommand_FreezeTarget
dw BattleCommand_ParalyzeTarget
dw BattleCommand_Selfdestruct
dw BattleCommand_MirrorMove
dw BattleCommand_StatUp
dw BattleCommand_StatDown
dw BattleCommand_PayDay
dw BattleCommand_Conversion
dw BattleCommand_ResetStats
dw BattleCommand_StoreEnergy
dw BattleCommand_UnleashEnergy
dw BattleCommand_ForceSwitch
dw BattleCommand_EndLoop
dw BattleCommand_FlinchTarget
dw BattleCommand_OHKO
dw BattleCommand_Recoil
dw BattleCommand_Mist
dw BattleCommand_FocusEnergy
dw BattleCommand_Confuse
dw BattleCommand_ConfuseTarget
dw BattleCommand_Heal
dw BattleCommand_Transform
dw BattleCommand_Screen
dw BattleCommand_Poison
dw BattleCommand_Paralyze
dw BattleCommand_Substitute
dw BattleCommand_RechargeNextTurn
dw BattleCommand_Mimic
dw BattleCommand_Metronome
dw BattleCommand_LeechSeed
dw BattleCommand_Splash
dw BattleCommand_Disable
dw BattleCommand_ClearText
dw BattleCommand_Charge
dw BattleCommand_CheckCharge
dw BattleCommand_TrapTarget
dw BattleCommand_Unused3C
dw BattleCommand_Rampage
dw BattleCommand_CheckRampage
dw BattleCommand_ConstantDamage
dw BattleCommand_Counter
dw BattleCommand_Encore
dw BattleCommand_PainSplit
dw BattleCommand_Snore
dw BattleCommand_Conversion2
dw BattleCommand_LockOn
dw BattleCommand_Sketch
dw BattleCommand_DefrostOpponent
dw BattleCommand_SleepTalk
dw BattleCommand_DestinyBond
dw BattleCommand_Spite
dw BattleCommand_FalseSwipe
dw BattleCommand_HealBell
dw BattleCommand_HeldFlinch
dw BattleCommand_TripleKick
dw BattleCommand_KickCounter
dw BattleCommand_Thief
dw BattleCommand_ArenaTrap
dw BattleCommand_Nightmare
dw BattleCommand_Defrost
dw BattleCommand_Curse
dw BattleCommand_Protect
dw BattleCommand_Spikes
dw BattleCommand_Foresight
dw BattleCommand_PerishSong
dw BattleCommand_StartSandstorm
dw BattleCommand_Endure
dw BattleCommand_CheckCurl
dw BattleCommand_RolloutPower
dw BattleCommand_Unused5D
dw BattleCommand_FuryCutter
dw BattleCommand_Attract
dw BattleCommand_HappinessPower
dw BattleCommand_Present
dw BattleCommand_DamageCalc
dw BattleCommand_FrustrationPower
dw BattleCommand_Safeguard
dw BattleCommand_CheckSafeguard
dw BattleCommand_GetMagnitude
dw BattleCommand_BatonPass
dw BattleCommand_Pursuit
dw BattleCommand_ClearHazards
dw BattleCommand_HealMorn
dw BattleCommand_HealDay
dw BattleCommand_HealNite
dw BattleCommand_HiddenPower
dw BattleCommand_StartRain
dw BattleCommand_StartSun
dw BattleCommand_AttackUp
dw BattleCommand_DefenseUp
dw BattleCommand_SpeedUp
dw BattleCommand_SpecialAttackUp
dw BattleCommand_SpecialDefenseUp
dw BattleCommand_AccuracyUp
dw BattleCommand_EvasionUp
dw BattleCommand_AttackUp2
dw BattleCommand_DefenseUp2
dw BattleCommand_SpeedUp2
dw BattleCommand_SpecialAttackUp2
dw BattleCommand_SpecialDefenseUp2
dw BattleCommand_AccuracyUp2
dw BattleCommand_EvasionUp2
dw BattleCommand_AttackDown
dw BattleCommand_DefenseDown
dw BattleCommand_SpeedDown
dw BattleCommand_SpecialAttackDown
dw BattleCommand_SpecialDefenseDown
dw BattleCommand_AccuracyDown
dw BattleCommand_EvasionDown
dw BattleCommand_AttackDown2
dw BattleCommand_DefenseDown2
dw BattleCommand_SpeedDown2
dw BattleCommand_SpecialAttackDown2
dw BattleCommand_SpecialDefenseDown2
dw BattleCommand_AccuracyDown2
dw BattleCommand_EvasionDown2
dw BattleCommand_StatUpMessage
dw BattleCommand_StatDownMessage
dw BattleCommand_StatUpFailText
dw BattleCommand_StatDownFailText
dw BattleCommand_EffectChance
dw BattleCommand_StatDownAnim
dw BattleCommand_StatUpAnim
dw BattleCommand_SwitchTurn
dw BattleCommand_FakeOut
dw BattleCommand_BellyDrum
dw BattleCommand_PsychUp
dw BattleCommand_Rage
dw BattleCommand_DoubleFlyingDamage
dw BattleCommand_DoubleUndergroundDamage
dw BattleCommand_MirrorCoat
dw BattleCommand_CheckFutureSight
dw BattleCommand_FutureSight
dw BattleCommand_DoubleMinimizeDamage
dw BattleCommand_SkipSunCharge
dw BattleCommand_ThunderAccuracy
dw BattleCommand_Teleport
dw BattleCommand_BeatUp
dw BattleCommand_RageDamage
dw BattleCommand_ResetTypeMatchup
dw BattleCommand_AllStatsUp
dw BattleCommand_BideFailText
dw BattleCommand_RaiseSubNoAnim
dw BattleCommand_LowerSubNoAnim
dw BattleCommand_BeatUpFailText
dw BattleCommand_ClearMissDamage
dw BattleCommand_MoveDelay
dw BattleCommand_MoveAnim
dw BattleCommand_TriStatusChance
dw BattleCommand_SuperEffectiveLoopText
dw BattleCommand_StartLoop
dw BattleCommand_Curl
assert_table_length NUM_EFFECT_COMMANDS

View file

@ -0,0 +1,25 @@
; Held item effects that are consumed on use
ConsumableEffects:
db HELD_BERRY
db HELD_2
db HELD_5
db HELD_HEAL_POISON
db HELD_HEAL_FREEZE
db HELD_HEAL_BURN
db HELD_HEAL_SLEEP
db HELD_HEAL_PARALYZE
db HELD_HEAL_STATUS
db HELD_30
db HELD_ATTACK_UP
db HELD_DEFENSE_UP
db HELD_SPEED_UP
db HELD_SP_ATTACK_UP
db HELD_SP_DEFENSE_UP
db HELD_ACCURACY_UP
db HELD_EVASION_UP
db HELD_38
db HELD_71
db HELD_ESCAPE
db HELD_CRITICAL_UP
db -1

View file

@ -0,0 +1,10 @@
; See also data/items/heal_status.asm
HeldStatusHealingEffects:
db HELD_HEAL_POISON, 1 << PSN
db HELD_HEAL_FREEZE, 1 << FRZ
db HELD_HEAL_BURN, 1 << BRN
db HELD_HEAL_SLEEP, SLP_MASK
db HELD_HEAL_PARALYZE, 1 << PAR
db HELD_HEAL_STATUS, ALL_STATUS
db -1 ; end

View file

@ -0,0 +1,9 @@
HeldStatUpItems:
dbw HELD_ATTACK_UP, BattleCommand_AttackUp
dbw HELD_DEFENSE_UP, BattleCommand_DefenseUp
dbw HELD_SPEED_UP, BattleCommand_SpeedUp
dbw HELD_SP_ATTACK_UP, BattleCommand_SpecialAttackUp
dbw HELD_SP_DEFENSE_UP, BattleCommand_SpecialDefenseUp
dbw HELD_ACCURACY_UP, BattleCommand_AccuracyUp
dbw HELD_EVASION_UP, BattleCommand_EvasionUp
db -1 ; end

View file

@ -0,0 +1,20 @@
; Multiplier ratios for all stats from modifier -6 to +6
; (except accuracy, see data/battle/accuracy_multipliers.asm).
; This table is identical to data/battle/stat_multipliers_2.asm.
; This one is used by CalcBattleStats.
StatLevelMultipliers:
db 25, 100 ; -6 = 25%
db 28, 100 ; -5 = 28%
db 33, 100 ; -4 = 33%
db 40, 100 ; -3 = 40%
db 50, 100 ; -2 = 50%
db 66, 100 ; -1 = 66%
db 1, 1 ; 0 = 100%
db 15, 10 ; +1 = 150%
db 2, 1 ; +2 = 200%
db 25, 10 ; +3 = 250%
db 3, 1 ; +4 = 300%
db 35, 10 ; +5 = 350%
db 4, 1 ; +6 = 400%

View file

@ -0,0 +1,20 @@
; Multiplier ratios for all stats from modifier -6 to +6
; (except accuracy, see data/battle/accuracy_multipliers.asm).
; This table is identical to data/battle/stat_multipliers.asm.
; This one is used by ApplyStatLevelMultiplier.
StatLevelMultipliers_Applied:
db 25, 100 ; -6 = 25%
db 28, 100 ; -5 = 28%
db 33, 100 ; -4 = 33%
db 40, 100 ; -3 = 40%
db 50, 100 ; -2 = 50%
db 66, 100 ; -1 = 66%
db 1, 1 ; 0 = 100%
db 15, 10 ; +1 = 150%
db 2, 1 ; +2 = 200%
db 25, 10 ; +3 = 250%
db 3, 1 ; +4 = 300%
db 35, 10 ; +5 = 350%
db 4, 1 ; +6 = 400%

View file

@ -0,0 +1,12 @@
StatNames:
; entries correspond to stat ids
list_start StatNames
li "ATTACK"
li "DEFENSE"
li "SPEED"
li "SPCL.ATK"
li "SPCL.DEF"
li "ACCURACY"
li "EVASION"
li "ABILITY" ; used for BattleCommand_Curse
assert_list_length NUM_LEVEL_STATS

View file

@ -0,0 +1,10 @@
WeatherTypeModifiers:
db WEATHER_RAIN, WATER, MORE_EFFECTIVE
db WEATHER_RAIN, FIRE, NOT_VERY_EFFECTIVE
db WEATHER_SUN, FIRE, MORE_EFFECTIVE
db WEATHER_SUN, WATER, NOT_VERY_EFFECTIVE
db -1 ; end
WeatherMoveModifiers:
db WEATHER_RAIN, EFFECT_SOLARBEAM, NOT_VERY_EFFECTIVE
db -1 ; end

View file

@ -0,0 +1,27 @@
WobbleProbabilities:
; catch rate, chance of wobbling / 255
; nLeft/255 = (nRight/255) ** 4
db 1, 63
db 2, 75
db 3, 84
db 4, 90
db 5, 95
db 7, 103
db 10, 113
db 15, 126
db 20, 134
db 30, 149
db 40, 160
db 50, 169
db 60, 177
db 80, 191
db 100, 201
db 120, 211
db 140, 220
db 160, 227
db 180, 234
db 200, 240
db 220, 246
db 240, 251
db 254, 253
db 255, 255

View file

@ -0,0 +1,15 @@
; colors of balls thrown in battle
BallColors:
db MASTER_BALL, PAL_BATTLE_OB_GREEN
db ULTRA_BALL, PAL_BATTLE_OB_YELLOW
db GREAT_BALL, PAL_BATTLE_OB_BLUE
db POKE_BALL, PAL_BATTLE_OB_RED
db HEAVY_BALL, PAL_BATTLE_OB_GRAY
db LEVEL_BALL, PAL_BATTLE_OB_BROWN
db LURE_BALL, PAL_BATTLE_OB_BLUE
db FAST_BALL, PAL_BATTLE_OB_BLUE
db FRIEND_BALL, PAL_BATTLE_OB_YELLOW
db MOON_BALL, PAL_BATTLE_OB_GRAY
db LOVE_BALL, PAL_BATTLE_OB_RED
db -1, PAL_BATTLE_OB_GRAY

File diff suppressed because it is too large Load diff

1092
data/battle_anims/oam.asm Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,52 @@
MACRO anim_obj_gfx
; # tiles, gfx pointer
db \1
dba \2
ENDM
AnimObjGFX:
; entries correspond to ANIM_GFX_* constants
table_width 4, AnimObjGFX
anim_obj_gfx 0, AnimObj00GFX
anim_obj_gfx 21, AnimObjHitGFX
anim_obj_gfx 6, AnimObjCutGFX
anim_obj_gfx 6, AnimObjFireGFX
anim_obj_gfx 20, AnimObjWaterGFX
anim_obj_gfx 26, AnimObjLightningGFX
anim_obj_gfx 18, AnimObjPlantGFX
anim_obj_gfx 12, AnimObjSmokeGFX
anim_obj_gfx 9, AnimObjExplosionGFX
anim_obj_gfx 17, AnimObjRocksGFX
anim_obj_gfx 6, AnimObjIceGFX
anim_obj_gfx 10, AnimObjPokeBallGFX
anim_obj_gfx 9, AnimObjPoisonGFX
anim_obj_gfx 13, AnimObjBubbleGFX
anim_obj_gfx 16, AnimObjNoiseGFX
anim_obj_gfx 2, AnimObjPowderGFX
anim_obj_gfx 11, AnimObjBeamGFX
anim_obj_gfx 9, AnimObjSpeedGFX
anim_obj_gfx 9, AnimObjChargeGFX
anim_obj_gfx 19, AnimObjWindGFX
anim_obj_gfx 10, AnimObjWhipGFX
anim_obj_gfx 12, AnimObjEggGFX
anim_obj_gfx 18, AnimObjRopeGFX
anim_obj_gfx 13, AnimObjPsychicGFX
anim_obj_gfx 10, AnimObjReflectGFX
anim_obj_gfx 27, AnimObjStatusGFX
anim_obj_gfx 12, AnimObjSandGFX
anim_obj_gfx 14, AnimObjWebGFX
anim_obj_gfx 16, AnimObjHazeGFX
anim_obj_gfx 7, AnimObjHornGFX
anim_obj_gfx 8, AnimObjFlowerGFX
anim_obj_gfx 40, AnimObjMiscGFX
anim_obj_gfx 36, AnimObjSkyAttackGFX
anim_obj_gfx 16, AnimObjGlobeGFX
anim_obj_gfx 48, AnimObjShapesGFX
anim_obj_gfx 18, AnimObjObjectsGFX
anim_obj_gfx 38, AnimObjShineGFX
anim_obj_gfx 35, AnimObjAngelsGFX
anim_obj_gfx 18, AnimObjWaveGFX
anim_obj_gfx 24, AnimObjAeroblastGFX
anim_obj_gfx 1, NULL
anim_obj_gfx 1, NULL
assert_table_length NUM_ANIM_GFX + 1

View file

@ -0,0 +1,398 @@
DEF ABSOLUTE_X EQU $00
DEF RELATIVE_X EQU $01
MACRO battleanimobj
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
BattleAnimObjects:
; entries correspond to ANIM_OBJ_* constants
table_width BATTLEANIMOBJ_LENGTH, BattleAnimObjects
; ANIM_OBJ_HIT_BIG_YFIX
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_HIT_YFIX
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_HIT_SMALL_YFIX
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_HIT_BIG
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_HIT
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_HIT_SMALL
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_PUNCH
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_KICK
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_KICK, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_PALM
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_FANG
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_PUNCH_SHAKE
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_SHAKE, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_EMBER
battleanimobj RELATIVE_X, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_EMBER, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
; ANIM_OBJ_DRAGON_RAGE
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_WAVE_TO_TARGET, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
; ANIM_OBJ_FLAMETHROWER
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
; ANIM_OBJ_FIRE_SPIN
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
; ANIM_OBJ_FIRE_BLAST
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_FIRE_BLAST, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
; ANIM_OBJ_BURNED
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
; ANIM_OBJ_BLIZZARD
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
; ANIM_OBJ_ICE
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
; ANIM_OBJ_ICE_BEAM
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
; ANIM_OBJ_RAZOR_LEAF
battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, ANIM_GFX_PLANT
; ANIM_OBJ_POKE_BALL
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_POKEBALL, PAL_BATTLE_OB_RED, ANIM_GFX_POKE_BALL
; ANIM_OBJ_POKE_BALL_BLOCKED
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_POKEBALL_BLOCKED, PAL_BATTLE_OB_RED, ANIM_GFX_POKE_BALL
; ANIM_OBJ_EXPLOSION1
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_RED, ANIM_GFX_EXPLOSION
; ANIM_OBJ_EXPLOSION2
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_RED, ANIM_GFX_EXPLOSION
; ANIM_OBJ_ACID
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_THROW_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_POISON
; ANIM_OBJ_SLUDGE
battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_SLUDGE, PAL_BATTLE_OB_GRAY, ANIM_GFX_POISON
; ANIM_OBJ_BETA_BALL_POOF
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SMOKE
; ANIM_OBJ_BALL_POOF
battleanimobj RELATIVE_X, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SMOKE
; ANIM_OBJ_BIG_ROCK
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_DROP, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
; ANIM_OBJ_SMALL_ROCK
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_DROP, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
; ANIM_OBJ_STRENGTH
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_STRENGTH_SEISMIC_TOSS, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
; ANIM_OBJ_SEISMIC_TOSS
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_STRENGTH_SEISMIC_TOSS, PAL_BATTLE_OB_BLUE, ANIM_GFX_GLOBE
; ANIM_OBJ_BUBBLE
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_BUBBLE, PAL_BATTLE_OB_BLUE, ANIM_GFX_BUBBLE
; ANIM_OBJ_SURF
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_SURF, PAL_BATTLE_OB_BLUE, ANIM_GFX_BUBBLE
; ANIM_OBJ_SING
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_SING, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
; ANIM_OBJ_WATER_GUN
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_WATER_GUN, PAL_BATTLE_OB_BLUE, ANIM_GFX_WATER
; ANIM_OBJ_HYDRO_PUMP
battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_WATER
; ANIM_OBJ_POWDER
battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_POWDER, PAL_BATTLE_OB_GREEN, ANIM_GFX_POWDER
; ANIM_OBJ_BEAM
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
; ANIM_OBJ_BEAM_TIP
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_SHAKE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
; ANIM_OBJ_ICE_BUILDUP
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
; ANIM_OBJ_FROZEN
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ICE
; ANIM_OBJ_MASTER_BALL_SPARKLE
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_RECOVER, PAL_BATTLE_OB_BROWN, ANIM_GFX_SPEED
; ANIM_OBJ_RECOVER
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_RECOVER, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BUBBLE
; ANIM_OBJ_THUNDER1
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
; ANIM_OBJ_THUNDER2
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
; ANIM_OBJ_THUNDER3
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
; ANIM_OBJ_THUNDER_WAVE
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_THUNDER_WAVE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
; ANIM_OBJ_SPARKS_CIRCLE_BIG
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
; ANIM_OBJ_THUNDERBOLT_BALL
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
; ANIM_OBJ_SPARKS_CIRCLE
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
; ANIM_OBJ_THUNDERSHOCK_BALL
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_MOVE_IN_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
; ANIM_OBJ_CLAMP
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_CLAMP_ENCORE, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
; ANIM_OBJ_BITE
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_BITE, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
; ANIM_OBJ_CUT_DOWN_LEFT
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
; ANIM_OBJ_CUT_DOWN_RIGHT
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
; ANIM_OBJ_CUT_UP_RIGHT
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
; ANIM_OBJ_CUT_LONG_DOWN_LEFT
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
; ANIM_OBJ_CUT_LONG_DOWN_RIGHT
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
; ANIM_OBJ_SOLAR_BEAM_CHARGE
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_SOLAR_BEAM, PAL_BATTLE_OB_GREEN, ANIM_GFX_CHARGE
; ANIM_OBJ_ABSORB_CENTER
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GREEN, ANIM_GFX_CHARGE
; ANIM_OBJ_GUST
battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_GUST, PAL_BATTLE_OB_GRAY, ANIM_GFX_WIND
; ANIM_OBJ_VINE_WHIP1
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
; ANIM_OBJ_VINE_WHIP2
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
; ANIM_OBJ_RAZOR_WIND1
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_RAZOR_WIND, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
; ANIM_OBJ_RAZOR_WIND2
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_RAZOR_WIND, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
; ANIM_OBJ_SONICBOOM_JP
battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
; ANIM_OBJ_WARP
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
; ANIM_OBJ_ABSORB
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_ABSORB, PAL_BATTLE_OB_GREEN, ANIM_GFX_CHARGE
; ANIM_OBJ_EGG
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_EGG, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
; ANIM_OBJ_FOCUS
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_MOVE_UP, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
; ANIM_OBJ_BIND1
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_WRAP, PAL_BATTLE_OB_GREEN, ANIM_GFX_ROPE
; ANIM_OBJ_BIND2
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_WRAP, PAL_BATTLE_OB_GREEN, ANIM_GFX_ROPE
; ANIM_OBJ_LEECH_SEED
battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, ANIM_GFX_PLANT
; ANIM_OBJ_SOUND
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_SOUND, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
; ANIM_OBJ_WAVE
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_PSYCHIC
; ANIM_OBJ_CONFUSE_RAY
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_CONFUSE_RAY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
; ANIM_OBJ_LEER
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
; ANIM_OBJ_LEER_TIP
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_SHAKE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_BEAM
; ANIM_OBJ_SCREEN
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_REFLECT
; ANIM_OBJ_HARDEN
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_REFLECT
; ANIM_OBJ_CHICK
battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_DIZZY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_STATUS
; ANIM_OBJ_AMNESIA
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_AMNESIA, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
; ANIM_OBJ_ASLEEP
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_FLOAT_UP, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
; ANIM_OBJ_SKULL
battleanimobj RELATIVE_X, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_POISON
; ANIM_OBJ_DIG_SAND
battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_DIG, PAL_BATTLE_OB_BROWN, ANIM_GFX_SAND
; ANIM_OBJ_DIG_PILE
battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BROWN, ANIM_GFX_SAND
; ANIM_OBJ_SAND
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, ANIM_GFX_SAND
; ANIM_OBJ_PARALYZED
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_PARALYZED, PAL_BATTLE_OB_YELLOW, ANIM_GFX_STATUS
; ANIM_OBJ_STRING_SHOT
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_STRING, PAL_BATTLE_OB_GRAY, ANIM_GFX_WEB
; ANIM_OBJ_HAZE
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
; ANIM_OBJ_MIST
battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
; ANIM_OBJ_SMOG
battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
; ANIM_OBJ_POISON_GAS
battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
; ANIM_OBJ_HORN
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_HORN, PAL_BATTLE_OB_GRAY, ANIM_GFX_HORN
; ANIM_OBJ_NEEDLE
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_NEEDLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_HORN
; ANIM_OBJ_PETAL_DANCE
battleanimobj RELATIVE_X, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_PETAL_DANCE, PAL_BATTLE_OB_RED, ANIM_GFX_FLOWER
; ANIM_OBJ_SLUDGE_BOMB
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_THROW_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
; ANIM_OBJ_PAY_DAY
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_THIEF_PAYDAY, PAL_BATTLE_OB_BROWN, ANIM_GFX_STATUS
; ANIM_OBJ_SONICBOOM_JP_UNUSED
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
; ANIM_OBJ_MIMIC
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_SPEED
; ANIM_OBJ_ATTRACT
battleanimobj RELATIVE_X, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_RED, ANIM_GFX_OBJECTS
; ANIM_OBJ_BONEMERANG
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_BONEMERANG, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_BONE_CLUB
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_BONE_RUSH
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_SWIFT
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_YELLOW, ANIM_GFX_OBJECTS
; ANIM_OBJ_KINESIS
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_FLASH
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_SHINY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
; ANIM_OBJ_SHINY
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_SHINY, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
; ANIM_OBJ_SKY_ATTACK
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_SKY_ATTACK, PAL_BATTLE_OB_GRAY, ANIM_GFX_SKY_ATTACK
; ANIM_OBJ_LICK
battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WATER
; ANIM_OBJ_WITHDRAW
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_REFLECT
; ANIM_OBJ_DRAIN
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_BLUE, ANIM_GFX_BUBBLE
; ANIM_OBJ_GROWTH
battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_GROWTH_SWORDS_DANCE, PAL_BATTLE_OB_YELLOW, ANIM_GFX_CHARGE
; ANIM_OBJ_CONVERSION2
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_ABSORB_CIRCLE, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
; ANIM_OBJ_SMOKE
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SMOKE_FLAME_WHEEL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
; ANIM_OBJ_SMOKESCREEN
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
; ANIM_OBJ_SWORDS_DANCE
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_GROWTH_SWORDS_DANCE, PAL_BATTLE_OB_GRAY, ANIM_GFX_WHIP
; ANIM_OBJ_SPEED_LINE
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_SPEED_LINE, PAL_BATTLE_OB_GRAY, ANIM_GFX_SPEED
; ANIM_OBJ_SHARPEN
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHAPES
; ANIM_OBJ_DEFENSE_CURL
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHAPES
; ANIM_OBJ_METRONOME_HAND
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_METRONOME_HAND, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_METRONOME_SPARKLE
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_METRONOME_SPARKLE_SKETCH, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
; ANIM_OBJ_DISABLE
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
; ANIM_OBJ_AGILITY
battleanimobj RELATIVE_X | X_FLIP | PRIORITY, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_AGILITY, PAL_BATTLE_OB_BLUE, ANIM_GFX_WIND
; ANIM_OBJ_HEART
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_FLOAT_UP, PAL_BATTLE_OB_RED, ANIM_GFX_OBJECTS
; ANIM_OBJ_FLAME_WHEEL
battleanimobj RELATIVE_X, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_SMOKE_FLAME_WHEEL, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
; ANIM_OBJ_SACRED_FIRE
battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_SACRED_FIRE, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
; ANIM_OBJ_COTTON_SPORE
battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_SPIRAL_DESCENT, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_MILK_DRINK
battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_ANGER
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_HEAL_BELL
battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_MISC
; ANIM_OBJ_HEAL_BELL_NOTE
battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_HEAL_BELL_NOTES, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
; ANIM_OBJ_BATON_PASS
battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_BATON_PASS, PAL_BATTLE_OB_RED, ANIM_GFX_MISC
; ANIM_OBJ_LOCK_ON
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_LOCK_ON_MIND_READER, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_MIND_READER
battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_LOCK_ON_MIND_READER, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_SAFEGUARD
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_SAFEGUARD_PROTECT, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_PROTECT
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_SAFEGUARD_PROTECT, PAL_BATTLE_OB_YELLOW, ANIM_GFX_OBJECTS
; ANIM_OBJ_THIEF
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_THIEF_PAYDAY, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
; ANIM_OBJ_OCTAZOOKA
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_EGG
; ANIM_OBJ_PRESENT
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_RED, ANIM_GFX_STATUS
; ANIM_OBJ_SPIKES
battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_SPIKES, PAL_BATTLE_OB_GRAY, ANIM_GFX_MISC
; ANIM_OBJ_POWDER_SNOW
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_GRAY, ANIM_GFX_ICE
; ANIM_OBJ_DRAGONBREATH
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_RED, ANIM_GFX_FIRE
; ANIM_OBJ_CONVERSION
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_CONVERSION, PAL_BATTLE_OB_GRAY, ANIM_GFX_EXPLOSION
; ANIM_OBJ_SPIDER_WEB
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_WEB
; ANIM_OBJ_CAKE_UNUSED
battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_PRESENT_SMOKESCREEN, PAL_BATTLE_OB_RED, ANIM_GFX_OBJECTS
; ANIM_OBJ_NIGHTMARE
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_DIZZY, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
; ANIM_OBJ_IN_NIGHTMARE
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_FLOAT_UP, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
; ANIM_OBJ_LOVELY_KISS
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
; ANIM_OBJ_SWEET_KISS
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_ANGELS
; ANIM_OBJ_SKETCH
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_METRONOME_SPARKLE_SKETCH, PAL_BATTLE_OB_GREEN, ANIM_GFX_OBJECTS
; ANIM_OBJ_ENCORE_HAND
battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_CLAMP_ENCORE, PAL_BATTLE_OB_GRAY, ANIM_GFX_OBJECTS
; ANIM_OBJ_ENCORE_STAR
battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_ENCORE_BELLY_DRUM, PAL_BATTLE_OB_YELLOW, ANIM_GFX_OBJECTS
; ANIM_OBJ_DESTINY_BOND
battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
; ANIM_OBJ_MORNING_SUN
battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_SWAGGER_MORNING_SUN, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SHINE
; ANIM_OBJ_GLIMMER
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHINE
; ANIM_OBJ_MOONLIGHT
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SHINE
; ANIM_OBJ_HIDDEN_POWER
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_HIDDEN_POWER, PAL_BATTLE_OB_RED, ANIM_GFX_CHARGE
; ANIM_OBJ_CROSS_CHOP1
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
; ANIM_OBJ_CROSS_CHOP2
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_CUT
; ANIM_OBJ_SANDSTORM
battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_RAIN_SANDSTORM, PAL_BATTLE_OB_BROWN, ANIM_GFX_POWDER
; ANIM_OBJ_ZAP_CANNON
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_YELLOW, ANIM_GFX_LIGHTNING
; ANIM_OBJ_SPITE
battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_POWDER, PAL_BATTLE_OB_GRAY, ANIM_GFX_ANGELS
; ANIM_OBJ_CURSE
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_CURSE, PAL_BATTLE_OB_GRAY, ANIM_GFX_OBJECTS
; ANIM_OBJ_PERISH_SONG
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_PERISH_SONG, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
; ANIM_OBJ_FORESIGHT
battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_SHINE
; ANIM_OBJ_RAPID_SPIN
battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_RAPID_SPIN, PAL_BATTLE_OB_GRAY, ANIM_GFX_WIND
; ANIM_OBJ_SWAGGER
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_SWAGGER_MORNING_SUN, PAL_BATTLE_OB_GRAY, ANIM_GFX_WIND
; ANIM_OBJ_BELLY_DRUM_HAND
battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_BELLY_DRUM_NOTE
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_ENCORE_BELLY_DRUM, PAL_BATTLE_OB_GRAY, ANIM_GFX_NOISE
; ANIM_OBJ_MEAN_LOOK
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_BLUE, ANIM_GFX_PSYCHIC
; ANIM_OBJ_BETA_PURSUIT
battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_BETA_PURSUIT, PAL_BATTLE_OB_GRAY, ANIM_GFX_HIT
; ANIM_OBJ_SHOOTING_SPARKLE
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_USER_TO_TARGET, PAL_BATTLE_OB_YELLOW, ANIM_GFX_SPEED
; ANIM_OBJ_RAIN
battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_RAIN_SANDSTORM, PAL_BATTLE_OB_GRAY, ANIM_GFX_WATER
; ANIM_OBJ_B0
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_ANIM_OBJ_B0, PAL_BATTLE_OB_RED, ANIM_GFX_HAZE
; ANIM_OBJ_PSYCH_UP
battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_PSYCH_UP, PAL_BATTLE_OB_GRAY, ANIM_GFX_STATUS
; ANIM_OBJ_ANCIENTPOWER
battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_ANCIENT_POWER, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
; ANIM_OBJ_AEROBLAST
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_YELLOW, ANIM_GFX_AEROBLAST
; ANIM_OBJ_SHADOW_BALL
battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_WAVE_TO_TARGET, PAL_BATTLE_OB_BLUE, ANIM_GFX_EGG
; ANIM_OBJ_ROCK_SMASH
battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_ROCK_SMASH, PAL_BATTLE_OB_BROWN, ANIM_GFX_ROCKS
; ANIM_OBJ_FLOWER
battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_USER_TO_TARGET_SPIN, PAL_BATTLE_OB_RED, ANIM_GFX_FLOWER
; ANIM_OBJ_COTTON
battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_COTTON, PAL_BATTLE_OB_RED, ANIM_GFX_MISC
; ANIM_OBJ_ENEMYFEET_1ROW
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_ENEMY, ANIM_GFX_PLAYERHEAD
; ANIM_OBJ_PLAYERHEAD_1ROW
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_PLAYER, ANIM_GFX_ENEMYFEET
; ANIM_OBJ_ENEMYFEET_2ROW
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_ENEMY, ANIM_GFX_PLAYERHEAD
; ANIM_OBJ_PLAYERHEAD_2ROW
battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_NULL, PAL_BATTLE_OB_PLAYER, ANIM_GFX_ENEMYFEET
assert_table_length NUM_ANIM_OBJS

View file

@ -0,0 +1,79 @@
BattleTowerTrainers:
; The trainer class is not used in Crystal 1.0 due to a bug.
; Instead, the sixth character in the trainer's name is used.
; See BattleTowerText in engine/events/battle_tower/trainer_text.asm.
table_width (NAME_LENGTH - 1) + 1, BattleTowerTrainers
; name, class
db "HANSON@@@@", FISHER
db "SAWYER@@@@", POKEMANIAC
db "MASUDA@@@@", GUITARIST
db "NICKEL@@@@", SCIENTIST
db "OLSON@@@@@", POKEFANM
db "ZABOROWSKI", LASS
db "WRIGHT@@@@", YOUNGSTER
db "ALEXANDER@", HIKER
db "KAWAKAMI@@", TEACHER
db "BICKETT@@@", POKEFANM
db "SAITO@@@@@", KIMONO_GIRL
db "CRAWFORD@@", BOARDER
db "DIAZ@@@@@@", PICNICKER
db "ERICKSON@@", BIKER
db "FAIRFIELD@", JUGGLER
db "HUNTER@@@@", POKEFANF
db "HILL@@@@@@", FIREBREATHER
db "JAVIER@@@@", SWIMMERF
db "KAUFMAN@@@", SWIMMERM
db "LANCASTER@", SKIER
db "McMAHILL@@", CAMPER
assert_table_length BATTLETOWER_NUM_UNIQUE_MON
; The following can only be sampled in Crystal 1.1.
db "OBRIEN@@@@", GENTLEMAN
db "FROST@@@@@", BEAUTY
db "MORSE@@@@@", SUPER_NERD
db "YUFUNE@@@@", BLACKBELT_T
db "RAJAN@@@@@", COOLTRAINERF
db "RODRIGUEZ@", OFFICER
db "SANTIAGO@@", PSYCHIC_T
db "STOCK@@@@@", POKEFANM
db "THURMAN@@@", SCIENTIST
db "VALENTINO@", BEAUTY
db "WAGNER@@@@", CAMPER
db "YATES@@@@@", BIRD_KEEPER
db "ANDREWS@@@", PICNICKER
db "BAHN@@@@@@", POKEMANIAC
db "MORI@@@@@@", SCIENTIST
db "BUCKMAN@@@", SAGE
db "COBB@@@@@@", SCHOOLBOY
db "HUGHES@@@@", FISHER
db "ARITA@@@@@", KIMONO_GIRL
db "EASTON@@@@", PSYCHIC_T
db "FREEMAN@@@", CAMPER
db "GIESE@@@@@", LASS
db "HATCHER@@@", GENTLEMAN
db "JACKSON@@@", POKEFANF
db "KAHN@@@@@@", POKEMANIAC
db "LEONG@@@@@", YOUNGSTER
db "MARINO@@@@", TEACHER
db "NEWMAN@@@@", SAILOR
db "NGUYEN@@@@", BLACKBELT_T
db "OGDEN@@@@@", SUPER_NERD
db "PARK@@@@@@", COOLTRAINERF
db "RAINE@@@@@", SWIMMERM
db "SELLS@@@@@", BIRD_KEEPER
db "ROCKWELL@@", BOARDER
db "THORNTON@@", LASS
db "TURNER@@@@", OFFICER
db "VAN DYKE@@", SKIER
db "WALKER@@@@", SCHOOLBOY
db "MEYER@@@@@", SWIMMERF
db "JOHNSON@@@", YOUNGSTER
db "ADAMS@@@@@", GUITARIST
db "SMITH@@@@@", BUG_CATCHER
db "TAJIRI@@@@", BUG_CATCHER
db "BAKER@@@@@", POKEMANIAC
db "COLLINS@@@", SCIENTIST
db "SMART@@@@@", SUPER_NERD
db "DYKSTRA@@@", SWIMMERF
db "EATON@@@@@", BIKER
db "WONG@@@@@@", FIREBREATHER
assert_table_length BATTLETOWER_NUM_UNIQUE_TRAINERS

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,623 @@
_BTGreetingM1Text:
text "Hello, glad to"
line "meet you!"
para "I do hope we have"
line "a good battle."
done
_BTLossM1Text:
text "Thank you! A most"
line "enjoyable battle!"
done
_BTWinM1Text:
text "Thank you. You are"
line "formidable."
done
_BTGreetingM2Text:
text "Work, work, work…"
line "I'm always busy!"
done
_BTLossM2Text:
text "But, I work hard"
line "in battle too!"
done
_BTWinM2Text:
text "I'm too busy to be"
line "battling!"
done
_BTGreetingM3Text:
text "Brace yourself for"
line "my all-out attack!"
done
_BTLossM3Text:
text "What a cakewalk!"
line "You're too easy!"
done
_BTWinM3Text:
text "I won't lose next"
line "time, all right?"
done
_BTGreetingM4Text:
text "Heh, your #MON"
line "look pretty cool."
done
_BTLossM4Text:
text "Hey, hey, no way!"
line "You won't win!"
done
_BTWinM4Text:
text "You serious?"
line "This is brutal!"
done
_BTGreetingM5Text:
text "#MON every day!"
line "I love battling!"
done
_BTLossM5Text:
text "I'm on top of my"
line "game, but not you!"
done
_BTWinM5Text:
text "I don't care that"
line "I lost, really!"
done
_BTGreetingM6Text:
text "Hi, there! Let's"
line "keep this clean!"
done
_BTLossM6Text:
text "Whoops, sorry for"
line "that wipeout!"
done
_BTWinM6Text:
text "Whoops! Come on,"
line "let me win one!"
done
_BTGreetingM7Text:
text "Do you want to see"
line "my battle level?"
done
_BTLossM7Text:
text "Hehehe, I know"
line "your level now!"
done
_BTWinM7Text:
text "Ouch… I'm just too"
line "weak…"
done
_BTGreetingM8Text:
text "Hey, let's battle."
line "I'm your opponent."
done
_BTLossM8Text:
text "Wow, you're not"
line "serious about it!"
done
_BTWinM8Text:
text "…Urgh… Nothing"
line "positive here…"
done
_BTGreetingM9Text:
text "I'm your"
line "opponent."
para "Get ready to be"
line "hammered."
done
_BTLossM9Text:
text "Hahah! That was a"
line "pushover!"
done
_BTWinM9Text:
text "No way! There has"
line "to be a mistake!"
done
_BTGreetingM10Text:
text "Hah!"
line "Let's get rolling!"
done
_BTLossM10Text:
text "Wahahaha! Didn't"
line "break a sweat!"
done
_BTWinM10Text:
text "Tough! I'm no"
line "match for you!"
done
_BTGreetingM11Text:
text "<……><……><……>"
line "<……><……>Battle?"
done
_BTLossM11Text:
text "<……><……><……>"
line "<……><……>I won?"
done
_BTWinM11Text:
text "<……><……><……>"
line "<……><……>I lost?"
done
_BTGreetingM12Text:
text "You want to be a"
line "leader?"
para "Let me battle you,"
line "then!"
done
_BTLossM12Text:
text "You need another"
line "ten years of"
para "training to get"
line "better, I'd say."
done
_BTWinM12Text:
text "You're incredibly"
line "talented."
para "No one can touch"
line "you now!"
done
_BTGreetingM13Text:
text "Today, I'm going"
line "to whomp you."
done
_BTLossM13Text:
text "I knew I'd win."
line "I'm so great!"
done
_BTWinM13Text:
text "Uh? My plans are"
line "out of whack…"
done
_BTGreetingM14Text:
text "I bet you can't"
line "beat me!"
done
_BTLossM14Text:
text "Those #MON"
line "aren't enough!"
done
_BTWinM14Text:
text "I want your"
line "#MON. Please?"
done
_BTGreetingM15Text:
text "I'll show you a"
line "real battle!"
done
_BTLossM15Text:
text "This battle…"
line "I'm bored!"
done
_BTWinM15Text:
text "…I won't turn tail"
line "in battle!"
done
_BTGreetingM16Text:
text "Let's go!"
line "No holds barred!"
done
_BTLossM16Text:
text "Sorry! I wanted"
line "the win more!"
done
_BTWinM16Text:
text "Wahah! Congrats!"
line "I can't do better!"
done
_BTGreetingM17Text:
text "My #MON skills"
line "are phenomenal!"
done
_BTLossM17Text:
text "You've got a long"
line "way to go."
para "Well, keep trying!"
line "Best of luck!"
done
_BTWinM17Text:
text "Aww… Don't lose"
line "after beating me."
done
_BTGreetingM18Text:
text "Who are you?"
line "I don't know you…"
done
_BTLossM18Text:
text "I must've imagined"
line "that."
para "There seems to be"
line "no one here…"
done
_BTWinM18Text:
text "Who am I?"
line "I don't know…"
done
_BTGreetingM19Text:
text "Um… Are you that…"
line "um…person?"
done
_BTLossM19Text:
text "It doesn't appear"
line "to be you…"
done
_BTWinM19Text:
text "Then you really"
line "are the legendary…"
done
_BTGreetingM20Text:
text "I heard that"
line "you're hot!"
done
_BTLossM20Text:
text "Not bad. I was"
line "just a bit better."
done
_BTWinM20Text:
text "Eh, you're not"
line "that special."
done
_BTGreetingM21Text:
text "I'm scared about"
line "what might happen."
para "My #MON are way"
line "too strong."
done
_BTLossM21Text:
text "See? My #MON"
line "were too strong."
done
_BTWinM21Text:
text "Graa! My #MON"
line "were total wimps!"
done
_BTGreetingM22Text:
text "Hey, there!"
line "I'll take you on!"
done
_BTLossM22Text:
text "Don't you have a"
line "better strategy?"
done
_BTWinM22Text:
text "You've got decent"
line "style!"
done
_BTGreetingM23Text:
text "I wonder if I can"
line "battle properly…"
done
_BTLossM23Text:
text "Um… Sorry…"
line "I think I won."
done
_BTWinM23Text:
text "I guess I'm not"
line "good enough yet…"
done
_BTGreetingM24Text:
text "Wrrooar!"
line "I won't lose!"
done
_BTLossM24Text:
text "Wrrooar! I knew"
line "I was a genius!"
done
_BTWinM24Text:
text "Arrooh! I hate it"
line "when I lose!"
done
_BTGreetingM25Text:
text "Sorry, but I'm"
line "going to win."
done
_BTLossM25Text:
text "Yeah! My #MON"
line "rule!"
done
_BTWinM25Text:
text "Oh, close! I lost"
line "by just a bit!"
done
_BTGreetingF1Text:
text "OK, I'm not"
line "fooling around!"
done
_BTLossF1Text:
text "Yay! Too easy!"
line "Like, no way!"
done
_BTWinF1Text:
text "No!"
line "Like, no way!"
done
_BTGreetingF2Text:
text "Look! My #MON"
line "are really cute!"
done
_BTLossF2Text:
text "Aren't they really"
line "adorable?"
done
_BTWinF2Text:
text "I'm sorry, it's"
line "all my fault!"
done
_BTGreetingF3Text:
text "Let's get our"
line "battle started!"
done
_BTLossF3Text:
text "Was I too strong"
line "for you?"
done
_BTWinF3Text:
text "Ooh, you're in a"
line "different class."
done
_BTGreetingF4Text:
text "Are we going to"
line "battle? Let's!"
done
_BTLossF4Text:
text "Oh, you're too"
line "weak. Shame."
done
_BTWinF4Text:
text "Wow! Are you quite"
line "satisfied?"
done
_BTGreetingF5Text:
text "Oh, you have some"
line "rare #MON."
done
_BTLossF5Text:
text "May I have one of"
line "your #MON?"
done
_BTWinF5Text:
text "…I want one of"
line "your #MON."
done
_BTGreetingF6Text:
text "Want to hear about"
line "my cute #MON?"
done
_BTLossF6Text:
text "What do you think"
line "about my cuties?"
done
_BTWinF6Text:
text "Oh! My! You're a"
line "dreadful trainer!"
done
_BTGreetingF7Text:
text "Battle? Sure!"
line "Right now!"
done
_BTLossF7Text:
text "Oh, I love it!"
line "Battling is wild!"
done
_BTWinF7Text:
text "Oh, how rude! Wait"
line "till next time!"
done
_BTGreetingF8Text:
text "Please let me win!"
line "Please?"
done
_BTLossF8Text:
text "Wow, thank you!"
line "You're so nice!"
done
_BTWinF8Text:
text "You're mean!"
line "I hate meanies!"
done
_BTGreetingF9Text:
text "Well, can we"
line "begin?"
done
_BTLossF9Text:
text "Well, I beg your"
line "pardon…"
done
_BTWinF9Text:
text "Sob… That's not"
line "fair!"
done
_BTGreetingF10Text:
text "I'm good!"
line "You can't win."
done
_BTLossF10Text:
text "Giving up? You're"
line "pretty weak!"
done
_BTWinF10Text:
text "I won't accept"
line "this… No way!"
done
_BTGreetingF11Text:
text "Are you treating"
line "this seriously?"
done
_BTLossF11Text:
text "Oh, sorry! Looks"
line "like I won!"
done
_BTWinF11Text:
text "Oh, how nasty!"
line "You were serious!"
done
_BTGreetingF12Text:
text "Ahahah! I'll take"
line "it easy on you!"
done
_BTLossF12Text:
text "Oops, sorry! But"
line "I'm happy too!"
done
_BTWinF12Text:
text "Oh, oh, I lost!"
line "Thanks. Bye!"
done
_BTGreetingF13Text:
text "BATTLE TOWER is a"
line "tough place!"
done
_BTLossF13Text:
text "You might have a"
line "hard time."
done
_BTWinF13Text:
text "Ooh, you might"
line "make a run here!"
done
_BTGreetingF14Text:
text "I want to see your"
line "style in action!"
done
_BTLossF14Text:
text "Every battle is a"
line "drama!"
done
_BTWinF14Text:
text "Oh… Want to trade"
line "something?"
done
_BTGreetingF15Text:
text "OK, here goes!"
line "I have momentum!"
done
_BTLossF15Text:
text "See, I rolled"
line "right over you!"
done
_BTWinF15Text:
text "No! This did not"
line "happen!"
done

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,36 @@
Unknown_170470:
db $12
db $24
db $45
db $45
db $42
db $42
db $45
db $42
db $27
db $27
db $45
db $27
db $42
db $24
.end
Unknown_17047e:
db $03, 4
db $05, 8
db $03, 5
db $0e, 6
db $03, 2
db $00, 0
db $39, 7
db $07, 4
db $00, 5
db $04, 7
db $01, 5
db $00, 0
db $0f, 5
db $14, 7
db $05, 5
db $11, 12
db $0c, 6
db $06, 4

View file

@ -0,0 +1,260 @@
TileCollisionTable::
; entries correspond to COLL_* constants
table_width 1, TileCollisionTable
db LAND_TILE ; COLL_FLOOR
db LAND_TILE ; COLL_01
db LAND_TILE ; 02
db LAND_TILE ; COLL_03
db LAND_TILE ; COLL_04
db LAND_TILE ; 05
db LAND_TILE ; 06
db WALL_TILE ; COLL_WALL
db LAND_TILE ; COLL_CUT_08
db LAND_TILE ; 09
db LAND_TILE ; 0a
db LAND_TILE ; 0b
db LAND_TILE ; 0c
db LAND_TILE ; 0d
db LAND_TILE ; 0e
db WALL_TILE ; 0f
db LAND_TILE ; COLL_TALL_GRASS_10
db LAND_TILE ; 11
db WALL_TILE | TALK ; COLL_CUT_TREE
db LAND_TILE ; 13
db LAND_TILE ; COLL_LONG_GRASS
db WALL_TILE | TALK ; COLL_HEADBUTT_TREE
db LAND_TILE ; 16
db LAND_TILE ; 17
db LAND_TILE ; COLL_TALL_GRASS
db LAND_TILE ; 19
db WALL_TILE | TALK ; COLL_CUT_TREE_1A
db LAND_TILE ; 1b
db LAND_TILE ; COLL_LONG_GRASS_1C
db WALL_TILE | TALK ; COLL_HEADBUTT_TREE_1D
db LAND_TILE ; 1e
db LAND_TILE ; 1f
db WATER_TILE ; 20
db WATER_TILE ; COLL_WATER_21
db WATER_TILE | TALK ; 22
db LAND_TILE ; COLL_ICE
db WATER_TILE | TALK ; COLL_WHIRLPOOL
db WATER_TILE ; 25
db WATER_TILE ; 26
db WALL_TILE ; COLL_BUOY
db WATER_TILE ; COLL_CUT_28
db WATER_TILE ; COLL_WATER
db WATER_TILE | TALK ; 2a
db LAND_TILE ; COLL_ICE_2B
db WATER_TILE | TALK ; COLL_WHIRLPOOL_2C
db WATER_TILE ; 2d
db WATER_TILE ; 2e
db WALL_TILE ; 2f
db WATER_TILE ; COLL_WATERFALL_RIGHT
db WATER_TILE ; COLL_WATERFALL_LEFT
db WATER_TILE ; COLL_WATERFALL_UP
db WATER_TILE ; COLL_WATERFALL
db WATER_TILE ; 34
db WATER_TILE ; 35
db WATER_TILE ; 36
db WATER_TILE ; 37
db WATER_TILE ; COLL_CURRENT_RIGHT
db WATER_TILE ; COLL_CURRENT_LEFT
db WATER_TILE ; COLL_CURRENT_UP
db WATER_TILE ; COLL_CURRENT_DOWN
db WATER_TILE ; 3c
db WATER_TILE ; 3d
db WATER_TILE ; 3e
db WATER_TILE ; 3f
db LAND_TILE ; COLL_BRAKE
db LAND_TILE ; COLL_WALK_RIGHT
db LAND_TILE ; COLL_WALK_LEFT
db LAND_TILE ; COLL_WALK_UP
db LAND_TILE ; COLL_WALK_DOWN
db LAND_TILE ; COLL_BRAKE_45
db LAND_TILE ; COLL_BRAKE_46
db LAND_TILE ; COLL_BRAKE_47
db LAND_TILE ; COLL_GRASS_48
db LAND_TILE ; COLL_GRASS_49
db LAND_TILE ; COLL_GRASS_4A
db LAND_TILE ; COLL_GRASS_4B
db LAND_TILE ; COLL_GRASS_4C
db LAND_TILE ; 4d
db LAND_TILE ; 4e
db LAND_TILE ; 4f
db LAND_TILE ; COLL_WALK_RIGHT_ALT
db LAND_TILE ; COLL_WALK_LEFT_ALT
db LAND_TILE ; COLL_WALK_UP_ALT
db LAND_TILE ; COLL_WALK_DOWN_ALT
db LAND_TILE ; COLL_BRAKE_ALT
db LAND_TILE ; COLL_BRAKE_55
db LAND_TILE ; COLL_BRAKE_56
db LAND_TILE ; COLL_BRAKE_57
db LAND_TILE ; 58
db LAND_TILE ; 59
db LAND_TILE ; 5a
db LAND_TILE ; COLL_5B
db LAND_TILE ; 5c
db LAND_TILE ; 5d
db LAND_TILE ; 5e
db LAND_TILE ; 5f
db LAND_TILE ; COLL_PIT
db LAND_TILE ; COLL_VIRTUAL_BOY
db WALL_TILE ; 62
db LAND_TILE ; 63
db LAND_TILE ; COLL_64
db LAND_TILE ; COLL_65
db LAND_TILE ; 66
db LAND_TILE ; 67
db LAND_TILE ; COLL_PIT_68
db LAND_TILE ; 69
db WALL_TILE ; 6a
db LAND_TILE ; 6b
db LAND_TILE ; 6c
db LAND_TILE ; 6d
db LAND_TILE ; 6e
db LAND_TILE ; 6f
db LAND_TILE ; COLL_WARP_CARPET_DOWN
db LAND_TILE ; COLL_DOOR
db LAND_TILE ; COLL_LADDER
db LAND_TILE ; COLL_STAIRCASE_73
db LAND_TILE ; COLL_CAVE_74
db LAND_TILE ; COLL_DOOR_75
db LAND_TILE ; COLL_WARP_CARPET_LEFT
db LAND_TILE ; COLL_WARP_77
db LAND_TILE ; COLL_WARP_CARPET_UP
db LAND_TILE ; COLL_DOOR_79
db LAND_TILE ; COLL_STAIRCASE
db LAND_TILE ; COLL_CAVE
db LAND_TILE ; COLL_WARP_PANEL
db LAND_TILE ; COLL_DOOR_7D
db LAND_TILE ; COLL_WARP_CARPET_RIGHT
db LAND_TILE ; COLL_WARP_7F
db WALL_TILE ; 80
db WALL_TILE ; 81
db WALL_TILE ; 82
db WALL_TILE ; 83
db WALL_TILE ; 84
db LAND_TILE ; 85
db LAND_TILE ; 86
db LAND_TILE ; 87
db WALL_TILE ; 88
db WALL_TILE ; 89
db WALL_TILE ; 8a
db WALL_TILE ; 8b
db WALL_TILE ; 8c
db LAND_TILE ; 8d
db LAND_TILE ; 8e
db LAND_TILE ; 8f
db WALL_TILE ; COLL_COUNTER
db WALL_TILE ; COLL_BOOKSHELF
db WALL_TILE ; 92
db WALL_TILE ; COLL_PC
db WALL_TILE ; COLL_RADIO
db WALL_TILE ; COLL_TOWN_MAP
db WALL_TILE ; COLL_MART_SHELF
db WALL_TILE ; COLL_TV
db WALL_TILE ; COLL_COUNTER_98
db WALL_TILE ; 99
db WALL_TILE ; 9a
db WALL_TILE ; 9b
db WALL_TILE ; COLL_9C
db WALL_TILE ; COLL_WINDOW
db WALL_TILE ; 9e
db WALL_TILE ; COLL_INCENSE_BURNER
db LAND_TILE ; COLL_HOP_RIGHT
db LAND_TILE ; COLL_HOP_LEFT
db LAND_TILE ; COLL_HOP_UP
db LAND_TILE ; COLL_HOP_DOWN
db LAND_TILE ; COLL_HOP_DOWN_RIGHT
db LAND_TILE ; COLL_HOP_DOWN_LEFT
db LAND_TILE ; COLL_HOP_UP_RIGHT
db LAND_TILE ; COLL_HOP_UP_LEFT
db LAND_TILE ; a8
db LAND_TILE ; a9
db LAND_TILE ; aa
db LAND_TILE ; ab
db LAND_TILE ; ac
db LAND_TILE ; ad
db LAND_TILE ; ae
db LAND_TILE ; af
db LAND_TILE ; COLL_RIGHT_WALL
db LAND_TILE ; COLL_LEFT_WALL
db LAND_TILE ; COLL_UP_WALL
db LAND_TILE ; COLL_DOWN_WALL
db LAND_TILE ; COLL_DOWN_RIGHT_WALL
db LAND_TILE ; COLL_DOWN_LEFT_WALL
db LAND_TILE ; COLL_UP_RIGHT_WALL
db LAND_TILE ; COLL_UP_LEFT_WALL
db LAND_TILE ; b8
db LAND_TILE ; b9
db LAND_TILE ; ba
db LAND_TILE ; bb
db LAND_TILE ; bc
db LAND_TILE ; bd
db LAND_TILE ; be
db LAND_TILE ; bf
db WATER_TILE ; COLL_RIGHT_BUOY
db WATER_TILE ; COLL_LEFT_BUOY
db WATER_TILE ; COLL_UP_BUOY
db WATER_TILE ; COLL_DOWN_BUOY
db WATER_TILE ; COLL_DOWN_RIGHT_BUOY
db WATER_TILE ; COLL_DOWN_LEFT_BUOY
db WATER_TILE ; COLL_UP_RIGHT_BUOY
db WATER_TILE ; COLL_UP_LEFT_BUOY
db WATER_TILE ; c8
db WATER_TILE ; c9
db WATER_TILE ; ca
db WATER_TILE ; cb
db WATER_TILE ; cc
db WATER_TILE ; cd
db WATER_TILE ; ce
db WATER_TILE ; cf
db LAND_TILE ; d0
db LAND_TILE ; d1
db LAND_TILE ; d2
db LAND_TILE ; d3
db LAND_TILE ; d4
db LAND_TILE ; d5
db LAND_TILE ; d6
db LAND_TILE ; d7
db LAND_TILE ; d8
db LAND_TILE ; d9
db LAND_TILE ; da
db LAND_TILE ; db
db LAND_TILE ; dc
db LAND_TILE ; dd
db LAND_TILE ; de
db LAND_TILE ; df
db LAND_TILE ; e0
db LAND_TILE ; e1
db LAND_TILE ; e2
db LAND_TILE ; e3
db LAND_TILE ; e4
db LAND_TILE ; e5
db LAND_TILE ; e6
db LAND_TILE ; e7
db LAND_TILE ; e8
db LAND_TILE ; e9
db LAND_TILE ; ea
db LAND_TILE ; eb
db LAND_TILE ; ec
db LAND_TILE ; ed
db LAND_TILE ; ee
db LAND_TILE ; ef
db LAND_TILE ; f0
db LAND_TILE ; f1
db LAND_TILE ; f2
db LAND_TILE ; f3
db LAND_TILE ; f4
db LAND_TILE ; f5
db LAND_TILE ; f6
db LAND_TILE ; f7
db LAND_TILE ; f8
db LAND_TILE ; f9
db LAND_TILE ; fa
db LAND_TILE ; fb
db LAND_TILE ; fc
db LAND_TILE ; fd
db LAND_TILE ; fe
db WALL_TILE ; COLL_FF
assert_table_length $100

View file

@ -0,0 +1,18 @@
; std scripts associated with tile collisions
MACRO stdcoll
db \1
dw (\2StdScript - StdScripts) / 3
ENDM
TileCollisionStdScripts:
; collision type, std script
stdcoll COLL_BOOKSHELF, MagazineBookshelfScript
stdcoll COLL_PC, PCScript
stdcoll COLL_RADIO, Radio1Script
stdcoll COLL_TOWN_MAP, TownMapScript
stdcoll COLL_MART_SHELF, MerchandiseShelfScript
stdcoll COLL_TV, TVScript
stdcoll COLL_WINDOW, WindowScript
stdcoll COLL_INCENSE_BURNER, IncenseBurnerScript
db -1 ; end

View file

@ -0,0 +1,55 @@
; these blocks all use COLL_CUT_TREE in one quadrant
CutTreeBlockPointers:
; tileset, block list pointer
dbw TILESET_JOHTO, .johto
dbw TILESET_JOHTO_MODERN, .johto_modern
dbw TILESET_KANTO, .kanto
dbw TILESET_PARK, .park
dbw TILESET_FOREST, .forest
db -1 ; end
.johto:
; facing block, replacement block, animation
db $03, $02, 1 ; grass
db $5b, $3c, 0 ; tree
db $5f, $3d, 0 ; tree
db $63, $3f, 0 ; tree
db $67, $3e, 0 ; tree
db -1 ; end
.johto_modern:
; facing block, replacement block, animation
db $03, $02, $01 ; grass
db -1 ; end
.kanto:
; facing block, replacement block, animation
db $0b, $0a, 1 ; grass
db $32, $6d, 0 ; tree
db $33, $6c, 0 ; tree
db $34, $6f, 0 ; tree
db $35, $4c, 0 ; tree
db $60, $6e, 0 ; tree
db -1 ; end
.park:
; facing block, replacement block, animation
db $13, $03, 1 ; grass
db $03, $04, 1 ; grass
db -1 ; end
.forest:
; facing block, replacement block, animation
db $0f, $17, 0
db -1 ; end
; these blocks all use COLL_WHIRLPOOL in one quadrant
WhirlpoolBlockPointers:
dbw TILESET_JOHTO, .johto
db -1 ; end
.johto:
; facing block, replacement block, animation
db $07, $36, 0
db -1 ; end

286
data/credits_script.asm Normal file
View file

@ -0,0 +1,286 @@
CreditsScript:
; Clear the banner.
db CREDITS_CLEAR
; Pokemon Crystal Version Staff
db STAFF, 1
db CREDITS_WAIT, 8
; Play the credits music.
db CREDITS_MUSIC
db CREDITS_WAIT2, 10
db CREDITS_WAIT, 1
; Update the banner.
db CREDITS_SCENE, 0 ; Pichu
db DIRECTOR, 1
db SATOSHI_TAJIRI, 2
db CREDITS_WAIT, 12
db CODIRECTOR, 1
db JUNICHI_MASUDA, 2
db CREDITS_WAIT, 12
db PROGRAMMERS, 0
db SOUSUKE_TAMADA, 1
db HISASHI_SOGABE, 2
db KEITA_KAGAYA, 3
db YOSHINORI_MATSUDA, 4
db CREDITS_WAIT, 12
db PROGRAMMERS, 0
db SHIGEKI_MORIMOTO, 1
db TETSUYA_WATANABE, 2
db TAKENORI_OOTA, 3
db CREDITS_WAIT, 12
db GRAPHICS_DIRECTOR, 1
db KEN_SUGIMORI, 2
db CREDITS_WAIT, 12
db MONSTER_DESIGN, 0
db KEN_SUGIMORI, 1
db MOTOFUMI_FUJIWARA, 2
db SHIGEKI_MORIMOTO, 3
db HIRONOBU_YOSHIDA, 4
db SATOSHI_OOTA, 5
db CREDITS_WAIT, 12
db MONSTER_DESIGN, 0
db ATSUKO_NISHIDA, 1
db MUNEO_SAITO, 2
db RENA_YOSHIKAWA, 3
db CREDITS_WAIT, 12
db POKEMON_ANIMATION, 1
db HIRONOBU_YOSHIDA, 2
db JUN_OKUTANI, 3
db CREDITS_WAIT, 12
; Clear the banner.
db CREDITS_CLEAR
db CREDITS_WAIT, 1
; Update the banner.
db CREDITS_SCENE, 1 ; Smoochum
db GRAPHICS_DESIGN, 0
db HIRONOBU_YOSHIDA, 1
db JUN_OKUTANI, 2
db ASUKA_IWASHITA, 3
db TETSUYA_WATANABE, 4
db CREDITS_WAIT, 12
db CREDIT_MUSIC, 0
db JUNICHI_MASUDA, 1
db MORIKAZU_AOKI, 2
db GO_ICHINOSE, 3
db CREDITS_WAIT, 12
db CREDIT_SOUND_EFFECTS, 0
db MORIKAZU_AOKI, 1
db JUNICHI_MASUDA, 2
db TETSUYA_WATANABE, 3
db CREDITS_WAIT, 12
db GAME_DESIGN, 0
db JUNICHI_MASUDA, 1
db SHIGEKI_MORIMOTO, 2
db KOHJI_NISHINO, 3
db CREDITS_WAIT, 12
db GAME_DESIGN, 0
db TETSUJI_OOTA, 1
db HITOMI_SATO, 2
db KENJI_MATSUSHIMA, 3
db CREDITS_WAIT, 12
db GAME_SCENARIO, 0
db JUNICHI_MASUDA, 1
db KOHJI_NISHINO, 2
db TOSHINOBU_MATSUMIYA, 3
db KENJI_MATSUSHIMA, 4
db CREDITS_WAIT, 12
db POKEDEX_TEXT, 1
db TOSHINOBU_MATSUMIYA, 2
db CREDITS_WAIT, 12
db TOOL_PROGRAMMING, 1
db SOUSUKE_TAMADA, 2
db TAKENORI_OOTA, 3
db CREDITS_WAIT, 12
db PARAMETRIC_DESIGN, 1
db KOHJI_NISHINO, 2
db CREDITS_WAIT, 12
; Clear the banner.
db CREDITS_CLEAR
db CREDITS_WAIT, 1
; Update the banner.
db CREDITS_SCENE, 2 ; Ditto
db SCRIPT_DESIGN, 1
db TETSUJI_OOTA, 2
db NOBUHIRO_SEYA, 3
db CREDITS_WAIT, 12
db MAP_DATA_DESIGN, 1
db TETSUJI_OOTA, 2
db KAZUHITO_SEKINE, 3
db CREDITS_WAIT, 12
db MAP_DESIGN, 0
db TETSUJI_OOTA, 1
db KOHJI_NISHINO, 2
db NOBUHIRO_SEYA, 3
db CREDITS_WAIT, 12
db COORDINATION, 1
db HIROYUKI_ZINNAI, 2
db CREDITS_WAIT, 12
db PRODUCERS, 0
db SATORU_IWATA, 1
db SATOSHI_YAMATO, 2
db SHIGERU_MIYAMOTO, 3
db CREDITS_WAIT, 12
db PRODUCERS, 1
db TSUNEKAZU_ISHIHARA, 2
db CREDITS_WAIT, 12
; Clear the banner.
db CREDITS_CLEAR
db CREDITS_WAIT, 1
; Update the banner.
db CREDITS_SCENE, 3 ; Igglybuff
db US_VERSION_STAFF, 2
db CREDITS_WAIT, 9
db US_COORDINATION, 1
db GAIL_TILDEN, 2
db HIRO_NAKAMURA, 3
db CREDITS_WAIT, 12
db US_COORDINATION, 1
db JUNICHI_MASUDA, 2
db SETH_MCMAHILL, 3
db CREDITS_WAIT, 12
db US_COORDINATION, 1
db HIROTO_ALEXANDER, 2
db TERESA_LILLYGREN, 3
db CREDITS_WAIT, 12
db TEXT_TRANSLATION, 1
db NOB_OGASAWARA, 2
db CREDITS_WAIT, 12
db PROGRAMMERS, 1
db TERUKI_MURAKAWA, 2
db KAZUYOSHI_OSAWA, 3
db CREDITS_WAIT, 12
db PAAD_TESTING, 1
db THOMAS_HERTZOG, 2
db ERIK_JOHNSON, 3
db CREDITS_WAIT, 12
db PRODUCT_TESTING, 0
db PLANNING, 1
db CREDITS_WAIT, 12
db PRODUCT_TESTING, 0
db KEITA_NAKAMURA, 1
db HIROTAKA_UEMURA, 2
db HIROAKI_TAMURA, 3
db NORIAKI_SAKAGUCHI, 4
db CREDITS_WAIT, 12
db PRODUCT_TESTING, 0
db NCL_SUPER_MARIO_CLUB, 1
db KENJI_SAIKI, 2
db ATSUSHI_TADA, 3
db MIYUKI_SATO, 4
db CREDITS_WAIT, 12
db SPECIAL_THANKS, 0
db KIMIKO_NAKAMICHI, 1
db AKITO_MORI, 2
db CREDITS_WAIT, 12
db SPECIAL_THANKS, 0
db GAKUZI_NOMOTO, 1
db AI_MASHIMA, 2
db KUNIMI_KAWAMURA, 3
db CREDITS_WAIT, 12
db SPECIAL_THANKS, 0
db MIKIHIRO_ISHIKAWA, 1
db HIDEYUKI_HASHIMOTO, 2
db CREDITS_WAIT, 12
db EXECUTIVE_PRODUCER, 1
db HIROSHI_YAMAUCHI, 2
db CREDITS_WAIT, 12
db COPYRIGHT, 1
db CREDITS_WAIT, 9
; Display "The End" graphic.
db CREDITS_THEEND
db CREDITS_WAIT, 20
db CREDITS_END

223
data/credits_strings.asm Normal file
View file

@ -0,0 +1,223 @@
CreditsStringsPointers:
; entries correspond to constants/credits_constants.asm
table_width 2, CreditsStringsPointers
dw .SatoshiTajiri
dw .JunichiMasuda
dw .TetsuyaWatanabe
dw .ShigekiMorimoto
dw .SousukeTamada
dw .TakenoriOota
dw .KenSugimori
dw .MotofumiFujiwara
dw .AtsukoNishida
dw .MuneoSaito
dw .SatoshiOota
dw .RenaYoshikawa
dw .JunOkutani
dw .HironobuYoshida
dw .AsukaIwashita
dw .GoIchinose
dw .MorikazuAoki
dw .KohjiNishino
dw .KenjiMatsushima
dw .ToshinobuMatsumiya
dw .SatoruIwata
dw .NobuhiroSeya
dw .KazuhitoSekine
dw .TetsujiOota
dw .NclSuperMarioClub
dw .Sarugakucho
dw .AkitoMori
dw .TakahiroHarada
dw .TohruHashimoto
dw .NoboruMatsumoto
dw .TakehiroIzushi
dw .TakashiKawaguchi
dw .TsunekazuIshihara
dw .HiroshiYamauchi
dw .KenjiSaiki
dw .AtsushiTada
dw .NaokoKawakami
dw .HiroyukiZinnai
dw .KunimiKawamura
dw .HisashiSogabe
dw .KeitaKagaya
dw .YoshinoriMatsuda
dw .HitomiSato
dw .ToruOsawa
dw .TakaoOhara
dw .YuichiroIto
dw .TakaoShimizu
dw .Planning
dw .KeitaNakamura
dw .HirotakaUemura
dw .HiroakiTamura
dw .NoriakiSakaguchi
dw .MiyukiSato
dw .GakuziNomoto
dw .AiMashima
dw .MikihiroIshikawa
dw .HideyukiHashimoto
dw .SatoshiYamato
dw .ShigeruMiyamoto
dw .GailTilden
dw .NobOgasawara
dw .SethMcMahill
dw .HirotoAlexander
dw .TeresaLillygren
dw .ThomasHertzog
dw .ErikJohnson
dw .HiroNakamura
dw .TerukiMurakawa
dw .KazuyoshiOsawa
dw .KimikoNakamichi
dw .End
dw .Unknown
dw .Staff
dw .Director
dw .CoDirector
dw .Programmers
dw .GraphicsDirector
dw .MonsterDesign
dw .GraphicsDesign
dw .Music
dw .SoundEffects
dw .GameDesign
dw .GameScenario
dw .ToolProgramming
dw .ParametricDesign
dw .ScriptDesign
dw .MapDataDesign
dw .MapDesign
dw .ProductTesting
dw .SpecialThanks
dw .Producers
dw .ExecutiveProducer
dw .PokemonAnimation
dw .PokedexText
dw .MobilePrjLeader
dw .MobileSystemAd
dw .MobileStadiumDir
dw .Coordination
dw .Copyright
dw .UsVersionStaff
dw .UsCoordination
dw .TextTranslation
dw .PaadTesting
assert_table_length NUM_CREDITS_STRINGS
.SatoshiTajiri: db " SATOSHI TAJIRI@" ; "たじり さとし@"
.JunichiMasuda: db " JUNICHI MASUDA@" ; "ますだ じゅんいち@"
.TetsuyaWatanabe: db " TETSUYA WATANABE@" ; "わたなべ てつや@"
.ShigekiMorimoto: db " SHIGEKI MORIMOTO@" ; "もりもと しげき@"
.SousukeTamada: db " SOUSUKE TAMADA@" ; "たまだ そうすけ@"
.TakenoriOota: db " TAKENORI OOTA@" ; "おおた たけのり@"
.KenSugimori: db " KEN SUGIMORI@" ; "すぎもり けん@"
.MotofumiFujiwara: db " MOTOFUMI FUJIWARA@" ; "ふじわら もとふみ@"
.AtsukoNishida: db " ATSUKO NISHIDA@" ; "にしだ あつこ@"
.MuneoSaito: db " MUNEO SAITO@" ; "さいとう むねお@"
.SatoshiOota: db " SATOSHI OOTA@" ; "おおた さとし@"
.RenaYoshikawa: db " RENA YOSHIKAWA@" ; "よしかわ れな@"
.JunOkutani: db " JUN OKUTANI@" ; "おくたに じゅん@"
.HironobuYoshida: db " HIRONOBU YOSHIDA@" ; "よしだ ひろのぶ@"
.AsukaIwashita: db " ASUKA IWASHITA@" ; "いわした あすか@"
.GoIchinose: db " GO ICHINOSE@" ; "いちのせ ごう@"
.MorikazuAoki: db " MORIKAZU AOKI@" ; "あおき もりかず@"
.KohjiNishino: db " KOHJI NISHINO@" ; "にしの こうじ@"
.KenjiMatsushima: db " KENJI MATSUSHIMA@" ; "まつしま けんじ@"
.ToshinobuMatsumiya: db "TOSHINOBU MATSUMIYA@" ; "まつみや としのぶ@"
.SatoruIwata: db " SATORU IWATA@" ; "いわた さとる@"
.NobuhiroSeya: db " NOBUHIRO SEYA@" ; "せや のぶひろ@"
.KazuhitoSekine: db " KAZUHITO SEKINE@" ; "せきね かずひと@"
.TetsujiOota: db " TETSUJI OOTA@" ; "おおた てつじ@"
.NclSuperMarioClub: db "NCL SUPER MARIO CLUB@" ; "スーパーマりオクラブ@"
.Sarugakucho: db " SARUGAKUCHO@" ; "さるがくちょう@"
.AkitoMori: db " AKITO MORI@" ; "もり あきと@"
.TakahiroHarada: db " TAKAHIRO HARADA@" ; "はらだ たかひろ@"
.TohruHashimoto: db " TOHRU HASHIMOTO@" ; "はしもと とおる@"
.NoboruMatsumoto: db " NOBORU MATSUMOTO@" ; "まつもと のぼる@"
.TakehiroIzushi: db " TAKEHIRO IZUSHI@" ; "いずし たけひろ@"
.TakashiKawaguchi: db " TAKASHI KAWAGUCHI@" ; "かわぐち たかし@"
.TsunekazuIshihara: db " TSUNEKAZU ISHIHARA@" ; "いしはら つねかず@"
.HiroshiYamauchi: db " HIROSHI YAMAUCHI@" ; "やまうち ひろし@"
.KenjiSaiki: db " KENJI SAIKI@" ; "さいき けんじ@"
.AtsushiTada: db " ATSUSHI TADA@" ; "ただ あつし@"
.NaokoKawakami: db " NAOKO KAWAKAMI@" ; "かわかみ なおこ@"
.HiroyukiZinnai: db " HIROYUKI ZINNAI@" ; "じんない ひろゆき@"
.KunimiKawamura: db " KUNIMI KAWAMURA@" ; "かわむら くにみ@"
.HisashiSogabe: db " HISASHI SOGABE@" ; "そがべ ひさし@"
.KeitaKagaya: db " KEITA KAGAYA@" ; "かがや けいた@"
.YoshinoriMatsuda: db " YOSHINORI MATSUDA@" ; "まつだ よしのり@"
.HitomiSato: db " HITOMI SATO@" ; "さとう ひとみ@"
.ToruOsawa: db " TORU OSAWA@" ; "おおさわ とおる@"
.TakaoOhara: db " TAKAO OHARA@" ; "おおはら たかお@"
.YuichiroIto: db " YUICHIRO ITO@" ; "いとう ゆういちろう@"
.TakaoShimizu: db " TAKAO SHIMIZU@" ; "しみず たかお@"
.Planning: db " SPECIAL PRODUCTION"
next " PLANNING" ; "きかくかいはつぶ@"
next " & DEVELOPMENT DEPT.@"
.KeitaNakamura: db " KEITA NAKAMURA@" ; "なかむら けいた@"
.HirotakaUemura: db " HIROTAKA UEMURA@" ; "うえむら ひろたか@"
.HiroakiTamura: db " HIROAKI TAMURA@" ; "たむら ひろあき@"
.NoriakiSakaguchi: db " NORIAKI SAKAGUCHI@" ; "さかぐち のりあき@"
.MiyukiSato: db " MIYUKI SATO@" ; "さとう みゆき@"
.GakuziNomoto: db " GAKUZI NOMOTO@" ; "のもと がくじ@"
.AiMashima: db " AI MASHIMA@" ; "ましま あい@"
.MikihiroIshikawa: db " MIKIHIRO ISHIKAWA@" ; "いしかわ みきひろ@"
.HideyukiHashimoto: db " HIDEYUKI HASHIMOTO@" ; "はしもと ひでゆき@"
.SatoshiYamato: db " SATOSHI YAMATO@" ; "やまと さとし@"
.ShigeruMiyamoto: db " SHIGERU MIYAMOTO@" ; "みやもと しげる@"
.End: db " END@" ; "おしまい@"
.Unknown: db " ????????@" ; "@"
.GailTilden: db " GAIL TILDEN@"
.NobOgasawara: db " NOB OGASAWARA@"
.SethMcMahill: db " SETH McMAHILL@"
.HirotoAlexander: db " HIROTO ALEXANDER@"
.TeresaLillygren: db " TERESA LILLYGREN@"
.ThomasHertzog: db " THOMAS HERTZOG@"
.ErikJohnson: db " ERIK JOHNSON@"
.HiroNakamura: db " HIRO NAKAMURA@"
.TerukiMurakawa: db " TERUKI MURAKAWA@"
.KazuyoshiOsawa: db " KAZUYOSHI OSAWA@"
.KimikoNakamichi: db " KIMIKO NAKAMICHI@"
.Staff: db " #MON" ; "ポケットモンスター"
next " CRYSTAL VERSION" ; "  クりスタル バージョン"
next " STAFF@" ; "    スタッフ@"
.Director: db " DIRECTOR@" ; "エグゼクティブ ディレクター@"
.CoDirector: db " CO-DIRECTOR@" ; "ディレクター@"
.Programmers: db " PROGRAMMERS@" ; "プログラム@"
.GraphicsDirector: db " GRAPHICS DIRECTOR@" ; "グラフィック ディレクター@"
.MonsterDesign: db " MONSTER DESIGN@" ; "# デザイン@"
.GraphicsDesign: db " GRAPHICS DESIGN@" ; "グラフィック デザイン@"
.Music: db " MUSIC@" ; "おんがく@"
.SoundEffects: db " SOUND EFFECTS@" ; "サウンド エフェクト@"
.GameDesign: db " GAME DESIGN@" ; "ゲームデザイン@"
.GameScenario: db " GAME SCENARIO@" ; "シナりオ@"
.ToolProgramming: db " TOOL PROGRAMMING@" ; "ツール プログラム@"
.ParametricDesign: db " PARAMETRIC DESIGN@" ; "パラメーター せってい@"
.ScriptDesign: db " SCRIPT DESIGN@" ; "スクりプト せってい@"
.MapDataDesign: db " MAP DATA DESIGN@" ; "マップデータ せってい@"
.MapDesign: db " MAP DESIGN@" ; "マップ デザイン@"
.ProductTesting: db " PRODUCT TESTING@" ; "デバッグプレイ@"
.SpecialThanks: db " SPECIAL THANKS@" ; "スぺシャルサンクス@"
.Producers: db " PRODUCERS@" ; "プロデューサー@"
.ExecutiveProducer: db " EXECUTIVE PRODUCER@" ; "エグゼクティブ プロデューサー@"
.PokemonAnimation: db " #MON ANIMATION@" ; "# アニメーション@"
.PokedexText: db " #DEX TEXT@" ; "ずかん テキスト@"
.MobilePrjLeader: db " MOBILE PRJ. LEADER@" ; "モバイルプロジェクト りーダー@"
.MobileSystemAd: db " MOBILE SYSTEM AD.@" ; "モバイル システムアドバイザー@"
.MobileStadiumDir: db "MOBILE STADIUM DIR.@" ; "モバイルスタジアム ディレクター@"
.Coordination: db " COORDINATION@" ; "コーディネーター@"
.UsVersionStaff: db " US VERSION STAFF@"
.UsCoordination: db " US COORDINATION@"
.TextTranslation: db " TEXT TRANSLATION@"
.PaadTesting: db " PAAD TESTING@"
.Copyright:
; (C) 1 9 9 5 - 2 0 0 1 N i n t e n d o
db $60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6a,$6b,$6c
; (C) 1 9 9 5 - 2 0 0 1 C r e a t u r e s i n c .
next $60,$61,$62,$63,$64,$65,$66,$6d,$6e,$6f,$70,$71,$72, $7a,$7b,$7c
; (C) 1 9 9 5 - 2 0 0 1 G A M E F R E A K i n c .
next $60,$61,$62,$63,$64,$65,$66,$73,$74,$75,$76,$77,$78,$79, $7a,$7b,$7c
db "@"

View file

@ -0,0 +1,89 @@
MACRO decoration
; type, name, action, event flag, tile/sprite
db \1, \2, \3
dw \4
db \5
ENDM
DecorationAttributes:
; entries correspond to deco constants
table_width DECOATTR_STRUCT_LENGTH, DecorationAttributes
decoration DECO_PLANT, 0, 0, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BED, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
decoration DECO_BED, FEATHERY_BED, SET_UP_BED, EVENT_DECO_BED_1, $1b
decoration DECO_BED, PINK_BED, SET_UP_BED, EVENT_DECO_BED_2, $1c
decoration DECO_BED, POLKADOT_BED, SET_UP_BED, EVENT_DECO_BED_3, $1d
decoration DECO_BED, PIKACHU_BED, SET_UP_BED, EVENT_DECO_BED_4, $1e
decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CARPET, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
decoration DECO_CARPET, RED_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_1, $08
decoration DECO_CARPET, BLUE_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_2, $0b
decoration DECO_CARPET, YELLOW_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_3, $0e
decoration DECO_CARPET, GREEN_CARPET, SET_UP_CARPET, EVENT_DECO_CARPET_4, $11
decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_PLANT, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
decoration DECO_PLANT, MAGNAPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_1, $20
decoration DECO_PLANT, TROPICPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_2, $21
decoration DECO_PLANT, JUMBOPLANT, SET_UP_PLANT, EVENT_DECO_PLANT_3, $22
decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_POSTER, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
decoration DECO_PLANT, TOWN_MAP_POSTER, SET_UP_POSTER, EVENT_DECO_POSTER_1, $1f
decoration DECO_POSTER, 4, SET_UP_POSTER, EVENT_DECO_POSTER_2, $23
decoration DECO_POSTER, 5, SET_UP_POSTER, EVENT_DECO_POSTER_3, $24
decoration DECO_POSTER, 6, SET_UP_POSTER, EVENT_DECO_POSTER_4, $25
decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_CONSOLE, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
decoration DECO_PLANT, FAMICOM, SET_UP_CONSOLE, EVENT_DECO_FAMICOM, SPRITE_FAMICOM
decoration DECO_PLANT, SUPER_NES, SET_UP_CONSOLE, EVENT_DECO_SNES, SPRITE_SNES
decoration DECO_PLANT, NINTENDO_64, SET_UP_CONSOLE, EVENT_DECO_N64, SPRITE_N64
decoration DECO_PLANT, VIRTUAL_BOY, SET_UP_CONSOLE, EVENT_DECO_VIRTUAL_BOY, SPRITE_VIRTUAL_BOY
decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BIG_DOLL, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
decoration DECO_BIGDOLL, 21, SET_UP_BIG_DOLL, EVENT_DECO_BIG_SNORLAX_DOLL, SPRITE_BIG_SNORLAX
decoration DECO_BIGDOLL, 16, SET_UP_BIG_DOLL, EVENT_DECO_BIG_ONIX_DOLL, SPRITE_BIG_ONIX
decoration DECO_BIGDOLL, 20, SET_UP_BIG_DOLL, EVENT_DECO_BIG_LAPRAS_DOLL, SPRITE_BIG_LAPRAS
decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_DOLL, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0
decoration DECO_DOLL, 4, SET_UP_DOLL, EVENT_DECO_PIKACHU_DOLL, SPRITE_PIKACHU
decoration DECO_PLANT, SURF_PIKA_DOLL, SET_UP_DOLL, EVENT_DECO_SURFING_PIKACHU_DOLL, SPRITE_SURFING_PIKACHU
decoration DECO_DOLL, 5, SET_UP_DOLL, EVENT_DECO_CLEFAIRY_DOLL, SPRITE_CLEFAIRY
decoration DECO_DOLL, 6, SET_UP_DOLL, EVENT_DECO_JIGGLYPUFF_DOLL, SPRITE_JIGGLYPUFF
decoration DECO_DOLL, 0, SET_UP_DOLL, EVENT_DECO_BULBASAUR_DOLL, SPRITE_BULBASAUR
decoration DECO_DOLL, 1, SET_UP_DOLL, EVENT_DECO_CHARMANDER_DOLL, SPRITE_CHARMANDER
decoration DECO_DOLL, 2, SET_UP_DOLL, EVENT_DECO_SQUIRTLE_DOLL, SPRITE_SQUIRTLE
decoration DECO_DOLL, 9, SET_UP_DOLL, EVENT_DECO_POLIWAG_DOLL, SPRITE_POLIWAG
decoration DECO_DOLL, 8, SET_UP_DOLL, EVENT_DECO_DIGLETT_DOLL, SPRITE_DIGLETT
decoration DECO_DOLL, 18, SET_UP_DOLL, EVENT_DECO_STARMIE_DOLL, SPRITE_STARMIE
decoration DECO_DOLL, 19, SET_UP_DOLL, EVENT_DECO_MAGIKARP_DOLL, SPRITE_MAGIKARP
decoration DECO_DOLL, 7, SET_UP_DOLL, EVENT_DECO_ODDISH_DOLL, SPRITE_ODDISH
decoration DECO_DOLL, 15, SET_UP_DOLL, EVENT_DECO_GENGAR_DOLL, SPRITE_GENGAR
decoration DECO_DOLL, 14, SET_UP_DOLL, EVENT_DECO_SHELLDER_DOLL, SPRITE_SHELLDER
decoration DECO_DOLL, 13, SET_UP_DOLL, EVENT_DECO_GRIMER_DOLL, SPRITE_GRIMER
decoration DECO_DOLL, 17, SET_UP_DOLL, EVENT_DECO_VOLTORB_DOLL, SPRITE_VOLTORB
decoration DECO_DOLL, 3, SET_UP_DOLL, EVENT_DECO_WEEDLE_DOLL, SPRITE_WEEDLE
decoration DECO_DOLL, 22, SET_UP_DOLL, EVENT_DECO_UNOWN_DOLL, SPRITE_UNOWN
decoration DECO_DOLL, 12, SET_UP_DOLL, EVENT_DECO_GEODUDE_DOLL, SPRITE_GEODUDE
decoration DECO_DOLL, 10, SET_UP_DOLL, EVENT_DECO_MACHOP_DOLL, SPRITE_MACHOP
decoration DECO_DOLL, 11, SET_UP_DOLL, EVENT_DECO_TENTACOOL_DOLL, SPRITE_TENTACOOL
decoration DECO_PLANT, GOLD_TROPHY, SET_UP_DOLL, EVENT_DECO_GOLD_TROPHY, SPRITE_GOLD_TROPHY
decoration DECO_PLANT, SILVER_TROPHY, SET_UP_DOLL, EVENT_DECO_SILVER_TROPHY, SPRITE_SILVER_TROPHY
assert_table_length NUM_DECOS + NUM_DECO_CATEGORIES + 1
DecorationAttributePokemonNames:
dw BULBASAUR ; 0
dw CHARMANDER ; 1
dw SQUIRTLE ; 2
dw WEEDLE ; 3
dw PIKACHU ; 4
dw CLEFAIRY ; 5
dw JIGGLYPUFF ; 6
dw ODDISH ; 7
dw DIGLETT ; 8
dw POLIWAG ; 9
dw MACHOP ; 10
dw TENTACOOL ; 11
dw GEODUDE ; 12
dw GRIMER ; 13
dw SHELLDER ; 14
dw GENGAR ; 15
dw ONIX ; 16
dw VOLTORB ; 17
dw STARYU ; 18
dw MAGIKARP ; 19
dw LAPRAS ; 20
dw SNORLAX ; 21
dw UNOWN ; 22

View file

@ -0,0 +1,59 @@
DecorationIDs:
; see constants/deco_constants.asm
table_width 1, DecorationIDs
db DECO_FEATHERY_BED ; 2
db DECO_PINK_BED ; 3
db DECO_POLKADOT_BED ; 4
db DECO_PIKACHU_BED ; 5
db DECO_RED_CARPET ; 7
db DECO_BLUE_CARPET ; 8
db DECO_YELLOW_CARPET ; 9
db DECO_GREEN_CARPET ; a
db DECO_MAGNAPLANT ; c
db DECO_TROPICPLANT ; d
db DECO_JUMBOPLANT ; e
db DECO_TOWN_MAP ; 10
db DECO_PIKACHU_POSTER ; 11
db DECO_CLEFAIRY_POSTER ; 12
db DECO_JIGGLYPUFF_POSTER ; 13
db DECO_FAMICOM ; 15
db DECO_SNES ; 16
db DECO_N64 ; 17
db DECO_VIRTUAL_BOY ; 18
db DECO_PIKACHU_DOLL ; 1e
db DECO_SURF_PIKACHU_DOLL ; 1f
db DECO_CLEFAIRY_DOLL ; 20
db DECO_JIGGLYPUFF_DOLL ; 21
db DECO_BULBASAUR_DOLL ; 22
db DECO_CHARMANDER_DOLL ; 23
db DECO_SQUIRTLE_DOLL ; 24
db DECO_POLIWAG_DOLL ; 25
db DECO_DIGLETT_DOLL ; 26
db DECO_STARMIE_DOLL ; 27
db DECO_MAGIKARP_DOLL ; 28
db DECO_ODDISH_DOLL ; 29
db DECO_GENGAR_DOLL ; 2a
db DECO_SHELLDER_DOLL ; 2b
db DECO_GRIMER_DOLL ; 2c
db DECO_VOLTORB_DOLL ; 2d
db DECO_WEEDLE_DOLL ; 2e
db DECO_UNOWN_DOLL ; 2f
db DECO_GEODUDE_DOLL ; 30
db DECO_MACHOP_DOLL ; 31
db DECO_TENTACOOL_DOLL ; 32
db DECO_BIG_SNORLAX_DOLL ; 1a
db DECO_BIG_ONIX_DOLL ; 1b
db DECO_BIG_LAPRAS_DOLL ; 1c
db DECO_GOLD_TROPHY_DOLL ; 33
db DECO_SILVER_TROPHY_DOLL ; 34
assert_table_length NUM_DECOS
db -1 ; end

View file

@ -0,0 +1,39 @@
MysteryGiftDecos:
db DECOFLAG_PIKACHU_DOLL
db DECOFLAG_BULBASAUR_DOLL
db DECOFLAG_CHARMANDER_DOLL
db DECOFLAG_SQUIRTLE_DOLL
db DECOFLAG_POLIWAG_DOLL
db DECOFLAG_DIGLETT_DOLL
db DECOFLAG_STARMIE_DOLL
db DECOFLAG_MAGIKARP_DOLL
db DECOFLAG_ODDISH_DOLL
db DECOFLAG_GENGAR_DOLL
db DECOFLAG_CLEFAIRY_POSTER
db DECOFLAG_JIGGLYPUFF_POSTER
db DECOFLAG_SNES
db DECOFLAG_SHELLDER_DOLL
db DECOFLAG_VOLTORB_DOLL
db DECOFLAG_WEEDLE_DOLL
db DECOFLAG_MAGNAPLANT
db DECOFLAG_TROPICPLANT
db DECOFLAG_FAMICOM
db DECOFLAG_N64
db DECOFLAG_SURF_PIKACHU_DOLL
db DECOFLAG_JIGGLYPUFF_DOLL
db DECOFLAG_PINK_BED
db DECOFLAG_POLKADOT_BED
db DECOFLAG_RED_CARPET
db DECOFLAG_BLUE_CARPET
db DECOFLAG_YELLOW_CARPET
db DECOFLAG_GREEN_CARPET
db DECOFLAG_JUMBOPLANT
db DECOFLAG_VIRTUAL_BOY
db DECOFLAG_MACHOP_DOLL
db DECOFLAG_PIKACHU_POSTER
db DECOFLAG_TENTACOOL_DOLL
db DECOFLAG_BIG_ONIX_DOLL
db DECOFLAG_PIKACHU_BED
db DECOFLAG_GRIMER_DOLL
db DECOFLAG_UNOWN_DOLL
.End

View file

@ -0,0 +1,30 @@
DecorationNames:
; entries correspond to constants/deco_constants.asm
list_start DecorationNames
li "CANCEL"
li "PUT IT AWAY"
li "MAGNAPLANT"
li "TROPICPLANT"
li "JUMBOPLANT"
li "TOWN MAP"
li "NES"
li "SUPER NES"
li "NINTENDO 64"
li "VIRTUAL BOY"
li "GOLD TROPHY"
li "SILVER TROPHY"
li "SURF PIKACHU DOLL"
li " BED"
li " CARPET"
li " POSTER"
li " DOLL"
li "BIG "
li "FEATHERY"
li "PIKACHU"
li "PINK"
li "POLKADOT"
li "RED"
li "BLUE"
li "YELLOW"
li "GREEN"
assert_list_length NUM_DECO_NAMES

18
data/default_options.asm Normal file
View file

@ -0,0 +1,18 @@
DefaultOptions:
; wOptions: med text speed
db TEXT_DELAY_MED
; wSaveFileExists: no
db FALSE
; wTextboxFrame: frame 1
db FRAME_1
; wTextboxFlags: use text speed
db 1 << FAST_TEXT_DELAY_F
; wGBPrinterBrightness: normal
db GBPRINTER_NORMAL
; wOptions2: menu account on
db 1 << MENU_ACCOUNT
db $00
db $00
.End
assert DefaultOptions.End - DefaultOptions == wOptionsEnd - wOptions

View file

@ -0,0 +1,13 @@
BugCatchingContestantEventFlagTable:
table_width 2, BugCatchingContestantEventFlagTable
dw EVENT_BUG_CATCHING_CONTESTANT_1A
dw EVENT_BUG_CATCHING_CONTESTANT_2A
dw EVENT_BUG_CATCHING_CONTESTANT_3A
dw EVENT_BUG_CATCHING_CONTESTANT_4A
dw EVENT_BUG_CATCHING_CONTESTANT_5A
dw EVENT_BUG_CATCHING_CONTESTANT_6A
dw EVENT_BUG_CATCHING_CONTESTANT_7A
dw EVENT_BUG_CATCHING_CONTESTANT_8A
dw EVENT_BUG_CATCHING_CONTESTANT_9A
dw EVENT_BUG_CATCHING_CONTESTANT_10A
assert_table_length NUM_BUG_CONTESTANTS

View file

@ -0,0 +1,80 @@
BugContestantPointers:
table_width 2, BugContestantPointers
dw BugContestant_BugCatcherDon ; this reverts back to the player
dw BugContestant_BugCatcherDon
dw BugContestant_BugCatcherEd
dw BugContestant_CooltrainerMNick
dw BugContestant_PokefanMWilliam
dw BugContestant_BugCatcherBenny
dw BugContestant_CamperBarry
dw BugContestant_PicnickerCindy
dw BugContestant_BugCatcherJosh
dw BugContestant_YoungsterSamuel
dw BugContestant_SchoolboyKipp
assert_table_length NUM_BUG_CONTESTANTS + 1
; contestant format:
; db class, id
; dw 1st-place mon, score
; dw 2nd-place mon, score
; dw 3rd-place mon, score
BugContestant_BugCatcherDon:
db BUG_CATCHER, DON
dw KAKUNA, 300
dw METAPOD, 285
dw CATERPIE, 226
BugContestant_BugCatcherEd:
db BUG_CATCHER, ED
dw BUTTERFREE, 286
dw BUTTERFREE, 251
dw CATERPIE, 237
BugContestant_CooltrainerMNick:
db COOLTRAINERM, NICK
dw SCYTHER, 357
dw BUTTERFREE, 349
dw PINSIR, 368
BugContestant_PokefanMWilliam:
db POKEFANM, WILLIAM
dw PINSIR, 332
dw BUTTERFREE, 324
dw VENONAT, 321
BugContestant_BugCatcherBenny:
db BUG_CATCHER, BUG_CATCHER_BENNY
dw BUTTERFREE, 318
dw WEEDLE, 295
dw CATERPIE, 285
BugContestant_CamperBarry:
db CAMPER, BARRY
dw PINSIR, 366
dw VENONAT, 329
dw KAKUNA, 314
BugContestant_PicnickerCindy:
db PICNICKER, CINDY
dw BUTTERFREE, 341
dw METAPOD, 301
dw CATERPIE, 264
BugContestant_BugCatcherJosh:
db BUG_CATCHER, JOSH
dw SCYTHER, 326
dw BUTTERFREE, 292
dw METAPOD, 282
BugContestant_YoungsterSamuel:
db YOUNGSTER, SAMUEL
dw WEEDLE, 270
dw PINSIR, 282
dw CATERPIE, 251
BugContestant_SchoolboyKipp:
db SCHOOLBOY, KIPP
dw VENONAT, 267
dw PARAS, 254
dw KAKUNA, 259

View file

@ -0,0 +1,37 @@
ElevatorFloorNames:
; entries correspond to FLOOR_* constants
table_width 2, ElevatorFloorNames
dw .B4F
dw .B3F
dw .B2F
dw .B1F
dw ._1F
dw ._2F
dw ._3F
dw ._4F
dw ._5F
dw ._6F
dw ._7F
dw ._8F
dw ._9F
dw ._10F
dw ._11F
dw .ROOF
assert_table_length NUM_FLOORS
.B4F: db "B4F@"
.B3F: db "B3F@"
.B2F: db "B2F@"
.B1F: db "B1F@"
._1F: db "1F@"
._2F: db "2F@"
._3F: db "3F@"
._4F: db "4F@"
._5F: db "5F@"
._6F: db "6F@"
._7F: db "7F@"
._8F: db "8F@"
._9F: db "9F@"
._10F: db "10F@"
._11F: db "11F@"
.ROOF: db "ROOF@"

View file

@ -0,0 +1,202 @@
MACRO engine_flag
; location, bit
; (all locations are in WRAM bank 1)
dwb \1 + (\2 / 8), 1 << (\2 % 8)
ENDM
EngineFlags:
; entries correspond to ENGINE_* constants
table_width 3, EngineFlags
; pokegear
engine_flag wPokegearFlags, POKEGEAR_RADIO_CARD_F
engine_flag wPokegearFlags, POKEGEAR_MAP_CARD_F
engine_flag wPokegearFlags, POKEGEAR_PHONE_CARD_F
engine_flag wPokegearFlags, POKEGEAR_EXPN_CARD_F
engine_flag wPokegearFlags, POKEGEAR_OBTAINED_F
; day-care
engine_flag wDayCareMan, DAYCAREMAN_HAS_EGG_F
engine_flag wDayCareMan, DAYCAREMAN_HAS_MON_F
engine_flag wDayCareLady, DAYCARELADY_HAS_MON_F
engine_flag wMomSavingMoney, MOM_SAVING_SOME_MONEY_F
engine_flag wMomSavingMoney, MOM_ACTIVE_F
engine_flag wUnusedTwoDayTimerOn, 0 ; unused, possibly related to a 2-day timer
engine_flag wStatusFlags, STATUSFLAGS_POKEDEX_F
engine_flag wStatusFlags, STATUSFLAGS_UNOWN_DEX_F
engine_flag wStatusFlags, STATUSFLAGS_CAUGHT_POKERUS_F
engine_flag wStatusFlags, STATUSFLAGS_ROCKET_SIGNAL_F
engine_flag wStatusFlags, STATUSFLAGS_HALL_OF_FAME_F
engine_flag wStatusFlags, STATUSFLAGS_MAIN_MENU_MOBILE_CHOICES_F
engine_flag wStatusFlags2, STATUSFLAGS2_BUG_CONTEST_TIMER_F
engine_flag wStatusFlags2, STATUSFLAGS2_SAFARI_GAME_F
engine_flag wStatusFlags2, STATUSFLAGS2_ROCKETS_IN_RADIO_TOWER_F
engine_flag wStatusFlags2, STATUSFLAGS2_BIKE_SHOP_CALL_F
engine_flag wStatusFlags2, STATUSFLAGS2_UNUSED_5_F
engine_flag wStatusFlags2, STATUSFLAGS2_REACHED_GOLDENROD_F
engine_flag wStatusFlags2, STATUSFLAGS2_ROCKETS_IN_MAHOGANY_F
engine_flag wBikeFlags, BIKEFLAGS_STRENGTH_ACTIVE_F
engine_flag wBikeFlags, BIKEFLAGS_ALWAYS_ON_BIKE_F
engine_flag wBikeFlags, BIKEFLAGS_DOWNHILL_F
engine_flag wJohtoBadges, ZEPHYRBADGE
engine_flag wJohtoBadges, HIVEBADGE
engine_flag wJohtoBadges, PLAINBADGE
engine_flag wJohtoBadges, FOGBADGE
engine_flag wJohtoBadges, MINERALBADGE
engine_flag wJohtoBadges, STORMBADGE
engine_flag wJohtoBadges, GLACIERBADGE
engine_flag wJohtoBadges, RISINGBADGE
engine_flag wKantoBadges, BOULDERBADGE
engine_flag wKantoBadges, CASCADEBADGE
engine_flag wKantoBadges, THUNDERBADGE
engine_flag wKantoBadges, RAINBOWBADGE
engine_flag wKantoBadges, SOULBADGE
engine_flag wKantoBadges, MARSHBADGE
engine_flag wKantoBadges, VOLCANOBADGE
engine_flag wKantoBadges, EARTHBADGE
; unown sets (see data/wild/unlocked_unowns.asm)
engine_flag wUnlockedUnowns, UNLOCKED_UNOWNS_A_TO_K_F
engine_flag wUnlockedUnowns, UNLOCKED_UNOWNS_L_TO_R_F
engine_flag wUnlockedUnowns, UNLOCKED_UNOWNS_S_TO_W_F
engine_flag wUnlockedUnowns, UNLOCKED_UNOWNS_X_TO_Z_F
engine_flag wUnlockedUnowns, 4 ; unused
engine_flag wUnlockedUnowns, 5 ; unused
engine_flag wUnlockedUnowns, 6 ; unused
engine_flag wUnlockedUnowns, 7 ; unused
; fly
engine_flag wVisitedSpawns, SPAWN_HOME
engine_flag wVisitedSpawns, SPAWN_DEBUG
engine_flag wVisitedSpawns, SPAWN_PALLET
engine_flag wVisitedSpawns, SPAWN_VIRIDIAN
engine_flag wVisitedSpawns, SPAWN_PEWTER
engine_flag wVisitedSpawns, SPAWN_CERULEAN
engine_flag wVisitedSpawns, SPAWN_ROCK_TUNNEL
engine_flag wVisitedSpawns, SPAWN_VERMILION
engine_flag wVisitedSpawns, SPAWN_LAVENDER
engine_flag wVisitedSpawns, SPAWN_SAFFRON
engine_flag wVisitedSpawns, SPAWN_CELADON
engine_flag wVisitedSpawns, SPAWN_FUCHSIA
engine_flag wVisitedSpawns, SPAWN_CINNABAR
engine_flag wVisitedSpawns, SPAWN_INDIGO
engine_flag wVisitedSpawns, SPAWN_NEW_BARK
engine_flag wVisitedSpawns, SPAWN_CHERRYGROVE
engine_flag wVisitedSpawns, SPAWN_VIOLET
engine_flag wVisitedSpawns, SPAWN_AZALEA
engine_flag wVisitedSpawns, SPAWN_CIANWOOD
engine_flag wVisitedSpawns, SPAWN_GOLDENROD
engine_flag wVisitedSpawns, SPAWN_OLIVINE
engine_flag wVisitedSpawns, SPAWN_ECRUTEAK
engine_flag wVisitedSpawns, SPAWN_MAHOGANY
engine_flag wVisitedSpawns, SPAWN_LAKE_OF_RAGE
engine_flag wVisitedSpawns, SPAWN_BLACKTHORN
engine_flag wVisitedSpawns, SPAWN_MT_SILVER
engine_flag wVisitedSpawns, NUM_SPAWNS ; unused
engine_flag wLuckyNumberShowFlag, LUCKYNUMBERSHOW_GAME_OVER_F
engine_flag wStatusFlags2, STATUSFLAGS2_UNUSED_3_F
engine_flag wDailyFlags1, DAILYFLAGS1_KURT_MAKING_BALLS_F
engine_flag wDailyFlags1, DAILYFLAGS1_BUG_CONTEST_F
engine_flag wDailyFlags1, DAILYFLAGS1_FISH_SWARM_F
engine_flag wDailyFlags1, DAILYFLAGS1_TIME_CAPSULE_F
engine_flag wDailyFlags1, DAILYFLAGS1_ALL_FRUIT_TREES_F
engine_flag wDailyFlags1, DAILYFLAGS1_GOT_SHUCKIE_TODAY_F
engine_flag wDailyFlags1, DAILYFLAGS1_GOLDENROD_UNDERGROUND_BARGAIN_F
engine_flag wDailyFlags1, DAILYFLAGS1_TRAINER_HOUSE_F
engine_flag wDailyFlags2, DAILYFLAGS2_MT_MOON_SQUARE_CLEFAIRY_F
engine_flag wDailyFlags2, DAILYFLAGS2_UNION_CAVE_LAPRAS_F
engine_flag wDailyFlags2, DAILYFLAGS2_GOLDENROD_UNDERGROUND_GOT_HAIRCUT_F
engine_flag wDailyFlags2, DAILYFLAGS2_GOLDENROD_DEPT_STORE_TM27_RETURN_F
engine_flag wDailyFlags2, DAILYFLAGS2_DAISYS_GROOMING_F
engine_flag wDailyFlags2, DAILYFLAGS2_INDIGO_PLATEAU_RIVAL_FIGHT_F
engine_flag wDailyFlags2, DAILYFLAGS2_MOVE_TUTOR_F
engine_flag wDailyFlags2, DAILYFLAGS2_BUENAS_PASSWORD_F
engine_flag wSwarmFlags, SWARMFLAGS_BUENAS_PASSWORD_F
engine_flag wSwarmFlags, SWARMFLAGS_GOLDENROD_DEPT_STORE_SALE_F
engine_flag wGameTimerPaused, GAME_TIMER_MOBILE_F
engine_flag wPlayerGender, PLAYERGENDER_FEMALE_F
engine_flag wCelebiEvent, CELEBIEVENT_FOREST_IS_RESTLESS_F
; rematches
engine_flag wDailyRematchFlags, 0 ; jack
engine_flag wDailyRematchFlags, 1 ; huey
engine_flag wDailyRematchFlags, 2 ; gaven
engine_flag wDailyRematchFlags, 3 ; beth
engine_flag wDailyRematchFlags, 4 ; jose
engine_flag wDailyRematchFlags, 5 ; reena
engine_flag wDailyRematchFlags, 6 ; joey
engine_flag wDailyRematchFlags, 7 ; wade
engine_flag wDailyRematchFlags, 8 ; ralph
engine_flag wDailyRematchFlags, 9 ; liz
engine_flag wDailyRematchFlags, 10 ; anthony
engine_flag wDailyRematchFlags, 11 ; todd
engine_flag wDailyRematchFlags, 12 ; gina
engine_flag wDailyRematchFlags, 13 ; arnie
engine_flag wDailyRematchFlags, 14 ; alan
engine_flag wDailyRematchFlags, 15 ; dana
engine_flag wDailyRematchFlags, 16 ; chad
engine_flag wDailyRematchFlags, 17 ; tully
engine_flag wDailyRematchFlags, 18 ; brent
engine_flag wDailyRematchFlags, 19 ; tiffany
engine_flag wDailyRematchFlags, 20 ; vance
engine_flag wDailyRematchFlags, 21 ; wilton
engine_flag wDailyRematchFlags, 22 ; parry
engine_flag wDailyRematchFlags, 23 ; erin
engine_flag wDailyPhoneItemFlags, 0 ; beverly has nugget
engine_flag wDailyPhoneItemFlags, 1 ; jose has star piece
engine_flag wDailyPhoneItemFlags, 2 ; wade has item (see EVENT_WADE_HAS_*** in constants/event_flags.asm)
engine_flag wDailyPhoneItemFlags, 3 ; gina has leaf stone
engine_flag wDailyPhoneItemFlags, 4 ; alan has fire stone
engine_flag wDailyPhoneItemFlags, 5 ; liz has thunderstone
engine_flag wDailyPhoneItemFlags, 6 ; derek has nugget
engine_flag wDailyPhoneItemFlags, 7 ; tully has water stone
engine_flag wDailyPhoneItemFlags, 8 ; tiffany has pink bow
engine_flag wDailyPhoneItemFlags, 9 ; wilton has item (see EVENT_WILTON_HAS_*** in constants/event_flags.asm)
engine_flag wDailyPhoneTimeOfDayFlags, 0 ; jack
engine_flag wDailyPhoneTimeOfDayFlags, 1 ; huey
engine_flag wDailyPhoneTimeOfDayFlags, 2 ; gaven
engine_flag wDailyPhoneTimeOfDayFlags, 3 ; beth
engine_flag wDailyPhoneTimeOfDayFlags, 4 ; jose
engine_flag wDailyPhoneTimeOfDayFlags, 5 ; reena
engine_flag wDailyPhoneTimeOfDayFlags, 6 ; joey
engine_flag wDailyPhoneTimeOfDayFlags, 7 ; wade
engine_flag wDailyPhoneTimeOfDayFlags, 8 ; ralph
engine_flag wDailyPhoneTimeOfDayFlags, 9 ; liz
engine_flag wDailyPhoneTimeOfDayFlags, 10 ; anthony
engine_flag wDailyPhoneTimeOfDayFlags, 11 ; todd
engine_flag wDailyPhoneTimeOfDayFlags, 12 ; gina
engine_flag wDailyPhoneTimeOfDayFlags, 13 ; arnie
engine_flag wDailyPhoneTimeOfDayFlags, 14 ; alan
engine_flag wDailyPhoneTimeOfDayFlags, 15 ; dana
engine_flag wDailyPhoneTimeOfDayFlags, 16 ; chad
engine_flag wDailyPhoneTimeOfDayFlags, 17 ; tully
engine_flag wDailyPhoneTimeOfDayFlags, 18 ; brent
engine_flag wDailyPhoneTimeOfDayFlags, 19 ; tiffany
engine_flag wDailyPhoneTimeOfDayFlags, 20 ; vance
engine_flag wDailyPhoneTimeOfDayFlags, 21 ; wilton
engine_flag wDailyPhoneTimeOfDayFlags, 22 ; parry
engine_flag wDailyPhoneTimeOfDayFlags, 23 ; erin
engine_flag wPlayerSpriteSetupFlags, PLAYERSPRITESETUP_FEMALE_TO_MALE_F
engine_flag wSwarmFlags, SWARMFLAGS_DUNSPARCE_SWARM_F
engine_flag wSwarmFlags, SWARMFLAGS_YANMA_SWARM_F
assert_table_length NUM_ENGINE_FLAGS

View file

@ -0,0 +1,24 @@
HappinessChanges:
; entries correspond to HAPPINESS_* constants
table_width 3, HappinessChanges
; change if happiness < 100, change if happiness < 200, change otherwise
db +5, +3, +2 ; Gained a level
db +5, +3, +2 ; Vitamin
db +1, +1, +0 ; X Item
db +3, +2, +1 ; Battled a Gym Leader
db +1, +1, +0 ; Learned a move
db -1, -1, -1 ; Lost to an enemy
db -5, -5, -10 ; Fainted due to poison
db -5, -5, -10 ; Lost to a much stronger enemy
db +1, +1, +1 ; Haircut (older brother) 1
db +3, +3, +1 ; Haircut (older brother) 2
db +5, +5, +2 ; Haircut (older brother) 3
db +1, +1, +1 ; Haircut (younger brother) 1
db +3, +3, +1 ; Haircut (younger brother) 2
db +10, +10, +4 ; Haircut (younger brother) 3
db -5, -5, -10 ; Used Heal Powder or Energypowder (bitter)
db -10, -10, -15 ; Used Energy Root (bitter)
db -15, -15, -20 ; Used Revival Herb (bitter)
db +3, +3, +1 ; Grooming
db +10, +6, +4 ; Gained a level in the place where it was caught
assert_table_length NUM_HAPPINESS_CHANGES

View file

@ -0,0 +1,13 @@
HappinessData_OlderHaircutBrother:
db 30 percent, 2, HAPPINESS_OLDERCUT1 ; 30% chance
db 50 percent + 1, 3, HAPPINESS_OLDERCUT2 ; 50% chance
db -1, 4, HAPPINESS_OLDERCUT3 ; 20% chance
HappinessData_YoungerHaircutBrother:
db 60 percent + 1, 2, HAPPINESS_YOUNGCUT1 ; 60% chance
db 30 percent, 3, HAPPINESS_YOUNGCUT2 ; 30% chance
db -1, 4, HAPPINESS_YOUNGCUT3 ; 10% chance
HappinessData_DaisysGrooming:
; BUG: Daisy's grooming doesn't always increase happiness (see docs/bugs_and_glitches.md)
db -1, 2, HAPPINESS_GROOMING ; 99.6% chance

View file

@ -0,0 +1,20 @@
MagikarpLengths:
; [wMagikarpLength] = z * 100 + (bc - x) / y
; First argument is the bc threshold as well as x.
; Second argument is y.
; In reality, due to the bug at .BCLessThanDE,
; the threshold is determined by only register b.
dwb 110, 1 ; not used unless the bug is fixed
dwb 310, 2
dwb 710, 4
dwb 2710, 20
dwb 7710, 50
dwb 17710, 100
dwb 32710, 150
dwb 47710, 150
dwb 57710, 100
dwb 62710, 50
dwb 64710, 20
dwb 65210, 5
dwb 65410, 2
dwb 65510, 1 ; not used

View file

@ -0,0 +1,22 @@
MACRO npctrade
; dialog set, requested mon, offered mon, nickname, dvs, item, OT ID, OT name, gender requested
db \1
dw \2, \3
db \4, \5, \6, \7
shift
dw \7
db \8, \9
db 0, 0
ENDM
NPCTrades:
; entries correspond to NPCTRADE_* constants
table_width NPCTRADE_STRUCT_LENGTH, NPCTrades
npctrade TRADE_DIALOGSET_COLLECTOR, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, 37460, "MIKE@@@@", TRADE_GENDER_EITHER
npctrade TRADE_DIALOGSET_COLLECTOR, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, 48926, "KYLE@@@@", TRADE_GENDER_EITHER
npctrade TRADE_DIALOGSET_HAPPY, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, 29189, "TIM@@@@@", TRADE_GENDER_EITHER
npctrade TRADE_DIALOGSET_GIRL, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, 00283, "EMY@@@@@", TRADE_GENDER_FEMALE
npctrade TRADE_DIALOGSET_NEWBIE, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, 15616, "CHRIS@@@", TRADE_GENDER_EITHER
npctrade TRADE_DIALOGSET_GIRL, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, 26491, "KIM@@@@@", TRADE_GENDER_EITHER
npctrade TRADE_DIALOGSET_COLLECTOR, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, 50082, "FOREST@@", TRADE_GENDER_EITHER
assert_table_length NUM_NPC_TRADES

437
data/events/odd_eggs.asm Normal file
View file

@ -0,0 +1,437 @@
DEF NUM_ODD_EGGS EQU 14
MACRO prob
DEF prob_total += \1
dw prob_total * $ffff / 100
ENDM
OddEggProbabilities:
; entries correspond to OddEggs (below)
table_width 2, OddEggProbabilities
DEF prob_total = 0
; Pichu
prob 8
prob 1
; Cleffa
prob 16
prob 3
; Igglybuff
prob 16
prob 3
; Smoochum
prob 14
prob 2
; Magby
prob 10
prob 2
; Elekid
prob 12
prob 2
; Tyrogue
prob 10
prob 1
assert_table_length NUM_ODD_EGGS
assert prob_total == 100, "OddEggProbabilities do not sum to 100%!"
OddEggSpecies:
table_width 2, OddEggSpecies
dw PICHU
dw PICHU
dw CLEFFA
dw CLEFFA
dw IGGLYBUFF
dw IGGLYBUFF
dw SMOOCHUM
dw SMOOCHUM
dw MAGBY
dw MAGBY
dw ELEKID
dw ELEKID
dw TYROGUE
dw TYROGUE
assert_table_length NUM_ODD_EGGS
OddEggMoves:
dw THUNDERSHOCK, CHARM, DIZZY_PUNCH, NO_MOVE
dw THUNDERSHOCK, CHARM, DIZZY_PUNCH, NO_MOVE
dw POUND, CHARM, DIZZY_PUNCH, NO_MOVE
dw POUND, CHARM, DIZZY_PUNCH, NO_MOVE
dw SING, CHARM, DIZZY_PUNCH, NO_MOVE
dw SING, CHARM, DIZZY_PUNCH, NO_MOVE
dw POUND, LICK, DIZZY_PUNCH, NO_MOVE
dw POUND, LICK, DIZZY_PUNCH, NO_MOVE
dw EMBER, DIZZY_PUNCH, NO_MOVE, NO_MOVE
dw EMBER, DIZZY_PUNCH, NO_MOVE, NO_MOVE
dw QUICK_ATTACK, LEER, DIZZY_PUNCH, NO_MOVE
dw QUICK_ATTACK, LEER, DIZZY_PUNCH, NO_MOVE
dw TACKLE, DIZZY_PUNCH, NO_MOVE, NO_MOVE
dw TACKLE, DIZZY_PUNCH, NO_MOVE, NO_MOVE
OddEggs:
table_width NICKNAMED_MON_STRUCT_LENGTH, OddEggs
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 02048 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 0, 0, 0, 0 ; DVs
db 30, 20, 10, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 17 ; Max HP
bigdw 9 ; Atk
bigdw 6 ; Def
bigdw 11 ; Spd
bigdw 8 ; SAtk
bigdw 8 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 00256 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 2, 10, 10, 10 ; DVs
db 30, 20, 10, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 17 ; Max HP
bigdw 9 ; Atk
bigdw 7 ; Def
bigdw 12 ; Spd
bigdw 9 ; SAtk
bigdw 9 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 04096 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 0, 0, 0, 0 ; DVs
db 35, 20, 10, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 20 ; Max HP
bigdw 7 ; Atk
bigdw 7 ; Def
bigdw 6 ; Spd
bigdw 9 ; SAtk
bigdw 10 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 00768 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 2, 10, 10, 10 ; DVs
db 35, 20, 10, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 20 ; Max HP
bigdw 7 ; Atk
bigdw 8 ; Def
bigdw 7 ; Spd
bigdw 10 ; SAtk
bigdw 11 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 04096 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 0, 0, 0, 0 ; DVs
db 15, 20, 10, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 24 ; Max HP
bigdw 8 ; Atk
bigdw 6 ; Def
bigdw 6 ; Spd
bigdw 9 ; SAtk
bigdw 7 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 00768 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 2, 10, 10, 10 ; DVs
db 15, 20, 10, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 24 ; Max HP
bigdw 8 ; Atk
bigdw 7 ; Def
bigdw 7 ; Spd
bigdw 10 ; SAtk
bigdw 8 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 03584 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 0, 0, 0, 0 ; DVs
db 35, 30, 10, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 19 ; Max HP
bigdw 8 ; Atk
bigdw 6 ; Def
bigdw 11 ; Spd
bigdw 13 ; SAtk
bigdw 11 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 00512 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 2, 10, 10, 10 ; DVs
db 35, 30, 10, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 19 ; Max HP
bigdw 8 ; Atk
bigdw 7 ; Def
bigdw 12 ; Spd
bigdw 14 ; SAtk
bigdw 12 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 02560 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 0, 0, 0, 0 ; DVs
db 25, 10, 0, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 19 ; Max HP
bigdw 12 ; Atk
bigdw 8 ; Def
bigdw 13 ; Spd
bigdw 12 ; SAtk
bigdw 10 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 00512 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 2, 10, 10, 10 ; DVs
db 25, 10, 0, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 19 ; Max HP
bigdw 12 ; Atk
bigdw 9 ; Def
bigdw 14 ; Spd
bigdw 13 ; SAtk
bigdw 11 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 03072 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 0, 0, 0, 0 ; DVs
db 30, 30, 10, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 19 ; Max HP
bigdw 11 ; Atk
bigdw 8 ; Def
bigdw 14 ; Spd
bigdw 11 ; SAtk
bigdw 10 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 00512 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 2, 10, 10, 10 ; DVs
db 30, 30, 10, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 19 ; Max HP
bigdw 11 ; Atk
bigdw 9 ; Def
bigdw 15 ; Spd
bigdw 12 ; SAtk
bigdw 11 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 02560 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 0, 0, 0, 0 ; DVs
db 35, 10, 0, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 18 ; Max HP
bigdw 8 ; Atk
bigdw 8 ; Def
bigdw 8 ; Spd
bigdw 8 ; SAtk
bigdw 8 ; SDef
db "EGG@@@@@@@@"
db 0 ; Species, will be filled on load
db NO_ITEM
db 0, 0, 0, 0 ; Moves, will be filled on load
dw 00256 ; OT ID
dt 125 ; Exp
; Stat exp
bigdw 0
bigdw 0
bigdw 0
bigdw 0
bigdw 0
dn 2, 10, 10, 10 ; DVs
db 35, 10, 0, 0 ; PP
db 20 ; Step cycles to hatch
db 0, 0, 0 ; Pokerus, Caught data
db 5 ; Level
db 0, 0 ; Status
bigdw 0 ; HP
bigdw 18 ; Max HP
bigdw 8 ; Atk
bigdw 9 ; Def
bigdw 9 ; Spd
bigdw 9 ; SAtk
bigdw 9 ; SDef
db "EGG@@@@@@@@"
assert_table_length NUM_ODD_EGGS

View file

@ -0,0 +1,22 @@
OakRatings:
; if you caught at most this many, play this sound, load this text
; (text is defined in engine/events/prof_oaks_pc.asm)
dw 9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01
dw 19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02
dw 34, SFX_DEX_FANFARE_20_49, OakRating03
dw 49, SFX_DEX_FANFARE_20_49, OakRating04
dw 64, SFX_DEX_FANFARE_50_79, OakRating05
dw 79, SFX_DEX_FANFARE_50_79, OakRating06
dw 94, SFX_DEX_FANFARE_80_109, OakRating07
dw 109, SFX_DEX_FANFARE_80_109, OakRating08
dw 124, SFX_CAUGHT_MON, OakRating09
dw 139, SFX_CAUGHT_MON, OakRating10
dw 154, SFX_DEX_FANFARE_140_169, OakRating11
dw 169, SFX_DEX_FANFARE_140_169, OakRating12
dw 184, SFX_DEX_FANFARE_170_199, OakRating13
dw 199, SFX_DEX_FANFARE_170_199, OakRating14
dw 214, SFX_DEX_FANFARE_200_229, OakRating15
dw 229, SFX_DEX_FANFARE_200_229, OakRating16
dw 239, SFX_DEX_FANFARE_230_PLUS, OakRating17
dw 248, SFX_DEX_FANFARE_230_PLUS, OakRating18
dw -1, SFX_DEX_FANFARE_230_PLUS, OakRating19

View file

@ -0,0 +1,185 @@
; Special routines can be used with the "special" map script command.
; They often use wScriptVar for arguments and return values.
MACRO add_special
\1Special::
dba \1
ENDM
SpecialsPointers::
add_special WarpToSpawnPoint
; Communications
add_special SetBitsForLinkTradeRequest
add_special WaitForLinkedFriend
add_special CheckLinkTimeout_Receptionist
add_special TryQuickSave
add_special CheckBothSelectedSameRoom
add_special FailedLinkToPast
add_special CloseLink
add_special WaitForOtherPlayerToExit
add_special SetBitsForBattleRequest
add_special SetBitsForTimeCapsuleRequest
add_special CheckTimeCapsuleCompatibility
add_special EnterTimeCapsule
add_special TradeCenter
add_special Colosseum
add_special TimeCapsule
add_special CableClubCheckWhichChris
add_special CheckMysteryGift
add_special GetMysteryGiftItem
add_special UnlockMysteryGift
; Map events
add_special BugContestJudging
add_special CheckPartyFullAfterContest
add_special ContestDropOffMons
add_special ContestReturnMons
add_special GiveParkBalls
add_special CheckMagikarpLength
add_special MagikarpHouseSign
add_special HealParty ; this is both a special and a predef
add_special PokemonCenterPC
add_special PlayersHousePC
add_special DayCareMan
add_special DayCareLady
add_special DayCareManOutside
add_special MoveDeletion
add_special BankOfMom
add_special MagnetTrain
add_special NameRival
add_special SetDayOfWeek
add_special OverworldTownMap
add_special UnownPrinter
add_special MapRadio
add_special UnownPuzzle
add_special SlotMachine
add_special CardFlip
add_special UnusedMemoryGame ; unused
add_special ClearBGPalettesBufferScreen ; unused
add_special FadeOutPalettes
add_special BattleTowerFade
add_special FadeBlackQuickly
add_special FadeInPalettes
add_special FadeInQuickly
add_special ReloadSpritesNoPalettes ; bank 0
add_special ClearBGPalettes ; bank 0
add_special UpdateTimePals ; bank 0
add_special ClearTilemap ; bank 0; unused as special
add_special UpdateSprites ; bank 0
add_special UpdatePlayerSprite ; bank 0
add_special GameCornerPrizeMonCheckDex
add_special UnusedSetSeenMon ; unused
add_special WaitSFX ; bank 0
add_special PlayMapMusic ; bank 0
add_special RestartMapMusic ; bank 0
add_special HealMachineAnim
add_special SurfStartStep
add_special FindPartyMonAboveLevel ; unused
add_special FindPartyMonAtLeastThatHappy ; unused
add_special FindPartyMonThatSpecies
add_special FindPartyMonThatSpeciesYourTrainerID
add_special UnusedCheckUnusedTwoDayTimer ; unused
add_special DayCareMon1
add_special DayCareMon2
add_special SelectRandomBugContestContestants
add_special ActivateFishingSwarm
add_special ToggleMaptileDecorations
add_special ToggleDecorationsVisibility
add_special GiveShuckle
add_special ReturnShuckie
add_special BillsGrandfather
add_special CheckPokerus
add_special DisplayCoinCaseBalance
add_special DisplayMoneyAndCoinBalance
add_special PlaceMoneyTopRight
add_special CheckForLuckyNumberWinners
add_special CheckLuckyNumberShowFlag
add_special ResetLuckyNumberShowFlag
add_special PrintTodaysLuckyNumber
add_special SelectApricornForKurt
add_special NameRater
add_special DisplayLinkRecord
add_special GetFirstPokemonHappiness
add_special CheckFirstMonIsEgg
add_special RandomUnseenWildMon
add_special RandomPhoneWildMon
add_special RandomPhoneMon
add_special LoadUsedSpritesGFX
add_special PlaySlowCry
add_special SnorlaxAwake
add_special OlderHaircutBrother
add_special YoungerHaircutBrother
add_special DaisysGrooming
add_special PlayCurMonCry
add_special ProfOaksPCBoot
add_special GameboyCheck
add_special TrainerHouse
add_special PhotoStudio
add_special InitRoamMons
add_special FadeOutMusic
add_special Diploma
add_special PrintDiploma
; Crystal only
add_special Function11ac3e
add_special TradeCornerHoldMon
add_special Function11b5e8
add_special Function11b7e5
add_special Function11b879
add_special Function11b920
add_special Function11b93b
add_special BattleTowerRoomMenu
add_special Function1700ba
add_special Function170114
add_special BattleTowerBattle
add_special Function1704e1
add_special UnusedBattleTowerDummySpecial1
add_special LoadOpponentTrainerAndPokemonWithOTSprite
add_special Function11ba38
add_special CheckForBattleTowerRules
add_special GiveOddEgg
add_special Reset ; bank 0
add_special Function1011f1
add_special Function101220
add_special Function101225
add_special Function101231
add_special MoveTutor
add_special OmanyteChamber
add_special Function11c1ab
add_special BattleTowerAction
add_special DisplayUnownWords
add_special Menu_ChallengeExplanationCancel
add_special Function17d2b6
add_special Function17d2ce
add_special BattleTowerMobileError
add_special AskMobileOrCable
add_special HoOhChamber
add_special Function102142
add_special CelebiShrineEvent
add_special CheckCaughtCelebi
add_special PokeSeer
add_special BuenasPassword
add_special BuenaPrize
add_special GiveDratini
add_special SampleKenjiBreakCountdown
add_special BeastsCheck
add_special MonCheck
add_special SetPlayerPalette
add_special UnusedBattleTowerDummySpecial2
add_special Mobile_SelectThreeMons
add_special Function1037eb
add_special Function10383c
add_special StubbedTrainerRankings_Healings
add_special RefreshSprites
add_special Function1037c2
add_special Mobile_DummyReturnFalse
add_special Function103780
add_special Function10387b
add_special AskRememberPassword
add_special LoadMapPalettes
add_special UnusedFindItemInPCOrBag
add_special InitialSetDSTFlag
add_special InitialClearDSTFlag
add_special UnusedDummySpecial ; unused

View file

@ -0,0 +1,45 @@
MACRO unownwall
for n, CHARLEN(\1)
DEF x = CHARSUB(\1, n + 1)
if x == "-"
db $64
elif x >= "Y"
db 2 * (x - "Y") + $60
elif x >= "Q"
db 2 * (x - "Q") + $40
elif x >= "I"
db 2 * (x - "I") + $20
else
db 2 * (x - "A")
endc
endr
db -1 ; end
ENDM
UnownWalls:
; UNOWNWORDS_ESCAPE
; db $08, $44, $04, $00, $2e, $08, -1
unownwall "ESCAPE"
; UNOWNWORDS_LIGHT
; db $26, $20, $0c, $0e, $46, -1
unownwall "LIGHT"
; UNOWNWORDS_WATER
; db $4c, $00, $46, $08, $42, -1
unownwall "WATER"
; UNOWNWORDS_HO_OH
; db $0e, $2c, $64, $2c, $0e, -1
unownwall "HO-OH"
MenuHeaders_UnownWalls:
; UNOWNWORDS_ESCAPE
db MENU_BACKUP_TILES ; flags
menu_coords 3, 4, 16, 9
; UNOWNWORDS_LIGHT
db MENU_BACKUP_TILES ; flags
menu_coords 4, 4, 15, 9
; UNOWNWORDS_WATER
db MENU_BACKUP_TILES ; flags
menu_coords 4, 4, 15, 9
; UNOWNWORDS_HO_OH
db MENU_BACKUP_TILES ; flags
menu_coords 4, 4, 15, 9

21
data/growth_rates.asm Normal file
View file

@ -0,0 +1,21 @@
MACRO growth_rate
; [1]/[2]*n**3 + [3]*n**2 + [4]*n - [5]
dn \1, \2
if \3 < 0
db -\3 | $80 ; signed magnitude
else
db \3
endc
db \4, \5
ENDM
GrowthRates:
; entries correspond to GROWTH_* (see constants/pokemon_data_constants.asm)
table_width 4, GrowthRates
growth_rate 1, 1, 0, 0, 0 ; Medium Fast
growth_rate 3, 4, 10, 0, 30 ; Slightly Fast
growth_rate 3, 4, 20, 0, 70 ; Slightly Slow
growth_rate 6, 5, -15, 100, 140 ; Medium Slow
growth_rate 4, 5, 0, 0, 0 ; Fast
growth_rate 5, 4, 0, 0, 0 ; Slow
assert_table_length NUM_GROWTH_RATES

43
data/icon_pointers.asm Normal file
View file

@ -0,0 +1,43 @@
IconPointers:
; entries correspond to ICON_* constants (see constants/icon_constants.asm)
table_width 2, IconPointers
dw NullIcon
dw PoliwagIcon
dw JigglypuffIcon
dw DiglettIcon
dw PikachuIcon
dw StaryuIcon
dw FishIcon
dw BirdIcon
dw MonsterIcon
dw ClefairyIcon
dw OddishIcon
dw BugIcon
dw GhostIcon
dw LaprasIcon
dw HumanshapeIcon
dw FoxIcon
dw EquineIcon
dw ShellIcon
dw BlobIcon
dw SerpentIcon
dw VoltorbIcon
dw SquirtleIcon
dw BulbasaurIcon
dw CharmanderIcon
dw CaterpillarIcon
dw UnownIcon
dw GeodudeIcon
dw FighterIcon
dw EggIcon
dw JellyfishIcon
dw MothIcon
dw BatIcon
dw SnorlaxIcon
dw HoOhIcon
dw LugiaIcon
dw GyaradosIcon
dw SlowpokeIcon
dw SudowoodoIcon
dw BigmonIcon
assert_table_length NUM_ICONS + 1

View file

@ -0,0 +1,10 @@
ApricornBalls:
; apricorn, ball
db RED_APRICORN, LEVEL_BALL
db BLU_APRICORN, LURE_BALL
db YLW_APRICORN, MOON_BALL
db GRN_APRICORN, FRIEND_BALL
db WHT_APRICORN, FAST_BALL
db BLK_APRICORN, HEAVY_BALL
db PNK_APRICORN, LOVE_BALL
db -1

527
data/items/attributes.asm Normal file
View file

@ -0,0 +1,527 @@
MACRO item_attribute
; price, held effect, parameter, property, pocket, field menu, battle menu
dw \1
db \2, \3, \4, \5
dn \6, \7
ENDM
ItemAttributes:
; entries correspond to item ids (see constants/item_constants.asm)
table_width ITEMATTR_STRUCT_LENGTH, ItemAttributes
; MASTER_BALL
item_attribute 0, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ULTRA_BALL
item_attribute 1200, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; BRIGHTPOWDER
item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; GREAT_BALL
item_attribute 600, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; POKE_BALL
item_attribute 200, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; TOWN_MAP
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BICYCLE
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; MOON_STONE
item_attribute 0, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ANTIDOTE
item_attribute 100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; BURN_HEAL
item_attribute 250, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ICE_HEAL
item_attribute 250, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; AWAKENING
item_attribute 250, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; PARLYZ_HEAL
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; FULL_RESTORE
item_attribute 3000, HELD_NONE, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; MAX_POTION
item_attribute 2500, HELD_NONE, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; HYPER_POTION
item_attribute 1200, HELD_NONE, 200, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; SUPER_POTION
item_attribute 700, HELD_NONE, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; POTION
item_attribute 300, HELD_NONE, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ESCAPE_ROPE
item_attribute 550, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; REPEL
item_attribute 350, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; MAX_ELIXER
item_attribute 4500, HELD_NONE, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; FIRE_STONE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; THUNDERSTONE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; WATER_STONE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ITEM_19
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; HP_UP
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; PROTEIN
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; IRON
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; CARBOS
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; LUCKY_PUNCH
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; CALCIUM
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; RARE_CANDY
item_attribute 4800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; X_ACCURACY
item_attribute 950, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; LEAF_STONE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; METAL_POWDER
item_attribute 10, HELD_METAL_POWDER, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; NUGGET
item_attribute 10000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; POKE_DOLL
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; FULL_HEAL
item_attribute 600, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; REVIVE
item_attribute 1500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; MAX_REVIVE
item_attribute 4000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; GUARD_SPEC
item_attribute 700, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; SUPER_REPEL
item_attribute 500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; MAX_REPEL
item_attribute 700, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; DIRE_HIT
item_attribute 650, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_2D
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; FRESH_WATER
item_attribute 200, HELD_NONE, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; SODA_POP
item_attribute 300, HELD_NONE, 60, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; LEMONADE
item_attribute 350, HELD_NONE, 80, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; X_ATTACK
item_attribute 500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_32
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; X_DEFEND
item_attribute 550, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; X_SPEED
item_attribute 350, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; X_SPECIAL
item_attribute 350, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; COIN_CASE
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; ITEMFINDER
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; POKE_FLUTE
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; EXP_SHARE
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; OLD_ROD
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; GOOD_ROD
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; SILVER_LEAF
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SUPER_ROD
item_attribute 0, HELD_NONE, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; PP_UP
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; ETHER
item_attribute 1200, HELD_NONE, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; MAX_ETHER
item_attribute 2000, HELD_NONE, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ELIXER
item_attribute 3000, HELD_NONE, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; RED_SCALE
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SECRETPOTION
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; S_S_TICKET
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MYSTERY_EGG
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; CLEAR_BELL
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SILVER_WING
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MOOMOO_MILK
item_attribute 500, HELD_NONE, 100, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; QUICK_CLAW
item_attribute 100, HELD_QUICK_CLAW, 60, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; PSNCUREBERRY
item_attribute 10, HELD_HEAL_POISON, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; GOLD_LEAF
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SOFT_SAND
item_attribute 100, HELD_GROUND_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SHARP_BEAK
item_attribute 100, HELD_FLYING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; PRZCUREBERRY
item_attribute 10, HELD_HEAL_PARALYZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; BURNT_BERRY
item_attribute 10, HELD_HEAL_FREEZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ICE_BERRY
item_attribute 10, HELD_HEAL_BURN, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; POISON_BARB
item_attribute 100, HELD_POISON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; KINGS_ROCK
item_attribute 100, HELD_FLINCH, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BITTER_BERRY
item_attribute 10, HELD_HEAL_CONFUSION, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_PARTY
; MINT_BERRY
item_attribute 10, HELD_HEAL_SLEEP, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; RED_APRICORN
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; TINYMUSHROOM
item_attribute 500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BIG_MUSHROOM
item_attribute 5000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SILVERPOWDER
item_attribute 100, HELD_BUG_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BLU_APRICORN
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_5A
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; AMULET_COIN
item_attribute 100, HELD_AMULET_COIN, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; YLW_APRICORN
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; GRN_APRICORN
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; CLEANSE_TAG
item_attribute 200, HELD_CLEANSE_TAG, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MYSTIC_WATER
item_attribute 100, HELD_WATER_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; TWISTEDSPOON
item_attribute 100, HELD_PSYCHIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; WHT_APRICORN
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BLACKBELT_I
item_attribute 100, HELD_FIGHTING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BLK_APRICORN
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_64
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; PNK_APRICORN
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BLACKGLASSES
item_attribute 100, HELD_DARK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SLOWPOKETAIL
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; PINK_BOW
item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; STICK
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SMOKE_BALL
item_attribute 200, HELD_ESCAPE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; NEVERMELTICE
item_attribute 100, HELD_ICE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MAGNET
item_attribute 100, HELD_ELECTRIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MIRACLEBERRY
item_attribute 10, HELD_HEAL_STATUS, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; PEARL
item_attribute 1400, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BIG_PEARL
item_attribute 7500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; EVERSTONE
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SPELL_TAG
item_attribute 100, HELD_GHOST_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; RAGECANDYBAR
item_attribute 300, HELD_NONE, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; GS_BALL
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BLUE_CARD
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; MIRACLE_SEED
item_attribute 100, HELD_GRASS_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; THICK_CLUB
item_attribute 500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; FOCUS_BAND
item_attribute 200, HELD_FOCUS_BAND, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_78
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ENERGYPOWDER
item_attribute 500, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; ENERGY_ROOT
item_attribute 800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; HEAL_POWDER
item_attribute 450, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; REVIVAL_HERB
item_attribute 2800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; HARD_STONE
item_attribute 100, HELD_ROCK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; LUCKY_EGG
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; CARD_KEY
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; MACHINE_PART
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; EGG_TICKET
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; LOST_ITEM
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; STARDUST
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; STAR_PIECE
item_attribute 9800, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BASEMENT_KEY
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; PASS
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_87
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_88
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_89
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; CHARCOAL
item_attribute 9800, HELD_FIRE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BERRY_JUICE
item_attribute 100, HELD_BERRY, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; SCOPE_LENS
item_attribute 200, HELD_CRITICAL_UP, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_8D
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_8E
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; METAL_COAT
item_attribute 100, HELD_STEEL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BUG: Dragon Scale, not Dragon Fang, boosts Dragon-type moves (see docs/bugs_and_glitches.md)
; DRAGON_FANG
item_attribute 100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_91
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; LEFTOVERS
item_attribute 200, HELD_LEFTOVERS, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_93
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_94
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_95
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MYSTERYBERRY
item_attribute 10, HELD_RESTORE_PP, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; DRAGON_SCALE
item_attribute 2100, HELD_DRAGON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BERSERK_GENE
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_99
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_9A
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_9B
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SACRED_ASH
item_attribute 200, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; HEAVY_BALL
item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; FLOWER_MAIL
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; LEVEL_BALL
item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; LURE_BALL
item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; FAST_BALL
item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; ITEM_A2
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; LIGHT_BALL
item_attribute 100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; FRIEND_BALL
item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; MOON_BALL
item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; LOVE_BALL
item_attribute 150, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; NORMAL_BOX
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; GORGEOUS_BOX
item_attribute 10, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
; SUN_STONE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; POLKADOT_BOW
item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_AB
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; UP_GRADE
item_attribute 2100, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BERRY
item_attribute 10, HELD_BERRY, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; GOLD_BERRY
item_attribute 10, HELD_BERRY, 30, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
; SQUIRTBOTTLE
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
; ITEM_B0
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; PARK_BALL
item_attribute 0, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
; RAINBOW_WING
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_B3
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BRICK_PIECE
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; SURF_MAIL
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; LITEBLUEMAIL
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; PORTRAITMAIL
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; LOVELY_MAIL
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; EON_MAIL
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MORPH_MAIL
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; BLUESKY_MAIL
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MUSIC_MAIL
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; MIRAGE_MAIL
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_BE
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_DC
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_C3
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; ITEM_FA
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
assert_table_length NUM_ITEMS
; TM01
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM02
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM03
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM04
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM05
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM06
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM07
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM08
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM09
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM10
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM11
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM12
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM13
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM14
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM15
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM16
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM17
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM18
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM19
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM20
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM21
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM22
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM23
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM24
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM25
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM26
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM27
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM28
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM29
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM30
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM31
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM32
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM33
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM34
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM35
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM36
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM37
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM38
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM39
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM40
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM41
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM42
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM43
item_attribute 1000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM44
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM45
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM46
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM47
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM48
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM49
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; TM50
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
assert_table_length NUM_ITEMS + NUM_TMS
; HM01
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM02
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM03
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM04
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM05
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM06
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
; HM07
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
assert_table_length NUM_ITEMS + NUM_TMS + NUM_HMS
; $fb
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; $fc
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; $fd
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; $fe
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; $ff
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
; $00
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
assert_table_length $100

View file

@ -0,0 +1,8 @@
BargainShopData:
db 5
dbw NUGGET, 4500
dbw PEARL, 650
dbw BIG_PEARL, 3500
dbw STARDUST, 900
dbw STAR_PIECE, 4600
db -1

View file

@ -0,0 +1,12 @@
BuenaPrizeItems:
table_width 2, BuenaPrizeItems
db ULTRA_BALL, 2
db FULL_RESTORE, 2
db NUGGET, 3
db RARE_CANDY, 3
db PROTEIN, 5
db IRON, 5
db CARBOS, 5
db CALCIUM, 5
db HP_UP, 5
assert_table_length NUM_BUENA_PRIZES

View file

@ -0,0 +1,18 @@
; Pokémon traded from RBY do not have held items, so GSC usually interprets the
; catch rate as an item. However, if the catch rate appears in this table, the
; item associated with the table entry is used instead.
TimeCapsule_CatchRateItems:
db ITEM_19, LEFTOVERS
db ITEM_2D, BITTER_BERRY
db ITEM_32, GOLD_BERRY
db ITEM_5A, BERRY
db ITEM_64, BERRY
db ITEM_78, BERRY
db ITEM_87, BERRY
db ITEM_BE, BERRY
db ITEM_C3, BERRY
db ITEM_DC, BERRY
db ITEM_FA, BERRY
db -1, BERRY
db 0 ; end

917
data/items/descriptions.asm Normal file
View file

@ -0,0 +1,917 @@
ItemDescriptions:
; entries correspond to item ids (see constants/item_constants.asm)
table_width 2, ItemDescriptions
dw MasterBallDesc
dw UltraBallDesc
dw BrightpowderDesc
dw GreatBallDesc
dw PokeBallDesc
dw QuestionMarkDesc
dw BicycleDesc
dw MoonStoneDesc
dw AntidoteDesc
dw BurnHealDesc
dw IceHealDesc
dw AwakeningDesc
dw ParlyzHealDesc
dw FullRestoreDesc
dw MaxPotionDesc
dw HyperPotionDesc
dw SuperPotionDesc
dw PotionDesc
dw EscapeRopeDesc
dw RepelDesc
dw MaxElixerDesc
dw FireStoneDesc
dw ThunderStoneDesc
dw WaterStoneDesc
dw QuestionMarkDesc
dw HPUpDesc
dw ProteinDesc
dw IronDesc
dw CarbosDesc
dw LuckyPunchDesc
dw CalciumDesc
dw RareCandyDesc
dw XAccuracyDesc
dw LeafStoneDesc
dw MetalPowderDesc
dw NuggetDesc
dw PokeDollDesc
dw FullHealDesc
dw ReviveDesc
dw MaxReviveDesc
dw GuardSpecDesc
dw SuperRepelDesc
dw MaxRepelDesc
dw DireHitDesc
dw QuestionMarkDesc
dw FreshWaterDesc
dw SodaPopDesc
dw LemonadeDesc
dw XAttackDesc
dw QuestionMarkDesc
dw XDefendDesc
dw XSpeedDesc
dw XSpecialDesc
dw CoinCaseDesc
dw ItemfinderDesc
dw QuestionMarkDesc
dw ExpShareDesc
dw OldRodDesc
dw GoodRodDesc
dw SilverLeafDesc
dw SuperRodDesc
dw PPUpDesc
dw EtherDesc
dw MaxEtherDesc
dw ElixerDesc
dw RedScaleDesc
dw SecretPotionDesc
dw SSTicketDesc
dw MysteryEggDesc
dw ClearBellDesc
dw SilverWingDesc
dw MoomooMilkDesc
dw QuickClawDesc
dw PsnCureBerryDesc
dw GoldLeafDesc
dw SoftSandDesc
dw SharpBeakDesc
dw PrzCureBerryDesc
dw BurntBerryDesc
dw IceBerryDesc
dw PoisonBarbDesc
dw KingsRockDesc
dw BitterBerryDesc
dw MintBerryDesc
dw RedApricornDesc
dw TinyMushroomDesc
dw BigMushroomDesc
dw SilverPowderDesc
dw BluApricornDesc
dw QuestionMarkDesc
dw AmuletCoinDesc
dw YlwApricornDesc
dw GrnApricornDesc
dw CleanseTagDesc
dw MysticWaterDesc
dw TwistedSpoonDesc
dw WhtApricornDesc
dw BlackbeltDesc
dw BlkApricornDesc
dw QuestionMarkDesc
dw PnkApricornDesc
dw BlackGlassesDesc
dw SlowpokeTailDesc
dw PinkBowDesc
dw StickDesc
dw SmokeBallDesc
dw NeverMeltIceDesc
dw MagnetDesc
dw MiracleBerryDesc
dw PearlDesc
dw BigPearlDesc
dw EverStoneDesc
dw SpellTagDesc
dw RageCandyBarDesc
dw GSBallDesc
dw BlueCardDesc
dw MiracleSeedDesc
dw ThickClubDesc
dw FocusBandDesc
dw QuestionMarkDesc
dw EnergyPowderDesc
dw EnergyRootDesc
dw HealPowderDesc
dw RevivalHerbDesc
dw HardStoneDesc
dw LuckyEggDesc
dw CardKeyDesc
dw MachinePartDesc
dw EggTicketDesc
dw LostItemDesc
dw StardustDesc
dw StarPieceDesc
dw BasementKeyDesc
dw PassDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw CharcoalDesc
dw BerryJuiceDesc
dw ScopeLensDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw MetalCoatDesc
dw DragonFangDesc
dw QuestionMarkDesc
dw LeftoversDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw MysteryBerryDesc
dw DragonScaleDesc
dw BerserkGeneDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw SacredAshDesc
dw HeavyBallDesc
dw FlowerMailDesc
dw LevelBallDesc
dw LureBallDesc
dw FastBallDesc
dw QuestionMarkDesc
dw LightBallDesc
dw FriendBallDesc
dw MoonBallDesc
dw LoveBallDesc
dw NormalBoxDesc
dw GorgeousBoxDesc
dw SunStoneDesc
dw PolkadotBowDesc
dw QuestionMarkDesc
dw UpGradeDesc
dw BerryDesc
dw GoldBerryDesc
dw SquirtBottleDesc
dw QuestionMarkDesc
dw ParkBallDesc
dw RainbowWingDesc
dw QuestionMarkDesc
dw BrickPieceDesc
dw SurfMailDesc
dw LiteBlueMailDesc
dw PortraitMailDesc
dw LovelyMailDesc
dw EonMailDesc
dw MorphMailDesc
dw BlueSkyMailDesc
dw MusicMailDesc
dw MirageMailDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
assert_table_length NUM_ITEMS
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
dw QuestionMarkDesc
assert_table_length $ff
MasterBallDesc:
db "The best BALL. It"
next "never misses.@"
UltraBallDesc:
db "A BALL with a high"
next "rate of success.@"
BrightpowderDesc:
db "Lowers the foe's"
next "accuracy. (HOLD)@"
GreatBallDesc:
db "A BALL with a de-"
next "cent success rate.@"
PokeBallDesc:
db "An item for catch-"
next "ing #MON.@"
BicycleDesc:
db "A collapsible bike"
next "for fast movement.@"
MoonStoneDesc:
db "Evolves certain"
next "kinds of #MON.@"
AntidoteDesc:
db "Cures poisoned"
next "#MON.@"
BurnHealDesc:
db "Heals burned"
next "#MON.@"
IceHealDesc:
db "Defrosts frozen"
next "#MON.@"
AwakeningDesc:
db "Awakens sleeping"
next "#MON.@"
ParlyzHealDesc:
db "Heals paralyzed"
next "#MON.@"
FullRestoreDesc:
db "Fully restores HP"
next "& status.@"
MaxPotionDesc:
db "Fully restores"
next "#MON HP.@"
HyperPotionDesc:
db "Restores #MON"
next "HP by 200.@"
SuperPotionDesc:
db "Restores #MON"
next "HP by 50.@"
PotionDesc:
db "Restores #MON"
next "HP by 20.@"
EscapeRopeDesc:
db "Use for escaping"
next "from caves, etc.@"
RepelDesc:
db "Repels weak #-"
next "MON for 100 steps.@"
MaxElixerDesc:
db "Fully restores the"
next "PP of one #MON.@"
FireStoneDesc:
db "Evolves certain"
next "kinds of #MON.@"
ThunderStoneDesc:
db "Evolves certain"
next "kinds of #MON.@"
WaterStoneDesc:
db "Evolves certain"
next "kinds of #MON.@"
HPUpDesc:
db "Raises the HP of"
next "one #MON.@"
ProteinDesc:
db "Raises ATTACK of"
next "one #MON.@"
IronDesc:
db "Raises DEFENSE of"
next "one #MON.@"
CarbosDesc:
db "Raises SPEED of"
next "one #MON.@"
LuckyPunchDesc:
db "Ups critical hit"
next "ratio of CHANSEY.@"
CalciumDesc:
db "Ups SPECIAL stats"
next "of one #MON.@"
RareCandyDesc:
db "Raises level of a"
next "#MON by one.@"
XAccuracyDesc:
db "Raises accuracy."
next "(1 BTL)@"
LeafStoneDesc:
db "Evolves certain"
next "kinds of #MON.@"
MetalPowderDesc:
db "Raises DEFENSE of"
next "DITTO. (HOLD)@"
NuggetDesc:
db "Made of pure gold."
next "Sell high.@"
PokeDollDesc:
db "Use to escape from"
next "a wild #MON.@"
FullHealDesc:
db "Eliminates all"
next "status problems.@"
ReviveDesc:
db "Restores a fainted"
next "#MON to 1/2 HP.@"
MaxReviveDesc:
db "Fully restores a"
next "fainted #MON.@"
GuardSpecDesc:
db "Prevents stats"
next "reduction. (1 BTL)@"
SuperRepelDesc:
db "Repels weak #-"
next "MON for 200 steps.@"
MaxRepelDesc:
db "Repels weak #-"
next "MON for 250 steps.@"
DireHitDesc:
db "Ups critical hit"
next "ratio. (1 BTL)@"
FreshWaterDesc:
db "Restores #MON"
next "HP by 50.@"
SodaPopDesc:
db "Restores #MON"
next "HP by 60.@"
LemonadeDesc:
db "Restores #MON"
next "HP by 80.@"
XAttackDesc:
db "Raises ATTACK."
next "(1 BTL)@"
XDefendDesc:
db "Raises DEFENSE."
next "(1 BTL)@"
XSpeedDesc:
db "Raises SPEED."
next "(1 BTL)@"
XSpecialDesc:
db "Raises SPECIAL"
next "ATTACK. (1 BTL)@"
CoinCaseDesc:
db "Holds up to 9,999"
next "game coins.@"
ItemfinderDesc:
db "Checks for unseen"
next "items in the area.@"
ExpShareDesc:
db "Shares battle EXP."
next "Points. (HOLD)@"
OldRodDesc:
db "Use by water to"
next "fish for #MON.@"
GoodRodDesc:
db "A good ROD for"
next "catching #MON.@"
SilverLeafDesc:
db "A strange, silver-"
next "colored leaf.@"
SuperRodDesc:
db "The best ROD for"
next "catching #MON.@"
PPUpDesc:
db "Raises max PP of"
next "a selected move.@"
EtherDesc:
db "Restores PP of one"
next "move by 10.@"
MaxEtherDesc:
db "Fully restores PP"
next "of one move.@"
ElixerDesc:
db "Restores PP of all"
next "moves by 10.@"
RedScaleDesc:
db "A scale from the"
next "red GYARADOS.@"
SecretPotionDesc:
db "Fully heals any"
next "#MON.@"
SSTicketDesc:
db "A ticket for the"
next "S.S.AQUA.@"
MysteryEggDesc:
db "An EGG obtained"
next "from MR.#MON.@"
ClearBellDesc:
db "Makes a gentle"
next "ringing.@"
SilverWingDesc:
db "A strange, silver-"
next "colored feather.@"
MoomooMilkDesc:
db "Restores #MON"
next "HP by 100.@"
QuickClawDesc:
db "Raises 1st strike"
next "ratio. (HOLD)@"
PsnCureBerryDesc:
db "A self-cure for"
next "poison. (HOLD)@"
GoldLeafDesc:
db "A strange, gold-"
next "colored leaf.@"
SoftSandDesc:
db "Powers up ground-"
next "type moves. (HOLD)@"
SharpBeakDesc:
db "Powers up flying-"
next "type moves. (HOLD)@"
PrzCureBerryDesc:
db "A self-cure for"
next "paralysis. (HOLD)@"
BurntBerryDesc:
db "A self-cure for"
next "freezing. (HOLD)@"
IceBerryDesc:
db "A self-heal for a"
next "burn. (HOLD)@"
PoisonBarbDesc:
db "Powers up poison-"
next "type moves. (HOLD)@"
KingsRockDesc:
db "May make the foe"
next "flinch. (HOLD)@"
BitterBerryDesc:
db "A self-cure for"
next "confusion. (HOLD)@"
MintBerryDesc:
db "A self-awakening"
next "for sleep. (HOLD)@"
RedApricornDesc:
db "A red APRICORN.@"
TinyMushroomDesc:
db "An ordinary mush-"
next "room. Sell low.@"
BigMushroomDesc:
db "A rare mushroom."
next "Sell high.@"
SilverPowderDesc:
db "Powers up bug-type"
next "moves. (HOLD)@"
BluApricornDesc:
db "A blue APRICORN.@"
AmuletCoinDesc:
db "Doubles monetary"
next "earnings. (HOLD)@"
YlwApricornDesc:
db "A yellow APRICORN.@"
GrnApricornDesc:
db "A green APRICORN.@"
CleanseTagDesc:
db "Helps repel wild"
next "#MON. (HOLD)@"
MysticWaterDesc:
db "Powers up water-"
next "type moves. (HOLD)@"
TwistedSpoonDesc:
db "Powers up psychic-"
next "type moves. (HOLD)@"
WhtApricornDesc:
db "A white APRICORN.@"
BlackbeltDesc:
db "Boosts fighting-"
next "type moves. (HOLD)@"
BlkApricornDesc:
db "A black APRICORN."
next "@"
PnkApricornDesc:
db "A pink APRICORN."
next "@"
BlackGlassesDesc:
db "Powers up dark-"
next "type moves. (HOLD)@"
SlowpokeTailDesc:
db "Very tasty. Sell"
next "high.@"
PinkBowDesc:
db "Powers up normal-"
next "type moves. (HOLD)@"
StickDesc:
db "An ordinary stick."
next "Sell low.@"
SmokeBallDesc:
db "Escape from wild"
next "#MON. (HOLD)@"
NeverMeltIceDesc:
db "Powers up ice-type"
next "moves. (HOLD)@"
MagnetDesc:
db "Boosts electric-"
next "type moves. (HOLD)@"
MiracleBerryDesc:
db "Cures all status"
next "problems. (HOLD)@"
PearlDesc:
db "A beautiful pearl."
next "Sell low.@"
BigPearlDesc:
db "A big, beautiful"
next "pearl. Sell high.@"
EverStoneDesc:
db "Stops evolution."
next "(HOLD)@"
SpellTagDesc:
db "Powers up ghost-"
next "type moves. (HOLD)@"
RageCandyBarDesc:
db "Restores #MON"
next "HP by 20.@"
GSBallDesc:
db "The mysterious"
next "BALL.@"
BlueCardDesc:
db "Card to save"
next "points.@"
MiracleSeedDesc:
db "Powers up grass-"
next "type moves. (HOLD)@"
ThickClubDesc:
db "A bone of some"
next "sort. Sell low.@"
FocusBandDesc:
db "May prevent faint-"
next "ing. (HOLD)@"
EnergyPowderDesc:
db "Restores #MON"
next "HP by 50. Bitter.@"
EnergyRootDesc:
db "Restores #MON"
next "HP by 200. Bitter.@"
HealPowderDesc:
db "Cures all status"
next "problems. Bitter.@"
RevivalHerbDesc:
db "Revives fainted"
next "#MON. Bitter.@"
HardStoneDesc:
db "Powers up rock-"
next "type moves. (HOLD)@"
LuckyEggDesc:
db "Earns extra EXP."
next "points. (HOLD)@"
CardKeyDesc:
db "Opens shutters in"
next "the RADIO TOWER.@"
MachinePartDesc:
db "A machine part for"
next "the POWER PLANT.@"
EggTicketDesc:
db "May use at Golden-"
next "rod trade corner.@"
LostItemDesc:
db "The # DOLL lost"
next "by the COPYCAT.@"
StardustDesc:
db "Pretty, red sand."
next "Sell high.@"
StarPieceDesc:
db "A hunk of red gem."
next "Sell very high.@"
BasementKeyDesc:
db "Opens doors.@"
PassDesc:
db "A ticket for the"
next "MAGNET TRAIN.@"
CharcoalDesc:
db "Powers up fire-"
next "type moves. (HOLD)@"
BerryJuiceDesc:
db "Restores #MON"
next "HP by 20.@"
ScopeLensDesc:
db "Raises critical"
next "hit ratio. (HOLD)@"
MetalCoatDesc:
db "Powers up steel-"
next "type moves. (HOLD)@"
DragonFangDesc:
db "Powers up dragon-"
next "type moves. (HOLD)@"
LeftoversDesc:
db "Restores HP during"
next "battle. (HOLD)@"
MysteryBerryDesc:
db "A self-restore"
next "for PP. (HOLD)@"
DragonScaleDesc:
db "A rare dragon-type"
next "item.@"
BerserkGeneDesc:
db "Boosts ATTACK but"
next "causes confusion.@"
SacredAshDesc:
db "Fully revives all"
next "fainted #MON.@"
HeavyBallDesc:
db "A BALL for catch-"
next "ing heavy #MON.@"
FlowerMailDesc:
db "Flower-print MAIL."
next "(HOLD)@"
LevelBallDesc:
db "A BALL for lower-"
next "level #MON.@"
LureBallDesc:
db "A BALL for #MON"
next "hooked by a ROD.@"
FastBallDesc:
db "A BALL for catch-"
next "ing fast #MON.@"
LightBallDesc:
db "An odd, electrical"
next "orb. (HOLD)@"
FriendBallDesc:
db "A BALL that makes"
next "#MON friendly.@"
MoonBallDesc:
db "A BALL for MOON"
next "STONE evolvers.@"
LoveBallDesc:
db "For catching the"
next "opposite gender.@"
NormalBoxDesc:
db "Open it and see"
next "what's inside.@"
GorgeousBoxDesc:
db "Open it and see"
next "what's inside.@"
SunStoneDesc:
db "Evolves certain"
next "kinds of #MON.@"
PolkadotBowDesc:
db "Powers up normal-"
next "type moves. (HOLD)@"
UpGradeDesc:
db "A mysterious box"
next "made by SILPH CO.@"
BerryDesc:
db "A self-restore"
next "item. (10HP, HOLD)@"
GoldBerryDesc:
db "A self-restore"
next "item. (30HP, HOLD)@"
SquirtBottleDesc:
db "A bottle used for"
next "watering plants.@"
ParkBallDesc:
db "The Bug-Catching"
next "Contest BALL.@"
RainbowWingDesc:
db "A mystical feather"
next "of rainbow colors.@"
QuestionMarkDesc:
db "?@"
BrickPieceDesc:
db "A rare chunk of"
next "tile.@"
SurfMailDesc:
db "LAPRAS-print MAIL."
next "(HOLD)@"
LiteBlueMailDesc:
db "DRATINI-print"
next "MAIL. (HOLD)@"
PortraitMailDesc:
db "MAIL featuring the"
next "holder's likeness.@"
LovelyMailDesc:
db "Heart-print MAIL."
next "(HOLD)@"
EonMailDesc:
db "EEVEE-print MAIL."
next "(HOLD)@"
MorphMailDesc:
db "DITTO-print MAIL."
next "(HOLD)@"
BlueSkyMailDesc:
db "Sky-print MAIL."
next "(HOLD)@"
MusicMailDesc:
db "NATU-print MAIL."
next "(HOLD)@"
MirageMailDesc:
db "MEW-print MAIL."
next "(HOLD)@"

View file

@ -0,0 +1,34 @@
FruitTreeItems:
; entries correspond to FRUITTREE_* constants
table_width 1, FruitTreeItems
db BERRY ; ROUTE_29
db BERRY ; ROUTE_30_1
db BERRY ; ROUTE_38
db BERRY ; ROUTE_46_1
db PSNCUREBERRY ; ROUTE_30_2
db PSNCUREBERRY ; ROUTE_33
db BITTER_BERRY ; ROUTE_31
db BITTER_BERRY ; ROUTE_43
db PRZCUREBERRY ; VIOLET_CITY
db PRZCUREBERRY ; ROUTE_46_2
db MYSTERYBERRY ; ROUTE_35
db MYSTERYBERRY ; ROUTE_45
db ICE_BERRY ; ROUTE_36
db ICE_BERRY ; ROUTE_26
db MINT_BERRY ; ROUTE_39
db BURNT_BERRY ; ROUTE_44
db RED_APRICORN ; ROUTE_37_1
db BLU_APRICORN ; ROUTE_37_2
db BLK_APRICORN ; ROUTE_37_3
db WHT_APRICORN ; AZALEA_TOWN
db PNK_APRICORN ; ROUTE_42_1
db GRN_APRICORN ; ROUTE_42_2
db YLW_APRICORN ; ROUTE_42_3
db BERRY ; ROUTE_11
db PSNCUREBERRY ; ROUTE_2
db BITTER_BERRY ; ROUTE_1
db PRZCUREBERRY ; ROUTE_8
db ICE_BERRY ; PEWTER_CITY_1
db MINT_BERRY ; PEWTER_CITY_2
db BURNT_BERRY ; FUCHSIA_CITY
assert_table_length NUM_FRUIT_TREES

17
data/items/heal_hp.asm Normal file
View file

@ -0,0 +1,17 @@
HealingHPAmounts:
dbw FRESH_WATER, 50
dbw SODA_POP, 60
dbw LEMONADE, 80
dbw HYPER_POTION, 200
dbw SUPER_POTION, 50
dbw POTION, 20
dbw MAX_POTION, MAX_STAT_VALUE
dbw FULL_RESTORE, MAX_STAT_VALUE
dbw MOOMOO_MILK, 100
dbw BERRY, 10
dbw GOLD_BERRY, 30
dbw ENERGYPOWDER, 50
dbw ENERGY_ROOT, 200
dbw RAGECANDYBAR, 20
dbw BERRY_JUICE, 20
dbw -1, 0 ; end

View file

@ -0,0 +1,19 @@
; See also data/battle/held_heal_status.asm
StatusHealingActions:
; item, party menu action text, status
db ANTIDOTE, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
db BURN_HEAL, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
db ICE_HEAL, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
db AWAKENING, PARTYMENUTEXT_HEAL_SLP, SLP_MASK
db PARLYZ_HEAL, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
db FULL_HEAL, PARTYMENUTEXT_HEAL_ALL, %11111111
db FULL_RESTORE, PARTYMENUTEXT_HEAL_ALL, %11111111
db HEAL_POWDER, PARTYMENUTEXT_HEAL_ALL, %11111111
db PSNCUREBERRY, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
db PRZCUREBERRY, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
db BURNT_BERRY, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
db ICE_BERRY, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
db MINT_BERRY, PARTYMENUTEXT_HEAL_SLP, SLP_MASK
db MIRACLEBERRY, PARTYMENUTEXT_HEAL_ALL, %11111111
db -1, 0, 0 ; end

12
data/items/mail_items.asm Normal file
View file

@ -0,0 +1,12 @@
MailItems:
db FLOWER_MAIL
db SURF_MAIL
db LITEBLUEMAIL
db PORTRAITMAIL
db LOVELY_MAIL
db EON_MAIL
db MORPH_MAIL
db BLUESKY_MAIL
db MUSIC_MAIL
db MIRAGE_MAIL
db -1

407
data/items/marts.asm Normal file
View file

@ -0,0 +1,407 @@
Marts:
; entries correspond to MART_* constants (see constants/mart_constants.asm)
table_width 2, Marts
dw MartCherrygrove
dw MartCherrygroveDex
dw MartViolet
dw MartAzalea
dw MartCianwood
dw MartGoldenrod2F1
dw MartGoldenrod2F2
dw MartGoldenrod3F
dw MartGoldenrod4F
dw MartGoldenrod5F1
dw MartGoldenrod5F2
dw MartGoldenrod5F3
dw MartGoldenrod5F4
dw MartOlivine
dw MartEcruteak
dw MartMahogany1
dw MartMahogany2
dw MartBlackthorn
dw MartViridian
dw MartPewter
dw MartCerulean
dw MartLavender
dw MartVermilion
dw MartCeladon2F1
dw MartCeladon2F2
dw MartCeladon3F
dw MartCeladon4F
dw MartCeladon5F1
dw MartCeladon5F2
dw MartFuchsia
dw MartSaffron
dw MartMtMoon
dw MartIndigoPlateau
dw MartUnderground
assert_table_length NUM_MARTS
MartCherrygrove:
db 4 ; # items
db POTION
db ANTIDOTE
db PARLYZ_HEAL
db AWAKENING
db -1 ; end
MartCherrygroveDex:
db 5 ; # items
db POKE_BALL
db POTION
db ANTIDOTE
db PARLYZ_HEAL
db AWAKENING
db -1 ; end
MartViolet:
db 10 ; # items
db POKE_BALL
db POTION
db ESCAPE_ROPE
db ANTIDOTE
db PARLYZ_HEAL
db AWAKENING
db X_DEFEND
db X_ATTACK
db X_SPEED
db FLOWER_MAIL
db -1 ; end
MartAzalea:
db 9 ; # items
db CHARCOAL
db POKE_BALL
db POTION
db SUPER_POTION
db ESCAPE_ROPE
db REPEL
db ANTIDOTE
db PARLYZ_HEAL
db FLOWER_MAIL
db -1 ; end
MartCianwood:
db 5 ; # items
db POTION
db SUPER_POTION
db HYPER_POTION
db FULL_HEAL
db REVIVE
db -1 ; end
MartGoldenrod2F1:
db 7 ; # items
db POTION
db SUPER_POTION
db ANTIDOTE
db PARLYZ_HEAL
db AWAKENING
db BURN_HEAL
db ICE_HEAL
db -1 ; end
MartGoldenrod2F2:
db 8 ; # items
db POKE_BALL
db GREAT_BALL
db ESCAPE_ROPE
db REPEL
db REVIVE
db FULL_HEAL
db POKE_DOLL
db FLOWER_MAIL
db -1 ; end
MartGoldenrod3F:
db 7 ; # items
db X_SPEED
db X_SPECIAL
db X_DEFEND
db X_ATTACK
db DIRE_HIT
db GUARD_SPEC
db X_ACCURACY
db -1 ; end
MartGoldenrod4F:
db 5 ; # items
db PROTEIN
db IRON
db CARBOS
db CALCIUM
db HP_UP
db -1 ; end
MartGoldenrod5F1:
db 3 ; # items
db TM_THUNDERPUNCH
db TM_FIRE_PUNCH
db TM_ICE_PUNCH
db -1 ; end
MartGoldenrod5F2:
db 4 ; # items
db TM_THUNDERPUNCH
db TM_FIRE_PUNCH
db TM_ICE_PUNCH
db TM_HEADBUTT
db -1 ; end
MartGoldenrod5F3:
db 4 ; # items
db TM_THUNDERPUNCH
db TM_FIRE_PUNCH
db TM_ICE_PUNCH
db TM_ROCK_SMASH
db -1 ; end
MartGoldenrod5F4:
db 5 ; # items
db TM_THUNDERPUNCH
db TM_FIRE_PUNCH
db TM_ICE_PUNCH
db TM_HEADBUTT
db TM_ROCK_SMASH
db -1 ; end
MartOlivine:
db 9 ; # items
db GREAT_BALL
db SUPER_POTION
db HYPER_POTION
db ANTIDOTE
db PARLYZ_HEAL
db AWAKENING
db ICE_HEAL
db SUPER_REPEL
db SURF_MAIL
db -1 ; end
MartEcruteak:
db 10 ; # items
db POKE_BALL
db GREAT_BALL
db POTION
db SUPER_POTION
db ANTIDOTE
db PARLYZ_HEAL
db AWAKENING
db BURN_HEAL
db ICE_HEAL
db REVIVE
db -1 ; end
MartMahogany1:
db 4 ; # items
db TINYMUSHROOM
db SLOWPOKETAIL
db POKE_BALL
db POTION
db -1 ; end
MartMahogany2:
db 9 ; # items
db RAGECANDYBAR
db GREAT_BALL
db SUPER_POTION
db HYPER_POTION
db ANTIDOTE
db PARLYZ_HEAL
db SUPER_REPEL
db REVIVE
db FLOWER_MAIL
db -1 ; end
MartBlackthorn:
db 9 ; # items
db GREAT_BALL
db ULTRA_BALL
db HYPER_POTION
db MAX_POTION
db FULL_HEAL
db REVIVE
db MAX_REPEL
db X_DEFEND
db X_ATTACK
db -1 ; end
MartViridian:
db 9 ; # items
db ULTRA_BALL
db HYPER_POTION
db FULL_HEAL
db REVIVE
db ANTIDOTE
db PARLYZ_HEAL
db AWAKENING
db BURN_HEAL
db FLOWER_MAIL
db -1 ; end
MartPewter:
db 7 ; # items
db GREAT_BALL
db SUPER_POTION
db SUPER_REPEL
db ANTIDOTE
db PARLYZ_HEAL
db AWAKENING
db BURN_HEAL
db -1 ; end
MartCerulean:
db 9 ; # items
db GREAT_BALL
db ULTRA_BALL
db SUPER_POTION
db SUPER_REPEL
db FULL_HEAL
db X_DEFEND
db X_ATTACK
db DIRE_HIT
db SURF_MAIL
db -1 ; end
MartLavender:
db 8 ; # items
db GREAT_BALL
db POTION
db SUPER_POTION
db MAX_REPEL
db ANTIDOTE
db PARLYZ_HEAL
db AWAKENING
db BURN_HEAL
db -1 ; end
MartVermilion:
db 8 ; # items
db ULTRA_BALL
db SUPER_POTION
db HYPER_POTION
db REVIVE
db PARLYZ_HEAL
db AWAKENING
db BURN_HEAL
db LITEBLUEMAIL
db -1 ; end
MartCeladon2F1:
db 7 ; # items
db POTION
db SUPER_POTION
db HYPER_POTION
db MAX_POTION
db REVIVE
db SUPER_REPEL
db MAX_REPEL
db -1 ; end
MartCeladon2F2:
db 10 ; # items
db POKE_BALL
db GREAT_BALL
db ULTRA_BALL
db ESCAPE_ROPE
db FULL_HEAL
db ANTIDOTE
db BURN_HEAL
db ICE_HEAL
db AWAKENING
db PARLYZ_HEAL
db -1 ; end
MartCeladon3F:
db 5 ; # items
db TM_HIDDEN_POWER
db TM_SUNNY_DAY
db TM_PROTECT
db TM_RAIN_DANCE
db TM_SANDSTORM
db -1 ; end
MartCeladon4F:
db 3 ; # items
db POKE_DOLL
db LOVELY_MAIL
db SURF_MAIL
db -1 ; end
MartCeladon5F1:
db 5 ; # items
db HP_UP
db PROTEIN
db IRON
db CARBOS
db CALCIUM
db -1 ; end
MartCeladon5F2:
db 7 ; # items
db X_ACCURACY
db GUARD_SPEC
db DIRE_HIT
db X_ATTACK
db X_DEFEND
db X_SPEED
db X_SPECIAL
db -1 ; end
MartFuchsia:
db 7 ; # items
db GREAT_BALL
db ULTRA_BALL
db SUPER_POTION
db HYPER_POTION
db FULL_HEAL
db MAX_REPEL
db FLOWER_MAIL
db -1 ; end
MartSaffron:
db 8 ; # items
db GREAT_BALL
db ULTRA_BALL
db HYPER_POTION
db MAX_POTION
db FULL_HEAL
db X_ATTACK
db X_DEFEND
db FLOWER_MAIL
db -1 ; end
MartMtMoon:
db 6 ; # items
db POKE_DOLL
db FRESH_WATER
db SODA_POP
db LEMONADE
db REPEL
db PORTRAITMAIL
db -1 ; end
MartIndigoPlateau:
db 7 ; # items
db ULTRA_BALL
db MAX_REPEL
db HYPER_POTION
db MAX_POTION
db FULL_RESTORE
db REVIVE
db FULL_HEAL
db -1 ; end
MartUnderground:
db 4 ; # items
db ENERGYPOWDER
db ENERGY_ROOT
db HEAL_POWDER
db REVIVAL_HERB
db -1 ; end
DefaultMart:
db 2 ; # items
db POKE_BALL
db POTION
db -1 ; end

29
data/items/mom_phone.asm Normal file
View file

@ -0,0 +1,29 @@
MACRO momitem
; money to trigger, cost, kind, item
dt \1
dt \2
db \3, \4
ENDM
MomItems_1:
momitem 0, 600, MOM_ITEM, SUPER_POTION
momitem 0, 90, MOM_ITEM, ANTIDOTE
momitem 0, 180, MOM_ITEM, POKE_BALL
momitem 0, 450, MOM_ITEM, ESCAPE_ROPE
momitem 0, 500, MOM_ITEM, GREAT_BALL
.End
MomItems_2:
momitem 900, 600, MOM_ITEM, SUPER_POTION
momitem 4000, 270, MOM_ITEM, REPEL
momitem 7000, 600, MOM_ITEM, SUPER_POTION
momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL
momitem 15000, 3000, MOM_ITEM, MOON_STONE
momitem 19000, 600, MOM_ITEM, SUPER_POTION
momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL
momitem 40000, 900, MOM_ITEM, HYPER_POTION
momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL
momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL
.End
dt 0 ; unused

View file

@ -0,0 +1,39 @@
MysteryGiftItems:
db BERRY
db PRZCUREBERRY
db MINT_BERRY
db ICE_BERRY
db BURNT_BERRY
db PSNCUREBERRY
db GUARD_SPEC
db X_DEFEND
db X_ATTACK
db BITTER_BERRY
db DIRE_HIT
db X_SPECIAL
db X_ACCURACY
db EON_MAIL
db MORPH_MAIL
db MUSIC_MAIL
db MIRACLEBERRY
db GOLD_BERRY
db REVIVE
db GREAT_BALL
db SUPER_REPEL
db MAX_REPEL
db ELIXER
db ETHER
db WATER_STONE
db FIRE_STONE
db LEAF_STONE
db THUNDERSTONE
db MAX_ETHER
db MAX_ELIXER
db MAX_REVIVE
db SCOPE_LENS
db HP_UP
db PP_UP
db RARE_CANDY
db BLUESKY_MAIL
db MIRAGE_MAIL
.End

262
data/items/names.asm Normal file
View file

@ -0,0 +1,262 @@
ItemNames::
list_start ItemNames
li "MASTER BALL"
li "ULTRA BALL"
li "BRIGHTPOWDER"
li "GREAT BALL"
li "# BALL"
li "TERU-SAMA"
li "BICYCLE"
li "MOON STONE"
li "ANTIDOTE"
li "BURN HEAL"
li "ICE HEAL"
li "AWAKENING"
li "PARLYZ HEAL"
li "FULL RESTORE"
li "MAX POTION"
li "HYPER POTION"
li "SUPER POTION"
li "POTION"
li "ESCAPE ROPE"
li "REPEL"
li "MAX ELIXER"
li "FIRE STONE"
li "THUNDERSTONE"
li "WATER STONE"
li "TERU-SAMA"
li "HP UP"
li "PROTEIN"
li "IRON"
li "CARBOS"
li "LUCKY PUNCH"
li "CALCIUM"
li "RARE CANDY"
li "X ACCURACY"
li "LEAF STONE"
li "METAL POWDER"
li "NUGGET"
li "# DOLL"
li "FULL HEAL"
li "REVIVE"
li "MAX REVIVE"
li "GUARD SPEC."
li "SUPER REPEL"
li "MAX REPEL"
li "DIRE HIT"
li "TERU-SAMA"
li "FRESH WATER"
li "SODA POP"
li "LEMONADE"
li "X ATTACK"
li "TERU-SAMA"
li "X DEFEND"
li "X SPEED"
li "X SPECIAL"
li "COIN CASE"
li "ITEMFINDER"
li "TERU-SAMA"
li "EXP.SHARE"
li "OLD ROD"
li "GOOD ROD"
li "SILVER LEAF"
li "SUPER ROD"
li "PP UP"
li "ETHER"
li "MAX ETHER"
li "ELIXER"
li "RED SCALE"
li "SECRETPOTION"
li "S.S.TICKET"
li "MYSTERY EGG"
li "CLEAR BELL"
li "SILVER WING"
li "MOOMOO MILK"
li "QUICK CLAW"
li "PSNCUREBERRY"
li "GOLD LEAF"
li "SOFT SAND"
li "SHARP BEAK"
li "PRZCUREBERRY"
li "BURNT BERRY"
li "ICE BERRY"
li "POISON BARB"
li "KING'S ROCK"
li "BITTER BERRY"
li "MINT BERRY"
li "RED APRICORN"
li "TINYMUSHROOM"
li "BIG MUSHROOM"
li "SILVERPOWDER"
li "BLU APRICORN"
li "TERU-SAMA"
li "AMULET COIN"
li "YLW APRICORN"
li "GRN APRICORN"
li "CLEANSE TAG"
li "MYSTIC WATER"
li "TWISTEDSPOON"
li "WHT APRICORN"
li "BLACKBELT"
li "BLK APRICORN"
li "TERU-SAMA"
li "PNK APRICORN"
li "BLACKGLASSES"
li "SLOWPOKETAIL"
li "PINK BOW"
li "STICK"
li "SMOKE BALL"
li "NEVERMELTICE"
li "MAGNET"
li "MIRACLEBERRY"
li "PEARL"
li "BIG PEARL"
li "EVERSTONE"
li "SPELL TAG"
li "RAGECANDYBAR"
li "GS BALL"
li "BLUE CARD"
li "MIRACLE SEED"
li "THICK CLUB"
li "FOCUS BAND"
li "TERU-SAMA"
li "ENERGYPOWDER"
li "ENERGY ROOT"
li "HEAL POWDER"
li "REVIVAL HERB"
li "HARD STONE"
li "LUCKY EGG"
li "CARD KEY"
li "MACHINE PART"
li "EGG TICKET"
li "LOST ITEM"
li "STARDUST"
li "STAR PIECE"
li "BASEMENT KEY"
li "PASS"
li "TERU-SAMA"
li "TERU-SAMA"
li "TERU-SAMA"
li "CHARCOAL"
li "BERRY JUICE"
li "SCOPE LENS"
li "TERU-SAMA"
li "TERU-SAMA"
li "METAL COAT"
li "DRAGON FANG"
li "TERU-SAMA"
li "LEFTOVERS"
li "TERU-SAMA"
li "TERU-SAMA"
li "TERU-SAMA"
li "MYSTERYBERRY"
li "DRAGON SCALE"
li "BERSERK GENE"
li "TERU-SAMA"
li "TERU-SAMA"
li "TERU-SAMA"
li "SACRED ASH"
li "HEAVY BALL"
li "FLOWER MAIL"
li "LEVEL BALL"
li "LURE BALL"
li "FAST BALL"
li "TERU-SAMA"
li "LIGHT BALL"
li "FRIEND BALL"
li "MOON BALL"
li "LOVE BALL"
li "NORMAL BOX"
li "GORGEOUS BOX"
li "SUN STONE"
li "POLKADOT BOW"
li "TERU-SAMA"
li "UP-GRADE"
li "BERRY"
li "GOLD BERRY"
li "SQUIRTBOTTLE"
li "TERU-SAMA"
li "PARK BALL"
li "RAINBOW WING"
li "TERU-SAMA"
li "BRICK PIECE"
li "SURF MAIL"
li "LITEBLUEMAIL"
li "PORTRAITMAIL"
li "LOVELY MAIL"
li "EON MAIL"
li "MORPH MAIL"
li "BLUESKY MAIL"
li "MUSIC MAIL"
li "MIRAGE MAIL"
li "TERU-SAMA"
li "TERU-SAMA"
li "TERU-SAMA"
li "TERU-SAMA"
assert_list_length NUM_ITEMS
li "TM01"
li "TM02"
li "TM03"
li "TM04"
li "TM05"
li "TM06"
li "TM07"
li "TM08"
li "TM09"
li "TM10"
li "TM11"
li "TM12"
li "TM13"
li "TM14"
li "TM15"
li "TM16"
li "TM17"
li "TM18"
li "TM19"
li "TM20"
li "TM21"
li "TM22"
li "TM23"
li "TM24"
li "TM25"
li "TM26"
li "TM27"
li "TM28"
li "TM29"
li "TM30"
li "TM31"
li "TM32"
li "TM33"
li "TM34"
li "TM35"
li "TM36"
li "TM37"
li "TM38"
li "TM39"
li "TM40"
li "TM41"
li "TM42"
li "TM43"
li "TM44"
li "TM45"
li "TM46"
li "TM47"
li "TM48"
li "TM49"
li "TM50"
assert_list_length NUM_ITEMS + NUM_TMS
li "HM01"
li "HM02"
li "HM03"
li "HM04"
li "HM05"
li "HM06"
li "HM07"
assert_list_length NUM_ITEMS + NUM_TMS + NUM_HMS
li "TERU-SAMA"
li "TERU-SAMA"
li "TERU-SAMA"
li "TERU-SAMA"
li "TERU-SAMA"
li "?"
assert_list_length $100

View file

@ -0,0 +1,13 @@
ItemPocketNames:
; entries correspond to item type constants
table_width 2, ItemPocketNames
dw .Item
dw .Key
dw .Ball
dw .TM
assert_table_length NUM_ITEM_TYPES
.Item: db "ITEM POCKET@"
.Key: db "KEY POCKET@"
.Ball: db "BALL POCKET@"
.TM: db "TM POCKET@"

View file

@ -0,0 +1,17 @@
RooftopSaleMart1:
db 5
dbw POKE_BALL, 150
dbw GREAT_BALL, 500
dbw SUPER_POTION, 500
dbw FULL_HEAL, 500
dbw REVIVE, 1200
db -1
RooftopSaleMart2:
db 5
dbw HYPER_POTION, 1000
dbw FULL_RESTORE, 2000
dbw FULL_HEAL, 500
dbw ULTRA_BALL, 1000
dbw PROTEIN, 7800
db -1

6
data/items/x_stats.asm Normal file
View file

@ -0,0 +1,6 @@
XItemStats:
; item, stat
db X_ATTACK, ATTACK
db X_DEFEND, DEFENSE
db X_SPEED, SPEED
db X_SPECIAL, SP_ATTACK

697
data/maps/attributes.asm Normal file
View file

@ -0,0 +1,697 @@
MACRO map_attributes
;\1: map name
;\2: map id
;\3: border block
;\4: connections: combo of NORTH, SOUTH, WEST, and/or EAST, or 0 for none
DEF CURRENT_MAP_WIDTH = \2_WIDTH
DEF CURRENT_MAP_HEIGHT = \2_HEIGHT
\1_MapAttributes::
db \3
db CURRENT_MAP_HEIGHT, CURRENT_MAP_WIDTH
db BANK(\1_Blocks)
dw \1_Blocks
db BANK(\1_MapScripts) ; aka BANK(\1_MapEvents)
dw \1_MapScripts
dw \1_MapEvents
db \4
ENDM
; Connections go in order: north, south, west, east
MACRO connection
;\1: direction
;\2: map name
;\3: map id
;\4: offset of the target map relative to the current map
; (x offset for east/west, y offset for north/south)
; LEGACY: Support for old connection macro
if _NARG == 6
connection \1, \2, \3, (\4) - (\5)
else
; Calculate tile offsets for source (current) and target maps
DEF _src = 0
DEF _tgt = (\4) + 3
if _tgt < 0
DEF _src = -_tgt
DEF _tgt = 0
endc
if !STRCMP("\1", "north")
DEF _blk = \3_WIDTH * (\3_HEIGHT - 3) + _src
DEF _map = _tgt
DEF _win = (\3_WIDTH + 6) * \3_HEIGHT + 1
DEF _y = \3_HEIGHT * 2 - 1
DEF _x = (\4) * -2
DEF _len = CURRENT_MAP_WIDTH + 3 - (\4)
if _len > \3_WIDTH
DEF _len = \3_WIDTH
endc
elif !STRCMP("\1", "south")
DEF _blk = _src
DEF _map = (CURRENT_MAP_WIDTH + 6) * (CURRENT_MAP_HEIGHT + 3) + _tgt
DEF _win = \3_WIDTH + 7
DEF _y = 0
DEF _x = (\4) * -2
DEF _len = CURRENT_MAP_WIDTH + 3 - (\4)
if _len > \3_WIDTH
DEF _len = \3_WIDTH
endc
elif !STRCMP("\1", "west")
DEF _blk = (\3_WIDTH * _src) + \3_WIDTH - 3
DEF _map = (CURRENT_MAP_WIDTH + 6) * _tgt
DEF _win = (\3_WIDTH + 6) * 2 - 6
DEF _y = (\4) * -2
DEF _x = \3_WIDTH * 2 - 1
DEF _len = CURRENT_MAP_HEIGHT + 3 - (\4)
if _len > \3_HEIGHT
DEF _len = \3_HEIGHT
endc
elif !STRCMP("\1", "east")
DEF _blk = (\3_WIDTH * _src)
DEF _map = (CURRENT_MAP_WIDTH + 6) * _tgt + CURRENT_MAP_WIDTH + 3
DEF _win = \3_WIDTH + 7
DEF _y = (\4) * -2
DEF _x = 0
DEF _len = CURRENT_MAP_HEIGHT + 3 - (\4)
if _len > \3_HEIGHT
DEF _len = \3_HEIGHT
endc
else
fail "Invalid direction for 'connection'."
endc
map_id \3
dw \2_Blocks + _blk
dw wOverworldMapBlocks + _map
db _len - _src
db \3_WIDTH
db _y, _x
dw wOverworldMapBlocks + _win
endc
ENDM
map_attributes NewBarkTown, NEW_BARK_TOWN, $05, WEST | EAST
connection west, Route29, ROUTE_29, 0
connection east, Route27, ROUTE_27, 0
map_attributes CherrygroveCity, CHERRYGROVE_CITY, $35, NORTH | EAST
connection north, Route30, ROUTE_30, 5
connection east, Route29, ROUTE_29, 0
map_attributes VioletCity, VIOLET_CITY, $05, SOUTH | WEST | EAST
connection south, Route32, ROUTE_32, 0
connection west, Route36, ROUTE_36, 0
connection east, Route31, ROUTE_31, 9
map_attributes AzaleaTown, AZALEA_TOWN, $05, WEST | EAST
connection west, Route34, ROUTE_34, -18
connection east, Route33, ROUTE_33, 0
map_attributes CianwoodCity, CIANWOOD_CITY, $35, EAST
connection east, Route41, ROUTE_41, 0
map_attributes GoldenrodCity, GOLDENROD_CITY, $35, NORTH | SOUTH
connection north, Route35, ROUTE_35, 5
connection south, Route34, ROUTE_34, 5
map_attributes OlivineCity, OLIVINE_CITY, $35, NORTH | WEST
connection north, Route39, ROUTE_39, 5
connection west, Route40, ROUTE_40, 9
map_attributes EcruteakCity, ECRUTEAK_CITY, $05, SOUTH | WEST | EAST
connection south, Route37, ROUTE_37, 5
connection west, Route38, ROUTE_38, 5
connection east, Route42, ROUTE_42, 9
map_attributes MahoganyTown, MAHOGANY_TOWN, $71, NORTH | WEST | EAST
connection north, Route43, ROUTE_43, 0
connection west, Route42, ROUTE_42, 0
connection east, Route44, ROUTE_44, 0
map_attributes LakeOfRage, LAKE_OF_RAGE, $05, SOUTH
connection south, Route43, ROUTE_43, 5
map_attributes BlackthornCity, BLACKTHORN_CITY, $71, SOUTH | WEST
connection south, Route45, ROUTE_45, 0
connection west, Route44, ROUTE_44, 9
map_attributes SilverCaveOutside, SILVER_CAVE_OUTSIDE, $2c, EAST
connection east, Route28, ROUTE_28, 9
map_attributes Route26, ROUTE_26, $05, WEST
connection west, Route27, ROUTE_27, 45
map_attributes Route27, ROUTE_27, $35, WEST | EAST
connection west, NewBarkTown, NEW_BARK_TOWN, 0
connection east, Route26, ROUTE_26, -45
map_attributes Route28, ROUTE_28, $2c, WEST
connection west, SilverCaveOutside, SILVER_CAVE_OUTSIDE, -9
map_attributes Route29, ROUTE_29, $05, NORTH | WEST | EAST
connection north, Route46, ROUTE_46, 10
connection west, CherrygroveCity, CHERRYGROVE_CITY, 0
connection east, NewBarkTown, NEW_BARK_TOWN, 0
map_attributes Route30, ROUTE_30, $05, NORTH | SOUTH
connection north, Route31, ROUTE_31, -10
connection south, CherrygroveCity, CHERRYGROVE_CITY, -5
map_attributes Route31, ROUTE_31, $05, SOUTH | WEST
connection south, Route30, ROUTE_30, 10
connection west, VioletCity, VIOLET_CITY, -9
map_attributes Route32, ROUTE_32, $05, NORTH | SOUTH
connection north, VioletCity, VIOLET_CITY, 0
connection south, Route33, ROUTE_33, 0
map_attributes Route33, ROUTE_33, $05, NORTH | WEST
connection north, Route32, ROUTE_32, 0
connection west, AzaleaTown, AZALEA_TOWN, 0
map_attributes Route34, ROUTE_34, $05, NORTH | EAST
connection north, GoldenrodCity, GOLDENROD_CITY, -5
connection east, AzaleaTown, AZALEA_TOWN, 18
map_attributes Route35, ROUTE_35, $05, NORTH | SOUTH
connection north, Route36, ROUTE_36, 0
connection south, GoldenrodCity, GOLDENROD_CITY, -5
map_attributes Route36, ROUTE_36, $05, NORTH | SOUTH | EAST
connection north, Route37, ROUTE_37, 10
connection south, Route35, ROUTE_35, 0
connection east, VioletCity, VIOLET_CITY, 0
map_attributes Route37, ROUTE_37, $05, NORTH | SOUTH
connection north, EcruteakCity, ECRUTEAK_CITY, -5
connection south, Route36, ROUTE_36, -10
map_attributes Route38, ROUTE_38, $05, WEST | EAST
connection west, Route39, ROUTE_39, 0
connection east, EcruteakCity, ECRUTEAK_CITY, -5
map_attributes Route39, ROUTE_39, $05, SOUTH | EAST
connection south, OlivineCity, OLIVINE_CITY, -5
connection east, Route38, ROUTE_38, 0
map_attributes Route40, ROUTE_40, $35, SOUTH | EAST
connection south, Route41, ROUTE_41, -15
connection east, OlivineCity, OLIVINE_CITY, -9
map_attributes Route41, ROUTE_41, $35, NORTH | WEST
connection north, Route40, ROUTE_40, 15
connection west, CianwoodCity, CIANWOOD_CITY, 0
map_attributes Route42, ROUTE_42, $05, WEST | EAST
connection west, EcruteakCity, ECRUTEAK_CITY, -9
connection east, MahoganyTown, MAHOGANY_TOWN, 0
map_attributes Route43, ROUTE_43, $05, NORTH | SOUTH
connection north, LakeOfRage, LAKE_OF_RAGE, -5
connection south, MahoganyTown, MAHOGANY_TOWN, 0
map_attributes Route44, ROUTE_44, $71, WEST | EAST
connection west, MahoganyTown, MAHOGANY_TOWN, 0
connection east, BlackthornCity, BLACKTHORN_CITY, -9
map_attributes Route45, ROUTE_45, $71, NORTH | WEST
connection north, BlackthornCity, BLACKTHORN_CITY, 0
connection west, Route46, ROUTE_46, 36
map_attributes Route46, ROUTE_46, $05, SOUTH | EAST
connection south, Route29, ROUTE_29, -10
connection east, Route45, ROUTE_45, -36
map_attributes PewterCity, PEWTER_CITY, $0f, SOUTH | EAST
connection south, Route2, ROUTE_2, 5
connection east, Route3, ROUTE_3, 5
map_attributes Route2, ROUTE_2, $0f, NORTH | SOUTH
connection north, PewterCity, PEWTER_CITY, -5
connection south, ViridianCity, VIRIDIAN_CITY, -5
map_attributes ViridianCity, VIRIDIAN_CITY, $0f, NORTH | SOUTH | WEST
connection north, Route2, ROUTE_2, 5
connection south, Route1, ROUTE_1, 10
connection west, Route22, ROUTE_22, 4
map_attributes Route22, ROUTE_22, $2c, EAST
connection east, ViridianCity, VIRIDIAN_CITY, -4
map_attributes Route1, ROUTE_1, $0f, NORTH | SOUTH
connection north, ViridianCity, VIRIDIAN_CITY, -10
connection south, PalletTown, PALLET_TOWN, 0
map_attributes PalletTown, PALLET_TOWN, $0f, NORTH | SOUTH
connection north, Route1, ROUTE_1, 0
connection south, Route21, ROUTE_21, 0
map_attributes Route21, ROUTE_21, $43, NORTH | SOUTH
connection north, PalletTown, PALLET_TOWN, 0
connection south, CinnabarIsland, CINNABAR_ISLAND, 0
map_attributes CinnabarIsland, CINNABAR_ISLAND, $43, NORTH | EAST
connection north, Route21, ROUTE_21, 0
connection east, Route20, ROUTE_20, 0
map_attributes Route20, ROUTE_20, $43, WEST | EAST
connection west, CinnabarIsland, CINNABAR_ISLAND, 0
connection east, Route19, ROUTE_19, -9
map_attributes Route19, ROUTE_19, $43, NORTH | WEST
connection north, FuchsiaCity, FUCHSIA_CITY, 0
connection west, Route20, ROUTE_20, 9
map_attributes FuchsiaCity, FUCHSIA_CITY, $0f, SOUTH | WEST | EAST
connection south, Route19, ROUTE_19, 0
connection west, Route18, ROUTE_18, 7
connection east, Route15, ROUTE_15, 9
map_attributes Route18, ROUTE_18, $43, WEST | EAST
connection west, Route17, ROUTE_17, -38
connection east, FuchsiaCity, FUCHSIA_CITY, -7
map_attributes Route17, ROUTE_17, $43, NORTH | EAST
connection north, Route16, ROUTE_16, 0
connection east, Route18, ROUTE_18, 38
map_attributes Route16, ROUTE_16, $0f, SOUTH | EAST
connection south, Route17, ROUTE_17, 0
connection east, CeladonCity, CELADON_CITY, -9
map_attributes CeladonCity, CELADON_CITY, $0f, WEST | EAST
connection west, Route16, ROUTE_16, 9
connection east, Route7, ROUTE_7, 5
map_attributes Route7, ROUTE_7, $0f, WEST | EAST
connection west, CeladonCity, CELADON_CITY, -5
connection east, SaffronCity, SAFFRON_CITY, -9
map_attributes Route15, ROUTE_15, $0f, WEST | EAST
connection west, FuchsiaCity, FUCHSIA_CITY, -9
connection east, Route14, ROUTE_14, -9
map_attributes Route14, ROUTE_14, $43, NORTH | WEST
connection north, Route13, ROUTE_13, 0
connection west, Route15, ROUTE_15, 9
map_attributes Route13, ROUTE_13, $43, NORTH | SOUTH
connection north, Route12, ROUTE_12, 20
connection south, Route14, ROUTE_14, 0
map_attributes Route12, ROUTE_12, $43, NORTH | SOUTH | WEST
connection north, LavenderTown, LAVENDER_TOWN, 0
connection south, Route13, ROUTE_13, -20
connection west, Route11, ROUTE_11, 9
map_attributes Route11, ROUTE_11, $0f, WEST | EAST
connection west, VermilionCity, VERMILION_CITY, 0
connection east, Route12, ROUTE_12, -9
map_attributes LavenderTown, LAVENDER_TOWN, $2c, NORTH | SOUTH | WEST
connection north, Route10South, ROUTE_10_SOUTH, 0
connection south, Route12, ROUTE_12, 0
connection west, Route8, ROUTE_8, 0
map_attributes VermilionCity, VERMILION_CITY, $43, NORTH | EAST
connection north, Route6, ROUTE_6, 5
connection east, Route11, ROUTE_11, 0
map_attributes Route6, ROUTE_6, $0f, NORTH | SOUTH
connection north, SaffronCity, SAFFRON_CITY, -5
connection south, VermilionCity, VERMILION_CITY, -5
map_attributes SaffronCity, SAFFRON_CITY, $0f, NORTH | SOUTH | WEST | EAST
connection north, Route5, ROUTE_5, 5
connection south, Route6, ROUTE_6, 5
connection west, Route7, ROUTE_7, 9
connection east, Route8, ROUTE_8, 9
map_attributes Route5, ROUTE_5, $0f, NORTH | SOUTH
connection north, CeruleanCity, CERULEAN_CITY, -5
connection south, SaffronCity, SAFFRON_CITY, -5
map_attributes CeruleanCity, CERULEAN_CITY, $0f, NORTH | SOUTH | WEST | EAST
connection north, Route24, ROUTE_24, 6
connection south, Route5, ROUTE_5, 5
connection west, Route4, ROUTE_4, 5
connection east, Route9, ROUTE_9, 9
map_attributes Route9, ROUTE_9, $2c, SOUTH | WEST
connection south, Route10North, ROUTE_10_NORTH, 20
connection west, CeruleanCity, CERULEAN_CITY, -9
map_attributes Route24, ROUTE_24, $2c, NORTH | SOUTH
connection north, Route25, ROUTE_25, 0
connection south, CeruleanCity, CERULEAN_CITY, -6
map_attributes Route25, ROUTE_25, $2c, SOUTH
connection south, Route24, ROUTE_24, 0
map_attributes Route3, ROUTE_3, $2c, WEST | EAST
connection west, PewterCity, PEWTER_CITY, -5
connection east, Route4, ROUTE_4, 0
map_attributes Route4, ROUTE_4, $2c, WEST | EAST
connection west, Route3, ROUTE_3, 0
connection east, CeruleanCity, CERULEAN_CITY, -5
map_attributes Route8, ROUTE_8, $2c, WEST | EAST
connection west, SaffronCity, SAFFRON_CITY, -9
connection east, LavenderTown, LAVENDER_TOWN, 0
map_attributes Route10North, ROUTE_10_NORTH, $2c, NORTH | SOUTH
connection north, Route9, ROUTE_9, -20
connection south, Route10South, ROUTE_10_SOUTH, 0
map_attributes Route10South, ROUTE_10_SOUTH, $2c, NORTH | SOUTH
connection north, Route10North, ROUTE_10_NORTH, 0
connection south, LavenderTown, LAVENDER_TOWN, 0
map_attributes Route23, ROUTE_23, $0f, 0
map_attributes SproutTower1F, SPROUT_TOWER_1F, $00, 0
map_attributes SproutTower2F, SPROUT_TOWER_2F, $00, 0
map_attributes SproutTower3F, SPROUT_TOWER_3F, $00, 0
map_attributes TinTower1F, TIN_TOWER_1F, $00, 0
map_attributes TinTower2F, TIN_TOWER_2F, $00, 0
map_attributes TinTower3F, TIN_TOWER_3F, $00, 0
map_attributes TinTower4F, TIN_TOWER_4F, $00, 0
map_attributes TinTower5F, TIN_TOWER_5F, $00, 0
map_attributes TinTower6F, TIN_TOWER_6F, $00, 0
map_attributes TinTower7F, TIN_TOWER_7F, $00, 0
map_attributes TinTower8F, TIN_TOWER_8F, $00, 0
map_attributes TinTower9F, TIN_TOWER_9F, $00, 0
map_attributes BurnedTower1F, BURNED_TOWER_1F, $00, 0
map_attributes BurnedTowerB1F, BURNED_TOWER_B1F, $09, 0
map_attributes NationalPark, NATIONAL_PARK, $00, 0
map_attributes NationalParkBugContest, NATIONAL_PARK_BUG_CONTEST, $00, 0
map_attributes RadioTower1F, RADIO_TOWER_1F, $00, 0
map_attributes RadioTower2F, RADIO_TOWER_2F, $00, 0
map_attributes RadioTower3F, RADIO_TOWER_3F, $00, 0
map_attributes RadioTower4F, RADIO_TOWER_4F, $00, 0
map_attributes RadioTower5F, RADIO_TOWER_5F, $00, 0
map_attributes RuinsOfAlphOutside, RUINS_OF_ALPH_OUTSIDE, $05, 0
map_attributes RuinsOfAlphHoOhChamber, RUINS_OF_ALPH_HO_OH_CHAMBER, $00, 0
map_attributes RuinsOfAlphKabutoChamber, RUINS_OF_ALPH_KABUTO_CHAMBER, $00, 0
map_attributes RuinsOfAlphOmanyteChamber, RUINS_OF_ALPH_OMANYTE_CHAMBER, $00, 0
map_attributes RuinsOfAlphAerodactylChamber, RUINS_OF_ALPH_AERODACTYL_CHAMBER, $00, 0
map_attributes RuinsOfAlphInnerChamber, RUINS_OF_ALPH_INNER_CHAMBER, $00, 0
map_attributes RuinsOfAlphResearchCenter, RUINS_OF_ALPH_RESEARCH_CENTER, $00, 0
map_attributes RuinsOfAlphHoOhItemRoom, RUINS_OF_ALPH_HO_OH_ITEM_ROOM, $00, 0
map_attributes RuinsOfAlphKabutoItemRoom, RUINS_OF_ALPH_KABUTO_ITEM_ROOM, $00, 0
map_attributes RuinsOfAlphOmanyteItemRoom, RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, $00, 0
map_attributes RuinsOfAlphAerodactylItemRoom, RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, $00, 0
map_attributes RuinsOfAlphHoOhWordRoom, RUINS_OF_ALPH_HO_OH_WORD_ROOM, $00, 0
map_attributes RuinsOfAlphKabutoWordRoom, RUINS_OF_ALPH_KABUTO_WORD_ROOM, $00, 0
map_attributes RuinsOfAlphOmanyteWordRoom, RUINS_OF_ALPH_OMANYTE_WORD_ROOM, $00, 0
map_attributes RuinsOfAlphAerodactylWordRoom, RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, $00, 0
map_attributes UnionCave1F, UNION_CAVE_1F, $09, 0
map_attributes UnionCaveB1F, UNION_CAVE_B1F, $09, 0
map_attributes UnionCaveB2F, UNION_CAVE_B2F, $09, 0
map_attributes SlowpokeWellB1F, SLOWPOKE_WELL_B1F, $09, 0
map_attributes SlowpokeWellB2F, SLOWPOKE_WELL_B2F, $09, 0
map_attributes OlivineLighthouse1F, OLIVINE_LIGHTHOUSE_1F, $00, 0
map_attributes OlivineLighthouse2F, OLIVINE_LIGHTHOUSE_2F, $00, 0
map_attributes OlivineLighthouse3F, OLIVINE_LIGHTHOUSE_3F, $00, 0
map_attributes OlivineLighthouse4F, OLIVINE_LIGHTHOUSE_4F, $00, 0
map_attributes OlivineLighthouse5F, OLIVINE_LIGHTHOUSE_5F, $00, 0
map_attributes OlivineLighthouse6F, OLIVINE_LIGHTHOUSE_6F, $00, 0
map_attributes MahoganyMart1F, MAHOGANY_MART_1F, $00, 0
map_attributes TeamRocketBaseB1F, TEAM_ROCKET_BASE_B1F, $00, 0
map_attributes TeamRocketBaseB2F, TEAM_ROCKET_BASE_B2F, $00, 0
map_attributes TeamRocketBaseB3F, TEAM_ROCKET_BASE_B3F, $00, 0
map_attributes IlexForest, ILEX_FOREST, $05, 0
map_attributes GoldenrodUnderground, GOLDENROD_UNDERGROUND, $00, 0
map_attributes GoldenrodUndergroundSwitchRoomEntrances, GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, $00, 0
map_attributes GoldenrodDeptStoreB1F, GOLDENROD_DEPT_STORE_B1F, $00, 0
map_attributes GoldenrodUndergroundWarehouse, GOLDENROD_UNDERGROUND_WAREHOUSE, $00, 0
map_attributes MountMortar1FOutside, MOUNT_MORTAR_1F_OUTSIDE, $09, 0
map_attributes MountMortar1FInside, MOUNT_MORTAR_1F_INSIDE, $09, 0
map_attributes MountMortar2FInside, MOUNT_MORTAR_2F_INSIDE, $09, 0
map_attributes MountMortarB1F, MOUNT_MORTAR_B1F, $09, 0
map_attributes IcePath1F, ICE_PATH_1F, $09, 0
map_attributes IcePathB1F, ICE_PATH_B1F, $19, 0
map_attributes IcePathB2FMahoganySide, ICE_PATH_B2F_MAHOGANY_SIDE, $19, 0
map_attributes IcePathB2FBlackthornSide, ICE_PATH_B2F_BLACKTHORN_SIDE, $19, 0
map_attributes IcePathB3F, ICE_PATH_B3F, $19, 0
map_attributes WhirlIslandNW, WHIRL_ISLAND_NW, $09, 0
map_attributes WhirlIslandNE, WHIRL_ISLAND_NE, $09, 0
map_attributes WhirlIslandSW, WHIRL_ISLAND_SW, $09, 0
map_attributes WhirlIslandCave, WHIRL_ISLAND_CAVE, $09, 0
map_attributes WhirlIslandSE, WHIRL_ISLAND_SE, $0f, 0
map_attributes WhirlIslandB1F, WHIRL_ISLAND_B1F, $09, 0
map_attributes WhirlIslandB2F, WHIRL_ISLAND_B2F, $2e, 0
map_attributes WhirlIslandLugiaChamber, WHIRL_ISLAND_LUGIA_CHAMBER, $0f, 0
map_attributes SilverCaveRoom1, SILVER_CAVE_ROOM_1, $09, 0
map_attributes SilverCaveRoom2, SILVER_CAVE_ROOM_2, $09, 0
map_attributes SilverCaveRoom3, SILVER_CAVE_ROOM_3, $09, 0
map_attributes SilverCaveItemRooms, SILVER_CAVE_ITEM_ROOMS, $09, 0
map_attributes DarkCaveVioletEntrance, DARK_CAVE_VIOLET_ENTRANCE, $09, 0
map_attributes DarkCaveBlackthornEntrance, DARK_CAVE_BLACKTHORN_ENTRANCE, $09, 0
map_attributes DragonsDen1F, DRAGONS_DEN_1F, $09, 0
map_attributes DragonsDenB1F, DRAGONS_DEN_B1F, $71, 0
map_attributes DragonShrine, DRAGON_SHRINE, $00, 0
map_attributes TohjoFalls, TOHJO_FALLS, $09, 0
map_attributes OlivinePokecenter1F, OLIVINE_POKECENTER_1F, $00, 0
map_attributes OlivineGym, OLIVINE_GYM, $00, 0
map_attributes OlivineTimsHouse, OLIVINE_TIMS_HOUSE, $00, 0
map_attributes OlivineHouseBeta, OLIVINE_HOUSE_BETA, $00, 0
map_attributes OlivinePunishmentSpeechHouse, OLIVINE_PUNISHMENT_SPEECH_HOUSE, $00, 0
map_attributes OlivineGoodRodHouse, OLIVINE_GOOD_ROD_HOUSE, $00, 0
map_attributes OlivineCafe, OLIVINE_CAFE, $00, 0
map_attributes OlivineMart, OLIVINE_MART, $00, 0
map_attributes Route38EcruteakGate, ROUTE_38_ECRUTEAK_GATE, $00, 0
map_attributes Route39Barn, ROUTE_39_BARN, $00, 0
map_attributes Route39Farmhouse, ROUTE_39_FARMHOUSE, $00, 0
map_attributes MahoganyRedGyaradosSpeechHouse, MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, $00, 0
map_attributes MahoganyGym, MAHOGANY_GYM, $00, 0
map_attributes MahoganyPokecenter1F, MAHOGANY_POKECENTER_1F, $00, 0
map_attributes Route42EcruteakGate, ROUTE_42_ECRUTEAK_GATE, $00, 0
map_attributes DiglettsCave, DIGLETTS_CAVE, $09, 0
map_attributes MountMoon, MOUNT_MOON, $09, 0
map_attributes UndergroundPath, UNDERGROUND_PATH, $00, 0
map_attributes RockTunnel1F, ROCK_TUNNEL_1F, $09, 0
map_attributes RockTunnelB1F, ROCK_TUNNEL_B1F, $09, 0
map_attributes SafariZoneFuchsiaGateBeta, SAFARI_ZONE_FUCHSIA_GATE_BETA, $00, 0
map_attributes SafariZoneBeta, SAFARI_ZONE_BETA, $13, 0
map_attributes VictoryRoad, VICTORY_ROAD, $1d, 0
map_attributes EcruteakTinTowerEntrance, ECRUTEAK_TIN_TOWER_ENTRANCE, $00, 0
map_attributes WiseTriosRoom, WISE_TRIOS_ROOM, $00, 0
map_attributes EcruteakPokecenter1F, ECRUTEAK_POKECENTER_1F, $00, 0
map_attributes EcruteakLugiaSpeechHouse, ECRUTEAK_LUGIA_SPEECH_HOUSE, $00, 0
map_attributes DanceTheater, DANCE_THEATER, $00, 0
map_attributes EcruteakMart, ECRUTEAK_MART, $00, 0
map_attributes EcruteakGym, ECRUTEAK_GYM, $00, 0
map_attributes EcruteakItemfinderHouse, ECRUTEAK_ITEMFINDER_HOUSE, $00, 0
map_attributes BlackthornGym1F, BLACKTHORN_GYM_1F, $00, 0
map_attributes BlackthornGym2F, BLACKTHORN_GYM_2F, $00, 0
map_attributes BlackthornDragonSpeechHouse, BLACKTHORN_DRAGON_SPEECH_HOUSE, $00, 0
map_attributes BlackthornEmysHouse, BLACKTHORN_EMYS_HOUSE, $00, 0
map_attributes BlackthornMart, BLACKTHORN_MART, $00, 0
map_attributes BlackthornPokecenter1F, BLACKTHORN_POKECENTER_1F, $00, 0
map_attributes MoveDeletersHouse, MOVE_DELETERS_HOUSE, $00, 0
map_attributes CinnabarPokecenter1F, CINNABAR_POKECENTER_1F, $00, 0
map_attributes CinnabarPokecenter2FBeta, CINNABAR_POKECENTER_2F_BETA, $00, 0
map_attributes Route19FuchsiaGate, ROUTE_19_FUCHSIA_GATE, $00, 0
map_attributes SeafoamGym, SEAFOAM_GYM, $09, 0
map_attributes CeruleanGymBadgeSpeechHouse, CERULEAN_GYM_BADGE_SPEECH_HOUSE, $00, 0
map_attributes CeruleanPoliceStation, CERULEAN_POLICE_STATION, $00, 0
map_attributes CeruleanTradeSpeechHouse, CERULEAN_TRADE_SPEECH_HOUSE, $00, 0
map_attributes CeruleanPokecenter1F, CERULEAN_POKECENTER_1F, $00, 0
map_attributes CeruleanPokecenter2FBeta, CERULEAN_POKECENTER_2F_BETA, $00, 0
map_attributes CeruleanGym, CERULEAN_GYM, $00, 0
map_attributes CeruleanMart, CERULEAN_MART, $00, 0
map_attributes Route10Pokecenter1F, ROUTE_10_POKECENTER_1F, $00, 0
map_attributes Route10Pokecenter2FBeta, ROUTE_10_POKECENTER_2F_BETA, $00, 0
map_attributes PowerPlant, POWER_PLANT, $00, 0
map_attributes BillsHouse, BILLS_HOUSE, $00, 0
map_attributes AzaleaPokecenter1F, AZALEA_POKECENTER_1F, $00, 0
map_attributes CharcoalKiln, CHARCOAL_KILN, $00, 0
map_attributes AzaleaMart, AZALEA_MART, $00, 0
map_attributes KurtsHouse, KURTS_HOUSE, $00, 0
map_attributes AzaleaGym, AZALEA_GYM, $00, 0
map_attributes LakeOfRageHiddenPowerHouse, LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, $00, 0
map_attributes LakeOfRageMagikarpHouse, LAKE_OF_RAGE_MAGIKARP_HOUSE, $00, 0
map_attributes Route43MahoganyGate, ROUTE_43_MAHOGANY_GATE, $00, 0
map_attributes Route43Gate, ROUTE_43_GATE, $00, 0
map_attributes VioletMart, VIOLET_MART, $00, 0
map_attributes VioletGym, VIOLET_GYM, $00, 0
map_attributes EarlsPokemonAcademy, EARLS_POKEMON_ACADEMY, $00, 0
map_attributes VioletNicknameSpeechHouse, VIOLET_NICKNAME_SPEECH_HOUSE, $00, 0
map_attributes VioletPokecenter1F, VIOLET_POKECENTER_1F, $00, 0
map_attributes VioletKylesHouse, VIOLET_KYLES_HOUSE, $00, 0
map_attributes Route32RuinsOfAlphGate, ROUTE_32_RUINS_OF_ALPH_GATE, $00, 0
map_attributes Route32Pokecenter1F, ROUTE_32_POKECENTER_1F, $00, 0
map_attributes Route35GoldenrodGate, ROUTE_35_GOLDENROD_GATE, $00, 0
map_attributes Route35NationalParkGate, ROUTE_35_NATIONAL_PARK_GATE, $00, 0
map_attributes Route36RuinsOfAlphGate, ROUTE_36_RUINS_OF_ALPH_GATE, $00, 0
map_attributes Route36NationalParkGate, ROUTE_36_NATIONAL_PARK_GATE, $00, 0
map_attributes GoldenrodGym, GOLDENROD_GYM, $00, 0
map_attributes GoldenrodBikeShop, GOLDENROD_BIKE_SHOP, $00, 0
map_attributes GoldenrodHappinessRater, GOLDENROD_HAPPINESS_RATER, $00, 0
map_attributes BillsFamilysHouse, BILLS_FAMILYS_HOUSE, $00, 0
map_attributes GoldenrodMagnetTrainStation, GOLDENROD_MAGNET_TRAIN_STATION, $00, 0
map_attributes GoldenrodFlowerShop, GOLDENROD_FLOWER_SHOP, $00, 0
map_attributes GoldenrodPPSpeechHouse, GOLDENROD_PP_SPEECH_HOUSE, $00, 0
map_attributes GoldenrodNameRater, GOLDENROD_NAME_RATER, $00, 0
map_attributes GoldenrodDeptStore1F, GOLDENROD_DEPT_STORE_1F, $00, 0
map_attributes GoldenrodDeptStore2F, GOLDENROD_DEPT_STORE_2F, $00, 0
map_attributes GoldenrodDeptStore3F, GOLDENROD_DEPT_STORE_3F, $00, 0
map_attributes GoldenrodDeptStore4F, GOLDENROD_DEPT_STORE_4F, $00, 0
map_attributes GoldenrodDeptStore5F, GOLDENROD_DEPT_STORE_5F, $00, 0
map_attributes GoldenrodDeptStore6F, GOLDENROD_DEPT_STORE_6F, $00, 0
map_attributes GoldenrodDeptStoreElevator, GOLDENROD_DEPT_STORE_ELEVATOR, $00, 0
map_attributes GoldenrodDeptStoreRoof, GOLDENROD_DEPT_STORE_ROOF, $24, 0
map_attributes GoldenrodGameCorner, GOLDENROD_GAME_CORNER, $00, 0
map_attributes GoldenrodPokecenter1F, GOLDENROD_POKECENTER_1F, $00, 0
map_attributes PokecomCenterAdminOfficeMobile, POKECOM_CENTER_ADMIN_OFFICE_MOBILE, $00, 0
map_attributes IlexForestAzaleaGate, ILEX_FOREST_AZALEA_GATE, $00, 0
map_attributes Route34IlexForestGate, ROUTE_34_ILEX_FOREST_GATE, $00, 0
map_attributes DayCare, DAY_CARE, $00, 0
map_attributes VermilionFishingSpeechHouse, VERMILION_FISHING_SPEECH_HOUSE, $00, 0
map_attributes VermilionPokecenter1F, VERMILION_POKECENTER_1F, $00, 0
map_attributes VermilionPokecenter2FBeta, VERMILION_POKECENTER_2F_BETA, $00, 0
map_attributes PokemonFanClub, POKEMON_FAN_CLUB, $00, 0
map_attributes VermilionMagnetTrainSpeechHouse, VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, $00, 0
map_attributes VermilionMart, VERMILION_MART, $00, 0
map_attributes VermilionDiglettsCaveSpeechHouse, VERMILION_DIGLETTS_CAVE_SPEECH_HOUSE, $00, 0
map_attributes VermilionGym, VERMILION_GYM, $00, 0
map_attributes Route6SaffronGate, ROUTE_6_SAFFRON_GATE, $00, 0
map_attributes Route6UndergroundPathEntrance, ROUTE_6_UNDERGROUND_PATH_ENTRANCE, $00, 0
map_attributes RedsHouse1F, REDS_HOUSE_1F, $00, 0
map_attributes RedsHouse2F, REDS_HOUSE_2F, $00, 0
map_attributes BluesHouse, BLUES_HOUSE, $00, 0
map_attributes OaksLab, OAKS_LAB, $00, 0
map_attributes PewterNidoranSpeechHouse, PEWTER_NIDORAN_SPEECH_HOUSE, $00, 0
map_attributes PewterGym, PEWTER_GYM, $00, 0
map_attributes PewterMart, PEWTER_MART, $00, 0
map_attributes PewterPokecenter1F, PEWTER_POKECENTER_1F, $00, 0
map_attributes PewterPokecenter2FBeta, PEWTER_POKECENTER_2F_BETA, $00, 0
map_attributes PewterSnoozeSpeechHouse, PEWTER_SNOOZE_SPEECH_HOUSE, $00, 0
map_attributes OlivinePort, OLIVINE_PORT, $0a, 0
map_attributes VermilionPort, VERMILION_PORT, $0a, 0
map_attributes FastShip1F, FAST_SHIP_1F, $00, 0
map_attributes FastShipCabins_NNW_NNE_NE, FAST_SHIP_CABINS_NNW_NNE_NE, $00, 0
map_attributes FastShipCabins_SW_SSW_NW, FAST_SHIP_CABINS_SW_SSW_NW, $00, 0
map_attributes FastShipCabins_SE_SSE_CaptainsCabin, FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, $00, 0
map_attributes FastShipB1F, FAST_SHIP_B1F, $00, 0
map_attributes OlivinePortPassage, OLIVINE_PORT_PASSAGE, $00, 0
map_attributes VermilionPortPassage, VERMILION_PORT_PASSAGE, $00, 0
map_attributes MountMoonSquare, MOUNT_MOON_SQUARE, $2d, 0
map_attributes MountMoonGiftShop, MOUNT_MOON_GIFT_SHOP, $00, 0
map_attributes TinTowerRoof, TIN_TOWER_ROOF, $00, 0
map_attributes IndigoPlateauPokecenter1F, INDIGO_PLATEAU_POKECENTER_1F, $00, 0
map_attributes WillsRoom, WILLS_ROOM, $00, 0
map_attributes KogasRoom, KOGAS_ROOM, $00, 0
map_attributes BrunosRoom, BRUNOS_ROOM, $00, 0
map_attributes KarensRoom, KARENS_ROOM, $00, 0
map_attributes LancesRoom, LANCES_ROOM, $00, 0
map_attributes HallOfFame, HALL_OF_FAME, $00, 0
map_attributes FuchsiaMart, FUCHSIA_MART, $00, 0
map_attributes SafariZoneMainOffice, SAFARI_ZONE_MAIN_OFFICE, $00, 0
map_attributes FuchsiaGym, FUCHSIA_GYM, $00, 0
map_attributes BillsBrothersHouse, BILLS_BROTHERS_HOUSE, $00, 0
map_attributes FuchsiaPokecenter1F, FUCHSIA_POKECENTER_1F, $00, 0
map_attributes FuchsiaPokecenter2FBeta, FUCHSIA_POKECENTER_2F_BETA, $00, 0
map_attributes SafariZoneWardensHome, SAFARI_ZONE_WARDENS_HOME, $00, 0
map_attributes Route15FuchsiaGate, ROUTE_15_FUCHSIA_GATE, $00, 0
map_attributes LavenderPokecenter1F, LAVENDER_POKECENTER_1F, $00, 0
map_attributes LavenderPokecenter2FBeta, LAVENDER_POKECENTER_2F_BETA, $00, 0
map_attributes MrFujisHouse, MR_FUJIS_HOUSE, $00, 0
map_attributes LavenderSpeechHouse, LAVENDER_SPEECH_HOUSE, $00, 0
map_attributes LavenderNameRater, LAVENDER_NAME_RATER, $00, 0
map_attributes LavenderMart, LAVENDER_MART, $00, 0
map_attributes SoulHouse, SOUL_HOUSE, $00, 0
map_attributes LavRadioTower1F, LAV_RADIO_TOWER_1F, $00, 0
map_attributes Route8SaffronGate, ROUTE_8_SAFFRON_GATE, $00, 0
map_attributes Route12SuperRodHouse, ROUTE_12_SUPER_ROD_HOUSE, $00, 0
map_attributes SilverCavePokecenter1F, SILVER_CAVE_POKECENTER_1F, $00, 0
map_attributes Route28SteelWingHouse, ROUTE_28_STEEL_WING_HOUSE, $00, 0
map_attributes Pokecenter2F, POKECENTER_2F, $00, 0
map_attributes TradeCenter, TRADE_CENTER, $00, 0
map_attributes Colosseum, COLOSSEUM, $00, 0
map_attributes TimeCapsule, TIME_CAPSULE, $00, 0
map_attributes MobileTradeRoom, MOBILE_TRADE_ROOM, $00, 0
map_attributes MobileBattleRoom, MOBILE_BATTLE_ROOM, $00, 0
map_attributes CeladonDeptStore1F, CELADON_DEPT_STORE_1F, $00, 0
map_attributes CeladonDeptStore2F, CELADON_DEPT_STORE_2F, $00, 0
map_attributes CeladonDeptStore3F, CELADON_DEPT_STORE_3F, $00, 0
map_attributes CeladonDeptStore4F, CELADON_DEPT_STORE_4F, $00, 0
map_attributes CeladonDeptStore5F, CELADON_DEPT_STORE_5F, $00, 0
map_attributes CeladonDeptStore6F, CELADON_DEPT_STORE_6F, $00, 0
map_attributes CeladonDeptStoreElevator, CELADON_DEPT_STORE_ELEVATOR, $00, 0
map_attributes CeladonMansion1F, CELADON_MANSION_1F, $00, 0
map_attributes CeladonMansion2F, CELADON_MANSION_2F, $00, 0
map_attributes CeladonMansion3F, CELADON_MANSION_3F, $00, 0
map_attributes CeladonMansionRoof, CELADON_MANSION_ROOF, $01, 0
map_attributes CeladonMansionRoofHouse, CELADON_MANSION_ROOF_HOUSE, $00, 0
map_attributes CeladonPokecenter1F, CELADON_POKECENTER_1F, $00, 0
map_attributes CeladonPokecenter2FBeta, CELADON_POKECENTER_2F_BETA, $00, 0
map_attributes CeladonGameCorner, CELADON_GAME_CORNER, $00, 0
map_attributes CeladonGameCornerPrizeRoom, CELADON_GAME_CORNER_PRIZE_ROOM, $00, 0
map_attributes CeladonGym, CELADON_GYM, $00, 0
map_attributes CeladonCafe, CELADON_CAFE, $00, 0
map_attributes Route16FuchsiaSpeechHouse, ROUTE_16_FUCHSIA_SPEECH_HOUSE, $00, 0
map_attributes Route16Gate, ROUTE_16_GATE, $00, 0
map_attributes Route7SaffronGate, ROUTE_7_SAFFRON_GATE, $00, 0
map_attributes Route17Route18Gate, ROUTE_17_ROUTE_18_GATE, $00, 0
map_attributes ManiasHouse, MANIAS_HOUSE, $00, 0
map_attributes CianwoodGym, CIANWOOD_GYM, $00, 0
map_attributes CianwoodPokecenter1F, CIANWOOD_POKECENTER_1F, $00, 0
map_attributes CianwoodPharmacy, CIANWOOD_PHARMACY, $00, 0
map_attributes CianwoodPhotoStudio, CIANWOOD_PHOTO_STUDIO, $00, 0
map_attributes CianwoodLugiaSpeechHouse, CIANWOOD_LUGIA_SPEECH_HOUSE, $00, 0
map_attributes PokeSeersHouse, POKE_SEERS_HOUSE, $00, 0
map_attributes BattleTower1F, BATTLE_TOWER_1F, $00, 0
map_attributes BattleTowerBattleRoom, BATTLE_TOWER_BATTLE_ROOM, $00, 0
map_attributes BattleTowerElevator, BATTLE_TOWER_ELEVATOR, $00, 0
map_attributes BattleTowerHallway, BATTLE_TOWER_HALLWAY, $00, 0
map_attributes Route40BattleTowerGate, ROUTE_40_BATTLE_TOWER_GATE, $00, 0
map_attributes BattleTowerOutside, BATTLE_TOWER_OUTSIDE, $05, 0
map_attributes ViridianGym, VIRIDIAN_GYM, $00, 0
map_attributes ViridianNicknameSpeechHouse, VIRIDIAN_NICKNAME_SPEECH_HOUSE, $00, 0
map_attributes TrainerHouse1F, TRAINER_HOUSE_1F, $00, 0
map_attributes TrainerHouseB1F, TRAINER_HOUSE_B1F, $00, 0
map_attributes ViridianMart, VIRIDIAN_MART, $00, 0
map_attributes ViridianPokecenter1F, VIRIDIAN_POKECENTER_1F, $00, 0
map_attributes ViridianPokecenter2FBeta, VIRIDIAN_POKECENTER_2F_BETA, $00, 0
map_attributes Route2NuggetHouse, ROUTE_2_NUGGET_HOUSE, $00, 0
map_attributes Route2Gate, ROUTE_2_GATE, $00, 0
map_attributes VictoryRoadGate, VICTORY_ROAD_GATE, $00, 0
map_attributes ElmsLab, ELMS_LAB, $00, 0
map_attributes PlayersHouse1F, PLAYERS_HOUSE_1F, $00, 0
map_attributes PlayersHouse2F, PLAYERS_HOUSE_2F, $00, 0
map_attributes PlayersNeighborsHouse, PLAYERS_NEIGHBORS_HOUSE, $00, 0
map_attributes ElmsHouse, ELMS_HOUSE, $00, 0
map_attributes Route26HealHouse, ROUTE_26_HEAL_HOUSE, $00, 0
map_attributes DayOfWeekSiblingsHouse, DAY_OF_WEEK_SIBLINGS_HOUSE, $00, 0
map_attributes Route27SandstormHouse, ROUTE_27_SANDSTORM_HOUSE, $00, 0
map_attributes Route29Route46Gate, ROUTE_29_ROUTE_46_GATE, $00, 0
map_attributes FightingDojo, FIGHTING_DOJO, $00, 0
map_attributes SaffronGym, SAFFRON_GYM, $00, 0
map_attributes SaffronMart, SAFFRON_MART, $00, 0
map_attributes SaffronPokecenter1F, SAFFRON_POKECENTER_1F, $00, 0
map_attributes SaffronPokecenter2FBeta, SAFFRON_POKECENTER_2F_BETA, $00, 0
map_attributes MrPsychicsHouse, MR_PSYCHICS_HOUSE, $00, 0
map_attributes SaffronMagnetTrainStation, SAFFRON_MAGNET_TRAIN_STATION, $00, 0
map_attributes SilphCo1F, SILPH_CO_1F, $00, 0
map_attributes CopycatsHouse1F, COPYCATS_HOUSE_1F, $00, 0
map_attributes CopycatsHouse2F, COPYCATS_HOUSE_2F, $00, 0
map_attributes Route5UndergroundPathEntrance, ROUTE_5_UNDERGROUND_PATH_ENTRANCE, $00, 0
map_attributes Route5SaffronGate, ROUTE_5_SAFFRON_GATE, $00, 0
map_attributes Route5CleanseTagHouse, ROUTE_5_CLEANSE_TAG_HOUSE, $00, 0
map_attributes CherrygroveMart, CHERRYGROVE_MART, $00, 0
map_attributes CherrygrovePokecenter1F, CHERRYGROVE_POKECENTER_1F, $00, 0
map_attributes CherrygroveGymSpeechHouse, CHERRYGROVE_GYM_SPEECH_HOUSE, $00, 0
map_attributes GuideGentsHouse, GUIDE_GENTS_HOUSE, $00, 0
map_attributes CherrygroveEvolutionSpeechHouse, CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, $00, 0
map_attributes Route30BerryHouse, ROUTE_30_BERRY_HOUSE, $00, 0
map_attributes MrPokemonsHouse, MR_POKEMONS_HOUSE, $00, 0
map_attributes Route31VioletGate, ROUTE_31_VIOLET_GATE, $00, 0

1047
data/maps/blocks.asm Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,37 @@
EnvironmentColorsPointers:
; entries correspond to environment constants (see constants/map_data_constants.asm)
table_width 2, EnvironmentColorsPointers
dw .OutdoorColors ; unused
dw .OutdoorColors ; TOWN
dw .OutdoorColors ; ROUTE
dw .IndoorColors ; INDOOR
dw .DungeonColors ; CAVE
dw .Env5Colors ; ENVIRONMENT_5
dw .IndoorColors ; GATE
dw .DungeonColors ; DUNGEON
assert_table_length NUM_ENVIRONMENTS + 1
; Valid indices: $00 - $29 (see gfx/tilesets/bg_tiles.pal)
.OutdoorColors:
db $00, $01, $02, $28, $04, $05, $06, $07 ; morn
db $08, $09, $0a, $28, $0c, $0d, $0e, $0f ; day
db $10, $11, $12, $29, $14, $15, $16, $17 ; nite
db $18, $19, $1a, $1b, $1c, $1d, $1e, $1f ; dark
.IndoorColors:
db $20, $21, $22, $23, $24, $25, $26, $07 ; morn
db $20, $21, $22, $23, $24, $25, $26, $07 ; day
db $10, $11, $12, $13, $14, $15, $16, $07 ; nite
db $18, $19, $1a, $1b, $1c, $1d, $1e, $07 ; dark
.DungeonColors:
db $00, $01, $02, $03, $04, $05, $06, $07 ; morn
db $08, $09, $0a, $0b, $0c, $0d, $0e, $0f ; day
db $10, $11, $12, $13, $14, $15, $16, $17 ; nite
db $18, $19, $1a, $1b, $1c, $1d, $1e, $1f ; dark
.Env5Colors:
db $00, $01, $02, $03, $04, $05, $06, $07 ; morn
db $08, $09, $0a, $0b, $0c, $0d, $0e, $0f ; day
db $10, $11, $12, $13, $14, $15, $16, $17 ; nite
db $18, $19, $1a, $1b, $1c, $1d, $1e, $1f ; dark

30
data/maps/flypoints.asm Normal file
View file

@ -0,0 +1,30 @@
Flypoints:
; entries correspond to FLY_* constants
; Johto
; landmark, spawn point
db LANDMARK_NEW_BARK_TOWN, SPAWN_NEW_BARK
db LANDMARK_CHERRYGROVE_CITY, SPAWN_CHERRYGROVE
db LANDMARK_VIOLET_CITY, SPAWN_VIOLET
db LANDMARK_AZALEA_TOWN, SPAWN_AZALEA
db LANDMARK_GOLDENROD_CITY, SPAWN_GOLDENROD
db LANDMARK_ECRUTEAK_CITY, SPAWN_ECRUTEAK
db LANDMARK_OLIVINE_CITY, SPAWN_OLIVINE
db LANDMARK_CIANWOOD_CITY, SPAWN_CIANWOOD
db LANDMARK_MAHOGANY_TOWN, SPAWN_MAHOGANY
db LANDMARK_LAKE_OF_RAGE, SPAWN_LAKE_OF_RAGE
db LANDMARK_BLACKTHORN_CITY, SPAWN_BLACKTHORN
db LANDMARK_SILVER_CAVE, SPAWN_MT_SILVER
; Kanto
db LANDMARK_PALLET_TOWN, SPAWN_PALLET
db LANDMARK_VIRIDIAN_CITY, SPAWN_VIRIDIAN
db LANDMARK_PEWTER_CITY, SPAWN_PEWTER
db LANDMARK_CERULEAN_CITY, SPAWN_CERULEAN
db LANDMARK_VERMILION_CITY, SPAWN_VERMILION
db LANDMARK_ROCK_TUNNEL, SPAWN_ROCK_TUNNEL
db LANDMARK_LAVENDER_TOWN, SPAWN_LAVENDER
db LANDMARK_CELADON_CITY, SPAWN_CELADON
db LANDMARK_SAFFRON_CITY, SPAWN_SAFFRON
db LANDMARK_FUCHSIA_CITY, SPAWN_FUCHSIA
db LANDMARK_CINNABAR_ISLAND, SPAWN_CINNABAR
db LANDMARK_INDIGO_PLATEAU, SPAWN_INDIGO
db -1 ; end

210
data/maps/landmarks.asm Normal file
View file

@ -0,0 +1,210 @@
MACRO landmark
; x, y, name
db \1 + 8, \2 + 16
dw \3
ENDM
Landmarks:
; entries correspond to constants/landmark_constants.asm
table_width 4, Landmarks
landmark -8, -16, SpecialMapName
landmark 140, 100, NewBarkTownName
landmark 128, 100, Route29Name
landmark 100, 100, CherrygroveCityName
landmark 100, 80, Route30Name
landmark 96, 60, Route31Name
landmark 84, 60, VioletCityName
landmark 85, 58, SproutTowerName
landmark 84, 92, Route32Name
landmark 76, 76, RuinsOfAlphName
landmark 84, 124, UnionCaveName
landmark 82, 124, Route33Name
landmark 68, 124, AzaleaTownName
landmark 70, 122, SlowpokeWellName
landmark 52, 120, IlexForestName
landmark 52, 112, Route34Name
landmark 52, 92, GoldenrodCityName
landmark 50, 92, RadioTowerName
landmark 52, 76, Route35Name
landmark 52, 60, NationalParkName
landmark 64, 60, Route36Name
landmark 68, 52, Route37Name
landmark 68, 44, EcruteakCityName
landmark 70, 42, TinTowerName
landmark 66, 42, BurnedTowerName
landmark 52, 44, Route38Name
landmark 36, 48, Route39Name
landmark 36, 60, OlivineCityName
landmark 38, 62, LighthouseName
landmark 28, 56, BattleTowerName
landmark 28, 64, Route40Name
landmark 28, 92, WhirlIslandsName
landmark 28, 100, Route41Name
landmark 20, 100, CianwoodCityName
landmark 92, 44, Route42Name
landmark 84, 44, MtMortarName
landmark 108, 44, MahoganyTownName
landmark 108, 36, Route43Name
landmark 108, 28, LakeOfRageName
landmark 120, 44, Route44Name
landmark 130, 38, IcePathName
landmark 132, 44, BlackthornCityName
landmark 132, 36, DragonsDenName
landmark 132, 64, Route45Name
landmark 112, 72, DarkCaveName
landmark 124, 88, Route46Name
landmark 148, 68, SilverCaveName
assert_table_length KANTO_LANDMARK
landmark 52, 108, PalletTownName
landmark 52, 92, Route1Name
landmark 52, 76, ViridianCityName
landmark 52, 64, Route2Name
landmark 52, 52, PewterCityName
landmark 64, 52, Route3Name
landmark 76, 52, MtMoonName
landmark 88, 52, Route4Name
landmark 100, 52, CeruleanCityName
landmark 100, 44, Route24Name
landmark 108, 36, Route25Name
landmark 100, 60, Route5Name
landmark 108, 76, UndergroundName
landmark 100, 76, Route6Name
landmark 100, 84, VermilionCityName
landmark 88, 60, DiglettsCaveName
landmark 88, 68, Route7Name
landmark 116, 68, Route8Name
landmark 116, 52, Route9Name
landmark 132, 52, RockTunnelName
landmark 132, 56, Route10Name
landmark 132, 60, PowerPlantName
landmark 132, 68, LavenderTownName
landmark 140, 68, LavRadioTowerName
landmark 76, 68, CeladonCityName
landmark 100, 68, SaffronCityName
landmark 116, 84, Route11Name
landmark 132, 80, Route12Name
landmark 124, 100, Route13Name
landmark 116, 112, Route14Name
landmark 104, 116, Route15Name
landmark 68, 68, Route16Name
landmark 68, 92, Route17Name
landmark 80, 116, Route18Name
landmark 92, 116, FuchsiaCityName
landmark 92, 128, Route19Name
landmark 76, 132, Route20Name
landmark 68, 132, SeafoamIslandsName
landmark 52, 132, CinnabarIslandName
landmark 52, 120, Route21Name
landmark 36, 68, Route22Name
landmark 28, 52, VictoryRoadName
landmark 28, 44, Route23Name
landmark 28, 36, IndigoPlateauName
landmark 28, 92, Route26Name
landmark 20, 100, Route27Name
landmark 12, 100, TohjoFallsName
landmark 20, 68, Route28Name
landmark 140, 116, FastShipName
assert_table_length NUM_LANDMARKS
NewBarkTownName: db "NEW BARK¯TOWN@"
CherrygroveCityName: db "CHERRYGROVE¯CITY@"
VioletCityName: db "VIOLET CITY@"
AzaleaTownName: db "AZALEA TOWN@"
GoldenrodCityName: db "GOLDENROD¯CITY@"
EcruteakCityName: db "ECRUTEAK¯CITY@"
OlivineCityName: db "OLIVINE¯CITY@"
CianwoodCityName: db "CIANWOOD¯CITY@"
MahoganyTownName: db "MAHOGANY¯TOWN@"
BlackthornCityName: db "BLACKTHORN¯CITY@"
LakeOfRageName: db "LAKE OF¯RAGE@"
SilverCaveName: db "SILVER CAVE@"
SproutTowerName: db "SPROUT¯TOWER@"
RuinsOfAlphName: db "RUINS¯OF ALPH@"
UnionCaveName: db "UNION CAVE@"
SlowpokeWellName: db "SLOWPOKE¯WELL@"
RadioTowerName: db "RADIO TOWER@"
PowerPlantName: db "POWER PLANT@"
NationalParkName: db "NATIONAL¯PARK@"
TinTowerName: db "TIN TOWER@"
LighthouseName: db "LIGHTHOUSE@"
WhirlIslandsName: db "WHIRL¯ISLANDS@"
MtMortarName: db "MT.MORTAR@"
DragonsDenName: db "DRAGON'S¯DEN@"
IcePathName: db "ICE PATH@"
NotApplicableName: db "N/A@" ; unreferenced ; "オバケやしき" ("HAUNTED HOUSE") in Japanese
PalletTownName: db "PALLET TOWN@"
ViridianCityName: db "VIRIDIAN¯CITY@"
PewterCityName: db "PEWTER CITY@"
CeruleanCityName: db "CERULEAN¯CITY@"
LavenderTownName: db "LAVENDER¯TOWN@"
VermilionCityName: db "VERMILION¯CITY@"
CeladonCityName: db "CELADON¯CITY@"
SaffronCityName: db "SAFFRON¯CITY@"
FuchsiaCityName: db "FUCHSIA¯CITY@"
CinnabarIslandName: db "CINNABAR¯ISLAND@"
IndigoPlateauName: db "INDIGO¯PLATEAU@"
VictoryRoadName: db "VICTORY¯ROAD@"
MtMoonName: db "MT.MOON@"
RockTunnelName: db "ROCK TUNNEL@"
LavRadioTowerName: db "LAV¯RADIO TOWER@"
SilphCoName: db "SILPH CO.@" ; unreferenced
SafariZoneName: db "SAFARI ZONE@" ; unreferenced
SeafoamIslandsName: db "SEAFOAM¯ISLANDS@"
PokemonMansionName: db "#MON¯MANSION@" ; unreferenced
CeruleanCaveName: db "CERULEAN¯CAVE@" ; unreferenced
Route1Name: db "ROUTE 1@"
Route2Name: db "ROUTE 2@"
Route3Name: db "ROUTE 3@"
Route4Name: db "ROUTE 4@"
Route5Name: db "ROUTE 5@"
Route6Name: db "ROUTE 6@"
Route7Name: db "ROUTE 7@"
Route8Name: db "ROUTE 8@"
Route9Name: db "ROUTE 9@"
Route10Name: db "ROUTE 10@"
Route11Name: db "ROUTE 11@"
Route12Name: db "ROUTE 12@"
Route13Name: db "ROUTE 13@"
Route14Name: db "ROUTE 14@"
Route15Name: db "ROUTE 15@"
Route16Name: db "ROUTE 16@"
Route17Name: db "ROUTE 17@"
Route18Name: db "ROUTE 18@"
Route19Name: db "ROUTE 19@"
Route20Name: db "ROUTE 20@"
Route21Name: db "ROUTE 21@"
Route22Name: db "ROUTE 22@"
Route23Name: db "ROUTE 23@"
Route24Name: db "ROUTE 24@"
Route25Name: db "ROUTE 25@"
Route26Name: db "ROUTE 26@"
Route27Name: db "ROUTE 27@"
Route28Name: db "ROUTE 28@"
Route29Name: db "ROUTE 29@"
Route30Name: db "ROUTE 30@"
Route31Name: db "ROUTE 31@"
Route32Name: db "ROUTE 32@"
Route33Name: db "ROUTE 33@"
Route34Name: db "ROUTE 34@"
Route35Name: db "ROUTE 35@"
Route36Name: db "ROUTE 36@"
Route37Name: db "ROUTE 37@"
Route38Name: db "ROUTE 38@"
Route39Name: db "ROUTE 39@"
Route40Name: db "ROUTE 40@"
Route41Name: db "ROUTE 41@"
Route42Name: db "ROUTE 42@"
Route43Name: db "ROUTE 43@"
Route44Name: db "ROUTE 44@"
Route45Name: db "ROUTE 45@"
Route46Name: db "ROUTE 46@"
DarkCaveName: db "DARK CAVE@"
IlexForestName: db "ILEX¯FOREST@"
BurnedTowerName: db "BURNED¯TOWER@"
FastShipName: db "FAST SHIP@"
ViridianForestName: db "VIRIDIAN¯FOREST@" ; unreferenced
DiglettsCaveName: db "DIGLETT'S¯CAVE@"
TohjoFallsName: db "TOHJO FALLS@"
UndergroundName: db "UNDERGROUND@"
BattleTowerName: db "BATTLE¯TOWER@"
SpecialMapName: db "SPECIAL@"

10
data/maps/map_data.asm Normal file
View file

@ -0,0 +1,10 @@
SECTION "Maps", ROMX
INCLUDE "data/maps/maps.asm"
INCLUDE "data/maps/attributes.asm"
INCLUDE "data/maps/blocks.asm"
INCLUDE "data/maps/scripts.asm"

538
data/maps/maps.asm Normal file
View file

@ -0,0 +1,538 @@
MACRO map
;\1: map name: for the MapAttributes pointer (see data/maps/attributes.asm)
;\2: tileset: a TILESET_* constant
;\3: environment: TOWN, ROUTE, INDOOR, CAVE, ENVIRONMENT_5, GATE, or DUNGEON
;\4: location: a LANDMARK_* constant
;\5: music: a MUSIC_* constant
;\6: phone service flag: TRUE to prevent phone calls
;\7: time of day: a PALETTE_* constant
;\8: fishing group: a FISHGROUP_* constant
db BANK(\1_MapAttributes), \2, \3
dw \1_MapAttributes
db \4, \5
dn \6, \7
db \8
ENDM
MapGroupPointers::
; pointers to the first map of each map group
table_width 2, MapGroupPointers
dw MapGroup_Olivine ; 1
dw MapGroup_Mahogany ; 2
dw MapGroup_Dungeons ; 3
dw MapGroup_Ecruteak ; 4
dw MapGroup_Blackthorn ; 5
dw MapGroup_Cinnabar ; 6
dw MapGroup_Cerulean ; 7
dw MapGroup_Azalea ; 8
dw MapGroup_LakeOfRage ; 9
dw MapGroup_Violet ; 10
dw MapGroup_Goldenrod ; 11
dw MapGroup_Vermilion ; 12
dw MapGroup_Pallet ; 13
dw MapGroup_Pewter ; 14
dw MapGroup_FastShip ; 15
dw MapGroup_Indigo ; 16
dw MapGroup_Fuchsia ; 17
dw MapGroup_Lavender ; 18
dw MapGroup_Silver ; 19
dw MapGroup_CableClub ; 20
dw MapGroup_Celadon ; 21
dw MapGroup_Cianwood ; 22
dw MapGroup_Viridian ; 23
dw MapGroup_NewBark ; 24
dw MapGroup_Saffron ; 25
dw MapGroup_Cherrygrove ; 26
assert_table_length NUM_MAP_GROUPS
MapGroup_Olivine:
table_width MAP_LENGTH, MapGroup_Olivine
map OlivinePokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivineGym, TILESET_CHAMPIONS_ROOM, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map OlivineTimsHouse, TILESET_HOUSE, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivineHouseBeta, TILESET_HOUSE, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivinePunishmentSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivineGoodRodHouse, TILESET_HOUSE, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivineCafe, TILESET_GAME_CORNER, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivineMart, TILESET_MART, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route38EcruteakGate, TILESET_GATE, GATE, LANDMARK_ROUTE_38, MUSIC_ROUTE_37, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route39Barn, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_ROUTE_39, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route39Farmhouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_39, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route38, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_38, MUSIC_ROUTE_37, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map Route39, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_39, MUSIC_ROUTE_37, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map OlivineCity, TILESET_JOHTO, TOWN, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
assert_table_length NUM_OLIVINE_MAPS
MapGroup_Mahogany:
table_width MAP_LENGTH, MapGroup_Mahogany
map MahoganyRedGyaradosSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map MahoganyGym, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_MAHOGANY_TOWN, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map MahoganyPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route42EcruteakGate, TILESET_GATE, GATE, LANDMARK_ROUTE_42, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route42, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_42, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
map Route44, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_44, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_POND
map MahoganyTown, TILESET_JOHTO, TOWN, LANDMARK_MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
assert_table_length NUM_MAHOGANY_MAPS
MapGroup_Dungeons:
table_width MAP_LENGTH, MapGroup_Dungeons
map SproutTower1F, TILESET_TOWER, DUNGEON, LANDMARK_SPROUT_TOWER, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SproutTower2F, TILESET_TOWER, DUNGEON, LANDMARK_SPROUT_TOWER, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SproutTower3F, TILESET_TOWER, DUNGEON, LANDMARK_SPROUT_TOWER, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TinTower1F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TinTower2F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TinTower3F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TinTower4F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TinTower5F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TinTower6F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TinTower7F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TinTower8F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TinTower9F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map BurnedTower1F, TILESET_TOWER, DUNGEON, LANDMARK_BURNED_TOWER, MUSIC_BURNED_TOWER, TRUE, PALETTE_NITE, FISHGROUP_SHORE
map BurnedTowerB1F, TILESET_CAVE, CAVE, LANDMARK_BURNED_TOWER, MUSIC_BURNED_TOWER, TRUE, PALETTE_NITE, FISHGROUP_SHORE
map NationalPark, TILESET_PARK, ROUTE, LANDMARK_NATIONAL_PARK, MUSIC_NATIONAL_PARK, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map NationalParkBugContest, TILESET_PARK, ROUTE, LANDMARK_NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map RadioTower1F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RadioTower2F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RadioTower3F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RadioTower4F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RadioTower5F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphOutside, TILESET_JOHTO, ROUTE, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, FALSE, PALETTE_AUTO, FISHGROUP_POND
map RuinsOfAlphHoOhChamber, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphKabutoChamber, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphOmanyteChamber, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphAerodactylChamber, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphInnerChamber, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphResearchCenter, TILESET_FACILITY, INDOOR, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphHoOhItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphKabutoItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphOmanyteItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphAerodactylItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphHoOhWordRoom, TILESET_HO_OH_WORD_ROOM, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphKabutoWordRoom, TILESET_KABUTO_WORD_ROOM, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphOmanyteWordRoom, TILESET_OMANYTE_WORD_ROOM, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map RuinsOfAlphAerodactylWordRoom, TILESET_AERODACTYL_WORD_ROOM, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map UnionCave1F, TILESET_CAVE, CAVE, LANDMARK_UNION_CAVE, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
map UnionCaveB1F, TILESET_CAVE, CAVE, LANDMARK_UNION_CAVE, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
map UnionCaveB2F, TILESET_CAVE, CAVE, LANDMARK_UNION_CAVE, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_SHORE
map SlowpokeWellB1F, TILESET_CAVE, CAVE, LANDMARK_SLOWPOKE_WELL, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
map SlowpokeWellB2F, TILESET_CAVE, CAVE, LANDMARK_SLOWPOKE_WELL, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
map OlivineLighthouse1F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivineLighthouse2F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivineLighthouse3F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivineLighthouse4F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivineLighthouse5F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivineLighthouse6F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map MahoganyMart1F, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map TeamRocketBaseB1F, TILESET_UNDERGROUND, DUNGEON, LANDMARK_MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map TeamRocketBaseB2F, TILESET_FACILITY, DUNGEON, LANDMARK_MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map TeamRocketBaseB3F, TILESET_FACILITY, DUNGEON, LANDMARK_MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map IlexForest, TILESET_FOREST, CAVE, LANDMARK_ILEX_FOREST, MUSIC_UNION_CAVE, FALSE, PALETTE_NITE, FISHGROUP_POND
map GoldenrodUnderground, TILESET_GATE, DUNGEON, LANDMARK_GOLDENROD_CITY, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodUndergroundSwitchRoomEntrances, TILESET_ELITE_FOUR_ROOM, DUNGEON, LANDMARK_GOLDENROD_CITY, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodDeptStoreB1F, TILESET_UNDERGROUND, DUNGEON, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodUndergroundWarehouse, TILESET_UNDERGROUND, DUNGEON, LANDMARK_GOLDENROD_CITY, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map MountMortar1FOutside, TILESET_DARK_CAVE, CAVE, LANDMARK_MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
map MountMortar1FInside, TILESET_DARK_CAVE, CAVE, LANDMARK_MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
map MountMortar2FInside, TILESET_DARK_CAVE, CAVE, LANDMARK_MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
map MountMortarB1F, TILESET_DARK_CAVE, CAVE, LANDMARK_MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
map IcePath1F, TILESET_ICE_PATH, CAVE, LANDMARK_ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
map IcePathB1F, TILESET_ICE_PATH, CAVE, LANDMARK_ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
map IcePathB2FMahoganySide, TILESET_ICE_PATH, CAVE, LANDMARK_ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
map IcePathB2FBlackthornSide, TILESET_ICE_PATH, CAVE, LANDMARK_ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
map IcePathB3F, TILESET_ICE_PATH, CAVE, LANDMARK_ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
map WhirlIslandNW, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
map WhirlIslandNE, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
map WhirlIslandSW, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
map WhirlIslandCave, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
map WhirlIslandSE, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
map WhirlIslandB1F, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
map WhirlIslandB2F, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
map WhirlIslandLugiaChamber, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
map SilverCaveRoom1, TILESET_DARK_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
map SilverCaveRoom2, TILESET_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
map SilverCaveRoom3, TILESET_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_DAY, FISHGROUP_LAKE
map SilverCaveItemRooms, TILESET_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
map DarkCaveVioletEntrance, TILESET_DARK_CAVE, CAVE, LANDMARK_DARK_CAVE, MUSIC_DARK_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
map DarkCaveBlackthornEntrance, TILESET_DARK_CAVE, CAVE, LANDMARK_DARK_CAVE, MUSIC_DARK_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
map DragonsDen1F, TILESET_CAVE, CAVE, LANDMARK_DRAGONS_DEN, MUSIC_DRAGONS_DEN, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
map DragonsDenB1F, TILESET_JOHTO, CAVE, LANDMARK_DRAGONS_DEN, MUSIC_DRAGONS_DEN, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
map DragonShrine, TILESET_LAB, INDOOR, LANDMARK_DRAGONS_DEN, MUSIC_DRAGONS_DEN, TRUE, PALETTE_NITE, FISHGROUP_SHORE
map TohjoFalls, TILESET_CAVE, CAVE, LANDMARK_TOHJO_FALLS, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
map DiglettsCave, TILESET_CAVE, CAVE, LANDMARK_DIGLETTS_CAVE, MUSIC_MT_MOON, TRUE, PALETTE_NITE, FISHGROUP_SHORE
map MountMoon, TILESET_CAVE, CAVE, LANDMARK_MT_MOON, MUSIC_MT_MOON, TRUE, PALETTE_NITE, FISHGROUP_SHORE
map UndergroundPath, TILESET_UNDERGROUND, GATE, LANDMARK_UNDERGROUND_PATH, MUSIC_MT_MOON, FALSE, PALETTE_NITE, FISHGROUP_SHORE
map RockTunnel1F, TILESET_DARK_CAVE, CAVE, LANDMARK_ROCK_TUNNEL, MUSIC_MT_MOON, TRUE, PALETTE_DARK, FISHGROUP_SHORE
map RockTunnelB1F, TILESET_DARK_CAVE, CAVE, LANDMARK_ROCK_TUNNEL, MUSIC_MT_MOON, TRUE, PALETTE_DARK, FISHGROUP_SHORE
map SafariZoneFuchsiaGateBeta, TILESET_GATE, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SafariZoneBeta, TILESET_PARK, CAVE, LANDMARK_FUCHSIA_CITY, MUSIC_EVOLUTION, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map VictoryRoad, TILESET_CAVE, CAVE, LANDMARK_VICTORY_ROAD, MUSIC_VICTORY_ROAD, TRUE, PALETTE_NITE, FISHGROUP_SHORE
assert_table_length NUM_DUNGEONS_MAPS
MapGroup_Ecruteak:
table_width MAP_LENGTH, MapGroup_Ecruteak
map EcruteakTinTowerEntrance, TILESET_TOWER, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map WiseTriosRoom, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map EcruteakPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map EcruteakLugiaSpeechHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map DanceTheater, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_DANCING_HALL, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map EcruteakMart, TILESET_MART, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map EcruteakGym, TILESET_TOWER, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map EcruteakItemfinderHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map EcruteakCity, TILESET_JOHTO, TOWN, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_AUTO, FISHGROUP_POND
assert_table_length NUM_ECRUTEAK_MAPS
MapGroup_Blackthorn:
table_width MAP_LENGTH, MapGroup_Blackthorn
map BlackthornGym1F, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map BlackthornGym2F, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map BlackthornDragonSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map BlackthornEmysHouse, TILESET_HOUSE, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map BlackthornMart, TILESET_MART, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map BlackthornPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map MoveDeletersHouse, TILESET_HOUSE, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route45, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_45, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_DRATINI_2
map Route46, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_46, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map BlackthornCity, TILESET_JOHTO, TOWN, LANDMARK_BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_POND
assert_table_length NUM_BLACKTHORN_MAPS
MapGroup_Cinnabar:
table_width MAP_LENGTH, MapGroup_Cinnabar
map CinnabarPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CinnabarPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route19FuchsiaGate, TILESET_GATE, GATE, LANDMARK_ROUTE_19, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SeafoamGym, TILESET_CAVE, INDOOR, LANDMARK_SEAFOAM_ISLANDS, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map Route19, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_19, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map Route20, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_20, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
map Route21, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_21, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
map CinnabarIsland, TILESET_KANTO, TOWN, LANDMARK_CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
assert_table_length NUM_CINNABAR_MAPS
MapGroup_Cerulean:
table_width MAP_LENGTH, MapGroup_Cerulean
map CeruleanGymBadgeSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeruleanPoliceStation, TILESET_HOUSE, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeruleanTradeSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeruleanPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeruleanPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeruleanGym, TILESET_PORT, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_NONE
map CeruleanMart, TILESET_MART, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route10Pokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_ROUTE_10, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route10Pokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_ROUTE_10, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map PowerPlant, TILESET_FACILITY, INDOOR, LANDMARK_POWER_PLANT, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map BillsHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_25, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route4, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_4, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_NONE
map Route9, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_9, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
map Route10North, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_10, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
map Route24, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_24, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
map Route25, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_25, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
map CeruleanCity, TILESET_KANTO, TOWN, LANDMARK_CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_NONE
assert_table_length NUM_CERULEAN_MAPS
MapGroup_Azalea:
table_width MAP_LENGTH, MapGroup_Azalea
map AzaleaPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_AZALEA_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CharcoalKiln, TILESET_HOUSE, INDOOR, LANDMARK_AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map AzaleaMart, TILESET_MART, INDOOR, LANDMARK_AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map KurtsHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map AzaleaGym, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_AZALEA_TOWN, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map Route33, TILESET_JOHTO_MODERN, ROUTE, LANDMARK_ROUTE_33, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map AzaleaTown, TILESET_JOHTO_MODERN, TOWN, LANDMARK_AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
assert_table_length NUM_AZALEA_MAPS
MapGroup_LakeOfRage:
table_width MAP_LENGTH, MapGroup_LakeOfRage
map LakeOfRageHiddenPowerHouse, TILESET_HOUSE, INDOOR, LANDMARK_LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map LakeOfRageMagikarpHouse, TILESET_HOUSE, INDOOR, LANDMARK_LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route43MahoganyGate, TILESET_GATE, GATE, LANDMARK_ROUTE_43, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route43Gate, TILESET_GATE, GATE, LANDMARK_ROUTE_43, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route43, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_43, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_POND
map LakeOfRage, TILESET_JOHTO, TOWN, LANDMARK_LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_GYARADOS
assert_table_length NUM_LAKE_OF_RAGE_MAPS
MapGroup_Violet:
table_width MAP_LENGTH, MapGroup_Violet
map Route32, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_32, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_QWILFISH
map Route35, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_35, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_POND
map Route36, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_36, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map Route37, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_37, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map VioletCity, TILESET_JOHTO, TOWN, LANDMARK_VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_AUTO, FISHGROUP_POND
map VioletMart, TILESET_MART, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VioletGym, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map EarlsPokemonAcademy, TILESET_LAB, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VioletNicknameSpeechHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VioletPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VioletKylesHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route32RuinsOfAlphGate, TILESET_GATE, GATE, LANDMARK_ROUTE_32, MUSIC_ROUTE_30, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route32Pokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_ROUTE_32, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route35GoldenrodGate, TILESET_GATE, GATE, LANDMARK_ROUTE_35, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route35NationalParkGate, TILESET_GATE, INDOOR, LANDMARK_ROUTE_35, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route36RuinsOfAlphGate, TILESET_GATE, GATE, LANDMARK_ROUTE_36, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route36NationalParkGate, TILESET_GATE, INDOOR, LANDMARK_ROUTE_36, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_VIOLET_MAPS
MapGroup_Goldenrod:
table_width MAP_LENGTH, MapGroup_Goldenrod
map Route34, TILESET_JOHTO_MODERN, ROUTE, LANDMARK_ROUTE_34, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map GoldenrodCity, TILESET_JOHTO_MODERN, TOWN, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map GoldenrodGym, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodBikeShop, TILESET_CHAMPIONS_ROOM, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodHappinessRater, TILESET_HOUSE, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map BillsFamilysHouse, TILESET_HOUSE, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodMagnetTrainStation, TILESET_TRAIN_STATION, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodFlowerShop, TILESET_HOUSE, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodPPSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodNameRater, TILESET_HOUSE, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodDeptStore1F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodDeptStore2F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodDeptStore3F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodDeptStore4F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodDeptStore5F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodDeptStore6F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodDeptStoreElevator, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodDeptStoreRoof, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodGameCorner, TILESET_GAME_CORNER, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GAME_CORNER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GoldenrodPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map PokecomCenterAdminOfficeMobile, TILESET_POKECOM_CENTER, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map IlexForestAzaleaGate, TILESET_GATE, GATE, LANDMARK_ROUTE_34, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route34IlexForestGate, TILESET_GATE, GATE, LANDMARK_ROUTE_34, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map DayCare, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_34, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_GOLDENROD_MAPS
MapGroup_Vermilion:
table_width MAP_LENGTH, MapGroup_Vermilion
map Route6, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_6, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_POND
map Route11, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_11, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map VermilionCity, TILESET_KANTO, TOWN, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
map VermilionFishingSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VermilionPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VermilionPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map PokemonFanClub, TILESET_HOUSE, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VermilionMagnetTrainSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VermilionMart, TILESET_MART, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VermilionDiglettsCaveSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VermilionGym, TILESET_GAME_CORNER, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map Route6SaffronGate, TILESET_GATE, GATE, LANDMARK_ROUTE_6, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route6UndergroundPathEntrance, TILESET_GATE, GATE, LANDMARK_ROUTE_6, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_VERMILION_MAPS
MapGroup_Pallet:
table_width MAP_LENGTH, MapGroup_Pallet
map Route1, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_1, MUSIC_ROUTE_1, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map PalletTown, TILESET_KANTO, TOWN, LANDMARK_PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
map RedsHouse1F, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map RedsHouse2F, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map BluesHouse, TILESET_HOUSE, INDOOR, LANDMARK_PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OaksLab, TILESET_LAB, INDOOR, LANDMARK_PALLET_TOWN, MUSIC_POKEMON_TALK, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_PALLET_MAPS
MapGroup_Pewter:
table_width MAP_LENGTH, MapGroup_Pewter
map Route3, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_3, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map PewterCity, TILESET_KANTO, TOWN, LANDMARK_PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map PewterNidoranSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map PewterGym, TILESET_TOWER, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map PewterMart, TILESET_MART, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map PewterPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map PewterPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map PewterSnoozeSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_PEWTER_MAPS
MapGroup_FastShip:
table_width MAP_LENGTH, MapGroup_FastShip
map OlivinePort, TILESET_PORT, ROUTE, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
map VermilionPort, TILESET_PORT, ROUTE, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
map FastShip1F, TILESET_LIGHTHOUSE, INDOOR, LANDMARK_FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map FastShipCabins_NNW_NNE_NE, TILESET_LIGHTHOUSE, INDOOR, LANDMARK_FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map FastShipCabins_SW_SSW_NW, TILESET_LIGHTHOUSE, INDOOR, LANDMARK_FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map FastShipCabins_SE_SSE_CaptainsCabin, TILESET_LIGHTHOUSE, INDOOR, LANDMARK_FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map FastShipB1F, TILESET_LIGHTHOUSE, INDOOR, LANDMARK_FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map OlivinePortPassage, TILESET_UNDERGROUND, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VermilionPortPassage, TILESET_UNDERGROUND, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map MountMoonSquare, TILESET_KANTO, ROUTE, LANDMARK_MT_MOON, MUSIC_MT_MOON_SQUARE, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map MountMoonGiftShop, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_MT_MOON, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TinTowerRoof, TILESET_TOWER, ROUTE, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
assert_table_length NUM_FAST_SHIP_MAPS
MapGroup_Indigo:
table_width MAP_LENGTH, MapGroup_Indigo
map Route23, TILESET_KANTO, TOWN, LANDMARK_ROUTE_23, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map IndigoPlateauPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map WillsRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map KogasRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map BrunosRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map KarensRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map LancesRoom, TILESET_CHAMPIONS_ROOM, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map HallOfFame, TILESET_ICE_PATH, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, TRUE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_INDIGO_MAPS
MapGroup_Fuchsia:
table_width MAP_LENGTH, MapGroup_Fuchsia
map Route13, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_13, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_QWILFISH_NO_SWARM
map Route14, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_14, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map Route15, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_15, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map Route18, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_18, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map FuchsiaCity, TILESET_KANTO, TOWN, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_AUTO, FISHGROUP_GYARADOS
map FuchsiaMart, TILESET_MART, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SafariZoneMainOffice, TILESET_GAME_CORNER, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map FuchsiaGym, TILESET_LAB, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map BillsBrothersHouse, TILESET_HOUSE, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map FuchsiaPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map FuchsiaPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SafariZoneWardensHome, TILESET_HOUSE, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route15FuchsiaGate, TILESET_GATE, GATE, LANDMARK_ROUTE_15, MUSIC_ROUTE_12, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_FUCHSIA_MAPS
MapGroup_Lavender:
table_width MAP_LENGTH, MapGroup_Lavender
map Route8, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_8, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map Route12, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_12, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_QWILFISH_NO_SWARM
map Route10South, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_10, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
map LavenderTown, TILESET_KANTO, TOWN, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map LavenderPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map LavenderPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map MrFujisHouse, TILESET_HOUSE, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map LavenderSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map LavenderNameRater, TILESET_HOUSE, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map LavenderMart, TILESET_MART, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SoulHouse, TILESET_HOUSE, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map LavRadioTower1F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route8SaffronGate, TILESET_GATE, GATE, LANDMARK_ROUTE_8, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route12SuperRodHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_12, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_LAVENDER_MAPS
MapGroup_Silver:
table_width MAP_LENGTH, MapGroup_Silver
map Route28, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_28, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_AUTO, FISHGROUP_POND
map SilverCaveOutside, TILESET_KANTO, TOWN, LANDMARK_SILVER_CAVE, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_AUTO, FISHGROUP_POND
map SilverCavePokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_SILVER_CAVE, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route28SteelWingHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_28, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_SILVER_MAPS
MapGroup_CableClub:
table_width MAP_LENGTH, MapGroup_CableClub
map Pokecenter2F, TILESET_POKECENTER, INDOOR, LANDMARK_SPECIAL, MUSIC_POKEMON_CENTER, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map TradeCenter, TILESET_GATE, INDOOR, LANDMARK_SPECIAL, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map Colosseum, TILESET_GATE, INDOOR, LANDMARK_SPECIAL, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map TimeCapsule, TILESET_GATE, INDOOR, LANDMARK_SPECIAL, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map MobileTradeRoom, TILESET_MANSION, INDOOR, LANDMARK_SPECIAL, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map MobileBattleRoom, TILESET_MANSION, INDOOR, LANDMARK_SPECIAL, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_CABLE_CLUB_MAPS
MapGroup_Celadon:
table_width MAP_LENGTH, MapGroup_Celadon
map Route7, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_7, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map Route16, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_16, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map Route17, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_17, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_NONE
map CeladonCity, TILESET_KANTO, TOWN, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_AUTO, FISHGROUP_NONE
map CeladonDeptStore1F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonDeptStore2F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonDeptStore3F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonDeptStore4F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonDeptStore5F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonDeptStore6F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonDeptStoreElevator, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonMansion1F, TILESET_MANSION, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonMansion2F, TILESET_MANSION, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonMansion3F, TILESET_MANSION, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonMansionRoof, TILESET_MANSION, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonMansionRoofHouse, TILESET_HOUSE, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_CELADON_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonGameCorner, TILESET_GAME_CORNER, INDOOR, LANDMARK_CELADON_CITY, MUSIC_GAME_CORNER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonGameCornerPrizeRoom, TILESET_GAME_CORNER, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonGym, TILESET_TRAIN_STATION, INDOOR, LANDMARK_CELADON_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map CeladonCafe, TILESET_GAME_CORNER, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route16FuchsiaSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_16, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route16Gate, TILESET_GATE, GATE, LANDMARK_ROUTE_16, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route7SaffronGate, TILESET_GATE, GATE, LANDMARK_ROUTE_7, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route17Route18Gate, TILESET_GATE, GATE, LANDMARK_ROUTE_17, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_CELADON_MAPS
MapGroup_Cianwood:
table_width MAP_LENGTH, MapGroup_Cianwood
map Route40, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_40, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map Route41, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_41, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
map CianwoodCity, TILESET_JOHTO, TOWN, LANDMARK_CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map ManiasHouse, TILESET_HOUSE, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CianwoodGym, TILESET_TOWER, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map CianwoodPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CianwoodPharmacy, TILESET_HOUSE, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CianwoodPhotoStudio, TILESET_HOUSE, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CianwoodLugiaSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map PokeSeersHouse, TILESET_HOUSE, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map BattleTower1F, TILESET_BATTLE_TOWER_INSIDE, INDOOR, LANDMARK_BATTLE_TOWER, MUSIC_BATTLE_TOWER_LOBBY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map BattleTowerBattleRoom, TILESET_BATTLE_TOWER_INSIDE, INDOOR, LANDMARK_BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map BattleTowerElevator, TILESET_BATTLE_TOWER_INSIDE, INDOOR, LANDMARK_BATTLE_TOWER, MUSIC_NONE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map BattleTowerHallway, TILESET_BATTLE_TOWER_INSIDE, INDOOR, LANDMARK_BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map Route40BattleTowerGate, TILESET_GATE, GATE, LANDMARK_BATTLE_TOWER, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map BattleTowerOutside, TILESET_BATTLE_TOWER_OUTSIDE, ROUTE, LANDMARK_BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
assert_table_length NUM_CIANWOOD_MAPS
MapGroup_Viridian:
table_width MAP_LENGTH, MapGroup_Viridian
map Route2, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_2, MUSIC_ROUTE_2, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map Route22, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_22, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_POND
map ViridianCity, TILESET_KANTO, TOWN, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_POND
map ViridianGym, TILESET_TRAIN_STATION, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map ViridianNicknameSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TrainerHouse1F, TILESET_HOUSE, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map TrainerHouseB1F, TILESET_FACILITY, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map ViridianMart, TILESET_MART, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map ViridianPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map ViridianPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route2NuggetHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_2, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route2Gate, TILESET_GATE, GATE, LANDMARK_ROUTE_2, MUSIC_ROUTE_2, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map VictoryRoadGate, TILESET_GATE, GATE, LANDMARK_ROUTE_26, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_VIRIDIAN_MAPS
MapGroup_NewBark:
table_width MAP_LENGTH, MapGroup_NewBark
map Route26, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_26, MUSIC_ROUTE_26, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
map Route27, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_27, MUSIC_ROUTE_26, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
map Route29, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_29, MUSIC_ROUTE_29, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map NewBarkTown, TILESET_JOHTO, TOWN, LANDMARK_NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
map ElmsLab, TILESET_LAB, INDOOR, LANDMARK_NEW_BARK_TOWN, MUSIC_PROF_ELM, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map PlayersHouse1F, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map PlayersHouse2F, TILESET_PLAYERS_ROOM, INDOOR, LANDMARK_NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map PlayersNeighborsHouse, TILESET_HOUSE, INDOOR, LANDMARK_NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map ElmsHouse, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route26HealHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_26, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map DayOfWeekSiblingsHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_26, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route27SandstormHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_27, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route29Route46Gate, TILESET_GATE, GATE, LANDMARK_ROUTE_29, MUSIC_ROUTE_29, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_NEW_BARK_MAPS
MapGroup_Saffron:
table_width MAP_LENGTH, MapGroup_Saffron
map Route5, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_5, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map SaffronCity, TILESET_KANTO, TOWN, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map FightingDojo, TILESET_TRAIN_STATION, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SaffronGym, TILESET_UNDERGROUND, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
map SaffronMart, TILESET_MART, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SaffronPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SaffronPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map MrPsychicsHouse, TILESET_HOUSE, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SaffronMagnetTrainStation, TILESET_TRAIN_STATION, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map SilphCo1F, TILESET_FACILITY, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CopycatsHouse1F, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CopycatsHouse2F, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route5UndergroundPathEntrance, TILESET_GATE, GATE, LANDMARK_ROUTE_5, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route5SaffronGate, TILESET_GATE, GATE, LANDMARK_ROUTE_5, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route5CleanseTagHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_5, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_SAFFRON_MAPS
MapGroup_Cherrygrove:
table_width MAP_LENGTH, MapGroup_Cherrygrove
map Route30, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_30, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_POND
map Route31, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_31, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_POND
map CherrygroveCity, TILESET_JOHTO, TOWN, LANDMARK_CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
map CherrygroveMart, TILESET_MART, INDOOR, LANDMARK_CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CherrygrovePokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CherrygroveGymSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map GuideGentsHouse, TILESET_HOUSE, INDOOR, LANDMARK_CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map CherrygroveEvolutionSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route30BerryHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_30, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map MrPokemonsHouse, TILESET_FACILITY, INDOOR, LANDMARK_ROUTE_30, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
map Route31VioletGate, TILESET_GATE, GATE, LANDMARK_ROUTE_31, MUSIC_ROUTE_30, FALSE, PALETTE_DAY, FISHGROUP_SHORE
assert_table_length NUM_CHERRYGROVE_MAPS

View file

@ -0,0 +1,671 @@
; Valid sprite IDs for each map group.
; Maps with environment ROUTE or TOWN can only use these sprites.
OutdoorSprites:
; entries correspond to MAPGROUP_* constants
table_width 2, OutdoorSprites
dw OlivineGroupSprites
dw MahoganyGroupSprites
dw DungeonsGroupSprites
dw EcruteakGroupSprites
dw BlackthornGroupSprites
dw CinnabarGroupSprites
dw CeruleanGroupSprites
dw AzaleaGroupSprites
dw LakeOfRageGroupSprites
dw VioletGroupSprites
dw GoldenrodGroupSprites
dw VermilionGroupSprites
dw PalletGroupSprites
dw PewterGroupSprites
dw FastShipGroupSprites
dw IndigoGroupSprites
dw FuchsiaGroupSprites
dw LavenderGroupSprites
dw SilverGroupSprites
dw CableClubGroupSprites
dw CeladonGroupSprites
dw CianwoodGroupSprites
dw ViridianGroupSprites
dw NewBarkGroupSprites
dw SaffronGroupSprites
dw CherrygroveGroupSprites
assert_table_length NUM_MAP_GROUPS
PalletGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_TEACHER
db SPRITE_FISHER
db SPRITE_YOUNGSTER
db SPRITE_BLUE
db SPRITE_GRAMPS
db SPRITE_BUG_CATCHER
db SPRITE_COOLTRAINER_F
db SPRITE_SWIMMER_GIRL
db SPRITE_SWIMMER_GUY
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
ViridianGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_TEACHER
db SPRITE_FISHER
db SPRITE_YOUNGSTER
db SPRITE_BLUE
db SPRITE_GRAMPS
db SPRITE_BUG_CATCHER
db SPRITE_COOLTRAINER_F
db SPRITE_SWIMMER_GIRL
db SPRITE_SWIMMER_GUY
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
PewterGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_TEACHER
db SPRITE_FISHER
db SPRITE_YOUNGSTER
db SPRITE_BLUE
db SPRITE_GRAMPS
db SPRITE_BUG_CATCHER
db SPRITE_COOLTRAINER_F
db SPRITE_SWIMMER_GIRL
db SPRITE_SWIMMER_GUY
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
CinnabarGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_TEACHER
db SPRITE_FISHER
db SPRITE_YOUNGSTER
db SPRITE_BLUE
db SPRITE_GRAMPS
db SPRITE_BUG_CATCHER
db SPRITE_COOLTRAINER_F
db SPRITE_SWIMMER_GIRL
db SPRITE_SWIMMER_GUY
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
CeruleanGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_COOLTRAINER_M
db SPRITE_SUPER_NERD
db SPRITE_COOLTRAINER_F
db SPRITE_FISHER
db SPRITE_YOUNGSTER
db SPRITE_LASS
db SPRITE_POKEFAN_M
db SPRITE_ROCKET
db SPRITE_MISTY
db SPRITE_POKE_BALL
db SPRITE_SLOWPOKE
SaffronGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_COOLTRAINER_M
db SPRITE_SUPER_NERD
db SPRITE_COOLTRAINER_F
db SPRITE_FISHER
db SPRITE_YOUNGSTER
db SPRITE_LASS
db SPRITE_POKEFAN_M
db SPRITE_ROCKET
db SPRITE_MISTY
db SPRITE_POKE_BALL
db SPRITE_SLOWPOKE
CeladonGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_FISHER
db SPRITE_POLIWAG
db SPRITE_TEACHER
db SPRITE_GRAMPS
db SPRITE_YOUNGSTER
db SPRITE_LASS
db SPRITE_BIKER
db SPRITE_RIVAL
db SPRITE_BLUE
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
LavenderGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_POKEFAN_M
db SPRITE_MACHOP
db SPRITE_GRAMPS
db SPRITE_YOUNGSTER
db SPRITE_FISHER
db SPRITE_TEACHER
db SPRITE_SUPER_NERD
db SPRITE_BIG_SNORLAX
db SPRITE_BIKER
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
VermilionGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_POKEFAN_M
db SPRITE_MACHOP
db SPRITE_GRAMPS
db SPRITE_YOUNGSTER
db SPRITE_FISHER
db SPRITE_TEACHER
db SPRITE_SUPER_NERD
db SPRITE_BIG_SNORLAX
db SPRITE_BIKER
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
FuchsiaGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_POKEFAN_M
db SPRITE_MACHOP
db SPRITE_GRAMPS
db SPRITE_YOUNGSTER
db SPRITE_FISHER
db SPRITE_TEACHER
db SPRITE_SUPER_NERD
db SPRITE_BIG_SNORLAX
db SPRITE_BIKER
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
IndigoGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_POKEFAN_M
db SPRITE_BEAUTY
db SPRITE_GRAMPS
db SPRITE_YOUNGSTER
db SPRITE_FISHER
db SPRITE_TEACHER
db SPRITE_SUPER_NERD
db SPRITE_MACHOP
db SPRITE_BIKER
db SPRITE_POKE_BALL
db SPRITE_BOULDER
NewBarkGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_RIVAL
db SPRITE_TEACHER
db SPRITE_FISHER
db SPRITE_COOLTRAINER_M
db SPRITE_YOUNGSTER
db SPRITE_MONSTER
db SPRITE_GRAMPS
db SPRITE_BUG_CATCHER
db SPRITE_COOLTRAINER_F
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
CherrygroveGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_RIVAL
db SPRITE_TEACHER
db SPRITE_FISHER
db SPRITE_COOLTRAINER_M
db SPRITE_YOUNGSTER
db SPRITE_MONSTER
db SPRITE_GRAMPS
db SPRITE_BUG_CATCHER
db SPRITE_COOLTRAINER_F
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
SilverGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_RIVAL
db SPRITE_TEACHER
db SPRITE_FISHER
db SPRITE_COOLTRAINER_M
db SPRITE_YOUNGSTER
db SPRITE_MONSTER
db SPRITE_GRAMPS
db SPRITE_BUG_CATCHER
db SPRITE_COOLTRAINER_F
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
VioletGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_FISHER
db SPRITE_LASS
db SPRITE_OFFICER
db SPRITE_GRAMPS
db SPRITE_YOUNGSTER
db SPRITE_COOLTRAINER_M
db SPRITE_BUG_CATCHER
db SPRITE_SUPER_NERD
db SPRITE_WEIRD_TREE
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
EcruteakGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_FISHER
db SPRITE_LASS
db SPRITE_OFFICER
db SPRITE_GRAMPS
db SPRITE_YOUNGSTER
db SPRITE_COOLTRAINER_M
db SPRITE_BUG_CATCHER
db SPRITE_SUPER_NERD
db SPRITE_WEIRD_TREE
db SPRITE_POKE_BALL
db SPRITE_FRUIT_TREE
AzaleaGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_KURT_OUTSIDE
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_GRAMPS
db SPRITE_YOUNGSTER
db SPRITE_OFFICER
db SPRITE_POKEFAN_M
db SPRITE_BLACK_BELT
db SPRITE_TEACHER
db SPRITE_AZALEA_ROCKET
db SPRITE_LASS
db SPRITE_RIVAL
db SPRITE_FRUIT_TREE
db SPRITE_SLOWPOKE
GoldenrodGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_POKE_BALL
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_GRAMPS
db SPRITE_YOUNGSTER
db SPRITE_OFFICER
db SPRITE_POKEFAN_M
db SPRITE_DAY_CARE_MON_1
db SPRITE_COOLTRAINER_F
db SPRITE_ROCKET
db SPRITE_LASS
db SPRITE_DAY_CARE_MON_2
db SPRITE_FRUIT_TREE
db SPRITE_SLOWPOKE
CianwoodGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_STANDING_YOUNGSTER
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_OLIVINE_RIVAL
db SPRITE_POKEFAN_M
db SPRITE_LASS
db SPRITE_BEAUTY
db SPRITE_SWIMMER_GIRL
db SPRITE_SAILOR
db SPRITE_POKEFAN_F
db SPRITE_SUPER_NERD
db SPRITE_TAUROS
db SPRITE_FRUIT_TREE
db SPRITE_ROCK
OlivineGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_STANDING_YOUNGSTER
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_OLIVINE_RIVAL
db SPRITE_POKEFAN_M
db SPRITE_LASS
db SPRITE_BEAUTY
db SPRITE_SWIMMER_GIRL
db SPRITE_SAILOR
db SPRITE_POKEFAN_F
db SPRITE_SUPER_NERD
db SPRITE_TAUROS
db SPRITE_FRUIT_TREE
db SPRITE_ROCK
LakeOfRageGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_LANCE
db SPRITE_GRAMPS
db SPRITE_SUPER_NERD
db SPRITE_COOLTRAINER_F
db SPRITE_FISHER
db SPRITE_COOLTRAINER_M
db SPRITE_LASS
db SPRITE_YOUNGSTER
db SPRITE_GYARADOS
db SPRITE_FRUIT_TREE
db SPRITE_POKE_BALL
MahoganyGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_GRAMPS
db SPRITE_YOUNGSTER
db SPRITE_LASS
db SPRITE_SUPER_NERD
db SPRITE_COOLTRAINER_M
db SPRITE_POKEFAN_M
db SPRITE_BLACK_BELT
db SPRITE_COOLTRAINER_F
db SPRITE_FISHER
db SPRITE_FRUIT_TREE
db SPRITE_POKE_BALL
BlackthornGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_GRAMPS
db SPRITE_YOUNGSTER
db SPRITE_LASS
db SPRITE_SUPER_NERD
db SPRITE_COOLTRAINER_M
db SPRITE_POKEFAN_M
db SPRITE_BLACK_BELT
db SPRITE_COOLTRAINER_F
db SPRITE_FISHER
db SPRITE_FRUIT_TREE
db SPRITE_POKE_BALL
DungeonsGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_GAMEBOY_KID
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_LASS
db SPRITE_POKEFAN_F
db SPRITE_TEACHER
db SPRITE_YOUNGSTER
db SPRITE_GROWLITHE
db SPRITE_POKEFAN_M
db SPRITE_ROCKER
db SPRITE_FISHER
db SPRITE_SCIENTIST
db SPRITE_POKE_BALL
db SPRITE_BOULDER
FastShipGroupSprites:
db SPRITE_SUICUNE
db SPRITE_SILVER_TROPHY
db SPRITE_FAMICOM
db SPRITE_POKEDEX
db SPRITE_WILL
db SPRITE_KAREN
db SPRITE_NURSE
db SPRITE_OLD_LINK_RECEPTIONIST
db SPRITE_BIG_LAPRAS
db SPRITE_BIG_ONIX
db SPRITE_SUDOWOODO
db SPRITE_BIG_SNORLAX
db SPRITE_SAILOR
db SPRITE_FISHING_GURU
db SPRITE_GENTLEMAN
db SPRITE_SUPER_NERD
db SPRITE_HO_OH
db SPRITE_TEACHER
db SPRITE_COOLTRAINER_F
db SPRITE_YOUNGSTER
db SPRITE_FAIRY
db SPRITE_POKE_BALL
db SPRITE_ROCK
CableClubGroupSprites:
db SPRITE_OAK
db SPRITE_FISHER
db SPRITE_TEACHER
db SPRITE_TWIN
db SPRITE_POKEFAN_M
db SPRITE_GRAMPS
db SPRITE_FAIRY
db SPRITE_RIVAL
db SPRITE_FISHING_GURU
db SPRITE_POKE_BALL
db SPRITE_POKEDEX

51
data/maps/roofs.asm Normal file
View file

@ -0,0 +1,51 @@
; MapGroupRoofs values; Roofs indexes
const_def
const ROOF_NEW_BARK ; 0
const ROOF_VIOLET ; 1
const ROOF_AZALEA ; 2
const ROOF_OLIVINE ; 3
const ROOF_GOLDENROD ; 4
DEF NUM_ROOFS EQU const_value
MapGroupRoofs:
; entries correspond to MAPGROUP_* constants
; values are indexes for Roofs (see below)
table_width 1, MapGroupRoofs
db -1 ; 0
db ROOF_OLIVINE ; 1 (Olivine)
db ROOF_AZALEA ; 2 (Mahogany)
db -1 ; 3
db ROOF_VIOLET ; 4 (Ecruteak)
db ROOF_AZALEA ; 5 (Blackthorn)
db -1 ; 6
db -1 ; 7
db ROOF_AZALEA ; 8 (Azalea)
db ROOF_AZALEA ; 9 (Lake of Rage)
db ROOF_VIOLET ; 10 (Violet)
db ROOF_GOLDENROD ; 11 (Goldenrod)
db -1 ; 12
db -1 ; 13
db -1 ; 14
db -1 ; 15
db -1 ; 16
db -1 ; 17
db -1 ; 18
db ROOF_NEW_BARK ; 19 (Silver Cave)
db -1 ; 20
db -1 ; 21
db ROOF_OLIVINE ; 22 (Cianwood)
db -1 ; 23
db ROOF_NEW_BARK ; 24 (New Bark)
db -1 ; 25
db ROOF_NEW_BARK ; 26 (Cherrygrove)
assert_table_length NUM_MAP_GROUPS + 1
Roofs:
; entries correspond to ROOF_* constants
table_width ROOF_LENGTH * LEN_2BPP_TILE, Roofs
INCBIN "gfx/tilesets/roofs/new_bark.2bpp"
INCBIN "gfx/tilesets/roofs/violet.2bpp"
INCBIN "gfx/tilesets/roofs/azalea.2bpp"
INCBIN "gfx/tilesets/roofs/olivine.2bpp"
INCBIN "gfx/tilesets/roofs/goldenrod.2bpp"
assert_table_length NUM_ROOFS

87
data/maps/scenes.asm Normal file
View file

@ -0,0 +1,87 @@
MACRO scene_var
; map, variable
map_id \1
dw \2
ENDM
MapScenes::
scene_var POKECENTER_2F, wPokecenter2FSceneID
scene_var TRADE_CENTER, wTradeCenterSceneID
scene_var COLOSSEUM, wColosseumSceneID
scene_var TIME_CAPSULE, wTimeCapsuleSceneID
scene_var POWER_PLANT, wPowerPlantSceneID
scene_var CERULEAN_GYM, wCeruleanGymSceneID
scene_var ROUTE_25, wRoute25SceneID
scene_var TRAINER_HOUSE_B1F, wTrainerHouseB1FSceneID
scene_var VICTORY_ROAD_GATE, wVictoryRoadGateSceneID
scene_var SAFFRON_MAGNET_TRAIN_STATION, wSaffronMagnetTrainStationSceneID
scene_var ROUTE_16_GATE, wRoute16GateSceneID
scene_var ROUTE_17_ROUTE_18_GATE, wRoute17Route18GateSceneID
scene_var INDIGO_PLATEAU_POKECENTER_1F, wIndigoPlateauPokecenter1FSceneID
scene_var WILLS_ROOM, wWillsRoomSceneID
scene_var KOGAS_ROOM, wKogasRoomSceneID
scene_var BRUNOS_ROOM, wBrunosRoomSceneID
scene_var KARENS_ROOM, wKarensRoomSceneID
scene_var LANCES_ROOM, wLancesRoomSceneID
scene_var HALL_OF_FAME, wHallOfFameSceneID
scene_var ROUTE_27, wRoute27SceneID
scene_var NEW_BARK_TOWN, wNewBarkTownSceneID
scene_var ELMS_LAB, wElmsLabSceneID
scene_var PLAYERS_HOUSE_1F, wPlayersHouse1FSceneID
scene_var ROUTE_29, wRoute29SceneID
scene_var CHERRYGROVE_CITY, wCherrygroveCitySceneID
scene_var MR_POKEMONS_HOUSE, wMrPokemonsHouseSceneID
scene_var ROUTE_32, wRoute32SceneID
scene_var ROUTE_35_NATIONAL_PARK_GATE, wRoute35NationalParkGateSceneID
scene_var ROUTE_36, wRoute36SceneID
scene_var ROUTE_36_NATIONAL_PARK_GATE, wRoute36NationalParkGateSceneID
scene_var AZALEA_TOWN, wAzaleaTownSceneID
scene_var GOLDENROD_GYM, wGoldenrodGymSceneID
scene_var GOLDENROD_MAGNET_TRAIN_STATION, wGoldenrodMagnetTrainStationSceneID
scene_var GOLDENROD_POKECENTER_1F, wGoldenrodPokecenter1FSceneID
scene_var OLIVINE_CITY, wOlivineCitySceneID
scene_var ROUTE_34, wRoute34SceneID ; unused
scene_var ROUTE_34_ILEX_FOREST_GATE, wRoute34IlexForestGateSceneID ; unused
scene_var ECRUTEAK_TIN_TOWER_ENTRANCE, wEcruteakTinTowerEntranceSceneID
scene_var WISE_TRIOS_ROOM, wWiseTriosRoomSceneID
scene_var ECRUTEAK_POKECENTER_1F, wEcruteakPokecenter1FSceneID
scene_var ECRUTEAK_GYM, wEcruteakGymSceneID
scene_var MAHOGANY_TOWN, wMahoganyTownSceneID
scene_var ROUTE_42, wRoute42SceneID
scene_var CIANWOOD_CITY, wCianwoodCitySceneID
scene_var BATTLE_TOWER_1F, wBattleTower1FSceneID
scene_var BATTLE_TOWER_BATTLE_ROOM, wBattleTowerBattleRoomSceneID
scene_var BATTLE_TOWER_ELEVATOR, wBattleTowerElevatorSceneID
scene_var BATTLE_TOWER_HALLWAY, wBattleTowerHallwaySceneID
scene_var BATTLE_TOWER_OUTSIDE, wBattleTowerOutsideSceneID ; unused
scene_var ROUTE_43_GATE, wRoute43GateSceneID
scene_var MOUNT_MOON, wMountMoonSceneID
scene_var SPROUT_TOWER_3F, wSproutTower3FSceneID
scene_var TIN_TOWER_1F, wTinTower1FSceneID
scene_var BURNED_TOWER_1F, wBurnedTower1FSceneID
scene_var BURNED_TOWER_B1F, wBurnedTowerB1FSceneID
scene_var RADIO_TOWER_5F, wRadioTower5FSceneID
scene_var RUINS_OF_ALPH_OUTSIDE, wRuinsOfAlphOutsideSceneID
scene_var RUINS_OF_ALPH_RESEARCH_CENTER, wRuinsOfAlphResearchCenterSceneID
scene_var RUINS_OF_ALPH_HO_OH_CHAMBER, wRuinsOfAlphHoOhChamberSceneID
scene_var RUINS_OF_ALPH_KABUTO_CHAMBER, wRuinsOfAlphKabutoChamberSceneID
scene_var RUINS_OF_ALPH_OMANYTE_CHAMBER, wRuinsOfAlphOmanyteChamberSceneID
scene_var RUINS_OF_ALPH_AERODACTYL_CHAMBER, wRuinsOfAlphAerodactylChamberSceneID
scene_var RUINS_OF_ALPH_INNER_CHAMBER, wRuinsOfAlphInnerChamberSceneID
scene_var MAHOGANY_MART_1F, wMahoganyMart1FSceneID
scene_var TEAM_ROCKET_BASE_B1F, wTeamRocketBaseB1FSceneID
scene_var TEAM_ROCKET_BASE_B2F, wTeamRocketBaseB2FSceneID
scene_var TEAM_ROCKET_BASE_B3F, wTeamRocketBaseB3FSceneID
scene_var GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, wGoldenrodUndergroundSwitchRoomEntrancesSceneID
scene_var SILVER_CAVE_ROOM_3, wSilverCaveRoom3SceneID ; unused
scene_var VICTORY_ROAD, wVictoryRoadSceneID
scene_var DRAGONS_DEN_B1F, wDragonsDenB1FSceneID
scene_var DRAGON_SHRINE, wDragonShrineSceneID
scene_var OLIVINE_PORT, wOlivinePortSceneID
scene_var VERMILION_PORT, wVermilionPortSceneID
scene_var FAST_SHIP_1F, wFastShip1FSceneID
scene_var FAST_SHIP_B1F, wFastShipB1FSceneID
scene_var MOUNT_MOON_SQUARE, wMountMoonSquareSceneID
scene_var MOBILE_TRADE_ROOM, wMobileTradeRoomSceneID
scene_var MOBILE_BATTLE_ROOM, wMobileBattleRoomSceneID
db -1 ; end

486
data/maps/scripts.asm Normal file
View file

@ -0,0 +1,486 @@
SECTION "Map Scripts 1", ROMX
INCLUDE "maps/GoldenrodGym.asm"
INCLUDE "maps/GoldenrodBikeShop.asm"
INCLUDE "maps/GoldenrodHappinessRater.asm"
INCLUDE "maps/BillsFamilysHouse.asm"
INCLUDE "maps/GoldenrodMagnetTrainStation.asm"
INCLUDE "maps/GoldenrodFlowerShop.asm"
INCLUDE "maps/GoldenrodPPSpeechHouse.asm"
INCLUDE "maps/GoldenrodNameRater.asm"
INCLUDE "maps/GoldenrodDeptStore1F.asm"
INCLUDE "maps/GoldenrodDeptStore2F.asm"
INCLUDE "maps/GoldenrodDeptStore3F.asm"
INCLUDE "maps/GoldenrodDeptStore4F.asm"
INCLUDE "maps/GoldenrodDeptStore5F.asm"
INCLUDE "maps/GoldenrodDeptStore6F.asm"
INCLUDE "maps/GoldenrodDeptStoreElevator.asm"
INCLUDE "maps/GoldenrodDeptStoreRoof.asm"
INCLUDE "maps/GoldenrodGameCorner.asm"
SECTION "Map Scripts 2", ROMX
INCLUDE "maps/RuinsOfAlphOutside.asm"
INCLUDE "maps/RuinsOfAlphHoOhChamber.asm"
INCLUDE "maps/RuinsOfAlphKabutoChamber.asm"
INCLUDE "maps/RuinsOfAlphOmanyteChamber.asm"
INCLUDE "maps/RuinsOfAlphAerodactylChamber.asm"
INCLUDE "maps/RuinsOfAlphInnerChamber.asm"
INCLUDE "maps/RuinsOfAlphResearchCenter.asm"
INCLUDE "maps/RuinsOfAlphHoOhItemRoom.asm"
INCLUDE "maps/RuinsOfAlphKabutoItemRoom.asm"
INCLUDE "maps/RuinsOfAlphOmanyteItemRoom.asm"
INCLUDE "maps/RuinsOfAlphAerodactylItemRoom.asm"
INCLUDE "maps/RuinsOfAlphHoOhWordRoom.asm"
INCLUDE "maps/RuinsOfAlphKabutoWordRoom.asm"
INCLUDE "maps/RuinsOfAlphOmanyteWordRoom.asm"
INCLUDE "maps/RuinsOfAlphAerodactylWordRoom.asm"
INCLUDE "maps/UnionCave1F.asm"
INCLUDE "maps/UnionCaveB1F.asm"
INCLUDE "maps/UnionCaveB2F.asm"
INCLUDE "maps/SlowpokeWellB1F.asm"
INCLUDE "maps/SlowpokeWellB2F.asm"
INCLUDE "maps/OlivineLighthouse1F.asm"
INCLUDE "maps/OlivineLighthouse2F.asm"
INCLUDE "maps/OlivineLighthouse3F.asm"
INCLUDE "maps/OlivineLighthouse4F.asm"
SECTION "Map Scripts 3", ROMX
INCLUDE "maps/NationalPark.asm"
INCLUDE "maps/NationalParkBugContest.asm"
INCLUDE "maps/RadioTower1F.asm"
INCLUDE "maps/RadioTower2F.asm"
INCLUDE "maps/RadioTower3F.asm"
INCLUDE "maps/RadioTower4F.asm"
SECTION "Map Scripts 4", ROMX
INCLUDE "maps/RadioTower5F.asm"
INCLUDE "maps/OlivineLighthouse5F.asm"
INCLUDE "maps/OlivineLighthouse6F.asm"
INCLUDE "maps/GoldenrodPokecenter1F.asm"
INCLUDE "maps/PokecomCenterAdminOfficeMobile.asm"
INCLUDE "maps/IlexForestAzaleaGate.asm"
INCLUDE "maps/Route34IlexForestGate.asm"
INCLUDE "maps/DayCare.asm"
SECTION "Map Scripts 5", ROMX
INCLUDE "maps/Route11.asm"
INCLUDE "maps/VioletMart.asm"
INCLUDE "maps/VioletGym.asm"
INCLUDE "maps/EarlsPokemonAcademy.asm"
INCLUDE "maps/VioletNicknameSpeechHouse.asm"
INCLUDE "maps/VioletPokecenter1F.asm"
INCLUDE "maps/VioletKylesHouse.asm"
INCLUDE "maps/Route32RuinsOfAlphGate.asm"
INCLUDE "maps/Route32Pokecenter1F.asm"
INCLUDE "maps/Route35GoldenrodGate.asm"
INCLUDE "maps/Route35NationalParkGate.asm"
INCLUDE "maps/Route36RuinsOfAlphGate.asm"
INCLUDE "maps/Route36NationalParkGate.asm"
SECTION "Map Scripts 6", ROMX
INCLUDE "maps/Route8.asm"
INCLUDE "maps/MahoganyMart1F.asm"
INCLUDE "maps/TeamRocketBaseB1F.asm"
INCLUDE "maps/TeamRocketBaseB2F.asm"
INCLUDE "maps/TeamRocketBaseB3F.asm"
INCLUDE "maps/IlexForest.asm"
SECTION "Map Scripts 7", ROMX
INCLUDE "maps/LakeOfRage.asm"
INCLUDE "maps/CeladonDeptStore1F.asm"
INCLUDE "maps/CeladonDeptStore2F.asm"
INCLUDE "maps/CeladonDeptStore3F.asm"
INCLUDE "maps/CeladonDeptStore4F.asm"
INCLUDE "maps/CeladonDeptStore5F.asm"
INCLUDE "maps/CeladonDeptStore6F.asm"
INCLUDE "maps/CeladonDeptStoreElevator.asm"
INCLUDE "maps/CeladonMansion1F.asm"
INCLUDE "maps/CeladonMansion2F.asm"
INCLUDE "maps/CeladonMansion3F.asm"
INCLUDE "maps/CeladonMansionRoof.asm"
INCLUDE "maps/CeladonMansionRoofHouse.asm"
INCLUDE "maps/CeladonPokecenter1F.asm"
INCLUDE "maps/CeladonPokecenter2FBeta.asm"
INCLUDE "maps/CeladonGameCorner.asm"
INCLUDE "maps/CeladonGameCornerPrizeRoom.asm"
INCLUDE "maps/CeladonGym.asm"
INCLUDE "maps/CeladonCafe.asm"
INCLUDE "maps/Route16FuchsiaSpeechHouse.asm"
INCLUDE "maps/Route16Gate.asm"
INCLUDE "maps/Route7SaffronGate.asm"
INCLUDE "maps/Route17Route18Gate.asm"
SECTION "Map Scripts 8", ROMX
INCLUDE "maps/DiglettsCave.asm"
INCLUDE "maps/MountMoon.asm"
INCLUDE "maps/UndergroundPath.asm"
INCLUDE "maps/RockTunnel1F.asm"
INCLUDE "maps/RockTunnelB1F.asm"
INCLUDE "maps/SafariZoneFuchsiaGateBeta.asm"
INCLUDE "maps/SafariZoneBeta.asm"
INCLUDE "maps/VictoryRoad.asm"
INCLUDE "maps/OlivinePort.asm"
INCLUDE "maps/VermilionPort.asm"
INCLUDE "maps/FastShip1F.asm"
INCLUDE "maps/FastShipCabins_NNW_NNE_NE.asm"
INCLUDE "maps/FastShipCabins_SW_SSW_NW.asm"
INCLUDE "maps/FastShipCabins_SE_SSE_CaptainsCabin.asm"
INCLUDE "maps/FastShipB1F.asm"
INCLUDE "maps/OlivinePortPassage.asm"
INCLUDE "maps/VermilionPortPassage.asm"
INCLUDE "maps/MountMoonSquare.asm"
INCLUDE "maps/MountMoonGiftShop.asm"
INCLUDE "maps/TinTowerRoof.asm"
SECTION "Map Scripts 9", ROMX
INCLUDE "maps/Route34.asm"
INCLUDE "maps/ElmsLab.asm"
INCLUDE "maps/PlayersHouse1F.asm"
INCLUDE "maps/PlayersHouse2F.asm"
INCLUDE "maps/PlayersNeighborsHouse.asm"
INCLUDE "maps/ElmsHouse.asm"
INCLUDE "maps/Route26HealHouse.asm"
INCLUDE "maps/DayOfWeekSiblingsHouse.asm"
INCLUDE "maps/Route27SandstormHouse.asm"
INCLUDE "maps/Route29Route46Gate.asm"
SECTION "Map Scripts 10", ROMX
INCLUDE "maps/Route22.asm"
INCLUDE "maps/GoldenrodUnderground.asm"
INCLUDE "maps/GoldenrodUndergroundSwitchRoomEntrances.asm"
INCLUDE "maps/GoldenrodDeptStoreB1F.asm"
INCLUDE "maps/GoldenrodUndergroundWarehouse.asm"
INCLUDE "maps/MountMortar1FOutside.asm"
INCLUDE "maps/MountMortar1FInside.asm"
INCLUDE "maps/MountMortar2FInside.asm"
INCLUDE "maps/MountMortarB1F.asm"
INCLUDE "maps/IcePath1F.asm"
INCLUDE "maps/IcePathB1F.asm"
INCLUDE "maps/IcePathB2FMahoganySide.asm"
INCLUDE "maps/IcePathB2FBlackthornSide.asm"
INCLUDE "maps/IcePathB3F.asm"
INCLUDE "maps/LavenderPokecenter1F.asm"
INCLUDE "maps/LavenderPokecenter2FBeta.asm"
INCLUDE "maps/MrFujisHouse.asm"
INCLUDE "maps/LavenderSpeechHouse.asm"
INCLUDE "maps/LavenderNameRater.asm"
INCLUDE "maps/LavenderMart.asm"
INCLUDE "maps/SoulHouse.asm"
INCLUDE "maps/LavRadioTower1F.asm"
INCLUDE "maps/Route8SaffronGate.asm"
INCLUDE "maps/Route12SuperRodHouse.asm"
SECTION "Map Scripts 11", ROMX
INCLUDE "maps/EcruteakTinTowerEntrance.asm"
INCLUDE "maps/WiseTriosRoom.asm"
INCLUDE "maps/EcruteakPokecenter1F.asm"
INCLUDE "maps/EcruteakLugiaSpeechHouse.asm"
INCLUDE "maps/DanceTheater.asm"
INCLUDE "maps/EcruteakMart.asm"
INCLUDE "maps/EcruteakGym.asm"
INCLUDE "maps/EcruteakItemfinderHouse.asm"
INCLUDE "maps/ViridianGym.asm"
INCLUDE "maps/ViridianNicknameSpeechHouse.asm"
INCLUDE "maps/TrainerHouse1F.asm"
INCLUDE "maps/TrainerHouseB1F.asm"
INCLUDE "maps/ViridianMart.asm"
INCLUDE "maps/ViridianPokecenter1F.asm"
INCLUDE "maps/ViridianPokecenter2FBeta.asm"
INCLUDE "maps/Route2NuggetHouse.asm"
INCLUDE "maps/Route2Gate.asm"
INCLUDE "maps/VictoryRoadGate.asm"
SECTION "Map Scripts 12", ROMX
INCLUDE "maps/OlivinePokecenter1F.asm"
INCLUDE "maps/OlivineGym.asm"
INCLUDE "maps/OlivineTimsHouse.asm"
INCLUDE "maps/OlivineHouseBeta.asm"
INCLUDE "maps/OlivinePunishmentSpeechHouse.asm"
INCLUDE "maps/OlivineGoodRodHouse.asm"
INCLUDE "maps/OlivineCafe.asm"
INCLUDE "maps/OlivineMart.asm"
INCLUDE "maps/Route38EcruteakGate.asm"
INCLUDE "maps/Route39Barn.asm"
INCLUDE "maps/Route39Farmhouse.asm"
INCLUDE "maps/ManiasHouse.asm"
INCLUDE "maps/CianwoodGym.asm"
INCLUDE "maps/CianwoodPokecenter1F.asm"
INCLUDE "maps/CianwoodPharmacy.asm"
INCLUDE "maps/CianwoodPhotoStudio.asm"
INCLUDE "maps/CianwoodLugiaSpeechHouse.asm"
INCLUDE "maps/PokeSeersHouse.asm"
INCLUDE "maps/BattleTower1F.asm"
INCLUDE "maps/BattleTowerBattleRoom.asm"
INCLUDE "maps/BattleTowerElevator.asm"
INCLUDE "maps/BattleTowerHallway.asm"
INCLUDE "maps/Route40BattleTowerGate.asm"
INCLUDE "maps/BattleTowerOutside.asm"
SECTION "Map Scripts 13", ROMX
INCLUDE "maps/IndigoPlateauPokecenter1F.asm"
INCLUDE "maps/WillsRoom.asm"
INCLUDE "maps/KogasRoom.asm"
INCLUDE "maps/BrunosRoom.asm"
INCLUDE "maps/KarensRoom.asm"
INCLUDE "maps/LancesRoom.asm"
INCLUDE "maps/HallOfFame.asm"
SECTION "Map Scripts 14", ROMX
INCLUDE "maps/CeruleanCity.asm"
INCLUDE "maps/SproutTower1F.asm"
INCLUDE "maps/SproutTower2F.asm"
INCLUDE "maps/SproutTower3F.asm"
INCLUDE "maps/TinTower1F.asm"
INCLUDE "maps/TinTower2F.asm"
INCLUDE "maps/TinTower3F.asm"
INCLUDE "maps/TinTower4F.asm"
INCLUDE "maps/TinTower5F.asm"
INCLUDE "maps/TinTower6F.asm"
INCLUDE "maps/TinTower7F.asm"
INCLUDE "maps/TinTower8F.asm"
INCLUDE "maps/TinTower9F.asm"
INCLUDE "maps/BurnedTower1F.asm"
INCLUDE "maps/BurnedTowerB1F.asm"
SECTION "Map Scripts 15", ROMX
INCLUDE "maps/CeruleanGymBadgeSpeechHouse.asm"
INCLUDE "maps/CeruleanPoliceStation.asm"
INCLUDE "maps/CeruleanTradeSpeechHouse.asm"
INCLUDE "maps/CeruleanPokecenter1F.asm"
INCLUDE "maps/CeruleanPokecenter2FBeta.asm"
INCLUDE "maps/CeruleanGym.asm"
INCLUDE "maps/CeruleanMart.asm"
INCLUDE "maps/Route10Pokecenter1F.asm"
INCLUDE "maps/Route10Pokecenter2FBeta.asm"
INCLUDE "maps/PowerPlant.asm"
INCLUDE "maps/BillsHouse.asm"
INCLUDE "maps/FightingDojo.asm"
INCLUDE "maps/SaffronGym.asm"
INCLUDE "maps/SaffronMart.asm"
INCLUDE "maps/SaffronPokecenter1F.asm"
INCLUDE "maps/SaffronPokecenter2FBeta.asm"
INCLUDE "maps/MrPsychicsHouse.asm"
INCLUDE "maps/SaffronMagnetTrainStation.asm"
INCLUDE "maps/SilphCo1F.asm"
INCLUDE "maps/CopycatsHouse1F.asm"
INCLUDE "maps/CopycatsHouse2F.asm"
INCLUDE "maps/Route5UndergroundPathEntrance.asm"
INCLUDE "maps/Route5SaffronGate.asm"
INCLUDE "maps/Route5CleanseTagHouse.asm"
SECTION "Map Scripts 16", ROMX
INCLUDE "maps/PewterCity.asm"
INCLUDE "maps/WhirlIslandNW.asm"
INCLUDE "maps/WhirlIslandNE.asm"
INCLUDE "maps/WhirlIslandSW.asm"
INCLUDE "maps/WhirlIslandCave.asm"
INCLUDE "maps/WhirlIslandSE.asm"
INCLUDE "maps/WhirlIslandB1F.asm"
INCLUDE "maps/WhirlIslandB2F.asm"
INCLUDE "maps/WhirlIslandLugiaChamber.asm"
INCLUDE "maps/SilverCaveRoom1.asm"
INCLUDE "maps/SilverCaveRoom2.asm"
INCLUDE "maps/SilverCaveRoom3.asm"
INCLUDE "maps/SilverCaveItemRooms.asm"
INCLUDE "maps/DarkCaveVioletEntrance.asm"
INCLUDE "maps/DarkCaveBlackthornEntrance.asm"
INCLUDE "maps/DragonsDen1F.asm"
INCLUDE "maps/DragonsDenB1F.asm"
INCLUDE "maps/DragonShrine.asm"
INCLUDE "maps/TohjoFalls.asm"
INCLUDE "maps/AzaleaPokecenter1F.asm"
INCLUDE "maps/CharcoalKiln.asm"
INCLUDE "maps/AzaleaMart.asm"
INCLUDE "maps/KurtsHouse.asm"
INCLUDE "maps/AzaleaGym.asm"
SECTION "Map Scripts 17", ROMX
INCLUDE "maps/MahoganyTown.asm"
INCLUDE "maps/Route32.asm"
INCLUDE "maps/VermilionFishingSpeechHouse.asm"
INCLUDE "maps/VermilionPokecenter1F.asm"
INCLUDE "maps/VermilionPokecenter2FBeta.asm"
INCLUDE "maps/PokemonFanClub.asm"
INCLUDE "maps/VermilionMagnetTrainSpeechHouse.asm"
INCLUDE "maps/VermilionMart.asm"
INCLUDE "maps/VermilionDiglettsCaveSpeechHouse.asm"
INCLUDE "maps/VermilionGym.asm"
INCLUDE "maps/Route6SaffronGate.asm"
INCLUDE "maps/Route6UndergroundPathEntrance.asm"
INCLUDE "maps/Pokecenter2F.asm"
INCLUDE "maps/TradeCenter.asm"
INCLUDE "maps/Colosseum.asm"
INCLUDE "maps/TimeCapsule.asm"
INCLUDE "maps/MobileTradeRoom.asm"
INCLUDE "maps/MobileBattleRoom.asm"
SECTION "Map Scripts 18", ROMX
INCLUDE "maps/Route36.asm"
INCLUDE "maps/FuchsiaCity.asm"
INCLUDE "maps/BlackthornGym1F.asm"
INCLUDE "maps/BlackthornGym2F.asm"
INCLUDE "maps/BlackthornDragonSpeechHouse.asm"
INCLUDE "maps/BlackthornEmysHouse.asm"
INCLUDE "maps/BlackthornMart.asm"
INCLUDE "maps/BlackthornPokecenter1F.asm"
INCLUDE "maps/MoveDeletersHouse.asm"
INCLUDE "maps/FuchsiaMart.asm"
INCLUDE "maps/SafariZoneMainOffice.asm"
INCLUDE "maps/FuchsiaGym.asm"
INCLUDE "maps/BillsBrothersHouse.asm"
INCLUDE "maps/FuchsiaPokecenter1F.asm"
INCLUDE "maps/FuchsiaPokecenter2FBeta.asm"
INCLUDE "maps/SafariZoneWardensHome.asm"
INCLUDE "maps/Route15FuchsiaGate.asm"
INCLUDE "maps/CherrygroveMart.asm"
INCLUDE "maps/CherrygrovePokecenter1F.asm"
INCLUDE "maps/CherrygroveGymSpeechHouse.asm"
INCLUDE "maps/GuideGentsHouse.asm"
INCLUDE "maps/CherrygroveEvolutionSpeechHouse.asm"
INCLUDE "maps/Route30BerryHouse.asm"
INCLUDE "maps/MrPokemonsHouse.asm"
INCLUDE "maps/Route31VioletGate.asm"
SECTION "Map Scripts 19", ROMX
INCLUDE "maps/AzaleaTown.asm"
INCLUDE "maps/GoldenrodCity.asm"
INCLUDE "maps/SaffronCity.asm"
INCLUDE "maps/MahoganyRedGyaradosSpeechHouse.asm"
INCLUDE "maps/MahoganyGym.asm"
INCLUDE "maps/MahoganyPokecenter1F.asm"
INCLUDE "maps/Route42EcruteakGate.asm"
INCLUDE "maps/LakeOfRageHiddenPowerHouse.asm"
INCLUDE "maps/LakeOfRageMagikarpHouse.asm"
INCLUDE "maps/Route43MahoganyGate.asm"
INCLUDE "maps/Route43Gate.asm"
INCLUDE "maps/RedsHouse1F.asm"
INCLUDE "maps/RedsHouse2F.asm"
INCLUDE "maps/BluesHouse.asm"
INCLUDE "maps/OaksLab.asm"
SECTION "Map Scripts 20", ROMX
INCLUDE "maps/CherrygroveCity.asm"
INCLUDE "maps/Route35.asm"
INCLUDE "maps/Route43.asm"
INCLUDE "maps/Route44.asm"
INCLUDE "maps/Route45.asm"
INCLUDE "maps/Route19.asm"
INCLUDE "maps/Route25.asm"
SECTION "Map Scripts 21", ROMX
INCLUDE "maps/CianwoodCity.asm"
INCLUDE "maps/Route27.asm"
INCLUDE "maps/Route29.asm"
INCLUDE "maps/Route30.asm"
INCLUDE "maps/Route38.asm"
INCLUDE "maps/Route13.asm"
INCLUDE "maps/PewterNidoranSpeechHouse.asm"
INCLUDE "maps/PewterGym.asm"
INCLUDE "maps/PewterMart.asm"
INCLUDE "maps/PewterPokecenter1F.asm"
INCLUDE "maps/PewterPokecenter2FBeta.asm"
INCLUDE "maps/PewterSnoozeSpeechHouse.asm"
SECTION "Map Scripts 22", ROMX
INCLUDE "maps/EcruteakCity.asm"
INCLUDE "maps/BlackthornCity.asm"
INCLUDE "maps/Route26.asm"
INCLUDE "maps/Route28.asm"
INCLUDE "maps/Route31.asm"
INCLUDE "maps/Route39.asm"
INCLUDE "maps/Route40.asm"
INCLUDE "maps/Route41.asm"
INCLUDE "maps/Route12.asm"
SECTION "Map Scripts 23", ROMX
INCLUDE "maps/NewBarkTown.asm"
INCLUDE "maps/VioletCity.asm"
INCLUDE "maps/OlivineCity.asm"
INCLUDE "maps/Route37.asm"
INCLUDE "maps/Route42.asm"
INCLUDE "maps/Route46.asm"
INCLUDE "maps/ViridianCity.asm"
INCLUDE "maps/CeladonCity.asm"
INCLUDE "maps/Route15.asm"
INCLUDE "maps/VermilionCity.asm"
INCLUDE "maps/Route9.asm"
INCLUDE "maps/CinnabarPokecenter1F.asm"
INCLUDE "maps/CinnabarPokecenter2FBeta.asm"
INCLUDE "maps/Route19FuchsiaGate.asm"
INCLUDE "maps/SeafoamGym.asm"
SECTION "Map Scripts 24", ROMX
INCLUDE "maps/Route33.asm"
INCLUDE "maps/Route2.asm"
INCLUDE "maps/Route1.asm"
INCLUDE "maps/PalletTown.asm"
INCLUDE "maps/Route21.asm"
INCLUDE "maps/CinnabarIsland.asm"
INCLUDE "maps/Route20.asm"
INCLUDE "maps/Route18.asm"
INCLUDE "maps/Route17.asm"
INCLUDE "maps/Route16.asm"
INCLUDE "maps/Route7.asm"
INCLUDE "maps/Route14.asm"
INCLUDE "maps/LavenderTown.asm"
INCLUDE "maps/Route6.asm"
INCLUDE "maps/Route5.asm"
INCLUDE "maps/Route24.asm"
INCLUDE "maps/Route3.asm"
INCLUDE "maps/Route4.asm"
INCLUDE "maps/Route10South.asm"
INCLUDE "maps/Route23.asm"
INCLUDE "maps/SilverCavePokecenter1F.asm"
INCLUDE "maps/Route28SteelWingHouse.asm"
SECTION "Map Scripts 25", ROMX
INCLUDE "maps/SilverCaveOutside.asm"
INCLUDE "maps/Route10North.asm"

View file

@ -0,0 +1,52 @@
MACRO add_mapsetup
\1_MapSetupCmd:
dba \1
ENDM
MapSetupCommands:
add_mapsetup EnableLCD ; 00
add_mapsetup DisableLCD ; 01
add_mapsetup InitSound ; 02
add_mapsetup PlayMapMusic ; 03
add_mapsetup RestartMapMusic ; 04
add_mapsetup FadeToMapMusic ; 05
add_mapsetup FadeMapMusicAndPalettes ; 06
add_mapsetup PlayMapMusicBike ; 07
add_mapsetup ForceMapMusic ; 08
add_mapsetup FadeInToMusic ; 09
add_mapsetup LoadBlockData ; 0a (callback 1)
add_mapsetup LoadConnectionBlockData ; 0b
add_mapsetup SaveScreen ; 0c
add_mapsetup BufferScreen ; 0d
add_mapsetup LoadMapGraphics ; 0e
add_mapsetup LoadMapTileset ; 0f
add_mapsetup LoadMapTimeOfDay ; 10
add_mapsetup LoadMapPalettes ; 11
add_mapsetup LoadWildMonData ; 12
add_mapsetup RefreshMapSprites ; 13
add_mapsetup HandleNewMap ; 14
add_mapsetup HandleContinueMap ; 15
add_mapsetup LoadMapObjects ; 16
add_mapsetup EnterMapSpawnPoint ; 17
add_mapsetup EnterMapConnection ; 18
add_mapsetup EnterMapWarp ; 19
add_mapsetup LoadMapAttributes ; 1a
add_mapsetup LoadMapAttributes_SkipObjects ; 1b
add_mapsetup ClearBGPalettes ; 1c
add_mapsetup FadeOutPalettes ; 1d
add_mapsetup FadeInPalettes ; 1e
add_mapsetup GetMapScreenCoords ; 1f
add_mapsetup GetWarpDestCoords ; 20
add_mapsetup SpawnInFacingDown ; 21
add_mapsetup SpawnPlayer ; 22
add_mapsetup RefreshPlayerCoords ; 23
add_mapsetup ResetPlayerObjectAction ; 24
add_mapsetup SkipUpdateMapSprites ; 25
add_mapsetup UpdateRoamMons ; 26
add_mapsetup JumpRoamMons ; 27
add_mapsetup FadeOutMapMusic ; 28
add_mapsetup ActivateMapAnims ; 29
add_mapsetup SuspendMapAnims ; 2a
add_mapsetup ApplyMapPalettes ; 2b
add_mapsetup EnableTextAcceleration ; 2c
add_mapsetup InitMapNameSign ; 2d

183
data/maps/setup_scripts.asm Normal file
View file

@ -0,0 +1,183 @@
MapSetupScripts:
; entries correspond to MAPSETUP_* constants (see constants/map_setup_constants.asm)
table_width 2, MapSetupScripts
dw MapSetupScript_Warp
dw MapSetupScript_Continue
dw MapSetupScript_ReloadMap
dw MapSetupScript_Teleport
dw MapSetupScript_Door
dw MapSetupScript_Fall
dw MapSetupScript_Connection
dw MapSetupScript_LinkReturn
dw MapSetupScript_Train
dw MapSetupScript_Submenu
dw MapSetupScript_BadWarp
dw MapSetupScript_Fly
assert_table_length NUM_MAPSETUP_SCRIPTS
; valid commands are listed in MapSetupCommands (see data/maps/setup_script_pointers.asm)
MACRO mapsetup
db (\1_MapSetupCmd - MapSetupCommands) / 3
ENDM
MapSetupScript_Teleport:
mapsetup ResetPlayerObjectAction
MapSetupScript_Fly:
mapsetup FadeOutPalettes
mapsetup JumpRoamMons
MapSetupScript_Warp:
mapsetup DisableLCD
mapsetup InitSound
mapsetup EnterMapSpawnPoint
mapsetup LoadMapAttributes
mapsetup HandleNewMap
mapsetup SpawnPlayer
mapsetup RefreshPlayerCoords
mapsetup GetMapScreenCoords
mapsetup LoadBlockData
mapsetup BufferScreen
mapsetup LoadMapGraphics
mapsetup LoadMapTimeOfDay
mapsetup LoadMapObjects
mapsetup EnableLCD
mapsetup LoadMapPalettes
mapsetup SpawnInFacingDown
mapsetup RefreshMapSprites
mapsetup PlayMapMusicBike
mapsetup FadeInToMusic
mapsetup FadeInPalettes
mapsetup ActivateMapAnims
mapsetup LoadWildMonData
db -1 ; end
MapSetupScript_BadWarp:
mapsetup EnterMapSpawnPoint
mapsetup LoadMapAttributes
mapsetup HandleNewMap
mapsetup SpawnPlayer
mapsetup RefreshPlayerCoords
mapsetup GetMapScreenCoords
mapsetup LoadBlockData
mapsetup BufferScreen
mapsetup DisableLCD
mapsetup LoadMapGraphics
mapsetup LoadMapTimeOfDay
mapsetup FadeOutMapMusic
mapsetup EnableLCD
mapsetup LoadMapObjects
mapsetup LoadMapPalettes
mapsetup SpawnInFacingDown
mapsetup RefreshMapSprites
mapsetup FadeToMapMusic
mapsetup FadeInPalettes
mapsetup ActivateMapAnims
mapsetup LoadWildMonData
db -1 ; end
MapSetupScript_Connection:
mapsetup SuspendMapAnims
mapsetup EnterMapConnection
mapsetup LoadMapAttributes
mapsetup HandleNewMap
mapsetup RefreshPlayerCoords
mapsetup LoadBlockData
mapsetup LoadMapTileset
mapsetup SaveScreen
mapsetup LoadMapObjects
mapsetup FadeToMapMusic
mapsetup LoadMapPalettes
mapsetup InitMapNameSign
mapsetup ApplyMapPalettes
mapsetup LoadWildMonData
mapsetup UpdateRoamMons
mapsetup ActivateMapAnims
db -1 ; end
MapSetupScript_Fall:
mapsetup ResetPlayerObjectAction
MapSetupScript_Door:
mapsetup FadeOutPalettes
MapSetupScript_Train:
mapsetup EnterMapWarp
mapsetup LoadMapAttributes
mapsetup GetWarpDestCoords
mapsetup HandleNewMap
mapsetup RefreshPlayerCoords
mapsetup LoadBlockData
mapsetup BufferScreen
mapsetup DisableLCD
mapsetup LoadMapGraphics
mapsetup LoadMapTimeOfDay
mapsetup FadeOutMapMusic
mapsetup EnableLCD
mapsetup LoadMapObjects
mapsetup LoadMapPalettes
mapsetup RefreshMapSprites
mapsetup FadeToMapMusic
mapsetup FadeInPalettes
mapsetup ActivateMapAnims
mapsetup LoadWildMonData
mapsetup UpdateRoamMons
db -1 ; end
MapSetupScript_ReloadMap:
mapsetup FadeMapMusicAndPalettes
mapsetup ClearBGPalettes
mapsetup DisableLCD
mapsetup InitSound
mapsetup LoadBlockData
mapsetup LoadConnectionBlockData
mapsetup LoadMapGraphics
mapsetup LoadMapTimeOfDay
mapsetup EnableLCD
mapsetup LoadMapPalettes
mapsetup RefreshMapSprites
mapsetup ForceMapMusic
mapsetup FadeInPalettes
mapsetup ActivateMapAnims
mapsetup LoadWildMonData
db -1 ; end
MapSetupScript_LinkReturn:
mapsetup FadeMapMusicAndPalettes
mapsetup DisableLCD
mapsetup InitSound
mapsetup HandleNewMap
mapsetup LoadBlockData
mapsetup BufferScreen
mapsetup LoadMapGraphics
mapsetup LoadMapTimeOfDay
mapsetup EnableLCD
mapsetup LoadMapPalettes
mapsetup RefreshMapSprites
mapsetup PlayMapMusicBike
mapsetup FadeInPalettes
mapsetup ActivateMapAnims
mapsetup LoadWildMonData
mapsetup EnableTextAcceleration
db -1 ; end
MapSetupScript_Continue:
mapsetup DisableLCD
mapsetup InitSound
mapsetup LoadMapAttributes_SkipObjects
mapsetup GetMapScreenCoords
mapsetup HandleContinueMap
mapsetup LoadBlockData
mapsetup LoadConnectionBlockData
mapsetup BufferScreen
mapsetup LoadMapGraphics
mapsetup LoadMapTimeOfDay
mapsetup EnableLCD
mapsetup LoadMapPalettes
mapsetup RefreshMapSprites
mapsetup PlayMapMusicBike
mapsetup FadeInPalettes
mapsetup ActivateMapAnims
mapsetup LoadWildMonData
db -1 ; end
MapSetupScript_Submenu:
mapsetup LoadBlockData
mapsetup LoadConnectionBlockData
db -1 ; end

View file

@ -0,0 +1,33 @@
; Crystal does not support SGB, so this is unused.
MapGroupRoofSGBPalInds:
; entries correspond to map groups
table_width 1, MapGroupRoofSGBPalInds
db PREDEFPAL_ROUTES
db PREDEFPAL_OLIVINE
db PREDEFPAL_MAHOGANY
db PREDEFPAL_DUNGEONS
db PREDEFPAL_ECRUTEAK
db PREDEFPAL_BLACKTHORN
db PREDEFPAL_CINNABAR
db PREDEFPAL_CERULEAN
db PREDEFPAL_AZALEA
db PREDEFPAL_LAKE_OF_RAGE
db PREDEFPAL_VIOLET
db PREDEFPAL_GOLDENROD
db PREDEFPAL_VERMILION
db PREDEFPAL_PALLET
db PREDEFPAL_PEWTER
db PREDEFPAL_VERMILION
db PREDEFPAL_INDIGO
db PREDEFPAL_FUCHSIA
db PREDEFPAL_LAVENDER
db PREDEFPAL_SILVER_CAVE
db PREDEFPAL_FUCHSIA
db PREDEFPAL_CELADON
db PREDEFPAL_CIANWOOD
db PREDEFPAL_VIRIDIAN
db PREDEFPAL_NEW_BARK
db PREDEFPAL_SAFFRON
db PREDEFPAL_CHERRYGROVE
assert_table_length NUM_MAP_GROUPS + 1

View file

@ -0,0 +1,44 @@
MACRO spawn
; map, x, y
map_id \1
db \2, \3
ENDM
SpawnPoints:
; entries correspond to SPAWN_* constants
table_width 4, SpawnPoints
spawn PLAYERS_HOUSE_2F, 3, 3
spawn VIRIDIAN_POKECENTER_1F, 5, 3
spawn PALLET_TOWN, 5, 6
spawn VIRIDIAN_CITY, 23, 26
spawn PEWTER_CITY, 13, 26
spawn CERULEAN_CITY, 19, 22
spawn ROUTE_10_NORTH, 11, 2
spawn VERMILION_CITY, 9, 6
spawn LAVENDER_TOWN, 5, 6
spawn SAFFRON_CITY, 9, 30
spawn CELADON_CITY, 29, 10
spawn FUCHSIA_CITY, 19, 28
spawn CINNABAR_ISLAND, 11, 12
spawn ROUTE_23, 9, 6
spawn NEW_BARK_TOWN, 13, 6
spawn CHERRYGROVE_CITY, 29, 4
spawn VIOLET_CITY, 31, 26
spawn ROUTE_32, 11, 74
spawn AZALEA_TOWN, 15, 10
spawn CIANWOOD_CITY, 23, 44
spawn GOLDENROD_CITY, 15, 28
spawn OLIVINE_CITY, 13, 22
spawn ECRUTEAK_CITY, 23, 28
spawn MAHOGANY_TOWN, 15, 14
spawn LAKE_OF_RAGE, 21, 29
spawn BLACKTHORN_CITY, 21, 30
spawn SILVER_CAVE_OUTSIDE, 23, 20
spawn FAST_SHIP_CABINS_SW_SSW_NW, 6, 2
spawn N_A, -1, -1
assert_table_length NUM_SPAWNS + 1

36
data/mon_menu.asm Normal file
View file

@ -0,0 +1,36 @@
MonMenuOptions:
; category, item, value; actions are in PokemonActionSubmenu (see engine/pokemon/mon_menu.asm)
table_width 4, MonMenuOptions
; moves
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_CUT, CUT
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_FLY, FLY
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_SURF, SURF
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_STRENGTH, STRENGTH
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_FLASH, FLASH
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_WATERFALL, WATERFALL
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_WHIRLPOOL, WHIRLPOOL
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_DIG, DIG
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_TELEPORT, TELEPORT
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_SOFTBOILED, SOFTBOILED
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_HEADBUTT, HEADBUTT
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_ROCKSMASH, ROCK_SMASH
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_MILKDRINK, MILK_DRINK
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_SWEETSCENT, SWEET_SCENT
; options
dbbw MONMENU_MENUOPTION, MONMENUITEM_STATS, .stats
dbbw MONMENU_MENUOPTION, MONMENUITEM_SWITCH, .switch
dbbw MONMENU_MENUOPTION, MONMENUITEM_ITEM, .item
dbbw MONMENU_MENUOPTION, MONMENUITEM_CANCEL, .cancel
dbbw MONMENU_MENUOPTION, MONMENUITEM_MOVE, .move
dbbw MONMENU_MENUOPTION, MONMENUITEM_MAIL, .mail
dbbw MONMENU_MENUOPTION, MONMENUITEM_ERROR, .error
assert_table_length NUM_MONMENUITEMS
db -1
.stats: db "STATS@"
.switch: db "SWITCH@"
.item: db "ITEM@"
.cancel: db "CANCEL@"
.move: db "MOVE@"
.mail: db "MAIL@"
.error: db "ERROR!@"

4823
data/moves/animations.asm Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,9 @@
CriticalHitMoves:
dw KARATE_CHOP
dw RAZOR_WIND
dw RAZOR_LEAF
dw CRABHAMMER
dw SLASH
dw AEROBLAST
dw CROSS_CHOP
dw -1

1266
data/moves/descriptions.asm Normal file

File diff suppressed because it is too large Load diff

2079
data/moves/effects.asm Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,161 @@
MoveEffectsPointers:
; entries correspond to EFFECT_* constants
table_width 2, MoveEffectsPointers
dw NormalHit
dw DoSleep
dw PoisonHit
dw LeechHit
dw BurnHit
dw FreezeHit
dw ParalyzeHit
dw Selfdestruct
dw DreamEater
dw MirrorMove
dw AttackUp
dw DefenseUp
dw SpeedUp
dw SpecialAttackUp
dw SpecialDefenseUp
dw AccuracyUp
dw EvasionUp
dw NormalHit
dw AttackDown
dw DefenseDown
dw SpeedDown
dw SpecialAttackDown
dw SpecialDefenseDown
dw AccuracyDown
dw EvasionDown
dw ResetStats
dw Bide
dw Rampage
dw ForceSwitch
dw MultiHit
dw Conversion
dw FlinchHit
dw Heal
dw Toxic
dw PayDay
dw LightScreen
dw TriAttack
dw NormalHit
dw OHKOHit
dw RazorWind
dw SuperFang
dw StaticDamage
dw TrapTarget
dw NormalHit
dw MultiHit
dw NormalHit
dw Mist
dw FocusEnergy
dw RecoilHit
dw DoConfuse
dw AttackUp2
dw DefenseUp2
dw SpeedUp2
dw SpecialAttackUp2
dw SpecialDefenseUp2
dw AccuracyUp2
dw EvasionUp2
dw Transform
dw AttackDown2
dw DefenseDown2
dw SpeedDown2
dw SpecialAttackDown2
dw SpecialDefenseDown2
dw AccuracyDown2
dw EvasionDown2
dw Reflect
dw DoPoison
dw DoParalyze
dw AttackDownHit
dw DefenseDownHit
dw SpeedDownHit
dw SpecialAttackDownHit
dw SpecialDefenseDownHit
dw AccuracyDownHit
dw EvasionDownHit
dw SkyAttack
dw ConfuseHit
dw PoisonMultiHit
dw NormalHit
dw Substitute
dw HyperBeam
dw Rage
dw Mimic
dw Metronome
dw LeechSeed
dw Splash
dw Disable
dw StaticDamage
dw Psywave
dw Counter
dw Encore
dw PainSplit
dw Snore
dw Conversion2
dw LockOn
dw Sketch
dw DefrostOpponent
dw SleepTalk
dw DestinyBond
dw Reversal
dw Spite
dw FalseSwipe
dw HealBell
dw NormalHit
dw TripleKick
dw Thief
dw MeanLook
dw Nightmare
dw FlameWheel
dw Curse
dw NormalHit
dw Protect
dw Spikes
dw Foresight
dw PerishSong
dw Sandstorm
dw Endure
dw Rollout
dw Swagger
dw FuryCutter
dw Attract
dw Return
dw Present
dw Frustration
dw Safeguard
dw SacredFire
dw Magnitude
dw BatonPass
dw Pursuit
dw RapidSpin
dw NormalHit
dw NormalHit
dw MorningSun
dw Synthesis
dw Moonlight
dw HiddenPower
dw RainDance
dw SunnyDay
dw DefenseUpHit
dw AttackUpHit
dw AllUpHit
dw FakeOut
dw BellyDrum
dw PsychUp
dw MirrorCoat
dw SkullBash
dw Twister
dw Earthquake
dw FutureSight
dw Gust
dw Stomp
dw Solarbeam
dw Thunder
dw Teleport
dw BeatUp
dw Fly
dw DefenseCurl
assert_table_length NUM_MOVE_EFFECTS

View file

@ -0,0 +1,8 @@
MoveEffectPriorities:
db EFFECT_PROTECT, 3
db EFFECT_ENDURE, 3
db EFFECT_PRIORITY_HIT, 2
db EFFECT_FORCE_SWITCH, 0
db EFFECT_COUNTER, 0
db EFFECT_MIRROR_COAT, 0
db -1

View file

@ -0,0 +1,8 @@
FlailReversalPower:
; hp bar pixels, power
db HP_BAR_LENGTH_PX / 48, 200
db HP_BAR_LENGTH_PX / 12, 150
db HP_BAR_LENGTH_PX / 5, 100
db HP_BAR_LENGTH_PX / 3, 80
db HP_BAR_LENGTH_PX * 2 / 3, 40
db HP_BAR_LENGTH_PX, 20

View file

@ -0,0 +1,9 @@
MagnitudePower:
; chance, power, magnitude #
db 5 percent + 1, 10, 4 ; 5%
db 15 percent, 30, 5 ; 10%
db 35 percent, 50, 6 ; 20%
db 65 percent + 1, 70, 7 ; 30%
db 85 percent + 1, 90, 8 ; 20%
db 95 percent, 110, 9 ; 10%
db 100 percent, 150, 10 ; 5%

View file

@ -0,0 +1,16 @@
; Metronome cannot turn into these moves.
MetronomeExcepts:
dw METRONOME
dw STRUGGLE
dw SKETCH
dw MIMIC
dw COUNTER
dw MIRROR_COAT
dw PROTECT
dw DETECT
dw ENDURE
dw DESTINY_BOND
dw SLEEP_TALK
dw THIEF
dw -1

272
data/moves/moves.asm Normal file
View file

@ -0,0 +1,272 @@
; Characteristics of each move.
MACRO move
; the animation byte will be filled when the move is loaded
db \1 ; effect
db \2 ; power
db \3 ; type
db \4 percent ; accuracy
db \5 ; pp
db \6 percent ; effect chance
assert \5 <= 40, "PP must be 40 or less"
ENDM
Moves::
; entries correspond to constants/move_constants.asm
indirect_table MOVE_LENGTH - 1, 1
indirect_entries NUM_ATTACKS, Moves1
indirect_table_end
Moves1:
move EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0 ;POUND
move EFFECT_NORMAL_HIT, 50, FIGHTING, 100, 25, 0 ;KARATE_CHOP
move EFFECT_MULTI_HIT, 15, NORMAL, 85, 10, 0 ;DOUBLESLAP
move EFFECT_MULTI_HIT, 18, NORMAL, 85, 15, 0 ;COMET_PUNCH
move EFFECT_NORMAL_HIT, 80, NORMAL, 85, 20, 0 ;MEGA_PUNCH
move EFFECT_PAY_DAY, 40, NORMAL, 100, 20, 0 ;PAY_DAY
move EFFECT_BURN_HIT, 75, FIRE, 100, 15, 10 ;FIRE_PUNCH
move EFFECT_FREEZE_HIT, 75, ICE, 100, 15, 10 ;ICE_PUNCH
move EFFECT_PARALYZE_HIT, 75, ELECTRIC, 100, 15, 10 ;THUNDERPUNCH
move EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0 ;SCRATCH
move EFFECT_NORMAL_HIT, 55, NORMAL, 100, 30, 0 ;VICEGRIP
move EFFECT_OHKO, 0, NORMAL, 30, 5, 0 ;GUILLOTINE
move EFFECT_RAZOR_WIND, 80, NORMAL, 75, 10, 0 ;RAZOR_WIND
move EFFECT_ATTACK_UP_2, 0, NORMAL, 100, 30, 0 ;SWORDS_DANCE
move EFFECT_NORMAL_HIT, 50, NORMAL, 95, 30, 0 ;CUT
move EFFECT_GUST, 40, FLYING, 100, 35, 0 ;GUST
move EFFECT_NORMAL_HIT, 60, FLYING, 100, 35, 0 ;WING_ATTACK
move EFFECT_FORCE_SWITCH, 0, NORMAL, 100, 20, 0 ;WHIRLWIND
move EFFECT_FLY, 70, FLYING, 95, 15, 0 ;FLY
move EFFECT_TRAP_TARGET, 15, NORMAL, 75, 20, 0 ;BIND
move EFFECT_NORMAL_HIT, 80, NORMAL, 75, 20, 0 ;SLAM
move EFFECT_NORMAL_HIT, 35, GRASS, 100, 10, 0 ;VINE_WHIP
move EFFECT_STOMP, 65, NORMAL, 100, 20, 30 ;STOMP
move EFFECT_DOUBLE_HIT, 30, FIGHTING, 100, 30, 0 ;DOUBLE_KICK
move EFFECT_NORMAL_HIT, 120, NORMAL, 75, 5, 0 ;MEGA_KICK
move EFFECT_JUMP_KICK, 70, FIGHTING, 95, 25, 0 ;JUMP_KICK
move EFFECT_FLINCH_HIT, 60, FIGHTING, 85, 15, 30 ;ROLLING_KICK
move EFFECT_ACCURACY_DOWN, 0, GROUND, 100, 15, 0 ;SAND_ATTACK
move EFFECT_FLINCH_HIT, 70, NORMAL, 100, 15, 30 ;HEADBUTT
move EFFECT_NORMAL_HIT, 65, NORMAL, 100, 25, 0 ;HORN_ATTACK
move EFFECT_MULTI_HIT, 15, NORMAL, 85, 20, 0 ;FURY_ATTACK
move EFFECT_OHKO, 1, NORMAL, 30, 5, 0 ;HORN_DRILL
move EFFECT_NORMAL_HIT, 35, NORMAL, 95, 35, 0 ;TACKLE
move EFFECT_PARALYZE_HIT, 85, NORMAL, 100, 15, 30 ;BODY_SLAM
move EFFECT_TRAP_TARGET, 15, NORMAL, 85, 20, 0 ;WRAP
move EFFECT_RECOIL_HIT, 90, NORMAL, 85, 20, 0 ;TAKE_DOWN
move EFFECT_RAMPAGE, 90, NORMAL, 100, 20, 0 ;THRASH
move EFFECT_RECOIL_HIT, 120, NORMAL, 100, 15, 0 ;DOUBLE_EDGE
move EFFECT_DEFENSE_DOWN, 0, NORMAL, 100, 30, 0 ;TAIL_WHIP
move EFFECT_POISON_HIT, 15, POISON, 100, 35, 30 ;POISON_STING
move EFFECT_POISON_MULTI_HIT, 25, BUG, 100, 20, 20 ;TWINEEDLE
move EFFECT_MULTI_HIT, 14, BUG, 85, 20, 0 ;PIN_MISSILE
move EFFECT_DEFENSE_DOWN, 0, NORMAL, 100, 30, 0 ;LEER
move EFFECT_FLINCH_HIT, 60, DARK, 100, 25, 30 ;BITE
move EFFECT_ATTACK_DOWN, 0, NORMAL, 100, 40, 0 ;GROWL
move EFFECT_FORCE_SWITCH, 0, NORMAL, 100, 20, 0 ;ROAR
move EFFECT_SLEEP, 0, NORMAL, 55, 15, 0 ;SING
move EFFECT_CONFUSE, 0, NORMAL, 55, 20, 0 ;SUPERSONIC
move EFFECT_STATIC_DAMAGE, 20, NORMAL, 90, 20, 0 ;SONICBOOM
move EFFECT_DISABLE, 0, NORMAL, 55, 20, 0 ;DISABLE
move EFFECT_DEFENSE_DOWN_HIT, 40, POISON, 100, 30, 10 ;ACID
move EFFECT_BURN_HIT, 40, FIRE, 100, 25, 10 ;EMBER
move EFFECT_BURN_HIT, 95, FIRE, 100, 15, 10 ;FLAMETHROWER
move EFFECT_MIST, 0, ICE, 100, 30, 0 ;MIST
move EFFECT_NORMAL_HIT, 40, WATER, 100, 25, 0 ;WATER_GUN
move EFFECT_NORMAL_HIT, 120, WATER, 80, 5, 0 ;HYDRO_PUMP
move EFFECT_NORMAL_HIT, 95, WATER, 100, 15, 0 ;SURF
move EFFECT_FREEZE_HIT, 95, ICE, 100, 10, 10 ;ICE_BEAM
move EFFECT_FREEZE_HIT, 120, ICE, 70, 5, 10 ;BLIZZARD
move EFFECT_CONFUSE_HIT, 65, PSYCHIC_TYPE, 100, 20, 10 ;PSYBEAM
move EFFECT_SPEED_DOWN_HIT, 65, WATER, 100, 20, 10 ;BUBBLEBEAM
move EFFECT_ATTACK_DOWN_HIT, 65, ICE, 100, 20, 10 ;AURORA_BEAM
move EFFECT_HYPER_BEAM, 150, NORMAL, 90, 5, 0 ;HYPER_BEAM
move EFFECT_NORMAL_HIT, 35, FLYING, 100, 35, 0 ;PECK
move EFFECT_NORMAL_HIT, 80, FLYING, 100, 20, 0 ;DRILL_PECK
move EFFECT_RECOIL_HIT, 80, FIGHTING, 80, 25, 0 ;SUBMISSION
move EFFECT_FLINCH_HIT, 50, FIGHTING, 90, 20, 30 ;LOW_KICK
move EFFECT_COUNTER, 1, FIGHTING, 100, 20, 0 ;COUNTER
move EFFECT_LEVEL_DAMAGE, 1, FIGHTING, 100, 20, 0 ;SEISMIC_TOSS
move EFFECT_NORMAL_HIT, 80, NORMAL, 100, 15, 0 ;STRENGTH
move EFFECT_LEECH_HIT, 20, GRASS, 100, 20, 0 ;ABSORB
move EFFECT_LEECH_HIT, 40, GRASS, 100, 10, 0 ;MEGA_DRAIN
move EFFECT_LEECH_SEED, 0, GRASS, 90, 10, 0 ;LEECH_SEED
move EFFECT_SP_ATK_UP, 0, NORMAL, 100, 40, 0 ;GROWTH
move EFFECT_NORMAL_HIT, 55, GRASS, 95, 25, 0 ;RAZOR_LEAF
move EFFECT_SOLARBEAM, 120, GRASS, 100, 10, 0 ;SOLARBEAM
move EFFECT_POISON, 0, POISON, 75, 35, 0 ;POISONPOWDER
move EFFECT_PARALYZE, 0, GRASS, 75, 30, 0 ;STUN_SPORE
move EFFECT_SLEEP, 0, GRASS, 75, 15, 0 ;SLEEP_POWDER
move EFFECT_RAMPAGE, 70, GRASS, 100, 20, 0 ;PETAL_DANCE
move EFFECT_SPEED_DOWN, 0, BUG, 95, 40, 0 ;STRING_SHOT
move EFFECT_STATIC_DAMAGE, 40, DRAGON, 100, 10, 0 ;DRAGON_RAGE
move EFFECT_TRAP_TARGET, 15, FIRE, 70, 15, 0 ;FIRE_SPIN
move EFFECT_PARALYZE_HIT, 40, ELECTRIC, 100, 30, 10 ;THUNDERSHOCK
move EFFECT_PARALYZE_HIT, 95, ELECTRIC, 100, 15, 10 ;THUNDERBOLT
move EFFECT_PARALYZE, 0, ELECTRIC, 100, 20, 0 ;THUNDER_WAVE
move EFFECT_THUNDER, 120, ELECTRIC, 70, 10, 30 ;THUNDER
move EFFECT_NORMAL_HIT, 50, ROCK, 90, 15, 0 ;ROCK_THROW
move EFFECT_EARTHQUAKE, 100, GROUND, 100, 10, 0 ;EARTHQUAKE
move EFFECT_OHKO, 1, GROUND, 30, 5, 0 ;FISSURE
move EFFECT_FLY, 60, GROUND, 100, 10, 0 ;DIG
move EFFECT_TOXIC, 0, POISON, 85, 10, 0 ;TOXIC
move EFFECT_CONFUSE_HIT, 50, PSYCHIC_TYPE, 100, 25, 10 ;CONFUSION
move EFFECT_SP_DEF_DOWN_HIT, 90, PSYCHIC_TYPE, 100, 10, 10 ;PSYCHIC_TYPE_M
move EFFECT_SLEEP, 0, PSYCHIC_TYPE, 60, 20, 0 ;HYPNOSIS
move EFFECT_ATTACK_UP, 0, PSYCHIC_TYPE, 100, 40, 0 ;MEDITATE
move EFFECT_SPEED_UP_2, 0, PSYCHIC_TYPE, 100, 30, 0 ;AGILITY
move EFFECT_PRIORITY_HIT, 40, NORMAL, 100, 30, 0 ;QUICK_ATTACK
move EFFECT_RAGE, 20, NORMAL, 100, 20, 0 ;RAGE
move EFFECT_TELEPORT, 0, PSYCHIC_TYPE, 100, 20, 0 ;TELEPORT
move EFFECT_LEVEL_DAMAGE, 1, GHOST, 100, 15, 0 ;NIGHT_SHADE
move EFFECT_MIMIC, 0, NORMAL, 100, 10, 0 ;MIMIC
move EFFECT_DEFENSE_DOWN_2, 0, NORMAL, 85, 40, 0 ;SCREECH
move EFFECT_EVASION_UP, 0, NORMAL, 100, 15, 0 ;DOUBLE_TEAM
move EFFECT_HEAL, 0, NORMAL, 100, 20, 0 ;RECOVER
move EFFECT_DEFENSE_UP, 0, NORMAL, 100, 30, 0 ;HARDEN
move EFFECT_EVASION_UP, 0, NORMAL, 100, 20, 0 ;MINIMIZE
move EFFECT_ACCURACY_DOWN, 0, NORMAL, 100, 20, 0 ;SMOKESCREEN
move EFFECT_CONFUSE, 0, GHOST, 100, 10, 0 ;CONFUSE_RAY
move EFFECT_DEFENSE_UP, 0, WATER, 100, 40, 0 ;WITHDRAW
move EFFECT_DEFENSE_CURL, 0, NORMAL, 100, 40, 0 ;DEFENSE_CURL
move EFFECT_DEFENSE_UP_2, 0, PSYCHIC_TYPE, 100, 30, 0 ;BARRIER
move EFFECT_LIGHT_SCREEN, 0, PSYCHIC_TYPE, 100, 30, 0 ;LIGHT_SCREEN
move EFFECT_RESET_STATS, 0, ICE, 100, 30, 0 ;HAZE
move EFFECT_REFLECT, 0, PSYCHIC_TYPE, 100, 20, 0 ;REFLECT
move EFFECT_FOCUS_ENERGY, 0, NORMAL, 100, 30, 0 ;FOCUS_ENERGY
move EFFECT_BIDE, 0, NORMAL, 100, 10, 0 ;BIDE
move EFFECT_METRONOME, 0, NORMAL, 100, 10, 0 ;METRONOME
move EFFECT_MIRROR_MOVE, 0, FLYING, 100, 20, 0 ;MIRROR_MOVE
move EFFECT_SELFDESTRUCT, 200, NORMAL, 100, 5, 0 ;SELFDESTRUCT
move EFFECT_NORMAL_HIT, 100, NORMAL, 75, 10, 0 ;EGG_BOMB
move EFFECT_PARALYZE_HIT, 20, GHOST, 100, 30, 30 ;LICK
move EFFECT_POISON_HIT, 20, POISON, 70, 20, 40 ;SMOG
move EFFECT_POISON_HIT, 65, POISON, 100, 20, 30 ;SLUDGE
move EFFECT_FLINCH_HIT, 65, GROUND, 85, 20, 10 ;BONE_CLUB
move EFFECT_BURN_HIT, 120, FIRE, 85, 5, 10 ;FIRE_BLAST
move EFFECT_NORMAL_HIT, 80, WATER, 100, 15, 0 ;WATERFALL
move EFFECT_TRAP_TARGET, 35, WATER, 75, 10, 0 ;CLAMP
move EFFECT_ALWAYS_HIT, 60, NORMAL, 100, 20, 0 ;SWIFT
move EFFECT_SKULL_BASH, 100, NORMAL, 100, 15, 0 ;SKULL_BASH
move EFFECT_MULTI_HIT, 20, NORMAL, 100, 15, 0 ;SPIKE_CANNON
move EFFECT_SPEED_DOWN_HIT, 10, NORMAL, 100, 35, 10 ;CONSTRICT
move EFFECT_SP_DEF_UP_2, 0, PSYCHIC_TYPE, 100, 20, 0 ;AMNESIA
move EFFECT_ACCURACY_DOWN, 0, PSYCHIC_TYPE, 80, 15, 0 ;KINESIS
move EFFECT_HEAL, 0, NORMAL, 100, 10, 0 ;SOFTBOILED
move EFFECT_JUMP_KICK, 85, FIGHTING, 90, 20, 0 ;HI_JUMP_KICK
move EFFECT_PARALYZE, 0, NORMAL, 75, 30, 0 ;GLARE
move EFFECT_DREAM_EATER, 100, PSYCHIC_TYPE, 100, 15, 0 ;DREAM_EATER
move EFFECT_POISON, 0, POISON, 55, 40, 0 ;POISON_GAS
move EFFECT_MULTI_HIT, 15, NORMAL, 85, 20, 0 ;BARRAGE
move EFFECT_LEECH_HIT, 20, BUG, 100, 15, 0 ;LEECH_LIFE
move EFFECT_SLEEP, 0, NORMAL, 75, 10, 0 ;LOVELY_KISS
move EFFECT_SKY_ATTACK, 140, FLYING, 90, 5, 0 ;SKY_ATTACK
move EFFECT_TRANSFORM, 0, NORMAL, 100, 10, 0 ;TRANSFORM
move EFFECT_SPEED_DOWN_HIT, 20, WATER, 100, 30, 10 ;BUBBLE
move EFFECT_CONFUSE_HIT, 70, NORMAL, 100, 10, 20 ;DIZZY_PUNCH
move EFFECT_SLEEP, 0, GRASS, 100, 15, 0 ;SPORE
move EFFECT_ACCURACY_DOWN, 0, NORMAL, 70, 20, 0 ;FLASH
move EFFECT_PSYWAVE, 1, PSYCHIC_TYPE, 80, 15, 0 ;PSYWAVE
move EFFECT_SPLASH, 0, NORMAL, 100, 40, 0 ;SPLASH
move EFFECT_DEFENSE_UP_2, 0, POISON, 100, 40, 0 ;ACID_ARMOR
move EFFECT_NORMAL_HIT, 90, WATER, 85, 10, 0 ;CRABHAMMER
move EFFECT_SELFDESTRUCT, 250, NORMAL, 100, 5, 0 ;EXPLOSION
move EFFECT_MULTI_HIT, 18, NORMAL, 80, 15, 0 ;FURY_SWIPES
move EFFECT_DOUBLE_HIT, 50, GROUND, 90, 10, 0 ;BONEMERANG
move EFFECT_HEAL, 0, PSYCHIC_TYPE, 100, 10, 0 ;REST
move EFFECT_FLINCH_HIT, 75, ROCK, 90, 10, 30 ;ROCK_SLIDE
move EFFECT_FLINCH_HIT, 80, NORMAL, 90, 15, 10 ;HYPER_FANG
move EFFECT_ATTACK_UP, 0, NORMAL, 100, 30, 0 ;SHARPEN
move EFFECT_CONVERSION, 0, NORMAL, 100, 30, 0 ;CONVERSION
move EFFECT_TRI_ATTACK, 80, NORMAL, 100, 10, 20 ;TRI_ATTACK
move EFFECT_SUPER_FANG, 1, NORMAL, 90, 10, 0 ;SUPER_FANG
move EFFECT_NORMAL_HIT, 70, NORMAL, 100, 20, 0 ;SLASH
move EFFECT_SUBSTITUTE, 0, NORMAL, 100, 10, 0 ;SUBSTITUTE
move EFFECT_RECOIL_HIT, 50, NORMAL, 100, 1, 0 ;STRUGGLE
move EFFECT_SKETCH, 0, NORMAL, 100, 1, 0 ;SKETCH
move EFFECT_TRIPLE_KICK, 10, FIGHTING, 90, 10, 0 ;TRIPLE_KICK
move EFFECT_THIEF, 40, DARK, 100, 10, 100 ;THIEF
move EFFECT_MEAN_LOOK, 0, BUG, 100, 10, 0 ;SPIDER_WEB
move EFFECT_LOCK_ON, 0, NORMAL, 100, 5, 0 ;MIND_READER
move EFFECT_NIGHTMARE, 0, GHOST, 100, 15, 0 ;NIGHTMARE
move EFFECT_FLAME_WHEEL, 60, FIRE, 100, 25, 10 ;FLAME_WHEEL
move EFFECT_SNORE, 40, NORMAL, 100, 15, 30 ;SNORE
move EFFECT_CURSE, 0, CURSE_TYPE, 100, 10, 0 ;CURSE
move EFFECT_REVERSAL, 1, NORMAL, 100, 15, 0 ;FLAIL
move EFFECT_CONVERSION2, 0, NORMAL, 100, 30, 0 ;CONVERSION2
move EFFECT_NORMAL_HIT, 100, FLYING, 95, 5, 0 ;AEROBLAST
move EFFECT_SPEED_DOWN_2, 0, GRASS, 85, 40, 0 ;COTTON_SPORE
move EFFECT_REVERSAL, 1, FIGHTING, 100, 15, 0 ;REVERSAL
move EFFECT_SPITE, 0, GHOST, 100, 10, 0 ;SPITE
move EFFECT_FREEZE_HIT, 40, ICE, 100, 25, 10 ;POWDER_SNOW
move EFFECT_PROTECT, 0, NORMAL, 100, 10, 0 ;PROTECT
move EFFECT_PRIORITY_HIT, 40, FIGHTING, 100, 30, 0 ;MACH_PUNCH
move EFFECT_SPEED_DOWN_2, 0, NORMAL, 90, 10, 0 ;SCARY_FACE
move EFFECT_ALWAYS_HIT, 60, DARK, 100, 20, 0 ;FAINT_ATTACK
move EFFECT_CONFUSE, 0, NORMAL, 75, 10, 0 ;SWEET_KISS
move EFFECT_BELLY_DRUM, 0, NORMAL, 100, 10, 0 ;BELLY_DRUM
move EFFECT_POISON_HIT, 90, POISON, 100, 10, 30 ;SLUDGE_BOMB
move EFFECT_ACCURACY_DOWN_HIT, 20, GROUND, 100, 10, 100 ;MUD_SLAP
move EFFECT_ACCURACY_DOWN_HIT, 65, WATER, 85, 10, 50 ;OCTAZOOKA
move EFFECT_SPIKES, 0, GROUND, 100, 20, 0 ;SPIKES
move EFFECT_PARALYZE_HIT, 100, ELECTRIC, 50, 5, 100 ;ZAP_CANNON
move EFFECT_FORESIGHT, 0, NORMAL, 100, 40, 0 ;FORESIGHT
move EFFECT_DESTINY_BOND, 0, GHOST, 100, 5, 0 ;DESTINY_BOND
move EFFECT_PERISH_SONG, 0, NORMAL, 100, 5, 0 ;PERISH_SONG
move EFFECT_SPEED_DOWN_HIT, 55, ICE, 95, 15, 100 ;ICY_WIND
move EFFECT_PROTECT, 0, FIGHTING, 100, 5, 0 ;DETECT
move EFFECT_MULTI_HIT, 25, GROUND, 80, 10, 0 ;BONE_RUSH
move EFFECT_LOCK_ON, 0, NORMAL, 100, 5, 0 ;LOCK_ON
move EFFECT_RAMPAGE, 90, DRAGON, 100, 15, 0 ;OUTRAGE
move EFFECT_SANDSTORM, 0, ROCK, 100, 10, 0 ;SANDSTORM
move EFFECT_LEECH_HIT, 60, GRASS, 100, 5, 0 ;GIGA_DRAIN
move EFFECT_ENDURE, 0, NORMAL, 100, 10, 0 ;ENDURE
move EFFECT_ATTACK_DOWN_2, 0, NORMAL, 100, 20, 0 ;CHARM
move EFFECT_ROLLOUT, 30, ROCK, 90, 20, 0 ;ROLLOUT
move EFFECT_FALSE_SWIPE, 40, NORMAL, 100, 40, 0 ;FALSE_SWIPE
move EFFECT_SWAGGER, 0, NORMAL, 90, 15, 100 ;SWAGGER
move EFFECT_HEAL, 0, NORMAL, 100, 10, 0 ;MILK_DRINK
move EFFECT_PARALYZE_HIT, 65, ELECTRIC, 100, 20, 30 ;SPARK
move EFFECT_FURY_CUTTER, 10, BUG, 95, 20, 0 ;FURY_CUTTER
move EFFECT_DEFENSE_UP_HIT, 70, STEEL, 90, 25, 10 ;STEEL_WING
move EFFECT_MEAN_LOOK, 0, NORMAL, 100, 5, 0 ;MEAN_LOOK
move EFFECT_ATTRACT, 0, NORMAL, 100, 15, 0 ;ATTRACT
move EFFECT_SLEEP_TALK, 0, NORMAL, 100, 10, 0 ;SLEEP_TALK
move EFFECT_HEAL_BELL, 0, NORMAL, 100, 5, 0 ;HEAL_BELL
move EFFECT_RETURN, 1, NORMAL, 100, 20, 0 ;RETURN
move EFFECT_PRESENT, 1, NORMAL, 90, 15, 0 ;PRESENT
move EFFECT_FRUSTRATION, 1, NORMAL, 100, 20, 0 ;FRUSTRATION
move EFFECT_SAFEGUARD, 0, NORMAL, 100, 25, 0 ;SAFEGUARD
move EFFECT_PAIN_SPLIT, 0, NORMAL, 100, 20, 0 ;PAIN_SPLIT
move EFFECT_SACRED_FIRE, 100, FIRE, 95, 5, 50 ;SACRED_FIRE
move EFFECT_MAGNITUDE, 1, GROUND, 100, 30, 0 ;MAGNITUDE
move EFFECT_CONFUSE_HIT, 100, FIGHTING, 50, 5, 100 ;DYNAMICPUNCH
move EFFECT_NORMAL_HIT, 120, BUG, 85, 10, 0 ;MEGAHORN
move EFFECT_PARALYZE_HIT, 60, DRAGON, 100, 20, 30 ;DRAGONBREATH
move EFFECT_BATON_PASS, 0, NORMAL, 100, 40, 0 ;BATON_PASS
move EFFECT_ENCORE, 0, NORMAL, 100, 5, 0 ;ENCORE
move EFFECT_PURSUIT, 40, DARK, 100, 20, 0 ;PURSUIT
move EFFECT_RAPID_SPIN, 20, NORMAL, 100, 40, 0 ;RAPID_SPIN
move EFFECT_EVASION_DOWN, 0, NORMAL, 100, 20, 0 ;SWEET_SCENT
move EFFECT_DEFENSE_DOWN_HIT, 100, STEEL, 75, 15, 30 ;IRON_TAIL
move EFFECT_ATTACK_UP_HIT, 50, STEEL, 95, 35, 10 ;METAL_CLAW
move EFFECT_ALWAYS_HIT, 70, FIGHTING, 100, 10, 0 ;VITAL_THROW
move EFFECT_MORNING_SUN, 0, NORMAL, 100, 5, 0 ;MORNING_SUN
move EFFECT_SYNTHESIS, 0, GRASS, 100, 5, 0 ;SYNTHESIS
move EFFECT_MOONLIGHT, 0, NORMAL, 100, 5, 0 ;MOONLIGHT
move EFFECT_HIDDEN_POWER, 1, NORMAL, 100, 15, 0 ;HIDDEN_POWER
move EFFECT_NORMAL_HIT, 100, FIGHTING, 80, 5, 0 ;CROSS_CHOP
move EFFECT_TWISTER, 40, DRAGON, 100, 20, 20 ;TWISTER
move EFFECT_RAIN_DANCE, 0, WATER, 90, 5, 0 ;RAIN_DANCE
move EFFECT_SUNNY_DAY, 0, FIRE, 90, 5, 0 ;SUNNY_DAY
move EFFECT_SP_DEF_DOWN_HIT, 80, DARK, 100, 15, 20 ;CRUNCH
move EFFECT_MIRROR_COAT, 1, PSYCHIC_TYPE, 100, 20, 0 ;MIRROR_COAT
move EFFECT_PSYCH_UP, 0, NORMAL, 100, 10, 0 ;PSYCH_UP
move EFFECT_PRIORITY_HIT, 80, NORMAL, 100, 5, 0 ;EXTREMESPEED
move EFFECT_ALL_UP_HIT, 60, ROCK, 100, 5, 10 ;ANCIENTPOWER
move EFFECT_SP_DEF_DOWN_HIT, 80, GHOST, 100, 15, 20 ;SHADOW_BALL
move EFFECT_FUTURE_SIGHT, 80, PSYCHIC_TYPE, 90, 15, 0 ;FUTURE_SIGHT
move EFFECT_DEFENSE_DOWN_HIT, 20, FIGHTING, 100, 15, 50 ;ROCK_SMASH
move EFFECT_TRAP_TARGET, 15, WATER, 70, 15, 0 ;WHIRLPOOL
move EFFECT_BEAT_UP, 10, DARK, 100, 10, 0 ;BEAT_UP
.IndirectEnd::

254
data/moves/names.asm Normal file
View file

@ -0,0 +1,254 @@
MoveNames::
list_start MoveNames
li "POUND"
li "KARATE CHOP"
li "DOUBLESLAP"
li "COMET PUNCH"
li "MEGA PUNCH"
li "PAY DAY"
li "FIRE PUNCH"
li "ICE PUNCH"
li "THUNDERPUNCH"
li "SCRATCH"
li "VICEGRIP"
li "GUILLOTINE"
li "RAZOR WIND"
li "SWORDS DANCE"
li "CUT"
li "GUST"
li "WING ATTACK"
li "WHIRLWIND"
li "FLY"
li "BIND"
li "SLAM"
li "VINE WHIP"
li "STOMP"
li "DOUBLE KICK"
li "MEGA KICK"
li "JUMP KICK"
li "ROLLING KICK"
li "SAND-ATTACK"
li "HEADBUTT"
li "HORN ATTACK"
li "FURY ATTACK"
li "HORN DRILL"
li "TACKLE"
li "BODY SLAM"
li "WRAP"
li "TAKE DOWN"
li "THRASH"
li "DOUBLE-EDGE"
li "TAIL WHIP"
li "POISON STING"
li "TWINEEDLE"
li "PIN MISSILE"
li "LEER"
li "BITE"
li "GROWL"
li "ROAR"
li "SING"
li "SUPERSONIC"
li "SONICBOOM"
li "DISABLE"
li "ACID"
li "EMBER"
li "FLAMETHROWER"
li "MIST"
li "WATER GUN"
li "HYDRO PUMP"
li "SURF"
li "ICE BEAM"
li "BLIZZARD"
li "PSYBEAM"
li "BUBBLEBEAM"
li "AURORA BEAM"
li "HYPER BEAM"
li "PECK"
li "DRILL PECK"
li "SUBMISSION"
li "LOW KICK"
li "COUNTER"
li "SEISMIC TOSS"
li "STRENGTH"
li "ABSORB"
li "MEGA DRAIN"
li "LEECH SEED"
li "GROWTH"
li "RAZOR LEAF"
li "SOLARBEAM"
li "POISONPOWDER"
li "STUN SPORE"
li "SLEEP POWDER"
li "PETAL DANCE"
li "STRING SHOT"
li "DRAGON RAGE"
li "FIRE SPIN"
li "THUNDERSHOCK"
li "THUNDERBOLT"
li "THUNDER WAVE"
li "THUNDER"
li "ROCK THROW"
li "EARTHQUAKE"
li "FISSURE"
li "DIG"
li "TOXIC"
li "CONFUSION"
li "PSYCHIC"
li "HYPNOSIS"
li "MEDITATE"
li "AGILITY"
li "QUICK ATTACK"
li "RAGE"
li "TELEPORT"
li "NIGHT SHADE"
li "MIMIC"
li "SCREECH"
li "DOUBLE TEAM"
li "RECOVER"
li "HARDEN"
li "MINIMIZE"
li "SMOKESCREEN"
li "CONFUSE RAY"
li "WITHDRAW"
li "DEFENSE CURL"
li "BARRIER"
li "LIGHT SCREEN"
li "HAZE"
li "REFLECT"
li "FOCUS ENERGY"
li "BIDE"
li "METRONOME"
li "MIRROR MOVE"
li "SELFDESTRUCT"
li "EGG BOMB"
li "LICK"
li "SMOG"
li "SLUDGE"
li "BONE CLUB"
li "FIRE BLAST"
li "WATERFALL"
li "CLAMP"
li "SWIFT"
li "SKULL BASH"
li "SPIKE CANNON"
li "CONSTRICT"
li "AMNESIA"
li "KINESIS"
li "SOFTBOILED"
li "HI JUMP KICK"
li "GLARE"
li "DREAM EATER"
li "POISON GAS"
li "BARRAGE"
li "LEECH LIFE"
li "LOVELY KISS"
li "SKY ATTACK"
li "TRANSFORM"
li "BUBBLE"
li "DIZZY PUNCH"
li "SPORE"
li "FLASH"
li "PSYWAVE"
li "SPLASH"
li "ACID ARMOR"
li "CRABHAMMER"
li "EXPLOSION"
li "FURY SWIPES"
li "BONEMERANG"
li "REST"
li "ROCK SLIDE"
li "HYPER FANG"
li "SHARPEN"
li "CONVERSION"
li "TRI ATTACK"
li "SUPER FANG"
li "SLASH"
li "SUBSTITUTE"
li "STRUGGLE"
li "SKETCH"
li "TRIPLE KICK"
li "THIEF"
li "SPIDER WEB"
li "MIND READER"
li "NIGHTMARE"
li "FLAME WHEEL"
li "SNORE"
li "CURSE"
li "FLAIL"
li "CONVERSION2"
li "AEROBLAST"
li "COTTON SPORE"
li "REVERSAL"
li "SPITE"
li "POWDER SNOW"
li "PROTECT"
li "MACH PUNCH"
li "SCARY FACE"
li "FAINT ATTACK"
li "SWEET KISS"
li "BELLY DRUM"
li "SLUDGE BOMB"
li "MUD-SLAP"
li "OCTAZOOKA"
li "SPIKES"
li "ZAP CANNON"
li "FORESIGHT"
li "DESTINY BOND"
li "PERISH SONG"
li "ICY WIND"
li "DETECT"
li "BONE RUSH"
li "LOCK-ON"
li "OUTRAGE"
li "SANDSTORM"
li "GIGA DRAIN"
li "ENDURE"
li "CHARM"
li "ROLLOUT"
li "FALSE SWIPE"
li "SWAGGER"
li "MILK DRINK"
li "SPARK"
li "FURY CUTTER"
li "STEEL WING"
li "MEAN LOOK"
li "ATTRACT"
li "SLEEP TALK"
li "HEAL BELL"
li "RETURN"
li "PRESENT"
li "FRUSTRATION"
li "SAFEGUARD"
li "PAIN SPLIT"
li "SACRED FIRE"
li "MAGNITUDE"
li "DYNAMICPUNCH"
li "MEGAHORN"
li "DRAGONBREATH"
li "BATON PASS"
li "ENCORE"
li "PURSUIT"
li "RAPID SPIN"
li "SWEET SCENT"
li "IRON TAIL"
li "METAL CLAW"
li "VITAL THROW"
li "MORNING SUN"
li "SYNTHESIS"
li "MOONLIGHT"
li "HIDDEN POWER"
li "CROSS CHOP"
li "TWISTER"
li "RAIN DANCE"
li "SUNNY DAY"
li "CRUNCH"
li "MIRROR COAT"
li "PSYCH UP"
li "EXTREMESPEED"
li "ANCIENTPOWER"
li "SHADOW BALL"
li "FUTURE SIGHT"
li "ROCK SMASH"
li "WHIRLPOOL"
li "BEAT UP"
assert_list_length NUM_ATTACKS

View file

@ -0,0 +1,6 @@
PresentPower:
; chance, power
db 40 percent, 40 ; 40% chance
db 70 percent + 1, 80 ; 30% chance
db 80 percent, 120 ; 10% chance
db -1 ; 20% chance to heal instead

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