ref: c61b3d42ad4e88b32e9c321b7fcc559ec0220e64
parent: 5098ed740d35d4f2a2d5414f309bf25e754e189c
parent: 76fe7c5aa1b93a6d03280ad54f411e351dd0abc2
author: Bryan Bishop <[email protected]>
date: Mon Aug 26 07:50:30 EDT 2013
Merge remote-tracking branch 'yenatch/merge-kanzure-again' into master
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -6850,7 +6850,7 @@
ld a, $5
call Function0x3661d
- ld hl, $6d45
+ ld hl, BadgeStatBoosts
call CallBankF
call SwitchTurn
@@ -8385,7 +8385,7 @@
; doubleflyingdamage
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call CleanGetBattleVarPair
- bit 6, a ; flying
+ bit SUBSTATUS_FLYING, a
ret z
jr DoubleDamage
; 36f2f
@@ -8395,7 +8395,7 @@
; doubleundergrounddamage
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call CleanGetBattleVarPair
- bit 5, a ; underground
+ bit SUBSTATUS_UNDERGROUND, a
ret z
; fallthrough
@@ -10623,11 +10623,7 @@
ld a, [AttackMissed]
and a
ret nz
-
- ld a, $3e
- ld hl, $7ced
- rst FarCall
-
+ callba GetHiddenPower
ret
; 37bf4
--- /dev/null
+++ b/battle/hidden_power.asm
@@ -1,0 +1,108 @@
+GetHiddenPower: ; fbced
+; Override Hidden Power's type and power based on the actor's DVs.
+
+ ld hl, BattleMonDVs
+ ld a, [hBattleTurn]
+ and a
+ jr z, .GotDVs
+ ld hl, EnemyMonDVs
+.GotDVs
+
+
+; Power:
+
+; Take the top bit from...
+
+; Atk
+ ld a, [hl]
+ swap a
+ and 8
+ ld b, a
+; Def
+ ld a, [hli]
+ and 8
+ srl a
+ or b
+ ld b, a
+; Spd
+ ld a, [hl]
+ swap a
+ and 8
+ srl a
+ srl a
+ or b
+ ld b, a
+; Spc
+ ld a, [hl]
+ and 8
+ srl a
+ srl a
+ srl a
+ or b
+ ld b, a
+
+; * 5
+ add a
+ add a
+ add b
+ ld b, a
+
+; + (Spc & 3)
+ ld a, [hld]
+ and 3
+ add b
+
+; / 2
+ srl a
+
+; + 30
+ add 30
+; + 1
+ inc a
+ ld d, a
+
+
+; Type:
+
+; Def & 3
+ ld a, [hl]
+ and 3
+ ld b, a
+
+; + (Atk & 3) << 2
+ ld a, [hl]
+ and 3 << 4
+ swap a
+ add a
+ add a
+ or b
+
+; Skip Normal
+ inc a
+
+; Skip type 6 (unused)
+ cp 6
+ jr c, .GotType
+ inc a
+
+; Skip unused types between Steel and Fire
+ cp STEEL + 1
+ jr c, .GotType
+ add FIRE - (STEEL + 1)
+
+
+.GotType
+ push af
+ ld a, BATTLE_VARS_MOVE_TYPE
+ call GetBattleVarPair
+ pop af
+ ld [hl], a
+
+ ld a, d
+ push af
+ callba BattleCommand06
+ pop af
+ ld d, a
+ ret
+; fbd54
+
--- /dev/null
+++ b/battle/moves/move_descriptions.asm
@@ -1,0 +1,519 @@
+; MoveDescriptions: ; 2cb52
+ dw PoundDescription
+ dw KarateChopDescription
+ dw DoubleslapDescription
+ dw CometPunchDescription
+ dw MegaPunchDescription
+ dw PayDayDescription
+ dw FirePunchDescription
+ dw IcePunchDescription
+ dw ThunderpunchDescription
+ dw ScratchDescription
+ dw VicegripDescription
+ dw GuillotineDescription
+ dw RazorWindDescription
+ dw SwordsDanceDescription
+ dw CutDescription
+ dw GustDescription
+ dw WingAttackDescription
+ dw WhirlwindDescription
+ dw FlyDescription
+ dw BindDescription
+ dw SlamDescription
+ dw VineWhipDescription
+ dw StompDescription
+ dw DoubleKickDescription
+ dw MegaKickDescription
+ dw JumpKickDescription
+ dw RollingKickDescription
+ dw SandAttackDescription
+ dw HeadbuttDescription
+ dw HornAttackDescription
+ dw FuryAttackDescription
+ dw HornDrillDescription
+ dw TackleDescription
+ dw BodySlamDescription
+ dw WrapDescription
+ dw TakeDownDescription
+ dw ThrashDescription
+ dw DoubleEdgeDescription
+ dw TailWhipDescription
+ dw PoisonStingDescription
+ dw TwineedleDescription
+ dw PinMissileDescription
+ dw LeerDescription
+ dw BiteDescription
+ dw GrowlDescription
+ dw RoarDescription
+ dw SingDescription
+ dw SupersonicDescription
+ dw SonicboomDescription
+ dw DisableDescription
+ dw AcidDescription
+ dw EmberDescription
+ dw FlamethrowerDescription
+ dw MistDescription
+ dw WaterGunDescription
+ dw HydroPumpDescription
+ dw SurfDescription
+ dw IceBeamDescription
+ dw BlizzardDescription
+ dw PsybeamDescription
+ dw BubblebeamDescription
+ dw AuroraBeamDescription
+ dw HyperBeamDescription
+ dw PeckDescription
+ dw DrillPeckDescription
+ dw SubmissionDescription
+ dw LowKickDescription
+ dw CounterDescription
+ dw SeismicTossDescription
+ dw StrengthDescription
+ dw AbsorbDescription
+ dw MegaDrainDescription
+ dw LeechSeedDescription
+ dw GrowthDescription
+ dw RazorLeafDescription
+ dw SolarbeamDescription
+ dw PoisonpowderDescription
+ dw StunSporeDescription
+ dw SleepPowderDescription
+ dw PetalDanceDescription
+ dw StringShotDescription
+ dw DragonRageDescription
+ dw FireSpinDescription
+ dw ThundershockDescription
+ dw ThunderboltDescription
+ dw ThunderWaveDescription
+ dw ThunderDescription
+ dw RockThrowDescription
+ dw EarthquakeDescription
+ dw FissureDescription
+ dw DigDescription
+ dw ToxicDescription
+ dw ConfusionDescription
+ dw PsychicMDescription
+ dw HypnosisDescription
+ dw MeditateDescription
+ dw AgilityDescription
+ dw QuickAttackDescription
+ dw RageDescription
+ dw TeleportDescription
+ dw NightShadeDescription
+ dw MimicDescription
+ dw ScreechDescription
+ dw DoubleTeamDescription
+ dw RecoverDescription
+ dw HardenDescription
+ dw MinimizeDescription
+ dw SmokescreenDescription
+ dw ConfuseRayDescription
+ dw WithdrawDescription
+ dw DefenseCurlDescription
+ dw BarrierDescription
+ dw LightScreenDescription
+ dw HazeDescription
+ dw ReflectDescription
+ dw FocusEnergyDescription
+ dw BideDescription
+ dw MetronomeDescription
+ dw MirrorMoveDescription
+ dw SelfdestructDescription
+ dw EggBombDescription
+ dw LickDescription
+ dw SmogDescription
+ dw SludgeDescription
+ dw BoneClubDescription
+ dw FireBlastDescription
+ dw WaterfallDescription
+ dw ClampDescription
+ dw SwiftDescription
+ dw SkullBashDescription
+ dw SpikeCannonDescription
+ dw ConstrictDescription
+ dw AmnesiaDescription
+ dw KinesisDescription
+ dw SoftboiledDescription
+ dw HiJumpKickDescription
+ dw GlareDescription
+ dw DreamEaterDescription
+ dw PoisonGasDescription
+ dw BarrageDescription
+ dw LeechLifeDescription
+ dw LovelyKissDescription
+ dw SkyAttackDescription
+ dw TransformDescription
+ dw BubbleDescription
+ dw DizzyPunchDescription
+ dw SporeDescription
+ dw FlashDescription
+ dw PsywaveDescription
+ dw SplashDescription
+ dw AcidArmorDescription
+ dw CrabhammerDescription
+ dw ExplosionDescription
+ dw FurySwipesDescription
+ dw BonemerangDescription
+ dw RestDescription
+ dw RockSlideDescription
+ dw HyperFangDescription
+ dw SharpenDescription
+ dw ConversionDescription
+ dw TriAttackDescription
+ dw SuperFangDescription
+ dw SlashDescription
+ dw SubstituteDescription
+ dw StruggleDescription
+ dw SketchDescription
+ dw TripleKickDescription
+ dw ThiefDescription
+ dw SpiderWebDescription
+ dw MindReaderDescription
+ dw NightmareDescription
+ dw FlameWheelDescription
+ dw SnoreDescription
+ dw CurseDescription
+ dw FlailDescription
+ dw Conversion2Description
+ dw AeroblastDescription
+ dw CottonSporeDescription
+ dw ReversalDescription
+ dw SpiteDescription
+ dw PowderSnowDescription
+ dw ProtectDescription
+ dw MachPunchDescription
+ dw ScaryFaceDescription
+ dw FaintAttackDescription
+ dw SweetKissDescription
+ dw BellyDrumDescription
+ dw SludgeBombDescription
+ dw MudSlapDescription
+ dw OctazookaDescription
+ dw SpikesDescription
+ dw ZapCannonDescription
+ dw ForesightDescription
+ dw DestinyBondDescription
+ dw PerishSongDescription
+ dw IcyWindDescription
+ dw DetectDescription
+ dw BoneRushDescription
+ dw LockOnDescription
+ dw OutrageDescription
+ dw SandstormDescription
+ dw GigaDrainDescription
+ dw EndureDescription
+ dw CharmDescription
+ dw RolloutDescription
+ dw FalseSwipeDescription
+ dw SwaggerDescription
+ dw MilkDrinkDescription
+ dw SparkDescription
+ dw FuryCutterDescription
+ dw SteelWingDescription
+ dw MeanLookDescription
+ dw AttractDescription
+ dw SleepTalkDescription
+ dw HealBellDescription
+ dw ReturnDescription
+ dw PresentDescription
+ dw FrustrationDescription
+ dw SafeguardDescription
+ dw PainSplitDescription
+ dw SacredFireDescription
+ dw MagnitudeDescription
+ dw DynamicpunchDescription
+ dw MegahornDescription
+ dw DragonbreathDescription
+ dw BatonPassDescription
+ dw EncoreDescription
+ dw PursuitDescription
+ dw RapidSpinDescription
+ dw SweetScentDescription
+ dw IronTailDescription
+ dw MetalClawDescription
+ dw VitalThrowDescription
+ dw MorningSunDescription
+ dw SynthesisDescription
+ dw MoonlightDescription
+ dw HiddenPowerDescription
+ dw CrossChopDescription
+ dw TwisterDescription
+ dw RainDanceDescription
+ dw SunnyDayDescription
+ dw CrunchDescription
+ dw MirrorCoatDescription
+ dw PsychUpDescription
+ dw ExtremespeedDescription
+ dw AncientpowerDescription
+ dw ShadowBallDescription
+ dw FutureSightDescription
+ dw RockSmashDescription
+ dw WhirlpoolDescription
+ dw BeatUpDescription
+ dw MoveFCDescription
+ dw MoveFDDescription
+ dw MoveFEDescription
+ dw MoveFFDescription
+ dw Move00Description
+; 2cd52
+
+MoveFCDescription:
+MoveFDDescription:
+MoveFEDescription:
+MoveFFDescription:
+Move00Description:
+UnknownMoveDescription:
+ db "?@"
+
+PoundDescription: db "Pounds with fore-", $4e, "legs or tail.@"
+KarateChopDescription: db "Has a high criti-", $4e, "cal hit ratio.@"
+DoubleslapDescription: db "Repeatedly slaps", $4e, "2-5 times.@"
+CometPunchDescription: db "Repeatedly punches", $4e, "2-5 times.@"
+MegaPunchDescription: db "A powerful punch", $4e, "thrown very hard.@"
+PayDayDescription: db "Throws coins. Gets", $4e, "them back later.@"
+FirePunchDescription: db "A fiery punch. May", $4e, "cause a burn.@"
+IcePunchDescription: db "An icy punch. May", $4e, "cause freezing.@"
+ThunderpunchDescription: db "An electric punch.", $4e, "It may paralyze.@"
+ScratchDescription: db "Scratches with", $4e, "sharp claws.@"
+VicegripDescription: db "Grips with power-", $4e, "ful pincers.@"
+GuillotineDescription: db "A one-hit KO,", $4e, "pincer attack.@"
+RazorWindDescription: db "1st turn: Prepare", $4e, "2nd turn: Attack@"
+SwordsDanceDescription: db "A dance that in-", $4e, "creases ATTACK.@"
+CutDescription: db "Cuts using claws,", $4e, "scythes, etc.@"
+GustDescription: db "Whips up a strong", $4e, "gust of wind.@"
+WingAttackDescription: db "Strikes the target", $4e, "with wings.@"
+WhirlwindDescription: db "Blows away the foe", $4e, "& ends battle.@"
+FlyDescription: db "1st turn: Fly", $4e, "2nd turn: Attack@"
+BindDescription: db "Binds the target", $4e, "for 2-5 turns.@"
+SlamDescription: db "Slams the foe with", $4e, "a tail, vine, etc.@"
+VineWhipDescription: db "Whips the foe with", $4e, "slender vines.@"
+StompDescription: db "An attack that may", $4e, "cause flinching.@"
+DoubleKickDescription: db "A double kicking", $4e, "attack.@"
+MegaKickDescription: db "A powerful kicking", $4e, "attack.@"
+JumpKickDescription: db "May miss, damaging", $4e, "the user.@"
+RollingKickDescription: db "A fast, spinning", $4e, "kick.@"
+SandAttackDescription: db "Reduces accuracy", $4e, "by throwing sand.@"
+HeadbuttDescription: db "An attack that may", $4e, "make foe flinch.@"
+HornAttackDescription: db "An attack using a", $4e, "horn to jab.@"
+FuryAttackDescription: db "Jabs the target", $4e, "2-5 times.@"
+HornDrillDescription: db "A one-hit KO,", $4e, "drill attack.@"
+TackleDescription: db "A full-body charge", $4e, "attack.@"
+BodySlamDescription: db "An attack that may", $4e, "cause paralysis.@"
+WrapDescription: db "Squeezes the foe", $4e, "for 2-5 turns.@"
+TakeDownDescription: db "A tackle that also", $4e, "hurts the user.@"
+ThrashDescription: db "Works 2-3 turns", $4e, "and confuses user.@"
+DoubleEdgeDescription: db "A tackle that also", $4e, "hurts the user.@"
+TailWhipDescription: db "Lowers the foe's", $4e, "DEFENSE.@"
+PoisonStingDescription: db "An attack that may", $4e, "poison the target.@"
+TwineedleDescription: db "Jabs the foe twice", $4e, "using stingers.@"
+PinMissileDescription: db "Fires pins that", $4e, "strike 2-5 times.@"
+LeerDescription: db "Reduces the foe's", $4e, "DEFENSE.@"
+BiteDescription: db "An attack that may", $4e, "cause flinching.@"
+GrowlDescription: db "Reduces the foe's", $4e, "ATTACK.@"
+RoarDescription: db "Scares wild foes", $4e, "to end battle.@"
+SingDescription: db "May cause the foe", $4e, "to fall asleep.@"
+SupersonicDescription: db "Sound waves that", $4e, "cause confusion.@"
+SonicboomDescription: db "Always inflicts", $4e, "20HP damage.@"
+DisableDescription: db "Disables the foe's", $4e, "most recent move.@"
+AcidDescription: db "An attack that may", $4e, "lower DEFENSE.@"
+EmberDescription: db "An attack that may", $4e, "inflict a burn.@"
+FlamethrowerDescription: db "An attack that may", $4e, "inflict a burn.@"
+MistDescription: db "Prevents stat", $4e, "reduction.@"
+WaterGunDescription: db "Squirts water to", $4e, "attack.@"
+HydroPumpDescription: db "A powerful water-", $4e, "type attack.@"
+SurfDescription: db "A strong water-", $4e, "type attack.@"
+IceBeamDescription: db "An attack that may", $4e, "freeze the foe.@"
+BlizzardDescription: db "An attack that may", $4e, "freeze the foe.@"
+PsybeamDescription: db "An attack that may", $4e, "confuse the foe.@"
+BubblebeamDescription: db "An attack that may", $4e, "lower SPEED.@"
+AuroraBeamDescription: db "An attack that may", $4e, "lower ATTACK.@"
+HyperBeamDescription: db "1st turn: Attack", $4e, "2nd turn: Rest@"
+PeckDescription: db "Jabs the foe with", $4e, "a beak, etc.@"
+DrillPeckDescription: db "A strong, spin-", $4e, "ning-peck attack.@"
+SubmissionDescription: db "An attack that al-", $4e, "so hurts the user.@"
+LowKickDescription: db "An attack that may", $4e, "cause flinching.@"
+CounterDescription: db "Returns a physical", $4e, "blow double.@"
+SeismicTossDescription: db "The user's level", $4e, "equals damage HP.@"
+StrengthDescription: db "A powerful physi-", $4e, "cal attack.@"
+AbsorbDescription: db "Steals 1/2 of the", $4e, "damage inflicted.@"
+MegaDrainDescription: db "Steals 1/2 of the", $4e, "damage inflicted.@"
+LeechSeedDescription: db "Steals HP from the", $4e, "foe on every turn.@"
+GrowthDescription: db "Raises the SPCL.", $4e, "ATK rating.@"
+RazorLeafDescription: db "Has a high criti-", $4e, "cal hit ratio.@"
+SolarbeamDescription: db "1st turn: Prepare", $4e, "2nd turn: Attack@"
+PoisonpowderDescription: db "A move that may", $4e, "poison the foe.@"
+StunSporeDescription: db "A move that may", $4e, "paralyze the foe.@"
+SleepPowderDescription: db "May cause the foe", $4e, "to fall asleep.@"
+PetalDanceDescription: db "Works 2-3 turns", $4e, "and confuses user.@"
+StringShotDescription: db "A move that lowers", $4e, "the foe's SPEED.@"
+DragonRageDescription: db "Always inflicts", $4e, "40HP damage.@"
+FireSpinDescription: db "Traps foe in fire", $4e, "for 2-5 turns.@"
+ThundershockDescription: db "An attack that may", $4e, "cause paralysis.@"
+ThunderboltDescription: db "An attack that may", $4e, "cause paralysis.@"
+ThunderWaveDescription: db "A move that may", $4e, "cause paralysis.@"
+ThunderDescription: db "An attack that may", $4e, "cause paralysis.@"
+RockThrowDescription: db "Drops rocks on the", $4e, "enemy.@"
+EarthquakeDescription: db "Tough but useless", $4e, "vs. flying foes.@"
+FissureDescription: db "A ground-type,", $4e, "one-hit KO attack.@"
+DigDescription: db "1st turn: Burrow", $4e, "2nd turn: Attack@"
+ToxicDescription: db "A poison move with", $4e, "increasing damage.@"
+ConfusionDescription: db "An attack that may", $4e, "cause confusion.@"
+PsychicMDescription: db "An attack that may", $4e, "lower SPCL.DEF.@"
+HypnosisDescription: db "May put the foe to", $4e, "sleep.@"
+MeditateDescription: db "Raises the user's", $4e, "ATTACK.@"
+AgilityDescription: db "Sharply increases", $4e, "the user's SPEED.@"
+QuickAttackDescription: db "Lets the user get", $4e, "in the first hit.@"
+RageDescription: db "Raises ATTACK if", $4e, "the user is hit.@"
+TeleportDescription: db "A move for fleeing", $4e, "from battle.@"
+NightShadeDescription: db "The user's level", $4e, "equals damage HP.@"
+MimicDescription: db "Copies a move used", $4e, "by the foe.@"
+ScreechDescription: db "Sharply reduces", $4e, "the foe's DEFENSE.@"
+DoubleTeamDescription: db "Heightens evasive-", $4e, "ness.@"
+RecoverDescription: db "Restores HP by 1/2", $4e, "the max HP.@"
+HardenDescription: db "Raises the user's", $4e, "DEFENSE.@"
+MinimizeDescription: db "Heightens evasive-", $4e, "ness.@"
+SmokescreenDescription: db "Lowers the foe's", $4e, "accuracy.@"
+ConfuseRayDescription: db "A move that causes", $4e, "confusion.@"
+WithdrawDescription: db "Heightens the", $4e, "user's DEFENSE.@"
+DefenseCurlDescription: db "Heightens the", $4e, "user's DEFENSE.@"
+BarrierDescription: db "Sharply increases", $4e, "user's DEFENSE.@"
+LightScreenDescription: db "Ups SPCL.DEF with", $4e, "a wall of light.@"
+HazeDescription: db "Eliminates all", $4e, "stat changes.@"
+ReflectDescription: db "Raises DEFENSE", $4e, "with a barrier.@"
+FocusEnergyDescription: db "Raises the criti-", $4e, "cal hit ratio.@"
+BideDescription: db "Waits 2-3 turns &", $4e, "hits back double.@"
+MetronomeDescription: db "Randomly uses any", $4e, "#MON move.@"
+MirrorMoveDescription: db "Counters with the", $4e, "same move.@"
+SelfdestructDescription: db "Powerful but makes", $4e, "the user faint.@"
+EggBombDescription: db "Eggs are hurled at", $4e, "the foe.@"
+LickDescription: db "An attack that may", $4e, "cause paralysis.@"
+SmogDescription: db "An attack that may", $4e, "poison the foe.@"
+SludgeDescription: db "An attack that may", $4e, "poison the foe.@"
+BoneClubDescription: db "An attack that may", $4e, "cause flinching.@"
+FireBlastDescription: db "An attack that", $4e, "may cause a burn.@"
+WaterfallDescription: db "An aquatic charge", $4e, "attack.@"
+ClampDescription: db "Traps the foe for", $4e, "2-5 turns.@"
+SwiftDescription: db "An attack that", $4e, "never misses.@"
+SkullBashDescription: db "1st turn: Prepare", $4e, "2nd turn: Attack@"
+SpikeCannonDescription: db "Fires spikes to", $4e, "hit 2-5 times.@"
+ConstrictDescription: db "An attack that may", $4e, "lower SPEED.@"
+AmnesiaDescription: db "Sharply raises the", $4e, "user's SPCL.DEF.@"
+KinesisDescription: db "Reduces the foe's", $4e, "accuracy.@"
+SoftboiledDescription: db "Restores HP by 1/2", $4e, "the user's max HP.@"
+HiJumpKickDescription: db "May miss and hurt", $4e, "the user.@"
+GlareDescription: db "A move that may", $4e, "cause paralysis.@"
+DreamEaterDescription: db "Steals HP from a", $4e, "sleeping victim.@"
+PoisonGasDescription: db "A move that may", $4e, "poison the foe.@"
+BarrageDescription: db "Throws orbs to hit", $4e, "2-5 times.@"
+LeechLifeDescription: db "Steals 1/2 of the", $4e, "damage inflicted.@"
+LovelyKissDescription: db "May cause the foe", $4e, "to fall asleep.@"
+SkyAttackDescription: db "1st turn: Prepare", $4e, "2nd turn: Attack@"
+TransformDescription: db "The user assumes", $4e, "the foe's guise.@"
+BubbleDescription: db "An attack that may", $4e, "reduce SPEED.@"
+DizzyPunchDescription: db "An attack that may", $4e, "cause confusion.@"
+SporeDescription: db "A move that", $4e, "induces sleep.@"
+FlashDescription: db "Blinds the foe to", $4e, "reduce accuracy.@"
+PsywaveDescription: db "An attack with", $4e, "variable power.@"
+SplashDescription: db "Has no effect", $4e, "whatsoever.@"
+AcidArmorDescription: db "Sharply raises the", $4e, "user's DEFENSE.@"
+CrabhammerDescription: db "Has a high criti-", $4e, "cal hit ratio.@"
+ExplosionDescription: db "Very powerful but", $4e, "makes user faint.@"
+FurySwipesDescription: db "Quickly scratches", $4e, "2-5 times.@"
+BonemerangDescription: db "An attack that", $4e, "strikes twice.@"
+RestDescription: db "Sleep for 2 turns", $4e, "to fully recover.@"
+RockSlideDescription: db "An attack that may", $4e, "cause flinching.@"
+HyperFangDescription: db "An attack that may", $4e, "cause flinching.@"
+SharpenDescription: db "A move that raises", $4e, "the user's ATTACK.@"
+ConversionDescription: db "Change user's type", $4e, "to a move's type.@"
+TriAttackDescription: db "Fires three kinds", $4e, "of beams at once.@"
+SuperFangDescription: db "Cuts the foe's HP", $4e, "by 1/2.@"
+SlashDescription: db "Has a high criti-", $4e, "cal hit ratio.@"
+SubstituteDescription: db "Makes a decoy with", $4e, "1/4 user's max HP.@"
+StruggleDescription: db "Used only if all", $4e, "PP are exhausted.@"
+SketchDescription: db "Copies the foe's", $4e, "move permanently.@"
+TripleKickDescription: db "Hits three times", $4e, "with rising power.@"
+ThiefDescription: db "An attack that may", $4e, "steal a held item.@"
+SpiderWebDescription: db "Prevents fleeing", $4e, "or switching.@"
+MindReaderDescription: db "Ensures the next", $4e, "attack will hit.@"
+NightmareDescription: db "A sleeper loses", $4e, "1/4 HP every turn.@"
+FlameWheelDescription: db "An attack that may", $4e, "cause a burn.@"
+SnoreDescription: db "An attack useable", $4e, "only while asleep.@"
+CurseDescription: db "Works differently", $4e, "for ghost-types.@"
+FlailDescription: db "Stronger if the", $4e, "user's HP is low.@"
+Conversion2Description: db "The user's type is", $4e, "made resistant.@"
+AeroblastDescription: db "Has a high criti-", $4e, "cal hit ratio.@"
+CottonSporeDescription: db "Sharply reduces", $4e, "the foe's SPEED.@"
+ReversalDescription: db "Stronger if the", $4e, "user's HP is low.@"
+SpiteDescription: db "Cuts the PP of the", $4e, "foe's last move.@"
+PowderSnowDescription: db "An attack that may", $4e, "cause freezing.@"
+ProtectDescription: db "Foils attack that", $4e, "turn. It may fail.@"
+MachPunchDescription: db "A fast punch that", $4e, "lands first.@"
+ScaryFaceDescription: db "Sharply reduces", $4e, "the foe's SPEED.@"
+FaintAttackDescription: db "An attack that", $4e, "never misses.@"
+SweetKissDescription: db "A move that causes", $4e, "confusion.@"
+BellyDrumDescription: db "Reduces own HP to", $4e, "maximize ATTACK.@"
+SludgeBombDescription: db "An attack that may", $4e, "poison the foe.@"
+MudSlapDescription: db "Reduces the foe's", $4e, "accuracy.@"
+OctazookaDescription: db "An attack that may", $4e, "reduce accuracy.@"
+SpikesDescription: db "Hurts foes when", $4e, "they switch out.@"
+ZapCannonDescription: db "An attack that", $4e, "always paralyzes.@"
+ForesightDescription: db "Negates accuracy", $4e, "reduction moves.@"
+DestinyBondDescription: db "The foe faints if", $4e, "the user does.@"
+PerishSongDescription: db "Both user and foe", $4e, "faint in 3 turns.@"
+IcyWindDescription: db "An icy attack that", $4e, "lowers SPEED.@"
+DetectDescription: db "Evades attack that", $4e, "turn. It may fail.@"
+BoneRushDescription: db "An attack that", $4e, "hits 2-5 times.@"
+LockOnDescription: db "Ensures the next", $4e, "attack will hit.@"
+OutrageDescription: db "Works 2-3 turns", $4e, "and confuses user.@"
+SandstormDescription: db "Inflicts damage", $4e, "every turn.@"
+GigaDrainDescription: db "Steals 1/2 of the", $4e, "damage inflicted.@"
+EndureDescription: db "Always leaves at", $4e, "least 1HP.@"
+CharmDescription: db "Sharply lowers the", $4e, "foe's ATTACK.@"
+RolloutDescription: db "Attacks 5 turns", $4e, "with rising power.@"
+FalseSwipeDescription: db "Leaves the foe", $4e, "with at least 1HP.@"
+SwaggerDescription: db "Causes confusion", $4e, "and raises ATTACK.@"
+MilkDrinkDescription: db "Restores HP by 1/2", $4e, "the max HP.@"
+SparkDescription: db "An attack that may", $4e, "cause paralysis.@"
+FuryCutterDescription: db "Successive hits", $4e, "raise power.@"
+SteelWingDescription: db "Stiff wings strike", $4e, "the foe.@"
+MeanLookDescription: db "Prevents fleeing", $4e, "or switching.@"
+AttractDescription: db "Makes the opposite", $4e, "gender infatuated.@"
+SleepTalkDescription: db "Randomly attacks", $4e, "while asleep.@"
+HealBellDescription: db "Eliminates all", $4e, "status problems.@"
+ReturnDescription: db "An attack that is", $4e, "based on loyalty.@"
+PresentDescription: db "A bomb that may", $4e, "restore HP.@"
+FrustrationDescription: db "An attack based on", $4e, "lack of loyalty.@"
+SafeguardDescription: db "Prevents all", $4e, "status problems.@"
+PainSplitDescription: db "Adds user & foe's", $4e, "HPs. Shares total.@"
+SacredFireDescription: db "An attack that may", $4e, "inflict a burn.@"
+MagnitudeDescription: db "A ground attack", $4e, "with random power.@"
+DynamicpunchDescription: db "An attack that", $4e, "always confuses.@"
+MegahornDescription: db "A powerful charge", $4e, "attack.@"
+DragonbreathDescription: db "A strong breath", $4e, "attack.@"
+BatonPassDescription: db "Switches while", $4e, "keeping effects.@"
+EncoreDescription: db "Makes the foe re-", $4e, "peat 2-6 times.@"
+PursuitDescription: db "Heavily strikes", $4e, "switching #MON.@"
+RapidSpinDescription: db "A high-speed", $4e, "spinning attack.@"
+SweetScentDescription: db "Reduces the foe's", $4e, "evasiveness.@"
+IronTailDescription: db "An attack that may", $4e, "reduce DEFENSE.@"
+MetalClawDescription: db "An attack that may", $4e, "up user's ATTACK.@"
+VitalThrowDescription: db "A 2nd-strike move", $4e, "that never misses.@"
+MorningSunDescription: db "Restores HP", $4e, "(varies by time).@"
+SynthesisDescription: db "Restores HP", $4e, "(varies by time).@"
+MoonlightDescription: db "Restores HP", $4e, "(varies by time).@"
+HiddenPowerDescription: db "The power varies", $4e, "with the #MON.@"
+CrossChopDescription: db "Has a high criti-", $4e, "cal hit ratio.@"
+TwisterDescription: db "Whips up a tornado", $4e, "to attack.@"
+RainDanceDescription: db "Boosts water-type", $4e, "moves for 5 turns.@"
+SunnyDayDescription: db "Boosts fire-type", $4e, "moves for 5 turns.@"
+CrunchDescription: db "An attack that may", $4e, "lower SPCL.DEF.@"
+MirrorCoatDescription: db "Counters a SPCL.", $4e, "ATK move double.@"
+PsychUpDescription: db "Copies the foe's", $4e, "stat changes.@"
+ExtremespeedDescription: db "A powerful first-", $4e, "strike move.@"
+AncientpowerDescription: db "An attack that may", $4e, "raise all stats.@"
+ShadowBallDescription: db "An attack that may", $4e, "lower SPCL.DEF.@"
+FutureSightDescription: db "An attack that", $4e, "hits on 3rd turn.@"
+RockSmashDescription: db "An attack that may", $4e, "lower DEFENSE.@"
+WhirlpoolDescription: db "Traps the foe for", $4e, "2-5 turns.@"
+BeatUpDescription: db "Party #MON join", $4e, "in the attack.@"
+; 2ed44
--- a/constants.asm
+++ b/constants.asm
@@ -36,6 +36,12 @@
db \1 << 4 + \2
ENDM
+dt: MACRO ; three-byte (big-endian)
+ db (\1 >> 16) & $ff
+ db (\1 >> 8) & $ff
+ db \1 & $ff
+ ENDM
+
bigdw: MACRO ; big-endian word
dw ((\1)/$100) + (((\1)&$ff)*$100)
ENDM
@@ -221,8 +227,23 @@
PREDEF_FILLPP EQU $05
PREDEF_ADDPARTYMON EQU $06
PREDEF_FILLSTATS EQU $0C
+PREDEF_PRINT_MOVE_DESCRIPTION EQU $11
+PREDEF_UPDATE_PLAYER_HUD EQU $12
+PREDEF_FILL_BOX EQU $13
+PREDEF_UPDATE_ENEMY_HUD EQU $15
+PREDEF_FILL_IN_EXP_BAR EQU $17
PREDEF_FILLMOVES EQU $1B
-PREDEF_GETUNOWNLETTER EQU $2D
+PREDEF_GET_GENDER EQU $24
+PREDEF_STATS_SCREEN EQU $25
+PREDEF_DRAW_PLAYER_HP EQU $26
+PREDEF_DRAW_ENEMY_HP EQU $27
+PREDEF_GET_TYPE_NAME EQU $29
+PREDEF_PRINT_MOVE_TYPE EQU $2A
+PREDEF_PRINT_TYPE EQU $2B
+PREDEF_GET_UNOWN_LETTER EQU $2D
+PREDEF_LOAD_SGB_LAYOUT EQU $31
+PREDEF_CHECK_CONTEST_MON EQU $33
+PREDEF_PARTYMON_ITEM_NAME EQU $3B
PREDEF_DECOMPRESS EQU $40
@@ -245,6 +266,20 @@
D_LEFT EQU %00100000
D_UP EQU %01000000
D_DOWN EQU %10000000
+
+
+; screen
+HP_BAR_LENGTH EQU 6
+HP_BAR_LENGTH_PX EQU 48
+EXP_BAR_LENGTH EQU 8
+EXP_BAR_LENGTH_PX EQU 64
+
+SCREEN_WIDTH EQU 20
+SCREEN_HEIGHT EQU 18
+SCREEN_WIDTH_PX EQU 160
+SCREEN_HEIGHT_PX EQU 144
+
+TILE_WIDTH EQU 8
; movement
--- a/constants/music_constants.asm
+++ b/constants/music_constants.asm
@@ -149,7 +149,7 @@
SFX_ELEVATOR_END EQU $27
SFX_THROW_BALL EQU $28
SFX_BALL_POOF EQU $29
-SFX_UNKNOWN_3A EQU $2a
+SFX_UNKNOWN_2A EQU $2a
SFX_RUN EQU $2b
SFX_SLOT_MACHINE_START EQU $2c
SFX_FANFARE EQU $2d
@@ -254,7 +254,7 @@
SFX_LEVEL_UP EQU $90
SFX_KEY_ITEM EQU $91
SFX_FANFARE_2 EQU $92
-SFX_REGISTER_PHONE_# EQU $93
+SFX_REGISTER_PHONE_NUMBER EQU $93
SFX_3RD_PLACE EQU $94
SFX_GET_EGG_FROM_DAYCARE_MAN EQU $95
SFX_GET_EGG_FROM_DAYCARE_LADY EQU $96
--- /dev/null
+++ b/engine/decompress.asm
@@ -1,0 +1,367 @@
+FarDecompress: ; b40
+; Decompress graphics data at a:hl to de
+
+; put a away for a sec
+ ld [$c2c4], a
+; save bank
+ ld a, [hROMBank]
+ push af
+; bankswitch
+ ld a, [$c2c4]
+ rst Bankswitch
+
+; what we came here for
+ call Decompress
+
+; restore bank
+ pop af
+ rst Bankswitch
+ ret
+; b50
+
+
+Decompress: ; b50
+; Pokemon Crystal uses an lz variant for compression.
+
+; This is mainly used for graphics, but the intro's
+; tilemaps also use this compression.
+
+; This function decompresses lz-compressed data at hl to de.
+
+
+; Basic rundown:
+
+; A typical control command consists of:
+; -the command (bits 5-7)
+; -the count (bits 0-4)
+; -and any additional params
+
+; $ff is used as a terminator.
+
+
+; Commands:
+
+; 0: literal
+; literal data for some number of bytes
+; 1: iterate
+; one byte repeated for some number of bytes
+; 2: alternate
+; two bytes alternated for some number of bytes
+; 3: zero (whitespace)
+; 0x00 repeated for some number of bytes
+
+; Repeater control commands have a signed parameter used to determine the start point.
+; Wraparound is simulated:
+; Positive values are added to the start address of the decompressed data
+; and negative values are subtracted from the current position.
+
+; 4: repeat
+; repeat some number of bytes from decompressed data
+; 5: flipped
+; repeat some number of flipped bytes from decompressed data
+; ex: $ad = %10101101 -> %10110101 = $b5
+; 6: reverse
+; repeat some number of bytes in reverse from decompressed data
+
+; If the value in the count needs to be larger than 5 bits,
+; control code 7 can be used to expand the count to 10 bits.
+
+; A new control command is read in bits 2-4.
+; The new 10-bit count is split:
+; bits 0-1 contain the top 2 bits
+; another byte is added containing the latter 8
+
+; So, the structure of the control command becomes:
+; 111xxxyy yyyyyyyy
+; | | | |
+; | | our new count
+; | the control command for this count
+; 7 (this command)
+
+; For more information, refer to the code below and in extras/gfx.py .
+
+; save starting output address
+ ld a, e
+ ld [$c2c2], a
+ ld a, d
+ ld [$c2c3], a
+
+.loop
+; get next byte
+ ld a, [hl]
+; done?
+ cp $ff ; end
+ ret z
+
+; get control code
+ and %11100000
+
+; 10-bit param?
+ cp $e0 ; LZ_HI
+ jr nz, .normal
+
+
+; 10-bit param:
+
+; get next 3 bits (%00011100)
+ ld a, [hl]
+ add a
+ add a ; << 3
+ add a
+
+; this is our new control code
+ and %11100000
+ push af
+
+; get param hi
+ ld a, [hli]
+ and %00000011
+ ld b, a
+
+; get param lo
+ ld a, [hli]
+ ld c, a
+
+; read at least 1 byte
+ inc bc
+ jr .readers
+
+
+.normal
+; push control code
+ push af
+; get param
+ ld a, [hli]
+ and %00011111
+ ld c, a
+ ld b, $0
+; read at least 1 byte
+ inc c
+
+.readers
+; let's get started
+
+; inc loop counts since we bail as soon as they hit 0
+ inc b
+ inc c
+
+; get control code
+ pop af
+; command type
+ bit 7, a ; 80, a0, c0
+ jr nz, .repeatertype
+
+; literals
+ cp $20 ; LZ_ITER
+ jr z, .iter
+ cp $40 ; LZ_ALT
+ jr z, .alt
+ cp $60 ; LZ_ZERO
+ jr z, .zero
+ ; else $00
+
+; 00 ; LZ_LIT
+; literal data for bc bytes
+.loop1
+; done?
+ dec c
+ jr nz, .next1
+ dec b
+ jp z, .loop
+
+.next1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ jr .loop1
+
+
+; 20 ; LZ_ITER
+; write byte for bc bytes
+.iter
+ ld a, [hli]
+
+.iterloop
+ dec c
+ jr nz, .iternext
+ dec b
+ jp z, .loop
+
+.iternext
+ ld [de], a
+ inc de
+ jr .iterloop
+
+
+; 40 ; LZ_ALT
+; alternate two bytes for bc bytes
+
+; next pair
+.alt
+; done?
+ dec c
+ jr nz, .alt0
+ dec b
+ jp z, .altclose0
+
+; alternate for bc
+.alt0
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .alt1
+; done?
+ dec b
+ jp z, .altclose1
+.alt1
+ ld a, [hld]
+ ld [de], a
+ inc de
+ jr .alt
+
+; skip past the bytes we were alternating
+.altclose0
+ inc hl
+.altclose1
+ inc hl
+ jr .loop
+
+
+; 60 ; LZ_ZERO
+; write 00 for bc bytes
+.zero
+ xor a
+
+.zeroloop
+ dec c
+ jr nz, .zeronext
+ dec b
+ jp z, .loop
+
+.zeronext
+ ld [de], a
+ inc de
+ jr .zeroloop
+
+
+; repeats
+; 80, a0, c0
+; repeat decompressed data from output
+.repeatertype
+ push hl
+ push af
+; get next byte
+ ld a, [hli]
+; absolute?
+ bit 7, a
+ jr z, .absolute
+
+; relative
+; a = -a
+ and %01111111 ; forget the bit we just looked at
+ cpl
+; add de (current output address)
+ add e
+ ld l, a
+ ld a, $ff ; -1
+ adc d
+ ld h, a
+ jr .repeaters
+
+.absolute
+; get next byte (lo)
+ ld l, [hl]
+; last byte (hi)
+ ld h, a
+; add starting output address
+ ld a, [$c2c2]
+ add l
+ ld l, a
+ ld a, [$c2c3]
+ adc h
+ ld h, a
+
+.repeaters
+ pop af
+ cp $80 ; LZ_REPEAT
+ jr z, .repeat
+ cp $a0 ; LZ_FLIP
+ jr z, .flip
+ cp $c0 ; LZ_REVERSE
+ jr z, .reverse
+
+; e0 -> 80
+
+; 80 ; LZ_REPEAT
+; repeat some decompressed data
+.repeat
+; done?
+ dec c
+ jr nz, .repeatnext
+ dec b
+ jr z, .cleanup
+
+.repeatnext
+ ld a, [hli]
+ ld [de], a
+ inc de
+ jr .repeat
+
+
+; a0 ; LZ_FLIP
+; repeat some decompressed data w/ flipped bit order
+.flip
+ dec c
+ jr nz, .flipnext
+ dec b
+ jp z, .cleanup
+
+.flipnext
+ ld a, [hli]
+ push bc
+ ld bc, $0008
+
+.fliploop
+ rra
+ rl b
+ dec c
+ jr nz, .fliploop
+ ld a, b
+ pop bc
+ ld [de], a
+ inc de
+ jr .flip
+
+
+; c0 ; LZ_REVERSE
+; repeat some decompressed data in reverse
+.reverse
+ dec c
+ jr nz, .reversenext
+
+ dec b
+ jp z, .cleanup
+
+.reversenext
+ ld a, [hld]
+ ld [de], a
+ inc de
+ jr .reverse
+
+
+.cleanup
+; get type of repeat we just used
+ pop hl
+; was it relative or absolute?
+ bit 7, [hl]
+ jr nz, .next
+
+; skip two bytes for absolute
+ inc hl
+; skip one byte for relative
+.next
+ inc hl
+ jp .loop
+; c2f
+
--- /dev/null
+++ b/engine/init.asm
@@ -1,0 +1,225 @@
+Reset: ; 150
+ di
+ call CleanSoundRestart
+ xor a
+ ld [$ffde], a
+ call ClearPalettes
+ xor a
+ ld [rIF], a
+ ld a, 1 ; VBlank int
+ ld [rIE], a
+ ei
+
+ ld hl, $cfbe
+ set 7, [hl]
+
+ ld c, 32
+ call DelayFrames
+
+ jr Init
+; 16e
+
+
+_Start: ; 16e
+ cp $11
+ jr z, .asm_175
+ xor a
+ jr .asm_177
+
+.asm_175
+ ld a, $1
+
+.asm_177
+ ld [hCGB], a
+ ld a, $1
+ ld [$ffea], a
+; 17d
+
+
+Init: ; 17d
+
+ di
+
+ xor a
+ ld [rIF], a
+ ld [rIE], a
+ ld [rRP], a
+ ld [rSCX], a
+ ld [rSCY], a
+ ld [rSB], a
+ ld [rSC], a
+ ld [rWX], a
+ ld [rWY], a
+ ld [rBGP], a
+ ld [rOBP0], a
+ ld [rOBP1], a
+ ld [rTMA], a
+ ld [rTAC], a
+ ld [$d000], a
+
+ ld a, %100 ; Start timer at 4096Hz
+ ld [rTAC], a
+
+.wait
+ ld a, [rLY]
+ cp 145
+ jr nz, .wait
+
+ xor a
+ ld [rLCDC], a
+
+; Clear WRAM bank 0
+ ld hl, $c000
+ ld bc, $d000 - $c000
+.asm_1b1
+ ld [hl], 0
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_1b1
+
+ ld sp, Stack - 1
+
+; Clear HRAM
+ ld a, [hCGB]
+ push af
+ ld a, [$ffea]
+ push af
+ xor a
+ ld hl, $ff80
+ ld bc, $ffff - $ff80
+ call ByteFill
+ pop af
+ ld [$ffea], a
+ pop af
+ ld [hCGB], a
+
+ call ClearWRAM
+ ld a, 1
+ ld [rSVBK], a
+ call ClearVRAM
+ call ClearSprites
+ call Function270
+
+
+ ld a, BANK(LoadPushOAM)
+ rst Bankswitch
+
+ call LoadPushOAM
+
+ xor a
+ ld [$ffde], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld [rJOYP], a
+
+ ld a, $8 ; HBlank int enable
+ ld [rSTAT], a
+
+ ld a, $90
+ ld [hWY], a
+ ld [rWY], a
+
+ ld a, 7
+ ld [hWX], a
+ ld [rWX], a
+
+ ld a, %11100011
+ ; LCD on
+ ; Win tilemap 1
+ ; Win on
+ ; BG/Win tiledata 0
+ ; BG Tilemap 0
+ ; OBJ 8x8
+ ; OBJ on
+ ; BG on
+ ld [rLCDC], a
+
+ ld a, $ff
+ ld [$ffcb], a
+
+ callba Function9890
+
+ ld a, $9c
+ ld [$ffd7], a
+
+ xor a
+ ld [hBGMapAddress], a
+
+ callba StartClock
+
+ xor a
+ ld [MBC3LatchClock], a
+ ld [MBC3SRamEnable], a
+
+ ld a, [hCGB]
+ and a
+ jr z, .asm_22b
+ call Function2ff7
+.asm_22b
+
+ xor a
+ ld [rIF], a
+ ld a, %1111 ; VBlank, LCDStat, Timer, Serial interrupts
+ ld [rIE], a
+ ei
+
+ call DelayFrame
+
+ ld a, $30
+ call Predef
+
+ call CleanSoundRestart
+ xor a
+ ld [CurMusic], a
+ jp GameInit
+; 245
+
+
+ClearVRAM: ; 245
+; Wipe VRAM banks 0 and 1
+
+ ld a, 1
+ ld [rVBK], a
+ call .clear
+
+ xor a
+ ld [rVBK], a
+.clear
+ ld hl, VTiles0
+ ld bc, $2000
+ xor a
+ call ByteFill
+ ret
+; 25a
+
+ClearWRAM: ; 25a
+; Wipe swappable WRAM banks (1-7)
+
+ ld a, 1
+.asm_25c
+ push af
+ ld [rSVBK], a
+ xor a
+ ld hl, $d000
+ ld bc, $1000
+ call ByteFill
+ pop af
+ inc a
+ cp 8
+ jr nc, .asm_25c
+ ret
+; 270
+
+Function270: ; 270
+ ld a, $0
+ call GetSRAMBank
+ ld hl, $a000
+ ld bc, $0020
+ xor a
+ call ByteFill
+ call CloseSRAM
+ ret
+; 283
+
--- a/engine/joypad.asm
+++ b/engine/joypad.asm
@@ -103,7 +103,7 @@
; For example, soft reset:
and BUTTON_A | BUTTON_B | SELECT | START
cp BUTTON_A | BUTTON_B | SELECT | START
- jp z, $0150 ; reset
+ jp z, Reset
ret
; 984
--- /dev/null
+++ b/engine/movement.asm
@@ -1,0 +1,829 @@
+MovementPointers: ; 5075
+ dw Movement_turn_head_down
+ dw Movement_turn_head_up
+ dw Movement_turn_head_left
+ dw Movement_turn_head_right
+ dw Movement_half_step_down
+ dw Movement_half_step_up
+ dw Movement_half_step_left
+ dw Movement_half_step_right
+ dw Movement_slow_step_down
+ dw Movement_slow_step_up
+ dw Movement_slow_step_left
+ dw Movement_slow_step_right
+ dw Movement_step_down
+ dw Movement_step_up
+ dw Movement_step_left
+ dw Movement_step_right
+ dw Movement_big_step_down
+ dw Movement_big_step_up
+ dw Movement_big_step_left
+ dw Movement_big_step_right
+ dw Movement_slow_slide_step_down
+ dw Movement_slow_slide_step_up
+ dw Movement_slow_slide_step_left
+ dw Movement_slow_slide_step_right
+ dw Movement_slide_step_down
+ dw Movement_slide_step_up
+ dw Movement_slide_step_left
+ dw Movement_slide_step_right
+ dw Movement_fast_slide_step_down
+ dw Movement_fast_slide_step_up
+ dw Movement_fast_slide_step_left
+ dw Movement_fast_slide_step_right
+ dw Movement_turn_away_down
+ dw Movement_turn_away_up
+ dw Movement_turn_away_left
+ dw Movement_turn_away_right
+ dw Movement_turn_in_down
+ dw Movement_turn_in_up
+ dw Movement_turn_in_left
+ dw Movement_turn_in_right
+ dw Movement_turn_waterfall_down
+ dw Movement_turn_waterfall_up
+ dw Movement_turn_waterfall_left
+ dw Movement_turn_waterfall_right
+ dw Movement_slow_jump_step_down
+ dw Movement_slow_jump_step_up
+ dw Movement_slow_jump_step_left
+ dw Movement_slow_jump_step_right
+ dw Movement_jump_step_down
+ dw Movement_jump_step_up
+ dw Movement_jump_step_left
+ dw Movement_jump_step_right
+ dw Movement_fast_jump_step_down
+ dw Movement_fast_jump_step_up
+ dw Movement_fast_jump_step_left
+ dw Movement_fast_jump_step_right
+ dw Function5293
+ dw Function529c
+ dw Movement_remove_fixed_facing
+ dw Movement_fix_facing
+ dw Function52b7
+ dw Movement_hide_person
+ dw Movement_show_person
+ dw Function5226
+ dw Function522a
+ dw Function522e
+ dw Function5232
+ dw Function5236
+ dw Function523a
+ dw Movement_accelerate_last
+ dw Movement_step_sleep
+ dw Movement_step_end
+ dw Function51db
+ dw Movement_remove_person
+ dw Function51b8
+ dw Function5210
+ dw Movement_teleport_from
+ dw Movement_teleport_to
+ dw Movement_skyfall
+ dw Movement_step_wait5
+ dw Function525f
+ dw Function5189
+ dw Function51ab
+ dw Movement_hide_emote
+ dw Movement_show_emote
+ dw Movement_step_shake
+ dw Function5279
+ dw Function5196
+ dw Function516a
+ dw Function513e
+; 5129
+
+
+Movement_teleport_from: ; 5129
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $c
+ ret
+; 5130
+
+Movement_teleport_to: ; 5130
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $d
+ ret
+; 5137
+
+Movement_skyfall: ; 5137
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $e
+ ret
+; 513e
+
+Function513e: ; 513e
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $19
+ ret
+; 5145
+
+Movement_step_wait5: ; 5145
+ call GetSpriteDirection
+ rlca
+ rlca
+ ld hl, $000c
+ add hl, bc
+ ld [hl], a
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $4
+ call Function505e
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $3
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ret
+; 516a
+
+Function516a: ; 516a
+ call GetSpriteDirection
+ rlca
+ rlca
+ ld hl, $000c
+ add hl, bc
+ ld [hl], a
+ call Function505e
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $12
+ ret
+; 5189
+
+Function5189: ; 5189
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $6
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $10
+ ret
+; 5196
+
+Function5196: ; 5196
+ call Function505e
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $1
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $11
+ ret
+; 51ab
+
+Function51ab: ; 51ab
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $6
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 51b8
+
+Function51b8: ; 51b8
+ ld hl, $001b
+ add hl, bc
+ ld [hl], $0
+ jp Function5065
+; 51c1
+
+Movement_step_end: ; 51c1
+ call $4769
+ ld hl, $0003
+ add hl, bc
+ ld [hl], a
+ ld hl, $001b
+ add hl, bc
+ ld [hl], $0
+ ld hl, VramState
+ res 7, [hl]
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 51db
+
+Function51db: ; 51db
+ call $4769
+ ld hl, $0003
+ add hl, bc
+ ld [hl], a
+ ld hl, $001b
+ add hl, bc
+ ld [hl], $0
+ call Function505e
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $3
+ ld hl, VramState
+ res 7, [hl]
+ ret
+; 51fd
+
+Movement_remove_person: ; 51fd
+ call $4357
+ ld hl, $d4cd
+ ld a, [hConnectionStripLength]
+ cp [hl]
+ jr nz, .asm_520a
+ ld [hl], $ff
+
+.asm_520a
+ ld hl, VramState
+ res 7, [hl]
+ ret
+; 5210
+
+Function5210: ; 5210
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $1
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $4
+ ld hl, VramState
+ res 7, [hl]
+ ret
+; 5222
+
+Movement_show_person: ; 5222
+ ld a, $1
+ jr Function5247
+
+Function5226: ; 5226
+ ld a, $2
+ jr Function5247
+
+Function522a: ; 522a
+ ld a, $3
+ jr Function5247
+
+Function522e: ; 522e
+ ld a, $4
+ jr Function5247
+
+Function5232: ; 5232
+ ld a, $5
+ jr Function5247
+
+Function5236: ; 5236
+ ld a, $6
+ jr Function5247
+
+Function523a: ; 523a
+ ld a, $7
+ jr Function5247
+
+Movement_accelerate_last: ; 523e
+ ld a, $8
+ jr Function5247
+
+Movement_step_sleep: ; 5242
+; parameters:
+; duration (DecimalParam)
+
+ call Function505e
+ jr Function5247
+
+Function5247: ; 5247
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $3
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $1
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ret
+; 525f
+
+Function525f: ; 525f
+ ld a, $1
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $b
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $3
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ret
+; 5279
+
+Function5279: ; 5279
+ ld a, $18
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $3
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $b
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ret
+; 5293
+
+Function5293: ; 5293
+ ld hl, $0004
+ add hl, bc
+ res 3, [hl]
+ jp Function5065
+; 529c
+
+Function529c: ; 529c
+ ld hl, $0004
+ add hl, bc
+ set 3, [hl]
+ jp Function5065
+; 52a5
+
+Movement_remove_fixed_facing: ; 52a5
+ ld hl, $0004
+ add hl, bc
+ res 2, [hl]
+ jp Function5065
+; 52ae
+
+Movement_fix_facing: ; 52ae
+ ld hl, $0004
+ add hl, bc
+ set 2, [hl]
+ jp Function5065
+; 52b7
+
+Function52b7: ; 52b7
+ ld hl, $0004
+ add hl, bc
+ res 0, [hl]
+ jp Function5065
+; 52c0
+
+Movement_hide_person: ; 52c0
+ ld hl, $0004
+ add hl, bc
+ set 0, [hl]
+ jp Function5065
+; 52c9
+
+Movement_hide_emote: ; 52c9
+ call $5579
+ jp Function5065
+; 52cf
+
+Movement_show_emote: ; 52cf
+ call $5547
+ jp Function5065
+; 52d5
+
+Movement_step_shake: ; 52d5
+; parameters:
+; displacement (DecimalParam)
+
+ call Function505e
+ call $5565
+ jp Function5065
+; 52de
+
+Movement_turn_head_down: ; 52de
+ ld a, $0
+ jr Function52ee
+
+Movement_turn_head_up: ; 52e2
+ ld a, $4
+ jr Function52ee
+
+Movement_turn_head_left: ; 52e6
+ ld a, $8
+ jr Function52ee
+
+Movement_turn_head_right: ; 52ea
+ ld a, $c
+ jr Function52ee
+
+Function52ee: ; 52ee
+ ld hl, $0008
+ add hl, bc
+ ld [hl], a
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $1
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ret
+; 5300
+
+Movement_slow_step_down: ; 5300
+ ld a, $0
+ jp Function5412
+; 5305
+
+Movement_slow_step_up: ; 5305
+ ld a, $1
+ jp Function5412
+; 530a
+
+Movement_slow_step_left: ; 530a
+ ld a, $2
+ jp Function5412
+; 530f
+
+Movement_slow_step_right: ; 530f
+ ld a, $3
+ jp Function5412
+; 5314
+
+Movement_step_down: ; 5314
+ ld a, $4
+ jp Function5412
+; 5319
+
+Movement_step_up: ; 5319
+ ld a, $5
+ jp Function5412
+; 531e
+
+Movement_step_left: ; 531e
+ ld a, $6
+ jp Function5412
+; 5323
+
+Movement_step_right: ; 5323
+ ld a, $7
+ jp Function5412
+; 5328
+
+Movement_big_step_down: ; 5328
+ ld a, $8
+ jp Function5412
+; 532d
+
+Movement_big_step_up: ; 532d
+ ld a, $9
+ jp Function5412
+; 5332
+
+Movement_big_step_left: ; 5332
+ ld a, $a
+ jp Function5412
+; 5337
+
+Movement_big_step_right: ; 5337
+ ld a, $b
+ jp Function5412
+; 533c
+
+
+Movement_turn_away_down: ; 533c
+ ld a, $0
+ jp Function5446
+; 5341
+
+Movement_turn_away_up: ; 5341
+ ld a, $1
+ jp Function5446
+; 5346
+
+Movement_turn_away_left: ; 5346
+ ld a, $2
+ jp Function5446
+; 534b
+
+Movement_turn_away_right: ; 534b
+ ld a, $3
+ jp Function5446
+; 5350
+
+Movement_turn_in_down: ; 5350
+ ld a, $4
+ jp Function5446
+; 5355
+
+Movement_turn_in_up: ; 5355
+ ld a, $5
+ jp Function5446
+; 535a
+
+Movement_turn_in_left: ; 535a
+ ld a, $6
+ jp Function5446
+; 535f
+
+Movement_turn_in_right: ; 535f
+ ld a, $7
+ jp Function5446
+; 5364
+
+Movement_turn_waterfall_down: ; 5364
+ ld a, $8
+ jp Function5446
+; 5369
+
+Movement_turn_waterfall_up: ; 5369
+ ld a, $9
+ jp Function5446
+; 536e
+
+Movement_turn_waterfall_left: ; 536e
+ ld a, $a
+ jp Function5446
+; 5373
+
+Movement_turn_waterfall_right: ; 5373
+ ld a, $b
+ jp Function5446
+; 5378
+
+
+Movement_slow_slide_step_down: ; 5378
+ ld a, $0
+ jp Function5468
+; 537d
+
+Movement_slow_slide_step_up: ; 537d
+ ld a, $1
+ jp Function5468
+; 5382
+
+Movement_slow_slide_step_left: ; 5382
+ ld a, $2
+ jp Function5468
+; 5387
+
+Movement_slow_slide_step_right: ; 5387
+ ld a, $3
+ jp Function5468
+; 538c
+
+Movement_slide_step_down: ; 538c
+ ld a, $4
+ jp Function5468
+; 5391
+
+Movement_slide_step_up: ; 5391
+ ld a, $5
+ jp Function5468
+; 5396
+
+Movement_slide_step_left: ; 5396
+ ld a, $6
+ jp Function5468
+; 539b
+
+Movement_slide_step_right: ; 539b
+ ld a, $7
+ jp Function5468
+; 53a0
+
+Movement_fast_slide_step_down: ; 53a0
+ ld a, $8
+ jp Function5468
+; 53a5
+
+Movement_fast_slide_step_up: ; 53a5
+ ld a, $9
+ jp Function5468
+; 53aa
+
+Movement_fast_slide_step_left: ; 53aa
+ ld a, $a
+ jp Function5468
+; 53af
+
+Movement_fast_slide_step_right: ; 53af
+ ld a, $b
+ jp Function5468
+; 53b4
+
+
+Movement_slow_jump_step_down: ; 53b4
+ ld a, $0
+ jp Function548a
+; 53b9
+
+Movement_slow_jump_step_up: ; 53b9
+ ld a, $1
+ jp Function548a
+; 53be
+
+Movement_slow_jump_step_left: ; 53be
+ ld a, $2
+ jp Function548a
+; 53c3
+
+Movement_slow_jump_step_right: ; 53c3
+ ld a, $3
+ jp Function548a
+; 53c8
+
+Movement_jump_step_down: ; 53c8
+ ld a, $4
+ jp Function548a
+; 53cd
+
+Movement_jump_step_up: ; 53cd
+ ld a, $5
+ jp Function548a
+; 53d2
+
+Movement_jump_step_left: ; 53d2
+ ld a, $6
+ jp Function548a
+; 53d7
+
+Movement_jump_step_right: ; 53d7
+ ld a, $7
+ jp Function548a
+; 53dc
+
+Movement_fast_jump_step_down: ; 53dc
+ ld a, $8
+ jp Function548a
+; 53e1
+
+Movement_fast_jump_step_up: ; 53e1
+ ld a, $9
+ jp Function548a
+; 53e6
+
+Movement_fast_jump_step_left: ; 53e6
+ ld a, $a
+ jp Function548a
+; 53eb
+
+Movement_fast_jump_step_right: ; 53eb
+ ld a, $b
+ jp Function548a
+; 53f0
+
+
+Movement_half_step_down: ; 53f0
+ ld a, $0
+ jr Function5400
+
+Movement_half_step_up: ; 53f4
+ ld a, $4
+ jr Function5400
+
+Movement_half_step_left: ; 53f8
+ ld a, $8
+ jr Function5400
+
+Movement_half_step_right: ; 53fc
+ ld a, $c
+ jr Function5400
+
+Function5400: ; 5400
+ ld hl, $001d
+ add hl, bc
+ ld [hl], a
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $2
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $a
+ ret
+; 5412
+
+Function5412: ; 5412
+ call $4690
+ call $463f
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $2
+ ld hl, $000e
+ add hl, bc
+ ld a, [hl]
+ call $188e
+ jr z, .asm_542d
+ call $1875
+ jr c, .asm_5430
+
+.asm_542d
+ call $5556
+
+.asm_5430
+ ld hl, $d4cf
+ ld a, [hConnectionStripLength]
+ cp [hl]
+ jr z, .asm_543f
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $2
+ ret
+
+.asm_543f
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $6
+ ret
+; 5446
+
+Function5446: ; 5446
+ call $4690
+ call $463f
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $4
+ ld hl, $d4cf
+ ld a, [hConnectionStripLength]
+ cp [hl]
+ jr z, .asm_5461
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $2
+ ret
+
+.asm_5461
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $6
+ ret
+; 5468
+
+
+Function5468: ; 5468
+ call $4690
+ call $463f
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $1
+ ld hl, $d4cf
+ ld a, [hConnectionStripLength]
+ cp [hl]
+ jr z, .asm_5483
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $2
+ ret
+
+.asm_5483
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $6
+ ret
+; 548a
+
+
+Function548a: ; 548a
+ call $4690
+ ld hl, $001f
+ add hl, bc
+ ld [hl], $0
+ ld hl, $0005
+ add hl, bc
+ res 3, [hl]
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $2
+ call $5529
+ ld hl, $d4cf
+ ld a, [hConnectionStripLength]
+ cp [hl]
+ jr z, .asm_54b1
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $8
+ ret
+
+.asm_54b1
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $9
+ ret
+; 54b8
+
+
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -485,11 +485,11 @@
; item (ItemLabelByte)
; quantity (DecimalParam)
- call $77ca
+ call Script_giveitem
call CurItemName
ld de, StringBuffer1
ld a, $1
- call $76c8
+ call Function976c8
ld b, BANK(GiveItemScript)
ld de, GiveItemScript
jp ScriptCall
@@ -535,7 +535,7 @@
.asm_96f98
ld [$d106], a
call GetScriptByte
- call $769e
+ call Unknown_0x9769e
ld a, [de]
ld [$d10c], a
ld hl, $d892
@@ -548,7 +548,7 @@
call CurItemName
ld de, StringBuffer1
ld a, $1
- call $76c8
+ call Function976c8
ld b, BANK(GiveItemScript)
ld de, GiveItemScript
jp ScriptCall
@@ -1021,6 +1021,9 @@
call GetScriptByte
call Unknown_0x971e3
ld c, a
+; 971fa
+
+Function971fa: ; 971fa
push bc
ld a, c
ld a, $1
@@ -1028,7 +1031,7 @@
rst $8
pop bc
push bc
- call $7221
+ call Unknown_0x97221
pop bc
call GetScriptByte
ld l, a
@@ -1058,7 +1061,7 @@
ld a, [$ffe0]
ld c, a
- jp $71fa
+ jp Function971fa
; 0x9722e
Script_faceplayer: ; 0x9722e
@@ -1079,7 +1082,7 @@
ld e, a
ld a, [$ffe0]
ld d, a
- call $728b
+ call Unknown_0x9728b
ret
; 0x97248
@@ -1114,7 +1117,7 @@
add a
ld e, a
ld d, c
- call $728b
+ call Unknown_0x9728b
ret
; 0x97274
@@ -1135,7 +1138,7 @@
add a
add a
ld e, a
- call $728b
+ call Unknown_0x9728b
ret
; 0x9728b
@@ -1161,7 +1164,7 @@
ld hl, $d0ed
bit 6, [hl]
jr nz, .asm_972b5 ; 0x972b0 $3
- call $72bc
+ call Unknown_0x972bc
.asm_972b5
call $1ad2
ret
@@ -1173,7 +1176,7 @@
Unknown_0x972bc: ; 0x972bc
call $217a
- ld hl, $c4a0
+ ld hl, TileMap
ld bc, $0168
.asm_972c5
res 7, [hl]
@@ -1211,7 +1214,7 @@
call $1956
ld a, [$ffaf]
ld b, $0
- call $730b
+ call Unknown_0x9730b
ret
; 0x972ee
@@ -1229,7 +1232,7 @@
call $199f
ld a, [$ffaf]
ld b, $1
- call $730b
+ call Unknown_0x9730b
ld a, $1
ld hl, $5920
rst $8
@@ -1543,9 +1546,7 @@
jr z, .asm_9748e ; 0x97481 $b
ld b, $24
ld de, $4255
- ld a, $25
- ld hl, $7c4f
- rst $8
+ callba Function97c4f
.asm_9748e
jp Script_reloadmap
; 0x97491
@@ -1978,7 +1979,7 @@
and a
ret z
ld c, a
- call $7673
+ call Unknown_0x97673
and a
jr z, .asm_9765f ; 0x9764d $10
ld b, a
@@ -2027,7 +2028,7 @@
; variable_id (SingleByteParam)
call GetScriptByte
- call $769e
+ call Unknown_0x9769e
ld a, [de]
ld [$c2dd], a
ret
@@ -2039,7 +2040,7 @@
; variable_id (SingleByteParam)
call GetScriptByte
- call $769e
+ call Unknown_0x9769e
ld a, [$c2dd]
ld [de], a
ret
@@ -2052,7 +2053,7 @@
; value (SingleByteParam)
call GetScriptByte
- call $769e
+ call Unknown_0x9769e
call GetScriptByte
ld [de], a
ret
@@ -2096,9 +2097,12 @@
Unknown_976c0: ; 0x976c0
call GetScriptByte
cp $3
- jr c, .asm_976c8 ; 0x976c5 $1
+ jr c, .asm_976c8
xor a
.asm_976c8
+; 976c8
+
+Function976c8: ; 976c8
ld hl, StringBuffer3
ld bc, 19
call AddNTimes
@@ -2197,8 +2201,8 @@
; account (SingleByteParam)
; memory (SingleByteParam)
- call $7771
- call $7861
+ call Unknown_0x97771
+ call Unknown_0x97861
ld hl, StringBuffer1
ld bc, $4306
call $3198
@@ -2211,7 +2215,7 @@
; parameters:
; memory (SingleByteParam)
- call $7771
+ call Unknown_0x97771
ld hl, StringBuffer1
ld de, $d855
ld bc, $4206
@@ -2225,7 +2229,7 @@
; parameters:
; memory (SingleByteParam)
- call $7771
+ call Unknown_0x97771
ld de, $c2dd
ld hl, StringBuffer1
ld bc, $4103
@@ -2372,8 +2376,8 @@
; account (SingleByteParam)
; money (MoneyByteParam)
- call $7861
- call $786d
+ call Unknown_0x97861
+ call Unknown_0x9786d
ld a, $5
ld hl, $5fd7
rst $8
@@ -2386,8 +2390,8 @@
; account (SingleByteParam)
; money (MoneyByteParam)
- call $7861
- call $786d
+ call Unknown_0x97861
+ call Unknown_0x9786d
ld a, $5
ld hl, $5ffa
rst $8
@@ -2400,8 +2404,8 @@
; account (SingleByteParam)
; money (MoneyByteParam)
- call $7861
- call $786d
+ call Unknown_0x97861
+ call Unknown_0x9786d
ld a, $5
ld hl, $600b
rst $8
@@ -2451,7 +2455,7 @@
; parameters:
; coins (CoinByteParam)
- call $78a0
+ call Function978a0
ld a, $5
ld hl, $606f
rst $8
@@ -2463,7 +2467,7 @@
; parameters:
; coins (CoinByteParam)
- call $78a0
+ call Function978a0
ld a, $5
ld hl, $608f
rst $8
@@ -2475,11 +2479,14 @@
; parameters:
; coins (CoinByteParam)
- call $78a0
+ call Function978a0
ld a, $5
ld hl, $60a1
rst $8
- jr Unknown_9784f ; 0x9789e $af
+ jr Unknown_9784f
+; 978a0
+
+Function978a0: ; 978a0
call GetScriptByte
ld [$ffc4], a
call GetScriptByte
@@ -2718,7 +2725,7 @@
call GetScriptByte
ld d, a
ld b, $1
- call $79ee
+ call Unknown_0x979ee
ret
; 0x979c9
@@ -2732,7 +2739,7 @@
call GetScriptByte
ld d, a
ld b, $0
- call $79ee
+ call Unknown_0x979ee
ret
; 0x979d7
@@ -2746,7 +2753,7 @@
call GetScriptByte
ld d, a
ld b, $2
- call $79ee
+ call Unknown_0x979ee
ld a, c
and a
jr z, .asm_979ea ; 0x979e6 $2
@@ -2897,9 +2904,7 @@
ld d, a
ld a, [ScriptBank]
ld b, a
- ld a, $25
- ld hl, $7e31
- rst $8
+ callba Function97e31
ret
; 0x97a9e
@@ -2912,9 +2917,7 @@
ld [$c2dd], a
call GetScriptByte
ld b, a
- ld a, $25
- ld hl, $7e5c
- rst $8
+ callba Function97e5c
ret c
ld a, $1
ld [$c2dd], a
@@ -2976,16 +2979,12 @@
call $224a
ret nc
- ld a, $25
- ld hl, $66d0
- rst $8
+ callba Function966d0
ret
; 0x97b01
Unknown_0x97b01: ; 0x97b01
- ld a, $25
- ld hl, $66d0
- rst $8
+ callba Function966d0
ret
; 0x97b08
@@ -3005,7 +3004,7 @@
Script_reloadandreturn: ; 0x97b16
; script command 0x92
- call $7b08
+ call Script_newloadmap
jp Script_end
; 0x97b1c
@@ -3203,8 +3202,9 @@
ld hl, $6455
rst $8
; fallthrough
+
DisplayCredits:
- call $7bc0
+ call Script_resetfuncs
ld a, $3
call $261b
call StopScript
--- /dev/null
+++ b/engine/text.asm
@@ -1,0 +1,1229 @@
+ClearBox: ; fb6
+; Fill a c*b box at hl with blank tiles.
+
+ ld a, " "
+.y
+ push bc
+ push hl
+.x
+ ld [hli], a
+ dec c
+ jr nz, .x
+ pop hl
+ ld bc, 20 ; screen width
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .y
+ ret
+; fc8
+
+
+ClearTileMap: ; fc8
+; Fill TileMap with blank tiles.
+
+ ld hl, TileMap
+ ld a, " "
+ ld bc, 360 ; screen dimensions 20*18
+ call ByteFill
+
+; We aren't done if the LCD is on.
+ ld a, [rLCDC]
+ bit 7, a
+ ret z
+ jp WaitBGMap
+; fdb
+
+
+Functionfdb: ; fdb
+ ld a, $7
+ ld hl, AttrMap
+ ld bc, $0168
+ call ByteFill
+ jr ClearTileMap
+; fe8
+
+
+
+TextBox: ; fe8
+; Draw a text box width c height b at hl
+; Dimensions do not include the border.
+ push bc
+ push hl
+ call TextBoxBorder
+ pop hl
+ pop bc
+ jr TextBoxPalette
+; ff1
+
+
+TextBoxBorder: ; ff1
+
+; Top
+ push hl
+ ld a, "┌"
+ ld [hli], a
+ inc a ; "─"
+ call NPlaceChar
+ inc a ; "┐"
+ ld [hl], a
+
+; Middle
+ pop hl
+ ld de, 20 ; screen width
+ add hl, de
+.PlaceRow
+ push hl
+ ld a, "│"
+ ld [hli], a
+ ld a, " "
+ call NPlaceChar
+ ld [hl], "│"
+ pop hl
+ ld de, 20 ; screen width
+ add hl, de
+ dec b
+ jr nz, .PlaceRow
+
+; Bottom
+ ld a, "└"
+ ld [hli], a
+ ld a, "─"
+ call NPlaceChar
+ ld [hl], "┘"
+
+ ret
+; 101e
+
+
+NPlaceChar: ; 101e
+; Place char a c times
+ ld d,c
+.loop
+ ld [hli],a
+ dec d
+ jr nz, .loop
+ ret
+; 1024
+
+
+TextBoxPalette: ; 1024
+; Fill text box width c height b at hl with pal 7
+ ld de, AttrMap - TileMap
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ ld a, 7 ; pal
+.gotoy
+ push bc
+ push hl
+.gotox
+ ld [hli], a
+ dec c
+ jr nz, .gotox
+ pop hl
+ ld de, 20 ; screen width
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .gotoy
+ ret
+; 103e
+
+
+SpeechTextBox: ; 103e
+; Standard textbox.
+ hlcoord 0, 12
+ ld b, 4 ; height
+ ld c, 18 ; screen width - 2 (border)
+ jp TextBox
+; 1048
+
+UnknownText_0x1048: ; 1048
+ db $0, "ゲームフりーク!", $57
+; 1052
+
+Function1052: ; 1052
+ ld hl, .text_1056
+ ret
+.text_1056
+ db "@"
+; 1057
+
+
+PrintText: ; 1057
+ call Function106c
+ push hl
+ hlcoord 1, 14
+ ld bc, 18 + 3<<8
+ call ClearBox
+ pop hl
+
+PrintTextBoxText: ; 1065
+ bccoord 1, 14
+ call Function13e5
+ ret
+; 106c
+
+
+Function106c: ; 106c
+ push hl
+ call SpeechTextBox
+ call Function1ad2
+ call Function321c
+ pop hl
+ ret
+; 1078
+
+
+
+PlaceString: ; 1078
+ push hl
+
+PlaceNextChar: ; 1079
+ ld a, [de]
+ cp "@"
+ jr nz, CheckDict
+ ld b, h
+ ld c, l
+ pop hl
+ ret
+ pop de
+
+NextChar: ; 1083
+ inc de
+ jp PlaceNextChar
+
+CheckDict: ; 1087
+ cp $15
+ jp z, Function117b
+ cp $4f
+ jp z, Char4F
+ cp $4e
+ jp z, Function12a7
+ cp $16
+ jp z, Function12b9
+ and a
+ jp z, Function1383
+ cp $4c
+ jp z, $1337
+ cp $4b
+ jp z, Char4B
+ cp $51 ; Player name
+ jp z, Function12f2
+ cp $49
+ jp z, Function1186
+ cp $52 ; Mother name
+ jp z, Function118d
+ cp $53
+ jp z, Function1194
+ cp $35
+ jp z, Function11e8
+ cp $36
+ jp z, Function11ef
+ cp $37
+ jp z, Function11f6
+ cp $38
+ jp z, Function119b
+ cp $39
+ jp z, Function11a2
+ cp $54
+ jp z, Function11c5
+ cp $5b
+ jp z, Function11b7
+ cp $5e
+ jp z, Function11be
+ cp $5c
+ jp z, Function11b0
+ cp $5d
+ jp z, Function11a9
+ cp $23
+ jp z, Function11cc
+ cp $22
+ jp z, Function12b0
+ cp $55
+ jp z, Char55
+ cp $56
+ jp z, Function11d3
+ cp $57
+ jp z, $137c
+ cp $58
+ jp z, Function135a
+ cp $4a
+ jp z, Function11da
+ cp $24
+ jp z, Function11e1
+ cp $25
+ jp z, NextChar
+ cp $1f
+ jr nz, .asm_1122
+ ld a, $7f
+.asm_1122
+ cp $5f
+ jp z, Char5F
+ cp $59
+ jp z, Function11fd
+ cp $5a
+ jp z, Char5D
+ cp $3f
+ jp z, $121b
+ cp $14
+ jp z, $1252
+ cp $e4
+ jr z, .asm_1174 ; 0x113d $35
+ cp $e5
+ jr z, .asm_1174 ; 0x1141 $31
+ jr .asm_114c ; 0x1143 $7
+ ld b, a
+ call Function13c6
+ jp NextChar
+.asm_114c
+ cp $60
+ jr nc, .asm_1174 ; 0x114e $24
+ cp $40
+ jr nc, .asm_1165 ; 0x1152 $11
+ cp $20
+ jr nc, .asm_115c ; 0x1156 $4
+ add $80
+ jr .asm_115e ; 0x115a $2
+.asm_115c
+ add $90
+.asm_115e
+ ld b, $e5
+ call Function13c6
+ jr .asm_1174 ; 0x1163 $f
+.asm_1165
+ cp $44
+ jr nc, .asm_116d ; 0x1167 $4
+ add $59
+ jr .asm_116f ; 0x116b $2
+.asm_116d
+ add $86
+.asm_116f
+ ld b, $e4
+ call Function13c6
+.asm_1174
+ ld [hli], a
+ call PrintLetterDelay
+ jp NextChar
+; 0x117b
+
+
+Function117b: ; 117b
+ ld c, l
+ ld b, h
+ ld a, $5f
+ ld hl, $7036
+ rst FarCall
+ jp PlaceNextChar
+; 1186
+
+Function1186: ; 1186
+ push de
+ ld de, MomsName
+ jp $126a
+; 118d
+
+Function118d: ; 118d
+ push de
+ ld de, PlayerName
+ jp $126a
+; 1194
+
+Function1194: ; 1194
+ push de
+ ld de, RivalName
+ jp $126a
+; 119b
+
+Function119b: ; 119b
+ push de
+ ld de, RedsName
+ jp $126a
+; 11a2
+
+Function11a2: ; 11a2
+ push de
+ ld de, GreensName
+ jp $126a
+; 11a9
+
+Function11a9: ; 11a9
+ push de
+ ld de, Char5DText
+ jp $126a
+; 11b0
+
+Function11b0: ; 11b0
+ push de
+ ld de, Char5CText
+ jp $126a
+; 11b7
+
+Function11b7: ; 11b7
+ push de
+ ld de, Char5BText
+ jp $126a
+; 11be
+
+Function11be: ; 11be
+ push de
+ ld de, Char5EText
+ jp $126a
+; 11c5
+
+Function11c5: ; 11c5
+ push de
+ ld de, Char54Text
+ jp $126a
+; 11cc
+
+Function11cc: ; 11cc
+ push de
+ ld de, Char23Text
+ jp $126a
+; 11d3
+
+Function11d3: ; 11d3
+ push de
+ ld de, $1292
+ jp $126a
+; 11da
+
+Function11da: ; 11da
+ push de
+ ld de, Char4AText
+ jp $126a
+; 11e1
+
+Function11e1: ; 11e1
+ push de
+ ld de, Char24Text
+ jp $126a
+; 11e8
+
+Function11e8: ; 11e8
+ push de
+ ld de, Char37Text
+ jp $126a
+; 11ef
+
+Function11ef: ; 11ef
+ push de
+ ld de, Char37Text
+ jp $126a
+; 11f6
+
+Function11f6: ; 11f6
+ push de
+ ld de, Char37Text
+ jp $126a
+; 11fd
+
+
+Function11fd: ; 11fd
+ ld a, [hBattleTurn]
+ xor $1
+ jr Function1205
+; 1203
+
+Char5D: ; 1203
+ ld a, [hBattleTurn]
+; 1205
+
+Function1205: ; 1205
+ push de
+ and a
+ jr nz, .asm_120e ; 0x1207 $5
+ ld de, BattleMonNick
+ jr .asm_126a ; 0x120c $5c
+.asm_120e
+ ld de, Char5AText ; Enemy
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, EnemyMonNick
+ jr .asm_126a ; 0x1219 $4f
+ push de
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .linkbattle
+ ld a, [TrainerClass]
+ cp $9
+ jr z, .asm_1248 ; 0x1227 $1f
+ cp $2a
+ jr z, .asm_1248 ; 0x122b $1b
+ ld de, $c656
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, String12a2
+ call PlaceString
+ push bc
+ ld hl, $5939
+ ld a, $e
+ rst FarCall
+ pop hl
+ ld de, StringBuffer1
+ jr .asm_126a ; 0x1246 $22
+.asm_1248
+ ld de, RivalName
+ jr .asm_126a ; 0x124b $1d
+.linkbattle
+ ld de, $c656
+ jr .asm_126a ; 0x1250 $18
+ push de
+ ld de, PlayerName
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld a, [PlayerGender]
+ bit 0, a
+ ld de, String12a5
+ jr z, .asm_126a ; 0x1263 $5
+ ld de, String12a6
+ jr .asm_126a ; 0x1268 $0
+.asm_126a
+ call PlaceString
+ ld h, b
+ ld l, c
+ pop de
+ jp NextChar
+; 0x1273
+
+Char5CText: ; 1273
+ db "TM@"
+Char5DText: ; 1276
+ db "TRAINER@"
+Char5BText: ; 127e
+ db "PC@"
+Char5EText: ; 1281
+ db "ROCKET@"
+Char54Text: ; 1288
+ db "POKé@"
+Char23Text: ; 128d
+ db "こうげき@"
+Char56Text:; 1292
+ db "……@"
+Char5AText: ; 1295
+ db "Enemy @"
+Char4AText: ; 129c
+ db $e1, $e2, "@" ; PK MN
+Char24Text: ; 129f
+ db $70, $71, "@" ; PO KE
+String12a2: ; 12a2
+ db " @"
+Char35Text:
+Char36Text:
+Char37Text: ; 12a4
+ db "@"
+String12a5: ; 12a5
+ db "@"
+String12a6: ; 12a6
+ db "@"
+; 12a7
+
+Function12a7: ; 12a7
+ pop hl
+ ld bc, $0028
+ add hl, bc
+ push hl
+ jp NextChar
+; 12b0
+
+Function12b0: ; 12b0
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ push hl
+ jp NextChar
+; 12b9
+
+Function12b9: ; 12b9
+ pop hl
+ push de
+ ld bc, $3b60
+ add hl, bc
+ ld de, $ffec
+ ld c, $1
+.asm_12c4
+ ld a, h
+ and a
+ jr nz, .asm_12cd
+ ld a, l
+ cp $14
+ jr c, .asm_12d1
+
+.asm_12cd
+ add hl, de
+ inc c
+ jr .asm_12c4
+
+.asm_12d1
+ ld hl, TileMap
+ ld de, $0014
+ ld a, c
+.asm_12d8
+ and a
+ jr z, .asm_12df
+ add hl, de
+ dec a
+ jr .asm_12d8
+
+.asm_12df
+ pop de
+ inc de
+ ld a, [de]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ push hl
+ jp NextChar
+; 12ea
+
+
+Char4F: ; 12ea
+ pop hl
+ hlcoord 1, 16
+ push hl
+ jp NextChar
+; 0x12f2
+
+Function12f2: ; 12f2
+ push de
+ ld a, [InLinkBattle]
+ cp $3
+ jr z, .asm_1301
+ cp $4
+ jr z, .asm_1301
+ call Function13c7
+
+.asm_1301
+ call Function13b6
+ call Functionaaf
+ ld hl, $c5b9
+ ld bc, $0312
+ call ClearBox
+ call Function13cd
+ ld c, $14
+ call DelayFrames
+ ld hl, $c5b9
+ pop de
+ jp NextChar
+; 131f
+
+
+Char4B: ; 131f
+ ld a, [InLinkBattle]
+ or a
+ jr nz, .asm_1328
+ call Function13c7
+
+.asm_1328
+ call Function13b6
+
+ push de
+ call Functionaaf
+ pop de
+
+ ld a, [InLinkBattle]
+ or a
+ call z, Function13cd
+
+ push de
+ call Function138c
+ call Function138c
+ hlcoord 1, 16
+ pop de
+ jp NextChar
+; 1345
+
+
+Char55: ; 1345
+ push de
+ ld de, Text_1354
+ ld b, h
+ ld c, l
+ call PlaceString
+ ld h, b
+ ld l, c
+ pop de
+ jp NextChar
+; 1354
+
+Text_1354: ; 1354
+ db $4b, "@"
+; 1356
+
+
+Char5F: ; 1356
+; ends a Pokédex entry
+ ld [hl], "."
+ pop hl
+ ret
+; 135a
+
+Function135a: ; 135a
+ ld a, [InLinkBattle]
+ cp $3
+ jr z, .asm_1368
+ cp $4
+ jr z, .asm_1368
+ call Function13c7
+
+.asm_1368
+ call Function13b6
+ call Functionaaf
+ ld a, [InLinkBattle]
+ cp $3
+ jr z, .asm_137c
+ cp $4
+ jr z, .asm_137c
+ call Function13cd
+
+.asm_137c
+ pop hl
+ ld de, .string_1382
+ dec de
+ ret
+
+.string_1382
+ db "@"
+; 1383
+
+Function1383: ; 1383
+ ld a, $e6
+ ld [hli], a
+ call PrintLetterDelay
+ jp NextChar
+; 138c
+
+Function138c: ; 138c
+ ld hl, $c5b9
+ ld de, $c5a5
+ ld a, $3
+.asm_1394
+ push af
+ ld c, $12
+.asm_1397
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_1397
+ inc de
+ inc de
+ inc hl
+ inc hl
+ pop af
+ dec a
+ jr nz, .asm_1394
+ ld hl, $c5e1
+ ld a, $7f
+ ld bc, $0012
+ call ByteFill
+ ld c, $5
+ call DelayFrames
+ ret
+; 13b6
+
+Function13b6: ; 13b6
+ push bc
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call WaitBGMap
+ pop af
+ ld [hOAMUpdate], a
+ pop bc
+ ret
+; 13c6
+
+Function13c6: ; 13c6
+ ret
+; 13c7
+
+Function13c7: ; 13c7
+ ld a, $ee
+ ld [$c606], a
+ ret
+; 13cd
+
+Function13cd: ; 13cd
+ ld a, [$c605]
+ ld [$c606], a
+ ret
+; 13d4
+
+Function13d4: ; 13d4
+ ld b, a
+ ld a, [hROMBank]
+ push af
+ ld a, b
+ rst Bankswitch
+
+ call PlaceString
+ pop af
+ rst Bankswitch
+
+ ret
+; 13e0
+
+Function13e0: ; 13e0
+ ld hl, $13e4
+ ret
+
+.string_13e4
+ db "@"
+; 13e5
+
+
+Function13e5: ; 13e5
+ ld a, [$cfcf]
+ push af
+ set 1, a
+ ld [$cfcf], a
+ call Function13f6
+ pop af
+ ld [$cfcf], a
+ ret
+; 13f6
+
+Function13f6: ; 13f6
+.asm_13f6
+ ld a, [hli]
+ cp "@"
+ ret z
+ call Function13ff
+ jr .asm_13f6
+; 13ff
+
+Function13ff: ; 13ff
+ push hl
+ push bc
+ ld c, a
+ ld b, 0
+ ld hl, TextCommands
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ pop bc
+ pop hl
+
+; jp de
+ push de
+ ret
+; 1410
+
+TextCommands: ; 1410
+ dw Text_00
+ dw Text_01
+ dw Text_02
+ dw Text_03
+ dw Text_04
+ dw Text_05
+ dw Text_06
+ dw Text_07
+ dw Text_08
+ dw Text_09
+ dw Text_0A
+ dw Text_PlaySound ; $0b
+ dw Text_0C
+ dw Text_0D
+ dw Text_PlaySound ; $0e
+ dw Text_PlaySound ; $0f
+ dw Text_PlaySound ; $10
+ dw Text_PlaySound ; $11
+ dw Text_PlaySound ; $12
+ dw Text_PlaySound ; $13
+ dw Text_14
+ dw Text_15
+ dw Text_16
+; 143e
+
+Text_00: ; 143e
+; TX
+; write text until "@"
+; [$00]["...@"]
+
+ ld d, h
+ ld e, l
+ ld h, b
+ ld l, c
+ call PlaceString
+ ld h, d
+ ld l, e
+ inc hl
+ ret
+; 1449
+
+Text_01: ; 1449
+; TX_RAM
+; write text from a ram address
+; little endian
+; [$01][addr]
+
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld h, b
+ ld l, c
+ call PlaceString
+ pop hl
+ ret
+; 1455
+
+Text_16: ; 1455
+; TX_FAR
+; write text from a different bank
+; little endian
+; [$16][addr][bank]
+
+ ld a, [hROMBank]
+ push af
+
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+
+ push hl
+ ld h, d
+ ld l, e
+ call Function13f6
+ pop hl
+
+ pop af
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+ ret
+; 1470
+
+Text_02: ; 1470
+; TX_NUM
+; write bcdnumber from address, typically ram
+; little endian
+; [$02][addr][flags]
+; flags: see PrintBCDNumber
+
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ push hl
+ ld h, b
+ ld l, c
+ ld c, a
+ call PrintBCDNumber
+ ld b, h
+ ld c, l
+ pop hl
+ ret
+; 1480
+
+Text_03: ; 1480
+; TX_MOVE
+; move to a new tile
+; little endian
+; [$03][tileaddr]
+
+ ld a, [hli]
+ ld [$d0e6], a
+ ld c, a
+ ld a, [hli]
+ ld [$d0e7], a
+ ld b, a
+ ret
+; 148b
+
+Text_04: ; 148b
+; TX_BOX
+; draw a box
+; little endian
+; [$04][tileaddr][height][width]
+
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ push hl
+ ld h, d
+ ld l, e
+ call TextBox
+ pop hl
+ ret
+; 149b
+
+Text_05: ; 149b
+; TX_LOW
+; write text at (1,16)
+; [$05]
+
+ bccoord 1, 16
+ ret
+; 149f
+
+Text_06:: ; 149f
+; TX_WAITBUTTON
+; wait for button press
+; show arrow
+; [06]
+
+ ld a, [InLinkBattle]
+ cp $3
+ jp z, Text_0D
+ cp $4
+ jp z, Text_0D
+ push hl
+ call Function13c7
+ push bc
+ call Functionaaf
+ pop bc
+ call Function13cd
+ pop hl
+ ret
+; 14ba
+
+Text_07: ; 14ba
+ push hl
+ call Function13cd
+ call Function138c
+ call Function138c
+ pop hl
+ bccoord 1, 16
+ ret
+; 14c9
+
+Text_08: ; 14c9
+; TX_ASM
+
+; rom only?
+ bit 7, h
+ jr nz, .asm_14ce
+ jp [hl]
+
+.asm_14ce
+ ld a, "@"
+ ld [hl], a
+ ret
+; 14d2
+
+Text_09: ; 14d2
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ push hl
+ ld h, b
+ ld l, c
+ ld b, a
+ and $f
+ ld c, a
+ ld a, b
+ and $f0
+ swap a
+ set 6, a
+ ld b, a
+ call PrintNum
+ ld b, h
+ ld c, l
+ pop hl
+ ret
+; 14ed
+
+Text_0A: ; 14ed
+ push hl
+ push bc
+ call GetJoypadPublic
+ ld a, [hJoyDown]
+ and BUTTON_A | BUTTON_B
+ jr nz, .asm_14fd
+ ld c, 30
+ call DelayFrames
+
+.asm_14fd
+ pop bc
+ pop hl
+ ret
+; 1500
+
+Text_PlaySound:: ; 1500
+; chars:
+; $0b, $0e, $0f, $10, $11, $12, $13
+; see TextSFX
+
+ push bc
+ dec hl
+ ld a, [hli]
+ ld b, a
+ push hl
+ ld hl, TextSFX
+.asm_1508
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_151f
+ cp b
+ jr z, .asm_1514
+ inc hl
+ inc hl
+ jr .asm_1508
+
+.asm_1514
+ push de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call StartSFX
+ call WaitSFX
+ pop de
+
+.asm_151f
+ pop hl
+ pop bc
+ ret
+; 1522
+
+Function1522: ; 1522
+ push de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function37ce
+ pop de
+ pop hl
+ pop bc
+ ret
+; 152d
+
+TextSFX: ; 152d
+ dbw $0b, SFX_DEX_FANFARE_50_79
+ dbw $12, SFX_FANFARE
+ dbw $0e, SFX_DEX_FANFARE_20_49
+ dbw $0f, SFX_ITEM
+ dbw $10, SFX_CAUGHT_MON
+ dbw $11, SFX_DEX_FANFARE_80_109
+ dbw $13, SFX_SLOT_MACHINE_START
+ db $ff ; end
+; 1543
+
+Text_0C: ; 1543
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld h, b
+ ld l, c
+.asm_1548
+ push de
+ ld a, "…"
+ ld [hli], a
+ call GetJoypadPublic
+ ld a, [hJoyDown]
+ and BUTTON_A | BUTTON_B
+ jr nz, .asm_155a
+ ld c, 10
+ call DelayFrames
+.asm_155a
+ pop de
+ dec d
+ jr nz, .asm_1548
+ ld b, h
+ ld c, l
+ pop hl
+ ret
+; 1562
+
+Text_0D: ; 1562
+; wait for key down
+; display arrow
+ push hl
+ push bc
+ call Functionaaf
+ pop bc
+ pop hl
+ ret
+; 156a
+
+Text_14: ; 156a
+; TX_PREDEF
+; [$14][id]
+
+ ld a, [hli]
+ push hl
+ ld e, a
+ ld d, 0
+ ld hl, $4000
+ add hl, de
+ add hl, de
+ ld a, $9
+ call GetFarHalfword
+ ld d, h
+ ld e, l
+ ld h, b
+ ld l, c
+ call PlaceString
+ pop hl
+ ret
+; 1582
+
+Text_15: ; 1582
+; TX_DAY
+
+ call GetWeekday
+ push hl
+ push bc
+ ld c, a
+ ld b, 0
+ ld hl, .Days
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, .Day
+ call PlaceString
+ pop hl
+ ret
+; 15a2
+
+.Days ; 15a2
+ dw .Sun
+ dw .Mon
+ dw .Tues
+ dw .Wednes
+ dw .Thurs
+ dw .Fri
+ dw .Satur
+
+.Sun db "SUN@"
+.Mon db "MON@"
+.Tues db "TUES@"
+.Wednes db "WEDNES@"
+.Thurs db "THURS@"
+.Fri db "FRI@"
+.Satur db "SATUR@"
+.Day db "DAY@"
+; 15d8
+
--- a/engine/vblank.asm
+++ b/engine/vblank.asm
@@ -71,31 +71,31 @@
; advance rng
ld a, [rDIV]
ld b, a
- ld a, [$ffe1]
+ ld a, [hRandomAdd]
adc b
- ld [$ffe1], a
+ ld [hRandomAdd], a
ld a, [rDIV]
ld b, a
- ld a, [$ffe2]
+ ld a, [hRandomSub]
sbc b
- ld [$ffe2], a
+ ld [hRandomSub], a
; save bank
- ld a, [$ff9d] ; current bank
+ ld a, [hROMBank] ; current bank
ld [$ff8a], a
; scroll x
- ld a, [$ffcf]
+ ld a, [hSCX]
ld [rSCX], a
; scroll y
- ld a, [$ffd0]
+ ld a, [hSCY]
ld [rSCY], a
; window y
- ld a, [$ffd2]
+ ld a, [hWY]
ld [rWY], a
; window x + 7
- ld a, [$ffd1]
+ ld a, [hWX]
ld [rWX], a
; some time management is in order
@@ -123,7 +123,7 @@
.doneframeaction
; oam update off?
- ld a, [$ffd8]
+ ld a, [hOAMUpdate]
and a
jr nz, .vblankoccurred
@@ -146,12 +146,12 @@
xor a
ld [VBlankOccurred], a
-; dec $cfb1 until 0
- ld a, [$cfb1]
+; dec OverworldDelay until 0
+ ld a, [OverworldDelay]
and a
jr z, .textdelay
dec a
- ld [$cfb1], a
+ ld [OverworldDelay], a
.textdelay
; dec text delay counter until 0
@@ -172,7 +172,7 @@
rst Bankswitch ; restore bank
;
- ld a, [$ff98]
+ ld a, [hSeconds]
ld [$ffe3], a
ret
@@ -183,7 +183,7 @@
; sound only
; save bank
- ld a, [$ff9d]
+ ld a, [hROMBank]
ld [$ff8a], a
; update sound
@@ -211,15 +211,15 @@
; sound / lcd stat
; save bank
- ld a, [$ff9d]
+ ld a, [hROMBank]
ld [$ff8a], a
; scroll x
- ld a, [$ffcf]
+ ld a, [hSCX]
ld [rSCX], a
; scroll y
- ld a, [$ffd0]
+ ld a, [hSCY]
ld [rSCY], a
; time-sensitive fns
@@ -291,7 +291,7 @@
; update pals for either dmg or cgb
; check cgb
- ld a, [$ffe6]
+ ld a, [hCGB]
and a
jp nz, UpdateCGBPals
@@ -319,18 +319,18 @@
; sound / lcd stat
; save bank
- ld a, [$ff9d]
+ ld a, [hROMBank]
ld [$ff8a], a
; scroll x
- ld a, [$ffcf]
+ ld a, [hSCX]
ld [rSCX], a
; scroll y
- ld a, [$ffd0]
+ ld a, [hSCY]
ld [rSCY], a
; any pals to update?
- ld a, [$ffe5]
+ ld a, [hCGBPalUpdate]
and a
call nz, ForceUpdateCGBPals
jr c, .vblankoccurred
@@ -404,7 +404,7 @@
; sound
; save bank
- ld a, [$ff9d]
+ ld a, [hROMBank]
ld [$ff8a], a
call UpdateBGMap
@@ -451,11 +451,11 @@
;
; save bank
- ld a, [$ff9d]
+ ld a, [hROMBank]
ld [$ff8a], a
; scroll x
- ld a, [$ffcf]
+ ld a, [hSCX]
ld [rSCX], a
; if we can update pals, skip this part
@@ -509,7 +509,7 @@
; sound
; save bank
- ld a, [$ff9d]
+ ld a, [hROMBank]
ld [$ff8a], a
; inc frame counter
--- a/extras/chars.py
+++ b/extras/chars.py
@@ -270,6 +270,7 @@
0xE1: "ゅ",
0xE2: "ょ",
0xE3: "ー",
+ 0xE9: "ァ",
})
#some of the japanese characters can probably fit into the english table
--- a/extras/crystal.py
+++ b/extras/crystal.py
@@ -1993,7 +1993,7 @@
0x45: "accelerate_last",
0x46: ["step_sleep", ["duration", DecimalParam]],
0x47: "step_end",
- 0x49: "hide_person",
+ 0x49: "remove_person",
# do these next two have any params ??
0x4C: "teleport_from",
--- a/extras/sym.py
+++ b/extras/sym.py
@@ -1,47 +1,89 @@
-# -*- coding: utf-8 -*-
+# coding: utf-8
+import os
+import sys
import json
-# from crystal import load_rom
-# from gbz80disasm import load_labels
-
def make_sym_from_json(filename = '../pokecrystal.sym', j = 'labels.json'):
- # todo: delete and remake labels.json at runtime
+ output = ''
+ labels = json.load(open(j))
+ for label in labels:
+ output += '{0:x}:{1:x} {2}\n'.format(label['bank'], label['address'], label['label'])
with open(filename, 'w') as sym:
- for label in json.load(open(j)):
- sym.write('{0:x}:{1:x} {2}\n'.format(label['bank'], label['address']%0x4000 + (0x4000 if label['bank'] else 0), label['label']))
+ sym.write(output)
-def make_sym_from_mapfile(filename = '../pokecrystal.sym', mapfile = '../mapfile.txt'):
+def make_json_from_mapfile(filename = 'labels.json', mapfile = '../pokecrystal.map'):
+ output = []
+ labels = filter_wram_addresses(read_mapfile(mapfile))
+ with open(filename, 'w') as out:
+ out.write(json.dumps(labels))
+
+
+def read_mapfile(filename = '../pokecrystal.map'):
+ """
+ Scrape label addresses from an rgbds mapfile.
+ """
+
+ labels = []
+
+ with open(filename,'r') as map:
+ lines = map.readlines()
+
+ for line in lines:
+ # bank #
+ if 'Bank #' in line:
+ cur_bank = int(line.lstrip('Bank #').strip(':\n').strip(' (HOME)'))
+
+ # label definition
+ elif '=' in line:
+ address, label = line.split('=')
+ address = int(address.lstrip().replace('$','0x'), 16)
+ label = label.strip()
+
+ # rgbds doesn't support ram banks yet
+ bank = cur_bank
+ offset = address
+ if 0x8000 <= address < 0xa000:
+ bank = 0
+ elif 0xa000 <= address < 0xc000:
+ bank = 0
+ elif 0xc000 <= address < 0xd000:
+ bank = 0
+ elif 0xd000 <= address < 0xe000:
+ bank = 0
+ else:
+ offset += (bank * 0x4000 - 0x4000) if bank > 0 else 0
+
+ labels += [{
+ 'label': label,
+ 'bank': bank,
+ 'address': offset,
+ 'offset': offset,
+ 'local_address': address,
+ }]
+
+ return labels
+
+def filter_wram_addresses(labels):
+ filtered_labels = []
+ for label in labels:
+ if label['local_address'] < 0x8000:
+ filtered_labels += [label]
+ return filtered_labels
+
+
+def make_sym_from_mapfile(filename = '../pokecrystal.sym'):
# todo: sort label definitions by address
-
+
output = ''
- # get label definitions
- with open(mapfile,'r') as map:
- lines = map.readlines()
- for line in lines:
- # bank #
- if 'Bank #' in line:
- cur_bank = int(line.lstrip('Bank #').strip(':\n').strip(' (HOME)'))
-
- # label definition
- elif '=' in line:
- thing = line.split('=')
- spacing = ' ' * 11 # arbitrary
- addr = int(thing[0].lstrip(spacing)[1:5],16)
-
- # rgbds doesn't support wram banks yet,
- # so this hack is applied instead
- if addr > 0xbfff: # 0xc000+ (wram only)
- cur_bank = 0
- if addr > 0xcfff: # 0xd000+ (wram only)
- cur_bank = 1
-
- # convert to sym format (bank:addr label)
- label = thing[1].strip('\n')
- output += hex(cur_bank)[2:] + ':' + hex(addr)[2:] + ' ' + label + '\n'
-
+ labels = read_mapfile()
+
+ # convert to sym format (bank:addr label)
+ for label in labels:
+ output += '%.2x:%.4x %s\n' % (label['bank'], label['address'], label['label'])
+
# dump contents to symfile
with open(filename, 'w') as sym:
sym.write(output)
@@ -48,7 +90,11 @@
if __name__ == "__main__":
- # default behavior: generate sym file from rgbds mapfile
- try: make_sym_from_mapfile()
- # if no mapfile exists, generate from labels.json
- except: make_sym_from_json()
+ #if os.path.exists('../pokecrystal.sym'):
+ # sys.exit()
+ #elif os.path.exists('../pokecrystal.map'):
+ # make_sym_from_mapfile()
+ #elif os.path.exists('labels.json'):
+ # make_sym_from_json()
+ make_json_from_mapfile()
+
binary files /dev/null b/gfx/frames/1.1bpp differ
binary files /dev/null b/gfx/frames/2.1bpp differ
binary files /dev/null b/gfx/frames/3.1bpp differ
binary files /dev/null b/gfx/frames/4.1bpp differ
binary files /dev/null b/gfx/frames/5.1bpp differ
binary files /dev/null b/gfx/frames/6.1bpp differ
binary files /dev/null b/gfx/frames/7.1bpp differ
binary files /dev/null b/gfx/frames/8.1bpp differ
binary files /dev/null b/gfx/frames/9.1bpp differ
binary files /dev/null b/gfx/misc/copyright.2bpp differ
binary files /dev/null b/gfx/misc/johto.bin differ
binary files /dev/null b/gfx/misc/kanto.bin differ
--- a/hram.asm
+++ b/hram.asm
@@ -41,6 +41,11 @@
hLCDStatCustom EQU $ffc6
+hSCX EQU $ffcf
+hSCY EQU $ffd0
+hWX EQU $ffd1
+hWY EQU $ffd2
+
hBGMapMode EQU $ffd4
hBGMapThird EQU $ffd5
hBGMapAddress EQU $ffd6
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -402,7 +402,7 @@
pop hl
ld de, StringBuffer1
- call InitString
+ call InitName
jp $6be2
@@ -466,7 +466,7 @@
ld hl, $b082
ld de, StringBuffer1
- call InitString
+ call InitName
call CloseSRAM
@@ -754,6 +754,7 @@
ld a, [TempBattleMonSpecies]
cp c
ret nz
+
push bc
ld a, [TempBattleMonSpecies]
ld [CurPartySpecies], a
@@ -764,14 +765,13 @@
ld a, $14
ld hl, $4bdd
rst FarCall
-
jr c, .asm_ed66
- ld d, $0
+ ld d, 0
jr nz, .asm_ed39
inc d
-
.asm_ed39
+
push de
ld a, [TempEnemyMonSpecies]
ld [CurPartySpecies], a
@@ -780,28 +780,25 @@
ld a, $14
ld hl, $4bdd
rst FarCall
-
jr c, .asm_ed65
- ld d, $0
+ ld d, 0
jr nz, .asm_ed52
inc d
-
.asm_ed52
+
ld a, d
pop de
cp d
pop bc
ret nz
+
sla b
jr c, .asm_ed62
-
sla b
jr c, .asm_ed62
-
sla b
ret nc
-
.asm_ed62
ld b, $ff
ret
@@ -1657,34 +1654,25 @@
Squirtbottle: ; f73e
- ld a, $14
- ld hl, $4730
- rst FarCall
+ callba _Squirtbottle
ret
; f745
CardKey: ; f745
- ld a, $14
- ld hl, $4779
- rst FarCall
+ callba _CardKey
ret
; f74c
BasementKey: ; f74c
- ld a, $14
- ld hl, $47b4
- rst FarCall
+ callba _BasementKey
ret
; f753
SacredAsh: ; f753
- ld a, $14
- ld hl, $47e6
- rst FarCall
-
+ callba _SacredAsh
ld a, [$d0ec]
cp $1
ret nz
--- a/main.asm
+++ b/main.asm
@@ -20,7 +20,7 @@
SECTION "rst28",ROM0[$28] ; JumpTable
push de
ld e, a
- ld d, 00
+ ld d, 0
add hl, de
add hl, de
ld a, [hli]
@@ -27,7 +27,7 @@
ld h, [hl]
ld l, a
pop de
- jp [hl] ; (actually jp hl)
+ jp [hl]
; rst30 is midst rst28
@@ -38,13 +38,13 @@
jp VBlank
SECTION "lcd",ROM0[$48] ; lcd interrupt
- jp $0552
+ jp Function552
SECTION "timer",ROM0[$50] ; timer interrupt
- jp $3e93
+ jp Function3e93
SECTION "serial",ROM0[$58] ; serial interrupt
- jp $06ef
+ jp Function6ef
SECTION "joypad",ROM0[$60] ; joypad interrupt
jp JoypadInt
@@ -52,13 +52,12 @@
SECTION "romheader",ROM0[$100]
Start:
nop
- jp $016e
+ jp _Start
SECTION "start",ROM0[$150]
-INCBIN "baserom.gbc", $150, $283 - $150
+INCLUDE "engine/init.asm"
-
VBlank: ; 283
INCLUDE "engine/vblank.asm"
@@ -101,45 +100,195 @@
ld a, [VramState]
bit 0, a ; obj update
ret z
-
-; update palettes
- callab TimeOfDayPals
+; 47e
+
+TimeOfDayPals: ; 47e
+ callab _TimeOfDayPals
ret
; 485
-INCBIN "baserom.gbc", $485, $52f - $485
+Function485: ; 485
+ callab UpdateTimePals
+ ret
+; 48c
+Function48c: ; 48c
+ ld a, [TimeOfDayPal]
+ ld b, a
+ ld hl, IncGradGBPalTable_11
+ ld a, l
+ sub b
+ ld l, a
+ jr nc, .asm_499
+ dec h
-IncGradGBPalTable_01: ; 52f
+.asm_499
+ ld a, [hli]
+ ld [rBGP], a
+ ld a, [hli]
+ ld [rOBP0], a
+ ld a, [hli]
+ ld [rOBP1], a
+ ret
+; 4a3
+
+
+Function4a3: ; 4a3
+ ld a, [hCGB]
+ and a
+ jr z, .asm_4af
+ ld hl, IncGradGBPalTable_00
+ ld b, $4
+ jr Function4c7
+
+.asm_4af
+ ld hl, IncGradGBPalTable_08
+ ld b, $4
+ jr Function4c7
+; 4b6
+
+Function4b6: ; 4b6
+ ld a, [hCGB]
+ and a
+ jr z, .asm_4c2
+ ld hl, IncGradGBPalTable_05
+ ld b, $3
+ jr Function4c7
+
+.asm_4c2
+ ld hl, IncGradGBPalTable_13
+ ld b, $3
+; 4c7
+
+Function4c7: ; 4c7
+.asm_4c7
+ push de
+ ld a, [hli]
+ call DmgToCgbBGPals
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ call DmgToCgbObjPals
+ ld c, $8
+ call DelayFrames
+ pop de
+ dec b
+ jr nz, .asm_4c7
+ ret
+; 4dd
+
+Function4dd: ; 4dd
+ ld a, [hCGB]
+ and a
+ jr z, .asm_4e9
+ ld hl, IncGradGBPalTable_04 - 1
+ ld b, $4
+ jr Function501
+
+.asm_4e9
+ ld hl, IncGradGBPalTable_12 - 1
+ ld b, $4
+ jr Function501
+; 4f0
+
+Function4f0: ; 4f0
+ ld a, [hCGB]
+ and a
+ jr z, .asm_4fc
+ ld hl, IncGradGBPalTable_07 - 1
+ ld b, $3
+ jr Function501
+
+.asm_4fc
+ ld hl, IncGradGBPalTable_15 - 1
+ ld b, $3
+ ; fallthrough
+; 501
+
+Function501: ; 501
+ push de
+ ld a, [hld]
+ ld d, a
+ ld a, [hld]
+ ld e, a
+ call DmgToCgbObjPals
+ ld a, [hld]
+ call DmgToCgbBGPals
+ ld c, $8
+ call DelayFrames
+ pop de
+ dec b
+ jr nz, Function501
+ ret
+; 517
+
+
+IncGradGBPalTable_00: ; 517
db %11111111 ; bgp
db %11111111 ; obp1
db %11111111 ; obp2
; and so on...
+IncGradGBPalTable_01: ; 51a
db %11111110
db %11111110
- db %11111000
+ db %11111110
+IncGradGBPalTable_02: ; 51d
+ db %11111001
+ db %11111001
+ db %11111001
+IncGradGBPalTable_03: ; 520
+ db %11100100
+ db %11100100
+ db %11100100
+IncGradGBPalTable_04: ; 523
+ db %11100100
+ db %11100100
+ db %11100100
+IncGradGBPalTable_05: ; 526
+ db %10010000
+ db %10010000
+ db %10010000
+IncGradGBPalTable_06: ; 529
+ db %01000000
+ db %01000000
+ db %01000000
+IncGradGBPalTable_07: ; 52c
+ db %00000000
+ db %00000000
+ db %00000000
+; 52f
+IncGradGBPalTable_08: ; 52f
+ db %11111111
+ db %11111111
+ db %11111111
+IncGradGBPalTable_09: ; 532
+ db %11111110
+ db %11111110
+ db %11111000
+IncGradGBPalTable_10: ; 535
db %11111001
db %11100100
db %11100100
-
+IncGradGBPalTable_11: ; 538
db %11100100
db %11010000
db %11100000
-
+IncGradGBPalTable_12: ; 53b
db %11100100
db %11010000
db %11100000
-
+IncGradGBPalTable_13: ; 53e
db %10010000
db %10000000
db %10010000
-
+IncGradGBPalTable_14: ; 541
db %01000000
db %01000000
db %01000000
-
+IncGradGBPalTable_15: ; 544
db %00000000
db %00000000
db %00000000
@@ -146,9 +295,40 @@
; 547
-INCBIN "baserom.gbc", $547, $568 - $547
+Function547: ; 547
+ ld a, [hLCDStatCustom]
+ cp $43
+ ret nz
+ ld c, a
+ ld a, [$d100]
+ ld [$ff00+c], a
+ ret
+; 552
+Function552: ; 552
+ push af
+ ld a, [hLCDStatCustom]
+ and a
+ jr z, .asm_566
+ push bc
+ ld a, [rLY]
+ ld c, a
+ ld b, $d1
+ ld a, [bc]
+ ld b, a
+ ld a, [hLCDStatCustom]
+ ld c, a
+ ld a, b
+ ld [$ff00+c], a
+ pop bc
+.asm_566
+ pop af
+ reti
+; 568
+
+
+
DisableLCD: ; 568
; Turn the LCD off
; Most of this is just going through the motions
@@ -201,7 +381,15 @@
AskTimer: ; 591
- INCBIN "baserom.gbc", $591, $59c - $591
+ push af
+ ld a, [$ffe9]
+ and a
+ jr z, .asm_59a
+ call Function3e93
+
+.asm_59a
+ pop af
+ reti
; 59c
@@ -384,8 +572,48 @@
ret
; 658
-INCBIN "baserom.gbc", $658, $691 - $658
+Function658: ; 658
+ xor a
+ ld [StringBuffer2], a
+ ld a, $0
+ ld [$d089], a
+ jr .asm_677
+ call UpdateTime
+ ld a, [hHours]
+ ld [$d087], a
+ ld a, [hMinutes]
+ ld [$d088], a
+ ld a, [hSeconds]
+ ld [$d089], a
+ jr .asm_677
+
+.asm_677
+ ld a, $5
+ ld hl, $40ed
+ rst FarCall
+ ret
+; 67e
+
+
+
+Function67e: ; 67e
+ call Function685
+ call SetClock
+ ret
+; 685
+
+Function685: ; 685
+ xor a
+ ld [hRTCSeconds], a
+ ld [hRTCMinutes], a
+ ld [hRTCHours], a
+ ld [hRTCDayLo], a
+ ld [hRTCDayHi], a
+ ret
+; 691
+
+
SetClock: ; 691
; set clock data from hram
@@ -434,382 +662,659 @@
ret
; 6c4
-INCBIN "baserom.gbc", $6c4, $92e - $6c4
+Function6c4: ; 6c4
+ xor a
+ push af
+ ld a, $0
+ call GetSRAMBank
+ pop af
+ ld [$ac60], a
+ call CloseSRAM
+ ret
+; 6d3
-INCLUDE "engine/joypad.asm"
-
-
-INCBIN "baserom.gbc", $a1b, $b40 - $a1b
-
-FarDecompress: ; b40
-; Decompress graphics data at a:hl to de
-
-; put a away for a sec
- ld [$c2c4], a
-; save bank
- ld a, [hROMBank]
+Function6d3: ; 6d3
+ ld hl, $ac60
push af
-; bankswitch
- ld a, [$c2c4]
- rst Bankswitch
-
-; what we came here for
- call Decompress
-
-; restore bank
+ ld a, $0
+ call GetSRAMBank
pop af
- rst Bankswitch
+ or [hl]
+ ld [hl], a
+ call CloseSRAM
ret
-; b50
+; 6e3
+Function6e3: ; 6e3
+ ld a, $0
+ call GetSRAMBank
+ ld a, [$ac60]
+ call CloseSRAM
+ ret
+; 6ef
-Decompress: ; b50
-; Pokemon Crystal uses an lz variant for compression.
-; This is mainly used for graphics, but the intro's
-; tilemaps also use this compression.
-; This function decompresses lz-compressed data at hl to de.
+Function6ef: ; 6ef
+ push af
+ push bc
+ push de
+ push hl
+ ld a, [$ffc9]
+ and a
+ jr nz, .asm_71c
+ ld a, [$c2d4]
+ bit 0, a
+ jr nz, .asm_721
+ ld a, [$ffcb]
+ inc a
+ jr z, .asm_726
+ ld a, [rSB]
+ ld [$ffce], a
+ ld a, [$ffcd]
+ ld [rSB], a
+ ld a, [$ffcb]
+ cp $2
+ jr z, .asm_752
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ jr .asm_752
+.asm_71c
+ call Function3e80
+ jr .asm_75a
-; Basic rundown:
+.asm_721
+ call Function2057
+ jr .asm_75a
-; A typical control command consists of:
-; -the command (bits 5-7)
-; -the count (bits 0-4)
-; -and any additional params
+.asm_726
+ ld a, [rSB]
+ cp $1
+ jr z, .asm_730
+ cp $2
+ jr nz, .asm_752
-; $ff is used as a terminator.
+.asm_730
+ ld [$ffce], a
+ ld [$ffcb], a
+ cp $2
+ jr z, .asm_74f
+ xor a
+ ld [rSB], a
+ ld a, $3
+ ld [rDIV], a
+.asm_73f
+ ld a, [rDIV]
+ bit 7, a
+ jr nz, .asm_73f
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ jr .asm_752
+.asm_74f
+ xor a
+ ld [rSB], a
-; Commands:
+.asm_752
+ ld a, $1
+ ld [$ffca], a
+ ld a, $fe
+ ld [$ffcd], a
-; 0: literal
-; literal data for some number of bytes
-; 1: iterate
-; one byte repeated for some number of bytes
-; 2: alternate
-; two bytes alternated for some number of bytes
-; 3: zero (whitespace)
-; 0x00 repeated for some number of bytes
+.asm_75a
+ pop hl
+ pop de
+ pop bc
+ pop af
+ reti
+; 75f
-; Repeater control commands have a signed parameter used to determine the start point.
-; Wraparound is simulated:
-; Positive values are added to the start address of the decompressed data
-; and negative values are subtracted from the current position.
+Function75f: ; 75f
+ ld a, $1
+ ld [$ffcc], a
+.asm_763
+ ld a, [hl]
+ ld [$ffcd], a
+ call $078a
+ push bc
+ ld b, a
+ inc hl
+ ld a, $30
+.asm_76e
+ dec a
+ jr nz, .asm_76e
+ ld a, [$ffcc]
+ and a
+ ld a, b
+ pop bc
+ jr z, .asm_782
+ dec hl
+ cp $fd
+ jr nz, .asm_763
+ xor a
+ ld [$ffcc], a
+ jr .asm_763
-; 4: repeat
-; repeat some number of bytes from decompressed data
-; 5: flipped
-; repeat some number of flipped bytes from decompressed data
-; ex: $ad = %10101101 -> %10110101 = $b5
-; 6: reverse
-; repeat some number of bytes in reverse from decompressed data
+.asm_782
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_763
+ ret
+; 78a
-; If the value in the count needs to be larger than 5 bits,
-; control code 7 can be used to expand the count to 10 bits.
+Function78a: ; 78a
+ xor a
+ ld [$ffca], a
+ ld a, [$ffcb]
+ cp $2
+ jr nz, .asm_79b
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
-; A new control command is read in bits 2-4.
-; The new 10-bit count is split:
-; bits 0-1 contain the top 2 bits
-; another byte is added containing the latter 8
+.asm_79b
+ ld a, [$ffca]
+ and a
+ jr nz, .asm_7e5
+ ld a, [$ffcb]
+ cp $1
+ jr nz, .asm_7c0
+ call $082b
+ jr z, .asm_7c0
+ call $0825
+ push hl
+ ld hl, $cf5c
+ inc [hl]
+ jr nz, .asm_7b7
+ dec hl
+ inc [hl]
-; So, the structure of the control command becomes:
-; 111xxxyy yyyyyyyy
-; | | | |
-; | | our new count
-; | the control command for this count
-; 7 (this command)
+.asm_7b7
+ pop hl
+ call $082b
+ jr nz, .asm_79b
+ jp $0833
-; For more information, refer to the code below and in extras/gfx.py .
+.asm_7c0
+ ld a, [rIE]
+ and $f
+ cp $8
+ jr nz, .asm_79b
+ ld a, [$cf5d]
+ dec a
+ ld [$cf5d], a
+ jr nz, .asm_79b
+ ld a, [$cf5e]
+ dec a
+ ld [$cf5e], a
+ jr nz, .asm_79b
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_7e5
+ ld a, $ff
+.asm_7e2
+ dec a
+ jr nz, .asm_7e2
-; save starting output address
- ld a, e
- ld [$c2c2], a
- ld a, d
- ld [$c2c3], a
-
-.loop
-; get next byte
+.asm_7e5
+ xor a
+ ld [$ffca], a
+ ld a, [rIE]
+ and $f
+ sub $8
+ jr nz, .asm_7f8
+ ld [$cf5d], a
+ ld a, $50
+ ld [$cf5e], a
+
+.asm_7f8
+ ld a, [$ffce]
+ cp $fe
+ ret nz
+ call $082b
+ jr z, .asm_813
+ push hl
+ ld hl, $cf5c
ld a, [hl]
-; done?
- cp $ff ; end
- ret z
+ dec a
+ ld [hld], a
+ inc a
+ jr nz, .asm_80d
+ dec [hl]
-; get control code
- and %11100000
-
-; 10-bit param?
- cp $e0 ; LZ_HI
- jr nz, .normal
-
-
-; 10-bit param:
+.asm_80d
+ pop hl
+ call $082b
+ jr z, .asm_833
-; get next 3 bits (%00011100)
+.asm_813
+ ld a, [rIE]
+ and $f
+ cp $8
+ ld a, $fe
+ ret z
ld a, [hl]
- add a
- add a ; << 3
- add a
-
-; this is our new control code
- and %11100000
- push af
-
-; get param hi
- ld a, [hli]
- and %00000011
- ld b, a
-
-; get param lo
- ld a, [hli]
- ld c, a
-
-; read at least 1 byte
- inc bc
- jr .readers
-
-
-.normal
-; push control code
- push af
-; get param
- ld a, [hli]
- and %00011111
- ld c, a
- ld b, $0
-; read at least 1 byte
- inc c
-
-.readers
-; let's get started
+ ld [$ffcd], a
+ call DelayFrame
+ jp $078a
-; inc loop counts since we bail as soon as they hit 0
- inc b
- inc c
-
-; get control code
- pop af
-; command type
- bit 7, a ; 80, a0, c0
- jr nz, .repeatertype
-
-; literals
- cp $20 ; LZ_ITER
- jr z, .iter
- cp $40 ; LZ_ALT
- jr z, .alt
- cp $60 ; LZ_ZERO
- jr z, .zero
- ; else $00
-
-; 00 ; LZ_LIT
-; literal data for bc bytes
-.loop1
-; done?
- dec c
- jr nz, .next1
- dec b
- jp z, .loop
-
-.next1
+ ld a, $f
+.asm_827
+ dec a
+ jr nz, .asm_827
+ ret
+
+ push hl
+ ld hl, $cf5b
ld a, [hli]
+ or [hl]
+ pop hl
+ ret
+
+.asm_833
+ dec a
+ ld [$cf5b], a
+ ld [$cf5c], a
+ ret
+; 83b
+
+Function83b: ; 83b
+ ld hl, $cf56
+ ld de, $cf51
+ ld c, $2
+ ld a, $1
+ ld [$ffcc], a
+.asm_847
+ call DelayFrame
+ ld a, [hl]
+ ld [$ffcd], a
+ call Function78a
+ ld b, a
+ inc hl
+ ld a, [$ffcc]
+ and a
+ ld a, $0
+ ld [$ffcc], a
+ jr nz, .asm_847
+ ld a, b
ld [de], a
inc de
- jr .loop1
-
-
-; 20 ; LZ_ITER
-; write byte for bc bytes
-.iter
- ld a, [hli]
-
-.iterloop
dec c
- jr nz, .iternext
- dec b
- jp z, .loop
-
-.iternext
- ld [de], a
- inc de
- jr .iterloop
-
-
-; 40 ; LZ_ALT
-; alternate two bytes for bc bytes
+ jr nz, .asm_847
+ ret
+; 862
-; next pair
-.alt
-; done?
- dec c
- jr nz, .alt0
+Function862: ; 862
+ call Function309d
+ callab Function4000
+ call Function87d
+ jp Function30b4
+; 871
+
+
+Function871: ; 871
+ call Function309d
+ callab Function4000
+ jp Function87d
+; 87d
+
+
+
+Function87d: ; 87d
+ ld a, $ff
+ ld [$cf52], a
+.asm_882
+ call $08c1
+ call DelayFrame
+ call $082b
+ jr z, .asm_89e
+ push hl
+ ld hl, $cf5c
+ dec [hl]
+ jr nz, .asm_89d
+ dec hl
+ dec [hl]
+ jr nz, .asm_89d
+ pop hl
+ xor a
+ jp $0833
+
+.asm_89d
+ pop hl
+
+.asm_89e
+ ld a, [$cf52]
+ inc a
+ jr z, .asm_882
+ ld b, $a
+.asm_8a6
+ call DelayFrame
+ call $08c1
dec b
- jp z, .altclose0
-
-; alternate for bc
-.alt0
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .alt1
-; done?
+ jr nz, .asm_8a6
+ ld b, $a
+.asm_8b1
+ call DelayFrame
+ call $0908
dec b
- jp z, .altclose1
-.alt1
- ld a, [hld]
- ld [de], a
- inc de
- jr .alt
-
-; skip past the bytes we were alternating
-.altclose0
- inc hl
-.altclose1
- inc hl
- jr .loop
-
-
-; 60 ; LZ_ZERO
-; write 00 for bc bytes
-.zero
+ jr nz, .asm_8b1
+ ld a, [$cf52]
+ ld [$cf51], a
+ ret
+; 8c1
+
+Function8c1: ; 8c1
+ push bc
+ ld b, $60
+ ld a, [InLinkBattle]
+ cp $1
+ jr z, .asm_8d7
+ ld b, $60
+ jr c, .asm_8d7
+ cp $2
+ ld b, $70
+ jr z, .asm_8d7
+ ld b, $80
+
+.asm_8d7
+ call $08f3
+ ld a, [$cf56]
+ add b
+ ld [$ffcd], a
+ ld a, [$ffcb]
+ cp $2
+ jr nz, .asm_8ee
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+
+.asm_8ee
+ call $08f3
+ pop bc
+ ret
+; 8f3
+
+Function8f3: ; 8f3
+ ld a, [$ffce]
+ ld [$cf51], a
+ and $f0
+ cp b
+ ret nz
xor a
-
-.zeroloop
+ ld [$ffce], a
+ ld a, [$cf51]
+ and $f
+ ld [$cf52], a
+ ret
+; 908
+
+Function908: ; 908
+ xor a
+ ld [$ffcd], a
+ ld a, [$ffcb]
+ cp $2
+ ret nz
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ret
+; 919
+
+Function919: ; 919
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [$ffce], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ ret
+; 92e
+
+
+
+INCLUDE "engine/joypad.asm"
+
+
+Functiona1b: ; a1b
+.asm_a1b
+ call DelayFrame
+ push bc
+ call Functiona57
+ pop bc
+ ld a, [hJoyDown]
+ cp $46
+ jr z, .asm_a34
+ ld a, [$ffa9]
+ and $9
+ jr nz, .asm_a34
dec c
- jr nz, .zeronext
- dec b
- jp z, .loop
-
-.zeronext
- ld [de], a
- inc de
- jr .zeroloop
-
-
-; repeats
-; 80, a0, c0
-; repeat decompressed data from output
-.repeatertype
+ jr nz, .asm_a1b
+ and a
+ ret
+
+.asm_a34
+ scf
+ ret
+; a36
+
+
+
+Functiona36: ; a36
+.asm_a36
+ call DelayFrame
+ call GetJoypadPublic
+ ld a, [hJoyPressed]
+ and $3
+ ret nz
+ call RTC
+ jr .asm_a36
+; a46
+
+Functiona46: ; a46
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call WaitBGMap
+ call $0a36
+ pop af
+ ld [hOAMUpdate], a
+ ret
+; a57
+
+
+
+Functiona57: ; a57
+ call GetJoypadPublic
+ ld a, [$ffaa]
+ and a
+ ld a, [hJoyPressed]
+ jr z, .asm_a63
+ ld a, [hJoyDown]
+
+.asm_a63
+ ld [$ffa9], a
+ ld a, [hJoyPressed]
+ and a
+ jr z, .asm_a70
+ ld a, $f
+ ld [TextDelayFrames], a
+ ret
+
+.asm_a70
+ ld a, [TextDelayFrames]
+ and a
+ jr z, .asm_a7a
+ xor a
+ ld [$ffa9], a
+ ret
+
+.asm_a7a
+ ld a, $5
+ ld [TextDelayFrames], a
+ ret
+; a80
+
+Functiona80: ; a80
+ ld a, [hConnectionStripLength]
+ push af
+ ld a, [hConnectedMapWidth]
+ push af
+ xor a
+ ld [hConnectionStripLength], a
+ ld a, $6
+ ld [hConnectedMapWidth], a
+.asm_a8d
push hl
+ ld hl, $c606
+ call $0b06
+ pop hl
+ call Functiona57
+ ld a, [$ffa9]
+ and $3
+ jr z, .asm_a8d
+ pop af
+ ld [hConnectedMapWidth], a
+ pop af
+ ld [hConnectionStripLength], a
+ ret
+; aa5
+
+Functionaa5: ; aa5
+.asm_aa5
+ call Functiona57
+ ld a, [$ffa9]
+ and $3
+ jr z, .asm_aa5
+ ret
+; aaf
+
+
+
+Functionaaf: ; aaf
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .asm_ac1
+ call Functionac6
+ push de
+ ld de, SFX_READ_TEXT_2
+ call StartSFX
+ pop de
+ ret
+
+.asm_ac1
+ ld c, $41
+ jp DelayFrames
+; ac6
+
+Functionac6: ; ac6
+ ld a, [hOAMUpdate]
push af
-; get next byte
- ld a, [hli]
-; absolute?
- bit 7, a
- jr z, .absolute
-
-; relative
-; a = -a
- and %01111111 ; forget the bit we just looked at
- cpl
-; add de (current output address)
- add e
- ld l, a
- ld a, $ff ; -1
- adc d
- ld h, a
- jr .repeaters
-
-.absolute
-; get next byte (lo)
- ld l, [hl]
-; last byte (hi)
- ld h, a
-; add starting output address
- ld a, [$c2c2]
- add l
- ld l, a
- ld a, [$c2c3]
- adc h
- ld h, a
-
-.repeaters
+ ld a, $1
+ ld [hOAMUpdate], a
+ ld a, [InputType]
+ or a
+ jr z, .asm_ad9
+ ld a, $77
+ ld hl, $628a
+ rst FarCall
+
+.asm_ad9
+ call Functionaf5
+ call Functiona57
+ ld a, [hJoyPressed]
+ and $3
+ jr nz, .asm_af1
+ call RTC
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ jr .asm_ad9
+
+.asm_af1
pop af
- cp $80 ; LZ_REPEAT
- jr z, .repeat
- cp $a0 ; LZ_FLIP
- jr z, .flip
- cp $c0 ; LZ_REVERSE
- jr z, .reverse
-
-; e0 -> 80
-
-; 80 ; LZ_REPEAT
-; repeat some decompressed data
-.repeat
-; done?
- dec c
- jr nz, .repeatnext
- dec b
- jr z, .cleanup
-
-.repeatnext
- ld a, [hli]
- ld [de], a
- inc de
- jr .repeat
-
-
-; a0 ; LZ_FLIP
-; repeat some decompressed data w/ flipped bit order
-.flip
- dec c
- jr nz, .flipnext
- dec b
- jp z, .cleanup
-
-.flipnext
- ld a, [hli]
+ ld [hOAMUpdate], a
+ ret
+; af5
+
+Functionaf5: ; af5
+ ld a, [$ff9b]
+ and $10
+ jr z, .asm_aff
+ ld a, $ee
+ jr .asm_b02
+
+.asm_aff
+ ld a, [$c605]
+
+.asm_b02
+ ld [$c606], a
+ ret
+; b06
+
+Functionb06: ; b06
push bc
- ld bc, $0008
-
-.fliploop
- rra
- rl b
- dec c
- jr nz, .fliploop
- ld a, b
+ ld a, [hl]
+ ld b, a
+ ld a, $ee
+ cp b
pop bc
- ld [de], a
- inc de
- jr .flip
-
-
-; c0 ; LZ_REVERSE
-; repeat some decompressed data in reverse
-.reverse
- dec c
- jr nz, .reversenext
-
- dec b
- jp z, .cleanup
-
-.reversenext
- ld a, [hld]
- ld [de], a
- inc de
- jr .reverse
-
-
-.cleanup
-; get type of repeat we just used
- pop hl
-; was it relative or absolute?
- bit 7, [hl]
- jr nz, .next
+ jr nz, .asm_b27
+ ld a, [hConnectionStripLength]
+ dec a
+ ld [hConnectionStripLength], a
+ ret nz
+ ld a, [hConnectedMapWidth]
+ dec a
+ ld [hConnectedMapWidth], a
+ ret nz
+ ld a, $7a
+ ld [hl], a
+ ld a, $ff
+ ld [hConnectionStripLength], a
+ ld a, $6
+ ld [hConnectedMapWidth], a
+ ret
-; skip two bytes for absolute
- inc hl
-; skip one byte for relative
-.next
- inc hl
- jp .loop
-; c2f
+.asm_b27
+ ld a, [hConnectionStripLength]
+ and a
+ ret z
+ dec a
+ ld [hConnectionStripLength], a
+ ret nz
+ dec a
+ ld [hConnectionStripLength], a
+ ld a, [hConnectedMapWidth]
+ dec a
+ ld [hConnectedMapWidth], a
+ ret nz
+ ld a, $6
+ ld [hConnectedMapWidth], a
+ ld a, $ee
+ ld [hl], a
+ ret
+; b40
+INCLUDE "engine/decompress.asm"
UpdatePalsIfCGB: ; c2f
@@ -973,9 +1478,72 @@
; cf8
-INCBIN "baserom.gbc", $cf8, $d50 - $cf8
+Functioncf8: ; cf8
+ ld [rOBP0], a
+ push af
+ ld a, [hCGB]
+ and a
+ jr z, .asm_d22
+ push hl
+ push de
+ push bc
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d0c0
+ ld de, MartPointer
+ ld a, [rOBP0]
+ ld b, a
+ ld c, $1
+ call CopyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ pop af
+ ld [rSVBK], a
+ pop bc
+ pop de
+ pop hl
+.asm_d22
+ pop af
+ ret
+; d24
+Functiond24: ; d24
+ ld [rOBP1], a
+ push af
+ ld a, [hCGB]
+ and a
+ jr z, .asm_d4e
+ push hl
+ push de
+ push bc
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d0c8
+ ld de, $d048
+ ld a, [rOBP1]
+ ld b, a
+ ld c, $1
+ call CopyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ pop af
+ ld [rSVBK], a
+ pop bc
+ pop de
+ pop hl
+
+.asm_d4e
+ pop af
+ ret
+; d50
+
+
+
CopyPals: ; d50
; copy c palettes in order b from de to hl
@@ -1029,9 +1597,240 @@
; d79
-INCBIN "baserom.gbc", $d79, $e8d - $d79
+Functiond79: ; d79
+ ld a, [hCGB]
+ and a
+ ret z
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, $2000
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ret
+; d90
+Functiond90: ; d90
+ ret
+; d91
+
+
+Functiond91: ; d91
+ ld a, [hCGB]
+ and a
+ ret z
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d080
+ ld bc, $0050
+ xor a
+ call ByteFill
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ call DelayFrame
+ ret
+; db1
+
+
+Functiondb1: ; db1
+ ld a, [hROMBank]
+ push af
+ ld a, $13
+ rst Bankswitch
+
+ call $4000
+ pop af
+ rst Bankswitch
+
+ ret
+; dbd
+
+Functiondbd: ; dbd
+ ld a, [hROMBank]
+ push af
+ ld a, $13
+ rst Bankswitch
+
+ call $403f
+ pop af
+ rst Bankswitch
+
+ ret
+; dc9
+
+
+
+Functiondc9: ; dc9
+ ld a, [rLCDC]
+ bit 7, a
+ jp z, Copy2bpp
+
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function104284)
+ rst Bankswitch
+ call Function104284
+ pop af
+ rst Bankswitch
+
+ ret
+; ddc
+
+Functionddc: ; ddc
+ ld a, [rLCDC]
+ bit 7, a
+ jp z, Copy1bpp
+
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function1042b2)
+ rst Bankswitch
+ call Function1042b2
+ pop af
+ rst Bankswitch
+
+ ret
+; def
+
+Functiondef: ; def
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+ call FarCopyBytesDouble
+ pop af
+ rst Bankswitch
+ ret
+; dfd
+
+Functiondfd: ; dfd
+ dec c
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld a, [hROMBank]
+ push af
+ ld a, b
+ rst Bankswitch
+
+.asm_e09
+ ld a, d
+ ld [rHDMA1], a
+ ld a, e
+ and $f0
+ ld [rHDMA2], a
+ ld a, h
+ and $1f
+ ld [rHDMA3], a
+ ld a, l
+ and $f0
+ ld [rHDMA4], a
+ ld a, c
+ cp $8
+ jr c, .asm_e3c
+ sub $8
+ ld c, a
+ ld a, $f
+ ld [hDMATransfer], a
+ call DelayFrame
+ ld a, l
+ add $0
+ ld l, a
+ ld a, h
+ adc $1
+ ld h, a
+ ld a, e
+ add $0
+ ld e, a
+ ld a, d
+ adc $1
+ ld d, a
+ jr .asm_e09
+
+.asm_e3c
+ ld a, c
+ and $7f
+ ld [hDMATransfer], a
+ call DelayFrame
+ pop af
+ rst Bankswitch
+
+ pop af
+ ld [hBGMapMode], a
+ ret
+; e4a
+
+
+
+Functione4a: ; e4a
+ ld a, $5
+ ld hl, $4135
+ rst FarCall
+ ret
+; e51
+
+
+
+Functione51: ; e51
+ ld a, $3e
+ ld hl, $7449
+ rst FarCall
+ ret
+; e58
+
+Functione58: ; e58
+ ld a, $3e
+ ld hl, $74be
+ rst FarCall
+ ret
+; e5f
+
+
+
+Functione5f: ; e5f
+ ld a, $3e
+ ld hl, $748a
+ rst FarCall
+ ld a, $3e
+ ld hl, $74b0
+ rst FarCall
+ ret
+; e6c
+
+Functione6c: ; e6c
+ ld a, $3e
+ ld hl, $74b0
+ rst FarCall
+ ret
+; e73
+
+Functione73: ; e73
+ push de
+ ld a, $0
+ call GetSRAMBank
+ push bc
+ ld de, $a000
+ ld a, b
+ call FarDecompress
+ pop bc
+ pop hl
+ ld de, $a000
+ call Request2bpp
+ call CloseSRAM
+ ret
+; e8d
+
+
+
FarCopyBytes: ; e8d
; copy bc bytes from a:hl to de
@@ -1088,439 +1887,217 @@
; 0xeba
-INCBIN "baserom.gbc", $eba, $fb6 - $eba
+Request2bpp: ; eba
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld a, [hROMBank]
+ push af
+ ld a, b
+ rst Bankswitch
-ClearBox: ; fb6
-; Fill a c*b box at hl with blank tiles.
+ ld a, [$ffd3]
+ push af
- ld a, " "
-.y
- push bc
- push hl
-.x
- ld [hli], a
- dec c
- jr nz, .x
- pop hl
- ld bc, 20 ; screen width
- add hl, bc
- pop bc
- dec b
- jr nz, .y
- ret
-; fc8
+ ld a, $8
+ ld [$ffd3], a
+ ld a, [InLinkBattle]
+ cp $4
+ jr nz, .asm_edc
+ ld a, [$ffe9]
+ and a
+ jr nz, .asm_edc
+ ld a, $6
+ ld [$ffd3], a
+.asm_edc
+ ld a, e
+ ld [$cf68], a
+ ld a, d
+ ld [$cf69], a
+ ld a, l
+ ld [$cf6a], a
+ ld a, h
+ ld [$cf6b], a
-ClearTileMap: ; fc8
-; Fill TileMap with blank tiles.
+.asm_eec
+ ld a, c
+ ld hl, $ffd3
+ cp [hl]
+ jr nc, .asm_f08
- ld hl, TileMap
- ld a, " "
- ld bc, 360 ; screen dimensions 20*18
- call ByteFill
-
-; We aren't done if the LCD is on.
- ld a, [rLCDC]
- bit 7, a
- ret z
- jp WaitBGMap
-; fdb
+ ld [$cf67], a
+.wait
+ call DelayFrame
+ ld a, [$cf67]
+ and a
+ jr nz, .wait
+ pop af
+ ld [$ffd3], a
-INCBIN "baserom.gbc", $fdb, $fe8 - $fdb
+ pop af
+ rst Bankswitch
-
-TextBox: ; fe8
-; Draw a text box width c height b at hl
-; Dimensions do not include the border.
- push bc
- push hl
- call TextBoxBorder
- pop hl
- pop bc
- jr TextBoxPalette
-; ff1
-
-
-TextBoxBorder: ; ff1
-
-; Top
- push hl
- ld a, "┌"
- ld [hli], a
- inc a ; "─"
- call NPlaceChar
- inc a ; "┐"
- ld [hl], a
-
-; Middle
- pop hl
- ld de, 20 ; screen width
- add hl, de
-.PlaceRow
- push hl
- ld a, "│"
- ld [hli], a
- ld a, " "
- call NPlaceChar
- ld [hl], "│"
- pop hl
- ld de, 20 ; screen width
- add hl, de
- dec b
- jr nz, .PlaceRow
-
-; Bottom
- ld a, "└"
- ld [hli], a
- ld a, "─"
- call NPlaceChar
- ld [hl], "┘"
-
+ pop af
+ ld [hBGMapMode], a
ret
-; 101e
+.asm_f08
+ ld a, [$ffd3]
+ ld [$cf67], a
+.asm_f0d
+ call DelayFrame
+ ld a, [$cf67]
+ and a
+ jr nz, .asm_f0d
+ ld a, c
+ ld hl, $ffd3
+ sub [hl]
+ ld c, a
+ jr .asm_eec
+; f1e
-NPlaceChar: ; 101e
-; Place char a c times
- ld d,c
-.loop
- ld [hli],a
- dec d
- jr nz, .loop
- ret
-; 1024
+Request1bpp: ; f1e
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
-TextBoxPalette: ; 1024
-; Fill text box width c height b at hl with pal 7
- ld de, AttrMap - TileMap
- add hl, de
- inc b
- inc b
- inc c
- inc c
- ld a, 7 ; pal
-.gotoy
- push bc
- push hl
-.gotox
- ld [hli], a
- dec c
- jr nz, .gotox
- pop hl
- ld de, 20 ; screen width
- add hl, de
- pop bc
- dec b
- jr nz, .gotoy
- ret
-; 103e
+ ld a, [hROMBank]
+ push af
+ ld a, b
+ rst Bankswitch
+ ld a, [$ffd3]
+ push af
-SpeechTextBox: ; 103e
-; Standard textbox.
- hlcoord 0, 12
- ld b, 4 ; height
- ld c, 18 ; screen width - 2 (border)
- jp TextBox
-; 1048
+ ld a, $8
+ ld [$ffd3], a
+ ld a, [InLinkBattle]
+ cp $4
+ jr nz, .asm_f40
+ ld a, [$ffe9]
+ and a
+ jr nz, .asm_f40
+ ld a, $6
+ ld [$ffd3], a
+.asm_f40
+ ld a, e
+ ld [$cf6d], a
+ ld a, d
+ ld [$cf6e], a
+ ld a, l
+ ld [$cf6f], a
+ ld a, h
+ ld [$cf70], a
+.asm_f50
+ ld a, c
+ ld hl, $ffd3
+ cp [hl]
+ jr nc, .asm_f6c
-INCBIN "baserom.gbc", $1048, $1057 - $1048
+ ld [$cf6c], a
+.wait
+ call DelayFrame
+ ld a, [$cf6c]
+ and a
+ jr nz, .wait
+ pop af
+ ld [$ffd3], a
-PrintText: ; 1057
- call $106c
- push hl
- hlcoord 1, 14
- ld bc, 18 + 3<<8
- call ClearBox
- pop hl
+ pop af
+ rst Bankswitch
-PrintTextBoxText: ; 1065
- bccoord 1, 14
- call $13e5
+ pop af
+ ld [hBGMapMode], a
ret
-; 106c
+.asm_f6c
+ ld a, [$ffd3]
+ ld [$cf6c], a
+.asm_f71
+ call DelayFrame
+ ld a, [$cf6c]
+ and a
+ jr nz, .asm_f71
+ ld a, c
+ ld hl, $ffd3
+ sub [hl]
+ ld c, a
+ jr .asm_f50
+; f82
-INCBIN "baserom.gbc", $106c, $1078 - $106c
+Get2bpp: ; f82
+ ld a, [rLCDC]
+ bit 7, a
+ jp nz, Request2bpp
-PlaceString: ; 1078
- push hl
+Copy2bpp: ; f89
+; copy c 2bpp tiles from b:de to hl
-PlaceNextChar: ; 1079
- ld a, [de]
- cp "@"
- jr nz, CheckDict
- ld b, h
- ld c, l
- pop hl
- ret
+ push hl
+ ld h, d
+ ld l, e
pop de
-NextChar: ; 1083
- inc de
- jp PlaceNextChar
+; bank
+ ld a, b
-CheckDict: ; 1087
- cp $15
- jp z, $117b
- cp $4f
- jp z, Char4F
- cp $4e
- jp z, $12a7
- cp $16
- jp z, $12b9
- and a
- jp z, $1383
- cp $4c
- jp z, $1337
- cp $4b
- jp z, Char4B
- cp $51 ; Player name
- jp z, $12f2
- cp $49
- jp z, $1186
- cp $52 ; Mother name
- jp z, $118d
- cp $53
- jp z, $1194
- cp $35
- jp z, $11e8
- cp $36
- jp z, $11ef
- cp $37
- jp z, $11f6
- cp $38
- jp z, $119b
- cp $39
- jp z, $11a2
- cp $54
- jp z, $11c5
- cp $5b
- jp z, $11b7
- cp $5e
- jp z, $11be
- cp $5c
- jp z, $11b0
- cp $5d
- jp z, $11a9
- cp $23
- jp z, $11cc
- cp $22
- jp z, $12b0
- cp $55
- jp z, Char55
- cp $56
- jp z, $11d3
- cp $57
- jp z, $137c
- cp $58
- jp z, $135a
- cp $4a
- jp z, $11da
- cp $24
- jp z, $11e1
- cp $25
- jp z, NextChar
- cp $1f
- jr nz, .asm_1122
- ld a, $7f
-.asm_1122
- cp $5f
- jp z, Char5F
- cp $59
- jp z, $11fd
- cp $5a
- jp z, $1203
- cp $3f
- jp z, $121b
- cp $14
- jp z, $1252
- cp $e4
- jr z, .asm_1174 ; 0x113d $35
- cp $e5
- jr z, .asm_1174 ; 0x1141 $31
- jr .asm_114c ; 0x1143 $7
+; bc = c * $10
+ push af
+ swap c
+ ld a, $f
+ and c
ld b, a
- call $13c6
- jp NextChar
-.asm_114c
- cp $60
- jr nc, .asm_1174 ; 0x114e $24
- cp $40
- jr nc, .asm_1165 ; 0x1152 $11
- cp $20
- jr nc, .asm_115c ; 0x1156 $4
- add $80
- jr .asm_115e ; 0x115a $2
-.asm_115c
- add $90
-.asm_115e
- ld b, $e5
- call $13c6
- jr .asm_1174 ; 0x1163 $f
-.asm_1165
- cp $44
- jr nc, .asm_116d ; 0x1167 $4
- add $59
- jr .asm_116f ; 0x116b $2
-.asm_116d
- add $86
-.asm_116f
- ld b, $e4
- call $13c6
-.asm_1174
- ld [hli], a
- call PrintLetterDelay
- jp NextChar
-; 0x117b
+ ld a, $f0
+ and c
+ ld c, a
+ pop af
+ jp FarCopyBytes
+; f9d
-INCBIN "baserom.gbc", $117b, $1203 - $117b
+Get1bpp: ; f9d
+ ld a, [rLCDC]
+ bit 7, a
+ jp nz, Request1bpp
-Char5D: ; 1203
- ld a, [hBattleTurn]
- push de
- and a
- jr nz, .asm_120e ; 0x1207 $5
- ld de, $c621
- jr .asm_126a ; 0x120c $5c
-.asm_120e
- ld de, Char5AText ; Enemy
- call PlaceString
- ld h, b
- ld l, c
- ld de, $c616
- jr .asm_126a ; 0x1219 $4f
- push de
- ld a, [InLinkBattle]
- and a
- jr nz, .linkbattle
- ld a, [TrainerClass]
- cp $9
- jr z, .asm_1248 ; 0x1227 $1f
- cp $2a
- jr z, .asm_1248 ; 0x122b $1b
- ld de, $c656
- call PlaceString
- ld h, b
- ld l, c
- ld de, $12a2
- call PlaceString
- push bc
- ld hl, $5939
- ld a, $e
- rst FarCall
- pop hl
- ld de, StringBuffer1
- jr .asm_126a ; 0x1246 $22
-.asm_1248
- ld de, $d493
- jr .asm_126a ; 0x124b $1d
-.linkbattle
- ld de, $c656
- jr .asm_126a ; 0x1250 $18
- push de
- ld de, PlayerName
- call PlaceString
- ld h, b
- ld l, c
- ld a, [$d472]
- bit 0, a
- ld de, $12a5
- jr z, .asm_126a ; 0x1263 $5
- ld de, $12a6
- jr .asm_126a ; 0x1268 $0
-.asm_126a
- call PlaceString
- ld h, b
- ld l, c
- pop de
- jp NextChar
-; 0x1273
+Copy1bpp: ; fa4
+; copy c 1bpp tiles from b:de to hl
-
-Char5CText: ; 0x1273
- db "TM@"
-Char5DText: ; 0x1276
- db "TRAINER@"
-Char5BText: ; 0x127e
- db "PC@"
-
-INCBIN "baserom.gbc", $1281, $1293 - $1281
-
-Char56Text: ; 0x1293
- db "…@"
-Char5AText: ; 0x1295
- db "Enemy @"
-
-INCBIN "baserom.gbc", $129c, $12ea - $129c
-
-Char4F: ; 12ea
- pop hl
- hlcoord 1, 16
- push hl
- jp NextChar
-; 0x12f2
-
-INCBIN "baserom.gbc", $12f2, $131f - $12f2
-
-Char4B: ; 131f
- ld a, [InLinkBattle]
- or a
- jr nz, .asm_1328
- call $13c7
-
-.asm_1328
- call $13b6
-
push de
- call $aaf
- pop de
+ ld d, h
+ ld e, l
- ld a, [InLinkBattle]
- or a
- call z, $13cd
+; bank
+ ld a, b
- push de
- call $138c
- call $138c
- hlcoord 1, 16
- pop de
- jp NextChar
-; 1345
-
-
-Char55: ; 1345
- push de
- ld de, .text_1354
+; bc = c * $10 / 2
+ push af
+ ld h, 0
+ ld l, c
+ add hl, hl
+ add hl, hl
+ add hl, hl
ld b, h
ld c, l
- call PlaceString
- ld h, b
- ld l, c
- pop de
- jp NextChar
+ pop af
-.text_1354
- db $4b, "@"
-; 1356
+ pop hl
+ jp FarCopyBytesDouble
+; fb6
-Char5F: ; 1356
-; ends a Pokédex entry
- ld [hl], "."
- pop hl
- ret
-; 135a
+INCLUDE "engine/text.asm"
-INCBIN "baserom.gbc", $135a, $15d8 - $135a
DMATransfer: ; 15d8
; DMA transfer
@@ -1696,7 +2273,7 @@
ld h, a
push hl
-; bg map 1 ($9c00)
+; bg map 1 (VBGMap1)
xor a
ld [hBGMapAddress], a
ld a, $9c
@@ -2130,33 +2707,169 @@
ret
; 17ff
-INCBIN "baserom.gbc", $17ff, $185d - $17ff
-GetTileType: ; 185d
-; checks the properties of a tile
-; input: a = tile id
+Function17ff: ; 17ff
+ push hl
push de
+ push bc
+ ld c, a
+ callba GetSpritePalette
+ ld a, c
+ pop bc
+ pop de
+ pop hl
+ ret
+; 180e
+
+Function180e: ; 180e
push hl
- ld hl, TileTypeTable
+ push bc
+ ld hl, $d156
+ ld c, $1f
+ ld b, a
+ ld a, [hConnectionStripLength]
+ cp $0
+ jr z, .asm_182b
+ ld a, b
+.asm_181d
+ cp [hl]
+ jr z, .asm_1830
+ inc hl
+ inc hl
+ dec c
+ jr nz, .asm_181d
+ ld a, [$d155]
+ scf
+ jr .asm_1833
+
+.asm_182b
+ ld a, [$d155]
+ jr .asm_1833
+
+.asm_1830
+ inc hl
+ xor a
+ ld a, [hl]
+
+.asm_1833
+ pop bc
+ pop hl
+ ret
+; 1836
+
+Function1836: ; 1836
+ push de
+ push hl
+ ld b, a
+ ld a, [hROMBank]
+ push af
+ ld a, $5
+ rst Bankswitch
+
+ ld a, b
+ call $42a7
+ ld c, a
+ pop de
+ ld a, d
+ rst Bankswitch
+
+ pop hl
+ pop de
+ ret
+; 184a
+
+Function184a: ; 184a
+ ld a, [StandingTile]
+ call GetTileCollision
+ ld b, a
+ ret
+; 1852
+
+Function1852: ; 1852
+ ld a, [StandingTile]
+ call GetTileCollision
+ sub $1
+ ret z
+ and a
+ ret
+; 185d
+
+
+
+GetTileCollision: ; 185d
+; Get the collision type of tile a.
+
+ push de
+ push hl
+
+ ld hl, TileCollisionTable
ld e, a
- ld d, $00
+ ld d, 0
add hl, de
- ld a, [hROMBank] ; current bank
+
+ ld a, [hROMBank]
push af
- ld a, BANK(TileTypeTable)
+ ld a, BANK(TileCollisionTable)
rst Bankswitch
- ld e, [hl] ; get tile type
+ ld e, [hl]
pop af
- rst Bankswitch ; return to current bank
+ rst Bankswitch
+
ld a, e
- and a, $0f ; lo nybble only
+ and $f ; lo nybble only
+
pop hl
pop de
ret
; 1875
-INCBIN "baserom.gbc", $1875, $18a0 - $1875
+Function1875: ; 1875
+ ld d, a
+ and $f0
+ cp $10
+ jr z, .asm_1882
+ cp $20
+ jr z, .asm_1888
+ scf
+ ret
+
+.asm_1882
+ ld a, d
+ and 7
+ ret z
+ scf
+ ret
+
+.asm_1888
+ ld a, d
+ and 7
+ ret z
+ scf
+ ret
+; 188e
+
+Function188e: ; 188e
+ cp $14
+ ret z
+ cp $1c
+ ret
+; 1894
+
+CheckCutTreeTile: ; 1894
+ cp $12
+ ret z
+ cp $1a
+ ret
+; 189a
+
+CheckHeadbuttTreeTile: ; 189a
+ cp $15
+ ret z
+ cp $1d
+ ret
+; 18a0
+
CheckCounterTile: ; 18a0
cp $90
ret z
@@ -2164,7 +2877,12 @@
ret
; 18a6
-INCBIN "baserom.gbc", $18a6, $18ac - $18a6
+CheckPitTile: ; 18a6
+ cp $60
+ ret z
+ cp $68
+ ret
+; 18ac
CheckIceTile: ; 18ac
cp $23
@@ -2177,9 +2895,9 @@
CheckWhirlpoolTile: ; 18b4
nop
- cp $24 ; whirlpool 1
+ cp $24
ret z
- cp $2c ; whirlpool 2
+ cp $2c
ret z
scf
ret
@@ -2192,10 +2910,19 @@
ret
; 18c3
+CheckStandingOnEntrance: ; 18c3
+ ld a, [StandingTile]
+ cp $71 ; door
+ ret z
+ cp $79
+ ret z
+ cp $7a ; stairs
+ ret z
+ cp $7b ; cave
+ ret
+; 18d2
-INCBIN "baserom.gbc", $18c3, $18d2 - $18c3
-
GetMapObject: ; 18d2
; Return the location of map object a in bc.
ld hl, MapObjects
@@ -2207,9 +2934,450 @@
; 18de
-INCBIN "baserom.gbc", $18de, $1b07 - $18de
+Function18de: ; 18de
+ ld [hConnectionStripLength], a
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_18f3
+ ld [hConnectedMapWidth], a
+ call Function1ae5
+ and a
+ ret
+.asm_18f3
+ scf
+ ret
+; 18f5
+Function18f5: ; 18f5
+ ld hl, $0006
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_1921
+ ld hl, $0007
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_191c
+ ld hl, .data_191e
+ ld a, [TimeOfDay]
+ add l
+ ld l, a
+ jr nc, .asm_1912
+ inc h
+
+.asm_1912
+ ld a, [hl]
+ ld hl, $0007
+ add hl, bc
+ and [hl]
+ jr nz, .asm_191c
+ scf
+ ret
+
+.asm_191c
+ and a
+ ret
+
+.data_191e
+ db $1
+ db $2
+ db $4
+
+.asm_1921
+ ld hl, $0006
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0007
+ add hl, bc
+ ld e, [hl]
+ ld hl, hHours
+ ld a, d
+ cp e
+ jr z, .asm_1949
+ jr c, .asm_193f
+ ld a, [hl]
+ cp d
+ jr nc, .asm_1949
+ cp e
+ jr c, .asm_1949
+ jr z, .asm_1949
+ jr .asm_194b
+
+.asm_193f
+ ld a, e
+ cp [hl]
+ jr c, .asm_194b
+ ld a, [hl]
+ cp d
+ jr nc, .asm_1949
+ jr .asm_194b
+
+.asm_1949
+ and a
+ ret
+
+.asm_194b
+ scf
+ ret
+; 194d
+
+Function194d: ; 194d
+ ld [hConnectionStripLength], a
+ call GetMapObject
+ call $40e7
+ ret
+; 1956
+
+
+
+Function1956: ; 1956
+ ld [hConnectionStripLength], a
+ call Function271e
+ ld a, [hConnectionStripLength]
+ call GetMapObject
+ ld a, $2
+ ld hl, $40e7
+ rst FarCall
+ ret
+; 1967
+
+Function1967: ; 1967
+ ld [hConnectionStripLength], a
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld [hl], $ff
+ push af
+ call Function1985
+ pop af
+ call Function1ae5
+ callba Function4357
+ ret
+; 1985
+
+Function1985: ; 1985
+ ld hl, $d4cd
+ cp [hl]
+ jr z, .asm_1990
+ ld hl, $d4ce
+ cp [hl]
+ ret nz
+
+.asm_1990
+ callba Function581f
+ ld a, $ff
+ ld [$d4cd], a
+ ld [$d4ce], a
+ ret
+; 199f
+
+Function199f: ; 199f
+ call Function1967
+ call Function2712
+ ret
+; 19a6
+
+Function19a6: ; 19a6
+ push hl
+ call GetMapObject
+ ld d, b
+ ld e, c
+ ld a, $ff
+ ld [de], a
+ inc de
+ pop hl
+ ld bc, $000f
+ call CopyBytes
+ ret
+; 19b8
+
+Function19b8: ; 19b8
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ push af
+ ld [hl], $ff
+ inc hl
+ ld bc, $000f
+ xor a
+ call ByteFill
+ pop af
+ cp $ff
+ ret z
+ cp $d
+ ret nc
+ ld b, a
+ ld a, [$d4cd]
+ cp b
+ jr nz, .asm_19de
+ ld a, $ff
+ ld [$d4cd], a
+
+.asm_19de
+ ld a, b
+ call Function1ae5
+ callba Function4357
+ ret
+; 19e9
+
+
+
+Function19e9: ; 19e9
+ ld [$c2e2], a
+ ld a, [hROMBank]
+ ld [$c2e3], a
+ ld a, l
+ ld [$c2e4], a
+ ld a, h
+ ld [$c2e5], a
+ ld a, [$c2e2]
+ call Function18de
+ ret c
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $14
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $0
+ ld hl, VramState
+ set 7, [hl]
+ and a
+ ret
+; 1a13
+
+
+
+Function1a13: ; 1a13
+ push bc
+ push de
+ ld hl, $d4d6
+ ld de, $0028
+ ld c, $d
+.asm_1a1d
+ ld a, [hl]
+ and a
+ jr z, .asm_1a28
+ add hl, de
+ dec c
+ jr nz, .asm_1a1d
+ xor a
+ jr .asm_1a2c
+
+.asm_1a28
+ ld a, $d
+ sub c
+ scf
+
+.asm_1a2c
+ pop de
+ pop bc
+ ret
+; 1a2f
+
+
+
+Function1a2f: ; 1a2f
+ ld hl, $0003
+ add hl, bc
+ ld a, [hl]
+ cp $25
+ jr c, .asm_1a39
+ xor a
+
+.asm_1a39
+ ld hl, Data4273
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, [hl]
+ ret
+; 1a47
+
+Function1a47: ; 1a47
+ push bc
+ push de
+ ld e, a
+ ld d, 0
+ ld hl, Data4273 + 1
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, BANK(Data4273)
+ call GetFarByte
+ add a
+ add a
+ and $c
+ pop de
+ pop bc
+ ret
+; 1a61
+
+
+Function1a61: ; 1a61
+ ld l, a
+ ld a, [hROMBank]
+ push af
+ ld a, $1
+ rst Bankswitch
+
+ ld a, l
+ push bc
+ call Function1a71
+ pop bc
+ pop af
+ rst Bankswitch
+
+ ret
+; 1a71
+
+Function1a71: ; 1a71
+ ld hl, $0003
+ add hl, de
+ ld [hl], a
+ push de
+ ld e, a
+ ld d, $0
+ ld hl, $4274
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ld b, h
+ ld c, l
+ pop de
+ ld a, [bc]
+ inc bc
+ rlca
+ rlca
+ and $c
+ ld hl, $0008
+ add hl, de
+ ld [hl], a
+ ld a, [bc]
+ inc bc
+ ld hl, $000b
+ add hl, de
+ ld [hl], a
+ ld a, [bc]
+ inc bc
+ ld hl, $0004
+ add hl, de
+ ld [hl], a
+ ld a, [bc]
+ inc bc
+ ld hl, $0005
+ add hl, de
+ ld [hl], a
+ ld a, [bc]
+ inc bc
+ ld hl, $0006
+ add hl, de
+ ld [hl], a
+ ret
+; 1aae
+
+Function1aae: ; 1aae
+ ld a, [hROMBank]
+ push af
+ ld a, [hli]
+ rst Bankswitch
+
+ ld a, [hli]
+ ld d, [hl]
+ ld hl, $001b
+ add hl, bc
+ add [hl]
+ ld e, a
+ ld a, d
+ adc $0
+ ld d, a
+ inc [hl]
+ ld a, [de]
+ ld h, a
+ pop af
+ rst Bankswitch
+
+ ld a, h
+ ret
+; 1ac6
+
+Function1ac6: ; 1ac6
+ ld hl, VramState
+ set 0, [hl]
+ ret
+; 1acc
+
+Function1acc: ; 1acc
+ ld hl, VramState
+ res 0, [hl]
+ ret
+; 1ad2
+
+
+
+Function1ad2: ; 1ad2
+ ld a, [VramState]
+ bit 0, a
+ ret z
+ callba Function55e0
+ callba Function5920
+ ret
+; 1ae5
+
+
+
+Function1ae5: ; 1ae5
+ ld bc, $0028
+ ld hl, $d4d6
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ret
+; 1af1
+
+Function1af1: ; 1af1
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret
+; 1af8
+
+Function1af8: ; 1af8
+ push af
+ ld hl, $0008
+ add hl, bc
+ ld a, [hl]
+ and $f3
+ ld e, a
+ pop af
+ and $c
+ or e
+ ld [hl], a
+ ret
+; 1b07
+
+
+
GetSpriteDirection: ; 1b07
ld hl, $0008
add hl, bc
@@ -2219,17 +3387,228 @@
; 1b0f
-INCBIN "baserom.gbc", $1b0f, $1c07 - $1b0f
+Function1b0f: ; 1b0f
+ add $10
+ ld e, a
+ ld a, [hROMBank]
+ push af
+ ld a, $2
+ rst Bankswitch
+ call $44d9
+ pop af
+ rst Bankswitch
-Function1c07: ; 0x1c07
+ ret
+; 1b1e
+
+Function1b1e: ; 1b1e
+ ld [$d003], a
+ xor a
+ ld [DefaultFlypoint], a
+ ld a, $0
+ ld [$d004], a
+ ld a, $7
+ ld [StartFlypoint], a
+ ld a, $d0
+ ld [EndFlypoint], a
+ ret
+; 1b35
+
+Function1b35: ; 1b35
+ ld a, [DefaultFlypoint]
+ and a
+ ret z
+ dec a
+ ld [DefaultFlypoint], a
+ ret
+; 1b3f
+
+Function1b3f: ; 1b3f
+ push hl
+ push de
+ ld hl, DefaultFlypoint
+ ld e, [hl]
+ inc [hl]
+ ld d, 0
+ ld hl, MovementBuffer
+ add hl, de
+ ld [hl], a
+ pop de
+ pop hl
+ ret
+; 1b50
+
+Function1b50: ; 1b50
push af
- ld hl, $43e8
+ ld a, c
+ and a
+ jr nz, .asm_1b57
+ pop af
+ ret
+
+.asm_1b57
+ pop af
+.asm_1b58
+ call Function1b3f
+ dec c
+ jr nz, .asm_1b58
+ ret
+; 1b5f
+
+Function1b5f: ; 1b5f
+ push af
+ ld a, b
+ sub d
+ ld h, $2
+ jr nc, .asm_1b6a
+ dec a
+ cpl
+ ld h, $3
+
+.asm_1b6a
+ ld d, a
+ ld a, c
+ sub e
+ ld l, $1
+ jr nc, .asm_1b75
+ dec a
+ cpl
+ ld l, $0
+
+.asm_1b75
+ ld e, a
+ cp d
+ jr nc, .asm_1b7f
+ ld a, h
+ ld h, l
+ ld l, a
+ ld a, d
+ ld d, e
+ ld e, a
+
+.asm_1b7f
+ pop af
+ ld b, a
+ ld a, h
+ call Function1b92
+ ld c, d
+ call Function1b50
+ ld a, l
+ call Function1b92
+ ld c, e
+ call Function1b50
+ ret
+; 1b92
+
+Function1b92: ; 1b92
+ push de
+ push hl
+ ld l, b
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld de, .data_1ba5
+ add hl, de
+ ld a, [hl]
+ pop hl
+ pop de
+ ret
+; 1ba5
+
+.data_1ba5
+ db 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
+; 1bb1
+
+Function1bb1: ; 1bb1
+ push hl
+ push bc
+ ld hl, $cfa1
+ ld b, $8
+.asm_1bb8
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .asm_1bb8
+ ld a, $1
+ ld [hli], a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ pop bc
+ pop hl
+ ret
+; 1bc9
+
+Function1bc9: ; 1bc9
+ ld hl, $41a8
ld a, $9
- rst $8
+ rst FarCall
+ call Function1bdd
+ ret
+; 1bd3
+
+Function1bd3: ; 1bd3
+ ld hl, $41ab
+ ld a, $9
+ rst FarCall
+ call Function1bdd
+ ret
+; 1bdd
+
+Function1bdd: ; 1bdd
+ push bc
+ push af
+ ld a, [$ffa9]
+ and $f0
+ ld b, a
+ ld a, [hJoyPressed]
+ and $f
+ or b
+ ld b, a
pop af
+ ld a, b
+ pop bc
ret
+; 1bee
+Function1bee: ; 1bee
+ ld hl, $cfac
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld [hl], $ec
+ ret
+; 1bf7
+
+Function1bf7: ; 1bf7
+ ld hl, $cfac
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld [hl], $7f
+ ret
+; 1c00
+
+Function1c00: ; 1c00
+ ld hl, $4374
+ ld a, $9
+ rst FarCall
+ ret
+; 1c07
+
+Function1c07: ; 0x1c07
+ push af
+ callab Function243e8
+ pop af
+ ret
+
Function1c10: ; 0x1c10
ld hl, $446d
ld a, $9
@@ -2239,15 +3618,15 @@
Function1c17: ; 0x1c17
push af
call Function1c07
- call $321c
- call $1ad2
+ call Function321c
+ call Function1ad2
pop af
ret
Function1c23: ; 0x1c23
- call $1cfd
+ call Function1cfd
call Function1c30
- call $1d19
+ call Function1d19
call Function1c30
ret
@@ -2297,11 +3676,179 @@
ret
; 0x1c66
-INCBIN "baserom.gbc", $1c66, $1d35 - $1c66
+Function1c66: ; 1c66
+ push hl
+ push de
+ push bc
+ push af
+ ld hl, $cf86
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $cf91
+ ld bc, $0010
+ call CopyBytes
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 1c7e
-Function1d35: ; 0x1d35
+Function1c7e: ; 1c7e
+ ld hl, $cf71
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 1c89
+
+Function1c89: ; 1c89
+ call Function1c66
+ ld hl, $cf86
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function1cc6
+ call Function1d05
+ inc de
+ ld a, [de]
+ inc de
+ ld b, a
+.asm_1c9c
+ push bc
+ call PlaceString
+ inc de
+ ld bc, $0028
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_1c9c
+ ld a, [$cf91]
+ bit 4, a
+ ret z
+ call Function1cfd
+ ld a, [de]
+ ld c, a
+ inc de
+ ld b, $0
+ add hl, bc
+ jp PlaceString
+; 1cbb
+
+Function1cbb: ; 1cbb
+ call Function1cfd
+ call Function1c53
+ dec b
+ dec c
+ jp TextBox
+; 1cc6
+
+Function1cc6: ; 1cc6
+ ld a, [$cf82]
+ ld b, a
+ inc b
+ ld a, [$cf83]
+ ld c, a
+ inc c
+ ld a, [$cf91]
+ bit 6, a
+ jr nz, .asm_1cd8
+ inc b
+
+.asm_1cd8
+ ld a, [$cf91]
+ bit 7, a
+ jr z, .asm_1ce0
+ inc c
+
+.asm_1ce0
+ ret
+; 1ce1
+
+Function1ce1: ; 1ce1
+ call Function1cfd
+ ld bc, $0015
+ add hl, bc
+ call Function1c53
+ dec b
+ dec c
+ call ClearBox
+ ret
+; 1cf1
+
+Function1cf1: ; 1cf1
+ call Function1cfd
+ call Function1c53
+ inc c
+ inc b
+ call ClearBox
+ ret
+; 1cfd
+
+
+Function1cfd: ; 1cfd
+ ld a, [$cf83]
+ ld c, a
+ ld a, [$cf82]
+ ld b, a
+; 1d05
+
+
+Function1d05: ; 1d05
+ xor a
+ ld h, a
+ ld l, b
+ ld a, c
+ ld b, h
+ ld c, l
+ add hl, hl
+ add hl, hl
+ add hl, bc
+ add hl, hl
+ add hl, hl
+ ld c, a
+ xor a
+ ld b, a
+ add hl, bc
+ ld bc, TileMap
+ add hl, bc
+ ret
+; 1d19
+
+Function1d19: ; 1d19
+ ld a, [$cf83]
+ ld c, a
+ ld a, [$cf82]
+ ld b, a
+ xor a
+ ld h, a
+ ld l, b
+ ld a, c
+ ld b, h
+ ld c, l
+ add hl, hl
+ add hl, hl
+ add hl, bc
+ add hl, hl
+ add hl, hl
+ ld c, a
+ xor a
+ ld b, a
+ add hl, bc
+ ld bc, AttrMap
+ add hl, bc
+ ret
+; 1d35
+
+
+LoadMenuDataHeader: ; 0x1d35
call Function1d3c
- call $1c00
+ call Function1c00
ret
Function1d3c: ; 0x1d3c
@@ -2308,27 +3855,81 @@
ld de, $cf81
ld bc, $0010
call CopyBytes
- ld a, [$ff9d]
+ ld a, [hROMBank]
ld [$cf8a], a
ret
; 0x1d4b
-INCBIN "baserom.gbc", $1d4b, $1d81 - $1d4b
+Function1d4b: ; 1d4b
+ ld [$cf88], a
+ ret
+; 1d4f
+
+Function1d4f: ; 1d4f
+ push hl
+ call Function1d58
+ pop hl
+ jp PrintText
+; 1d57
+
+Function1d57: ; 1d57
+ ret
+; 1d58
+
+Function1d58: ; 1d58
+ ld hl, MenuDataHeader_0x1d5f
+ call LoadMenuDataHeader
+ ret
+; 1d5f
+
+MenuDataHeader_0x1d5f: ; 1d5f
+ db $40 ; tile backup
+ db 12, 0 ; start coords
+ db 17, 19 ; end coords
+ dw VTiles0
+ db 0 ; default option
+; 1d67
+
+Function1d67: ; 1d67
+ call Function1d4f
+ call Function1c17
+ ret
+; 1d6e
+
+Function1d6e: ; 1d6e
+ ld hl, MenuDataHeader_0x1d75
+ call LoadMenuDataHeader
+ ret
+; 1d75
+
+MenuDataHeader_0x1d75: ; 1d75
+ db $40 ; tile backup
+ db 0, 0 ; start coords
+ db 17, 19 ; end coords
+ dw $0000
+ db 1 ; default option
+; 1d7d
+
+Function1d7d: ; 1d7d
+ call Function1c07
+ ret
+; 1d81
+
Function1d81: ; 0x1d81
xor a
- ld [$ffd4], a
- call $1cbb
- call $1ad2
- call $1c89
- call $321c
- call $1c66
+ ld [hBGMapMode], a
+ call Function1cbb
+ call Function1ad2
+ call Function1c89
+ call Function321c
+ call Function1c66
ld a, [$cf91]
bit 7, a
jr z, .asm_1da7 ; 0x1d98 $d
- call $1c10
- call $1bc9
- call $1ff8
+ call Function1c10
+ call Function1bc9
+ call Function1ff8
bit 1, a
jr z, .asm_1da9 ; 0x1da5 $2
.asm_1da7
@@ -2339,7 +3940,13 @@
ret
; 0x1dab
-INCBIN "baserom.gbc", $1dab, $1db8 - $1dab
+Function1dab: ; 1dab
+ call LoadMenuDataHeader
+ call Function1d81
+ call Function1c17
+ ld a, [$cfa9]
+ ret
+; 1db8
Function1db8: ; 0x1db8
push hl
@@ -2355,49 +3962,416 @@
call GetNthString
ld d, h
ld e, l
- call $30d6
+ call CopyName1
pop bc
pop hl
ret
; 0x1dcf
-INCBIN "baserom.gbc", $1dcf, $1e70 - $1dcf
+Function1dcf: ; 1dcf
+ ld bc, $0e07
+ jr .asm_1dd9
+ call LoadMenuDataHeader
+ jr .asm_1dfe
+
+.asm_1dd9
+ push bc
+ ld hl, MenuDataHeader_0x1e1d
+ call Function1d3c
+ pop bc
+ ld a, b
+ cp $e
+ jr nz, .asm_1de9
+ ld a, $e
+ ld b, a
+
+.asm_1de9
+ ld a, b
+ ld [$cf83], a
+ add $5
+ ld [$cf85], a
+ ld a, c
+ ld [$cf82], a
+ add $4
+ ld [$cf84], a
+ call Function1c00
+
+.asm_1dfe
+ call Function1d81
+ push af
+ ld c, $f
+ call DelayFrames
+ call Function1c17
+ pop af
+ jr c, .asm_1e16
+ ld a, [$cfa9]
+ cp $2
+ jr z, .asm_1e16
+ and a
+ ret
+
+.asm_1e16
+ ld a, $2
+ ld [$cfa9], a
+ scf
+ ret
+; 1e1d
+
+MenuDataHeader_0x1e1d: ; 1e1d
+ db $40 ; tile backup
+ db 5, 10 ; start coords
+ db 9, 15 ; end coords
+ dw MenuData2_0x1e25
+ db 1 ; default option
+; 1e25
+
+MenuData2_0x1e25: ; 1e25
+ db $c0 ; flags
+ db 2
+ db "YES@"
+ db "NO@"
+; 1e2e
+
+Function1e2e: ; 1e2e
+ call Function1e35
+ call Function1c00
+ ret
+; 1e35
+
+Function1e35: ; 1e35
+ push de
+ call Function1d3c
+ pop de
+ ld a, [$cf83]
+ ld h, a
+ ld a, [$cf85]
+ sub h
+ ld h, a
+ ld a, d
+ ld [$cf83], a
+ add h
+ ld [$cf85], a
+ ld a, [$cf82]
+ ld l, a
+ ld a, [$cf84]
+ sub l
+ ld l, a
+ ld a, e
+ ld [$cf82], a
+ add l
+ ld [$cf84], a
+ ret
+; 1e5d
+
+Function1e5d: ; 1e5d
+ call MenuFunc_1e7f
+ call MenuWriteText
+ call Function1eff
+ call Function1f23
+ call Function1bdd
+ call Function1ff8
+ ret
+; 1e70
+
SetUpMenu: ; 1e70
call MenuFunc_1e7f ; ???
call MenuWriteText
- call $1eff ; set up selection pointer
+ call Function1eff ; set up selection pointer
ld hl, $cfa5
set 7, [hl]
ret
MenuFunc_1e7f: ; 0x1e7f
- call $1c66
- call $1ebd
- call $1ea6
- call $1cbb
+ call Function1c66
+ call Function1ebd
+ call Function1ea6
+ call Function1cbb
ret
MenuWriteText: ; 0x1e8c
xor a
ld [hBGMapMode], a
- call $1ebd ; sort out the text
- call $1eda ; actually write it
- call $2e31
+ call Function1ebd ; sort out the text
+ call Function1eda ; actually write it
+ call Function2e31
ld a, [hOAMUpdate]
push af
ld a, $1
ld [hOAMUpdate], a
- call $321c
+ call Function321c
pop af
ld [hOAMUpdate], a
ret
; 0x1ea6
-INCBIN "baserom.gbc", $1ea6, $2009 - $1ea6
+Function1ea6: ; 1ea6
+ ld a, [$cf83]
+ ld c, a
+ ld a, [$cf85]
+ sub c
+ ld c, a
+ ld a, [$cf92]
+ add a
+ inc a
+ ld b, a
+ ld a, [$cf82]
+ add b
+ ld [$cf84], a
+ ret
+; 1ebd
-PlayClickSFX: ; $2009
+Function1ebd: ; 1ebd
+ ld hl, $cf93
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$cf76]
+ and a
+ jr z, .asm_1ed3
+ ld b, a
+ ld c, $ff
+.asm_1ecc
+ ld a, [hli]
+ cp c
+ jr nz, .asm_1ecc
+ dec b
+ jr nz, .asm_1ecc
+
+.asm_1ed3
+ ld d, h
+ ld e, l
+ ld a, [hl]
+ ld [$cf92], a
+ ret
+; 1eda
+
+Function1eda: ; 1eda
+ call Function1cfd
+ ld bc, $002a
+ add hl, bc
+.asm_1ee1
+ inc de
+ ld a, [de]
+ cp $ff
+ ret z
+ ld [MenuSelection], a
push de
+ push hl
+ ld d, h
+ ld e, l
+ ld hl, $cf95
+ call Function1efb
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop de
+ jr .asm_1ee1
+; 1efb
+
+Function1efb: ; 1efb
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1eff
+
+Function1eff: ; 1eff
+ call Function1c10
+ ld hl, $cfa8
+ ld a, [$cf91]
+ bit 3, a
+ jr z, .asm_1f0e
+ set 3, [hl]
+
+.asm_1f0e
+ ld a, [$cf91]
+ bit 2, a
+ jr z, .asm_1f19
+ set 5, [hl]
+ set 4, [hl]
+
+.asm_1f19
+ ret
+; 1f1a
+
+
+Function1f1a: ; 1f1a
+ call Function1bd3
+ ld hl, $cfa8
+ and [hl]
+ jr Function1f2a
+; 1f23
+
+Function1f23: ; 1f23
+ xor a
+ ld [$cf73], a
+ call Function1bc9
+; 1f2a
+
+Function1f2a: ; 1f2a
+ bit 0, a
+ jr nz, .asm_1f52
+ bit 1, a
+ jr nz, .asm_1f6d
+ bit 3, a
+ jr nz, .asm_1f6d
+ bit 4, a
+ jr nz, .asm_1f44
+ bit 5, a
+ jr nz, .asm_1f4b
+ xor a
+ ld [$cf73], a
+ jr .asm_1f57
+
+.asm_1f44
+ ld a, $10
+ ld [$cf73], a
+ jr .asm_1f57
+
+.asm_1f4b
+ ld a, $20
+ ld [$cf73], a
+ jr .asm_1f57
+
+.asm_1f52
+ ld a, $1
+ ld [$cf73], a
+
+.asm_1f57
+ call Function1ebd
+ ld a, [$cfa9]
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld a, [hl]
+ ld [MenuSelection], a
+ ld a, [$cfa9]
+ ld [$cf88], a
+ and a
+ ret
+
+.asm_1f6d
+ ld a, $2
+ ld [$cf73], a
+ ld a, $ff
+ ld [MenuSelection], a
+ scf
+ ret
+; 1f79
+
+Function1f79: ; 1f79
+ push de
+ ld hl, $cf97
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [MenuSelection]
+ call GetNthString
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ ret
+; 1f8d
+
+Function1f8d: ; 1f8d
+ push de
+ ld a, [MenuSelection]
+ call Function1fb1
+ inc hl
+ inc hl
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ call PlaceString
+ ret
+; 1f9e
+
+Function1f9e: ; 1f9e
+ call Function1fb1
+ inc hl
+ inc hl
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ret
+; 1fa7
+
+Function1fa7: ; 1fa7
+ ld a, [MenuSelection]
+ call Function1fb1
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1fb1
+
+Function1fb1: ; 1fb1
+ ld e, a
+ ld d, $0
+ ld hl, $cf97
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ret
+; 1fbf
+
+Function1fbf: ; 1fbf
+ ld hl, $cf71
+ call Function1ff0
+ ld hl, $cf81
+ call Function1ff0
+ ld hl, $cf91
+ call Function1ff0
+ ld hl, $cfa1
+ call Function1ff0
+ ld a, [rSVBK]
+ push af
+ ld a, $7
+ ld [rSVBK], a
+ xor a
+ ld hl, $dfff
+ ld [hld], a
+ ld [hld], a
+ ld a, l
+ ld [$cf71], a
+ ld a, h
+ ld [$cf72], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 1ff0
+
+Function1ff0: ; 1ff0
+ ld bc, $0010
+ xor a
+ call ByteFill
+ ret
+; 1ff8
+
+Function1ff8: ; 1ff8
+ push af
+ and $3
+ jr z, .asm_2007
+ ld hl, $cf81
+ bit 3, [hl]
+ jr nz, .asm_2007
+ call PlayClickSFX
+
+.asm_2007
+ pop af
+ ret
+; 2009
+
+
+PlayClickSFX: ; 2009
+ push de
ld de, SFX_READ_TEXT_2
call StartSFX
pop de
@@ -2404,8 +4378,71 @@
ret
; 0x2012
-INCBIN "baserom.gbc", $2012, $2063 - $2012
+Function2012: ; 2012
+ call Function1d4f
+ call Functiona46
+ call Function1c07
+ ret
+; 201c
+Function201c: ; 201c
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+
+ call PlaceString
+ pop af
+ rst Bankswitch
+
+ ret
+; 202a
+
+Function202a: ; 202a
+ ld a, [hROMBank]
+ ld [$cf94], a
+ ld a, $9
+ ld hl, $400e
+ rst FarCall
+ ld a, [$cf88]
+ ret
+; 2039
+
+Function2039: ; 2039
+ ld a, [hROMBank]
+ ld [$cf94], a
+ ld a, $9
+ ld hl, $4022
+ rst FarCall
+ ld a, [$cf88]
+ ret
+; 2048
+
+Function2048: ; 2048
+ ld a, [hROMBank]
+ ld [$cf94], a
+ ld a, $9
+ ld hl, $403c
+ rst FarCall
+ ld a, [$cf88]
+ ret
+; 2057
+
+Function2057: ; 2057
+ ld a, [hROMBank]
+ push af
+ ld a, $21
+ rst Bankswitch
+
+ call $42db
+ pop af
+ rst Bankswitch
+
+ ret
+; 2063
+
+
AskSerial: ; 2063
; send out a handshake while serial int is off
ld a, [$c2d4]
@@ -2444,8 +4481,19 @@
ret
; 208a
-INCBIN "baserom.gbc", $208a, $209e - $208a
+Function208a: ; 208a
+ xor a
+ ld [GameTimeCap], a
+ ld [GameTimeHours], a
+ ld [$d4c5], a
+ ld [GameTimeMinutes], a
+ ld [GameTimeSeconds], a
+ ld [GameTimeFrames], a
+ ret
+; 209e
+
+
GameTimer: ; 209e
; precautionary
nop
@@ -2575,9 +4623,402 @@
; 210f
-INCBIN "baserom.gbc", $210f, $22ee - $210f
+Function210f: ; 210f
+ ld hl, $c7e8
+ ld bc, $0018
+ ld a, $0
+ call ByteFill
+ ret
+; 211b
+Function211b: ; 211b
+ push hl
+ ld hl, $dbf7
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ or h
+ ld a, [hl]
+ jr nz, .asm_2128
+ ld a, $ff
+.asm_2128
+ pop hl
+ ret
+; 212a
+
+Function212a: ; 212a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ xor a
+ ld [$dbf7], a
+ ld [$dbf8], a
+ call Function2147
+ ret c
+ ld a, e
+ ld [$dbf7], a
+ ld a, d
+ ld [$dbf8], a
+ xor a
+ ret
+; 2147
+
+Function2147: ; 2147
+ push bc
+ ld a, [hROMBank]
+ push af
+ ld a, $13
+ rst Bankswitch
+
+ ld hl, $501e
+.asm_2151
+ push hl
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_2167
+ cp b
+ jr nz, .asm_2160
+ ld a, [hli]
+ cp c
+ jr nz, .asm_2160
+ jr .asm_216a
+
+.asm_2160
+ pop hl
+ ld de, $0004
+ add hl, de
+ jr .asm_2151
+
+.asm_2167
+ scf
+ jr .asm_216d
+
+.asm_216a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+
+.asm_216d
+ pop hl
+ pop bc
+ ld a, b
+ rst Bankswitch
+
+ pop bc
+ ret
+; 2173
+
+Function2173: ; 2173
+ call Function217a
+ call $0db1
+ ret
+; 217a
+
+Function217a: ; 217a
+ ld a, [hROMBank]
+ push af
+ ld a, [TileSetBlocksBank]
+ rst Bankswitch
+
+ call Function2198
+ ld a, $60
+ ld hl, TileMap
+ ld bc, $0168
+ call ByteFill
+ ld a, $13
+ rst Bankswitch
+
+ call $515b
+ pop af
+ rst Bankswitch
+
+ ret
+; 2198
+
+Function2198: ; 2198
+ ld a, [$d194]
+ ld e, a
+ ld a, [$d195]
+ ld d, a
+ ld hl, EnemyMoveAnimation
+ ld b, $5
+ push de
+ push hl
+ ld c, $6
+ push de
+ push hl
+ ld a, [de]
+ and a
+ jr nz, .asm_21b2
+ ld a, [$d19d]
+
+.asm_21b2
+ ld e, l
+ ld d, h
+ add a
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld a, [TileSetBlocksAddress]
+ add l
+ ld l, a
+ ld a, [$d1de]
+ adc h
+ ld h, a
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, e
+ add $14
+ ld e, a
+ jr nc, .asm_21d8
+ inc d
+
+.asm_21d8
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, e
+ add $14
+ ld e, a
+ jr nc, .asm_21eb
+ inc d
+
+.asm_21eb
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, e
+ add $14
+ ld e, a
+ jr nc, .asm_21fe
+ inc d
+
+.asm_21fe
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop hl
+ ld de, $0004
+ add hl, de
+ pop de
+ inc de
+ dec c
+ jp nz, $21a9
+ pop hl
+ ld de, $0060
+ add hl, de
+ pop de
+ ld a, [$d19f]
+ add $6
+ add e
+ ld e, a
+ jr nc, .asm_2225
+ inc d
+
+.asm_2225
+ dec b
+ jp nz, $21a5
+ ret
+; 222a
+
+Function222a: ; 222a
+ ld a, $fa
+ ld [$ff9f], a
+ ld a, $5
+ ld hl, $5363
+ rst FarCall
+ xor a
+ ld [$ff9f], a
+ ret
+; 2238
+
+Function2238: ; 2238
+ call Function2252
+ ret nc
+ push bc
+ ld a, $5
+ ld hl, $49af
+ rst FarCall
+ pop bc
+ ret nc
+ call Function22a7
+ scf
+ ret
+; 224a
+
+
+
+Function224a: ; 224a
+ call Function2252
+ ret nc
+ call Function22a7
+ ret
+; 2252
+
+Function2252: ; 2252
+ ld a, $5
+ ld hl, $499a
+ rst FarCall
+ ret nc
+ ld a, [hROMBank]
+ push af
+ call Function2c52
+ call Function2266
+ pop de
+ ld a, d
+ rst Bankswitch
+
+ ret
+; 2266
+
+Function2266: ; 2266
+ ld a, [MapY]
+ sub $4
+ ld e, a
+ ld a, [MapX]
+ sub $4
+ ld d, a
+ ld a, [$dbfb]
+ and a
+ ret z
+ ld c, a
+ ld hl, $dbfc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.asm_227e
+ push hl
+ ld a, [hli]
+ cp e
+ jr nz, .asm_2289
+ ld a, [hli]
+ cp d
+ jr nz, .asm_2289
+ jr .asm_2296
+
+.asm_2289
+ pop hl
+ ld a, $5
+ add l
+ ld l, a
+ jr nc, .asm_2291
+ inc h
+
+.asm_2291
+ dec c
+ jr nz, .asm_227e
+ xor a
+ ret
+
+.asm_2296
+ pop hl
+ call Function22a3
+ ret nc
+ ld a, [$dbfb]
+ inc a
+ sub c
+ ld c, a
+ scf
+ ret
+; 22a3
+
+Function22a3: ; 22a3
+ inc hl
+ inc hl
+ scf
+ ret
+; 22a7
+
+Function22a7: ; 22a7
+ ld a, [hROMBank]
+ push af
+ call Function2c52
+ call Function22b4
+ pop af
+ rst Bankswitch
+
+ scf
+ ret
+; 22b4
+
+Function22b4: ; 22b4
+ push bc
+ ld hl, $dbfc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, c
+ dec a
+ ld bc, $0005
+ call AddNTimes
+ ld bc, $0002
+ add hl, bc
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_22d0
+ ld hl, $dcac
+ ld a, [hli]
+
+.asm_22d0
+ pop bc
+ ld [$d146], a
+ ld a, [hli]
+ ld [$d147], a
+ ld a, [hli]
+ ld [$d148], a
+ ld a, c
+ ld [$d149], a
+ ld a, [MapGroup]
+ ld [$d14a], a
+ ld a, [MapNumber]
+ ld [$d14b], a
+ scf
+ ret
+; 22ee
+
+
+
CheckOutdoorMap: ; 22ee
cp ROUTE
ret z
@@ -2597,9 +5038,121 @@
; 2300
-INCBIN "baserom.gbc", $2300, $23a3 - $2300
+Function2300: ; 2300
+ cp $3
+ ret z
+ cp $6
+ ret z
+ cp $5
+ ret
+; 2309
+Function2309: ; 2309
+ call Function2326
+ call Function2c52
+ call Function234f
+ xor a
+ call Function2336
+ ret
+; 2317
+Function2317: ; 2317
+ call Function2326
+ call Function2c52
+ call Function234f
+ ld a, $1
+ call Function2336
+ ret
+; 2326
+
+
+
+Function2326: ; 2326
+ call Function2c3d
+ call Function2c1c
+ call GetSecondaryMapHeaderPointer
+ call Function235c
+ call Function2368
+ ret
+; 2336
+
+Function2336: ; 2336
+ push af
+ ld hl, $d1a6
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ inc hl
+ call Function23da
+ call Function23f1
+ call Function2408
+ pop af
+ and a
+ ret nz
+ call Function241f
+ ret
+; 234f
+
+Function234f: ; 234f
+ ld hl, $d1a4
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Function23ac
+ call Function23c3
+ ret
+; 235c
+
+Function235c: ; 235c
+ ld de, $d19d
+ ld c, $c
+.asm_2361
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_2361
+ ret
+; 2368
+
+Function2368: ; 2368
+ ld a, $ff
+ ld [NorthConnectedMapGroup], a
+ ld [SouthConnectedMapGroup], a
+ ld [WestConnectedMapGroup], a
+ ld [EastConnectedMapGroup], a
+ ld a, [$d1a8]
+ ld b, a
+ bit 3, b
+ jr z, .asm_2384
+ ld de, NorthConnectedMapGroup
+ call GetMapConnection
+
+.asm_2384
+ bit 2, b
+ jr z, .asm_238e
+ ld de, SouthConnectedMapGroup
+ call GetMapConnection
+
+.asm_238e
+ bit 1, b
+ jr z, .asm_2398
+ ld de, WestConnectedMapGroup
+ call GetMapConnection
+
+.asm_2398
+ bit 0, b
+ jr z, .asm_23a2
+ ld de, EastConnectedMapGroup
+ call GetMapConnection
+
+.asm_23a2
+ ret
+; 23a3
+
+
+
GetMapConnection: ; 23a3
; Load map connection struct at hl into de.
ld c, SouthMapConnection - NorthMapConnection
@@ -2613,9 +5166,274 @@
; 23ac
-INCBIN "baserom.gbc", $23ac, $2524 - $23ac
+Function23ac: ; 23ac
+ ld a, [hli]
+ ld c, a
+ ld [$dc07], a
+ ld a, l
+ ld [$dc08], a
+ ld a, h
+ ld [$dc09], a
+ ld a, c
+ and a
+ ret z
+ ld bc, $0004
+ call AddNTimes
+ ret
+; 23c3
+Function23c3: ; 23c3
+ ld a, [hli]
+ ld c, a
+ ld [$dc0a], a
+ ld a, l
+ ld [$dc0b], a
+ ld a, h
+ ld [$dc0c], a
+ ld a, c
+ and a
+ ret z
+ ld bc, $0003
+ call AddNTimes
+ ret
+; 23da
+Function23da: ; 23da
+ ld a, [hli]
+ ld c, a
+ ld [$dbfb], a
+ ld a, l
+ ld [$dbfc], a
+ ld a, h
+ ld [$dbfd], a
+ ld a, c
+ and a
+ ret z
+ ld bc, $0005
+ call AddNTimes
+ ret
+; 23f1
+
+Function23f1: ; 23f1
+ ld a, [hli]
+ ld c, a
+ ld [$dbfe], a
+ ld a, l
+ ld [$dbff], a
+ ld a, h
+ ld [$dc00], a
+ ld a, c
+ and a
+ ret z
+ ld bc, $0008
+ call AddNTimes
+ ret
+; 2408
+
+Function2408: ; 2408
+ ld a, [hli]
+ ld c, a
+ ld [$dc01], a
+ ld a, l
+ ld [$dc02], a
+ ld a, h
+ ld [$dc03], a
+ ld a, c
+ and a
+ ret z
+ ld bc, $0005
+ call AddNTimes
+ ret
+; 241f
+
+Function241f: ; 241f
+ push hl
+ call Function2471
+ pop de
+ ld hl, $d72e
+ ld a, [de]
+ inc de
+ ld [$dc04], a
+ ld a, e
+ ld [$dc05], a
+ ld a, d
+ ld [$dc06], a
+ ld a, [$dc04]
+ call Function2457
+ ld a, [$dc04]
+ ld c, a
+ ld a, $10
+ sub c
+ jr z, .asm_2454
+ ld bc, $0001
+ add hl, bc
+ ld bc, $0010
+.asm_244a
+ ld [hl], $0
+ inc hl
+ ld [hl], $ff
+ dec hl
+ add hl, bc
+ dec a
+ jr nz, .asm_244a
+
+.asm_2454
+ ld h, d
+ ld l, e
+ ret
+; 2457
+
+Function2457: ; 2457
+ and a
+ ret z
+ ld c, a
+.asm_245a
+ push bc
+ push hl
+ ld a, $ff
+ ld [hli], a
+ ld b, $d
+.asm_2461
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .asm_2461
+ pop hl
+ ld bc, $0010
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_245a
+ ret
+; 2471
+
+Function2471: ; 2471
+ ld hl, $d4fe
+ ld bc, $01e0
+ xor a
+ call ByteFill
+ ld hl, $d4fe
+ ld de, $0028
+ ld c, $c
+ xor a
+.asm_2484
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_2484
+ ret
+; 248a
+
+Function248a: ; 248a
+ call GetMapEventBank
+ rst Bankswitch
+
+ ld hl, $d1a6
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ inc hl
+ inc hl
+ ld a, [WarpNumber]
+ dec a
+ ld c, a
+ ld b, $0
+ ld a, $5
+ call AddNTimes
+ ld a, [hli]
+ ld [YCoord], a
+ ld a, [hli]
+ ld [XCoord], a
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_24b3
+ call Function24ba
+
+.asm_24b3
+ ld a, $41
+ ld hl, $486d
+ rst FarCall
+ ret
+; 24ba
+
+Function24ba: ; 24ba
+ ld a, [$d149]
+ ld [$dcac], a
+ ld a, [$d14a]
+ ld [BackupMapGroup], a
+ ld a, [$d14b]
+ ld [BackupMapNumber], a
+ ret
+; 24cd
+
+Function24cd: ; 24cd
+ ld hl, OverworldMap
+ ld bc, $0514
+ ld a, $0
+ call ByteFill
+ call Function24e4
+ call FillMapConnections
+ ld a, $1
+ call Function263b
+ ret
+; 24e4
+
+
+
+Function24e4: ; 24e4
+ ld a, [hROMBank]
+ push af
+ ld hl, OverworldMap
+ ld a, [$d19f]
+ ld [hConnectedMapWidth], a
+ add $6
+ ld [hConnectionStripLength], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld c, $3
+ add hl, bc
+ ld a, [$d1a0]
+ rst Bankswitch
+
+ ld a, [$d1a1]
+ ld e, a
+ ld a, [$d1a2]
+ ld d, a
+ ld a, [$d19e]
+ ld b, a
+.asm_250c
+ push hl
+ ld a, [hConnectedMapWidth]
+ ld c, a
+.asm_2510
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_2510
+ pop hl
+ ld a, [hConnectionStripLength]
+ add l
+ ld l, a
+ jr nc, .asm_251e
+ inc h
+
+.asm_251e
+ dec b
+ jr nz, .asm_250c
+ pop af
+ rst Bankswitch
+
+ ret
+; 2524
+
+
+
FillMapConnections: ; 2524
; North
@@ -2791,10 +5609,11 @@
ret
; 261b
+Function261b: ; 261b
+ ld [$d432], a
+ ret
+; 261f
-INCBIN "baserom.gbc", $261b, $261f - $261b
-
-
PushScriptPointer: ; 261f
; Call a script at a:hl.
@@ -2811,10 +5630,139 @@
ret
; 2631
+Function2631: ; 2631
+ ld a, [ScriptRunning]
+ and a
+ ret nz
+ call GetMapEventBank
+ jr PushScriptPointer
+; 263b
-INCBIN "baserom.gbc", $2631, $26d4 - $2631
+Function263b: ; 263b
+ ld b, a
+ ld a, [hROMBank]
+ push af
+ call Function2c52
+ call Function2653
+ jr nc, .asm_2650
+ call GetMapEventBank
+ ld b, a
+ ld d, h
+ ld e, l
+ call Function2674
+.asm_2650
+ pop af
+ rst Bankswitch
+ ret
+; 2653
+
+Function2653: ; 2653
+ ld a, [$dc0a]
+ ld c, a
+ and a
+ ret z
+ ld hl, $dc0b
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ or h
+ ret z
+ ld de, $0003
+.asm_2664
+ ld a, [hl]
+ cp b
+ jr z, .asm_266e
+ add hl, de
+ dec c
+ jr nz, .asm_2664
+ xor a
+ ret
+
+.asm_266e
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ scf
+ ret
+; 2674
+
+Function2674: ; 2674
+ callba Unknown_0x974f3
+ ld a, [ScriptMode]
+ push af
+ ld hl, ScriptFlags
+ ld a, [hl]
+ push af
+ set 1, [hl]
+ callba Function96c56
+ callba ScriptEvents
+ pop af
+ ld [ScriptFlags], a
+ pop af
+ ld [ScriptMode], a
+ ret
+; 269a
+
+Function269a: ; 269a
+ ld a, [hROMBank]
+ push af
+ ld a, b
+ rst Bankswitch
+
+ push hl
+ call SpeechTextBox
+ call Function2e31
+ ld a, $1
+ ld [hOAMUpdate], a
+ call Function321c
+ pop hl
+ call PrintTextBoxText
+ xor a
+ ld [hOAMUpdate], a
+ pop af
+ rst Bankswitch
+
+ ret
+; 26b7
+
+Function26b7: ; 26b7
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+
+ call Function26c5
+ pop af
+ rst Bankswitch
+
+ ret
+; 26c5
+
+Function26c5: ; 26c5
+ push de
+ ret
+; 26c7
+
+Function26c7: ; 26c7
+ ld a, [hROMBank]
+ push af
+ ld a, b
+ rst Bankswitch
+
+ ld a, c
+ call Function19e9
+ pop hl
+ ld a, h
+ rst Bankswitch
+
+ ret
+; 26d4
+
+
GetScriptByte: ; 0x26d4
; Return byte at ScriptBank:ScriptPos in a.
@@ -2849,6 +5797,7 @@
ret
; 0x26ef
+
ObjectEvent: ; 0x26ef
jumptextfaceplayer ObjectEventText
; 0x26f2
@@ -2859,9 +5808,552 @@
; 0x26f7
-INCBIN "baserom.gbc", $26f7, $2a07 - $26f7
+BGEvent: ; 26f7
+ jumptext BGEventText
+; 26fa
+BGEventText: ; 26fa
+ text_jump UnknownText_0x1c46fc, BANK(UnknownText_0x1c46fc)
+ db "@"
+; 26ff
+
+CoordinatesEvent: ; 26ff
+ jumptext CoordinatesEventText
+; 2702
+
+CoordinatesEventText: ; 2702
+ text_jump UnknownText_0x1c4706, BANK(UnknownText_0x1c4706)
+ db "@"
+; 2707
+
+
+Function2707: ; 2707
+ ld a, [hConnectionStripLength]
+ ld e, a
+ ld d, $0
+ ld hl, $d81e
+ add hl, de
+ ld a, [hl]
+ ret
+; 2712
+
+Function2712: ; 2712
+ ld a, [hConnectionStripLength]
+ ld e, a
+ ld d, $0
+ ld hl, $d81e
+ add hl, de
+ ld [hl], $ff
+ ret
+; 271e
+
+Function271e: ; 271e
+ ld a, [hConnectionStripLength]
+ ld e, a
+ ld d, $0
+ ld hl, $d81e
+ add hl, de
+ ld [hl], $0
+ ret
+; 272a
+
+
+Function272a: ; 272a
+ ld hl, TileMap
+ ld de, BGMapBuffer
+ call Function27b7
+ ld c, $28
+ call Functiondbd
+ ld a, [$d152]
+ ld e, a
+ ld a, [$d153]
+ ld d, a
+ call Function27d3
+ ld a, $1
+ ld [hBGMapUpdate], a
+ ret
+; 2748
+
+Function2748: ; 2748
+ ld hl, $c5e0
+ ld de, BGMapBuffer
+ call Function27b7
+ ld c, $28
+ call Functiondbd
+ ld a, [$d152]
+ ld l, a
+ ld a, [$d153]
+ ld h, a
+ ld bc, $0200
+ add hl, bc
+ ld a, h
+ and $3
+ or $98
+ ld e, l
+ ld d, a
+ call Function27d3
+ ld a, $1
+ ld [hBGMapUpdate], a
+ ret
+; 2771
+
+Function2771: ; 2771
+ ld hl, TileMap
+ ld de, BGMapBuffer
+ call Function27c0
+ ld c, $24
+ call Functiondbd
+ ld a, [$d152]
+ ld e, a
+ ld a, [$d153]
+ ld d, a
+ call Function27f8
+ ld a, $1
+ ld [hBGMapUpdate], a
+ ret
+; 278f
+
+Function278f: ; 278f
+ ld hl, $c4b2
+ ld de, BGMapBuffer
+ call Function27c0
+ ld c, $24
+ call Functiondbd
+ ld a, [$d152]
+ ld e, a
+ and $e0
+ ld b, a
+ ld a, e
+ add $12
+ and $1f
+ or b
+ ld e, a
+ ld a, [$d153]
+ ld d, a
+ call Function27f8
+ ld a, $1
+ ld [hBGMapUpdate], a
+ ret
+; 27b7
+
+Function27b7: ; 27b7
+ ld c, $28
+.asm_27b9
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_27b9
+ ret
+; 27c0
+
+Function27c0: ; 27c0
+ ld c, $12
+.asm_27c2
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld a, $13
+ add l
+ ld l, a
+ jr nc, .asm_27cf
+ inc h
+
+.asm_27cf
+ dec c
+ jr nz, .asm_27c2
+ ret
+; 27d3
+
+Function27d3: ; 27d3
+ ld hl, BGMapBufferPtrs
+ push de
+ call $27df
+ pop de
+ ld a, $20
+ add e
+ ld e, a
+ ld c, $a
+.asm_27e1
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, e
+ inc a
+ inc a
+ and $1f
+ ld b, a
+ ld a, e
+ and $e0
+ or b
+ ld e, a
+ dec c
+ jr nz, .asm_27e1
+ ld a, $14
+ ld [$ffdc], a
+ ret
+; 27f8
+
+Function27f8: ; 27f8
+ ld hl, BGMapBufferPtrs
+ ld c, $12
+.asm_27fd
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, $20
+ add e
+ ld e, a
+ jr nc, .asm_280e
+ inc d
+ ld a, d
+ and $3
+ or $98
+ ld d, a
+
+.asm_280e
+ dec c
+ jr nz, .asm_27fd
+ ld a, $12
+ ld [$ffdc], a
+ ret
+; 2816
+
+Function2816: ; 2816
+ ld hl, BGMapBuffer
+ ld bc, $0078
+ xor a
+ call ByteFill
+ ret
+; 2821
+
+Function2821: ; 2821
+ ld hl, TileSetAddress
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [TileSetBank]
+ ld e, a
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, e
+ ld de, $d000
+ call FarDecompress
+ ld hl, $d000
+ ld de, VTiles2
+ ld bc, $0600
+ call CopyBytes
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, $d600
+ ld de, VTiles2
+ ld bc, $0600
+ call CopyBytes
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ ld a, [$d199]
+ cp $1
+ jr z, .asm_286f
+ cp $2
+ jr z, .asm_286f
+ cp $4
+ jr z, .asm_286f
+ jr .asm_2875
+
+.asm_286f
+ ld a, $7
+ ld hl, $4000
+ rst FarCall
+
+.asm_2875
+ xor a
+ ld [hTileAnimFrame], a
+ ret
+; 2879
+
+Function2879: ; 2879
+ ld hl, $d194
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $dcb9
+ ld c, $5
+ ld b, $6
+.asm_2886
+ push bc
+ push hl
+.asm_2888
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_2888
+ pop hl
+ ld a, [$d19f]
+ add $6
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_2886
+ ret
+; 289d
+
+Function289d: ; 289d
+ ld hl, $d194
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $dcb9
+ ld a, [$d19f]
+ add $6
+ ld [hConnectionStripLength], a
+ ld a, [$d151]
+ and a
+ jr z, .asm_28cb
+ cp $1
+ jr z, .asm_28c0
+ cp $2
+ jr z, .asm_28d4
+ cp $3
+ jr z, .asm_28da
+ ret
+
+.asm_28c0
+ ld de, $dcbf
+ ld a, [hConnectionStripLength]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ jr .asm_28ce
+
+.asm_28cb
+ ld de, $dcb9
+
+.asm_28ce
+ ld b, $6
+ ld c, $4
+ jr .asm_28f7
+
+.asm_28d4
+ ld de, $dcba
+ inc hl
+ jr .asm_28dd
+
+.asm_28da
+ ld de, $dcb9
+
+.asm_28dd
+ ld b, $5
+ ld c, $5
+ jr .asm_28f7
+
+ ld hl, $d194
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d19f]
+ add $6
+ ld [hConnectionStripLength], a
+ ld de, $dcb9
+ ld b, $6
+ ld c, $5
+
+.asm_28f7
+ push bc
+ push hl
+ push de
+.asm_28fa
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .asm_28fa
+ pop de
+ ld a, e
+ add $6
+ ld e, a
+ jr nc, .asm_2908
+ inc d
+
+.asm_2908
+ pop hl
+ ld a, [hConnectionStripLength]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_28f7
+ ret
+; 2914
+
+Function2914: ; 2914
+ xor a
+ ld [TilePermissions], a
+ call Function296c
+ call Function294d
+ ld a, [MapX]
+ ld d, a
+ ld a, [MapY]
+ ld e, a
+ call Function2a3c
+ ld [StandingTile], a
+ call Function29ff
+ ret nz
+ ld a, [StandingTile]
+ and 7
+ ld hl, .data_2945
+ add l
+ ld l, a
+ ld a, 0
+ adc h
+ ld h, a
+ ld a, [hl]
+ ld hl, TilePermissions
+ or [hl]
+ ld [hl], a
+ ret
+; 2945
+
+.data_2945 ; 2945
+ db 1, 2, 4, 8, 9, 10, 5, 6
+; 294d
+
+Function294d: ; 294d
+ ld a, [MapX]
+ ld d, a
+ ld a, [MapY]
+ ld e, a
+ push de
+ inc e
+ call Function2a3c
+ ld [TileDown], a
+ call Function298b
+ pop de
+ dec e
+ call Function2a3c
+ ld [TileUp], a
+ call Function29a8
+ ret
+; 296c
+
+Function296c: ; 296c
+ ld a, [MapX]
+ ld d, a
+ ld a, [MapY]
+ ld e, a
+ push de
+ dec d
+ call Function2a3c
+ ld [TileLeft], a
+ call Function29e2
+ pop de
+ inc d
+ call Function2a3c
+ ld [TileRight], a
+ call Function29c5
+ ret
+; 298b
+
+Function298b: ; 298b
+ call Function29ff
+ ret nz
+ ld a, [TileDown]
+ and $7
+ cp $2
+ jr z, .asm_299f
+ cp $6
+ jr z, .asm_299f
+ cp $7
+ ret nz
+
+.asm_299f
+ ld a, [TilePermissions]
+ or $8
+ ld [TilePermissions], a
+ ret
+; 29a8
+
+Function29a8: ; 29a8
+ call Function29ff
+ ret nz
+ ld a, [TileUp]
+ and $7
+ cp $3
+ jr z, .asm_29bc
+ cp $4
+ jr z, .asm_29bc
+ cp $5
+ ret nz
+
+.asm_29bc
+ ld a, [TilePermissions]
+ or $4
+ ld [TilePermissions], a
+ ret
+; 29c5
+
+Function29c5: ; 29c5
+ call Function29ff
+ ret nz
+ ld a, [TileRight]
+ and $7
+ cp $1
+ jr z, .asm_29d9
+ cp $5
+ jr z, .asm_29d9
+ cp $7
+ ret nz
+
+.asm_29d9
+ ld a, [TilePermissions]
+ or $1
+ ld [TilePermissions], a
+ ret
+; 29e2
+
+Function29e2: ; 29e2
+ call Function29ff
+ ret nz
+ ld a, [TileLeft]
+ and $7
+ cp $0
+ jr z, .asm_29f6
+ cp $4
+ jr z, .asm_29f6
+ cp $6
+ ret nz
+
+.asm_29f6
+ ld a, [TilePermissions]
+ or $2
+ ld [TilePermissions], a
+ ret
+; 29ff
+
+Function29ff: ; 29ff
+ and $f0
+ cp $b0
+ ret z
+ cp $c0
+ ret
+; 2a07
+
+
GetFacingTileCoord: ; 2a07
; Return map coordinates in (d, e) and tile id in a
; of the tile the player is facing.
@@ -2908,9 +6400,71 @@
; 2a3c
-INCBIN "baserom.gbc", $2a3c, $2a8b - $2a3c
+Function2a3c: ; 2a3c
+ call Function2a66
+ ld a, [hl]
+ and a
+ jr z, .asm_2a63
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld a, [TileSetCollisionAddress]
+ ld c, a
+ ld a, [$d1e1]
+ ld b, a
+ add hl, bc
+ rr d
+ jr nc, .asm_2a56
+ inc hl
+.asm_2a56
+ rr e
+ jr nc, .asm_2a5c
+ inc hl
+ inc hl
+.asm_2a5c
+ ld a, [TileSetCollisionBank]
+ call GetFarByte
+ ret
+
+.asm_2a63
+ ld a, $ff
+ ret
+; 2a66
+
+Function2a66: ; 2a66
+ ld a, [$d19f]
+ add $6
+ ld c, a
+ ld b, $0
+ ld hl, $c801
+ add hl, bc
+ ld a, e
+ srl a
+ jr z, .asm_2a84
+ and a
+.asm_2a78
+ srl a
+ jr nc, .asm_2a7d
+ add hl, bc
+
+.asm_2a7d
+ sla c
+ rl b
+ and a
+ jr nz, .asm_2a78
+
+.asm_2a84
+ ld c, d
+ srl c
+ ld b, $0
+ add hl, bc
+ ret
+; 2a8b
+
+
CheckFacingSign: ; 2a8b
call GetFacingTileCoord
ld b, a
@@ -2926,8 +6480,8 @@
ld c, a
ld a, [hROMBank]
push af
- call $2c52
- call $2aaa
+ call Function2c52
+ call Function2aaa
pop hl
ld a, h
rst Bankswitch
@@ -2934,7 +6488,7 @@
ret
; 2aaa
-; 2aaa
+Function2aaa: ; 2aaa
ld hl, $dc02
ld a, [hli]
ld h, [hl]
@@ -2970,16 +6524,81 @@
call CopyBytes
scf
ret
-; 0x2ad4
+; 2ad4
+Function2ad4: ; 2ad4
+ ld a, [$dbfe]
+ and a
+ ret z
+ ld c, a
+ ld a, [hROMBank]
+ push af
+ call Function2c52
+ call Function2ae7
+ pop hl
+ ld a, h
+ rst Bankswitch
+ ret
+; 2ae7
-INCBIN "baserom.gbc", $2ad4, $2b29 - $2ad4
+Function2ae7: ; 2ae7
+ ld hl, $dbff
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Function211b
+ ld b, a
+ ld a, [MapX]
+ sub $4
+ ld d, a
+ ld a, [MapY]
+ sub $4
+ ld e, a
+.asm_2afd
+ push hl
+ ld a, [hli]
+ cp b
+ jr z, .asm_2b06
+ cp $ff
+ jr nz, .asm_2b10
+.asm_2b06
+ ld a, [hli]
+ cp e
+ jr nz, .asm_2b10
+ ld a, [hli]
+ cp d
+ jr nz, .asm_2b10
+ jr .asm_2b1d
+.asm_2b10
+ pop hl
+ ld a, $8
+ add l
+ ld l, a
+ jr nc, .asm_2b18
+ inc h
+
+.asm_2b18
+ dec c
+ jr nz, .asm_2afd
+ xor a
+ ret
+
+.asm_2b1d
+ pop hl
+ ld de, EngineBuffer1
+ ld bc, $0008
+ call CopyBytes
+ scf
+ ret
+; 2b29
+
+
FadeToMenu: ; 2b29
xor a
ld [hBGMapMode], a
- call $1d6e
+ call Function1d6e
ld a, $23
ld hl, $4084
rst FarCall
@@ -2989,9 +6608,35 @@
; 2b3c
-INCBIN "baserom.gbc", $2b3c, $2b74 - $2b3c
+Function2b3c: ; 2b3c
+ call WhiteBGMap
+ call Function2bae
+ call Function1ad2
+ call Function1d7d
+ call $0d90
+ jr .asm_2b5c
+ call WhiteBGMap
+ call Function1d7d
+ call Function2bae
+ call Function1ad2
+ call $0d90
+.asm_2b5c
+ ld b, $9
+ call GetSGBLayout
+ ld a, $12
+ ld hl, $5409
+ rst FarCall
+ call Function3200
+ ld a, $23
+ ld hl, $4079
+ rst FarCall
+ call Function2ee4
+ ret
+; 2b74
+
+
Function2b74: ; 0x2b74
push af
ld a, $1
@@ -2998,13 +6643,13 @@
ld [$c2ce], a
call WhiteBGMap
call ClearSprites
- call $2bae
+ call Function2bae
ld hl, $c590 ; tile 0, 12
ld bc, $0412
call TextBox
ld hl, VramState
set 0, [hl]
- call $1ad2
+ call Function1ad2
call Function3200
ld b, $9
call GetSGBLayout
@@ -3011,7 +6656,7 @@
ld a, $12
ld hl, $5409
rst $8
- call $0485
+ call Function485
call DelayFrame
ld a, $1
ld [$ffde], a
@@ -3019,9 +6664,44 @@
ret
; 0x2bae
-INCBIN "baserom.gbc", $2bae, $2bed-$2bae
+Function2bae: ; 2bae
+ call DisableLCD
+ call ClearSprites
+ ld a, $5
+ ld hl, $4168
+ rst FarCall
+ call $0e51
+ call Functione5f
+ ld a, [hROMBank]
+ push af
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call Function2c24
+ ld a, $23
+ ld hl, $4001
+ rst FarCall
+ call Function2173
+ call Function2821
+ ld a, $9
+ call Function3cb4
+ pop af
+ rst Bankswitch
-GetMapHeaderPointer: ; 0x2bed
+ call EnableLCD
+ ret
+; 2be5
+
+
+GetMapHeaderPointer: ; 2be5
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+; 2bed
+
+GetAnyMapHeaderPointer: ; 0x2bed
; Prior to calling this function, you must have switched banks so that
; MapGroupPointers is visible.
@@ -3077,7 +6757,7 @@
ld a, BANK(MapGroupPointers)
rst Bankswitch
- call GetMapHeaderPointer
+ call GetAnyMapHeaderPointer
add hl, de
ld c, [hl]
inc hl
@@ -3090,9 +6770,64 @@
; 0x2c1c
-INCBIN "baserom.gbc", $2c1c, $2c5b - $2c1c
+Function2c1c: ; 2c1c
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+; 2c24
+Function2c24: ; 2c24
+ call Function2c31
+ rst Bankswitch
+ ret
+; 2c29
+
+Function2c29: ; 2c29
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+; 2c31
+
+Function2c31: ; 2c31
+ push hl
+ push de
+ ld de, $0000
+ call GetAnyMapHeaderMember
+ ld a, c
+ pop de
+ pop hl
+ ret
+; 2c3d
+
+Function2c3d: ; 2c3d
+ ld a, [hROMBank]
+ push af
+ ld a, $25
+ rst Bankswitch
+ call GetMapHeaderPointer
+ ld de, $d198
+ ld bc, $0005
+ call CopyBytes
+ pop af
+ rst Bankswitch
+ ret
+; 2c52
+
+Function2c52: ; 2c52
+ ld a, [MapEventBank]
+ rst Bankswitch
+ ret
+; 2c57
+
+
+GetMapEventBank: ; 2c57
+ ld a, [MapEventBank]
+ ret
+; 2c5b
+
GetAnyMapBlockdataBank: ; 2c5b
; Return the blockdata bank for group b map c.
push hl
@@ -3123,7 +6858,6 @@
ret
; 2c7d
-
GetSecondaryMapHeaderPointer: ; 0x2c7d
; returns the current map's secondary map header pointer in hl.
push bc
@@ -3137,7 +6871,6 @@
ret
; 2c8a
-
GetMapPermission: ; 2c8a
push hl
push de
@@ -3151,9 +6884,29 @@
ret
; 2c98
+Function2c98: ; 2c98
+ ret
+; 2c99
-INCBIN "baserom.gbc", $2c98, $2caf - $2c98
+Function2c99: ; 2c99
+ push hl
+ push de
+ push bc
+ ld de, $0002
+ call GetAnyMapHeaderMember
+ ld a, c
+ pop bc
+ pop de
+ pop hl
+ ret
+; 2ca7
+Function2ca7: ; 2ca7
+ ld de, $0001
+ call GetAnyMapHeaderMember
+ ld a, c
+ ret
+; 2caf
GetWorldMapLocation: ; 0x2caf
; given a map group/id in bc, return its location on the Pokégear map.
@@ -3169,10 +6922,142 @@
ret
; 0x2cbd
+Function2cbd: ; 2cbd
+ push hl
+ push bc
+ ld de, $0006
+ call GetMapHeaderMember
+ ld a, c
+ cp $64
+ jr z, .asm_2cee
+ bit 7, c
+ jr nz, .asm_2cda
+ ld a, $22
+ ld hl, $7342
+ rst FarCall
+ ld e, c
+ ld d, $0
+.asm_2cd7
+ pop bc
+ pop hl
+ ret
-INCBIN "baserom.gbc", $2cbd, $2d63 - $2cbd
+.asm_2cda
+ ld a, [StatusFlags2]
+ bit 0, a
+ jr z, .asm_2ce6
+ ld de, $0056
+ jr .asm_2cd7
+.asm_2ce6
+ ld a, c
+ and $7f
+ ld e, a
+ ld d, $0
+ jr .asm_2cd7
+.asm_2cee
+ ld a, [StatusFlags2]
+ bit 7, a
+ jr z, .asm_2cfa
+ ld de, $0048
+ jr .asm_2cd7
+
+.asm_2cfa
+ ld de, $0026
+ jr .asm_2cd7
+; 2cff
+
+Function2cff: ; 2cff
+ call Function2d0d
+ and $f
+ ret
+; 2d05
+
+Function2d05: ; 2d05
+ call Function2d0d
+ and $f0
+ swap a
+ ret
+; 2d0d
+
+Function2d0d: ; 2d0d
+ push hl
+ push bc
+ ld de, $0007
+ call GetMapHeaderMember
+ ld a, c
+ pop bc
+ pop hl
+ ret
+; 2d19
+
+Function2d19: ; 2d19
+ push de
+ push hl
+ push bc
+ ld de, $0008
+ call GetMapHeaderMember
+ ld a, c
+ pop bc
+ pop hl
+ pop de
+ ret
+; 2d27
+
+Function2d27: ; 2d27
+ push hl
+ push bc
+ ld hl, $5596
+ ld bc, $000f
+ ld a, [$d199]
+ call AddNTimes
+ ld de, TileSetBank
+ ld bc, $000f
+ ld a, $13
+ call FarCopyBytes
+ pop bc
+ pop hl
+ ret
+; 2d43
+
+Function2d43: ; 2d43
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ ret
+; 2d54
+
+
+FarJpDe: ; 2d54
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+ call Function2d61
+ jr ReturnFarJump
+; 2d61
+
+Function2d61: ; 2d61
+ push de
+ ret
+; 2d63
+
+
FarJpHl: ; 2d63
; Jump to a:hl.
; Preserves all registers besides a.
@@ -3183,9 +7068,10 @@
push af
ld a, [hBuffer]
rst Bankswitch
-
- call .hl
-
+ call Function2d82
+; 2d6e
+
+ReturnFarJump: ; 2d6e
; We want to retain the contents of f.
; To do this, we can pop to bc instead of af.
@@ -3204,7 +7090,9 @@
ld a, [$cfba]
ld c, a
ret
-.hl
+; 2d82
+
+Function2d82: ; 2d82
jp [hl]
; 2d83
@@ -3285,7 +7173,7 @@
ResetWindow: ; 2dba
- call $1fbf
+ call Function1fbf
ld a, [hROMBank]
push af
ld a, $1
@@ -3292,7 +7180,7 @@
rst Bankswitch
call $6454
- call $2e20
+ call Function2e20
call $64bf
pop af
@@ -3301,9 +7189,125 @@
; 2dcf
-INCBIN "baserom.gbc", $2dcf, $2e6f-$2dcf
+Function2dcf: ; 2dcf
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call Function2de2
+ pop af
+ ld [hOAMUpdate], a
+ ld hl, VramState
+ res 6, [hl]
+ ret
+; 2de2
+Function2de2: ; 2de2
+ call Function1fbf
+ xor a
+ ld [hBGMapMode], a
+ call Function2173
+ call Function2e20
+ xor a
+ ld [hBGMapMode], a
+ call Function2e31
+ ld a, $90
+ ld [hWY], a
+ call Functione4a
+ ld a, $2e
+ ld hl, $4000
+ rst FarCall
+ ld a, $41
+ ld hl, $6594
+ rst FarCall
+ ret
+; 2e08
+Function2e08: ; 2e08
+ call Function1fbf
+ ld a, [hROMBank]
+ push af
+ ld a, $1
+ rst Bankswitch
+
+ call $6454
+ call SpeechTextBox
+ call Function2e20
+ call $64bf
+ pop af
+ rst Bankswitch
+
+ ret
+; 2e20
+
+Function2e20: ; 2e20
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ ld a, $41
+ ld hl, $4110
+ rst FarCall
+ pop af
+ ld [hOAMUpdate], a
+ ret
+; 2e31
+
+Function2e31: ; 2e31
+ ld a, [hOAMUpdate]
+ push af
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [hOAMUpdate], a
+ call Function1ad2
+ xor a
+ ld [hOAMUpdate], a
+ call DelayFrame
+ pop af
+ ld [hBGMapMode], a
+ pop af
+ ld [hOAMUpdate], a
+ ret
+; 2e4e
+
+Function2e4e: ; 2e4e
+ scf
+ ret
+; 2e50
+
+Function2e50: ; 2e50
+ xor a
+ ld hl, $da72
+ ld [hli], a
+ ret
+; 2e56
+
+Function2e56: ; 2e56
+ xor a
+ ld hl, BikeFlags
+ ld [hli], a
+ ld [hl], a
+ ret
+; 2e5d
+
+Function2e5d: ; 2e5d
+ ld a, [$d19a]
+ cp $2
+ jr z, .asm_2e69
+ cp $1
+ jr z, .asm_2e69
+ ret
+
+.asm_2e69
+ ld hl, StatusFlags
+ res 2, [hl]
+ ret
+; 2e6f
+
+
BitTable1Func: ; 0x2e6f
ld hl, $da72
call BitTableFunc
@@ -3377,8 +7381,47 @@
ret
; 0x2ead
-INCBIN "baserom.gbc", $2ead, $2ed3 - $2ead
+Function2ead: ; 2ead
+ ld de, $000b
+ ld b, $2
+ callba GetFlag2
+ ld a, c
+ and a
+ ret
+; 2ebb
+
+Function2ebb: ; 2ebb
+ ld a, [$c2cc]
+ bit 1, a
+ ret z
+ ld a, [hJoyDown]
+ bit 1, a
+ ret
+; 2ec6
+
+
+Function2ec6: ; 2ec6
+ xor a
+ ret
+; 2ec8
+
+Function2ec8: ; 2ec8
+ xor a
+ dec a
+ ret
+; 2ecb
+
+
+Function2ecb: ; 2ecb
+ push hl
+ ld hl, $c2cc
+ bit 1, [hl]
+ pop hl
+ ret
+; 2ed3
+
+
Function2ed3: ; 0x2ed3
; disables overworld sprite updating?
xor a
@@ -3391,15 +7434,33 @@
ret
; 0x2ee4
-INCBIN "baserom.gbc", $2ee4, $2ef9 - $2ee4
+Function2ee4: ; 2ee4
+ ld a, $1
+ ld [$c2ce], a
+ ld a, [VramState]
+ set 0, a
+ ld [VramState], a
+ ld a, $1
+ ld [$ffde], a
+ ret
+; 2ef6
-InitString: ; 0x2ef9
-; if the string pointed to by hl is empty (defined as "zero or more spaces
-; followed by a null"), then initialize it to the string pointed to by de.
-;
+
+InitString: ; 2ef6
+; Init a string of length c.
+ push hl
+ jr _InitString
+; 2ef9
+
+InitName: ; 2ef9
; Intended for names, so this function is limited to ten characters.
push hl
ld c, 10
+; 2efc
+
+_InitString: ; 2efc
+; if the string pointed to by hl is empty (defined as "zero or more spaces
+; followed by a null"), then initialize it to the string pointed to by de.
push bc
.loop
ld a, [hli]
@@ -3422,18 +7483,47 @@
pop bc
pop hl
ret
-; 0x2f17
+; 2f17
+Function2f17: ; 2f17
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp $5f
+ jr z, .asm_2f39
+ cp $0
+ jr nz, .asm_2f35
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
-INCBIN "baserom.gbc", $2f17, $2f3f - $2f17
+.asm_2f35
+ cp $2f
+ jr nc, .asm_2f3b
+.asm_2f39
+ xor a
+ ret
+.asm_2f3b
+ ld a, $1
+ ret
+; 2f3e
+
+
+Function2f3e: ; 2f3e
+ ret
+; 2f3f
+
DoItemEffect: ; 2f3f
callba _DoItemEffect
ret
; 2f46
-
CheckTossableItem: ; 2f46
push hl
push de
@@ -3445,10 +7535,67 @@
ret
; 2f53
+Function2f53: ; 2f53
+ push hl
+ push de
+ push bc
+ ld a, [hROMBank]
+ push af
+ ld a, $3
+ rst Bankswitch
-INCBIN "baserom.gbc", $2f53, $2f8c - $2f53
+ call $520d
+ pop bc
+ ld a, b
+ rst Bankswitch
+ pop bc
+ pop de
+ pop hl
+ ret
+; 2f66
+Function2f66: ; 2f66
+ push bc
+ ld a, [hROMBank]
+ push af
+ ld a, $3
+ rst Bankswitch
+
+ push hl
+ push de
+ call $51d5
+ pop de
+ pop hl
+ pop bc
+ ld a, b
+ rst Bankswitch
+
+ pop bc
+ ret
+; 2f79
+
+Function2f79: ; 2f79
+ push hl
+ push de
+ push bc
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Functiond244)
+ rst Bankswitch
+
+ call Functiond244
+ pop bc
+ ld a, b
+ rst Bankswitch
+
+ pop bc
+ pop de
+ pop hl
+ ret
+; 2f8c
+
+
RNG: ; 2f8c
; Two random numbers are generated by adding and subtracting
; the divider to the respective values every time it's called.
@@ -3569,8 +7716,32 @@
ret
; 2fef
-INCBIN "baserom.gbc", $2fef, $300b - $2fef
+Function2fef: ; 2fef
+ ld hl, rKEY1
+ bit 7, [hl]
+ jr z, Function2ffd
+ ret
+; 2ff7
+
+Function2ff7: ; 2ff7
+ ld hl, rKEY1
+ bit 7, [hl]
+ ret z
+; 2ffd
+
+Function2ffd: ; 2ffd
+ set 0, [hl]
+ xor a
+ ld [rIF], a
+ ld [rIE], a
+ ld a, $30
+ ld [rJOYP], a
+ stop ; rgbasm adds a nop after this instruction by default
+ ret
+; 300b
+
+
ClearSprites: ; 300b
ld hl, Sprites
ld b, TileMap - Sprites
@@ -3690,8 +7861,84 @@
ret
; 0x306b
-INCBIN "baserom.gbc", $306b, $30d6-$306b
+Function306b: ; 306b
+ ld [hBuffer], a
+ ld a, [rSVBK]
+ push af
+ ld a, [hBuffer]
+ ld [rSVBK], a
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 307b
+Function307b: ; 307b
+ ld [hBuffer], a
+ ld a, [rSVBK]
+ push af
+ ld a, [hBuffer]
+ ld [rSVBK], a
+ ld a, [hl]
+ ld [hBuffer], a
+ pop af
+ ld [rSVBK], a
+ ld a, [hBuffer]
+ ret
+; 308d
+
+Function308d: ; 308d
+ ld [hBuffer], a
+ ld a, [rSVBK]
+ push af
+ ld a, [hBuffer]
+ ld [rSVBK], a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ ld [rSVBK], a
+ ret
+; 309d
+
+Function309d: ; 309d
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ ld hl, TileMap
+ ld de, $d000
+ ld bc, $0168
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 30b4
+
+Function30b4: ; 30b4
+ xor a
+ ld [hBGMapMode], a
+ call Function30bf
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 30bf
+
+Function30bf: ; 30bf
+ ld a, [rSVBK]
+ push af
+ ld a, $2
+ ld [rSVBK], a
+ ld hl, $d000
+ ld de, TileMap
+ ld bc, $0168
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 30d6
+
+
CopyName1: ; 30d6
ld hl, StringBuffer2
; 30d9
@@ -3931,8 +8178,74 @@
ret
; 0x3198
-INCBIN "baserom.gbc", $3198, $31db - $3198
+PrintNum: ; 3198
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(_PrintNum)
+ rst Bankswitch
+ call _PrintNum
+ pop af
+ rst Bankswitch
+ ret
+; 31a4
+
+Function31a4: ; 31a4
+ ld a, [hROMBank]
+ push af
+ ld a, $41
+ rst Bankswitch
+
+ call $61ef
+ pop af
+ rst Bankswitch
+
+ ret
+; 31b0
+
+
+Function31b0: ; 31b0
+ ld [hBuffer], a
+ ld a, [hROMBank]
+ push af
+ ld a, [hBuffer]
+ rst Bankswitch
+
+ call PrintText
+ pop af
+ rst Bankswitch
+
+ ret
+; 31be
+
+Function31be: ; 31be
+ ld a, [hROMBank]
+ push af
+ ld a, [hli]
+ rst Bankswitch
+
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call JpHl
+ pop hl
+ ld a, h
+ rst Bankswitch
+
+ ret
+; 31cd
+
+Function31cd: ; 31cd
+ ld a, [hROMBank]
+ ld [$d0e8], a
+ ld a, l
+ ld [$d0e9], a
+ ld a, h
+ ld [$d0ea], a
+ ret
+; 31db
+
+
StringCmp: ; 31db
; Compare strings, c bytes in length, at de and hl.
; Often used to compare big endian numbers in battle calculations.
@@ -4000,8 +8313,217 @@
ret
; 0x3218
-INCBIN "baserom.gbc", $3218, $3317 - $3218
+Function3218: ; 3218
+ ld a, [hCGB]
+ and a
+ ret
+; 321c
+
+
+Function321c: ; 321c
+ ld a, [hCGB]
+ and a
+ jr z, .asm_322e
+ ld a, [$c2ce]
+ cp $0
+ jr z, .asm_322e
+ ld a, $1
+ ld [hBGMapMode], a
+ jr .asm_323d
+
+.asm_322e
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, $4
+ call DelayFrames
+ ret
+
+ ld a, [hCGB]
+ and a
+ jr z, WaitBGMap
+
+.asm_323d
+ jr .asm_3246
+
+ ld a, $41
+ ld hl, $4000
+ rst FarCall
+ ret
+
+.asm_3246
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld a, [$ffde]
+ push af
+ xor a
+ ld [$ffde], a
+.asm_3252
+ ld a, [rLY]
+ cp $7f
+ jr c, .asm_3252 ; 3256 $fa
+ di
+ ld a, $1
+ ld [rVBK], a
+ ld hl, AttrMap
+ call Function327b
+ ld a, $0
+ ld [rVBK], a
+ ld hl, TileMap
+ call Function327b
+.asm_326d
+ ld a, [rLY]
+ cp $7f
+ jr c, .asm_326d ; 3271 $fa
+ ei
+ pop af
+ ld [$ffde], a
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 327b
+
+Function327b: ; 327b
+ ld [hSPBuffer], sp
+ ld sp, hl
+ ld a, [$ffd7]
+ ld h, a
+ ld l, $0
+ ld a, $12
+ ld [$ffd3], a
+ ld b, $2
+ ld c, $41
+.asm_328c
+ pop de
+.asm_328d
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_328d
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_3296
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_3296
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_329f
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_329f
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_32a8
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_32a8
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_32b1
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_32b1
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_32ba
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_32ba
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_32c3
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_32c3
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_32cc
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_32cc
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_32d5
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_32d5
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_32de
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_32de
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ ld de, $000c
+ add hl, de
+ ld a, [$ffd3]
+ dec a
+ ld [$ffd3], a
+ jr nz, .asm_328c
+ ld a, [hSPBuffer]
+ ld l, a
+ ld a, [$ffda]
+ ld h, a
+ ld sp, hl
+ ret
+; 32f9
+
+
+
+Function32f9: ; 32f9
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_3309
+ ld a, $e4
+ ld [rBGP], a
+ ld a, $d0
+ ld [rOBP0], a
+ ld [rOBP1], a
+ ret
+
+.asm_3309
+ push de
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ pop de
+ ret
+; 3317
+
+
ClearPalettes: ; 3317
; Make all palettes white
@@ -4174,7 +8696,7 @@
GetName: ; 33c3
-; Return name $cf60 from name list $cf61 in StringBuffer1.
+; Return name CurSpecies from name list $cf61 in StringBuffer1.
ld a, [hROMBank]
push af
push hl
@@ -4184,7 +8706,7 @@
cp 1 ; Pokemon names
jr nz, .NotPokeName
- ld a, [$cf60]
+ ld a, [CurSpecies]
ld [$d265], a
call GetPokemonName
ld hl, $000b
@@ -4208,7 +8730,7 @@
ld h, [hl]
ld l, a
- ld a, [$cf60]
+ ld a, [CurSpecies]
dec a
call GetNthString
@@ -4322,7 +8844,7 @@
cp TM_01
jr nc, .TM
- ld [$cf60], a
+ ld [CurSpecies], a
ld a, 4 ; Item names
ld [$cf61], a
call GetName
@@ -4456,7 +8978,7 @@
ld [$cf61], a
; move id
ld a, [$d265]
- ld [$cf60], a
+ ld [CurSpecies], a
call GetName
ld de, StringBuffer1
@@ -4465,14 +8987,213 @@
; 350c
-INCBIN "baserom.gbc", $350c, $3600 - $350c
+Function350c: ; 350c
+ call Function1c66
+ ld a, [hROMBank]
+ push af
+ ld a, $9
+ rst Bankswitch
+ call $45af
+ call Function3524
+ call $45cb
+ pop af
+ rst Bankswitch
+ ld a, [$cf73]
+ ret
+; 3524
+
+Function3524: ; 3524
+ ld hl, VramState
+ bit 0, [hl]
+ jp nz, Function485
+ jp Function32f9
+; 352f
+
+Function352f: ; 352f
+ ld a, [$cf82]
+ dec a
+ ld b, a
+ ld a, [$cf84]
+ sub b
+ ld d, a
+ ld a, [$cf83]
+ dec a
+ ld c, a
+ ld a, [$cf85]
+ sub c
+ ld e, a
+ push de
+ call Function1d05
+ pop bc
+ jp TextBox
+; 354b
+
+Function354b: ; 354b
+ call DelayFrame
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ call Functiona57
+ pop af
+ ld [$ffaa], a
+ ld a, [$ffa9]
+ and $f0
+ ld c, a
+ ld a, [hJoyPressed]
+ and $f
+ or c
+ ld c, a
+ ret
+; 3567
+
+
+Function3567: ; 3567
+ ld a, [hROMBank]
+ push af
+ call Function2c52
+ call Function3574
+ pop bc
+ ld a, b
+ rst Bankswitch
+
+ ret
+; 3574
+
+Function3574: ; 3574
+ ld hl, $0001
+ add hl, de
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_3597
+ ld l, a
+ push hl
+ call Function3599
+ pop hl
+ jr nc, .asm_3597
+ ld d, a
+ ld e, l
+ call Function35de
+ jr nc, .asm_3597
+ call Function2631
+ callba Function96c56
+ scf
+ ret
+
+.asm_3597
+ and a
+ ret
+; 3599
+
+Function3599: ; 3599
+ push de
+ ld hl, $0010
+ add hl, de
+ ld a, [hl]
+ ld hl, $0011
+ add hl, de
+ ld e, [hl]
+ sub $4
+ ld d, a
+ ld a, e
+ sub $4
+ ld e, a
+ call Function35b0
+ pop de
+ ret
+; 35b0
+
+Function35b0: ; 35b0
+ ld hl, $dbfc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$dbfb]
+ and a
+ jr z, .asm_35d3
+.asm_35bc
+ push af
+ ld a, [hl]
+ cp e
+ jr nz, .asm_35c8
+ inc hl
+ ld a, [hld]
+ cp d
+ jr nz, .asm_35c8
+ jr .asm_35d5
+
+.asm_35c8
+ ld a, $5
+ add l
+ ld l, a
+ jr nc, .asm_35cf
+ inc h
+
+.asm_35cf
+ pop af
+ dec a
+ jr nz, .asm_35bc
+
+.asm_35d3
+ and a
+ ret
+
+.asm_35d5
+ pop af
+ ld d, a
+ ld a, [$dbfb]
+ sub d
+ inc a
+ scf
+ ret
+; 35de
+
+Function35de: ; 35de
+ inc e
+ ld hl, $0001
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.asm_35e6
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_35fc
+ cp d
+ jr nz, .asm_35f7
+ ld a, [hli]
+ cp e
+ jr nz, .asm_35f8
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jr .asm_35fe
+
+.asm_35f7
+ inc hl
+
+.asm_35f8
+ inc hl
+ inc hl
+ jr .asm_35e6
+
+.asm_35fc
+ and a
+ ret
+
+.asm_35fe
+ scf
+ ret
+; 3600
+
+
CheckTrainerBattle2: ; 3600
ld a, [hROMBank]
push af
- call $2c52
+ call Function2c52
call CheckTrainerBattle
@@ -4520,7 +9241,7 @@
jr z, .next
; Is facing the player...
- call $1ae5
+ call Function1ae5
call FacingPlayerDistance_bc
jr nc, .next
@@ -4569,18 +9290,18 @@
pop af
ld [$ffe0], a
ld a, b
- ld [$d03f], a
+ ld [CurFruit], a
ld a, c
- ld [$d040], a
+ ld [MartPointer], a
jr .asm_367e
ld a, $1
- ld [$d03f], a
+ ld [CurFruit], a
ld a, $ff
- ld [$d040], a
+ ld [MartPointer], a
.asm_367e
- call $2c57
+ call GetMapEventBank
ld [EngineBuffer1], a
ld a, [$ffe0]
call GetMapObject
@@ -4596,7 +9317,7 @@
ld [$d04d], a
scf
ret
-; 36a5d
+; 36a5
FacingPlayerDistance_bc: ; 36a5
@@ -4681,9 +9402,312 @@
; 36f5
-INCBIN "baserom.gbc", $36f5, $3856 - $36f5
+Function36f5: ; 36f5
+ push bc
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ call GetMapObject
+ ld hl, $000a
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call GetMapEventBank
+ call GetFarHalfword
+ ld d, h
+ ld e, l
+ push de
+ ld b, $2
+ call BitTable1Func
+ pop de
+ ld a, c
+ and a
+ pop bc
+ ret
+; 3718
+Function3718: ; 3718
+ ld a, [BattleType]
+ cp $1
+ jr .asm_3724
+
+ ld hl, WalkingTile
+ jr .asm_3731
+
+.asm_3724
+ ld a, [$d0ee]
+ ld hl, WalkingTile
+ and $f
+ jr z, .asm_3731
+ ld hl, $d049
+
+.asm_3731
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call GetMapEventBank
+ call Function31b0
+ call WaitBGMap
+ call Functiona80
+ ret
+; 3741
+
+
+
+Function3741: ; 3741
+ and a
+ jr z, .asm_374c
+ cp $fd
+ jr z, .asm_374e
+ cp $fc
+ jr c, .asm_374e
+
+.asm_374c
+ scf
+ ret
+
+.asm_374e
+ and a
+ ret
+; 3750
+
+
+DrawHPBar: ; 3750
+; Draw an HP bar d tiles long at hl
+; Fill it up to e pixels
+
+ push hl
+ push de
+ push bc
+
+; Place 'HP:'
+ ld a, $60
+ ld [hli], a
+ ld a, $61
+ ld [hli], a
+
+; Draw a template
+ push hl
+ ld a, $62 ; empty bar
+.template
+ ld [hli], a
+ dec d
+ jr nz, .template
+ ld a, $6b ; bar end
+ add b
+ ld [hl], a
+ pop hl
+
+; Safety check # pixels
+ ld a, e
+ and a
+ jr nz, .fill
+ ld a, c
+ and a
+ jr z, .done
+ ld e, 1
+
+.fill
+; Keep drawing tiles until pixel length is reached
+ ld a, e
+ sub TILE_WIDTH
+ jr c, .lastbar
+
+ ld e, a
+ ld a, $6a ; full bar
+ ld [hli], a
+ ld a, e
+ and a
+ jr z, .done
+ jr .fill
+
+.lastbar
+ ld a, $62 ; empty bar
+ add e ; + e
+ ld [hl], a
+
+.done
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3786
+
+
+Function3786: ; 3786
+ ld a, $1
+ ld [$c2c6], a
+ ld a, [CurPartySpecies]
+ call Function3741
+ jr c, .asm_37ad
+ push hl
+ ld de, VTiles2
+ ld a, $3c
+ call Predef
+ pop hl
+ xor a
+ ld [$ffad], a
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ xor a
+ ld [$c2c6], a
+ ret
+
+.asm_37ad
+ xor a
+ ld [$c2c6], a
+ inc a
+ ld [CurPartySpecies], a
+ ret
+; 37b6
+
+Function37b6: ; 37b6
+ push af
+ ld a, $1
+ ld [$c2bc], a
+ pop af
+ call Function37e2
+ call WaitSFX
+ ret
+; 37c4
+
+Function37c4: ; 37c4
+ push af
+ ld a, $1
+ ld [$c2bc], a
+ pop af
+ jp Function37e2
+; 37ce
+
+Function37ce: ; 37ce
+ call Function37d5
+ call WaitSFX
+ ret
+; 37d5
+
+Function37d5: ; 37d5
+ push af
+ xor a
+ ld [$c2bc], a
+ ld [CryTracks], a
+ pop af
+ call Function37e2
+ ret
+; 37e2
+
+Function37e2: ; 37e2
+ push hl
+ push de
+ push bc
+ call Function381e
+ jr c, .asm_37ef
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+
+.asm_37ef
+ pop bc
+ pop de
+ pop hl
+ ret
+; 37f3
+
+Function37f3: ; 37f3
+ call Function381e
+ ret c
+ ld a, [hROMBank]
+ push af
+ ld a, $3c
+ rst Bankswitch
+
+ ld hl, $6787
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld a, [hli]
+ ld [CryPitch], a
+ ld a, [hli]
+ ld [CryEcho], a
+ ld a, [hli]
+ ld [CryLength], a
+ ld a, [hl]
+ ld [$c2b3], a
+ pop af
+ rst Bankswitch
+
+ and a
+ ret
+; 381e
+
+Function381e: ; 381e
+ and a
+ jr z, .asm_382b
+ cp $fc
+ jr nc, .asm_382b
+ dec a
+ ld c, a
+ ld b, $0
+ and a
+ ret
+
+.asm_382b
+ scf
+ ret
+; 382d
+
+
+PrintLevel: ; 382d
+; Print TempMonLevel at hl
+
+ ld a, [TempMonLevel]
+ ld [hl], $6e ; ":L"
+ inc hl
+
+; How many digits?
+ ld c, 2
+ cp 100
+ jr c, .print
+
+; 3-digit numbers overwrite the :L.
+ dec hl
+ inc c
+ jr .print
+
+; --------
+; Unused: print :L and all 3 digits
+ ld [hl], $6e
+ inc hl
+ ld c, 3
+; --------
+
+ ld [$d265], a
+ ld de, $d265
+ ld b, %01000001 ; flags
+ jp PrintNum
+; 384d
+
+
+Function384d: ; 384d
+ ld hl, $d25e
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ret
+; 3856
+
+
GetBaseData: ; 3856
push bc
push de
@@ -4742,7 +9766,7 @@
; 389c
-GetCurNick; 389c
+GetCurNick: ; 389c
ld a, [CurPartyMon]
ld hl, PartyMonNicknames
@@ -4869,7 +9893,22 @@
; 392d
-INCBIN "baserom.gbc", $392d, $3945 - $392d
+Function392d: ; 392d
+ push hl
+ ld a, b
+ dec a
+ ld b, $0
+ add hl, bc
+ ld hl, $5424
+ ld bc, $0020
+ call AddNTimes
+ ld a, $14
+ call GetFarHalfword
+ ld b, l
+ ld c, h
+ pop hl
+ ret
+; 3945
UserPartyAttr: ; 3945
@@ -5048,7 +10087,7 @@
; get var id
ld a, [hl]
ld c, a
- ld b, $0
+ ld b, 0
; seek
ld hl, .vars
@@ -5174,9 +10213,32 @@
dw LastEnemyMove
; 3a90
-INCBIN "baserom.gbc", $3a90, $3ab2 - $3a90
+Function3a90: ; 3a90
+ inc hl
+ ld a, [hROMBank]
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+ ld a, e
+ ld l, a
+ ld a, d
+ ld h, a
+ ld de, $d00c
+ ld bc, $0028
+ call CopyBytes
+ pop af
+ ld [hROMBank], a
+ ld [MBC3RomBank], a
+ ret
+; 3ab2
+
MobileTextBorder: ; 3ab2
; For mobile link battles only.
ld a, [InLinkBattle]
@@ -5195,8 +10257,8 @@
push hl
call SpeechTextBox
call MobileTextBorder
- call $1ad2 ; UpdateSprites
- call $321c ; refresh?
+ call Function1ad2 ; UpdateSprites
+ call Function321c ; refresh?
pop hl
call PrintTextBoxText
ret
@@ -5220,9 +10282,96 @@
; 3ae1
-INCBIN "baserom.gbc", $3ae1, $3b4e - $3ae1
+Function3ae1: ; 3ae1
+ ld a, $32
+ rst Bankswitch
+ ld a, [hli]
+ ld [$d410], a
+ ld a, [hl]
+ ld [$d411], a
+ ld a, $33
+ rst Bankswitch
+ ret
+; 3af0
+
+Function3af0: ; 3af0
+ push hl
+ push de
+ ld hl, $d410
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, $32
+ rst Bankswitch
+
+ ld a, [de]
+ ld [$d417], a
+ inc de
+ ld a, $33
+ rst Bankswitch
+
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ pop de
+ pop hl
+ ld a, [$d417]
+ ret
+; 3b0c
+
+Function3b0c: ; 3b0c
+ ld a, [hLCDStatCustom]
+ and a
+ ret z
+ ld a, $0
+ ld [$cf68], a
+ ld a, $d2
+ ld [$cf69], a
+ ld a, $0
+ ld [$cf6a], a
+ ld a, $d1
+ ld [$cf6b], a
+ ld a, $9
+ ld [$cf67], a
+ ret
+; 3b2a
+
+
+
+Function3b2a: ; 3b2a
+ ld [$c3b8], a
+ ld a, [hROMBank]
+ push af
+ ld a, $23
+ rst Bankswitch
+
+ ld a, [$c3b8]
+ call $4fd6
+ pop af
+ rst Bankswitch
+
+ ret
+; 3b3c
+
+
+Function3b3c: ; 3b3c
+ ld [$c3b8], a
+ ld a, [hROMBank]
+ push af
+ ld a, $23
+ rst Bankswitch
+
+ ld a, [$c3b8]
+ call $5120
+ pop af
+ rst Bankswitch
+
+ ret
+; 3b4e
+
+
CleanSoundRestart: ; 3b4e
push hl
@@ -5495,8 +10644,30 @@
ret
; 3c74
-INCBIN "baserom.gbc", $3c74, $3c97-$3c74
+Function3c74: ; 3c74
+ push hl
+ ld hl, $c1cc
+ bit 0, [hl]
+ jr nz, .asm_3c94
+ ld hl, $c1fe
+ bit 0, [hl]
+ jr nz, .asm_3c94
+ ld hl, $c230
+ bit 0, [hl]
+ jr nz, .asm_3c94
+ ld hl, $c262
+ bit 0, [hl]
+ jr nz, .asm_3c94
+ pop hl
+ scf
+ ret
+.asm_3c94
+ pop hl
+ and a
+ ret
+; 3c97
+
MaxVolume: ; 3c97
ld a, $77 ; max
ld [Volume], a
@@ -5515,8 +10686,219 @@
ret
; 3ca8
-INCBIN "baserom.gbc", $3ca8, $3dde - $3ca8
+Function3ca8: ; 3ca8
+ ld a, $4
+ ld [MusicFade], a
+ ret
+; 3cae
+Function3cae: ; 3cae
+ ld a, $84
+ ld [MusicFade], a
+ ret
+; 3cb4
+
+Function3cb4: ; 3cb4
+.asm_3cb4
+ and a
+ ret z
+ dec a
+ call CleanUpdateSound
+ jr .asm_3cb4
+; 3cbc
+
+Function3cbc: ; 3cbc
+ push hl
+ push de
+ push bc
+ push af
+ call Function3d97
+ ld a, [CurMusic]
+ cp e
+ jr z, .asm_3cda
+ ld a, $8
+ ld [MusicFade], a
+ ld a, e
+ ld [MusicFadeIDLo], a
+ ld a, d
+ ld [MusicFadeIDHi], a
+ ld a, e
+ ld [CurMusic], a
+
+.asm_3cda
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3cdf
+
+Function3cdf: ; 3cdf
+ push hl
+ push de
+ push bc
+ push af
+ call Function3d97
+ ld a, [CurMusic]
+ cp e
+ jr z, .asm_3cfe
+ push de
+ ld de, MUSIC_NONE
+ call StartMusic
+ call DelayFrame
+ pop de
+ ld a, e
+ ld [CurMusic], a
+ call StartMusic
+
+.asm_3cfe
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3d03
+
+Function3d03: ; 3d03
+ push hl
+ push de
+ push bc
+ push af
+ xor a
+ ld [$c2c1], a
+ ld de, MUSIC_BICYCLE
+ ld a, [PlayerState]
+ cp $1
+ jr z, .asm_3d18
+ call Function3d97
+.asm_3d18
+ push de
+ ld de, MUSIC_NONE
+ call StartMusic
+ call DelayFrame
+ pop de
+ ld a, e
+ ld [CurMusic], a
+ call StartMusic
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3d2f
+
+Function3d2f: ; 3d2f
+ ld a, [$c2c1]
+ and a
+ jr z, Function3d47
+ xor a
+ ld [CurMusic], a
+ ld de, MUSIC_NONE
+ call StartMusic
+ call DelayFrame
+ xor a
+ ld [$c2c1], a
+ ret
+; 3d47
+
+Function3d47: ; 3d47
+ push hl
+ push de
+ push bc
+ push af
+ ld de, MUSIC_NONE
+ call StartMusic
+ call DelayFrame
+ ld a, [CurMusic]
+ ld e, a
+ ld d, 0
+ call StartMusic
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3d62
+
+Function3d62: ; 3d62
+ ld a, [PlayerState]
+ cp $4
+ jr z, .asm_3d7b
+ cp $8
+ jr z, .asm_3d7b
+ ld a, [StatusFlags2]
+ bit 2, a
+ jr nz, .asm_3d80
+.asm_3d74
+ and a
+ ret
+
+ ld de, $0013
+ scf
+ ret
+
+.asm_3d7b
+ ld de, $0021
+ scf
+ ret
+
+.asm_3d80
+ ld a, [MapGroup]
+ cp $a
+ jr nz, .asm_3d74
+ ld a, [MapNumber]
+ cp $f
+ jr z, .asm_3d92
+ cp $11
+ jr nz, .asm_3d74
+
+.asm_3d92
+ ld de, $0058
+ scf
+ ret
+; 3d97
+
+Function3d97: ; 3d97
+ call Function3d62
+ ret c
+ call Function2cbd
+ ret
+; 3d9f
+
+Function3d9f: ; 3d9f
+ ld a, $20
+ ld [$c498], a
+ ld [$c49c], a
+ ld a, $50
+ ld [$c499], a
+ ld a, $58
+ ld [$c49d], a
+ xor a
+ ld [$c49b], a
+ ld [$c49f], a
+ ld a, [$c296]
+ cp $64
+ jr nc, .asm_3dd5
+ add $1
+ daa
+ ld b, a
+ swap a
+ and $f
+ add $f6
+ ld [$c49a], a
+ ld a, b
+ and $f
+ add $f6
+ ld [$c49e], a
+ ret
+
+.asm_3dd5
+ ld a, $ff
+ ld [$c49a], a
+ ld [$c49e], a
+ ret
+; 3dde
+
CheckSFX: ; 3dde
; returns carry if sfx channels are active
ld a, [$c1cc] ; 1
@@ -5538,16 +10920,27 @@
ret
; 3dfe
-INCBIN "baserom.gbc", $3dfe, $3e10 - $3dfe
+Function3dfe: ; 3dfe
+ xor a
+ ld [$c1cc], a
+ ld [SoundInput], a
+ ld [rNR10], a
+ ld [rNR11], a
+ ld [rNR12], a
+ ld [rNR13], a
+ ld [rNR14], a
+ ret
+; 3e10
+
ChannelsOff: ; 3e10
; Quickly turn off music channels
xor a
- ld [$c104], a
+ ld [Channel1Flags], a
ld [$c136], a
ld [$c168], a
ld [$c19a], a
- ld [$c29c], a
+ ld [SoundInput], a
ret
; 3e21
@@ -5558,17 +10951,4898 @@
ld [$c1fe], a
ld [$c230], a
ld [$c262], a
- ld [$c29c], a
+ ld [SoundInput], a
ret
; 3e32
-INCBIN "baserom.gbc", $3e32, $3fb5 - $3e32
+Function3e32: ; 3e32
+ cp $2
+ ld [$c988], a
+ ld a, l
+ ld [$c986], a
+ ld a, h
+ ld [$c987], a
+ jr nz, .asm_3e4f
+ ld [$c982], a
+ ld a, l
+ ld [$c981], a
+ ld hl, $c983
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hl], a
+.asm_3e4f
+ ld hl, $c822
+ set 6, [hl]
+ ld a, [hROMBank]
+ push af
+ ld a, $44
+ ld [$c981], a
+ rst Bankswitch
+ jp $4030
+; 3e60
+
+
+Function3e60: ; 3e60
+ ld [$c986], a
+ ld a, l
+ ld [$c987], a
+ ld a, h
+ ld [$c988], a
+ pop bc
+ ld a, b
+ ld [$c981], a
+ rst Bankswitch
+
+ ld hl, $c822
+ res 6, [hl]
+ ld hl, $c987
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$c986]
+ ret
+; 3e80
+
+
+Function3e80: ; 3e80
+ ld a, [hROMBank]
+ push af
+ ld a, $44
+ ld [$c981], a
+ rst Bankswitch
+
+ call $56c5
+ pop bc
+ ld a, b
+ ld [$c981], a
+ rst Bankswitch
+
+ ret
+; 3e93
+
+
+Function3e93: ; 3e93
+ push af
+ push bc
+ push de
+ push hl
+ ld a, [$ffe9]
+ and a
+ jr z, .asm_3ed2
+ xor a
+ ld [rTAC], a
+ ld a, [rIF]
+ and $1b
+ ld [rIF], a
+ ld a, [$c86a]
+ or a
+ jr z, .asm_3ed2
+ ld a, [$c822]
+ bit 1, a
+ jr nz, .asm_3eca
+ ld a, [rSC]
+ and $80
+ jr nz, .asm_3eca
+ ld a, [hROMBank]
+ push af
+ ld a, $44
+ ld [$c981], a
+ rst Bankswitch
+
+ call $58de
+ pop bc
+ ld a, b
+ ld [$c981], a
+ rst Bankswitch
+
+
+.asm_3eca
+ ld a, [rTMA]
+ ld [rTIMA], a
+ ld a, $6
+ ld [rTAC], a
+
+.asm_3ed2
+ pop hl
+ pop de
+ pop bc
+ pop af
+ reti
+; 3ed7
+
+Function3ed7: ; 3ed7
+ ld [$dc02], a
+ ld a, [hROMBank]
+ push af
+ ld a, $45
+ rst Bankswitch
+
+ call $4243
+ pop bc
+ ld a, b
+ rst Bankswitch
+
+ ld a, [$dc02]
+ ret
+; 3eea
+
+Function3eea: ; 3eea
+ push hl
+ push bc
+ ld de, $0939
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ call Function3f35
+ pop bc
+ pop hl
+ call Function3f47
+ ret
+; 3efd
+
+Function3efd: ; 3efd
+ push hl
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call Function3f0d
+ pop hl
+ call PrintTextBoxText
+ ret
+; 3f0d
+
+Function3f0d: ; 3f0d
+ push hl
+ push bc
+ ld de, $0939
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ call Function3f35
+ pop bc
+ pop hl
+ call TextBoxBorder
+ ret
+; 3f20
+
+Function3f20: ; 3f20
+ ld hl, AttrMap
+ ld b, $6
+ ld c, $14
+ call Function3f35
+ ld hl, TileMap
+ ld b, $4
+ ld c, $12
+ call Function3f47
+ ret
+; 3f35
+
+Function3f35: ; 3f35
+ ld a, $6
+ ld de, $0014
+.asm_3f3a
+ push bc
+ push hl
+.asm_3f3c
+ ld [hli], a
+ dec c
+ jr nz, .asm_3f3c
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_3f3a
+ ret
+; 3f47
+
+Function3f47: ; 3f47
+ push bc
+ call Function3f58
+ pop bc
+.asm_3f4c
+ push bc
+ call $3f68
+ pop bc
+ dec b
+ jr nz, .asm_3f4c
+ call $3f60
+ ret
+; 3f58
+
+Function3f58: ; 3f58
+ ld a, $63
+ ld d, $62
+ ld e, $64
+ jr .asm_3f6e
+
+ ld a, $68
+ ld d, $67
+ ld e, $69
+ jr .asm_3f6e
+
+ ld a, $7f
+ ld d, $65
+ ld e, $66
+
+.asm_3f6e
+ push hl
+ ld [hl], d
+ inc hl
+.asm_3f71
+ ld [hli], a
+ dec c
+ jr nz, .asm_3f71
+ ld [hl], e
+ pop hl
+ ld de, $0014
+ add hl, de
+ ret
+; 3f7c
+
+Function3f7c: ; 3f7c
+ call Function1cfd
+ call Function1c53
+ dec b
+ dec c
+ call Function3eea
+ ret
+; 3f88
+
+Function3f88: ; 3f88
+ ld hl, $d000
+ ld b, $0
+.asm_3f8d
+ push bc
+ ld c, $8
+.asm_3f90
+ ld a, [de]
+ inc de
+ cpl
+ ld [hl], $0
+ inc hl
+ ld [hli], a
+ dec c
+ jr nz, .asm_3f90
+ pop bc
+ dec c
+ jr nz, .asm_3f8d
+ ret
+; 3f9f
+
+Function3f9f: ; 3f9f
+ ld hl, $d000
+.asm_3fa2
+ push bc
+ ld c, $8
+.asm_3fa5
+ ld a, [de]
+ inc de
+ inc de
+ cpl
+ ld [hl], $0
+ inc hl
+ ld [hli], a
+ dec c
+ jr nz, .asm_3fa5
+ pop bc
+ dec c
+ jr nz, .asm_3fa2
+ ret
+; 3fb5
+
+
SECTION "bank1",ROMX,BANK[$1]
-INCBIN "baserom.gbc", $4000, $5f99 - $4000
+Function4000: ; 4000
+ hlcoord 3, 10
+ ld b, 1
+ ld c, 11
+
+ ld a, [IsInBattle]
+ and a
+ jr z, .asm_4012
+
+ call TextBox
+ jr .asm_4017
+
+.asm_4012
+ ld a, $10
+ call Predef
+
+.asm_4017
+ hlcoord 4, 11
+ ld de, .Waiting
+ call PlaceString
+ ld c, 50
+ jp DelayFrames
+; 4025
+
+.Waiting ; 4025
+ db "Waiting...!@"
+; 4031
+
+LoadPushOAM: ; 4031
+ ld c, hPushOAM & $ff
+ ld b, PushOAMEnd - PushOAM
+ ld hl, PushOAM
+.loop
+ ld a, [hli]
+ ld [$ff00+c], a
+ inc c
+ dec b
+ jr nz, .loop
+ ret
+; 403f
+
+PushOAM: ; 403f
+ ld a, $c4
+ ld [rDMA], a
+ ld a, $28
+.loop
+ dec a
+ jr nz, .loop
+ ret
+PushOAMEnd
+; 4049
+
+
+DataPointers4049: ; 4049
+ dw Data408b
+ dw Data409c
+ dw Data408b
+ dw Data40ad
+ dw Data40be
+ dw Data40cf
+ dw Data40be
+ dw Data40e0
+ dw Data40f1
+ dw Data4113
+ dw Data40f1
+ dw Data4113
+ dw Data4102
+ dw Data4124
+ dw Data4102
+ dw Data4124
+ dw Data4135
+ dw Data414a
+ dw Data415f
+ dw Data4174
+ dw Data4189
+ dw Data419a
+ dw Data4206
+ dw Data41a3
+ dw Data408b
+ dw Data41e4
+ dw Data408b
+ dw Data41f5
+ dw Data423f
+ dw Data4250
+ dw Data4261
+ dw Data426a
+ dw $0000
+; 408b
+
+Data408b: ; 408b
+ db 4 ; #
+ db $00, $00, $00, $00
+ db $00, $08, $00, $01
+ db $08, $00, $02, $02
+ db $08, $08, $02, $03
+; 409c
+
+Data409c: ; 409c
+ db 4 ; #
+ db $00, $00, $00, $80
+ db $00, $08, $00, $81
+ db $08, $00, $02, $82
+ db $08, $08, $02, $83
+; 40ad
+
+Data40ad: ; 40ad
+ db 4 ; #
+ db $00, $08, $20, $80
+ db $00, $00, $20, $81
+ db $08, $08, $22, $82
+ db $08, $00, $22, $83
+; 40be
+
+Data40be: ; 40be
+ db 4 ; #
+ db $00, $00, $00, $04
+ db $00, $08, $00, $05
+ db $08, $00, $02, $06
+ db $08, $08, $02, $07
+; 40cf
+
+Data40cf: ; 40cf
+ db 4 ; #
+ db $00, $00, $00, $84
+ db $00, $08, $00, $85
+ db $08, $00, $02, $86
+ db $08, $08, $02, $87
+; 40e0
+
+Data40e0: ; 40e0
+ db 4 ; #
+ db $00, $08, $20, $84
+ db $00, $00, $20, $85
+ db $08, $08, $22, $86
+ db $08, $00, $22, $87
+; 40f1
+
+Data40f1: ; 40f1
+ db 4 ; #
+ db $00, $00, $00, $08
+ db $00, $08, $00, $09
+ db $08, $00, $02, $0a
+ db $08, $08, $02, $0b
+; 4102
+
+Data4102: ; 4102
+ db 4 ; #
+ db $00, $08, $20, $08
+ db $00, $00, $20, $09
+ db $08, $08, $22, $0a
+ db $08, $00, $22, $0b
+; 4113
+
+Data4113: ; 4113
+ db 4 ; #
+ db $00, $00, $00, $88
+ db $00, $08, $00, $89
+ db $08, $00, $02, $8a
+ db $08, $08, $02, $8b
+; 4124
+
+Data4124: ; 4124
+ db 4 ; #
+ db $00, $08, $20, $88
+ db $00, $00, $20, $89
+ db $08, $08, $22, $8a
+ db $08, $00, $22, $8b
+; 4135
+
+Data4135: ; 4135
+ db 5 ; #
+ db $00, $00, $00, $00
+ db $00, $08, $00, $01
+ db $08, $00, $02, $02
+ db $08, $08, $02, $03
+ db $10, $00, $04, $fc
+; 414a
+
+Data414a: ; 414a
+ db 5 ; #
+ db $00, $00, $00, $04
+ db $00, $08, $00, $05
+ db $08, $00, $02, $06
+ db $08, $08, $02, $07
+ db $f8, $00, $04, $fc
+; 415f
+
+Data415f: ; 415f
+ db 5 ; #
+ db $00, $00, $00, $08
+ db $00, $08, $00, $09
+ db $08, $00, $02, $0a
+ db $08, $08, $02, $0b
+ db $05, $f8, $24, $fd
+; 4174
+
+Data4174: ; 4174
+ db 5 ; #
+ db $00, $08, $20, $08
+ db $00, $00, $20, $09
+ db $08, $08, $22, $0a
+ db $08, $00, $22, $0b
+ db $05, $10, $04, $fd
+; 4189
+
+Data4189: ; 4189
+ db 4 ; #
+ db $00, $00, $04, $f8
+ db $00, $08, $04, $f9
+ db $08, $00, $04, $fa
+ db $08, $08, $04, $fb
+; 419a
+
+Data419a: ; 419a
+ db 2 ; #
+ db $00, $00, $04, $fc
+ db $00, $08, $24, $fc
+; 41a3
+
+Data41a3: ; 41a3
+ db 16 ; #
+ db $00, $00, $00, $00
+ db $00, $08, $00, $01
+ db $08, $00, $00, $02
+ db $08, $08, $00, $03
+ db $10, $00, $00, $04
+ db $10, $08, $00, $05
+ db $18, $00, $00, $06
+ db $18, $08, $00, $07
+ db $00, $18, $20, $00
+ db $00, $10, $20, $01
+ db $08, $18, $20, $02
+ db $08, $10, $20, $03
+ db $10, $18, $20, $04
+ db $10, $10, $20, $05
+ db $18, $18, $20, $06
+ db $18, $10, $20, $07
+; 41e4
+
+Data41e4: ; 41e4
+ db 4 ; #
+ db $00, $00, $00, $04
+ db $00, $08, $00, $05
+ db $08, $00, $00, $06
+ db $08, $08, $00, $07
+; 41f5
+
+Data41f5: ; 41f5
+ db 4 ; #
+ db $00, $08, $20, $04
+ db $00, $00, $20, $05
+ db $08, $08, $20, $06
+ db $08, $00, $20, $07
+; 4206
+
+Data4206: ; 4206
+ db 14 ; #
+ db $00, $00, $00, $00
+ db $00, $08, $00, $01
+ db $08, $00, $00, $04
+ db $08, $08, $00, $05
+ db $10, $08, $00, $07
+ db $18, $08, $00, $0a
+ db $00, $18, $00, $03
+ db $00, $10, $00, $02
+ db $08, $18, $20, $02
+ db $08, $10, $00, $06
+ db $10, $18, $00, $09
+ db $10, $10, $00, $08
+ db $18, $18, $20, $04
+ db $18, $10, $00, $0b
+; 423f
+
+Data423f: ; 423f
+ db 4 ; #
+ db $00, $00, $04, $fe
+ db $00, $08, $04, $fe
+ db $08, $00, $04, $fe
+ db $08, $08, $04, $fe
+; 4250
+
+Data4250: ; 4250
+ db 4 ; #
+ db $00, $00, $04, $ff
+ db $00, $08, $04, $ff
+ db $08, $00, $04, $ff
+ db $08, $08, $04, $ff
+; 4261
+
+Data4261: ; 4261
+ db 2 ; #
+ db $08, $00, $04, $fe
+ db $08, $08, $24, $fe
+; 426a
+
+Data426a: ; 426a
+ db 2 ; #
+ db $09, $ff, $04, $fe
+ db $09, $09, $24, $fe
+; 4273
+
+
+Data4273: ; 4273
+INCBIN "baserom.gbc", $4273, $4357 - $4273
+; 4357
+
+
+Function4357: ; 4357
+ push bc
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ push af
+ ld h, b
+ ld l, c
+ ld bc, $0028
+ xor a
+ call ByteFill
+ pop af
+ cp $ff
+ jr z, .asm_4379
+ bit 7, a
+ jr nz, .asm_4379
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld [hl], $ff
+
+.asm_4379
+ pop bc
+ ret
+; 437b
+
+Function437b: ; 437b
+ call Function4386
+ ret c
+ call Function43f3
+ call Function4427
+ ret
+; 4386
+
+Function4386: ; 4386
+ ld hl, $0005
+ add hl, bc
+ res 6, [hl]
+ ld a, [XCoord]
+ ld e, a
+ ld hl, $0010
+ add hl, bc
+ ld a, [hl]
+ add $1
+ sub e
+ jr c, .asm_43b2
+ cp $c
+ jr nc, .asm_43b2
+ ld a, [YCoord]
+ ld e, a
+ ld hl, $0011
+ add hl, bc
+ ld a, [hl]
+ add $1
+ sub e
+ jr c, .asm_43b2
+ cp $b
+ jr nc, .asm_43b2
+ jr .asm_43dc
+
+.asm_43b2
+ ld hl, $0005
+ add hl, bc
+ set 6, [hl]
+ ld a, [XCoord]
+ ld e, a
+ ld hl, $0014
+ add hl, bc
+ ld a, [hl]
+ add $1
+ sub e
+ jr c, .asm_43de
+ cp $c
+ jr nc, .asm_43de
+ ld a, [YCoord]
+ ld e, a
+ ld hl, $0015
+ add hl, bc
+ ld a, [hl]
+ add $1
+ sub e
+ jr c, .asm_43de
+ cp $b
+ jr nc, .asm_43de
+
+.asm_43dc
+ and a
+ ret
+
+.asm_43de
+ ld hl, $0004
+ add hl, bc
+ bit 1, [hl]
+ jr nz, .asm_43eb
+ call Function4357
+ scf
+ ret
+
+.asm_43eb
+ ld hl, $0005
+ add hl, bc
+ set 6, [hl]
+ and a
+ ret
+; 43f3
+
+Function43f3: ; 43f3
+ ld hl, $0009
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_4409
+ ld hl, $0005
+ add hl, bc
+ bit 5, [hl]
+ jr nz, .asm_4426
+ cp $1
+ jr z, .asm_4414
+ jr .asm_4421
+
+.asm_4409
+ call Function47bc
+ ld hl, $0005
+ add hl, bc
+ bit 5, [hl]
+ jr nz, .asm_4426
+
+.asm_4414
+ call Function47dd
+ ld hl, $0009
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret z
+ cp $1
+ ret z
+
+.asm_4421
+ ld hl, Pointers4b45
+ rst JumpTable
+ ret
+
+.asm_4426
+ ret
+; 4427
+
+Function4427: ; 4427
+ ld hl, $0004
+ add hl, bc
+ bit 0, [hl]
+ jr nz, Function44a3
+
+ ld hl, $0005
+ add hl, bc
+ bit 6, [hl]
+ jr nz, Function44a3
+
+ bit 5, [hl]
+ jr nz, Function4448
+
+ ld de, Pointers445f
+ jr Function444d
+; 4440
+
+Function4440: ; 4440
+ ld hl, $0004
+ add hl, bc
+ bit 0, [hl]
+ jr nz, Function44a3
+ ; fallthrough
+; 4448
+
+Function4448: ; 4448
+ ld de, Pointers445f + 2
+ jr Function444d
+; 444d
+
+Function444d: ; 444d
+ ld hl, $000b
+ add hl, bc
+ ld a, [hl]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call JpHl
+ ret
+; 445f
+
+Pointers445f: ; 445f
+ dw Function44a3
+ dw Function44a3
+ dw Function44b5
+ dw Function44aa
+ dw Function44c1
+ dw Function44aa
+ dw Function4508
+ dw Function44aa
+ dw Function4529
+ dw Function44aa
+ dw Function4539
+ dw Function44a3
+ dw Function456e
+ dw Function456e
+ dw Function457b
+ dw Function44a3
+ dw Function4582
+ dw Function4582
+ dw Function4589
+ dw Function4589
+ dw Function4590
+ dw Function45a4
+ dw Function45ab
+ dw Function44aa
+ dw Function45be
+ dw Function45be
+ dw Function45c5
+ dw Function45c5
+ dw Function45da
+ dw Function44a3
+ dw Function45ed
+ dw Function44a3
+ dw Function44e4
+ dw Function44aa
+; 44a3
+
+Function44a3: ; 44a3
+ ld hl, $000d
+ add hl, bc
+ ld [hl], $ff
+ ret
+; 44aa
+
+Function44aa: ; 44aa
+ call GetSpriteDirection
+ or $0
+ ld hl, $000d
+ add hl, bc
+ ld [hl], a
+ ret
+; 44b5
+
+Function44b5: ; 44b5
+ ld hl, $000d
+ add hl, bc
+ ld a, [hl]
+ and $1
+ jr nz, Function44c1
+ jp Function44aa
+; 44c1
+
+Function44c1: ; 44c1
+ ld hl, $0004
+ add hl, bc
+ bit 3, [hl]
+ jp nz, Function44aa
+ ld hl, $000c
+ add hl, bc
+ ld a, [hl]
+ inc a
+ and $f
+ ld [hl], a
+ rrca
+ rrca
+ and $3
+ ld d, a
+ call GetSpriteDirection
+ or $0
+ or d
+ ld hl, $000d
+ add hl, bc
+ ld [hl], a
+ ret
+; 44e4
+
+Function44e4: ; 44e4
+ ld hl, $0004
+ add hl, bc
+ bit 3, [hl]
+ jp nz, Function44aa
+ ld hl, $000c
+ add hl, bc
+ ld a, [hl]
+ add $2
+ and $f
+ ld [hl], a
+ rrca
+ rrca
+ and $3
+ ld d, a
+ call GetSpriteDirection
+ or $0
+ or d
+ ld hl, $000d
+ add hl, bc
+ ld [hl], a
+ ret
+; 4508
+
+Function4508: ; 4508
+ ld hl, $0004
+ add hl, bc
+ bit 3, [hl]
+ jp nz, Function44aa
+ ld hl, $000c
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ rrca
+ rrca
+ rrca
+ and $3
+ ld d, a
+ call GetSpriteDirection
+ or $0
+ or d
+ ld hl, $000d
+ add hl, bc
+ ld [hl], a
+ ret
+; 4529
+
+Function4529: ; 4529
+ call Function453f
+ ld hl, $0008
+ add hl, bc
+ ld a, [hl]
+ or $0
+ ld hl, $000d
+ add hl, bc
+ ld [hl], a
+ ret
+; 4539
+
+Function4539: ; 4539
+ call Function453f
+ jp Function44a3
+; 453f
+
+Function453f: ; 453f
+ ld hl, $000c
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ ld e, a
+ ld a, [hl]
+ inc a
+ and $f
+ ld d, a
+ cp $4
+ jr c, .asm_4558
+ ld d, 0
+ ld a, e
+ add $10
+ and $30
+ ld e, a
+
+.asm_4558
+ ld a, d
+ or e
+ ld [hl], a
+ swap e
+ ld d, 0
+ ld hl, .Directions
+ add hl, de
+ ld a, [hl]
+ ld hl, $0008
+ add hl, bc
+ ld [hl], a
+ ret
+; 456a
+
+.Directions ; 456a
+ db $00, $0c, $04, $08
+; 456e
+
+Function456e: ; 456e
+ call GetSpriteDirection
+ rrca
+ rrca
+ add $10
+ ld hl, $000d
+ add hl, bc
+ ld [hl], a
+ ret
+; 457b
+
+Function457b: ; 457b
+ ld hl, $000d
+ add hl, bc
+ ld [hl], $15
+ ret
+; 4582
+
+Function4582: ; 4582
+ ld hl, $000d
+ add hl, bc
+ ld [hl], $14
+ ret
+; 4589
+
+Function4589: ; 4589
+ ld hl, $000d
+ add hl, bc
+ ld [hl], $17
+ ret
+; 4590
+
+Function4590: ; 4590
+ ld hl, $000c
+ add hl, bc
+ ld a, [hl]
+ inc a
+ and $f
+ ld [hl], a
+ and $8
+ jr z, Function45a4
+ ld hl, $000d
+ add hl, bc
+ ld [hl], $4
+ ret
+; 45a4
+
+Function45a4: ; 45a4
+ ld hl, $000d
+ add hl, bc
+ ld [hl], $0
+ ret
+; 45ab
+
+Function45ab: ; 45ab
+ ld hl, $000c
+ add hl, bc
+ ld a, [hl]
+ inc a
+ ld [hl], a
+ and $c
+ rrca
+ rrca
+ add $18
+ ld hl, $000d
+ add hl, bc
+ ld [hl], a
+ ret
+; 45be
+
+Function45be: ; 45be
+ ld hl, $000d
+ add hl, bc
+ ld [hl], $16
+ ret
+; 45c5
+
+Function45c5: ; 45c5
+ ld a, [$d831]
+ ld d, $17
+ cp $33
+ jr z, .asm_45d4
+ cp $47
+ jr z, .asm_45d4
+ ld d, $16
+
+.asm_45d4
+ ld hl, $000d
+ add hl, bc
+ ld [hl], d
+ ret
+; 45da
+
+Function45da: ; 45da
+ ld hl, $000c
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ ld hl, $000d
+ add hl, bc
+ and $2
+ ld a, $1c
+ jr z, .asm_45eb
+ inc a
+
+.asm_45eb
+ ld [hl], a
+ ret
+; 45ed
+
+Function45ed: ; 45ed
+ ld hl, $000c
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ ld hl, $000d
+ add hl, bc
+ and $4
+ ld a, $1e
+ jr z, .asm_45fe
+ inc a
+
+.asm_45fe
+ ld [hl], a
+ ret
+; 4600
+
+Function4600: ; 4600
+ ld hl, $0010
+ add hl, bc
+ ld a, [hl]
+ ld hl, $0012
+ add hl, bc
+ ld [hl], a
+ ld hl, $0011
+ add hl, bc
+ ld a, [hl]
+ ld hl, $0013
+ add hl, bc
+ ld [hl], a
+ ld hl, $000e
+ add hl, bc
+ ld a, [hl]
+ ld hl, $000f
+ add hl, bc
+ ld [hl], a
+ call Function4661
+ ld hl, $000e
+ add hl, bc
+ ld a, [hl]
+ call Function4679
+ ret
+; 462a
+
+Function462a: ; 462a
+ ld hl, $0012
+ add hl, bc
+ ld a, [hl]
+ ld hl, $0010
+ add hl, bc
+ ld [hl], a
+ ld hl, $0013
+ add hl, bc
+ ld a, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld [hl], a
+ ret
+; 463f
+
+Function463f: ; 463f
+ ld hl, $0005
+ add hl, bc
+ bit 3, [hl]
+ jr z, .asm_464f
+ ld hl, $000e
+ add hl, bc
+ ld a, [hl]
+ call Function4661
+
+.asm_464f
+ ld hl, $000e
+ add hl, bc
+ ld a, [hl]
+ call Function4679
+ ret c
+ ld hl, $000f
+ add hl, bc
+ ld a, [hl]
+ call Function4679
+ ret
+; 4661
+
+Function4661: ; 4661
+ call Function188e
+ jr z, .asm_466b
+ call Function1875
+ jr c, .asm_4672
+
+.asm_466b
+ ld hl, $0005
+ add hl, bc
+ set 3, [hl]
+ ret
+
+.asm_4672
+ ld hl, $0005
+ add hl, bc
+ res 3, [hl]
+ ret
+; 4679
+
+Function4679: ; 4679
+ and a
+ ret
+; 467b
+
+Function467b: ; 467b
+ xor a
+ ld hl, $000c
+ add hl, bc
+ ld [hl], a
+ ld hl, $001b
+ add hl, bc
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ret
+; 4690
+
+Function4690: ; 4690
+ ld hl, $0007
+ add hl, bc
+ ld [hl], a
+ ld hl, $0004
+ add hl, bc
+ bit 2, [hl]
+ jr nz, .asm_46a6
+
+ add a
+ add a
+ and $c
+ ld hl, $0008
+ add hl, bc
+ ld [hl], a
+
+.asm_46a6
+ ; fallthrough
+; 46a6
+
+Function46a6: ; 46a6
+ call Function46e9
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld a, d
+ call Function4730
+ ld hl, $0012
+ add hl, bc
+ add [hl]
+ ld hl, $0010
+ add hl, bc
+ ld [hl], a
+ ld d, a
+ ld a, e
+ call Function4730
+ ld hl, $0013
+ add hl, bc
+ add [hl]
+ ld hl, $0011
+ add hl, bc
+ ld [hl], a
+ ld e, a
+ push bc
+ call Function2a3c
+ pop bc
+ ld hl, $000e
+ add hl, bc
+ ld [hl], a
+ ret
+; 46d7
+
+Function46d7: ; 46d7
+ call Function46e9
+ ld hl, $0017
+ add hl, bc
+ ld a, [hl]
+ add d
+ ld [hl], a
+ ld hl, $0018
+ add hl, bc
+ ld a, [hl]
+ add e
+ ld [hl], a
+ ret
+; 46e9
+
+Function46e9: ; 46e9
+ ld hl, $0007
+ add hl, bc
+ ld a, [hl]
+ and $f
+ add a
+ add a
+ ld l, a
+ ld h, 0
+ ld de, .Steps
+ add hl, de
+ ld d, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ret
+; 4700
+
+.Steps ; 4700
+ ; x, y, duration, speed
+ ; slow
+ db 0, 1, $10, $01
+ db 0, -1, $10, $01
+ db -1, 0, $10, $01
+ db 1, 0, $10, $01
+ ; normal
+ db 0, 2, $08, $02
+ db 0, -2, $08, $02
+ db -2, 0, $08, $02
+ db 2, 0, $08, $02
+ ; fast
+ db 0, 4, $04, $04
+ db 0, -4, $04, $04
+ db -4, 0, $04, $04
+ db 4, 0, $04, $04
+; 4730
+
+Function4730: ; 4730
+ add a
+ ret z
+ ld a, 1
+ ret nc
+ ld a, -1
+ ret
+; 4738
+
+Function4738: ; 4738
+ ld hl, $0007
+ add hl, bc
+ ld a, [hl]
+ and $3
+ ld [$d151], a
+ call Function46d7
+ ld a, [$d14e]
+ add d
+ ld [$d14e], a
+ ld a, [$d14f]
+ add e
+ ld [$d14f], a
+ ld hl, $d150
+ set 5, [hl]
+ ret
+; 4759
+
+Function4759: ; 4759
+ push bc
+ ld e, a
+ ld d, 0
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ call GetMapObject
+ add hl, de
+ ld a, [hl]
+ pop bc
+ ret
+; 4769
+
+Function4769: ; 4769
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_477d
+ push bc
+ call GetMapObject
+ ld hl, $0004
+ add hl, bc
+ ld a, [hl]
+ pop bc
+ ret
+
+.asm_477d
+ ld a, $6
+ ret
+; 4780
+
+Function4780: ; 4780
+ ld hl, $001b
+ add hl, bc
+ ld [hl], $0
+ ret
+; 4787
+
+Function4787: ; 4787
+ ld hl, $001b
+ add hl, bc
+ inc [hl]
+ ret
+; 478d
+
+Function478d: ; 478d
+ ld hl, $001b
+ add hl, bc
+ dec [hl]
+ ret
+; 4793
+
+Function4793: ; 4793
+ ld hl, $001b
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ rst JumpTable
+ ret
+; 479b
+
+Function479b: ; 479b
+ ld hl, $001c
+ add hl, bc
+ ld [hl], $0
+ ret
+; 47a2
+
+Function47a2: ; 47a2
+ ld hl, $001c
+ add hl, bc
+ inc [hl]
+ ret
+; 47a8
+
+Function47a8: ; 47a8
+ ld hl, $001c
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ rst JumpTable
+ ret
+; 47b0
+
+Function47b0: ; 47b0
+ ld hl, $001c
+ add hl, bc
+ ld a, [hl]
+ ret
+; 47b6
+
+Function47b6: ; 47b6
+ ld hl, $001c
+ add hl, bc
+ ld [hl], a
+ ret
+; 47bc
+
+Function47bc: ; 47bc
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ push bc
+ call Function2a3c
+ pop bc
+ ld hl, $000e
+ add hl, bc
+ ld [hl], a
+ call Function4600
+ call Function467b
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 47dd
+
+Function47dd: ; 47dd
+ call Function479b
+ call Function1a2f
+ ld a, [hl]
+ ld hl, .Pointers
+ rst JumpTable
+ ret
+; 47e9
+
+.Pointers ; 47e9
+ dw Function4821
+ dw Function4822
+ dw Function482c
+ dw Function4838
+ dw Function4842
+ dw Function4851
+ dw Function4869
+ dw Function487c
+ dw Function4882
+ dw Function4888
+ dw Function488e
+ dw Function4891
+ dw Function4894
+ dw Function4897
+ dw Function489d
+ dw Function48a0
+ dw Function48a6
+ dw Function48ac
+ dw Function48ff
+ dw Function49e5
+ dw Function4a21
+ dw Function4958
+ dw Function496e
+ dw Function4abc
+ dw Function498d
+ dw Function4984
+ dw Function4a46
+ dw Function4a89
+; 4821
+
+Function4821: ; 4821
+ ret
+; 4822
+
+Function4822: ; 4822
+ call RNG
+ ld a, [hRandomAdd]
+ and 1
+ jp Function4af0
+; 482c
+
+Function482c: ; 482c
+ call RNG
+ ld a, [hRandomAdd]
+ and 1
+ or 2
+ jp Function4af0
+; 4838
+
+Function4838: ; 4838
+ call RNG
+ ld a, [hRandomAdd]
+ and 3
+ jp Function4af0
+; 4842
+
+Function4842: ; 4842
+ call RNG
+ ld a, [hRandomAdd]
+ and $c
+ ld hl, $0008
+ add hl, bc
+ ld [hl], a
+ jp Function4b1d
+; 4851
+
+Function4851: ; 4851
+ ld hl, $0008
+ add hl, bc
+ ld a, [hl]
+ and $c
+ ld d, a
+ call RNG
+ ld a, [hRandomAdd]
+ and $c
+ cp d
+ jr nz, .asm_4865
+ xor $c
+
+.asm_4865
+ ld [hl], a
+ jp Function4b26
+; 4869
+
+Function4869: ; 4869
+ call Function462a
+ call Function467b
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $1
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $5
+ ret
+; 487c
+
+Function487c: ; 487c
+ ld hl, Function5000
+ jp Function5041
+; 4882
+
+Function4882: ; 4882
+ ld hl, Function5015
+ jp Function5041
+; 4888
+
+Function4888: ; 4888
+ ld hl, Function5026
+ jp Function5041
+; 488e
+
+Function488e: ; 488e
+ jp Function5037
+; 4891
+
+Function4891: ; 4891
+ jp Function5037
+; 4894
+
+Function4894: ; 4894
+ jp Function5037
+; 4897
+
+Function4897: ; 4897
+ ld hl, Function5000
+ jp Function5041
+; 489d
+
+Function489d: ; 489d
+ jp Function5037
+; 48a0
+
+Function48a0: ; 48a0
+ ld hl, Function54e6
+ jp Function5041
+; 48a6
+
+Function48a6: ; 48a6
+ ld hl, Function500e
+ jp Function5041
+; 48ac
+
+Function48ac: ; 48ac
+ call Function4793
+ dw Function48b3
+ dw Function48f8
+; 48b3
+
+Function48b3: ; 48b3
+ ld hl, $000e
+ add hl, bc
+ ld a, [hl]
+ call CheckPitTile
+ jr z, .asm_48f5
+ ld hl, $0005
+ add hl, bc
+ bit 2, [hl]
+ res 2, [hl]
+ jr z, .asm_48ee
+ ld hl, $0020
+ add hl, bc
+ ld a, [hl]
+ and $3
+ or $0
+ call Function4690
+ call Function6ec1
+ jr c, .asm_48eb
+ ld de, SFX_STRENGTH
+ call StartSFX
+ call Function5538
+ call Function463f
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $f
+ ret
+
+.asm_48eb
+ call Function462a
+
+.asm_48ee
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ret
+
+.asm_48f5
+ call Function4787
+ ; fallthrough
+; 48f8
+
+Function48f8: ; 48f8
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ret
+; 48ff
+
+Function48ff: ; 48ff
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ ld hl, $0020
+ add hl, bc
+ ld a, [hl]
+ push bc
+ call Function1ae5
+ ld hl, $0007
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_494a
+ ld hl, $0012
+ add hl, bc
+ ld a, [hl]
+ cp d
+ jr z, .asm_492d
+ jr c, .asm_4929
+ ld a, $3
+ jr .asm_493d
+
+.asm_4929
+ ld a, $2
+ jr .asm_493d
+
+.asm_492d
+ ld hl, $0013
+ add hl, bc
+ ld a, [hl]
+ cp e
+ jr z, .asm_494a
+ jr c, .asm_493b
+ ld a, $0
+ jr .asm_493d
+
+.asm_493b
+ ld a, $1
+
+.asm_493d
+ ld d, a
+ ld hl, $0007
+ add hl, bc
+ ld a, [hl]
+ and $c
+ or d
+ pop bc
+ jp Function5412
+
+.asm_494a
+ pop bc
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4958
+
+Function4958: ; 4958
+ call Function467b
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $9
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $4
+ ret
+; 496e
+
+Function496e: ; 496e
+ call Function467b
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $a
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $4
+ ret
+; 4984
+
+Function4984: ; 4984
+ call Function4793
+ dw Function4996
+ dw Function499c
+ dw Function49b8
+; 498d
+
+Function498d: ; 498d
+ call Function4793
+ dw Function4996
+ dw Function499c
+ dw Function49c4
+; 4996
+
+Function4996: ; 4996
+ call Function467b
+ call Function4787
+ ; fallthrough
+; 499c
+
+Function499c: ; 499c
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $1
+ ld hl, $0020
+ add hl, bc
+ ld a, [hl]
+ ld a, $10
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $3
+ call Function4787
+ ret
+; 49b8
+
+Function49b8: ; 49b8
+ ld de, .data_49c0
+ call Function49d0
+ jr Function4984
+; 49c0
+
+.data_49c0 ; 49c0
+ db $0c, $08, $00, $04
+; 49c4
+
+Function49c4: ; 49c4
+ ld de, .data_49cc
+ call Function49d0
+ jr Function498d
+; 49cc
+
+.data_49cc ; 49cc
+ db $08, $0c, $04, $00
+; 49d0
+
+Function49d0: ; 49d0
+ ld hl, $0008
+ add hl, bc
+ ld a, [hl]
+ and $c
+ rrca
+ rrca
+ push hl
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld a, [hl]
+ pop hl
+ ld [hl], a
+ call Function478d
+ ret
+; 49e5
+
+Function49e5: ; 49e5
+ call Function4aa8
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $7
+ ld hl, $000a
+ add hl, de
+ ld a, [hl]
+ inc a
+ add a
+ add $0
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $0007
+ add hl, de
+ ld a, [hl]
+ and 3
+ ld d, $e
+ cp 0
+ jr z, .asm_4a0f
+ cp 1
+ jr z, .asm_4a0f
+ ld d, $c
+
+.asm_4a0f
+ ld hl, $001a
+ add hl, bc
+ ld [hl], d
+ ld hl, $0019
+ add hl, bc
+ ld [hl], $0
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $13
+ ret
+; 4a21
+
+Function4a21: ; 4a21
+ call Function467b
+ call Function4aa8
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $8
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $0
+ ld hl, $001a
+ add hl, bc
+ ld [hl], $f0
+ ld hl, $0019
+ add hl, bc
+ ld [hl], $0
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $13
+ ret
+; 4a46
+
+Function4a46: ; 4a46
+ call Function467b
+ call Function4aa8
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $e
+ ld hl, $000a
+ add hl, de
+ ld a, [hl]
+ inc a
+ add a
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $0007
+ add hl, de
+ ld a, [hl]
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, .data_4a81
+ add hl, de
+ add hl, de
+ ld d, [hl]
+ inc hl
+ ld e, [hl]
+ ld hl, $0019
+ add hl, bc
+ ld [hl], d
+ ld hl, $001a
+ add hl, bc
+ ld [hl], e
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $13
+ ret
+; 4a81
+
+.data_4a81 ; 4a81
+ ; x, y
+ db 0, -4
+ db 0, 8
+ db 6, 2
+ db -6, 2
+; 4a89
+
+Function4a89: ; 4a89
+ call Function467b
+ call Function4aa8
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $f
+ ld hl, $000a
+ add hl, de
+ ld a, [hl]
+ add $ff
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $13
+ ret
+; 4aa8
+
+Function4aa8: ; 4aa8
+ ld hl, $0020
+ add hl, bc
+ ld a, [hl]
+ push bc
+ call Function1ae5
+ ld d, b
+ ld e, c
+ pop bc
+ ld hl, $001d
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+; 4abc
+
+Function4abc: ; 4abc
+ call Function467b
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $0
+ ld hl, $0020
+ add hl, bc
+ ld a, [hl]
+ call Function4ade
+ ld hl, $000a
+ add hl, bc
+ ld [hl], e
+ ld hl, $001e
+ add hl, bc
+ ld [hl], a
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $15
+ ret
+; 4ade
+
+Function4ade: ; 4ade
+ ld d, a
+ and $3f
+ ld e, a
+ ld a, d
+ rlca
+ rlca
+ and $3
+ ld d, a
+ inc d
+ ld a, $1
+.asm_4aeb
+ dec d
+ ret z
+ add a
+ jr .asm_4aeb
+; 4af0
+
+Function4af0: ; 4af0
+ call Function4690
+ call Function6ec1
+ jr c, Function4b17
+ call Function463f
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $2
+ ld hl, $d4cf
+ ld a, [hConnectionStripLength]
+ cp [hl]
+ jr z, .asm_4b10
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $7
+ ret
+
+.asm_4b10
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $6
+ ret
+
+Function4b17: ; 4b17
+ call Function467b
+ call Function462a
+ ; fallthrough
+; 4b1d
+
+Function4b1d: ; 4b1d
+ call RNG
+ ld a, [hRandomAdd]
+ and $7f
+ jr Function4b2d
+; 4b26
+
+Function4b26: ; 4b26
+ call RNG
+ ld a, [hRandomAdd]
+ and $1f
+ ; fallthrough
+; 4b2d
+
+Function4b2d: ; 4b2d
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $1
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $3
+ ret
+; 4b45
+
+Pointers4b45: ; 4b45
+ dw Function47bc
+ dw Function47dd
+ dw Function4e2b
+ dw Function4ddd
+ dw Function4e21
+ dw Function4e0c
+ dw Function4e56
+ dw Function4e47
+ dw Function4b86
+ dw Function4bbf
+ dw Function4e83
+ dw Function4dff
+ dw Function4c18
+ dw Function4c89
+ dw Function4d14
+ dw Function4ecd
+ dw Function4d7e
+ dw Function4daf
+ dw Function4dc8
+ dw Function4f04
+ dw Function4f33
+ dw Function4f33
+ dw Function4f77
+ dw Function4f7a
+ dw Function4df0
+ dw Function4f83
+; 4b79
+
+Function4b79: ; 4b79
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4b86
+
+Function4b86: ; 4b86
+ call Function47a8
+ dw Function4b8d
+ dw Function4ba9
+; 4b8d
+
+Function4b8d: ; 4b8d
+ call Function46d7
+ call UpdateJumpPosition
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ call Function4600
+ call Function46a6
+ ld hl, $0005
+ add hl, bc
+ res 3, [hl]
+ call Function47a2
+ ret
+; 4ba9
+
+Function4ba9: ; 4ba9
+ call Function46d7
+ call UpdateJumpPosition
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ call Function4600
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4bbf
+
+Function4bbf: ; 4bbf
+ call Function47a8
+ dw Function4bca
+ dw Function4bd2
+ dw Function4bf2
+ dw Function4bfd
+; 4bca
+
+Function4bca: ; 4bca
+ ld hl, $d150
+ set 7, [hl]
+ call Function47a2
+; fallthrough
+; 4bd2
+
+Function4bd2: ; 4bd2
+ call UpdateJumpPosition
+ call Function4738
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ call Function4600
+ ld hl, $0005
+ add hl, bc
+ res 3, [hl]
+ ld hl, $d150
+ set 6, [hl]
+ set 4, [hl]
+ call Function47a2
+ ret
+; 4bf2
+
+Function4bf2: ; 4bf2
+ call Function46a6
+ ld hl, $d150
+ set 7, [hl]
+ call Function47a2
+; fallthrough
+; 4bfd
+
+Function4bfd: ; 4bfd
+ call UpdateJumpPosition
+ call Function4738
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ ld hl, $d150
+ set 6, [hl]
+ call Function4600
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4c18
+
+Function4c18: ; 4c18
+ call Function47a8
+ dw Function4c23
+ dw Function4c32
+ dw Function4c42
+ dw Function4c5d
+; 4c23
+
+Function4c23: ; 4c23
+ ld hl, $000c
+ add hl, bc
+ ld [hl], $0
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $10
+ call Function47a2
+; fallthrough
+; 4c32
+
+Function4c32: ; 4c32
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $4
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ call Function47a2
+ ret
+; 4c42
+
+Function4c42: ; 4c42
+ ld hl, $000c
+ add hl, bc
+ ld [hl], $0
+ ld hl, $001f
+ add hl, bc
+ ld [hl], $10
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $10
+ ld hl, $0005
+ add hl, bc
+ res 3, [hl]
+ call Function47a2
+; fallthrough
+; 4c5d
+
+Function4c5d: ; 4c5d
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $4
+ ld hl, $001f
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ ld d, $60
+ call $1b11
+ ld a, h
+ sub $60
+ ld hl, $001a
+ add hl, bc
+ ld [hl], a
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ ld hl, $000c
+ add hl, bc
+ ld [hl], $0
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4c89
+
+Function4c89: ; 4c89
+ call Function47a8
+ dw Function4c9a
+ dw Function4caa
+ dw Function4cb3
+ dw Function4cc9
+ dw Function4ceb
+ dw Function4cf5
+ dw Function4d01
+; 4c9a
+
+Function4c9a: ; 4c9a
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $0
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $10
+ call Function47a2
+ ret
+; 4caa
+
+Function4caa: ; 4caa
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ call Function47a2
+; fallthrough
+; 4cb3
+
+Function4cb3: ; 4cb3
+ ld hl, $000c
+ add hl, bc
+ ld [hl], $0
+ ld hl, $001f
+ add hl, bc
+ ld [hl], $0
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $10
+ call Function47a2
+ ret
+; 4cc9
+
+Function4cc9: ; 4cc9
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $4
+ ld hl, $001f
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ ld d, $60
+ call $1b11
+ ld a, h
+ sub $60
+ ld hl, $001a
+ add hl, bc
+ ld [hl], a
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ call Function47a2
+; fallthrough
+; 4ceb
+
+Function4ceb: ; 4ceb
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $10
+ call Function47a2
+ ret
+; 4cf5
+
+Function4cf5: ; 4cf5
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $4
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+; 4d01
+
+Function4d01: ; 4d01
+ ld hl, $000c
+ add hl, bc
+ ld [hl], $0
+ ld hl, $001a
+ add hl, bc
+ ld [hl], $0
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4d14
+
+Function4d14: ; 4d14
+ call Function47a8
+ dw Function4d1f
+ dw Function4d2e
+ dw Function4d4f
+ dw Function4d6b
+; 4d1f
+
+Function4d1f: ; 4d1f
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $0
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $10
+ call Function47a2
+; fallthrough
+; 4d2e
+
+Function4d2e: ; 4d2e
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $2
+ ld hl, $000c
+ add hl, bc
+ ld [hl], $0
+ ld hl, $001f
+ add hl, bc
+ ld [hl], $0
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $10
+ call Function47a2
+; fallthrough
+; 4d4f
+
+Function4d4f: ; 4d4f
+ ld hl, $001f
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ ld d, $60
+ call $1b11
+ ld a, h
+ sub $60
+ ld hl, $001a
+ add hl, bc
+ ld [hl], a
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ call Function47a2
+; fallthrough
+; 4d6b
+
+Function4d6b: ; 4d6b
+ ld hl, $000c
+ add hl, bc
+ ld [hl], $0
+ ld hl, $001a
+ add hl, bc
+ ld [hl], $0
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4d7e
+
+Function4d7e: ; 4d7e
+ call Function47a8
+ dw Function4d85
+ dw Function4d94
+; 4d85
+
+Function4d85: ; 4d85
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $8
+ ld hl, $001a
+ add hl, bc
+ ld [hl], $0
+ call Function47a2
+ ; fallthrough
+; 4d94
+
+Function4d94: ; 4d94
+ ld hl, $001a
+ add hl, bc
+ ld a, [hl]
+ xor 1
+ ld [hl], a
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ ld hl, $001a
+ add hl, bc
+ ld [hl], $0
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4daf
+
+Function4daf: ; 4daf
+ call Function4db5
+ jp Function4b79
+; 4db5
+
+Function4db5: ; 4db5
+ ld hl, $000a
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ld a, $1
+ jr z, .asm_4dc2
+ ld a, $0
+
+.asm_4dc2
+ ld hl, $000b
+ add hl, bc
+ ld [hl], a
+ ret
+; 4dc8
+
+Function4dc8: ; 4dc8
+ ld hl, $000a
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ld a, $4
+ jr z, .asm_4dd5
+ ld a, $5
+
+.asm_4dd5
+ ld hl, $000b
+ add hl, bc
+ ld [hl], a
+ jp Function4b79
+; 4ddd
+
+Function4ddd: ; 4ddd
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4df0
+
+Function4df0: ; 4df0
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ jp Function4357
+; 4dff
+
+Function4dff: ; 4dff
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4e0c
+
+Function4e0c: ; 4e0c
+ call Function47a8
+ dw Function4e13
+ dw Function4e21
+; 4e13
+
+Function4e13: ; 4e13
+ call Function4769
+ call Function1a47
+ ld hl, $0008
+ add hl, bc
+ ld [hl], a
+ call Function47a2
+ ; fallthrough
+; 4e21
+
+Function4e21: ; 4e21
+ call Function4fb2
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ret
+; 4e2b
+
+Function4e2b: ; 4e2b
+ call Function4fb2
+ call Function46d7
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ call Function4600
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4e47
+
+Function4e47: ; 4e47
+ call Function46d7
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ call Function4600
+ jp Function4b1d
+; 4e56
+
+Function4e56: ; 4e56
+; AnimateStep?
+ call Function47a8
+ dw Function4e5d
+ dw Function4e65
+; 4e5d
+
+Function4e5d: ; 4e5d
+ ld hl, $d150
+ set 7, [hl]
+ call Function47a2
+ ; fallthrough
+; 4e65
+
+Function4e65: ; 4e65
+ call Function4738
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ ld hl, $d150
+ set 6, [hl]
+ call Function4600
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4e83
+
+Function4e83: ; 4e83
+ call Function47a8
+ dw Function4e8e
+ dw Function4ea4
+ dw Function4ead
+ dw Function4ec0
+; 4e8e
+
+Function4e8e: ; 4e8e
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ld hl, $000c
+ add hl, bc
+ ld a, [hl]
+ ld [hl], $2
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $2
+ call Function47a2
+ ; fallthrough
+; 4ea4
+
+Function4ea4: ; 4ea4
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ call Function47a2
+ ; fallthrough
+; 4ead
+
+Function4ead: ; 4ead
+ ld hl, $001d
+ add hl, bc
+ ld a, [hl]
+ ld hl, $0008
+ add hl, bc
+ ld [hl], a
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $2
+ call Function47a2
+ ; fallthrough
+; 4ec0
+
+Function4ec0: ; 4ec0
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4ecd
+
+Function4ecd: ; 4ecd
+ call Function46d7
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ push bc
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ ld b, a
+ ld a, $2
+ ld hl, $407e
+ rst FarCall
+ pop bc
+ ld hl, $0005
+ add hl, bc
+ res 2, [hl]
+ call Function4600
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $ff
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4f04
+
+Function4f04: ; 4f04
+ ld hl, $001d
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $0000
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .asm_4f30
+ ld hl, $0017
+ add hl, de
+ ld a, [hl]
+ ld hl, $0017
+ add hl, bc
+ ld [hl], a
+ ld hl, $0018
+ add hl, de
+ ld a, [hl]
+ ld hl, $0018
+ add hl, bc
+ ld [hl], a
+ ld hl, $000a
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret nz
+
+.asm_4f30
+ jp Function4357
+; 4f33
+
+Function4f33: ; 4f33
+ call Function47a8
+ dw Function4f3a
+ dw Function4f43
+; 4f3a
+
+Function4f3a: ; 4f3a
+ xor a
+ ld hl, $001d
+ add hl, bc
+ ld [hl], a
+ call Function47a2
+ ; fallthrough
+; 4f43
+
+Function4f43: ; 4f43
+ ld hl, $001d
+ add hl, bc
+ ld d, [hl]
+ ld a, [$d14f]
+ sub d
+ ld [$d14f], a
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ jr z, .asm_4f68
+ ld a, [hl]
+ call Function4f6c
+ ld hl, $001d
+ add hl, bc
+ ld [hl], a
+ ld d, a
+ ld a, [$d14f]
+ add d
+ ld [$d14f], a
+ ret
+
+.asm_4f68
+ call Function4357
+ ret
+; 4f6c
+
+Function4f6c: ; 4f6c
+ ld hl, $001e
+ add hl, bc
+ and 1
+ ld a, [hl]
+ ret z
+ cpl
+ inc a
+ ret
+; 4f77
+
+Function4f77: ; 4f77
+ call Function47a8 ; ????
+; 4f7a
+
+Function4f7a: ; 4f7a
+ call Function47a8
+ dw Function4f83
+ dw Function4f83
+ dw Function4f83
+; 4f83
+
+Function4f83: ; 4f83
+ call Function47a8
+ dw Function4f8a
+ dw Function4f99
+; 4f8a
+
+Function4f8a: ; 4f8a
+ ld hl, $000b
+ add hl, bc
+ ld [hl], $10
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $10
+ call Function47a2
+; 4f99
+
+Function4f99: ; 4f99
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ ret nz
+ ld hl, $001a
+ add hl, bc
+ ld [hl], $60
+ ld hl, $000c
+ add hl, bc
+ ld [hl], $0
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $1
+ ret
+; 4fb2
+
+Function4fb2: ; 4fb2
+ ret
+; 4fb3
+
+Function4fb3: ; 4fb3
+ ld hl, $001d
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ srl a
+ srl a
+ and 7
+ ld l, a
+ ld h, 0
+ ld de, .y
+ add hl, de
+ ld a, [hl]
+ ld hl, $001a
+ add hl, bc
+ ld [hl], a
+ ret
+; 4fcd
+
+.y ; 4fcd
+ db 0, -1, -2, -3, -4, -3, -2, -1
+; 4fd5
+
+UpdateJumpPosition: ; 4fd5
+ call Function46e9
+ ld a, h
+ ld hl, $001f
+ add hl, bc
+ ld e, [hl]
+ add e
+ ld [hl], a
+ nop
+ srl e
+ ld d, 0
+ ld hl, .y
+ add hl, de
+ ld a, [hl]
+ ld hl, $001a
+ add hl, bc
+ ld [hl], a
+ ret
+; 4ff0
+
+.y ; 4ff0
+ db -4, -6, -8, -10, -11, -12, -12, -12
+ db -11, -10, -9, -8, -6, -4, 0, 0
+; 5000
+
+Function5000: ; 5000
+ ld a, [$c2de]
+ ld hl, $c2df
+ ld [hl], a
+ ld a, $3e
+ ld [$c2de], a
+ ld a, [hl]
+ ret
+; 500e
+
+Function500e: ; 500e
+ ld hl, $c2e3
+ call Function1aae
+ ret
+; 5015
+
+Function5015: ; 5015
+ ld hl, $001b
+ add hl, bc
+ ld e, [hl]
+ inc [hl]
+ ld d, 0
+ ld hl, $c2e2
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld a, [hl]
+ ret
+; 5026
+
+Function5026: ; 5026
+ ld hl, $001b
+ add hl, bc
+ ld e, [hl]
+ inc [hl]
+ ld d, 0
+ ld hl, $c2e6
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld a, [hl]
+ ret
+; 5037
+
+Function5037: ; 5037
+ ld hl, Function503d
+ jp Function5041
+; 503d
+
+Function503d: ; 503d
+ ld a, [$c2e2]
+ ret
+; 5041
+
+Function5041: ; 5041
+ call Function5055
+.asm_5044
+ xor a
+ ld [$c2ea], a
+ call Function505e
+ call Function506b
+ ld a, [$c2ea]
+ and a
+ jr nz, .asm_5044
+ ret
+; 5055
+
+Function5055: ; 5055
+ ld a, l
+ ld [$c2eb], a
+ ld a, h
+ ld [$c2ec], a
+ ret
+; 505e
+
+Function505e: ; 505e
+ ld hl, $c2eb
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 5065
+
+Function5065: ; 5065
+ ld a, $1
+ ld [$c2ea], a
+ ret
+; 506b
+
+Function506b: ; 506b
+ push af
+ call Function54b8
+ pop af
+ ld hl, MovementPointers
+ rst JumpTable
+ ret
+; 5075
+
+
+; 5075
+INCLUDE "engine/movement.asm"
+; 54b8
+
+
+Function54b8: ; 54b8
+ ld e, a
+ ld a, [$d4ce]
+ cp $ff
+ ret z
+ ld a, [$d4cd]
+ ld d, a
+ ld a, [hConnectionStripLength]
+ cp d
+ ret nz
+ ld a, e
+ cp $3e
+ ret z
+ cp $47
+ ret z
+ cp $4b
+ ret z
+ cp $50
+ ret z
+ cp $8
+ ret c
+ push af
+ ld hl, $d4d0
+ inc [hl]
+ ld e, [hl]
+ ld d, 0
+ ld hl, $d4d1
+ add hl, de
+ pop af
+ ld [hl], a
+ ret
+; 54e6
+
+Function54e6: ; 54e6
+ ld hl, $d4d0
+ ld a, [hl]
+ and a
+ jr z, .asm_5503
+ cp $ff
+ jr z, .asm_5503
+ dec [hl]
+ ld e, a
+ ld d, 0
+ ld hl, $d4d1
+ add hl, de
+ inc e
+ ld a, $ff
+.asm_54fc
+ ld d, [hl]
+ ld [hld], a
+ ld a, d
+ dec e
+ jr nz, .asm_54fc
+ ret
+
+.asm_5503
+ call Function550a
+ ret c
+ ld a, $3e
+ ret
+; 550a
+
+Function550a: ; 550a
+ ld a, [$d4cd]
+ cp $ff
+ jr z, .asm_5520
+ push bc
+ call Function1ae5
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ pop bc
+ and a
+ jr z, .asm_5520
+ and a
+ ret
+
+.asm_5520
+ ld a, $ff
+ ld [$d4ce], a
+ ld a, $47
+ scf
+ ret
+; 5529
+
+Function5529: ; 5529
+ push bc
+ ld de, .data_5535
+ call Function55b9
+ call Function55ac
+ pop bc
+ ret
+
+.data_5535
+ db $00, $05, $1b
+; 5538
+
+Function5538: ; 5538
+ push bc
+ ld de, .data_5544
+ call Function55b9
+ call Function55ac
+ pop bc
+ ret
+
+.data_5544
+ db $00, $05, $22
+; 5547
+
+Function5547: ; 5547
+ push bc
+ ld de, .data_5553
+ call Function55b9
+ call Function55ac
+ pop bc
+ ret
+
+.data_5553
+ db $00, $05, $1c
+; 5556
+
+Function5556: ; 5556
+ push bc
+ ld de, .data_5562
+ call Function55b9
+ call Function55ac
+ pop bc
+ ret
+
+.data_5562
+ db $00, $06, $23
+; 5565
+
+Function5565: ; 5565
+ push bc
+ push af
+ ld de, .data_5576
+ call Function55b9
+ pop af
+ ld [$c2f5], a
+ call Function55ac
+ pop bc
+ ret
+
+.data_5576
+ db $00, $05, $1d
+; 5579
+
+Function5579: ; 5579
+ push bc
+ ld a, [hConnectionStripLength]
+ ld c, a
+ call Function5582
+ pop bc
+ ret
+; 5582
+
+Function5582: ; 5582
+ ld de, $d4d6
+ ld a, $d
+.asm_5587
+ push af
+ ld hl, $0004
+ add hl, de
+ bit 7, [hl]
+ jr z, .asm_55a1
+ ld hl, $0000
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .asm_55a1
+ push bc
+ xor a
+ ld bc, $0028
+ call ByteFill
+ pop bc
+
+.asm_55a1
+ ld hl, $0028
+ add hl, de
+ ld d, h
+ ld e, l
+ pop af
+ dec a
+ jr nz, .asm_5587
+ ret
+; 55ac
+
+Function55ac: ; 55ac
+ call Function1a13
+ ret nc
+ ld d, h
+ ld e, l
+ ld a, $2
+ ld hl, $4286
+ rst FarCall
+ ret
+; 55b9
+
+Function55b9: ; 55b9
+ ld hl, $c2f0
+ ld [hl], $ff
+ inc hl
+ ld [hl], $ff
+ inc hl
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hli], a
+ ld a, [hConnectionStripLength]
+ ld [hli], a
+ push hl
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ pop hl
+ ld [hl], d
+ inc hl
+ ld [hl], e
+ inc hl
+ ld [hl], $ff
+ ret
+; 55e0
+
+Function55e0: ; 55e0
+ ld a, [VramState]
+ bit 0, a
+ ret z
+ ld bc, $d4d6
+ xor a
+.asm_55ea
+ ld [hConnectionStripLength], a
+ call Function1af1
+ jr z, .asm_55f4
+ call Function565c
+
+.asm_55f4
+ ld hl, $0028
+ add hl, bc
+ ld b, h
+ ld c, l
+ ld a, [hConnectionStripLength]
+ inc a
+ cp $d
+ jr nz, .asm_55ea
+ ret
+; 5602
+
+Function5602: ; 5602
+ call Function5645
+ ld a, $0
+ call Function5629
+ ld a, [$d459]
+ bit 7, a
+ jr z, .asm_5619
+ ld a, [$ffe0]
+ and a
+ jr z, .asm_5619
+ call Function5629
+
+.asm_5619
+ call Function5920
+ ret
+; 561d
+
+Function561d: ; 561d
+ call Function5645
+ ld a, $0
+ call Function5629
+ call Function5920
+ ret
+; 5629
+
+Function5629: ; 5629
+ cp $10
+ ret nc
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ ret z
+ cp $d
+ ret nc
+ call Function1ae5
+ call Function1af1
+ ret z
+ call Function5673
+ ret
+; 5645
+
+Function5645: ; 5645
+ xor a
+ ld bc, $d4d6
+.asm_5649
+ ld [hConnectionStripLength], a
+ call Function5680
+ ld hl, $0028
+ add hl, bc
+ ld b, h
+ ld c, l
+ ld a, [hConnectionStripLength]
+ inc a
+ cp $d
+ jr nz, .asm_5649
+ ret
+; 565c
+
+Function565c: ; 565c
+ push bc
+ call Function56cd
+ pop bc
+ jr c, Function5680
+ call Function56a3
+ jr c, Function5680
+ call Function5688
+ callba Function4440
+ xor a
+ ret
+; 5673
+
+Function5673: ; 5673
+ call Function56a3
+ jr c, Function5680
+ callba Function4440
+ xor a
+ ret
+; 5680
+
+Function5680: ; 5680
+ ld hl, $000d
+ add hl, bc
+ ld [hl], $ff
+ scf
+ ret
+; 5688
+
+Function5688: ; 5688
+ push bc
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ call Function2a3c
+ pop bc
+ ld hl, $000e
+ add hl, bc
+ ld [hl], a
+ callba Function463f
+ ret
+; 56a3
+
+Function56a3: ; 56a3
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ inc d
+ inc e
+ ld a, [XCoord]
+ cp d
+ jr z, .asm_56bc
+ jr nc, .asm_56cb
+ add $b
+ cp d
+ jr c, .asm_56cb
+
+.asm_56bc
+ ld a, [YCoord]
+ cp e
+ jr z, .asm_56c9
+ jr nc, .asm_56cb
+ add $a
+ cp e
+ jr c, .asm_56cb
+
+.asm_56c9
+ xor a
+ ret
+
+.asm_56cb
+ scf
+ ret
+; 56cd
+
+Function56cd: ; 56cd
+ ld a, [$d14c]
+ ld d, a
+ ld hl, $0019
+ add hl, bc
+ ld a, [hl]
+ ld hl, $0017
+ add hl, bc
+ add [hl]
+ add d
+ cp $f0
+ jr nc, .asm_56e5
+ cp $a0
+ jp nc, .asm_5768
+
+.asm_56e5
+ and $7
+ ld d, $2
+ cp $4
+ jr c, .asm_56ef
+ ld d, $3
+
+.asm_56ef
+ ld a, [hl]
+ srl a
+ srl a
+ srl a
+ cp $14
+ jr c, .asm_56fc
+ sub $20
+
+.asm_56fc
+ ld [$ffbd], a
+ ld a, [$d14d]
+ ld e, a
+ ld hl, $001a
+ add hl, bc
+ ld a, [hl]
+ ld hl, $0018
+ add hl, bc
+ add [hl]
+ add e
+ cp $f0
+ jr nc, .asm_5715
+ cp $90
+ jr nc, .asm_5768
+
+.asm_5715
+ and $7
+ ld e, $2
+ cp $4
+ jr c, .asm_571f
+ ld e, $3
+
+.asm_571f
+ ld a, [hl]
+ srl a
+ srl a
+ srl a
+ cp $12
+ jr c, .asm_572c
+ sub $20
+
+.asm_572c
+ ld [$ffbe], a
+ ld hl, $0006
+ add hl, bc
+ bit 7, [hl]
+ jr z, .asm_573e
+ ld a, d
+ add $2
+ ld d, a
+ ld a, e
+ add $2
+ ld e, a
+
+.asm_573e
+ ld a, d
+ ld [$ffbf], a
+.asm_5741
+ ld a, [$ffbf]
+ ld d, a
+ ld a, [$ffbe]
+ add e
+ dec a
+ cp $12
+ jr nc, .asm_5763
+ ld b, a
+.asm_574d
+ ld a, [$ffbd]
+ add d
+ dec a
+ cp $14
+ jr nc, .asm_5760
+ ld c, a
+ push bc
+ call Function1d05
+ pop bc
+ ld a, [hl]
+ cp $60
+ jr nc, .asm_5768
+
+.asm_5760
+ dec d
+ jr nz, .asm_574d
+
+.asm_5763
+ dec e
+ jr nz, .asm_5741
+ and a
+ ret
+
+.asm_5768
+ scf
+ ret
+; 576a
+
+Function576a: ; 576a
+ call Function5771
+ call Function5781
+ ret
+; 5771
+
+Function5771: ; 5771
+ xor a
+ ld [$d14e], a
+ ld [$d14f], a
+ ld [$d150], a
+ ld a, $ff
+ ld [$d151], a
+ ret
+; 5781
+
+Function5781: ; 5781
+ ld bc, $d4d6
+ xor a
+.asm_5785
+ ld [hConnectionStripLength], a
+ call Function1af1
+ jr z, .asm_578f
+ call Function437b
+
+.asm_578f
+ ld hl, $0028
+ add hl, bc
+ ld b, h
+ ld c, l
+ ld a, [hConnectionStripLength]
+ inc a
+ cp $d
+ jr nz, .asm_5785
+ ret
+; 579d
+
+Function579d: ; 579d
+ ld a, $3e
+ ld [$c2de], a
+ ld [$c2df], a
+ xor a
+ ld [$d04e], a
+ ld [$d4e2], a
+ call Function57bc
+ ld a, $5
+ ld hl, $49c6
+ rst FarCall
+ call c, Function57d9
+ call Function57ca
+ ret
+; 57bc
+
+Function57bc: ; 57bc
+ ld hl, $d45b
+ bit 7, [hl]
+ jr nz, .asm_57c4
+ ret
+
+.asm_57c4
+ ld a, $0
+ ld [$d4e1], a
+ ret
+; 57ca
+
+Function57ca: ; 57ca
+ ld hl, $d45b
+ bit 5, [hl]
+ ret z
+ ld a, [$d45b]
+ and $3
+ add a
+ add a
+ jr Function57db
+; 57d9
+
+Function57d9: ; 57d9
+ ld a, $0
+ ; fallthrough
+; 57db
+
+Function57db: ; 57db
+ ld bc, $d4d6
+ call Function1af8
+ ret
+; 57e2
+
+Function57e2: ; 57e2
+ ld a, d
+ and $80
+ ret z
+ ld bc, $0000
+ ld hl, $0008
+ add hl, bc
+ ld a, [hl]
+ or d
+ ld [hl], a
+ ld a, d
+ swap a
+ and $7
+ ld d, a
+ ld bc, $d4d6
+ ld hl, $0006
+ add hl, bc
+ ld a, [hl]
+ and $f8
+ or d
+ ld [hl], a
+ ret
+; 5803
+
+Function5803: ; 5803
+ push bc
+ ld a, b
+ call Function5815
+ pop bc
+ ret c
+ ld a, c
+ call Function582c
+ ld a, $2
+ ld hl, $448a
+ rst FarCall
+ ret
+; 5815
+
+Function5815: ; 5815
+ call Function18de
+ ret c
+ ld a, [hConnectedMapWidth]
+ ld [$d4cd], a
+ ret
+; 581f
+
+Function581f: ; 581f
+ call Function5826
+ call Function5847
+ ret
+; 5826
+
+Function5826: ; 5826
+ ld a, $ff
+ ld [$d4cd], a
+ ret
+; 582c
+
+Function582c: ; 582c
+ push af
+ call Function5847
+ pop af
+ call Function18de
+ ret c
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $13
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $0
+ ld a, [hConnectedMapWidth]
+ ld [$d4ce], a
+ ret
+; 5847
+
+Function5847: ; 5847
+ ld a, [$d4ce]
+ cp $ff
+ ret z
+ call Function1ae5
+ callba Function58e3
+ ld a, $ff
+ ld [$d4ce], a
+ ret
+; 585c
+
+Function585c: ; 585c
+ ld a, c
+ call Function18de
+ ret c
+ push bc
+ call Function587a
+ pop bc
+ ld hl, $0005
+ add hl, bc
+ res 5, [hl]
+ xor a
+ ret
+; 586e
+
+Function586e: ; 586e
+ call Function18de
+ ret c
+ ld hl, $0005
+ add hl, bc
+ set 5, [hl]
+ xor a
+ ret
+; 587a
+
+Function587a: ; 587a
+ ld bc, $d4d6
+ xor a
+.asm_587e
+ push af
+ call Function1af1
+ jr z, .asm_588a
+ ld hl, $0005
+ add hl, bc
+ set 5, [hl]
+
+.asm_588a
+ ld hl, $0028
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop af
+ inc a
+ cp $d
+ jr nz, .asm_587e
+ ret
+; 5897
+
+Function5897: ; 5897
+ ld a, [$d4cd]
+ cp $ff
+ ret z
+ push bc
+ call Function1ae5
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ pop bc
+ cp c
+ ret nz
+ ld a, [$d4ce]
+ cp $ff
+ ret z
+ call Function1ae5
+ ld hl, $0005
+ add hl, bc
+ res 5, [hl]
+ ret
+; 58b9
+
+Function58b9: ; 58b9
+ push bc
+ ld bc, $d4d6
+ xor a
+.asm_58be
+ push af
+ call Function1af1
+ jr z, .asm_58ca
+ ld hl, $0005
+ add hl, bc
+ res 5, [hl]
+
+.asm_58ca
+ ld hl, $0028
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop af
+ inc a
+ cp $d
+ jr nz, .asm_58be
+ pop bc
+ ret
+; 58d8
+
+Function58d8: ; 58d8
+ call Function18de
+ ret c
+ ld hl, $0005
+ add hl, bc
+ res 5, [hl]
+ ret
+; 58e3
+
+Function58e3: ; 58e3
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jp z, Function5903
+ push bc
+ call GetMapObject
+ ld hl, $0004
+ add hl, bc
+ ld a, [hl]
+ pop bc
+ ld hl, $0003
+ add hl, bc
+ ld [hl], a
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $0
+ ret
+; 5903
+
+Function5903: ; 5903
+ call GetSpriteDirection
+ rrca
+ rrca
+ ld e, a
+ ld d, 0
+ ld hl, .data_591c
+ add hl, de
+ ld a, [hl]
+ ld hl, $0003
+ add hl, bc
+ ld [hl], a
+ ld hl, $0009
+ add hl, bc
+ ld [hl], $0
+ ret
+
+.data_591c
+ db 6, 7, 8, 9
+; 5920
+
+Function5920: ; 5920
+ ld a, [VramState]
+ bit 0, a
+ ret z
+ xor a
+ ld [$ffbd], a
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call Function5991
+ call Function593a
+ pop af
+ ld [hOAMUpdate], a
+ ret
+; 593a
+
+Function593a: ; 593a
+ ld a, [VramState]
+ bit 1, a
+ ld b, $a0
+ jr z, .asm_5945
+ ld b, $70
+
+.asm_5945
+ ld a, [$ffbd]
+ cp b
+ ret nc
+ ld l, a
+ ld h, $c4
+ ld de, $0004
+ ld a, b
+ ld c, $a0
+.asm_5952
+ ld [hl], c
+ add hl, de
+ cp l
+ jr nz, .asm_5952
+ ret
+; 5958
+
+Function5958: ; 5958
+ push hl
+ push de
+ push bc
+ ld a, [$d14c]
+ ld d, a
+ ld a, [$d14d]
+ ld e, a
+ ld bc, $d4d6
+ ld a, $d
+.asm_5968
+ push af
+ call Function1af1
+ jr z, .asm_597c
+ ld hl, $0017
+ add hl, bc
+ ld a, [hl]
+ add d
+ ld [hl], a
+ ld hl, $0018
+ add hl, bc
+ ld a, [hl]
+ add e
+ ld [hl], a
+
+.asm_597c
+ ld hl, $0028
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop af
+ dec a
+ jr nz, .asm_5968
+ xor a
+ ld [$d14c], a
+ ld [$d14d], a
+ pop bc
+ pop de
+ pop hl
+ ret
+; 5991
+
+Function5991: ; 5991
+ call Function59a4
+ ld c, $30
+ call Function59f3
+ ld c, $20
+ call Function59f3
+ ld c, $10
+ call Function59f3
+ ret
+; 59a4
+
+Function59a4: ; 59a4
+ xor a
+ ld hl, $c2eb
+ ld bc, $000d
+ call ByteFill
+ ld d, 0
+ ld bc, $d4d6
+ ld hl, $c2eb
+.asm_59b6
+ push hl
+ call Function1af1
+ jr z, .asm_59d9
+ ld hl, $000d
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_59d9
+ ld e, $10
+ ld hl, $0005
+ add hl, bc
+ bit 0, [hl]
+ jr nz, .asm_59e2
+ ld e, $20
+ bit 1, [hl]
+ jr z, .asm_59e2
+ ld e, $30
+ jr .asm_59e2
+
+.asm_59d9
+ ld hl, $0028
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop hl
+ jr .asm_59ec
+
+.asm_59e2
+ ld hl, $0028
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop hl
+ ld a, d
+ or e
+ ld [hli], a
+
+.asm_59ec
+ inc d
+ ld a, d
+ cp $d
+ jr nz, .asm_59b6
+ ret
+; 59f3
+
+Function59f3: ; 59f3
+ ld hl, $c2eb
+.asm_59f6
+ ld a, [hli]
+ ld d, a
+ and $f0
+ ret z
+ cp c
+ jr nz, .asm_59f6
+ push bc
+ push hl
+ ld a, d
+ and $f
+ call Function5ac2
+ call Function5a0d
+ pop hl
+ pop bc
+ jr .asm_59f6
+; 5a0d
+
+Function5a0d: ; 5a0d
+ ld hl, $0002
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [$ffc1], a
+ xor a
+ bit 7, [hl]
+ jr nz, .asm_5a1d
+ or $8
+
+.asm_5a1d
+ ld hl, $0005
+ add hl, bc
+ ld e, [hl]
+ bit 7, e
+ jr z, .asm_5a28
+ or $80
+
+.asm_5a28
+ bit 4, e
+ jr z, .asm_5a2e
+ or $10
+
+.asm_5a2e
+ ld hl, $0006
+ add hl, bc
+ ld d, a
+ ld a, [hl]
+ and $7
+ or d
+ ld d, a
+ xor a
+ bit 3, e
+ jr z, .asm_5a3f
+ or $80
+
+.asm_5a3f
+ ld [$ffc2], a
+ ld hl, $0017
+ add hl, bc
+ ld a, [hl]
+ ld hl, $0019
+ add hl, bc
+ add [hl]
+ add $8
+ ld e, a
+ ld a, [$d14c]
+ add e
+ ld [$ffbf], a
+ ld hl, $0018
+ add hl, bc
+ ld a, [hl]
+ ld hl, $001a
+ add hl, bc
+ add [hl]
+ add $c
+ ld e, a
+ ld a, [$d14d]
+ add e
+ ld [$ffc0], a
+
+ ld hl, $000d
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jp z, .asm_5abe
+ cp $20
+ jp nc, .asm_5abe
+
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld bc, DataPointers4049
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ ld a, [$ffbd]
+ ld c, a
+ ld b, Sprites / $100
+ ld a, [hli]
+ ld [$ffbe], a
+ add c
+ cp SpritesEnd % $100
+ jr nc, .full
+
+.loop
+ ld a, [$ffc0]
+ add [hl]
+ inc hl
+ ld [bc], a
+ inc c
+ ld a, [$ffbf]
+ add [hl]
+ inc hl
+ ld [bc], a
+ inc c
+ ld e, [hl]
+ inc hl
+ ld a, [$ffc1]
+ bit 2, e
+ jr z, .asm_5aa3
+ xor a
+.asm_5aa3
+ add [hl]
+ inc hl
+ ld [bc], a
+ inc c
+ ld a, e
+ bit 1, a
+ jr z, .asm_5aaf
+ ld a, [$ffc2]
+ or e
+.asm_5aaf
+ and $f0
+ or d
+ ld [bc], a
+ inc c
+ ld a, [$ffbe]
+ dec a
+ ld [$ffbe], a
+ jr nz, .loop
+
+ ld a, c
+ ld [$ffbd], a
+
+.asm_5abe
+ xor a
+ ret
+
+.full
+ scf
+ ret
+; 5ac2
+
+Function5ac2: ; 5ac2
+ ld c, a
+ ld b, 0
+ ld hl, .Addresses
+ add hl, bc
+ add hl, bc
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ret
+; 5ace
+
+.Addresses ; 5ace
+ dw $d4d6
+ dw $d4fe
+ dw $d526
+ dw $d54e
+ dw $d576
+ dw $d59e
+ dw $d5c6
+ dw $d5ee
+ dw $d616
+ dw $d63e
+ dw $d666
+ dw $d68e
+ dw $d6b6
+; 5ae8
+
+Function5ae8: ; 5ae8
+ ld de, MUSIC_NONE
+ call StartMusic
+ call DelayFrame
+ ld de, MUSIC_MAIN_MENU
+ ld a, e
+ ld [CurMusic], a
+ call StartMusic
+ ld a, $12
+ ld hl, $5cdc
+ rst FarCall
+ jp $6219
+; 5b04
+
+Function5b04: ; 5b04
+ ret
+; 5b05
+
+Function5b05: ; 5b05
+ push de
+ ld hl, .Days
+ ld a, b
+ call GetNthString
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, .Day
+ call PlaceString
+ ret
+; 5b1c
+
+.Days ; 5b1c
+ db "SUN@"
+ db "MON@"
+ db "TUES@"
+ db "WEDNES@"
+ db "THURS@"
+ db "FRI@"
+ db "SATUR@"
+; 5b40
+
+.Day ; 5b40
+ db "DAY@"
+; 5b44
+
+Function5b44: ; 5b44
+ xor a
+ ld [$ffde], a
+ call ClearTileMap
+ call Functione5f
+ call $0e51
+ call Function1fbf
+ ret
+; 5b54
+
+MysteryGift: ; 5b54
+ call UpdateTime
+ ld a, $4
+ ld hl, $5548
+ rst FarCall
+ ld a, $41
+ ld hl, $48ba
+ rst FarCall
+ ret
+; 5b64
+
+OptionsMenu: ; 5b64
+ callba _OptionsMenu
+ ret
+; 5b6b
+
+NewGame: ; 5b6b
+ xor a
+ ld [$c2cc], a
+ call Function5ba7
+ call Function5b44
+ call Function5b8f
+ call OakSpeech
+ call Function5d23
+ ld a, $1
+ ld [$c2d8], a
+ ld a, $0
+ ld [$d001], a
+ ld a, $f1
+ ld [$ff9f], a
+ jp Function5e5d
+; 5b8f
+
+Function5b8f: ; 5b8f
+ ld a, $41
+ ld hl, $632f
+ rst FarCall
+ jr c, .asm_5b9e
+ ld a, $12
+ ld hl, $4dcb
+ rst FarCall
+ ret
+
+.asm_5b9e
+ ld c, $0
+ ld a, $12
+ ld hl, $402f
+ rst FarCall
+ ret
+; 5ba7
+
+Function5ba7: ; 5ba7
+ xor a
+ ld [hBGMapMode], a
+ call Function5bae
+ ret
+; 5bae
+
+Function5bae: ; 5bae
+ ld hl, Sprites
+ ld bc, $0bcc
+ xor a
+ call ByteFill
+ ld hl, $d000
+ ld bc, $047b
+ xor a
+ call ByteFill
+ ld hl, PlayerID
+ ld bc, $0b7a
+ xor a
+ call ByteFill
+ ld a, [rLY]
+ ld [$ffe3], a
+ call DelayFrame
+ ld a, [hRandomSub]
+ ld [PlayerID], a
+ ld a, [rLY]
+ ld [$ffe3], a
+ call DelayFrame
+ ld a, [hRandomAdd]
+ ld [PlayerID + 1], a
+ call RNG
+ ld [$d84a], a
+ call DelayFrame
+ call RNG
+ ld [$d84b], a
+ ld hl, PartyCount
+ call Function5ca1
+ xor a
+ ld [$db72], a
+ ld [$d4b4], a
+ call Function5ca6
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $ad10
+ call Function5ca1
+ call CloseSRAM
+ ld hl, NumItems
+ call Function5ca1
+ ld hl, NumKeyItems
+ call Function5ca1
+ ld hl, NumBalls
+ call Function5ca1
+ ld hl, $d8f1
+ call Function5ca1
+ xor a
+ ld [RoamMon1Species], a
+ ld [RoamMon2Species], a
+ ld [RoamMon3Species], a
+ ld a, $ff
+ ld [RoamMon1MapGroup], a
+ ld [RoamMon2MapGroup], a
+ ld [RoamMon3MapGroup], a
+ ld [RoamMon1MapNumber], a
+ ld [RoamMon2MapNumber], a
+ ld [RoamMon3MapNumber], a
+ ld a, $0
+ call GetSRAMBank
+ ld hl, $abe2
+ xor a
+ ld [hli], a
+ dec a
+ ld [hl], a
+ call CloseSRAM
+ call Function5d33
+ call Function5cd3
+ xor a
+ ld [MonType], a
+ ld [JohtoBadges], a
+ ld [KantoBadges], a
+ ld [$d855], a
+ ld [$d856], a
+ ld [Money], a
+ ld a, $b
+ ld [$d84f], a
+ ld a, $b8
+ ld [$d850], a
+ xor a
+ ld [$dc17], a
+ ld hl, $dc19
+ ld [hl], $0
+ inc hl
+ ld [hl], $8
+ inc hl
+ ld [hl], $fc
+ call Function5ce9
+ ld a, $9
+ ld hl, $6751
+ rst FarCall
+ ld a, $11
+ ld hl, $4765
+ rst FarCall
+ ld a, $41
+ ld hl, $61c0
+ rst FarCall
+ call Function208a
+ ret
+; 5ca1
+
+Function5ca1: ; 5ca1
+ xor a
+ ld [hli], a
+ dec a
+ ld [hl], a
+ ret
+; 5ca6
+
+Function5ca6: ; 5ca6
+ ld hl, Box1Name
+ ld c, $0
+.asm_5cab
+ push hl
+ ld de, .Box
+ call CopyName2
+ dec hl
+ ld a, c
+ inc a
+ cp $a
+ jr c, .asm_5cbe
+ sub $a
+ ld [hl], $f7
+ inc hl
+
+.asm_5cbe
+ add $f6
+ ld [hli], a
+ ld [hl], $50
+ pop hl
+ ld de, $0009
+ add hl, de
+ inc c
+ ld a, c
+ cp $e
+ jr c, .asm_5cab
+ ret
+
+.Box
+ db "BOX@"
+; 5cd3
+
+Function5cd3: ; 5cd3
+ ld hl, $dfe8
+ ld a, $3
+ ld [hli], a
+ ld a, $6
+ ld [hli], a
+ ld de, .Ralph
+ call CopyName2
+ ret
+; 5ce3
+
+.Ralph ; 5ce3
+ db "RALPH@"
+; 5ce9
+
+Function5ce9: ; 5ce9
+ ld hl, .Rival
+ ld de, RivalName
+ call .Copy
+
+ ld hl, .Mom
+ ld de, MomsName
+ call .Copy
+
+ ld hl, .Red
+ ld de, RedsName
+ call .Copy
+
+ ld hl, .Green
+ ld de, GreensName
+
+.Copy
+ ld bc, $000b
+ call CopyBytes
+ ret
+
+.Rival
+ db "???@"
+.Red
+ db "RED@"
+.Green
+ db "GREEN@"
+.Mom
+ db "MOM@"
+; 5d23
+
+Function5d23: ; 5d23
+ call Function610f
+ ld a, $2
+ ld hl, $4029
+ rst FarCall
+ ld a, $4
+ ld hl, $53d6
+ rst FarCall
+ ret
+; 5d33
+
+Function5d33: ; 5d33
+ ld a, $0
+ call GetSRAMBank
+ ld a, [CurDay]
+ inc a
+ ld b, a
+ ld a, [$ac68]
+ cp b
+ ld a, [$ac6a]
+ ld c, a
+ ld a, [$ac69]
+ jr z, .asm_5d55
+ ld a, b
+ ld [$ac68], a
+ call RNG
+ ld c, a
+ call RNG
+
+.asm_5d55
+ ld [$dc9f], a
+ ld [$ac69], a
+ ld a, c
+ ld [$dca0], a
+ ld [$ac6a], a
+ jp CloseSRAM
+; 5d65
+
+Continue: ; 5d65
+ ld a, $5
+ ld hl, $4ea5
+ rst FarCall
+ jr c, .asm_5dd6
+ ld a, $5
+ ld hl, $50b9
+ rst FarCall
+ call Function1d6e
+ call Function5e85
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, $14
+ call DelayFrames
+ call Function5e34
+ jr nc, .asm_5d8c
+ call Function1c17
+ jr .asm_5dd6
+
+.asm_5d8c
+ call Function5e48
+ jr nc, .asm_5d96
+ call Function1c17
+ jr .asm_5dd6
+
+.asm_5d96
+ ld a, $8
+ ld [MusicFade], a
+ ld a, MUSIC_NONE % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_NONE / $100
+ ld [MusicFadeIDHi], a
+ call WhiteBGMap
+ call Function5df0
+ call Function1c17
+ call ClearTileMap
+ ld c, $14
+ call DelayFrames
+ ld a, $a
+ ld hl, $6394
+ rst FarCall
+ ld a, $41
+ ld hl, $5091
+ rst FarCall
+ ld a, $5
+ ld hl, $40ae
+ rst FarCall
+ ld a, [$d4b5]
+ cp $1
+ jr z, .asm_5dd7
+ ld a, $f2
+ ld [$ff9f], a
+ jp Function5e5d
+
+.asm_5dd6
+ ret
+
+.asm_5dd7
+ ld a, $e
+ ld [$d001], a
+ call Function5de7
+ jp Function5e5d
+; 5de2
+
+Function5de2: ; 5de2
+ ld a, $1a
+ ld [$d001], a
+; 5de7
+
+Function5de7: ; 5de7
+ xor a
+ ld [$d4b5], a
+ ld a, $f1
+ ld [$ff9f], a
+ ret
+; 5df0
+
+Function5df0: ; 5df0
+ ld a, $41
+ ld hl, $632f
+ rst FarCall
+ ret nc
+ ld hl, $d479
+ bit 1, [hl]
+ ret nz
+ ld a, $5
+ ld [MusicFade], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
+ ld [MusicFadeIDHi], a
+ ld c, 20
+ call DelayFrames
+ ld c, $1
+ ld a, $12
+ ld hl, $402f
+ rst FarCall
+ ld a, $5
+ ld hl, $509a
+ rst FarCall
+ ld a, $8
+ ld [MusicFade], a
+ ld a, MUSIC_NONE % $100
+ ld [MusicFadeIDLo], a
+ ld a, MUSIC_NONE / $100
+ ld [MusicFadeIDHi], a
+ ld c, 35
+ call DelayFrames
+ ret
+; 5e34
+
+Function5e34: ; 5e34
+.asm_5e34
+ call DelayFrame
+ call GetJoypadPublic
+ ld hl, hJoyPressed
+ bit 0, [hl]
+ jr nz, .asm_5e47
+ bit 1, [hl]
+ jr z, .asm_5e34
+ scf
+ ret
+
+.asm_5e47
+ ret
+; 5e48
+
+Function5e48: ; 5e48
+ call $06e3
+ and $80
+ jr z, .asm_5e5b
+ ld a, $8
+ ld hl, $4021
+ rst FarCall
+ ld a, c
+ and a
+ jr z, .asm_5e5b
+ scf
+ ret
+
+.asm_5e5b
+ xor a
+ ret
+; 5e5d
+
+Function5e5d: ; 5e5d
+.asm_5e5d
+ xor a
+ ld [$c2c1], a
+ ld [InLinkBattle], a
+ ld hl, GameTimerPause
+ set 0, [hl]
+ res 7, [hl]
+ ld hl, $d83e
+ set 1, [hl]
+ callba Function966b0
+ ld a, [$d4b5]
+ cp $2
+ jr z, .asm_5e80
+ jp Reset
+
+.asm_5e80
+ call Function5de2
+ jr .asm_5e5d
+; 5e85
+
+Function5e85: ; 5e85
+ call $06e3
+ and $80
+ jr z, .asm_5e93
+ ld de, $0408
+ call Function5eaf
+ ret
+
+.asm_5e93
+ ld de, $0408
+ call Function5e9f
+ ret
+; 5e9a
+
+Function5e9a: ; 5e9a
+ ld de, $0400
+ jr Function5e9f
+; 5e9f
+
+Function5e9f: ; 5e9f
+ call Function5ebf
+ call Function5f1c
+ call Function5f40
+ call Functione5f
+ call Function1ad2
+ ret
+; 5eaf
+
+Function5eaf: ; 5eaf
+ call Function5ebf
+ call Function5f1c
+ call Function5f48
+ call Functione5f
+ call Function1ad2
+ ret
+; 5ebf
+
+Function5ebf: ; 5ebf
+ xor a
+ ld [hBGMapMode], a
+ ld hl, MenuDataHeader_0x5ed9
+ ld a, [StatusFlags]
+ bit 0, a ; pokedex
+ jr nz, .asm_5ecf
+ ld hl, MenuDataHeader_0x5efb
+
+.asm_5ecf
+ call Function1e35
+ call Function1cbb
+ call Function1c89
+ ret
+; 5ed9
+
+MenuDataHeader_0x5ed9: ; 5ed9
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 09, 15 ; end coords
+ dw MenuData2_0x5ee1
+ db 1 ; default option
+; 5ee1
+
+MenuData2_0x5ee1: ; 5ee1
+ db $00 ; flags
+ db 4 ; items
+ db "PLAYER@"
+ db "BADGES@"
+ db "#DEX@"
+ db "TIME@"
+; 5efb
+
+MenuDataHeader_0x5efb: ; 5efb
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 09, 15 ; end coords
+ dw MenuData2_0x5f03
+ db 1 ; default option
+; 5f03
+
+MenuData2_0x5f03: ; 5f03
+ db $00 ; flags
+ db 4 ; items
+ db "PLAYER ", $52, "@"
+ db "BADGES@"
+ db " @"
+ db "TIME@"
+; 5f1c
+
+
+Function5f1c: ; 5f1c
+ call Function1cfd
+ push hl
+ ld de, $005d
+ add hl, de
+ call Function5f58
+ pop hl
+ push hl
+ ld de, $0084
+ add hl, de
+ call Function5f6b
+ pop hl
+ push hl
+ ld de, $0030
+ add hl, de
+ ld de, .Player
+ call PlaceString
+ pop hl
+ ret
+
+.Player
+ db $52, "@"
+; 5f40
+
+Function5f40: ; 5f40
+ ld de, $00a9
+ add hl, de
+ call Function5f84
+ ret
+; 5f48
+
+Function5f48: ; 5f48
+ ld de, $00a9
+ add hl, de
+ ld de, .text_5f53
+ call PlaceString
+ ret
+
+.text_5f53
+ db " ???@"
+; 5f58
+
+Function5f58: ; 5f58
+ push hl
+ ld hl, JohtoBadges
+ ld b, $2
+ call CountSetBits
+ pop hl
+ ld de, $d265
+ ld bc, $0102
+ jp PrintNum
+; 5f6b
+
+Function5f6b: ; 5f6b
+ ld a, [StatusFlags]
+ bit 0, a
+ ret z
+ push hl
+ ld hl, PokedexSeen
+ ld b, $20
+ call CountSetBits
+ pop hl
+ ld de, $d265
+ ld bc, $0103
+ jp PrintNum
+; 5f84
+
+Function5f84: ; 5f84
+ ld de, GameTimeHours
+ ld bc, $0203
+ call PrintNum
+ ld [hl], $6d
+ inc hl
+ ld de, GameTimeMinutes
+ ld bc, $8102
+ jp PrintNum
+; 5f99
+
+
OakSpeech: ; 0x5f99
ld a, $24
ld hl, $4672
@@ -5585,11 +15859,11 @@
ld [CurPartySpecies], a
ld a, POKEMON_PROF
ld [TrainerClass], a
- call $619c
+ call Function619c
ld b, $1c
call GetSGBLayout
- call $616a
+ call Function616a
ld hl, OakText1
call PrintText
@@ -5597,20 +15871,20 @@
call ClearTileMap
ld a, $c2
- ld [$cf60], a
+ ld [CurSpecies], a
ld [CurPartySpecies], a
- call $3856
+ call GetBaseData
hlcoord 6, 4
- call $3786
+ call Function3786
xor a
- ld [$d123], a
+ ld [TempMonDVs], a
ld [$d124], a
ld b, $1c
call GetSGBLayout
- call $6182
+ call Function6182
ld hl, OakText2
call PrintText
@@ -5623,11 +15897,11 @@
ld [CurPartySpecies], a
ld a, POKEMON_PROF
ld [TrainerClass], a
- call $619c
+ call Function619c
ld b, $1c
call GetSGBLayout
- call $616a
+ call Function616a
ld hl, OakText5
call PrintText
@@ -5640,7 +15914,7 @@
ld b, $1c
call GetSGBLayout
- call $616a
+ call Function616a
ld hl, OakText6
call PrintText
@@ -5657,8 +15931,8 @@
TX_FAR _OakText2
start_asm
ld a,WOOPER
- call $37ce
- call $3c55
+ call Function37ce
+ call WaitSFX
ld hl,OakText3
ret
@@ -5688,7 +15962,7 @@
ld a, [$cfa9]
dec a
jr z, .NewName
- call $60fa
+ call Function60fa
ld a, $2
ld hl, $4c1d
rst FarCall
@@ -5705,7 +15979,7 @@
call $04b6
call ClearTileMap
- call $0e5f
+ call Functione5f
call WaitBGMap
xor a
@@ -5716,7 +15990,7 @@
ld b, $1c
call GetSGBLayout
- call $04f0
+ call Function4f0
ld hl, PlayerName
ld de, .Chris
@@ -5725,7 +15999,7 @@
jr z, .asm_60cf
ld de, .Kris
.asm_60cf
- call InitString
+ call InitName
ret
.Chris
@@ -5734,8 +16008,82 @@
db "KRIS@@@@@@@"
; 60e9
-INCBIN "baserom.gbc", $60e9, $617c - $60e9
+Function60e9: ; 60e9
+ call LoadMenuDataHeader
+ call Function1d81
+ ld a, [$cfa9]
+ dec a
+ call Function1db8
+ call Function1c17
+ ret
+; 60fa
+Function60fa: ; 60fa
+ ld a, $50
+ ld bc, $000b
+ ld hl, PlayerName
+ call ByteFill
+ ld hl, PlayerName
+ ld de, StringBuffer2
+ call CopyName2
+ ret
+; 610f
+
+Function610f: ; 610f
+ ld a, [hROMBank]
+ push af
+ ld a, $20
+ ld [MusicFade], a
+ ld de, MUSIC_NONE
+ ld a, e
+ ld [MusicFadeIDLo], a
+ ld a, d
+ ld [MusicFadeIDHi], a
+ ld de, SFX_ESCAPE_ROPE
+ call StartSFX
+ pop af
+ rst Bankswitch
+
+ ld c, $8
+ call DelayFrames
+ ld hl, $5249
+ ld b, $13
+ call Function61b4
+ ld c, $8
+ call DelayFrames
+ ld hl, $52d9
+ ld b, $13
+ call Function61b4
+ ld c, $8
+ call DelayFrames
+ ld hl, $c50a
+ ld b, $7
+ ld c, $7
+ call ClearBox
+ ld c, $3
+ call DelayFrames
+ call Function61cd
+ call Functione5f
+ ld c, $32
+ call DelayFrames
+ call Function4b6
+ call ClearTileMap
+ ret
+; 616a
+
+Function616a: ; 616a
+ ld hl, IntroFadePalettes
+ ld b, $6
+.asm_616f
+ ld a, [hli]
+ call DmgToCgbBGPals
+ ld c, $a
+ call DelayFrames
+ dec b
+ jr nz, .asm_616f
+ ret
+; 617c
+
IntroFadePalettes: ; 0x617c
db %01010100
db %10101000
@@ -5745,37 +16093,237 @@
db %11100100
; 6182
-INCBIN "baserom.gbc", $6182, $6274 - $6182
+Function6182: ; 6182
+ ld a, $77
+ ld [hWX], a
+ call DelayFrame
+ ld a, $e4
+ call DmgToCgbBGPals
+.asm_618e
+ call DelayFrame
+ ld a, [hWX]
+ sub $8
+ cp $ff
+ ret z
+ ld [hWX], a
+ jr .asm_618e
+; 619c
+Function619c: ; 619c
+ ld de, VTiles2
+ callba Function5120d
+ xor a
+ ld [$ffad], a
+ ld hl, $c4f6
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ ret
+; 61b4
+
+Function61b4: ; 61b4
+ ld de, VTiles2
+ ld c, $31
+ ld a, $40
+ call Predef
+ xor a
+ ld [$ffad], a
+ ld hl, $c4f6
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ ret
+; 61cd
+
+Function61cd: ; 61cd
+ callba GetPlayerIcon
+ ld c, $c
+ ld hl, VTiles0
+ call Request2bpp
+ ld hl, Sprites
+ ld de, .data_61fe
+ ld a, [de]
+ inc de
+ ld c, a
+.asm_61e4
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld b, $0
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_61f8
+ ld b, $1
+
+.asm_61f8
+ ld a, b
+ ld [hli], a
+ dec c
+ jr nz, .asm_61e4
+ ret
+; 61fe
+
+.data_61fe ; 61fe
+ db 4
+ db $4c, $48, $00
+ db $4c, $50, $01
+ db $54, $48, $02
+ db $54, $50, $03
+; 620b
+
+
+Function620b: ; 620b
+ ld hl, $4579
+ ld a, $39
+ rst FarCall
+ jr c, .asm_6219
+ ld a, $39
+ ld hl, Function48ac
+ rst FarCall
+
+.asm_6219
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call FarStartTitleScreen
+ call DelayFrame
+.asm_6226
+ call Function627b
+ jr nc, .asm_6226
+ call ClearSprites
+ call WhiteBGMap
+ pop af
+ ld [rSVBK], a
+ ld hl, rLCDC
+ res 2, [hl]
+ call Functionfdb
+ call Function3200
+ xor a
+ ld [hLCDStatCustom], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld b, $8
+ call GetSGBLayout
+ call Function485
+ ld a, [$cf64]
+ cp $5
+ jr c, .asm_625e
+ xor a
+
+.asm_625e
+ ld e, a
+ ld d, 0
+ ld hl, .data_626a
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 626a
+
+.data_626a
+ dw Function5ae8
+ dw Function6389
+ dw Function620b
+ dw Function620b
+ dw Function6392
+; 6274
+
+
FarStartTitleScreen: ; 6274
callba StartTitleScreen
ret
; 627b
-INCBIN "baserom.gbc", $627b, $62bc - $627b
+Function627b: ; 627b
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_6290
+ call Function62a3
+ ld a, $43
+ ld hl, $6ea7
+ rst FarCall
+ call DelayFrame
+ and a
+ ret
+.asm_6290
+ scf
+ ret
+; 6292
+
+Function6292: ; 6292
+ ld a, [$ff9b]
+ and $7
+ ret nz
+ ld hl, $d15f
+ ld a, [hl]
+ dec a
+ ld bc, $0028
+ call ByteFill
+ ret
+; 62a3
+
+Function62a3: ; 62a3
+ ld e, a
+ ld d, 0
+ ld hl, .data_62af
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 62af
+
+.data_62af
+ dw TitleScreenEntrance
+ dw Function62f6
+ dw Function6304
+ dw Function6375
+; 62b7
+
+Function62b7: ; 62b7
+ ld hl, $cf63
+ inc [hl]
+ ret
+; 62bc
+
+
TitleScreenEntrance: ; 62bc
; Animate the logo:
; Move each line by 4 pixels until our count hits 0.
- ld a, [$ffcf]
+ ld a, [hSCX]
and a
jr z, .done
sub 4
- ld [$ffcf], a
-
+ ld [hSCX], a
+
; Lay out a base (all lines scrolling together).
ld e, a
ld hl, $d100
ld bc, 8 * 10 ; logo height
call ByteFill
-
+
; Alternate signage for each line's position vector.
; This is responsible for the interlaced effect.
ld a, e
xor $ff
inc a
-
+
ld b, 8 * 10 / 2 ; logo height / 2
ld hl, $d101
.loop
@@ -5783,11 +16331,10 @@
inc hl
dec b
jr nz, .loop
-
+
callba AnimateTitleCrystal
ret
-
-
+
.done
; Next scene
ld hl, $cf63
@@ -5798,14 +16345,564 @@
; Play the title screen music.
ld de, MUSIC_TITLE
call StartMusic
-
+
ld a, $88
- ld [$ffd2], a
+ ld [hWY], a
ret
; 62f6
-INCBIN "baserom.gbc", $62f6, $669f - $62f6
+Function62f6: ; 62f6
+ ld hl, $cf63
+ inc [hl]
+ ld hl, $cf65
+ ld de, $1140
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+; 6304
+
+Function6304: ; 6304
+ ld hl, $cf65
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, e
+ or d
+ jr z, .asm_6355
+ dec de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ call GetJoypadPublic
+ ld hl, hJoyDown
+ ld a, [hl]
+ and $46
+ cp $46
+ jr z, .asm_634a
+ ld a, [$ffeb]
+ cp $34
+ jr z, .asm_6332
+ ld a, [hl]
+ and $86
+ cp $86
+ jr nz, .asm_6340
+ ld a, $34
+ ld [$ffeb], a
+ jr .asm_6340
+
+.asm_6332
+ bit 2, [hl]
+ jr nz, .asm_6340
+ xor a
+ ld [$ffeb], a
+ ld a, [hl]
+ and $60
+ cp $60
+ jr z, .asm_636a
+
+.asm_6340
+ ld a, [hl]
+ and $9
+ jr nz, .asm_6346
+ ret
+
+.asm_6346
+ ld a, $0
+ jr .asm_634c
+
+.asm_634a
+ ld a, $1
+
+.asm_634c
+ ld [$cf64], a
+ ld hl, $cf63
+ set 7, [hl]
+ ret
+
+.asm_6355
+ ld hl, $cf63
+ inc [hl]
+ xor a
+ ld [MusicFadeIDLo], a
+ ld [MusicFadeIDHi], a
+ ld hl, MusicFade
+ ld [hl], $8
+ ld hl, $cf65
+ inc [hl]
+ ret
+
+.asm_636a
+ ld a, $4
+ ld [$cf64], a
+ ld hl, $cf63
+ set 7, [hl]
+ ret
+; 6375
+
+Function6375: ; 6375
+ ld hl, $cf65
+ inc [hl]
+ ld a, [MusicFade]
+ and a
+ ret nz
+ ld a, $2
+ ld [$cf64], a
+ ld hl, $cf63
+ set 7, [hl]
+ ret
+; 6389
+
+Function6389: ; 6389
+ ld a, $13
+ ld hl, $554c
+ rst FarCall
+ jp Init
+; 6392
+
+Function6392: ; 6392
+ ld a, $13
+ ld hl, $53b1
+ rst FarCall
+ jp Init
+; 639b
+
+Function639b: ; 639b
+ ld a, [$cf65]
+ and $3
+ ret nz
+ ld bc, $c3a4
+ ld hl, $000a
+ add hl, bc
+ ld l, [hl]
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, Data63ca
+ add hl, de
+ ld a, [$cf65]
+ and $4
+ srl a
+ srl a
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ and a
+ ret z
+ ld e, a
+ ld d, [hl]
+ ld a, $1
+ call Function3b2a
+ ret
+; 63ca
+
+Data63ca: ; 63ca
+INCBIN "baserom.gbc", $63ca, $63e2 - $63ca
+
+
+Copyright: ; 63e2
+ call ClearTileMap
+ call Functione5f
+ ld de, CopyrightGFX
+ ld hl, VTiles2 + $600 ; tile $60
+ ld bc, BANK(CopyrightGFX) << 8 + $1d
+ call Request2bpp
+ hlcoord 2, 7
+ ld de, CopyrightString
+ jp PlaceString
+; 63fd
+
+CopyrightString: ; 63fd
+ ; ©1995-2001 Nintendo
+ db $60, $61, $62, $63, $64, $65, $66
+ db $67, $68, $69, $6a, $6b, $6c
+
+ db $4e
+
+ ; ©1995-2001 Creatures inc.
+ db $60, $61, $62, $63, $64, $65, $66, $6d
+ db $6e, $6f, $70, $71, $72, $7a, $7b, $7c
+
+ db $4e
+
+ ; ©1995-2001 GAME FREAK inc.
+ db $60, $61, $62, $63, $64, $65, $66, $73, $74
+ db $75, $76, $77, $78, $79, $7a, $7b, $7c
+
+ db "@"
+; 642e
+
+GameInit: ; 642e
+ ld a, $5
+ ld hl, $4f1c
+ rst FarCall
+ call Function1fbf
+ call WhiteBGMap
+ call ClearTileMap
+ ld a, $98
+ ld [$ffd7], a
+ xor a
+ ld [hBGMapAddress], a
+ ld [hJoyDown], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $90
+ ld [hWY], a
+ call WaitBGMap
+ jp Function620b
+; 6454
+
+Function6454: ; 6454
+ call DelayFrame
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ call Function6473
+ pop af
+ ld [hBGMapMode], a
+ pop af
+ ld [hOAMUpdate], a
+ ld hl, VramState
+ set 6, [hl]
+ ret
+; 6473
+
+Function6473: ; 6473
+ xor a
+ ld [hLCDStatCustom], a
+ ld [hBGMapMode], a
+ ld a, $90
+ ld [hWY], a
+ call Function2173
+ ld a, $9c
+ call Function64b9
+ call Function2e20
+ ld a, $12
+ ld hl, $5409
+ rst FarCall
+ ld a, $2
+ ld hl, $56a4
+ rst FarCall
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ xor a
+ ld [hBGMapMode], a
+ ld [hWY], a
+ ld a, $1
+ ld hl, $64db
+ rst FarCall
+ ld a, $98
+ call Function64b9
+ xor a
+ ld [$d152], a
+ ld a, $98
+ ld [$d153], a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ call Function5958
+ ret
+; 64b9
+
+Function64b9: ; 64b9
+ ld [$ffd7], a
+ xor a
+ ld [hBGMapAddress], a
+ ret
+; 64bf
+
+Function64bf: ; 64bf
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call Function64cd
+ pop af
+ ld [hOAMUpdate], a
+ ret
+; 64cd
+
+Function64cd: ; 64cd
+ call Functione5f
+ ld a, $90
+ ld [hWY], a
+ call Function2e31
+ call $0e51
+ ret
+; 64db
+
+Function64db: ; 64db
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, $60
+ ld hl, $d000
+ ld bc, VBlank5
+ call ByteFill
+ ld a, $d0
+ ld [rHDMA1], a
+ ld a, $0
+ ld [rHDMA2], a
+ ld a, $18
+ ld [rHDMA3], a
+ ld a, $0
+ ld [rHDMA4], a
+ ld a, $3f
+ ld [hDMATransfer], a
+ call DelayFrame
+ pop af
+ ld [rSVBK], a
+ ret
+; 6508
+
+Function6508: ; 6508
+ call Function309d
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ ld hl, StringBuffer1
+ ld de, $d050
+ ld bc, $000b
+ call CopyBytes
+ ld hl, PartyMon1Move1
+ ld bc, $0030
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld b, $4
+.asm_6530
+ ld a, [hl]
+ and a
+ jr z, .asm_6564
+ inc hl
+ dec b
+ jr nz, .asm_6530
+ push de
+ call Function65d3
+ pop de
+ jp c, Function65b5
+ push hl
+ push de
+ ld [$d265], a
+ ld b, a
+ ld a, [IsInBattle]
+ and a
+ jr z, .asm_6559
+ ld a, [DisabledMove]
+ cp b
+ jr nz, .asm_6559
+ xor a
+ ld [DisabledMove], a
+ ld [PlayerDisableCount], a
+
+.asm_6559
+ call GetMoveName
+ ld hl, UnknownText_0x6684
+ call PrintText
+ pop de
+ pop hl
+
+.asm_6564
+ ld a, [$d262]
+ ld [hl], a
+ ld bc, $0015
+ add hl, bc
+ push hl
+ push de
+ dec a
+ ld hl, $5b00
+ ld bc, $0007
+ call AddNTimes
+ ld a, $10
+ call GetFarByte
+ pop de
+ pop hl
+ ld [hl], a
+ ld a, [IsInBattle]
+ and a
+ jp z, Function65ca
+ ld a, [CurPartyMon]
+ ld b, a
+ ld a, [CurBattleMon]
+ cp b
+ jp nz, Function65ca
+ ld a, [PlayerSubStatus5]
+ bit 3, a
+ jp nz, Function65ca
+ ld h, d
+ ld l, e
+ ld de, BattleMonMove1
+ ld bc, $0004
+ call CopyBytes
+ ld bc, $0011
+ add hl, bc
+ ld de, BattleMonPPMove1
+ ld bc, $0004
+ call CopyBytes
+ jp Function65ca
+; 65b5
+
+Function65b5: ; 65b5
+ ld hl, UnknownText_0x6675
+ call PrintText
+ call Function1dcf
+ jp c, $6520
+ ld hl, UnknownText_0x667a
+ call PrintText
+ ld b, $0
+ ret
+; 65ca
+
+Function65ca: ; 65ca
+ ld hl, UnknownText_0x666b
+ call PrintText
+ ld b, $1
+ ret
+; 65d3
+
+Function65d3: ; 65d3
+ push hl
+ ld hl, UnknownText_0x667f
+ call PrintText
+ call Function1dcf
+ pop hl
+ ret c
+ ld bc, $fffc
+ add hl, bc
+ push hl
+ ld de, $d25e
+ ld bc, $0004
+ call CopyBytes
+ pop hl
+.asm_65ee
+ push hl
+ ld hl, UnknownText_0x6670
+ call PrintText
+ ld hl, $c4cd
+ ld b, $8
+ ld c, $d
+ call TextBox
+ ld hl, $c4f7
+ ld a, $28
+ ld [Buffer1], a
+ ld a, $20
+ call Predef
+ ld a, $4
+ ld [$cfa1], a
+ ld a, $6
+ ld [$cfa2], a
+ ld a, [$d0eb]
+ inc a
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld [$cfa9], a
+ ld [$cfaa], a
+ ld a, $3
+ ld [$cfa8], a
+ ld a, $20
+ ld [$cfa5], a
+ xor a
+ ld [$cfa6], a
+ ld a, $20
+ ld [$cfa7], a
+ call Function1bc9
+ push af
+ call Function30b4
+ pop af
+ pop hl
+ bit 1, a
+ jr nz, .asm_6669
+ push hl
+ ld a, [$cfa9]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ push af
+ push bc
+ call IsHMMove
+ pop bc
+ pop de
+ ld a, d
+ jr c, .asm_6660
+ pop hl
+ add hl, bc
+ and a
+ ret
+
+.asm_6660
+ ld hl, UnknownText_0x669a
+ call PrintText
+ pop hl
+ jr .asm_65ee
+
+.asm_6669
+ scf
+ ret
+; 666b
+
+UnknownText_0x666b: ; 666b
+ text_jump UnknownText_0x1c5660, BANK(UnknownText_0x1c5660)
+ db "@"
+; 6670
+
+UnknownText_0x6670: ; 6670
+ text_jump UnknownText_0x1c5678, BANK(UnknownText_0x1c5678)
+ db "@"
+; 6675
+
+UnknownText_0x6675: ; 6675
+ text_jump UnknownText_0x1c5699, BANK(UnknownText_0x1c5699)
+ db "@"
+; 667a
+
+UnknownText_0x667a: ; 667a
+ text_jump UnknownText_0x1c56af, BANK(UnknownText_0x1c56af)
+ db "@"
+; 667f
+
+UnknownText_0x667f: ; 667f
+ text_jump UnknownText_0x1c56c9, BANK(UnknownText_0x1c56c9)
+ db "@"
+; 6684
+
+UnknownText_0x6684: ; 6684
+ text_jump UnknownText_0x1c5740, BANK(UnknownText_0x1c5740)
+ start_asm
+; 6689
+
+; 6689
+ push de
+ ld de, SFX_SWITCH_POKEMON
+ call StartSFX
+ pop de
+ ld hl, UnknownText_0x6695
+ ret
+; 6695
+
+UnknownText_0x6695: ; 6695
+ text_jump UnknownText_0x1c574e, BANK(UnknownText_0x1c574e)
+ db "@"
+; 669a
+
+UnknownText_0x669a: ; 669a
+ text_jump UnknownText_0x1c5772, BANK(UnknownText_0x1c5772)
+ db "@"
+; 669f
+
+
CheckNickErrors: ; 669f
; error-check monster nick before use
; must be a peace offering to gamesharkers
@@ -6088,9 +17185,43 @@
; 6ec1
-INCBIN "baserom.gbc", $6ec1, $6eef - $6ec1
+Function6ec1: ; 6ec1
+ ld hl, $0006
+ add hl, bc
+ bit 5, [hl]
+ jr z, .asm_6ed9
+ ld hl, $0004
+ add hl, bc
+ bit 4, [hl]
+ push hl
+ push bc
+ call Function6f2c
+ pop bc
+ pop hl
+ ret c
+ jr .asm_6ee9
+.asm_6ed9
+ ld hl, $0004
+ add hl, bc
+ bit 4, [hl]
+ jr nz, .asm_6ee9
+ push hl
+ push bc
+ call Function6f07
+ pop bc
+ pop hl
+ ret c
+
+.asm_6ee9
+ bit 6, [hl]
+ jr nz, Function6ef5
+ push hl
+ push bc
+ ; fallthrough
+; 6eef
+
DrawGraphic: ; 6eef
; input:
; hl: draw location
@@ -6098,18 +17229,22 @@
; c: width
; d: tile to start drawing from
; e: number of tiles to advance for each row
- call $7009
+ call Function7009
pop bc
pop hl
ret c
+ ; fallthrough
+; 6ef5
+
+Function6ef5: ; 6ef5
bit 5, [hl]
jr nz, .asm_6f05
push hl
- call $70a4
+ call Function70a4
pop hl
ret c
push hl
- call $70ed
+ call Function70ed
pop hl
ret c
.asm_6f05
@@ -6118,9 +17253,174 @@
; 6f07
-INCBIN "baserom.gbc", $6f07, $6fd9 - $6f07
+Function6f07: ; 6f07
+ call Function6f5f
+ ret c
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ ld hl, $0006
+ add hl, bc
+ bit 7, [hl]
+ jp nz, Function6fa1
+ ld hl, $000e
+ add hl, bc
+ ld a, [hl]
+ ld d, a
+ call GetTileCollision
+ and a
+ jr z, Function6f3e
+ scf
+ ret
+; 6f2c
+Function6f2c: ; 6f2c
+ call Function6f5f
+ ret c
+ ld hl, $000e
+ add hl, bc
+ ld a, [hl]
+ call GetTileCollision
+ cp $1
+ jr z, Function6f3e
+ scf
+ ret
+; 6f3e
+Function6f3e: ; 6f3e
+ ld hl, $000e
+ add hl, bc
+ ld a, [hl]
+ call Function6f7f
+ ret nc
+ push af
+ ld hl, $0007
+ add hl, bc
+ ld a, [hl]
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, .data_6f5b
+ add hl, de
+ pop af
+ and [hl]
+ ret z
+ scf
+ ret
+; 6f5b
+
+.data_6f5b
+ db 1, 2, 8, 4
+; 6f5f
+
+Function6f5f: ; 6f5f
+ ld hl, $000f
+ add hl, bc
+ ld a, [hl]
+ call Function6f7f
+ ret nc
+ push af
+ ld hl, $0007
+ add hl, bc
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, .data_6f7b
+ add hl, de
+ pop af
+ and [hl]
+ ret z
+ scf
+ ret
+; 6f7b
+
+.data_6f7b
+ db 2, 1, 4, 8
+; 6f7f
+
+Function6f7f: ; 6f7f
+ ld d, a
+ and $f0
+ cp $b0
+ jr z, .asm_6f8c
+ cp $c0
+ jr z, .asm_6f8c
+ xor a
+ ret
+
+.asm_6f8c
+ ld a, d
+ and 7
+ ld e, a
+ ld d, 0
+ ld hl, .data_6f99
+ add hl, de
+ ld a, [hl]
+ scf
+ ret
+; 6f99
+
+.data_6f99
+ db 8, 4, 1, 2
+ db 10, 6, 9, 5
+; 6fa1
+
+Function6fa1: ; 6fa1
+ ld hl, $0007
+ add hl, bc
+ ld a, [hl]
+ and 3
+ jr z, .asm_6fb2
+ dec a
+ jr z, .asm_6fb7
+ dec a
+ jr z, .asm_6fbb
+ jr .asm_6fbf
+
+.asm_6fb2
+ inc e
+ push de
+ inc d
+ jr .asm_6fc2
+
+.asm_6fb7
+ push de
+ inc d
+ jr .asm_6fc2
+
+.asm_6fbb
+ push de
+ inc e
+ jr .asm_6fc2
+
+.asm_6fbf
+ inc d
+ push de
+ inc e
+
+.asm_6fc2
+ call Function2a3c
+ call GetTileCollision
+ pop de
+ and a
+ jr nz, .asm_6fd7
+ call Function2a3c
+ call GetTileCollision
+ and a
+ jr nz, .asm_6fd7
+ xor a
+ ret
+
+.asm_6fd7
+ scf
+ ret
+; 6fd9
+
+
+
CheckFacingObject: ; 6fd9
call GetFacingTileCoord
@@ -6147,7 +17447,7 @@
ld bc, $d4d6
ld a, 0
ld [hConnectionStripLength], a
- call $7041
+ call Function7041
ret nc
ld hl, $0007
add hl, bc
@@ -6163,9 +17463,557 @@
; 7009
-INCBIN "baserom.gbc", $7009, $7305 - $7009
+Function7009: ; 7009
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ jr Function7041
+; 7015
+Function7015: ; 7015
+ ld a, [hConnectionStripLength]
+ call Function1ae5
+ call Function7021
+ call Function7041
+ ret
+Function7021: ; 7021
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ call GetSpriteDirection
+ and a
+ jr z, .asm_703b
+ cp $4
+ jr z, .asm_703d
+ cp $8
+ jr z, .asm_703f
+ inc d
+ ret
+
+.asm_703b
+ inc e
+ ret
+
+.asm_703d
+ dec e
+ ret
+
+.asm_703f
+ dec d
+ ret
+; 7041
+
+Function7041: ; 7041
+ ld bc, $d4d6
+ xor a
+.asm_7045
+ ld [hConnectedMapWidth], a
+ call Function1af1
+ jr z, .asm_7093
+ ld hl, $0004
+ add hl, bc
+ bit 7, [hl]
+ jr nz, .asm_7093
+ ld hl, $0006
+ add hl, bc
+ bit 7, [hl]
+ jr z, .asm_7063
+ call Function7171
+ jr nc, .asm_707b
+ jr .asm_7073
+
+.asm_7063
+ ld hl, $0010
+ add hl, bc
+ ld a, [hl]
+ cp d
+ jr nz, .asm_707b
+ ld hl, $0011
+ add hl, bc
+ ld a, [hl]
+ cp e
+ jr nz, .asm_707b
+
+.asm_7073
+ ld a, [hConnectionStripLength]
+ ld l, a
+ ld a, [hConnectedMapWidth]
+ cp l
+ jr nz, .asm_70a2
+
+.asm_707b
+ ld hl, $0012
+ add hl, bc
+ ld a, [hl]
+ cp d
+ jr nz, .asm_7093
+ ld hl, $0013
+ add hl, bc
+ ld a, [hl]
+ cp e
+ jr nz, .asm_7093
+ ld a, [hConnectionStripLength]
+ ld l, a
+ ld a, [hConnectedMapWidth]
+ cp l
+ jr nz, .asm_70a2
+
+.asm_7093
+ ld hl, $0028
+ add hl, bc
+ ld b, h
+ ld c, l
+ ld a, [hConnectedMapWidth]
+ inc a
+ cp $d
+ jr nz, .asm_7045
+ and a
+ ret
+
+.asm_70a2
+ scf
+ ret
+; 70a4
+
+Function70a4: ; 70a4
+ ld hl, $0016
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_70e9
+ and $f
+ jr z, .asm_70c7
+ ld e, a
+ ld d, a
+ ld hl, $0014
+ add hl, bc
+ ld a, [hl]
+ sub d
+ ld d, a
+ ld a, [hl]
+ add e
+ ld e, a
+ ld hl, $0010
+ add hl, bc
+ ld a, [hl]
+ cp d
+ jr z, .asm_70eb
+ cp e
+ jr z, .asm_70eb
+
+.asm_70c7
+ ld hl, $0016
+ add hl, bc
+ ld a, [hl]
+ swap a
+ and $f
+ jr z, .asm_70e9
+ ld e, a
+ ld d, a
+ ld hl, $0015
+ add hl, bc
+ ld a, [hl]
+ sub d
+ ld d, a
+ ld a, [hl]
+ add e
+ ld e, a
+ ld hl, $0011
+ add hl, bc
+ ld a, [hl]
+ cp d
+ jr z, .asm_70eb
+ cp e
+ jr z, .asm_70eb
+
+.asm_70e9
+ xor a
+ ret
+
+.asm_70eb
+ scf
+ ret
+; 70ed
+
+Function70ed: ; 70ed
+ ld hl, $0010
+ add hl, bc
+ ld a, [XCoord]
+ cp [hl]
+ jr z, .asm_70fe
+ jr nc, .asm_7111
+ add $9
+ cp [hl]
+ jr c, .asm_7111
+
+.asm_70fe
+ ld hl, $0011
+ add hl, bc
+ ld a, [YCoord]
+ cp [hl]
+ jr z, .asm_710f
+ jr nc, .asm_7111
+ add $8
+ cp [hl]
+ jr c, .asm_7111
+
+.asm_710f
+ and a
+ ret
+
+.asm_7111
+ scf
+ ret
+; 7113
+
+Function7113: ; 7113
+ ld a, [MapX]
+ ld d, a
+ ld a, [MapY]
+ ld e, a
+ ld bc, $d4d6
+ xor a
+.asm_711f
+ ld [hConnectedMapWidth], a
+ call Function1af1
+ jr z, .asm_7160
+ ld hl, $0003
+ add hl, bc
+ ld a, [hl]
+ cp $15
+ jr nz, .asm_7136
+ call Function7171
+ jr c, .asm_716f
+ jr .asm_7160
+
+.asm_7136
+ ld hl, $0011
+ add hl, bc
+ ld a, [hl]
+ cp e
+ jr nz, .asm_714e
+ ld hl, $0010
+ add hl, bc
+ ld a, [hl]
+ cp d
+ jr nz, .asm_714e
+ ld a, [hConnectedMapWidth]
+ cp $0
+ jr z, .asm_7160
+ jr .asm_716f
+
+.asm_714e
+ ld hl, $0013
+ add hl, bc
+ ld a, [hl]
+ cp e
+ jr nz, .asm_7160
+ ld hl, $0012
+ add hl, bc
+ ld a, [hl]
+ cp d
+ jr nz, .asm_7160
+ jr .asm_716f
+
+.asm_7160
+ ld hl, $0028
+ add hl, bc
+ ld b, h
+ ld c, l
+ ld a, [hConnectedMapWidth]
+ inc a
+ cp $d
+ jr nz, .asm_711f
+ xor a
+ ret
+
+.asm_716f
+ scf
+ ret
+; 7171
+
+
+Function7171: ; 7171
+ ld hl, $0010
+ add hl, bc
+ ld a, d
+ sub [hl]
+ jr c, .asm_718b
+ cp $2
+ jr nc, .asm_718b
+ ld hl, $0011
+ add hl, bc
+ ld a, e
+ sub [hl]
+ jr c, .asm_718b
+ cp $2
+ jr nc, .asm_718b
+ scf
+ ret
+
+.asm_718b
+ and a
+ ret
+; 718d
+
+Function718d: ; 718d
+ ld hl, PartyMon1Happiness
+ ld bc, PartyMon2 - PartyMon1
+ ld de, PartySpecies
+.asm_7196
+ ld a, [de]
+ cp EGG
+ jr nz, .asm_719f
+ inc de
+ add hl, bc
+ jr .asm_7196
+
+.asm_719f
+ ld [$d265], a
+ ld a, [hl]
+ ld [ScriptVar], a
+ call GetPokemonName
+ jp Function746e
+; 71ac
+
+Function71ac: ; 71ac
+ ld a, [PartySpecies]
+ ld [$d265], a
+ cp EGG
+ ld a, $1
+ jr z, .asm_71b9
+ xor a
+
+.asm_71b9
+ ld [ScriptVar], a
+ call GetPokemonName
+ jp Function746e
+; 71c2
+
+
+ChangeHappiness: ; 71c2
+; Perform happiness action c on CurPartyMon
+
+ ld a, [CurPartyMon]
+ inc a
+ ld e, a
+ ld d, 0
+ ld hl, PartySpecies - 1
+ add hl, de
+ ld a, [hl]
+ cp EGG
+ ret z
+
+ push bc
+ ld hl, PartyMon1Happiness
+ ld bc, PartyMon2 - PartyMon1
+ ld a, [CurPartyMon]
+ call AddNTimes
+ pop bc
+
+ ld d, h
+ ld e, l
+
+ push de
+ ld a, [de]
+ cp 100
+ ld e, 0
+ jr c, .asm_71ef
+ inc e
+ cp 200
+ jr c, .asm_71ef
+ inc e
+
+.asm_71ef
+ dec c
+ ld b, 0
+ ld hl, .Actions
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld d, 0
+ add hl, de
+ ld a, [hl]
+ cp 100
+ pop de
+
+ ld a, [de]
+ jr nc, .negative
+ add [hl]
+ jr nc, .asm_720d
+ ld a, $ff
+ jr .asm_720d
+
+.negative
+ add [hl]
+ jr c, .asm_720d
+ xor a
+
+.asm_720d
+ ld [de], a
+ ld a, [IsInBattle]
+ and a
+ ret z
+ ld a, [CurPartyMon]
+ ld b, a
+ ld a, [$d0d8]
+ cp b
+ ret nz
+ ld a, [de]
+ ld [BattleMonHappiness], a
+ ret
+; 7221
+
+.Actions
+ db +5, +3, +2
+ db +5, +3, +2
+ db +1, +1, +0
+ db +3, +2, +1
+ db +1, +1, +0
+ db -1, -1, -1
+ db -5, -5, -10
+ db -5, -5, -10
+ db +1, +1, +1
+ db +3, +3, +1
+ db +5, +5, +2
+ db +1, +1, +1
+ db +3, +3, +1
+ db +10, +10, +4
+ db -5, -5, -10
+ db -10, -10, -15
+ db -15, -15, -20
+ db +3, +3, +1
+ db +10, +6, +4
+; 725a
+
+
+StepHappiness: ; 725a
+; Raise the party's happiness by 1 point every other step cycle.
+
+ ld hl, $dc77
+ ld a, [hl]
+ inc a
+ and 1
+ ld [hl], a
+ ret nz
+
+ ld de, PartyCount
+ ld a, [de]
+ and a
+ ret z
+
+ ld c, a
+ ld hl, PartyMon1Happiness
+.loop
+ inc de
+ ld a, [de]
+ cp EGG
+ jr z, .next
+ inc [hl]
+ jr nz, .next
+ ld [hl], $ff
+
+.next
+ push de
+ ld de, PartyMon2 - PartyMon1
+ add hl, de
+ pop de
+ dec c
+ jr nz, .loop
+ ret
+; 7282
+
+
+DaycareStep: ; 7282
+
+ ld a, [DaycareMan]
+ bit 0, a
+ jr z, .asm_72a4
+
+ ld a, [$df2b] ; level
+ cp 100
+ jr nc, .asm_72a4
+ ld hl, $df16 ; exp
+ inc [hl]
+ jr nz, .asm_72a4
+ dec hl
+ inc [hl]
+ jr nz, .asm_72a4
+ dec hl
+ inc [hl]
+ ld a, [hl]
+ cp $50
+ jr c, .asm_72a4
+ ld a, $50
+ ld [hl], a
+
+.asm_72a4
+ ld a, [DaycareLady]
+ bit 0, a
+ jr z, .asm_72c6
+
+ ld a, [$df64] ; level
+ cp 100
+ jr nc, .asm_72c6
+ ld hl, $df4f ; exp
+ inc [hl]
+ jr nz, .asm_72c6
+ dec hl
+ inc [hl]
+ jr nz, .asm_72c6
+ dec hl
+ inc [hl]
+ ld a, [hl]
+ cp $50
+ jr c, .asm_72c6
+ ld a, $50
+ ld [hl], a
+
+.asm_72c6
+ ld hl, DaycareMan
+ bit 5, [hl] ; egg
+ ret z
+ ld hl, StepsToEgg
+ dec [hl]
+ ret nz
+
+ call RNG
+ ld [hl], a
+ ld hl, $6e1d
+ ld a, $5
+ rst FarCall
+ ld a, [$d265]
+ cp $e6
+ ld b, $50
+ jr nc, .asm_72f8
+ ld a, [$d265]
+ cp $aa
+ ld b, $28
+ jr nc, .asm_72f8
+ ld a, [$d265]
+ cp $6e
+ ld b, $1e
+ jr nc, .asm_72f8
+ ld b, $a
+
+.asm_72f8
+ call RNG
+ cp b
+ ret nc
+ ld hl, DaycareMan
+ res 5, [hl]
+ set 6, [hl]
+ ret
+; 7305
+
+
SpecialGiveShuckle: ; 7305
; Adding to the party.
@@ -6212,7 +18060,7 @@
dec a
ld hl, PartyMon1Nickname
call SkipNames
- ld de, .Shuckie
+ ld de, SpecialShuckleNick
call CopyName2
; OT.
@@ -6220,7 +18068,7 @@
dec a
ld hl, PartyMon1OT
call SkipNames
- ld de, .Mania
+ ld de, SpecialShuckleOT
call CopyName2
; Bittable2 flag for this event.
@@ -6236,20 +18084,1056 @@
ld [ScriptVar], a
ret
-.Mania
+SpecialShuckleOT:
db "MANIA@"
-.Shuckie
+SpecialShuckleNick:
db "SHUCKIE@"
; 737e
-INCBIN "baserom.gbc", $737e, $747b - $737e
+SpecialReturnShuckle: ; 737e
+ callba Function50000
+ jr c, .asm_73e6
+ ld a, [CurPartySpecies]
+ cp SHUCKLE
+ jr nz, .DontReturn
-SECTION "bank2",ROMX,BANK[$2]
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1ID
+ ld bc, PartyMon2 - PartyMon1
+ call AddNTimes
+
+; OT ID
+ ld a, [hli]
+ cp $2
+ jr nz, .DontReturn
+ ld a, [hl]
+ cp $6
+ jr nz, .DontReturn
+
+; OT
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1OT
+ call SkipNames
+ ld de, SpecialShuckleOT
+.CheckOT
+ ld a, [de]
+ cp [hl]
+ jr nz, .DontReturn
+ cp "@"
+ jr z, .asm_73bb
+ inc de
+ inc hl
+ jr .CheckOT
+
+.asm_73bb
+ callba Functione538
+ jr c, .asm_73f1
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Happiness
+ ld bc, PartyMon2 - PartyMon1
+ call AddNTimes
+ ld a, [hl]
+ cp 150
+ ld a, $3
+ jr nc, .asm_73e2
+ xor a
+ ld [$d10b], a
+ callab Functione039
+ ld a, $2
-INCBIN "baserom.gbc", $8000, $854b - $8000
+.asm_73e2
+ ld [ScriptVar], a
+ ret
+.asm_73e6
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.DontReturn
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_73f1
+ ld a, $4
+ ld [ScriptVar], a
+ ret
+; 73f7
+
+Function73f7: ; 73f7
+ callba Function50000
+ jr c, .asm_740e
+ ld a, [CurPartySpecies]
+ ld [ScriptVar], a
+ ld [$d265], a
+ call GetPokemonName
+ jp Function746e
+
+.asm_740e
+ xor a
+ ld [ScriptVar], a
+ ret
+; 7413
+
+Function7413: ; 7413
+ ld hl, Data7459
+ jr Function7420
+
+Function7418: ; 7418
+ ld hl, Data7462
+ jr Function7420
+
+Function741d: ; 741d
+ ld hl, Data746b
+
+Function7420: ; 7420
+ push hl
+ callba Function50000
+ pop hl
+ jr c, .asm_744e
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .asm_7453
+ push hl
+ call GetCurNick
+ call Function746e
+ pop hl
+ call RNG
+.next
+ sub [hl]
+ jr c, .asm_7444
+ inc hl
+ inc hl
+ inc hl
+ jr .next
+
+.asm_7444
+ inc hl
+ ld a, [hli]
+ ld [ScriptVar], a
+ ld c, [hl]
+ call ChangeHappiness
+ ret
+
+.asm_744e
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_7453
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 7459
+
+Data7459: ; 7459
+ db $4c, $02, $09
+ db $80, $03, $0a
+ db $ff, $04, $0b
+
+Data7462: ; 7462
+ db $9a, $02, $0c
+ db $4c, $03, $0d
+ db $ff, $04, $0e
+
+Data746b: ; 746b
+ db $ff, $02, $12
+; 746e
+
+Function746e: ; 746e
+ ld hl, StringBuffer1
+ ld de, StringBuffer3
+ ld bc, $000b
+ jp CopyBytes
+; 747a
+
+Function747a: ; 747a
+ ret
+; 747b
+
+
+SECTION "bank2",ROMX,BANK[$2]
+
+Function8000: ; 8000
+ call Function2ed3
+ xor a
+ ld [hBGMapMode], a
+ call WhiteBGMap
+ call ClearSprites
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, " "
+ call ByteFill
+ ld hl, AttrMap
+ ld bc, $0168
+ ld a, $7
+ call ByteFill
+ call Function3200
+ call Function32f9
+ ret
+; 8029
+
+Function8029: ; 8029
+ ld a, $ff
+ ld [$d4cd], a
+ ld [$d4ce], a
+ ld a, $0
+ ld hl, $4071
+ call Function19a6
+ ld b, $0
+ call Function808f
+ ld a, $0
+ call GetMapObject
+ ld hl, $0008
+ add hl, bc
+ ld e, $80
+ ld a, [$d45b]
+ bit 2, a
+ jr nz, .asm_8059
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_8059
+ ld e, $90
+
+.asm_8059
+ ld [hl], e
+ ld a, $0
+ ld [hConnectionStripLength], a
+ ld bc, MapObjects
+ ld a, $0
+ ld [hConnectedMapWidth], a
+ ld de, $d4d6
+ call Function8116
+ ld a, $0
+ ld [$d4cf], a
+ ret
+; 8071
+
+INCBIN "baserom.gbc", $8071, $807e - $8071
+
+
+Function807e: ; 807e
+ push de
+ ld a, b
+ call GetMapObject
+ pop de
+ ld hl, $0003
+ add hl, bc
+ ld [hl], d
+ ld hl, $0002
+ add hl, bc
+ ld [hl], e
+ ret
+; 808f
+
+Function808f: ; 808f
+ push bc
+ ld a, [XCoord]
+ add $4
+ ld d, a
+ ld a, [YCoord]
+ add $4
+ ld e, a
+ pop bc
+ call Function807e
+ ret
+; 80a1
+
+
+Function80a1: ; 80a1
+ ld a, b
+ call Function18de
+ ret c
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ ld a, [hConnectionStripLength]
+ ld b, a
+ call Function807e
+ and a
+ ret
+; 80b8
+
+Function80b8: ; 80b8
+ ld a, [XCoord]
+ add $4
+ ld d, a
+ ld hl, MapX
+ sub [hl]
+ ld [hl], d
+ ld hl, $d721
+ ld [hl], d
+ ld hl, MapX2
+ ld [hl], d
+ ld d, a
+ ld a, [YCoord]
+ add $4
+ ld e, a
+ ld hl, MapY
+ sub [hl]
+ ld [hl], e
+ ld hl, $d720
+ ld [hl], e
+ ld hl, MapY2
+ ld [hl], e
+ ld e, a
+ ld a, [$d4cd]
+ cp $0
+ ret nz
+ ret
+; 80e7
+
+
+Function80e7: ; 80e7
+ call Function2707
+ and a
+ ret nz
+ ld hl, $d4fe
+ ld a, $1
+ ld de, $0028
+.asm_80f4
+ ld [hConnectedMapWidth], a
+ ld a, [hl]
+ and a
+ jr z, .asm_8104
+ add hl, de
+ ld a, [hConnectedMapWidth]
+ inc a
+ cp $d
+ jr nz, .asm_80f4
+ scf
+ ret
+
+.asm_8104
+ ld d, h
+ ld e, l
+ call Function8116
+ ld hl, VramState
+ bit 7, [hl]
+ ret z
+ ld hl, $0005
+ add hl, de
+ set 5, [hl]
+ ret
+; 8116
+
+Function8116: ; 8116
+ call Function811d
+ call Function8286
+ ret
+; 811d
+
+Function811d: ; 811d
+ ld a, [hConnectedMapWidth]
+ ld hl, $0000
+ add hl, bc
+ ld [hl], a
+ ld a, [hConnectionStripLength]
+ ld [$c2f0], a
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ ld [$c2f1], a
+ call Function180e
+ ld [$c2f2], a
+ ld a, [hl]
+ call Function17ff
+ ld [$c2f3], a
+ ld hl, $0008
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ jr z, .asm_814e
+ swap a
+ and $7
+ ld [$c2f3], a
+
+.asm_814e
+ ld hl, $0004
+ add hl, bc
+ ld a, [hl]
+ ld [$c2f4], a
+ ld hl, $0009
+ add hl, bc
+ ld a, [hl]
+ ld [$c2f5], a
+ ld hl, $0003
+ add hl, bc
+ ld a, [hl]
+ ld [$c2f6], a
+ ld hl, $0002
+ add hl, bc
+ ld a, [hl]
+ ld [$c2f7], a
+ ld hl, $0005
+ add hl, bc
+ ld a, [hl]
+ ld [$c2f8], a
+ ret
+; 8177
+
+Function8177: ; 8177
+ ld bc, $d72e
+ ld a, $1
+.asm_817c
+ ld [hConnectionStripLength], a
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_81bb
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_81bb
+ ld a, [XCoord]
+ ld d, a
+ ld a, [YCoord]
+ ld e, a
+ ld hl, $0003
+ add hl, bc
+ ld a, [hl]
+ add $1
+ sub d
+ jr c, .asm_81bb
+ cp $c
+ jr nc, .asm_81bb
+ ld hl, $0002
+ add hl, bc
+ ld a, [hl]
+ add $1
+ sub e
+ jr c, .asm_81bb
+ cp $b
+ jr nc, .asm_81bb
+ push bc
+ call Function80e7
+ pop bc
+ jp c, Function81c9
+
+.asm_81bb
+ ld hl, $0010
+ add hl, bc
+ ld b, h
+ ld c, l
+ ld a, [hConnectionStripLength]
+ inc a
+ cp $10
+ jr nz, .asm_817c
+ ret
+; 81c9
+
+Function81c9: ; 81c9
+ ret
+; 81ca
+
+Function81ca: ; 81ca
+ nop
+ ld a, [$d151]
+ cp $ff
+ ret z
+ ld hl, Table81d6
+ rst JumpTable
+ ret
+; 81d6
+
+Table81d6: ; 81d6
+ dw Function81e5
+ dw Function81de
+ dw Function8232
+ dw Function8239
+; 81de
+
+Function81de: ; 81de
+ ld a, [YCoord]
+ sub $1
+ jr Function81ea
+
+Function81e5: ; 81e5
+ ld a, [YCoord]
+ add $9
+
+Function81ea: ; 81ea
+ ld d, a
+ ld a, [XCoord]
+ ld e, a
+ ld bc, $d72e
+ ld a, $1
+.asm_81f4
+ ld [hConnectionStripLength], a
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_8224
+ ld hl, $0002
+ add hl, bc
+ ld a, d
+ cp [hl]
+ jr nz, .asm_8224
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_8224
+ ld hl, $0003
+ add hl, bc
+ ld a, [hl]
+ add $1
+ sub e
+ jr c, .asm_8224
+ cp $c
+ jr nc, .asm_8224
+ push de
+ push bc
+ call Function80e7
+ pop bc
+ pop de
+
+.asm_8224
+ ld hl, $0010
+ add hl, bc
+ ld b, h
+ ld c, l
+ ld a, [hConnectionStripLength]
+ inc a
+ cp $10
+ jr nz, .asm_81f4
+ ret
+; 8232
+
+Function8232: ; 8232
+ ld a, [XCoord]
+ sub $1
+ jr Function823e
+
+Function8239: ; 8239
+ ld a, [XCoord]
+ add $a
+
+Function823e: ; 823e
+ ld e, a
+ ld a, [YCoord]
+ ld d, a
+ ld bc, $d72e
+ ld a, $1
+.asm_8248
+ ld [hConnectionStripLength], a
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_8278
+ ld hl, $0003
+ add hl, bc
+ ld a, e
+ cp [hl]
+ jr nz, .asm_8278
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_8278
+ ld hl, $0002
+ add hl, bc
+ ld a, [hl]
+ add $1
+ sub d
+ jr c, .asm_8278
+ cp $b
+ jr nc, .asm_8278
+ push de
+ push bc
+ call Function80e7
+ pop bc
+ pop de
+
+.asm_8278
+ ld hl, $0010
+ add hl, bc
+ ld b, h
+ ld c, l
+ ld a, [hConnectionStripLength]
+ inc a
+ cp $10
+ jr nz, .asm_8248
+ ret
+; 8286
+
+
+Function8286: ; 8286
+ ld a, [$c2f0]
+ ld hl, $0001
+ add hl, de
+ ld [hl], a
+ ld a, [$c2f4]
+ call Function1a61
+ ld a, [$c2f3]
+ ld hl, $0006
+ add hl, de
+ or [hl]
+ ld [hl], a
+ ld a, [$c2f7]
+ call Function82d5
+ ld a, [$c2f6]
+ call Function82f1
+ ld a, [$c2f1]
+ ld hl, $0000
+ add hl, de
+ ld [hl], a
+ ld a, [$c2f2]
+ ld hl, $0002
+ add hl, de
+ ld [hl], a
+ ld hl, $0009
+ add hl, de
+ ld [hl], $0
+ ld hl, $000d
+ add hl, de
+ ld [hl], $ff
+ ld a, [$c2f8]
+ call Function830d
+ ld a, [$c2f5]
+ ld hl, $0020
+ add hl, de
+ ld [hl], a
+ and a
+ ret
+; 82d5
+
+Function82d5: ; 82d5
+ ld hl, $0015
+ add hl, de
+ ld [hl], a
+ ld hl, $0011
+ add hl, de
+ ld [hl], a
+ ld hl, YCoord
+ sub [hl]
+ and $f
+ swap a
+ ld hl, $d14d
+ sub [hl]
+ ld hl, $0018
+ add hl, de
+ ld [hl], a
+ ret
+; 82f1
+
+Function82f1: ; 82f1
+ ld hl, $0014
+ add hl, de
+ ld [hl], a
+ ld hl, $0010
+ add hl, de
+ ld [hl], a
+ ld hl, XCoord
+ sub [hl]
+ and $f
+ swap a
+ ld hl, $d14c
+ sub [hl]
+ ld hl, $0017
+ add hl, de
+ ld [hl], a
+ ret
+; 830d
+
+Function830d: ; 830d
+ ld h, a
+ inc a
+ and $f
+ ld l, a
+ ld a, h
+ add $10
+ and $f0
+ or l
+ ld hl, $0016
+ add hl, de
+ ld [hl], a
+ ret
+; 831e
+
+Function831e: ; 831e
+ ld a, [$ffe0]
+ call Function1b1e
+ ld a, $3e
+ call Function1b3f
+ ld a, [CurFruit]
+ dec a
+ jr z, .asm_833b
+ ld a, [$ffe0]
+ ld b, a
+ ld c, $0
+ ld d, $1
+ call Function8341
+ call Function1b35
+
+.asm_833b
+ ld a, $47
+ call Function1b3f
+ ret
+; 8341
+
+Function8341: ; 8341
+ push de
+ push bc
+ ld a, c
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ call Function1ae5
+ ld d, b
+ ld e, c
+ pop bc
+ ld a, b
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ call Function1ae5
+ ld hl, $0010
+ add hl, bc
+ ld a, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld c, [hl]
+ ld b, a
+ ld hl, $0010
+ add hl, de
+ ld a, [hl]
+ ld hl, $0011
+ add hl, de
+ ld e, [hl]
+ ld d, a
+ pop af
+ call Function1b5f
+ ret
+; 8379
+
+Function8379: ; 8379
+ call Function1b1e
+ call Function8388
+ call Function1b3f
+ ld a, $47
+ call Function1b3f
+ ret
+; 8388
+
+Function8388: ; 8388
+ ld a, [PlayerDirection]
+ srl a
+ srl a
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, .data_839a
+ add hl, de
+ ld a, [hl]
+ ret
+; 839a
+
+.data_839a
+ db 8, 9, 10, 11
+; 839e
+
+
+Function839e: ; 839e
+ push bc
+ ld a, c
+ call Function18de
+ ld d, b
+ ld e, c
+ pop bc
+ ret c
+ ld a, b
+ call Function18de
+ ret c
+ ld hl, $0010
+ add hl, bc
+ ld a, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld c, [hl]
+ ld b, a
+ ld hl, $0010
+ add hl, de
+ ld a, [hl]
+ cp b
+ jr z, .asm_83c7
+ jr c, .asm_83c4
+ inc b
+ jr .asm_83d5
+
+.asm_83c4
+ dec b
+ jr .asm_83d5
+
+.asm_83c7
+ ld hl, $0011
+ add hl, de
+ ld a, [hl]
+ cp c
+ jr z, .asm_83d5
+ jr c, .asm_83d4
+ inc c
+ jr .asm_83d5
+
+.asm_83d4
+ dec c
+
+.asm_83d5
+ ld hl, $0010
+ add hl, de
+ ld [hl], b
+ ld a, b
+ ld hl, XCoord
+ sub [hl]
+ and $f
+ swap a
+ ld hl, $d14c
+ sub [hl]
+ ld hl, $0017
+ add hl, de
+ ld [hl], a
+ ld hl, $0011
+ add hl, de
+ ld [hl], c
+ ld a, c
+ ld hl, YCoord
+ sub [hl]
+ and $f
+ swap a
+ ld hl, $d14d
+ sub [hl]
+ ld hl, $0018
+ add hl, de
+ ld [hl], a
+ ld a, [hConnectedMapWidth]
+ ld hl, $0020
+ add hl, de
+ ld [hl], a
+ ld hl, $0003
+ add hl, de
+ ld [hl], $1a
+ ld hl, $0009
+ add hl, de
+ ld [hl], $0
+ ret
+; 8417
+
+Function8417: ; 8417
+ ld a, d
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ cp $d
+ jr nc, .asm_8437
+ ld d, a
+ ld a, e
+ call GetMapObject
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ cp $d
+ jr nc, .asm_8437
+ ld e, a
+ call Function8439
+ ret
+
+.asm_8437
+ scf
+ ret
+; 8439
+
+Function8439: ; 8439
+ ld a, d
+ call Function1ae5
+ ld hl, $0010
+ add hl, bc
+ ld a, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld c, [hl]
+ ld b, a
+ push bc
+ ld a, e
+ call Function1ae5
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ pop bc
+ ld a, b
+ sub d
+ jr z, .asm_846c
+ jr nc, .asm_8460
+ cpl
+ inc a
+
+.asm_8460
+ ld h, a
+ ld a, c
+ sub e
+ jr z, .asm_847a
+ jr nc, .asm_8469
+ cpl
+ inc a
+
+.asm_8469
+ sub h
+ jr c, .asm_847a
+
+.asm_846c
+ ld a, c
+ cp e
+ jr z, .asm_8488
+ jr c, .asm_8476
+ ld d, $0
+ and a
+ ret
+
+.asm_8476
+ ld d, $1
+ and a
+ ret
+
+.asm_847a
+ ld a, b
+ cp d
+ jr z, .asm_8488
+ jr c, .asm_8484
+ ld d, $3
+ and a
+ ret
+
+.asm_8484
+ ld d, $2
+ and a
+ ret
+
+.asm_8488
+ scf
+ ret
+; 848a
+
+Function848a: ; 848a
+ call Function849d
+ jr c, .asm_8497
+ ld [$d4d1], a
+ xor a
+ ld [$d4d0], a
+ ret
+
+.asm_8497
+ ld a, $ff
+ ld [$d4d0], a
+ ret
+; 849d
+
+Function849d: ; 849d
+ ld a, [$d4cd]
+ call Function1ae5
+ ld hl, $0010
+ add hl, bc
+ ld d, [hl]
+ ld hl, $0011
+ add hl, bc
+ ld e, [hl]
+ ld a, [$d4ce]
+ call Function1ae5
+ ld hl, $0010
+ add hl, bc
+ ld a, d
+ cp [hl]
+ jr z, .asm_84c5
+ jr c, .asm_84c1
+ and a
+ ld a, $f
+ ret
+
+.asm_84c1
+ and a
+ ld a, $e
+ ret
+
+.asm_84c5
+ ld hl, $0011
+ add hl, bc
+ ld a, e
+ cp [hl]
+ jr z, .asm_84d7
+ jr c, .asm_84d3
+ and a
+ ld a, $c
+ ret
+
+.asm_84d3
+ and a
+ ld a, $d
+ ret
+
+.asm_84d7
+ scf
+ ret
+; 84d9
+
+Function84d9: ; 84d9
+ ld a, e
+ and $3f
+ cp $20
+ jr nc, .asm_84e5
+ call Function84ef
+ ld a, h
+ ret
+
+.asm_84e5
+ and $1f
+ call Function84ef
+ ld a, h
+ xor $ff
+ inc a
+ ret
+; 84ef
+
+Function84ef: ; 84ef
+ ld e, a
+ ld a, d
+ ld d, $0
+ ld hl, $450b
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $0000
+.asm_84fe
+ srl a
+ jr nc, .asm_8503
+ add hl, de
+
+.asm_8503
+ sla e
+ rl d
+ and a
+ jr nz, .asm_84fe
+ ret
+; 850b
+
+INCBIN "baserom.gbc", $850b, $854b - $850b
+
+
GetPredefFn: ; 854b
; input:
; [$cfb4] id
@@ -6289,34 +19173,35 @@
PredefPointers: ; 856b
; $4b Predef pointers
; address, bank
- dwb $6508, $01
+
+ dwb Function6508, BANK(Function6508)
dwb $747a, $01
dwb $4658, $03
- dwb $57c1, $13
+ dwb $57c1, $13 ; Flag, BANK(Flag)
dwb $4699, $03
- dwb $5a6d, $03
- dwb $588c, $03
+ dwb FillPP, BANK(FillPP)
+ dwb Functiond88c, BANK(Functiond88c)
dwb $5a96, $03
dwb $5b3f, $03
- dwb $5e6e, $03
- dwb $5f8c, $03
+ dwb Functionde6e, BANK(Functionde6e)
+ dwb Functiondf8c, BANK(Functiondf8c)
dwb $46e0, $03
- dwb $6167, $03
- dwb $617b, $03
+ dwb Functione167, BANK(Functione167)
+ dwb Functione17b, BANK(Functione17b)
dwb $5639, $04
dwb $566a, $04
dwb $4eef, $0a
- dwb $4b3e, $0b
- dwb $5f48, $0f
+ dwb $4b3e, $0b ; PrintMoveDescription, BANK(PrintMoveDescription)
+ dwb Function3df48, BANK(Function3df48) ; UpdatePlayerHUD
dwb FillBox, BANK(FillBox)
- dwb $5873, $0f
- dwb $6036, $0f
- dwb $74c1, $0f
- dwb $7390, $0f
- dwb $743d, $0f
- dwb $747c, $0f
- dwb $6487, $10
- dwb $64e1, $10
+ dwb Function3d873, BANK(Function3d873)
+ dwb Function3e036, BANK(Function3e036) ; UpdateEnemyHUD
+ dwb Function3f4c1, BANK(Function3f4c1)
+ dwb FillInExpBar, BANK(FillInExpBar)
+ dwb Function3f43d, BANK(Function3f43d)
+ dwb Function3f47c, BANK(Function3f47c)
+ dwb Function42487, BANK(Function42487)
+ dwb FillMoves, BANK(FillMoves)
dwb $61e6, $10
dwb $4f63, $0a
dwb $4f24, $0a
@@ -6325,40 +19210,40 @@
dwb $4d2e, $14
dwb $4cdb, $14
dwb $4c50, $14
- dwb $4bdd, $14
- dwb StatsScreenInit, BANK(StatsScreenInit) ; stats screen
- dwb $4b0a, $14
- dwb $4b0e, $14
+ dwb GetGender, BANK(GetGender)
+ dwb StatsScreenInit, BANK(StatsScreenInit)
+ dwb DrawPlayerHP, BANK(DrawPlayerHP)
+ dwb DrawEnemyHP, BANK(DrawEnemyHP)
dwb $4b7b, $14
- dwb $4964, $14
- dwb $493a, $14
- dwb $4953, $14
- dwb $490d, $14
- dwb $5040, $14
+ dwb GetTypeName, BANK(GetTypeName)
+ dwb PrintMoveType, BANK(PrintMoveType)
+ dwb PrintType, BANK(PrintType)
+ dwb PrintMonTypes, BANK(PrintMonTypes)
+ dwb $5040, $14 ; GetUnownLetter
dwb $7cdd, $32
dwb $40d5, $33
dwb $5853, $02
- dwb $464c, $02
+ dwb $464c, $02 ; LoadSGBLayout, BANK(LoadSGBLayout)
dwb $5d11, $24
- dwb $4a88, $02
+ dwb CheckContestMon, BANK(CheckContestMon)
dwb $420f, $23
dwb $4000, $23
dwb $4000, $23
- dwb $40d6, $33
+ dwb Functioncc0d6, BANK(Functioncc0d6)
dwb $40d5, $33
dwb $40d5, $33
dwb $51d0, $3f
- dwb $6a6c, $04
+ dwb PartyMonItemName, BANK(PartyMonItemName)
dwb $5077, $14
dwb $516c, $14
dwb $508b, $14
- dwb $520d, $14
+ dwb Function5120d, BANK(Function5120d)
dwb DecompressPredef, BANK(DecompressPredef)
- dwb $47d3, $0d
+ dwb Function0x347d3, BANK(Function0x347d3)
dwb $7908, $3e
dwb $7877, $3e
dwb $4000, $34
- dwb $4d0a, $14
+ dwb Function50d0a, BANK(Function50d0a)
dwb $40a3, $34
dwb $408e, $34
dwb $4669, $34
@@ -6366,8 +19251,41 @@
dwb $43ff, $2d
; 864c
-INCBIN "baserom.gbc", $864c, $8a68 - $864c
+Function864c: ; 864c
+ call Function8d55
+ jp nz, Function8d59
+ ld a, b
+ cp $ff
+ jr nz, .asm_865a
+ ld a, [SGBPredef]
+
+.asm_865a
+ cp $fc
+ jp z, Function8ade
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, $466f
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, Function8a60
+ push de
+ jp [hl]
+; 866f
+
+INCBIN "baserom.gbc", $866f, $8a60 - $866f
+
+Function8a60: ; 8a60
+ push de
+ call Function9809
+ pop hl
+ jp Function9809
+; 8a68
+
+
CheckShininess: ; 0x8a68
; given a pointer to Attack/Defense DV in bc, determine if monster is shiny.
; if shiny, set carry.
@@ -6393,9 +19311,804 @@
.NotShiny
and a ; clear carry flag
ret
+; 8a88
-INCBIN "baserom.gbc", $8a88, $9a52-$8a88
+CheckContestMon: ; 8a88
+ ld a, [hl]
+ cp $a0
+ jr c, .asm_8aa2
+ ld a, [hli]
+ and $f
+ cp $a
+ jr c, .asm_8aa2
+ ld a, [hl]
+ cp $a0
+ jr c, .asm_8aa2
+ ld a, [hl]
+ and $f
+ cp $a
+ jr c, .asm_8aa2
+ scf
+ ret
+
+.asm_8aa2
+ and a
+ ret
+; 8aa4
+
+Function8aa4: ; 8aa4
+ push de
+ push bc
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ pop bc
+ pop de
+ ld a, c
+ ld [$cdac], a
+ ld a, b
+ ld [$cdad], a
+ ld a, e
+ ld [$cdae], a
+ ld a, d
+ ld [$cdaf], a
+ ld hl, $cda9
+ call Function9809
+ ld hl, $5a86
+ call Function9809
+ ret
+; 8ad1
+
+
+Function8ad1: ; 8ad1
+ ld hl, $5c57
+ call Function9610
+ call Function971a
+ call Function9699
+ ret
+; 8ade
+
+Function8ade: ; 8ade
+ ld hl, $cd9b
+ ld a, [$cda9]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld a, [de]
+ and a
+ ld e, $5
+ jr z, .asm_8af7
+ dec a
+ ld e, $a
+ jr z, .asm_8af7
+ ld e, $f
+
+.asm_8af7
+ push de
+ ld hl, $cdb3
+ ld bc, $0006
+ ld a, [$cda9]
+ call AddNTimes
+ pop de
+ ld [hl], e
+ ret
+; 8b07
+
+Function8b07: ; 8b07
+ call Function8d55
+ ret z
+ ld hl, $4b2f
+ ld de, $d000
+ ld bc, $0008
+ ld a, $5
+ call Function306b
+ ld hl, $4b37
+ ld de, MartPointer
+ ld bc, $0008
+ ld a, $5
+ call Function306b
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8b2f
+
+INCBIN "baserom.gbc", $8b2f, $8cb4 - $8b2f
+
+Function8cb4: ; 8cb4
+ ld l, e
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, $4d05
+ add hl, de
+ call Function8d55
+ jr nz, .asm_8cf0
+ push hl
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ pop hl
+ inc hl
+ inc hl
+ ld a, [hli]
+ ld [$cdac], a
+ ld a, [hli]
+ ld [$cdad], a
+ ld a, [hli]
+ ld [$cdae], a
+ ld a, [hli]
+ ld [$cdaf], a
+ ld hl, $cda9
+ call Function9809
+ ld hl, $5a86
+ call Function9809
+ ret
+
+.asm_8cf0
+ ld de, $d000
+ ld bc, $0008
+ ld a, $5
+ call Function306b
+ call Function96a4
+ call Function9699
+ call Function96b3
+ ret
+; 8d05
+
+INCBIN "baserom.gbc", $8d05, $8d55 - $8d05
+
+
+Function8d55: ; 8d55
+ ld a, [hCGB]
+ and a
+ ret
+; 8d59
+
+Function8d59: ; 8d59
+ ld a, b
+ cp $ff
+ jr nz, .asm_8d61
+ ld a, [SGBPredef]
+
+.asm_8d61
+ cp $fc
+ jp z, Function96f3
+ call Function9673
+ ld l, a
+ ld h, $0
+ add hl, hl
+ ld de, $4d7a
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, Function8d79
+ push de
+ jp [hl]
+; 8d79
+
+Function8d79: ; 8d79
+ ret
+; 8d7a
+
+INCBIN "baserom.gbc", $8d7a, $8db8 - $8d7a
+
+Function8db8: ; 8db8
+ ld hl, $5c67
+ ld de, $d000
+ ld c, $4
+ call $5615
+ ld hl, $5c67
+ ld de, $d020
+ ld c, $4
+ call $5615
+ ld hl, $5c67
+ ld de, MartPointer
+ ld c, $2
+ call $5615
+ jr .asm_8e23
+
+ ld de, $d000
+ call Function9729
+ push hl
+ call Function9643
+ call Function973a
+ push hl
+ call Function9643
+ ld a, [EnemyHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, $68be
+ add hl, bc
+ call Function9643
+ ld a, [PlayerHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, $68be
+ add hl, bc
+ call Function9643
+ ld hl, $68ca
+ call Function9643
+ ld de, MartPointer
+ pop hl
+ call Function9643
+ pop hl
+ call Function9643
+ ld a, $1
+ ld [SGBPredef], a
+ call Function96a4
+
+.asm_8e23
+ call Function8e85
+ ld hl, AttrMap
+ ld bc, $0168
+ ld a, $2
+ call ByteFill
+ ld hl, $ce29
+ ld bc, $080a
+ ld a, $0
+ call Function9663
+ ld hl, $cde3
+ ld bc, $070a
+ ld a, $1
+ call Function9663
+ ld hl, AttrMap
+ ld bc, $040a
+ ld a, $2
+ call Function9663
+ ld hl, $ce6f
+ ld bc, $050a
+ ld a, $3
+ call Function9663
+ ld hl, $cebf
+ ld bc, $0109
+ ld a, $4
+ call Function9663
+ ld hl, $cec9
+ ld bc, $0078
+ ld a, $7
+ call ByteFill
+ ld hl, $579c
+ ld de, $d050
+ ld bc, $0030
+ ld a, $5
+ call Function306b
+ call Function96b3
+ ret
+; 8e85
+
+
+Function8e85: ; 8e85
+ ld a, $40
+ ld hl, $4dc0
+ rst FarCall
+ ld hl, $7311
+ jr nc, .asm_8e93
+ ld hl, $7309
+
+.asm_8e93
+ ld de, $d038
+ ld bc, $0008
+ ld a, $5
+ call Function306b
+ ret
+; 8e9f
+
+Function8e9f: ; 8e9f
+ callba Function100dc0
+ ld hl, $7311
+ jr nc, .asm_8ead
+ ld hl, $7309
+
+.asm_8ead
+ ld de, $d000
+ ld bc, $0008
+ ld a, $5
+ call Function306b
+ ret
+; 8eb9
+
+Function8eb9: ; 8eb9
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_8ec5
+ ld hl, $7759
+ jr .asm_8ec8
+
+.asm_8ec5
+ ld hl, $7729
+
+.asm_8ec8
+ ld de, $d000
+ ld bc, $0030
+ ld a, $5
+ call Function306b
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8edb
+
+Function8edb: ; 8edb
+ ld de, $d000
+ ld a, [$cda1]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, $68be
+ add hl, bc
+ call Function9643
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call Function974b
+ call Function9643
+ ld hl, $68ca
+ call Function9643
+ ld hl, $4f52
+ ld de, $d018
+ ld bc, $0018
+ ld a, $5
+ call Function306b
+ call Function9699
+ ld hl, AttrMap
+ ld bc, $0814
+ ld a, $1
+ call Function9663
+ ld hl, $cf23
+ ld bc, $000a
+ ld a, $2
+ call ByteFill
+ ld hl, $ce4a
+ ld bc, $0202
+ ld a, $3
+ call Function9663
+ ld hl, $ce4c
+ ld bc, $0202
+ ld a, $4
+ call Function9663
+ ld hl, $ce4e
+ ld bc, $0202
+ ld a, $5
+ call Function9663
+ call Function96b3
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8f52
+
+INCBIN "baserom.gbc", $8f52, $9610 - $8f52
+
+
+Function9610: ; 9610
+ ld de, $d000
+ ld c, $4
+.asm_9615
+ push bc
+ ld a, [hli]
+ push hl
+ call Function9625
+ call Function9630
+ pop hl
+ inc hl
+ pop bc
+ dec c
+ jr nz, .asm_9615
+ ret
+; 9625
+
+Function9625: ; 9625
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld bc, $5df6
+ add hl, bc
+ ret
+; 9630
+
+Function9630: ; 9630
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld c, $8
+.asm_9639
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_9639
+ pop af
+ ld [rSVBK], a
+ ret
+; 9643
+
+Function9643: ; 9643
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, $ff
+ ld [de], a
+ inc de
+ ld a, $7f
+ ld [de], a
+ inc de
+ ld c, $4
+.asm_9654
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_9654
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ pop af
+ ld [rSVBK], a
+ ret
+; 9663
+
+Function9663: ; 9663
+.asm_9663
+ push bc
+ push hl
+.asm_9665
+ ld [hli], a
+ dec c
+ jr nz, .asm_9665
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_9663
+ ret
+; 9673
+
+Function9673: ; 9673
+ push af
+ push bc
+ push de
+ push hl
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d000
+ ld c, $8
+.asm_9683
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ dec c
+ jr nz, .asm_9683
+ pop af
+ ld [rSVBK], a
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+; 9699
+
+
+Function9699: ; 9699
+ ld hl, AttrMap
+ ld bc, $0168
+ xor a
+ call ByteFill
+ ret
+; 96a4
+
+Function96a4: ; 96a4
+ ld hl, $d000
+ ld de, $d080
+ ld bc, $0080
+ ld a, $5
+ call Function306b
+ ret
+; 96b3
+
+Function96b3: ; 96b3
+ ld a, [rLCDC]
+ bit 7, a
+ jr z, .asm_96d0
+ ld a, [hBGMapMode]
+ push af
+ ld a, $2
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+ pop af
+ ld [hBGMapMode], a
+ ret
+
+.asm_96d0
+ ld hl, AttrMap
+ ld de, VBGMap0
+ ld b, $12
+ ld a, $1
+ ld [rVBK], a
+.asm_96dc
+ ld c, $14
+.asm_96de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_96de
+ ld a, $c
+ add e
+ jr nc, .asm_96ea
+ inc d
+
+.asm_96ea
+ ld e, a
+ dec b
+ jr nz, .asm_96dc
+ ld a, $0
+ ld [rVBK], a
+ ret
+; 96f3
+
+Function96f3: ; 96f3
+ ld hl, $cd9b
+ ld a, [$cda9]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld a, [de]
+ inc a
+ ld e, a
+ ld hl, $ce0c
+ ld bc, $0028
+ ld a, [$cda9]
+.asm_970b
+ and a
+ jr z, .asm_9712
+ add hl, bc
+ dec a
+ jr .asm_970b
+
+.asm_9712
+ ld bc, $0208
+ ld a, e
+ call Function9663
+ ret
+; 971a
+
+
+Function971a: ; 971a
+ ld hl, $7681
+ ld de, MartPointer
+ ld bc, $0010
+ ld a, $5
+ call Function306b
+ ret
+; 9729
+
+Function9729: ; 9729
+ push de
+ callba Function3da85
+ ld c, l
+ ld b, h
+ ld a, [TempBattleMonSpecies]
+ call Function974b
+ pop de
+ ret
+; 973a
+
+Function973a: ; 973a
+ push de
+ callba Function3da97
+ ld c, l
+ ld b, h
+ ld a, [TempEnemyMonSpecies]
+ call Function9764
+ pop de
+ ret
+; 974b
+
+Function974b: ; 974b
+ and a
+ jp nz, Function97f9
+ ld a, [$d45b]
+ bit 2, a
+ jr nz, .asm_9760
+ ld a, [PlayerGender]
+ and a
+ jr z, .asm_9760
+ ld hl, FalknerPalette
+ ret
+
+.asm_9760
+ ld hl, $70ce
+ ret
+; 9764
+
+Function9764: ; 9764
+ and a
+ jp nz, Function97f9
+ ld a, [TrainerClass]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, $70ce
+ add hl, bc
+ ret
+; 9775
+
+INCBIN "baserom.gbc", $9775, $97ee - $9775
+
+Function97ee: ; 97ee
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld bc, $68ce
+ add hl, bc
+ ret
+; 97f9
+
+Function97f9: ; 97f9
+ push bc
+ call Function97ee
+ pop bc
+ push hl
+ call CheckShininess
+ pop hl
+ ret nc
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+ ret
+; 9809
+
+Function9809: ; 9809
+ ld a, [$cfbe]
+ push af
+ set 7, a
+ ld [$cfbe], a
+ call Function981a
+ pop af
+ ld [$cfbe], a
+ ret
+; 981a
+
+Function981a: ; 981a
+ ld a, [hl]
+ and $7
+ ret z
+ ld b, a
+.asm_981f
+ push bc
+ xor a
+ ld [rJOYP], a
+ ld a, $30
+ ld [rJOYP], a
+ ld b, $10
+.asm_9829
+ ld e, $8
+ ld a, [hli]
+ ld d, a
+.asm_982d
+ bit 0, d
+ ld a, $10
+ jr nz, .asm_9835
+ ld a, $20
+
+.asm_9835
+ ld [rJOYP], a
+ ld a, $30
+ ld [rJOYP], a
+ rr d
+ dec e
+ jr nz, .asm_982d
+ dec b
+ jr nz, .asm_9829
+ ld a, $20
+ ld [rJOYP], a
+ ld a, $30
+ ld [rJOYP], a
+ call Function9a7a
+ pop bc
+ dec b
+ jr nz, .asm_981f
+ ret
+; 9853
+
+INCBIN "baserom.gbc", $9853, $9890 - $9853
+
+
+Function9890: ; 9890
+ call Function8d55
+ ret z
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, $2000
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ld a, $80
+ ld [rBGPI], a
+ ld c, $20
+.asm_98ac
+ ld a, $ff
+ ld [rBGPD], a
+ ld a, $7f
+ ld [rBGPD], a
+ dec c
+ jr nz, .asm_98ac
+ ld a, $80
+ ld [rOBPI], a
+ ld c, $20
+.asm_98bd
+ ld a, $ff
+ ld [rOBPD], a
+ ld a, $7f
+ ld [rOBPD], a
+ dec c
+ jr nz, .asm_98bd
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d000
+ call Function98df
+ ld hl, $d080
+ call Function98df
+ pop af
+ ld [rSVBK], a
+ ret
+; 98df
+
+Function98df: ; 98df
+ ld c, $40
+.asm_98e1
+ ld a, $ff
+ ld [hli], a
+ ld a, $7f
+ ld [hli], a
+ dec c
+ jr nz, .asm_98e1
+ ret
+; 98eb
+
+INCBIN "baserom.gbc", $98eb, $9a52 - $98eb
+
CopyData: ; 0x9a52
; copy bc bytes of data from hl to de
ld a, [hli]
@@ -6422,7 +20135,7 @@
DrawDefaultTiles: ; 0x9a64
; Draw 240 tiles (2/3 of the screen) from tiles in VRAM
- ld hl, $9800 ; BG Map 0
+ ld hl, VBGMap0 ; BG Map 0
ld de, 32 - 20
ld a, $80 ; starting tile
ld c, 12 + 1
@@ -6440,8 +20153,21 @@
ret
; 0x9a7a
-INCBIN "baserom.gbc", $9a7a, $a51e - $9a7a
+Function9a7a: ; 9a7a
+ ld de, $1b58
+.asm_9a7d
+ nop
+ nop
+ nop
+ dec de
+ ld a, d
+ or e
+ jr nz, .asm_9a7d
+ ret
+; 9a86
+INCBIN "baserom.gbc", $9a86, $a51e - $9a86
+
SGBBorder:
INCBIN "gfx/misc/sgb_border.2bpp"
@@ -6478,10 +20204,40 @@
SECTION "bank3",ROMX,BANK[$3]
-INCBIN "baserom.gbc", $c000, $29
+Functionc000: ; c000
+ ld a, [TimeOfDay]
+ ld hl, $4012
+ ld de, $0002
+ call IsInArray
+ inc hl
+ ld c, [hl]
+ ret c
+ xor a
+ ld c, a
+ ret
+; c012
-SpecialsPointers: ; 0xc029
- dbw $25, $7c28
+INCBIN "baserom.gbc", $c012, $c01b - $c012
+
+
+Functionc01b: ; c01b
+ ld hl, SpecialsPointers
+ add hl, de
+ add hl, de
+ add hl, de
+ ld b, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, b
+ rst FarCall
+ ret
+; c029
+
+
+SpecialsPointers: ; c029
+ dbw BANK(Function97c28), Function97c28
dbw $0a, $5ce8
dbw $0a, $5d11
dbw $0a, $5d92
@@ -6527,22 +20283,22 @@
dbw $03, $4380
dbw $03, $438d
dbw $03, $43db
- dbw $23, $4084
+ dbw BANK(Function8c084), Function8c084
dbw $23, $4092
dbw $23, $40b6
- dbw $23, $4079
+ dbw BANK(Function8c079), Function8c079
dbw $23, $40ab
- dbw $00, $0d91
+ dbw BANK(Functiond91), Functiond91
dbw BANK(WhiteBGMap), WhiteBGMap
- dbw $00, $0485
+ dbw BANK(Function485), Function485
dbw BANK(ClearTileMap), ClearTileMap
- dbw $00, $1ad2
- dbw $00, $0e4a
+ dbw BANK(Function1ad2), Function1ad2
+ dbw BANK(Functione4a), Functione4a
dbw $03, $4230
dbw $03, $4252
dbw BANK(WaitSFX),WaitSFX
- dbw $00, $3cdf
- dbw $00, $3d47
+ dbw BANK(Function3cdf), Function3cdf
+ dbw BANK(Function3d47), Function3d47
dbw $04, $6324
dbw $02, $4379
dbw $03, $425a
@@ -6557,12 +20313,12 @@
dbw $09, $6feb
dbw $09, $7043
dbw BANK(SpecialGiveShuckle), SpecialGiveShuckle
- dbw $01, $737e
+ dbw BANK(SpecialReturnShuckle), SpecialReturnShuckle
dbw $01, $73f7
dbw BANK(SpecialCheckPokerus),SpecialCheckPokerus
- dbw $09, $4b25
+ dbw BANK(Function24b25), Function24b25
dbw $09, $4b4e
- dbw $09, $4ae8
+ dbw BANK(Function24ae8), Function24ae8
dbw $13, $587a
dbw $03, $4434
dbw $03, $4422
@@ -6575,7 +20331,7 @@
dbw $0a, $64ab
dbw $0a, $651f
dbw $0a, $6567
- dbw $05, $4209
+ dbw BANK(Function14209), Function14209
dbw $3e, $7841
dbw BANK(SpecialSnorlaxAwake),SpecialSnorlaxAwake
dbw $01, $7413
@@ -6582,7 +20338,7 @@
dbw $01, $7418
dbw $01, $741d
dbw $03, $4472
- dbw $09, $65ee
+ dbw BANK(ProfOaksPCBoot), ProfOaksPCBoot
dbw BANK(SpecialGameboyCheck),SpecialGameboyCheck
dbw BANK(SpecialTrainerHouse),SpecialTrainerHouse
dbw $05, $6dc7
@@ -6607,12 +20363,12 @@
dbw $46, $7a38
dbw $5c, $4bd3
dbw $45, $7656
- dbw $00, $0150
+ dbw BANK(Reset), Reset
dbw $40, $51f1
dbw $40, $5220
dbw $40, $5225
dbw $40, $5231
- dbw $12, $525b
+ dbw BANK(Function4925b), Function4925b
dbw $22, $6def
dbw $47, $41ab
dbw $5c, $4687
@@ -6639,7 +20395,7 @@
dbw $40, $77eb
dbw $40, $783c
dbw $41, $60a2
- dbw $05, $4168
+ dbw BANK(Function14168), Function14168
dbw $40, $77c2
dbw $41, $630f
dbw $40, $7780
@@ -6650,19 +20406,20 @@
dbw $24, $4a54
dbw $24, $4a88
dbw $03, $4224
+; c224
INCBIN "baserom.gbc", $c224, $c29d - $c224
SpecialNameRival: ; 0xc29d
ld b, $2 ; rival
- ld de, WRivalName
+ ld de, RivalName
ld a, BANK(Function116b7)
ld hl, Function116b7
rst $8
; default to "SILVER"
- ld hl, WRivalName
+ ld hl, RivalName
ld de, DefaultRivalName
- call InitString
+ call InitName
ret
; 0xc2b2
@@ -6682,8 +20439,28 @@
ret
; c3ef
-INCBIN "baserom.gbc", $c3ef, $c419 - $c3ef
+INCBIN "baserom.gbc", $c3ef, $c403 - $c3ef
+
+Functionc403: ; c403
+ ld a, c
+ and a
+ jr nz, .asm_c410
+ ld a, d
+ ld [$dfcc], a
+ ld a, e
+ ld [$dfcd], a
+ ret
+
+.asm_c410
+ ld a, d
+ ld [$dc5a], a
+ ld a, e
+ ld [$dc5b], a
+ ret
+; c419
+
+
SpecialCheckPokerus: ; c419
; Check if a monster in your party has Pokerus
callba CheckPokerus
@@ -6700,7 +20477,7 @@
; ScriptVar is 1 if the conditions are met, otherwise 0.
; check background music
- ld a, [$c2c0]
+ ld a, [CurMusic]
cp $40 ; Poké Flute Channel
jr nz, .nope
@@ -6776,8 +20553,190 @@
ld [ScriptVar], a
jp CloseSRAM
-INCBIN "baserom.gbc", $c4c7, $c5d2 - $c4c7
+_PrintNum: ; c4c7
+ push bc
+ bit 5, b
+ jr z, .asm_c4d9
+ bit 7, b
+ jr nz, .asm_c4d4
+ bit 6, b
+ jr z, .asm_c4d9
+.asm_c4d4
+ ld a, $f0
+ ld [hli], a
+ res 5, b
+
+.asm_c4d9
+ xor a
+ ld [hProduct], a
+ ld [hMultiplicand], a
+ ld [$ffb5], a
+ ld a, b
+ and $f
+ cp $1
+ jr z, .asm_c501
+ cp $2
+ jr z, .asm_c4f8
+ ld a, [de]
+ ld [hMultiplicand], a
+ inc de
+ ld a, [de]
+ ld [$ffb5], a
+ inc de
+ ld a, [de]
+ ld [$ffb6], a
+ jr .asm_c504
+
+.asm_c4f8
+ ld a, [de]
+ ld [$ffb5], a
+ inc de
+ ld a, [de]
+ ld [$ffb6], a
+ jr .asm_c504
+
+.asm_c501
+ ld a, [de]
+ ld [$ffb6], a
+
+.asm_c504
+ push de
+ ld d, b
+ ld a, c
+ swap a
+ and $f
+ ld e, a
+ ld a, c
+ and $f
+ ld b, a
+ ld c, $0
+ cp $2
+ jr z, .asm_c57c
+ cp $3
+ jr z, .asm_c56c
+ cp $4
+ jr z, .asm_c55b
+ cp $5
+ jr z, .asm_c54a
+ cp $6
+ jr z, .asm_c538
+ ld a, $f
+ ld [hMultiplier], a
+ ld a, $42
+ ld [hMathBuffer], a
+ ld a, $40
+ ld [$ffb9], a
+ call $45cb
+ call PrintNumber_AdvancePointer
+
+.asm_c538
+ ld a, $1
+ ld [hMultiplier], a
+ ld a, $86
+ ld [hMathBuffer], a
+ ld a, $a0
+ ld [$ffb9], a
+ call $45cb
+ call PrintNumber_AdvancePointer
+
+.asm_c54a
+ xor a
+ ld [hMultiplier], a
+ ld a, $27
+ ld [hMathBuffer], a
+ ld a, $10
+ ld [$ffb9], a
+ call $45cb
+ call PrintNumber_AdvancePointer
+
+.asm_c55b
+ xor a
+ ld [hMultiplier], a
+ ld a, $3
+ ld [hMathBuffer], a
+ ld a, $e8
+ ld [$ffb9], a
+ call $45cb
+ call PrintNumber_AdvancePointer
+
+.asm_c56c
+ xor a
+ ld [hMultiplier], a
+ xor a
+ ld [hMathBuffer], a
+ ld a, $64
+ ld [$ffb9], a
+ call $45cb
+ call PrintNumber_AdvancePointer
+
+.asm_c57c
+ dec e
+ jr nz, .asm_c583
+ ld a, $f6
+ ld [hProduct], a
+
+.asm_c583
+ ld c, $0
+ ld a, [$ffb6]
+.asm_c587
+ cp $a
+ jr c, .asm_c590
+ sub $a
+ inc c
+ jr .asm_c587
+
+.asm_c590
+ ld b, a
+ ld a, [hProduct]
+ or c
+ jr nz, .asm_c59b
+ call PrintNumber_PrintLeadingZero
+ jr .asm_c5ad
+
+.asm_c59b
+ call Functionc5ba
+ push af
+ ld a, $f6
+ add c
+ ld [hl], a
+ pop af
+ ld [hProduct], a
+ inc e
+ dec e
+ jr nz, .asm_c5ad
+ inc hl
+ ld [hl], $f2
+
+.asm_c5ad
+ call PrintNumber_AdvancePointer
+ call Functionc5ba
+ ld a, $f6
+ add b
+ ld [hli], a
+ pop de
+ pop bc
+ ret
+; c5ba
+
+Functionc5ba: ; c5ba
+ push af
+ ld a, [hProduct]
+ and a
+ jr nz, .asm_c5c9
+ bit 5, d
+ jr z, .asm_c5c9
+ ld a, $f0
+ ld [hli], a
+ res 5, d
+
+.asm_c5c9
+ pop af
+ ret
+; c5cb
+
+INCBIN "baserom.gbc", $c5cb, $c5d2 - $c5cb
+
PrintNumber_PrintDigit: ; c5d2
INCBIN "baserom.gbc", $c5d2, $c644 - $c5d2
@@ -6803,13 +20762,38 @@
ret
; 0xc658
-INCBIN "baserom.gbc", $c658, $c706 - $c658
+INCBIN "baserom.gbc", $c658, $c6ea - $c658
+
+Functionc6ea: ; c6ea
+ xor a
+ ld hl, MagikarpLength
+ ld bc, $0007
+ call ByteFill
+ ret
+; c6f5
+
+Functionc6f5: ; c6f5
+ ld a, [MagikarpLength]
+ rst JumpTable
+ ld [MagikarpLength], a
+ bit 7, a
+ jr nz, .asm_c702
+ and a
+ ret
+
+.asm_c702
+ and $7f
+ scf
+ ret
+; c706
+
+
GetPartyNick: ; c706
; write CurPartyMon nickname to StringBuffer1-3
ld hl, PartyMon1Nickname
ld a, $02
- ld [$cf5f], a
+ ld [MonType], a
ld a, [CurPartyMon]
call GetNick
call CopyName1
@@ -6841,7 +20825,7 @@
call CheckFlag2
ret nc
ld hl, BadgeRequiredText
- call $1d67 ; push text to queue
+ call Function1d67 ; push text to queue
scf
ret
; c73d
@@ -6897,9 +20881,188 @@
ret
; c779
-INCBIN "baserom.gbc", $c779, $c986 - $c779
+Functionc779: ; c779
+ ld hl, $4780
+ call Function1d67
+ ret
+; c780
+INCBIN "baserom.gbc", $c780, $c785 - $c780
+Functionc785: ; c785
+ call Functionc6ea
+.asm_c788
+ ld hl, $4796
+ call Functionc6f5
+ jr nc, .asm_c788
+ and $7f
+ ld [$d0ec], a
+ ret
+; c796
+
+INCBIN "baserom.gbc", $c796, $c7c4 - $c796
+
+UnknownText_0xc7c4: ; 0xc7c4
+ text_jump UnknownText_0x1c05dd, BANK(UnknownText_0x1c05dd)
+ db $50
+; 0xc7c9
+
+INCBIN "baserom.gbc", $c7c9, $c7ce - $c7c9
+
+Functionc7ce: ; c7ce
+ call GetFacingTileCoord
+ ld c, a
+ push de
+ ld a, $5
+ ld hl, $49f5
+ rst FarCall
+ pop de
+ jr nc, .asm_c7fc
+ call Function2a66
+ ld c, [hl]
+ push hl
+ ld hl, $4862
+ call $4840
+ pop hl
+ jr nc, .asm_c7fc
+ ld a, l
+ ld [$d1ec], a
+ ld a, h
+ ld [$d1ed], a
+ ld a, b
+ ld [$d1ee], a
+ ld a, c
+ ld [$d1ef], a
+ xor a
+ ret
+
+.asm_c7fc
+ scf
+ ret
+; c7fe
+
+INCBIN "baserom.gbc", $c7fe, $c802 - $c7fe
+
+UnknownScript_0xc802: ; 0xc802
+ 3callasm BANK(GetPartyNick), GetPartyNick
+ 2writetext UnknownText_0xc7c4
+ reloadmappart
+ 3callasm BANK(Functionc810), Functionc810
+ loadmovesprites
+ end
+; 0xc810
+
+Functionc810: ; c810
+ ld hl, $d1ec
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d1ee]
+ ld [hl], a
+ xor a
+ ld [hBGMapMode], a
+ call Function2173
+ call Function1ad2
+ call DelayFrame
+ ld a, [$d1ef]
+ ld e, a
+ callba Function8c940
+ call Function2879
+ call Function2914
+ call Function1ad2
+ call DelayFrame
+ call Functione51
+ ret
+; c840
+
+Functionc840: ; c840
+ push bc
+ ld a, [$d199]
+ ld de, 3
+ call IsInArray
+ pop bc
+ jr nc, .asm_c860
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, 3
+ ld a, c
+ call IsInArray
+ jr nc, .asm_c860
+ inc hl
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+ scf
+ ret
+
+.asm_c860
+ xor a
+ ret
+; c862
+
+INCBIN "baserom.gbc", $c862, $c8ac - $c862
+
+Functionc8ac: ; c8ac
+ call Functionc8b5
+ and $7f
+ ld [$d0ec], a
+ ret
+; c8b5
+
+Functionc8b5: ; c8b5
+ ld de, $001b
+ ld a, $3
+ ld hl, $4731
+ rst FarCall
+ jr c, .asm_c8dd
+ push hl
+ ld a, $22
+ ld hl, $6e30
+ rst FarCall
+ pop hl
+ jr c, .asm_c8d1
+ ld a, [$d847]
+ cp $ff
+ jr nz, .asm_c8d7
+
+.asm_c8d1
+ call Functionc8e0
+ ld a, $81
+ ret
+
+.asm_c8d7
+ call Functionc779
+ ld a, $80
+ ret
+
+.asm_c8dd
+ ld a, $80
+ ret
+; c8e0
+
+Functionc8e0: ; c8e0
+ ld hl, $48e6
+ jp Function31cd
+; c8e6
+
+INCBIN "baserom.gbc", $c8e6, $c909 - $c8e6
+
+Functionc909: ; c909
+ call Functionc6ea
+.asm_c90c
+ ld hl, $491a
+ call Functionc6f5
+ jr nc, .asm_c90c
+ and $7f
+ ld [$d0ec], a
+ ret
+; c91a
+
+INCBIN "baserom.gbc", $c91a, $c986 - $c91a
+
+
UsedSurfScript: ; c986
2writetext UsedSurfText ; "used SURF!"
closetext
@@ -6991,7 +21154,7 @@
; c9e7
-CheckSurfOW: ; c9e7
+TrySurfOW: ; c9e7
; Checking a tile in the overworld.
; Return carry if surfing is allowed.
@@ -7004,7 +21167,7 @@
; Must be facing water.
ld a, [EngineBuffer1]
- call GetTileType
+ call GetTileCollision
cp 1 ; surfable
jr nz, .quit
@@ -7056,9 +21219,1150 @@
; ca3b
-INCBIN "baserom.gbc", $ca3b, $d407 - $ca3b
+Functionca3b: ; ca3b
+ call Functionc6ea
+.asm_ca3e
+ ld hl, .data_ca4c
+ call Functionc6f5
+ jr nc, .asm_ca3e
+ and $7f
+ ld [$d0ec], a
+ ret
+; ca4c
+.data_ca4c
+ dw Functionca52
+ dw Functionca94
+ dw Functionca9d
+; ca52
+
+Functionca52: ; ca52
+; Fly
+ ld de, $0020 ; storm badge
+ call CheckBadge
+ jr c, .asm_ca85
+ call GetMapPermission
+ call CheckOutdoorMap
+ jr z, .asm_ca64
+ jr .asm_ca88
+
+.asm_ca64
+ xor a
+ ld [$ffde], a
+ call Function1d6e
+ call ClearSprites
+ callba Function91af3
+ ld a, e
+ cp $ff
+ jr z, .asm_ca8b
+ cp $1c
+ jr nc, .asm_ca8b
+ ld [$d001], a
+ call Function1c17
+ ld a, $1
+ ret
+
+.asm_ca85
+ ld a, $82
+ ret
+
+.asm_ca88
+ ld a, $2
+ ret
+
+.asm_ca8b
+ call Function1c17
+ call WaitBGMap
+ ld a, $80
+ ret
+; ca94
+
+Functionca94: ; ca94
+ ld hl, Datacaa3
+ call Function31cd
+ ld a, $81
+ ret
+; ca9d
+
+Functionca9d: ; ca9d
+ call Functionc779
+ ld a, $82
+ ret
+; caa3
+
+Datacaa3: ; caa3
+INCBIN "baserom.gbc", $caa3, $cade - $caa3
+
+Functioncade: ; cade
+ call Functioncae7
+ and $7f
+ ld [$d0ec], a
+ ret
+; cae7
+
+Functioncae7: ; cae7
+ ld de, $0022
+ ld a, $3
+ ld hl, $4731
+ rst FarCall
+ ld a, $80
+ ret c
+ call Functioncb07
+ jr c, .asm_cb01
+ ld hl, $4b1c
+ call Function31cd
+ ld a, $81
+ ret
+
+.asm_cb01
+ call Functionc779
+ ld a, $80
+ ret
+; cb07
+
+Functioncb07: ; cb07
+ ld a, [PlayerDirection]
+ and $c
+ cp $4
+ jr nz, .asm_cb1a
+ ld a, [TileUp]
+ call CheckWaterfallTile
+ jr nz, .asm_cb1a
+ xor a
+ ret
+
+.asm_cb1a
+ scf
+ ret
+; cb1c
+
+INCBIN "baserom.gbc", $cb1c, $cb20 - $cb1c
+
+UnknownScript_0xcb20: ; 0xcb20
+ 3callasm BANK(GetPartyNick), GetPartyNick
+ 2writetext UnknownText_0xcb51
+ closetext
+ loadmovesprites
+ playsound SFX_BUBBLEBEAM
+.loop
+ applymovement $0, WaterfallStep
+ 3callasm BANK(Functioncb38), Functioncb38
+ iffalse .loop
+ end
+; 0xcb38
+
+Functioncb38: ; cb38
+ xor a
+ ld [ScriptVar], a
+ ld a, [StandingTile]
+ call CheckWaterfallTile
+ ret z
+ ld a, $41
+ ld hl, $60c1
+ rst FarCall
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; cb4f
+
+WaterfallStep: ; cb4f
+ turn_waterfall_up
+ step_end
+; cb51
+
+UnknownText_0xcb51: ; 0xcb51
+ text_jump UnknownText_0x1c068e, BANK(UnknownText_0x1c068e)
+ db "@"
+; 0xcb56
+
+TryWaterfallOW: ; cb56
+ ld d, WATERFALL
+ call CheckPartyMove
+ jr c, .asm_cb74
+ ld de, $0022
+ call CheckFlag2
+ jr c, .asm_cb74
+ call Functioncb07
+ jr c, .asm_cb74
+ ld a, BANK(UnknownScript_0xcb86)
+ ld hl, UnknownScript_0xcb86
+ call PushScriptPointer
+ scf
+ ret
+
+.asm_cb74
+ ld a, BANK(UnknownScript_0xcb7e)
+ ld hl, UnknownScript_0xcb7e
+ call PushScriptPointer
+ scf
+ ret
+; cb7e
+
+UnknownScript_0xcb7e: ; 0xcb7e
+ jumptext UnknownText_0xcb81
+; 0xcb81
+
+UnknownText_0xcb81: ; 0xcb81
+ text_jump UnknownText_0x1c06a3, BANK(UnknownText_0x1c06a3)
+ db "@"
+; 0xcb86
+
+UnknownScript_0xcb86: ; 0xcb86
+ loadfont
+ 2writetext UnknownText_0xcb90
+ yesorno
+ iftrue UnknownScript_0xcb20
+ loadmovesprites
+ end
+; 0xcb90
+
+UnknownText_0xcb90: ; 0xcb90
+ text_jump UnknownText_0x1c06bf, BANK(UnknownText_0x1c06bf)
+ db "@"
+; 0xcb95
+
+
+Functioncb95: ; cb95
+ call Functionc6ea
+ ld a, $1
+ jr .asm_cba1
+
+ call Functionc6ea
+ ld a, $2
+
+.asm_cba1
+ ld [Buffer2], a
+.asm_cba4
+ ld hl, $4bb2
+ call Functionc6f5
+ jr nc, .asm_cba4
+ and $7f
+ ld [$d0ec], a
+ ret
+; cbb2
+
+INCBIN "baserom.gbc", $cbb2, $cc61 - $cbb2
+
+Functioncc61: ; cc61
+ call Functionc6ea
+.asm_cc64
+ ld hl, $4c72
+ call Functionc6f5
+ jr nc, .asm_cc64
+ and $7f
+ ld [$d0ec], a
+ ret
+; cc72
+
+INCBIN "baserom.gbc", $cc72, $cce5 - $cc72
+
+Functioncce5: ; cce5
+ call Functionccee
+ and $7f
+ ld [$d0ec], a
+ ret
+; ccee
+
+Functionccee: ; ccee
+ ld de, $001d
+ call CheckBadge
+ jr c, Functioncd06
+ jr Functioncd09
+; ccf8
+
+Functionccf8: ; ccf8
+ ld hl, UnknownText_0xcd01
+ call Function1d67
+ ld a, $80
+ ret
+; cd01
+
+UnknownText_0xcd01: ; 0xcd01
+ text_jump UnknownText_0x1c0751, BANK(UnknownText_0x1c0751)
+ db "@"
+; 0xcd06
+
+Functioncd06: ; cd06
+ ld a, $80
+ ret
+; cd09
+
+Functioncd09: ; cd09
+ ld hl, $4d29
+ call Function31cd
+ ld a, $81
+ ret
+; cd12
+
+INCBIN "baserom.gbc", $cd12, $cd1d - $cd12
+
+Functioncd1d: ; cd1d
+ ld hl, PartySpecies
+ add hl, de
+ ld a, [hl]
+ ld [$d1ef], a
+ call GetPartyNick
+ ret
+; cd29
+
+INCBIN "baserom.gbc", $cd29, $cd9d - $cd29
+
+Functioncd9d: ; cd9d
+ call Functionc6ea
+.asm_cda0
+ ld hl, $4dae
+ call Functionc6f5
+ jr nc, .asm_cda0
+ and $7f
+ ld [$d0ec], a
+ ret
+; cdae
+
+INCBIN "baserom.gbc", $cdae, $cdd9 - $cdae
+
+UnknownText_0xcdd9: ; 0xcdd9
+ text_jump UnknownText_0x1c0816, BANK(UnknownText_0x1c0816)
+ db "@"
+; 0xcdde
+
+Functioncdde: ; cdde
+ call GetFacingTileCoord
+ ld c, a
+ push de
+ call CheckWhirlpoolTile
+ pop de
+ jr c, .asm_ce09
+ call Function2a66
+ ld c, [hl]
+ push hl
+ ld hl, $48a4
+ call $4840
+ pop hl
+ jr nc, .asm_ce09
+ ld a, l
+ ld [$d1ec], a
+ ld a, h
+ ld [$d1ed], a
+ ld a, b
+ ld [$d1ee], a
+ ld a, c
+ ld [$d1ef], a
+ xor a
+ ret
+
+.asm_ce09
+ scf
+ ret
+; ce0b
+
+INCBIN "baserom.gbc", $ce0b, $ce0f - $ce0b
+
+UnknownScript_0xce0f: ; 0xce0f
+ 3callasm $03, $4706
+ 2writetext UnknownText_0xcdd9
+ reloadmappart
+ 3callasm $03, $4e1d
+ loadmovesprites
+ end
+; 0xce1d
+
+INCBIN "baserom.gbc", $ce1d, $ce3e - $ce1d
+
+TryWhirlpoolOW: ; ce3e
+ ld d, WHIRLPOOL
+ call CheckPartyMove
+ jr c, .asm_ce5c
+ ld de, $0021
+ call CheckFlag2
+ jr c, .asm_ce5c
+ call Functioncdde
+ jr c, .asm_ce5c
+ ld a, BANK(UnknownScript_0xce6e)
+ ld hl, UnknownScript_0xce6e
+ call PushScriptPointer
+ scf
+ ret
+
+.asm_ce5c
+ ld a, BANK(UnknownScript_0xce66)
+ ld hl, UnknownScript_0xce66
+ call PushScriptPointer
+ scf
+ ret
+; ce66
+
+UnknownScript_0xce66: ; 0xce66
+ jumptext UnknownText_0xce69
+; 0xce69
+
+UnknownText_0xce69: ; 0xce69
+ text_jump UnknownText_0x1c082b, BANK(UnknownText_0x1c082b)
+ db "@"
+; 0xce6e
+
+UnknownScript_0xce6e: ; 0xce6e
+ loadfont
+ 2writetext UnknownText_0xce78
+ yesorno
+ iftrue UnknownScript_0xce0f
+ loadmovesprites
+ end
+; 0xce78
+
+UnknownText_0xce78: ; 0xce78
+ text_jump UnknownText_0x1c0864, BANK(UnknownText_0x1c0864)
+ db "@"
+; 0xce7d
+
+Functionce7d: ; ce7d
+ call Functionce86
+ and $7f
+ ld [$d0ec], a
+ ret
+; ce86
+
+Functionce86: ; ce86
+ call GetFacingTileCoord
+ call CheckHeadbuttTreeTile
+ jr nz, .asm_ce97
+ ld hl, $4ea7
+ call Function31cd
+ ld a, $81
+ ret
+
+.asm_ce97
+ call Functionc779
+ ld a, $80
+ ret
+; ce9d
+
+INCBIN "baserom.gbc", $ce9d, $cec9 - $ce9d
+
+TryHeadbuttOW: ; cec9
+ ld d, $1d
+ call CheckPartyMove
+ jr c, .asm_ceda
+ ld a, $3
+ ld hl, $4edc
+ call PushScriptPointer
+ scf
+ ret
+
+.asm_ceda
+ xor a
+ ret
+; cedc
+
+INCBIN "baserom.gbc", $cedc, $ceeb - $cedc
+
+Functionceeb: ; ceeb
+ call Functioncef4
+ and $7f
+ ld [$d0ec], a
+ ret
+; cef4
+
+Functioncef4: ; cef4
+ call Functioncf0d
+ jr c, .asm_cf07
+ ld a, d
+ cp $18
+ jr nz, .asm_cf07
+ ld hl, $4f2e
+ call Function31cd
+ ld a, $81
+ ret
+
+.asm_cf07
+ call Functionc779
+ ld a, $80
+ ret
+; cf0d
+
+Functioncf0d: ; cf0d
+ callba CheckFacingObject
+ jr nc, .asm_cf2c
+ ld a, [hConnectedMapWidth]
+ call Function1ae5
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ ld [$ffe0], a
+ call GetMapObject
+ ld hl, $0004
+ add hl, bc
+ ld a, [hl]
+ ld d, a
+ and a
+ ret
+
+.asm_cf2c
+ scf
+ ret
+; cf2e
+
+INCBIN "baserom.gbc", $cf2e, $cf8e - $cf2e
+
+
+Functioncf8e: ; cf8e
+ ld a, e
+ push af
+ call Functionc6ea
+ pop af
+ ld [Buffer2], a
+.asm_cf97
+ ld hl, $4fa5
+ call Functionc6f5
+ jr nc, .asm_cf97
+ and $7f
+ ld [$d0ec], a
+ ret
+; cfa5
+
+INCBIN "baserom.gbc", $cfa5, $d0b3 - $cfa5
+
+
+Functiond0b3: ; d0b3
+ call Functiond0bc
+ and $7f
+ ld [$d0ec], a
+ ret
+; d0bc
+
+Functiond0bc: ; d0bc
+ call Functiond121
+ jr c, .asm_d110
+ ld a, [PlayerState]
+ cp $0
+ jr z, .asm_d0ce
+ cp $1
+ jr z, .asm_d0f7
+ jr .asm_d110
+
+.asm_d0ce
+ ld hl, $513e
+ ld de, $514e
+ call Functiond119
+ call Function31cd
+ xor a
+ ld [MusicFade], a
+ ld de, $0000
+ call StartMusic
+ call DelayFrame
+ call MaxVolume
+ ld de, $0013
+ ld a, e
+ ld [CurMusic], a
+ call StartMusic
+ ld a, $1
+ ret
+
+.asm_d0f7
+ ld hl, BikeFlags
+ bit 1, [hl]
+ jr nz, .asm_d10b
+ ld hl, $5158
+ ld de, $516b
+ call Functiond119
+ ld a, $3
+ jr .asm_d113
+
+.asm_d10b
+ ld hl, $5171
+ jr .asm_d113
+
+.asm_d110
+ ld a, $0
+ ret
+
+.asm_d113
+ call Function31cd
+ ld a, $1
+ ret
+; d119
+
+Functiond119: ; d119
+ ld a, [$d0ef]
+ and a
+ ret z
+ ld h, d
+ ld l, e
+ ret
+; d121
+
+Functiond121: ; d121
+ call GetMapPermission
+ call CheckOutdoorMap
+ jr z, .asm_d133
+ cp $4
+ jr z, .asm_d133
+ cp $6
+ jr z, .asm_d133
+ jr .asm_d13c
+
+.asm_d133
+ call Function184a
+ and $f
+ jr nz, .asm_d13c
+ xor a
+ ret
+
+.asm_d13c
+ scf
+ ret
+; d13e
+
+INCBIN "baserom.gbc", $d13e, $d186 - $d13e
+
+TryCutOW: ; d186
+ ld d, CUT
+ call CheckPartyMove
+ jr c, .asm_d19f
+ ld de, $001c
+ call CheckFlag2
+ jr c, .asm_d19f
+ ld a, BANK(UnknownScript_0xd1a9)
+ ld hl, UnknownScript_0xd1a9
+ call PushScriptPointer
+ scf
+ ret
+
+.asm_d19f
+ ld a, BANK(UnknownScript_0xd1cd)
+ ld hl, UnknownScript_0xd1cd
+ call PushScriptPointer
+ scf
+ ret
+; d1a9
+
+UnknownScript_0xd1a9: ; 0xd1a9
+ loadfont
+ 2writetext UnknownText_0xd1c8
+ yesorno
+ iffalse .script_d1b8
+ 3callasm BANK(Functiond1ba), Functiond1ba
+ iftrue UnknownScript_0xc802
+.script_d1b8
+ loadmovesprites
+ end
+; 0xd1ba
+
+Functiond1ba: ; d1ba
+ xor a
+ ld [ScriptVar], a
+ call Functionc7ce
+ ret c
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; d1c8
+
+UnknownText_0xd1c8: ; 0xd1c8
+ text_jump UnknownText_0x1c09dd, BANK(UnknownText_0x1c09dd)
+ db "@"
+; 0xd1cd
+
+UnknownScript_0xd1cd: ; 0xd1cd
+ jumptext UnknownText_0xd1d0
+; 0xd1d0
+
+UnknownText_0xd1d0: ; 0xd1d0
+ text_jump UnknownText_0x1c0a05, BANK(UnknownText_0x1c0a05)
+ db "@"
+; 0xd1d5
+
+
+Functiond1d5: ; d1d5
+ call Functiond27b
+ jp nz, Functiond29c
+ push hl
+ call CheckItemPocket
+ pop de
+ ld a, [$d142]
+ dec a
+ ld hl, Tabled1e9
+ rst JumpTable
+ ret
+; d1e9
+
+Tabled1e9: ; d1e9
+ dw Functiond1f1
+ dw Functiond1f6
+ dw Functiond1fb
+ dw Functiond201
+; d1f1
+
+Functiond1f1: ; d1f1
+ ld h, d
+ ld l, e
+ jp Functiond29c
+; d1f6
+
+Functiond1f6: ; d1f6
+ ld h, d
+ ld l, e
+ jp Functiond35a
+; d1fb
+
+Functiond1fb: ; d1fb
+ ld hl, NumBalls
+ jp Functiond29c
+; d201
+
+Functiond201: ; d201
+ ld h, d
+ ld l, e
+ ld a, [CurItem]
+ ld c, a
+ call GetTMHMNumber
+ jp Functiond3c4
+; d20d
+
+
+Functiond20d: ; d20d
+ call Functiond27b
+ jr nz, .asm_d241
+ push hl
+ call CheckItemPocket
+ pop de
+ ld a, [$d142]
+ dec a
+ ld hl, .data_d220
+ rst JumpTable
+ ret
+
+.data_d220
+ dw .Item
+ dw .KeyItem
+ dw .Ball
+ dw .TMHM
+; d228
+
+.Ball ; d228
+ ld hl, NumBalls
+ jp Functiond2ff
+; d22e
+
+.TMHM ; d22e
+ ld h, d
+ ld l, e
+ ld a, [CurItem]
+ ld c, a
+ call GetTMHMNumber
+ jp Functiond3d8
+; d23a
+
+.KeyItem ; d23a
+ ld h, d
+ ld l, e
+ jp Functiond374
+; d23f
+
+.Item ; d23f
+ ld h, d
+ ld l, e
+; d241
+
+.asm_d241
+ jp Functiond2ff
+; d244
+
+Functiond244: ; d244
+ call Functiond27b
+ jr nz, .asm_d278
+ push hl
+ call CheckItemPocket
+ pop de
+ ld a, [$d142]
+ dec a
+ ld hl, .data_d257
+ rst JumpTable
+ ret
+
+.data_d257
+ dw .Item
+ dw .KeyItem
+ dw .Ball
+ dw .TMHM
+; d25f
+
+.Ball ; d25f
+ ld hl, NumBalls
+ jp Functiond349
+; d265
+
+.TMHM ; d265
+ ld h, d
+ ld l, e
+ ld a, [CurItem]
+ ld c, a
+ call GetTMHMNumber
+ jp Functiond3fb
+; d271
+
+.KeyItem ; d271
+ ld h, d
+ ld l, e
+ jp Functiond3b1
+; d276
+
+.Item ; d276
+ ld h, d
+ ld l, e
+; d278
+
+.asm_d278
+ jp Functiond349
+; d27b
+
+Functiond27b: ; d27b
+ ld a, l
+ cp TMsHMsEnd % $100
+ ret nz
+ ld a, h
+ cp TMsHMsEnd / $100
+ ret
+; d283
+
+Functiond283: ; d283
+ ld c, $14
+ ld a, e
+ cp TMsHMsEnd % $100
+ jr nz, .asm_d28e
+ ld a, d
+ cp TMsHMsEnd / $100
+ ret z
+
+.asm_d28e
+ ld c, $32
+ ld a, e
+ cp BallsEnd % $100
+ jr nz, .asm_d299
+ ld a, d
+ cp BallsEnd / $100
+ ret z
+
+.asm_d299
+ ld c, $c
+ ret
+; d29c
+
+Functiond29c: ; d29c
+ ld d, h
+ ld e, l
+ inc hl
+ ld a, [CurItem]
+ ld c, a
+ ld b, 0
+.asm_d2a5
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_d2bd
+ cp c
+ jr nz, .asm_d2ba
+ ld a, $63
+ sub [hl]
+ add b
+ ld b, a
+ ld a, [$d10c]
+ cp b
+ jr z, .asm_d2c6
+ jr c, .asm_d2c6
+
+.asm_d2ba
+ inc hl
+ jr .asm_d2a5
+
+.asm_d2bd
+ call Functiond283
+ ld a, [de]
+ cp c
+ jr c, .asm_d2c6
+ and a
+ ret
+
+.asm_d2c6
+ ld h, d
+ ld l, e
+ ld a, [CurItem]
+ ld c, a
+ ld a, [$d10c]
+ ld [$d10d], a
+.asm_d2d2
+ inc hl
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_d2ef
+ cp c
+ jr nz, .asm_d2d2
+ ld a, [$d10d]
+ add [hl]
+ cp $64
+ jr nc, .asm_d2e6
+ ld [hl], a
+ jr .asm_d2fd
+
+.asm_d2e6
+ ld [hl], $63
+ sub $63
+ ld [$d10d], a
+ jr .asm_d2d2
+
+.asm_d2ef
+ dec hl
+ ld a, [CurItem]
+ ld [hli], a
+ ld a, [$d10d]
+ ld [hli], a
+ ld [hl], $ff
+ ld h, d
+ ld l, e
+ inc [hl]
+
+.asm_d2fd
+ scf
+ ret
+; d2ff
+
+Functiond2ff: ; d2ff
+ ld d, h
+ ld e, l
+ ld a, [hli]
+ ld c, a
+ ld a, [$d107]
+ cp c
+ jr nc, .asm_d318
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, [CurItem]
+ cp [hl]
+ inc hl
+ jr z, .asm_d327
+ ld h, d
+ ld l, e
+ inc hl
+
+.asm_d318
+ ld a, [CurItem]
+ ld b, a
+.asm_d31c
+ ld a, [hli]
+ cp b
+ jr z, .asm_d327
+ cp $ff
+ jr z, .asm_d347
+ inc hl
+ jr .asm_d31c
+
+.asm_d327
+ ld a, [$d10c]
+ ld b, a
+ ld a, [hl]
+ sub b
+ jr c, .asm_d347
+ ld [hl], a
+ ld [$d10d], a
+ and a
+ jr nz, .asm_d345
+ dec hl
+ ld b, h
+ ld c, l
+ inc hl
+ inc hl
+.asm_d33b
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ cp $ff
+ jr nz, .asm_d33b
+ ld h, d
+ ld l, e
+ dec [hl]
+
+.asm_d345
+ scf
+ ret
+
+.asm_d347
+ and a
+ ret
+; d349
+
+Functiond349: ; d349
+ ld a, [CurItem]
+ ld c, a
+.asm_d34d
+ inc hl
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_d358
+ cp c
+ jr nz, .asm_d34d
+ scf
+ ret
+
+.asm_d358
+ and a
+ ret
+; d35a
+
+Functiond35a: ; d35a
+ ld hl, NumKeyItems
+ ld a, [hli]
+ cp $19
+ jr nc, .asm_d372
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [CurItem]
+ ld [hli], a
+ ld [hl], $ff
+ ld hl, NumKeyItems
+ inc [hl]
+ scf
+ ret
+
+.asm_d372
+ and a
+ ret
+; d374
+
+Functiond374: ; d374
+ ld a, [$d107]
+ ld e, a
+ ld d, $0
+ ld hl, NumKeyItems
+ ld a, [hl]
+ cp e
+ jr nc, .asm_d387
+ call Functiond396
+ ret nc
+ jr .asm_d38a
+
+.asm_d387
+ dec [hl]
+ inc hl
+ add hl, de
+
+.asm_d38a
+ ld d, h
+ ld e, l
+ inc hl
+.asm_d38d
+ ld a, [hli]
+ ld [de], a
+ inc de
+ cp $ff
+ jr nz, .asm_d38d
+ scf
+ ret
+; d396
+
+Functiond396: ; d396
+ ld hl, NumKeyItems
+ ld a, [CurItem]
+ ld c, a
+.asm_d39d
+ inc hl
+ ld a, [hl]
+ cp c
+ jr z, .asm_d3a8
+ cp $ff
+ jr nz, .asm_d39d
+ xor a
+ ret
+
+.asm_d3a8
+ ld a, [NumKeyItems]
+ dec a
+ ld [NumKeyItems], a
+ scf
+ ret
+; d3b1
+
+Functiond3b1: ; d3b1
+ ld a, [CurItem]
+ ld c, a
+ ld hl, KeyItems
+.asm_d3b8
+ ld a, [hli]
+ cp c
+ jr z, .asm_d3c2
+ cp $ff
+ jr nz, .asm_d3b8
+ and a
+ ret
+
+.asm_d3c2
+ scf
+ ret
+; d3c4
+
+
+
+Functiond3c4: ; d3c4
+ dec c
+ ld b, $0
+ ld hl, TMsHMs
+ add hl, bc
+ ld a, [$d10c]
+ add [hl]
+ cp $64
+ jr nc, .asm_d3d6
+ ld [hl], a
+ scf
+ ret
+
+.asm_d3d6
+ and a
+ ret
+; d3d8
+
+Functiond3d8: ; d3d8
+ dec c
+ ld b, $0
+ ld hl, TMsHMs
+ add hl, bc
+ ld a, [$d10c]
+ ld b, a
+ ld a, [hl]
+ sub b
+ jr c, .asm_d3f9
+ ld [hl], a
+ ld [$d10d], a
+ jr nz, .asm_d3f7
+ ld a, [$d0e2]
+ and a
+ jr z, .asm_d3f7
+ dec a
+ ld [$d0e2], a
+
+.asm_d3f7
+ scf
+ ret
+
+.asm_d3f9
+ and a
+ ret
+; d3fb
+
+Functiond3fb: ; d3fb
+ dec c
+ ld b, $0
+ ld hl, TMsHMs
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret z
+ scf
+ ret
+; d407
+
+
+
GetTMHMNumber: ; d407
; Return the number of a TM/HM by item id c.
@@ -7186,8 +22490,1336 @@
; d486
-INCBIN "baserom.gbc", $d486, $e58b - $d486
+GetItemPrice: ; d486
+; Return the price of CurItem in de.
+ push hl
+ push bc
+ ld a, $0
+ call GetItemAttr
+ ld e, a
+ ld a, $1
+ call GetItemAttr
+ ld d, a
+ pop bc
+ pop hl
+ ret
+; d497
+INCBIN "baserom.gbc", $d497, $d88c - $d497
+
+
+Functiond88c: ; d88c
+ ld de, PartyCount
+ ld a, [MonType]
+ and $f
+ jr z, .asm_d899
+ ld de, OTPartyCount
+
+.asm_d899
+ ld a, [de]
+ inc a
+ cp $7
+ ret nc
+ ld [de], a
+ ld a, [de]
+ ld [$ffae], a
+ add e
+ ld e, a
+ jr nc, .asm_d8a7
+ inc d
+
+.asm_d8a7
+ ld a, [CurPartySpecies]
+ ld [de], a
+ inc de
+ ld a, $ff
+ ld [de], a
+ ld hl, PartyMon1OT
+ ld a, [MonType]
+ and $f
+ jr z, .asm_d8bc
+ ld hl, OTPartyMon1OT
+
+.asm_d8bc
+ ld a, [$ffae]
+ dec a
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, PlayerName
+ ld bc, $000b
+ call CopyBytes
+ ld a, [MonType]
+ and a
+ jr nz, .asm_d8f0
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, PartyMon1Nickname
+ ld a, [$ffae]
+ dec a
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, StringBuffer1
+ ld bc, $000b
+ call CopyBytes
+
+.asm_d8f0
+ ld hl, PartyMon1Species
+ ld a, [MonType]
+ and $f
+ jr z, .asm_d8fd
+ ld hl, OTPartyMon1Species
+
+.asm_d8fd
+ ld a, [$ffae]
+ dec a
+ ld bc, $0030
+ call AddNTimes
+ ld e, l
+ ld d, h
+ push hl
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseDexNo]
+ ld [de], a
+ inc de
+ ld a, [IsInBattle]
+ and a
+ ld a, $0
+ jr z, .asm_d922
+ ld a, [EnemyMonItem]
+
+.asm_d922
+ ld [de], a
+ inc de
+ push de
+ ld h, d
+ ld l, e
+ ld a, [IsInBattle]
+ and a
+ jr z, .asm_d943
+ ld a, [MonType]
+ and a
+ jr nz, .asm_d943
+ ld de, EnemyMonMove1
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ jr .asm_d950
+
+.asm_d943
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld [MagikarpLength], a
+ ld a, $1b
+ call Predef
+
+.asm_d950
+ pop de
+ inc de
+ inc de
+ inc de
+ inc de
+ ld a, [PlayerID]
+ ld [de], a
+ inc de
+ ld a, [$d47c]
+ ld [de], a
+ inc de
+ push de
+ ld a, [CurPartyLevel]
+ ld d, a
+ ld hl, $4e47
+ ld a, $14
+ rst FarCall
+ pop de
+ ld a, [hMultiplicand]
+ ld [de], a
+ inc de
+ ld a, [$ffb5]
+ ld [de], a
+ inc de
+ ld a, [$ffb6]
+ ld [de], a
+ inc de
+ xor a
+ ld b, $a
+.asm_d97a
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_d97a
+ pop hl
+ push hl
+ ld a, [MonType]
+ and $f
+ jr z, .asm_d992
+ push hl
+ callba GetTrainerDVs
+ pop hl
+ jr .asm_d9b5
+
+.asm_d992
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ dec a
+ push de
+ call CheckSeenMon
+ ld a, [$d265]
+ dec a
+ call SetSeenAndCaughtMon
+ pop de
+ pop hl
+ push hl
+ ld a, [IsInBattle]
+ and a
+ jr nz, .asm_d9f3
+ call RNG
+ ld b, a
+ call RNG
+ ld c, a
+
+.asm_d9b5
+ ld a, b
+ ld [de], a
+ inc de
+ ld a, c
+ ld [de], a
+ inc de
+ push hl
+ push de
+ inc hl
+ inc hl
+ call FillPP
+ pop de
+ pop hl
+ inc de
+ inc de
+ inc de
+ inc de
+ ld a, $46
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld a, [CurPartyLevel]
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld bc, $000a
+ add hl, bc
+ ld a, $1
+ ld c, a
+ ld b, $0
+ call Functione17b
+ ld a, [$ffb5]
+ ld [de], a
+ inc de
+ ld a, [$ffb6]
+ ld [de], a
+ inc de
+ jr .asm_da29
+
+.asm_d9f3
+ ld a, [EnemyMonAtkDefDV]
+ ld [de], a
+ inc de
+ ld a, [EnemyMonSpdSpclDV]
+ ld [de], a
+ inc de
+ push hl
+ ld hl, EnemyMonPPMove1
+ ld b, $4
+.asm_da03
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_da03
+ pop hl
+ ld a, $46
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld a, [CurPartyLevel]
+ ld [de], a
+ inc de
+ ld hl, EnemyMonStatus
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+
+.asm_da29
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .asm_da3b
+ ld hl, EnemyMonMaxHPHi
+ ld bc, $000c
+ call CopyBytes
+ pop hl
+ jr .asm_da45
+
+.asm_da3b
+ pop hl
+ ld bc, $000a
+ add hl, bc
+ ld b, $0
+ call Functione167
+
+.asm_da45
+ ld a, [MonType]
+ and $f
+ jr nz, .asm_da6b
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr nz, .asm_da6b
+ ld hl, PartyMon1DVs
+ ld a, [PartyCount]
+ dec a
+ ld bc, $0030
+ call AddNTimes
+ ld a, $2d
+ call Predef
+ ld hl, $7a18
+ ld a, $3e
+ rst FarCall
+
+.asm_da6b
+ scf
+ ret
+; da6d
+
+FillPP: ; da6d
+ push bc
+ ld b, $4
+.asm_da70
+ ld a, [hli]
+ and a
+ jr z, .asm_da8f
+ dec a
+ push hl
+ push de
+ push bc
+ ld hl, $5afb
+ ld bc, $0007
+ call AddNTimes
+ ld de, StringBuffer1
+ ld a, $10
+ call FarCopyBytes
+ pop bc
+ pop de
+ pop hl
+ ld a, [$d078]
+
+.asm_da8f
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_da70
+ pop bc
+ ret
+; da96
+
+INCBIN "baserom.gbc", $da96, $dcb6 - $da96
+
+
+Functiondcb6: ; dcb6
+ ld a, b
+ ld hl, $ad26
+ ld bc, $0020
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ld hl, $0017
+ add hl, bc
+ push hl
+ push bc
+ ld de, TempMonPP
+ ld bc, $0004
+ call CopyBytes
+ pop bc
+ ld hl, $0002
+ add hl, bc
+ push hl
+ ld de, TempMonMove1
+ ld bc, $0004
+ call CopyBytes
+ pop hl
+ pop de
+ ld a, [$cfa9]
+ push af
+ ld a, [MonType]
+ push af
+ ld b, $0
+.asm_dcec
+ ld a, [hli]
+ and a
+ jr z, .asm_dd18
+ ld [TempMonMove1], a
+ ld a, $2
+ ld [MonType], a
+ ld a, b
+ ld [$cfa9], a
+ push bc
+ push hl
+ push de
+ ld a, $3
+ ld hl, $78ec
+ rst FarCall
+ pop de
+ pop hl
+ ld a, [$d265]
+ ld b, a
+ ld a, [de]
+ and $c0
+ add b
+ ld [de], a
+ pop bc
+ inc de
+ inc b
+ ld a, b
+ cp $4
+ jr c, .asm_dcec
+
+.asm_dd18
+ pop af
+ ld [MonType], a
+ pop af
+ ld [$cfa9], a
+ ret
+; dd21
+
+INCBIN "baserom.gbc", $dd21, $de6e - $dd21
+
+
+Functionde6e: ; de6e
+ ld a, $1
+ call GetSRAMBank
+ ld de, $ad10
+ ld a, [de]
+ cp $14
+ jp nc, Functiondf42
+ inc a
+ ld [de], a
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ ld c, a
+.asm_de85
+ inc de
+ ld a, [de]
+ ld b, a
+ ld a, c
+ ld c, b
+ ld [de], a
+ inc a
+ jr nz, .asm_de85
+ call GetBaseData
+ call Functiondf47
+ ld hl, PlayerName
+ ld de, $afa6
+ ld bc, $000b
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ call GetPokemonName
+ ld de, $b082
+ ld hl, StringBuffer1
+ ld bc, $000b
+ call CopyBytes
+ ld hl, EnemyMonSpecies
+ ld de, $ad26
+ ld bc, $0006
+ call CopyBytes
+ ld hl, PlayerID
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ push de
+ ld a, [CurPartyLevel]
+ ld d, a
+ ld hl, $4e47
+ ld a, $14
+ rst FarCall
+ pop de
+ ld a, [hMultiplicand]
+ ld [de], a
+ inc de
+ ld a, [$ffb5]
+ ld [de], a
+ inc de
+ ld a, [$ffb6]
+ ld [de], a
+ inc de
+ xor a
+ ld b, $a
+.asm_dee5
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_dee5
+ ld hl, EnemyMonAtkDefDV
+ ld b, $6
+.asm_deef
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_deef
+ ld a, $46
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld a, [CurPartyLevel]
+ ld [de], a
+ ld a, [CurPartySpecies]
+ dec a
+ call SetSeenAndCaughtMon
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr nz, .asm_df20
+ ld hl, $ad3b
+ ld a, $2d
+ call Predef
+ ld hl, $7a18
+ ld a, $3e
+ rst FarCall
+
+.asm_df20
+ ld hl, $ad28
+ ld de, TempMonMove1
+ ld bc, $0004
+ call CopyBytes
+ ld hl, $ad3d
+ ld de, TempMonPP
+ ld bc, $0004
+ call CopyBytes
+ ld b, $0
+ call Functiondcb6
+ call CloseSRAM
+ scf
+ ret
+; df42
+
+Functiondf42: ; df42
+ call CloseSRAM
+ and a
+ ret
+; df47
+
+Functiondf47: ; df47
+ ld hl, $afa6
+ ld bc, $000b
+ call $5f5f
+ ld hl, $b082
+ ld bc, $000b
+ call $5f5f
+ ld hl, $ad26
+ ld bc, $0020
+ ld a, [$ad10]
+ cp $2
+ ret c
+ push hl
+ call AddNTimes
+ dec hl
+ ld e, l
+ ld d, h
+ pop hl
+ ld a, [$ad10]
+ dec a
+ call AddNTimes
+ dec hl
+ push hl
+ ld a, [$ad10]
+ dec a
+ ld hl, $0000
+ call AddNTimes
+ ld c, l
+ ld b, h
+ pop hl
+.asm_df83
+ ld a, [hld]
+ ld [de], a
+ dec de
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_df83
+ ret
+; df8c
+
+Functiondf8c: ; df8c
+ ld a, [CurPartySpecies]
+ push af
+ callab GetPreEvolution
+ callab GetPreEvolution
+ ld a, [CurPartySpecies]
+ dec a
+ push af
+ call CheckSeenMon
+ pop af
+ push bc
+ call CheckCaughtMon
+ push bc
+ call Functiond88c
+ pop bc
+ ld a, c
+ and a
+ jr nz, .asm_dfc3
+ ld a, [CurPartySpecies]
+ dec a
+ ld c, a
+ ld d, $0
+ ld hl, PokedexSeen
+ ld b, $0
+ ld a, $3
+ call Predef
+
+.asm_dfc3
+ pop bc
+ ld a, c
+ and a
+ jr nz, .asm_dfd9
+ ld a, [CurPartySpecies]
+ dec a
+ ld c, a
+ ld d, $0
+ ld hl, PokedexCaught
+ ld b, $0
+ ld a, $3
+ call Predef
+
+.asm_dfd9
+ pop af
+ ld [CurPartySpecies], a
+ ld a, [PartyCount]
+ dec a
+ ld bc, $0030
+ ld hl, PartyMon1Species
+ call AddNTimes
+ ld a, [CurPartySpecies]
+ ld [hl], a
+ ld hl, PartyCount
+ ld a, [hl]
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, $fd
+ ld [hl], a
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Nickname
+ call SkipNames
+ ld de, $6035
+ call CopyName2
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Happiness
+ ld bc, $0030
+ call AddNTimes
+ ld a, [$c2cc]
+ bit 1, a
+ ld a, $1
+ jr nz, .asm_e022
+ ld a, [BaseEggSteps]
+
+.asm_e022
+ ld [hl], a
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1CurHP
+ ld bc, $0030
+ call AddNTimes
+ xor a
+ ld [hli], a
+ ld [hl], a
+ and a
+ ret
+; e035
+
+INCBIN "baserom.gbc", $e035, $e039 - $e035
+
+
+Functione039: ; e039
+ ld hl, PartyCount
+ ld a, [$d10b]
+ and a
+ jr z, .asm_e04a
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $ad10
+
+.asm_e04a
+ ld a, [hl]
+ dec a
+ ld [hli], a
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld e, l
+ ld d, h
+ inc de
+.asm_e057
+ ld a, [de]
+ inc de
+ ld [hli], a
+ inc a
+ jr nz, .asm_e057
+ ld hl, PartyMon1OT
+ ld d, $5
+ ld a, [$d10b]
+ and a
+ jr z, .asm_e06d
+ ld hl, $afa6
+ ld d, $13
+
+.asm_e06d
+ ld a, [CurPartyMon]
+ call SkipNames
+ ld a, [CurPartyMon]
+ cp d
+ jr nz, .asm_e07e
+ ld [hl], $ff
+ jp $60f0
+
+.asm_e07e
+ ld d, h
+ ld e, l
+ ld bc, $000b
+ add hl, bc
+ ld bc, PartyMon1Nickname
+ ld a, [$d10b]
+ and a
+ jr z, .asm_e090
+ ld bc, $b082
+
+.asm_e090
+ call CopyDataUntil
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ ld a, [$d10b]
+ and a
+ jr z, .asm_e0a5
+ ld hl, $ad26
+ ld bc, $0020
+
+.asm_e0a5
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld a, [$d10b]
+ and a
+ jr z, .asm_e0bc
+ ld bc, $0020
+ add hl, bc
+ ld bc, $afa6
+ jr .asm_e0c3
+
+.asm_e0bc
+ ld bc, $0030
+ add hl, bc
+ ld bc, PartyMon1OT
+
+.asm_e0c3
+ call CopyDataUntil
+ ld hl, PartyMon1Nickname
+ ld a, [$d10b]
+ and a
+ jr z, .asm_e0d2
+ ld hl, $b082
+
+.asm_e0d2
+ ld bc, $000b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld bc, $000b
+ add hl, bc
+ ld bc, $de83
+ ld a, [$d10b]
+ and a
+ jr z, .asm_e0ed
+ ld bc, $b15e
+
+.asm_e0ed
+ call CopyDataUntil
+ ld a, [$d10b]
+ and a
+ jp nz, CloseSRAM
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+ ld a, $0
+ call GetSRAMBank
+ ld hl, PartyCount
+ ld a, [CurPartyMon]
+ cp [hl]
+ jr z, .asm_e131
+ ld hl, $a600
+ ld bc, $002f
+ call AddNTimes
+ push hl
+ add hl, bc
+ pop de
+ ld a, [CurPartyMon]
+ ld b, a
+.asm_e11a
+ push bc
+ push hl
+ ld bc, $002f
+ call CopyBytes
+ pop hl
+ push hl
+ ld bc, $002f
+ add hl, bc
+ pop de
+ pop bc
+ inc b
+ ld a, [PartyCount]
+ cp b
+ jr nz, .asm_e11a
+
+.asm_e131
+ jp CloseSRAM
+; e134
+
+Functione134: ; e134
+ ld a, $1f
+ call GetPartyParamLocation
+ ld a, [hl]
+ ld [$001f], a
+ ld a, $0
+ call GetPartyParamLocation
+ ld a, [hl]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, $24
+ call GetPartyParamLocation
+ ld d, h
+ ld e, l
+ push de
+ ld a, $a
+ call GetPartyParamLocation
+ ld b, $1
+ call Functione167
+ pop de
+ ld a, $22
+ call GetPartyParamLocation
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ ret
+; e167
+
+Functione167: ; e167
+ ld c, $0
+.asm_e169
+ inc c
+ call Functione17b
+ ld a, [$ffb5]
+ ld [de], a
+ inc de
+ ld a, [$ffb6]
+ ld [de], a
+ inc de
+ ld a, c
+ cp $6
+ jr nz, .asm_e169
+ ret
+; e17b
+
+Functione17b: ; e17b
+ push hl
+ push de
+ push bc
+ ld a, b
+ ld d, a
+ push hl
+ ld hl, BaseHP
+ dec hl
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld e, a
+ pop hl
+ push hl
+ ld a, c
+ cp $6
+ jr nz, .asm_e193
+ dec hl
+ dec hl
+
+.asm_e193
+ sla c
+ ld a, d
+ and a
+ jr z, .asm_e1a5
+ add hl, bc
+ push de
+ ld a, [hld]
+ ld e, a
+ ld d, [hl]
+ callba GetSquareRoot
+ pop de
+
+.asm_e1a5
+ srl c
+ pop hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ pop bc
+ ld a, c
+ cp $2
+ jr z, .asm_e1e3
+ cp $3
+ jr z, .asm_e1ea
+ cp $4
+ jr z, .asm_e1ef
+ cp $5
+ jr z, .asm_e1f7
+ cp $6
+ jr z, .asm_e1f7
+ push bc
+ ld a, [hl]
+ swap a
+ and $1
+ add a
+ add a
+ add a
+ ld b, a
+ ld a, [hli]
+ and $1
+ add a
+ add a
+ add b
+ ld b, a
+ ld a, [hl]
+ swap a
+ and $1
+ add a
+ add b
+ ld b, a
+ ld a, [hl]
+ and $1
+ add b
+ pop bc
+ jr .asm_e1fb
+
+.asm_e1e3
+ ld a, [hl]
+ swap a
+ and $f
+ jr .asm_e1fb
+
+.asm_e1ea
+ ld a, [hl]
+ and $f
+ jr .asm_e1fb
+
+.asm_e1ef
+ inc hl
+ ld a, [hl]
+ swap a
+ and $f
+ jr .asm_e1fb
+
+.asm_e1f7
+ inc hl
+ ld a, [hl]
+ and $f
+
+.asm_e1fb
+ ld d, $0
+ add e
+ ld e, a
+ jr nc, .asm_e202
+ inc d
+
+.asm_e202
+ sla e
+ rl d
+ srl b
+ srl b
+ ld a, b
+ add e
+ jr nc, .asm_e20f
+ inc d
+
+.asm_e20f
+ ld [$ffb6], a
+ ld a, d
+ ld [$ffb5], a
+ xor a
+ ld [hMultiplicand], a
+ ld a, [CurPartyLevel]
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [hMultiplicand]
+ ld [hProduct], a
+ ld a, [$ffb5]
+ ld [hMultiplicand], a
+ ld a, [$ffb6]
+ ld [$ffb5], a
+ ld a, $64
+ ld [hMultiplier], a
+ ld a, $3
+ ld b, a
+ call Divide
+ ld a, c
+ cp $1
+ ld a, $5
+ jr nz, .asm_e24e
+ ld a, [CurPartyLevel]
+ ld b, a
+ ld a, [$ffb6]
+ add b
+ ld [$ffb6], a
+ jr nc, .asm_e24c
+ ld a, [$ffb5]
+ inc a
+ ld [$ffb5], a
+
+.asm_e24c
+ ld a, $a
+
+.asm_e24e
+ ld b, a
+ ld a, [$ffb6]
+ add b
+ ld [$ffb6], a
+ jr nc, .asm_e25b
+ ld a, [$ffb5]
+ inc a
+ ld [$ffb5], a
+
+.asm_e25b
+ ld a, [$ffb5]
+ cp $4
+ jr nc, .asm_e26b
+ cp $3
+ jr c, .asm_e273
+ ld a, [$ffb6]
+ cp $e8
+ jr c, .asm_e273
+
+.asm_e26b
+ ld a, $3
+ ld [$ffb5], a
+ ld a, $e7
+ ld [$ffb6], a
+
+.asm_e273
+ pop bc
+ pop de
+ pop hl
+ ret
+; e277
+
+Functione277: ; e277
+ push de
+ push bc
+ xor a
+ ld [MonType], a
+ call Functiond88c
+ jr nc, .asm_e2b0
+ ld hl, PartyMon1Nickname
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ call SkipNames
+ ld d, h
+ ld e, l
+ pop bc
+ ld a, b
+ ld b, $0
+ push bc
+ push de
+ push af
+ ld a, [CurItem]
+ and a
+ jr z, .asm_e2e1
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Item
+ ld bc, $0030
+ call AddNTimes
+ ld a, [CurItem]
+ ld [hl], a
+ jr .asm_e2e1
+
+.asm_e2b0
+ ld a, [CurPartySpecies]
+ ld [TempEnemyMonSpecies], a
+ callab LoadEnemyMon
+ call Functionde6e
+ jp nc, Functione3d4
+ ld a, $2
+ ld [MonType], a
+ xor a
+ ld [CurPartyMon], a
+ ld de, $d050
+ pop bc
+ ld a, b
+ ld b, $1
+ push bc
+ push de
+ push af
+ ld a, [CurItem]
+ and a
+ jr z, .asm_e2e1
+ ld a, [CurItem]
+ ld [$ad27], a
+
+.asm_e2e1
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ ld [TempEnemyMonSpecies], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, $d050
+ ld bc, $000b
+ call CopyBytes
+ pop af
+ and a
+ jp z, $6390
+ pop de
+ pop bc
+ pop hl
+ push bc
+ push hl
+ ld a, [ScriptBank]
+ call GetFarHalfword
+ ld bc, $000b
+ ld a, [ScriptBank]
+ call FarCopyBytes
+ pop hl
+ inc hl
+ inc hl
+ ld a, [ScriptBank]
+ call GetFarHalfword
+ pop bc
+ ld a, b
+ and a
+ push de
+ push bc
+ jr nz, .asm_e35e
+ push hl
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1OT
+ call SkipNames
+ ld d, h
+ ld e, l
+ pop hl
+.asm_e32f
+ ld a, [ScriptBank]
+ call GetFarByte
+ ld [de], a
+ inc hl
+ inc de
+ cp $50
+ jr nz, .asm_e32f
+ ld a, [ScriptBank]
+ call GetFarByte
+ ld b, a
+ push bc
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1ID
+ ld bc, $0030
+ call AddNTimes
+ ld a, $3
+ ld [hli], a
+ ld [hl], $e9
+ pop bc
+ ld a, $13
+ ld hl, $5ba3
+ rst FarCall
+ jr .asm_e3b2
+
+.asm_e35e
+ ld a, $1
+ call GetSRAMBank
+ ld de, $afa6
+.asm_e366
+ ld a, [ScriptBank]
+ call GetFarByte
+ ld [de], a
+ inc hl
+ inc de
+ cp $50
+ jr nz, .asm_e366
+ ld a, [ScriptBank]
+ call GetFarByte
+ ld b, a
+ ld hl, $ad2c
+ call RNG
+ ld [hli], a
+ call RNG
+ ld [hl], a
+ call CloseSRAM
+ ld a, $13
+ ld hl, $5b92
+ rst FarCall
+ jr .asm_e3b2
+
+ pop de
+ pop bc
+ push bc
+ push de
+ ld a, b
+ and a
+ jr z, .asm_e3a0
+ ld a, $13
+ ld hl, $5b83
+ rst FarCall
+ jr .asm_e3a6
+
+.asm_e3a0
+ ld a, $13
+ ld hl, $5b49
+ rst FarCall
+
+.asm_e3a6
+ ld a, $13
+ ld hl, $5b3b
+ rst FarCall
+ pop de
+ jr c, .asm_e3b2
+ call Functione3de
+
+.asm_e3b2
+ pop bc
+ pop de
+ ld a, b
+ and a
+ ret z
+ ld hl, $63d9
+ call PrintText
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $d050
+ ld de, $b082
+ ld bc, $000b
+ call CopyBytes
+ call CloseSRAM
+ ld b, $1
+ ret
+; e3d4
+
+Functione3d4: ; e3d4
+ pop bc
+ pop de
+ ld b, $2
+ ret
+; e3d9
+
+INCBIN "baserom.gbc", $e3d9, $e3de - $e3d9
+
+
+Functione3de: ; e3de
+ push de
+ call Function1d6e
+ call Function2ed3
+ pop de
+ push de
+ ld b, $0
+ ld a, $4
+ ld hl, $56c1
+ rst FarCall
+ pop hl
+ ld de, StringBuffer1
+ call InitName
+ ld a, $4
+ ld hl, $2b4d
+ rst FarCall
+ ret
+; e3fd
+
+INCBIN "baserom.gbc", $e3fd, $e538 - $e3fd
+
+
+Functione538: ; e538
+ ld hl, PartyMon1CurHP
+ ld de, $0030
+ ld b, $0
+.asm_e540
+ ld a, [CurPartyMon]
+ cp b
+ jr z, .asm_e54b
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_e557
+ dec hl
+
+.asm_e54b
+ inc b
+ ld a, [PartyCount]
+ cp b
+ jr z, .asm_e555
+ add hl, de
+ jr .asm_e540
+
+.asm_e555
+ scf
+ ret
+
+.asm_e557
+ and a
+ ret
+; e559
+
+INCBIN "baserom.gbc", $e559, $e58b - $e559
+
ClearPCItemScreen: ; e58b
call Function2ed3
xor a
@@ -7205,13 +23837,70 @@
ld bc, $0412
call TextBox
call Function3200
- call $32f9 ; load regular palettes?
+ call Function32f9 ; load regular palettes?
ret
; 0xe5bb
-INCBIN "baserom.gbc", $e5bb, $e722 - $e5bb
+Functione5bb: ; e5bb
+ ld a, [CurPartyMon]
+ ld hl, $ad26
+ ld bc, $0020
+ call AddNTimes
+ ld de, TempMonSpecies
+ ld bc, $0020
+ ld a, $1
+ call GetSRAMBank
+ call CopyBytes
+ call CloseSRAM
+ ret
+; e5d9
+INCBIN "baserom.gbc", $e5d9, $e6ce - $e5d9
+
+Functione6ce: ; e6ce
+ ld a, [$df9c]
+ and a
+ jr z, .asm_e6ea
+ ld [$d265], a
+ ld a, $33
+ ld hl, $40c7
+ rst FarCall
+ ld a, $33
+ ld hl, $4000
+ rst FarCall
+ ld bc, $0e07
+ call $1dd2
+ ret c
+
+.asm_e6ea
+ call Functione6fd
+ ld a, [TempEnemyMonSpecies]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, $671d
+ call PrintText
+ ret
+; e6fd
+
+Functione6fd: ; e6fd
+ ld a, [TempEnemyMonSpecies]
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ call GetBaseData
+ xor a
+ ld bc, $0030
+ ld hl, $df9c
+ call ByteFill
+ xor a
+ ld [MonType], a
+ ld hl, $df9c
+ jp $5906
+; e71d
+
+INCBIN "baserom.gbc", $e71d, $e722 - $e71d
+
+
_DoItemEffect: ; e722
ld a, [CurItem]
ld [$d265], a
@@ -7412,18 +24101,665 @@
INCLUDE "items/item_effects.asm"
-INCBIN "baserom.gbc", $f780, $fa0b - $f780
+Functionf780: ; f780
+ push de
+ ld de, SFX_FULL_HEAL
+ call WaitPlaySFX
+ pop de
+ ret
+; f789
+Functionf789: ; f789
+ ld hl, $783d
+ call PrintText
+ call Functionf780
+ call Functiona80
+ ; fallthrough
+; f795
+Functionf795: ; f795
+ ld hl, NumItems
+ ld a, $1
+ ld [$d10c], a
+ jp Function2f53
+; f7a0
+
+Functionf7a0: ; f7a0
+ call $6dfa
+ ld de, Start
+ ld a, e
+ ld [FXAnimIDLo], a
+ ld a, d
+ ld [FXAnimIDHi], a
+ xor a
+ ld [$c689], a
+ ld [hBattleTurn], a
+ ld [$cfca], a
+ ld a, $37
+ call Predef
+ ld hl, $7824
+ call PrintText
+ ld hl, $7829
+ call PrintText
+ jr Functionf795
+; f7ca
+
+Functionf7ca: ; f7ca
+ ld hl, $781f
+ call PrintText
+ ld a, $2
+ ld [$d0ec], a
+ ret
+; f7d6
+
+Functionf7d6: ; f7d6
+ ld hl, $780b
+ jp PrintText
+; f7dc
+
+Functionf7dc: ; f7dc
+ ld hl, $7838
+ call PrintText
+ ld a, $2
+ ld [$d0ec], a
+ ret
+; f7e8
+
+Functionf7e8: ; f7e8
+ ld hl, $7810
+ jr .asm_f804
+
+ ld hl, $7815
+ jr .asm_f804
+
+ ld hl, $781f
+ jr .asm_f804
+
+ ld hl, $781a
+ jr .asm_f804
+
+ ld hl, $782e
+ jr .asm_f804
+
+ ld hl, $7833
+
+.asm_f804
+ xor a
+ ld [$d0ec], a
+ jp PrintText
+; f80b
+
+INCBIN "baserom.gbc", $f80b, $f84c - $f80b
+
+
+Functionf84c: ; f84c
+ ld a, $2
+ call GetPartyParamLocation
+ push hl
+ ld de, MagikarpLength
+ ld a, $5
+ call Predef
+ pop hl
+ ld bc, $0015
+ add hl, bc
+ ld de, MagikarpLength
+ ld b, $0
+.asm_f864
+ inc b
+ ld a, b
+ cp $5
+ ret z
+ ld a, [$d265]
+ dec a
+ jr nz, .asm_f876
+ ld a, [$cfa9]
+ inc a
+ cp b
+ jr nz, .asm_f87d
+
+.asm_f876
+ ld a, [hl]
+ and $c0
+ ld a, [de]
+ call nz, Functionf881
+
+.asm_f87d
+ inc hl
+ inc de
+ jr .asm_f864
+; f881
+
+
+
+Functionf881: ; f881
+ push bc
+ ld a, [de]
+ ld [$ffb6], a
+ xor a
+ ld [hProduct], a
+ ld [hMultiplicand], a
+ ld [$ffb5], a
+ ld a, $5
+ ld [hMultiplier], a
+ ld b, $4
+ call Divide
+ ld a, [hl]
+ ld b, a
+ swap a
+ and $f
+ srl a
+ srl a
+ ld c, a
+ and a
+ jr z, .asm_f8b6
+.asm_f8a3
+ ld a, [$ffb6]
+ cp $8
+ jr c, .asm_f8ab
+ ld a, $7
+
+.asm_f8ab
+ add b
+ ld b, a
+ ld a, [$d265]
+ dec a
+ jr z, .asm_f8b6
+ dec c
+ jr nz, .asm_f8a3
+
+.asm_f8b6
+ ld [hl], b
+ pop bc
+ ret
+; f8b9
+
+INCBIN "baserom.gbc", $f8b9, $f8ec - $f8b9
+
+
+Functionf8ec: ; f8ec
+ ld a, [StringBuffer1]
+ push af
+ ld a, [$d074]
+ push af
+ ld a, [MonType]
+ and a
+ ld hl, PartyMon1Move1
+ ld bc, $0030
+ jr z, .asm_f91a
+ ld hl, OTPartyMon1Move1
+ dec a
+ jr z, .asm_f91a
+ ld hl, TempMonMove1
+ dec a
+ jr z, .asm_f915
+ ld hl, TempMonMove1
+ dec a
+ jr z, .asm_f915
+ ld hl, BattleMonMove1
+
+.asm_f915
+ call $7969
+ jr .asm_f91d
+
+.asm_f91a
+ call Functionf963
+
+.asm_f91d
+ ld a, [hl]
+ dec a
+ push hl
+ ld hl, $5b00
+ ld bc, $0007
+ call AddNTimes
+ ld a, $10
+ call GetFarByte
+ ld b, a
+ ld de, StringBuffer1
+ ld [de], a
+ pop hl
+ push bc
+ ld bc, $0015
+ ld a, [MonType]
+ cp $4
+ jr nz, .asm_f942
+ ld bc, $0006
+
+.asm_f942
+ add hl, bc
+ ld a, [hl]
+ and $c0
+ pop bc
+ or b
+ ld hl, $d074
+ ld [hl], a
+ xor a
+ ld [$d265], a
+ ld a, b
+ call Functionf881
+ ld a, [hl]
+ and $3f
+ ld [$d265], a
+ pop af
+ ld [$d074], a
+ pop af
+ ld [StringBuffer1], a
+ ret
+; f963
+
+Functionf963: ; f963
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld a, [$cfa9]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ret
+; f971
+
+INCBIN "baserom.gbc", $f971, $f9ea - $f971
+
+
+Functionf9ea: ; f9ea
+ ld a, $2
+ call GetPartyParamLocation
+ ld a, [$d262]
+ ld b, a
+ ld c, $4
+.asm_f9f5
+ ld a, [hli]
+ cp b
+ jr z, .asm_f9fe
+ dec c
+ jr nz, .asm_f9f5
+ and a
+ ret
+
+.asm_f9fe
+ ld hl, $7a06
+ call PrintText
+ scf
+ ret
+; fa06
+
+INCBIN "baserom.gbc", $fa06, $fa0b - $fa06
+
+
SECTION "bank4",ROMX,BANK[$4]
-INCBIN "baserom.gbc", $10000, $10b16 - $10000
+Function10000: ; 10000
+ ld hl, Options
+ set 4, [hl]
+ call Function1068a
+.asm_10008
+ call Functiona57
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_1001a
+ call Function10026
+ call DelayFrame
+ jr .asm_10008
+.asm_1001a
+ ld a, [$cf65]
+ ld [$d0d6], a
+ ld hl, Options
+ res 4, [hl]
+ ret
+; 10026
+
+Function10026: ; 10026
+ ld a, [$cf63]
+ ld hl, $4030
+ call Function1086b
+ jp [hl]
+; 10030
+
+INCBIN "baserom.gbc", $10030, $10493 - $10030
+
+
+Function10493: ; 10493
+ ld hl, Options
+ set 4, [hl]
+ call Function1068a
+.asm_1049b
+ call Functiona57
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_104ad
+ call Function104b9
+ call DelayFrame
+ jr .asm_1049b
+
+.asm_104ad
+ ld a, [$cf65]
+ ld [$d0d6], a
+ ld hl, Options
+ res 4, [hl]
+ ret
+; 104b9
+
+Function104b9: ; 104b9
+ ld a, [$cf63]
+ ld hl, $44c3
+ call Function1086b
+ jp [hl]
+; 104c3
+
+INCBIN "baserom.gbc", $104c3, $1068a - $104c3
+
+
+Function1068a: ; 1068a
+ xor a
+ ld [$cf63], a
+ ld a, [$d0d6]
+ and $3
+ ld [$cf65], a
+ inc a
+ add a
+ dec a
+ ld [$cf64], a
+ xor a
+ ld [$cf66], a
+ xor a
+ ld [$d0e3], a
+ ret
+; 106a5
+
+Function106a5: ; 106a5
+ xor a
+ ld [hBGMapMode], a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ ld [$d0e3], a
+ call Function10955
+ call Function10a40
+ ret
+; 106be
+
+Function106be: ; 106be
+.asm_106be
+ call Function106c7
+ call Function1076f
+ jr c, .asm_106be
+ ret
+; 106c7
+
+Function106c7: ; 106c7
+ ld a, [$cf63]
+ ld hl, $46d1
+ call Function1086b
+ jp [hl]
+; 106d1
+
+INCBIN "baserom.gbc", $106d1, $1076f - $106d1
+
+
+Function1076f: ; 1076f
+ ld hl, $cf73
+ ld a, [hl]
+ and $1
+ jr nz, .asm_10788
+ ld a, [hl]
+ and $2
+ jr nz, .asm_1078f
+ ld a, [hl]
+ and $20
+ jr nz, .asm_10795
+ ld a, [hl]
+ and $10
+ jr nz, .asm_107a8
+ scf
+ ret
+
+.asm_10788
+ ld a, $1
+ ld [$cf66], a
+ and a
+ ret
+
+.asm_1078f
+ xor a
+ ld [$cf66], a
+ and a
+ ret
+
+.asm_10795
+ ld a, [$cf63]
+ dec a
+ and $3
+ ld [$cf63], a
+ push de
+ ld de, SFX_UNKNOWN_62
+ call StartSFX
+ pop de
+ scf
+ ret
+
+.asm_107a8
+ ld a, [$cf63]
+ inc a
+ and $3
+ ld [$cf63], a
+ push de
+ ld de, SFX_UNKNOWN_62
+ call StartSFX
+ pop de
+ scf
+ ret
+; 107bb
+
+Function107bb: ; 107bb
+ call Function106a5
+ ld a, [InputType]
+ or a
+ jr z, .asm_107ca
+ ld a, $77
+ ld hl, $628f
+ rst FarCall
+
+.asm_107ca
+ call Function107d7
+ call Function1076f
+ jr c, .asm_107ca
+ xor a
+ ld [$cf66], a
+ ret
+; 107d7
+
+Function107d7: ; 107d7
+ ld a, [$cf63]
+ ld hl, $47e1
+ call Function1086b
+ jp [hl]
+; 107e1
+
+INCBIN "baserom.gbc", $107e1, $1086b - $107e1
+
+
+Function1086b: ; 1086b
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 10874
+
+INCBIN "baserom.gbc", $10874, $1089d - $10874
+
+
+Function1089d: ; 1089d
+ ld a, [$cf65]
+ and $3
+ ld e, a
+ ld d, $0
+ ld a, [BattleType]
+ cp $3
+ jr z, .asm_108b3
+ ld a, [PlayerGender]
+ bit 0, a
+ jr nz, .asm_108c5
+
+.asm_108b3
+ ld hl, $48cc
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld hl, $9500
+ ld bc, $040f
+ call Request2bpp
+ ret
+
+.asm_108c5
+ ld a, $12
+ ld hl, $4e81
+ rst FarCall
+ ret
+; 108cc
+
+INCBIN "baserom.gbc", $108cc, $10955 - $108cc
+
+
+Function10955: ; 10955
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ ld hl, $4b16
+ ld de, VTiles2
+ ld bc, $0600
+ ld a, $4
+ call FarCopyBytes
+ ld hl, $c4b4
+ ld bc, $00dc
+ ld a, $24
+ call ByteFill
+ ld hl, $c4b9
+ ld bc, $0b0f
+ call ClearBox
+ ld hl, TileMap
+ ld a, $28
+ ld c, $14
+.asm_1098a
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_1098a
+ call Function109bb
+ call Function109a5
+ ld hl, $c590
+ ld bc, $0412
+ call TextBox
+ call EnableLCD
+ call Function1089d
+ ret
+; 109a5
+
+Function109a5: ; 109a5
+ ld hl, $c4dc
+ ld a, $50
+ ld de, $000f
+ ld b, $3
+.asm_109af
+ ld c, $5
+.asm_109b1
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_109b1
+ add hl, de
+ dec b
+ jr nz, .asm_109af
+ ret
+; 109bb
+
+Function109bb: ; 109bb
+ ld a, [$cf65]
+ ld d, a
+ swap a
+ sub d
+ ld d, $0
+ ld e, a
+ ld hl, $49e1
+ add hl, de
+ ld d, h
+ ld e, l
+ ld hl, $c52c
+ ld c, $3
+.asm_109d0
+ ld b, $5
+.asm_109d2
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .asm_109d2
+ ld a, c
+ ld c, $f
+ add hl, bc
+ ld c, a
+ dec c
+ jr nz, .asm_109d0
+ ret
+; 109e1
+
+INCBIN "baserom.gbc", $109e1, $10a40 - $109e1
+
+
+Function10a40: ; 10a40
+ call WaitBGMap
+ ld b, $14
+ call GetSGBLayout
+ call Function32f9
+ call DelayFrame
+ ret
+; 10a4f
+
+INCBIN "baserom.gbc", $10a4f, $10b16 - $10a4f
+
PackGFX:
INCBIN "gfx/misc/pack.2bpp"
-INCBIN "baserom.gbc", $113d6, $1167a - $113d6
+Function113d6: ; 113d6
+ call Function114dd
+ ret
+; 113da
+Function113da: ; 113da
+ xor a
+ ld [$dc2d], a
+ ld [$dc3a], a
+ ld [$dc1c], a
+ ret
+; 113e5
+
+INCBIN "baserom.gbc", $113e5, $114dd - $113e5
+
+
+Function114dd: ; 114dd
+ call UpdateTime
+ ld hl, $dc23
+ call Function11621
+ ret
+; 114e7
+
+INCBIN "baserom.gbc", $114e7, $11621 - $114e7
+
+
+Function11621: ; 11621
+ ld a, [CurDay]
+ ld [hl], a
+ ret
+; 11626
+
+INCBIN "baserom.gbc", $11626, $1167a - $11626
+
TechnicalMachines: ; 0x1167a
db DYNAMICPUNCH
db HEADBUTT
@@ -7487,13 +24823,282 @@
Function116b7: ; 0x116b7
call Function2ed3
- call $56c1
- call $2b74
+ call Function116c1
+ call Function2b74
ret
; 0x116c1
-INCBIN "baserom.gbc", $116c1, $11ce7 - $116c1
+Function116c1: ; 116c1
+ ld hl, PlayerSDefLevel
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, EnemyAtkLevel
+ ld [hl], b
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ ld a, [$ffde]
+ push af
+ xor a
+ ld [$ffde], a
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ call Function116f8
+ call DelayFrame
+.asm_116e5
+ call Function11915
+ jr nc, .asm_116e5
+ pop af
+ ld [$ffaa], a
+ pop af
+ ld [$ffde], a
+ pop af
+ ld [Options], a
+ call ClearJoypadPublic
+ ret
+; 116f8
+Function116f8: ; 116f8
+ call WhiteBGMap
+ ld b, $8
+ call GetSGBLayout
+ call DisableLCD
+ call Function11c51
+ call Function118a8
+ ld a, $e3
+ ld [rLCDC], a
+ call Function1171d
+ call WaitBGMap
+ call WaitTop
+ call Function32f9
+ call Function11be0
+ ret
+; 1171d
+
+Function1171d: ; 1171d
+ ld a, [EnemyAtkLevel]
+ and $7
+ ld e, a
+ ld d, $0
+ ld hl, $572e
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1172e
+
+INCBIN "baserom.gbc", $1172e, $1189c - $1172e
+
+
+Function1189c: ; 1189c
+ push bc
+ push af
+ ld a, [EnemyAtkLevel]
+ sub $3
+ ld b, a
+ pop af
+ dec b
+ pop bc
+ ret
+; 118a8
+
+Function118a8: ; 118a8
+ call WaitTop
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $60
+ call ByteFill
+ ld hl, $c4b5
+ ld bc, $0612
+ call Function1189c
+ jr nz, .asm_118c4
+ ld bc, $0412
+
+.asm_118c4
+ call ClearBox
+ ld de, $5da2
+ call Function1189c
+ jr nz, .asm_118d5
+ ld hl, $0055
+ add hl, de
+ ld d, h
+ ld e, l
+
+.asm_118d5
+ push de
+ ld hl, $c541
+ ld bc, $0712
+ call Function1189c
+ jr nz, .asm_118e7
+ ld hl, $c519
+ ld bc, $0912
+
+.asm_118e7
+ call ClearBox
+ ld hl, $c5e1
+ ld bc, $0112
+ call ClearBox
+ pop de
+ ld hl, $c542
+ ld b, $5
+ call Function1189c
+ jr nz, .asm_11903
+ ld hl, $c51a
+ ld b, $6
+
+.asm_11903
+ ld c, $11
+.asm_11905
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .asm_11905
+ push de
+ ld de, $0017
+ add hl, de
+ pop de
+ dec b
+ jr nz, .asm_11903
+ ret
+; 11915
+
+Function11915: ; 11915
+ call Functiona57
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_11930
+ call Function11968
+ ld a, $23
+ ld hl, $4f62
+ rst FarCall
+ call Function11940
+ call DelayFrame
+ and a
+ ret
+
+.asm_11930
+ callab Function8cf53
+ call ClearSprites
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ scf
+ ret
+; 11940
+
+Function11940: ; 11940
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c505
+ call Function1189c
+ jr nz, .asm_1194e
+ ld hl, $c4dd
+
+.asm_1194e
+ ld bc, $0112
+ call ClearBox
+ ld hl, PlayerSDefLevel
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, EnemySDefLevel
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 11968
+
+Function11968: ; 11968
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $5977
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11977
+
+INCBIN "baserom.gbc", $11977, $11be0 - $11977
+
+
+Function11be0: ; 11be0
+ ld hl, PlayerSDefLevel
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld [hl], $f2
+ inc hl
+ ld a, [$c6d3]
+ dec a
+ ld c, a
+ ld a, $eb
+.asm_11bf0
+ ld [hli], a
+ dec c
+ jr nz, .asm_11bf0
+ ld [hl], $50
+ ret
+; 11bf7
+
+INCBIN "baserom.gbc", $11bf7, $11c51 - $11bf7
+
+
+Function11c51: ; 11c51
+ call ClearSprites
+ callab Function8cf53
+ call $0e51
+ call Functione5f
+ ld de, $5e65
+ ld hl, $8eb0
+ ld bc, $0401
+ call Get1bpp
+ ld de, $5e6d
+ ld hl, $8f20
+ ld bc, $0401
+ call Get1bpp
+ ld de, $9600
+ ld hl, $5cb7
+ ld bc, $0010
+ ld a, $4
+ call FarCopyBytes
+ ld de, $87e0
+ ld hl, $5cc7
+ ld bc, $0020
+ ld a, $4
+ call FarCopyBytes
+ ld a, $5
+ ld hl, $c312
+ ld [hli], a
+ ld [hl], $7e
+ xor a
+ ld [hSCY], a
+ ld [$c3bf], a
+ ld [hSCX], a
+ ld [$c3c0], a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [hBGMapMode], a
+ ld [PlayerEvaLevel], a
+ ld a, $7
+ ld [hWX], a
+ ret
+; 11cb7
+
+INCBIN "baserom.gbc", $11cb7, $11ce7 - $11cb7
+
NameInputLower:
db "a b c d e f g h i"
db "j k l m n o p q r"
@@ -7522,9 +25127,56 @@
db "lower DEL END "
-INCBIN "baserom.gbc", $11e5d, $12513 - $11e5d
+INCBIN "baserom.gbc", $11e5d, $122c1 - $11e5d
+UnknownScript_0x122c1: ; 0x122c1
+ checkbit2 $0011
+ iffalse $62cd
+ setbit2 $0051
+ special $0017
+ end
+; 0x122ce
+INCBIN "baserom.gbc", $122ce, $124c8 - $122ce
+
+UnknownScript_0x124c8: ; 0x124c8
+ refreshscreen $0
+ 3callasm BANK(Function124fa), Function124fa
+ 2writetext UnknownText_0x124f5
+ closetext
+ special $002e
+ pause 40
+ special $001b
+ checkbit2 $0011
+ iftrue .script_64f2
+ 3callasm BANK(HalveMoney), HalveMoney
+ 3callasm BANK(Function12527), Function12527
+ 3call BANK(UnknownScript_0x122c1), UnknownScript_0x122c1
+ special $0000
+ newloadmap $f1
+ resetfuncs
+
+.script_64f2
+ jumpstd $0016
+; 0x124f5
+
+UnknownText_0x124f5: ; 0x124f5
+ text_jump UnknownText_0x1c0a4e, BANK(UnknownText_0x1c0a4e)
+ db $50
+; 0x124fa
+
+Function124fa: ; 124fa
+ call ClearPalettes
+ call Functionfdb
+ call Function3200
+ call HideSprites
+ call Function4f0
+ ret
+; 1250a
+
+INCBIN "baserom.gbc", $1250a, $12513 - $1250a
+
+
HalveMoney: ; 12513
; Empty function...
@@ -7547,12 +25199,50 @@
; 12527
-INCBIN "baserom.gbc", $12527, $125cd - $12527
+Function12527: ; 12527
+ ld a, [$dcb2]
+ ld d, a
+ ld a, [$dcb3]
+ ld e, a
+ ld a, $5
+ ld hl, $5344
+ rst FarCall
+ ld a, c
+ jr c, .asm_12539
+ xor a
+.asm_12539
+ ld [$d001], a
+ ret
+; 1253d
+INCBIN "baserom.gbc", $1253d, $12580 - $1253d
+
+
+Function12580: ; 12580
+ ld a, $2e
+ ld hl, $4172
+ rst FarCall
+ jr c, .asm_1258d
+ ld hl, $65ba
+ jr .asm_12590
+
+.asm_1258d
+ ld hl, $65ad
+
+.asm_12590
+ call Function31cd
+ ld a, $1
+ ld [$d0ec], a
+ ret
+; 12599
+
+INCBIN "baserom.gbc", $12599, $125cd - $12599
+
+
StartMenu: ; 125cd
- call $1fbf
+ call Function1fbf
ld de, SFX_MENU
call StartSFX
@@ -7568,7 +25258,7 @@
ld hl, .ContestMenuDataHeader
.GotMenuData
- call Function1d35
+ call LoadMenuDataHeader
call .SetUpMenuItems
ld a, [$d0d2]
ld [$cf88], a
@@ -7575,18 +25265,18 @@
call .DrawMenuAccount_
call MenuFunc_1e7f
call .DrawBugContestStatusBox
- call $2e31
- call $2e20
+ call Function2e31
+ call Function2e20
ld a, $1
ld hl, $64bf
rst $8
call .DrawBugContestStatus
- call $0485
+ call Function485
jr .Select
.Reopen
- call $1ad2
- call $0485
+ call Function1ad2
+ call Function485
call .SetUpMenuItems
ld a, [$d0d2]
ld [$cf88], a
@@ -7598,7 +25288,7 @@
ld a, [$cf88]
ld [$d0d2], a
call PlayClickSFX
- call $1bee
+ call Function1bee
call .OpenMenu
; Menu items have different return functions.
@@ -7627,14 +25317,14 @@
push af
ld a, 1
ld [hOAMUpdate], a
- call $0e5f
+ call Functione5f
pop af
ld [hOAMUpdate], a
.ReturnEnd
call Function1c07
.ReturnEnd2
- call $2dcf
- call $0485
+ call Function2dcf
+ call Function485
ret
.GetInput
@@ -7647,7 +25337,7 @@
ld [MenuSelection], a
.loop
call .PrintMenuAccount
- call $1f1a
+ call Function1f1a
ld a, [$cf73]
cp BUTTON_B
jr z, .b
@@ -7695,12 +25385,12 @@
.Clear ; 126b7
call WhiteBGMap
- call $1d7d
- call $2bae
+ call Function1d7d
+ call Function2bae
call .DrawMenuAccount_
call MenuFunc_1e7f
call .DrawBugContestStatus
- call $1ad2
+ call Function1ad2
call $0d90
call $2b5c
ret
@@ -7827,7 +25517,7 @@
ld [$cf76], a
call .FillMenuList
- ld hl, $d84c
+ ld hl, StatusFlags
bit 0, [hl]
jr z, .no_pokedex
ld a, 0 ; pokedex
@@ -7967,7 +25657,7 @@
; Retire from the bug catching contest.
ld hl, .EndTheContestText
- call $6cf5
+ call Function12cf5
jr c, .asm_12903
ld a, $4
ld hl, $760b
@@ -7987,7 +25677,7 @@
StartMenu_Save: ; 1290b
; Save the game.
- call $2879
+ call Function2879
ld a, $5
ld hl, $4a1a
rst FarCall
@@ -8004,9 +25694,7 @@
; Game options.
call FadeToMenu
- ld a, $1
- ld hl, $5b64
- rst FarCall
+ callba OptionsMenu
ld a, 6
ret
; 12928
@@ -8019,7 +25707,7 @@
ld a, $9
ld hl, $5105
rst FarCall
- call $2b3c
+ call Function2b3c
ld a, 0
ret
; 12937
@@ -8035,7 +25723,7 @@
ld a, $10
ld hl, $4000
rst FarCall
- call $2b3c
+ call Function2b3c
.asm_12949
ld a, 0
@@ -8049,7 +25737,7 @@
ld a, $24
ld hl, $4b8d
rst FarCall
- call $2b3c
+ call Function2b3c
ld a, 0
ret
; 1295b
@@ -8064,7 +25752,7 @@
ld a, [$cf66]
and a
jr nz, .asm_12970
- call $2b3c
+ call Function2b3c
ld a, 0
ret
.asm_12970
@@ -8102,7 +25790,7 @@
callba WritePartyMenuTilemap
callba PrintPartyMenuText
call WaitBGMap
- call $32f9 ; load regular palettes?
+ call Function32f9 ; load regular palettes?
call DelayFrame
callba PartyMenuSelect
jr c, .return ; if cancelled or pressed B
@@ -8118,7 +25806,7 @@
jr z, .quit
.return
- call $2b3c
+ call Function2b3c
ld a, 0
ret
@@ -8136,7 +25824,7 @@
CantUseItem: ; 12a60
ld hl, CantUseItemText
- call $2012
+ call Function2012
ret
; 12a67
@@ -8174,7 +25862,7 @@
ld a, $9
ld hl, $4d19
rst FarCall
- call $389c
+ call GetCurNick
ld a, [MenuSelection]
ld hl, .Actions
ld de, 3
@@ -8192,26 +25880,26 @@
ret
.Actions
- dbw $01, $6e1b
- dbw $02, $6e30
- dbw $03, $6ebd
- dbw $04, $6e6a
- dbw $06, $6e55
- dbw $07, $6e7f
- dbw $08, $6ed1
- dbw $09, $6ea9
- dbw $0a, $6ee6
- dbw $0d, $6ee6
- dbw $0b, $6f26
- dbw $05, $6e94
- dbw $0c, $6f3b
- dbw $0e, $6f50
- dbw $0f, OpenPartyStats
- dbw $10, SwitchPartyMons
- dbw $11, GiveTakePartyMonItem
- dbw $12, CancelPokemonAction
- dbw $13, $6fba ; move
- dbw $14, $6d45 ; mail
+ dbw 1, Function12e1b ; Cut
+ dbw 2, Function12e30 ; Fly
+ dbw 3, Function12ebd ; Surf
+ dbw 4, Function12e6a ; Strength
+ dbw 6, Function12e55 ; Flash
+ dbw 7, Function12e7f ; Whirlpool
+ dbw 8, Function12ed1 ; Dig
+ dbw 9, Function12ea9 ; Teleport
+ dbw 10, Function12ee6 ; Softboiled
+ dbw 13, Function12ee6 ; MilkDrink
+ dbw 11, Function12f26 ; Headbutt
+ dbw 5, Function12e94 ; Flash
+ dbw 12, Function12f3b ; RockSmash
+ dbw 14, Function12f50 ; SweetScent
+ dbw 15, OpenPartyStats
+ dbw 16, SwitchPartyMons
+ dbw 17, GiveTakePartyMonItem
+ dbw 18, CancelPokemonAction
+ dbw 19, Function12fba ; move
+ dbw 20, Function12d45 ; mail
; 12aec
@@ -8245,7 +25933,7 @@
call AddNTimes
ld [hl], "▷"
call WaitBGMap
- call $32f9
+ call Function32f9
call DelayFrame
callba PartyMenuSelect
@@ -8288,12 +25976,12 @@
jr z, .asm_12ba6
ld hl, GiveTakeItemMenuData
- call Function1d35
+ call LoadMenuDataHeader
call Function1d81
call Function1c07
jr c, .asm_12ba6
- call $389c
+ call GetCurNick
ld hl, StringBuffer1
ld de, $d050
ld bc, $b
@@ -8302,7 +25990,7 @@
cp 1
jr nz, .asm_12ba0
- call $1d6e
+ call Function1d6e
call ClearPalettes
call Function12ba9
call ClearPalettes
@@ -8351,7 +26039,7 @@
.next
ld hl, CantBeHeldText
- call $1d67
+ call Function1d67
jr .loop
.quit
@@ -8381,13 +26069,13 @@
.asm_12bf4
call $6cea
ld hl, MadeHoldText
- call $1d67
+ call Function1d67
call GivePartyItem
ret
.asm_12c01
ld hl, PleaseRemoveMailText
- call $1d67
+ call Function1d67
ret
.asm_12c08
@@ -8394,7 +26082,7 @@
ld [$d265], a
call GetItemName
ld hl, SwitchAlreadyHoldingText
- call $6cf5
+ call Function12cf5
jr c, .asm_12c4b
call $6cea
@@ -8404,11 +26092,11 @@
ld [$d265], a
pop af
ld [CurItem], a
- call $6cdf
+ call Function12cdf
jr nc, .asm_12c3c
ld hl, TookAndMadeHoldText
- call $1d67
+ call Function1d67
ld a, [$d265]
ld [CurItem], a
call GivePartyItem
@@ -8417,9 +26105,9 @@
.asm_12c3c
ld a, [$d265]
ld [CurItem], a
- call $6cdf
+ call Function12cdf
ld hl, ItemStorageIsFullText
- call $1d67
+ call Function1d67
.asm_12c4b
ret
@@ -8452,7 +26140,7 @@
jr z, .asm_12c8c
ld [CurItem], a
- call $6cdf
+ call Function12cdf
jr nc, .asm_12c94
ld a, $2e
@@ -8464,17 +26152,17 @@
ld [hl], NO_ITEM
call GetItemName
ld hl, TookFromText
- call $1d67
+ call Function1d67
jr .asm_12c9a
.asm_12c8c
ld hl, IsntHoldingAnythingText
- call $1d67
+ call Function1d67
jr .asm_12c9a
.asm_12c94
ld hl, ItemStorageIsFullText
- call $1d67
+ call Function1d67
.asm_12c9a
ret
@@ -8546,11 +26234,96 @@
; 12cdf
-INCBIN "baserom.gbc", $12cdf, $12e00 - $12cdf
+Function12cdf: ; 12cdf
+ ld a, $1
+ ld [$d10c], a
+ ld hl, NumItems
+ jp Function2f66
+; 12cea
+INCBIN "baserom.gbc", $12cea, $12cf5 - $12cea
+Function12cf5: ; 12cf5
+ call Function1d4f
+ call Function1dcf
+ jp Function1c07
+; 12cfe
+
+INCBIN "baserom.gbc", $12cfe, $12d45 - $12cfe
+
+Function12d45: ; 12d45
+ ld a, [InLinkBattle]
+ cp $1
+ jr z, .asm_12d6d
+ cp $2
+ jr z, .asm_12d6d
+ ld hl, $6dc9
+ call LoadMenuDataHeader
+ call Function1d81
+ call Function1c07
+ jp c, $6dc6
+ ld a, [$cfa9]
+ cp $1
+ jr z, .asm_12d6d
+ cp $2
+ jr z, .asm_12d76
+ jp $6dc6
+
+.asm_12d6d
+ ld a, $2e
+ ld hl, $5229
+ rst FarCall
+ ld a, $0
+ ret
+
+.asm_12d76
+ ld hl, $6df1
+ call Function12cf5
+ jr c, .asm_12d9a
+ ld a, [CurPartyMon]
+ ld b, a
+ callba Function4456e
+ jr c, .asm_12d92
+ ld hl, $6dfb
+ call Function1d67
+ jr .asm_12dc6
+
+.asm_12d92
+ ld hl, $6df6
+ call Function1d67
+ jr .asm_12dc6
+
+.asm_12d9a
+ ld hl, $6de2
+ call Function12cf5
+ jr c, .asm_12dc6
+ call GetPartyItemLocation
+ ld a, [hl]
+ ld [CurItem], a
+ call Function12cdf
+ jr nc, .asm_12dbe
+ call GetPartyItemLocation
+ ld [hl], $0
+ call GetCurNick
+ ld hl, $6de7
+ call Function1d67
+ jr .asm_12dc6
+
+.asm_12dbe
+ ld hl, $6dec
+ call Function1d67
+ jr .asm_12dc6
+
+.asm_12dc6
+ ld a, $3
+ ret
+; 12dc9
+
+INCBIN "baserom.gbc", $12dc9, $12e00 - $12dc9
+
+
OpenPartyStats: ; 12e00
- call $1d6e
+ call Function1d6e
call ClearSprites
; PartyMon
xor a
@@ -8559,15 +26332,700 @@
ld a, $25
call Predef
call MaxVolume
- call $1d7d
+ call Function1d7d
ld a, 0
ret
; 12e1b
-INCBIN "baserom.gbc", $12e1b, $13327 - $12e1b
+Function12e1b: ; 12e1b
+ ld a, $3
+ ld hl, $4785
+ rst FarCall
+ ld a, [$d0ec]
+ cp $1
+ jr nz, .asm_12e2d
+ ld b, $4
+ ld a, $2
+ ret
+.asm_12e2d
+ ld a, $3
+ ret
+; 12e30
+
+Function12e30: ; 12e30
+ callba Functionca3b
+ ld a, [$d0ec]
+ cp $2
+ jr z, .asm_12e4c
+ cp $0
+ jr z, .asm_12e4f
+ ld a, $41
+ ld hl, $60b5
+ rst FarCall
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12e4c
+ ld a, $3
+ ret
+
+.asm_12e4f
+ ld a, $0
+ ret
+; 12e52
+
+INCBIN "baserom.gbc", $12e52, $12e55 - $12e52
+
+Function12e55: ; 12e55
+ ld a, $3
+ ld hl, $48ac
+ rst FarCall
+ ld a, [$d0ec]
+ cp $1
+ jr nz, .asm_12e67
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12e67
+ ld a, $3
+ ret
+; 12e6a
+
+Function12e6a: ; 12e6a
+ ld a, $3
+ ld hl, $4ce5
+ rst FarCall
+ ld a, [$d0ec]
+ cp $1
+ jr nz, .asm_12e7c
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12e7c
+ ld a, $3
+ ret
+; 12e7f
+
+Function12e7f: ; 12e7f
+ ld a, $3
+ ld hl, $4d9d
+ rst FarCall
+ ld a, [$d0ec]
+ cp $1
+ jr nz, .asm_12e91
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12e91
+ ld a, $3
+ ret
+; 12e94
+
+Function12e94: ; 12e94
+ ld a, $3
+ ld hl, $4ade
+ rst FarCall
+ ld a, [$d0ec]
+ cp $1
+ jr nz, .asm_12ea6
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12ea6
+ ld a, $3
+ ret
+; 12ea9
+
+Function12ea9: ; 12ea9
+ ld a, $3
+ ld hl, $4c61
+ rst FarCall
+ ld a, [$d0ec]
+ and a
+ jr z, .asm_12eba
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12eba
+ ld a, $3
+ ret
+; 12ebd
+
+Function12ebd: ; 12ebd
+ ld a, $3
+ ld hl, $4909
+ rst FarCall
+ ld a, [$d0ec]
+ and a
+ jr z, .asm_12ece
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12ece
+ ld a, $3
+ ret
+; 12ed1
+
+Function12ed1: ; 12ed1
+ ld a, $3
+ ld hl, $4b9c
+ rst FarCall
+ ld a, [$d0ec]
+ cp $1
+ jr nz, .asm_12ee3
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12ee3
+ ld a, $3
+ ret
+; 12ee6
+
+Function12ee6: ; 12ee6
+ call Function12f05
+ jr nc, .asm_12ef3
+ ld a, $3
+ ld hl, $73df
+ rst FarCall
+ jr .asm_12ef9
+
+.asm_12ef3
+ ld hl, $6f00
+ call PrintText
+
+.asm_12ef9
+ xor a
+ ld [PartyMenuActionText], a
+ ld a, $3
+ ret
+; 12f00
+
+INCBIN "baserom.gbc", $12f00, $12f05 - $12f00
+
+Function12f05: ; 12f05
+ ld a, $24
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [hProduct], a
+ ld a, [hl]
+ ld [hMultiplicand], a
+ ld a, $5
+ ld [hMultiplier], a
+ ld b, $2
+ call Divide
+ ld a, $23
+ call GetPartyParamLocation
+ ld a, [$ffb6]
+ sub [hl]
+ dec hl
+ ld a, [$ffb5]
+ sbc [hl]
+ ret
+; 12f26
+
+Function12f26: ; 12f26
+ ld a, $3
+ ld hl, $4e7d
+ rst FarCall
+ ld a, [$d0ec]
+ cp $1
+ jr nz, .asm_12f38
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12f38
+ ld a, $3
+ ret
+; 12f3b
+
+Function12f3b: ; 12f3b
+ ld a, $3
+ ld hl, $4eeb
+ rst FarCall
+ ld a, [$d0ec]
+ cp $1
+ jr nz, .asm_12f4d
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12f4d
+ ld a, $3
+ ret
+; 12f50
+
+Function12f50: ; 12f50
+ ld a, $14
+ ld hl, $46bc
+ rst FarCall
+ ld b, $4
+ ld a, $2
+ ret
+; 12f5b
+
+INCBIN "baserom.gbc", $12f5b, $12fba - $12f5b
+
+Function12fba: ; 12fba
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_12fd2
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function12fd5
+ pop af
+ ld [Options], a
+ call WhiteBGMap
+
+.asm_12fd2
+ ld a, $0
+ ret
+; 12fd5
+
+Function12fd5: ; 12fd5
+ ld a, [CurPartyMon]
+ inc a
+ ld [$d0d8], a
+ call Function13172
+ call Function132d3
+ ld de, $7163
+ call Function1bb1
+ call Function131ef
+ ld hl, $cfa5
+ set 6, [hl]
+ jr .asm_13009
+
+ call Function1bd3
+ bit 1, a
+ jp nz, Function13038
+ bit 0, a
+ jp nz, Function130c6
+ bit 4, a
+ jp nz, Function1305b
+ bit 5, a
+ jp nz, Function13075
+
+.asm_13009
+ call Function13235
+ ld a, [$d0e3]
+ and a
+ jr nz, .asm_13018
+ call Function13256
+ jp $6ff2
+
+.asm_13018
+ ld a, $7f
+ ld hl, $c57d
+ ld bc, $0005
+ call ByteFill
+ ld hl, $c591
+ ld bc, $0512
+ call ClearBox
+ ld hl, $c591
+ ld de, $716b
+ call PlaceString
+ jp $6ff2
+; 13038
+
+Function13038: ; 13038
+ call PlayClickSFX
+ call WaitSFX
+ ld a, [$d0e3]
+ and a
+ jp z, Function13154
+ ld a, [$d0e3]
+ ld [$cfa9], a
+ xor a
+ ld [$d0e3], a
+ ld hl, $c4c9
+ ld bc, $0812
+ call ClearBox
+ jp $6fe8
+; 1305b
+
+Function1305b: ; 1305b
+ ld a, [$d0e3]
+ and a
+ jp nz, $6ff2
+ ld a, [CurPartyMon]
+ ld b, a
+ push bc
+ call Function1308f
+ pop bc
+ ld a, [CurPartyMon]
+ cp b
+ jp z, $6ff2
+ jp Function12fd5
+; 13075
+
+Function13075: ; 13075
+ ld a, [$d0e3]
+ and a
+ jp nz, $6ff2
+ ld a, [CurPartyMon]
+ ld b, a
+ push bc
+ call $70a7
+ pop bc
+ ld a, [CurPartyMon]
+ cp b
+ jp z, $6ff2
+ jp Function12fd5
+; 1308f
+
+Function1308f: ; 1308f
+.asm_1308f
+ ld a, [CurPartyMon]
+ inc a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, $0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_130a7
+ cp $fd
+ ret nz
+ jr .asm_1308f
+
+.asm_130a7
+ ld a, [CurPartyMon]
+ and a
+ ret z
+.asm_130ac
+ ld a, [CurPartyMon]
+ dec a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, $0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ cp $fd
+ ret nz
+ ld a, [CurPartyMon]
+ and a
+ jr z, .asm_1308f
+ jr .asm_130ac
+; 130c6
+
+Function130c6: ; 130c6
+ call PlayClickSFX
+ call WaitSFX
+ ld a, [$d0e3]
+ and a
+ jr nz, .asm_130de
+ ld a, [$cfa9]
+ ld [$d0e3], a
+ call Function1bee
+ jp $7018
+
+.asm_130de
+ ld hl, PartyMon1Move1
+ ld bc, $0030
+ ld a, [CurPartyMon]
+ call AddNTimes
+ push hl
+ call Function1313a
+ pop hl
+ ld bc, $0015
+ add hl, bc
+ call Function1313a
+ ld a, [IsInBattle]
+ jr z, .asm_13113
+ ld hl, BattleMonMove1
+ ld bc, $0020
+ ld a, [CurPartyMon]
+ call AddNTimes
+ push hl
+ call Function1313a
+ pop hl
+ ld bc, $0006
+ add hl, bc
+ call Function1313a
+
+.asm_13113
+ ld de, $0020
+ call StartSFX
+ call WaitSFX
+ ld de, $0020
+ call StartSFX
+ call WaitSFX
+ ld hl, $c4c9
+ ld bc, $0812
+ call ClearBox
+ ld hl, $c572
+ ld bc, $0109
+ call ClearBox
+ jp $6fe8
+; 1313a
+
+Function1313a: ; 1313a
+ push hl
+ ld a, [$cfa9]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [$d0e3]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ ld b, [hl]
+ ld [hl], a
+ ld a, b
+ ld [de], a
+ ret
+; 13154
+
+Function13154: ; 13154
+ xor a
+ ld [$d0e3], a
+ ld hl, $cfa5
+ res 6, [hl]
+ call ClearSprites
+ jp ClearTileMap
+; 13163
+
+INCBIN "baserom.gbc", $13163, $13172 - $13163
+
+Function13172: ; 13172
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ ld a, $3e
+ ld hl, $7571
+ rst FarCall
+ callba Function8e814
+ ld a, [CurPartyMon]
+ ld e, a
+ ld d, $0
+ ld hl, PartySpecies
+ add hl, de
+ ld a, [hl]
+ ld [$d265], a
+ ld e, $2
+ ld a, $23
+ ld hl, $683f
+ rst FarCall
+ ld hl, $c4b4
+ ld b, $9
+ ld c, $12
+ call TextBox
+ ld hl, $c57c
+ ld b, $5
+ ld c, $12
+ call TextBox
+ ld hl, $c4a2
+ ld bc, $0203
+ call ClearBox
+ xor a
+ ld [MonType], a
+ ld hl, PartyMon1Nickname
+ ld a, [CurPartyMon]
+ call GetNick
+ ld hl, $c4b9
+ call PlaceString
+ push bc
+ ld a, $14
+ ld hl, $484a
+ rst FarCall
+ pop hl
+ call PrintLevel
+ ld hl, PlayerHPPal
+ call SetHPPal
+ ld b, $e
+ call GetSGBLayout
+ ld hl, $c4b0
+ ld bc, $0103
+ jp ClearBox
+; 131ef
+
+Function131ef: ; 131ef
+ xor a
+ ld [hBGMapMode], a
+ ld [$d0e3], a
+ ld [MonType], a
+ ld a, $1f
+ call Predef
+ ld hl, TempMonMove1
+ ld de, $d25e
+ ld bc, $0004
+ call CopyBytes
+ ld a, $28
+ ld [Buffer1], a
+ ld hl, $c4de
+ ld a, $20
+ call Predef
+ ld hl, $c4fa
+ ld a, $23
+ call Predef
+ call WaitBGMap
+ call Function32f9
+ ld a, [$d0eb]
+ inc a
+ ld [$cfa3], a
+ ld hl, $c57c
+ ld b, $5
+ ld c, $12
+ jp TextBox
+; 13235
+
+Function13235: ; 13235
+ ld hl, PartyMon1Move1
+ ld bc, $0030
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld a, [$cfa9]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [CurSpecies], a
+ ld hl, $c591
+ ld bc, $0512
+ jp ClearBox
+; 13256
+
+Function13256: ; 13256
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c568
+ ld de, $72ba
+ call PlaceString
+ ld hl, $c57c
+ ld de, $72c2
+ call PlaceString
+ ld hl, $c59c
+ ld de, $72ca
+ call PlaceString
+ ld a, [CurSpecies]
+ ld b, a
+ ld hl, $c592
+ ld a, $2a
+ call Predef
+ ld a, [CurSpecies]
+ dec a
+ ld hl, $5afd
+ ld bc, $0007
+ call AddNTimes
+ ld a, $10
+ call GetFarByte
+ ld hl, $c5a0
+ cp $2
+ jr c, .asm_132a7
+ ld [$d265], a
+ ld de, $d265
+ ld bc, $0103
+ call PrintNum
+ jr .asm_132ad
+
+.asm_132a7
+ ld de, $72cf
+ call PlaceString
+
+.asm_132ad
+ ld hl, $c5b9
+ ld a, $11
+ call Predef
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 132ba
+
+INCBIN "baserom.gbc", $132ba, $132d3 - $132ba
+
+Function132d3: ; 132d3
+ call Function132da
+ call Function132fe
+ ret
+; 132da
+
+Function132da: ; 132da
+ ld a, [CurPartyMon]
+ and a
+ ret z
+ ld c, a
+ ld e, a
+ ld d, $0
+ ld hl, PartyCount
+ add hl, de
+.asm_132e7
+ ld a, [hl]
+ and a
+ jr z, .asm_132f3
+ cp $fd
+ jr z, .asm_132f3
+ cp $fc
+ jr c, .asm_132f8
+
+.asm_132f3
+ dec hl
+ dec c
+ jr nz, .asm_132e7
+ ret
+
+.asm_132f8
+ ld hl, $c4b0
+ ld [hl], $71
+ ret
+; 132fe
+
+Function132fe: ; 132fe
+ ld a, [CurPartyMon]
+ inc a
+ ld c, a
+ ld a, [PartyCount]
+ cp c
+ ret z
+ ld e, c
+ ld d, $0
+ ld hl, PartySpecies
+ add hl, de
+.asm_1330f
+ ld a, [hl]
+ cp $ff
+ ret z
+ and a
+ jr z, .asm_1331e
+ cp $fd
+ jr z, .asm_1331e
+ cp $fc
+ jr c, .asm_13321
+
+.asm_1331e
+ inc hl
+ jr .asm_1330f
+
+.asm_13321
+ ld hl, $c4b2
+ ld [hl], $ed
+ ret
+; 13327
+
+
SelectMenu: ; 13327
call CheckRegisteredItem
@@ -8575,12 +27033,12 @@
jp UseRegisteredItem
.NotRegistered
- call $2e08
+ call Function2e08
ld b, BANK(ItemMayBeRegisteredText)
ld hl, ItemMayBeRegisteredText
- call $269a
+ call Function269a
call $0a46
- jp $2dcf
+ jp Function2dcf
; 13340
@@ -8707,17 +27165,17 @@
; 133df
.NoFunction ; 133df
- call $2e08
+ call Function2e08
call CantUseItem
- call $2dcf
+ call Function2dcf
and a
ret
; 133ea
.Current ; 133ea
- call $2e08
+ call Function2e08
call DoItemEffect
- call $2dcf
+ call Function2dcf
and a
ret
; 133f5
@@ -8726,8 +27184,8 @@
call ResetWindow
call FadeToMenu
call DoItemEffect
- call $2b3c
- call $2dcf
+ call Function2b3c
+ call Function2dcf
and a
ret
; 13406
@@ -8753,15 +27211,255 @@
.asm_13425
call CantUseItem
- call $2dcf
+ call Function2dcf
and a
ret
; 1342d
-INCBIN "baserom.gbc", $1342d, $13b87 - $1342d
+Function1342d: ; 1342d
+ call Function1344a
+ call Function1347d
+ jr c, .asm_13448
+ ld [$d041], a
+ call Function134dd
+ jr c, .asm_13448
+ ld hl, $d041
+ cp [hl]
+ jr z, .asm_13448
+ call Function134c0
+ and a
+ ret
+.asm_13448
+ scf
+ ret
+; 1344a
+Function1344a: ; 1344a
+ ld a, b
+ ld [EngineBuffer1], a
+ ld a, e
+ ld [CurFruit], a
+ ld a, d
+ ld [MartPointer], a
+ call Function1345a
+ ret
+; 1345a
+
+Function1345a: ; 1345a
+ ld de, CurMart
+ ld bc, $0004
+ ld hl, CurFruit
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ inc hl
+ ld [de], a
+ inc de
+.asm_1346f
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ ld [de], a
+ inc de
+ add hl, bc
+ cp $ff
+ jr nz, .asm_1346f
+ ret
+; 1347d
+
+Function1347d: ; 1347d
+ ld hl, CurFruit
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ ld c, a
+ inc hl
+ ld a, [BackupMapGroup]
+ ld d, a
+ ld a, [BackupMapNumber]
+ ld e, a
+ ld b, $0
+.asm_13495
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ cp $ff
+ jr z, .asm_134be
+ inc hl
+ inc hl
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ inc hl
+ cp d
+ jr nz, .asm_134b7
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ inc hl
+ cp e
+ jr nz, .asm_134b8
+ jr .asm_134bb
+
+.asm_134b7
+ inc hl
+
+.asm_134b8
+ inc b
+ jr .asm_13495
+
+.asm_134bb
+ xor a
+ ld a, b
+ ret
+
+.asm_134be
+ scf
+ ret
+; 134c0
+
+Function134c0: ; 134c0
+ push af
+ ld hl, CurFruit
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ pop af
+ ld bc, $0004
+ call AddNTimes
+ inc hl
+ ld de, $dcac
+ ld a, [EngineBuffer1]
+ ld bc, $0003
+ call FarCopyBytes
+ ret
+; 134dd
+
+Function134dd: ; 134dd
+ call Function1d6e
+ ld hl, $750d
+ call PrintText
+ call Function13512
+ ld hl, $7550
+ call Function1d3c
+ call Function352f
+ call Function1ad2
+ xor a
+ ld [$d0e4], a
+ call Function350c
+ call Function1c17
+ ld a, [$cf73]
+ cp $2
+ jr z, .asm_1350b
+ xor a
+ ld a, [$cf77]
+ ret
+
+.asm_1350b
+ scf
+ ret
+; 1350d
+
+INCBIN "baserom.gbc", $1350d, $13512 - $1350d
+
+
+Function13512: ; 13512
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ ld hl, TileMap
+ ld b, $4
+ ld c, $8
+ call TextBox
+ ld hl, $c4c9
+ ld de, $7537
+ call PlaceString
+ ld hl, $c4f4
+ call Function1353f
+ pop af
+ ld [Options], a
+ ret
+; 13537
+
+INCBIN "baserom.gbc", $13537, $1353f - $13537
+
+
+Function1353f: ; 1353f
+ push hl
+ ld a, [$d041]
+ ld e, a
+ ld d, $0
+ ld hl, $d0f1
+ add hl, de
+ ld a, [hl]
+ pop de
+ call Function1356b
+ ret
+; 13550
+
+INCBIN "baserom.gbc", $13550, $1356b - $13550
+
+
+Function1356b: ; 1356b
+ push de
+ call Function13575
+ ld d, h
+ ld e, l
+ pop hl
+ jp PlaceString
+; 13575
+
+Function13575: ; 13575
+ push de
+ ld e, a
+ ld d, $0
+ ld hl, $7583
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ ret
+; 13583
+
+INCBIN "baserom.gbc", $13583, $135eb - $13583
+
+UnknownScript_0x135eb: ; 0x135eb
+ writecode $3, $6
+ battlecheck
+ startbattle
+ returnafterbattle
+ copybytetovar $dc79
+ iffalse UnknownScript_0x13603
+ end
+; 0x135f8
+
+INCBIN "baserom.gbc", $135f8, $13603 - $135f8
+
+UnknownScript_0x13603: ; 0x13603
+ playsound $0027
+ loadfont
+ 2writetext UnknownText_0x13614
+ closetext
+ loadmovesprites
+ jumpstd $0016
+; 0x1360f
+
+INCBIN "baserom.gbc", $1360f, $13614 - $1360f
+
+UnknownText_0x13614: ; 0x13614
+ text_jump UnknownText_0x1bd2e7, BANK(UnknownText_0x1bd2e7)
+ db $50
+; 0x13619
+
+INCBIN "baserom.gbc", $13619, $13b87 - $13619
+
+
GetSquareRoot: ; 13b87
; Return the square root of de in b.
@@ -8798,9 +27496,36 @@
SECTION "bank5",ROMX,BANK[$5]
-INCBIN "baserom.gbc", $14000, $14032 - $14000
+Function14000: ; 14000
+ ld a, $a
+ ld [$0000], a
+ call LatchClock
+ ld a, $c
+ ld [Function14000], a
+ ld a, [$a000]
+ set 6, a
+ ld [$a000], a
+ call CloseSRAM
+ ret
+; 14019
+
+Function14019: ; 14019
+ ld a, $a
+ ld [$0000], a
+ call LatchClock
+ ld a, $c
+ ld [Function14000], a
+ ld a, [$a000]
+ res 6, a
+ ld [$a000], a
+ call CloseSRAM
+ ret
+; 14032
+
+
+
GetTimeOfDay: ; 14032
; get time of day based on the current hour
ld a, [hHours] ; hour
@@ -8835,9 +27560,194 @@
; 1404c
-INCBIN "baserom.gbc", $1404c, $14183 - $1404c
+INCBIN "baserom.gbc", $1404c, $14056 - $1404c
+Function14056: ; 14056
+ call UpdateTime
+ ld hl, $d4ba
+ ld a, [CurDay]
+ ld [hli], a
+ ld a, [hHours]
+ ld [hli], a
+ ld a, [hMinutes]
+ ld [hli], a
+ ld a, [hSeconds]
+ ld [hli], a
+ ret
+; 1406a
+
+Function1406a: ; 1406a
+ ld a, $a
+ ld [$0000], a
+ call LatchClock
+ ld hl, $a000
+ ld a, $c
+ ld [Function14000], a
+ res 7, [hl]
+ ld a, $0
+ ld [Function14000], a
+ xor a
+ ld [$ac60], a
+ call CloseSRAM
+ ret
+; 14089
+
+
+
+StartClock: ; 14089
+ call GetClock
+ call Function1409b
+ call FixDays
+ jr nc, .asm_14097
+ call Function6d3
+
+.asm_14097
+ call Function14019
+ ret
+; 1409b
+
+Function1409b: ; 1409b
+ ld hl, hRTCDayHi
+ bit 7, [hl]
+ jr nz, .asm_140a8
+ bit 6, [hl]
+ jr nz, .asm_140a8
+ xor a
+ ret
+
+.asm_140a8
+ ld a, $80
+ call Function6d3
+ ret
+; 140ae
+
+Function140ae: ; 140ae
+ call $06e3
+ ld c, a
+ and $c0
+ jr nz, .asm_140c8
+ ld a, c
+ and $20
+ jr z, .asm_140eb
+ call UpdateTime
+ ld a, [$d4ba]
+ ld b, a
+ ld a, [CurDay]
+ cp b
+ jr c, .asm_140eb
+
+.asm_140c8
+ ld a, $4
+ ld hl, $53da
+ rst FarCall
+ ld a, $5c
+ ld hl, $4923
+ rst FarCall
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8c]
+ inc a
+ ld [$aa8c], a
+ ld a, [$b2fa]
+ inc a
+ ld [$b2fa], a
+ call CloseSRAM
+ ret
+
+.asm_140eb
+ xor a
+ ret
+; 140ed
+
+
+
+Function140ed: ; 140ed
+ call GetClock
+ call FixDays
+ ld hl, hRTCSeconds
+ ld de, StartSecond
+ ld a, [$d089]
+ sub [hl]
+ dec hl
+ jr nc, .asm_14102
+ add $3c
+
+.asm_14102
+ ld [de], a
+ dec de
+ ld a, [$d088]
+ sbc [hl]
+ dec hl
+ jr nc, .asm_1410d
+ add $3c
+
+.asm_1410d
+ ld [de], a
+ dec de
+ ld a, [$d087]
+ sbc [hl]
+ dec hl
+ jr nc, .asm_14118
+ add $18
+
+.asm_14118
+ ld [de], a
+ dec de
+ ld a, [StringBuffer2]
+ sbc [hl]
+ dec hl
+ jr nc, .asm_14128
+ add $8c
+ ld c, $7
+ call SimpleDivide
+
+.asm_14128
+ ld [de], a
+ ret
+; 1412a
+
+Function1412a: ; 1412a
+ ld a, $1
+ ld [rVBK], a
+ call Get2bpp
+ xor a
+ ld [rVBK], a
+ ret
+; 14135
+
+Function14135: ; 14135
+ call GetPlayerSprite
+ ld a, [UsedSprites]
+ ld [$ffbd], a
+ ld a, [$d155]
+ ld [$ffbe], a
+ call Function143c8
+ ret
+; 14146
+
+INCBIN "baserom.gbc", $14146, $14168 - $14146
+
+
+Function14168: ; 14168
+ call Function1416f
+ call Function14209
+ ret
+; 1416f
+
+Function1416f: ; 1416f
+ xor a
+ ld bc, $0040
+ ld hl, UsedSprites
+ call ByteFill
+ call GetPlayerSprite
+ call AddMapSprites
+ call Function142db
+ ret
+; 14183
+
+
+
GetPlayerSprite: ; 14183
; Get Chris or Kris's sprite.
@@ -8944,9 +27854,37 @@
; 14209
-INCBIN "baserom.gbc", $14209, $14236 - $14209
+Function14209: ; 14209
+ ld a, $4
+ call Function263b
+ call Function1439b
+ call Function14215
+ ret
+; 14215
+Function14215: ; 14215
+ ld a, [$d13e]
+ bit 6, a
+ ret nz
+ ld c, $8
+ ld a, $5
+ ld hl, $442f
+ rst FarCall
+ call GetMapPermission
+ call CheckOutdoorMap
+ ld c, $b
+ jr z, .asm_1422f
+ ld c, $a
+.asm_1422f
+ ld a, $5
+ ld hl, $442f
+ rst FarCall
+ ret
+; 14236
+
+
+
SafeGetSprite: ; 14236
push hl
call GetSprite
@@ -9320,9 +28258,142 @@
; 1439b
-INCBIN "baserom.gbc", $1439b, $14495 - $1439b
+Function1439b: ; 1439b
+ ld hl, UsedSprites
+ ld c, $20
+.asm_143a0
+ ld a, [$d13e]
+ res 5, a
+ ld [$d13e], a
+ ld a, [hli]
+ and a
+ jr z, .asm_143c7
+ ld [$ffbd], a
+ ld a, [hli]
+ ld [$ffbe], a
+ bit 7, a
+ jr z, .asm_143bd
+ ld a, [$d13e]
+ set 5, a
+ ld [$d13e], a
+.asm_143bd
+ push bc
+ push hl
+ call Function143c8
+ pop hl
+ pop bc
+ dec c
+ jr nz, .asm_143a0
+.asm_143c7
+ ret
+; 143c8
+
+Function143c8: ; 143c8
+ ld a, [$ffbd]
+ call SafeGetSprite
+ ld a, [$ffbe]
+ call Function14406
+ push hl
+ push de
+ push bc
+ ld a, [$d13e]
+ bit 7, a
+ jr nz, .asm_143df
+ call Function14418
+
+.asm_143df
+ pop bc
+ ld l, c
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ pop de
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [$d13e]
+ bit 5, a
+ jr nz, .asm_14405
+ bit 6, a
+ jr nz, .asm_14405
+ ld a, [$ffbd]
+ call Function142a7
+ jr c, .asm_14405
+ ld a, h
+ add $8
+ ld h, a
+ call Function14418
+
+.asm_14405
+ ret
+; 14406
+
+Function14406: ; 14406
+ and $7f
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld a, l
+ add $0
+ ld l, a
+ ld a, h
+ adc $80
+ ld h, a
+ ret
+; 14418
+
+Function14418: ; 14418
+ ld a, [rVBK]
+ push af
+ ld a, [$d13e]
+ bit 5, a
+ ld a, $1
+ jr z, .asm_14426
+ ld a, $0
+
+.asm_14426
+ ld [rVBK], a
+ call Get2bpp
+ pop af
+ ld [rVBK], a
+ ret
+; 1442f
+
+Function1442f: ; 1442f
+ ld a, c
+ ld bc, $0006
+ ld hl, $444d
+ call AddNTimes
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld c, [hl]
+ swap c
+ inc hl
+ ld b, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, c
+ and a
+ ret z
+ call Function1412a
+ ret
+; 1444d
+
+INCBIN "baserom.gbc", $1444d, $14495 - $1444d
+
+
SpriteMons: ; 14495
db UNOWN
db GEODUDE
@@ -10064,9 +29135,672 @@
; 1499a
-INCBIN "baserom.gbc", $1499a, $152ab - $1499a
+Function1499a: ; 1499a
+ ld a, [StandingTile]
+ cp $60
+ jr z, .asm_149ad
+ cp $68
+ jr z, .asm_149ad
+ and $f0
+ cp $70
+ jr z, .asm_149ad
+ and a
+ ret
+.asm_149ad
+ scf
+ ret
+; 149af
+Function149af: ; 149af
+ ld a, [StandingTile]
+ cp $70
+ jr z, .asm_149c4
+ cp $76
+ jr z, .asm_149c4
+ cp $78
+ jr z, .asm_149c4
+ cp $7e
+ jr z, .asm_149c4
+ scf
+ ret
+
+.asm_149c4
+ xor a
+ ret
+; 149c6
+
+INCBIN "baserom.gbc", $149c6, $149dd - $149c6
+
+Function149dd: ; 149dd
+ ld a, [StandingTile]
+ ld hl, $49ea
+ ld de, $0001
+ call IsInArray
+ ret
+; 149ea
+
+INCBIN "baserom.gbc", $149ea, $149f5 - $149ea
+
+Function149f5: ; 149f5
+ ld a, c
+ ld hl, $4a00
+ ld de, $0001
+ call IsInArray
+ ret
+; 14a00
+
+INCBIN "baserom.gbc", $14a00, $14a07 - $14a00
+
+
+Function14a07: ; 14a07
+ ld a, [StandingTile]
+ ld de, $001f
+ cp $71
+ ret z
+ ld de, $0013
+ cp $7c
+ ret z
+ ld de, $0023
+ ret
+; 14a1a
+
+INCBIN "baserom.gbc", $14a1a, $14b5f - $14a1a
+
+
+Function14b5f: ; 14b5f
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $bdd9
+ ld de, $be3b
+ ld bc, $0b1a
+.asm_14b6d
+ ld a, [hld]
+ ld [de], a
+ dec de
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_14b6d
+ ld hl, OverworldMap
+ ld de, $b2c0
+ ld bc, $0062
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 14b85
+
+Function14b85: ; 14b85
+ call Function14c10
+ ret
+; 14b89
+
+INCBIN "baserom.gbc", $14b89, $14c10 - $14b89
+
+
+Function14c10: ; 14c10
+ ld a, $1
+ ld [$cfcd], a
+ ld a, $5
+ ld hl, $4056
+ rst FarCall
+ ld a, $41
+ ld hl, $50d9
+ rst FarCall
+ call Function14da9
+ call Function14dbb
+ call Function14dd7
+ call Function14df7
+ call Function14e0c
+ call Function14e13
+ call Function14e2d
+ call Function14e40
+ call Function14e55
+ call Function14e76
+ call Function14e8b
+ call Function14c6b
+ ld a, $11
+ ld hl, $4725
+ rst FarCall
+ ld a, $41
+ ld hl, $6187
+ rst FarCall
+ ld a, $5
+ ld hl, $406a
+ rst FarCall
+ ld a, $1
+ call GetSRAMBank
+ ld a, [$be45]
+ cp $4
+ jr nz, .asm_14c67
+ xor a
+ ld [$be45], a
+
+.asm_14c67
+ call CloseSRAM
+ ret
+; 14c6b
+
+Function14c6b: ; 14c6b
+ call Function14c90
+ ld a, $0
+ call GetSRAMBank
+ ld a, [$bf10]
+ ld e, a
+ ld a, [$bf11]
+ ld d, a
+ or e
+ jr z, .asm_14c84
+ ld a, e
+ sub l
+ ld a, d
+ sbc h
+ jr c, .asm_14c8c
+
+.asm_14c84
+ ld a, l
+ ld [$bf10], a
+ ld a, h
+ ld [$bf11], a
+
+.asm_14c8c
+ call CloseSRAM
+ ret
+; 14c90
+
+Function14c90: ; 14c90
+ ld hl, $c000
+.asm_14c93
+ ld a, [hl]
+ or a
+ ret nz
+ inc hl
+ jr .asm_14c93
+; 14c99
+
+INCBIN "baserom.gbc", $14c99, $14cbb - $14c99
+
+
+Function14cbb: ; 14cbb
+ call Function151fb
+ call Function14d06
+ call Function14ce2
+ call Function14cf4
+ call Function14d68
+ call Function14d5c
+ ld a, $0
+ call GetSRAMBank
+ xor a
+ ld [$bf10], a
+ ld [$bf11], a
+ call CloseSRAM
+ ld a, $1
+ ld [$d4b4], a
+ ret
+; 14ce2
+
+Function14ce2: ; 14ce2
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $b260
+ ld bc, $0060
+ xor a
+ call ByteFill
+ jp CloseSRAM
+; 14cf4
+
+Function14cf4: ; 14cf4
+ ld a, $0
+ call GetSRAMBank
+ ld hl, $abe4
+ ld bc, $004c
+ xor a
+ call ByteFill
+ jp CloseSRAM
+; 14d06
+
+Function14d06: ; 14d06
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $b2c0
+ ld bc, $0b7c
+ xor a
+ call ByteFill
+ jp CloseSRAM
+; 14d18
+
+INCBIN "baserom.gbc", $14d18, $14d5c - $14d18
+
+
+Function14d5c: ; 14d5c
+ ld a, $1
+ call GetSRAMBank
+ xor a
+ ld [$be45], a
+ jp CloseSRAM
+; 14d68
+
+Function14d68: ; 14d68
+ call Function1509a
+ ret
+; 14d6c
+
+INCBIN "baserom.gbc", $14d6c, $14da0 - $14d6c
+
+
+Function14da0: ; 14da0
+ ld a, [$d4b4]
+ and a
+ ret nz
+ call Function14cbb
+ ret
+; 14da9
+
+Function14da9: ; 14da9
+ ld a, $1
+ call GetSRAMBank
+ ld a, $63
+ ld [$a008], a
+ ld a, $7f
+ ld [$ad0f], a
+ jp CloseSRAM
+; 14dbb
+
+Function14dbb: ; 14dbb
+ ld a, $1
+ call GetSRAMBank
+ ld hl, Options
+ ld de, $a000
+ ld bc, $0008
+ call CopyBytes
+ ld a, [Options]
+ and $ef
+ ld [$a000], a
+ jp CloseSRAM
+; 14dd7
+
+Function14dd7: ; 14dd7
+ ld a, $1
+ call GetSRAMBank
+ ld hl, PlayerID
+ ld de, $a009
+ ld bc, $082a
+ call CopyBytes
+ ld hl, FlypointPerms
+ ld de, $a833
+ ld bc, $0032
+ call CopyBytes
+ jp CloseSRAM
+; 14df7
+
+Function14df7: ; 14df7
+ ld a, $1
+ call GetSRAMBank
+ ld hl, PartyCount
+ ld de, $a865
+ ld bc, $031e
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 14e0c
+
+Function14e0c: ; 14e0c
+ call Function150d8
+ call Function150f9
+ ret
+; 14e13
+
+Function14e13: ; 14e13
+ ld hl, $a009
+ ld bc, $0b7a
+ ld a, $1
+ call GetSRAMBank
+ call Function15273
+ ld a, e
+ ld [$ad0d], a
+ ld a, d
+ ld [$ad0e], a
+ call CloseSRAM
+ ret
+; 14e2d
+
+Function14e2d: ; 14e2d
+ ld a, $0
+ call GetSRAMBank
+ ld a, $63
+ ld [$b208], a
+ ld a, $7f
+ ld [$bf0f], a
+ call CloseSRAM
+ ret
+; 14e40
+
+Function14e40: ; 14e40
+ ld a, $0
+ call GetSRAMBank
+ ld hl, Options
+ ld de, $b200
+ ld bc, $0008
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 14e55
+
+Function14e55: ; 14e55
+ ld a, $0
+ call GetSRAMBank
+ ld hl, PlayerID
+ ld de, $b209
+ ld bc, $082a
+ call CopyBytes
+ ld hl, FlypointPerms
+ ld de, $ba33
+ ld bc, $0032
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 14e76
+
+Function14e76: ; 14e76
+ ld a, $0
+ call GetSRAMBank
+ ld hl, PartyCount
+ ld de, $ba65
+ ld bc, $031e
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 14e8b
+
+Function14e8b: ; 14e8b
+ ld hl, $b209
+ ld bc, $0b7a
+ ld a, $0
+ call GetSRAMBank
+ call Function15273
+ ld a, e
+ ld [$bf0d], a
+ ld a, d
+ ld [$bf0e], a
+ call CloseSRAM
+ ret
+; 14ea5
+
+INCBIN "baserom.gbc", $14ea5, $14f1c - $14ea5
+
+
+Function14f1c: ; 14f1c
+ xor a
+ ld [$cfcd], a
+ call Function14f84
+ ld a, [$cfcd]
+ and a
+ jr z, .asm_14f46
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $a044
+ ld de, StartDay
+ ld bc, $0008
+ call CopyBytes
+ ld hl, $a3da
+ ld de, StatusFlags
+ ld a, [hl]
+ ld [de], a
+ call CloseSRAM
+ ret
+
+.asm_14f46
+ call Function14faf
+ ld a, [$cfcd]
+ and a
+ jr z, .asm_14f6c
+ ld a, $0
+ call GetSRAMBank
+ ld hl, $b244
+ ld de, StartDay
+ ld bc, $0008
+ call CopyBytes
+ ld hl, $b5da
+ ld de, StatusFlags
+ ld a, [hl]
+ ld [de], a
+ call CloseSRAM
+ ret
+
+.asm_14f6c
+ ld hl, $4f7c
+ ld de, Options
+ ld bc, $0008
+ call CopyBytes
+ call Function67e
+ ret
+; 14f7c
+
+INCBIN "baserom.gbc", $14f7c, $14f84 - $14f7c
+
+
+Function14f84: ; 14f84
+ ld a, $1
+ call GetSRAMBank
+ ld a, [$a008]
+ cp $63
+ jr nz, .asm_14fab
+ ld a, [$ad0f]
+ cp $7f
+ jr nz, .asm_14fab
+ ld hl, $a000
+ ld de, Options
+ ld bc, $0008
+ call CopyBytes
+ call CloseSRAM
+ ld a, $1
+ ld [$cfcd], a
+
+.asm_14fab
+ call CloseSRAM
+ ret
+; 14faf
+
+Function14faf: ; 14faf
+ ld a, $0
+ call GetSRAMBank
+ ld a, [$b208]
+ cp $63
+ jr nz, .asm_14fd3
+ ld a, [$bf0f]
+ cp $7f
+ jr nz, .asm_14fd3
+ ld hl, $b200
+ ld de, Options
+ ld bc, $0008
+ call CopyBytes
+ ld a, $2
+ ld [$cfcd], a
+
+.asm_14fd3
+ call CloseSRAM
+ ret
+; 14fd7
+
+INCBIN "baserom.gbc", $14fd7, $1509a - $14fd7
+
+
+Function1509a: ; 1509a
+ ld a, $1
+ call GetSRAMBank
+ ld hl, PlayerGender
+ ld de, $be3d
+ ld bc, $0007
+ call CopyBytes
+ ld hl, $d479
+ ld a, [hli]
+ ld [$a60e], a
+ ld a, [hli]
+ ld [$a60f], a
+ jp CloseSRAM
+; 150b9
+
+INCBIN "baserom.gbc", $150b9, $150d8 - $150b9
+
+
+Function150d8: ; 150d8
+ ld a, [$db72]
+ cp $e
+ jr c, .asm_150e3
+ xor a
+ ld [$db72], a
+
+.asm_150e3
+ ld e, a
+ ld d, $0
+ ld hl, $522d
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ ret
+; 150f9
+
+Function150f9: ; 150f9
+ push hl
+ push af
+ push de
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $ad10
+ ld de, EnemyMoveAnimation
+ ld bc, $01e0
+ call CopyBytes
+ call CloseSRAM
+ pop de
+ pop af
+ push af
+ push de
+ call GetSRAMBank
+ ld hl, EnemyMoveAnimation
+ ld bc, $01e0
+ call CopyBytes
+ call CloseSRAM
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $aef0
+ ld de, EnemyMoveAnimation
+ ld bc, $01e0
+ call CopyBytes
+ call CloseSRAM
+ pop de
+ pop af
+ ld hl, $01e0
+ add hl, de
+ ld e, l
+ ld d, h
+ push af
+ push de
+ call GetSRAMBank
+ ld hl, EnemyMoveAnimation
+ ld bc, $01e0
+ call CopyBytes
+ call CloseSRAM
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $b0d0
+ ld de, EnemyMoveAnimation
+ ld bc, $008e
+ call CopyBytes
+ call CloseSRAM
+ pop de
+ pop af
+ ld hl, $01e0
+ add hl, de
+ ld e, l
+ ld d, h
+ call GetSRAMBank
+ ld hl, EnemyMoveAnimation
+ ld bc, $008e
+ call CopyBytes
+ call CloseSRAM
+ pop hl
+ ret
+; 1517d
+
+INCBIN "baserom.gbc", $1517d, $151fb - $1517d
+
+
+Function151fb: ; 151fb
+ ld hl, $522d
+ ld c, $e
+.asm_15200
+ push bc
+ ld a, [hli]
+ call GetSRAMBank
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ xor a
+ ld [de], a
+ inc de
+ ld a, $ff
+ ld [de], a
+ inc de
+ ld bc, $044c
+.asm_15213
+ xor a
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_15213
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, $ff
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ call CloseSRAM
+ pop bc
+ dec c
+ jr nz, .asm_15200
+ ret
+; 1522d
+
+INCBIN "baserom.gbc", $1522d, $15273 - $1522d
+
+
+Function15273: ; 15273
+ ld de, $0000
+.asm_15276
+ ld a, [hli]
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_15276
+ ret
+; 15283
+
+INCBIN "baserom.gbc", $15283, $152ab - $15283
+
+
BlackoutPoints: ; 0x152ab
db GROUP_KRISS_HOUSE_2F, MAP_KRISS_HOUSE_2F, 3, 3
db GROUP_VIRIDIAN_POKECENTER_1F, MAP_VIRIDIAN_POKECENTER_1F, 5, 3 ; unused
@@ -10098,8 +29832,94 @@
db GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW, 6, 2
db $ff, $ff, $ff, $ff
-INCBIN "baserom.gbc", $1531f, $15736 - $1531f
+INCBIN "baserom.gbc", $1531f, $15344 - $1531f
+Function15344: ; 15344
+ ld hl, BlackoutPoints
+ ld c, $0
+.asm_15349
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_1535f
+ cp d
+ jr nz, .asm_15356
+ inc hl
+ ld a, [hld]
+ cp e
+ jr z, .asm_15361
+
+.asm_15356
+ push bc
+ ld bc, $0004
+ add hl, bc
+ pop bc
+ inc c
+ jr .asm_15349
+
+.asm_1535f
+ and a
+ ret
+
+.asm_15361
+ scf
+ ret
+; 15363
+
+
+Function15363: ; 15363
+ ld a, [$ff9f]
+ and $f
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, $5377
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Function1541d
+ ret
+; 15377
+
+INCBIN "baserom.gbc", $15377, $1541d - $15377
+
+
+Function1541d: ; 1541d
+.asm_1541d
+ ld a, [hli]
+ cp $ff
+ ret z
+ push hl
+ ld c, a
+ ld b, $0
+ ld hl, $5440
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld b, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ bit 7, b
+ jr z, .asm_15439
+ pop de
+ ld a, [de]
+ ld c, a
+ inc de
+ push de
+
+.asm_15439
+ ld a, b
+ and $7f
+ rst FarCall
+ pop hl
+ jr .asm_1541d
+; 15440
+
+INCBIN "baserom.gbc", $15440, $15736 - $15440
+
KrissPCMenuData: ; 0x15736
db %01000000
db 0, 0 ; top left corner coords (y, x)
@@ -10162,7 +29982,7 @@
INCBIN "baserom.gbc", $157bb, $157d1 - $157bb
KrisWithdrawItemMenu: ; 0x157d1
- call $1d6e
+ call Function1d6e
ld a, BANK(ClearPCItemScreen)
ld hl, ClearPCItemScreen
rst $8
@@ -10173,7 +29993,7 @@
jr .asm_157da
.asm_157e4
- call $2b3c
+ call Function2b3c
xor a
ret
; 0x157e9
@@ -10194,7 +30014,7 @@
.askquantity
ld hl, .HowManyText
- call $1d4f
+ call Function1d4f
ld a, $9
ld hl, $4fbf
rst $8
@@ -10208,7 +30028,7 @@
ld a, [$d107]
ld [Buffer2], a
ld hl, NumItems
- call $2f66
+ call Function2f66
jr nc, .PackFull
ld a, [Buffer1]
ld [$d10c], a
@@ -10215,11 +30035,11 @@
ld a, [Buffer2]
ld [$d107], a
ld hl, $d8f1
- call $2f53
+ call Function2f53
ld a, $3b
call Predef
ld hl, .WithdrewText
- call $1d4f
+ call Function1d4f
xor a
ld [hBGMapMode], a
call Function1c07
@@ -10227,7 +30047,7 @@
.PackFull
ld hl, .NoRoomText
- call $1d67
+ call Function1d67
ret
.done
@@ -10248,7 +30068,7 @@
KrisTossItemMenu: ; 0x1585f
- call $1d6e
+ call Function1d6e
ld a, BANK(ClearPCItemScreen)
ld hl, ClearPCItemScreen
rst $8
@@ -10262,7 +30082,7 @@
jr .asm_15868
.asm_15878
- call $2b3c
+ call Function2b3c
xor a
ret
; 0x1587d
@@ -10291,7 +30111,7 @@
call Function158b8
jr c, .asm_158b6
call Function2ed3
- call $1d6e
+ call Function1d6e
ld a, $4
ld hl, $46a5
rst $8
@@ -10309,7 +30129,7 @@
jr .asm_1589c
.asm_158b3
- call $2b3c
+ call Function2b3c
.asm_158b6
xor a
@@ -10322,7 +30142,7 @@
rst $8
ret nc
ld hl, Text158c7
- call $1d67
+ call Function1d67
scf
ret
; 0x158c7
@@ -10385,13 +30205,13 @@
.asm_1591d
ld hl, .HowManyText
- call $1d4f
+ call Function1d4f
ld a, $9
ld hl, $4fbf
rst $8
push af
- call $1c07
- call $1c07
+ call Function1c07
+ call Function1c07
pop af
jr c, .asm_1596c
@@ -10401,7 +30221,7 @@
ld a, [$d107]
ld [Buffer2], a
ld hl, $d8f1
- call $2f66
+ call Function2f66
jr nc, .asm_15965
ld a, [Buffer1]
ld [$d10c], a
@@ -10408,7 +30228,7 @@
ld a, [Buffer2]
ld [$d107], a
ld hl, NumItems
- call $2f53
+ call Function2f53
ld a, $3b
call Predef
ld hl, .DepositText
@@ -10456,7 +30276,7 @@
ld a, $0
ld [$c2ce], a
ld hl, MenuData15a08
- call $1d3c
+ call Function1d3c
hlcoord 0, 0
ld b, $a
ld c, $12
@@ -10465,7 +30285,7 @@
ld [$cf88], a
ld a, [$d0dd]
ld [$d0e4], a
- call $350c
+ call Function350c
ld a, [$d0e4]
ld [$d0dd], a
ld a, [$cfa9]
@@ -10514,7 +30334,7 @@
ld a, $9
ld hl, $4706
rst $8
- call $1bee
+ call Function1bee
and a
ret
@@ -10539,9 +30359,1549 @@
dbw BANK(Function24ac3), Function24ac3
dbw BANK(Function244c3), Function244c3
-INCBIN "baserom.gbc", $15a20, $174ba - $15a20
+INCBIN "baserom.gbc", $15a20, $15a45 - $15a20
+OpenMartDialog: ; 15a45
+ call GetMart
+ ld a, c
+ ld [EngineBuffer1], a
+ call Function15b10
+ ld a, [EngineBuffer1]
+ ld hl, .dialogs
+ rst JumpTable
+ ret
+; 15a57
+
+.dialogs
+ dw MartDialog
+ dw HerbShop
+ dw BargainShop
+ dw Pharmacist
+ dw VendingMachine
+; 15a61
+
+MartDialog: ; 15a61
+ ld a, 0
+ ld [EngineBuffer1], a
+ xor a
+ ld [MovementAnimation], a
+ call Function15b47
+ ret
+; 15a6e
+
+HerbShop: ; 15a6e
+ call ReadMart
+ call Function1d6e
+ ld hl, $5e4a
+ call Function15fcd
+ call Function15c62
+ ld hl, $5e68
+ call Function15fcd
+ ret
+; 15a84
+
+BargainShop: ; 15a84
+ ld b, $5
+ ld de, $5c51
+ call Function15b10
+ call Function15c25
+ call Function1d6e
+ ld hl, $5e6d
+ call Function15fcd
+ call Function15c62
+ ld hl, WalkingDirection
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_15aa7
+ ld hl, $dc1e
+ set 6, [hl]
+
+.asm_15aa7
+ ld hl, $5e8b
+ call Function15fcd
+ ret
+; 15aae
+
+Pharmacist: ; 15aae
+ call ReadMart
+ call Function1d6e
+ ld hl, $5e90
+ call Function15fcd
+ call Function15c62
+ ld hl, $5eae
+ call Function15fcd
+ ret
+; 15ac4
+
+VendingMachine: ; 15ac4
+ ld b, $5
+ ld de, $5aee
+ ld hl, StatusFlags
+ bit 6, [hl]
+ jr z, .asm_15ad5
+ ld b, $5
+ ld de, $5aff
+
+.asm_15ad5
+ call Function15b10
+ call Function15c25
+ call Function1d6e
+ ld hl, UnknownText_0x15f83
+ call Function15fcd
+ call Function15c62
+ ld hl, $5fb4
+ call Function15fcd
+ ret
+; 15aee
+
+INCBIN "baserom.gbc", $15aee, $15b10 - $15aee
+
+
+Function15b10: ; 15b10
+ ld a, b
+ ld [CurFruit], a
+ ld a, e
+ ld [MartPointer], a
+ ld a, d
+ ld [MartPointer + 1], a
+ ld hl, CurMart
+ xor a
+ ld bc, CurMartEnd - CurMart
+ call ByteFill
+ xor a
+ ld [MovementAnimation], a
+ ld [WalkingDirection], a
+ ld [FacingDirection], a
+ ret
+; 15b31
+
+GetMart: ; 15b31
+ ld a, e
+ cp (MartsEnd - Marts) / 2
+ jr c, .IsAMart
+ ld b, $5
+ ld de, DefaultMart
+ ret
+
+.IsAMart
+ ld hl, Marts
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, $5
+ ret
+; 15b47
+
+Function15b47: ; 15b47
+.asm_15b47
+ ld a, [MovementAnimation]
+ ld hl, .table_15b56
+ rst JumpTable
+ ld [MovementAnimation], a
+ cp $ff
+ jr nz, .asm_15b47
+ ret
+
+.table_15b56
+ dw Function15b62
+ dw Function15b6e
+ dw Function15b8d
+ dw Function15b9a
+ dw Function15ba3
+ dw Function15baf
+; 15b62
+
+Function15b62: ; 15b62
+ call Function1d6e
+ ld hl, UnknownText_0x15f83
+ call PrintText
+ ld a, $1
+ ret
+; 15b6e
+
+Function15b6e: ; 15b6e
+ ld hl, $5f88
+ call Function1d3c
+ call Function1d81
+ jr c, .asm_15b84
+ ld a, [$cfa9]
+ cp $1
+ jr z, .asm_15b87
+ cp $2
+ jr z, .asm_15b8a
+.asm_15b84
+ ld a, $4
+ ret
+.asm_15b87
+ ld a, $2
+ ret
+.asm_15b8a
+ ld a, $3
+ ret
+; 15b8d
+
+Function15b8d: ; 15b8d
+ call Function1c07
+ call ReadMart
+ call Function15c62
+ and a
+ ld a, $5
+ ret
+; 15b9a
+
+Function15b9a: ; 15b9a
+ call Function1c07
+ call Function15eb3
+ ld a, $5
+ ret
+; 15ba3
+
+Function15ba3: ; 15ba3
+ call Function1c07
+ ld hl, $5fb4
+ call Function15fcd
+ ld a, $ff
+ ret
+; 15baf
+
+Function15baf: ; 15baf
+ call Function1d6e
+ ld hl, UnknownText_0x15fb9
+ call PrintText
+ ld a, $1
+ ret
+; 15bbb
+
+ReadMart: ; 15bbb
+ ld hl, MartPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, CurMart
+.CopyMart
+ ld a, [CurFruit]
+ call GetFarByte
+ ld [de], a
+ inc hl
+ inc de
+ cp $ff
+ jr nz, .CopyMart
+ ld hl, DefaultFlypoint
+ ld de, CurMart + 1
+.ReadMartItem
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_15be4
+ push de
+ call GetMartItemPrice
+ pop de
+ jr .ReadMartItem
+
+.asm_15be4
+ ret
+; 15be5
+
+GetMartItemPrice: ; 15be5
+; Return the price of item a in BCD at hl and in tiles at StringBuffer1.
+ push hl
+ ld [CurItem], a
+ callba GetItemPrice
+ pop hl
+
+GetMartPrice: ; 15bf0
+; Return price de in BCD at hl and in tiles at StringBuffer1.
+ push hl
+ ld a, d
+ ld [StringBuffer2], a
+ ld a, e
+ ld [StringBuffer2 + 1], a
+ ld hl, StringBuffer1
+ ld de, StringBuffer2
+ ld bc, $82 << 8 + 6 ; 6 digits
+ call PrintNum
+ pop hl
+
+ ld de, StringBuffer1
+ ld c, 6 / 2 ; 6 digits
+.asm_15c0b
+ call .TileToNum
+ swap a
+ ld b, a
+ call .TileToNum
+ or b
+ ld [hli], a
+ dec c
+ jr nz, .asm_15c0b
+ ret
+; 15c1a
+
+.TileToNum ; 15c1a
+ ld a, [de]
+ inc de
+ cp " "
+ jr nz, .asm_15c22
+ ld a, "0"
+
+.asm_15c22
+ sub "0"
+ ret
+; 15c25
+
+Function15c25: ; 15c25
+ ld hl, MartPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ inc hl
+ ld bc, DefaultFlypoint
+ ld de, CurMart + 1
+.asm_15c33
+ ld a, [hli]
+ ld [de], a
+ inc de
+ cp $ff
+ jr z, .asm_15c4b
+
+ push de
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld h, b
+ ld l, c
+ call GetMartPrice
+ ld b, h
+ ld c, l
+ pop hl
+ pop de
+ jr .asm_15c33
+
+.asm_15c4b
+ pop hl
+ ld a, [hl]
+ ld [CurMart], a
+ ret
+; 15c51
+
+INCBIN "baserom.gbc", $15c51, $15c62 - $15c51
+
+
+Function15c62: ; 15c62
+ call FadeToMenu
+ callba Function8000
+ xor a
+ ld [WalkingY], a
+ ld a, 1
+ ld [WalkingX], a
+.asm_15c74
+ call Function15cef
+ jr nc, .asm_15c74
+ call Function2b3c
+ ret
+; 15c7d
+
+Function15c7d: ; 15c7d
+ push af
+ call Function15ca3
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; 15c91
+
+Function15c91: ; 15c91
+ call Function15ca3
+ inc hl
+ inc hl
+ ld a, [hl]
+ and a
+ jp z, Function15d83
+ cp 1
+ jp z, Function15da5
+ jp Function15de2
+; 15ca3
+
+Function15ca3: ; 15ca3
+ ld a, [EngineBuffer1]
+ ld e, a
+ ld d, 0
+ ld hl, .data_15cb0
+ add hl, de
+ add hl, de
+ add hl, de
+ ret
+; 15cb0
+
+.data_15cb0 ; 15cb0
+ dwb $5cbf, 0
+ dwb $5ccb, 0
+ dwb $5cd7, 1
+ dwb $5ce3, 0
+ dwb $5cbf, 2
+; 15cbf
+
+INCBIN "baserom.gbc", $15cbf, $15cef - $15cbf
+
+
+Function15cef: ; 15cef
+ ld a, $9
+ ld hl, $4ae8
+ rst FarCall
+ call Function1ad2
+ ld hl, $5e18
+ call Function1d3c
+ ld a, [WalkingX]
+ ld [$cf88], a
+ ld a, [WalkingY]
+ ld [$d0e4], a
+ call Function350c
+ ld a, [$d0e4]
+ ld [WalkingY], a
+ ld a, [$cfa9]
+ ld [WalkingX], a
+ call SpeechTextBox
+ ld a, [$cf73]
+ cp $2
+ jr z, .asm_15d6d
+ cp $1
+ jr z, .asm_15d27
+
+.asm_15d27
+ call Function15c91
+ jr c, .asm_15d68
+ call Function15d97
+ jr c, .asm_15d68
+ ld de, Money
+ ld bc, $ffc3
+ ld a, $3
+ call Function1600b
+ jr c, .asm_15d79
+ ld hl, NumItems
+ call Function2f66
+ jr nc, .asm_15d6f
+ ld a, [$d107]
+ ld e, a
+ ld d, $0
+ ld b, $1
+ ld hl, WalkingDirection
+ call BitTableFunc
+ call Function15fc3
+ ld de, Money
+ ld bc, $ffc3
+ call Function15ffa
+ ld a, $4
+ call Function15c7d
+ call $0a36
+
+.asm_15d68
+ call SpeechTextBox
+ and a
+ ret
+
+.asm_15d6d
+ scf
+ ret
+
+.asm_15d6f
+ ld a, $3
+ call Function15c7d
+ call $0a36
+ and a
+ ret
+
+.asm_15d79
+ ld a, $2
+ call Function15c7d
+ call $0a36
+ and a
+ ret
+; 15d83
+
+Function15d83: ; 15d83
+ ld a, $63
+ ld [$d10d], a
+ ld a, $0
+ call Function15c7d
+ ld a, $9
+ ld hl, $4fc9
+ rst FarCall
+ call Function1c07
+ ret
+; 15d97
+
+Function15d97: ; 15d97
+ ld a, $3b
+ call Predef
+ ld a, $1
+ call Function15c7d
+ call Function1dcf
+ ret
+; 15da5
+
+Function15da5: ; 15da5
+ ld a, $1
+ ld [$d10c], a
+ ld a, [$d107]
+ ld e, a
+ ld d, $0
+ ld b, $2
+ ld hl, WalkingDirection
+ call BitTableFunc
+ ld a, c
+ and a
+ jr nz, .asm_15dd8
+ ld a, [$d107]
+ ld e, a
+ ld d, $0
+ ld hl, MartPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ add hl, de
+ add hl, de
+ add hl, de
+ inc hl
+ ld a, [hli]
+ ld [$ffc5], a
+ ld a, [hl]
+ ld [$ffc4], a
+ xor a
+ ld [$ffc3], a
+ and a
+ ret
+
+.asm_15dd8
+ ld a, $5
+ call Function15c7d
+ call $0a36
+ scf
+ ret
+; 15de2
+
+Function15de2: ; 15de2
+ ld a, $0
+ call Function15c7d
+ call Function15df9
+ ld a, $63
+ ld [$d10d], a
+ ld a, $9
+ ld hl, $4fcf
+ rst FarCall
+ call Function1c07
+ ret
+; 15df9
+
+Function15df9: ; 15df9
+ ld a, [$d107]
+ ld e, a
+ ld d, $0
+ ld hl, MartPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ add hl, de
+ add hl, de
+ add hl, de
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ret
+; 15e0e
+
+INCBIN "baserom.gbc", $15e0e, $15eb3 - $15e0e
+
+
+Function15eb3: ; 15eb3
+ call Function2ed3
+ ld a, $4
+ ld hl, $46a5
+ rst FarCall
+.asm_15ebc
+ ld a, $4
+ ld hl, $46be
+ rst FarCall
+ ld a, [$cf66]
+ and a
+ jp z, Function15ece
+ call Function15ee0
+ jr .asm_15ebc
+; 15ece
+
+Function15ece: ; 15ece
+ call Function2b74
+ and a
+ ret
+; 15ed3
+
+INCBIN "baserom.gbc", $15ed3, $15ee0 - $15ed3
+
+
+Function15ee0: ; 15ee0
+ callba CheckItemMenu
+ ld a, [$d142]
+ ld hl, $5eee
+ rst JumpTable
+ ret
+; 15eee
+
+INCBIN "baserom.gbc", $15eee, $15efd - $15eee
+
+
+Function15efd: ; 15efd
+ callba _CheckTossableItem
+ ld a, [$d142]
+ and a
+ jr z, .asm_15f11
+ ld hl, $5faf
+ call PrintText
+ and a
+ ret
+
+.asm_15f11
+ ld hl, UnknownText_0x15f73
+ call PrintText
+ ld a, $9
+ ld hl, $4af8
+ rst FarCall
+ ld a, $9
+ ld hl, $4fe1
+ rst FarCall
+ call Function1c07
+ jr c, .asm_15f6e
+ ld hl, $c5b9
+ ld bc, $0312
+ call ClearBox
+ ld hl, UnknownText_0x15f78
+ call PrintTextBoxText
+ call Function1dcf
+ jr c, .asm_15f6e
+ ld de, Money
+ ld bc, $ffc3
+ call Function15fd7
+ ld a, [$d107]
+ ld hl, NumItems
+ call Function2f53
+ ld a, $3b
+ call Predef
+ ld hl, $c5b9
+ ld bc, $0312
+ call ClearBox
+ ld hl, UnknownText_0x15fbe
+ call PrintTextBoxText
+ call Function15fc3
+ ld a, $9
+ ld hl, $4af0
+ rst FarCall
+ call $0a36
+
+.asm_15f6e
+ call Function1c07
+ and a
+ ret
+; 15f73
+
+UnknownText_0x15f73: ; 0x15f73
+ text_jump UnknownText_0x1c4f33, BANK(UnknownText_0x1c4f33)
+ db "@"
+; 0x15f78
+
+UnknownText_0x15f78: ; 0x15f78
+ text_jump UnknownText_0x1c4f3e, BANK(UnknownText_0x1c4f3e)
+ db "@"
+; 0x15f7d
+
+INCBIN "baserom.gbc", $15f7d, $15f83 - $15f7d
+
+UnknownText_0x15f83: ; 0x15f83
+ text_jump UnknownText_0x1c4f62, BANK(UnknownText_0x1c4f62)
+ db "@"
+; 0x15f88
+
+INCBIN "baserom.gbc", $15f88, $15fb9 - $15f88
+
+UnknownText_0x15fb9: ; 0x15fb9
+ text_jump UnknownText_0x1c500d, BANK(UnknownText_0x1c500d)
+ db "@"
+; 0x15fbe
+
+UnknownText_0x15fbe: ; 0x15fbe
+ text_jump UnknownText_0x1c502e, BANK(UnknownText_0x1c502e)
+ db "@"
+; 0x15fc3
+
+Function15fc3: ; 15fc3
+ call WaitSFX
+ ld de, SFX_TRANSACTION
+ call StartSFX
+ ret
+; 15fcd
+
+Function15fcd: ; 15fcd
+ call Function1d4f
+ call $0a36
+ call Function1c07
+ ret
+; 15fd7
+
+Function15fd7: ; 15fd7
+ ld a, $3
+ call Function16053
+ ld bc, $5ff7
+ ld a, $3
+ call Function1600b
+ jr z, .asm_15ff5
+ jr c, .asm_15ff5
+ ld hl, $5ff7
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ scf
+ ret
+
+.asm_15ff5
+ and a
+ ret
+; 15ff7
+
+INCBIN "baserom.gbc", $15ff7, $15ffa - $15ff7
+
+
+Function15ffa: ; 15ffa
+ ld a, $3
+ call Function16035
+ jr nc, .asm_16009
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld [de], a
+ scf
+ ret
+
+.asm_16009
+ and a
+ ret
+; 1600b
+
+Function1600b: ; 1600b
+ ld a, $3
+ push hl
+ push de
+ push bc
+ ld h, b
+ ld l, c
+ ld c, $0
+ ld b, a
+.asm_16015
+ dec a
+ jr z, .asm_1601c
+ inc de
+ inc hl
+ jr .asm_16015
+
+.asm_1601c
+ and a
+.asm_1601d
+ ld a, [de]
+ sbc [hl]
+ jr z, .asm_16022
+ inc c
+
+.asm_16022
+ dec de
+ dec hl
+ dec b
+ jr nz, .asm_1601d
+ jr c, .asm_1602d
+ ld a, c
+ and a
+ jr .asm_16031
+
+.asm_1602d
+ ld a, $1
+ and a
+ scf
+
+.asm_16031
+ pop bc
+ pop de
+ pop hl
+ ret
+; 16035
+
+Function16035: ; 16035
+ ld a, $3
+ push hl
+ push de
+ push bc
+ ld h, b
+ ld l, c
+ ld b, a
+ ld c, $0
+.asm_1603f
+ dec a
+ jr z, .asm_16046
+ inc de
+ inc hl
+ jr .asm_1603f
+
+.asm_16046
+ and a
+.asm_16047
+ ld a, [de]
+ sbc [hl]
+ ld [de], a
+ dec de
+ dec hl
+ dec b
+ jr nz, .asm_16047
+ pop bc
+ pop de
+ pop hl
+ ret
+; 16053
+
+Function16053: ; 16053
+ ld a, $3
+ push hl
+ push de
+ push bc
+ ld h, b
+ ld l, c
+ ld b, a
+.asm_1605b
+ dec a
+ jr z, .asm_16062
+ inc de
+ inc hl
+ jr .asm_1605b
+
+.asm_16062
+ and a
+.asm_16063
+ ld a, [de]
+ adc [hl]
+ ld [de], a
+ dec de
+ dec hl
+ dec b
+ jr nz, .asm_16063
+ pop bc
+ pop de
+ pop hl
+ ret
+; 1606f
+
+Function1606f: ; 1606f
+ ld a, $2
+ ld de, $d855
+ call $6055
+ ld a, $2
+ ld bc, $608d
+ call $600d
+ jr c, .asm_1608b
+ ld hl, $608d
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ scf
+ ret
+
+.asm_1608b
+ and a
+ ret
+; 1608d
+
+INCBIN "baserom.gbc", $1608d, $1608f - $1608d
+
+
+Function1608f: ; 1608f
+ ld a, $2
+ ld de, $d855
+ call $6037
+ jr nc, .asm_1609f
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ scf
+ ret
+
+.asm_1609f
+ and a
+ ret
+; 160a1
+
+Function160a1: ; 160a1
+ ld a, $2
+ ld de, $d855
+ jp $600d
+; 160a9
+
+
+Marts: ; 160a9
+ dw Mart0
+ dw Mart1
+ dw Mart2
+ dw Mart3
+ dw Mart4
+ dw Mart5
+ dw Mart6
+ dw Mart7
+ dw Mart8
+ dw Mart9
+ dw Mart10
+ dw Mart11
+ dw Mart12
+ dw Mart13
+ dw Mart14
+ dw Mart15
+ dw Mart16
+ dw Mart17
+ dw Mart18
+ dw Mart19
+ dw Mart20
+ dw Mart21
+ dw Mart22
+ dw Mart23
+ dw Mart24
+ dw Mart25
+ dw Mart26
+ dw Mart27
+ dw Mart28
+ dw Mart29
+ dw Mart30
+ dw Mart31
+ dw Mart32
+ dw Mart33
+MartsEnd
+; 160ed
+
+
+Mart0: ; 160ed
+ db 4 ; # items
+ db POTION
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db $ff
+; 160f3
+
+Mart1: ; 160f3
+ db 5 ; # items
+ db POKE_BALL
+ db POTION
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db $ff
+; 160fa
+
+Mart2: ; 160fa
+ 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 $ff
+; 16106
+
+Mart3: ; 16106
+ 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 $ff
+; 16111
+
+Mart4: ; 16111
+ db 5 ; # items
+ db POTION
+ db SUPER_POTION
+ db HYPER_POTION
+ db FULL_HEAL
+ db REVIVE
+ db $ff
+; 16118
+
+Mart5: ; 16118
+ db 7 ; # items
+ db POTION
+ db SUPER_POTION
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db BURN_HEAL
+ db ICE_HEAL
+ db $ff
+; 16121
+
+Mart6: ; 16121
+ 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 $ff
+; 1612b
+
+Mart7: ; 1612b
+ 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 $ff
+; 16134
+
+Mart8: ; 16134
+ db 5 ; # items
+ db PROTEIN
+ db IRON
+ db CARBOS
+ db CALCIUM
+ db HP_UP
+ db $ff
+; 1613b
+
+Mart9: ; 1613b
+ db 3 ; # items
+ db TM_41
+ db TM_48
+ db TM_33
+ db $ff
+; 16140
+
+Mart10: ; 16140
+ db 4 ; # items
+ db TM_41
+ db TM_48
+ db TM_33
+ db TM_02
+ db $ff
+; 16146
+
+Mart11: ; 16146
+ db 4 ; # items
+ db TM_41
+ db TM_48
+ db TM_33
+ db TM_08
+ db $ff
+; 1614c
+
+Mart12: ; 1614c
+ db 5 ; # items
+ db TM_41
+ db TM_48
+ db TM_33
+ db TM_02
+ db TM_08
+ db $ff
+; 16153
+
+Mart13: ; 16153
+ 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 $ff
+; 1615e
+
+Mart14: ; 1615e
+ 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 $ff
+; 1616a
+
+Mart15: ; 1616a
+ db 4 ; # items
+ db TINYMUSHROOM
+ db SLOWPOKETAIL
+ db POKE_BALL
+ db POTION
+ db $ff
+; 16170
+
+Mart16: ; 16170
+ 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 $ff
+; 1617b
+
+Mart17: ; 1617b
+ 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 $ff
+; 16186
+
+Mart18: ; 16186
+ 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 $ff
+; 16191
+
+Mart19: ; 16191
+ db 7 ; # items
+ db GREAT_BALL
+ db SUPER_POTION
+ db SUPER_REPEL
+ db ANTIDOTE
+ db PARLYZ_HEAL
+ db AWAKENING
+ db BURN_HEAL
+ db $ff
+; 1619a
+
+Mart20: ; 1619a
+ 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 $ff
+; 161a5
+
+Mart21: ; 161a5
+ 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 $ff
+; 161af
+
+Mart22: ; 161af
+ 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 $ff
+; 161b9
+
+Mart23: ; 161b9
+ db 7 ; # items
+ db POTION
+ db SUPER_POTION
+ db HYPER_POTION
+ db MAX_POTION
+ db REVIVE
+ db SUPER_REPEL
+ db MAX_REPEL
+ db $ff
+; 161c2
+
+Mart24: ; 161c2
+ 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 $ff
+; 161ce
+
+Mart25: ; 161ce
+ db 5 ; # items
+ db TM_10
+ db TM_11
+ db TM_17
+ db TM_18
+ db TM_37
+ db $ff
+; 161d5
+
+Mart26: ; 161d5
+ db 3 ; # items
+ db POKE_DOLL
+ db LOVELY_MAIL
+ db SURF_MAIL
+ db $ff
+; 161da
+
+Mart27: ; 161da
+ db 5 ; # items
+ db HP_UP
+ db PROTEIN
+ db IRON
+ db CARBOS
+ db CALCIUM
+ db $ff
+; 161e1
+
+Mart28: ; 161e1
+ 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 $ff
+; 161ea
+
+Mart29: ; 161ea
+ 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 $ff
+; 161f3
+
+Mart30: ; 161f3
+ 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 $ff
+; 161fd
+
+Mart31: ; 161fd
+ db 6 ; # items
+ db POKE_DOLL
+ db FRESH_WATER
+ db SODA_POP
+ db LEMONADE
+ db REPEL
+ db PORTRAITMAIL
+ db $ff
+; 16205
+
+Mart32: ; 16205
+ db 7 ; # items
+ db ULTRA_BALL
+ db MAX_REPEL
+ db HYPER_POTION
+ db MAX_POTION
+ db FULL_RESTORE
+ db REVIVE
+ db FULL_HEAL
+ db $ff
+; 1620e
+
+Mart33: ; 1620e
+ db 4 ; # items
+ db ENERGYPOWDER
+ db ENERGY_ROOT
+ db HEAL_POWDER
+ db REVIVAL_HERB
+ db $ff
+; 16214
+
+DefaultMart: ; 16214
+ db 2 ; # items
+ db POKE_BALL
+ db POTION
+ db $ff
+; 16218
+
+
+INCBIN "baserom.gbc", $16218, $16e1d - $16218
+
+
+Function16e1d: ; 16e1d
+ call Function16ed6
+ ld c, $0
+ jp nc, $6eb7
+ ld a, [BreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, [$df21]
+ ld [TempMonDVs], a
+ ld a, [$df22]
+ ld [$d124], a
+ ld a, $3
+ ld [MonType], a
+ ld a, $24
+ call Predef
+ jr c, .asm_16e70
+ ld b, $1
+ jr nz, .asm_16e48
+ inc b
+
+.asm_16e48
+ push bc
+ ld a, [BreedMon2Species]
+ ld [CurPartySpecies], a
+ ld a, [$df5a]
+ ld [TempMonDVs], a
+ ld a, [$df5b]
+ ld [$d124], a
+ ld a, $3
+ ld [MonType], a
+ ld a, $24
+ call Predef
+ pop bc
+ jr c, .asm_16e70
+ ld a, $1
+ jr nz, .asm_16e6d
+ inc a
+
+.asm_16e6d
+ cp b
+ jr nz, .asm_16e89
+
+.asm_16e70
+ ld c, $0
+ ld a, [BreedMon1Species]
+ cp $84
+ jr z, .asm_16e82
+ ld a, [BreedMon2Species]
+ cp $84
+ jr nz, .asm_16eb7
+ jr .asm_16e89
+
+.asm_16e82
+ ld a, [BreedMon2Species]
+ cp $84
+ jr z, .asm_16eb7
+
+.asm_16e89
+ call $6ebc
+ ld c, $ff
+ jp z, $6eb7
+ ld a, [BreedMon2Species]
+ ld b, a
+ ld a, [BreedMon1Species]
+ cp b
+ ld c, $fe
+ jr z, .asm_16e9f
+ ld c, $80
+
+.asm_16e9f
+ ld a, [$df12]
+ ld b, a
+ ld a, [$df4b]
+ cp b
+ jr nz, .asm_16eb7
+ ld a, [$df13]
+ ld b, a
+ ld a, [$df4c]
+ cp b
+ jr nz, .asm_16eb7
+ ld a, c
+ sub $4d
+ ld c, a
+
+.asm_16eb7
+ ld a, c
+ ld [$d265], a
+ ret
+; 16ebc
+
+INCBIN "baserom.gbc", $16ebc, $16ecd - $16ebc
+
+
+Function16ecd: ; 16ecd
+ rlca
+ ld b, a
+ ld a, [$df5b]
+ and $7
+ cp b
+ ret
+; 16ed6
+
+Function16ed6: ; 16ed6
+ ld a, [BreedMon2Species]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ cp $ff
+ jr z, .asm_16f3a
+ ld a, [BreedMon1Species]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ cp $ff
+ jr z, .asm_16f3a
+ ld a, [BreedMon2Species]
+ cp $84
+ jr z, .asm_16f3c
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ push af
+ and $f
+ ld b, a
+ pop af
+ and $f0
+ swap a
+ ld c, a
+ ld a, [BreedMon1Species]
+ cp $84
+ jr z, .asm_16f3c
+ ld [CurSpecies], a
+ push bc
+ call GetBaseData
+ pop bc
+ ld a, [BaseEggGroups]
+ push af
+ and $f
+ ld d, a
+ pop af
+ and $f0
+ swap a
+ ld e, a
+ ld a, d
+ cp b
+ jr z, .asm_16f3c
+ cp c
+ jr z, .asm_16f3c
+ ld a, e
+ cp b
+ jr z, .asm_16f3c
+ cp c
+ jr z, .asm_16f3c
+
+.asm_16f3a
+ and a
+ ret
+
+.asm_16f3c
+ scf
+ ret
+; 16f3e
+
+Function16f3e: ; 16f3e
+ ld de, PartySpecies
+ ld hl, PartyMon1Happiness
+ ld c, 0
+.loop
+ ld a, [de]
+ inc de
+ cp $ff
+ ret z
+ cp EGG
+ jr nz, .next
+ dec [hl]
+ jr nz, .next
+ ld a, 1
+ and a
+ ret
+
+.next
+ push de
+ ld de, PartyMon2 - PartyMon1
+ add hl, de
+ pop de
+ jr .loop
+; 16f5e
+
+INCBIN "baserom.gbc", $16f5e, $174ba - $16f5e
+
+
SECTION "bank6",ROMX,BANK[$6]
Tileset03GFX: ; 0x18000
@@ -10623,8 +31983,26 @@
SECTION "bank7",ROMX,BANK[$7]
-INCBIN "baserom.gbc", $1c000, $1c30c - $1c000
+Function1c000: ; 1c000
+ ld a, [MapGroup]
+ ld e, a
+ ld d, $0
+ ld hl, $4021
+ add hl, de
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld hl, $403c
+ ld bc, $0090
+ call AddNTimes
+ ld de, $90a0
+ ld bc, $0090
+ call CopyBytes
+ ret
+; 1c021
+INCBIN "baserom.gbc", $1c021, $1c30c - $1c021
+
Tileset07GFX: ; 0x1c30c
INCBIN "gfx/tilesets/07.lz"
; 0x1c73b
@@ -10838,7 +32216,7 @@
; todo
Tileset31Meta: ; 0x23891
-INCBIN "tilesets/31_metatiles.bin", $0, $280
+INCBIN "tilesets/31_metatiles.bin"
; 0x23b11
EggMovePointers: ; 0x23b11
@@ -10849,8 +32227,752 @@
SECTION "bank9",ROMX,BANK[$9]
-INCBIN "baserom.gbc", $24000, $244c3 - $24000
+INCBIN "baserom.gbc", $24000, $2400e - $24000
+
+Function2400e: ; 2400e
+ ld hl, Function1c66
+ ld a, [$cf94]
+ rst FarCall
+ call Function24085
+ call Function1ad2
+ call Function321c
+ call Function2408f
+ ret
+; 24022
+
+Function24022: ; 24022
+ ld hl, Function1c66
+ ld a, [$cf94]
+ rst FarCall
+ call Function24085
+ callba MobileTextBorder
+ call Function1ad2
+ call Function321c
+ call Function2408f
+ ret
+; 2403c
+
+Function2403c: ; 2403c
+ ld hl, Function1c66
+ ld a, [$cf94]
+ rst FarCall
+ call Function24085
+ callba MobileTextBorder
+ call Function1ad2
+ call Function321c
+ call $411a
+ ld hl, $cfa5
+ set 7, [hl]
+.asm_2405a
+ call DelayFrame
+ ld a, $40
+ ld hl, $432e
+ rst FarCall
+ ld a, [$cd2b]
+ and a
+ jr nz, .asm_24076
+ call Function241ba
+ ld a, [$cfa8]
+ and c
+ jr z, .asm_2405a
+ call $4098
+ ret
+
+.asm_24076
+ ld a, [$cfa4]
+ ld c, a
+ ld a, [$cfa3]
+ call SimpleMultiply
+ ld [$cf88], a
+ and a
+ ret
+; 24085
+
+
+
+Function24085: ; 24085
+ xor a
+ ld [hBGMapMode], a
+ call Function1cbb
+ call Function240db
+ ret
+; 2408f
+
+Function2408f: ; 2408f
+ call $411a
+ call Function1bc9
+ call Function1ff8
+ ld a, [$cf91]
+ bit 1, a
+ jr z, .asm_240a6
+ call Function1bdd
+ bit 2, a
+ jr nz, .asm_240c9
+
+.asm_240a6
+ ld a, [$cf91]
+ bit 0, a
+ jr nz, .asm_240b4
+ call Function1bdd
+ bit 1, a
+ jr nz, .asm_240cb
+
+.asm_240b4
+ ld a, [$cfa4]
+ ld c, a
+ ld a, [$cfa9]
+ dec a
+ call SimpleMultiply
+ ld c, a
+ ld a, [$cfaa]
+ add c
+ ld [$cf88], a
+ and a
+ ret
+
+.asm_240c9
+ scf
+ ret
+
+.asm_240cb
+ scf
+ ret
+; 240cd
+
+Function240cd: ; 240cd
+ ld a, [$cf92]
+ and $f
+ ret
+; 240d3
+
+Function240d3: ; 240d3
+ ld a, [$cf92]
+ swap a
+ and $f
+ ret
+; 240db
+
+Function240db: ; 240db
+ ld hl, $cf95
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function1cc6
+ call Function1d05
+ call Function240d3
+ ld b, a
+.asm_240eb
+ push bc
+ push hl
+ call Function240cd
+ ld c, a
+.asm_240f1
+ push bc
+ ld a, [$cf94]
+ call Function201c
+ inc de
+ ld a, [$cf93]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_240f1
+ pop hl
+ ld bc, $0028
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_240eb
+ ld hl, $cf98
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ or h
+ ret z
+ ld a, [$cf97]
+ rst FarCall
+ ret
+; 2411a
+
+INCBIN "baserom.gbc", $2411a, $24177 - $2411a
+
+
+Function24177: ; 24177
+ rst FarCall
+ ret
+; 24179
+
+Function24179: ; 24179
+ xor a
+ ld hl, $cfa5
+ ld [hli], a
+ ld [hld], a
+ ld a, [$cf91]
+ bit 5, a
+ ret z
+ set 5, [hl]
+ set 4, [hl]
+ ret
+; 2418a
+
+Function2418a: ; 2418a
+ ld a, [$cf93]
+ or $20
+ ld [$cfa7], a
+ ret
+; 24193
+
+Function24193: ; 24193
+ ld hl, $cf91
+ ld a, $1
+ bit 0, [hl]
+ jr nz, .asm_2419e
+ or $2
+
+.asm_2419e
+ bit 1, [hl]
+ jr z, .asm_241a4
+ or $4
+
+.asm_241a4
+ ld [$cfa8], a
+ ret
+; 241a8
+
+
+Function241a8: ; 241a8
+ call $4329
+ ld hl, $cfa6
+ res 7, [hl]
+ ld a, [hBGMapMode]
+ push af
+ call Function24216
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 241ba
+
+Function241ba: ; 241ba
+ ld hl, $cfa6
+ res 7, [hl]
+ ld a, [hBGMapMode]
+ push af
+ call Function2431a
+ call Function24249
+ jr nc, .asm_241cd
+ call Function24270
+
+.asm_241cd
+ pop af
+ ld [hBGMapMode], a
+ call Function1bdd
+ ld c, a
+ ret
+; 241d5
+
+INCBIN "baserom.gbc", $241d5, $24216 - $241d5
+
+
+Function24216: ; 24216
+.asm_24216
+ call Function2431a
+ call Function24238
+ call Function24249
+ jr nc, .asm_24237
+ call Function24270
+ jr c, .asm_24237
+ ld a, [$cfa5]
+ bit 7, a
+ jr nz, .asm_24237
+ call Function1bdd
+ ld b, a
+ ld a, [$cfa8]
+ and b
+ jr z, .asm_24216
+
+.asm_24237
+ ret
+; 24238
+
+Function24238: ; 24238
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call WaitBGMap
+ pop af
+ ld [hOAMUpdate], a
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 24249
+
+Function24249: ; 24249
+.asm_24249
+ call RTC
+ call Function24259
+ ret c
+ ld a, [$cfa5]
+ bit 7, a
+ jr z, .asm_24249
+ and a
+ ret
+; 24259
+
+Function24259: ; 24259
+ ld a, [$cfa5]
+ bit 6, a
+ jr z, .asm_24266
+ ld hl, $4f62
+ ld a, $23
+ rst FarCall
+
+.asm_24266
+ call Functiona57
+ call Function1bdd
+ and a
+ ret z
+ scf
+ ret
+; 24270
+
+Function24270: ; 24270
+ call Function1bdd
+ bit 0, a
+ jp nz, Function24318
+ bit 1, a
+ jp nz, Function24318
+ bit 2, a
+ jp nz, Function24318
+ bit 3, a
+ jp nz, Function24318
+ bit 4, a
+ jr nz, .asm_242fa
+ bit 5, a
+ jr nz, .asm_242dc
+ bit 6, a
+ jr nz, .asm_242be
+ bit 7, a
+ jr nz, .asm_242a0
+ and a
+ ret
+
+ ld hl, $cfa6
+ set 7, [hl]
+ scf
+ ret
+
+.asm_242a0
+ ld hl, $cfa9
+ ld a, [$cfa3]
+ cp [hl]
+ jr z, .asm_242ac
+ inc [hl]
+ xor a
+ ret
+
+.asm_242ac
+ ld a, [$cfa5]
+ bit 5, a
+ jr nz, .asm_242ba
+ bit 3, a
+ jp nz, $4299
+ xor a
+ ret
+
+.asm_242ba
+ ld [hl], $1
+ xor a
+ ret
+
+.asm_242be
+ ld hl, $cfa9
+ ld a, [hl]
+ dec a
+ jr z, .asm_242c8
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242c8
+ ld a, [$cfa5]
+ bit 5, a
+ jr nz, .asm_242d6
+ bit 2, a
+ jp nz, $4299
+ xor a
+ ret
+
+.asm_242d6
+ ld a, [$cfa3]
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242dc
+ ld hl, $cfaa
+ ld a, [hl]
+ dec a
+ jr z, .asm_242e6
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242e6
+ ld a, [$cfa5]
+ bit 4, a
+ jr nz, .asm_242f4
+ bit 1, a
+ jp nz, $4299
+ xor a
+ ret
+
+.asm_242f4
+ ld a, [$cfa4]
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242fa
+ ld hl, $cfaa
+ ld a, [$cfa4]
+ cp [hl]
+ jr z, .asm_24306
+ inc [hl]
+ xor a
+ ret
+
+.asm_24306
+ ld a, [$cfa5]
+ bit 4, a
+ jr nz, .asm_24314
+ bit 0, a
+ jp nz, $4299
+ xor a
+ ret
+
+.asm_24314
+ ld [hl], $1
+ xor a
+ ret
+; 24318
+
+Function24318: ; 24318
+ xor a
+ ret
+; 2431a
+
+Function2431a: ; 2431a
+ ld hl, $cfac
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ cp $ed
+ jr nz, .asm_24329
+ ld a, [$cfab]
+ ld [hl], a
+
+.asm_24329
+ ld a, [$cfa1]
+ ld b, a
+ ld a, [$cfa2]
+ ld c, a
+ call Function1d05
+ ld a, [$cfa7]
+ swap a
+ and $f
+ ld c, a
+ ld a, [$cfa9]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_24348
+.asm_24344
+ add c
+ dec b
+ jr nz, .asm_24344
+
+.asm_24348
+ ld c, $14
+ call AddNTimes
+ ld a, [$cfa7]
+ and $f
+ ld c, a
+ ld a, [$cfaa]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_2435f
+.asm_2435b
+ add c
+ dec b
+ jr nz, .asm_2435b
+
+.asm_2435f
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ cp $ed
+ jr z, .asm_2436b
+ ld [$cfab], a
+ ld [hl], $ed
+
+.asm_2436b
+ ld a, l
+ ld [$cfac], a
+ ld a, h
+ ld [$cfad], a
+ ret
+; 24374
+
+Function24374: ; 24374
+ ld a, [rSVBK]
+ push af
+ ld a, $7
+ ld [rSVBK], a
+ ld hl, $cf71
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ push de
+ ld b, $10
+ ld hl, $cf81
+.asm_24387
+ ld a, [hli]
+ ld [de], a
+ dec de
+ dec b
+ jr nz, .asm_24387
+ ld a, [$cf81]
+ bit 6, a
+ jr nz, .asm_24398
+ bit 7, a
+ jr z, .asm_243ae
+
+.asm_24398
+ ld hl, $cf71
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ set 0, [hl]
+ call Function1cfd
+ call Function243cd
+ call Function1d19
+ call Function243cd
+ jr .asm_243b5
+
+.asm_243ae
+ pop hl
+ push hl
+ ld a, [hld]
+ ld l, [hl]
+ ld h, a
+ res 0, [hl]
+
+.asm_243b5
+ pop hl
+ call Function243e7
+ ld a, h
+ ld [de], a
+ dec de
+ ld a, l
+ ld [de], a
+ dec de
+ ld hl, $cf71
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ pop af
+ ld [rSVBK], a
+ ld hl, $cf78
+ inc [hl]
+ ret
+; 243cd
+
+Function243cd: ; 243cd
+ call Function1c53
+ inc b
+ inc c
+ call Function243e7
+.asm_243d5
+ push bc
+ push hl
+.asm_243d7
+ ld a, [hli]
+ ld [de], a
+ dec de
+ dec c
+ jr nz, .asm_243d7
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_243d5
+ ret
+; 243e7
+
+Function243e7: ; 243e7
+ ret
+; 243e8
+
+Function243e8: ; 243e8
+ xor a
+ ld [hBGMapMode], a
+ ld a, [rSVBK]
+ push af
+ ld a, $7
+ ld [rSVBK], a
+ call Function1c7e
+ ld a, l
+ or h
+ jp z, Function2445d
+ ld a, l
+ ld [$cf71], a
+ ld a, h
+ ld [$cf72], a
+ call Function1c47
+ ld a, [$cf81]
+ bit 0, a
+ jr z, .asm_24411
+ ld d, h
+ ld e, l
+ call Function1c23
+
+.asm_24411
+ call Function1c7e
+ ld a, h
+ or l
+ jr z, .asm_2441b
+ call Function1c47
+
+.asm_2441b
+ pop af
+ ld [rSVBK], a
+ ld hl, $cf78
+ dec [hl]
+ ret
+; 24423
+
+INCBIN "baserom.gbc", $24423, $24426 - $24423
+
+
+Function24426: ; 24426
+ bit 0, a
+ ret z
+ xor a
+ call GetSRAMBank
+ ld hl, TileMap
+ ld de, $a000
+ ld bc, $0168
+ call CopyBytes
+ call CloseSRAM
+ call Function2173
+ xor a
+ call GetSRAMBank
+ ld hl, $a000
+ ld de, TileMap
+ ld bc, $0168
+.asm_2444c
+ ld a, [hl]
+ cp $61
+ jr c, .asm_24452
+ ld [de], a
+
+.asm_24452
+ inc hl
+ inc de
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_2444c
+ call CloseSRAM
+ ret
+; 2445d
+
+Function2445d: ; 2445d
+ ld hl, UnknownText_0x24468
+ call PrintText
+ call WaitBGMap
+.asm_24466
+ jr .asm_24466
+; 24468
+
+UnknownText_0x24468: ; 24468
+ text_jump UnknownText_0x1c46b7, BANK(UnknownText_0x1c46b7)
+ db "@"
+; 2446d
+
+Function2446d: ; 2446d
+ ld a, [$cf91]
+ ld b, a
+ ld hl, $cfa1
+ ld a, [$cf82]
+ inc a
+ bit 6, b
+ jr nz, .asm_2447d
+ inc a
+
+.asm_2447d
+ ld [hli], a
+ ld a, [$cf83]
+ inc a
+ ld [hli], a
+ ld a, [$cf92]
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ bit 5, b
+ jr z, .asm_24492
+ set 5, [hl]
+
+.asm_24492
+ ld a, [$cf81]
+ bit 4, a
+ jr z, .asm_2449b
+ set 6, [hl]
+
+.asm_2449b
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ bit 0, b
+ jr nz, .asm_244a9
+ add $2
+
+.asm_244a9
+ ld [hli], a
+ ld a, [$cf88]
+ and a
+ jr z, .asm_244b7
+ ld c, a
+ ld a, [$cf92]
+ cp c
+ jr nc, .asm_244b9
+
+.asm_244b7
+ ld c, $1
+
+.asm_244b9
+ ld [hl], c
+ inc hl
+ ld a, $1
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ret
+; 244c3
+
+
Function244c3: ; 0x244c3
ld a, [MenuSelection]
ld [CurSpecies], a
@@ -10862,14 +32984,601 @@
cp $ff
ret z
ld de, $c5b9
- ld a, BANK(GetItemDescription)
- ld hl, GetItemDescription
- rst $8
+ callba GetItemDescription
ret
; 0x244e3
-INCBIN "baserom.gbc", $244e3, $24ab4 - $244e3
+Function244e3: ; 244e3
+ ld hl, $4547
+ call Function1d3c
+ call Function1cbb
+ call Function1ad2
+ call Function321c
+ ld b, $12
+ call GetSGBLayout
+ xor a
+ ld [hBGMapMode], a
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld de, VTiles1
+ ld a, $3c
+ call Predef
+ ld a, [$cf82]
+ inc a
+ ld b, a
+ ld a, [$cf83]
+ inc a
+ ld c, a
+ call Function1d05
+ ld a, $80
+ ld [$ffad], a
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ call WaitBGMap
+ ret
+; 24528
+Function24528: ; 24528
+ ld hl, $4547
+ call Function1d3c
+ call Function1ce1
+ call WaitBGMap
+ call ClearSGB
+ xor a
+ ld [hBGMapMode], a
+ call Function2173
+ call Function321c
+ call Function1ad2
+ call $0e51
+ ret
+; 24547
+
+INCBIN "baserom.gbc", $24547, $245af - $24547
+
+
+Function245af: ; 245af
+ xor a
+ ld [$cf73], a
+ ld [hBGMapMode], a
+ inc a
+ ld [$ffaa], a
+ call Function2471a
+ call Function24764
+ call Function247dd
+ call Function245f1
+ call Function321c
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 245cb
+
+Function245cb: ; 245cb
+.asm_245cb
+ call Function24609
+ jp c, Function245d6
+ call z, Function245e1
+ jr .asm_245cb
+; 245d6
+
+Function245d6: ; 245d6
+ call Function1ff8
+ ld [$cf73], a
+ ld a, $0
+ ld [$ffaa], a
+ ret
+; 245e1
+
+Function245e1: ; 245e1
+ call Function245f1
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 245f1
+
+Function245f1: ; 245f1
+ xor a
+ ld [hBGMapMode], a
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function247f0
+ call Function2488b
+ call Function248b8
+ pop af
+ ld [Options], a
+ ret
+; 24609
+
+Function24609: ; 24609
+.asm_24609
+ call Function1bd3
+ ld a, [$ffa9]
+ and $f0
+ ld b, a
+ ld a, [hJoyPressed]
+ and $f
+ or b
+ bit 0, a
+ jp nz, Function24644
+ bit 1, a
+ jp nz, $466f
+ bit 2, a
+ jp nz, Function24673
+ bit 3, a
+ jp nz, Function24695
+ bit 4, a
+ jp nz, Function246b5
+ bit 5, a
+ jp nz, Function246a1
+ bit 6, a
+ jp nz, Function246c9
+ bit 7, a
+ jp nz, Function246df
+ jr .asm_24609
+; 24640
+
+INCBIN "baserom.gbc", $24640, $24644 - $24640
+
+
+Function24644: ; 24644
+ call Function1bee
+ ld a, [$cfa9]
+ dec a
+ call Function248d5
+ ld a, [MenuSelection]
+ ld [CurItem], a
+ ld a, [$cf75]
+ ld [$d10d], a
+ call Function246fc
+ dec a
+ ld [$cf77], a
+ ld [$d107], a
+ ld a, [MenuSelection]
+ cp $ff
+ jr z, .asm_2466f
+ ld a, $1
+ scf
+ ret
+
+.asm_2466f
+ ld a, $2
+ scf
+ ret
+; 24673
+
+Function24673: ; 24673
+ ld a, [$cf91]
+ bit 7, a
+ jp z, Function2ec8
+ ld a, [$cfa9]
+ dec a
+ call Function248d5
+ ld a, [MenuSelection]
+ cp $ff
+ jp z, Function2ec8
+ call Function246fc
+ dec a
+ ld [$cf77], a
+ ld a, $4
+ scf
+ ret
+; 24695
+
+Function24695: ; 24695
+ ld a, [$cf91]
+ bit 6, a
+ jp z, Function2ec8
+ ld a, $8
+ scf
+ ret
+; 246a1
+
+Function246a1: ; 246a1
+ ld hl, $cfa6
+ bit 7, [hl]
+ jp z, Function2ec8
+ ld a, [$cf91]
+ bit 3, a
+ jp z, Function2ec8
+ ld a, $20
+ scf
+ ret
+; 246b5
+
+Function246b5: ; 246b5
+ ld hl, $cfa6
+ bit 7, [hl]
+ jp z, Function2ec8
+ ld a, [$cf91]
+ bit 2, a
+ jp z, Function2ec8
+ ld a, $10
+ scf
+ ret
+; 246c9
+
+Function246c9: ; 246c9
+ ld hl, $cfa6
+ bit 7, [hl]
+ jp z, Function2ec6
+ ld hl, $d0e4
+ ld a, [hl]
+ and a
+ jr z, .asm_246dc
+ dec [hl]
+ jp Function2ec6
+
+.asm_246dc
+ jp Function2ec8
+; 246df
+
+Function246df: ; 246df
+ ld hl, $cfa6
+ bit 7, [hl]
+ jp z, Function2ec6
+ ld hl, $d0e4
+ ld a, [$cf92]
+ add [hl]
+ ld b, a
+ ld a, [$d144]
+ cp b
+ jr c, .asm_246f9
+ inc [hl]
+ jp Function2ec6
+
+.asm_246f9
+ jp Function2ec8
+; 246fc
+
+Function246fc: ; 246fc
+ ld a, [$d0e4]
+ ld c, a
+ ld a, [$cfa9]
+ add c
+ ld c, a
+ ret
+; 24706
+
+INCBIN "baserom.gbc", $24706, $2471a - $24706
+
+
+Function2471a: ; 2471a
+ ld hl, $cf96
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$cf95]
+ call GetFarByte
+ ld [$d144], a
+ ld a, [$cf92]
+ ld c, a
+ ld a, [$d0e4]
+ add c
+ ld c, a
+ ld a, [$d144]
+ inc a
+ cp c
+ jr nc, .asm_24748
+ ld a, [$cf92]
+ ld c, a
+ ld a, [$d144]
+ inc a
+ sub c
+ jr nc, .asm_24745
+ xor a
+
+.asm_24745
+ ld [$d0e4], a
+
+.asm_24748
+ ld a, [$d0e4]
+ ld c, a
+ ld a, [$cf88]
+ add c
+ ld b, a
+ ld a, [$d144]
+ inc a
+ cp b
+ jr c, .asm_2475a
+ jr nc, .asm_24763
+
+.asm_2475a
+ xor a
+ ld [$d0e4], a
+ ld a, $1
+ ld [$cf88], a
+
+.asm_24763
+ ret
+; 24764
+
+Function24764: ; 24764
+ ld a, [$cf91]
+ ld c, a
+ ld a, [$d144]
+ ld b, a
+ ld a, [$cf82]
+ add $1
+ ld [$cfa1], a
+ ld a, [$cf83]
+ add $0
+ ld [$cfa2], a
+ ld a, [$cf92]
+ cp b
+ jr c, .asm_24786
+ jr z, .asm_24786
+ ld a, b
+ inc a
+
+.asm_24786
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld a, $8c
+ bit 2, c
+ jr z, .asm_24796
+ set 0, a
+
+.asm_24796
+ bit 3, c
+ jr z, .asm_2479c
+ set 1, a
+
+.asm_2479c
+ ld [$cfa5], a
+ xor a
+ ld [$cfa6], a
+ ld a, $20
+ ld [$cfa7], a
+ ld a, $c3
+ bit 7, c
+ jr z, .asm_247b0
+ add $4
+
+.asm_247b0
+ bit 6, c
+ jr z, .asm_247b6
+ add $8
+
+.asm_247b6
+ ld [$cfa8], a
+ ld a, [$cfa3]
+ ld b, a
+ ld a, [$cf88]
+ and a
+ jr z, .asm_247c8
+ cp b
+ jr z, .asm_247ca
+ jr c, .asm_247ca
+
+.asm_247c8
+ ld a, $1
+
+.asm_247ca
+ ld [$cfa9], a
+ ld a, $1
+ ld [$cfaa], a
+ xor a
+ ld [$cfac], a
+ ld [$cfad], a
+ ld [$cfab], a
+ ret
+; 247dd
+
+Function247dd: ; 247dd
+ ld a, [$d144]
+ ld c, a
+ ld a, [$d0e3]
+ and a
+ jr z, .asm_247ef
+ dec a
+ cp c
+ jr c, .asm_247ef
+ xor a
+ ld [$d0e3], a
+
+.asm_247ef
+ ret
+; 247f0
+
+Function247f0: ; 247f0
+ call Function1cf1
+ ld a, [$cf91]
+ bit 4, a
+ jr z, .asm_2480d
+ ld a, [$d0e4]
+ and a
+ jr z, .asm_2480d
+ ld a, [$cf82]
+ ld b, a
+ ld a, [$cf85]
+ ld c, a
+ call Function1d05
+ ld [hl], $61
+
+.asm_2480d
+ call Function1cfd
+ ld bc, $0015
+ add hl, bc
+ ld a, [$cf92]
+ ld b, a
+ ld c, $0
+.asm_2481a
+ ld a, [$d0e4]
+ add c
+ ld [$cf77], a
+ ld a, c
+ call Function248d5
+ ld a, [MenuSelection]
+ cp $ff
+ jr z, .asm_24851
+ push bc
+ push hl
+ call Function2486e
+ pop hl
+ ld bc, $0028
+ add hl, bc
+ pop bc
+ inc c
+ ld a, c
+ cp b
+ jr nz, .asm_2481a
+ ld a, [$cf91]
+ bit 4, a
+ jr z, .asm_24850
+ ld a, [$cf84]
+ ld b, a
+ ld a, [$cf85]
+ ld c, a
+ call Function1d05
+ ld [hl], $ee
+
+.asm_24850
+ ret
+
+.asm_24851
+ ld a, [$cf91]
+ bit 0, a
+ jr nz, .asm_24866
+ ld de, .data_2485f
+ call PlaceString
+ ret
+
+.data_2485f
+ db $82
+ db $80
+ db $8d
+ db $82
+ db $84
+ db $8b
+ db $50
+
+.asm_24866
+ ld d, h
+ ld e, l
+ ld hl, $cf98
+ jp Function31be
+; 2486e
+
+Function2486e: ; 2486e
+ push hl
+ ld d, h
+ ld e, l
+ ld hl, $cf98
+ call Function31be
+ pop hl
+ ld a, [$cf93]
+ and a
+ jr z, .asm_2488a
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld d, h
+ ld e, l
+ ld hl, $cf9b
+ call Function31be
+
+.asm_2488a
+ ret
+; 2488b
+
+Function2488b: ; 2488b
+ ld a, [$d0e3]
+ and a
+ jr z, .asm_248b7
+ ld b, a
+ ld a, [$d0e4]
+ cp b
+ jr nc, .asm_248b7
+ ld c, a
+ ld a, [$cf92]
+ add c
+ cp b
+ jr c, .asm_248b7
+ ld a, b
+ sub c
+ dec a
+ add a
+ add $1
+ ld c, a
+ ld a, [$cf82]
+ add c
+ ld b, a
+ ld a, [$cf83]
+ add $0
+ ld c, a
+ call Function1d05
+ ld [hl], $ec
+
+.asm_248b7
+ ret
+; 248b8
+
+Function248b8: ; 248b8
+ ld a, [$cf91]
+ bit 5, a
+ ret z
+ bit 1, a
+ jr z, .asm_248c7
+ ld a, [$d0e3]
+ and a
+ ret nz
+
+.asm_248c7
+ ld a, [$cfa9]
+ dec a
+ call Function248d5
+ ld hl, $cf9e
+ call Function31be
+ ret
+; 248d5
+
+Function248d5: ; 248d5
+ push de
+ push hl
+ ld e, a
+ ld a, [$d0e4]
+ add e
+ ld e, a
+ ld d, $0
+ ld hl, $cf96
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ ld a, [$cf94]
+ cp $1
+ jr z, .asm_248f2
+ cp $2
+ jr z, .asm_248f1
+
+.asm_248f1
+ add hl, de
+
+.asm_248f2
+ add hl, de
+ ld a, [$cf95]
+ call GetFarByte
+ ld [MenuSelection], a
+ ld [CurItem], a
+ inc hl
+ ld a, [$cf95]
+ call GetFarByte
+ ld [$cf75], a
+ pop hl
+ pop de
+ ret
+; 2490c
+
+INCBIN "baserom.gbc", $2490c, $24ab4 - $2490c
+
Function24ab4: ; 0x24ab4
push de
ld a, [MenuSelection]
@@ -10897,18 +33606,939 @@
inc hl
ld de, $cf75
ld bc, $0102
- call $3198
+ call PrintNum
.done
ret
; 0x24ae8
-INCBIN "baserom.gbc", $24ae8, $265d3 - $24ae8
+Function24ae8: ; 24ae8
+ ld hl, $4b15
+ call Function1d3c
+ jr .asm_24b01
+ ld hl, $4b1d
+ call Function1d3c
+ jr .asm_24b01
+
+ ld hl, $4b15
+ ld de, $000b
+ call Function1e2e
+
+.asm_24b01
+ call Function1cbb
+ call Function1cfd
+ ld de, $0015
+ add hl, de
+ ld de, Money
+ ld bc, $2306
+ call PrintNum
+ ret
+; 24b15
+
+INCBIN "baserom.gbc", $24b15, $24b25 - $24b15
+
+Function24b25: ; 24b25
+ ld hl, $c4ab
+ ld b, $1
+ ld c, $7
+ call TextBox
+ ld hl, $c4ac
+ ld de, CoinString
+ call PlaceString
+ ld hl, $c4c5
+ ld de, String24b8e
+ call PlaceString
+ ld de, $d855
+ ld bc, $0204
+ ld hl, $c4c1
+ call PrintNum
+ ret
+; 24b4e
+
+Function24b4e: ; 24b4e
+ ld hl, $c4a5
+ ld b, $3
+ ld c, $d
+ call TextBox
+ ld hl, $c4ba
+ ld de, MoneyString
+ call PlaceString
+ ld hl, $c4c0
+ ld de, Money
+ ld bc, $2306
+ call PrintNum
+ ld hl, $c4e2
+ ld de, CoinString
+ call PlaceString
+ ld hl, $c4eb
+ ld de, $d855
+ ld bc, $0204
+ call PrintNum
+ ret
+; 24b83
+
+MoneyString: ; 24b83
+ db "MONEY@"
+CoinString: ; 24b89
+ db "COIN@"
+String24b8e: ; 24b8e
+ db "@"
+; 24b8f
+
+Function24b8f: ; 24b8f
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ ld hl, TileMap
+ ld b, $3
+ ld c, $7
+ call TextBox
+ ld hl, $c4b5
+ ld de, $dc7a
+ ld bc, $0203
+ call PrintNum
+ ld hl, $c4b8
+ ld de, String24bcf
+ call PlaceString
+ ld hl, $c4dd
+ ld de, String24bd4
+ call PlaceString
+ ld hl, $c4e1
+ ld de, $dc79
+ ld bc, $0102
+ call PrintNum
+ pop af
+ ld [Options], a
+ ret
+; 24bcf
+
+String24bcf: ; 24bcf
+ db "/500@"
+String24bd4: ; 24bd4
+ db "ボール こ@"
+; 24bdc
+
+Function24bdc: ; 24bdc
+ ld hl, TileMap
+ ld b, $5
+ ld c, $11
+ call TextBox
+ ret
+; 24be7
+
+Function24be7: ; 24be7
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function24bdc
+ ld hl, $c505
+ ld de, String24c52
+ call PlaceString
+ ld hl, $c50c
+ ld de, $dc79
+ ld bc, $4102
+ call PrintNum
+ ld hl, $c4b5
+ ld de, String24c4b
+ call PlaceString
+ ld a, [$df9c]
+ and a
+ ld de, String24c59
+ jr z, .asm_24c1e
+ ld [$d265], a
+ call GetPokemonName
+
+.asm_24c1e
+ ld hl, $c4bc
+ call PlaceString
+ ld a, [$df9c]
+ and a
+ jr z, .asm_24c3e
+ ld hl, $c4dd
+ ld de, String24c5e
+ call PlaceString
+ ld a, [$dfbb]
+ ld h, b
+ ld l, c
+ inc hl
+ ld c, $3
+ call $3842
+
+.asm_24c3e
+ pop af
+ ld [Options], a
+ ret
+; 24c43
+
+String24c43: ; 24c43
+ db "ボール こ@"
+String24c4b: ; 24c4b
+ db "CAUGHT@"
+String24c52: ; 24c52
+ db "BALLS:@"
+String24c59: ; 24c59
+ db "None@"
+String24c5e: ; 24c5e
+ db "LEVEL@"
+; 24c64
+
+
+Function24c64: ; 24c64
+ ld hl, Buffer1
+ xor a
+ ld [hli], a
+ dec a
+ ld bc, $000a
+ call ByteFill
+
+ ld hl, ApricornBalls
+.asm_24c73
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_24c8d
+ push hl
+ ld [CurItem], a
+ ld hl, NumItems
+ call Function2f79
+ pop hl
+ jr nc, .asm_24c89
+ ld a, [hl]
+ call Function24c94
+.asm_24c89
+ inc hl
+ inc hl
+ jr .asm_24c73
+
+.asm_24c8d
+ ld a, [Buffer1]
+ and a
+ ret nz
+ scf
+ ret
+; 24c94
+
+Function24c94: ; 24c94
+ push hl
+ ld hl, Buffer1
+ inc [hl]
+ ld e, [hl]
+ ld d, 0
+ add hl, de
+ ld [hl], a
+ pop hl
+ ret
+; 24ca0
+
+ApricornBalls: ; 24ca0
+ 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 $ff
+; 24caf
+
+
+MonMenuOptionStrings: ; 24caf
+ db "STATS@"
+ db "SWITCH@"
+ db "ITEM@"
+ db "CANCEL@"
+ db "MOVE@"
+ db "MAIL@"
+ db "ERROR!@"
+; 24cd9
+
+MonMenuOptions: ; 24cd9
+
+; Moves
+ db 0, 1, CUT
+ db 0, 2, FLY
+ db 0, 3, SURF
+ db 0, 4, STRENGTH
+ db 0, 6, FLASH
+ db 0, 5, WATERFALL
+ db 0, 7, WHIRLPOOL
+ db 0, 8, DIG
+ db 0, 9, TELEPORT
+ db 0, 10, SOFTBOILED
+ db 0, 11, HEADBUTT
+ db 0, 12, ROCK_SMASH
+ db 0, 13, MILK_DRINK
+ db 0, 14, SWEET_SCENT
+
+; Options
+ db 1, 15, 1 ; STATS
+ db 1, 16, 2 ; SWITCH
+ db 1, 17, 3 ; ITEM
+ db 1, 18, 4 ; CANCEL
+ db 1, 19, 5 ; MOVE
+ db 1, 20, 6 ; MAIL
+ db 1, 21, 7 ; ERROR!
+
+ db $ff
+; 24d19
+
+Function24d19: ; 24d19
+ xor a
+ ld [hBGMapMode], a
+ call Function24dd4
+ callba Function8ea4a
+ ld hl, MenuDataHeader_0x24d3f
+ call LoadMenuDataHeader
+ call Function24d47
+ call Function24d91
+
+ ld a, 1
+ ld [hBGMapMode], a
+ call Function24d59
+ ld [MenuSelection], a
+
+ call Function1c07
+ ret
+; 24d3f
+
+MenuDataHeader_0x24d3f: ; 24d3f
+ db $40 ; tile backup
+ db 00, 06 ; start coords
+ db 17, 19 ; end coords
+ dw $0000
+ db 1 ; default option
+; 24d47
+
+Function24d47: ; 24d47
+ ld a, [Buffer1]
+ inc a
+ add a
+ ld b, a
+ ld a, [$cf84]
+ sub b
+ inc a
+ ld [$cf82], a
+ call Function1cbb
+ ret
+; 24d59
+
+Function24d59: ; 24d59
+.asm_24d59
+ ld a, $a0
+ ld [$cf91], a
+ ld a, [Buffer1]
+ ld [$cf92], a
+ call Function1c10
+ ld hl, $cfa5
+ set 6, [hl]
+ call Function1bc9
+ ld de, SFX_READ_TEXT_2
+ call StartSFX
+ ld a, [hJoyPressed]
+ bit 0, a ; A
+ jr nz, .asm_24d84
+ bit 1, a ; B
+ jr nz, .asm_24d81
+ jr .asm_24d59
+
+.asm_24d81
+ ld a, 18 ; CANCEL
+ ret
+
+.asm_24d84
+ ld a, [$cfa9]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, Buffer2
+ add hl, bc
+ ld a, [hl]
+ ret
+; 24d91
+
+Function24d91: ; 24d91
+ call Function1cfd
+ ld bc, $002a
+ add hl, bc
+ ld de, Buffer2
+.asm_24d9b
+ ld a, [de]
+ inc de
+ cp $ff
+ ret z
+ push de
+ push hl
+ call Function24db0
+ pop hl
+ call PlaceString
+ ld bc, $0028
+ add hl, bc
+ pop de
+ jr .asm_24d9b
+; 24db0
+
+Function24db0: ; 24db0
+ ld hl, MonMenuOptions + 1
+ ld de, $0003
+ call IsInArray
+ dec hl
+ ld a, [hli]
+ cp $1
+ jr z, .asm_24dc8
+ inc hl
+ ld a, [hl]
+ ld [$d265], a
+ call GetMoveName
+ ret
+
+.asm_24dc8
+ inc hl
+ ld a, [hl]
+ dec a
+ ld hl, MonMenuOptionStrings
+ call GetNthString
+ ld d, h
+ ld e, l
+ ret
+; 24dd4
+
+Function24dd4: ; 24dd4
+ call Function24e68
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .asm_24e3f
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .asm_24e03
+ ld a, $2
+ call GetPartyParamLocation
+ ld d, h
+ ld e, l
+ ld c, $4
+.asm_24ded
+ push bc
+ push de
+ ld a, [de]
+ and a
+ jr z, .asm_24dfd
+ push hl
+ call Function24e52
+ pop hl
+ jr nc, .asm_24dfd
+ call Function24e83
+
+.asm_24dfd
+ pop de
+ inc de
+ pop bc
+ dec c
+ jr nz, .asm_24ded
+
+.asm_24e03
+ ld a, $f
+ call Function24e83
+ ld a, $10
+ call Function24e83
+ ld a, $13
+ call Function24e83
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .asm_24e2f
+ push hl
+ ld a, $1
+ call GetPartyParamLocation
+ ld d, [hl]
+ callba Functionb9e76
+ pop hl
+ ld a, $14
+ jr c, .asm_24e2c
+ ld a, $11
+
+.asm_24e2c
+ call Function24e83
+
+.asm_24e2f
+ ld a, [Buffer1]
+ cp $8
+ jr z, .asm_24e3b
+ ld a, $12
+ call Function24e83
+
+.asm_24e3b
+ call Function24e76
+ ret
+
+.asm_24e3f
+ ld a, $f
+ call Function24e83
+ ld a, $10
+ call Function24e83
+ ld a, $12
+ call Function24e83
+ call Function24e76
+ ret
+; 24e52
+
+Function24e52: ; 24e52
+ ld b, a
+ ld hl, MonMenuOptions
+.asm_24e56
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_24e67
+ cp $1
+ jr z, .asm_24e67
+ ld d, [hl]
+ inc hl
+ ld a, [hli]
+ cp b
+ jr nz, .asm_24e56
+ ld a, d
+ scf
+
+.asm_24e67
+ ret
+; 24e68
+
+Function24e68: ; 24e68
+ xor a
+ ld [Buffer1], a
+ ld hl, Buffer2
+ ld bc, $0009
+ call ByteFill
+ ret
+; 24e76
+
+Function24e76: ; 24e76
+ ld a, [Buffer1]
+ ld e, a
+ ld d, $0
+ ld hl, Buffer2
+ add hl, de
+ ld [hl], $ff
+ ret
+; 24e83
+
+Function24e83: ; 24e83
+ push hl
+ push de
+ push af
+ ld a, [Buffer1]
+ ld e, a
+ inc a
+ ld [Buffer1], a
+ ld d, $0
+ ld hl, Buffer2
+ add hl, de
+ pop af
+ ld [hl], a
+ pop de
+ pop hl
+ ret
+; 24e99
+
+Function24e99: ; 24e99
+; BattleMonMenu
+ ld hl, MenuDataHeader_0x24ed4
+ call Function1d3c
+ xor a
+ ld [hBGMapMode], a
+ call Function1cbb
+ call Function1ad2
+ call Function1c89
+ call WaitBGMap
+ call Function1c66
+ ld a, [$cf91]
+ bit 7, a
+ jr z, .asm_24ed0
+ call Function1c10
+ ld hl, $cfa5
+ set 6, [hl]
+ call Function1bc9
+ ld de, SFX_READ_TEXT_2
+ call StartSFX
+ ld a, [hJoyPressed]
+ bit 1, a
+ jr z, .asm_24ed2
+ ret z
+
+.asm_24ed0
+ scf
+ ret
+
+.asm_24ed2
+ and a
+ ret
+; 24ed4
+
+MenuDataHeader_0x24ed4: ; 24ed4
+ db $00 ; flags
+ db 11, 11 ; start coords
+ db 17, 19 ; end coords
+ dw MenuData2_0x24edc
+ db 1 ; default option
+; 24edc
+
+MenuData2_0x24edc: ; 24edc
+ db $c0 ; flags
+ db 3 ; items
+ db "SWITCH@"
+ db "STATS@"
+ db "CANCEL@"
+; 24ef2
+
+
+Function24ef2: ; 4ef2
+ ld hl, MenuDataHeader_0x24f2c
+ call LoadMenuDataHeader
+ ld a, [$d0d2]
+ ld [$cf88], a
+ call Function2039
+ ld a, [$cf88]
+ ld [$d0d2], a
+ call Function1c07
+ ret
+; 24f0b
+
+
+Function24f0b: ; 24f0b
+; Safari battle menu (untranslated).
+ ld hl, MenuDataHeader_0x24f4e
+ call LoadMenuDataHeader
+ jr Function24f19
+; 24f13
+
+Function24f13: ; 24f13
+; Park battle menu.
+ ld hl, MenuDataHeader_0x24f89
+ call LoadMenuDataHeader
+; 24f19
+
+Function24f19: ; 24f19
+ ld a, [$d0d2]
+ ld [$cf88], a
+ call Function202a
+ ld a, [$cf88]
+ ld [$d0d2], a
+ call Function1c07
+ ret
+; 24f2c
+
+
+MenuDataHeader_0x24f2c: ; 24f2c
+ db $40 ; flags
+ db 12, 08 ; start coords
+ db 17, 19 ; end coords
+ dw MenuData_0x24f34
+ db 1 ; default option
+; 24f34
+
+MenuData_0x24f34: ; 0x24f34
+ db $81 ; flags
+ dn 2, 2 ; rows, columns
+ db 6 ; spacing
+ dbw BANK(Strings24f3d), Strings24f3d
+ dbw $09, $0000
+; 0x24f3d
+
+Strings24f3d: ; 0x24f3d
+ db "FIGHT@"
+ db $4a, "@"
+ db "PACK@"
+ db "RUN@"
+; 24f4e
+
+
+MenuDataHeader_0x24f4e: ; 24f4e
+ db $40 ; flags
+ db 12, 00 ; start coords
+ db 17, 19 ; end coords
+ dw MenuData_0x24f56
+ db 1 ; default option
+; 24f56
+
+MenuData_0x24f56: ; 24f56
+ db $81 ; flags
+ dn 2, 2 ; rows, columns
+ db 11 ; spacing
+ dbw BANK(Strings24f5f), Strings24f5f
+ dbw BANK(Function24f7c), Function24f7c
+; 24f5f
+
+Strings24f5f: ; 24f5f
+ db "サファりボール× @" ; "SAFARI BALL× @"
+ db "エサをなげる@" ; "THROW BAIT"
+ db "いしをなげる@" ; "THROW ROCK"
+ db "にげる@" ; "RUN"
+; 24f7c
+
+Function24f7c: ; 24f7c
+ ld hl, $c5b5
+ ld de, $dc79
+ ld bc, $8102
+ call PrintNum
+ ret
+; 24f89
+
+
+MenuDataHeader_0x24f89: ; 24f89
+ db $40 ; flags
+ db 12, 02 ; start coords
+ db 17, 19 ; end coords
+ dw MenuData_0x24f91
+ db 1 ; default option
+; 24f91
+
+MenuData_0x24f91: ; 24f91
+ db $81 ; flags
+ dn 2, 2 ; rows, columns
+ db 12 ; spacing
+ dbw BANK(Strings24f9a), Strings24f9a
+ dbw BANK(Function24fb2), Function24fb2
+; 24f9a
+
+Strings24f9a: ; 24f9a
+ db "FIGHT@"
+ db $4a, "@"
+ db "PARKBALL× @"
+ db "RUN@"
+; 24fb2
+
+Function24fb2: ; 24fb2
+ ld hl, $c5ed
+ ld de, $dc79
+ ld bc, $8102
+ call PrintNum
+ ret
+; 24fbf
+
+
+Function24fbf: ; 24fbf
+ ld hl, $50ed
+ call LoadMenuDataHeader
+ call Function24ff9
+ ret
+; 24fc9
+
+
+Function24fc9: ; 24fc9
+ callba GetItemPrice
+ ld a, d
+ ld [Buffer1], a
+ ld a, e
+ ld [Buffer2], a
+ ld hl, $50f5
+ call LoadMenuDataHeader
+ call Function24ff9
+ ret
+; 24fe1
+
+Function24fe1: ; 24fe1
+ callba GetItemPrice
+ ld a, d
+ ld [Buffer1], a
+ ld a, e
+ ld [Buffer2], a
+ ld hl, $50fd
+ call LoadMenuDataHeader
+ call Function24ff9
+ ret
+; 24ff9
+
+Function24ff9: ; 24ff9
+ ld a, $1
+ ld [$d10c], a
+.asm_24ffe
+ call Function25072
+ call Function2500e
+ jr nc, .asm_24ffe
+ cp $ff
+ jr nz, .asm_2500c
+ scf
+ ret
+
+.asm_2500c
+ and a
+ ret
+; 2500e
+
+Function2500e: ; 2500e
+ call Function354b
+ bit 1, c
+ jr nz, .asm_2502b
+ bit 0, c
+ jr nz, .asm_2502f
+ bit 7, c
+ jr nz, .asm_25033
+ bit 6, c
+ jr nz, .asm_2503f
+ bit 5, c
+ jr nz, .asm_2504d
+ bit 4, c
+ jr nz, .asm_2505f
+ and a
+ ret
+
+.asm_2502b
+ ld a, $ff
+ scf
+ ret
+
+.asm_2502f
+ ld a, $0
+ scf
+ ret
+
+.asm_25033
+ ld hl, $d10c
+ dec [hl]
+ jr nz, .asm_2503d
+ ld a, [$d10d]
+ ld [hl], a
+
+.asm_2503d
+ and a
+ ret
+
+.asm_2503f
+ ld hl, $d10c
+ inc [hl]
+ ld a, [$d10d]
+ cp [hl]
+ jr nc, .asm_2504b
+ ld [hl], $1
+
+.asm_2504b
+ and a
+ ret
+
+.asm_2504d
+ ld a, [$d10c]
+ sub $a
+ jr c, .asm_25058
+ jr z, .asm_25058
+ jr .asm_2505a
+
+.asm_25058
+ ld a, $1
+
+.asm_2505a
+ ld [$d10c], a
+ and a
+ ret
+
+.asm_2505f
+ ld a, [$d10c]
+ add $a
+ ld b, a
+ ld a, [$d10d]
+ cp b
+ jr nc, .asm_2506c
+ ld b, a
+
+.asm_2506c
+ ld a, b
+ ld [$d10c], a
+ and a
+ ret
+; 25072
+
+Function25072: ; 25072
+ call Function1cbb
+ call Function1cfd
+ ld de, $0015
+ add hl, de
+ ld [hl], $f1
+ inc hl
+ ld de, $d10c
+ ld bc, $8102
+ call PrintNum
+ ld a, [$cf86]
+ ld e, a
+ ld a, [$cf87]
+ ld d, a
+ ld a, [$cf8a]
+ call FarJpDe
+ ret
+; 25097
+
+
+Function25097: ; 25097
+ ret
+; 25098
+
+Function25098: ; 25098
+ call Function250a9
+ call Function250d1
+ ret
+; 2509f
+
+Function2509f: ; 2509f
+ call Function250a9
+ call Function250c1
+ call Function250d1
+ ret
+; 250a9
+
+Function250a9: ; 250a9
+ xor a
+ ld [hMultiplicand], a
+ ld a, [Buffer1]
+ ld [$ffb5], a
+ ld a, [Buffer2]
+ ld [$ffb6], a
+ ld a, [$d10c]
+ ld [hMultiplier], a
+ push hl
+ call Multiply
+ pop hl
+ ret
+; 250c1
+
+Function250c1: ; 250c1
+ push hl
+ ld hl, hMultiplicand
+ ld a, [hl]
+ srl a
+ ld [hli], a
+ ld a, [hl]
+ rra
+ ld [hli], a
+ ld a, [hl]
+ rra
+ ld [hl], a
+ pop hl
+ ret
+; 250d1
+
+Function250d1: ; 250d1
+ push hl
+ ld hl, $ffc3
+ ld a, [hMultiplicand]
+ ld [hli], a
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hl], a
+ pop hl
+ inc hl
+ ld de, $ffc3
+ ld bc, $2306
+ call PrintNum
+ call WaitBGMap
+ ret
+; 250ed
+
+
+INCBIN "baserom.gbc", $250ed, $265d3 - $250ed
+
+
ProfOaksPC: ; 0x265d3
ld hl, OakPCText1
- call $1d4f
- call $1dcf
+ call Function1d4f
+ call Function1dcf
jr c, .shutdown
call ProfOaksPCBoot ; player chose "yes"?
.shutdown
@@ -10937,7 +34567,7 @@
pop de
call StartSFX
call $0a36
- call $3c55
+ call WaitSFX
ret
; 0x26616
@@ -10983,7 +34613,7 @@
call ByteFill
pop hl
ld bc, $4103
- call $3198
+ call PrintNum
ret
; 0x2666b
@@ -11192,7 +34822,7 @@
ld a, [$cf76]
push af
ld hl, $679a
- call $1d35
+ call LoadMenuDataHeader
xor a
ld [$d1ee], a
ld a, $1
@@ -11201,17 +34831,17 @@
ld a, [$d1ef]
ld [$cf88], a
call $6806
- call $1e5d
+ call Function1e5d
ld a, [$cfa9]
ld [$d1ef], a
jr c, .asm_2678e
ld a, [MenuSelection]
ld hl, $67aa
- call $1fa7
+ call Function1fa7
jr nc, .asm_2676f
.asm_2678e
- call $1c07
+ call Function1c07
pop af
ld [$cf76], a
ld a, [$d1ee]
@@ -11219,8 +34849,238 @@
ret
; 0x2679a
-INCBIN "baserom.gbc", $2679a, $270c4 - $2679a
+INCBIN "baserom.gbc", $2679a, $269dd - $2679a
+
+Function269dd: ; 269dd
+ ld hl, $6a4f
+ ld bc, $0006
+ call AddNTimes
+ ret
+; 269e7
+
+Function269e7: ; 269e7
+ push hl
+ call Function269dd
+ call Function26c72
+ pop hl
+ call CopyName2
+ ret
+; 269f3
+
+INCBIN "baserom.gbc", $269f3, $26a30 - $269f3
+
+
+Function26a30: ; 26a30
+ call Function269dd
+ ld de, $0003
+ add hl, de
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ret
+; 26a3b
+
+Function26a3b: ; 26a3b
+ push bc
+ call Function26a30
+ pop bc
+ call BitTable1Func
+ ret
+; 26a44
+
+INCBIN "baserom.gbc", $26a44, $26c72 - $26a44
+
+
+Function26c72: ; 26c72
+ ld a, [hli]
+ ld e, [hl]
+ ld bc, StringBuffer2
+ push bc
+ ld hl, $6c7e
+ rst JumpTable
+ pop de
+ ret
+; 26c7e
+
+INCBIN "baserom.gbc", $26c7e, $26c8c - $26c7e
+
+
+Function26c8c: ; 26c8c
+ ret
+; 26c8d
+
+Function26c8d: ; 26c8d
+ ld a, e
+ jr .asm_26cca
+
+ call Function26c8d
+ ld a, $d
+ jr .asm_26cca
+
+ call Function26c8d
+ ld a, $e
+ jr .asm_26cca
+
+ ld a, e
+ call $6cc0
+ ld a, $f
+ jr .asm_26cca
+
+ ld a, e
+ call $6cc0
+ ld a, $10
+ jr .asm_26cca
+
+ push de
+ ld a, $11
+ call $6cca
+ pop de
+ ld a, e
+ jr .asm_26cc0
+
+ push de
+ call $6cca
+ pop de
+ ld a, e
+ jr .asm_26cca
+
+.asm_26cc0
+ push bc
+ ld [$d265], a
+ call GetPokemonName
+ pop bc
+ jr .asm_26cda
+
+.asm_26cca
+ call $6ccf
+ jr .asm_26cda
+
+ push bc
+ ld hl, $6b8d
+ call GetNthString
+ ld d, h
+ ld e, l
+ pop bc
+ ret
+
+.asm_26cda
+ ld h, b
+ ld l, c
+ call CopyName2
+ dec hl
+ ld b, h
+ ld c, l
+ ret
+; 26ce3
+
+INCBIN "baserom.gbc", $26ce3, $26eea - $26ce3
+
+
+Function26eea: ; 26eea
+ ld a, c
+ ld h, d
+ ld l, e
+ call Function269e7
+ ret
+; 26ef1
+
+Function26ef1: ; 26ef1
+ ld a, c
+ jp Function26a3b
+; 26ef5
+
+INCBIN "baserom.gbc", $26ef5, $26f02 - $26ef5
+
+
+Function26f02: ; 26f02
+ ld a, c
+ call Function26f0c
+ ld b, $1
+ call Function26a3b
+ ret
+; 26f0c
+
+Function26f0c: ; 26f0c
+ push hl
+ push de
+ ld e, a
+ ld d, $0
+ ld hl, $6f2b
+ add hl, de
+ ld a, [hl]
+ pop de
+ pop hl
+ ret
+; 26f19
+
+INCBIN "baserom.gbc", $26f19, $26f59 - $26f19
+
+
+Function26f59: ; 26f59
+ ld a, b
+ ld hl, $6f5f
+ rst JumpTable
+ ret
+; 26f5f
+
+INCBIN "baserom.gbc", $26f5f, $26fb9 - $26f5f
+
+
+Function26fb9: ; 26fb9
+ ld a, [LeftOrnament]
+ jr .asm_26fc8
+
+ ld a, [RightOrnament]
+ jr .asm_26fc8
+
+ ld a, [Console]
+ jr .asm_26fc8
+
+.asm_26fc8
+ ld c, a
+ ld de, StringBuffer3
+ call Function26eea
+ ld b, $9
+ ld de, $6fd5
+ ret
+; 26fd5
+
+INCBIN "baserom.gbc", $26fd5, $26fdd - $26fd5
+
+
+Function26fdd: ; 26fdd
+ ld b, $9
+ ld de, $6fe3
+ ret
+; 26fe3
+
+INCBIN "baserom.gbc", $26fe3, $2709e - $26fe3
+
+
+Function2709e: ; 2709e
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1CaughtLocation
+ call GetPartyLocation
+ ld a, [hl]
+ and $7f
+ ld d, a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp d
+ ld c, $1
+ jr nz, .asm_270bd
+ ld c, $13
+
+.asm_270bd
+ callab ChangeHappiness
+ ret
+; 270c4
+
+
GetTrainerDVs: ; 270c4
; get dvs based on trainer class
; output: bc
@@ -11314,8 +35174,87 @@
db $98, $88 ; mysticalman
; 2715c
-INCBIN "baserom.gbc", $2715c, $271f4 - $2715c
+Function2715c: ; 2715c
+ call WhiteBGMap
+ call ClearTileMap
+ ld a, [BattleType]
+ cp $3
+ jr z, .asm_27171
+ callba Function3f43d
+ jr .asm_27177
+.asm_27171
+ callba GetBattleBackpic
+
+.asm_27177
+ callba Function3f47c
+ callba Function3ed9f
+ call ClearSGB
+ call Function1c17
+ call Function1d6e
+ call WaitBGMap
+ jp Function32f9
+; 27192
+
+Function27192: ; 27192
+ push hl
+ push de
+ push bc
+ ld a, [hBattleTurn]
+ and a
+ ld hl, OTPartyMon1Item
+ ld de, EnemyMonItem
+ ld a, [CurOTMon]
+ jr z, .asm_271ac
+ ld hl, PartyMon1Item
+ ld de, BattleMonItem
+ ld a, [CurBattleMon]
+
+.asm_271ac
+ push hl
+ push af
+ ld a, [de]
+ ld b, a
+ callba GetItem
+ ld hl, $71de
+.asm_271b9
+ ld a, [hli]
+ cp b
+ jr z, .asm_271c6
+ inc a
+ jr nz, .asm_271b9
+ pop af
+ pop hl
+ pop bc
+ pop de
+ pop hl
+ ret
+
+.asm_271c6
+ xor a
+ ld [de], a
+ pop af
+ pop hl
+ call GetPartyLocation
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .asm_271d8
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_271da
+
+.asm_271d8
+ ld [hl], $0
+
+.asm_271da
+ pop bc
+ pop de
+ pop hl
+ ret
+; 271de
+
+INCBIN "baserom.gbc", $271de, $271f4 - $271de
+
MoveEffectsPointers: ; 271f4
INCLUDE "battle/moves/move_effects_pointers.asm"
@@ -11327,29 +35266,221 @@
SECTION "bankA",ROMX,BANK[$A]
-INCBIN "baserom.gbc", $28000, $28785 - $28000
+INCBIN "baserom.gbc", $28000, $2a111 - $28000
-TimeCapsuleItemConversions: ; 0x28785
-; 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.
+Function2a111: ; 2a111
+ ld hl, $d25a
+ call Function1852
+ ld a, $3
+ jr z, .asm_2a11e
+ ld a, [TimeOfDay]
- db 25, LEFTOVERS
- db 45, BITTER_BERRY
- db 50, GOLD_BERRY
- db 90, BERRY
- db 100, BERRY
- db 120, BERRY
- db 135, BERRY
- db 190, BERRY
- db 195, BERRY
- db 220, BERRY
- db 250, BERRY
- db 255, BERRY
- db 0
+.asm_2a11e
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld b, [hl]
+ ret
+; 2a124
-INCBIN "baserom.gbc", $2879e, $2a2a0 - $2879e
+INCBIN "baserom.gbc", $2a124, $2a14f - $2a124
+Function2a14f: ; 2a14f
+ call Function2a200
+ jp nc, $61c1
+ call Function2a2ce
+ jp c, $61c9
+ inc hl
+ inc hl
+ inc hl
+ call Function1852
+ ld de, $61d9
+ jr z, .asm_2a174
+ inc hl
+ inc hl
+ ld a, [TimeOfDay]
+ ld bc, $000e
+ call AddNTimes
+ ld de, $61cb
+
+.asm_2a174
+ push hl
+.asm_2a175
+ call RNG
+ cp $64
+ jr nc, .asm_2a175
+ inc a
+ ld b, a
+ ld h, d
+ ld l, e
+.asm_2a180
+ ld a, [hli]
+ cp b
+ jr nc, .asm_2a187
+ inc hl
+ jr .asm_2a180
+
+.asm_2a187
+ ld c, [hl]
+ ld b, $0
+ pop hl
+ add hl, bc
+ ld a, [hli]
+ ld b, a
+ call Function1852
+ jr nz, .asm_2a1aa
+ call RNG
+ cp $59
+ jr c, .asm_2a1aa
+ inc b
+ cp $a5
+ jr c, .asm_2a1aa
+ inc b
+ cp $d8
+ jr c, .asm_2a1aa
+ inc b
+ cp $f2
+ jr c, .asm_2a1aa
+ inc b
+
+.asm_2a1aa
+ ld a, b
+ ld [CurPartyLevel], a
+ ld b, [hl]
+ call Function2a4a0
+ jr c, .asm_2a1c1
+ ld a, b
+ cp $c9
+ jr nz, .asm_2a1bf
+ ld a, [UnlockedUnowns]
+ and a
+ jr z, .asm_2a1c1
+
+.asm_2a1bf
+ jr .asm_2a1c5
+
+.asm_2a1c1
+ ld a, $1
+ and a
+ ret
+
+.asm_2a1c5
+ ld a, b
+ ld [$d22e], a
+ xor a
+ ret
+; 2a1cb
+
+INCBIN "baserom.gbc", $2a1cb, $2a200 - $2a1cb
+
+Function2a200: ; 2a200
+ call Function1852
+ jr z, .asm_2a21d
+ ld hl, WildMons5
+ ld bc, $002f
+ call $623d
+ ret c
+ ld hl, WildMons1
+ ld de, WildMons3
+ call $6235
+ ld bc, $002f
+ jr .asm_2a27a
+
+.asm_2a21d
+ ld hl, WildMons6
+ ld bc, $0009
+ call $623d
+ ret c
+ ld hl, WildMons2
+ ld de, WildMons4
+ call $6235
+ ld bc, $0009
+ jr .asm_2a27a
+
+ call Function2f17
+ and a
+ ret z
+ ld h, d
+ ld l, e
+ ret
+
+ call $627f
+ push hl
+ ld hl, $dc20
+ bit 2, [hl]
+ pop hl
+ jr z, .asm_2a25c
+ ld a, [$dfcc]
+ cp d
+ jr nz, .asm_2a25c
+ ld a, [$dfcd]
+ cp e
+ jr nz, .asm_2a25c
+ call $6288
+ jr nc, .asm_2a278
+ scf
+ ret
+
+.asm_2a25c
+ push hl
+ ld hl, $dc20
+ bit 3, [hl]
+ pop hl
+ jr z, .asm_2a278
+ ld a, [$dc5a]
+ cp d
+ jr nz, .asm_2a278
+ ld a, [$dc5b]
+ cp e
+ jr nz, .asm_2a278
+ call $6288
+ jr nc, .asm_2a278
+ scf
+ ret
+
+.asm_2a278
+ and a
+ ret
+
+.asm_2a27a
+ call $627f
+ jr .asm_2a288
+
+ ld a, [MapGroup]
+ ld d, a
+ ld a, [MapNumber]
+ ld e, a
+ ret
+
+.asm_2a288
+ push hl
+ ld a, [hl]
+ inc a
+ jr z, .asm_2a29a
+ ld a, d
+ cp [hl]
+ jr nz, .asm_2a296
+ inc hl
+ ld a, e
+ cp [hl]
+ jr z, .asm_2a29d
+
+.asm_2a296
+ pop hl
+ add hl, bc
+ jr .asm_2a288
+
+.asm_2a29a
+ pop hl
+ and a
+ ret
+
+.asm_2a29d
+ pop hl
+ scf
+ ret
+; 2a2a0
+
SpecialRoamMons: ; 2a2a0
; initialize RoamMon structs
; include commented-out parts from the gs function
@@ -11395,9 +35526,244 @@
ret
; 2a2ce
-INCBIN "baserom.gbc", $2a2ce, $2a5e9 - $2a2ce
+Function2a2ce: ; 2a2ce
+ push hl
+ call Function1852
+ jr z, .asm_2a30a
+ call $627f
+ call RNG
+ cp $64
+ jr nc, .asm_2a30a
+ and $3
+ jr z, .asm_2a30a
+ dec a
+ ld hl, RoamMon1MapGroup
+ ld c, a
+ ld b, $0
+ ld a, $7
+ call AddNTimes
+ ld a, d
+ cp [hl]
+ jr nz, .asm_2a30a
+ inc hl
+ ld a, e
+ cp [hl]
+ jr nz, .asm_2a30a
+ dec hl
+ dec hl
+ dec hl
+ ld a, [hli]
+ ld [$d22e], a
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld a, $5
+ ld [BattleType], a
+ pop hl
+ scf
+ ret
+.asm_2a30a
+ pop hl
+ and a
+ ret
+; 2a30d
+
+
+Function2a30d: ; 2a30d
+ ld a, [RoamMon1MapGroup]
+ cp $ff
+ jr z, .asm_2a324
+ ld b, a
+ ld a, [RoamMon1MapNumber]
+ ld c, a
+ call Function2a355
+ ld a, b
+ ld [RoamMon1MapGroup], a
+ ld a, c
+ ld [RoamMon1MapNumber], a
+
+.asm_2a324
+ ld a, [RoamMon2MapGroup]
+ cp $ff
+ jr z, .asm_2a33b
+ ld b, a
+ ld a, [RoamMon2MapNumber]
+ ld c, a
+ call Function2a355
+ ld a, b
+ ld [RoamMon2MapGroup], a
+ ld a, c
+ ld [RoamMon2MapNumber], a
+
+.asm_2a33b
+ ld a, [RoamMon3MapGroup]
+ cp $ff
+ jr z, .asm_2a352
+ ld b, a
+ ld a, [RoamMon3MapNumber]
+ ld c, a
+ call Function2a355
+ ld a, b
+ ld [RoamMon3MapGroup], a
+ ld a, c
+ ld [RoamMon3MapNumber], a
+
+.asm_2a352
+ jp Function2a3f6
+; 2a355
+
+
+Function2a355: ; 2a355
+ ld hl, $640f
+.asm_2a358
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld a, b
+ cp [hl]
+ jr nz, .asm_2a365
+ inc hl
+ ld a, c
+ cp [hl]
+ jr z, .asm_2a36b
+
+.asm_2a365
+ ld a, [hli]
+ and a
+ jr nz, .asm_2a365
+ jr .asm_2a358
+
+.asm_2a36b
+ inc hl
+ ld d, h
+ ld e, l
+.asm_2a36e
+ ld h, d
+ ld l, e
+ call RNG
+ and $1f
+ jr z, .asm_2a3cd
+ and $3
+ cp [hl]
+ jr nc, .asm_2a36e
+ inc hl
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, [$dfe7]
+ cp [hl]
+ jr nz, .asm_2a390
+ inc hl
+ ld a, [$dfe6]
+ cp [hl]
+ jr z, .asm_2a36e
+ dec hl
+
+.asm_2a390
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ ret
+
+ ld a, [RoamMon1MapGroup]
+ cp $ff
+ jr z, .asm_2a3a6
+ call $63cd
+ ld a, b
+ ld [RoamMon1MapGroup], a
+ ld a, c
+ ld [RoamMon1MapNumber], a
+
+.asm_2a3a6
+ ld a, [RoamMon2MapGroup]
+ cp $ff
+ jr z, .asm_2a3b8
+ call $63cd
+ ld a, b
+ ld [RoamMon2MapGroup], a
+ ld a, c
+ ld [RoamMon2MapNumber], a
+
+.asm_2a3b8
+ ld a, [RoamMon3MapGroup]
+ cp $ff
+ jr z, .asm_2a3ca
+ call $63cd
+ ld a, b
+ ld [RoamMon3MapGroup], a
+ ld a, c
+ ld [RoamMon3MapNumber], a
+
+.asm_2a3ca
+ jp Function2a3f6
+
+.asm_2a3cd
+ ld hl, $640f
+.asm_2a3d0
+ call RNG
+ and $f
+ cp $10
+ jr nc, .asm_2a3d0
+ inc a
+ ld b, a
+.asm_2a3db
+ dec b
+ jr z, .asm_2a3e4
+.asm_2a3de
+ ld a, [hli]
+ and a
+ jr nz, .asm_2a3de
+ jr .asm_2a3db
+
+.asm_2a3e4
+ ld a, [MapGroup]
+ cp [hl]
+ jr nz, .asm_2a3f2
+ inc hl
+ ld a, [MapNumber]
+ cp [hl]
+ jr z, .asm_2a3cd
+ dec hl
+
+.asm_2a3f2
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ ret
+; 2a3f6
+
+Function2a3f6: ; 2a3f6
+ ld a, [$dfe4]
+ ld [$dfe6], a
+ ld a, [$dfe5]
+ ld [$dfe7], a
+ ld a, [MapNumber]
+ ld [$dfe4], a
+ ld a, [MapGroup]
+ ld [$dfe5], a
+ ret
+; 2a40f
+
+INCBIN "baserom.gbc", $2a40f, $2a4a0 - $2a40f
+
+Function2a4a0: ; 2a4a0
+ and a
+ jr z, .asm_2a4a9
+ cp $fc
+ jr nc, .asm_2a4a9
+ and a
+ ret
+
+.asm_2a4a9
+ scf
+ ret
+; 2a4ab
+
+INCBIN "baserom.gbc", $2a4ab, $2a5e9 - $2a4ab
+
+
WildMons1: ; 0x2a5e9
INCLUDE "stats/wild/johto_grass.asm"
@@ -11417,8 +35783,175 @@
INCLUDE "stats/wild/swarm_water.asm"
-INCBIN "baserom.gbc", $2b930, $2ba1a - $2b930
+Function2b930: ; 2b930
+ callba UpdateEnemyMonInParty
+ ld hl, PartyMon1CurHP
+ call Function2b995
+ push bc
+ ld hl, OTPartyMon1CurHP
+ call Function2b995
+ ld a, c
+ pop bc
+ cp c
+ jr z, .asm_2b94c
+ jr c, .asm_2b97f
+ jr .asm_2b976
+.asm_2b94c
+ call Function2b9e1
+ jr z, .asm_2b98a
+ ld a, e
+ cp $1
+ jr z, .asm_2b976
+ cp $2
+ jr z, .asm_2b97f
+ ld hl, PartyMon1CurHP
+ call Function2b9a6
+ push de
+ ld hl, OTPartyMon1CurHP
+ call Function2b9a6
+ pop hl
+ ld a, d
+ cp h
+ jr c, .asm_2b976
+ jr z, .asm_2b970
+ jr .asm_2b97f
+
+.asm_2b970
+ ld a, e
+ cp l
+ jr z, .asm_2b98a
+ jr nc, .asm_2b97f
+
+.asm_2b976
+ ld a, [$d0ee]
+ and $f0
+ ld [$d0ee], a
+ ret
+
+.asm_2b97f
+ ld a, [$d0ee]
+ and $f0
+ add $1
+ ld [$d0ee], a
+ ret
+
+.asm_2b98a
+ ld a, [$d0ee]
+ and $f0
+ add $2
+ ld [$d0ee], a
+ ret
+; 2b995
+
+Function2b995: ; 2b995
+ ld c, $0
+ ld b, $3
+ ld de, $002f
+.asm_2b99c
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_2b9a1
+ inc c
+
+.asm_2b9a1
+ add hl, de
+ dec b
+ jr nz, .asm_2b99c
+ ret
+; 2b9a6
+
+Function2b9a6: ; 2b9a6
+ ld de, $0000
+ ld c, $3
+.asm_2b9ab
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_2b9d7
+ dec hl
+ xor a
+ ld [hProduct], a
+ ld a, [hli]
+ ld [hMultiplicand], a
+ ld a, [hli]
+ ld [$ffb5], a
+ xor a
+ ld [$ffb6], a
+ ld a, [hli]
+ ld b, a
+ ld a, [hld]
+ srl b
+ rr a
+ srl b
+ rr a
+ ld [hMultiplier], a
+ ld b, $4
+ call Divide
+ ld a, [$ffb6]
+ add e
+ ld e, a
+ ld a, [$ffb5]
+ adc d
+ ld d, a
+ dec hl
+
+.asm_2b9d7
+ push de
+ ld de, $002f
+ add hl, de
+ pop de
+ dec c
+ jr nz, .asm_2b9ab
+ ret
+; 2b9e1
+
+Function2b9e1: ; 2b9e1
+ ld hl, PartyMon1CurHP
+ call Function2ba01
+ jr nz, .asm_2b9f2
+ ld hl, OTPartyMon1CurHP
+ call Function2ba01
+ ld e, $1
+ ret
+
+.asm_2b9f2
+ ld hl, OTPartyMon1CurHP
+ call Function2ba01
+ ld e, $0
+ ret nz
+ ld e, $2
+ ld a, $1
+ and a
+ ret
+; 2ba01
+
+Function2ba01: ; 2ba01
+ ld d, $3
+.asm_2ba03
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ or b
+ jr z, .asm_2ba10
+ ld a, [hli]
+ cp b
+ ret nz
+ ld a, [hld]
+ cp c
+ ret nz
+
+.asm_2ba10
+ push de
+ ld de, $002e
+ add hl, de
+ pop de
+ dec d
+ jr nz, .asm_2ba03
+ ret
+; 2ba1a
+
+
ChrisBackpic: ; 2ba1a
INCBIN "gfx/misc/player.lz"
; 2bba1
@@ -11432,8 +35965,278 @@
SECTION "bankB",ROMX,BANK[$B]
-INCBIN "baserom.gbc", $2C000, $2c1ef - $2C000
+Function2c000: ; 2c000
+ ld a, $e4
+ ld [rOBP0], a
+ call Function2c165
+ call Function2c01c
+ ld a, [IsInBattle]
+ dec a
+ ret z
+ jp Function2c03a
+; 2c012
+
+
+Function2c012: ; 2c012
+ ld a, $e4
+ ld [rOBP0], a
+ call Function2c165
+ jp Function2c03a
+; 2c01c
+
+Function2c01c: ; 2c01c
+ call Function2c0ad
+ ld hl, PartyMon1CurHP
+ ld de, PartyCount
+ call Function2c059
+ ld a, $60
+ ld hl, $cfc4
+ ld [hli], a
+ ld [hl], a
+ ld a, $8
+ ld [$d003], a
+ ld hl, Sprites
+ jp Function2c143
+; 2c03a
+
+
+
+Function2c03a: ; 2c03a
+ call Function2c0c5
+ ld hl, OTPartyMon1CurHP
+ ld de, OTPartyCount
+ call Function2c059
+ ld hl, $cfc4
+ ld a, $48
+ ld [hli], a
+ ld [hl], $20
+ ld a, $f8
+ ld [$d003], a
+ ld hl, $c418
+ jp Function2c143
+; 2c059
+
+
+Function2c059: ; 2c059
+ ld a, [de]
+ push af
+ ld de, Buffer1
+ ld c, $6
+ ld a, $34
+.asm_2c062
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_2c062
+ pop af
+ ld de, Buffer1
+.asm_2c06b
+ push af
+ call Function2c075
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_2c06b
+ ret
+; 2c075
+
+Function2c075: ; 2c075
+ ld a, [hli]
+ and a
+ jr nz, .asm_2c07f
+ ld a, [hl]
+ and a
+ ld b, $33
+ jr z, .asm_2c08b
+
+.asm_2c07f
+ dec hl
+ dec hl
+ dec hl
+ ld a, [hl]
+ and a
+ ld b, $32
+ jr nz, .asm_2c08e
+ dec b
+ jr .asm_2c08e
+
+.asm_2c08b
+ dec hl
+ dec hl
+ dec hl
+
+.asm_2c08e
+ ld a, b
+ ld [de], a
+ ld bc, $0032
+ add hl, bc
+ ret
+; 2c095
+
+DrawPlayerExpBar: ; 2c095
+ ld hl, .data_2c0a9
+ ld de, $d004
+ ld bc, 4
+ call CopyBytes
+ ld hl, $c57a
+ ld de, -1
+ jr Function2c0f1
+
+.data_2c0a9
+ db $73
+ db $77
+ db $6f
+ db $76
+; 2c0ad
+
+Function2c0ad: ; 2c0ad
+ ld hl, .data_2c0c1
+ ld de, $d004
+ ld bc, 4
+ call CopyBytes
+ ld hl, $c57a
+ ld de, -1
+ jr Function2c0f1
+
+.data_2c0c1
+ db $73, $5c, $6f, $76
+; 2c0c5
+
+Function2c0c5: ; 2c0c5
+ ld hl, .data_2c0ed
+ ld de, $d004
+ ld bc, 4
+ call CopyBytes
+ ld hl, $c4c9
+ ld de, 1
+ call Function2c0f1
+ ld a, [IsInBattle]
+ dec a
+ ret nz
+ ld a, [TempEnemyMonSpecies]
+ dec a
+ call CheckSeenMon
+ ret z
+ ld hl, $c4b5
+ ld [hl], $5d
+ ret
+
+.data_2c0ed
+ db $6d
+ db $74
+ db $78
+ db $76
+; 2c0f1
+
+Function2c0f1: ; 2c0f1
+ ld a, [$d004]
+ ld [hl], a
+ ld bc, $0014
+ add hl, bc
+ ld a, [StartFlypoint]
+ ld [hl], a
+ ld b, $8
+.asm_2c0ff
+ add hl, de
+ ld a, [MovementBuffer]
+ ld [hl], a
+ dec b
+ jr nz, .asm_2c0ff
+ add hl, de
+ ld a, [EndFlypoint]
+ ld [hl], a
+ ret
+; 2c10d
+
+
+Function2c10d: ; 2c10d
+ call Function2c165
+ ld hl, PartyMon1CurHP
+ ld de, PartyCount
+ call Function2c059
+ ld hl, $cfc4
+ ld a, $50
+ ld [hli], a
+ ld [hl], $40
+ ld a, $8
+ ld [$d003], a
+ ld hl, Sprites
+ call Function2c143
+ ld hl, OTPartyMon1CurHP
+ ld de, OTPartyCount
+ call Function2c059
+ ld hl, $cfc4
+ ld a, $50
+ ld [hli], a
+ ld [hl], $68
+ ld hl, $c418
+ jp Function2c143
+; 2c143
+
+Function2c143: ; 2c143
+ ld de, Buffer1
+ ld c, $6
+.asm_2c148
+ ld a, [$cfc5]
+ ld [hli], a
+ ld a, [$cfc4]
+ ld [hli], a
+ ld a, [de]
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, [$cfc4]
+ ld b, a
+ ld a, [$d003]
+ add b
+ ld [$cfc4], a
+ inc de
+ dec c
+ jr nz, .asm_2c148
+ ret
+; 2c165
+
+Function2c165: ; 2c165
+ ld de, $4172
+ ld hl, $8310
+ ld bc, $0b04
+ call Functiondc9
+ ret
+; 2c172
+
+INCBIN "baserom.gbc", $2c172, $2c1b2 - $2c172
+
+
+Function2c1b2: ; 2c1b2
+ call WhiteBGMap
+ call Functione5f
+ ld hl, $c4de
+ ld b, $9
+ ld c, $e
+ call TextBox
+ ld hl, $c508
+ ld de, PlayerName
+ call PlaceString
+ ld hl, $c56c
+ ld de, $d26b
+ call PlaceString
+ ld hl, $c549
+ ld a, $69
+ ld [hli], a
+ ld [hl], $6a
+ ld a, $b
+ ld hl, $410d
+ rst FarCall
+ ld b, $8
+ call GetSGBLayout
+ call Function32f9
+ ld a, $e4
+ ld [rOBP0], a
+ ret
+; 2c1ef
+
+
TrainerClassNames: ; 2c1ef
db "LEADER@"
db "LEADER@"
@@ -11504,9 +36307,292 @@
db "MYSTICALMAN@"
-INCBIN "baserom.gbc", $2c41a, $2ee6c - $2c41a
+INCBIN "baserom.gbc", $2c41a, $2c7fb - $2c41a
+Function2c7fb: ; 2c7fb
+ ld hl, StringBuffer2
+ ld de, $d066
+ ld bc, $000c
+ call CopyBytes
+ call WhiteBGMap
+ ld a, $14
+ ld hl, $404f
+ rst FarCall
+ ld a, $14
+ ld hl, $4405
+ rst FarCall
+ ld a, $14
+ ld hl, $43e0
+ rst FarCall
+ ld a, $3
+ ld [PartyMenuActionText], a
+.asm_2c821
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuText
+ call WaitBGMap
+ call Function32f9
+ call DelayFrame
+ callba PartyMenuSelect
+ push af
+ ld a, [CurPartySpecies]
+ cp $fd
+ pop bc
+ jr z, .asm_2c854
+ push bc
+ ld hl, $d066
+ ld de, StringBuffer2
+ ld bc, $000c
+ call CopyBytes
+ pop af
+ ret
+
+.asm_2c854
+ push hl
+ push de
+ push bc
+ push af
+ ld de, SFX_WRONG
+ call StartSFX
+ call WaitSFX
+ pop af
+ pop bc
+ pop de
+ pop hl
+ jr .asm_2c821
+; 2c867
+
+
+INCBIN "baserom.gbc", $2c867, $2cb3e - $2c867
+
+
+PrintMoveDescription: ; 2cb3e
+ push hl
+ ld hl, MoveDescriptions
+ ld a, [CurSpecies]
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ pop hl
+ jp PlaceString
+; 2cb52
+
+MoveDescriptions: ; 2cb52
+INCLUDE "battle/moves/move_descriptions.asm"
+; 2ed44
+
+
+Function2ed44: ; 2ed44
+ call Function2ede6
+ ld hl, PartyMon1PokerusStatus
+ ld a, [PartyCount]
+ ld b, a
+ ld de, $0030
+.asm_2ed51
+ ld a, [hl]
+ and $f
+ jr nz, .asm_2ed9a
+ add hl, de
+ dec b
+ jr nz, .asm_2ed51
+ ld hl, StatusFlags2
+ bit 6, [hl]
+ ret z
+ call RNG
+ ld a, [hRandomAdd]
+ and a
+ ret nz
+ ld a, [hRandomSub]
+ cp $3
+ ret nc
+ ld a, [PartyCount]
+ ld b, a
+.asm_2ed70
+ call RNG
+ and $7
+ cp b
+ jr nc, .asm_2ed70
+ ld hl, PartyMon1PokerusStatus
+ call GetPartyLocation
+ ld a, [hl]
+ and $f0
+ ret nz
+.asm_2ed82
+ call RNG
+ and a
+ jr z, .asm_2ed82
+ ld b, a
+ and $f0
+ jr z, .asm_2ed91
+ ld a, b
+ and $7
+ inc a
+
+.asm_2ed91
+ ld b, a
+ swap b
+ and $3
+ inc a
+ add b
+ ld [hl], a
+ ret
+
+.asm_2ed9a
+ call RNG
+ cp $55
+ ret nc
+ ld a, [PartyCount]
+ cp $1
+ ret z
+ ld c, [hl]
+ ld a, b
+ cp $2
+ jr c, .asm_2edc3
+ call RNG
+ cp $80
+ jr c, .asm_2edc3
+.asm_2edb3
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .asm_2edd9
+ ld c, a
+ and $3
+ ret z
+ dec b
+ ld a, b
+ cp $1
+ jr nz, .asm_2edb3
+ ret
+
+.asm_2edc3
+ ld a, [PartyCount]
+ cp b
+ ret z
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc d
+ ld h, a
+ ld a, [hl]
+ and a
+ jr z, .asm_2edd9
+ ld c, a
+ and $3
+ ret z
+ inc b
+ jr .asm_2edc3
+
+.asm_2edd9
+ ld a, c
+ and $f0
+ ld b, a
+ ld a, c
+ swap a
+ and $3
+ inc a
+ add b
+ ld [hl], a
+ ret
+; 2ede6
+
+Function2ede6: ; 2ede6
+ ld hl, StatusFlags2
+ bit 6, [hl]
+ ret z
+ call RNG
+ cp $10
+ ret nc
+ ld hl, PartyMons
+ ld a, [PartyCount]
+.asm_2edf8
+ push af
+ push hl
+ ld a, [hl]
+ cp SHUCKLE
+ jr nz, .asm_2ee08
+ ld bc, PartyMon1Item - PartyMon1Species
+ add hl, bc
+ ld a, [hl]
+ cp BERRY
+ jr z, .asm_2ee12
+
+.asm_2ee08
+ pop hl
+ ld bc, PartyMon2 - PartyMon1
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .asm_2edf8
+ ret
+
+.asm_2ee12
+ ld a, BERRY_JUICE
+ ld [hl], a
+ pop hl
+ pop af
+ ret
+; 2ee18
+
+Function2ee18: ; 2ee18
+ ld a, [InLinkBattle]
+ and a
+ ret z
+ ld a, $b
+ ld hl, $41b2
+ rst FarCall
+ ld c, 150
+ call DelayFrames
+ call ClearTileMap
+ call ClearSprites
+ ret
+; 2ee2f
+
+Function2ee2f: ; 2ee2f
+ xor a
+ ld [$ffde], a
+ call DelayFrame
+ ld b, $6
+ ld hl, PartyMon1CurHP
+ ld de, $002f
+.asm_2ee3d
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_2ee45
+ add hl, de
+ dec b
+ jr nz, .asm_2ee3d
+
+.asm_2ee45
+ ld de, $fffd
+ add hl, de
+ ld a, [hl]
+ ld [BattleMonLevel], a
+ ld a, $34
+ call Predef
+ ld a, $f
+ ld hl, $6d9f
+ rst FarCall
+ ld a, $1
+ ld [hBGMapMode], a
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld [hWY], a
+ ld [rWY], a
+ ld [$ffde], a
+ ret
+; 2ee6c
+
+
+
PlayBattleMusic: ; 2ee6c
push hl
@@ -11662,9 +36748,9 @@
ld a, $f
rst FarCall
- call $1fbf
+ call Function1fbf
- ld hl, $ffd6
+ ld hl, hBGMapAddress
xor a
ld [hli], a
ld [hl], $98
@@ -11831,16 +36917,763 @@
SECTION "bankE",ROMX,BANK[$E]
-INCBIN "baserom.gbc", $38000, $38591 - $38000
+Function38000: ; 38000
+ and a
+ ld a, [IsInBattle]
+ dec a
+ ret z
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+ ld a, $f
+ ld hl, $68d1
+ rst FarCall
+ ret nz
+ ld a, [PlayerSubStatus5]
+ bit 7, a
+ jr nz, Function38041
+ ld a, [$c731]
+ and a
+ jr nz, Function38041
+ ld hl, $55a1
+ ld a, [$cfc0]
+ and a
+ jr nz, .asm_38032
+ ld a, [TrainerClass]
+ dec a
+ ld bc, $0007
+ call AddNTimes
+.asm_38032
+ bit 0, [hl]
+ jp nz, Function38045
+ bit 1, [hl]
+ jp nz, Function38083
+ bit 2, [hl]
+ jp nz, Function380c1
+ ; fallthrough
+; 38041
+Function38041: ; 38041
+ call Function38105
+ ret
+; 38045
+
+Function38045: ; 38045
+ callab Function0x34941
+ ld a, [$c717]
+ and $f0
+ jp z, Function38041
+ cp $10
+ jr nz, .asm_38061
+ call RNG
+ cp $80
+ jr c, .asm_38077
+ jp Function38041
+
+.asm_38061
+ cp $20
+ jr nz, .asm_3806f
+ call RNG
+ cp $c8
+ jr c, .asm_38077
+ jp Function38041
+
+.asm_3806f
+ call RNG
+ cp $a
+ jp c, Function38041
+
+.asm_38077
+ ld a, [$c717]
+ and $f
+ inc a
+ ld [$c718], a
+ jp Function3844b
+; 38083
+
+Function38083: ; 38083
+ callab Function0x34941
+ ld a, [$c717]
+ and $f0
+ jp z, Function38041
+ cp $10
+ jr nz, .asm_3809f
+ call RNG
+ cp $14
+ jr c, .asm_380b5
+ jp Function38041
+
+.asm_3809f
+ cp $20
+ jr nz, .asm_380ad
+ call RNG
+ cp $1e
+ jr c, .asm_380b5
+ jp Function38041
+
+.asm_380ad
+ call RNG
+ cp $c8
+ jp c, Function38041
+
+.asm_380b5
+ ld a, [$c717]
+ and $f
+ inc a
+ ld [$c718], a
+ jp Function3844b
+; 380c1
+
+Function380c1: ; 380c1
+ callab Function0x34941
+ ld a, [$c717]
+ and $f0
+ jp z, Function38041
+ cp $10
+ jr nz, .asm_380dd
+ call RNG
+ cp $32
+ jr c, .asm_380f3
+ jp Function38041
+
+.asm_380dd
+ cp $20
+ jr nz, .asm_380eb
+ call RNG
+ cp $80
+ jr c, .asm_380f3
+ jp Function38041
+
+.asm_380eb
+ call RNG
+ cp $32
+ jp c, Function38041
+
+.asm_380f3
+ ld a, [$c717]
+ and $f
+ inc a
+ ld [$c718], a
+ jp Function3844b
+; 380ff
+
+
+Function380ff: ; 380ff
+ ld a, [EnemySubStatus5]
+ bit 7, a
+ ret
+; 38105
+
+
+Function38105: ; 38105
+ ld a, [$cfc0]
+ and a
+ ret nz
+ ld a, [$c650]
+ ld b, a
+ ld a, [$c651]
+ or b
+ ret z
+ call Function38170
+ ret nc
+ ld a, [TrainerClass]
+ dec a
+ ld hl, $55a1
+ ld bc, $0007
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ld hl, $4196
+ ld de, $c650
+.asm_3812c
+ ld a, [hl]
+ and a
+ inc a
+ ret z
+ ld a, [de]
+ cp [hl]
+ jr z, .asm_3813f
+ inc de
+ ld a, [de]
+ cp [hl]
+ jr z, .asm_3813f
+ dec de
+ inc hl
+ inc hl
+ inc hl
+ jr .asm_3812c
+
+.asm_3813f
+ inc hl
+ push hl
+ push de
+ ld de, $414a
+ push de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 3814a
+
+INCBIN "baserom.gbc", $3814a, $38170 - $3814a
+
+
+Function38170: ; 38170
+ ld a, [OTPartyCount]
+ ld d, a
+ ld e, $0
+ ld hl, OTPartyMon1Level
+ ld bc, $0030
+.asm_3817c
+ ld a, [hl]
+ cp e
+ jr c, .asm_38181
+ ld e, a
+.asm_38181
+ add hl, bc
+ dec d
+ jr nz, .asm_3817c
+
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1Level
+ call AddNTimes
+ ld a, [hl]
+ cp e
+ jr nc, .asm_38194
+ and a
+ ret
+
+.asm_38194
+ scf
+ ret
+; 38196
+
+INCBIN "baserom.gbc", $38196, $38387 - $38196
+
+
+Function38387: ; 38387
+ call UpdateEnemyMonInParty
+ callba Function3e036
+ ld a, $1
+ ld [hBGMapMode], a
+ ld hl, $c6e6
+ dec [hl]
+ scf
+ ret
+; 3839a
+
+Function3839a: ; 3839a
+ push de
+ ld de, SFX_FULL_HEAL
+ call StartSFX
+ pop de
+ ret
+; 383a3
+
+INCBIN "baserom.gbc", $383a3, $3844b - $383a3
+
+
+Function3844b: ; 3844b
+ ld a, [OTPartyCount]
+ ld c, a
+ ld hl, OTPartyMon1CurHP
+ ld d, 0
+.asm_38454
+ ld a, [hli]
+ ld b, a
+ ld a, [hld]
+ or b
+ jr z, .asm_3845b
+ inc d
+
+.asm_3845b
+ push bc
+ ld bc, $0030
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_38454
+ ld a, d
+ cp $2
+ jp nc, Function3846c
+ and a
+ ret
+; 3846c
+
+Function3846c: ; 3846c
+ ld a, $1
+ ld [$c711], a
+ ld [$c70f], a
+ ld hl, EnemySubStatus4
+ res 6, [hl]
+ xor a
+ ld [hBattleTurn], a
+ ld hl, $5c5b
+ ld a, $f
+ rst FarCall
+ push af
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1Status
+ ld bc, $0030
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, EnemyMonStatus
+ ld bc, $0004
+ call CopyBytes
+ pop af
+ jr c, .asm_384a3
+ ld hl, UnknownText_0x384d0
+ call PrintText
+
+.asm_384a3
+ ld a, $1
+ ld [$d264], a
+ ld hl, $5834
+ ld a, $f
+ rst FarCall
+ ld hl, $5867
+ ld a, $f
+ rst FarCall
+ ld hl, PlayerSubStatus1
+ res 7, [hl]
+ ld a, $f
+ ld hl, $54e1
+ rst FarCall
+ ld a, $f
+ ld hl, $557a
+ rst FarCall
+ xor a
+ ld [$d264], a
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+ scf
+ ret
+; 384d0
+
+UnknownText_0x384d0: ; 384d0
+ text_jump UnknownText_0x1bcf9c, BANK(UnknownText_0x1bcf9c)
+ db "@"
+; 384d5
+
+Function384d5: ; 384d5
+ call Function3839a
+ call Function384e0
+ ld a, $34
+ jp Function38568
+; 384e0
+
+Function384e0: ; 384e0
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1Status
+ ld bc, $0030
+ call AddNTimes
+ xor a
+ ld [hl], a
+ ld [EnemyMonStatus], a
+ ld hl, EnemySubStatus5
+ res 0, [hl]
+ ret
+; 384f7
+
+Function384f7: ; 384f7
+ call Function3839a
+ ld hl, EnemySubStatus4
+ set 0, [hl]
+ ld a, $21
+ jp Function38568
+; 38504
+
+Function38504: ; 38504
+ call Function3839a
+ ld hl, EnemySubStatus4
+ set 1, [hl]
+ ld a, $29
+ jp Function38568
+; 38511
+
+Function38511: ; 38511
+ call Function3839a
+ ld hl, EnemySubStatus4
+ set 2, [hl]
+ ld a, $2c
+ jp Function38568
+; 3851e
+
+Function3851e: ; 3851e
+ ld [hMultiplier], a
+ ld hl, EnemyMonMaxHPHi
+ ld a, [hli]
+ ld [hProduct], a
+ ld a, [hl]
+ ld [hMultiplicand], a
+ ld b, $2
+ call Divide
+ ld a, [$ffb6]
+ ld c, a
+ ld a, [$ffb5]
+ ld b, a
+ ld hl, EnemyMonHPLo
+ ld a, [hld]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ ld a, d
+ sub b
+ ret nz
+ ld a, e
+ sub c
+ ret
+; 38541
+
+Function38541: ; 38541
+ ld b, $0
+ ld a, $31
+ jr Function38557
+; 38547
+
+Function38547: ; 38547
+ ld b, $1
+ ld a, $33
+ jr Function38557
+; 3854d
+
+Function3854d: ; 3854d
+ ld b, $2
+ ld a, $34
+ jr Function38557
+; 38553
+
+Function38553: ; 38553
+ ld b, $3
+ ld a, $35
+
+Function38557
+ ld [$d1f1], a
+ push bc
+ call Function38571
+ pop bc
+ callba Function0x361ef
+ jp Function38387
+; 38568
+
+
+Function38568: ; 38568
+ ld [$d1f1], a
+ call Function38571
+ jp Function38387
+; 38571
+
+Function38571: ; 38571
+ ld a, [$d1f1]
+ ld [$d265], a
+ call GetItemName
+ ld hl, StringBuffer1
+ ld de, $d050
+ ld bc, $000d
+ call CopyBytes
+ ld hl, UnknownText_0x3858c
+ jp PrintText
+; 3858c
+
+UnknownText_0x3858c: ; 3858c
+ text_jump UnknownText_0x1bcfaf, BANK(UnknownText_0x1bcfaf)
+ db "@"
+; 38591
+
+
AIScoring: ; 38591
INCLUDE "battle/ai/scoring.asm"
-INCBIN "baserom.gbc", $3952d, $39999 - $3952d
+Function3952d: ; 3952d
+ ld hl, RivalName
+ ld a, c
+ cp $9
+ jr z, .asm_39544
+ ld [CurSpecies], a
+ ld a, $7
+ ld [$cf61], a
+ call GetName
+ ld de, StringBuffer1
+ ret
+.asm_39544
+ ld de, StringBuffer1
+ push de
+ ld bc, $000b
+ call CopyBytes
+ pop de
+ ret
+; 39550
+Function39550: ; 39550
+ ld hl, $d26b
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .asm_3956f
+ ld hl, RivalName
+ ld a, c
+ cp $9
+ jr z, .asm_3956f
+ ld [CurSpecies], a
+ ld a, $7
+ ld [$cf61], a
+ call GetName
+ ld hl, StringBuffer1
+
+.asm_3956f
+ ld bc, $000d
+ ld de, $c656
+ push de
+ call CopyBytes
+ pop de
+ ret
+; 3957b
+
+Function3957b: ; 3957b
+ ld a, [TrainerClass]
+ ld c, a
+ call Function39550
+ ld a, [TrainerClass]
+ dec a
+ ld hl, $559c
+ ld bc, $0007
+ call AddNTimes
+ ld de, $c650
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld a, [hl]
+ ld [$c652], a
+ ret
+; 3959c
+
+
+INCBIN "baserom.gbc", $3959c, $39771 - $3959c
+
+
+Function39771: ; 39771
+ ld a, [$cfc0]
+ bit 0, a
+ ret nz
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+ ld hl, OTPartyCount
+ xor a
+ ld [hli], a
+ dec a
+ ld [hl], a
+ ld hl, OTPartyMon1Species
+ ld bc, $0120
+ xor a
+ call ByteFill
+ ld a, [OtherTrainerClass]
+ cp $c
+ jr nz, .asm_3979e
+ ld a, [OtherTrainerID]
+ cp $2
+ jr z, .asm_397d3
+ ld a, [OtherTrainerClass]
+
+.asm_3979e
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, TrainerGroups
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [OtherTrainerID]
+ ld b, a
+.asm_397ae
+ dec b
+ jr z, .asm_397b8
+.asm_397b1
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_397b1
+ jr .asm_397ae
+
+.asm_397b8
+ ld a, [hli]
+ cp $50
+ jr nz, .asm_397b8
+ ld a, [hli]
+ ld c, a
+ ld b, $0
+ ld d, h
+ ld e, l
+ ld hl, $57e3
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, .data_397d0
+ push bc
+ jp [hl]
+
+.data_397d0
+.asm_397d0
+ db $c3
+ db $1b
+ db $59
+
+.asm_397d3
+ ld a, $0
+ call GetSRAMBank
+ ld de, $ac0a
+ call Function39806
+ call CloseSRAM
+ jr .asm_397d0
+; 397e3
+
+INCBIN "baserom.gbc", $397e3, $39806 - $397e3
+
+
+Function39806: ; 39806
+ ld h, d
+ ld l, e
+.asm_39808
+ ld a, [hli]
+ cp $ff
+ ret z
+ ld [CurPartyLevel], a
+ ld a, [hli]
+ ld [CurPartySpecies], a
+ ld a, $1
+ ld [MonType], a
+ push hl
+ ld a, $6
+ call Predef
+ ld a, [OTPartyCount]
+ dec a
+ ld hl, OTPartyMon1Move1
+ ld bc, $0030
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop hl
+ ld b, $4
+.asm_39830
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_39830
+ push hl
+ ld a, [OTPartyCount]
+ dec a
+ ld hl, OTPartyMon1Species
+ ld bc, $0030
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, $0017
+ add hl, de
+ push hl
+ ld hl, $0002
+ add hl, de
+ pop de
+ ld b, $4
+.asm_39852
+ ld a, [hli]
+ and a
+ jr z, .asm_3986e
+ push hl
+ push bc
+ dec a
+ ld hl, $5b00
+ ld bc, $0007
+ call AddNTimes
+ ld a, $10
+ call GetFarByte
+ pop bc
+ pop hl
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_39852
+
+.asm_3986e
+ pop hl
+ jr .asm_39808
+; 39871
+
+INCBIN "baserom.gbc", $39871, $39939 - $39871
+
+
+Function39939: ; 39939
+ ld a, [$cfc0]
+ bit 0, a
+ ld hl, $d26b
+ jp nz, $5984
+ ld a, [OtherTrainerID]
+ ld b, a
+ ld a, [OtherTrainerClass]
+ ld c, a
+ ld a, c
+ cp $c
+ jr nz, .asm_3996d
+ ld a, $0
+ call GetSRAMBank
+ ld a, [$abfd]
+ and a
+ call CloseSRAM
+ jr z, .asm_3996d
+ ld a, $0
+ call GetSRAMBank
+ ld hl, $abfe
+ call $5984
+ jp CloseSRAM
+
+.asm_3996d
+ dec c
+ push bc
+ ld b, 0
+ ld hl, TrainerGroups
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop bc
+.asm_3997a
+ dec b
+ jr z, .asm_39984
+.asm_3997d
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_3997d
+ jr .asm_3997a
+
+.asm_39984
+ ld de, StringBuffer1
+ push de
+ ld bc, $000b
+ call CopyBytes
+ pop de
+ ret
+; 39990
+
+Function39990: ; 39990
+ ld de, StringBuffer1
+ push de
+ ld bc, $000b
+ pop de
+ ret
+; 39999
+
+
+
TrainerGroups: ; 0x39999
INCLUDE "trainers/trainer_pointers.asm"
@@ -11849,8 +37682,1866 @@
SECTION "bankF",ROMX,BANK[$F]
-INCBIN "baserom.gbc", $3c000, $3cc83 - $3c000
+Function3c000: ; 3c000
+ xor a
+ ld [$c664], a
+ ld [$c6fc], a
+ ld [$d0ec], a
+ ld [BattleEnded], a
+ inc a
+ ld [$d264], a
+ ld hl, OTPartyMon1CurHP
+ ld bc, $002f
+ ld d, $3
+.asm_3c019
+ inc d
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3c021
+ add hl, bc
+ jr .asm_3c019
+.asm_3c021
+ ld a, d
+ ld [$d430], a
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3c031
+ ld a, [$ffcb]
+ cp $2
+.data_3c02f
+ db $28
+ db $1b
+
+.asm_3c031
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3c047
+ xor a
+ ld [$c718], a
+ call Function3d834
+ call Function3d867
+ call Function3dc18
+ call Function3d4e1
+
+.asm_3c047
+ ld c, $28
+ call DelayFrames
+ call Function309d
+ call Function3d873
+ ld a, d
+ and a
+ jp z, LostBattle
+ call Function30b4
+ ld a, [BattleType]
+ cp $2
+ jp z, Function3c0e2
+ cp $3
+ jp z, Function3c0e2
+ xor a
+ ld [CurPartyMon], a
+.asm_3c06b
+ call Function3d887
+ jr nz, .asm_3c076
+ ld hl, CurPartyMon
+ inc [hl]
+ jr .asm_3c06b
+
+.asm_3c076
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ inc a
+ ld hl, PartyCount
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld [TempBattleMonSpecies], a
+ ld hl, $c505
+ ld a, $9
+ call Function3d490
+ call Function309d
+ call Function3d57a
+ call Function3da0d
+ call Function3dab1
+ call Function3f26d
+ call Function3dbde
+ call Function3dc18
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ call SetPlayerTurn
+ call Function3dc23
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3c0df
+ ld a, [$ffcb]
+ cp $2
+ jr nz, .asm_3c0df
+ xor a
+ ld [$c718], a
+ call Function3d834
+ call Function3d867
+ call Function3dc18
+ call Function3d4e1
+ call SetEnemyTurn
+ call Function3dc23
+
+.asm_3c0df
+ jp Function3c12f
+; 3c0e2
+
+Function3c0e2: ; 3c0e2
+ jp Function3e139
+; 3c0e5
+
+
+
+Function3c0e5: ; 3c0e5
+ call Function30b4
+ ld a, [$d0ee]
+ and $c0
+ add $2
+ ld [$d0ee], a
+ ld a, [InLinkBattle]
+ and a
+ ld hl, $47bd
+ jr z, .asm_3c115
+ ld a, [$d0ee]
+ and $c0
+ ld [$d0ee], a
+ ld hl, $47cf
+ call Function3d2e0
+ jr nc, .asm_3c115
+ ld hl, $cd2a
+ bit 4, [hl]
+ jr nz, .asm_3c118
+ ld hl, $5863
+
+.asm_3c115
+ call FarBattleTextBox
+
+.asm_3c118
+ call Function3ceec
+ call Function3d2e0
+ jr c, .asm_3c126
+
+ ld de, SFX_RUN
+ call StartSFX
+
+.asm_3c126
+ call SetPlayerTurn
+ ld a, 1
+ ld [BattleEnded], a
+ ret
+; 3c12f
+
+Function3c12f: ; 3c12f
+ call Function3c1bf
+ call Function3c3f5
+ jp c, $41be
+ xor a
+ ld [$c710], a
+ ld [$c711], a
+ ld [$d264], a
+ ld [$c73f], a
+ ld [$c740], a
+ ld [CurDamage], a
+ ld [$d257], a
+ call Function3c27c
+ call UpdateBattleMonInParty
+ callba AIChooseMove
+ call Function3d2f1
+ jr nz, .asm_3c174
+ callba Function100da5
+ callba Function100641
+ callba Function100dd8
+ jp c, $41be
+
+.asm_3c174
+ call Function3c410
+ jr c, .asm_3c18a
+.asm_3c179
+ call Function3e139
+ jr c, .asm_3c1be
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c1be
+ ld a, [$d232]
+ and a
+ jr nz, .asm_3c1be
+
+.asm_3c18a
+ call Function3c434
+ jr nz, .asm_3c179
+ call Function3c300
+ jr c, .asm_3c1be
+ call Function3c314
+ jr c, .asm_3c19e
+ call Function3c5fe
+ jr .asm_3c1a1
+
+.asm_3c19e
+ call Function3c664
+
+.asm_3c1a1
+ call Function3d2e0
+ jr c, .asm_3c1be
+ ld a, [$d232]
+ and a
+ jr nz, .asm_3c1be
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c1be
+ call Function3c1d6
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c1be
+ jp Function3c12f
+
+.asm_3c1be
+ ret
+; 3c1bf
+
+Function3c1bf: ; 3c1bf
+ ret
+; 3c1c0
+
+
+Function3c1c0: ; 3c1c0
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a89b
+ inc [hl]
+ jr nz, .asm_3c1d2
+ dec hl
+ inc [hl]
+ jr nz, .asm_3c1d2
+ dec [hl]
+ inc hl
+ dec [hl]
+
+.asm_3c1d2
+ call CloseSRAM
+ ret
+; 3c1d6
+
+
+Function3c1d6: ; 3c1d6
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c1fe
+ call Function3c23c
+ ret c
+ call Function3ca26
+ call Function3c23c
+ ret c
+ call HandleWeather
+ call Function3c23c
+ ret c
+ call Function3c874
+ call Function3c23c
+ ret c
+ call Function3c801
+ call Function3c23c
+ ret c
+ jr .asm_3c21e
+
+.asm_3c1fe
+ call Function3c25c
+ ret c
+ call Function3ca26
+ call Function3c25c
+ ret c
+ call HandleWeather
+ call Function3c25c
+ ret c
+ call Function3c874
+ call Function3c25c
+ ret c
+ call Function3c801
+ call Function3c25c
+ ret c
+
+.asm_3c21e
+ call Function3c8eb
+ call Function3c93c
+ call Function3ca8f
+ call Function3cafb
+ call Function3cb36
+ call Function3de97
+ call Function3dcf9
+ call UpdateBattleMonInParty
+ call Function309d
+ jp Function3c4df
+; 3c23c
+
+Function3c23c: ; 3c23c
+ call $4710
+ jr nz, .asm_3c24a
+ call Function3d14e
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c25a
+
+.asm_3c24a
+ call $470b
+ jr nz, .asm_3c258
+ call Function3cd55
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c25a
+
+.asm_3c258
+ and a
+ ret
+
+.asm_3c25a
+ scf
+ ret
+; 3c25c
+
+Function3c25c: ; 3c25c
+ call $470b
+ jr nz, .asm_3c26a
+ call Function3cd55
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c27a
+
+.asm_3c26a
+ call $4710
+ jr nz, .asm_3c278
+ call Function3d14e
+ ld a, [BattleEnded]
+ and a
+ jr nz, .asm_3c27a
+
+.asm_3c278
+ and a
+ ret
+
+.asm_3c27a
+ scf
+ ret
+; 3c27c
+
+Function3c27c: ; 3c27c
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c287
+ call $428a
+ jr .asm_3c296
+
+.asm_3c287
+ call $4296
+ call SetPlayerTurn
+ ld de, PartyMon1Item
+ ld a, [CurBattleMon]
+ ld b, a
+ jr .asm_3c2a0
+
+.asm_3c296
+ call SetEnemyTurn
+ ld de, OTPartyMon1Item
+ ld a, [CurOTMon]
+ ld b, a
+
+.asm_3c2a0
+ push de
+ push bc
+ callab GetUserItem
+ ld a, [hl]
+ ld [$d265], a
+ sub $98
+ pop bc
+ pop de
+ ret nz
+ ld [hl], a
+ ld h, d
+ ld l, e
+ ld a, b
+ call GetPartyLocation
+ xor a
+ ld [hl], a
+ ld a, $2
+ call GetBattleVarPair
+ push af
+ set 7, [hl]
+ ld a, $c
+ call GetBattleVarPair
+ push hl
+ push af
+ xor a
+ ld [hl], a
+ ld [AttackMissed], a
+ ld [EffectFailed], a
+ callba BattleCommand77
+ pop af
+ pop hl
+ ld [hl], a
+ call GetItemName
+ ld hl, $4bde
+ call FarBattleTextBox
+ callab BattleCommand8c
+ pop af
+ bit 7, a
+ ret nz
+ xor a
+ ld [$cfca], a
+ ld de, $0103
+ call Function3ee0f
+ call Function3c8e4
+ ld hl, $4d97
+ jp FarBattleTextBox
+; 3c300
+
+Function3c300: ; 3c300
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3c30d
+ ld a, [$d430]
+ cp $f
+ jr z, .asm_3c30f
+
+.asm_3c30d
+ and a
+ ret
+
+.asm_3c30f
+ call Function3c0e5
+ scf
+ ret
+; 3c314
+
+Function3c314: ; 3c314
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3c35b
+ ld a, [$d430]
+ cp $e
+ jr z, .asm_3c35b
+ cp $d
+ jr z, .asm_3c35b
+ sub $4
+ jr c, .asm_3c35b
+ ld a, [$d0ec]
+ cp $2
+ jr nz, .asm_3c34c
+ ld a, [$ffcb]
+ cp $2
+ jr z, .asm_3c341
+ call FarBattleRNG
+ cp $80
+ jp c, $43f1
+ jp Function3c3f3
+
+.asm_3c341
+ call FarBattleRNG
+ cp $80
+ jp c, Function3c3f3
+ jp $43f1
+
+.asm_3c34c
+ callab Function3846c
+ call SetEnemyTurn
+ call Function3dc23
+ jp Function3c3f3
+
+.asm_3c35b
+ ld a, [$d0ec]
+ and a
+ jp nz, $43f1
+ call Function3c5b4
+ jr z, .asm_3c36d
+ jp c, $43f1
+ jp Function3c3f3
+
+.asm_3c36d
+ call SetPlayerTurn
+ callab GetUserItem
+ push bc
+ callab GetOpponentItem
+ pop de
+ ld a, d
+ cp $4a
+ jr nz, .asm_3c391
+ ld a, b
+ cp $4a
+ jr z, .asm_3c39f
+ call FarBattleRNG
+ cp e
+ jr nc, .asm_3c3c5
+ jp $43f1
+
+.asm_3c391
+ ld a, b
+ cp $4a
+ jr nz, .asm_3c3c5
+ call FarBattleRNG
+ cp c
+ jr nc, .asm_3c3c5
+ jp Function3c3f3
+
+.asm_3c39f
+ ld a, [$ffcb]
+ cp $2
+ jr z, .asm_3c3b5
+ call FarBattleRNG
+ cp c
+ jp c, Function3c3f3
+ call FarBattleRNG
+ cp e
+ jp c, $43f1
+ jr .asm_3c3c5
+
+.asm_3c3b5
+ call FarBattleRNG
+ cp e
+ jp c, $43f1
+ call FarBattleRNG
+ cp c
+ jp c, Function3c3f3
+ jr .asm_3c3c5
+
+.asm_3c3c5
+ ld de, BattleMonSpd
+ ld hl, EnemyMonSpd
+ ld c, $2
+ call StringCmp
+ jr z, .asm_3c3d8
+ jp nc, $43f1
+ jp Function3c3f3
+
+.asm_3c3d8
+ ld a, [$ffcb]
+ cp $2
+ jr z, .asm_3c3e9
+ call FarBattleRNG
+ cp $80
+ jp c, $43f1
+ jp Function3c3f3
+
+.asm_3c3e9
+ call FarBattleRNG
+ cp $80
+ jp c, Function3c3f3
+ scf
+ ret
+; 3c3f3
+
+Function3c3f3: ; 3c3f3
+ and a
+ ret
+; 3c3f5
+
+Function3c3f5: ; 3c3f5
+ ld a, [BattleType]
+ cp $6
+ jr nz, .asm_3c40e
+ ld a, [$dc79]
+ and a
+ jr nz, .asm_3c40e
+ ld a, [$d0ee]
+ and $c0
+ add $2
+ ld [$d0ee], a
+ scf
+ ret
+
+.asm_3c40e
+ and a
+ ret
+; 3c410
+
+Function3c410: ; 3c410
+ ld a, [PlayerSubStatus4]
+ and $20
+ jp nz, Function3c432
+ ld hl, EnemySubStatus3
+ res 3, [hl]
+ ld hl, PlayerSubStatus3
+ res 3, [hl]
+ ld a, [hl]
+ and $12
+ jp nz, Function3c432
+ ld hl, PlayerSubStatus1
+ bit 6, [hl]
+ jp nz, Function3c432
+ and a
+ ret
+; 3c432
+
+Function3c432: ; 3c432
+ scf
+ ret
+; 3c434
+
+Function3c434: ; 3c434
+ call Function3c410
+ jp c, $44ba
+ ld hl, PlayerSubStatus5
+ bit 4, [hl]
+ jr z, .asm_3c449
+ ld a, [LastPlayerMove]
+ ld [CurPlayerMove], a
+ jr .asm_3c47c
+
+.asm_3c449
+ ld a, [$d0ec]
+ cp $2
+ jr z, .asm_3c4ce
+ and a
+ jr nz, .asm_3c4b5
+ ld a, [PlayerSubStatus3]
+ and $1
+ jr nz, .asm_3c4ba
+ xor a
+ ld [$d235], a
+ inc a
+ ld [FXAnimIDLo], a
+ call Function3e4bc
+ push af
+ call Function30b4
+ call UpdateBattleHuds
+ ld a, [CurPlayerMove]
+ cp $a5
+ jr z, .asm_3c476
+ call PlayClickSFX
+
+.asm_3c476
+ ld a, $1
+ ld [hBGMapMode], a
+ pop af
+ ret nz
+
+.asm_3c47c
+ call SetPlayerTurn
+ callab UpdateMoveData
+ xor a
+ ld [$c732], a
+ ld a, [PlayerMoveEffect]
+ cp $77
+ jr z, .asm_3c494
+ xor a
+ ld [PlayerFuryCutterCount], a
+
+.asm_3c494
+ ld a, [PlayerMoveEffect]
+ cp $51
+ jr z, .asm_3c4a4
+ ld hl, PlayerSubStatus4
+ res 6, [hl]
+ xor a
+ ld [$c72b], a
+
+.asm_3c4a4
+ ld a, [PlayerMoveEffect]
+ cp $6f
+ jr z, .asm_3c4c9
+ cp $74
+ jr z, .asm_3c4c9
+ xor a
+ ld [$c679], a
+ jr .asm_3c4c9
+
+.asm_3c4b5
+ ld hl, PlayerSubStatus3
+ res 0, [hl]
+
+.asm_3c4ba
+ xor a
+ ld [PlayerFuryCutterCount], a
+ ld [$c679], a
+ ld [$c72b], a
+ ld hl, PlayerSubStatus4
+ res 6, [hl]
+
+.asm_3c4c9
+ call Function3e7c1
+ xor a
+ ret
+
+.asm_3c4ce
+ xor a
+ ld [PlayerFuryCutterCount], a
+ ld [$c679], a
+ ld [$c72b], a
+ ld hl, PlayerSubStatus4
+ res 6, [hl]
+ xor a
+ ret
+; 3c4df
+
+Function3c4df: ; 3c4df
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c4ea
+ call $44ed
+ jr .asm_3c518
+
+.asm_3c4ea
+ call $4518
+ ld hl, PlayerSubStatus5
+ bit 4, [hl]
+ ret z
+ ld a, [PlayerEncoreCount]
+ dec a
+ ld [PlayerEncoreCount], a
+ jr z, .asm_3c50a
+ ld hl, BattleMonPPMove1
+ ld a, [CurMoveNum]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ret nz
+
+.asm_3c50a
+ ld hl, PlayerSubStatus5
+ res 4, [hl]
+ call SetEnemyTurn
+ ld hl, $4c8a
+ jp FarBattleTextBox
+
+.asm_3c518
+ ld hl, EnemySubStatus5
+ bit 4, [hl]
+ ret z
+ ld a, [EnemyEncoreCount]
+ dec a
+ ld [EnemyEncoreCount], a
+ jr z, .asm_3c535
+ ld hl, EnemyMonPPMove1
+ ld a, [CurEnemyMoveNum]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ret nz
+
+.asm_3c535
+ ld hl, EnemySubStatus5
+ res 4, [hl]
+ call SetPlayerTurn
+ ld hl, $4c8a
+ jp FarBattleTextBox
+; 3c543
+
+
+Function3c543: ; 3c543
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .Stay
+
+ ld a, [PlayerSubStatus5]
+ bit 7, a
+ jr nz, .Stay
+
+ ld a, [$c731]
+ and a
+ jr nz, .Stay
+
+ ld a, [EnemyMonStatus]
+ and 1 << FRZ | SLP
+ jr nz, .Stay
+
+ ld a, [TempEnemyMonSpecies]
+ ld de, 1
+ ld hl, .Always
+ call IsInArray
+ jr c, .Flee
+
+ call FarBattleRNG
+ ld b, a
+ cp $80
+ jr nc, .Stay
+
+ push bc
+ ld a, [TempEnemyMonSpecies]
+ ld de, 1
+ ld hl, .Often
+ call IsInArray
+ pop bc
+ jr c, .Flee
+
+ ld a, b
+ cp $1a
+ jr nc, .Stay
+
+ ld a, [TempEnemyMonSpecies]
+ ld de, 1
+ ld hl, .Sometimes
+ call IsInArray
+ jr c, .Flee
+
+.Stay
+ and a
+ ret
+
+.Flee
+ scf
+ ret
+; 3c59a
+
+.Sometimes
+ db MAGNEMITE
+ db GRIMER
+ db TANGELA
+ db MR__MIME
+ db EEVEE
+ db PORYGON
+ db DRATINI
+ db DRAGONAIR
+ db TOGETIC
+ db UMBREON
+ db UNOWN
+ db SNUBBULL
+ db HERACROSS
+ db $ff
+
+.Often
+ db CUBONE
+ db ARTICUNO
+ db ZAPDOS
+ db MOLTRES
+ db QUAGSIRE
+ db DELIBIRD
+ db PHANPY
+ db TEDDIURSA
+ db $ff
+
+.Always
+ db RAIKOU
+ db ENTEI
+; db SUICUNE
+ db $ff
+; 3c5b4
+
+
+Function3c5b4: ; 3c5b4
+ ld a, [CurPlayerMove]
+ call GetMovePriority
+ ld b, a
+ push bc
+ ld a, [CurEnemyMove]
+ call GetMovePriority
+ pop bc
+ cp b
+ ret
+; 3c5c5
+
+GetMovePriority: ; 3c5c5
+ ld b, a
+ cp VITAL_THROW
+ ld a, 0
+ ret z
+ call Function3c5ec
+ ld hl, .data_3c5df
+.loop
+ ld a, [hli]
+ cp b
+ jr z, .asm_3c5dd
+ inc hl
+ cp $ff
+ jr nz, .loop
+ ld a, 1
+ ret
+
+.asm_3c5dd
+ ld a, [hl]
+ ret
+; 3c5df
+
+.data_3c5df
+ db EFFECT_PROTECT, 3
+ db EFFECT_ENDURE, 3
+ db EFFECT_PRIORITY_HIT, 2
+ db EFFECT_WHIRLWIND, 0
+ db EFFECT_COUNTER, 0
+ db EFFECT_MIRROR_COAT, 0
+ db $ff
+; 3c5ec
+
+
+Function3c5ec: ; 3c5ec
+ ld a, b
+ dec a
+ ld hl, $5afc
+ ld bc, $0007
+ call AddNTimes
+ ld a, $10
+ call GetFarByte
+ ld b, a
+ ret
+; 3c5fe
+
+Function3c5fe: ; 3c5fe
+ call Function309d
+ call Function3c543
+ jp c, Function3c0e5
+ call SetEnemyTurn
+ ld a, $1
+ ld [$c70f], a
+ callab Function38000
+ jr c, .asm_3c62f
+ call Function3c6de
+ call Function3d2e0
+ ret c
+ ld a, [$d232]
+ and a
+ ret nz
+ call $4710
+ jp z, Function3d14e
+ call $470b
+ jp z, Function3cd55
+
+.asm_3c62f
+ call SetEnemyTurn
+ call Function3c716
+ jp z, Function3cd55
+ call RefreshBattleHuds
+ call Function3c6cf
+ call Function3d2e0
+ ret c
+ ld a, [$d232]
+ and a
+ ret nz
+ call $470b
+ jp z, Function3cd55
+ call $4710
+ jp z, Function3d14e
+ call SetPlayerTurn
+ call Function3c716
+ jp z, Function3d14e
+ call RefreshBattleHuds
+ xor a
+ ld [$d0ec], a
+ ret
+; 3c664
+
+Function3c664: ; 3c664
+ xor a
+ ld [$c70f], a
+ call SetEnemyTurn
+ callab Function38000
+ push af
+ call Function3c6cf
+ pop bc
+ ld a, [$d232]
+ and a
+ ret nz
+ call Function3d2e0
+ ret c
+ call $470b
+ jp z, Function3cd55
+ call $4710
+ jp z, Function3d14e
+ push bc
+ call SetPlayerTurn
+ call Function3c716
+ pop bc
+ jp z, Function3d14e
+ push bc
+ call RefreshBattleHuds
+ pop af
+ jr c, .asm_3c6be
+ call Function309d
+ call Function3c543
+ jp c, Function3c0e5
+ call Function3c6de
+ call Function3d2e0
+ ret c
+ ld a, [$d232]
+ and a
+ ret nz
+ call $4710
+ jp z, Function3d14e
+ call $470b
+ jp z, Function3cd55
+
+.asm_3c6be
+ call SetEnemyTurn
+ call Function3c716
+ jp z, Function3cd55
+ call RefreshBattleHuds
+ xor a
+ ld [$d0ec], a
+ ret
+; 3c6cf
+
+Function3c6cf: ; 3c6cf
+ call SetPlayerTurn
+ call Function3c6fe
+ callab DoPlayerTurn
+ jp Function3c6ed
+; 3c6de
+
+Function3c6de: ; 3c6de
+ call SetEnemyTurn
+ call Function3c6fe
+ callab DoEnemyTurn
+ jp Function3c6ed
+; 3c6ed
+
+Function3c6ed: ; 3c6ed
+ ld a, $5
+ call GetBattleVarPair
+ res 2, [hl]
+ res 5, [hl]
+ ld a, $9
+ call GetBattleVarPair
+ res 6, [hl]
+ ret
+; 3c6fe
+
+Function3c6fe: ; 3c6fe
+ ld a, $4
+ call GetBattleVarPair
+ res 6, [hl]
+ ret
+; 3c706
+
+Function3c706: ; 3c706
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c710
+ ld hl, EnemyMonHPHi
+ jr .asm_3c713
+
+.asm_3c710
+ ld hl, BattleMonHP
+
+.asm_3c713
+ ld a, [hli]
+ or [hl]
+ ret
+; 3c716
+
+Function3c716: ; 3c716
+ call Function3c706
+ ret z
+ ld a, $a
+ call CleanGetBattleVarPair
+ and $18
+ jr z, .asm_3c768
+ ld hl, $47e2
+ ld de, $0106
+ and $10
+ jr z, .asm_3c733
+ ld hl, $47f8
+ ld de, $0105
+
+.asm_3c733
+ push de
+ call FarBattleTextBox
+ pop de
+ xor a
+ ld [$cfca], a
+ call Function3ee0f
+ call GetEighthMaxHP
+ ld de, $c674
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c74d
+ ld de, $c67c
+
+.asm_3c74d
+ ld a, $4
+ call CleanGetBattleVarPair
+ bit 0, a
+ jr z, .asm_3c765
+ call Function3cc76
+ ld a, [de]
+ inc a
+ ld [de], a
+ ld hl, $0000
+.asm_3c75f
+ add hl, bc
+ dec a
+ jr nz, .asm_3c75f
+ ld b, h
+ ld c, l
+
+.asm_3c765
+ call Function3cc3f
+
+.asm_3c768
+ call Function3c706
+ jp z, $47f7
+ ld a, $3
+ call GetBattleVarPair
+ bit 7, [hl]
+ jr z, .asm_3c7a1
+ call Function3c8e4
+ xor a
+ ld [$cfca], a
+ ld de, $0107
+ ld a, $7
+ call CleanGetBattleVarPair
+ and $60
+ call z, Function3ee0f
+ call Function3c8e4
+ call GetEighthMaxHP
+ call Function3cc3f
+ ld a, $1
+ ld [hBGMapMode], a
+ call Function3ccef
+ ld hl, $480e
+ call FarBattleTextBox
+
+.asm_3c7a1
+ call Function3c706
+ jr z, .asm_3c7f7
+ ld a, $0
+ call GetBattleVarPair
+ bit 0, [hl]
+ jr z, .asm_3c7c5
+ xor a
+ ld [$cfca], a
+ ld de, $010c
+ call Function3ee0f
+ call GetQuarterMaxHP
+ call Function3cc3f
+ ld hl, $4822
+ call FarBattleTextBox
+
+.asm_3c7c5
+ call Function3c706
+ jr z, .asm_3c7f7
+ ld a, $0
+ call GetBattleVarPair
+ bit 1, [hl]
+ jr z, .asm_3c7e9
+ xor a
+ ld [$cfca], a
+ ld de, $010c
+ call Function3ee0f
+ call GetQuarterMaxHP
+ call Function3cc3f
+ ld hl, $4836
+ call FarBattleTextBox
+
+.asm_3c7e9
+ ld hl, BattleMonHP
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c7f4
+ ld hl, EnemyMonHPHi
+
+.asm_3c7f4
+ ld a, [hli]
+ or [hl]
+ ret nz
+
+.asm_3c7f7
+ call RefreshBattleHuds
+ ld c, $14
+ call DelayFrames
+ xor a
+ ret
+; 3c801
+
+Function3c801: ; 3c801
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c813
+ call SetPlayerTurn
+ call $481c
+ call SetEnemyTurn
+ jp $481c
+
+.asm_3c813
+ call SetEnemyTurn
+ call $481c
+ call SetPlayerTurn
+ ld hl, PlayerPerishCount
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c827
+ ld hl, EnemyPerishCount
+
+.asm_3c827
+ ld a, $0
+ call CleanGetBattleVarPair
+ bit 4, a
+ ret z
+ dec [hl]
+ ld a, [hl]
+ ld [$d265], a
+ push af
+ ld hl, $4864
+ call FarBattleTextBox
+ pop af
+ ret nz
+ ld a, $0
+ call GetBattleVarPair
+ res 4, [hl]
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .asm_3c85c
+ ld hl, BattleMonHP
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld hl, PartyMon1CurHP
+ ld a, [CurBattleMon]
+ call GetPartyLocation
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+
+.asm_3c85c
+ ld hl, EnemyMonHPHi
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld a, [IsInBattle]
+ dec a
+ ret z
+ ld hl, OTPartyMon1CurHP
+ ld a, [CurOTMon]
+ call GetPartyLocation
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+; 3c874
+
+Function3c874: ; 3c874
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c886
+ call SetPlayerTurn
+ call $488f
+ call SetEnemyTurn
+ jp $488f
+
+.asm_3c886
+ call SetEnemyTurn
+ call $488f
+ call SetPlayerTurn
+ ld hl, $c730
+ ld de, $c72e
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c8a0
+ ld hl, $c731
+ ld de, $c72f
+
+.asm_3c8a0
+ ld a, [hl]
+ and a
+ ret z
+ ld a, $3
+ call CleanGetBattleVarPair
+ bit 4, a
+ ret nz
+ ld a, [de]
+ ld [$d265], a
+ ld [FXAnimIDLo], a
+ call GetMoveName
+ dec [hl]
+ jr z, .asm_3c8de
+ ld a, $2
+ call CleanGetBattleVarPair
+ and $60
+ jr nz, .asm_3c8d3
+ call Function3c8e4
+ xor a
+ ld [$cfca], a
+ ld [FXAnimIDHi], a
+ ld a, $37
+ call Predef
+ call Function3c8e4
+
+.asm_3c8d3
+ call Function3cc76
+ call Function3cc3f
+ ld hl, $4de2
+ jr .asm_3c8e1
+
+.asm_3c8de
+ ld hl, $4df5
+
+.asm_3c8e1
+ jp FarBattleTextBox
+; 3c8e4
+
+Function3c8e4: ; 3c8e4
+ ld a, [hBattleTurn]
+ xor $1
+ ld [hBattleTurn], a
+ ret
+; 3c8eb
+
+Function3c8eb: ; 3c8eb
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c8fd
+ call SetPlayerTurn
+ call $4906
+ call SetEnemyTurn
+ jp $4906
+
+.asm_3c8fd
+ call SetEnemyTurn
+ call $4906
+ call SetPlayerTurn
+ callab GetUserItem
+ ld a, [hl]
+ ld [$d265], a
+ call GetItemName
+ ld a, b
+ cp $3
+ ret nz
+ ld hl, BattleMonHP
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c922
+ ld hl, EnemyMonHPHi
+
+.asm_3c922
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ cp b
+ jr nz, .asm_3c92d
+ ld a, [hl]
+ cp c
+ ret z
+
+.asm_3c92d
+ call Function3cc76
+ call Function3c8e4
+ call Function3ccef
+ ld hl, $4880
+ jp FarBattleTextBox
+; 3c93c
+
+Function3c93c: ; 3c93c
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3c94e
+ call SetPlayerTurn
+ call $4957
+ call SetEnemyTurn
+ jp $4957
+
+.asm_3c94e
+ call SetEnemyTurn
+ call $4957
+ call SetPlayerTurn
+ callab GetUserItem
+ ld a, b
+ cp $6
+ jr nz, .asm_3c9ae
+ ld hl, PartyMon1PP
+ ld a, [CurBattleMon]
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ ld hl, PartyMon1Move1
+ ld a, [CurBattleMon]
+ call GetPartyLocation
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c99b
+ ld de, $c739
+ ld hl, $c735
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3c99b
+ ld hl, OTPartyMon1PPMove1
+ ld a, [CurOTMon]
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ ld hl, OTPartyMon1Move1
+ ld a, [CurOTMon]
+ call GetPartyLocation
+
+.asm_3c99b
+ ld c, $0
+.asm_3c99d
+ ld a, [hl]
+ and a
+ jr z, .asm_3c9ae
+ ld a, [de]
+ and $3f
+ jr z, .asm_3c9af
+ inc hl
+ inc de
+ inc c
+ ld a, c
+ cp $4
+ jr nz, .asm_3c99d
+
+.asm_3c9ae
+ ret
+
+.asm_3c9af
+ ld a, [hl]
+ cp $a6
+ ld b, $1
+ jr z, .asm_3c9b8
+ ld b, $5
+
+.asm_3c9b8
+ ld a, [de]
+ add b
+ ld [de], a
+ push bc
+ push bc
+ ld a, [hl]
+ ld [$d265], a
+ ld de, BattleMonItem
+ ld hl, BattleMonPPMove1
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3c9d2
+ ld de, EnemyMonItem
+ ld hl, EnemyMonPPMove1
+
+.asm_3c9d2
+ inc de
+ pop bc
+ ld b, $0
+ add hl, bc
+ push hl
+ ld h, d
+ ld l, e
+ add hl, bc
+ pop de
+ pop bc
+ ld a, [$d265]
+ cp [hl]
+ jr nz, .asm_3c9f5
+ ld a, [hBattleTurn]
+ and a
+ ld a, [PlayerSubStatus5]
+ jr z, .asm_3c9ee
+ ld a, [EnemySubStatus5]
+
+.asm_3c9ee
+ bit 3, a
+ jr nz, .asm_3c9f5
+ ld a, [de]
+ add b
+ ld [de], a
+
+.asm_3c9f5
+ callab GetUserItem
+ ld a, [hl]
+ ld [$d265], a
+ xor a
+ ld [hl], a
+ call Function3df12
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3ca12
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3ca14
+ call Function3df1f
+
+.asm_3ca12
+ xor a
+ ld [hl], a
+
+.asm_3ca14
+ call GetItemName
+ call Function3c8e4
+ call Function3ddc8
+ call Function3c8e4
+ ld hl, $4899
+ jp FarBattleTextBox
+; 3ca26
+
+Function3ca26: ; 3ca26
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3ca38
+ call SetPlayerTurn
+ call $4a41
+ call SetEnemyTurn
+ jp $4a41
+
+.asm_3ca38
+ call SetEnemyTurn
+ call $4a41
+ call SetPlayerTurn
+ ld hl, $c71d
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3ca4c
+ ld hl, $c71e
+
+.asm_3ca4c
+ ld a, [hl]
+ and a
+ ret z
+ dec a
+ ld [hl], a
+ cp $1
+ ret nz
+ ld hl, $48b6
+ call FarBattleTextBox
+ ld a, $10
+ call GetBattleVarPair
+ push af
+ ld a, $f8
+ ld [hl], a
+ callab UpdateMoveData
+ xor a
+ ld [AttackMissed], a
+ ld [AlreadyDisobeyed], a
+ ld a, $a
+ ld [TypeModifier], a
+ callab DoMove
+ xor a
+ ld [CurDamage], a
+ ld [$d257], a
+ ld a, $10
+ call GetBattleVarPair
+ pop af
+ ld [hl], a
+ call UpdateBattleMonInParty
+ jp UpdateEnemyMonInParty
+; 3ca8f
+
+Function3ca8f: ; 3ca8f
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3ca9a
+ call $4a9d
+ jr .asm_3cac9
+
+.asm_3ca9a
+ call $4ac9
+ ld a, [BattleMonStatus]
+ bit 5, a
+ ret z
+ ld a, [$c73f]
+ and a
+ ret nz
+ call FarBattleRNG
+ cp $19
+ ret nc
+ xor a
+ ld [BattleMonStatus], a
+ ld a, [CurBattleMon]
+ ld hl, PartyMon1Status
+ call GetPartyLocation
+ ld [hl], $0
+ call UpdateBattleHuds
+ call SetEnemyTurn
+ ld hl, $524b
+ jp FarBattleTextBox
+
+.asm_3cac9
+ ld a, [EnemyMonStatus]
+ bit 5, a
+ ret z
+ ld a, [$c740]
+ and a
+ ret nz
+ call FarBattleRNG
+ cp $19
+ ret nc
+ xor a
+ ld [EnemyMonStatus], a
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3caef
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1Status
+ call GetPartyLocation
+ ld [hl], $0
+
+.asm_3caef
+ call UpdateBattleHuds
+ call SetPlayerTurn
+ ld hl, $524b
+ jp FarBattleTextBox
+; 3cafb
+
+Function3cafb: ; 3cafb
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3cb06
+ call $4b09
+ jr .asm_3cb1c
+
+.asm_3cb06
+ call $4b1c
+ ld a, [PlayerScreens]
+ bit 2, a
+ ret z
+ ld hl, $c701
+ dec [hl]
+ ret nz
+ res 2, a
+ ld [PlayerScreens], a
+ xor a
+ jr .asm_3cb2e
+
+.asm_3cb1c
+ ld a, [EnemyScreens]
+ bit 2, a
+ ret z
+ ld hl, $c705
+ dec [hl]
+ ret nz
+ res 2, a
+ ld [EnemyScreens], a
+ ld a, $1
+
+.asm_3cb2e
+ ld [hBattleTurn], a
+ ld hl, $48d2
+ jp FarBattleTextBox
+; 3cb36
+
+
+Function3cb36: ; 3cb36
+ ld a, [$ffcb]
+ cp 1
+ jr z, .Both
+ call .CheckPlayer
+ jr .CheckEnemy
+
+.Both
+ call .CheckEnemy
+
+.CheckPlayer
+ call SetPlayerTurn
+ ld de, .Your
+ call .asm_3cb6f
+ ld hl, PlayerScreens
+ ld de, PlayerLightScreenCount
+ jr .FadeScreens
+
+.CheckEnemy
+ call SetEnemyTurn
+ ld de, .Enemy
+ call .asm_3cb6f
+ ld hl, EnemyScreens
+ ld de, EnemyLightScreenCount
+
+.FadeScreens
+ bit SCREENS_LIGHT_SCREEN, [hl]
+ call nz, FadeLightScreen
+ bit SCREENS_REFLECT, [hl]
+ call nz, FadeReflect
+ ret
+
+.asm_3cb6f
+ ld hl, StringBuffer1
+ jp CopyName2
+; 3cb75
+
+.Your
+ db "Your@"
+.Enemy
+ db "Enemy@"
+; 3cb80
+
+
+FadeLightScreen: ; 3cb80
+ ld a, [de]
+ dec a
+ ld [de], a
+ ret nz
+ res SCREENS_LIGHT_SCREEN, [hl]
+ push hl
+ push de
+ ld hl, BattleText_0x808e7
+ call FarBattleTextBox
+ pop de
+ pop hl
+ ret
+; 3cb91
+
+FadeReflect: ; 3cb91
+ inc de
+ ld a, [de]
+ dec a
+ ld [de], a
+ ret nz
+ res SCREENS_REFLECT, [hl]
+ ld hl, BattleText_0x80905
+ jp FarBattleTextBox
+; 3cb9e
+
+HandleWeather: ; 3cb9e
+
+ ld a, [Weather]
+ cp 0
+ ret z
+
+ ld hl, WeatherCount
+ dec [hl]
+ jr z, .asm_3cc13
+
+ ld hl, .WeatherMessages
+ call .asm_3cc1e
+ ld a, [Weather]
+ cp WEATHER_SANDSTORM
+ ret nz
+ ld a, [$ffcb]
+ cp 1
+ jr z, .asm_3cbc7
+
+; Player first
+ call SetPlayerTurn
+ call .asm_3cbd0
+ call SetEnemyTurn
+ jr .asm_3cbd0
+
+.asm_3cbc7
+; Enemy first
+ call SetEnemyTurn
+ call .asm_3cbd0
+ call SetPlayerTurn
+
+.asm_3cbd0
+ ld a, BATTLE_VARS_SUBSTATUS3
+ call CleanGetBattleVarPair
+ bit SUBSTATUS_UNDERGROUND, a
+ ret nz
+
+ ld hl, BattleMonType1
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3cbe3
+ ld hl, EnemyMonType1
+
+.asm_3cbe3
+ ld a, [hli]
+ cp ROCK
+ ret z
+ cp GROUND
+ ret z
+ cp STEEL
+ ret z
+
+ ld a, [hl]
+ cp ROCK
+ ret z
+ cp GROUND
+ ret z
+ cp STEEL
+ ret z
+
+ call Function3c8e4
+ xor a
+ ld [$cfca], a
+ ld de, $010b
+ call Function3ee17
+ call Function3c8e4
+ call GetEighthMaxHP
+ call Function3cc3f
+
+ ld hl, BattleText_0x8084d
+ jp FarBattleTextBox
+
+.asm_3cc13
+ ld hl, .WeatherEndedMessages
+ call .asm_3cc1e
+ xor a
+ ld [Weather], a
+ ret
+
+.asm_3cc1e
+ ld a, [Weather]
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp FarBattleTextBox
+; 3cc2d
+
+.WeatherMessages
+ dw BattleText_0x8091f
+ dw BattleText_0x80938
+ dw BattleText_0x80951
+.WeatherEndedMessages
+ dw BattleText_0x80967
+ dw BattleText_0x8097a
+ dw BattleText_0x8098f
+; 3cc39
+
+Function3cc39: ; 3cc39
+ call Function3cc45
+ jp Function3cd3c
+; 3cc3f
+
+Function3cc3f: ; 3cc3f
+ call Function3cc45
+ jp Function3cd36
+; 3cc45
+
+
+
+Function3cc45: ; 3cc45
+ ld hl, BattleMonHP
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3cc50
+ ld hl, EnemyMonHPHi
+
+.asm_3cc50
+ inc hl
+ ld a, [hl]
+ ld [$d1ec], a
+ sub c
+ ld [hld], a
+ ld [$d1ee], a
+ ld a, [hl]
+ ld [$d1ed], a
+ sbc b
+ ld [hl], a
+ ld [$d1ef], a
+ ret nc
+ ld a, [$d1ec]
+ ld c, a
+ ld a, [$d1ed]
+ ld b, a
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld [$d1ee], a
+ ld [$d1ef], a
+ ret
+; 3cc76
+
+Function3cc76: ; 3cc76
+ call GetQuarterMaxHP
+ srl c
+ srl c
+ ld a, c
+ and a
+ jr nz, .asm_3cc82
+ inc c
+
+.asm_3cc82
+ ret
+; 3cc83
+
+
GetEighthMaxHP: ; 3cc83
; output: bc
call GetQuarterMaxHP
@@ -11907,7 +39598,7 @@
GetMaxHP: ; 3ccac
-; output: bc, $d1ea-b
+; output: bc, Buffer1-2
; player
ld hl, BattleMonMaxHP
@@ -11922,19 +39613,716 @@
.gethp
ld a, [hli]
- ld [$d1eb], a
+ ld [Buffer2], a
ld b, a
ld a, [hl]
- ld [$d1ea], a
+ ld [Buffer1], a
ld c, a
ret
; 3ccc2
+Function3ccc2: ; 3ccc2
+ ld hl, BattleMonHP
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3cccd
+ ld hl, EnemyMonHP
-INCBIN "baserom.gbc", $3ccc2, $3d123 - $3ccc2
+.asm_3cccd
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ srl b
+ rr c
+ ld a, [hli]
+ ld [Buffer2], a
+ ld a, [hl]
+ ld [Buffer1], a
+ ret
+; 3ccde
+Function3ccde: ; 3ccde
+ ld hl, BattleMonHP + 1
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3cce9
+ ld hl, EnemyMonHP + 1
+.asm_3cce9
+ ld a, c
+ sub [hl]
+ dec hl
+ ld a, b
+ sbc [hl]
+ ret
+; 3ccef
+
+
+Function3ccef: ; 3ccef
+ ld hl, EnemyMonMaxHP
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3ccfa
+ ld hl, BattleMonMaxHP
+
+.asm_3ccfa
+ ld a, [hli]
+ ld [Buffer2], a
+ ld a, [hld]
+ ld [Buffer1], a
+ dec hl
+ ld a, [hl]
+ ld [$d1ec], a
+ add c
+ ld [hld], a
+ ld [$d1ee], a
+ ld a, [hl]
+ ld [$d1ed], a
+ adc b
+ ld [hli], a
+ ld [$d1ef], a
+ ld a, [Buffer1]
+ ld c, a
+ ld a, [hld]
+ sub c
+ ld a, [Buffer2]
+ ld b, a
+ ld a, [hl]
+ sbc b
+ jr c, .asm_3cd2d
+ ld a, b
+ ld [hli], a
+ ld [$d1ef], a
+ ld a, c
+ ld [hl], a
+ ld [$d1ee], a
+
+.asm_3cd2d
+ call Function3c8e4
+ call Function3cd36
+ jp Function3c8e4
+; 3cd36
+
+Function3cd36: ; 3cd36
+ call Function3cd3c
+ jp UpdateBattleHuds
+; 3cd3c
+
+
+Function3cd3c: ; 3cd3c
+ ld hl, $c55e
+ ld a, [hBattleTurn]
+ and a
+ ld a, $1
+ jr z, .asm_3cd4a
+ ld hl, $c4ca
+ xor a
+
+.asm_3cd4a
+ push bc
+ ld [$d10a], a
+ ld a, $b
+ call Predef
+ pop bc
+ ret
+; 3cd55
+
+Function3cd55: ; 3cd55
+ call Function3cf14
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ call z, Function3cef1
+ xor a
+ ld [$c6f7], a
+ call Function3ce01
+ call Function3d873
+ ld a, d
+ and a
+ jp z, LostBattle
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ call nz, Function3df48
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, $3c
+ call DelayFrames
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .asm_3cd8c
+ ld a, $1
+ ld [BattleEnded], a
+ ret
+
+.asm_3cd8c
+ call Function3cf35
+ jp z, Function3cfa4
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3cdba
+ call Function3d1f8
+ jr nc, .asm_3cda4
+ ld a, $1
+ ld [BattleEnded], a
+ ret
+
+.asm_3cda4
+ call Function3d227
+ call Function3d2e0
+ jp c, Function3c0e5
+ ld a, $1
+ ld [$d0ec], a
+ call Function3cf4a
+ jp z, Function3c0e5
+ jr .asm_3cdca
+
+.asm_3cdba
+ ld a, $1
+ ld [$d0ec], a
+ call Function3cf4a
+ jp z, Function3c0e5
+ xor a
+ ld [$d0ec], a
+ ret
+
+.asm_3cdca
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3cde6
+ call ClearSprites
+ ld hl, $c4a1
+ ld bc, $040a
+ call ClearBox
+ call Function3d2b3
+ ld a, $1
+ call $4f78
+ jr .asm_3cdfc
+
+.asm_3cde6
+ ld a, [CurPartyMon]
+ push af
+ ld a, $1
+ call $4f78
+ call ClearSprites
+ call Function309d
+ pop af
+ ld [CurPartyMon], a
+ call Function3d2b3
+
+.asm_3cdfc
+ xor a
+ ld [$d0ec], a
+ ret
+; 3ce01
+
+Function3ce01: ; 3ce01
+ call UpdateBattleMonInParty
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3ce16
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1CurHP
+ call GetPartyLocation
+ xor a
+ ld [hli], a
+ ld [hl], a
+
+.asm_3ce16
+ ld hl, PlayerSubStatus3
+ res 2, [hl]
+ xor a
+ ld hl, EnemyDamageTaken
+ ld [hli], a
+ ld [hl], a
+ call Function3d834
+ call Function3dc18
+ ld a, [IsInBattle]
+ dec a
+ jr z, .asm_3ce2f
+ jr .asm_3ce37
+
+.asm_3ce2f
+ call Function3ceec
+ ld a, $1
+ ld [$c6fd], a
+
+.asm_3ce37
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3ce47
+ ld a, [$c6f7]
+ and a
+ jr nz, .asm_3ce47
+ call Function3d1aa
+
+.asm_3ce47
+ call Function3d873
+ ld a, d
+ and a
+ ret z
+ ld a, [IsInBattle]
+ dec a
+ call z, Function3d0ea
+ call EmptyBattleTextBox
+ call Function309d
+ ld a, [$d0ee]
+ and $c0
+ ld [$d0ee], a
+ call Function3ceaa
+ jr z, .asm_3ce72
+ ld hl, EnemyMonBaseStats
+ ld b, $7
+.asm_3ce6c
+ srl [hl]
+ inc hl
+ dec b
+ jr nz, .asm_3ce6c
+
+.asm_3ce72
+ ld hl, EnemyMonBaseStats
+ ld de, $c720
+ ld bc, $0007
+ call CopyBytes
+ xor a
+ ld [$c71f], a
+ call Function3ee3b
+ call Function3ceaa
+ ret z
+ ld a, [$c664]
+ push af
+ ld a, d
+ ld [$c664], a
+ ld hl, $c720
+ ld de, EnemyMonBaseStats
+ ld bc, $0007
+ call CopyBytes
+ ld a, $1
+ ld [$c71f], a
+ call Function3ee3b
+ pop af
+ ld [$c664], a
+ ret
+; 3ceaa
+
+Function3ceaa: ; 3ceaa
+ ld a, [PartyCount]
+ ld b, a
+ ld hl, PartyMon1Species
+ ld c, $1
+ ld d, $0
+.asm_3ceb5
+ push hl
+ push bc
+ ld bc, $0022
+ add hl, bc
+ ld a, [hli]
+ or [hl]
+ pop bc
+ pop hl
+ jr z, .asm_3ced1
+ push hl
+ push bc
+ ld bc, $0001
+ add hl, bc
+ pop bc
+ ld a, [hl]
+ pop hl
+ cp $39
+ jr nz, .asm_3ced1
+ ld a, d
+ or c
+ ld d, a
+
+.asm_3ced1
+ sla c
+ push de
+ ld de, $0030
+ add hl, de
+ pop de
+ dec b
+ jr nz, .asm_3ceb5
+ ld a, d
+ ld e, $0
+ ld b, $6
+.asm_3cee1
+ srl a
+ jr nc, .asm_3cee6
+ inc e
+
+.asm_3cee6
+ dec b
+ jr nz, .asm_3cee1
+ ld a, e
+ and a
+ ret
+; 3ceec
+
+
+
+Function3ceec: ; 3ceec
+ xor a
+ ld [Danger], a
+ ret
+; 3cef1
+
+Function3cef1: ; 3cef1
+ call Function3ceec
+ call WaitSFX
+ ld a, $f0
+ ld [CryTracks], a
+ ld a, [BattleMonSpecies]
+ call Function37b6
+ call Function3d43b
+ ld hl, $c535
+ ld bc, $050b
+ call ClearBox
+ ld hl, BattleText_0x80a75
+ jp FarBattleTextBox
+; 3cf14
+
+Function3cf14: ; 3cf14
+ call WaitSFX
+ ld de, SFX_KINESIS
+ call StartSFX
+ call Function3d432
+ ld de, SFX_UNKNOWN_2A
+ call StartSFX
+ hlcoord 1, 0
+ ld bc, $040a
+ call ClearBox
+ ld hl, BattleText_0x809a8
+ jp FarBattleTextBox
+; 3cf35
+
+Function3cf35: ; 3cf35
+ ld a, [OTPartyCount]
+ ld b, a
+ xor a
+ ld hl, OTPartyMon1CurHP
+ ld de, $0030
+.asm_3cf40
+ or [hl]
+ inc hl
+ or [hl]
+ dec hl
+ add hl, de
+ dec b
+ jr nz, .asm_3cf40
+ and a
+ ret
+; 3cf4a
+
+Function3cf4a: ; 3cf4a
+ ld hl, EnemyHPPal
+ ld e, $30
+ call Function3e12e
+ call WaitBGMap
+ ld a, $b
+ ld hl, $4012
+ rst FarCall
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3cf6d
+ call Function3e8e4
+ ld a, [$d430]
+ cp $f
+ ret z
+ call Function30b4
+
+.asm_3cf6d
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ ld a, $0
+ jr nz, .asm_3cf78
+ inc a
+ ret
+
+.asm_3cf78
+ push af
+ xor a
+ ld [$c718], a
+ call Function3d834
+ call Function3d867
+ call Function3dc18
+ pop af
+ and a
+ jr nz, .asm_3cf8f
+ call Function3d4e1
+ jr .asm_3cf92
+
+.asm_3cf8f
+ call $5517
+
+.asm_3cf92
+ call Function3d57a
+ call SetEnemyTurn
+ call Function3dc23
+ xor a
+ ld [EnemyMoveAnimation], a
+ ld [$d0ec], a
+ inc a
+ ret
+; 3cfa4
+
+Function3cfa4: ; 3cfa4
+ call Function3ceec
+ ld a, $1
+ ld [$c6fd], a
+ ld [BattleEnded], a
+ ld a, [InLinkBattle]
+ and a
+ ld a, b
+ call z, Function3d0ea
+ callab Function39939
+ ld hl, BattleText_0x809da
+ call FarBattleTextBox
+ call Function3d2f1
+ jr z, .asm_3cff5
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+ ld a, [$cfc0]
+ bit 0, a
+ jr nz, .asm_3d006
+ call Function3ebd8
+ ld c, $28
+ call DelayFrames
+ ld a, [BattleType]
+ cp $1
+ jr nz, .asm_3cfe8
+ ld a, $2
+ call Predef
+
+.asm_3cfe8
+ ld a, [$c2cc]
+ bit 0, a
+ jr nz, .asm_3cff2
+ call Function3718
+
+.asm_3cff2
+ jp Function3d02b
+
+.asm_3cff5
+ call Function3ebd8
+ ld c, $28
+ call DelayFrames
+ ld c, $4
+ ld a, $13
+ ld hl, $6a0a
+ rst FarCall
+ ret
+
+.asm_3d006
+ call Function3ebd8
+ ld c, $28
+ call DelayFrames
+ call EmptyBattleTextBox
+ ld c, $3
+ ld a, $47
+ ld hl, $4000
+ rst FarCall
+ call Functiona80
+ ld hl, $c6ec
+ ld a, [hli]
+ or [hl]
+ inc hl
+ or [hl]
+ ret nz
+ call ClearTileMap
+ call WhiteBGMap
+ ret
+; 3d02b
+
+Function3d02b: ; 3d02b
+ ld a, [$c73d]
+ and a
+ call nz, Function3d099
+ call Function3d0b1
+ push af
+ ld a, $0
+ jr nc, .asm_3d044
+ ld a, [$d854]
+ and $7
+ cp $3
+ jr nz, .asm_3d044
+ inc a
+
+.asm_3d044
+ ld b, a
+ ld c, $4
+.asm_3d047
+ ld a, b
+ and a
+ jr z, .asm_3d052
+ call Function3d081
+ dec c
+ dec b
+ jr .asm_3d047
+
+.asm_3d052
+ ld a, c
+ and a
+ jr z, .asm_3d05c
+ call Function3d08d
+ dec c
+ jr .asm_3d052
+
+.asm_3d05c
+ call Function3d099
+ call Function3d099
+ pop af
+ jr nc, .asm_3d07b
+ ld a, [$d854]
+ and $7
+ jr z, .asm_3d07b
+ ld hl, SentToMomTexts
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp FarBattleTextBox
+
+.asm_3d07b
+ ld hl, BattleText_0x809be
+ jp FarBattleTextBox
+; 3d081
+
+Function3d081: ; 3d081
+ push bc
+ ld hl, $c688
+ ld de, $d853
+ call Function3d0be
+ pop bc
+ ret
+; 3d08d
+
+Function3d08d: ; 3d08d
+ push bc
+ ld hl, $c688
+ ld de, $d850
+ call Function3d0be
+ pop bc
+ ret
+; 3d099
+
+Function3d099: ; 3d099
+ ld hl, $c688
+ sla [hl]
+ dec hl
+ rl [hl]
+ dec hl
+ rl [hl]
+ ret nc
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ret
+; 3d0ab
+
+SentToMomTexts: ; 3d0ab
+ dw BattleText_0x809fc
+ dw BattleText_0x80a2a
+ dw BattleText_0x80a3d
+; 3d0b1
+
+
+Function3d0b1: ; 3d0b1
+ ld hl, $d853
+ ld a, [hld]
+ cp $3f
+ ld a, [hld]
+ sbc $42
+ ld a, [hl]
+ sbc $f
+ ret
+; 3d0be
+
+Function3d0be: ; 3d0be
+ ld c, $3
+ and a
+ push de
+ push hl
+ push bc
+ ld b, h
+ ld c, l
+ ld a, $41
+ ld hl, $6008
+ rst FarCall
+ pop bc
+ pop hl
+.asm_3d0ce
+ ld a, [de]
+ adc [hl]
+ ld [de], a
+ dec de
+ dec hl
+ dec c
+ jr nz, .asm_3d0ce
+ pop hl
+ ld a, [hld]
+ cp $3f
+ ld a, [hld]
+ sbc $42
+ ld a, [hl]
+ sbc $f
+ ret c
+ ld [hl], $f
+ inc hl
+ ld [hl], $42
+ inc hl
+ ld [hl], $3f
+ ret
+; 3d0ea
+
+Function3d0ea: ; 3d0ea
+ push de
+ ld de, MUSIC_NONE
+ call StartMusic
+ call DelayFrame
+ ld de, MUSIC_WILD_VICTORY
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .asm_3d113
+ push de
+ call Function3ceaa
+ pop de
+ jr nz, .asm_3d11e
+ ld hl, $c6ec
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3d11e
+ ld a, [$c664]
+ and a
+ jr z, .asm_3d121
+ jr .asm_3d11e
+
+.asm_3d113
+ ld de, MUSIC_GYM_VICTORY
+ call IsJohtoGymLeader
+ jr c, .asm_3d11e
+ ld de, MUSIC_TRAINER_VICTORY
+
+.asm_3d11e
+ call StartMusic
+
+.asm_3d121
+ pop de
+ ret
+; 3d123
+
+
+
; These functions check if the current opponent is a gym leader or one of a
; few other special trainers.
@@ -11989,9 +40377,323 @@
db $ff
-INCBIN "baserom.gbc", $3d14e, $3d38e - $3d14e
+Function3d14e: ; 3d14e
+ call Function3cef1
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ call z, Function3cf14
+ ld a, $1
+ ld [$c6f7], a
+ call Function3d1aa
+ call Function3d873
+ ld a, d
+ and a
+ jp z, LostBattle
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3d185
+ call Function3ce01
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .asm_3d17f
+ ld a, $1
+ ld [BattleEnded], a
+ ret
+.asm_3d17f
+ call Function3cf35
+ jp z, Function3cfa4
+.asm_3d185
+ call Function3d1f8
+ jr nc, .asm_3d190
+ ld a, $1
+ ld [BattleEnded], a
+ ret
+
+.asm_3d190
+ call Function3d227
+ call Function3d2e0
+ jp c, Function3c0e5
+ ld a, c
+ and a
+ ret nz
+ ld a, $1
+ ld [$d0ec], a
+ call Function3cf4a
+ jp z, Function3c0e5
+ jp $4dca
+; 3d1aa
+
+Function3d1aa: ; 3d1aa
+ ld a, [CurBattleMon]
+ ld c, a
+ ld hl, $c664
+ ld b, $0
+ ld a, $3
+ call Predef
+ ld hl, EnemySubStatus3
+ res 2, [hl]
+ xor a
+ ld [Danger], a
+ ld hl, PlayerDamageTaken
+ ld [hli], a
+ ld [hl], a
+ ld [BattleMonStatus], a
+ call UpdateBattleMonInParty
+ ld c, $6
+ ld a, [BattleMonLevel]
+ add $1e
+ ld b, a
+ ld a, [EnemyMonLevel]
+ cp b
+ jr c, .asm_3d1dc
+ ld c, $8
+
+.asm_3d1dc
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ callab ChangeHappiness
+ ld a, [$d0ee]
+ and $c0
+ add $1
+ ld [$d0ee], a
+ ld a, [$c6f7]
+ and a
+ ret z
+ ret
+; 3d1f8
+
+Function3d1f8: ; 3d1f8
+ call EmptyBattleTextBox
+ call Function309d
+ ld a, [IsInBattle]
+ and a
+ dec a
+ ret nz
+ ld hl, BattleText_0x80a83
+ call FarBattleTextBox
+.asm_3d20a
+ ld bc, $0107
+ call $1dd2
+ ld a, [$cfa9]
+ jr c, .asm_3d217
+ and a
+ ret
+
+.asm_3d217
+ ld a, [$cfa9]
+ cp $1
+ jr z, .asm_3d20a
+ ld hl, PartyMon1Spd
+ ld de, EnemyMonSpd
+ jp Function3d8b3
+; 3d227
+
+Function3d227: ; 3d227
+ call EmptyBattleTextBox
+ call Function1d6e
+ call Function3d2f7
+ call Function3d362
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3d241
+ ld a, $1
+ ld [$d0ec], a
+ call Function3e8e4
+
+.asm_3d241
+ xor a
+ ld [$d0ec], a
+ call Function3d2e0
+ jr c, .asm_3d251
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3d26c
+
+.asm_3d251
+ call ClearSprites
+ call WhiteBGMap
+ call Function3eda6
+ call Function1c07
+ call Function309d
+ call WaitBGMap
+ call ClearSGB
+ call Function32f9
+ xor a
+ ld c, a
+ ret
+
+.asm_3d26c
+ call ClearSprites
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ call $5581
+ call Function3da0d
+ call Function3dab1
+ call ClearPalettes
+ call DelayFrame
+ call Function3eda6
+ call Function1c17
+ call ClearSGB
+ call Function32f9
+ call Function3f26d
+ call Function3dbde
+ call Function3dc18
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ call SetPlayerTurn
+ call Function3dc23
+ ld a, $1
+ and a
+ ld c, a
+ ret
+; 3d2b3
+
+Function3d2b3: ; 3d2b3
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ call $5581
+ call Function3da0d
+ call Function3dab1
+ call Function3f26d
+ call Function3dbde
+ call Function3dc18
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ call SetPlayerTurn
+ jp Function3dc23
+; 3d2e0
+
+
+
+Function3d2e0: ; 3d2e0
+ ld a, [InLinkBattle]
+ cp $4
+ jr nz, .asm_3d2ef
+ ld a, [$cd2b]
+ and a
+ jr z, .asm_3d2ef
+ scf
+ ret
+
+.asm_3d2ef
+ xor a
+ ret
+; 3d2f1
+
+Function3d2f1: ; 3d2f1
+ ld a, [InLinkBattle]
+ cp $4
+ ret
+; 3d2f7
+
+Function3d2f7: ; 3d2f7
+ call WhiteBGMap
+ callba Function5004f
+ callba Function50405
+ ld a, $2
+ ld hl, $4e85
+ rst FarCall
+ callba Function503e0
+ ret
+; 3d313
+
+Function3d313: ; 3d313
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuText
+ call WaitBGMap
+ call Function32f9
+ call DelayFrame
+ ret
+; 3d329
+
+Function3d329: ; 3d329
+ call Function3d2f1
+ jr z, .asm_3d335
+ callba PartyMenuSelect
+ ret
+
+.asm_3d335
+ ld a, $40
+ ld hl, $4cb5
+ rst FarCall
+ ret
+; 3d33c
+
+Function3d33c: ; 3d33c
+.asm_3d33c
+ ld a, $2
+ ld [PartyMenuActionText], a
+ call Function3d313
+ call Function3d329
+ ret c
+ call Function3d887
+ jr z, .asm_3d33c
+ xor a
+ ret
+; 3d34f
+
+Function3d34f: ; 3d34f
+ ld hl, CurBattleMon
+ ld a, [CurPartyMon]
+ cp [hl]
+ jr nz, .asm_3d360
+ ld hl, BattleText_0x80c0d
+ call FarBattleTextBox
+ scf
+ ret
+
+.asm_3d360
+ xor a
+ ret
+; 3d362
+
+Function3d362: ; 3d362
+.asm_3d362
+ call Function3d33c
+ ret nc
+ call Function3d2e0
+ ret c
+ ld de, SFX_WRONG
+ call StartSFX
+ call WaitSFX
+ jr .asm_3d362
+; 3d375
+
+
+
+Function3d375: ; 3d375
+.asm_3d375
+ call Function3d33c
+ ret c
+ call Function3d34f
+ jr c, .asm_3d375
+ xor a
+ ret
+; 3d380
+
+Function3d380: ; 3d380
+.asm_3d380
+ call Function3d362
+ call Function3d2e0
+ ret c
+ call Function3d34f
+ jr c, .asm_3d380
+ xor a
+ ret
+; 3d38e
+
+
LostBattle: ; 3d38e
ld a, 1
ld [BattleEnded], a
@@ -12008,7 +40710,7 @@
hlcoord 0, 0
ld bc, $0815
call ClearBox
- call $6bd8
+ call Function3ebd8
ld c, 40
call DelayFrames
@@ -12016,7 +40718,7 @@
ld a, [$c2cc]
bit 0, a
jr nz, .asm_3d3bc
- call $3718
+ call Function3718
.asm_3d3bc
ret
@@ -12025,12 +40727,12 @@
hlcoord 0, 0
ld bc, $0815
call ClearBox
- call $6bd8
+ call Function3ebd8
ld c, 40
call DelayFrames
- call $6dd1
+ call EmptyBattleTextBox
ld c, 2
ld a, $47
ld hl, $4000
@@ -12048,12 +40750,12 @@
; Greyscale
ld b, 0
call GetSGBLayout
- call $32f9
+ call Function32f9
jr .end
.LostLinkBattle
call UpdateEnemyMonInParty
- call $4f35
+ call Function3cf35
jr nz, .asm_3d40a
ld hl, TiedAgainstText
ld a, [$d0ee]
@@ -12064,7 +40766,7 @@
.asm_3d40a
ld hl, LostAgainstText
- call $52f1
+ call Function3d2f1
jr z, .asm_3d417
.asm_3d412
@@ -12079,7 +40781,7 @@
hlcoord 0, 0
ld bc, $0815
call ClearBox
- call $6bd8
+ call Function3ebd8
ld c, 40
call DelayFrames
@@ -12093,14 +40795,3030 @@
; 3d432
-INCBIN "baserom.gbc", $3d432, $3ddc2 - $3d432
+Function3d432: ; 3d432
+ ld hl, $c510
+ ld de, $c524
+ jp Function3d444
+; 3d43b
+Function3d43b: ; 3d43b
+ ld hl, $c569
+ ld de, $c57d
+ jp Function3d444
+; 3d444
+
+Function3d444: ; 3d444
+ ld a, [$cfbe]
+ push af
+ set 6, a
+ ld [$cfbe], a
+ ld b, $7
+.asm_3d44f
+ push bc
+ push de
+ push hl
+ ld b, $6
+.asm_3d454
+ push bc
+ push hl
+ push de
+ ld bc, $0007
+ call CopyBytes
+ pop de
+ pop hl
+ ld bc, -20
+ add hl, bc
+ push hl
+ ld h, d
+ ld l, e
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ pop bc
+ dec b
+ jr nz, .asm_3d454
+ ld bc, 20
+ add hl, bc
+ ld de, .Spaces
+ call PlaceString
+ ld c, 2
+ call DelayFrames
+ pop hl
+ pop de
+ pop bc
+ dec b
+ jr nz, .asm_3d44f
+ pop af
+ ld [$cfbe], a
+ ret
+; 3d488
+
+.Spaces
+ db " @"
+; 3d490
+
+
+Function3d490: ; 3d490
+ ld [hConnectionStripLength], a
+ ld c, a
+.asm_3d493
+ push bc
+ push hl
+ ld b, $7
+.asm_3d497
+ push hl
+ call Function3d4ae
+ pop hl
+ ld de, 20
+ add hl, de
+ dec b
+ jr nz, .asm_3d497
+ ld c, 2
+ call DelayFrames
+ pop hl
+ pop bc
+ dec c
+ jr nz, .asm_3d493
+ ret
+; 3d4ae
+
+Function3d4ae: ; 3d4ae
+ ld a, [hConnectionStripLength]
+ ld c, a
+ cp $8
+ jr nz, .asm_3d4bc
+.asm_3d4b5
+ ld a, [hli]
+ ld [hld], a
+ dec hl
+ dec c
+ jr nz, .asm_3d4b5
+ ret
+
+.asm_3d4bc
+ ld a, [hld]
+ ld [hli], a
+ inc hl
+ dec c
+ jr nz, .asm_3d4bc
+ ret
+; 3d4c3
+
+
+Function3d4c3: ; 3d4c3
+ call Function3d557
+ ld a, [$c718]
+ dec a
+ ld b, a
+ call Function3d6ca
+ call Function3d7a0
+ call Function3d834
+ call Function3d867
+ call Function3d7c7
+ call Function3dc18
+ call Function3d57a
+ ret
+; 3d4e1
+
+
+Function3d4e1: ; 3d4e1
+ call Function3d714
+ jr nc, .asm_3d517
+ call Function3d557
+ call Function3d533
+ jr c, .asm_3d4f1
+ call Function3d599
+
+.asm_3d4f1
+ call Function3d6ca
+ call Function3d74b
+ push af
+ call Function3d7a0
+ call Function3d7b8
+ call Function3d7c7
+ pop af
+ ret c
+ xor a
+ ld [$c664], a
+ ld [$c6fc], a
+ ld [$d0ec], a
+ inc a
+ ld [$c711], a
+ call Function309d
+ jp Function3e3ad
+
+.asm_3d517
+ call Function3d557
+ call Function3d533
+ jr c, .asm_3d522
+ call Function3d599
+
+.asm_3d522
+ call Function3d6ca
+ ld a, $1
+ ld [$c711], a
+ call Function3d7a0
+ call Function3d7b8
+ jp Function3d7c7
+; 3d533
+
+Function3d533: ; 3d533
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3d541
+ ld a, [$d430]
+ sub $4
+ ld b, a
+ jr .asm_3d555
+
+.asm_3d541
+ ld a, [$c718]
+ and a
+ jr z, .asm_3d54b
+ dec a
+ ld b, a
+ jr .asm_3d555
+
+.asm_3d54b
+ ld a, [$d264]
+ and a
+ ld b, $0
+ jr nz, .asm_3d555
+ and a
+ ret
+
+.asm_3d555
+ scf
+ ret
+; 3d557
+
+Function3d557: ; 3d557
+ xor a
+ ld [LastEnemyCounterMove], a
+ ld [LastPlayerCounterMove], a
+ ld [LastEnemyMove], a
+ ld [CurEnemyMove], a
+ dec a
+ ld [$c6e6], a
+ xor a
+ ld [$c730], a
+ ld hl, $c4b2
+ ld a, $8
+ call Function3d490
+ call EmptyBattleTextBox
+ jp Function1d6e
+; 3d57a
+
+Function3d57a: ; 3d57a
+ xor a
+ ld [$c664], a
+ ld [$c6fc], a
+ ld a, [CurBattleMon]
+ ld c, a
+ ld hl, $c664
+ ld b, $1
+ push bc
+ ld a, $3
+ call Predef
+ pop bc
+ ld hl, $c6fc
+ ld a, $3
+ jp Predef
+; 3d599
+
+Function3d599: ; 3d599
+ ld b, $ff
+ ld a, $1
+ ld [Buffer1], a
+ ld [Buffer2], a
+.asm_3d5a3
+ ld hl, Buffer1
+ sla [hl]
+ inc hl
+ sla [hl]
+ inc b
+ ld a, [OTPartyCount]
+ cp b
+ jp z, Function3d672
+ ld a, [CurOTMon]
+ cp b
+ jr z, .asm_3d5d0
+ ld hl, OTPartyMon1CurHP
+ push bc
+ ld a, b
+ call GetPartyLocation
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ or c
+ pop bc
+ jr z, .asm_3d5d0
+ call Function3d5d7
+ call Function3d618
+ jr .asm_3d5a3
+
+.asm_3d5d0
+ ld hl, Buffer2
+ set 0, [hl]
+ jr .asm_3d5a3
+; 3d5d7
+
+Function3d5d7: ; 3d5d7
+ push bc
+ ld hl, OTPartyMon1Move1
+ ld a, b
+ call GetPartyLocation
+ pop bc
+ ld e, $5
+.asm_3d5e2
+ dec e
+ jr z, .asm_3d617
+ ld a, [hli]
+ and a
+ jr z, .asm_3d617
+ push hl
+ push de
+ push bc
+ dec a
+ ld hl, $5afb
+ ld bc, $0007
+ call AddNTimes
+ ld de, EnemyMoveAnimation
+ ld a, $10
+ call FarCopyBytes
+ call SetEnemyTurn
+ callab Function0x347c8
+ pop bc
+ pop de
+ pop hl
+ ld a, [$d265]
+ cp $b
+ jr c, .asm_3d5e2
+ ld hl, Buffer1
+ set 0, [hl]
+ ret
+
+.asm_3d617
+ ret
+; 3d618
+
+Function3d618: ; 3d618
+ push bc
+ ld hl, OTPartyCount
+ ld a, b
+ inc a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ dec a
+ ld hl, $542b
+ ld bc, $0020
+ call AddNTimes
+ ld de, EnemyMonType1
+ ld bc, $0002
+ ld a, $14
+ call FarCopyBytes
+ ld a, [BattleMonType1]
+ ld [PlayerMoveType], a
+ call SetPlayerTurn
+ callab Function0x347c8
+ ld a, [$d265]
+ cp $b
+ jr nc, .asm_3d663
+ ld a, [BattleMonType2]
+ ld [PlayerMoveType], a
+ callab Function0x347c8
+ ld a, [$d265]
+ cp $b
+ jr nc, .asm_3d663
+ pop bc
+ ret
+
+.asm_3d663
+ pop bc
+ ld hl, Buffer1
+ bit 0, [hl]
+ jr nz, .asm_3d66f
+ inc hl
+ set 0, [hl]
+ ret
+
+.asm_3d66f
+ res 0, [hl]
+ ret
+; 3d672
+
+Function3d672: ; 3d672
+.asm_3d672
+ ld hl, Buffer1
+ sla [hl]
+ inc hl
+ sla [hl]
+ jr nc, .asm_3d672
+ ld a, [OTPartyCount]
+ ld b, a
+ ld c, [hl]
+.asm_3d681
+ sla c
+ jr nc, .asm_3d68a
+ dec b
+ jr z, .asm_3d6a7
+ jr .asm_3d681
+
+.asm_3d68a
+ ld a, [Buffer1]
+ and a
+ jr z, .asm_3d69a
+ ld b, $ff
+ ld c, a
+.asm_3d693
+ inc b
+ sla c
+ jr nc, .asm_3d693
+ jr .asm_3d6c9
+
+.asm_3d69a
+ ld b, $ff
+ ld a, [Buffer2]
+ ld c, a
+.asm_3d6a0
+ inc b
+ sla c
+ jr c, .asm_3d6a0
+ jr .asm_3d6c9
+
+.asm_3d6a7
+ ld a, [OTPartyCount]
+ ld b, a
+ call FarBattleRNG
+ and $7
+ cp b
+ jr nc, .asm_3d6a7
+ ld b, a
+ ld a, [CurOTMon]
+ cp b
+ jr z, .asm_3d6a7
+ ld hl, OTPartyMon1CurHP
+ push bc
+ ld a, b
+ call GetPartyLocation
+ pop bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ or c
+ jr z, .asm_3d6a7
+
+.asm_3d6c9
+ ret
+; 3d6ca
+
+Function3d6ca: ; 3d6ca
+ ld a, b
+ ld [CurPartyMon], a
+ ld hl, OTPartyMon1Level
+ call GetPartyLocation
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld a, [CurPartyMon]
+ inc a
+ ld hl, OTPartyCount
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [TempEnemyMonSpecies], a
+ ld [CurPartySpecies], a
+ call LoadEnemyMon
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr nz, .asm_3d708
+ ld a, [$def4]
+ and a
+ jr nz, .asm_3d708
+ ld hl, EnemyMonAtkDefDV
+ ld a, $2d
+ call Predef
+ ld a, [UnownLetter]
+ ld [$def4], a
+
+.asm_3d708
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ ld [$c6ea], a
+ ld a, [hl]
+ ld [$c6eb], a
+ ret
+; 3d714
+
+Function3d714: ; 3d714
+ ld a, [$d264]
+ dec a
+ jp z, $5749
+ ld a, [PartyCount]
+ dec a
+ jp z, $5749
+ ld a, [InLinkBattle]
+ and a
+ jp nz, $5749
+ ld a, [Options]
+ bit 6, a
+ jr nz, .asm_3d749
+ ld a, [CurPartyMon]
+ push af
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ callba Functione538
+ pop bc
+ ld a, b
+ ld [CurPartyMon], a
+ jr c, .asm_3d749
+ scf
+ ret
+
+.asm_3d749
+ and a
+ ret
+; 3d74b
+
+Function3d74b: ; 3d74b
+ ld a, [CurPartyMon]
+ push af
+ callab Function39939
+ ld hl, BattleText_0x80aca
+ call FarBattleTextBox
+ ld bc, $0107
+ call $1dd2
+ ld a, [$cfa9]
+ dec a
+ jr nz, .asm_3d79a
+ call Function3d2f7
+ call Function3d375
+ jr c, .asm_3d791
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ call ClearPalettes
+ call DelayFrame
+ call Function3eda6
+ pop af
+ ld [CurPartyMon], a
+ xor a
+ ld [CurEnemyMove], a
+ ld [CurPlayerMove], a
+ and a
+ ret
+
+.asm_3d791
+ call ClearPalettes
+ call DelayFrame
+ call Function3eda6
+
+.asm_3d79a
+ pop af
+ ld [CurPartyMon], a
+ scf
+ ret
+; 3d7a0
+
+Function3d7a0: ; 3d7a0
+ xor a
+ ld [hBGMapMode], a
+ call Function1c07
+ call ClearSprites
+ ld hl, $c4a1
+ ld bc, $040a
+ call ClearBox
+ call WaitBGMap
+ jp Function3ee27
+; 3d7b8
+
+Function3d7b8: ; 3d7b8
+ callab Function39939
+ ld hl, BattleText_0x80af8
+ call FarBattleTextBox
+ jp WaitBGMap
+; 3d7c7
+
+Function3d7c7: ; 3d7c7
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, $1
+ ld [MonType], a
+ ld a, $1f
+ call Predef
+ call Function3f47c
+ xor a
+ ld [$cfca], a
+ ld [$c689], a
+ call SetEnemyTurn
+ ld de, $0101
+ call Function3ee17
+ call $5a79
+ jr nc, .asm_3d800
+ ld a, $1
+ ld [$c689], a
+ ld de, $0101
+ call Function3ee17
+
+.asm_3d800
+ ld bc, TempMonSpecies
+ callba Function4e53f
+ jr c, .asm_3d82c
+ ld a, $13
+ ld hl, $6a44
+ rst FarCall
+ jr c, .asm_3d821
+ ld hl, $c4ac
+ ld d, $0
+ ld e, $0
+ ld a, $47
+ call Predef
+ jr .asm_3d82c
+
+.asm_3d821
+ ld a, $f
+ ld [CryTracks], a
+ ld a, [TempEnemyMonSpecies]
+ call Function37b6
+
+.asm_3d82c
+ call Function3e036
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 3d834
+
+Function3d834: ; 3d834
+ xor a
+ ld [LastEnemyCounterMove], a
+ ld [LastPlayerCounterMove], a
+ ld [LastEnemyMove], a
+ ld hl, EnemySubStatus1
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld [EnemyDisableCount], a
+ ld [EnemyFuryCutterCount], a
+ ld [$c681], a
+ ld [$c72c], a
+ ld [EnemyDisabledMove], a
+ ld [$c6fa], a
+ ld [$c730], a
+ ld [$c731], a
+ ld [EnemyTurnsTaken], a
+ ld hl, PlayerSubStatus5
+ res 7, [hl]
+ ret
+; 3d867
+
+Function3d867: ; 3d867
+ ld a, $7
+ ld b, $8
+ ld hl, EnemyAtkLevel
+.asm_3d86e
+ ld [hli], a
+ dec b
+ jr nz, .asm_3d86e
+ ret
+; 3d873
+
+Function3d873: ; 3d873
+ ld a, [PartyCount]
+ ld e, a
+ xor a
+ ld hl, PartyMon1CurHP
+ ld bc, $002f
+.asm_3d87e
+ or [hl]
+ inc hl
+ or [hl]
+ add hl, bc
+ dec e
+ jr nz, .asm_3d87e
+ ld d, a
+ ret
+; 3d887
+
+
+Function3d887: ; 3d887
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1CurHP
+ call GetPartyLocation
+ ld a, [hli]
+ or [hl]
+ ret nz
+ ld a, [$d264]
+ and a
+ jr nz, .asm_3d8b1
+ ld hl, PartySpecies
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ cp $fd
+ ld hl, BattleText_0x80b26
+ jr z, .asm_3d8ae
+ ld hl, BattleText_0x80b0b
+
+.asm_3d8ae
+ call FarBattleTextBox
+
+.asm_3d8b1
+ xor a
+ ret
+; 3d8b3
+
+
+Function3d8b3: ; 3d8b3
+ ld a, [BattleType]
+ cp $2
+ jp z, .asm_3d9a2
+ cp $6
+ jp z, .asm_3d9a2
+ cp $9
+ jp z, .asm_3d98d
+ cp $b
+ jp z, .asm_3d98d
+ cp $7
+ jp z, .asm_3d98d
+ cp $c
+ jp z, .asm_3d98d
+
+ ld a, [InLinkBattle]
+ and a
+ jp nz, .asm_3d9a2
+
+ ld a, [IsInBattle]
+ dec a
+ jp nz, .asm_3d992
+
+ ld a, [EnemySubStatus5]
+ bit 7, a
+ jp nz, .asm_3d98d
+
+ ld a, [$c730]
+ and a
+ jp nz, .asm_3d98d
+
+ push hl
+ push de
+ ld a, [BattleMonItem]
+ ld [$d265], a
+ ld b, a
+ callab GetItem
+ ld a, b
+ cp $48
+ pop de
+ pop hl
+ jr nz, .asm_3d916
+
+ call SetPlayerTurn
+ call GetItemName
+ ld hl, BattleText_0x80b89
+ call FarBattleTextBox
+ jp .asm_3d9a2
+
+.asm_3d916
+ ld a, [$d267]
+ inc a
+ ld [$d267], a
+ ld a, [hli]
+ ld [$ffb5], a
+ ld a, [hl]
+ ld [$ffb6], a
+ ld a, [de]
+ inc de
+ ld [$ffb1], a
+ ld a, [de]
+ ld [$ffb2], a
+ call Function30b4
+ ld de, $ffb5
+ ld hl, $ffb1
+ ld c, $2
+ call StringCmp
+ jr nc, .asm_3d9a2
+ xor a
+ ld [hMultiplicand], a
+ ld a, $20
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [$ffb5]
+ ld [hProduct], a
+ ld a, [$ffb6]
+ ld [hMultiplicand], a
+ ld a, [$ffb1]
+ ld b, a
+ ld a, [$ffb2]
+ srl b
+ rr a
+ srl b
+ rr a
+ and a
+ jr z, .asm_3d9a2
+ ld [hMultiplier], a
+ ld b, $2
+ call Divide
+ ld a, [$ffb5]
+ and a
+ jr nz, .asm_3d9a2
+ ld a, [$d267]
+ ld c, a
+.asm_3d96c
+ dec c
+ jr z, .asm_3d97a
+ ld b, $1e
+ ld a, [$ffb6]
+ add b
+ ld [$ffb6], a
+ jr c, .asm_3d9a2
+ jr .asm_3d96c
+
+.asm_3d97a
+ call FarBattleRNG
+ ld b, a
+ ld a, [$ffb6]
+ cp b
+ jr nc, .asm_3d9a2
+ ld a, $1
+ ld [$d0ec], a
+ ld hl, BattleText_0x80b3b
+ jr .asm_3d995
+
+.asm_3d98d
+ ld hl, BattleText_0x80ba0
+ jr .asm_3d995
+
+.asm_3d992
+ ld hl, BattleText_0x80b49
+
+.asm_3d995
+ call FarBattleTextBox
+ ld a, $1
+ ld [$d266], a
+ call Function309d
+ and a
+ ret
+
+.asm_3d9a2
+ ld a, [InLinkBattle]
+ and a
+ ld a, $2
+ jr z, .asm_3d9cf
+ call Function309d
+ xor a
+ ld [$d0ec], a
+ ld a, $f
+ ld [CurMoveNum], a
+ xor a
+ ld [CurPlayerMove], a
+ call Function3e8e4
+ call Function30b4
+ call Function3d2e0
+ jr c, .asm_3d9f5
+
+; Got away safely
+ ld a, [$d430]
+ cp $f
+ ld a, $2
+ jr z, .asm_3d9cf
+ dec a
+.asm_3d9cf
+ ld b, a
+ ld a, [$d0ee]
+ and $c0
+ add b
+ ld [$d0ee], a
+ call Function3ceec
+ push de
+ ld de, SFX_RUN
+ call WaitPlaySFX
+ pop de
+ call WaitSFX
+ ld hl, BattleText_0x80b77
+ call FarBattleTextBox
+ call WaitSFX
+ call Function309d
+ scf
+ ret
+
+.asm_3d9f5
+ call Function3ceec
+ ld hl, $cd2a
+ bit 4, [hl]
+ jr nz, .asm_3da05
+ ld hl, BattleText_0x81863
+ call FarBattleTextBox
+
+.asm_3da05
+ call WaitSFX
+ call Function309d
+ scf
+ ret
+; 3da0d
+
+
+Function3da0d: ; 3da0d
+ ld a, $0
+ call GetPartyParamLocation
+ ld de, BattleMonSpecies
+ ld bc, $0006
+ call CopyBytes
+ ld bc, $000f
+ add hl, bc
+ ld de, BattleMonAtkDefDV
+ ld bc, $0007
+ call CopyBytes
+ inc hl
+ inc hl
+ inc hl
+ ld de, BattleMonLevel
+ ld bc, $0011
+ call CopyBytes
+ ld a, [BattleMonSpecies]
+ ld [TempBattleMonSpecies], a
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseType1]
+ ld [BattleMonType1], a
+ ld a, [BaseType2]
+ ld [BattleMonType2], a
+ ld hl, PartyMon1Nickname
+ ld a, [CurBattleMon]
+ call SkipNames
+ ld de, BattleMonNick
+ ld bc, $000b
+ call CopyBytes
+ ld hl, BattleMonAtk
+ ld de, PlayerStats
+ ld bc, $000a
+ call CopyBytes
+ call Function3ec2c
+ call BadgeStatBoosts
+ ret
+; 3da74
+
+Function3da74: ; 3da74
+ call Function3da85
+ jr .asm_3da7c
+
+ call Function3da97
+
+.asm_3da7c
+ ld b, h
+ ld c, l
+ callab CheckShininess
+ ret
+; 3da85
+
+Function3da85: ; 3da85
+ ld hl, BattleMonAtkDefDV
+ ld a, [PlayerSubStatus5]
+ bit 3, a
+ ret z
+ ld hl, PartyMon1DVs
+ ld a, [CurBattleMon]
+ jp GetPartyLocation
+; 3da97
+
+Function3da97: ; 3da97
+ ld hl, EnemyMonAtkDefDV
+ ld a, [EnemySubStatus5]
+ bit 3, a
+ ret z
+ ld hl, $c6f2
+ ld a, [IsInBattle]
+ dec a
+ ret z
+ ld hl, OTPartyMon1AtkDefDV
+ ld a, [CurOTMon]
+ jp GetPartyLocation
+; 3dab1
+
+Function3dab1: ; 3dab1
+ ld a, $7
+ ld b, $8
+ ld hl, PlayerAtkLevel
+.asm_3dab8
+ ld [hli], a
+ dec b
+ jr nz, .asm_3dab8
+ ret
+; 3dabd
+
+
+Function3dabd: ; 3dabd
+ ld a, [CurPartyMon]
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ ld de, EnemyMonSpecies
+ ld bc, $0006
+ call CopyBytes
+ ld bc, $000f
+ add hl, bc
+ ld de, EnemyMonAtkDefDV
+ ld bc, $0007
+ call CopyBytes
+ inc hl
+ inc hl
+ inc hl
+ ld de, EnemyMonLevel
+ ld bc, $0011
+ call CopyBytes
+ ld a, [EnemyMonSpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, OTPartyMon1Nickname
+ ld a, [CurPartyMon]
+ call SkipNames
+ ld de, EnemyMonNick
+ ld bc, $000b
+ call CopyBytes
+ ld hl, EnemyMonAtk
+ ld de, EnemyStats
+ ld bc, $000a
+ call CopyBytes
+ call Function3ec30
+ ld hl, BaseType1
+ ld de, EnemyMonType1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ld hl, BaseHP
+ ld de, EnemyMonBaseStats
+ ld b, $5
+.asm_3db25
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_3db25
+ ld a, [CurPartyMon]
+ ld [CurOTMon], a
+ ret
+; 3db32
+
+
+Function3db32: ; 3db32
+ call ClearSprites
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ call $5581
+ call Function3da0d
+ call Function3dab1
+ call Function3dbde
+ call Function3dc18
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ ret
+; 3db5f
+
+
+Function3db5f: ; 3db5f
+ ld hl, BattleMonAtkDefDV
+ ld a, $2d
+ call Predef
+ ld hl, $c505
+ ld b, $7
+ ld c, $8
+ call ClearBox
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ call Function3f43d
+ xor a
+ ld [$ffad], a
+ ld [$d0d2], a
+ ld [CurMoveNum], a
+ ld [TypeModifier], a
+ ld [PlayerMoveAnimation], a
+ ld [LastEnemyCounterMove], a
+ ld [LastPlayerCounterMove], a
+ ld [LastPlayerMove], a
+ call Function3e4a8
+ call Function3ee27
+ xor a
+ ld [$c731], a
+ call SetPlayerTurn
+ xor a
+ ld [$cfca], a
+ ld [$c689], a
+ ld de, $0101
+ call Function3ee17
+ call Function3da74
+ jr nc, .asm_3dbbc
+ ld a, $1
+ ld [$c689], a
+ ld de, $0101
+ call Function3ee17
+
+.asm_3dbbc
+ ld a, $0
+ call GetPartyParamLocation
+ ld b, h
+ ld c, l
+ callba Function4e53f
+ jr c, .asm_3dbd6
+ ld a, $f0
+ ld [CryTracks], a
+ ld a, [CurPartySpecies]
+ call Function37b6
+
+.asm_3dbd6
+ call Function3df48
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 3dbde
+
+Function3dbde: ; 3dbde
+ xor a
+ ld [LastEnemyCounterMove], a
+ ld [LastPlayerCounterMove], a
+ ld [LastPlayerMove], a
+ ld hl, PlayerSubStatus1
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, PlayerUsedMoves
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld [PlayerDisableCount], a
+ ld [PlayerFuryCutterCount], a
+ ld [$c679], a
+ ld [$c72b], a
+ ld [DisabledMove], a
+ ld [$c6fe], a
+ ld [$c731], a
+ ld [$c730], a
+ ld [PlayerTurnsTaken], a
+ ld hl, EnemySubStatus5
+ res 7, [hl]
+ ret
+; 3dc18
+
+Function3dc18: ; 3dc18
+ ld hl, PlayerSubStatus1
+ res 7, [hl]
+ ld hl, EnemySubStatus1
+ res 7, [hl]
+ ret
+; 3dc23
+
+Function3dc23: ; 3dc23
+ ld hl, PlayerScreens
+ ld de, BattleMonType1
+ ld bc, Function3df48
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3dc3a
+ ld hl, EnemyScreens
+ ld de, EnemyMonType1
+ ld bc, Function3e036
+
+.asm_3dc3a
+ bit 0, [hl]
+ ret z
+ ld a, [de]
+ cp $2
+ ret z
+ inc de
+ ld a, [de]
+ cp $2
+ ret z
+ push bc
+ ld hl, BattleText_0x80bae
+ call FarBattleTextBox
+ call GetEighthMaxHP
+ call Function3cc39
+ pop hl
+ call Function3dc5a
+ jp WaitBGMap
+; 3dc5a
+
+Function3dc5a: ; 3dc5a
+ jp [hl]
+; 3dc5b
+
+Function3dc5b: ; 3dc5b
+ ld a, $10
+ call CleanGetBattleVarPair
+ ld b, a
+ call Function3c5ec
+ ld a, b
+ cp $80
+ jr nz, .asm_3dce4
+ ld a, [CurBattleMon]
+ push af
+ ld hl, Function3c000
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3dc7e
+ ld hl, $400a
+ ld a, [$c71a]
+ ld [CurBattleMon], a
+
+.asm_3dc7e
+ ld a, $d
+ rst FarCall
+ ld a, $10
+ call GetBattleVarPair
+ ld a, $ff
+ ld [hl], a
+ pop af
+ ld [CurBattleMon], a
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3dcc0
+ ld a, [$c71a]
+ call $399f
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3dce4
+ ld a, $f0
+ ld [CryTracks], a
+ ld a, [BattleMonSpecies]
+ call Function37b6
+ ld a, [$c71a]
+ ld c, a
+ ld hl, $c664
+ ld b, $0
+ ld a, $3
+ call Predef
+ call Function3d43b
+ ld hl, BattleText_0x80a75
+ jr .asm_3dcdf
+
+.asm_3dcc0
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_3dce4
+ ld de, SFX_KINESIS
+ call StartSFX
+ call WaitSFX
+ ld de, SFX_UNKNOWN_2A
+ call StartSFX
+ call WaitSFX
+ call Function3d432
+ ld hl, BattleText_0x809a8
+
+.asm_3dcdf
+ call FarBattleTextBox
+ scf
+ ret
+
+.asm_3dce4
+ and a
+ ret
+; 3dce6
+
+Function3dce6: ; 3dce6
+ ld a, [hBattleTurn]
+ push af
+ xor a
+ ld [hBattleTurn], a
+ ld [$cfca], a
+ ld de, $0102
+ call Function3ee17
+ pop af
+ ld [hBattleTurn], a
+ ret
+; 3dcf9
+
+Function3dcf9: ; 3dcf9
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3dd17
+ call SetPlayerTurn
+ call Function3dd2f
+ call Function3dde9
+ call Function3de51
+ call SetEnemyTurn
+ call Function3dd2f
+ call Function3dde9
+ jp Function3de51
+
+.asm_3dd17
+ call SetEnemyTurn
+ call Function3dd2f
+ call Function3dde9
+ call Function3de51
+ call SetPlayerTurn
+ call Function3dd2f
+ call Function3dde9
+ jp Function3de51
+; 3dd2f
+
+Function3dd2f: ; 3dd2f
+ callab GetOpponentItem
+ ld a, b
+ cp $1
+ ret nz
+ ld de, EnemyMonHPLo
+ ld hl, EnemyMonMaxHPHi
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3dd4a
+ ld de, $c63d
+ ld hl, BattleMonMaxHP
+
+.asm_3dd4a
+ push bc
+ ld a, [de]
+ ld [$d1ec], a
+ add a
+ ld c, a
+ dec de
+ ld a, [de]
+ inc de
+ ld [$d1ed], a
+ adc a
+ ld b, a
+ ld a, b
+ cp [hl]
+ ld a, c
+ pop bc
+ jr z, .asm_3dd62
+ jr c, .asm_3dd66
+ ret
+
+.asm_3dd62
+ inc hl
+ cp [hl]
+ dec hl
+ ret nc
+
+.asm_3dd66
+ call Function3ddc8
+ ld a, [hli]
+ ld [Buffer2], a
+ ld a, [hl]
+ ld [Buffer1], a
+ ld a, [de]
+ add c
+ ld [$d1ee], a
+ ld c, a
+ dec de
+ ld a, [de]
+ adc $0
+ ld [$d1ef], a
+ ld b, a
+ ld a, [hld]
+ cp c
+ ld a, [hl]
+ sbc b
+ jr nc, .asm_3dd8d
+ ld a, [hli]
+ ld [$d1ef], a
+ ld a, [hl]
+ ld [$d1ee], a
+
+.asm_3dd8d
+ ld a, [$d1ef]
+ ld [de], a
+ inc de
+ ld a, [$d1ee]
+ ld [de], a
+ ld a, [hBattleTurn]
+ ld [$d10a], a
+ and a
+ ld hl, $c4ca
+ jr z, .asm_3dda4
+ ld hl, $c55e
+
+.asm_3dda4
+ ld [$d10a], a
+ ld a, $b
+ call Predef
+ call RefreshBattleHuds
+ callab GetOpponentItem
+ ld a, [hl]
+ ld [$d265], a
+ call GetItemName
+ ld hl, $7192
+ ld a, $9
+ rst FarCall
ld hl, RecoveredUsingText
- jp $3ad5
-; 0x3ddc8
+ jp FarBattleTextBox
+; 3ddc8
-INCBIN "baserom.gbc", $3ddc8, $3e8eb - $3ddc8
+Function3ddc8: ; 3ddc8
+ push hl
+ push de
+ push bc
+ call EmptyBattleTextBox
+ ld a, $69
+ ld [FXAnimIDLo], a
+ call Function3c8e4
+ xor a
+ ld [$cfca], a
+ ld [FXAnimIDHi], a
+ ld a, $37
+ call Predef
+ call Function3c8e4
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3dde9
+
+Function3dde9: ; 3dde9
+ callab GetOpponentItem
+ ld hl, .Statuses
+.asm_3ddf2
+ ld a, [hli]
+ cp $ff
+ ret z
+ inc hl
+ cp b
+ jr nz, .asm_3ddf2
+ dec hl
+ ld b, [hl]
+ ld a, $b
+ call GetBattleVarPair
+ and b
+ ret z
+ xor a
+ ld [hl], a
+ push bc
+ call UpdateOpponentInParty
+ pop bc
+ ld a, $9
+ call GetBattleVarPair
+ and [hl]
+ res 0, [hl]
+ ld a, $5
+ call GetBattleVarPair
+ and [hl]
+ res 0, [hl]
+ ld a, b
+ cp $7f
+ jr nz, .asm_3de26
+ ld a, $7
+ call GetBattleVarPair
+ res 7, [hl]
+
+.asm_3de26
+ ld hl, $65fd
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3de31
+ ld hl, $65d7
+
+.asm_3de31
+ call Function3c8e4
+ ld a, $d
+ rst FarCall
+ call Function3c8e4
+ call Function3ddc8
+ call $5dac
+ ld a, $1
+ and a
+ ret
+; 3de44
+
+.Statuses ; 3de44
+ db HELD_HEAL_POISON, 1 << PSN
+ db HELD_HEAL_FREEZE, 1 << FRZ
+ db HELD_HEAL_BURN, 1 << BRN
+ db HELD_HEAL_SLEEP, SLP
+ db HELD_HEAL_PARALYZE, 1 << PAR
+ db HELD_HEAL_STATUS, 1 << PSN | 1 << FRZ | 1 << BRN | SLP | 1 << PAR
+ db $ff
+; 3de51
+
+
+Function3de51: ; 3de51
+ ld a, $7
+ call CleanGetBattleVarPair
+ bit 7, a
+ ret z
+ callab GetOpponentItem
+ ld a, b
+ cp $10
+ jr z, .asm_3de67
+ cp $f
+ ret nz
+
+.asm_3de67
+ ld a, [hl]
+ ld [$d265], a
+ ld a, $7
+ call GetBattleVarPair
+ res 7, [hl]
+ call GetItemName
+ call Function3ddc8
+ ld hl, BattleText_0x80dab
+ call FarBattleTextBox
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .asm_3de90
+ call Function3df1f
+ xor a
+ ld [bc], a
+ ld a, [IsInBattle]
+ dec a
+ ret z
+ ld [hl], $0
+ ret
+
+.asm_3de90
+ call Function3df12
+ xor a
+ ld [bc], a
+ ld [hl], a
+ ret
+; 3de97
+
+Function3de97: ; 3de97
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3dea3
+ call Function3dea9
+ jp Function3deb1
+
+.asm_3dea3
+ call Function3deb1
+ jp Function3dea9
+; 3dea9
+
+Function3dea9: ; 3dea9
+ call Function3df12
+ ld a, $0
+ jp $5eb6
+; 3deb1
+
+Function3deb1: ; 3deb1
+ call Function3df1f
+ ld a, $1
+ ld [hBattleTurn], a
+ ld d, h
+ ld e, l
+ push de
+ push bc
+ ld a, [bc]
+ ld b, a
+ callab GetItem
+ ld hl, .data_3defc
+.asm_3dec7
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_3def9
+ inc hl
+ inc hl
+ cp b
+ jr nz, .asm_3dec7
+ pop bc
+ ld a, [bc]
+ ld [$d265], a
+ push bc
+ dec hl
+ dec hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, $d
+ rst FarCall
+ pop bc
+ pop de
+ ld a, [FailedMessage]
+ and a
+ ret nz
+ xor a
+ ld [bc], a
+ ld [de], a
+ call GetItemName
+ ld hl, BattleText_0x80bde
+ call FarBattleTextBox
+ callab BattleCommand8c
+ ret
+
+.asm_3def9
+ pop bc
+ pop de
+ ret
+; 3defc
+
+.data_3defc
+ dbw $1f, $61ac
+ dbw $20, $61b0
+ dbw $21, $61b4
+ dbw $22, $61b8
+ dbw $23, $61bc
+ dbw $24, $61c0
+ dbw $25, $61c4
+ db $ff
+; 3df12
+
+
+Function3df12: ; 3df12
+ ld hl, PartyMon1Item
+ ld a, [CurBattleMon]
+ call GetPartyLocation
+ ld bc, BattleMonItem
+ ret
+; 3df1f
+
+Function3df1f: ; 3df1f
+ ld hl, OTPartyMon1Item
+ ld a, [CurOTMon]
+ call GetPartyLocation
+ ld bc, EnemyMonItem
+ ret
+; 3df2c
+
+Function3df2c: ; 3df2c
+ push hl
+ push de
+ push bc
+ call DrawPlayerHUD
+ ld hl, PlayerHPPal
+ call SetHPPal
+ call CheckDanger
+ call Function3e043
+ ld hl, EnemyHPPal
+ call SetHPPal
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3df48
+
+
+
+Function3df48: ; 3df48
+ push hl
+ push de
+ push bc
+ call DrawPlayerHUD
+ call UpdatePlayerHPPal
+ call CheckDanger
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3df58
+
+DrawPlayerHUD: ; 3df58
+ xor a
+ ld [hBGMapMode], a
+
+; Clear the area
+ hlcoord 9, 7
+ ld bc, $050b
+ call ClearBox
+
+ callba DrawPlayerExpBar
+
+ hlcoord 18, 9
+ ld [hl], $73 ; vertical bar
+ call PrintPlayerHUD
+
+; HP bar
+ hlcoord 10, 9
+ ld b, OTPARTYMON
+ xor a
+ ld [MonType], a
+ ld a, PREDEF_DRAW_PLAYER_HP
+ call Predef
+
+; Exp bar
+ push de
+ ld a, [CurBattleMon]
+ ld hl, PartyMon1Exp + 2
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+
+ hlcoord 10, 11
+ ld a, [TempMonLevel]
+ ld b, a
+ call FillInExpBar
+ pop de
+ ret
+; 3df98
+
+UpdatePlayerHPPal: ; 3df98
+ ld hl, PlayerHPPal
+ jp Function3e12e
+; 3df9e
+
+CheckDanger: ; 3df9e
+ ld hl, BattleMonHP
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_3dfb2
+ ld a, [$c6fd]
+ and a
+ jr nz, .asm_3dfbe
+ ld a, [PlayerHPPal]
+ cp $2
+ jr z, .asm_3dfb9
+
+.asm_3dfb2
+ ld hl, Danger
+ res 7, [hl]
+ jr .asm_3dfbe
+
+.asm_3dfb9
+ ld hl, Danger
+ set 7, [hl]
+
+.asm_3dfbe
+ ret
+; 3dfbf
+
+PrintPlayerHUD: ; 3dfbf
+ ld de, BattleMonNick
+ hlcoord 10, 7
+ call Function3e138
+ call PlaceString
+
+ push bc
+
+ ld a, [CurBattleMon]
+ ld hl, PartyMon1DVs
+ call GetPartyLocation
+ ld de, TempMonDVs
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ld hl, BattleMonLevel
+ ld de, TempMonLevel
+ ld bc, $0011
+ call CopyBytes
+ ld a, [CurBattleMon]
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+
+ pop hl
+ dec hl
+
+ ld a, $3
+ ld [MonType], a
+ callab GetGender
+ ld a, $7f
+ jr c, .asm_3e013
+ ld a, $ef
+ jr nz, .asm_3e013
+ ld a, $f5
+
+.asm_3e013
+ ld hl, $c551
+ ld [hl], a
+ ld hl, $c54e
+ push af
+ push hl
+ ld de, BattleMonStatus
+ ld a, $21
+ call Predef
+ pop hl
+ pop bc
+ ret nz
+ ld a, b
+ cp $7f
+ jr nz, .asm_3e02d
+ dec hl
+
+.asm_3e02d
+ ld a, [BattleMonLevel]
+ ld [TempMonLevel], a
+ jp PrintLevel
+; 3e036
+
+Function3e036: ; 3e036
+ push hl
+ push de
+ push bc
+ call Function3e043
+ call Function3e127
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3e043
+
+Function3e043: ; 3e043
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c4a1
+ ld bc, $040b
+ call ClearBox
+ ld a, $b
+ ld hl, $40c5
+ rst FarCall
+ ld a, [TempEnemyMonSpecies]
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ call GetBaseData
+ ld de, EnemyMonNick
+ ld hl, $c4a1
+ call Function3e138
+ call PlaceString
+ ld h, b
+ ld l, c
+ dec hl
+ ld hl, EnemyMonAtkDefDV
+ ld de, TempMonDVs
+ ld a, [EnemySubStatus5]
+ bit 3, a
+ jr z, .asm_3e080
+ ld hl, $c6f2
+
+.asm_3e080
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ld a, $3
+ ld [MonType], a
+ callab GetGender
+ ld a, $7f
+ jr c, .asm_3e09a
+ ld a, $ef
+ jr nz, .asm_3e09a
+ ld a, $f5
+
+.asm_3e09a
+ ld hl, $c4bd
+ ld [hl], a
+ ld hl, $c4ba
+ push af
+ push hl
+ ld de, EnemyMonStatus
+ ld a, $21
+ call Predef
+ pop hl
+ pop bc
+ jr nz, .asm_3e0be
+ ld a, b
+ cp $7f
+ jr nz, .asm_3e0b5
+ dec hl
+
+.asm_3e0b5
+ ld a, [EnemyMonLevel]
+ ld [TempMonLevel], a
+ call PrintLevel
+
+.asm_3e0be
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ ld [$ffb5], a
+ ld a, [hld]
+ ld [$ffb6], a
+ or [hl]
+ jr nz, .asm_3e0d1
+ ld c, a
+ ld e, a
+ ld d, $6
+ jp $611a
+
+.asm_3e0d1
+ xor a
+ ld [hMultiplicand], a
+ ld a, $30
+ ld [hMultiplier], a
+ call Multiply
+ ld hl, EnemyMonMaxHPHi
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld [hMultiplier], a
+ ld a, b
+ and a
+ jr z, .asm_3e105
+ ld a, [hMultiplier]
+ srl b
+ rr a
+ srl b
+ rr a
+ ld [hMultiplier], a
+ ld a, [$ffb5]
+ ld b, a
+ srl b
+ ld a, [$ffb6]
+ rr a
+ srl b
+ rr a
+ ld [$ffb6], a
+ ld a, b
+ ld [$ffb5], a
+
+.asm_3e105
+ ld a, [$ffb5]
+ ld [hProduct], a
+ ld a, [$ffb6]
+ ld [hMultiplicand], a
+ ld a, $2
+ ld b, a
+ call Divide
+ ld a, [$ffb6]
+ ld e, a
+ ld a, $6
+ ld d, a
+ ld c, a
+ xor a
+ ld [$d10a], a
+ ld hl, $c4ca
+ ld b, $0
+ call DrawHPBar
+ ret
+; 3e127
+
+Function3e127: ; 3e127
+ ld hl, EnemyHPPal
+ call Function3e12e
+ ret
+; 3e12e
+
+Function3e12e: ; 3e12e
+ ld b, [hl]
+ call SetHPPal
+ ld a, [hl]
+ cp b
+ ret z
+ jp Function3ee27
+; 3e138
+
+Function3e138: ; 3e138
+ ret
+; 3e139
+
+Function3e139: ; 3e139
+ xor a
+ ld [hBGMapMode], a
+ call Function30bf
+ ld a, [BattleType]
+ cp $2
+ jr z, .asm_3e156
+ cp $3
+ jr z, .asm_3e156
+ call EmptyBattleTextBox
+ call UpdateBattleHuds
+ call EmptyBattleTextBox
+ call Function309d
+
+.asm_3e156
+ ld a, [BattleType]
+ cp $6
+ jr nz, .asm_3e165
+ ld a, $9
+ ld hl, $4f13
+ rst FarCall
+ jr .asm_3e175
+
+.asm_3e165
+ ld a, [InputType]
+ or a
+ jr z, .asm_3e171
+ ld a, $77
+ ld hl, $6294
+ rst FarCall
+
+.asm_3e171
+ call Function3e19b
+ ret c
+
+.asm_3e175
+ ld a, $1
+ ld [hBGMapMode], a
+ ld a, [$d0d2]
+ cp $1
+ jp z, Function3e192
+ cp $3
+ jp z, Function3e1c7
+ cp $2
+ jp z, Function3e28d
+ cp $4
+ jp z, Function3e489
+ jr .asm_3e156
+; 3e192
+
+Function3e192: ; 3e192
+ xor a
+ ld [$d267], a
+ call Function30b4
+ and a
+ ret
+; 3e19b
+
+Function3e19b: ; 3e19b
+ call Function3d2f1
+ jr z, .asm_3e1a8
+ callba Function24ef2
+ and a
+ ret
+
+.asm_3e1a8
+ ld a, $40
+ ld hl, $4b12
+ rst FarCall
+ ld a, [$cd2b]
+ and a
+ ret z
+ ld hl, $cd2a
+ bit 4, [hl]
+ jr nz, .asm_3e1c5
+ ld hl, $5863
+ call FarBattleTextBox
+ ld c, $3c
+ call DelayFrames
+
+.asm_3e1c5
+ scf
+ ret
+; 3e1c7
+
+Function3e1c7: ; 3e1c7
+ ld a, [InLinkBattle]
+ and a
+ jp nz, Function3e22b
+ ld a, [$cfc0]
+ and a
+ jp nz, Function3e22b
+ call Function1d6e
+ ld a, [BattleType]
+ cp $3
+ jr z, .asm_3e1f1
+ cp $6
+ jr z, .asm_3e201
+ ld a, $4
+ ld hl, $4493
+ rst FarCall
+ ld a, [$d0ec]
+ and a
+ jr z, .asm_3e20d
+ jr .asm_3e209
+
+.asm_3e1f1
+ ld a, $4
+ ld hl, $47bb
+ rst FarCall
+ ld a, $5
+ ld [CurItem], a
+ call DoItemEffect
+ jr .asm_3e209
+
+.asm_3e201
+ ld a, $b1
+ ld [CurItem], a
+ call DoItemEffect
+
+.asm_3e209
+ call Function3e234
+ ret
+
+.asm_3e20d
+ call ClearPalettes
+ call DelayFrame
+ call Function3ed9f
+ call Function3f43d
+ call Function3f47c
+ call Function1c07
+ call WaitBGMap
+ call Function3ee27
+ call Function309d
+ jp Function3e139
+; 3e22b
+
+Function3e22b: ; 3e22b
+ ld hl, BattleText_0x80bf3
+ call FarBattleTextBox
+ jp Function3e139
+; 3e234
+
+Function3e234: ; 3e234
+ ld a, [$c64e]
+ and a
+ jr nz, .asm_3e279
+ callab CheckItemPocket
+ ld a, [$d142]
+ cp $3
+ jr z, .asm_3e24a
+ call WhiteBGMap
+
+.asm_3e24a
+ xor a
+ ld [hBGMapMode], a
+ call Function3ed9f
+ call ClearSprites
+ ld a, [BattleType]
+ cp $3
+ jr z, .asm_3e25d
+ call Function3f43d
+
+.asm_3e25d
+ call Function3f47c
+ ld a, $1
+ ld [$cfa9], a
+ call Function1c07
+ call Function3df2c
+ call WaitBGMap
+ call Function309d
+ call Function1fbf
+ call Function3ee27
+ and a
+ ret
+
+.asm_3e279
+ xor a
+ ld [$c64e], a
+ ld a, [$d0ee]
+ and $c0
+ ld [$d0ee], a
+ call Function1fbf
+ call Function32f9
+ scf
+ ret
+; 3e28d
+
+Function3e28d: ; 3e28d
+ call Function1d6e
+ call Function1c07
+ call Function1d6e
+ call WhiteBGMap
+.asm_3e299
+ call $52fa
+ xor a
+ ld [PartyMenuActionText], a
+ call Function3d313
+ call Function3d329
+ jr c, .asm_3e2da
+.asm_3e2a8
+ ld a, $23
+ ld hl, $6a4a
+ rst FarCall
+ call Function3e2f5
+ jr c, .asm_3e2c8
+ call Function1bee
+ ld a, [$cfa9]
+ cp $1
+ jp z, Function3e358
+ cp $2
+ jr z, .asm_3e2cf
+ cp $3
+ jr z, .asm_3e2da
+ jr .asm_3e2a8
+
+.asm_3e2c8
+ call Function3d2e0
+ jr c, .asm_3e2da
+ jr .asm_3e299
+
+.asm_3e2cf
+ call Function3e308
+ call Function3d2e0
+ jr c, .asm_3e2da
+ jp $6290
+
+.asm_3e2da
+ call ClearSprites
+ call ClearPalettes
+ call DelayFrame
+ call Function3eda6
+ call Function1c17
+ call Function309d
+ call ClearSGB
+ call Function32f9
+ jp Function3e139
+; 3e2f5
+
+Function3e2f5: ; 3e2f5
+ call Function3d2f1
+ jr z, .asm_3e301
+ ld a, $9
+ ld hl, $4e99
+ rst FarCall
+ ret
+
+.asm_3e301
+ ld a, $40
+ ld hl, $4d22
+ rst FarCall
+ ret
+; 3e308
+
+Function3e308: ; 3e308
+ call DisableLCD
+ ld hl, $9310
+ ld de, VTiles0
+ ld bc, $0110
+ call CopyBytes
+ ld hl, VTiles2
+ ld de, $8110
+ ld bc, $0310
+ call CopyBytes
+ call EnableLCD
+ call ClearSprites
+ call LowVolume
+ xor a
+ ld [MonType], a
+ ld a, $13
+ ld hl, $5c7b
+ rst FarCall
+ call MaxVolume
+ call DisableLCD
+ ld hl, VTiles0
+ ld de, $9310
+ ld bc, $0110
+ call CopyBytes
+ ld hl, $8110
+ ld de, VTiles2
+ ld bc, $0310
+ call CopyBytes
+ call EnableLCD
+ ret
+; 3e358
+
+
+Function3e358: ; 3e358
+ ld a, [CurBattleMon]
+ ld d, a
+ ld a, [CurPartyMon]
+ cp d
+ jr nz, .asm_3e36b
+ ld hl, BattleText_0x80c0d
+ call FarBattleTextBox
+ jp $6299
+
+.asm_3e36b
+ ld a, [$c730]
+ and a
+ jr nz, .asm_3e378
+ ld a, [EnemySubStatus5]
+ bit 7, a
+ jr z, .asm_3e381
+
+.asm_3e378
+ ld hl, BattleText_0x80c22
+ call FarBattleTextBox
+ jp $6299
+
+.asm_3e381
+ call Function3d887
+ jp z, $6299
+ ld a, [CurBattleMon]
+ ld [$c71a], a
+ ld a, $2
+ ld [$d0ec], a
+ call ClearPalettes
+ call DelayFrame
+ call ClearSprites
+ call Function3eda6
+ call Function1c17
+ call ClearSGB
+ call Function32f9
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ ; fallthrough
+; 3e3ad
+
+Function3e3ad: ; 3e3ad
+ ld a, $1
+ ld [$c710], a
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3e3c1
+ call Function1d6e
+ call Function3e8e4
+ call Function1c17
+
+.asm_3e3c1
+ call Function3e7c1
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .asm_3e3cf
+
+.asm_3e3ca
+ call Function3e40b
+ and a
+ ret
+
+.asm_3e3cf
+ ld a, [$d430]
+ cp $e
+ jp z, .asm_3e3ca
+ cp $d
+ jp z, .asm_3e3ca
+ cp $4
+ jp c, .asm_3e3ca
+ cp $f
+ jr nz, .asm_3e3e9
+ call Function3c0e5
+ ret
+
+.asm_3e3e9
+ ld a, [$ffcb]
+ cp $1
+ jr z, .asm_3e3f7
+ call Function3e40b
+ call Function3e3ff
+ and a
+ ret
+
+.asm_3e3f7
+ call Function3e3ff
+ call Function3e40b
+ and a
+ ret
+; 3e3ff
+
+Function3e3ff: ; 3e3ff
+ ld hl, $446c
+ ld a, $e
+ rst FarCall
+ call SetEnemyTurn
+ jp Function3dc23
+; 3e40b
+
+Function3e40b: ; 3e40b
+ call Function3f2f4
+ ld c, $32
+ call DelayFrames
+ ld hl, PlayerSubStatus4
+ res 6, [hl]
+ call SetEnemyTurn
+ call Function3dc5b
+ jr c, .asm_3e423
+ call Function3dce6
+
+.asm_3e423
+ ld hl, $c535
+ ld bc, $050b
+ call ClearBox
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ call $5581
+ call Function3da0d
+ call Function3dab1
+ call Function3f26d
+ call Function3dbde
+ call Function3dc18
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ call SetPlayerTurn
+ call Function3dc23
+ ld a, $2
+ ld [$cfa9], a
+ ret
+; 3e459
+
+Function3e459: ; 3e459
+ ld c, $32
+ call DelayFrames
+ ld hl, $c535
+ ld bc, $050b
+ call ClearBox
+ ld a, [CurPartyMon]
+ ld [CurBattleMon], a
+ call $5581
+ call Function3da0d
+ xor a
+ ld [$d265], a
+ call Function3ecab
+ call Function3db5f
+ call EmptyBattleTextBox
+ call Function309d
+ call SetPlayerTurn
+ jp Function3dc23
+; 3e489
+
+
+
+Function3e489: ; 3e489
+ call Function30b4
+ ld a, $3
+ ld [$cfa9], a
+ ld hl, BattleMonSpd
+ ld de, EnemyMonSpd
+ call Function3d8b3
+ ld a, $0
+ ld [$d266], a
+ ret c
+ ld a, [$d0ec]
+ and a
+ ret nz
+ jp Function3e139
+; 3e4a8
+
+
+
+Function3e4a8: ; 3e4a8
+ ld a, [BattleMonItem]
+ ld b, a
+ callab GetItem
+ ld a, b
+ cp $4c
+ ret nz
+ ld a, $1
+ ld [$c73d], a
+ ret
+; 3e4bc
+
+Function3e4bc: ; 3e4bc
+ call Function3d2f1
+ jr nz, .asm_3e4c8
+ ld a, $40
+ ld hl, $4b9f
+ rst FarCall
+ ret
+
+.asm_3e4c8
+ ld hl, EnemyMonMove1
+ ld a, [$d235]
+ dec a
+ jr z, .asm_3e4e2
+ dec a
+ jr z, .asm_3e4dd
+ call Function3e786
+ ret z
+ ld hl, BattleMonMove1
+ jr .asm_3e4e2
+
+.asm_3e4dd
+ ld a, $2
+ call GetPartyParamLocation
+
+.asm_3e4e2
+ ld de, $d25e
+ ld bc, $0004
+ call CopyBytes
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c594
+ ld b, $4
+ ld c, $e
+ ld a, [$d235]
+ cp $2
+ jr nz, .asm_3e503
+ ld hl, $c544
+ ld b, $4
+ ld c, $e
+
+.asm_3e503
+ call TextBox
+ ld hl, $c5aa
+ ld a, [$d235]
+ cp $2
+ jr nz, .asm_3e513
+ ld hl, $c55a
+
+.asm_3e513
+ ld a, $14
+ ld [Buffer1], a
+ ld a, $20
+ call Predef
+ ld b, $5
+ ld a, [$d235]
+ cp $2
+ ld a, $d
+ jr nz, .asm_3e52c
+ ld b, $5
+ ld a, $9
+
+.asm_3e52c
+ ld [$cfa1], a
+ ld a, b
+ ld [$cfa2], a
+ ld a, [$d235]
+ cp $1
+ jr z, .asm_3e53e
+ ld a, [CurMoveNum]
+ inc a
+
+.asm_3e53e
+ ld [$cfa9], a
+ ld a, $1
+ ld [$cfaa], a
+ ld a, [$d0eb]
+ inc a
+ ld [$cfa3], a
+ ld a, $1
+ ld [$cfa4], a
+ ld c, $2c
+ ld a, [$d235]
+ dec a
+ ld b, $c1
+ jr z, .asm_3e569
+ dec a
+ ld b, $c3
+ jr z, .asm_3e569
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .asm_3e569
+ ld b, $c7
+
+.asm_3e569
+ ld a, b
+ ld [$cfa8], a
+ ld a, c
+ ld [$cfa5], a
+ xor a
+ ld [$cfa6], a
+ ld a, $10
+ ld [$cfa7], a
+ ld a, [$d235]
+ and a
+ jr z, .asm_3e58e
+ dec a
+ jr nz, .asm_3e5a3
+ ld hl, $c5c3
+ ld de, .string_3e61c
+ call PlaceString
+ jr .asm_3e5a3
+
+.asm_3e58e
+ call MoveInfoBox
+ ld a, [$d0e3]
+ and a
+ jr z, .asm_3e5a3
+ ld hl, $c5a9
+ ld bc, $0014
+ dec a
+ call AddNTimes
+ ld [hl], $ec
+
+.asm_3e5a3
+ ld a, $1
+ ld [hBGMapMode], a
+ call Function1bd3
+ bit 6, a
+ jp nz, Function3e61d
+ bit 7, a
+ jp nz, Function3e62e
+ bit 2, a
+ jp nz, Function3e643
+ bit 1, a
+ push af
+ xor a
+ ld [$d0e3], a
+ ld a, [$cfa9]
+ dec a
+ ld [$cfa9], a
+ ld b, a
+ ld a, [$d235]
+ dec a
+ jr nz, .asm_3e5d0
+ pop af
+ ret
+
+.asm_3e5d0
+ dec a
+ ld a, b
+ ld [CurMoveNum], a
+ jr nz, .asm_3e5d9
+ pop af
+ ret
+
+.asm_3e5d9
+ pop af
+ ret nz
+ ld hl, BattleMonPPMove1
+ ld a, [$cfa9]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ jr z, .asm_3e610
+ ld a, [PlayerDisableCount]
+ swap a
+ and $f
+ dec a
+ cp c
+ jr z, .asm_3e60b
+ ld a, [$c6e1]
+ and a
+ jr nz, .asm_3e606
+ ld a, [$cfa9]
+ ld hl, BattleMonMove1
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+
+.asm_3e606
+ ld [CurPlayerMove], a
+ xor a
+ ret
+
+.asm_3e60b
+ ld hl, BattleText_0x80c5b
+ jr .asm_3e613
+
+.asm_3e610
+ ld hl, Function3cc39
+
+.asm_3e613
+ call FarBattleTextBox
+ call Function30b4
+ jp Function3e4bc
+; 3e61c
+
+.string_3e61c ; 3e61c
+ db "@"
+; 3e61d
+
+
+Function3e61d: ; 3e61d
+ ld a, [$cfa9]
+ and a
+ jp nz, $657a
+ ld a, [$d0eb]
+ inc a
+ ld [$cfa9], a
+ jp $657a
+; 3e62e
+
+Function3e62e: ; 3e62e
+ ld a, [$cfa9]
+ ld b, a
+ ld a, [$d0eb]
+ inc a
+ inc a
+ cp b
+ jp nz, $657a
+ ld a, $1
+ ld [$cfa9], a
+ jp $657a
+; 3e643
+
+Function3e643: ; 3e643
+ ld a, [$d0e3]
+ and a
+ jr z, .asm_3e6bf
+ ld hl, BattleMonMove1
+ call $66a5
+ ld hl, BattleMonPPMove1
+ call $66a5
+ ld hl, PlayerDisableCount
+ ld a, [hl]
+ swap a
+ and $f
+ ld b, a
+ ld a, [$cfa9]
+ cp b
+ jr nz, .asm_3e671
+ ld a, [hl]
+ and $f
+ ld b, a
+ ld a, [$d0e3]
+ swap a
+ add b
+ ld [hl], a
+ jr .asm_3e682
+
+.asm_3e671
+ ld a, [$d0e3]
+ cp b
+ jr nz, .asm_3e682
+ ld a, [hl]
+ and $f
+ ld b, a
+ ld a, [$cfa9]
+ swap a
+ add b
+ ld [hl], a
+
+.asm_3e682
+ ld a, [PlayerSubStatus5]
+ bit 3, a
+ jr nz, .asm_3e69e
+ ld hl, PartyMon1Move1
+ ld a, [CurBattleMon]
+ call GetPartyLocation
+ push hl
+ call $66a5
+ pop hl
+ ld bc, $0015
+ add hl, bc
+ call $66a5
+
+.asm_3e69e
+ xor a
+ ld [$d0e3], a
+ jp Function3e4bc
+
+ push hl
+ ld a, [$d0e3]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [$cfa9]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ ld b, [hl]
+ ld [hl], a
+ ld a, b
+ ld [de], a
+ ret
+
+.asm_3e6bf
+ ld a, [$cfa9]
+ ld [$d0e3], a
+ jp Function3e4bc
+; 3e6c8
+
+MoveInfoBox: ; 3e6c8
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c540
+ ld b, $3
+ ld c, $9
+ call TextBox
+ call MobileTextBorder
+ ld a, [PlayerDisableCount]
+ and a
+ jr z, .asm_3e6f4
+ swap a
+ and $f
+ ld b, a
+ ld a, [$cfa9]
+ cp b
+ jr nz, .asm_3e6f4
+ ld hl, $c569
+ ld de, .Disabled
+ call PlaceString
+ jr .asm_3e74e
+
+.asm_3e6f4
+ ld hl, $cfa9
+ dec [hl]
+ call SetPlayerTurn
+ ld hl, BattleMonMove1
+ ld a, [$cfa9]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [CurPlayerMove], a
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ ld a, $4
+ ld [MonType], a
+ callab Functionf8ec
+ ld hl, $cfa9
+ ld c, [hl]
+ inc [hl]
+ ld b, $0
+ ld hl, BattleMonPPMove1
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld [StringBuffer1], a
+ call Function3e75f
+ ld hl, $c555
+ ld de, .Type
+ call PlaceString
+ ld hl, $c583
+ ld [hl], $f3
+ callab UpdateMoveData
+ ld a, [PlayerMoveAnimation]
+ ld b, a
+ ld hl, $c56a
+ ld a, $2a
+ call Predef
+
+.asm_3e74e
+ ret
+; 3e74f
+
+.Disabled
+ db "Disabled!@"
+.Type
+ db "TYPE/@"
+; 3e75f
+
+
+Function3e75f: ; 3e75f
+ ld hl, $c581
+ ld a, [InLinkBattle]
+ cp $4
+ jr c, .asm_3e76c
+ ld hl, $c581
+
+.asm_3e76c
+ push hl
+ ld de, StringBuffer1
+ ld bc, $0102
+ call PrintNum
+ pop hl
+ inc hl
+ inc hl
+ ld [hl], $f3
+ inc hl
+ ld de, $d265
+ ld bc, $0102
+ call PrintNum
+ ret
+; 3e786
+
+Function3e786: ; 3e786
+ ld a, $a5
+ ld [CurPlayerMove], a
+ ld a, [PlayerDisableCount]
+ and a
+ ld hl, BattleMonPPMove1
+ jr nz, .asm_3e79f
+ ld a, [hli]
+ or [hl]
+ inc hl
+ or [hl]
+ inc hl
+ or [hl]
+ and $3f
+ ret nz
+ jr .asm_3e7b4
+
+.asm_3e79f
+ swap a
+ and $f
+ ld b, a
+ ld d, $5
+ xor a
+.asm_3e7a7
+ dec d
+ jr z, .asm_3e7b2
+ ld c, [hl]
+ inc hl
+ dec b
+ jr z, .asm_3e7a7
+ or c
+ jr .asm_3e7a7
+
+.asm_3e7b2
+ and a
+ ret nz
+
+.asm_3e7b4
+ ld hl, BattleText_0x80c72
+ call FarBattleTextBox
+ ld c, $3c
+ call DelayFrames
+ xor a
+ ret
+; 3e7c1
+
+
+
+Function3e7c1: ; 3e7c1
+ ld a, [$c711]
+ and a
+ ret nz
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3e817
+ call EmptyBattleTextBox
+ call Function309d
+ ld a, [$d0ec]
+ and a
+ call z, Function3e8e4
+ call Function30b4
+ ld a, [$d430]
+ cp $e
+ jp z, $68bd
+ cp $d
+ jp z, $682c
+ cp $4
+ jp nc, Function3e8c1
+ ld [CurEnemyMoveNum], a
+ ld c, a
+ ld a, [EnemySubStatus1]
+ bit 6, a
+ jp nz, $6882
+ ld a, [EnemySubStatus3]
+ and $13
+ jp nz, $6882
+ ld hl, EnemySubStatus5
+ bit 4, [hl]
+ ld a, [LastEnemyMove]
+ jp nz, $687f
+ ld hl, EnemyMonMove1
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ jp $687f
+
+.asm_3e817
+ ld hl, EnemySubStatus5
+ bit 4, [hl]
+ jr z, .asm_3e824
+ ld a, [LastEnemyMove]
+ jp $687f
+
+.asm_3e824
+ call Function3e8d1
+ jp nz, Function3e8c1
+ jr .asm_3e830
+
+ ld a, $ff
+ jr .asm_3e87f
+
+.asm_3e830
+ ld hl, EnemyMonMove1
+ ld de, EnemyMonPPMove1
+ ld b, $4
+.asm_3e838
+ ld a, [hl]
+ and a
+ jp z, $68bd
+ ld a, [EnemyDisabledMove]
+ cp [hl]
+ jr z, .asm_3e848
+ ld a, [de]
+ and $3f
+ jr nz, .asm_3e84f
+
+.asm_3e848
+ inc hl
+ inc de
+ dec b
+ jr nz, .asm_3e838
+ jr .asm_3e8bd
+
+.asm_3e84f
+ ld a, [IsInBattle]
+ dec a
+ jr nz, .asm_3e882
+.asm_3e855
+ ld hl, EnemyMonMove1
+ call FarBattleRNG
+ and $3
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [EnemyDisableCount]
+ swap a
+ and $f
+ dec a
+ cp c
+ jr z, .asm_3e855
+ ld a, [hl]
+ and a
+ jr z, .asm_3e855
+ ld hl, EnemyMonPPMove1
+ add hl, bc
+ ld b, a
+ ld a, [hl]
+ and $3f
+ jr z, .asm_3e855
+ ld a, c
+ ld [CurEnemyMoveNum], a
+ ld a, b
+
+.asm_3e87f
+ ld [CurEnemyMove], a
+
+.asm_3e882
+ call SetEnemyTurn
+ callab UpdateMoveData
+ call Function3e8d1
+ jr nz, .asm_3e894
+ xor a
+ ld [$c733], a
+
+.asm_3e894
+ ld a, [EnemyMoveEffect]
+ cp $77
+ jr z, .asm_3e89f
+ xor a
+ ld [EnemyFuryCutterCount], a
+
+.asm_3e89f
+ ld a, [EnemyMoveEffect]
+ cp $51
+ jr z, .asm_3e8af
+ ld hl, EnemySubStatus4
+ res 6, [hl]
+ xor a
+ ld [$c72c], a
+
+.asm_3e8af
+ ld a, [EnemyMoveEffect]
+ cp $6f
+ ret z
+ cp $74
+ ret z
+ xor a
+ ld [$c681], a
+ ret
+
+.asm_3e8bd
+ ld a, $a5
+ jr .asm_3e87f
+; 3e8c1
+
+Function3e8c1: ; 3e8c1
+ xor a
+ ld [EnemyFuryCutterCount], a
+ ld [$c681], a
+ ld [$c72c], a
+ ld hl, EnemySubStatus4
+ res 6, [hl]
+ ret
+; 3e8d1
+
+Function3e8d1: ; 3e8d1
+ ld a, [EnemySubStatus4]
+ and $20
+ ret nz
+ ld hl, EnemySubStatus3
+ ld a, [hl]
+ and $13
+ ret nz
+ ld hl, EnemySubStatus1
+ bit 6, [hl]
+ ret
+; 3e8e4
+
+Function3e8e4: ; 3e8e4
+ ld a, $40
+ ld hl, $4a09
+ rst FarCall
+ ret
+; 3e8eb
+
+
LoadEnemyMon: ; 3e8eb
; Initialize enemy monster parameters
; To do this we pull the species from TempEnemyMonSpecies
@@ -12117,11 +43835,11 @@
; We don't need to be here if we're in a link battle
ld a, [InLinkBattle]
and a
- jp nz, $5abd
+ jp nz, Function3dabd
ld a, [$cfc0] ; ????
bit 0, a
- jp nz, $5abd
+ jp nz, Function3dabd
; Make sure everything knows what species we're working with
ld a, [TempEnemyMonSpecies]
@@ -12304,7 +44022,7 @@
; Get letter based on DVs
ld hl, EnemyMonDVs
- ld a, PREDEF_GETUNOWNLETTER
+ ld a, PREDEF_GET_UNOWN_LETTER
call Predef
; Can't use any letters that haven't been unlocked
; If combined with forced shiny battletype, causes an infinite loop
@@ -12369,7 +44087,7 @@
jr c, .Happiness
; Floor at length 1024
ld a, [MagikarpLength]
- cp a, $04 ; $400 = 1024
+ cp a, 1024 >> 8
jr c, .GenerateDVs ; try again
@@ -12400,7 +44118,7 @@
jr z, .TreeMon
; ????
- ld a, [$c671]
+ ld a, [EnemySubStatus5]
bit 3, a
jp nz, .Moves
@@ -12504,7 +44222,7 @@
ld [hli], a
ld [hl], a
; Make sure the predef knows this isn't a partymon
- ld [$d1ea], a
+ ld [MagikarpLength], a
; Fill moves based on level
ld a, PREDEF_FILLMOVES
call Predef
@@ -12576,7 +44294,7 @@
call Predef
ld hl, EnemyMonStats
- ld de, $c6c1
+ ld de, EnemyStats
ld bc, EnemyMonStatsEnd - EnemyMonStats
call CopyBytes
@@ -12714,10 +44432,297 @@
; 3ebc7
-INCBIN "baserom.gbc", $3ebc7, $3ed4a - $3ebc7
+Function3ebc7: ; 3ebc7
+ push bc
+ ld a, [BattleMonLevel]
+ ld b, a
+ ld a, [EnemyMonLevel]
+ ld [BattleMonLevel], a
+ ld a, b
+ ld [EnemyMonLevel], a
+ pop bc
+ ret
+; 3ebd8
+Function3ebd8: ; 3ebd8
+ xor a
+ ld [TempEnemyMonSpecies], a
+ call Function3ee27
+ ld a, [OtherTrainerClass]
+ ld [TrainerClass], a
+ ld de, VTiles2
+ ld hl, $520d
+ ld a, $14
+ rst FarCall
+ ld hl, $c4b3
+ ld c, $0
+.asm_3ebf3
+ inc c
+ ld a, c
+ cp $7
+ ret z
+ xor a
+ ld [hBGMapMode], a
+ ld [hBGMapThird], a
+ ld d, $0
+ push bc
+ push hl
+.asm_3ec01
+ call Function3ec1a
+ inc hl
+ ld a, $7
+ add d
+ ld d, a
+ dec c
+ jr nz, .asm_3ec01
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, $4
+ call DelayFrames
+ pop hl
+ pop bc
+ dec hl
+ jr .asm_3ebf3
+; 3ec1a
-BadgeStatBoosts: ; 3ed4a
+Function3ec1a: ; 3ec1a
+ push hl
+ push de
+ push bc
+ ld e, $7
+.asm_3ec1f
+ ld [hl], d
+ ld bc, $0014
+ add hl, bc
+ inc d
+ dec e
+ jr nz, .asm_3ec1f
+ pop bc
+ pop de
+ pop hl
+ ret
+; 3ec2c
+
+
+Function3ec2c: ; 3ec2c
+ ld a, 1
+ jr Function3ec31
+; 3ec30
+
+Function3ec30: ; 3ec30
+ xor a
+; 3ec31
+
+Function3ec31: ; 3ec31
+ ld [hBattleTurn], a
+ call Function3ec39
+ jp Function3ec76
+; 3ec39
+
+Function3ec39: ; 3ec39
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3ec5a
+ ld a, [BattleMonStatus]
+ and $40
+ ret z
+ ld hl, $c645
+ ld a, [hld]
+ ld b, a
+ ld a, [hl]
+ srl a
+ rr b
+ srl a
+ rr b
+ ld [hli], a
+ or b
+ jr nz, .asm_3ec58
+ ld b, $1
+
+.asm_3ec58
+ ld [hl], b
+ ret
+
+.asm_3ec5a
+ ld a, [EnemyMonStatus]
+ and $40
+ ret z
+ ld hl, $d21f
+ ld a, [hld]
+ ld b, a
+ ld a, [hl]
+ srl a
+ rr b
+ srl a
+ rr b
+ ld [hli], a
+ or b
+ jr nz, .asm_3ec74
+ ld b, $1
+
+.asm_3ec74
+ ld [hl], b
+ ret
+; 3ec76
+
+Function3ec76: ; 3ec76
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_3ec93
+ ld a, [BattleMonStatus]
+ and $10
+ ret z
+ ld hl, $c641
+ ld a, [hld]
+ ld b, a
+ ld a, [hl]
+ srl a
+ rr b
+ ld [hli], a
+ or b
+ jr nz, .asm_3ec91
+ ld b, $1
+
+.asm_3ec91
+ ld [hl], b
+ ret
+
+.asm_3ec93
+ ld a, [EnemyMonStatus]
+ and $10
+ ret z
+ ld hl, $d21b
+ ld a, [hld]
+ ld b, a
+ ld a, [hl]
+ srl a
+ rr b
+ ld [hli], a
+ or b
+ jr nz, .asm_3eca9
+ ld b, $1
+
+.asm_3eca9
+ ld [hl], b
+ ret
+; 3ecab
+
+Function3ecab: ; 3ecab
+ ld c, 0
+.asm_3ecad
+ call Function3ecb7
+ inc c
+ ld a, c
+ cp 5
+ jr nz, .asm_3ecad
+ ret
+; 3ecb7
+
+Function3ecb7: ; 3ecb7
+ push bc
+ push bc
+ ld a, [$d265]
+ and a
+ ld a, c
+ ld hl, BattleMonAtk
+ ld de, PlayerStats
+ ld bc, PlayerAtkLevel
+ jr z, .asm_3ecd2
+ ld hl, EnemyMonAtk
+ ld de, EnemyStats
+ ld bc, EnemyAtkLevel
+
+.asm_3ecd2
+ add c
+ ld c, a
+ jr nc, .asm_3ecd7
+ inc b
+.asm_3ecd7
+ ld a, [bc]
+ pop bc
+ ld b, a
+ push bc
+ sla c
+ ld b, 0
+ add hl, bc
+ ld a, c
+ add e
+ ld e, a
+ jr nc, .asm_3ece6
+ inc d
+.asm_3ece6
+ pop bc
+ push hl
+ ld hl, .StatLevelMultipliers
+ dec b
+ sla b
+ ld c, b
+ ld b, 0
+ add hl, bc
+ xor a
+ ld [hMultiplicand], a
+ ld a, [de]
+ ld [$ffb5], a
+ inc de
+ ld a, [de]
+ ld [$ffb6], a
+ ld a, [hli]
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [hl]
+ ld [hMultiplier], a
+ ld b, $4
+ call Divide
+ pop hl
+
+; Cap at 999.
+ ld a, [$ffb6]
+ sub 999 % $100
+ ld a, [$ffb5]
+ sbc 999 / $100
+ jp c, .asm_3ed1e
+
+ ld a, 999 / $100
+ ld [$ffb5], a
+ ld a, 999 % $100
+ ld [$ffb6], a
+
+.asm_3ed1e
+ ld a, [$ffb5]
+ ld [hli], a
+ ld b, a
+ ld a, [$ffb6]
+ ld [hl], a
+ or b
+ jr nz, .asm_3ed29
+ inc [hl]
+
+.asm_3ed29
+ pop bc
+ ret
+; 3ed2b
+
+.StatLevelMultipliers
+; /
+ db 25, 100 ; 25%
+ db 28, 100 ; 28%
+ db 33, 100 ; 33%
+ db 40, 100 ; 40%
+ db 50, 100 ; 50%
+ db 66, 100 ; 66%
+
+ db 1, 1 ; 100%
+
+ db 15, 10 ; 150%
+ db 2, 1 ; 200%
+ db 25, 10 ; 250%
+ db 3, 1 ; 300%
+ db 35, 10 ; 350%
+ db 4, 1 ; 400%
+; 3ed45
+
+
+BadgeStatBoosts: ; 3ed45
; Raise BattleMon stats depending on which badges have been obtained.
; Every other badge boosts a stat, starting from the first.
@@ -12730,6 +44735,10 @@
; The boosted stats are in order, except PlainBadge and MineralBadge's boosts are swapped.
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+
ld a, [$cfc0]
and a
ret nz
@@ -12805,9 +44814,45 @@
; 3ed9f
-INCBIN "baserom.gbc", $3ed9f, $3edd8 - $3ed9f
+Function3ed9f: ; 3ed9f
+ ld hl, $74f2
+ ld a, $3e
+ rst FarCall
+ ret
+; 3eda6
+Function3eda6: ; 3eda6
+ ld hl, $750d
+ ld a, $3e
+ rst FarCall
+ ret
+; 3edad
+
+Function3edad: ; 3edad
+ ld de, $4ac0
+ ld hl, $96c0
+ ld bc, $3e04
+ call Get1bpp
+ ld de, $4ae0
+ ld hl, $9730
+ ld bc, $3e06
+ call Get1bpp
+ ld de, $4b10
+ ld hl, $9550
+ ld bc, $3e08
+ jp Get2bpp
+; 3edd1
+
+
+EmptyBattleTextBox: ; 3edd1
+ ld hl, .empty
+ jp BattleTextBox
+.empty
+ db "@"
+; 3edd8
+
+
BattleRNG: ; 3edd8
; If the normal RNG is used in a link battle it'll desync.
; To circumvent this a shared PRNG is used instead.
@@ -12817,8 +44862,7 @@
and a
jp z, RNG
-; The PRNG operates in streams of 8 values
-; The reasons for this are unknown
+; The PRNG operates in streams of 10 values.
; Which value are we trying to pull?
push hl
@@ -12825,7 +44869,7 @@
push bc
ld a, [LinkBattleRNCount]
ld c, a
- ld b, $0
+ ld b, 0
ld hl, LinkBattleRNs
add hl, bc
inc a
@@ -12832,31 +44876,30 @@
ld [LinkBattleRNCount], a
; If we haven't hit the end yet, we're good
- cp 9 ; Exclude last value. See the closing comment
+ cp 10 - 1 ; Exclude last value. See the closing comment
ld a, [hl]
pop bc
pop hl
ret c
-
-
+
; If we have, we have to generate new pseudorandom data
; Instead of having multiple PRNGs, ten seeds are used
push hl
push bc
push af
-
+
; Reset count to 0
xor a
ld [LinkBattleRNCount], a
ld hl, LinkBattleRNs
ld b, 10 ; number of seeds
-
+
; Generate next number in the sequence for each seed
; The algorithm takes the form *5 + 1 % 256
.loop
; get last #
ld a, [hl]
-
+
; a * 5 + 1
ld c, a
add a
@@ -12863,7 +44906,7 @@
add a
add c
inc a
-
+
; update #
ld [hli], a
dec b
@@ -12871,7 +44914,8 @@
; This has the side effect of pulling the last value first,
; then wrapping around. As a result, when we check to see if
-; we've reached the end, we have to take this into account.
+; we've reached the end, we check the one before it.
+
pop af
pop bc
pop hl
@@ -12878,8 +44922,1795 @@
ret
; 3ee0f
-INCBIN "baserom.gbc", $3ee0f, $3fa01 - $3ee0f
+Function3ee0f: ; 3ee0f
+ ld a, BATTLE_VARS_SUBSTATUS3
+ call CleanGetBattleVarPair
+ and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
+ ret nz
+; 3ee17
+
+Function3ee17: ; 3ee17
+ ld a, e
+ ld [FXAnimIDLo], a
+ ld a, d
+ ld [FXAnimIDHi], a
+ call WaitBGMap
+ ld a, $37
+ jp Predef
+; 3ee27
+
+Function3ee27: ; 3ee27
+ push af
+ push bc
+ push de
+ push hl
+ ld b, $1
+ call GetSGBLayout
+ call Function32f9
+ call DelayFrame
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+; 3ee3b
+
+
+Function3ee3b: ; 3ee3b
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+ ld a, [$cfc0]
+ bit 0, a
+ ret nz
+ call Function3f0d4
+ xor a
+ ld [CurPartyMon], a
+ ld bc, PartyMon1Species
+
+.asm_3ee50
+ ld hl, $0022
+ add hl, bc
+ ld a, [hli]
+ or [hl]
+ jp z, .asm_3f0b9
+ push bc
+ ld hl, $c664
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, $2
+ ld d, $0
+ ld a, $3
+ call Predef
+ ld a, c
+ and a
+ pop bc
+ jp z, .asm_3f0b9
+ ld hl, $000c
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, EnemyMonType2
+ push bc
+ ld c, $5
+.asm_3ee7c
+ inc hl
+ ld a, [de]
+ add [hl]
+ ld [de], a
+ jr nc, .asm_3ee89
+ dec de
+ ld a, [de]
+ inc a
+ jr z, .asm_3eea4
+ ld [de], a
+ inc de
+
+.asm_3ee89
+ push hl
+ push bc
+ ld a, $1c
+ call GetPartyParamLocation
+ ld a, [hl]
+ and a
+ pop bc
+ pop hl
+ jr z, .asm_3eea9
+ ld a, [de]
+ add [hl]
+ ld [de], a
+ jr nc, .asm_3eea9
+ dec de
+ ld a, [de]
+ inc a
+ jr z, .asm_3eea4
+ ld [de], a
+ inc de
+ jr .asm_3eea9
+
+.asm_3eea4
+ ld a, $ff
+ ld [de], a
+ inc de
+ ld [de], a
+
+.asm_3eea9
+ inc de
+ inc de
+ dec c
+ jr nz, .asm_3ee7c
+ xor a
+ ld [hMultiplicand], a
+ ld [$ffb5], a
+ ld a, [EnemyMonBaseExp]
+ ld [$ffb6], a
+ ld a, [EnemyMonLevel]
+ ld [hMultiplier], a
+ call Multiply
+ ld a, $7
+ ld [hMultiplier], a
+ ld b, $4
+ call Divide
+ pop bc
+ ld hl, $0006
+ add hl, bc
+ ld a, [PlayerID]
+ cp [hl]
+ jr nz, .asm_3eedd
+ inc hl
+ ld a, [$d47c]
+ cp [hl]
+ ld a, $0
+ jr z, .asm_3eee2
+
+.asm_3eedd
+ call Function3f106
+ ld a, $1
+
+.asm_3eee2
+ ld [$d088], a
+ ld a, [IsInBattle]
+ dec a
+ call nz, Function3f106
+ push bc
+ ld a, $1
+ call GetPartyParamLocation
+ ld a, [hl]
+ cp $7e
+ call z, Function3f106
+ ld a, [$ffb6]
+ ld [$d087], a
+ ld a, [$ffb5]
+ ld [StringBuffer2], a
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ ld hl, UnknownText_0x3f11b
+ call BattleTextBox
+ ld a, [$d087]
+ ld [$ffb6], a
+ ld a, [StringBuffer2]
+ ld [$ffb5], a
+ pop bc
+ call Function3f136
+ push bc
+ call Function309d
+ pop bc
+ ld hl, $000a
+ add hl, bc
+ ld d, [hl]
+ ld a, [$ffb6]
+ add d
+ ld [hld], a
+ ld d, [hl]
+ ld a, [$ffb5]
+ adc d
+ ld [hl], a
+ jr nc, .asm_3ef3d
+ dec hl
+ inc [hl]
+ jr nz, .asm_3ef3d
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.asm_3ef3d
+ ld a, [CurPartyMon]
+ ld e, a
+ ld d, $0
+ ld hl, PartySpecies
+ add hl, de
+ ld a, [hl]
+ ld [CurSpecies], a
+ call GetBaseData
+ push bc
+ ld d, $64
+ ld hl, $4e47
+ ld a, $14
+ rst FarCall
+ pop bc
+ ld hl, $000a
+ add hl, bc
+ push bc
+ ld a, [hMultiplicand]
+ ld b, a
+ ld a, [$ffb5]
+ ld c, a
+ ld a, [$ffb6]
+ ld d, a
+ ld a, [hld]
+ sub d
+ ld a, [hld]
+ sbc c
+ ld a, [hl]
+ sbc b
+ jr c, .asm_3ef74
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld a, d
+ ld [hld], a
+
+.asm_3ef74
+ xor a
+ ld [MonType], a
+ ld a, $1f
+ call Predef
+ ld hl, $4e1b
+ ld a, $14
+ rst FarCall
+ pop bc
+ ld hl, $001f
+ add hl, bc
+ ld a, [hl]
+ cp $64
+ jp nc, .asm_3f0b9
+ cp d
+ jp z, .asm_3f0b9
+ ld [$c719], a
+ ld a, [CurPartyLevel]
+ push af
+ ld a, d
+ ld [CurPartyLevel], a
+ ld [hl], a
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ ld [CurSpecies], a
+ ld [$d265], a
+ call GetBaseData
+ ld hl, $0025
+ add hl, bc
+ ld a, [hld]
+ ld e, a
+ ld d, [hl]
+ push de
+ ld hl, $0024
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, $000a
+ add hl, bc
+ push bc
+ ld b, $1
+ ld a, $c
+ call Predef
+ pop bc
+ pop de
+ ld hl, $0025
+ add hl, bc
+ ld a, [hld]
+ sub e
+ ld e, a
+ ld a, [hl]
+ sbc d
+ ld d, a
+ dec hl
+ ld a, [hl]
+ add e
+ ld [hld], a
+ ld a, [hl]
+ adc d
+ ld [hl], a
+ ld a, [CurBattleMon]
+ ld d, a
+ ld a, [CurPartyMon]
+ cp d
+ jr nz, .asm_3f035
+ ld de, BattleMonHP
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld de, BattleMonMaxHP
+ push bc
+ ld bc, $000c
+ call CopyBytes
+ pop bc
+ ld hl, $001f
+ add hl, bc
+ ld a, [hl]
+ ld [BattleMonLevel], a
+ ld a, [PlayerSubStatus5]
+ bit 3, a
+ jr nz, .asm_3f012
+ ld hl, $0026
+ add hl, bc
+ ld de, PlayerStats
+ ld bc, $000a
+ call CopyBytes
+
+.asm_3f012
+ xor a
+ ld [$d265], a
+ call Function3ecab
+ ld hl, Function3ec2c
+ ld a, $f
+ rst FarCall
+ ld hl, $6d45
+ ld a, $f
+ rst FarCall
+ ld hl, Function3df48
+ ld a, $f
+ rst FarCall
+ call EmptyBattleTextBox
+ call Function309d
+ ld a, $1
+ ld [hBGMapMode], a
+
+.asm_3f035
+ ld a, $9
+ ld hl, $709e
+ rst FarCall
+ ld a, [CurBattleMon]
+ ld b, a
+ ld a, [CurPartyMon]
+ cp b
+ jr z, .asm_3f057
+ ld de, SFX_HIT_END_OF_EXP_BAR
+ call StartSFX
+ call WaitSFX
+ ld hl, BattleText_0x80c9c
+ call FarBattleTextBox
+ call Function309d
+
+.asm_3f057
+ xor a
+ ld [MonType], a
+ ld a, $1f
+ call Predef
+ ld hl, $c4a9
+ ld b, $a
+ ld c, $9
+ call TextBox
+ ld hl, $c4bf
+ ld bc, $0004
+ ld a, $28
+ call Predef
+ ld c, $1e
+ call DelayFrames
+ call Functiona80
+ call Function30b4
+ xor a
+ ld [MonType], a
+ ld a, [CurSpecies]
+ ld [$d265], a
+ ld a, [CurPartyLevel]
+ push af
+ ld c, a
+ ld a, [$c719]
+ ld b, a
+
+.asm_3f093
+ inc b
+ ld a, b
+ ld [CurPartyLevel], a
+ push bc
+ ld a, $1a
+ call Predef
+ pop bc
+ ld a, b
+ cp c
+ jr nz, .asm_3f093
+ pop af
+ ld [CurPartyLevel], a
+ ld hl, EvolvableFlags
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, $1
+ ld a, $3
+ call Predef
+ pop af
+ ld [CurPartyLevel], a
+
+.asm_3f0b9
+ ld a, [PartyCount]
+ ld b, a
+ ld a, [CurPartyMon]
+ inc a
+ cp b
+ jr z, .asm_3f0d1
+ ld [CurPartyMon], a
+ ld a, $0
+ call GetPartyParamLocation
+ ld b, h
+ ld c, l
+ jp .asm_3ee50
+
+.asm_3f0d1
+ jp Function3d57a
+; 3f0d4
+
+Function3f0d4: ; 3f0d4
+ ld a, [$c664]
+ ld b, a
+ ld c, $6
+ ld d, $0
+.asm_3f0dc
+ xor a
+ srl b
+ adc d
+ ld d, a
+ dec c
+ jr nz, .asm_3f0dc
+ cp $2
+ ret c
+ ld [$d265], a
+ ld hl, EnemyMonBaseStats
+ ld c, $7
+.asm_3f0ef
+ xor a
+ ld [hProduct], a
+ ld a, [hl]
+ ld [hMultiplicand], a
+ ld a, [$d265]
+ ld [hMultiplier], a
+ ld b, $2
+ call Divide
+ ld a, [$ffb6]
+ ld [hli], a
+ dec c
+ jr nz, .asm_3f0ef
+ ret
+; 3f106
+
+Function3f106: ; 3f106
+ push bc
+ ld a, [$ffb5]
+ ld b, a
+ ld a, [$ffb6]
+ ld c, a
+ srl b
+ rr c
+ add c
+ ld [$ffb6], a
+ ld a, [$ffb5]
+ adc b
+ ld [$ffb5], a
+ pop bc
+ ret
+; 3f11b
+
+UnknownText_0x3f11b: ; 3f11b
+ text_jump UnknownText_0x1c029c, BANK(UnknownText_0x1c029c)
+ start_asm
+ ld hl, UnknownText_0x3f131
+ ld a, [$d088] ; IsTradedMon
+ and a
+ ret z
+ ld hl, UnknownText_0x3f12c
+ ret
+; 3f12c
+
+UnknownText_0x3f12c: ; 3f12c
+ text_jump UnknownText_0x1c02a9, BANK(UnknownText_0x1c02a9)
+ db "@"
+; 3f131
+
+UnknownText_0x3f131: ; 3f131
+ text_jump UnknownText_0x1c02c9, BANK(UnknownText_0x1c02c9)
+ db "@"
+; 3f136
+
+
+Function3f136: ; 3f136
+
+ push bc
+
+ ld hl, CurPartyMon
+ ld a, [CurBattleMon]
+ cp [hl]
+ jp nz, .asm_3f219
+
+ ld a, [BattleMonLevel]
+ cp MAX_LEVEL
+ jp nc, .asm_3f219
+
+ ld a, [$ffb6]
+ ld [$d004], a
+ push af
+ ld a, [$ffb5]
+ ld [$d003], a
+ push af
+ xor a
+ ld [DefaultFlypoint], a
+ xor a
+ ld [MonType], a
+ ld a, $1f
+ call Predef
+ ld a, [TempMonLevel]
+ ld b, a
+ ld e, a
+ push de
+ ld de, $d118
+ call Function3f39c
+ push bc
+ ld hl, $d118
+ ld a, [$d004]
+ add [hl]
+ ld [hld], a
+ ld a, [$d003]
+ adc [hl]
+ ld [hld], a
+ jr nc, .asm_3f186
+ inc [hl]
+ jr nz, .asm_3f186
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.asm_3f186
+ ld d, $64
+ callab Function50e47
+ ld a, [hMultiplicand]
+ ld b, a
+ ld a, [$ffb5]
+ ld c, a
+ ld a, [$ffb6]
+ ld d, a
+ ld hl, $d118
+ ld a, [hld]
+ sub d
+ ld a, [hld]
+ sbc c
+ ld a, [hl]
+ sbc b
+ jr c, .asm_3f1a8
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld a, d
+ ld [hld], a
+
+.asm_3f1a8
+ ld hl, $4e1b
+ ld a, $14
+ rst FarCall
+ ld a, d
+ pop bc
+ pop de
+ ld d, a
+ cp e
+ jr nc, .asm_3f1b7
+ ld a, e
+ ld d, a
+
+.asm_3f1b7
+ ld a, e
+ cp $64
+ jr nc, .asm_3f1ff
+ cp d
+ jr z, .asm_3f1ff
+ inc a
+ ld [TempMonLevel], a
+ ld [CurPartyLevel], a
+ ld [BattleMonLevel], a
+ push de
+ call Function3f21b
+ ld c, $40
+ call Function3f22c
+ call PrintPlayerHUD
+ ld hl, BattleMonNick
+ ld de, StringBuffer1
+ ld bc, $000b
+ call CopyBytes
+ call Function3dfe
+ ld de, SFX_HIT_END_OF_EXP_BAR
+ call StartSFX
+ ld a, $23
+ ld hl, $679d
+ rst FarCall
+ call WaitSFX
+ ld hl, BattleText_0x80c9c
+ call FarBattleTextBox
+ pop de
+ inc e
+ ld b, $0
+ jr .asm_3f1b7
+
+.asm_3f1ff
+ push bc
+ ld b, d
+ ld de, $d118
+ call Function3f39c
+ ld a, b
+ pop bc
+ ld c, a
+ call Function3f21b
+ call Function3f22c
+ call Function3dfe
+ pop af
+ ld [$ffb5], a
+ pop af
+ ld [$ffb6], a
+
+.asm_3f219
+ pop bc
+ ret
+; 3f21b
+
+Function3f21b: ; 3f21b
+ push bc
+ call WaitSFX
+ ld de, SFX_EXP_BAR
+ call StartSFX
+ ld c, 10
+ call DelayFrames
+ pop bc
+ ret
+; 3f22c
+
+Function3f22c: ; 3f22c
+ ld d, $3
+ dec b
+.asm_3f22f
+ inc b
+ push bc
+ push de
+ ld hl, $c58d
+ call Function3f41c
+ pop de
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, d
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ pop bc
+ ld a, c
+ cp b
+ jr z, .asm_3f268
+ inc b
+ push bc
+ push de
+ ld hl, $c58d
+ call Function3f41c
+ pop de
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, d
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ dec d
+ jr nz, .asm_3f263
+ ld d, $1
+
+.asm_3f263
+ pop bc
+ ld a, c
+ cp b
+ jr nz, .asm_3f22f
+
+.asm_3f268
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 3f26d
+
+
+
+Function3f26d: ; 3f26d
+; SendOutMonText?
+
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3f27c
+ ld hl, UnknownText_0x3f2d1
+ ld a, [$d264]
+ and a
+ jr nz, .asm_3f2ce
+
+.asm_3f27c
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ or [hl]
+ ld hl, UnknownText_0x3f2d1
+ jr z, .asm_3f2ce
+ xor a
+ ld [hMultiplicand], a
+ ld hl, EnemyMonHPHi
+ ld a, [hli]
+ ld [$c6ea], a
+ ld [$ffb5], a
+ ld a, [hl]
+ ld [$c6eb], a
+ ld [$ffb6], a
+ ld a, $19
+ ld [hMultiplier], a
+ call Multiply
+ ld hl, EnemyMonMaxHPHi
+ ld a, [hli]
+ ld b, [hl]
+ srl a
+ rr b
+ srl a
+ rr b
+ ld a, b
+ ld b, $4
+ ld [hMultiplier], a
+ call Divide
+ ld a, [$ffb6]
+ ld hl, UnknownText_0x3f2d1
+ cp $46
+ jr nc, .asm_3f2ce
+ ld hl, UnknownText_0x3f2d8
+ cp $28
+ jr nc, .asm_3f2ce
+ ld hl, UnknownText_0x3f2df
+ cp $a
+ jr nc, .asm_3f2ce
+ ld hl, UnknownText_0x3f2e6
+
+.asm_3f2ce
+ jp BattleTextBox
+; 3f2d1
+
+
+UnknownText_0x3f2d1: ; 3f2d1
+ text_jump UnknownText_0x1c02df, BANK(UnknownText_0x1c02df)
+ start_asm
+ jr Function3f2eb
+; 3f2d6
+
+UnknownText_0x3f2d8: ; 3f2d8
+ text_jump UnknownText_0x1c02e6, BANK(UnknownText_0x1c02e6)
+ start_asm
+ jr Function3f2eb
+; 3f2dd
+
+UnknownText_0x3f2df: ; 3f2df
+ text_jump UnknownText_0x1c02f0, BANK(UnknownText_0x1c02f0)
+ start_asm
+ jr Function3f2eb
+; 3f2e4
+
+UnknownText_0x3f2e6: ; 3f2e6
+ text_jump UnknownText_0x1c02fe, BANK(UnknownText_0x1c02fe)
+ start_asm
+; 3f2eb
+
+Function3f2eb: ; 3f2eb
+ ld hl, UnknownText_0x3f2ef
+ ret
+; 3f2ef
+
+UnknownText_0x3f2ef: ; 3f2ef
+ text_jump UnknownText_0x1c0317, BANK(UnknownText_0x1c0317)
+ db "@"
+; 3f2f4
+
+
+Function3f2f4: ; 3f2f4
+ ld hl, UnknownText_0x3f2fa
+ jp BattleTextBox
+; 3f2fa
+
+UnknownText_0x3f2fa: ; 3f2fa
+ text_jump UnknownText_0x1c031d, BANK(UnknownText_0x1c031d)
+ start_asm
+; 3f2ff
+
+Function3f2ff: ; 3f2ff
+ push de
+ push bc
+ ld hl, EnemyMonHPLo
+ ld de, $c6eb
+ ld b, [hl]
+ dec hl
+ ld a, [de]
+ sub b
+ ld [$ffb6], a
+ dec de
+ ld b, [hl]
+ ld a, [de]
+ sbc b
+ ld [$ffb5], a
+ ld a, $19
+ ld [hMultiplier], a
+ call Multiply
+ ld hl, EnemyMonMaxHPHi
+ ld a, [hli]
+ ld b, [hl]
+ srl a
+ rr b
+ srl a
+ rr b
+ ld a, b
+ ld b, $4
+ ld [hMultiplier], a
+ call Divide
+ pop bc
+ pop de
+ ld a, [$ffb6]
+ ld hl, UnknownText_0x3f348
+ and a
+ ret z
+ ld hl, UnknownText_0x3f35b
+ cp $1e
+ ret c
+ ld hl, UnknownText_0x3f34d
+ cp $46
+ ret c
+ ld hl, UnknownText_0x3f352
+ ret
+; 3f348
+
+UnknownText_0x3f348: ; 3f348
+ text_jump UnknownText_0x1c0324, BANK(UnknownText_0x1c0324)
+ db "@"
+; 3f34d
+
+UnknownText_0x3f34d: ; 3f34d
+ text_jump UnknownText_0x1c0340, BANK(UnknownText_0x1c0340)
+ db "@"
+; 3f352
+
+UnknownText_0x3f352: ; 3f352
+ text_jump UnknownText_0x1c0352, BANK(UnknownText_0x1c0352)
+ db "@"
+; 3f357
+
+Function3f357: ; 3f357
+ ld hl, UnknownText_0x3f35b
+ ret
+; 3f35b
+
+UnknownText_0x3f35b: ; 3f35b
+ text_jump UnknownText_0x1c0366, BANK(UnknownText_0x1c0366)
+ db "@"
+; 3f360
+
+
+Function3f360: ; 3f360
+ ld hl, $c6f0
+ ld a, [hl]
+ and a
+ jr z, .asm_3f36d
+ dec [hl]
+ ld hl, BattleText_0x80cba
+ jr .asm_3f388
+
+.asm_3f36d
+ dec hl
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ld hl, BattleText_0x80cd1
+ jr nz, .asm_3f388
+ push hl
+ ld a, [EnemyMonSpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseCatchRate]
+ ld [EnemyMonCatchRate], a
+ pop hl
+
+.asm_3f388
+ push hl
+ call Function30b4
+ pop hl
+ jp FarBattleTextBox
+; 3f390
+
+
+FillInExpBar: ; 3f390
+ push hl
+ call Function3f39c
+ pop hl
+ ld de, $0007
+ add hl, de
+ jp Function3f41c
+; 3f39c
+
+Function3f39c: ; 3f39c
+ push de
+ ld d, b
+ push de
+ callab Function50e47
+ pop de
+ ld hl, hMultiplicand
+ ld a, [hli]
+ push af
+ ld a, [hli]
+ push af
+ ld a, [hl]
+ push af
+ inc d
+ callab Function50e47
+ ld hl, $ffb6
+ ld a, [hl]
+ ld [$ffba], a
+ pop bc
+ sub b
+ ld [hld], a
+ ld a, [hl]
+ ld [$ffb9], a
+ pop bc
+ sbc b
+ ld [hld], a
+ ld a, [hl]
+ ld [hMathBuffer], a
+ pop bc
+ sbc b
+ ld [hl], a
+ pop de
+ ld hl, $ffb5
+ ld a, [hli]
+ push af
+ ld a, [hl]
+ push af
+ ld a, [de]
+ dec de
+ ld c, a
+ ld a, [$ffba]
+ sub c
+ ld [hld], a
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [$ffb9]
+ sbc b
+ ld [hld], a
+ ld a, [de]
+ ld c, a
+ ld a, [hMathBuffer]
+ sbc c
+ ld [hld], a
+ xor a
+ ld [hl], a
+ ld a, $40
+ ld [hMultiplier], a
+ call Multiply
+ pop af
+ ld c, a
+ pop af
+ ld b, a
+.asm_3f3f4
+ ld a, b
+ and a
+ jr z, .asm_3f40c
+ srl b
+ rr c
+ ld hl, hProduct
+ srl [hl]
+ inc hl
+ rr [hl]
+ inc hl
+ rr [hl]
+ inc hl
+ rr [hl]
+ jr .asm_3f3f4
+
+.asm_3f40c
+ ld a, c
+ ld [hMultiplier], a
+ ld b, $4
+ call Divide
+ ld a, [$ffb6]
+ ld b, a
+ ld a, $40
+ sub b
+ ld b, a
+ ret
+; 3f41c
+
+Function3f41c: ; 3f41c
+ ld c, $8
+.asm_3f41e
+ ld a, b
+ sub $8
+ jr c, .asm_3f42c
+ ld b, a
+ ld a, $6a
+ ld [hld], a
+ dec c
+ jr z, .asm_3f43c
+ jr .asm_3f41e
+
+.asm_3f42c
+ add $8
+ jr z, .asm_3f434
+ add $54
+ jr .asm_3f436
+
+.asm_3f434
+ ld a, $62
+
+.asm_3f436
+ ld [hld], a
+ ld a, $62
+ dec c
+ jr nz, .asm_3f434
+
+.asm_3f43c
+ ret
+; 3f43d
+
+Function3f43d: ; 3f43d
+ ld a, [PlayerSubStatus4]
+ bit 4, a
+ ld hl, $4640
+ jr nz, .asm_3f46f
+ ld a, [$c6fe]
+ and a
+ ld hl, Function3c6cf
+ jr nz, .asm_3f46f
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [BattleMonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, BattleMonAtkDefDV
+ ld a, $2d
+ call Predef
+ ld de, $9310
+ ld a, $3d
+ call Predef
+ pop af
+ ld [CurPartySpecies], a
+ ret
+
+.asm_3f46f
+ ld a, [hBattleTurn]
+ push af
+ xor a
+ ld [hBattleTurn], a
+ ld a, $33
+ rst FarCall
+ pop af
+ ld [hBattleTurn], a
+ ret
+; 3f47c
+
+Function3f47c: ; 3f47c
+ ld a, [EnemySubStatus4]
+ bit 4, a
+ ld hl, $4640
+ jr nz, .asm_3f4b4
+ ld a, [$c6fa]
+ and a
+ ld hl, Function3c6cf
+ jr nz, .asm_3f4b4
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [EnemyMonSpecies]
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ call GetBaseData
+ ld hl, EnemyMonAtkDefDV
+ ld a, $2d
+ call Predef
+ ld de, VTiles2
+ ld a, $3e
+ call Predef
+ pop af
+ ld [CurPartySpecies], a
+ ret
+
+.asm_3f4b4
+ ld a, [hBattleTurn]
+ push af
+ call SetEnemyTurn
+ ld a, $33
+ rst FarCall
+ pop af
+ ld [hBattleTurn], a
+ ret
+; 3f4c1
+
+
+Function3f4c1: ; 3f4c1
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld a, [TimeOfDayPal]
+ push af
+ call Function3f4dd
+ call Function3c000
+ call Function3f69e
+ pop af
+ ld [TimeOfDayPal], a
+ scf
+ ret
+; 3f4d9
+
+
+Function3f4d9: ; 3f4d9
+ call Function3c000
+ ret
+; 3f4dd
+
+
+Function3f4dd: ; 3f4dd
+ ld a, $41
+ ld hl, $6050
+ rst FarCall
+ call Function3f54e
+ xor a
+ ld [TempBattleMonSpecies], a
+ ld [$d0d2], a
+ xor a
+ ld [$ffde], a
+ callba PlayBattleMusic
+ callba Function2ee18
+ callba Function2ee2f
+ call Function2ed3
+ callba ClearBattleRAM
+ call Function3f55e
+ call Function3f568
+ ld b, $0
+ call GetSGBLayout
+ ld hl, rLCDC
+ res 6, [hl]
+ call Function3fb6c
+ call $7c8b
+ ld hl, rLCDC
+ set 6, [hl]
+ xor a
+ ld [hBGMapMode], a
+ call EmptyBattleTextBox
+ ld hl, $c535
+ ld bc, $050b
+ call ClearBox
+ ld hl, $c4a1
+ ld bc, $040a
+ call ClearBox
+ call ClearSprites
+ ld a, [IsInBattle]
+ cp $1
+ call z, Function3e036
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 3f54e
+
+Function3f54e: ; 3f54e
+ ld a, [OtherTrainerClass]
+ and a
+ jr nz, .asm_3f55a
+ ld a, [$d22e]
+ ld [CurPartySpecies], a
+
+.asm_3f55a
+ ld [TempEnemyMonSpecies], a
+ ret
+; 3f55e
+
+Function3f55e: ; 3f55e
+ ld a, [OtherTrainerClass]
+ and a
+ jp nz, Function3f594
+ jp Function3f607
+; 3f568
+
+Function3f568: ; 3f568
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, $d000
+ ld bc, VBlank5
+ ld a, $2
+ call ByteFill
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld de, $d000
+ ld hl, VBGMap0
+ ld bc, $0f40
+ call Request2bpp
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 3f594
+
+Function3f594: ; 3f594
+ ld [TrainerClass], a
+ ld a, $41
+ ld hl, $606a
+ rst FarCall
+ xor a
+ ld [TempEnemyMonSpecies], a
+ ld hl, $557b
+ ld a, $e
+ rst FarCall
+ ld hl, $5771
+ ld a, $e
+ rst FarCall
+ ld a, [TrainerClass]
+ cp $9
+ jr nz, .asm_3f5b8
+ xor a
+ ld [OTPartyMon1Item], a
+
+.asm_3f5b8
+ ld de, VTiles2
+ ld hl, $520d
+ ld a, $14
+ rst FarCall
+ xor a
+ ld [$ffad], a
+ dec a
+ ld [$c6e6], a
+ ld hl, $c4ac
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ ld a, $ff
+ ld [CurOTMon], a
+ ld a, $2
+ ld [IsInBattle], a
+ call IsJohtoGymLeader
+ jr nc, .asm_3f606
+ xor a
+ ld [CurPartyMon], a
+ ld a, [PartyCount]
+ ld b, a
+.asm_3f5ea
+ push bc
+ ld a, $22
+ call GetPartyParamLocation
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_3f5fc
+ ld c, $4
+ callab ChangeHappiness
+
+.asm_3f5fc
+ pop bc
+ dec b
+ jr z, .asm_3f606
+ ld hl, CurPartyMon
+ inc [hl]
+ jr .asm_3f5ea
+
+.asm_3f606
+ ret
+; 3f607
+
+Function3f607: ; 3f607
+ ld a, $1
+ ld [IsInBattle], a
+ ld a, $41
+ ld hl, $605d
+ rst FarCall
+ call LoadEnemyMon
+ ld hl, EnemyMonMove1
+ ld de, $c735
+ ld bc, $0004
+ call CopyBytes
+ ld hl, EnemyMonPPMove1
+ ld de, $c739
+ ld bc, $0004
+ call CopyBytes
+ ld hl, EnemyMonAtkDefDV
+ ld a, $2d
+ call Predef
+ ld a, [CurPartySpecies]
+ cp $c9
+ jr nz, .asm_3f648
+ ld a, [$def4]
+ and a
+ jr nz, .asm_3f648
+ ld a, [UnownLetter]
+ ld [$def4], a
+
+.asm_3f648
+ ld de, VTiles2
+ ld a, $3e
+ call Predef
+ xor a
+ ld [TrainerClass], a
+ ld [$ffad], a
+ ld hl, $c4ac
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ ret
+; 3f662
+
+Function3f662: ; 3f662
+ ld hl, EnemyMonMove1
+ ld de, $d25e
+ ld b, $4
+.asm_3f66a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr z, .asm_3f690
+ push bc
+ push hl
+ push hl
+ dec a
+ ld hl, $5b00
+ ld bc, $0007
+ call AddNTimes
+ ld a, $10
+ call GetFarByte
+ pop hl
+ ld bc, $0005
+ add hl, bc
+ ld [hl], a
+ pop hl
+ pop bc
+ dec b
+ jr nz, .asm_3f66a
+ ret
+
+.asm_3f68e
+ xor a
+ ld [hli], a
+
+.asm_3f690
+ push bc
+ push hl
+ ld bc, $0005
+ add hl, bc
+ xor a
+ ld [hl], a
+ pop hl
+ pop bc
+ dec b
+ jr nz, .asm_3f68e
+ ret
+; 3f69e
+
+
+Function3f69e: ; 3f69e
+ call Function3f6a5
+ call Function3f6d0
+ ret
+; 3f6a5
+
+Function3f6a5: ; 3f6a5
+ ld a, [InLinkBattle]
+ and a
+ jr z, .asm_3f6b7
+ call Function3f759
+ ld c, $96
+ call DelayFrames
+ call Function3f77c
+ ret
+
+.asm_3f6b7
+ ld a, [$d0ee]
+ and $f
+ ret nz
+ call Function3f71d
+ xor a
+ ld [$d1e9], a
+ ld a, $1c
+ call Predef
+ callba Function2ed44
+ ret
+; 3f6d0
+
+Function3f6d0: ; 3f6d0
+ call Function3f998
+ xor a
+ ld [Danger], a
+ ld [IsInBattle], a
+ ld [BattleType], a
+ ld [AttackMissed], a
+ ld [$d22e], a
+ ld [OtherTrainerClass], a
+ ld [$d266], a
+ ld [$d267], a
+ ld [$d232], a
+ ld [$d0d8], a
+ ld [$d0da], a
+ ld [$d0d9], a
+ ld [$d0d2], a
+ ld [CurMoveNum], a
+ ld [$d0db], a
+ ld [$d0d6], a
+ ld [$d0e4], a
+ ld [$d0e0], a
+ ld [$d0df], a
+ ld [$d0e1], a
+ ld hl, PlayerSubStatus1
+ ld b, $18
+.asm_3f715
+ ld [hli], a
+ dec b
+ jr nz, .asm_3f715
+ call WaitSFX
+ ret
+; 3f71d
+
+Function3f71d: ; 3f71d
+ ld hl, $c6ec
+ ld a, [hli]
+ or [hl]
+ inc hl
+ or [hl]
+ ret z
+ ld a, [$c73d]
+ and a
+ jr z, .asm_3f73d
+ ld hl, $c6ee
+ sla [hl]
+ dec hl
+ rl [hl]
+ dec hl
+ rl [hl]
+ jr nc, .asm_3f73d
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.asm_3f73d
+ ld hl, $c6ee
+ ld de, $d850
+ call Function3d0be
+ ld hl, BattleText_0x80730
+ call FarBattleTextBox
+ ld a, [$cfc0]
+ bit 0, a
+ ret z
+ call ClearTileMap
+ call WhiteBGMap
+ ret
+; 3f759
+
+Function3f759: ; 3f759
+ ld a, $41
+ ld hl, $60df
+ rst FarCall
+ callba Function106187
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1Status
+ call GetPartyLocation
+ ld a, [EnemyMonStatus]
+ ld [hl], a
+ call ClearTileMap
+ callba Function2c1b2
+ ret
+; 3f77c
+
+Function3f77c: ; 3f77c
+ callba Function3d2e0
+ jp c, Function3f80f
+ call Function3f830
+ jr nz, .asm_3f797
+ ld hl, $cd2a
+ bit 4, [hl]
+ jr z, .asm_3f797
+ ld a, $a
+ ld hl, $7930
+ rst FarCall
+
+.asm_3f797
+ ld a, [$d0ee]
+ and $f
+ cp $1
+ jr c, .asm_3f7ad
+ jr z, .asm_3f7b8
+ ld a, $41
+ ld hl, $6107
+ rst FarCall
+ ld de, .Draw
+ jr .asm_3f7c3
+
+.asm_3f7ad
+ ld a, $41
+ ld hl, $60fb
+ rst FarCall
+ ld de, .Win
+ jr .asm_3f7c3
+
+.asm_3f7b8
+ ld a, $41
+ ld hl, $6101
+ rst FarCall
+ ld de, .Lose
+ jr .asm_3f7c3
+
+.asm_3f7c3
+ ld hl, $c546
+ call PlaceString
+ callba Function106187
+ ld c, $c8
+ call DelayFrames
+ ld a, $1
+ call GetSRAMBank
+ call Function3fa42
+ call Function3f85f
+ call CloseSRAM
+ call Function3f830
+ jr z, .asm_3f7ee
+ call Functiona80
+ call ClearTileMap
+ ret
+
+.asm_3f7ee
+ ld c, $c8
+ call DelayFrames
+ call ClearTileMap
+ ret
+; 3f7f7
+
+.Win
+ db "YOU WIN@"
+.Lose
+ db "YOU LOSE@"
+.Draw
+ db " DRAW@"
+; 3f80f
+
+
+Function3f80f: ; 3f80f
+ ld hl, $c546
+ ld de, .Invalid
+ call PlaceString
+ ld c, $c8
+ call DelayFrames
+ call ClearTileMap
+ ret
+; 3f821
+
+.Invalid
+ db "INVALID BATTLE@"
+; 3f830
+
+
+Function3f830: ; 3f830
+ ld a, [InLinkBattle]
+ cp $4
+ ret
+; 3f836
+
+
+Function3f836: ; 3f836
+ ld a, $1
+ call GetSRAMBank
+ call Function3f85f
+ call CloseSRAM
+ ld hl, AttrMap
+ xor a
+ ld bc, $0168
+ call ByteFill
+ call Function3200
+ ld b, $8
+ call GetSGBLayout
+ call Function32f9
+ ld c, $8
+ call DelayFrames
+ call Functiona80
+ ret
+; 3f85f
+
+
+Function3f85f: ; 3f85f
+ call ClearTileMap
+ call ClearSprites
+ call .asm_3f8e0
+ ld hl, $c540
+ ld b, $5
+ ld de, $b268
+.asm_3f870
+ push bc
+ push hl
+ push de
+ ld a, [de]
+ and a
+ jr z, .asm_3f8c9
+ ld a, [$d4b4]
+ and a
+ jr z, .asm_3f8c9
+ push hl
+ push hl
+ ld h, d
+ ld l, e
+ ld de, DefaultFlypoint
+ ld bc, $000a
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ inc de
+ ld bc, $0006
+ call CopyBytes
+ ld de, DefaultFlypoint
+ pop hl
+ call PlaceString
+ pop hl
+ ld de, $001a
+ add hl, de
+ push hl
+ ld de, $d00d
+ ld bc, $0204
+ call PrintNum
+ pop hl
+ ld de, $0005
+ add hl, de
+ push hl
+ ld de, $d00f
+ ld bc, $0204
+ call PrintNum
+ pop hl
+ ld de, $0005
+ add hl, de
+ ld de, $d011
+ ld bc, $0204
+ call PrintNum
+ jr .asm_3f8cf
+
+.asm_3f8c9
+ ld de, .Format
+ call PlaceString
+
+.asm_3f8cf
+ pop hl
+ ld bc, $0012
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ ld bc, $0028
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_3f870
+ ret
+
+.asm_3f8e0
+ ld hl, $c4a1
+ ld de, .Record
+ call PlaceString
+
+ ld hl, $c518
+ ld de, .Result
+ call PlaceString
+
+ ld hl, $c4c8
+ ld de, .Total
+ call PlaceString
+
+ ld hl, $c4f6
+ ld de, $b260
+ call .asm_3f92b
+ jr c, .asm_3f92a
+
+ ld bc, $0204
+ call PrintNum
+
+ ld hl, $c4fb
+ ld de, $b262
+ call .asm_3f92b
+
+ ld bc, $0204
+ call PrintNum
+
+ ld hl, $c500
+ ld de, $b264
+ call .asm_3f92b
+
+ ld bc, $0204
+ call PrintNum
+
+.asm_3f92a
+ ret
+
+.asm_3f92b
+ ld a, [$d4b4]
+ and a
+ ret nz
+ ld de, .Scores
+ call PlaceString
+ scf
+ ret
+; 3f938
+
+.Scores
+ db " 0 0 0@"
+; 3f947
+
+.Format ; 3f947
+ db " --- ", $22, " - - -@"
+.Record ; 3f964
+ db $52, "'s RECORD@"
+.Result ; 3f96e
+ db "RESULT WIN LOSE DRAW@"
+.Total ; 3f983
+ db "TOTAL WIN LOSE DRAW@"
+; 3f998
+
+
+Function3f998: ; 3f998
+ ld a, [BattleType]
+ cp BATTLETYPE_ROAMING
+ jr nz, .asm_3f9c4
+ ld a, [$d0ee]
+ and $f
+ jr z, .asm_3f9af
+ call GetRoamMonHP
+ ld a, [EnemyMonHPLo]
+ ld [hl], a
+ jr .asm_3f9ca
+
+.asm_3f9af
+ call GetRoamMonHP
+ ld [hl], $0
+ call GetRoamMonMapGroup
+ ld [hl], $ff
+ call GetRoamMonMapNumber
+ ld [hl], $ff
+ call GetRoamMonSpecies
+ ld [hl], $0
+ ret
+
+.asm_3f9c4
+ call FarBattleRNG
+ and $f
+ ret nz
+
+.asm_3f9ca
+ callab Function2a30d
+ ret
+; 3f9d1
+
+GetRoamMonMapGroup: ; 3f9d1
+ ld a, [TempEnemyMonSpecies]
+ ld b, a
+ ld a, [RoamMon1Species]
+ cp b
+ ld hl, RoamMon1MapGroup
+ ret z
+ ld a, [RoamMon2Species]
+ cp b
+ ld hl, RoamMon2MapGroup
+ ret z
+ ld hl, RoamMon3MapGroup
+ ret
+; 3f9e9
+
+GetRoamMonMapNumber: ; 3f9e9
+ ld a, [TempEnemyMonSpecies]
+ ld b, a
+ ld a, [RoamMon1Species]
+ cp b
+ ld hl, RoamMon1MapNumber
+ ret z
+ ld a, [RoamMon2Species]
+ cp b
+ ld hl, RoamMon2MapNumber
+ ret z
+ ld hl, RoamMon3MapNumber
+ ret
+; 3fa01
+
GetRoamMonHP: ; 3fa01
; output: hl = RoamMonCurHP
ld a, [TempEnemyMonSpecies]
@@ -12892,8 +46723,6 @@
cp b
ld hl, RoamMon2CurHP
ret z
-; remnant of the GS function
-; we know this will be $00 because it's never initialized
ld hl, RoamMon3CurHP
ret
; 3fa19
@@ -12910,17 +46739,307 @@
cp b
ld hl, RoamMon2DVs
ret z
-; remnant of the GS function
-; we know this will be $0000 because it's never initialized
ld hl, RoamMon3DVs
ret
; 3fa31
+GetRoamMonSpecies: ; 3fa31
+ ld a, [TempEnemyMonSpecies]
+ ld hl, RoamMon1Species
+ cp [hl]
+ ret z
+ ld hl, RoamMon2Species
+ cp [hl]
+ ret z
+ ld hl, RoamMon3Species
+ ret
+; 3fa42
-INCBIN "baserom.gbc", $3fa31, $3fbff - $3fa31
+Function3fa42: ; 3fa42
+ ld hl, $d276
+ ld de, StringBuffer1
+ ld bc, $0002
+ call CopyBytes
+ ld hl, $d26b
+ ld bc, $000a
+ call CopyBytes
+ ld hl, $b254
+ call Function3faa0
+ ld hl, $b266
+ ld d, $5
+.asm_3fa62
+ push hl
+ inc hl
+ inc hl
+ ld a, [hl]
+ dec hl
+ dec hl
+ and a
+ jr z, .asm_3fa85
+ push de
+ ld bc, $000c
+ ld de, StringBuffer1
+ call CompareLong
+ pop de
+ pop hl
+ jr c, .asm_3fa99
+ ld bc, $0012
+ add hl, bc
+ dec d
+ jr nz, .asm_3fa62
+ ld bc, $ffee
+ add hl, bc
+ push hl
-GetPlayerBackpic: ; 3fbff
+.asm_3fa85
+ ld d, h
+ ld e, l
+ ld hl, StringBuffer1
+ ld bc, $000c
+ call CopyBytes
+ ld b, $6
+ xor a
+.asm_3fa93
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_3fa93
+ pop hl
+
+.asm_3fa99
+ call Function3faa0
+ call Function3fac8
+ ret
+; 3faa0
+
+Function3faa0: ; 3faa0
+ ld a, [$d0ee]
+ and $f
+ cp $1
+ ld bc, $000d
+ jr c, .asm_3fab4
+ ld bc, $000f
+ jr z, .asm_3fab4
+ ld bc, $0011
+
+.asm_3fab4
+ add hl, bc
+ call Function3fabe
+ ret nc
+ inc [hl]
+ ret nz
+ dec hl
+ inc [hl]
+ ret
+; 3fabe
+
+Function3fabe: ; 3fabe
+ dec hl
+ ld a, [hl]
+ inc hl
+ cp $27
+ ret c
+ ld a, [hl]
+ cp $f
+ ret
+; 3fac8
+
+Function3fac8: ; 3fac8
+ ld b, $5
+ ld hl, $b277
+ ld de, DefaultFlypoint
+.asm_3fad0
+ push bc
+ push de
+ push hl
+ call Function3fb54
+ pop hl
+ ld a, e
+ pop de
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ ld a, c
+ ld [de], a
+ inc de
+ ld bc, $0012
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_3fad0
+ ld b, $0
+ ld c, $1
+.asm_3faed
+ ld a, b
+ add b
+ add b
+ ld e, a
+ ld d, $0
+ ld hl, DefaultFlypoint
+ add hl, de
+ push hl
+ ld a, c
+ add c
+ add c
+ ld e, a
+ ld d, $0
+ ld hl, DefaultFlypoint
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ push bc
+ ld c, $3
+ call StringCmp
+ pop bc
+ jr z, .asm_3fb10
+ jr nc, .asm_3fb1f
+
+.asm_3fb10
+ inc c
+ ld a, c
+ cp $5
+ jr nz, .asm_3faed
+ inc b
+ ld c, b
+ inc c
+ ld a, b
+ cp $4
+ jr nz, .asm_3faed
+ ret
+
+.asm_3fb1f
+ push bc
+ ld a, b
+ ld bc, $0012
+ ld hl, $b266
+ call AddNTimes
+ push hl
+ ld de, DefaultFlypoint
+ ld bc, $0012
+ call CopyBytes
+ pop hl
+ pop bc
+ push hl
+ ld a, c
+ ld bc, $0012
+ ld hl, $b266
+ call AddNTimes
+ pop de
+ push hl
+ ld bc, $0012
+ call CopyBytes
+ ld hl, DefaultFlypoint
+ ld bc, $0012
+ pop de
+ call CopyBytes
+ ret
+; 3fb54
+
+Function3fb54: ; 3fb54
+ ld e, $0
+ ld a, [hld]
+ ld c, a
+ ld a, [hld]
+ ld b, a
+ ld a, [hld]
+ add c
+ ld c, a
+ ld a, [hld]
+ adc b
+ ld b, a
+ jr nc, .asm_3fb63
+ inc e
+
+.asm_3fb63
+ ld a, [hld]
+ add c
+ ld c, a
+ ld a, [hl]
+ adc b
+ ld b, a
+ ret nc
+ inc e
+ ret
+; 3fb6c
+
+Function3fb6c: ; 3fb6c
+ call Function3fbf8
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call TextBox
+ callba MobileTextBorder
+ ld hl, $c505
+ ld bc, $0307
+ call ClearBox
+ call Functione51
+ call Function3ed9f
+ call Function3fbd6
+ xor a
+ ld [$ffde], a
+ ld [hSCY], a
+ ld a, $90
+ ld [hWY], a
+ ld [rWY], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld a, $13
+ ld hl, $6980
+ rst FarCall
+ ld a, $1
+ ld [hBGMapMode], a
+ ld a, $31
+ ld [$ffad], a
+ ld hl, $c51a
+ ld bc, $0606
+ ld a, $13
+ call Predef
+ xor a
+ ld [hWY], a
+ ld [rWY], a
+ call WaitBGMap
+ call HideSprites
+ ld b, $1
+ call GetSGBLayout
+ call Function32f9
+ ld a, $90
+ ld [hWY], a
+ xor a
+ ld [hSCX], a
+ ret
+; 3fbd6
+
+Function3fbd6: ; 3fbd6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, $d000
+ ld bc, VBlank5
+ ld a, $7f
+ call ByteFill
+ ld de, $d000
+ ld hl, VBGMap0
+ ld bc, $0f40
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+; 3fbf8
+
+Function3fbf8: ; 3fbf8
+ call GetBattleBackpic
+ call Function3fc30
+ ret
+; 3fbff
+
+
+GetBattleBackpic: ; 3fbff
; Load the player character's backpic (6x6) into VRAM starting from $9310.
; Special exception for Dude.
@@ -12956,9 +47075,66 @@
; 3fc30
-INCBIN "baserom.gbc", $3fc30, $3fc8b - $3fc30
+Function3fc30: ; 3fc30
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, VTiles0
+ ld de, $9310
+ ld a, [hROMBank]
+ ld b, a
+ ld c, $31
+ call Get2bpp
+ pop af
+ ld [rSVBK], a
+ call Function3fc5b
+ ld a, $31
+ ld [$ffad], a
+ ld hl, $c51a
+ ld bc, $0606
+ ld a, $13
+ call Predef
+ ret
+; 3fc5b
+Function3fc5b: ; 3fc5b
+ ld hl, Sprites
+ xor a
+ ld [hConnectionStripLength], a
+ ld b, $6
+ ld e, $a8
+.asm_3fc65
+ ld c, $3
+ ld d, $40
+.asm_3fc69
+ ld [hl], d
+ inc hl
+ ld [hl], e
+ inc hl
+ ld a, [hConnectionStripLength]
+ ld [hli], a
+ inc a
+ ld [hConnectionStripLength], a
+ ld a, $1
+ ld [hli], a
+ ld a, d
+ add $8
+ ld d, a
+ dec c
+ jr nz, .asm_3fc69
+ ld a, [hConnectionStripLength]
+ add $3
+ ld [hConnectionStripLength], a
+ ld a, e
+ add $8
+ ld e, a
+ dec b
+ jr nz, .asm_3fc65
+ ret
+; 3fc8b
+
BattleStartMessage ; 3fc8b
ld a, [IsInBattle]
dec a
@@ -12989,12 +47165,10 @@
ld a, 1
ld [$c689], a
ld de, $0101
- call $6e17
+ call Function3ee17
.asm_3fcc2
- ld a, $f
- ld hl, $6b38
- rst FarCall
+ callba CheckSleepingTreeMon
jr c, .asm_3fceb
ld a, $13
@@ -13013,7 +47187,7 @@
ld a, $0f
ld [CryTracks], a
ld a, [TempEnemyMonSpecies]
- call $37b6
+ call Function37b6
.asm_3fceb
ld a, [BattleType]
@@ -13041,12 +47215,10 @@
ld a, $b
ld hl, $4000
rst FarCall
-
pop hl
call FarBattleTextBox
- call $7830
-
+ call Function3f830
ret nz
ld c, $2
@@ -13069,8 +47241,263 @@
SECTION "bank10",ROMX,BANK[$10]
-INCBIN "baserom.gbc", $40000, $40c65-$40000
+Function40000: ; 40000
+ ld a, [hWX]
+ ld l, a
+ ld a, [hWY]
+ ld h, a
+ push hl
+ ld a, [hSCX]
+ push af
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+ ld a, [$ffaa]
+ push af
+ ld a, $1
+ ld [$ffaa], a
+ xor a
+ ld [$ffde], a
+ call Function40063
+ call DelayFrame
+.asm_40029
+ call Functiona57
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_4003b
+ call Function4010b
+ call DelayFrame
+ jr .asm_40029
+.asm_4003b
+ ld de, SFX_READ_TEXT_2
+ call StartSFX
+ call WaitSFX
+ call ClearSprites
+ ld a, [$c7d4]
+ ld [$d959], a
+ pop af
+ ld [$ffaa], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [Options], a
+ pop af
+ ld [hSCX], a
+ pop hl
+ ld a, l
+ ld [hWX], a
+ ld a, h
+ ld [hWY], a
+ ret
+; 40063
+
+Function40063: ; 40063
+ call WhiteBGMap
+ call ClearSprites
+ call ClearTileMap
+ call Function414b7
+ ld hl, PlayerSDefLevel
+ ld bc, $0115
+ xor a
+ call ByteFill
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [$cf66], a
+ call Function400a2
+ ld a, [$d959]
+ ld [$c7d4], a
+ call Function40bdc
+ call Function400b4
+ call Function400ed
+ ld a, $77
+ ld hl, $6247
+ rst FarCall
+ call Function41af7
+ ret
+; 400a2
+
+Function400a2: ; 400a2
+ ld a, [StatusFlags]
+ bit 1, a
+ jr nz, .asm_400ae
+ xor a
+ ld [$c7dc], a
+ ret
+
+.asm_400ae
+ ld a, $1
+ ld [$c7dc], a
+ ret
+; 400b4
+
+Function400b4: ; 400b4
+ ld hl, PlayerSDefLevel
+ ld a, [$c2d6]
+ and a
+ jr z, .asm_400ec
+ cp $fc
+ jr nc, .asm_400ec
+ ld b, a
+ ld a, [$c7d2]
+ cp $8
+ jr c, .asm_400db
+ sub $7
+ ld c, a
+.asm_400cc
+ ld a, b
+ cp [hl]
+ jr z, .asm_400ec
+ inc hl
+ ld a, [$c7d0]
+ inc a
+ ld [$c7d0], a
+ dec c
+ jr nz, .asm_400cc
+
+.asm_400db
+ ld c, $7
+.asm_400dd
+ ld a, b
+ cp [hl]
+ jr z, .asm_400ec
+ inc hl
+ ld a, [$c7d1]
+ inc a
+ ld [$c7d1], a
+ dec c
+ jr nz, .asm_400dd
+
+.asm_400ec
+ ret
+; 400ed
+
+Function400ed: ; 400ed
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp $0
+ jr nz, .asm_40107
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+
+.asm_40107
+ ld [$c7e4], a
+ ret
+; 4010b
+
+Function4010b: ; 4010b
+ ld a, [$cf63]
+ ld hl, $4115
+ call Function41432
+ jp [hl]
+; 40115
+
+INCBIN "baserom.gbc", $40115, $40ad5 - $40115
+
+
+Function40ad5: ; 40ad5
+ push hl
+ ld a, $33
+ ld [hli], a
+ ld d, $34
+ call Function40b06
+ ld a, $35
+ ld [hl], a
+ pop hl
+ ld de, $0014
+ add hl, de
+.asm_40ae6
+ push hl
+ ld a, $36
+ ld [hli], a
+ ld d, $7f
+ call Function40b06
+ ld a, $37
+ ld [hl], a
+ pop hl
+ ld de, $0014
+ add hl, de
+ dec b
+ jr nz, .asm_40ae6
+ ld a, $38
+ ld [hli], a
+ ld d, $39
+ call Function40b06
+ ld a, $3a
+ ld [hl], a
+ ret
+; 40b06
+
+Function40b06: ; 40b06
+ ld e, c
+.asm_40b07
+ ld a, e
+ and a
+ ret z
+ ld a, d
+ ld [hli], a
+ dec e
+ jr .asm_40b07
+; 40b0f
+
+INCBIN "baserom.gbc", $40b0f, $40bb1 - $40b0f
+
+
+Function40bb1: ; 40bb1
+ ld a, [$c7d1]
+ ld hl, $c7d0
+ add [hl]
+ ld e, a
+ ld d, $0
+ ld hl, PlayerSDefLevel
+ add hl, de
+ ld a, [hl]
+ ld [$d265], a
+ ret
+; 40bc4
+
+INCBIN "baserom.gbc", $40bc4, $40bd0 - $40bc4
+
+
+Function40bd0: ; 40bd0
+ push de
+ push hl
+ ld a, [$d265]
+ dec a
+ call CheckCaughtMon
+ pop hl
+ pop de
+ ret
+; 40bdc
+
+
+
+Function40bdc: ; 40bdc
+ ld hl, PlayerSDefLevel
+ ld bc, Start
+ xor a
+ call ByteFill
+ ld a, [$c7d4]
+ ld hl, $4bf0
+ call Function41432
+ jp [hl]
+; 40bf0
+
+INCBIN "baserom.gbc", $40bf0, $40c65 - $40bf0
+
AlphabeticalPokedexOrder: ; 0x40c65
INCLUDE "stats/pokedex/order_alpha.asm"
@@ -13077,13 +47504,765 @@
NewPokedexOrder: ; 0x40d60
INCLUDE "stats/pokedex/order_new.asm"
-INCBIN "baserom.gbc", $40e5b, $41afb-$40e5b
+Function40e5b: ; 40e5b
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c590
+ ld bc, $0412
+ call Function40ad5
+ ld a, [$c7d8]
+ ld hl, $4e7d
+ call Function41432
+ ld e, l
+ ld d, h
+ ld hl, $c5b9
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 40e7d
+INCBIN "baserom.gbc", $40e7d, $41432 - $40e7d
+
+
+Function41432: ; 41432
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 4143b
+
+Function4143b: ; 4143b
+ call Function40bb1
+ call Function40bd0
+ jr z, .asm_4145b
+ ld a, [$def4]
+ ld [UnownLetter], a
+ ld a, [$d265]
+ ld [CurPartySpecies], a
+ call GetBaseData
+ ld de, VTiles2
+ ld a, $3c
+ call Predef
+ ret
+
+.asm_4145b
+ ld a, $0
+ call GetSRAMBank
+ ld a, $77
+ ld hl, $60d7
+ rst FarCall
+ ld hl, VTiles2
+ ld de, $a000
+ ld c, $31
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ call CloseSRAM
+ ret
+; 41478
+
+INCBIN "baserom.gbc", $41478, $414b7 - $41478
+
+
+Function414b7: ; 414b7
+ call DisableLCD
+ ld hl, VTiles2
+ ld bc, $0310
+ xor a
+ call ByteFill
+ call Function414fb
+ call Functione5f
+ ld hl, $9600
+ ld bc, $0200
+ call $5504
+ call Function41a24
+ jr nz, .asm_414e0
+ ld a, $77
+ ld hl, $5f1c
+ rst FarCall
+ jr .asm_414e9
+
+.asm_414e0
+ ld hl, $550e
+ ld de, $9310
+ call Decompress
+
+.asm_414e9
+ ld hl, $56b0
+ ld de, VTiles0
+ call Decompress
+ ld a, $6
+ call Function3cb4
+ call EnableLCD
+ ret
+; 414fb
+
+Function414fb: ; 414fb
+ call $0e51
+ ld hl, VTiles1
+ ld bc, $0800
+.asm_41504
+ ld a, [hl]
+ xor $ff
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_41504
+ ret
+; 4150e
+
+INCBIN "baserom.gbc", $4150e, $41a24 - $4150e
+
+
+Function41a24: ; 41a24
+ ld a, [hCGB]
+ or a
+ ret nz
+ ld a, [hSGB]
+ dec a
+ ret
+; 41a2c
+
+Function41a2c: ; 41a2c
+ ld a, $0
+ call GetSRAMBank
+ ld hl, Function40000
+ ld de, $a188
+ ld bc, Function270
+ ld a, $77
+ call FarCopyBytes
+ ld hl, $a188
+ ld bc, $01b0
+ call $5504
+ ld de, $a188
+ ld hl, $9400
+ ld bc, $101b
+ call Request2bpp
+ call CloseSRAM
+ ret
+; 41a58
+
+INCBIN "baserom.gbc", $41a58, $41af7 - $41a58
+
+
+Function41af7: ; 41af7
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 41afb
+
+
Moves: ; 0x41afb
INCLUDE "battle/moves/moves.asm"
-INCBIN "baserom.gbc", $421d8, $425b1-$421d8
+Function421d8: ; 421d8
+ ld hl, EvolvableFlags
+ xor a
+ ld [hl], a
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, $1
+ call Function42577
+ xor a
+ ld [$d268], a
+ dec a
+ ld [CurPartyMon], a
+ push hl
+ push bc
+ push de
+ ld hl, PartyCount
+ push hl
+.asm_421f5
+ ld hl, CurPartyMon
+ inc [hl]
+ pop hl
+ inc hl
+ ld a, [hl]
+ cp $ff
+ jp z, Function423ff
+ ld [MagikarpLength], a
+ push hl
+ ld a, [CurPartyMon]
+ ld c, a
+ ld hl, EvolvableFlags
+ ld b, $2
+ call Function42577
+ ld a, c
+ and a
+ jp z, $61f5
+ ld a, [MagikarpLength]
+ dec a
+ ld b, $0
+ ld c, a
+ ld hl, EvosAttacksPointers
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ xor a
+ ld [MonType], a
+ ld a, $1f
+ call Predef
+ pop hl
+ ld a, [hli]
+ and a
+ jr z, .asm_421f5
+ ld b, a
+ cp $3
+ jr z, .asm_422ae
+ ld a, [InLinkBattle]
+ and a
+ jp nz, $63f9
+ ld a, b
+ cp $2
+ jp z, $62d5
+ ld a, [$d1e9]
+ and a
+ jp nz, $63f9
+ ld a, b
+ cp $1
+ jp z, $62ee
+ cp $4
+ jr z, .asm_42283
+ ld a, [TempMonLevel]
+ cp [hl]
+ jp c, Function423f8
+ call Function42461
+ jp z, Function423f8
+ push hl
+ ld de, TempMonAtk
+ ld hl, TempMonDef
+ ld c, $2
+ call StringCmp
+ ld a, $3
+ jr z, .asm_4227a
+ ld a, $2
+ jr c, .asm_4227a
+ ld a, $1
+
+.asm_4227a
+ pop hl
+ inc hl
+ cp [hl]
+ jp nz, $63f9
+ inc hl
+ jr .asm_422fd
+
+.asm_42283
+ ld a, [TempMonHappiness]
+ cp $dc
+ jp c, $63f9
+ call Function42461
+ jp z, $63f9
+ ld a, [hli]
+ cp $1
+ jr z, .asm_422fd
+ cp $2
+ jr z, .asm_422a4
+ ld a, [TimeOfDay]
+ cp $2
+ jp nz, $63fa
+ jr .asm_422fd
+
+.asm_422a4
+ ld a, [TimeOfDay]
+ cp $2
+ jp z, $63fa
+ jr .asm_422fd
+
+.asm_422ae
+ ld a, [InLinkBattle]
+ and a
+ jp z, $63f9
+ call Function42461
+ jp z, $63f9
+ ld a, [hli]
+ ld b, a
+ inc a
+ jr z, .asm_422fd
+ ld a, [InLinkBattle]
+ cp $1
+ jp z, $63fa
+ ld a, [TempMonItem]
+ cp b
+ jp nz, $63fa
+ xor a
+ ld [TempMonItem], a
+ jr .asm_422fd
+
+ ld a, [hli]
+ ld b, a
+ ld a, [CurItem]
+ cp b
+ jp nz, $63fa
+ ld a, [$d1e9]
+ and a
+ jp z, $63fa
+ ld a, [InLinkBattle]
+ and a
+ jp nz, $63fa
+ jr .asm_422fd
+
+ ld a, [hli]
+ ld b, a
+ ld a, [TempMonLevel]
+ cp b
+ jp c, $63fa
+ call Function42461
+ jp z, $63fa
+
+.asm_422fd
+ ld a, [TempMonLevel]
+ ld [CurPartyLevel], a
+ ld a, $1
+ ld [$d268], a
+ push hl
+ ld a, [hl]
+ ld [Buffer2], a
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ call CopyName1
+ ld hl, $6482
+ call PrintText
+ ld c, $32
+ call DelayFrames
+ xor a
+ ld [hBGMapMode], a
+ ld hl, TileMap
+ ld bc, $0c14
+ call ClearBox
+ ld a, $1
+ ld [hBGMapMode], a
+ call ClearSprites
+ ld a, $13
+ ld hl, $65e1
+ rst FarCall
+ push af
+ call ClearSprites
+ pop af
+ jp c, Function42454
+ ld hl, $6473
+ call PrintText
+ pop hl
+ ld a, [hl]
+ ld [CurSpecies], a
+ ld [TempMonSpecies], a
+ ld [Buffer2], a
+ ld [$d265], a
+ call GetPokemonName
+ push hl
+ ld hl, $6478
+ call PrintTextBoxText
+ ld a, $41
+ ld hl, $6094
+ rst FarCall
+ ld de, MUSIC_NONE
+ call StartMusic
+ ld de, SFX_CAUGHT_MON
+ call StartSFX
+ call WaitSFX
+ ld c, $28
+ call DelayFrames
+ call ClearTileMap
+ call Function42414
+ call GetBaseData
+ ld hl, $d118
+ ld de, TempMonMaxHP
+ ld b, $1
+ ld a, $c
+ call Predef
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld bc, $0024
+ add hl, bc
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ ld hl, $d133
+ ld a, [hld]
+ sub c
+ ld c, a
+ ld a, [hl]
+ sbc b
+ ld b, a
+ ld hl, $d131
+ ld a, [hl]
+ add c
+ ld [hld], a
+ ld a, [hl]
+ adc b
+ ld [hl], a
+ ld hl, TempMonSpecies
+ ld bc, $0030
+ call CopyBytes
+ ld a, [CurSpecies]
+ ld [$d265], a
+ xor a
+ ld [MonType], a
+ call Function42487
+ ld a, [$d265]
+ dec a
+ call SetSeenAndCaughtMon
+ ld a, [$d265]
+ cp $c9
+ jr nz, .asm_423ec
+ ld hl, TempMonDVs
+ ld a, $2d
+ call Predef
+ ld hl, $7a18
+ ld a, $3e
+ rst FarCall
+
+.asm_423ec
+ pop de
+ pop hl
+ ld a, [TempMonSpecies]
+ ld [hl], a
+ push hl
+ ld l, e
+ ld h, d
+ jp $61f5
+; 423f8
+
+Function423f8: ; 423f8
+ inc hl
+ inc hl
+ inc hl
+ jp $6230
+; 423fe
+
+INCBIN "baserom.gbc", $423fe, $423ff - $423fe
+
+
+Function423ff: ; 423ff
+ pop de
+ pop bc
+ pop hl
+ ld a, [InLinkBattle]
+ and a
+ ret nz
+ ld a, [IsInBattle]
+ and a
+ ret nz
+ ld a, [$d268]
+ and a
+ call nz, Function3d47
+ ret
+; 42414
+
+Function42414: ; 42414
+ ld a, [CurSpecies]
+ push af
+ ld a, [BaseDexNo]
+ ld [$d265], a
+ call GetPokemonName
+ pop af
+ ld [CurSpecies], a
+ ld hl, StringBuffer1
+ ld de, StringBuffer2
+.asm_4242b
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ ret nz
+ cp $50
+ jr nz, .asm_4242b
+ ld a, [CurPartyMon]
+ ld bc, $000b
+ ld hl, PartyMon1Nickname
+ call AddNTimes
+ push hl
+ ld a, [CurSpecies]
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ pop de
+ ld bc, $000b
+ jp CopyBytes
+; 42454
+
+Function42454: ; 42454
+ ld hl, $647d
+ call PrintText
+ call ClearTileMap
+ pop hl
+ jp $61f5
+; 42461
+
+Function42461: ; 42461
+ push hl
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Item
+ ld bc, $0030
+ call AddNTimes
+ ld a, [hl]
+ cp $70
+ pop hl
+ ret
+; 42473
+
+INCBIN "baserom.gbc", $42473, $42487 - $42473
+
+
+Function42487: ; 42487
+ ld a, [$d265]
+ ld [CurPartySpecies], a
+ dec a
+ ld b, $0
+ ld c, a
+ ld hl, EvosAttacksPointers
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.asm_42499
+ ld a, [hli]
+ and a
+ jr nz, .asm_42499
+.asm_4249d
+ ld a, [hli]
+ and a
+ jr z, .asm_424da
+ ld b, a
+ ld a, [CurPartyLevel]
+ cp b
+ ld a, [hli]
+ jr nz, .asm_4249d
+ push hl
+ ld d, a
+ ld hl, PartyMon1Move1
+ ld a, [CurPartyMon]
+ ld bc, $0030
+ call AddNTimes
+ ld b, $4
+.asm_424b9
+ ld a, [hli]
+ cp d
+ jr z, .asm_424c2
+ dec b
+ jr nz, .asm_424b9
+ jr .asm_424c5
+
+.asm_424c2
+ pop hl
+ jr .asm_4249d
+
+.asm_424c5
+ ld a, d
+ ld [$d262], a
+ ld [$d265], a
+ call GetMoveName
+ call CopyName1
+ ld a, $0
+ call Predef
+ pop hl
+ jr .asm_4249d
+
+.asm_424da
+ ld a, [CurPartySpecies]
+ ld [$d265], a
+ ret
+; 424e1
+
+
+FillMoves: ; 424e1
+; Fill in moves at de for CurPartySpecies at CurPartyLevle
+
+ push hl
+ push de
+ push bc
+ ld hl, EvosAttacksPointers
+ ld b, 0
+ ld a, [CurPartySpecies]
+ dec a
+ add a
+ rl b
+ ld c, a
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.GoToAttacks
+ ld a, [hli]
+ and a
+ jr nz, .GoToAttacks
+ jr .GetLevel
+
+.NextMove
+ pop de
+.GetMove
+ inc hl
+.GetLevel
+ ld a, [hli]
+ and a
+ jp z, .done
+ ld b, a
+ ld a, [CurPartyLevel]
+ cp b
+ jp c, .done
+ ld a, [Buffer1]
+ and a
+ jr z, .CheckMove
+ ld a, [DefaultFlypoint]
+ cp b
+ jr nc, .GetMove
+
+.CheckMove
+ push de
+ ld c, NUM_MOVES
+.CheckRepeat
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr z, .NextMove
+ dec c
+ jr nz, .CheckRepeat
+ pop de
+ push de
+ ld c, NUM_MOVES
+.CheckSlot
+ ld a, [de]
+ and a
+ jr z, .LearnMove
+ inc de
+ dec c
+ jr nz, .CheckSlot
+ pop de
+ push de
+ push hl
+ ld h, d
+ ld l, e
+ call ShiftMoves
+ ld a, [Buffer1]
+ and a
+ jr z, .ShiftedMove
+ push de
+ ld bc, PartyMon1PP - PartyMon1Move4
+ add hl, bc
+ ld d, h
+ ld e, l
+ call ShiftMoves
+ pop de
+
+.ShiftedMove
+ pop hl
+
+.LearnMove
+ ld a, [hl]
+ ld [de], a
+ ld a, [Buffer1]
+ and a
+ jr z, .NextMove
+ push hl
+ ld a, [hl]
+ ld hl, PartyMon1PP - PartyMon1Moves
+ add hl, de
+ push hl
+ dec a
+ ld hl, Moves + MOVE_PP
+ ld bc, Move2 - Move1
+ call AddNTimes
+ ld a, BANK(Moves)
+ call GetFarByte
+ pop hl
+ ld [hl], a
+ pop hl
+ jr .NextMove
+
+.done
+ pop bc
+ pop de
+ pop hl
+ ret
+; 4256e
+
+ShiftMoves: ; 4256e
+ ld c, $3
+.asm_42570
+ inc de
+ ld a, [de]
+ ld [hli], a
+ dec c
+ jr nz, .asm_42570
+ ret
+; 42577
+
+
+Function42577: ; 42577
+ push de
+ ld d, $0
+ ld a, $3
+ call Predef
+ pop de
+ ret
+; 42581
+
+GetPreEvolution: ; 42581
+; Find the first mon to evolve into CurPartySpecies.
+
+; Return carry and the new species in CurPartySpecies
+; if a pre-evolution is found.
+
+ ld c, BULBASAUR - 1
+.asm_42583
+ ld hl, EvosAttacksPointers
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.asm_4258d
+ ld a, [hli]
+ and a
+ jr z, .asm_425a2
+ cp EVOLVE_STAT
+ jr nz, .asm_42596
+ inc hl
+
+.asm_42596
+ inc hl
+ ld a, [CurPartySpecies]
+ cp [hl]
+ jr z, .asm_425aa
+ inc hl
+ ld a, [hl]
+ and a
+ jr nz, .asm_4258d
+
+.asm_425a2
+ inc c
+ ld a, c
+ cp CELEBI
+ jr c, .asm_42583
+ and a
+ ret
+
+.asm_425aa
+ inc c
+ ld a, c
+ ld [CurPartySpecies], a
+ scf
+ ret
+; 425b1
+
+
EvosAttacksPointers: ; 0x425b1
INCLUDE "stats/evos_attacks_pointers.asm"
@@ -13468,25 +48647,275 @@
; 441cf
-INCBIN "baserom.gbc", $441cf, $44378 - $441cf
+Function441cf: ; 441cf
+ ld hl, $41fc
+ ld b, $19
+.asm_441d4
+ ld a, [hli]
+ cp $fe
+ jr nz, .asm_441dd
+ ld hl, $41fc
+ ld a, [hli]
+.asm_441dd
+ ld [$c7db], a
+ ld a, [hli]
+ ld c, a
+ push bc
+ push hl
+ call Function44207
+ pop hl
+ pop bc
+ call DelayFrames
+ dec b
+ jr nz, .asm_441d4
+ xor a
+ ld [$c7db], a
+ call Function44207
+ ld c, $20
+ call DelayFrames
+ ret
+; 441fc
+INCBIN "baserom.gbc", $441fc, $44207 - $441fc
+
+
+Function44207: ; 44207
+ ld a, [$c7db]
+ ld hl, $4228
+ ld de, Sprites
+.asm_44210
+ ld a, [hli]
+ cp $ff
+ ret z
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [$c7db]
+ ld b, a
+ add a
+ add b
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ jr .asm_44210
+; 44228
+
+INCBIN "baserom.gbc", $44228, $44378 - $44228
+
+
PokedexDataPointerTable: ; 0x44378
INCLUDE "stats/pokedex/entry_pointers.asm"
-INCBIN "baserom.gbc", $4456e, $447a0 - $4456e
+Function4456e: ; 4456e
+ ld a, $1
+ call GetPartyParamLocation
+ ld d, [hl]
+ ld a, $2e
+ ld hl, $5e76
+ rst FarCall
+ jr nc, .asm_445be
+ call Function44648
+ cp $a
+ jr nc, .asm_445be
+ ld bc, $002f
+ ld hl, $a835
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld a, [CurPartyMon]
+ ld bc, $002f
+ ld hl, $a600
+ call AddNTimes
+ push hl
+ ld a, $0
+ call GetSRAMBank
+ ld bc, $002f
+ call CopyBytes
+ pop hl
+ xor a
+ ld bc, $002f
+ call ByteFill
+ ld a, $1
+ call GetPartyParamLocation
+ ld [hl], $0
+ ld hl, $a834
+ inc [hl]
+ call CloseSRAM
+ xor a
+ ret
+.asm_445be
+ scf
+ ret
+; 445c0
+
+INCBIN "baserom.gbc", $445c0, $44648 - $445c0
+
+
+Function44648: ; 44648
+ ld a, $0
+ call GetSRAMBank
+ ld a, [$a834]
+ ld c, a
+ jp CloseSRAM
+; 44654
+
+Function44654: ; 44654
+ push bc
+ push de
+ ld a, $14
+ ld hl, $4000
+ rst FarCall
+ ld a, $2
+ jr c, .asm_446c6
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Item
+ ld bc, $0030
+ call AddNTimes
+ ld d, [hl]
+ ld a, $2e
+ ld hl, $5e76
+ rst FarCall
+ ld a, $3
+ jr nc, .asm_446c6
+ ld a, $0
+ call GetSRAMBank
+ ld a, [CurPartyMon]
+ ld hl, $a600
+ ld bc, $002f
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop hl
+ pop bc
+ ld a, $20
+ ld [$d265], a
+.asm_44691
+ ld a, [de]
+ ld c, a
+ ld a, b
+ call GetFarByte
+ cp $50
+ jr z, .asm_446ab
+ cp c
+ ld a, $0
+ jr nz, .asm_446c1
+ inc hl
+ inc de
+ ld a, [$d265]
+ dec a
+ ld [$d265], a
+ jr nz, .asm_44691
+
+.asm_446ab
+ ld a, $3
+ ld hl, $6538
+ rst FarCall
+ ld a, $4
+ jr c, .asm_446c1
+ xor a
+ ld [$d10b], a
+ ld a, $3
+ ld hl, $6039
+ rst FarCall
+ ld a, $1
+
+.asm_446c1
+ call CloseSRAM
+ jr .asm_446c8
+
+.asm_446c6
+ pop de
+ pop bc
+
+.asm_446c8
+ ld [ScriptVar], a
+ ret
+; 446cc
+
+Function446cc: ; 446cc
+ ld a, [PartyCount]
+ dec a
+ push af
+ push bc
+ ld hl, PartyMon1Item
+ ld bc, $0030
+ call AddNTimes
+ pop bc
+ ld [hl], b
+ pop af
+ push bc
+ push af
+ ld hl, $a600
+ ld bc, $002f
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, DefaultFlypoint
+ ld bc, $0021
+ ld a, $0
+ call GetSRAMBank
+ call CopyBytes
+ pop af
+ push af
+ ld hl, PartyMon1OT
+ ld bc, $000b
+ call AddNTimes
+ ld bc, $000a
+ call CopyBytes
+ pop af
+ ld hl, PartyMon1ID
+ ld bc, $0030
+ call AddNTimes
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld a, [CurPartySpecies]
+ ld [de], a
+ inc de
+ pop bc
+ ld a, b
+ ld [de], a
+ jp CloseSRAM
+; 44725
+
+Function44725: ; 44725
+ ld a, $0
+ call GetSRAMBank
+ ld hl, $a600
+ ld de, $a71a
+ ld bc, $011a
+ call CopyBytes
+ ld hl, $a834
+ ld de, $aa0b
+ ld bc, $01d7
+ call CopyBytes
+ jp CloseSRAM
+; 44745
+
+INCBIN "baserom.gbc", $44745, $447a0 - $44745
+
_KrisMailBoxMenu: ; 0x447a0
call InitMail
jr z, .nomail
- call $1d6e
- call $4806
- jp $1c17
+ call Function1d6e
+ call Function44806
+ jp Function1c17
.nomail
ld hl, .EmptyMailboxText
- jp $1d67
+ jp Function1d67
; 0x447b4
.EmptyMailboxText ; 0x447b4
@@ -13550,30 +48979,30 @@
Function44806: ; 0x44806
xor a
- ld [$d0f0], a
+ ld [CurMart], a
ld a, $1
ld [$d0f1], a
.asm_4480f
call InitMail
- ld hl, $494c
- call $1d3c
+ ld hl, MenuData4494c
+ call Function1d3c
xor a
ld [hBGMapMode], a
- call $352f
- call $1ad2
+ call Function352f
+ call Function1ad2
ld a, [$d0f1]
ld [$cf88], a
- ld a, [$d0f0]
+ ld a, [CurMart]
ld [$d0e4], a
- call $350c
+ call Function350c
ld a, [$d0e4]
- ld [$d0f0], a
+ ld [CurMart], a
ld a, [$cfa9]
ld [$d0f1], a
ld a, [$cf73]
cp $2
jr z, .asm_44848
- call $484a
+ call Function4484a
jr .asm_4480f
.asm_44848
@@ -13583,9 +49012,9 @@
Function4484a: ; 0x4484a
ld hl, MenuData44964
- call $1d35
- call $1d81
- call $1c07
+ call LoadMenuDataHeader
+ call Function1d81
+ call Function1c07
jr c, .asm_44860
ld a, [$cfa9]
dec a
@@ -13608,14 +49037,14 @@
dec a
ld b, a
call $45f4
- jp $2b3c
+ jp Function2b3c
; 0x44877
.PutInPack ; 0x44877
ld hl, .MessageLostText
- call $1d4f
- call $1dcf
- call $1c07
+ call Function1d4f
+ call Function1dcf
+ call Function1c07
ret c
ld a, [MenuSelection]
dec a
@@ -13623,10 +49052,10 @@
ld a, $1
ld [$d10c], a
ld hl, NumItems
- call $2f66
+ call Function2f66
jr c, .asm_4489e
ld hl, .PackFullText
- jp $1d67
+ jp Function1d67
.asm_4489e
ld a, [MenuSelection]
@@ -13634,7 +49063,7 @@
ld b, a
call $45c0
ld hl, .PutAwayText
- jp $1d67
+ jp Function1d67
; 0x448ac
.PutAwayText ; 0x448ac
@@ -13665,8 +49094,8 @@
.AttachMail ; 0x448d2
call FadeToMenu
xor a
- ld [$d141], a
- call $31f3
+ ld [PartyMenuActionText], a
+ call WhiteBGMap
.asm_448dc
ld a, $14
ld hl, $404f
@@ -13678,13 +49107,13 @@
ld hl, $43e0
rst $8
ld a, $14
- ld hl, $405f
+ ld hl, PickedFruitTree
rst $8
ld a, $14
ld hl, $449a
rst $8
- call $31f6
- call $32f9
+ call WaitBGMap
+ call Function32f9
call DelayFrame
ld a, $14
ld hl, $4457
@@ -13716,7 +49145,7 @@
call PrintText
.asm_44939
- jp $2b3c
+ jp Function2b3c
; 0x4493c
.HoldingMailText ; 0x4493c
@@ -13767,13 +49196,169 @@
SECTION "bank12",ROMX,BANK[$12]
-INCBIN "baserom.gbc", $48000, $48e9b - $48000
+Function48000: ; 48000
+ ld a, $1
+ ld [$d474], a
+ xor a
+ ld [$d473], a
+ ld [PlayerGender], a
+ ld [$d475], a
+ ld [$d476], a
+ ld [$d477], a
+ ld [$d478], a
+ ld [DefaultFlypoint], a
+ ld [$d003], a
+ ld a, [$d479]
+ res 0, a
+ ld [$d479], a
+ ld a, [$d479]
+ res 1, a
+ ld [$d479], a
+ ret
+; 4802f
+INCBIN "baserom.gbc", $4802f, $48e81 - $4802f
+
+
+Function48e81: ; 48e81
+ ld hl, $4e93
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld hl, $9500
+ ld bc, $120f
+ call Request2bpp
+ ret
+; 48e93
+
+INCBIN "baserom.gbc", $48e93, $48e9b - $48e93
+
PackFGFX:
INCBIN "gfx/misc/pack_f.2bpp"
-INCBIN "baserom.gbc", $4925b, $49962 - $4925b
+Function4925b: ; 4925b
+ call FadeToMenu
+ call WhiteBGMap
+ call Functionfdb
+ call DelayFrame
+ ld b, $14
+ call GetSGBLayout
+ xor a
+ ld [$d142], a
+ call Function492a5
+ ld [$d265], a
+ ld [$d262], a
+ call GetMoveName
+ call CopyName1
+ ld a, $b
+ ld hl, $47fb
+ rst FarCall
+ jr c, .asm_4929c
+ jr .asm_49291
+.asm_49289
+ ld a, $b
+ ld hl, $480a
+ rst FarCall
+ jr c, .asm_4929c
+
+.asm_49291
+ call Function492b9
+ jr nc, .asm_49289
+ xor a
+ ld [ScriptVar], a
+ jr .asm_492a1
+
+.asm_4929c
+ ld a, $ff
+ ld [ScriptVar], a
+
+.asm_492a1
+ call Function2b3c
+ ret
+; 492a5
+
+Function492a5: ; 492a5
+ ld a, [ScriptVar]
+ cp $1
+ jr z, .asm_492b3
+ cp $2
+ jr z, .asm_492b6
+ ld a, $3a
+ ret
+
+.asm_492b3
+ ld a, $35
+ ret
+
+.asm_492b6
+ ld a, $55
+ ret
+; 492b9
+
+Function492b9: ; 492b9
+ ld hl, $530a
+ call LoadMenuDataHeader
+ ld a, $e
+ call Predef
+ push bc
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ pop bc
+ ld a, c
+ and a
+ jr nz, .asm_492e5
+ push de
+ ld de, SFX_WRONG
+ call StartSFX
+ pop de
+ ld a, $b
+ ld hl, $48ce
+ call Function31b0
+ jr .asm_49300
+
+.asm_492e5
+ ld hl, $79ea
+ ld a, $3
+ rst FarCall
+ jr c, .asm_49300
+ ld a, $0
+ call Predef
+ ld a, b
+ and a
+ jr z, .asm_49300
+ ld c, $5
+ callab ChangeHappiness
+ jr .asm_49305
+
+.asm_49300
+ call Function1c07
+ and a
+ ret
+
+.asm_49305
+ call Function1c07
+ scf
+ ret
+; 4930a
+
+INCBIN "baserom.gbc", $4930a, $49409 - $4930a
+
+
+Function49409: ; 49409
+ ld hl, $5418
+ ld de, $d038
+ ld bc, $0008
+ ld a, $5
+ call Function306b
+ ret
+; 49418
+
+INCBIN "baserom.gbc", $49418, $49962 - $49418
+
SpecialCelebiGFX:
INCBIN "gfx/special/celebi/leaf.2bpp"
INCBIN "gfx/special/celebi/1.2bpp"
@@ -13781,28 +49366,67 @@
INCBIN "gfx/special/celebi/3.2bpp"
INCBIN "gfx/special/celebi/4.2bpp"
-INCBIN "baserom.gbc", $49aa2, $49d24 - $49aa2
+INCBIN "baserom.gbc", $49aa2, $49cdc - $49aa2
-ContinueText: ; 0x49d24
+MainMenu: ; 49cdc
+ xor a
+ ld [$c2d7], a
+ call Function49ed0
+ ld b, $8
+ call GetSGBLayout
+ call Function32f9
+ ld hl, GameTimerPause
+ res 0, [hl]
+ call Function49da4
+ ld [$cf76], a
+ call Function49e09
+ ld hl, MenuDataHeader_0x49d14
+ call LoadMenuDataHeader
+ call Function49de4
+ call Function1c17
+ jr c, .quit
+ call ClearTileMap
+ ld a, [MenuSelection]
+ ld hl, Label49d60
+ rst JumpTable
+ jr MainMenu
+
+.quit
+ ret
+; 49d14
+
+MenuDataHeader_0x49d14: ; 49d14
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 07, 16 ; end coords
+ dw MenuData2_0x49d1c
+ db 1 ; default option
+; 49d1c
+
+MenuData2_0x49d1c: ; 49d1c
+ db $80 ; flags
+ db 0 ; items
+ dw MainMenuItems
+ dw Function1f79
+ dw MainMenuText
+; 49d20
+
+MainMenuText: ; 49d24
db "CONTINUE@"
-NewGameText: ; 0x49d2d
db "NEW GAME@"
-OptionText: ; 0x49d36
db "OPTION@"
-MysteryGiftText: ; 0x49d3d
db "MYSTERY GIFT@"
-MobileText: ; 0x49d4a
db "MOBILE@"
-MobileStudiumText: ; 0x49d51
db "MOBILE STUDIUM@"
Label49d60: ; 0x49d60
- dw $5eee ; XXX is this ContinueASM?
- dw $5ee0 ; XXX is this NewGameASM?
- dw $5ee7 ; XXX is this OptionASM?
- dw $5ef5 ; XXX is this MysteryGiftASM?
- dw $5efc ; XXX is this MobileASM?
- dw $6496 ; XXX is this MobileStudiumASM?
+ dw MainMenu_Continue
+ dw MainMenu_NewGame
+ dw MainMenu_Options
+ dw MainMenu_MysteryGift
+ dw MainMenu_Mobile
+ dw MainMenu_MobileStudium
+; 0x49d6c
CONTINUE EQU 0
NEW_GAME EQU 1
@@ -13811,6 +49435,8 @@
MOBILE EQU 4
MOBILE_STUDIUM EQU 5
+MainMenuItems:
+
NewGameMenu: ; 0x49d6c
db 2
db NEW_GAME
@@ -13885,8 +49511,393 @@
db MOBILE_STUDIUM
db $ff
-INCBIN "baserom.gbc", $49da4, $4a6e8 - $49da4
+Function49da4: ; 49da4
+ nop
+ nop
+ nop
+ ld a, [$cfcd]
+ and a
+ jr nz, .asm_49db0
+ ld a, $0
+ ret
+
+.asm_49db0
+ ld a, [hCGB]
+ cp $1
+ ld a, $1
+ ret nz
+ ld a, $0
+ call GetSRAMBank
+ ld a, [$abe5]
+ cp $ff
+ call CloseSRAM
+ jr nz, .asm_49dd6
+ ld a, [StatusFlags]
+ bit 7, a
+ ld a, $1
+ jr z, .asm_49dd1
+ jr .asm_49dd1
+
+.asm_49dd1
+ jr .asm_49dd3
+
+.asm_49dd3
+ ld a, $1
+ ret
+
+.asm_49dd6
+ ld a, [StatusFlags]
+ bit 7, a
+ jr z, .asm_49ddf
+ jr .asm_49ddf
+
+.asm_49ddf
+ jr .asm_49de1
+
+.asm_49de1
+ ld a, $6
+ ret
+; 49de4
+
+Function49de4: ; 49de4
+ call SetUpMenu
+.asm_49de7
+ call Function49e09
+ ld a, [$cfa5]
+ set 5, a
+ ld [$cfa5], a
+ call Function1f1a
+ ld a, [$cf73]
+ cp $2
+ jr z, .asm_49e07
+ cp $1
+ jr z, .asm_49e02
+ jr .asm_49de7
+
+.asm_49e02
+ call PlayClickSFX
+ and a
+ ret
+
+.asm_49e07
+ scf
+ ret
+; 49e09
+
+Function49e09: ; 49e09
+ ld a, [$cfcd]
+ and a
+ ret z
+ xor a
+ ld [hBGMapMode], a
+ call Function49e27
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function49e3d
+ pop af
+ ld [Options], a
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 49e27
+
+
+Function49e27: ; 49e27
+ call $06e3
+ and $80
+ jr nz, .asm_49e39
+ ld hl, $c5b8
+ ld b, $2
+ ld c, $12
+ call TextBox
+ ret
+
+.asm_49e39
+ call SpeechTextBox
+ ret
+; 49e3d
+
+
+Function49e3d: ; 49e3d
+ ld a, [$cfcd]
+ and a
+ ret z
+ call $06e3
+ and $80
+ jp nz, Function49e75
+ call UpdateTime
+ call GetWeekday
+ ld b, a
+ decoord 1, 15
+ call Function49e91
+ decoord 4, 16
+ ld a, [hHours]
+ ld c, a
+ ld a, $24
+ ld hl, $4b3e
+ rst FarCall
+ ld [hl], $9c
+ inc hl
+ ld de, hMinutes
+ ld bc, $8102
+ call PrintNum
+ ret
+; 49e70
+
+; 49e70
+ db "min.@"
+; 49e75
+
+Function49e75: ; 49e75
+ hlcoord 1, 14
+ ld de, .TimeNotSet
+ call PlaceString
+ ret
+; 49e7f
+
+.TimeNotSet ; 49e7f
+ db "TIME NOT SET@"
+; 49e8c
+
+UnknownText_0x49e8c: ; 49e8c
+ text_jump UnknownText_0x1c5182, BANK(UnknownText_0x1c5182)
+ db "@"
+; 49e91
+
+Function49e91: ; 49e91
+ push de
+ ld hl, .Days
+ ld a, b
+ call GetNthString
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, .Day
+ call PlaceString
+ ret
+; 49ea8
+
+.Days
+ db "SUN@"
+ db "MON@"
+ db "TUES@"
+ db "WEDNES@"
+ db "THURS@"
+ db "FRI@"
+ db "SATUR@"
+.Day
+ db "DAY@"
+; 49ed0
+
+Function49ed0: ; 49ed0
+ xor a
+ ld [$ffde], a
+ call ClearTileMap
+ call Functione5f
+ call $0e51
+ call Function1fbf
+ ret
+; 49ee0
+
+
+MainMenu_NewGame: ; 49ee0
+ callba NewGame
+ ret
+; 49ee7
+
+MainMenu_Options: ; 49ee7
+ callba OptionsMenu
+ ret
+; 49eee
+
+MainMenu_Continue: ; 49eee
+ callba Continue
+ ret
+; 49ef5
+
+MainMenu_MysteryGift: ; 49ef5
+ callba MysteryGift
+ ret
+; 49efc
+
+MainMenu_Mobile: ; 49efc
+ call WhiteBGMap
+ ld a, MUSIC_MOBILE_ADAPTER_MENU
+ ld [CurMusic], a
+ ld de, MUSIC_MOBILE_ADAPTER_MENU
+ call $66c5
+ call WhiteBGMap
+ call $63a7
+ call $6492
+ call WhiteBGMap
+ call $6071
+ ld c, $c
+ call DelayFrames
+ ld hl, $c4a4
+ ld b, $a
+ ld c, $a
+ call $4cdc
+ ld hl, $c4ce
+ ld de, MobileString1
+ call PlaceString
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call TextBox
+ xor a
+ ld de, String_0x49fe9
+ ld hl, $c5b9
+ call PlaceString
+ call Function3200
+ call Function32f9
+ call Function1bc9
+ ld hl, $cfa9
+ ld b, [hl]
+ push bc
+ jr .asm_49f5d
+
+.asm_49f55
+ call Function1bd3
+ ld hl, $cfa9
+ ld b, [hl]
+ push bc
+
+.asm_49f5d
+ bit 0, a
+ jr nz, .asm_49f67
+ bit 1, a
+ jr nz, .asm_49f84
+ jr .asm_49f97
+
+.asm_49f67
+ ld hl, $cfa9
+ ld a, [hl]
+ cp $1
+ jp z, $6098
+ cp $2
+ jp z, $60b9
+ cp $3
+ jp z, $60c2
+ cp $4
+ jp z, $6100
+ ld a, $1
+ call Function1ff8
+
+.asm_49f84
+ pop bc
+ call WhiteBGMap
+ call ClearTileMap
+ ld a, MUSIC_MAIN_MENU
+ ld [CurMusic], a
+ ld de, MUSIC_MAIN_MENU
+ call $66c5
+ ret
+
+.asm_49f97
+ ld hl, $cfa9
+ ld a, [hl]
+ dec a
+ ld hl, MobileStrings2
+ call GetNthString
+ ld d, h
+ ld e, l
+ ld hl, $c5a5
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ ld hl, $c5b9
+ call PlaceString
+ jp .asm_49fb7
+
+.asm_49fb7
+ call $6071
+ pop bc
+ ld hl, $cfa9
+ ld [hl], b
+ ld b, $a
+ ld c, $1
+ ld hl, $c4b9
+ call ClearBox
+ jp .asm_49f55
+; 49fcc
+
+
+MobileString1: ; 49fcc
+ db "めいしフ,ルダー", $4e
+ db "あいさつ", $4e
+ db "プロフィール", $4e
+ db "せ", $1e, "い", $4e
+ db "もどる@"
+; 49fe9
+
+
+MobileStrings2:
+
+String_0x49fe9: ; 49fe9
+ db "めいし", $1f, "つくったり", $4e
+ db "ほぞんしておける フ,ルダーです@"
+; 4a004
+
+String_0x4a004: ; 4a004
+ db "モバイルたいせんや じぶんのめいしで", $4e
+ db "つかう あいさつ", $1f, "つくります@"
+; 4a026
+
+String_0x4a026: ; 4a026
+ db "あなた", $25, "じゅうしょや ねんれいの", $4e
+ db "せ", $1e, "い", $1f, "かえられます@"
+; 4a042
+
+String_0x4a042: ; 4a042
+ db "モバイルセンター", $1d, "せつぞくするとき", $4e
+ db "ひつような こと", $1f, "きめます@"
+; 4a062
+
+String_0x4a062: ; 4a062
+ db "まえ", $25, "がめん ", $1d, "もどります", $4e
+ db "@"
+; 4a071
+
+
+INCBIN "baserom.gbc", $4a071, $4a496 - $4a071
+
+
+MainMenu_MobileStudium: ; 4a496
+ ld a, [StartDay]
+ ld b, a
+ ld a, [StartHour]
+ ld c, a
+ ld a, [StartMinute]
+ ld d, a
+ ld a, [StartSecond]
+ ld e, a
+ push bc
+ push de
+ callba MobileStudium
+ call WhiteBGMap
+ pop de
+ pop bc
+ ld a, b
+ ld [StartDay], a
+ ld a, c
+ ld [StartHour], a
+ ld a, d
+ ld [StartMinute], a
+ ld a, e
+ ld [StartSecond], a
+ ret
+; 4a4c4
+
+
+INCBIN "baserom.gbc", $4a4c4, $4a6e8 - $4a4c4
+
+
SpecialBeastsCheck: ; 0x4a6e8
; Check if the player owns all three legendary beasts.
; They must exist in either party or PC, and have the player's OT and ID.
@@ -14150,8 +50161,94 @@
SECTION "bank13",ROMX,BANK[$13]
-INCBIN "baserom.gbc", $4c000, $4c075 - $4c000
+Function4c000: ; 4c000
+ ld hl, TileMap
+ ld de, AttrMap
+ ld b, $12
+.asm_4c008
+ push bc
+ ld c, $14
+.asm_4c00b
+ ld a, [hl]
+ push hl
+ srl a
+ jr c, .asm_4c021
+ ld hl, TileSetPalettes
+ add [hl]
+ ld l, a
+ ld a, [$d1e7]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ and $f
+ jr .asm_4c031
+.asm_4c021
+ ld hl, TileSetPalettes
+ add [hl]
+ ld l, a
+ ld a, [$d1e7]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ swap a
+ and $f
+
+.asm_4c031
+ pop hl
+ ld [de], a
+ res 7, [hl]
+ inc hl
+ inc de
+ dec c
+ jr nz, .asm_4c00b
+ pop bc
+ dec b
+ jr nz, .asm_4c008
+ ret
+; 4c03f
+
+Function4c03f: ; 4c03f
+ ld hl, BGMapBuffer
+ ld de, BGMapPalBuffer
+.asm_4c045
+ ld a, [hl]
+ push hl
+ srl a
+ jr c, .asm_4c05b
+ ld hl, TileSetPalettes
+ add [hl]
+ ld l, a
+ ld a, [$d1e7]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ and $f
+ jr .asm_4c06b
+
+.asm_4c05b
+ ld hl, TileSetPalettes
+ add [hl]
+ ld l, a
+ ld a, [$d1e7]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ swap a
+ and $f
+
+.asm_4c06b
+ pop hl
+ ld [de], a
+ res 7, [hl]
+ inc hl
+ inc de
+ dec c
+ jr nz, .asm_4c045
+ ret
+; 4c075
+
+
Tileset03PalMap: ; 0x4c075
INCBIN "tilesets/03_palette_map.bin"
; 0x4c0e5
@@ -14283,10 +50380,13 @@
INCBIN "baserom.gbc", $4ce05, $4ce1f - $4ce05
-TileTypeTable: ; 4ce1f
-; 256 tiletypes
-; 00 = land
-; 01 = water
+TileCollisionTable: ; 4ce1f
+; 00 land
+; 01 water
+; 0f wall
+; 11 talkable water
+; 1f talkable wall
+
db $00, $00, $00, $00, $00, $00, $00, $0f
db $00, $00, $00, $00, $00, $00, $00, $0f
db $00, $00, $1f, $00, $00, $1f, $00, $00
@@ -14295,7 +50395,7 @@
db $01, $01, $11, $00, $11, $01, $01, $0f
db $01, $01, $01, $01, $01, $01, $01, $01
db $01, $01, $01, $01, $01, $01, $01, $01
-
+
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
@@ -14304,7 +50404,7 @@
db $00, $00, $0f, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
-
+
db $0f, $0f, $0f, $0f, $0f, $00, $00, $00
db $0f, $0f, $0f, $0f, $0f, $00, $00, $00
db $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
@@ -14313,7 +50413,7 @@
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00
-
+
db $01, $01, $01, $01, $01, $01, $01, $01
db $01, $01, $01, $01, $01, $01, $01, $01
db $00, $00, $00, $00, $00, $00, $00, $00
@@ -14324,8 +50424,594 @@
db $00, $00, $00, $00, $00, $00, $00, $0f
; 4cf1f
-INCBIN "baserom.gbc", $4cf1f, $4d596 - $4cf1f
+Function4cf1f: ; 4cf1f
+ ld a, $0
+ call Function4cf34
+ ld a, $1
+ call Function4cf34
+ ld a, $2
+ call Function4cf34
+ ld a, $3
+ call Function4cf34
+ ret
+; 4cf34
+Function4cf34: ; 4cf34
+ call GetSRAMBank
+ ld hl, $a000
+ ld bc, $2000
+ xor a
+ call ByteFill
+ call CloseSRAM
+ ret
+; 4cf45
+
+INCBIN "baserom.gbc", $4cf45, $4cffe - $4cf45
+
+
+Function4cffe: ; 4cffe
+ ld a, $1
+ call GetSRAMBank
+ ld a, [$a008]
+ ld b, a
+ ld a, [$ad0f]
+ ld c, a
+ call CloseSRAM
+ ld a, b
+ cp $63
+ jr nz, .asm_4d01b
+ ld a, c
+ cp $7f
+ jr nz, .asm_4d01b
+ ld c, $1
+ ret
+
+.asm_4d01b
+ ld c, $0
+ ret
+; 4d01e
+
+INCBIN "baserom.gbc", $4d01e, $4d15b - $4d01e
+
+
+Function4d15b: ; 4d15b
+ ld hl, EnemyMoveAnimation
+ ld a, [$d196]
+ and a
+ jr z, .asm_4d168
+ ld bc, $0030
+ add hl, bc
+
+.asm_4d168
+ ld a, [$d197]
+ and a
+ jr z, .asm_4d170
+ inc hl
+ inc hl
+
+.asm_4d170
+ ld de, TileMap
+ ld b, $12
+.asm_4d175
+ ld c, $14
+.asm_4d177
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_4d177
+ ld a, l
+ add $4
+ ld l, a
+ jr nc, .asm_4d184
+ inc h
+
+.asm_4d184
+ dec b
+ jr nz, .asm_4d175
+ ret
+; 4d188
+
+Function4d188: ; 4d188
+ ld a, [hCGB]
+ and a
+ jp z, WaitBGMap
+ ld a, [$c2ce]
+ cp $0
+ jp z, WaitBGMap
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld a, [$ffde]
+ push af
+ xor a
+ ld [$ffde], a
+.asm_4d1a2
+ ld a, [rLY]
+ cp $8f
+ jr c, .asm_4d1a2
+ di
+ ld a, $1
+ ld [rVBK], a
+ ld hl, AttrMap
+ call Function4d1cb
+ ld a, $0
+ ld [rVBK], a
+ ld hl, TileMap
+ call Function4d1cb
+.asm_4d1bd
+ ld a, [rLY]
+ cp $8f
+ jr c, .asm_4d1bd
+ ei
+ pop af
+ ld [$ffde], a
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 4d1cb
+
+Function4d1cb: ; 4d1cb
+ ld [hSPBuffer], sp
+ ld sp, hl
+ ld a, [$ffd7]
+ ld h, a
+ ld l, $0
+ ld a, $12
+ ld [$ffd3], a
+ ld b, $2
+ ld c, $41
+.asm_4d1dc
+ pop de
+.asm_4d1dd
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_4d1dd
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_4d1e6
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_4d1e6
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_4d1ef
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_4d1ef
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_4d1f8
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_4d1f8
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_4d201
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_4d201
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_4d20a
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_4d20a
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_4d213
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_4d213
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_4d21c
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_4d21c
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_4d225
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_4d225
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ pop de
+.asm_4d22e
+ ld a, [$ff00+c]
+ and b
+ jr nz, .asm_4d22e
+ ld [hl], e
+ inc l
+ ld [hl], d
+ inc l
+ ld de, $000c
+ add hl, de
+ ld a, [$ffd3]
+ dec a
+ ld [$ffd3], a
+ jr nz, .asm_4d1dc
+ ld a, [hSPBuffer]
+ ld l, a
+ ld a, [$ffda]
+ ld h, a
+ ld sp, hl
+ ret
+; 4d249
+
+INCBIN "baserom.gbc", $4d249, $4d35b - $4d249
+
+
+Function4d35b: ; 4d35b
+ ld h, d
+ ld l, e
+ push bc
+ push hl
+ call Function4d37e
+ pop hl
+ pop bc
+ ld de, $0939
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ ld a, $7
+.asm_4d36e
+ push bc
+ push hl
+.asm_4d370
+ ld [hli], a
+ dec c
+ jr nz, .asm_4d370
+ pop hl
+ ld de, $0014
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_4d36e
+ ret
+; 4d37e
+
+Function4d37e: ; 4d37e
+ push hl
+ ld a, $76
+ ld [hli], a
+ inc a
+ call Function4d3ab
+ inc a
+ ld [hl], a
+ pop hl
+ ld de, $0014
+ add hl, de
+.asm_4d38d
+ push hl
+ ld a, $79
+ ld [hli], a
+ ld a, $7f
+ call Function4d3ab
+ ld [hl], $7a
+ pop hl
+ ld de, $0014
+ add hl, de
+ dec b
+ jr nz, .asm_4d38d
+ ld a, $7b
+ ld [hli], a
+ ld a, $7c
+ call Function4d3ab
+ ld [hl], $7d
+ ret
+; 4d3ab
+
+Function4d3ab: ; 4d3ab
+ ld d, c
+.asm_4d3ac
+ ld [hli], a
+ dec d
+ jr nz, .asm_4d3ac
+ ret
+; 4d3b1
+
+Function4d3b1: ; 4d3b1
+ ld a, $2
+ ld hl, $4000
+ rst FarCall
+ ld b, $8
+ call GetSGBLayout
+ call Functione51
+ call Functione5f
+ ld de, $0054
+ call StartMusic
+ ld hl, $5408
+ call PrintText
+ ld hl, $540d
+ call Function1d3c
+ call Function1d81
+ ret c
+ ld a, [$cfa9]
+ cp $1
+ ret z
+ call Function4d41e
+ jr c, .asm_4d3f7
+ ld a, $0
+ call GetSRAMBank
+ ld a, $80
+ ld [$ac60], a
+ call CloseSRAM
+ ld hl, $53fe
+ call PrintText
+ ret
+
+.asm_4d3f7
+ ld hl, $5403
+ call PrintText
+ ret
+; 4d3fe
+
+INCBIN "baserom.gbc", $4d3fe, $4d41e - $4d3fe
+
+Function4d41e: ; 4d41e
+ call Function4d50f
+ push de
+ ld hl, StringBuffer2
+ ld bc, $0005
+ xor a
+ call ByteFill
+ ld a, $4
+ ld [$d08b], a
+ ld hl, $5463
+ call PrintText
+.asm_4d437
+ call Function4d468
+.asm_4d43a
+ call Functiona57
+ ld a, [$ffa9]
+ ld b, a
+ and $1
+ jr nz, .asm_4d453
+ ld a, b
+ and $f0
+ jr z, .asm_4d43a
+ call Function4d490
+ ld c, $3
+ call DelayFrames
+ jr .asm_4d437
+
+.asm_4d453
+ call Function4d4e0
+ pop de
+ ld a, e
+ cp l
+ jr nz, .asm_4d461
+ ld a, d
+ cp h
+ jr nz, .asm_4d461
+ and a
+ ret
+
+.asm_4d461
+ scf
+ ret
+; 4d463
+
+INCBIN "baserom.gbc", $4d463, $4d468 - $4d463
+
+Function4d468: ; 4d468
+ ld hl, $c5da
+ ld de, StringBuffer2
+ ld c, $5
+.asm_4d470
+ ld a, [de]
+ add $f6
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .asm_4d470
+ ld hl, $c5ee
+ ld bc, $0005
+ ld a, $7f
+ call ByteFill
+ ld hl, $c5ee
+ ld a, [$d08b]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld [hl], $61
+ ret
+; 4d490
+
+Function4d490: ; 4d490
+ ld a, b
+ and $20
+ jr nz, .asm_4d4a5
+ ld a, b
+ and $10
+ jr nz, .asm_4d4af
+ ld a, b
+ and $40
+ jr nz, .asm_4d4ba
+ ld a, b
+ and $80
+ jr nz, .asm_4d4c8
+ ret
+
+.asm_4d4a5
+ ld a, [$d08b]
+ and a
+ ret z
+ dec a
+ ld [$d08b], a
+ ret
+
+.asm_4d4af
+ ld a, [$d08b]
+ cp $4
+ ret z
+ inc a
+ ld [$d08b], a
+ ret
+
+.asm_4d4ba
+ call Function4d4d5
+ ld a, [hl]
+ cp $9
+ jr z, .asm_4d4c5
+ inc a
+ ld [hl], a
+ ret
+
+.asm_4d4c5
+ ld [hl], $0
+ ret
+
+.asm_4d4c8
+ call Function4d4d5
+ ld a, [hl]
+ and a
+ jr z, .asm_4d4d2
+ dec a
+ ld [hl], a
+ ret
+
+.asm_4d4d2
+ ld [hl], $9
+ ret
+; 4d4d5
+
+Function4d4d5: ; 4d4d5
+ ld a, [$d08b]
+ ld e, a
+ ld d, $0
+ ld hl, StringBuffer2
+ add hl, de
+ ret
+; 4d4e0
+
+Function4d4e0: ; 4d4e0
+ ld hl, $0000
+ ld de, $d08a
+ ld bc, $0001
+ call $5501
+ ld bc, $000a
+ call $5501
+ ld bc, $0064
+ call $5501
+ ld bc, $03e8
+ call $5501
+ ld bc, $2710
+ ld a, [de]
+ dec de
+ push hl
+ ld hl, $0000
+ call AddNTimes
+ ld c, l
+ ld b, h
+ pop hl
+ add hl, bc
+ ret
+; 4d50f
+
+Function4d50f: ; 4d50f
+ ld a, $1
+ call GetSRAMBank
+ ld de, $0000
+ ld hl, $a009
+ ld c, $2
+ call Function4d533
+ ld hl, $a00b
+ ld c, $5
+ call Function4d53e
+ ld hl, $a3dc
+ ld c, $3
+ call Function4d533
+ call CloseSRAM
+ ret
+; 4d533
+
+Function4d533: ; 4d533
+.asm_4d533
+ ld a, [hli]
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ dec c
+ jr nz, .asm_4d533
+ ret
+; 4d53e
+
+Function4d53e: ; 4d53e
+.asm_4d53e
+ ld a, [hli]
+ cp $50
+ ret z
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ dec c
+ jr nz, .asm_4d53e
+ ret
+; 4d54c
+
+Function4d54c: ; 4d54c
+ ld a, $2
+ ld hl, $4000
+ rst FarCall
+ ld b, $8
+ call GetSGBLayout
+ call Functione51
+ call Functione5f
+ ld de, $0054
+ call StartMusic
+ ld hl, $5580
+ call PrintText
+ ld hl, $5585
+ call Function1d3c
+ call Function1d81
+ ret c
+ ld a, [$cfa9]
+ cp $1
+ ret z
+ ld a, $13
+ ld hl, $4f1f
+ rst FarCall
+ ret
+; 4d580
+
+INCBIN "baserom.gbc", $4d580, $4d596 - $4d580
+
Tilesets:
Tileset00: ; 0x4d596
@@ -14655,8 +51341,93 @@
ret
; 4d87a
-INCBIN "baserom.gbc", $4d87a, $4dc8a - $4d87a
+INCBIN "baserom.gbc", $4d87a, $4db3b - $4d87a
+
+Function4db3b: ; 4db3b
+ ld hl, $5b44
+ call PrintText
+ jp Function1dcf
+; 4db44
+
+INCBIN "baserom.gbc", $4db44, $4db49 - $4db44
+
+
+Function4db49: ; 4db49
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1CaughtLevel
+ call GetPartyLocation
+ ld a, [TimeOfDay]
+ inc a
+ rrca
+ rrca
+ ld b, a
+ ld a, [CurPartyLevel]
+ or b
+ ld [hli], a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ cp $1
+ jr nz, .asm_4db78
+ ld a, b
+ cp $14
+ jr nz, .asm_4db78
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+
+.asm_4db78
+ call GetWorldMapLocation
+ ld b, a
+ ld a, [PlayerGender]
+ rrca
+ or b
+ ld [hl], a
+ ret
+; 4db83
+
+Function4db83: ; 4db83
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $ad43
+ call $5b53
+ call CloseSRAM
+ ret
+; 4db92
+
+Function4db92: ; 4db92
+ push bc
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $ad43
+ pop bc
+ call $5baf
+ call CloseSRAM
+ ret
+; 4dba3
+
+Function4dba3: ; 4dba3
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1CaughtLevel
+ push bc
+ call GetPartyLocation
+ pop bc
+ xor a
+ ld [hli], a
+ ld a, $7e
+ rrc b
+ or b
+ ld [hl], a
+ ret
+; 4dbb8
+
+INCBIN "baserom.gbc", $4dbb8, $4dc8a - $4dbb8
+
StatsScreenInit: ; 4dc8a
ld hl, StatsScreenMain
jr .gotaddress
@@ -14677,7 +51448,7 @@
push hl
call WhiteBGMap
call ClearTileMap
- call $1ad2
+ call Function1ad2
ld a, $3e
ld hl, $753e
rst FarCall ; this loads graphics
@@ -14776,7 +51547,7 @@
ld de, FiveQMarkString
hlcoord 11, 5 ; $c50f
call PlaceString
- ld a, [$d129] ; egg status
+ ld a, [TempMonHappiness] ; egg status
ld de, EggSoonString
cp $6
jr c, .picked
@@ -14792,10 +51563,10 @@
call PlaceString
ld hl, $cf64
set 5, [hl]
- call $32f9 ; pals
- call $045a
+ call Function32f9 ; pals
+ call DelayFrame
ld hl, TileMap
- call $3786
+ call Function3786
ld a, $41
ld hl, $402d
rst FarCall
@@ -14829,19 +51600,838 @@
; 0x4e497
-INCBIN "baserom.gbc", $4e497, $4e831 - $4e497
+INCBIN "baserom.gbc", $4e497, $4e53f - $4e497
+
+Function4e53f: ; 4e53f
+ ld hl, $0022
+ add hl, bc
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_4e552
+ ld hl, $0020
+ add hl, bc
+ ld a, [hl]
+ and $27
+ jr nz, .asm_4e552
+ and a
+ ret
+
+.asm_4e552
+ scf
+ ret
+; 4e554
+
+INCBIN "baserom.gbc", $4e554, $4e5e1 - $4e554
+
+
+Function4e5e1: ; 4e5e1
+ push hl
+ push de
+ push bc
+ ld a, [CurSpecies]
+ push af
+ ld a, [rOBP0]
+ push af
+ ld a, [BaseDexNo]
+ push af
+ call Function4e607
+ pop af
+ ld [BaseDexNo], a
+ pop af
+ ld [rOBP0], a
+ pop af
+ ld [CurSpecies], a
+ pop bc
+ pop de
+ pop hl
+ ld a, [$d1ed]
+ and a
+ ret z
+ scf
+ ret
+; 4e607
+
+Function4e607: ; 4e607
+ ld a, $e4
+ ld [rOBP0], a
+ ld de, $0000
+ call StartMusic
+ callba Function8cf53
+ ld de, $6831
+ ld hl, VTiles0
+ ld bc, $1308
+ call Request2bpp
+ xor a
+ ld [Danger], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld a, [MagikarpLength]
+ ld [PlayerHPPal], a
+ ld c, $0
+ call Function4e703
+ ld a, [MagikarpLength]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call Function4e708
+ ld de, VTiles2
+ ld hl, $9310
+ ld bc, $0031
+ call Request2bpp
+ ld a, $31
+ ld [$d1ec], a
+ call Function4e755
+ ld a, [Buffer2]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call Function4e711
+ ld a, [MagikarpLength]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ ld a, $1
+ ld [hBGMapMode], a
+ call Function4e794
+ jr c, .asm_4e67c
+ ld a, [MagikarpLength]
+ call Function37ce
+
+.asm_4e67c
+ ld de, $0022
+ call StartMusic
+ ld c, $50
+ call DelayFrames
+ ld c, $1
+ call Function4e703
+ call Function4e726
+ jr c, .asm_4e6df
+ ld a, $cf
+ ld [$d1ec], a
+ call Function4e755
+ xor a
+ ld [$d1ed], a
+ ld a, [Buffer2]
+ ld [PlayerHPPal], a
+ ld c, $0
+ call Function4e703
+ call Function4e7a6
+ callba Function8cf53
+ call Function4e794
+ jr c, .asm_4e6de
+ ld a, [$c2c6]
+ push af
+ ld a, $1
+ ld [$c2c6], a
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [PlayerHPPal]
+ ld [CurPartySpecies], a
+ ld hl, $c4cf
+ ld d, $0
+ ld e, $4
+ ld a, $47
+ call Predef
+ pop af
+ ld [CurPartySpecies], a
+ pop af
+ ld [$c2c6], a
+ ret
+
+.asm_4e6de
+ ret
+
+.asm_4e6df
+ ld a, $1
+ ld [$d1ed], a
+ ld a, [MagikarpLength]
+ ld [PlayerHPPal], a
+ ld c, $0
+ call Function4e703
+ call Function4e7a6
+ callba Function8cf53
+ call Function4e794
+ ret c
+ ld a, [PlayerHPPal]
+ call Function37ce
+ ret
+; 4e703
+
+Function4e703: ; 4e703
+ ld b, $b
+ jp GetSGBLayout
+; 4e708
+
+Function4e708: ; 4e708
+ call GetBaseData
+ ld hl, $c4cf
+ jp Function3786
+; 4e711
+
+Function4e711: ; 4e711
+ call GetBaseData
+ ld a, $1
+ ld [$c2c6], a
+ ld de, VTiles2
+ ld a, $3e
+ call Predef
+ xor a
+ ld [$c2c6], a
+ ret
+; 4e726
+
+Function4e726: ; 4e726
+ call ClearJoypadPublic
+ ld bc, $010e
+.asm_4e72c
+ push bc
+ call Function4e779
+ pop bc
+ jr c, .asm_4e73f
+ push bc
+ call Function4e741
+ pop bc
+ inc b
+ dec c
+ dec c
+ jr nz, .asm_4e72c
+ and a
+ ret
+
+.asm_4e73f
+ scf
+ ret
+; 4e741
+
+Function4e741: ; 4e741
+.asm_4e741
+ ld a, $cf
+ ld [$d1ec], a
+ call Function4e755
+ ld a, $31
+ ld [$d1ec], a
+ call Function4e755
+ dec b
+ jr nz, .asm_4e741
+ ret
+; 4e755
+
+Function4e755: ; 4e755
+ push bc
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c4cf
+ ld bc, $0707
+ ld de, $000d
+.asm_4e762
+ push bc
+.asm_4e763
+ ld a, [$d1ec]
+ add [hl]
+ ld [hli], a
+ dec c
+ jr nz, .asm_4e763
+ pop bc
+ add hl, de
+ dec b
+ jr nz, .asm_4e762
+ ld a, $1
+ ld [hBGMapMode], a
+ call WaitBGMap
+ pop bc
+ ret
+; 4e779
+
+Function4e779: ; 4e779
+.asm_4e779
+ call DelayFrame
+ push bc
+ call Functiona57
+ ld a, [hJoyDown]
+ pop bc
+ and $2
+ jr nz, .asm_4e78c
+.asm_4e787
+ dec c
+ jr nz, .asm_4e779
+ and a
+ ret
+
+.asm_4e78c
+ ld a, [$d1e9]
+ and a
+ jr nz, .asm_4e787
+ scf
+ ret
+; 4e794
+
+Function4e794: ; 4e794
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ ld a, $13
+ ld hl, $653f
+ rst FarCall
+ ret
+; 4e7a6
+
+Function4e7a6: ; 4e7a6
+ ld a, [$d1ed]
+ and a
+ ret nz
+ ld de, SFX_EVOLVED
+ call StartSFX
+ ld hl, $cf63
+ ld a, [hl]
+ push af
+ ld [hl], $0
+.asm_4e7b8
+ call Function4e7cf
+ jr nc, .asm_4e7c2
+ call Function4e80c
+ jr .asm_4e7b8
+
+.asm_4e7c2
+ ld c, $20
+.asm_4e7c4
+ call Function4e80c
+ dec c
+ jr nz, .asm_4e7c4
+ pop af
+ ld [$cf63], a
+ ret
+; 4e7cf
+
+Function4e7cf: ; 4e7cf
+ ld hl, $cf63
+ ld a, [hl]
+ cp $20
+ ret nc
+ ld d, a
+ inc [hl]
+ and $1
+ jr nz, .asm_4e7e6
+ ld e, $0
+ call Function4e7e8
+ ld e, $10
+ call Function4e7e8
+
+.asm_4e7e6
+ scf
+ ret
+; 4e7e8
+
+Function4e7e8: ; 4e7e8
+ push de
+ ld de, $4858
+ ld a, $13
+ call Function3b2a
+ ld hl, $000b
+ add hl, bc
+ ld a, [$cf63]
+ and $e
+ sla a
+ pop de
+ add e
+ ld [hl], a
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $0
+ ld hl, $000c
+ add hl, bc
+ ld [hl], $10
+ ret
+; 4e80c
+
+Function4e80c: ; 4e80c
+ push bc
+ callab Function8cf69
+ ld a, [$ff9b]
+ and $e
+ srl a
+ inc a
+ inc a
+ and $7
+ ld b, a
+ ld hl, $c403
+ ld c, $28
+.asm_4e823
+ ld a, [hl]
+ or b
+ ld [hli], a
+ inc hl
+ inc hl
+ inc hl
+ dec c
+ jr nz, .asm_4e823
+ pop bc
+ call DelayFrame
+ ret
+; 4e831
+
+
EvolutionGFX:
INCBIN "gfx/evo/bubble_large.2bpp"
INCBIN "gfx/evo/bubble.2bpp"
-INCBIN "baserom.gbc", $4e881, $4f31c - $4e881
+Function4e881: ; 4e881
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ call $0e51
+ call $0e58
+ ld hl, VBGMap0
+ ld bc, VBlank5
+ ld a, $7f
+ call ByteFill
+ ld hl, AttrMap
+ ld bc, $0168
+ xor a
+ call ByteFill
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ call EnableLCD
+ ld hl, $68bd
+ call PrintText
+ call Function3200
+ call Function32f9
+ ret
+; 4e8bd
+INCBIN "baserom.gbc", $4e8bd, $4e8c2 - $4e8bd
+
+Function4e8c2: ; 4e8c2
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ call $0e51
+ call $0e58
+ ld hl, VBGMap0
+ ld bc, VBlank5
+ ld a, $7f
+ call ByteFill
+ ld hl, AttrMap
+ ld bc, $0168
+ xor a
+ call ByteFill
+ ld hl, $d000
+ ld c, $40
+.asm_4e8ee
+ ld a, $ff
+ ld [hli], a
+ ld a, $7f
+ ld [hli], a
+ dec c
+ jr nz, .asm_4e8ee
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ call EnableLCD
+ call Function3200
+ call Function32f9
+ ret
+; 4e906
+
+Function4e906: ; 4e906
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, $d000
+ ld bc, VBlank5
+ ld a, $7f
+ call ByteFill
+ ld hl, VBGMap0
+ ld de, $d000
+ ld b, $0
+ ld c, $40
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+; 4e929
+
+INCBIN "baserom.gbc", $4e929, $4e980 - $4e929
+
+
+Function4e980: ; 4e980
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call Function4e998
+ ld a, $43
+ ld [hLCDStatCustom], a
+ call Function4e9ab
+ xor a
+ ld [hLCDStatCustom], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 4e998
+
+Function4e998: ; 4e998
+ call Function4e9e5
+ ld a, $90
+ ld [hSCX], a
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ ret
+; 4e9ab
+
+Function4e9ab: ; 4e9ab
+ ld d, $90
+ ld e, $72
+ ld a, $48
+ inc a
+.asm_4e9b2
+ push af
+.asm_4e9b3
+ ld a, [rLY]
+ cp $60
+ jr c, .asm_4e9b3
+ ld a, d
+ ld [hSCX], a
+ call Function4e9f1
+ inc e
+ inc e
+ dec d
+ dec d
+ pop af
+ push af
+ cp $1
+ jr z, .asm_4e9ce
+ push de
+ call Function4e9d6
+ pop de
+
+.asm_4e9ce
+ call DelayFrame
+ pop af
+ dec a
+ jr nz, .asm_4e9b2
+ ret
+; 4e9d6
+
+Function4e9d6: ; 4e9d6
+ ld hl, $c401
+ ld c, $12
+ ld de, $0004
+.asm_4e9de
+ dec [hl]
+ dec [hl]
+ add hl, de
+ dec c
+ jr nz, .asm_4e9de
+ ret
+; 4e9e5
+
+Function4e9e5: ; 4e9e5
+ ld hl, $d100
+ ld a, $90
+ ld bc, $0090
+ call ByteFill
+ ret
+; 4e9f1
+
+Function4e9f1: ; 4e9f1
+ ld hl, $d100
+ ld a, d
+ ld c, $3e
+.asm_4e9f7
+ ld [hli], a
+ dec c
+ jr nz, .asm_4e9f7
+ ld a, e
+ ld c, $22
+.asm_4e9fe
+ ld [hli], a
+ dec c
+ jr nz, .asm_4e9fe
+ xor a
+ ld c, $30
+.asm_4ea05
+ ld [hli], a
+ dec c
+ jr nz, .asm_4ea05
+ ret
+; 4ea0a
+
+
+
+Function4ea0a: ; 4ea0a
+ ld a, c
+ push af
+ call SpeechTextBox
+ call MobileTextBorder
+ pop af
+ dec a
+ ld bc, $000c
+ ld hl, $dc1a
+ call AddNTimes
+ ld de, $cd53
+ ld bc, $000c
+ ld a, $5
+ call Function306b
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld bc, $cd53
+ ld de, $c5b9
+ ld a, $47
+ ld hl, $40c6
+ rst FarCall
+ pop af
+ ld [rSVBK], a
+ ld c, $b4
+ call DelayFrames
+ ret
+; 4ea44
+
+
+
+Function4ea44: ; 4ea44
+ ld a, $0
+ ld hl, InLinkBattle
+ call Function307b
+ cp $4
+ jr z, .asm_4ea59
+ ld a, [Options]
+ bit 7, a
+ jr nz, .asm_4ea80
+ and a
+ ret
+
+.asm_4ea59
+ ld a, [$cd2f]
+ and a
+ jr nz, .asm_4ea72
+ ld a, $4
+ call GetSRAMBank
+ ld a, [$a60c]
+ ld c, a
+ call CloseSRAM
+ ld a, c
+ bit 0, c
+ jr z, .asm_4ea80
+ and a
+ ret
+
+.asm_4ea72
+ ld a, $5
+ ld hl, $dc00
+ call Function307b
+ bit 0, a
+ jr z, .asm_4ea80
+ and a
+ ret
+
+.asm_4ea80
+ scf
+ ret
+; 4ea82
+
+
+
+Function4ea82: ; 4ea82
+ ld a, [hCGB]
+ and a
+ ret nz
+ ld de, $0000
+ call StartMusic
+ call ClearTileMap
+ ld hl, $6b76
+ ld de, $d000
+ ld a, [rSVBK]
+ push af
+ ld a, $0
+ ld [rSVBK], a
+ call Decompress
+ pop af
+ ld [rSVBK], a
+ ld de, $d000
+ ld hl, VTiles2
+ ld bc, Text_1354
+ call Get2bpp
+ ld de, $4200
+ ld hl, VTiles1
+ ld bc, Function3e80
+ call Get1bpp
+ call Function4eac5
+ call WaitBGMap
+.asm_4eac0
+ call DelayFrame
+ jr .asm_4eac0
+; 4eac5
+
+Function4eac5: ; 4eac5
+ call Function4eaea
+ ld hl, $c4cb
+ ld b, $e
+ ld c, $4
+ ld a, $8
+ call Function4eb27
+ ld hl, $c51d
+ ld b, $a
+ ld c, $2
+ ld a, $40
+ call Function4eb27
+ ld de, $6b38
+ ld hl, $c569
+ call PlaceString
+ ret
+; 4eaea
+
+Function4eaea: ; 4eaea
+ ld hl, TileMap
+ ld [hl], $0
+ inc hl
+ ld a, $1
+ call Function4eb15
+ ld [hl], $2
+ ld hl, $c4b4
+ ld a, $3
+ call Function4eb1c
+ ld hl, $c4c7
+ ld a, $4
+ call Function4eb1c
+ ld hl, $c5f4
+ ld [hl], $5
+ inc hl
+ ld a, $6
+ call Function4eb15
+ ld [hl], $7
+ ret
+; 4eb15
+
+Function4eb15: ; 4eb15
+ ld c, $12
+.asm_4eb17
+ ld [hli], a
+ dec c
+ jr nz, .asm_4eb17
+ ret
+; 4eb1c
+
+Function4eb1c: ; 4eb1c
+ ld de, $0014
+ ld c, $10
+.asm_4eb21
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_4eb21
+ ret
+; 4eb27
+
+Function4eb27: ; 4eb27
+ ld de, $0014
+.asm_4eb2a
+ push bc
+ push hl
+.asm_4eb2c
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .asm_4eb2c
+ pop hl
+ add hl, de
+ pop bc
+ dec c
+ jr nz, .asm_4eb2a
+ ret
+; 4eb38
+
+INCBIN "baserom.gbc", $4eb38, $4f301 - $4eb38
+
+
+Function4f301: ; 4f301
+ ld hl, $001e
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ jr z, .asm_4f319
+ cp $7f
+ jr z, .asm_4f319
+ ld a, [hl]
+ and $80
+ jr nz, .asm_4f316
+ ld c, $1
+ ret
+
+.asm_4f316
+ ld c, $2
+ ret
+
+.asm_4f319
+ ld c, $0
+ ret
+; 4f31c
+
+
+
SECTION "bank14",ROMX,BANK[$14]
-INCBIN "baserom.gbc", $50000, $5005f-$50000
+Function50000: ; 50000
+ call Function2ed3
+ xor a
+ ld [PartyMenuActionText], a
+ call WhiteBGMap
+ call Function5003f
+ call WaitBGMap
+ call Function32f9
+ call DelayFrame
+ call PartyMenuSelect
+ call Function2b74
+ ret
+; 5001d
+
+Function5001d: ; 5001d
+ ld a, b
+ ld [PartyMenuActionText], a
+ call Function2ed3
+ call WhiteBGMap
+ call Function5003f
+ call WaitBGMap
+ ld b, $a
+ call GetSGBLayout
+ call Function32f9
+ call DelayFrame
+ call PartyMenuSelect
+ call Function2b74
+ ret
+; 5003f
+
+Function5003f: ; 5003f
+ call Function5004f
+ call Function50405
+ call Function503e0
+ call WritePartyMenuTilemap
+ call PrintPartyMenuText
+ ret
+; 5004f
+
+Function5004f: ; 5004f
+ call $0e58
+ ld hl, $4ad1
+ ld a, $2
+ rst FarCall
+ ld hl, $6814
+ ld a, $23
+ rst FarCall
+ ret
+; 5005f
+
+
WritePartyMenuTilemap: ; 0x5005f
ld hl, Options
ld a, [hl]
@@ -14853,7 +52443,7 @@
ld bc, $0168
ld a, " "
call ByteFill ; blank the tilemap
- call $4396 ; This reads from a pointer table???
+ call Function50396 ; This reads from a pointer table???
.asm_50077
ld a, [hli]
cp $ff
@@ -14869,12 +52459,538 @@
ret
; 0x50089
-INCBIN "baserom.gbc", $50089, $50457-$50089
+INCBIN "baserom.gbc", $50089, $500cf - $50089
+
+Function500cf: ; 500cf
+ xor a
+ ld [$cda9], a
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, $0
+ ld hl, $c4d3
+.asm_500de
+ push bc
+ push hl
+ call Function50389
+ jr z, .asm_50103
+ push hl
+ call Function50117
+ pop hl
+ ld d, $6
+ ld b, $0
+ call DrawHPBar
+ ld hl, $cd9b
+ ld a, [$cda9]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ call SetHPPal
+ ld b, $fc
+ call GetSGBLayout
+
+.asm_50103
+ ld hl, $cda9
+ inc [hl]
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .asm_500de
+ ld b, $a
+ call GetSGBLayout
+ ret
+; 50117
+
+Function50117: ; 50117
+ ld a, b
+ ld bc, $0030
+ ld hl, PartyMon1CurHP
+ call AddNTimes
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_50129
+ xor a
+ ld e, a
+ ld c, a
+ ret
+
+.asm_50129
+ dec hl
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld e, a
+ ld a, $4
+ call Predef
+ ret
+; 50138
+
+Function50138: ; 50138
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, $0
+ ld hl, $c4c1
+.asm_50143
+ push bc
+ push hl
+ call Function50389
+ jr z, .asm_5016b
+ push hl
+ ld a, b
+ ld bc, $0030
+ ld hl, PartyMon1CurHP
+ call AddNTimes
+ ld e, l
+ ld d, h
+ pop hl
+ push de
+ ld bc, $0203
+ call PrintNum
+ pop de
+ ld a, $f3
+ ld [hli], a
+ inc de
+ inc de
+ ld bc, $0203
+ call PrintNum
+
+.asm_5016b
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .asm_50143
+ ret
+; 50176
+
+Function50176: ; 50176
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, $0
+ ld hl, $c4d0
+.asm_50181
+ push bc
+ push hl
+ call Function50389
+ jr z, .asm_501a7
+ push hl
+ ld a, b
+ ld bc, $0030
+ ld hl, PartyMon1Level
+ call AddNTimes
+ ld e, l
+ ld d, h
+ pop hl
+ ld a, [de]
+ cp $64
+ jr nc, .asm_501a1
+ ld a, $6e
+ ld [hli], a
+ ld bc, $4102
+
+.asm_501a1
+ ld bc, $4103
+ call PrintNum
+
+.asm_501a7
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .asm_50181
+ ret
+; 501b2
+
+Function501b2: ; 501b2
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, $0
+ ld hl, $c4cd
+.asm_501bd
+ push bc
+ push hl
+ call Function50389
+ jr z, .asm_501d5
+ push hl
+ ld a, b
+ ld bc, $0030
+ ld hl, PartyMon1Status
+ call AddNTimes
+ ld e, l
+ ld d, h
+ pop hl
+ call Function50d0a
+
+.asm_501d5
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .asm_501bd
+ ret
+; 501e0
+
+Function501e0: ; 501e0
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, $0
+ ld hl, $c4d4
+.asm_501eb
+ push bc
+ push hl
+ call Function50389
+ jr z, .asm_5020a
+ push hl
+ ld hl, PartySpecies
+ ld e, b
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld a, $e
+ call Predef
+ pop hl
+ call Function50215
+ call PlaceString
+
+.asm_5020a
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .asm_501eb
+ ret
+; 50215
+
+Function50215: ; 50215
+ ld a, c
+ and a
+ jr nz, .asm_5021d
+ ld de, $4226
+ ret
+
+.asm_5021d
+ ld de, $4221
+ ret
+; 50221
+
+INCBIN "baserom.gbc", $50221, $5022f - $50221
+
+
+Function5022f: ; 5022f
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, $0
+ ld hl, $c4d4
+.asm_5023a
+ push bc
+ push hl
+ call Function50389
+ jr z, .asm_5025d
+ push hl
+ ld a, b
+ ld bc, $0030
+ ld hl, PartyMon1Species
+ call AddNTimes
+ ld a, [hl]
+ dec a
+ ld e, a
+ ld d, $0
+ ld hl, $65b1
+ add hl, de
+ add hl, de
+ call Function50268
+ pop hl
+ call PlaceString
+
+.asm_5025d
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .asm_5023a
+ ret
+; 50268
+
+Function50268: ; 50268
+ ld de, StringBuffer1
+ ld a, $10
+ ld bc, $0002
+ call FarCopyBytes
+ ld hl, StringBuffer1
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, StringBuffer1
+ ld a, $10
+ ld bc, $000a
+ call FarCopyBytes
+ ld hl, StringBuffer1
+.asm_50287
+ ld a, [hli]
+ and a
+ jr z, .asm_5029f
+ inc hl
+ inc hl
+ cp $2
+ jr nz, .asm_50287
+ dec hl
+ dec hl
+ ld a, [CurItem]
+ cp [hl]
+ inc hl
+ inc hl
+ jr nz, .asm_50287
+ ld de, $42a3
+ ret
+
+.asm_5029f
+ ld de, $42a8
+ ret
+; 502a3
+
+INCBIN "baserom.gbc", $502a3, $502b1 - $502a3
+
+
+Function502b1: ; 502b1
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, $0
+ ld hl, $c4d4
+.asm_502bc
+ push bc
+ push hl
+ call Function50389
+ jr z, .asm_502e3
+ ld [CurPartySpecies], a
+ push hl
+ ld a, b
+ ld [CurPartyMon], a
+ xor a
+ ld [MonType], a
+ call GetGender
+ ld de, $42fe
+ jr c, .asm_502df
+ ld de, $42ee
+ jr nz, .asm_502df
+ ld de, $42f5
+
+.asm_502df
+ pop hl
+ call PlaceString
+
+.asm_502e3
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .asm_502bc
+ ret
+; 502ee
+
+INCBIN "baserom.gbc", $502ee, $50307 - $502ee
+
+
+Function50307: ; 50307
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, $0
+ ld hl, $c4c0
+.asm_50312
+ push bc
+ push hl
+ ld de, $4372
+ call PlaceString
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .asm_50312
+ ld a, l
+ ld e, $b
+ sub e
+ ld l, a
+ ld a, h
+ sbc $0
+ ld h, a
+ ld de, $4379
+ call PlaceString
+ ld b, $3
+ ld c, $0
+ ld hl, DefaultFlypoint
+ ld a, [hl]
+.asm_5033b
+ push hl
+ push bc
+ ld hl, $c4c0
+.asm_50340
+ and a
+ jr z, .asm_5034a
+ ld de, $0028
+ add hl, de
+ dec a
+ jr .asm_50340
+
+.asm_5034a
+ ld de, $436b
+ push hl
+ call PlaceString
+ pop hl
+ pop bc
+ push bc
+ push hl
+ ld a, c
+ ld hl, $4383
+ call GetNthString
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ pop bc
+ pop hl
+ inc hl
+ ld a, [hl]
+ inc c
+ dec b
+ ret z
+ jr .asm_5033b
+; 5036b
+
+INCBIN "baserom.gbc", $5036b, $50389 - $5036b
+
+
+Function50389: ; 50389
+ ld a, $d8
+ add b
+ ld e, a
+ ld a, $dc
+ adc $0
+ ld d, a
+ ld a, [de]
+ cp $fd
+ ret
+; 50396
+
+Function50396: ; 50396
+ ld a, [PartyMenuActionText]
+ and $f0
+ jr nz, .asm_503ae
+ ld a, [PartyMenuActionText]
+ and $f
+ ld e, a
+ ld d, $0
+ ld hl, $43b2
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+
+.asm_503ae
+ ld hl, $43c6
+ ret
+; 503b2
+
+INCBIN "baserom.gbc", $503b2, $503e0 - $503b2
+
+
+Function503e0: ; 503e0
+ ld hl, PartyCount
+ ld a, [hli]
+ and a
+ ret z
+ ld c, a
+ xor a
+ ld [hConnectedMapWidth], a
+.asm_503ea
+ push bc
+ push hl
+ ld hl, $683f
+ ld a, $23
+ ld e, $0
+ rst FarCall
+ ld a, [hConnectedMapWidth]
+ inc a
+ ld [hConnectedMapWidth], a
+ pop hl
+ pop bc
+ dec c
+ jr nz, .asm_503ea
+ callab Function8cf69
+ ret
+; 50405
+
+Function50405: ; 50405
+ xor a
+ ld [$d0e3], a
+ ld de, $444f
+ call Function1bb1
+ ld a, [PartyCount]
+ inc a
+ ld [$cfa3], a
+ dec a
+ ld b, a
+ ld a, [$d0d8]
+ and a
+ jr z, .asm_50422
+ inc b
+ cp b
+ jr c, .asm_50424
+
+.asm_50422
+ ld a, $1
+
+.asm_50424
+ ld [$cfa9], a
+ ld a, $3
+ ld [$cfa8], a
+ ret
+; 5042d
+
+INCBIN "baserom.gbc", $5042d, $50457 - $5042d
+
PartyMenuSelect: ; 0x50457
; sets carry if exitted menu.
- call $1bc9
- call $1bee
+ call Function1bc9
+ call Function1bee
ld a, [PartyCount]
inc a
ld b, a
@@ -14975,9 +53091,633 @@
db "You have no ", $e1, $e2, "!@"
-INCBIN "baserom.gbc", $50566, $5093a - $50566
+Function50566: ; 50566
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Nickname
+ call GetNick
+ ld a, [PartyMenuActionText]
+ and $f
+ ld hl, $457b
+ call Function505c1
+ ret
+; 5057b
+INCBIN "baserom.gbc", $5057b, $505c1 - $5057b
+
+Function505c1: ; 505c1
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [Options]
+ push af
+ set 4, a
+ ld [Options], a
+ call PrintText
+ pop af
+ ld [Options], a
+ ret
+; 505da
+
+Function505da: ; 505da
+ ld a, [PartyCount]
+ and a
+ jr z, .asm_5062c
+ xor a
+ ld c, 7
+ ld hl, EngineBuffer1
+.asm_505e6
+ ld [hli], a
+ dec c
+ jr nz, .asm_505e6
+ xor a
+ ld [CurPartyMon], a
+.asm_505ee
+ call Function5062e
+ jr nc, .asm_50605
+ ld a, [CurPartyMon]
+ ld e, a
+ ld d, 0
+ ld hl, CurFruit
+ add hl, de
+ ld [hl], c
+ ld a, [EngineBuffer1]
+ or c
+ ld [EngineBuffer1], a
+
+.asm_50605
+ ld a, [PartyCount]
+ ld hl, CurPartyMon
+ inc [hl]
+ cp [hl]
+ jr nz, .asm_505ee
+ ld a, [EngineBuffer1]
+ and $2
+ jr nz, .asm_50622
+ ld a, [EngineBuffer1]
+ and $1
+ jr z, .asm_5062c
+ call Function50658
+ xor a
+ ret
+
+.asm_50622
+ ld a, $14
+ ld hl, UnknownScript_0x50669
+ call PushScriptPointer
+ scf
+ ret
+
+.asm_5062c
+ xor a
+ ret
+; 5062e
+
+Function5062e: ; 5062e
+ ld a, $20
+ call GetPartyParamLocation
+ ld a, [hl]
+ and $8
+ ret z
+ ld a, $22
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ or c
+ ret z
+ dec bc
+ ld [hl], c
+ dec hl
+ ld [hl], b
+ ld a, b
+ or c
+ jr nz, .asm_50654
+ ld a, $20
+ call GetPartyParamLocation
+ ld [hl], $0
+ ld c, $2
+ scf
+ ret
+
+.asm_50654
+ ld c, $1
+ scf
+ ret
+; 50658
+
+Function50658: ; 50658
+ ld de, SFX_POISON
+ call StartSFX
+ ld b, $2
+ ld a, $2e
+ call Predef
+ call DelayFrame
+ ret
+; 50669
+
+UnknownScript_0x50669: ; 50669
+ 3callasm BANK(Function50658), Function50658
+ loadfont
+ 3callasm BANK(Function5067b), Function5067b
+ iffalse UnknownScript_0x50677
+ loadmovesprites
+ end
+; 50677
+
+UnknownScript_0x50677: ; 50677
+ 3jump BANK(UnknownScript_0x124c8), UnknownScript_0x124c8
+; 5067b
+
+Function5067b: ; 5067b
+ xor a
+ ld [CurPartyMon], a
+ ld de, CurFruit
+.asm_50682
+ push de
+ ld a, [de]
+ and 2
+ jr z, .asm_5069c
+ ld c, 7
+ callba ChangeHappiness
+ callba GetPartyNick
+ ld hl, PoisonFaintText
+ call PrintText
+
+.asm_5069c
+ pop de
+ inc de
+ ld hl, CurPartyMon
+ inc [hl]
+ ld a, [PartyCount]
+ cp [hl]
+ jr nz, .asm_50682
+ ld a, $14
+ call Predef
+ ld a, d
+ ld [ScriptVar], a
+ ret
+; 506b2
+
+PoisonFaintText: ; 506b2
+ text_jump UnknownText_0x1c0acc, BANK(UnknownText_0x1c0acc)
+ db "@"
+; 506b7
+
+PoisonWhiteOutText: ; 506b7
+ text_jump UnknownText_0x1c0ada, BANK(UnknownText_0x1c0ada)
+ db "@"
+; 506bc
+
+
+Function506bc: ; 506bc
+ ld hl, UnknownScript_0x506c8
+ call Function31cd
+ ld a, $1
+ ld [$d0ec], a
+ ret
+; 506c8
+
+UnknownScript_0x506c8: ; 0x506c8
+ reloadmappart
+ special $0035
+ 3callasm $03, $4706
+ 2writetext UnknownText_0x50726
+ closetext
+ 3callasm BANK(Function506ef), Function506ef
+ iffalse UnknownScript_0x506e9
+ checkbit2 $0011
+ iftrue UnknownScript_0x506e5
+ battlecheck
+ startbattle
+ returnafterbattle
+ end
+; 0x506e5
+
+UnknownScript_0x506e5: ; 0x506e5
+ 3jump BANK(UnknownScript_0x135eb), UnknownScript_0x135eb
+; 0x506e9
+
+UnknownScript_0x506e9: ; 0x506e9
+ 2writetext UnknownText_0x5072b
+ closetext
+ loadmovesprites
+ end
+; 0x506ef
+
+Function506ef: ; 506ef
+ callba Function97cfd
+ jr nc, .asm_5071e
+ ld hl, StatusFlags2
+ bit 2, [hl]
+ jr nz, .asm_50712
+ ld a, $a
+ ld hl, $6111
+ rst FarCall
+ ld a, b
+ and a
+ jr z, .asm_5071e
+ ld a, $a
+ ld hl, $614f
+ rst FarCall
+ jr nz, .asm_5071e
+ jr .asm_50718
+
+.asm_50712
+ callba Function97d31
+
+.asm_50718
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_5071e
+ xor a
+ ld [ScriptVar], a
+ ld [BattleType], a
+ ret
+; 50726
+
+UnknownText_0x50726: ; 0x50726
+ text_jump UnknownText_0x1c0b03, BANK(UnknownText_0x1c0b03)
+ db $50
+; 0x5072b
+
+UnknownText_0x5072b: ; 0x5072b
+ text_jump UnknownText_0x1c0b1a, BANK(UnknownText_0x1c0b1a)
+ db $50
+; 0x50730
+
+
+_Squirtbottle: ; 50730
+ ld hl, UnknownScript_0x5073c
+ call Function31cd
+ ld a, $1
+ ld [$d0ec], a
+ ret
+; 5073c
+
+UnknownScript_0x5073c: ; 0x5073c
+ reloadmappart
+ special $0035
+ 3callasm BANK(Function50753), Function50753
+ iffalse UnknownScript_0x5074b
+ 3jump BANK(WateredWeirdTreeScript), WateredWeirdTreeScript
+; 0x5074b
+
+UnknownScript_0x5074b: ; 0x5074b
+ jumptext UnknownText_0x5074e
+; 0x5074e
+
+UnknownText_0x5074e: ; 0x5074e
+ text_jump UnknownText_0x1c0b3b, BANK(UnknownText_0x1c0b3b)
+ db $50
+; 0x50753
+
+Function50753: ; 50753
+ ld a, [MapGroup]
+ cp GROUP_ROUTE_36
+ jr nz, .asm_50774
+
+ ld a, [MapNumber]
+ cp MAP_ROUTE_36
+ jr nz, .asm_50774
+
+ callba Functioncf0d
+ jr c, .asm_50774
+
+ ld a, d
+ cp 23
+ jr nz, .asm_50774
+
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_50774
+ xor a
+ ld [ScriptVar], a
+ ret
+; 50779
+
+
+_CardKey: ; 50779
+ ld a, [MapGroup]
+ cp GROUP_RADIO_TOWER_3F
+ jr nz, .asm_507a9
+
+ ld a, [MapNumber]
+ cp MAP_RADIO_TOWER_3F
+ jr nz, .asm_507a9
+
+ ld a, [PlayerDirection]
+ and $c
+ cp UP << 2
+ jr nz, .asm_507a9
+
+ call GetFacingTileCoord
+ ld a, d
+ cp 18
+ jr nz, .asm_507a9
+ ld a, e
+ cp 6
+ jr nz, .asm_507a9
+
+ ld hl, UnknownScript_0x507af
+ call Function31cd
+ ld a, $1
+ ld [$d0ec], a
+ ret
+
+.asm_507a9
+ ld a, $0
+ ld [$d0ec], a
+ ret
+; 507af
+
+UnknownScript_0x507af: ; 0x507af
+ loadmovesprites
+ 3jump BANK(MapRadioTower3FSignpost2Script), MapRadioTower3FSignpost2Script
+; 0x507b4
+
+
+_BasementKey: ; 507b4
+ ld a, [MapGroup]
+ cp GROUP_WAREHOUSE_ENTRANCE
+ jr nz, .asm_507db
+
+ ld a, [MapNumber]
+ cp MAP_WAREHOUSE_ENTRANCE
+ jr nz, .asm_507db
+
+ call GetFacingTileCoord
+ ld a, d
+ cp 22
+ jr nz, .asm_507db
+ ld a, e
+ cp 10
+ jr nz, .asm_507db
+
+ ld hl, UnknownScript_0x507e1
+ call Function31cd
+ ld a, $1
+ ld [$d0ec], a
+ ret
+
+.asm_507db
+ ld a, $0
+ ld [$d0ec], a
+ ret
+; 507e1
+
+UnknownScript_0x507e1: ; 0x507e1
+ loadmovesprites
+ 3jump BANK(MapWarehouseEntranceSignpost0Script), MapWarehouseEntranceSignpost0Script
+; 0x507e6
+
+
+_SacredAsh: ; 507e6
+ ld a, $0
+ ld [$d0ec], a
+ call CheckAnyFaintedMon
+ ret nc
+
+ ld hl, UnknownScript_0x50821
+ call Function31cd
+ ld a, $1
+ ld [$d0ec], a
+ ret
+; 507fb
+
+CheckAnyFaintedMon: ; 507fb
+ ld de, PartyMon2 - PartyMon1
+ ld bc, PartySpecies
+ ld hl, PartyMon1CurHP
+ ld a, [PartyCount]
+ and a
+ ret z
+
+.loop
+ push af
+ push hl
+ ld a, [bc]
+ inc bc
+ cp EGG
+ jr z, .next
+
+ ld a, [hli]
+ or [hl]
+ jr z, .asm_5081d
+
+.next
+ pop hl
+ add hl, de
+ pop af
+ dec a
+ jr nz, .loop
+ xor a
+ ret
+
+.asm_5081d
+ pop hl
+ pop af
+ scf
+ ret
+; 50821
+
+UnknownScript_0x50821: ; 0x50821
+ special $001b
+ reloadmappart
+ playsound SFX_WARP_TO
+ special $002e
+ special $0031
+ special $002e
+ special $0031
+ special $002e
+ special $0031
+ waitbutton
+ 2writetext UnknownText_0x50845
+ playsound SFX_CAUGHT_MON
+ waitbutton
+ closetext
+ loadmovesprites
+ end
+; 0x50845
+
+UnknownText_0x50845: ; 0x50845
+ text_jump UnknownText_0x1c0b65, BANK(UnknownText_0x1c0b65)
+ db $50
+; 0x5084a
+
+Function5084a: ; 5084a
+ ld a, [CurPartyMon]
+ ld e, a
+ call Function508d5
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+
+ ld a, [MonType]
+ ld hl, PartyMon1Species
+ ld bc, PartyMon2 - PartyMon1
+ and a
+ jr z, .asm_5087b
+ ld hl, OTPartyMon1Species
+ ld bc, OTPartyMon2 - OTPartyMon1
+ cp $1
+ jr z, .asm_5087b
+ ld bc, $0020
+ ld hl, $65bb
+ ld a, $3
+ rst FarCall
+ jr .asm_5088a
+
+.asm_5087b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, TempMonSpecies
+ ld bc, $0030
+ call CopyBytes
+
+.asm_5088a
+ ret
+; 5088b
+
+
+Function5088b: ; 5088b
+ ld bc, $d018
+ jr Function50893
+; 50890
+
+Function50890: ; 50890
+ ld bc, TempMon
+ ; fallthrough
+; 50893
+
+Function50893: ; 50893
+ ld hl, TempMonLevel - TempMon
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld hl, TempMonMaxHP - TempMon
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, TempMonExp + 2 - TempMon
+ add hl, bc
+ push bc
+ ld b, $1
+ ld a, $c
+ call Predef
+ pop bc
+ ld hl, TempMonCurHP - TempMon
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr nz, .asm_508c1
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ jr .asm_508cd
+
+.asm_508c1
+ push bc
+ ld hl, TempMonMaxHP - TempMon
+ add hl, bc
+ ld bc, 2
+ call CopyBytes
+ pop bc
+
+.asm_508cd
+ ld hl, TempMonStatus - TempMon
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+; 508d5
+
+Function508d5: ; 508d5
+ ld a, [MonType]
+ and a ; PARTYMON
+ jr z, .asm_508e7
+ cp OTPARTYMON
+ jr z, .asm_508ec
+ cp BOXMON
+ jr z, .asm_508f1
+ cp $3
+ jr z, .asm_50900
+ ; WILDMON
+
+.asm_508e7
+ ld hl, PartySpecies
+ jr .asm_50905
+
+.asm_508ec
+ ld hl, OTPartySpecies
+ jr .asm_50905
+
+.asm_508f1
+ ld a, $1
+ call GetSRAMBank
+ ld hl, $ad11
+ call .asm_50905
+ call CloseSRAM
+ ret
+
+.asm_50900
+ ld a, [BreedMon1Species]
+ jr .asm_50909
+
+.asm_50905
+ ld d, 0
+ add hl, de
+ ld a, [hl]
+
+.asm_50909
+ ld [CurPartySpecies], a
+ ret
+; 5090d
+
+
+PrintMonTypes: ; 5090d
+ push hl
+ call GetBaseData
+ pop hl
+ push hl
+ ld a, [BaseType1]
+ call .asm_50928
+ ld a, [BaseType1]
+ ld b, a
+ ld a, [BaseType2]
+ cp b
+ pop hl
+ jr z, .asm_5092b
+ ld bc, 20
+ add hl, bc
+
+.asm_50928
+ ld b, a
+ jr PrintType
+
+.asm_5092b
+ ld a, " "
+ ld bc, 20 - 3
+ add hl, bc
+ ld [hl], a
+ inc bc
+ add hl, bc
+ ld bc, 5
+ jp ByteFill
+; 5093a
+
PrintMoveType: ; 5093a
; Print the type of move b at hl.
@@ -15015,7 +53755,7 @@
; 50964
-LoadTypeName: ; 50964
+GetTypeName: ; 50964
; Copy the name of type $d265 to StringBuffer1.
ld a, [$d265]
ld hl, TypeNames
@@ -15103,9 +53843,98 @@
; 50a28
-INCBIN "baserom.gbc", $50a28, $50bdd - $50a28
+INCBIN "baserom.gbc", $50a28, $50b0a - $50a28
+DrawPlayerHP: ; 50b0a
+ ld a, $1
+ jr DrawHP
+
+DrawEnemyHP: ; 50b0e
+ ld a, $2
+
+DrawHP: ; 50b10
+ ld [$d10a], a
+ push hl
+ push bc
+ ld a, [MonType]
+ cp BOXMON
+ jr z, .asm_50b30
+
+ ld a, [TempMonCurHP]
+ ld b, a
+ ld a, [TempMonCurHP + 1]
+ ld c, a
+
+; Any HP?
+ or b
+ jr nz, .asm_50b30
+
+ xor a
+ ld c, a
+ ld e, a
+ ld a, 6
+ ld d, a
+ jp .asm_50b4a
+
+.asm_50b30
+ ld a, [TempMonMaxHP]
+ ld d, a
+ ld a, [TempMonMaxHP + 1]
+ ld e, a
+ ld a, [MonType]
+ cp BOXMON
+ jr nz, .asm_50b41
+
+ ld b, d
+ ld c, e
+
+.asm_50b41
+ ld a, $4
+ call Predef
+ ld a, 6
+ ld d, a
+ ld c, a
+
+.asm_50b4a
+ ld a, c
+ pop bc
+ ld c, a
+ pop hl
+ push de
+ push hl
+ push hl
+ call DrawHPBar
+ pop hl
+
+; Print HP
+ ld bc, $0015 ; move (1,1)
+ add hl, bc
+ ld de, TempMonCurHP
+ ld a, [MonType]
+ cp BOXMON
+ jr nz, .asm_50b66
+ ld de, TempMonMaxHP
+.asm_50b66
+ ld bc, $0203
+ call PrintNum
+
+ ld a, "/"
+ ld [hli], a
+
+; Print max HP
+ ld de, TempMonMaxHP
+ ld bc, $0203
+ call PrintNum
+ pop hl
+ pop de
+ ret
+; 50b7b
+
+
+INCBIN "baserom.gbc", $50b7b, $50bdd - $50b7b
+
+
GetGender: ; 50bdd
; Return the gender of a given monster in a.
@@ -15138,7 +53967,7 @@
jr z, .BoxMon
; 3: Unknown
- ld hl, $d123 ; DVBuffer
+ ld hl, TempMonDVs ; DVBuffer
dec a
jr z, .DVs
@@ -15224,9 +54053,348 @@
ret
; 50c50
-INCBIN "baserom.gbc", $50c50, $5125d - $50c50
+INCBIN "baserom.gbc", $50c50, $50d0a - $50c50
+Function50d0a: ; 50d0a
+ push de
+ inc de
+ inc de
+ ld a, [de]
+ ld b, a
+ inc de
+ ld a, [de]
+ or b
+ pop de
+ jr nz, .asm_50d2e
+ push de
+ ld de, .data_50d21
+ call $4d25
+ pop de
+ ld a, $1
+ and a
+ ret
+
+.data_50d21
+ db $85
+ db $8d
+ db $93
+ db $50
+ db $1a
+ db $13
+ db $22
+ db $1a
+ db $13
+ db $22
+ db $1a
+ db $77
+ db $c9
+
+.asm_50d2e
+ push de
+ ld a, [de]
+ ld de, $4d5f
+ bit 3, a
+ jr nz, .asm_50d53
+ ld de, $4d63
+ bit 4, a
+ jr nz, .asm_50d53
+ ld de, $4d67
+ bit 5, a
+ jr nz, .asm_50d53
+ ld de, $4d6b
+ bit 6, a
+ jr nz, .asm_50d53
+ ld de, $4d5b
+ and $7
+ jr z, .asm_50d59
+
+.asm_50d53
+ call $4d25
+ ld a, $1
+ and a
+
+.asm_50d59
+ pop de
+ ret
+; 50d5b
+
+INCBIN "baserom.gbc", $50d5b, $50e1b - $50d5b
+
+
+Function50e1b: ; 50e1b
+ ld a, [TempMonSpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld d, $1
+.asm_50e26
+ inc d
+ ld a, d
+ cp $65
+ jr z, .asm_50e45
+ call Function50e47
+ push hl
+ ld hl, $d118
+ ld a, [$ffb6]
+ ld c, a
+ ld a, [hld]
+ sub c
+ ld a, [$ffb5]
+ ld c, a
+ ld a, [hld]
+ sbc c
+ ld a, [hMultiplicand]
+ ld c, a
+ ld a, [hl]
+ sbc c
+ pop hl
+ jr nc, .asm_50e26
+
+.asm_50e45
+ dec d
+ ret
+; 50e47
+
+
+
+Function50e47: ; 50e47
+ ld a, [BaseGrowthRate]
+ add a
+ add a
+ ld c, a
+ ld b, $0
+ ld hl, $4efa
+ add hl, bc
+ call Function50eed
+ ld a, d
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [hl]
+ and $f0
+ swap a
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [hli]
+ and $f
+ ld [hMultiplier], a
+ ld b, $4
+ call Divide
+ ld a, [hMultiplicand]
+ push af
+ ld a, [$ffb5]
+ push af
+ ld a, [$ffb6]
+ push af
+ call Function50eed
+ ld a, [hl]
+ and $7f
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [hMultiplicand]
+ push af
+ ld a, [$ffb5]
+ push af
+ ld a, [$ffb6]
+ push af
+ ld a, [hli]
+ push af
+ xor a
+ ld [hMultiplicand], a
+ ld [$ffb5], a
+ ld a, d
+ ld [$ffb6], a
+ ld a, [hli]
+ ld [hMultiplier], a
+ call Multiply
+ ld b, [hl]
+ ld a, [$ffb6]
+ sub b
+ ld [$ffb6], a
+ ld b, $0
+ ld a, [$ffb5]
+ sbc b
+ ld [$ffb5], a
+ ld a, [hMultiplicand]
+ sbc b
+ ld [hMultiplicand], a
+ pop af
+ and $80
+ jr nz, .asm_50ec8
+ pop bc
+ ld a, [$ffb6]
+ add b
+ ld [$ffb6], a
+ pop bc
+ ld a, [$ffb5]
+ adc b
+ ld [$ffb5], a
+ pop bc
+ ld a, [hMultiplicand]
+ adc b
+ ld [hMultiplicand], a
+ jr .asm_50eda
+
+.asm_50ec8
+ pop bc
+ ld a, [$ffb6]
+ sub b
+ ld [$ffb6], a
+ pop bc
+ ld a, [$ffb5]
+ sbc b
+ ld [$ffb5], a
+ pop bc
+ ld a, [hMultiplicand]
+ sbc b
+ ld [hMultiplicand], a
+
+.asm_50eda
+ pop bc
+ ld a, [$ffb6]
+ add b
+ ld [$ffb6], a
+ pop bc
+ ld a, [$ffb5]
+ adc b
+ ld [$ffb5], a
+ pop bc
+ ld a, [hMultiplicand]
+ adc b
+ ld [hMultiplicand], a
+ ret
+; 50eed
+
+Function50eed: ; 50eed
+ xor a
+ ld [hMultiplicand], a
+ ld [$ffb5], a
+ ld a, d
+ ld [$ffb6], a
+ ld [hMultiplier], a
+ jp Multiply
+; 50efa
+
+
+INCBIN "baserom.gbc", $50efa, $51040 - $50efa
+
+
+GetUnownLetter: ; 51040
+; Return Unown letter in UnownLetter based on DVs at hl
+
+; Take the middle 2 bits of each DV and place them in order:
+; AtkDefDV | SpdSpcDV
+; .ww..xx. .yy..zz.
+
+ ; atk
+ ld a, [hl]
+ and %01100000
+ sla a
+ ld b, a
+ ; def
+ ld a, [hli]
+ and %00000110
+ swap a
+ srl a
+ or b
+ ld b, a
+
+ ; spd
+ ld a, [hl]
+ and %01100000
+ swap a
+ sla a
+ or b
+ ld b, a
+ ; spc
+ ld a, [hl]
+ and %00000110
+ srl a
+ or b
+
+; Divide by 10 to get 0-25
+ ld [hDividend + 3], a
+ xor a
+ ld [hDividend], a
+ ld [hDividend + 1], a
+ ld [hDividend + 2], a
+ ld a, 10
+ ld [hDivisor], a
+ ld b, $4
+ call Divide
+
+; Increment to get 1-26
+ ld a, [hQuotient + 2]
+ inc a
+ ld [UnownLetter], a
+ ret
+; 51077
+
+
+INCBIN "baserom.gbc", $51077, $511c5 - $51077
+
+
+Function511c5: ; 511c5
+ push hl
+ push bc
+ sub $12
+ ld c, a
+ ld b, 0
+ ld hl, $51d4
+ add hl, bc
+ ld a, [hl]
+ pop bc
+ pop hl
+ ret
+; 511d4
+
+INCBIN "baserom.gbc", $511d4, $5120d - $511d4
+
+
+Function5120d: ; 5120d
+ ld a, [TrainerClass]
+ and a
+ ret z
+ cp $44
+ ret nc
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld hl, Function50000
+ ld a, [TrainerClass]
+ dec a
+ ld bc, $0003
+ call AddNTimes
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push de
+ ld a, $4a
+ call GetFarByte
+ call Function511c5
+ push af
+ inc hl
+ ld a, $4a
+ call GetFarHalfword
+ pop af
+ ld de, $d000
+ call FarDecompress
+ pop hl
+ ld de, $d000
+ ld c, $31
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ pop af
+ ld [rSVBK], a
+ call WaitBGMap
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 5125d
+
+
+
DecompressPredef: ; 5125d
; Decompress lz data from b:hl to scratch space at 6:d000, then copy it to address de.
@@ -15245,7 +54413,7 @@
pop hl
ld a, [hROMBank]
ld b, a
- call $f82
+ call Get2bpp
pop af
ld [rSVBK], a
@@ -15345,7 +54513,7 @@
SECTION "bank19",ROMX,BANK[$19]
-INCBIN "baserom.gbc", $64000, $67308 - $64000
+INCLUDE "text/phone/extra.asm"
SECTION "bank1A",ROMX,BANK[$1A]
@@ -15821,17 +54989,17 @@
TrySurfStep: ; 801c0
call CheckWaterPermissions
- ld [$d040], a
+ ld [MartPointer], a
jr c, .asm_801f1
call Function80341
- ld [$d03f], a
+ ld [CurFruit], a
and a
jr z, .asm_801f1
cp 2
jr z, .asm_801f1
- ld a, [$d040]
+ ld a, [MartPointer]
and a
jr nz, .ExitWater
@@ -15842,7 +55010,7 @@
.ExitWater
call WaterToLandSprite
- call $3cdf ; PlayMapMusic
+ call Function3cdf ; PlayMapMusic
ld a, STEP_WALK
call DoStep
ld a, 6
@@ -15925,7 +55093,7 @@
and 3
cp e
jr nz, .asm_80259
- call $224a ; CheckFallPit?
+ call Function224a ; CheckFallPit?
jr nc, .asm_80259
call StandInPlace
@@ -16119,9 +55287,7 @@
add e
ld e, a
ld bc, $d4d6
- ld a, $1
- ld hl, $7041
- rst FarCall
+ callba Function7041
jr nc, .asm_80369
call Function8036f
jr c, .asm_8036c
@@ -16236,7 +55402,7 @@
CheckWalkable: ; 803d3
; Return 0 if tile a is land. Otherwise, return carry.
- call GetTileType
+ call GetTileCollision
and a ; land
ret z
scf
@@ -16248,7 +55414,7 @@
; Return 0 if tile a is water, or 1 if land.
; Otherwise, return carry.
- call GetTileType
+ call GetTileCollision
cp 1
jr z, .Water
@@ -16287,7 +55453,7 @@
push bc
ld a, PLAYER_NORMAL
ld [PlayerState], a
- call $e4a ; UpdateSprites
+ call Functione4a ; UpdateSprites
pop bc
ret
; 80404
@@ -16433,8 +55599,296 @@
SECTION "bank21",ROMX,BANK[$21]
-INCBIN "baserom.gbc", $84000, $84a2e - $84000
+Function84000: ; 84000
+ ld hl, OverworldMap
+ ld bc, $040c
+ xor a
+ call Function842ab
+ xor a
+ ld [rSB], a
+ ld [rSC], a
+ ld [$c2d5], a
+ ld hl, $c2d4
+ set 0, [hl]
+ ld a, [GBPrinter]
+ ld [$cbfb], a
+ xor a
+ ld [$cf63], a
+ ret
+; 84022
+Function84022: ; 84022
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $4031
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 84031
+
+INCBIN "baserom.gbc", $84031, $842ab - $84031
+
+Function842ab: ; 842ab
+ push de
+ ld e, a
+.asm_842ad
+ ld [hl], e
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_842ad
+ ld a, e
+ pop de
+ ret
+; 842b7
+
+INCBIN "baserom.gbc", $842b7, $842db - $842b7
+
+
+Function842db: ; 842db
+ ld a, [$c2d5]
+ add a
+ ld e, a
+ ld d, $0
+ ld hl, $42ea
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 842ea
+
+INCBIN "baserom.gbc", $842ea, $843f0 - $842ea
+
+Function843f0: ; 843f0
+.asm_843f0
+ call Functiona57
+ call Function846f6
+ jr c, .asm_8440f
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_8440d
+ call Function84022
+ call Function84757
+ call Function84785
+ call DelayFrame
+ jr .asm_843f0
+
+.asm_8440d
+ and a
+ ret
+
+.asm_8440f
+ scf
+ ret
+; 84411
+
+Function84411: ; 84411
+ xor a
+ ld [$c2d4], a
+ ld [$c2d5], a
+ ret
+; 84419
+
+Function84419: ; 84419
+ push af
+ call Function84000
+ pop af
+ ld [$cbfa], a
+ call Function84728
+ ret
+; 84425
+
+Function84425: ; 84425
+ call Function222a
+ call Function84753
+ ret
+; 8442c
+
+INCBIN "baserom.gbc", $8442c, $845d4 - $8442c
+
+Function845d4: ; 845d4
+ call Function845db
+ call Function84425
+ ret
+; 845db
+
+Function845db: ; 845db
+ ld a, [$cf65]
+ push af
+ xor a
+ ld [$ffac], a
+ call Function8474c
+ ld a, [rIE]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $9
+ ld [rIE], a
+ xor a
+ ld [hBGMapMode], a
+ ld a, $13
+ call Function84419
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+ ld [hl], $4
+ ld a, $9
+ ld [$cf65], a
+ call Function843f0
+ pop af
+ ld [$ff9e], a
+ call Function84411
+ call Function84735
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ pop af
+ ld [$cf65], a
+ ret
+; 8461a
+
+INCBIN "baserom.gbc", $8461a, $846f6 - $8461a
+
+Function846f6: ; 846f6
+ ld a, [hJoyDown]
+ and $2
+ jr nz, .asm_846fe
+ and a
+ ret
+
+.asm_846fe
+ ld a, [$ca80]
+ cp $c
+ jr nz, .asm_84722
+.asm_84705
+ ld a, [$c2d5]
+ and a
+ jr nz, .asm_84705
+ ld a, $16
+ ld [$c2d5], a
+ ld a, $88
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+.asm_8471c
+ ld a, [$c2d5]
+ and a
+ jr nz, .asm_8471c
+
+.asm_84722
+ ld a, $1
+ ld [$ffac], a
+ scf
+ ret
+; 84728
+
+Function84728: ; 84728
+ ld hl, TileMap
+ ld de, $ca90
+ ld bc, $0168
+ call CopyBytes
+ ret
+; 84735
+
+Function84735: ; 84735
+ ld hl, $ca90
+ ld de, TileMap
+ ld bc, $0168
+ call CopyBytes
+ ret
+; 84742
+
+INCBIN "baserom.gbc", $84742, $8474c - $84742
+
+Function8474c: ; 8474c
+ ld de, $005b
+ call StartMusic2
+ ret
+; 84753
+
+Function84753: ; 84753
+ call Function3d47
+ ret
+; 84757
+
+Function84757: ; 84757
+ ld a, [$ca88]
+ cp $ff
+ jr nz, .asm_84765
+ ld a, [$ca89]
+ cp $ff
+ jr z, .asm_8477f
+
+.asm_84765
+ ld a, [$ca89]
+ and $e0
+ ret z
+ bit 7, a
+ jr nz, .asm_8477b
+ bit 6, a
+ jr nz, .asm_84777
+ ld a, $6
+ jr .asm_84781
+
+.asm_84777
+ ld a, $7
+ jr .asm_84781
+
+.asm_8477b
+ ld a, $4
+ jr .asm_84781
+
+.asm_8477f
+ ld a, $5
+
+.asm_84781
+ ld [$cbf8], a
+ ret
+; 84785
+
+Function84785: ; 84785
+ ld a, [$cbf8]
+ and a
+ ret z
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c504
+ ld bc, $0a12
+ call TextBox
+ pop af
+ ld e, a
+ ld d, $0
+ ld hl, $4807
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $c52d
+ ld a, $77
+ call Function13d4
+ ld hl, $c5ce
+ ld de, $47f5
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ xor a
+ ld [$cbf8], a
+ ret
+; 847bd
+
+INCBIN "baserom.gbc", $847bd, $84a2e - $847bd
+
FX00GFX:
FX01GFX: ; 84a2e
INCBIN "gfx/fx/001.lz"
@@ -16671,8 +56125,8 @@
INCBIN "baserom.gbc", $8640b, $8640e - $8640b
HallOfFame3: ; 0x8640e
- call $648e
- ld a, [$d84c]
+ call Function8648e
+ ld a, [StatusFlags]
push af
ld a, $1
ld [$c2cd], a
@@ -16681,7 +56135,7 @@
ld [$d4b5], a
; Enable the Pokégear map to cycle through all of Kanto
- ld hl, $d84c
+ ld hl, StatusFlags
set 6, [hl]
ld a, $5
@@ -16696,13 +56150,13 @@
ld a, $5
ld hl, $4b85
rst FarCall
- call $653f
+ call Function8653f
ld a, $5
ld hl, $4b5f
rst FarCall
xor a
ld [$c2cd], a
- call $64c3
+ call Function864c3
pop af
ld b, a
ld a, $42
@@ -16711,21 +56165,509 @@
ret
; 0x86455
-INCBIN "baserom.gbc", $86455, $88000 - $86455
+Function86455: ; 86455
+ ld a, $0
+ ld [MusicFadeIDLo], a
+ ld a, $0
+ ld [MusicFadeIDHi], a
+ ld a, $a
+ ld [MusicFade], a
+ ld a, $23
+ ld hl, $4084
+ rst FarCall
+ xor a
+ ld [VramState], a
+ ld [$ffde], a
+ ld a, $13
+ ld hl, $68c2
+ rst FarCall
+ ld c, $8
+ call DelayFrames
+ call Function2ed3
+ ld a, $2
+ ld [$d4b5], a
+ ld a, [StatusFlags]
+ ld b, a
+ ld a, $42
+ ld hl, $5847
+ rst FarCall
+ ret
+; 8648e
+Function8648e: ; 8648e
+ ld a, $0
+ ld [MusicFadeIDLo], a
+ ld a, $0
+ ld [MusicFadeIDHi], a
+ ld a, $a
+ ld [MusicFade], a
+ ld a, $23
+ ld hl, $4084
+ rst FarCall
+ xor a
+ ld [VramState], a
+ ld [$ffde], a
+ ld a, $13
+ ld hl, $6881
+ rst FarCall
+ ld c, $64
+ jp DelayFrames
+; 864b4
+
+Function864b4: ; 864b4
+ push de
+ ld de, $0000
+ call StartMusic
+ call DelayFrame
+ pop de
+ call StartMusic
+ ret
+; 864c3
+
+Function864c3: ; 864c3
+ xor a
+ ld [$cf63], a
+ call Function8671c
+ jr c, .asm_864fb
+ ld de, $0014
+ call Function864b4
+ xor a
+ ld [$cf64], a
+.asm_864d6
+ ld a, [$cf64]
+ cp $6
+ jr nc, .asm_864fb
+ ld hl, EnemyMoveEffect
+ ld bc, $0010
+ call AddNTimes
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_864fb
+ push hl
+ call Function865b5
+ pop hl
+ call Function8650c
+ jr c, .asm_864fb
+ ld hl, $cf64
+ inc [hl]
+ jr .asm_864d6
+
+.asm_864fb
+ call Function86810
+ ld a, $4
+ ld [MusicFade], a
+ call $04b6
+ ld c, $8
+ call DelayFrames
+ ret
+; 8650c
+
+Function8650c: ; 8650c
+ call Function86748
+ ld de, $652c
+ ld hl, $c4c9
+ call PlaceString
+ call WaitBGMap
+ ld de, $c50a
+ ld c, $6
+ ld a, $49
+ call Predef
+ ld c, $3c
+ call DelayFrames
+ and a
+ ret
+; 8652c
+
+INCBIN "baserom.gbc", $8652c, $8653f - $8652c
+
+
+Function8653f: ; 8653f
+ ld hl, OverworldMap
+ ld bc, $0062
+ xor a
+ call ByteFill
+ ld a, [$d95e]
+ ld de, OverworldMap
+ ld [de], a
+ inc de
+ ld hl, PartySpecies
+ ld c, $0
+.asm_86556
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_865b1
+ cp $fd
+ jr nz, .asm_86562
+ inc c
+ jr .asm_86556
+
+.asm_86562
+ push hl
+ push de
+ push bc
+ ld a, c
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call AddNTimes
+ ld c, l
+ ld b, h
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld hl, $0006
+ add hl, bc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld hl, $0015
+ add hl, bc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld hl, $001f
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+ pop bc
+ push bc
+ ld a, c
+ ld hl, PartyMon1Nickname
+ ld bc, $000b
+ call AddNTimes
+ ld bc, $000a
+ call CopyBytes
+ pop bc
+ inc c
+ pop de
+ ld hl, $0010
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+ jr .asm_86556
+
+.asm_865b1
+ ld a, $ff
+ ld [de], a
+ ret
+; 865b5
+
+Function865b5: ; 865b5
+ push hl
+ call WhiteBGMap
+ ld a, $13
+ ld hl, $6906
+ rst FarCall
+ pop hl
+ ld a, [hli]
+ ld [TempMonSpecies], a
+ ld [CurPartySpecies], a
+ inc hl
+ inc hl
+ ld a, [hli]
+ ld [TempMonDVs], a
+ ld a, [hli]
+ ld [$d124], a
+ ld hl, TempMonDVs
+ ld a, $2d
+ call Predef
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $7f
+ call ByteFill
+ ld de, $9310
+ ld a, $3d
+ call Predef
+ ld a, $31
+ ld [$ffad], a
+ ld hl, $c51e
+ ld bc, $0606
+ ld a, $13
+ call Predef
+ ld a, $d0
+ ld [hSCY], a
+ ld a, $90
+ ld [hSCX], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld b, $1a
+ call GetSGBLayout
+ call Function32f9
+ call Function86635
+ xor a
+ ld [$c2c6], a
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $7f
+ call ByteFill
+ ld hl, $c50a
+ call $378b
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld [hSCY], a
+ call Function86643
+ ret
+; 86635
+
+Function86635: ; 86635
+.asm_86635
+ ld a, [hSCX]
+ cp $70
+ ret z
+ add $4
+ ld [hSCX], a
+ call DelayFrame
+ jr .asm_86635
+; 86643
+
+Function86643: ; 86643
+.asm_86643
+ ld a, [hSCX]
+ and a
+ ret z
+ dec a
+ dec a
+ ld [hSCX], a
+ call DelayFrame
+ jr .asm_86643
+; 86650
+
+INCBIN "baserom.gbc", $86650, $8671c - $86650
+
+
+Function8671c: ; 8671c
+ ld a, [$cf63]
+ cp $1e
+ jr nc, .asm_86746
+ ld hl, $b2c0
+ ld bc, $0062
+ call AddNTimes
+ ld a, $1
+ call GetSRAMBank
+ ld a, [hl]
+ and a
+ jr z, .asm_86743
+ ld de, EnemyMoveAnimation
+ ld bc, $0062
+ call CopyBytes
+ call CloseSRAM
+ and a
+ ret
+
+.asm_86743
+ call CloseSRAM
+
+.asm_86746
+ scf
+ ret
+; 86748
+
+Function86748: ; 86748
+ xor a
+ ld [hBGMapMode], a
+ ld a, [hli]
+ ld [TempMonSpecies], a
+ ld a, [hli]
+ ld [TempMonID], a
+ ld a, [hli]
+ ld [$d115], a
+ ld a, [hli]
+ ld [TempMonDVs], a
+ ld a, [hli]
+ ld [$d124], a
+ ld a, [hli]
+ ld [TempMonLevel], a
+ ld de, StringBuffer2
+ ld bc, $000a
+ call CopyBytes
+ ld a, $50
+ ld [$d090], a
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $7f
+ call ByteFill
+ ld hl, TileMap
+ ld bc, $0312
+ call TextBox
+ ld hl, $c590
+ ld bc, $0412
+ call TextBox
+ ld a, [TempMonSpecies]
+ ld [CurPartySpecies], a
+ ld [$d265], a
+ ld hl, TempMonDVs
+ ld a, $2d
+ call Predef
+ xor a
+ ld [$c2c6], a
+ ld hl, $c50a
+ call $378b
+ ld a, [CurPartySpecies]
+ cp $fd
+ jr z, .asm_867f8
+ ld hl, $c5a5
+ ld a, $74
+ ld [hli], a
+ ld [hl], $f2
+ ld hl, $c5a7
+ ld de, $d265
+ ld bc, $8103
+ call PrintNum
+ call GetBasePokemonName
+ ld hl, $c5ab
+ call PlaceString
+ ld a, $3
+ ld [MonType], a
+ callba GetGender
+ ld a, $7f
+ jr c, .asm_867e2
+ ld a, $ef
+ jr nz, .asm_867e2
+ ld a, $f5
+
+.asm_867e2
+ ld hl, $c5b6
+ ld [hli], a
+ ld hl, $c5c0
+ ld a, $f3
+ ld [hli], a
+ ld de, StringBuffer2
+ call PlaceString
+ ld hl, $c5e1
+ call PrintLevel
+
+.asm_867f8
+ ld hl, $c5e7
+ ld a, $73
+ ld [hli], a
+ ld a, $74
+ ld [hli], a
+ ld [hl], $f3
+ ld hl, $c5ea
+ ld de, TempMonID
+ ld bc, $8205
+ call PrintNum
+ ret
+; 86810
+
+Function86810: ; 86810
+ call WhiteBGMap
+ ld hl, $9630
+ ld de, $40d0
+ ld bc, $3e01
+ call Request2bpp
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $7f
+ call ByteFill
+ callba GetPlayerBackpic
+ ld a, $31
+ ld [$ffad], a
+ ld hl, $c51e
+ ld bc, $0606
+ ld a, $13
+ call Predef
+ ld a, $d0
+ ld [hSCY], a
+ ld a, $90
+ ld [hSCX], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld [CurPartySpecies], a
+ ld b, $1a
+ call GetSGBLayout
+ call Function32f9
+ call Function86635
+ xor a
+ ld [$c2c6], a
+ ld hl, TileMap
+ ld bc, $0168
+ ld a, $7f
+ call ByteFill
+ ld a, $22
+ ld hl, $4840
+ rst FarCall
+ xor a
+ ld [$ffad], a
+ ld hl, $c510
+ ld bc, $0707
+ ld a, $13
+ call Predef
+ ld a, $c0
+ ld [hSCX], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld [hSCY], a
+ call Function86643
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $c4c8
+ ld bc, $0809
+ call TextBox
+ ld hl, $c590
+ ld bc, $0412
+ call TextBox
+ ld hl, $c4f2
+ ld de, PlayerName
+ call PlaceString
+ ld hl, $c519
+ ld a, $73
+ ld [hli], a
+ ld a, $74
+ ld [hli], a
+ ld [hl], $f3
+ ld hl, $c51c
+ ld de, PlayerID
+ ld bc, $8205
+ call PrintNum
+ ld hl, $c541
+ ld de, $68ed
+ call PlaceString
+ ld hl, $c557
+ ld de, GameTimeHours
+ ld bc, $0203
+ call PrintNum
+ ld [hl], $63
+ inc hl
+ ld de, GameTimeMinutes
+ ld bc, $8102
+ call PrintNum
+ call WaitBGMap
+ callba Function26601
+ ret
+; 868ed
+
+INCBIN "baserom.gbc", $868ed, $88000 - $868ed
+
SECTION "bank22",ROMX,BANK[$22]
INCBIN "baserom.gbc", $88000, $88258 - $88000
-MovePlayerPicRight: ; 0x88258
- ld hl, $c4f6
- ld de, $0001
+MovePlayerPicRight: ; 88258
+ hlcoord 6, 4
+ ld de, 1
jr MovePlayerPic
-MovePlayerPicLeft
- ld hl, $c4fd
+
+MovePlayerPicLeft: ; 88260
+ hlcoord 13, 4
ld de, -1
; fallthrough
-MovePlayerPic: ; 0x88266
+
+MovePlayerPic: ; 88266
+; Move player pic at hl by de * 7 tiles.
ld c, $8
.loop
push bc
@@ -16732,12 +56674,12 @@
push hl
push de
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
ld bc, $0707
ld a, $13
call Predef
xor a
- ld [$ffd5], a
+ ld [hBGMapThird], a
call WaitBGMap
call DelayFrame
pop de
@@ -16759,15 +56701,16 @@
pop bc
pop hl
jr .loop
+; 88297
-ShowPlayerNamingChoices: ; 0x88297
- ld hl, $42b5 ; male
+ShowPlayerNamingChoices: ; 88297
+ ld hl, ChrisNameMenuHeader
ld a, [PlayerGender]
bit 0, a
- jr z, .skip
- ld hl, $42e5 ; female
-.skip
- call Function1d35
+ jr z, .GotGender
+ ld hl, KrisNameMenuHeader
+.GotGender
+ call LoadMenuDataHeader
call Function1d81
ld a, [$cfa9]
dec a
@@ -16774,16 +56717,58 @@
call Function1db8
call Function1c17
ret
-; 0x882b5
+; 882b5
-INCBIN "baserom.gbc", $882b5, $8832c - $882b5
+ChrisNameMenuHeader: ; 882b5
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 11, 10 ; end coords
+ dw MenuData2_0x882be
+ db 1 ; ????
+ db 0 ; default option
+; 882be
+MenuData2_0x882be: ; 882be
+ db $91 ; flags
+ db 5 ; items
+ db "NEW NAME@"
+ db "CHRIS@"
+ db "MAT@"
+ db "ALLAN@"
+ db "JON@"
+ db 2 ; displacement
+ db " NAME @" ; title
+; 882e5
+
+KrisNameMenuHeader: ; 882e5
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 11, 10 ; end coords
+ dw MenuData2_0x882ee
+ db 1 ; ????
+ db 0 ; default option
+; 882ee
+
+MenuData2_0x882ee: ; 882ee
+ db $91 ; flags
+ db 5 ; items
+ db "NEW NAME@"
+ db "KRIS@"
+ db "AMANDA@"
+ db "JUANA@"
+ db "JODI@"
+ db 2 ; displacement
+ db " NAME @" ; title
+; 88318
+
+INCBIN "baserom.gbc", $88318, $8832c - $88318
+
GetPlayerIcon: ; 8832c
; Get the player icon corresponding to gender
; Male
- ld de, $4000 ; KrissMIcon
- ld b, $30 ; BANK(KrissMIcon)
+ ld de, ChrisSpriteGFX
+ ld b, BANK(ChrisSpriteGFX)
ld a, [PlayerGender]
bit 0, a
@@ -16790,8 +56775,8 @@
jr z, .done
; Female
- ld de, $7a40 ; KrissFIcon
- ld b, $31 ; BANK(KrissFIcon)
+ ld de, KrisSpriteGFX
+ ld b, BANK(KrisSpriteGFX)
.done
ret
@@ -16798,9 +56783,58 @@
; 8833e
-INCBIN "baserom.gbc", $8833e, $88874 - $8833e
+INCBIN "baserom.gbc", $8833e, $88825 - $8833e
+GetPlayerBackpic: ; 88825
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_88830
+ call GetKrisBackpic
+ ret
+
+.asm_88830
+ ld hl, ChrisBackpic
+ ld b, BANK(ChrisBackpic)
+ ld de, $9310
+ ld c, $31
+ ld a, $40
+ call Predef
+ ret
+; 88840
+
+Function88840: ; 88840
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld e, $0
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_88851
+ ld e, $1
+
+.asm_88851
+ ld a, e
+ ld [TrainerClass], a
+ ld de, ChrisPic
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_88862
+ ld de, KrisPic
+
+.asm_88862
+ ld hl, VTiles2
+ ld b, $22
+ ld c, $31
+ call Get2bpp
+ call WaitBGMap
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 88874
+
+
+
DrawIntroPlayerPic: ; 88874
; Draw the player pic at (6,4).
@@ -16824,7 +56858,7 @@
ld hl, VTiles2
ld b, BANK(ChrisPic)
ld c, $31
- call $f82
+ call Get2bpp
; Draw
xor a
@@ -16851,7 +56885,7 @@
ld de, KrisBackpic
ld hl, $9310
ld bc, $2231
- call $f82
+ call Get2bpp
ret
; 88ed6
@@ -16910,8 +56944,35 @@
ret
; 0x8adef
-INCBIN "baserom.gbc", $8adef, $8b170 - $8adef
+INCBIN "baserom.gbc", $8adef, $8ae30 - $8adef
+Function8ae30: ; 8ae30
+ push de
+ push bc
+ call GetSecondaryMapHeaderPointer
+ ld a, h
+ cp $58
+ jr nz, .asm_8ae4a
+ ld a, l
+ cp $e8
+ jr nz, .asm_8ae4a
+ ld de, $0329
+ ld b, $1
+ call BitTable1Func
+ scf
+ jr .asm_8ae4b
+
+.asm_8ae4a
+ and a
+
+.asm_8ae4b
+ pop bc
+ pop de
+ ret
+; 8ae4e
+
+INCBIN "baserom.gbc", $8ae4e, $8b170 - $8ae4e
+
SpecialDratini: ; 0x8b170
; if ScriptVar is 0 or 1, change the moveset of the last Dratini in the party.
; 0: give it a special moveset with Extremespeed.
@@ -17023,14 +57084,55 @@
scf
ret
-INCBIN "baserom.gbc", $8b1e1, $8ba24-$8b1e1
+INCBIN "baserom.gbc", $8b1e1, $8b342 - $8b1e1
+Function8b342: ; 8b342
+ call GetSecondaryMapHeaderPointer
+ ld d, h
+ ld e, l
+ xor a
+.asm_8b348
+ push af
+ ld hl, $7354
+ rst JumpTable
+ pop af
+ inc a
+ cp $3
+ jr nz, .asm_8b348
+ ret
+; 8b354
+
+INCBIN "baserom.gbc", $8b354, $8b35b - $8b354
+
+
+Function8b35b: ; 8b35b
+ ret
+; 8b35c
+
+Function8b35c: ; 8b35c
+ ret
+; 8b35d
+
+INCBIN "baserom.gbc", $8b35d, $8ba24 - $8b35d
+
+
SECTION "bank23",ROMX,BANK[$23]
-INCBIN "baserom.gbc", $8c000, $8c011 - $8c000
+INCBIN "baserom.gbc", $8c000, $8c001 - $8c000
-TimeOfDayPals: ; 8c011
+
+Function8c001: ; 8c001
+ call UpdateTime
+ ld a, [TimeOfDay]
+ ld [CurTimeOfDay], a
+ call GetTimePalette
+ ld [TimeOfDayPal], a
+ ret
+; 8c011
+
+
+_TimeOfDayPals: ; 8c011
; return carry if pals are changed
; forced pals?
@@ -17092,7 +57194,7 @@
; restore bg palette 8
- ld hl, $d03f ; last byte in Unkn1Pals
+ ld hl, CurFruit ; last byte in Unkn1Pals
; save wram bank
ld a, [rSVBK]
@@ -17138,8 +57240,58 @@
ret
; 8c079
-INCBIN "baserom.gbc", $8c079, $8c117 - $8c079
+Function8c079: ; 8c079
+ ld c, $12
+ call GetTimePalFade
+ ld b, $4
+ call Function8c16d
+ ret
+; 8c084
+Function8c084: ; 8c084
+ call Function8c0c1
+ ld c, $9
+ call GetTimePalFade
+ ld b, $4
+ call Function8c15e
+ ret
+; 8c092
+
+INCBIN "baserom.gbc", $8c092, $8c0c1 - $8c092
+
+
+Function8c0c1: ; 8c0c1
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d000
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld hl, $d008
+ ld c, $6
+.asm_8c0d4
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+ dec c
+ jr nz, .asm_8c0d4
+ pop af
+ ld [rSVBK], a
+ ret
+; 8c0e5
+
+INCBIN "baserom.gbc", $8c0e5, $8c117 - $8c0e5
+
GetTimePalette: ; 8c117
; get time of day
ld a, [TimeOfDay]
@@ -17207,8 +57359,33 @@
ret
; 8c15e
-INCBIN "baserom.gbc", $8c15e, $8c17c - $8c15e
+Function8c15e: ; 8c15e
+.asm_8c15e
+ call DmgToCgbTimePals
+ inc hl
+ inc hl
+ inc hl
+ ld c, $2
+ call DelayFrames
+ dec b
+ jr nz, .asm_8c15e
+ ret
+; 8c16d
+Function8c16d: ; 8c16d
+.asm_8c16d
+ call DmgToCgbTimePals
+ dec hl
+ dec hl
+ dec hl
+ ld c, $2
+ call DelayFrames
+ dec b
+ jr nz, .asm_8c16d
+ ret
+; 8c17c
+
+
GetTimePalFade: ; 8c17c
; check cgb
ld a, [hCGB]
@@ -17402,8 +57579,696 @@
db %00000000
; 8c20f
-INCBIN "baserom.gbc", $8c20f, $8e9ac - $8c20f
+INCBIN "baserom.gbc", $8c20f, $8c940 - $8c20f
+Function8c940: ; 8c940
+ ld a, e
+ and $1
+ ld [$cf63], a
+ call $496d
+ call WaitSFX
+ ld de, $001e
+ call StartSFX
+.asm_8c952
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_8c96c
+ ld a, $90
+ ld [$c3b5], a
+ ld hl, $4f7a
+ ld a, $23
+ rst FarCall
+ call $4a0c
+ call DelayFrame
+ jr .asm_8c952
+
+.asm_8c96c
+ ret
+; 8c96d
+
+Function8c96d: ; 8c96d
+ ld hl, $4f53
+ ld a, $23
+ rst FarCall
+ ld de, $49cc
+ ld hl, VTiles1
+ ld bc, $2304
+ call Request2bpp
+ ld de, $498c
+ ld hl, $8840
+ ld bc, $2304
+ call Request2bpp
+ ret
+; 8c98c
+
+INCBIN "baserom.gbc", $8c98c, $8ca0c - $8c98c
+
+Function8ca0c: ; 8ca0c
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $4a1b
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 8ca1b
+
+INCBIN "baserom.gbc", $8ca1b, $8cf53 - $8ca1b
+
+
+Function8cf53: ; 8cf53
+ ld hl, $c300
+ ld bc, $00c1
+.asm_8cf59
+ ld [hl], $0
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_8cf59
+ ret
+; 8cf62
+
+Function8cf62: ; 8cf62
+ call Function8cf69
+ call DelayFrame
+ ret
+; 8cf69
+
+
+
+Function8cf69: ; 8cf69
+ push hl
+ push de
+ push bc
+ push af
+ ld a, $0
+ ld [$c3b5], a
+ call Function8cf7a
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 8cf7a
+
+Function8cf7a: ; 8cf7a
+ ld hl, $c314
+ ld e, $a
+.asm_8cf7f
+ ld a, [hl]
+ and a
+ jr z, .asm_8cf91
+ ld c, l
+ ld b, h
+ push hl
+ push de
+ call Function8d24b
+ call Function8d04c
+ pop de
+ pop hl
+ jr c, .asm_8cfa7
+
+.asm_8cf91
+ ld bc, $0010
+ add hl, bc
+ dec e
+ jr nz, .asm_8cf7f
+ ld a, [$c3b5]
+ ld l, a
+ ld h, $c4
+.asm_8cf9e
+ ld a, l
+ cp $a0
+ jr nc, .asm_8cfa7
+ xor a
+ ld [hli], a
+ jr .asm_8cf9e
+
+.asm_8cfa7
+ ret
+; 8cfa8
+
+INCBIN "baserom.gbc", $8cfa8, $8cfd6 - $8cfa8
+
+
+Function8cfd6: ; 8cfd6
+ push de
+ push af
+ ld hl, $c314
+ ld e, $a
+.asm_8cfdd
+ ld a, [hl]
+ and a
+ jr z, .asm_8cfec
+ ld bc, $0010
+ add hl, bc
+ dec e
+ jr nz, .asm_8cfdd
+ pop af
+ pop de
+ scf
+ ret
+
+.asm_8cfec
+ ld c, l
+ ld b, h
+ ld hl, $c3b4
+ inc [hl]
+ ld a, [hl]
+ and a
+ jr nz, .asm_8cff7
+ inc [hl]
+
+.asm_8cff7
+ pop af
+ ld e, a
+ ld d, $0
+ ld hl, $51c4
+ add hl, de
+ add hl, de
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $0000
+ add hl, bc
+ ld a, [$c3b4]
+ ld [hli], a
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ call Function8d109
+ ld [hli], a
+ pop de
+ ld hl, $0004
+ add hl, bc
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ dec a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld a, c
+ ld [$c3b8], a
+ ld a, b
+ ld [$c3b9], a
+ ret
+; 8d036
+
+Function8d036: ; 8d036
+ ld hl, $0000
+ add hl, bc
+ ld [hl], $0
+ ret
+; 8d03d
+
+INCBIN "baserom.gbc", $8d03d, $8d04c - $8d03d
+
+
+Function8d04c: ; 8d04c
+ call Function8d0ec
+ call Function8d132
+ cp $fd
+ jr z, .asm_8d0b9
+ cp $fc
+ jr z, .asm_8d0b6
+ call Function8d1a2
+ ld a, [$c3ba]
+ add [hl]
+ ld [$c3ba], a
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push bc
+ ld a, [$c3b5]
+ ld e, a
+ ld d, $c4
+ ld a, [hli]
+ ld c, a
+.asm_8d071
+ ld a, [$c3bc]
+ ld b, a
+ ld a, [$c3be]
+ add b
+ ld b, a
+ ld a, [$c3bf]
+ add b
+ ld b, a
+ call Function8d0be
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [$c3bb]
+ ld b, a
+ ld a, [$c3bd]
+ add b
+ ld b, a
+ ld a, [$c3c0]
+ add b
+ ld b, a
+ call Function8d0ce
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [$c3ba]
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ call Function8d0de
+ ld [de], a
+ inc hl
+ inc de
+ ld a, e
+ ld [$c3b5], a
+ cp $a0
+ jr nc, .asm_8d0bb
+ dec c
+ jr nz, .asm_8d071
+ pop bc
+ jr .asm_8d0b9
+
+.asm_8d0b6
+ call Function8d036
+
+.asm_8d0b9
+ and a
+ ret
+
+.asm_8d0bb
+ pop bc
+ scf
+ ret
+; 8d0be
+
+Function8d0be: ; 8d0be
+ push hl
+ ld a, [hl]
+ ld hl, $c3b8
+ bit 6, [hl]
+ jr z, .asm_8d0cc
+ add $8
+ xor $ff
+ inc a
+
+.asm_8d0cc
+ pop hl
+ ret
+; 8d0ce
+
+Function8d0ce: ; 8d0ce
+ push hl
+ ld a, [hl]
+ ld hl, $c3b8
+ bit 5, [hl]
+ jr z, .asm_8d0dc
+ add $8
+ xor $ff
+ inc a
+
+.asm_8d0dc
+ pop hl
+ ret
+; 8d0de
+
+Function8d0de: ; 8d0de
+ ld a, [$c3b8]
+ ld b, a
+ ld a, [hl]
+ xor b
+ and $e0
+ ld b, a
+ ld a, [hl]
+ and $1f
+ or b
+ ret
+; 8d0ec
+
+Function8d0ec: ; 8d0ec
+ xor a
+ ld [$c3b8], a
+ ld hl, $0003
+ add hl, bc
+ ld a, [hli]
+ ld [$c3ba], a
+ ld a, [hli]
+ ld [$c3bb], a
+ ld a, [hli]
+ ld [$c3bc], a
+ ld a, [hli]
+ ld [$c3bd], a
+ ld a, [hli]
+ ld [$c3be], a
+ ret
+; 8d109
+
+Function8d109: ; 8d109
+ push hl
+ push bc
+ ld hl, $c300
+ ld b, a
+ ld c, $a
+.asm_8d111
+ ld a, [hli]
+ cp b
+ jr z, .asm_8d11c
+ inc hl
+ dec c
+ jr nz, .asm_8d111
+ xor a
+ jr .asm_8d11d
+
+.asm_8d11c
+ ld a, [hl]
+
+.asm_8d11d
+ pop bc
+ pop hl
+ ret
+; 8d120
+
+Function8d120: ; 8d120
+ ld hl, $0001
+ add hl, bc
+ ld [hl], a
+ ld hl, $0008
+ add hl, bc
+ ld [hl], $0
+ ld hl, $000a
+ add hl, bc
+ ld [hl], $ff
+ ret
+; 8d132
+
+
+Function8d132: ; 8d132
+.asm_8d132
+ ld hl, $0008
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_8d142
+ dec [hl]
+ call Function8d189
+ ld a, [hli]
+ push af
+ jr .asm_8d163
+
+.asm_8d142
+ ld hl, $000a
+ add hl, bc
+ inc [hl]
+ call Function8d189
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_8d17b
+ cp $ff
+ jr z, .asm_8d16d
+ push af
+ ld a, [hl]
+ push hl
+ and $3f
+ ld hl, $0009
+ add hl, bc
+ add [hl]
+ ld hl, $0008
+ add hl, bc
+ ld [hl], a
+ pop hl
+
+.asm_8d163
+ ld a, [hl]
+ and $c0
+ srl a
+ ld [$c3b8], a
+ pop af
+ ret
+
+.asm_8d16d
+ xor a
+ ld hl, $0008
+ add hl, bc
+ ld [hl], a
+ ld hl, $000a
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ jr .asm_8d132
+
+.asm_8d17b
+ xor a
+ ld hl, $0008
+ add hl, bc
+ ld [hl], a
+ dec a
+ ld hl, $000a
+ add hl, bc
+ ld [hl], a
+ jr .asm_8d132
+; 8d189
+
+Function8d189: ; 8d189
+ ld hl, $0001
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, $56e6
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $000a
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ret
+; 8d1a2
+
+Function8d1a2: ; 8d1a2
+ ld e, a
+ ld d, $0
+ ld hl, $594d
+ add hl, de
+ add hl, de
+ add hl, de
+ ret
+; 8d1ac
+
+INCBIN "baserom.gbc", $8d1ac, $8d24b - $8d1ac
+
+
+Function8d24b: ; 8d24b
+ ld hl, $0002
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, $525b
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 8d25b
+
+INCBIN "baserom.gbc", $8d25b, $8e72a - $8d25b
+
+
+Function8e72a: ; 8e72a
+ add $10
+ and $3f
+ cp $20
+ jr nc, .asm_8e737
+ call Function8e741
+ ld a, h
+ ret
+
+.asm_8e737
+ and $1f
+ call Function8e741
+ ld a, h
+ xor $ff
+ inc a
+ ret
+; 8e741
+
+Function8e741: ; 8e741
+ ld e, a
+ ld a, d
+ ld d, $0
+ ld hl, $675d
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $0000
+.asm_8e750
+ srl a
+ jr nc, .asm_8e755
+ add hl, de
+
+.asm_8e755
+ sla e
+ rl d
+ and a
+ jr nz, .asm_8e750
+ ret
+; 8e75d
+
+INCBIN "baserom.gbc", $8e75d, $8e79d - $8e75d
+
+
+Function8e79d: ; 8e79d
+ ld a, [hSGB]
+ ld de, $67f4
+ and a
+ jr z, .asm_8e7a8
+ ld de, $6804
+
+.asm_8e7a8
+ ld hl, VTiles0
+ ld bc, $2301
+ call Request2bpp
+ ld c, $8
+ ld d, $0
+.asm_8e7b5
+ push bc
+ call Function8e7c6
+ call DelayFrame
+ pop bc
+ inc d
+ inc d
+ dec c
+ jr nz, .asm_8e7b5
+ call ClearSprites
+ ret
+; 8e7c6
+
+Function8e7c6: ; 8e7c6
+ ld hl, Sprites
+ ld c, $8
+.asm_8e7cb
+ ld a, c
+ and a
+ ret z
+ dec c
+ ld a, c
+ sla a
+ sla a
+ sla a
+ push af
+ push de
+ push hl
+ call $672c
+ pop hl
+ pop de
+ add $68
+ ld [hli], a
+ pop af
+ push de
+ push hl
+ call Function8e72a
+ pop hl
+ pop de
+ add $54
+ ld [hli], a
+ ld a, $0
+ ld [hli], a
+ ld a, $6
+ ld [hli], a
+ jr .asm_8e7cb
+; 8e7f4
+
+INCBIN "baserom.gbc", $8e7f4, $8e814 - $8e7f4
+
+
+Function8e814: ; 8e814
+ push hl
+ push de
+ push bc
+ push af
+ ld hl, $c300
+ ld bc, $00c1
+.asm_8e81e
+ ld [hl], $0
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_8e81e
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
+; 8e82b
+
+Function8e82b: ; 8e82b
+ ld a, e
+ call ReadMonMenuIcon
+ ld l, a
+ ld h, $0
+ add hl, hl
+ ld de, IconPointers
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld b, $23
+ ld c, $8
+ ret
+; 8e83f
+
+Function8e83f: ; 8e83f
+ push hl
+ push de
+ push bc
+ call Function8e849
+ pop bc
+ pop de
+ pop hl
+ ret
+; 8e849
+
+Function8e849: ; 8e849
+ ld d, $0
+ ld hl, $6854
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 8e854
+
+INCBIN "baserom.gbc", $8e854, $8e9ac - $8e854
+
GetSpeciesIcon: ; 8e9ac
; Load species icon into VRAM at tile a
push de
@@ -17482,12 +58347,46 @@
GetGFXUnlessMobile: ; 8ea3f
ld a, [InLinkBattle]
cp 4 ; Mobile Link Battle
- jp nz, $eba
- jp $dc9
+ jp nz, Request2bpp
+ jp Functiondc9
; 8ea4a
-INCBIN "baserom.gbc", $8ea4a, $8eab3 - $8ea4a
+Function8ea4a: ; 8ea4a
+ ld hl, $c314
+ ld e, $6
+ ld a, [$cfa9]
+ ld d, a
+.asm_8ea53
+ ld a, [hl]
+ and a
+ jr z, .asm_8ea69
+ cp d
+ jr z, .asm_8ea5e
+ ld a, $0
+ jr .asm_8ea60
+.asm_8ea5e
+ ld a, $2
+
+.asm_8ea60
+ push hl
+ ld c, l
+ ld b, h
+ ld hl, $0002
+ add hl, bc
+ ld [hl], a
+ pop hl
+
+.asm_8ea69
+ ld bc, $0010
+ add hl, bc
+ dec e
+ jr nz, .asm_8ea53
+ ret
+; 8ea71
+
+INCBIN "baserom.gbc", $8ea71, $8eab3 - $8ea71
+
ReadMonMenuIcon: ; 8eab3
cp EGG
jr z, .egg
@@ -17840,8 +58739,196 @@
SECTION "bank24",ROMX,BANK[$24]
-INCBIN "baserom.gbc", $90000, $909F2-$90000
+INCBIN "baserom.gbc", $90000, $9000f - $90000
+
+Function9000f: ; 9000f
+ call Function9001c
+ jr nc, .asm_90017
+ xor a
+ ld [hl], a
+ ret
+
+.asm_90017
+ scf
+ ret
+; 90019
+
+Function90019: ; 90019
+ jp Function9001c
+; 9001c
+
+Function9001c: ; 9001c
+ ld hl, $dc7c
+ ld b, $a
+.asm_90021
+ ld a, [hli]
+ cp c
+ jr z, .asm_9002a
+ dec b
+ jr nz, .asm_90021
+ xor a
+ ret
+
+.asm_9002a
+ dec hl
+ scf
+ ret
+; 9002d
+
+INCBIN "baserom.gbc", $9002d, $90069 - $9002d
+
+
+Function90069: ; 90069
+ ld a, [hROMBank]
+ push af
+ ld a, b
+ rst Bankswitch
+
+ call PlaceString
+ pop af
+ rst Bankswitch
+
+ ret
+; 90074
+
+INCBIN "baserom.gbc", $90074, $9029a - $90074
+
+
+Function9029a: ; 9029a
+ ld a, b
+ ld [DefaultFlypoint], a
+ ld a, e
+ ld [$d003], a
+ ld a, d
+ ld [$d004], a
+ call Function902b3
+ call Function902b3
+ ld a, $41
+ ld hl, $60d3
+ rst FarCall
+ ret
+; 902b3
+
+Function902b3: ; 902b3
+ call Function9033f
+ call $4357
+ call Function902c9
+ call $4357
+ call Function90375
+ call $4357
+ call Function902c9
+ ret
+; 902c9
+
+Function902c9: ; 902c9
+ call Function90375
+ ld hl, $c4c9
+ ld [hl], $62
+ inc hl
+ inc hl
+ ld a, [DefaultFlypoint]
+ ld b, a
+ ld a, [$d003]
+ ld e, a
+ ld a, [$d004]
+ ld d, a
+ call Function90069
+ ret
+; 902e3
+
+INCBIN "baserom.gbc", $902e3, $902eb - $902e3
+
+
+Function902eb: ; 902eb
+ call Function9031d
+ call Function90355
+ call Function9032f
+ call Function90355
+ call Function9033b
+ call Function90355
+ call Function9032f
+ call Function90355
+ call Function9033b
+ call Function90355
+ call Function9032f
+ call Function90355
+ call Function9033b
+ call Function90355
+ ret
+; 90316
+
+INCBIN "baserom.gbc", $90316, $9031d - $90316
+
+
+Function9031d: ; 9031d
+ ld hl, UnknownText_0x9032a
+ call PrintText
+ ld de, SFX_HANG_UP
+ call StartSFX
+ ret
+; 9032a
+
+UnknownText_0x9032a: ; 9032a
+ text_jump UnknownText_0x1c5580, BANK(UnknownText_0x1c5580)
+ db "@"
+; 9032f
+
+
+Function9032f: ; 9032f
+ ld hl, UnknownText_0x90336
+ call PrintText
+ ret
+; 90336
+
+UnknownText_0x90336: ; 0x90336
+ text_jump UnknownText_0x1c5588, BANK(UnknownText_0x1c5588)
+ db "@"
+; 0x9033b
+
+
+Function9033b: ; 9033b
+ call SpeechTextBox
+ ret
+; 9033f
+
+Function9033f: ; 9033f
+ call WaitSFX
+ ld de, SFX_CALL
+ call StartSFX
+ call Function90375
+ call Function1ad2
+ ld a, $13
+ ld hl, $5188
+ rst FarCall
+ ret
+; 90355
+
+Function90355: ; 90355
+ jr .asm_90357
+
+.asm_90357
+ ld c, $14
+ call DelayFrames
+ ld a, $13
+ ld hl, $5188
+ rst FarCall
+ ret
+; 90363
+
+INCBIN "baserom.gbc", $90363, $90375 - $90363
+
+
+Function90375: ; 90375
+ ld hl, TileMap
+ ld b, $2
+ ld c, $12
+ call TextBox
+ ret
+; 90380
+
+INCBIN "baserom.gbc", $90380, $909f2 - $90380
+
dw Sunday
dw Monday
dw Tuesday
@@ -17873,8 +58960,153 @@
INCBIN "gfx/misc/pokegear_sprites.lz"
; 91508
-INCBIN "baserom.gbc", $91508, $91bb5 - $91508
+INCBIN "baserom.gbc", $91508, $918bf - $91508
+RadioChannels: ; 918bf
+; Buena's Password is at 0x917c3
+ db "OAK's ", $e1, $e2, " Talk@"
+ db "#DEX Show@"
+ db "#MON Music@"
+ db "Lucky Channel@"
+ db "?????@"
+ db "Places & People@"
+ db "Let's All Sing!@"
+ db "# FLUTE@"
+; 9191c
+
+INCBIN "baserom.gbc", $9191c, $91ae1 - $9191c
+
+Function91ae1: ; 91ae1
+ ld a, e
+ and a
+ jr nz, .asm_91aec
+ call Function91ff2
+ call FillJohtoMap
+ ret
+
+.asm_91aec
+ call Function91ff2
+ call FillKantoMap
+ ret
+; 91af3
+
+
+Function91af3: ; 91af3
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ ld hl, $ffaa
+ ld a, [hl]
+ push af
+ ld [hl], $1
+ xor a
+ ld [hBGMapMode], a
+ callba Function8cf53
+ call Function91ff2
+ ld de, $62e1
+ ld hl, $9300
+ ld bc, $2406
+ call Request1bpp
+ call FlyMap
+ call Function91c8f
+ ld b, $2
+ call GetSGBLayout
+ call Function32f9
+.asm_91b29
+ call Functiona57
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $2
+ jr nz, .asm_91b4a
+ ld a, [hl]
+ and $1
+ jr nz, .asm_91b4e
+ call Function91b73
+ call Function91c17
+ callba Function8cf69
+ call DelayFrame
+ jr .asm_91b29
+
+.asm_91b4a
+ ld a, $ff
+ jr .asm_91b5a
+
+.asm_91b4e
+ ld a, [DefaultFlypoint]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ ld de, $5c5f
+ add hl, de
+ ld a, [hl]
+
+.asm_91b5a
+ ld [DefaultFlypoint], a
+ pop af
+ ld [$ffaa], a
+ call WhiteBGMap
+ ld a, $90
+ ld [hWY], a
+ xor a
+ ld [hBGMapAddress], a
+ ld a, $98
+ ld [$ffd7], a
+ ld a, [DefaultFlypoint]
+ ld e, a
+ ret
+; 91b73
+
+Function91b73: ; 91b73
+ ld a, [StartFlypoint]
+ ld e, a
+ ld a, [EndFlypoint]
+ ld d, a
+ ld hl, $ffa9
+ ld a, [hl]
+ and $40
+ jr nz, .asm_91b89
+ ld a, [hl]
+ and $80
+ jr nz, .asm_91b9b
+ ret
+
+.asm_91b89
+ ld hl, DefaultFlypoint
+ ld a, [hl]
+ cp d
+ jr nz, .asm_91b93
+ ld a, e
+ dec a
+ ld [hl], a
+
+.asm_91b93
+ inc [hl]
+ call Function91c3c
+ jr z, .asm_91b89
+ jr .asm_91bab
+
+.asm_91b9b
+ ld hl, DefaultFlypoint
+ ld a, [hl]
+ cp e
+ jr nz, .asm_91ba5
+ ld a, d
+ inc a
+ ld [hl], a
+
+.asm_91ba5
+ dec [hl]
+ call Function91c3c
+ jr z, .asm_91b9b
+
+.asm_91bab
+ call TownMapBubble
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 91bb5
+
TownMapBubble: ; 91bb5
; Draw the bubble containing the location text in the town map HUD
@@ -17949,8 +59181,46 @@
ret
; 91c17
-INCBIN "baserom.gbc", $91c17, $91c50 - $91c17
+Function91c17: ; 91c17
+ ld a, [DefaultFlypoint]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ ld de, Flypoints
+ add hl, de
+ ld e, [hl]
+ callba GetLandmarkCoords
+ ld a, [$d003]
+ ld c, a
+ ld a, [$d004]
+ ld b, a
+ ld hl, $0004
+ add hl, bc
+ ld [hl], e
+ ld hl, $0005
+ add hl, bc
+ ld [hl], d
+ ret
+; 91c3c
+Function91c3c: ; 91c3c
+ push bc
+ push de
+ push hl
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ ld de, $5c5f
+ add hl, de
+ ld c, [hl]
+ call GetFlyPermission
+ pop hl
+ pop de
+ pop bc
+ and a
+ ret
+; 91c50
+
GetFlyPermission: ; 91c50
; Return flypoint c permission flag in a
ld hl, FlypointPerms
@@ -17995,8 +59265,12 @@
; 91c8e
-INCBIN "baserom.gbc", $91c8e, $91c90 - $91c8e
+INCBIN "baserom.gbc", $91c8e, $91c8f - $91c8e
+Function91c8f: ; 91c8f
+ ret
+; 91c90
+
FlyMap: ; 91c90
ld a, [MapGroup]
@@ -18103,7 +59377,7 @@
call TownMapBubble
call TownMapPals
- ld hl, $9800 ; BG Map 0
+ ld hl, VBGMap0 ; BG Map 0
call TownMapBGUpdate
call TownMapMon
@@ -18250,7 +59524,7 @@
; Animation/palette
ld de, $0000
ld a, $0
- call $3b2a
+ call Function3b2a
ld hl, 3
add hl, bc
@@ -18270,7 +59544,7 @@
; Standing icon
ld hl, $8100
ld c, 4 ; # tiles
- call $eba
+ call Request2bpp
; Walking icon
ld hl, $00c0
@@ -18280,7 +59554,7 @@
ld hl, $8140
ld c, 4 ; # tiles
ld a, $30
- call $eba
+ call Request2bpp
; Animation/palette
ld de, $0000
@@ -18292,7 +59566,7 @@
.asm_91fd3
ld a, b
- call $3b2a
+ call Function3b2a
ld hl, $0003
add hl, bc
@@ -18313,15 +59587,24 @@
ret
; 0x91ff2
-INCBIN "baserom.gbc", $91ff2, $91fff - $91ff2
+Function91ff2: ; 91ff2
+ ld hl, TownMapGFX
+ ld de, VTiles2
+ ld bc, BANK(TownMapGFX) << 8 + $30
+ call Functione73
+ ret
+; 91fff
-JohtoMap:
-INCBIN "baserom.gbc", $91fff, $92168 - $91fff
-KantoMap:
-INCBIN "baserom.gbc", $92168, $922d1 - $92168
+JohtoMap: ; 91fff
+INCBIN "gfx/misc/johto.bin"
+; 92168
+KantoMap: ; 92168
+INCBIN "gfx/misc/kanto.bin"
+; 922d1
+
INCBIN "baserom.gbc", $922d1, $92402 - $922d1
@@ -18368,23 +59651,199 @@
INCLUDE "maps/second_map_headers.asm"
-INCBIN "baserom.gbc", $966b0, $96795 - $966b0
+Function966b0: ; 966b0
+ xor a
+ ld [$d432], a
+.asm_966b4
+ ld a, [$d432]
+ ld hl, .pointers
+ rst JumpTable
+ ld a, [$d432]
+ cp 3 ; done
+ jr nz, .asm_966b4
+.done
+ ret
+.pointers
+ dw Function96724
+ dw Function9673e
+ dw Function96773
+ dw .done
+; 966cb
+
+Function966cb: ; 966cb
+ xor a
+ ld [ScriptFlags3], a
+ ret
+; 966d0
+
+Function966d0: ; 966d0
+ ld a, $ff
+ ld [ScriptFlags3], a
+ ret
+; 966d6
+
+Function966d6: ; 966d6
+ ld hl, ScriptFlags3
+ bit 5, [hl]
+ ret
+; 966dc
+
+Function966dc: ; 966dc
+ ld hl, ScriptFlags3
+ res 2, [hl]
+ ret
+; 966e2
+
+Function966e2: ; 966e2
+ ld hl, ScriptFlags3
+ res 1, [hl]
+ ret
+; 966e8
+
+Function966e8: ; 966e8
+ ld hl, ScriptFlags3
+ res 0, [hl]
+ ret
+; 966ee
+
+Function966ee: ; 966ee
+ ld hl, ScriptFlags3
+ res 4, [hl]
+ ret
+; 966f4
+
+Function966f4: ; 966f4
+ ld hl, ScriptFlags3
+ set 2, [hl]
+ ret
+; 966fa
+
+Function966fa: ; 966fa
+ ld hl, ScriptFlags3
+ set 1, [hl]
+ ret
+; 96700
+
+Function96700: ; 96700
+ ld hl, ScriptFlags3
+ set 0, [hl]
+ ret
+; 96706
+
+Function96706: ; 96706
+ ld hl, ScriptFlags3
+ set 4, [hl]
+ ret
+; 9670c
+
+Function9670c: ; 9670c
+ ld hl, ScriptFlags3
+ bit 2, [hl]
+ ret
+; 96712
+
+Function96712: ; 96712
+ ld hl, ScriptFlags3
+ bit 1, [hl]
+ ret
+; 96718
+
+Function96718: ; 96718
+ ld hl, ScriptFlags3
+ bit 0, [hl]
+ ret
+; 9671e
+
+Function9671e: ; 9671e
+ ld hl, ScriptFlags3
+ bit 4, [hl]
+ ret
+; 96724
+
+
+Function96724: ; 96724
+ xor a
+ ld [ScriptVar], a
+ xor a
+ ld [ScriptRunning], a
+ ld hl, $d432
+ ld bc, $3e
+ call ByteFill
+ ld a, $4
+ ld hl, $53e5
+ rst FarCall
+ call ClearJoypadPublic
+ ; fallthrough
+; 9673e
+
+
+Function9673e: ; 9673e
+ xor a
+ ld [$d453], a
+ ld [$d454], a
+ call Function968d1
+ ld a, $5
+ ld hl, $5363
+ rst FarCall
+ call Function966cb
+ ld a, [$ff9f]
+ cp $f7
+ jr nz, .asm_9675a
+ call Function966d0
+.asm_9675a
+ ld a, [$ff9f]
+ cp $f3
+ jr nz, .asm_96764
+ xor a
+ ld [PoisonStepCount], a
+.asm_96764
+ xor a
+ ld [$ff9f], a
+ ld a, $2
+ ld [$d432], a
+ ret
+; 9676d
+
+
+Function9676d: ; 9676d
+ ld c, 30
+ call DelayFrames
+ ret
+; 96773
+
+
+Function96773: ; 96773
+ call ResetOverworldDelay
+ call Function967c1
+ callba Function97e08
+ call DoEvents
+ ld a, [$d432]
+ cp 2
+ ret nz
+ call Function967d1
+ call NextOverworldFrame
+ call Function967e1
+ call Function967f4
+ ret
+; 96795
+
+
DoEvents: ; 96795
ld a, [$d433]
ld hl, .pointers
rst JumpTable
ret
-; 9679d
.pointers
dw Function967a1
dw Function967ae
+; 967a1
Function967a1: ; 967a1
call PlayerEvents
- call $66cb
+ call Function966cb
callba ScriptEvents
ret
; 967ae
@@ -18394,12 +59853,91 @@
; 967af
-INCBIN "baserom.gbc", $967af, $9681f - $967af
+MaxOverworldDelay: ; 967af
+ db 2
+; 967b0
+ResetOverworldDelay: ; 967b0
+ ld a, [MaxOverworldDelay]
+ ld [OverworldDelay], a
+ ret
+; 967b7
+NextOverworldFrame: ; 967b7
+ ld a, [OverworldDelay]
+ and a
+ ret z
+ ld c, a
+ call DelayFrames
+ ret
+; 967c1
+
+
+Function967c1: ; 967c1
+ ld a, [$d433]
+ cp 1
+ ret z
+ call UpdateTime
+ call GetJoypadPublic
+ call TimeOfDayPals
+ ret
+; 967d1
+
+Function967d1: ; 967d1
+ callba Function576a
+ ld a, $3
+ ld hl, $5497
+ rst FarCall
+ call Function96812
+ ret
+; 967e1
+
+Function967e1: ; 967e1
+ callba Function5920
+ ld a, $3
+ ld hl, $54d2
+ rst FarCall
+ ld a, $2e
+ ld hl, $4098
+ rst FarCall
+ ret
+; 967f4
+
+Function967f4: ; 967f4
+ ld a, [$d150]
+ bit 5, a
+ jr z, .asm_96806
+ bit 6, a
+ jr z, .asm_9680c
+ bit 4, a
+ jr nz, .asm_9680c
+ call Function966d0
+
+.asm_96806
+ ld a, $0
+ ld [$d433], a
+ ret
+
+.asm_9680c
+ ld a, $1
+ ld [$d433], a
+ ret
+; 96812
+
+Function96812: ; 96812
+ ld hl, $d150
+ bit 6, [hl]
+ ret z
+ ld a, $2
+ ld hl, $41ca
+ rst FarCall
+
+ ret
+; 9681f
+
+
PlayerEvents: ; 9681f
-; Reset carry.
xor a
ld a, [ScriptRunning]
@@ -18406,7 +59944,7 @@
and a
ret nz
- call $68e4
+ call Function968e4
call CheckTrainerBattle3
jr c, .asm_96848
@@ -18414,13 +59952,13 @@
call CheckTileEvent
jr c, .asm_96848
- call $7c30
+ call Function97c30
jr c, .asm_96848
- call $68ec
+ call Function968ec
jr c, .asm_96848
- call $693a
+ call Function9693a
jr c, .asm_96848
call OWPlayerInput
@@ -18432,13 +59970,11 @@
.asm_96848
push af
- ld a, $25
- ld hl, $6c56
- rst FarCall
+ callba Function96c56
pop af
ld [ScriptRunning], a
- call $6beb
+ call Function96beb
ld a, [ScriptRunning]
cp 4
jr z, .asm_96865
@@ -18472,7 +60008,7 @@
CheckTileEvent: ; 96874
; Check for warps, tile triggers or wild battles.
- call $670c
+ call Function9670c
jr z, .asm_96886
ld a, $41
@@ -18480,30 +60016,29 @@
rst FarCall
jr c, .asm_968a6
- call $2238
+ call Function2238
jr c, .asm_968aa
.asm_96886
- call $6712
+ call Function96712
jr z, .asm_96890
- call $2ad4
+ call Function2ad4
jr c, .asm_968ba
.asm_96890
- call $6718
+ call Function96718
jr z, .asm_96899
- call $6b79
+ call CountStep
ret c
.asm_96899
- call $671e
+ call Function9671e
jr z, .asm_968a4
- call $7cc0
+ call Function97cc0
ret c
-
jr .asm_968a4
.asm_968a4
@@ -18517,7 +60052,7 @@
.asm_968aa
ld a, [StandingTile]
- call $18a6
+ call CheckPitTile
jr nz, .asm_968b6
ld a, 6
scf
@@ -18533,15 +60068,144 @@
ld a, [hli]
ld h, [hl]
ld l, a
- call $2c57
+ call GetMapEventBank
call PushScriptPointer
ret
; 968c7
-INCBIN "baserom.gbc", $968c7, $96974 - $968c7
+Function968c7: ; 968c7
+ ld hl, $d452
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret z
+ scf
+ ret
+; 968d1
+Function968d1: ; 968d1
+ ld a, 5
+ ld [$d452], a
+ ret
+; 968d7
+Function968d7: ; 968d7
+ ret
+; 968d8
+
+Function968d8: ; 968d8
+ ld a, [$d452]
+ cp 2
+ ret nc
+ ld a, 2
+ ld [$d452], a
+ ret
+; 968e4
+
+Function968e4: ; 968e4
+ call Function966d6
+ ret z
+ call Function2f3e
+ ret
+; 968ec
+
+Function968ec: ; 968ec
+ ld a, [$dc07]
+ and a
+ jr z, .asm_96938
+
+ ld c, a
+ call Function211b
+ cp c
+ jr nc, .asm_96938
+
+ ld e, a
+ ld d, 0
+ ld hl, $dc08
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+
+ call GetMapEventBank
+ call GetFarHalfword
+ call GetMapEventBank
+ call PushScriptPointer
+
+ ld hl, ScriptFlags
+ res 3, [hl]
+
+ callba Function96c56
+ callba ScriptEvents
+
+ ld hl, ScriptFlags
+ bit 3, [hl]
+ jr z, .asm_96938
+
+ ld hl, $d44f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d44e]
+ call PushScriptPointer
+ scf
+ ret
+
+.asm_96938
+ xor a
+ ret
+; 9693a
+
+Function9693a: ; 9693a
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .asm_96964
+ ld hl, StatusFlags2
+ bit 2, [hl]
+ jr z, .asm_96951
+ ld a, $4
+ ld hl, Route7_SecondMapHeader
+ rst FarCall
+ jr c, .asm_96966
+ xor a
+ ret
+
+.asm_96951
+ ld a, $4
+ ld hl, $5452
+ rst FarCall
+ ld a, $4
+ ld hl, $54e7
+ rst FarCall
+ ld a, $24
+ ld hl, $4074
+ rst FarCall
+ ret c
+
+.asm_96964
+ xor a
+ ret
+
+.asm_96966
+ ld a, $4
+ ld hl, $75f8
+ call PushScriptPointer
+ scf
+ ret
+; 96970
+
+Function96970: ; 96970
+ ld a, 8
+ scf
+ ret
+; 96974
+
+
OWPlayerInput: ; 96974
call PlayerMovement
@@ -18580,7 +60244,7 @@
ret c
call TryReadSign
ret c
- call $7c5f
+ call Function97c5f
ret c
xor a
ret
@@ -18605,7 +60269,7 @@
.IsObject
call PlayTalkObject
ld a, [hConnectedMapWidth]
- call $1ae5
+ call Function1ae5
ld hl, $0001
add hl, bc
ld a, [hl]
@@ -18653,7 +60317,7 @@
ld a, [hli]
ld h, [hl]
ld l, a
- call $2c57
+ call GetMapEventBank
call PushScriptPointer
; ld a, -1
ret
@@ -18665,7 +60329,7 @@
ld a, [hli]
ld h, [hl]
ld l, a
- call $2c57
+ call GetMapEventBank
ld de, EngineBuffer1
ld bc, 2
call FarCopyBytes
@@ -18709,7 +60373,7 @@
ret
.IsSign
- ld a, [$d040]
+ ld a, [MartPointer]
ld hl, .signs
rst JumpTable
ret
@@ -18743,7 +60407,7 @@
ld a, [PlayerDirection]
and %1100
cp b
- jp nz, $6ad6
+ jp nz, .dontread
.read
call PlayTalkObject
@@ -18751,7 +60415,7 @@
ld a, [hli]
ld h, [hl]
ld l, a
- call $2c57
+ call GetMapEventBank
call PushScriptPointer
scf
ret
@@ -18758,9 +60422,9 @@
.itemifset
call CheckSignFlag
- jp nz, $6ad6
+ jp nz, .dontread
call PlayTalkObject
- call $2c57
+ call GetMapEventBank
ld de, EngineBuffer1
ld bc, 3
call FarCopyBytes
@@ -18773,7 +60437,7 @@
.asm_96aa2
call CheckSignFlag
jr nz, .dontread
- call $2c57
+ call GetMapEventBank
ld de, EngineBuffer1
ld bc, 3
call FarCopyBytes
@@ -18794,9 +60458,9 @@
pop hl
inc hl
inc hl
- call $2c57
+ call GetMapEventBank
call GetFarHalfword
- call $2c57
+ call GetMapEventBank
call PushScriptPointer
scf
ret
@@ -18813,7 +60477,7 @@
ld h, [hl]
ld l, a
push hl
- call $2c57
+ call GetMapEventBank
call GetFarHalfword
ld e, l
ld d, h
@@ -18853,7 +60517,7 @@
; 96b10
.seven ; 96b10
- call $68d7 ; empty
+ call Function968d7 ; empty
xor a
ld c, a
ret
@@ -18953,9 +60617,184 @@
; 96b79
-INCBIN "baserom.gbc", $96b79, $96c5e - $96b79
+CountStep: ; 96b79
+ ld a, [InLinkBattle]
+ and a
+ jr nz, .asm_96bc9
+ ld a, $24
+ ld hl, $4136
+ rst FarCall
+ jr c, .asm_96bcb
+ call Function96bd7
+ jr c, .asm_96bcb
+
+ ld hl, PoisonStepCount
+ inc [hl]
+ ld hl, StepCount
+ inc [hl]
+ jr nz, .asm_96b9c
+
+ callba StepHappiness
+
+.asm_96b9c
+ ld a, [StepCount]
+ cp $80
+ jr nz, .asm_96bab
+
+ callba Function16f3e
+ jr nz, .asm_96bcf
+
+.asm_96bab
+ callba DaycareStep
+
+ ld hl, PoisonStepCount
+ ld a, [hl]
+ cp 4
+ jr c, .asm_96bc3
+ ld [hl], 0
+
+ ld a, $14
+ ld hl, $45da
+ rst FarCall
+ jr c, .asm_96bcb
+
+.asm_96bc3
+ callba Function97db3
+
+.asm_96bc9
+ xor a
+ ret
+
+.asm_96bcb
+ ld a, -1
+ scf
+ ret
+
+.asm_96bcf
+ ld a, 8
+ scf
+ ret
+; 96bd3
+
+
+Function96bd3: ; 96bd3
+ ld a, $7
+ scf
+ ret
+; 96bd7
+
+Function96bd7: ; 96bd7
+ ld a, [$dca1]
+ and a
+ ret z
+ dec a
+ ld [$dca1], a
+ ret nz
+ ld a, $4
+ ld hl, $7619
+ call PushScriptPointer
+ scf
+ ret
+; 96beb
+
+Function96beb: ; 96beb
+ ld a, [ScriptRunning]
+ and a
+ ret z
+ cp $ff
+ ret z
+ cp $a
+ ret nc
+
+ ld c, a
+ ld b, 0
+ ld hl, ScriptPointers96c0c
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld [ScriptBank], a
+ ld a, [hli]
+ ld [ScriptPos], a
+ ld a, [hl]
+ ld [ScriptPos + 1], a
+ ret
+; 96c0c
+
+ScriptPointers96c0c: ; 96c0c
+ dbw BANK(UnknownScript_0x96c2d), UnknownScript_0x96c2d
+ dbw $2f, $6675 ; BANK(UnknownScript_0xbe675), UnknownScript_0xbe675
+ dbw $2f, $666a ; BANK(UnknownScript_0xbe66a), UnknownScript_0xbe66a
+ dbw $04, $62ce ; BANK(UnknownScript_0x122ce), UnknownScript_0x122ce
+ dbw BANK(UnknownScript_0x96c4d), UnknownScript_0x96c4d
+ dbw BANK(UnknownScript_0x96c34), UnknownScript_0x96c34
+ dbw BANK(FallIntoMapScript), FallIntoMapScript
+ dbw BANK(UnknownScript_0x124c8), UnknownScript_0x124c8
+ dbw BANK(UnknownScript_0x96c2f), UnknownScript_0x96c2f
+ dbw BANK(UnknownScript_0x96c4f), UnknownScript_0x96c4f
+ dbw BANK(UnknownScript_0x96c2d), UnknownScript_0x96c2d
+; 96c2d
+
+UnknownScript_0x96c2d: ; 96c2d
+ end
+; 96c2e
+
+UnknownScript_0x96c2e: ; 96c2e
+ end
+; 96c2f
+
+UnknownScript_0x96c2f: ; 96c2f
+ 3callasm $05, $6f5e
+ end
+; 96c34
+
+UnknownScript_0x96c34: ; 96c34
+ warpsound
+ newloadmap $f5
+ end
+; 96c38
+
+FallIntoMapScript: ; 96c38
+ newloadmap $f6
+ playsound SFX_KINESIS
+ applymovement $0, MovementData_0x96c48
+ playsound SFX_STRENGTH
+ 2call UnknownScript_0x96c4a
+ end
+; 96c48
+
+MovementData_0x96c48: ; 96c48
+ skyfall
+ step_end
+; 96c4a
+
+UnknownScript_0x96c4a: ; 96c4a
+ earthquake 16
+ end
+; 96c4d
+
+UnknownScript_0x96c4d: ; 96c4d
+ reloadandreturn $f7
+; 96c4f
+
+UnknownScript_0x96c4f: ; 96c4f
+ deactivatefacing $3
+ 3callasm BANK(Function96706), Function96706
+ end
+; 96c56
+
+
+Function96c56: ; 96c56
+ push af
+ ld a, 1
+ ld [ScriptMode], a
+ pop af
+ ret
+; 96c5e
+
+
ScriptEvents: ; 96c5e
call StartScript
.loop
@@ -18985,9 +60824,7 @@
dec [hl]
ret nz
- ld a, $1
- ld hl, $58b9
- rst FarCall
+ callba Function58b9
ld a, SCRIPT_READ
ld [ScriptMode], a
@@ -19002,9 +60839,7 @@
bit 7, [hl]
ret nz
- ld a, $1
- ld hl, $58b9
- rst FarCall
+ callba Function58b9
ld a, SCRIPT_READ
ld [ScriptMode], a
@@ -19023,9 +60858,652 @@
INCLUDE "engine/scripting.asm"
-INCBIN "baserom.gbc", $97c20, $97f7e - $97c20
+Function97c20: ; 97c20
+ ld a, [.byte]
+ ld [ScriptVar], a
+ ret
+.byte
+ db 0
+; 97c28
+Function97c28: ; 97c28
+ ld hl, StatusFlags2
+ res 1, [hl]
+ res 2, [hl]
+ ret
+; 97c30
+
+Function97c30: ; 97c30
+ ld a, [$d45c]
+ and a
+ ret z
+ ld hl, $d45e
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d45d]
+ call PushScriptPointer
+ scf
+ push af
+ xor a
+ ld hl, $d45c
+ ld bc, 8
+ call ByteFill
+ pop af
+ ret
+; 97c4f
+
+Function97c4f: ; 97c4f
+ ld hl, $d45c
+ ld a, [hl]
+ and a
+ ret nz
+ ld [hl], 1
+ inc hl
+ ld [hl], b
+ inc hl
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ scf
+ ret
+; 97c5f
+
+Function97c5f: ; 97c5f
+ call GetFacingTileCoord
+ ld [EngineBuffer1], a
+ ld c, a
+ ld a, $4
+ ld hl, $765b
+ rst FarCall
+ jr c, .asm_97cb9
+
+ call CheckCutTreeTile
+ jr nz, .whirlpool
+ callba TryCutOW
+ jr .asm_97cb9
+
+.whirlpool
+ ld a, [EngineBuffer1]
+ call CheckWhirlpoolTile
+ jr nz, .waterfall
+ callba TryWhirlpoolOW
+ jr .asm_97cb9
+
+.waterfall
+ ld a, [EngineBuffer1]
+ call CheckWaterfallTile
+ jr nz, .headbutt
+ callba TryWaterfallOW
+ jr .asm_97cb9
+
+.headbutt
+ ld a, [EngineBuffer1]
+ call CheckHeadbuttTreeTile
+ jr nz, .surf
+ callba TryHeadbuttOW
+ jr c, .asm_97cb9
+ jr .asm_97cb7
+
+.surf
+ callba TrySurfOW
+ jr nc, .asm_97cb7
+ jr .asm_97cb9
+
+.asm_97cb7
+ xor a
+ ret
+
+.asm_97cb9
+ call PlayClickSFX
+ ld a, $ff
+ scf
+ ret
+; 97cc0
+
+Function97cc0: ; 97cc0
+ call Function968c7
+ jr c, .asm_97ce2
+ call Function97cfd
+ jr nc, .asm_97ce2
+ ld hl, StatusFlags2
+ bit 2, [hl]
+ jr nz, .asm_97cdb
+ ld a, $a
+ ld hl, $60e7
+ rst FarCall
+ jr nz, .asm_97ce2
+ jr .asm_97ce6
+
+.asm_97cdb
+ call Function97d23
+ jr nc, .asm_97ce2
+ jr .asm_97ced
+
+.asm_97ce2
+ ld a, 1
+ and a
+ ret
+
+.asm_97ce6
+ ld a, BANK(UnknownScript_0x97cf9)
+ ld hl, UnknownScript_0x97cf9
+ jr .asm_97cf4
+
+.asm_97ced
+ ld a, $4
+ ld hl, Script_dotrigger
+ jr .asm_97cf4
+
+.asm_97cf4
+ call PushScriptPointer
+ scf
+ ret
+; 97cf9
+
+UnknownScript_0x97cf9: ; 97cf9
+ battlecheck
+ startbattle
+ returnafterbattle
+ end
+; 97cfd
+
+Function97cfd: ; 97cfd
+ ld hl, StatusFlags
+ bit 5, [hl]
+ jr nz, .asm_97d21
+ ld a, [$d19a]
+ cp $4
+ jr z, .asm_97d17
+ cp $7
+ jr z, .asm_97d17
+ ld a, $5
+ ld hl, $49dd
+ rst FarCall
+ jr nc, .asm_97d21
+
+.asm_97d17
+ ld a, [StandingTile]
+ call CheckIceTile
+ jr z, .asm_97d21
+ scf
+ ret
+
+.asm_97d21
+ and a
+ ret
+; 97d23
+
+Function97d23: ; 97d23
+ call Function97d64
+ ret nc
+ call Function97d31
+ ld a, $a
+ ld hl, $61df
+ rst FarCall
+ ret
+; 97d31
+
+Function97d31: ; 97d31
+.asm_97d31
+ call RNG
+ cp 100 << 1
+ jr nc, .asm_97d31
+ srl a
+ ld hl, Table97d87
+ ld de, 4
+.asm_97d40
+ sub [hl]
+ jr c, .asm_97d46
+ add hl, de
+ jr .asm_97d40
+
+.asm_97d46
+ inc hl
+ ld a, [hli]
+ ld [$d22e], a
+ ld a, [hli]
+ ld d, a
+ ld a, [hl]
+ sub d
+ jr nz, .asm_97d54
+ ld a, d
+ jr .asm_97d5f
+
+.asm_97d54
+ ld c, a
+ inc c
+ call RNG
+ ld a, [hRandomAdd]
+ call SimpleDivide
+ add d
+
+.asm_97d5f
+ ld [CurPartyLevel], a
+ xor a
+ ret
+; 97d64
+
+Function97d64: ; 97d64
+ ld a, [StandingTile]
+ call Function188e
+ ld b, $66
+ jr z, .asm_97d70
+ ld b, $33
+
+.asm_97d70
+ ld a, $a
+ ld hl, $6124
+ rst FarCall
+ ld a, $a
+ ld hl, $6138
+ rst FarCall
+ call RNG
+ ld a, [hRandomAdd]
+ cp b
+ ret c
+ ld a, 1
+ and a
+ ret
+; 97d87
+
+Table97d87: ; 97d87
+ db 20, $0a, $07, $12
+ db 20, $0d, $07, $12
+ db 10, $0b, $09, $12
+ db 10, $0e, $09, $12
+ db 5, $0c, $0c, $0f
+ db 5, $0f, $0c, $0f
+ db 10, $30, $0a, $10
+ db 10, $2e, $0a, $11
+ db 5, $7b, $0d, $0e
+ db 5, $7f, $0d, $0e
+ db -1, $31, $1e, $28
+; 97db3
+
+Function97db3: ; 97db3
+ nop
+ nop
+ ; fallthrough
+; 97db5
+
+Function97db5: ; 97db5
+ ld hl, StatusFlags2
+ bit 4, [hl]
+ jr z, .asm_97df7
+ ld a, [PlayerState]
+ cp $1
+ jr nz, .asm_97df7
+ call Function2d05
+ and a
+ jr nz, .asm_97df7
+ ld hl, $dca2
+ ld a, [hli]
+ ld d, a
+ ld e, [hl]
+ cp $ff
+ jr nz, .asm_97dd8
+ ld a, e
+ cp $ff
+ jr z, .asm_97ddc
+
+.asm_97dd8
+ inc de
+ ld [hl], e
+ dec hl
+ ld [hl], d
+
+.asm_97ddc
+ ld a, d
+ cp $4
+ jr c, .asm_97df7
+ ld a, [$dc31]
+ and a
+ jr nz, .asm_97df7
+ ld a, $6
+ ld [$dc31], a
+ xor a
+ ld [$dc32], a
+ ld hl, StatusFlags2
+ res 4, [hl]
+ scf
+ ret
+
+.asm_97df7
+ xor a
+ ret
+; 97df9
+
+Function97df9: ; 97df9
+ ld hl, $d6de
+ ld de, $0006
+ ld c, $4
+ xor a
+.asm_97e02
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_97e02
+ ret
+; 97e08
+
+Function97e08: ; 97e08
+ ld hl, $d6de
+ xor a
+.asm_97e0c
+ ld [hConnectionStripLength], a
+ ld a, [hl]
+ and a
+ jr z, .asm_97e19
+ push hl
+ ld b, h
+ ld c, l
+ call Function97e79
+ pop hl
+
+.asm_97e19
+ ld de, $0006
+ add hl, de
+ ld a, [hConnectionStripLength]
+ inc a
+ cp $4
+ jr nz, .asm_97e0c
+ ret
+; 97e25
+
+Function97e25: ; 97e25
+ ld hl, $d6de
+ ld bc, 6
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ret
+; 97e31
+
+Function97e31: ; 97e31
+ push bc
+ push de
+ call Function97e45
+ ld d, h
+ ld e, l
+ pop hl
+ pop bc
+ ret c
+ ld a, b
+ ld bc, $0005
+ call FarCopyBytes
+ xor a
+ ld [hl], a
+ ret
+; 97e45
+
+Function97e45: ; 97e45
+ ld hl, $d6de
+ ld de, $0006
+ ld c, $4
+.asm_97e4d
+ ld a, [hl]
+ and a
+ jr z, .asm_97e57
+ add hl, de
+ dec c
+ jr nz, .asm_97e4d
+ scf
+ ret
+
+.asm_97e57
+ ld a, $4
+ sub c
+ and a
+ ret
+; 97e5c
+
+Function97e5c: ; 97e5c
+ ld hl, $d6de
+ ld de, $0006
+ ld c, $4
+.asm_97e64
+ ld a, [hl]
+ cp b
+ jr z, .asm_97e6e
+ add hl, de
+ dec c
+ jr nz, .asm_97e64
+ and a
+ ret
+
+.asm_97e6e
+ xor a
+ ld [hl], a
+ scf
+ ret
+; 97e72
+
+Function97e72: ; 97e72
+ ld hl, $0000
+ add hl, bc
+ ld [hl], 0
+ ret
+; 97e79
+
+Function97e79: ; 97e79
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ cp 5
+ jr c, .asm_97e83
+ xor a
+
+.asm_97e83
+ ld e, a
+ ld d, 0
+ ld hl, Table97e94
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ push af
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ rst FarCall
+ ret
+; 97e94
+
+Table97e94: ; 97e94
+ dbw BANK(Function97eb7), Function97eb7
+ dbw BANK(Function97eb8), Function97eb8
+ dbw BANK(Function97f42), Function97f42
+ dbw BANK(Function97ef9), Function97ef9
+ dbw BANK(Function97ebc), Function97ebc
+; 97ea3
+
+Function97ea3: ; 97ea3
+ ld hl, $0005
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ rst JumpTable
+ ret
+; 97eab
+
+Function97eab: ; 97eab
+ ld hl, $0005
+ add hl, bc
+ inc [hl]
+ ret
+; 97eb1
+
+Function97eb1: ; 97eb1
+ ld hl, $0005
+ add hl, bc
+ dec [hl]
+ ret
+; 97eb7
+
+Function97eb7: ; 97eb7
+ ret
+; 97eb8
+
+Function97eb8: ; 97eb8
+ call Function2f3e
+ ret
+; 97ebc
+
+Function97ebc: ; 97ebc
+ call Function97ea3
+ dw Function97ec3
+ dw Function97ecd
+; 97ec3
+
+Function97ec3: ; 97ec3
+ ld a, [hSCY]
+ ld hl, $0004
+ add hl, bc
+ ld [hl], a
+ call Function97eab
+; 97ecd
+
+Function97ecd: ; 97ecd
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ dec a
+ ld [hl], a
+ jr z, .asm_97eee
+ and $1
+ jr z, .asm_97ee4
+ ld hl, $0002
+ add hl, bc
+ ld a, [hSCY]
+ sub [hl]
+ ld [hSCY], a
+ ret
+
+.asm_97ee4
+ ld hl, $0002
+ add hl, bc
+ ld a, [hSCY]
+ add [hl]
+ ld [hSCY], a
+ ret
+
+.asm_97eee
+ ld hl, $0004
+ add hl, bc
+ ld a, [hl]
+ ld [hSCY], a
+ call Function97e72
+ ret
+; 97ef9
+
+Function97ef9: ; 97ef9
+ call Function97ea3
+ dw Function97f02
+ dw Function97f0a
+ dw Function97f1b
+; 97f02
+
+Function97f02: ; 97f02
+ call Function97f38
+ jr z, Function97f2c
+ call Function97eab
+; 97f0a
+
+Function97f0a: ; 97f0a
+ call Function97f38
+ jr z, Function97f2c
+ call Function97eab
+
+ ld hl, $0002
+ add hl, bc
+ ld a, [hl]
+ ld [$d173], a
+ ret
+; 97f1b
+
+Function97f1b: ; 97f1b
+ call Function97f38
+ jr z, Function97f2c
+ call Function97eb1
+
+ ld hl, $0003
+ add hl, bc
+ ld a, [hl]
+ ld [$d173], a
+ ret
+; 97f2c
+
+Function97f2c: ; 97f2c
+ ld a, $7f
+ ld [$d173], a
+ ld hl, $0005
+ add hl, bc
+ ld [hl], 0
+ ret
+; 97f38
+
+Function97f38: ; 97f38
+ push bc
+ ld bc, $d4d6
+ call GetSpriteDirection
+ and a
+ pop bc
+ ret
+; 97f42
+
+Function97f42: ; 97f42
+ ld de, $d4d6
+ ld a, $d
+.asm_97f47
+ push af
+
+ ld hl, $0000
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .asm_97f71
+
+ ld hl, $0003
+ add hl, de
+ ld a, [hl]
+ cp $19
+ jr nz, .asm_97f71
+
+ ld hl, $000e
+ add hl, de
+ ld a, [hl]
+ call CheckPitTile
+ jr nz, .asm_97f71
+
+ ld hl, $0007
+ add hl, de
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_97f71
+ call Function3567
+ jr c, .asm_97f7c
+
+.asm_97f71
+ ld hl, $0028
+ add hl, de
+ ld d, h
+ ld e, l
+
+ pop af
+ dec a
+ jr nz, .asm_97f47
+ ret
+
+.asm_97f7c
+ pop af
+ ret
+; 97f7e
+
+
+
SECTION "bank26",ROMX,BANK[$26]
; Map Scripts XI
@@ -19087,7 +61565,7 @@
SECTION "bank29",ROMX,BANK[$29]
-INCBIN "baserom.gbc", $a4000, $a64ad - $a4000
+INCLUDE "text/phone/extra2.asm"
SECTION "bank2A",ROMX,BANK[$2A]
@@ -20426,13 +62904,286 @@
SECTION "bank2E",ROMX,BANK[$2E]
-INCBIN "baserom.gbc", $B8000, $b8219 - $b8000
+Functionb8000: ; b8000
+ xor a
+ ld [hBGMapMode], a
+ ld a, $2e
+ ld hl, $400a
+ rst FarCall
+ ret
+; b800a
+Functionb800a: ; b800a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ ld [$c2d9], a
+ call Functionb8089
+ jr z, .asm_b8024
+ call GetMapPermission
+ cp $6
+ jr nz, .asm_b8029
+
+.asm_b8024
+ ld a, $ff
+ ld [$c2d9], a
+
+.asm_b8029
+ ld hl, $d83e
+ bit 1, [hl]
+ res 1, [hl]
+ jr nz, .asm_b8054
+ call Functionb8064
+ jr z, .asm_b8054
+ ld a, [$c2d9]
+ ld [$c2d8], a
+ call Functionb8070
+ jr z, .asm_b8054
+ ld a, $3c
+ ld [$c2da], a
+ call Functionb80c6
+ call Functionb80d3
+ ld a, $41
+ ld hl, $4303
+ rst FarCall
+ ret
+
+.asm_b8054
+ ld a, [$c2d9]
+ ld [$c2d8], a
+ ld a, $90
+ ld [rWY], a
+ ld [hWY], a
+ xor a
+ ld [hLCDStatCustom], a
+ ret
+; b8064
+
+Functionb8064: ; b8064
+ ld a, [$c2d9]
+ ld c, a
+ ld a, [$c2d8]
+ cp c
+ ret z
+ cp $0
+ ret
+; b8070
+
+Functionb8070: ; b8070
+ cp $ff
+ ret z
+ cp $0
+ ret z
+ cp $11
+ ret z
+ cp $46
+ ret z
+ cp $3b
+ ret z
+ cp $5a
+ ret z
+ cp $44
+ ret z
+ ld a, $1
+ and a
+ ret
+; b8089
+
+Functionb8089: ; b8089
+ ld a, [MapGroup]
+ cp $a
+ ret nz
+ ld a, [MapNumber]
+ cp $f
+ ret z
+ cp $11
+ ret
+; b8098
+
+INCBIN "baserom.gbc", $b8098, $b80c6 - $b8098
+
+
+Functionb80c6: ; b80c6
+ ld de, $5344
+ ld hl, $9600
+ ld bc, $3e0e
+ call Get2bpp
+ ret
+; b80d3
+
+Functionb80d3: ; b80d3
+ ld hl, TileMap
+ ld b, $2
+ ld c, $12
+ call Functionb8115
+ call Functionb812f
+ ret
+; b80e1
+
+INCBIN "baserom.gbc", $b80e1, $b8115 - $b80e1
+
+
+Functionb8115: ; b8115
+ ld de, $0939
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ ld a, $87
+.asm_b811f
+ push bc
+ push hl
+.asm_b8121
+ ld [hli], a
+ dec c
+ jr nz, .asm_b8121
+ pop hl
+ ld de, $0014
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_b811f
+ ret
+; b812f
+
+Functionb812f: ; b812f
+ ld hl, TileMap
+ ld a, $61
+ ld [hli], a
+ ld a, $62
+ call Functionb8164
+ ld a, $64
+ ld [hli], a
+ ld a, $65
+ ld [hli], a
+ call Functionb815b
+ ld a, $6b
+ ld [hli], a
+ ld a, $66
+ ld [hli], a
+ call Functionb815b
+ ld a, $6c
+ ld [hli], a
+ ld a, $67
+ ld [hli], a
+ ld a, $68
+ call Functionb8164
+ ld a, $6a
+ ld [hl], a
+ ret
+; b815b
+
+Functionb815b: ; b815b
+ ld c, $12
+ ld a, $6d
+.asm_b815f
+ ld [hli], a
+ dec c
+ jr nz, .asm_b815f
+ ret
+; b8164
+
+Functionb8164: ; b8164
+ ld c, $5
+ jr .asm_b816a
+
+.asm_b8168
+ ld [hli], a
+ ld [hli], a
+
+.asm_b816a
+ inc a
+ ld [hli], a
+ ld [hli], a
+ dec a
+ dec c
+ jr nz, .asm_b8168
+ ret
+; b8172
+
+Functionb8172: ; b8172
+ call GetMapEventBank
+ ld [MagikarpLength], a
+ ld a, [XCoord]
+ add $5
+ ld [$d1ed], a
+ ld a, [YCoord]
+ add $4
+ ld [$d1ec], a
+ ld hl, $dc02
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$dc01]
+ and a
+ jr z, .asm_b81dd
+.asm_b8194
+ ld [Buffer2], a
+ push hl
+ call Functionb81e2
+ ld e, a
+ ld a, [$d1ec]
+ sub e
+ jr c, .asm_b81d2
+ cp $9
+ jr nc, .asm_b81d2
+ call Functionb81e2
+ ld d, a
+ ld a, [$d1ed]
+ sub d
+ jr c, .asm_b81d2
+ cp $a
+ jr nc, .asm_b81d2
+ call Functionb81e2
+ cp $7
+ jr nz, .asm_b81d2
+ ld a, [MagikarpLength]
+ call GetFarHalfword
+ ld a, [MagikarpLength]
+ call GetFarHalfword
+ ld d, h
+ ld e, l
+ ld b, $2
+ call BitTable1Func
+ ld a, c
+ and a
+ jr z, .asm_b81df
+
+.asm_b81d2
+ pop hl
+ ld bc, $0005
+ add hl, bc
+ ld a, [Buffer2]
+ dec a
+ jr nz, .asm_b8194
+
+.asm_b81dd
+ xor a
+ ret
+
+.asm_b81df
+ pop hl
+ scf
+ ret
+; b81e2
+
+Functionb81e2: ; b81e2
+ ld a, [MagikarpLength]
+ call GetFarByte
+ inc hl
+ ret
+; b81ea
+
+INCBIN "baserom.gbc", $b81ea, $b8219 - $b81ea
+
Functionb8219: ; b8219
; deals strictly with rockmon encounter
xor a
ld [$d22e], a
- ld [$d143], a
+ ld [CurPartyLevel], a
ld hl, WildRockMonMapTable
call GetTreeMonEncounterTable
jr nc, .quit
@@ -20439,7 +63190,7 @@
call LoadWildTreeMonData
jr nc, .quit
ld a, $0a
- call $2fb1
+ call Function2fb1
cp a, $04
jr nc, .quit
call $441f
@@ -20666,9 +63417,140 @@
db $ff ; end
; b83e5
-INCBIN "baserom.gbc", $b83e5, $b9e8b - $b83e5
+INCBIN "baserom.gbc", $b83e5, $b9229 - $b83e5
+Functionb9229: ; b9229
+ ld a, [CurPartyMon]
+ ld hl, $a600
+ ld bc, $002f
+ call AddNTimes
+ ld d, h
+ ld e, l
+ push de
+ call WhiteBGMap
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call Functione5f
+ pop de
+ push de
+ ld a, $0
+ call GetSRAMBank
+ ld a, $77
+ ld hl, $65c8
+ rst FarCall
+ call CloseSRAM
+ ld a, c
+ ld de, $65e6
+ or a
+ jr z, .asm_b9268
+ ld de, $69e6
+ sub $3
+ jr c, .asm_b9268
+ ld de, $6de6
+.asm_b9268
+ ld hl, VTiles1
+ ld bc, $7780
+ call Get1bpp
+ pop de
+ call Functionb92b8
+ call EnableLCD
+ call WaitBGMap
+ ld a, [$d1ec]
+ ld e, a
+ ld a, $2
+ ld hl, $4cb4
+ rst FarCall
+ call Function32f9
+ xor a
+ ld [hJoyPressed], a
+ call Functionb929a
+ call WhiteBGMap
+ call DisableLCD
+ call Functione51
+ jp EnableLCD
+; b929a
+
+Functionb929a: ; b929a
+.asm_b929a
+ call GetJoypadPublic
+ ld a, [hJoyPressed]
+ and $b
+ jr z, .asm_b929a
+ and $8
+ jr nz, .asm_b92a8
+ ret
+
+.asm_b92a8
+ ld a, [$cf63]
+ push af
+ ld hl, $45d4
+ ld a, $21
+ rst FarCall
+ pop af
+ ld [$cf63], a
+ jr .asm_b929a
+; b92b8
+
+Functionb92b8: ; b92b8
+ ld h, d
+ ld l, e
+ push hl
+ ld a, $0
+ call GetSRAMBank
+ ld de, $002b
+ add hl, de
+ ld a, [hli]
+ ld [Buffer1], a
+ ld a, [hli]
+ ld [Buffer2], a
+ ld a, [hli]
+ ld [CurPartySpecies], a
+ ld b, [hl]
+ call CloseSRAM
+ ld hl, $52f8
+ ld c, $0
+.asm_b92d9
+ ld a, [hli]
+ cp b
+ jr z, .asm_b92ea
+ cp $ff
+ jr z, .asm_b92e6
+ inc c
+ inc hl
+ inc hl
+ jr .asm_b92d9
+
+.asm_b92e6
+ ld hl, $52f8
+ inc hl
+
+.asm_b92ea
+ ld a, c
+ ld [$d1ec], a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, $52f7
+ pop bc
+ push de
+ jp [hl]
+; b92f7
+
+INCBIN "baserom.gbc", $b92f7, $b9e76 - $b92f7
+
+
+Functionb9e76: ; b9e76
+ ld a, d
+ ld hl, $5e80
+ ld de, $0001
+ jp IsInArray
+; b9e80
+
+INCBIN "baserom.gbc", $b9e80, $b9e8b - $b9e80
+
+
SECTION "bank2F",ROMX,BANK[$2F]
INCBIN "baserom.gbc", $bc000, $bc09c - $bc000
@@ -20860,13 +63742,13 @@
.violet ; 0xbcf15
displaylocation $7 ; sprout tower
- 3call $3, $4edf
+ 3call $3, UnknownScript_0xbcedf
.azalea ; 0xbcf1b
displaylocation $d ; slowpoke well
- 3call $3, $4edf
+ 3call $3, UnknownScript_0xbcedf
.goldenrod ; 0xbcf21
displaylocation $11 ; radio tower
- 3call $3, $4edf
+ 3call $3, UnknownScript_0xbcedf
3writetext $6d, $411c
keeptextopen
2jump UnknownScript_0xbcf37
@@ -21113,8 +63995,885 @@
SECTION "bank33",ROMX,BANK[$33]
-INCBIN "baserom.gbc", $cc000, $cfd9e - $cc000
+Functioncc000: ; cc000
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ call $0e58
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ ld hl, TileMap
+ ld b, $4
+ ld c, $d
+ call TextBox
+ ld hl, $c518
+ ld b, $4
+ ld c, $d
+ call TextBox
+ ld hl, $c4a2
+ ld de, $40ae
+ call PlaceString
+ ld hl, $c51a
+ ld de, $40b8
+ call PlaceString
+ ld hl, $c4f5
+ ld de, $40a7
+ call PlaceString
+ ld hl, $c56d
+ ld de, $40a7
+ call PlaceString
+ ld a, [$df9c]
+ ld [$d265], a
+ call GetPokemonName
+ ld de, StringBuffer1
+ ld hl, $c4c9
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld a, [$dfbb]
+ ld [TempMonLevel], a
+ call PrintLevel
+ ld de, EnemyMonNick
+ ld hl, $c541
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld a, [EnemyMonLevel]
+ ld [TempMonLevel], a
+ call PrintLevel
+ ld hl, $c4fb
+ ld de, $dfc0
+ ld bc, $0203
+ call PrintNum
+ ld hl, $c573
+ ld de, EnemyMonMaxHPHi
+ call PrintNum
+ ld hl, $40c2
+ call PrintText
+ pop af
+ ld [Options], a
+ call WaitBGMap
+ ld b, $8
+ call GetSGBLayout
+ call Function32f9
+ ret
+; cc0a7
+INCBIN "baserom.gbc", $cc0a7, $cc0c7 - $cc0a7
+
+
+Functioncc0c7: ; cc0c7
+ call GetPokemonName
+ ld hl, $40d0
+ jp PrintText
+; cc0d0
+
+INCBIN "baserom.gbc", $cc0d0, $cc0d6 - $cc0d0
+
+
+Functioncc0d6: ; cc0d6
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call Functioncc0e4
+ pop af
+ ld [rSVBK], a
+ ret
+; cc0e4
+
+Functioncc0e4: ; cc0e4
+ ld c, $6
+.asm_cc0e6
+ call Functioncc1fb
+ dec c
+ jr nz, .asm_cc0e6
+ call Functioncc8a4
+ call Functioncc1e2
+ call Functioncc1fb
+ ld c, $1
+ ld a, [rKEY1]
+ bit 7, a
+ jr nz, .asm_cc0ff
+ ld c, $3
+
+.asm_cc0ff
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+ ld [hl], c
+ call Functioncc11c
+ pop af
+ ld [$ff9e], a
+ ld a, $1
+ ld [hBGMapMode], a
+ call Functioncc1fb
+ call Functioncc1fb
+ call Functioncc1fb
+ call WaitSFX
+ ret
+; cc11c
+
+Functioncc11c: ; cc11c
+ ld a, [FXAnimIDHi]
+ and a
+ jr nz, .asm_cc156
+ callba Function4ea44
+ jr c, .asm_cc141
+ call Functioncc1a1
+ call Functioncc163
+ call Functioncc8a4
+ call Functioncc1e2
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ call Functioncc1fb
+ call Functioncc1bb
+
+.asm_cc141
+ ld a, [$cfca]
+ and a
+ jr z, .asm_cc15f
+ ld l, a
+ ld h, $0
+ ld de, $010e
+ add hl, de
+ ld a, l
+ ld [FXAnimIDLo], a
+ ld a, h
+ ld [FXAnimIDHi], a
+
+.asm_cc156
+ call WaitSFX
+ call Functioncc881
+ call Functioncc163
+
+.asm_cc15f
+ call Functioncc8f6
+ ret
+; cc163
+
+Functioncc163: ; cc163
+ call Functioncc8d3
+.asm_cc166
+ call Functioncc25f
+ call Functionccb48
+ call Functioncc96e
+ call Function3b0c
+ call Functioncc1e2
+ ld a, [FXAnimIDHi]
+ or a
+ jr nz, .asm_cc193
+ ld a, [FXAnimIDLo]
+ cp $cd
+ jr nz, .asm_cc193
+ ld a, $2e
+ ld b, $5
+ ld de, $0004
+ ld hl, $d3fa
+.asm_cc18c
+ cp [hl]
+ jr z, .asm_cc196
+ add hl, de
+ dec b
+ jr nz, .asm_cc18c
+
+.asm_cc193
+ call Functioncc1fb
+
+.asm_cc196
+ ld a, [$d40f]
+ bit 0, a
+ jr z, .asm_cc166
+ call Functioncc23d
+ ret
+; cc1a1
+
+Functioncc1a1: ; cc1a1
+ call Functioncc1fb
+ call WaitTop
+ call Functioncc207
+ ld a, $1
+ ld [hBGMapMode], a
+ call Functioncc1fb
+ call Functioncc1fb
+ call Functioncc1fb
+ call WaitTop
+ ret
+; cc1bb
+
+Functioncc1bb: ; cc1bb
+ call Functioncc1fb
+ call WaitTop
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, UpdateBattleHuds
+ ld a, $f
+ rst FarCall
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hBGMapMode], a
+ call Functioncc1fb
+ call Functioncc1fb
+ call Functioncc1fb
+ call WaitTop
+ ret
+; cc1e2
+
+Functioncc1e2: ; cc1e2
+ ld a, [hCGB]
+ and a
+ ret z
+ ld a, [rBGP]
+ ld b, a
+ ld a, [$cfc7]
+ cp b
+ call nz, Functioncc91a
+ ld a, [rOBP0]
+ ld b, a
+ ld a, [$cfc8]
+ cp b
+ call nz, Functioncc94b
+ ret
+; cc1fb
+
+Functioncc1fb: ; cc1fb
+ ld a, $1
+ ld [VBlankOccurred], a
+.asm_cc200
+ ld a, [VBlankOccurred]
+ and a
+ jr nz, .asm_cc200
+ ret
+; cc207
+
+Functioncc207: ; cc207
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_cc216
+ ld hl, $c4a1
+ ld bc, $040a
+ call ClearBox
+ ret
+
+.asm_cc216
+ ld hl, $c535
+ ld bc, $050b
+ call ClearBox
+ ret
+; cc220
+
+INCBIN "baserom.gbc", $cc220, $cc23d - $cc220
+
+
+Functioncc23d: ; cc23d
+ ld a, [$d40f]
+ bit 3, a
+ jr z, .asm_cc254
+ ld hl, $c403
+ ld c, $28
+.asm_cc249
+ ld a, [hl]
+ and $f0
+ ld [hli], a
+ inc hl
+ inc hl
+ inc hl
+ dec c
+ jr nz, .asm_cc249
+ ret
+
+.asm_cc254
+ ld hl, Sprites
+ ld c, $a0
+ xor a
+.asm_cc25a
+ ld [hli], a
+ dec c
+ jr nz, .asm_cc25a
+ ret
+; cc25f
+
+Functioncc25f: ; cc25f
+ call Functioncc267
+ ret nc
+ call Functioncc275
+ ret
+; cc267
+
+Functioncc267: ; cc267
+ ld a, [$d412]
+ and a
+ jr z, .asm_cc273
+ dec a
+ ld [$d412], a
+ and a
+ ret
+
+.asm_cc273
+ scf
+ ret
+; cc275
+
+Functioncc275: ; cc275
+.asm_cc275
+ call Function3af0
+ cp $ff
+ jr nz, .asm_cc286
+ ld hl, $d40f
+ bit 1, [hl]
+ jr nz, .asm_cc28e
+ set 0, [hl]
+ ret
+
+.asm_cc286
+ cp $d0
+ jr nc, .asm_cc28e
+ ld [$d412], a
+ ret
+
+.asm_cc28e
+ call Functioncc293
+ jr .asm_cc275
+; cc293
+
+Functioncc293: ; cc293
+ ld a, [$d417]
+ sub $d0
+ ld e, a
+ ld d, $0
+ ld hl, $42a4
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; cc2a4
+
+INCBIN "baserom.gbc", $cc2a4, $cc881 - $cc2a4
+
+
+Functioncc881: ; cc881
+ ld a, [$cfca]
+ cp $1
+ jr z, .asm_cc88b
+ cp $4
+ ret nz
+
+.asm_cc88b
+ ld a, [TypeModifier]
+ and $7f
+ ret z
+ cp $a
+ ld de, $00ac
+ jr z, .asm_cc8a0
+ ld de, $00ad
+ jr nc, .asm_cc8a0
+ ld de, $00ab
+
+.asm_cc8a0
+ call StartSFX
+ ret
+; cc8a4
+
+Functioncc8a4: ; cc8a4
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_cc8be
+ ld a, [hSGB]
+ and a
+ ld a, $e0
+ jr z, .asm_cc8b2
+ ld a, $f0
+
+.asm_cc8b2
+ ld [$cfc8], a
+ ld a, $e4
+ ld [$cfc7], a
+ ld [$cfc9], a
+ ret
+
+.asm_cc8be
+ ld a, $e4
+ ld [$cfc7], a
+ ld [$cfc8], a
+ ld [$cfc9], a
+ call DmgToCgbBGPals
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ ret
+; cc8d3
+
+Functioncc8d3: ; cc8d3
+ ld hl, $d100
+ ld bc, $0354
+.asm_cc8d9
+ ld [hl], $0
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_cc8d9
+ ld hl, FXAnimIDLo
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $506f
+ add hl, de
+ add hl, de
+ call Function3ae1
+ call Functioncc8a4
+ call Functioncc1fb
+ ret
+; cc8f6
+
+Functioncc8f6: ; cc8f6
+ call WaitTop
+ ld a, $e4
+ ld [$cfc7], a
+ ld [$cfc8], a
+ ld [$cfc9], a
+ call DmgToCgbBGPals
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ call Functioncc1fb
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; cc91a
+
+Functioncc91a: ; cc91a
+ ld [rBGP], a
+ ld a, [hCGB]
+ and a
+ ret z
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d080
+ ld de, $d000
+ ld a, [rBGP]
+ ld b, a
+ ld c, $7
+ call CopyPals
+ ld hl, $d0c0
+ ld de, MartPointer
+ ld a, [rBGP]
+ ld b, a
+ ld c, $2
+ call CopyPals
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; cc94b
+
+Functioncc94b: ; cc94b
+ ld [rOBP0], a
+ ld a, [hCGB]
+ and a
+ ret z
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d0d0
+ ld de, $d050
+ ld a, [rOBP0]
+ ld b, a
+ ld c, $2
+ call CopyPals
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; cc96e
+
+Functioncc96e: ; cc96e
+ ld a, $0
+ ld [$d418], a
+ ld hl, $d30a
+ ld e, $a
+.asm_cc978
+ ld a, [hl]
+ and a
+ jr z, .asm_cc98a
+ ld c, l
+ ld b, h
+ push hl
+ push de
+ call Functionccfbe
+ call Functioncca09
+ pop de
+ pop hl
+ jr c, .asm_cc9a0
+
+.asm_cc98a
+ ld bc, $0018
+ add hl, bc
+ dec e
+ jr nz, .asm_cc978
+ ld a, [$d418]
+ ld l, a
+ ld h, $c4
+.asm_cc997
+ ld a, l
+ cp $a0
+ jr nc, .asm_cc9a0
+ xor a
+ ld [hli], a
+ jr .asm_cc997
+
+.asm_cc9a0
+ ret
+; cc9a1
+
+INCBIN "baserom.gbc", $cc9a1, $cc9bd - $cc9a1
+
+
+Functioncc9bd: ; cc9bd
+ ld hl, $0000
+ add hl, bc
+ ld [hl], $0
+ ret
+; cc9c4
+
+INCBIN "baserom.gbc", $cc9c4, $cca09 - $cc9c4
+
+
+Functioncca09: ; cca09
+ call Functionccaaa
+ call Functionce7d1
+ cp $fd
+ jp z, $4aa5
+ cp $fc
+ jp z, $4aa2
+ push af
+ ld hl, $d419
+ ld a, [$d420]
+ xor [hl]
+ and $e0
+ ld [hl], a
+ pop af
+ push bc
+ call Functionce83c
+ ld a, [$d41b]
+ add [hl]
+ ld [$d41b], a
+ inc hl
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$d418]
+ ld e, a
+ ld d, $c4
+.asm_cca3c
+ ld a, [$d41d]
+ ld b, a
+ ld a, [$d41f]
+ add b
+ ld b, a
+ push hl
+ ld a, [hl]
+ ld hl, $d419
+ bit 6, [hl]
+ jr z, .asm_cca53
+ add $8
+ xor $ff
+ inc a
+
+.asm_cca53
+ pop hl
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [$d41c]
+ ld b, a
+ ld a, [$d41e]
+ add b
+ ld b, a
+ push hl
+ ld a, [hl]
+ ld hl, $d419
+ bit 5, [hl]
+ jr z, .asm_cca6f
+ add $8
+ xor $ff
+ inc a
+
+.asm_cca6f
+ pop hl
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [$d41b]
+ add $31
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [$d419]
+ ld b, a
+ ld a, [hl]
+ xor b
+ and $e0
+ ld b, a
+ ld a, [hl]
+ and $10
+ or b
+ ld b, a
+ ld a, [OTPartyMon6Nickname]
+ and $f
+ or b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, e
+ ld [$d418], a
+ cp $a0
+ jr nc, .asm_ccaa7
+ dec c
+ jr nz, .asm_cca3c
+ pop bc
+ jr .asm_ccaa5
+
+ call Functioncc9bd
+
+.asm_ccaa5
+ and a
+ ret
+
+.asm_ccaa7
+ pop bc
+ scf
+ ret
+; ccaaa
+
+Functionccaaa: ; ccaaa
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ and $80
+ ld [$d419], a
+ xor a
+ ld [$d420], a
+ ld hl, $0005
+ add hl, bc
+ ld a, [hl]
+ ld [OTPartyMon6Nickname], a
+ ld hl, $0002
+ add hl, bc
+ ld a, [hl]
+ ld [$d41a], a
+ ld hl, $0006
+ add hl, bc
+ ld a, [hli]
+ ld [$d41b], a
+ ld a, [hli]
+ ld [$d41c], a
+ ld a, [hli]
+ ld [$d41d], a
+ ld a, [hli]
+ ld [$d41e], a
+ ld a, [hli]
+ ld [$d41f], a
+ ld a, [hBattleTurn]
+ and a
+ ret z
+ ld hl, $0001
+ add hl, bc
+ ld a, [hl]
+ ld [$d419], a
+ bit 0, [hl]
+ ret z
+ ld hl, $0007
+ add hl, bc
+ ld a, [hli]
+ ld d, a
+ ld a, $b4
+ sub d
+ ld [$d41c], a
+ ld a, [hli]
+ ld d, a
+ ld a, [$d41a]
+ cp $ff
+ jr nz, .asm_ccb09
+ ld a, $28
+ add d
+ jr .asm_ccb26
+
+.asm_ccb09
+ sub d
+ push af
+ ld a, [FXAnimIDHi]
+ or a
+ jr nz, .asm_ccb25
+ ld a, [FXAnimIDLo]
+ cp $86
+ jr z, .asm_ccb20
+ cp $87
+ jr z, .asm_ccb20
+ cp $d0
+ jr nz, .asm_ccb25
+
+.asm_ccb20
+ pop af
+ sub $8
+ jr .asm_ccb26
+
+.asm_ccb25
+ pop af
+
+.asm_ccb26
+ ld [$d41d], a
+ ld a, [hli]
+ xor $ff
+ inc a
+ ld [$d41e], a
+ ret
+; ccb31
+
+INCBIN "baserom.gbc", $ccb31, $ccb48 - $ccb31
+
+
+Functionccb48: ; ccb48
+ ld hl, Functioncc000
+ ld a, $32
+ rst FarCall
+ ret
+; ccb4f
+
+INCBIN "baserom.gbc", $ccb4f, $ccfbe - $ccb4f
+
+
+Functionccfbe: ; ccfbe
+ ld hl, $0004
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, $4fce
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; ccfce
+
+INCBIN "baserom.gbc", $ccfce, $ce7d1 - $ccfce
+
+
+Functionce7d1: ; ce7d1
+.asm_ce7d1
+ ld hl, $000c
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_ce7e1
+ dec [hl]
+ call Functionce823
+ ld a, [hli]
+ push af
+ jr .asm_ce7fd
+
+.asm_ce7e1
+ ld hl, $000d
+ add hl, bc
+ inc [hl]
+ call Functionce823
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_ce815
+ cp $ff
+ jr z, .asm_ce807
+ push af
+ ld a, [hl]
+ push hl
+ and $3f
+ ld hl, $000c
+ add hl, bc
+ ld [hl], a
+ pop hl
+
+.asm_ce7fd
+ ld a, [hl]
+ and $c0
+ srl a
+ ld [$d420], a
+ pop af
+ ret
+
+.asm_ce807
+ xor a
+ ld hl, $000c
+ add hl, bc
+ ld [hl], a
+ ld hl, $000d
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ jr .asm_ce7d1
+
+.asm_ce815
+ xor a
+ ld hl, $000c
+ add hl, bc
+ ld [hl], a
+ dec a
+ ld hl, $000d
+ add hl, bc
+ ld [hl], a
+ jr .asm_ce7d1
+; ce823
+
+Functionce823: ; ce823
+ ld hl, $0003
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, $685e
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $000d
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ret
+; ce83c
+
+Functionce83c: ; ce83c
+ ld l, a
+ ld h, $0
+ ld de, $6eae
+ add hl, hl
+ add hl, hl
+ add hl, de
+ ret
+; ce846
+
+INCBIN "baserom.gbc", $ce846, $cfd9e - $ce846
+
; Songs iii
Music_PostCredits: INCLUDE "audio/music/postcredits.asm"
@@ -21310,8 +65069,798 @@
SECTION "bank39",ROMX,BANK[$39]
-INCBIN "baserom.gbc", $e4000, $e555d - $e4000
+CopyrightGFX: ; e4000
+INCBIN "gfx/misc/copyright.2bpp"
+; e41d0
+_OptionsMenu: ; e41d0
+ ld hl, $ffaa
+ ld a, [hl]
+ push af
+ ld [hl], $1
+ call WhiteBGMap
+ ld hl, TileMap
+ ld b, $10
+ ld c, $12
+ call TextBox
+ ld hl, $c4ca
+ ld de, Stringe4241
+ call PlaceString
+ xor a
+ ld [$cf63], a
+ ld c, $6
+.asm_e41f3
+ push bc
+ xor a
+ ld [$ffa9], a
+ call Functione42d6
+ pop bc
+ ld hl, $cf63
+ inc [hl]
+ dec c
+ jr nz, .asm_e41f3
+ call Functione4512
+ xor a
+ ld [$cf63], a
+ inc a
+ ld [hBGMapMode], a
+ call WaitBGMap
+ ld b, $8
+ call GetSGBLayout
+ call Function32f9
+.asm_e4217
+ call Functiona57
+ ld a, [hJoyPressed]
+ and $a
+ jr nz, .asm_e4234
+ call Functione452a
+ jr c, .asm_e422a
+ call Functione42d6
+ jr c, .asm_e4234
+
+.asm_e422a
+ call Functione455c
+ ld c, $3
+ call DelayFrames
+ jr .asm_e4217
+
+.asm_e4234
+ ld de, SFX_TRANSACTION
+ call StartSFX
+ call WaitSFX
+ pop af
+ ld [$ffaa], a
+ ret
+; e4241
+
+Stringe4241: ; e4241
+ db "TEXT SPEED", $22
+ db " :", $22
+ db "BATTLE SCENE", $22
+ db " :", $22
+ db "BATTLE STYLE", $22
+ db " :", $22
+ db "SOUND", $22
+ db " :", $22
+ db "PRINT", $22
+ db " :", $22
+ db "MENU ACCOUNT", $22
+ db " :", $22
+ db "FRAME", $22
+ db " :TYPE", $22
+ db "CANCEL@"
+; e42d6
+
+
+Functione42d6: ; e42d6
+ ld a, [$cf63]
+ ld e, a
+ ld d, 0
+ ld hl, .Pointers
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e42e5
+
+.Pointers
+ dw Options_TextSpeed
+ dw Options_BattleScene
+ dw Options_BattleStyle
+ dw Options_Sound
+ dw Options_Print
+ dw Options_MenuAccount
+ dw Options_Frame
+ dw Options_Cancel
+; e42f5
+
+
+Options_TextSpeed: ; e42f5
+ call Functione4346
+ ld a, [hJoyPressed]
+ bit 5, a
+ jr nz, .asm_e430d
+ bit 4, a
+ jr z, .asm_e431f
+ ld a, c
+ cp $2
+ jr c, .asm_e4309
+ ld c, $ff
+
+.asm_e4309
+ inc c
+ ld a, e
+ jr .asm_e4315
+
+.asm_e430d
+ ld a, c
+ and a
+ jr nz, .asm_e4313
+ ld c, $3
+
+.asm_e4313
+ dec c
+ ld a, d
+
+.asm_e4315
+ ld b, a
+ ld a, [Options]
+ and $f0
+ or b
+ ld [Options], a
+
+.asm_e431f
+ ld b, 0
+ ld hl, .Strings
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $c4e7
+ call PlaceString
+ and a
+ ret
+; e4331
+
+.Strings
+ dw .Fast
+ dw .Mid
+ dw .Slow
+
+.Fast
+ db "FAST@"
+.Mid
+ db "MID @"
+.Slow
+ db "SLOW@"
+; e4346
+
+
+Functione4346: ; e4346
+ ld a, [Options]
+ and $7
+ cp $5
+ jr z, .asm_e4359
+ cp $1
+ jr z, .asm_e435f
+ ld c, $1
+ ld de, $0105
+ ret
+
+.asm_e4359
+ ld c, $2
+ ld de, $0301
+ ret
+
+.asm_e435f
+ ld c, $0
+ ld de, $0503
+ ret
+; e4365
+
+
+Options_BattleScene: ; e4365
+ ld hl, Options
+ ld a, [hJoyPressed]
+ bit 5, a
+ jr nz, .asm_e4378
+ bit 4, a
+ jr z, .asm_e437e
+ bit 7, [hl]
+ jr nz, .asm_e4384
+ jr .asm_e438b
+
+.asm_e4378
+ bit 7, [hl]
+ jr z, .asm_e438b
+ jr .asm_e4384
+
+.asm_e437e
+ bit 7, [hl]
+ jr z, .asm_e4384
+ jr .asm_e438b
+
+.asm_e4384
+ res 7, [hl]
+ ld de, .On
+ jr .asm_e4390
+
+.asm_e438b
+ set 7, [hl]
+ ld de, .Off
+
+.asm_e4390
+ ld hl, $c50f
+ call PlaceString
+ and a
+ ret
+; e4398
+
+.On
+ db "ON @"
+.Off
+ db "OFF@"
+; e43a0
+
+
+Options_BattleStyle: ; e43a0
+ ld hl, Options
+ ld a, [hJoyPressed]
+ bit 5, a
+ jr nz, .asm_e43b3
+ bit 4, a
+ jr z, .asm_e43b9
+ bit 6, [hl]
+ jr nz, .asm_e43bd
+ jr .asm_e43c4
+
+.asm_e43b3
+ bit 6, [hl]
+ jr z, .asm_e43c4
+ jr .asm_e43bd
+
+.asm_e43b9
+ bit 6, [hl]
+ jr nz, .asm_e43c4
+
+.asm_e43bd
+ res 6, [hl]
+ ld de, .Shift
+ jr .asm_e43c9
+
+.asm_e43c4
+ set 6, [hl]
+ ld de, .Set
+
+.asm_e43c9
+ ld hl, $c537
+ call PlaceString
+ and a
+ ret
+; e43d1
+
+.Shift
+ db "SHIFT@"
+.Set
+ db "SET @"
+; e43dd
+
+
+Options_Sound: ; e43dd
+ ld hl, Options
+ ld a, [hJoyPressed]
+ bit 5, a
+ jr nz, .asm_e43f0
+ bit 4, a
+ jr z, .asm_e43f6
+ bit 5, [hl]
+ jr nz, .asm_e43fc
+ jr .asm_e4406
+
+.asm_e43f0
+ bit 5, [hl]
+ jr z, .asm_e4406
+ jr .asm_e43fc
+
+.asm_e43f6
+ bit 5, [hl]
+ jr nz, .asm_e440b
+ jr .asm_e4401
+
+.asm_e43fc
+ res 5, [hl]
+ call Function3d47
+
+.asm_e4401
+ ld de, .Mono
+ jr .asm_e440e
+
+.asm_e4406
+ set 5, [hl]
+ call Function3d47
+
+.asm_e440b
+ ld de, .Stereo
+
+.asm_e440e
+ ld hl, $c55f
+ call PlaceString
+ and a
+ ret
+; e4416
+
+.Mono
+ db "MONO @"
+.Stereo
+ db "STEREO@"
+; e4424
+
+
+Options_Print: ; e4424
+ call $4491
+ ld a, [hJoyPressed]
+ bit 5, a
+ jr nz, .asm_e443c
+ bit 4, a
+ jr z, .asm_e4448
+ ld a, c
+ cp $4
+ jr c, .asm_e4438
+ ld c, $ff
+
+.asm_e4438
+ inc c
+ ld a, e
+ jr .asm_e4444
+
+.asm_e443c
+ ld a, c
+ and a
+ jr nz, .asm_e4442
+ ld c, $5
+
+.asm_e4442
+ dec c
+ ld a, d
+
+.asm_e4444
+ ld b, a
+ ld [GBPrinter], a
+
+.asm_e4448
+ ld b, $0
+ ld hl, $445a
+ add hl, bc
+ add hl, bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $c587
+ call PlaceString
+ and a
+ ret
+; e445a
+
+.Strings
+ dw .Lightest
+ dw .Lighter
+ dw .Normal
+ dw .Darker
+ dw .Darkest
+
+.Lightest
+ db "LIGHTEST@"
+.Lighter
+ db "LIGHTER @"
+.Normal
+ db "NORMAL @"
+.Darker
+ db "DARKER @"
+.Darkest
+ db "DARKEST @"
+; e4491
+
+
+Functione4491: ; e4491
+ ld a, [GBPrinter]
+ and a
+ jr z, .asm_e44a9
+ cp $20
+ jr z, .asm_e44af
+ cp $60
+ jr z, .asm_e44b5
+ cp $7f
+ jr z, .asm_e44bb
+ ld c, $2
+ ld de, $2060
+ ret
+
+.asm_e44a9
+ ld c, $0
+ ld de, $7f20
+ ret
+
+.asm_e44af
+ ld c, $1
+ ld de, $0040
+ ret
+
+.asm_e44b5
+ ld c, $3
+ ld de, $407f
+ ret
+
+.asm_e44bb
+ ld c, $4
+ ld de, $6000
+ ret
+; e44c1
+
+Options_MenuAccount: ; e44c1
+ ld hl, Options2
+ ld a, [hJoyPressed]
+ bit 5, a
+ jr nz, .asm_e44d4
+ bit 4, a
+ jr z, .asm_e44da
+ bit 0, [hl]
+ jr nz, .asm_e44de
+ jr .asm_e44e5
+
+.asm_e44d4
+ bit 0, [hl]
+ jr z, .asm_e44e5
+ jr .asm_e44de
+
+.asm_e44da
+ bit 0, [hl]
+ jr nz, .asm_e44e5
+
+.asm_e44de
+ res 0, [hl]
+ ld de, .Off
+ jr .asm_e44ea
+
+.asm_e44e5
+ set 0, [hl]
+ ld de, .On
+
+.asm_e44ea
+ ld hl, $c5af
+ call PlaceString
+ and a
+ ret
+; e44f2
+
+.Off
+ db "OFF@"
+.On
+ db "ON @"
+; e44fa
+
+
+Options_Frame: ; e44fa
+ ld hl, TextBoxFrame
+ ld a, [hJoyPressed]
+ bit 5, a
+ jr nz, .asm_e450d
+ bit 4, a
+ jr nz, .asm_e4509
+ and a
+ ret
+
+.asm_e4509
+ ld a, [hl]
+ inc a
+ jr .asm_e450f
+
+.asm_e450d
+ ld a, [hl]
+ dec a
+
+.asm_e450f
+ and $7
+ ld [hl], a
+ ; fallthrough
+; e4512
+
+Functione4512: ; e4512
+ ld a, [TextBoxFrame]
+ ld hl, $c5dc
+ add "1"
+ ld [hl], a
+ call Functione5f
+ and a
+ ret
+; e4520
+
+Options_Cancel: ; e4520
+ ld a, [hJoyPressed]
+ and BUTTON_A
+ jr nz, .asm_e4528
+ and a
+ ret
+
+.asm_e4528
+ scf
+ ret
+; e452a
+
+Functione452a: ; e452a
+ ld hl, $cf63
+ ld a, [$ffa9]
+ cp $80
+ jr z, .asm_e4539
+ cp $40
+ jr z, .asm_e454b
+ and a
+ ret
+
+.asm_e4539
+ ld a, [hl]
+ cp $7
+ jr nz, .asm_e4542
+ ld [hl], $0
+ scf
+ ret
+
+.asm_e4542
+ cp $5
+ jr nz, .asm_e4548
+ ld [hl], $5
+
+.asm_e4548
+ inc [hl]
+ scf
+ ret
+
+.asm_e454b
+ ld a, [hl]
+ cp $6
+ jr nz, .asm_e4554
+ ld [hl], $5
+ scf
+ ret
+
+.asm_e4554
+ and a
+ jr nz, .asm_e4559
+ ld [hl], $8
+
+.asm_e4559
+ dec [hl]
+ scf
+ ret
+; e455c
+
+Functione455c: ; e455c
+ ld hl, $c4b5
+ ld de, $0014
+ ld c, $10
+.asm_e4564
+ ld [hl], $7f
+ add hl, de
+ dec c
+ jr nz, .asm_e4564
+ ld hl, $c4c9
+ ld bc, $0028
+ ld a, [$cf63]
+ call AddNTimes
+ ld [hl], $ed
+ ret
+; e4579
+
+
+Functione4579: ; e4579
+ ld de, MUSIC_NONE
+ call StartMusic
+ call WhiteBGMap
+ call ClearTileMap
+ ld a, $98
+ ld [$ffd7], a
+ xor a
+ ld [hBGMapAddress], a
+ ld [hJoyDown], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $90
+ ld [hWY], a
+ call WaitBGMap
+ ld b, $19
+ call GetSGBLayout
+ call Function32f9
+ ld c, 10
+ call DelayFrames
+ callab Copyright
+ call WaitBGMap
+ ld c, $64
+ call DelayFrames
+ call ClearTileMap
+ ld a, $13
+ ld hl, $6a82
+ rst FarCall
+ call Functione45e8
+.asm_e45c0
+ call Functiona57
+ ld a, [$ffa9]
+ and $f
+ jr nz, .asm_e45de
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_e45e3
+ call Functione4670
+ ld a, $23
+ ld hl, $4f69
+ rst FarCall
+ call DelayFrame
+ jr .asm_e45c0
+
+.asm_e45de
+ call Functione465e
+ scf
+ ret
+
+.asm_e45e3
+ call Functione465e
+ and a
+ ret
+; e45e8
+
+Functione45e8: ; e45e8
+ ld de, $47cc
+ ld hl, VTiles2
+ ld bc, $391c
+ call Get1bpp
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, $5407
+ ld de, $d000
+ ld a, $42
+ call FarDecompress
+ ld hl, VTiles0
+ ld de, $d000
+ ld bc, $0180
+ call Request2bpp
+ ld hl, VTiles1
+ ld de, $d800
+ ld bc, $0180
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ld a, $23
+ ld hl, $4f53
+ rst FarCall
+ ld de, $5458
+ ld a, $3
+ call Function3b2a
+ ld hl, $0007
+ add hl, bc
+ ld [hl], $a0
+ ld hl, $000c
+ add hl, bc
+ ld [hl], $60
+ ld hl, $000d
+ add hl, bc
+ ld [hl], $30
+ xor a
+ ld [$cf63], a
+ ld [$cf64], a
+ ld [$cf65], a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $1
+ ld [hBGMapMode], a
+ ld a, $90
+ ld [hWY], a
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ ret
+; e465e
+
+Functione465e: ; e465e
+ ld a, $23
+ ld hl, $4f53
+ rst FarCall
+ call ClearTileMap
+ call ClearSprites
+ ld c, $10
+ call DelayFrames
+ ret
+; e4670
+
+Functione4670: ; e4670
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $467f
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e467f
+
+INCBIN "baserom.gbc", $e467f, $e48ac - $e467f
+
+
+Functione48ac: ; e48ac
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [$ffaa]
+ push af
+ ld a, [$ff9e]
+ push af
+ call Functione4901
+ call Functiona57
+ ld a, [$ffa9]
+ and $f
+ jr nz, .asm_e48db
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_e48e1
+ call Functione490f
+ callba Function8cf69
+ call DelayFrame
+ jp $48bc
+
+.asm_e48db
+ ld de, $0000
+ call StartMusic
+
+.asm_e48e1
+ call WhiteBGMap
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ pop af
+ ld [$ff9e], a
+ pop af
+ ld [$ffaa], a
+ pop af
+ ld [rSVBK], a
+ ret
+; e4901
+
+Functione4901: ; e4901
+ xor a
+ ld [$ff9e], a
+ ld a, $1
+ ld [$ffaa], a
+ xor a
+ ld [$ffde], a
+ ld [$cf63], a
+ ret
+; e490f
+
+Functione490f: ; e490f
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $491e
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e491e
+
+INCBIN "baserom.gbc", $e491e, $e555d - $e491e
+
IntroSuicuneRunGFX: ; e555d
INCBIN "gfx/intro/suicune_run.lz"
; e592b
@@ -21613,27 +66162,198 @@
SECTION "bank3E",ROMX,BANK[$3E]
FontExtra:
-INCBIN "gfx/misc/font_extra.2bpp", $0, $200
+INCBIN "gfx/misc/font_extra.2bpp"
Font:
-INCBIN "gfx/misc/font.1bpp", $0, $400
+INCBIN "gfx/misc/font.1bpp"
FontBattleExtra:
-INCBIN "gfx/misc/font_battle_extra.2bpp", $0, $200
+INCBIN "gfx/misc/font_battle_extra.2bpp"
-INCBIN "baserom.gbc", $f8800, $f8ba0 - $f8800
+Frames: ; f8800
+INCBIN "gfx/frames/1.1bpp"
+INCBIN "gfx/frames/2.1bpp"
+INCBIN "gfx/frames/3.1bpp"
+INCBIN "gfx/frames/4.1bpp"
+INCBIN "gfx/frames/5.1bpp"
+INCBIN "gfx/frames/6.1bpp"
+INCBIN "gfx/frames/7.1bpp"
+INCBIN "gfx/frames/8.1bpp"
+INCBIN "gfx/frames/9.1bpp"
+; f89b0
+INCBIN "baserom.gbc", $f89b0, $f8ba0 - $f89b0
+
TownMapGFX: ; f8ba0
INCBIN "gfx/misc/town_map.lz"
; f8ea3
-INCBIN "baserom.gbc", $f8ea3, $fbbfc - $f8ea3
+INCBIN "baserom.gbc", $f8ea3, $fb449 - $f8ea3
+
+Functionfb449: ; fb449
+ ld de, $4200
+ ld hl, VTiles1
+ ld bc, Function3e80
+ ld a, [rLCDC]
+ bit 7, a
+ jp z, Copy1bpp
+ ld de, $4200
+ ld hl, VTiles1
+ ld bc, $3e20
+ call Functionddc
+ ld de, $4300
+ ld hl, $8a00
+ ld bc, $3e20
+ call Functionddc
+ ld de, $4400
+ ld hl, $8c00
+ ld bc, $3e20
+ call Functionddc
+ ld de, $4500
+ ld hl, $8e00
+ ld bc, $3e20
+ call Functionddc
+ ret
+; fb48a
+
+
+
+Functionfb48a: ; fb48a
+ ld de, $5214
+ ld hl, $9600
+ ld bc, $3e01
+ call Functionddc
+ ld de, $4f24
+ ld hl, $9620
+ ld bc, $3e01
+ call Functiondc9
+ ld de, $4030
+ ld hl, $9630
+ ld bc, $3e16
+ call Functiondc9
+ jr .asm_fb4cc
+
+ ld de, $5424
+ ld hl, $9610
+ ld b, $3e
+ ld c, $1
+ call Functiondc9
+ ret
+
+ ld de, $4600
+ ld hl, $9600
+ ld bc, $3e19
+ call Functiondc9
+ jr .asm_fb4cc
+
+.asm_fb4cc
+ ld a, [TextBoxFrame]
+ and 7
+ ld bc, $0030
+ ld hl, Frames
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, $9790
+ ld bc, $3e06
+ call Functionddc
+ ld hl, $97f0
+ ld de, $5204
+ ld bc, $3e01
+ call Functionddc
+ ret
+; fb4f2
+
+Functionfb4f2: ; fb4f2
+ ld de, $4600
+ ld hl, $9600
+ ld bc, $3e0c
+ call Functiondc9
+ ld hl, $9700
+ ld de, $4700
+ ld bc, $3e03
+ call Functiondc9
+ call $74cc
+ ld de, $4ac0
+ ld hl, $96c0
+ ld bc, $3e04
+ call Functionddc
+ ld de, $4ae0
+ ld hl, $9730
+ ld bc, $3e06
+ call Functionddc
+ ld de, $4b10
+ ld hl, $9550
+ ld bc, $3e09
+ call Functiondc9
+ ld de, $52a4
+ ld hl, $95e0
+ ld bc, $3e02
+ call Functiondc9
+ ret
+; fb53e
+
+Functionfb53e: ; fb53e
+ call $74be
+ ld de, $4ac0
+ ld hl, $96c0
+ ld bc, $3e04
+ call Functionddc
+ ld de, $4ae0
+ ld hl, $9780
+ ld bc, $3e01
+ call Functionddc
+ ld de, $4af8
+ ld hl, $9760
+ ld bc, $3e02
+ call Functionddc
+ ld de, $4b10
+ ld hl, $9550
+ ld bc, $3e08
+ call Functiondc9
+ ld de, $49b0
+ ld hl, $9310
+ ld bc, $3e11
+ call Functiondc9
+ ret
+; fb57e
+
+INCBIN "baserom.gbc", $fb57e, $fba18 - $fb57e
+
+
+Functionfba18: ; fba18
+ ld a, [UnownLetter]
+ ld c, a
+ ld b, $1a
+ ld hl, UnownDex
+.asm_fba21
+ ld a, [hli]
+ and a
+ jr z, .asm_fba2b
+ cp c
+ ret z
+ dec b
+ jr nz, .asm_fba21
+ ret
+
+.asm_fba2b
+ dec hl
+ ld [hl], c
+ ret
+; fba2e
+
+INCBIN "baserom.gbc", $fba2e, $fbbfc - $fba2e
+
INCLUDE "battle/magikarp_length.asm"
-INCBIN "baserom.gbc", $fbccf, $fbda4 - $fbccf
+INCBIN "baserom.gbc", $fbccf, $fbced - $fbccf
+INCLUDE "battle/hidden_power.asm"
+INCBIN "baserom.gbc", $fbd54, $fbda4 - $fbd54
+
+
DoWeatherModifiers: ; fbda4
ld de, .WeatherTypeModifiers
@@ -21688,7 +66408,7 @@
.ApplyModifier
xor a
- ld [$ffb4], a
+ ld [hMultiplicand], a
ld hl, CurDamage
ld a, [hli]
ld [$ffb5], a
@@ -21697,16 +66417,16 @@
inc de
ld a, [de]
- ld [$ffb7], a
+ ld [hMultiplier], a
call Multiply
ld a, 10
- ld [$ffb7], a
+ ld [hMultiplier], a
ld b, $4
call Divide
- ld a, [$ffb4]
+ ld a, [hMultiplicand]
and a
ld bc, $ffff
jr nz, .Update
@@ -21914,13 +66634,13 @@
Tileset31Anim: ; 0xfc073
; param, function
- dw $0000, $445c
- dw $0000, $44c4
+ dw $0000, ForestTreeLeftAnimation
+ dw $0000, ForestTreeRightAnimation
dw $0000, WaitTileAnimation
dw $0000, WaitTileAnimation
dw $0000, WaitTileAnimation
- dw $0000, $44f2
- dw $0000, $451c
+ dw $0000, ForestTreeLeftAnimation2
+ dw $0000, ForestTreeRightAnimation2
dw $0000, AnimateFlowerTile
dw $9140, AnimateWaterTile
dw $0000, TileAnimationPalette
@@ -21980,23 +66700,23 @@
Tileset24Anim: ; 0xfc1e7
Tileset30Anim: ; 0xfc1e7
; param, function
- dw $9140, $46a2
+ dw $9140, WriteTileToBuffer
dw $0000, $471e
dw $cf41, ScrollTileRightLeft
dw $0000, $471e
- dw $9140, $4696
+ dw $9140, WriteTileFromBuffer
dw $0000, $471e
dw $0000, TileAnimationPalette
dw $0000, $471e
- dw $9400, $46a2
+ dw $9400, WriteTileToBuffer
dw $0000, $471e
- dw $cf41, $436a
+ dw $cf41, ScrollTileDown
dw $0000, $471e
- dw $cf41, $436a
+ dw $cf41, ScrollTileDown
dw $0000, $471e
- dw $cf41, $436a
+ dw $cf41, ScrollTileDown
dw $0000, $471e
- dw $9400, $4696
+ dw $9400, WriteTileFromBuffer
dw $0000, $471e
dw $0000, DoneTileAnimation
; 0xfc233
@@ -22003,23 +66723,23 @@
Tileset29Anim: ; 0xfc233
; param, function
- dw $9350, $46a2
+ dw $9350, WriteTileToBuffer
dw $0000, $471e
dw $cf41, ScrollTileRightLeft
dw $0000, $471e
- dw $9350, $4696
+ dw $9350, WriteTileFromBuffer
dw $0000, $471e
dw $0000, TileAnimationPalette
dw $0000, $471e
- dw $9310, $46a2
+ dw $9310, WriteTileToBuffer
dw $0000, $471e
- dw $cf41, $436a
+ dw $cf41, ScrollTileDown
dw $0000, $471e
- dw $cf41, $436a
+ dw $cf41, ScrollTileDown
dw $0000, $471e
- dw $cf41, $436a
+ dw $cf41, ScrollTileDown
dw $0000, $471e
- dw $9310, $4696
+ dw $9310, WriteTileFromBuffer
dw $0000, $471e
dw $0000, DoneTileAnimation
; 0xfc27f
@@ -22723,7 +67443,7 @@
ret z
; We don't want to mess with non-standard palettes.
- ld a, [$ff47] ; BGP
+ ld a, [rBGP] ; BGP
cp %11100100
ret nz
@@ -22830,9 +67550,270 @@
; fca98
-INCBIN "baserom.gbc", $fca98, $fcdc2 - $fca98
+INCBIN "baserom.gbc", $fca98, $fcba8 - $fca98
+Functionfcba8: ; fcba8
+ ld a, e
+ ld [$cf63], a
+ call Functionfcc59
+ ld b, $2
+ call Functionfcc4a
+ ld a, $4
+ jr nz, .asm_fcc03
+ ld a, $0
+ call Functionfcf38
+ call Function1dcf
+ ld a, $1
+ jr c, .asm_fcc03
+ ld b, $6
+ ld a, $14
+ ld hl, $401d
+ rst FarCall
+ ld a, $1
+ jr c, .asm_fcc03
+ ld e, $1
+ call LoadTradesPointer
+ ld a, [CurPartySpecies]
+ cp [hl]
+ ld a, $2
+ jr nz, .asm_fcc03
+ call Functionfcc23
+ ld a, $2
+ jr c, .asm_fcc03
+ ld b, $1
+ call Functionfcc4a
+ ld hl, $4f7b
+ call PrintText
+ call Functionfcc63
+ call Functionfcc07
+ call Functionfce1b
+ ld hl, $4f80
+ call PrintText
+ call Function3d47
+ ld a, $3
+
+.asm_fcc03
+ call Functionfcf38
+ ret
+; fcc07
+
+Functionfcc07: ; fcc07
+ call Function2ed3
+ ld a, [$cf63]
+ push af
+ ld a, [$cf64]
+ push af
+ ld a, $1e
+ call Predef
+ pop af
+ ld [$cf64], a
+ pop af
+ ld [$cf63], a
+ call Function2b74
+ ret
+; fcc23
+
+Functionfcc23: ; fcc23
+ xor a
+ ld [MonType], a
+ ld e, $1e
+ call LoadTradesPointer
+ ld a, [hl]
+ and a
+ jr z, .asm_fcc46
+ cp $1
+ jr z, .asm_fcc3e
+ callba GetGender
+ jr nz, .asm_fcc48
+ jr .asm_fcc46
+
+.asm_fcc3e
+ callba GetGender
+ jr z, .asm_fcc48
+
+.asm_fcc46
+ and a
+ ret
+
+.asm_fcc48
+ scf
+ ret
+; fcc4a
+
+Functionfcc4a: ; fcc4a
+ ld hl, $d960
+ ld a, [$cf63]
+ ld c, a
+ ld a, $3
+ call Predef
+ ld a, c
+ and a
+ ret
+; fcc59
+
+Functionfcc59: ; fcc59
+ ld e, $0
+ call LoadTradesPointer
+ ld a, [hl]
+ ld [$cf64], a
+ ret
+; fcc63
+
+Functionfcc63: ; fcc63
+ ld e, $1
+ call LoadTradesPointer
+ ld a, [hl]
+ ld [PlayerSDefLevel], a
+ ld e, $2
+ call LoadTradesPointer
+ ld a, [hl]
+ ld [PlayerLightScreenCount], a
+ ld a, [PlayerSDefLevel]
+ ld de, PlayerAccLevel
+ call Functionfcde8
+ call Functionfcdf4
+ ld a, [PlayerLightScreenCount]
+ ld de, PlayerReflectCount
+ call Functionfcde8
+ call Functionfcdf4
+ ld hl, PartyMon1OT
+ ld bc, $000b
+ call Functionfcdd7
+ ld de, $c6f2
+ call Functionfcdf4
+ ld hl, PlayerName
+ ld de, $c6e7
+ call Functionfcdf4
+ ld hl, PartyMon1ID
+ ld bc, $0030
+ call Functionfcdd7
+ ld de, PlayerScreens
+ call Functionfce0f
+ ld hl, PartyMon1DVs
+ ld bc, $0030
+ call Functionfcdd7
+ ld de, $c6fd
+ call Functionfce0f
+ ld hl, PartyMon1Species
+ ld bc, $0030
+ call Functionfcdd7
+ ld b, h
+ ld c, l
+ ld a, $13
+ ld hl, $7301
+ rst FarCall
+ ld a, c
+ ld [$c701], a
+ ld e, $0
+ call LoadTradesPointer
+ ld a, [hl]
+ cp $3
+ ld a, $1
+ jr c, .asm_fcce6
+ ld a, $2
+
+.asm_fcce6
+ ld [$c733], a
+ ld hl, PartyMon1Level
+ ld bc, $0030
+ call Functionfcdd7
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld a, [PlayerLightScreenCount]
+ ld [CurPartySpecies], a
+ xor a
+ ld [MonType], a
+ ld [$d10b], a
+ ld hl, $6039
+ ld a, $3
+ rst FarCall
+ ld a, $6
+ call Predef
+ ld e, $0
+ call LoadTradesPointer
+ ld a, [hl]
+ cp $3
+ ld b, $0
+ jr c, .asm_fcd1c
+ ld b, $1
+
+.asm_fcd1c
+ ld a, $13
+ ld hl, $5ba3
+ rst FarCall
+ ld e, $3
+ call LoadTradesPointer
+ ld de, FailedMessage
+ call Functionfcdf4
+ ld hl, PartyMon1Nickname
+ ld bc, $000b
+ call Functionfcdde
+ ld hl, FailedMessage
+ call Functionfcdf4
+ ld e, $13
+ call LoadTradesPointer
+ push hl
+ ld de, $c724
+ call Functionfcdf4
+ pop hl
+ ld de, $c719
+ call Functionfcdf4
+ ld hl, PartyMon1OT
+ ld bc, $000b
+ call Functionfcdde
+ ld hl, $c724
+ call Functionfcdf4
+ ld e, $e
+ call LoadTradesPointer
+ ld de, $c72f
+ call Functionfce0f
+ ld hl, PartyMon1DVs
+ ld bc, $0030
+ call Functionfcdde
+ ld hl, $c72f
+ call Functionfce0f
+ ld e, $11
+ call LoadTradesPointer
+ ld de, $c732
+ call Functionfce15
+ ld hl, PartyMon1ID
+ ld bc, $0030
+ call Functionfcdde
+ ld hl, $c731
+ call Functionfce0f
+ ld e, $10
+ call LoadTradesPointer
+ push hl
+ ld hl, PartyMon1Item
+ ld bc, $0030
+ call Functionfcdde
+ pop hl
+ ld a, [hl]
+ ld [de], a
+ push af
+ push bc
+ push de
+ push hl
+ ld a, [CurPartyMon]
+ push af
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ ld a, $3
+ ld hl, $6134
+ rst FarCall
+ pop af
+ ld [CurPartyMon], a
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+; fcdc2
+
+
+
LoadTradesPointer: ; 0xfcdc2
ld d, 0
push de
@@ -22849,8 +67830,95 @@
ret
; 0xfcdd7
-INCBIN "baserom.gbc", $fcdd7, $fce58-$fcdd7
+Functionfcdd7: ; fcdd7
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ret
+; fcdde
+Functionfcdde: ; fcdde
+ ld a, [PartyCount]
+ dec a
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ret
+; fcde8
+
+Functionfcde8: ; fcde8
+ push de
+ ld [$d265], a
+ call GetBasePokemonName
+ ld hl, StringBuffer1
+ pop de
+ ret
+; fcdf4
+
+Functionfcdf4: ; fcdf4
+ ld bc, $000b
+ call CopyBytes
+ ret
+; fcdfb
+
+INCBIN "baserom.gbc", $fcdfb, $fce0f - $fcdfb
+
+
+Functionfce0f: ; fce0f
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ret
+; fce15
+
+Functionfce15: ; fce15
+ ld a, [hli]
+ ld [de], a
+ dec de
+ ld a, [hl]
+ ld [de], a
+ ret
+; fce1b
+
+Functionfce1b: ; fce1b
+ ld e, $2
+ call LoadTradesPointer
+ ld a, [hl]
+ call Functionfcde8
+ ld de, StringBuffer2
+ call Functionfcdf4
+ ld e, $1
+ call LoadTradesPointer
+ ld a, [hl]
+ call Functionfcde8
+ ld de, $d050
+ call Functionfcdf4
+ ld hl, StringBuffer1
+.asm_fce3c
+ ld a, [hli]
+ cp $50
+ jr nz, .asm_fce3c
+ dec hl
+ push hl
+ ld e, $1e
+ call LoadTradesPointer
+ ld a, [hl]
+ pop hl
+ and a
+ ret z
+ cp $1
+ ld a, $ef
+ jr z, .asm_fce54
+ ld a, $f5
+
+.asm_fce54
+ ld [hli], a
+ ld [hl], $50
+ ret
+; fce58
+
+
Trades: ; 0xfce58
; byte 1: dialog
; byte 2: givemon
@@ -22871,18 +67939,1796 @@
db 3,CHANSEY,AERODACTYL,"AEROY@@@@@@", $96, $66,GOLD_BERRY, $7b, $67,"KIM@@@@@@@@",0,0
db 0,DUGTRIO,MAGNETON,"MAGGIE@@@@@", $96, $66,METAL_COAT, $a2, $c3,"FOREST@@@@@",0,0
-INCBIN "baserom.gbc", $fcf38, $fd1d2-$fcf38
+Functionfcf38: ; fcf38
+ push af
+ call Functionfce1b
+ pop af
+ ld bc, $0008
+ ld hl, $4f53
+ call AddNTimes
+ ld a, [$cf64]
+ ld c, a
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; fcf53
+INCBIN "baserom.gbc", $fcf53, $fcfec - $fcf53
+
+Functionfcfec: ; fcfec
+ ld a, [$d45c]
+ and a
+ ret nz
+ call Function2d05
+ and a
+ ret nz
+ xor a
+ ld [$dc18], a
+ call Functionfd044
+ ret nc
+ call Functionfd0c3
+ ret nc
+ ld b, $3f
+ ld de, $500f
+ callba Function97c4f
+ scf
+ ret
+; fd00f
+
+INCBIN "baserom.gbc", $fd00f, $fd044 - $fd00f
+
+
+Functionfd044: ; fd044
+ ld a, [$dc17]
+ cp $a
+ jr nc, .asm_fd065
+ call Functionfd117
+ ld a, [hli]
+ ld [$ffc3], a
+ ld a, [hli]
+ ld [$ffc4], a
+ ld a, [hli]
+ ld [$ffc5], a
+ ld de, $d851
+ ld bc, $ffc3
+ ld a, $5
+ ld hl, $600b
+ rst FarCall
+ jr nc, .asm_fd067
+
+.asm_fd065
+ jr .asm_fd069
+
+.asm_fd067
+ scf
+ ret
+
+.asm_fd069
+ ld hl, $ffc3
+ ld [hl], $0
+ inc hl
+ ld [hl], $8
+ inc hl
+ ld [hl], $fc
+.asm_fd074
+ ld de, $dc19
+ ld bc, $d851
+ ld a, $5
+ ld hl, $600b
+ rst FarCall
+ jr z, .asm_fd08b
+ jr nc, .asm_fd089
+ call Functionfd099
+ jr .asm_fd074
+
+.asm_fd089
+ xor a
+ ret
+
+.asm_fd08b
+ call Functionfd099
+ ld a, $5
+ call Function2fb1
+ inc a
+ ld [$dc18], a
+ scf
+ ret
+; fd099
+
+Functionfd099: ; fd099
+ ld de, $dc19
+ ld bc, $ffc3
+ ld a, $5
+ ld hl, $6053
+ rst FarCall
+ ret
+; fd0a6
+
+INCBIN "baserom.gbc", $fd0a6, $fd0c3 - $fd0a6
+
+
+Functionfd0c3: ; fd0c3
+ call Functionfd117
+ ld de, $0006
+ add hl, de
+ ld a, [hli]
+ cp $1
+ jr z, .asm_fd0db
+ ld a, [hl]
+ ld c, a
+ ld b, $1
+ ld a, $9
+ ld hl, $6ef1
+ rst FarCall
+ scf
+ ret
+
+.asm_fd0db
+ ld a, [hl]
+ ld [CurItem], a
+ ld a, $1
+ ld [$d10c], a
+ ld hl, $d8f1
+ call Function2f66
+ ret
+; fd0eb
+
+INCBIN "baserom.gbc", $fd0eb, $fd117 - $fd0eb
+
+
+Functionfd117: ; fd117
+ ld a, [$dc18]
+ and a
+ jr z, .asm_fd123
+ dec a
+ ld de, $5136
+ jr .asm_fd12e
+
+.asm_fd123
+ ld a, [$dc17]
+ cp $a
+ jr c, .asm_fd12b
+ xor a
+
+.asm_fd12b
+ ld de, $515e
+
+.asm_fd12e
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, de
+ ret
+; fd136
+
+INCBIN "baserom.gbc", $fd136, $fd1d2 - $fd136
+
+
SECTION "bank40",ROMX,BANK[$40]
-INCBIN "baserom.gbc", $100000, $10389d - $100000
+INCBIN "baserom.gbc", $100000, $10032e - $100000
+Function10032e: ; 10032e
+ call Function10034d
+ ld e, a
+ ret nc
+ ld [$cd2b], a
+ ret
+; 100337
+
+Function100337: ; 100337
+ call Function10032e
+ ret c
+ ld a, [$c821]
+ bit 4, a
+ jr z, .asm_100345
+ ld a, e
+ and a
+ ret
+
+.asm_100345
+ ld a, $f9
+ ld e, a
+ ld [$cd2b], a
+ scf
+ ret
+; 10034d
+
+
+
+Function10034d: ; 10034d
+ ld a, [$c821]
+ bit 1, a
+ jr nz, .asm_10036a
+ bit 2, a
+ jr nz, .asm_10037e
+ bit 3, a
+ jr nz, .asm_100366
+ bit 0, a
+ jr nz, .asm_100364
+ ld a, $1
+ and a
+ ret
+
+.asm_100364
+ xor a
+ ret
+
+.asm_100366
+ ld a, $2
+ and a
+ ret
+
+.asm_10036a
+ ld a, $0
+ call Function3e32
+ ld [$cd2c], a
+ ld a, h
+ ld [$cd2d], a
+ ld a, l
+ ld [$cd2e], a
+ ld a, $ff
+ scf
+ ret
+
+.asm_10037e
+ ld a, $fe
+ scf
+ ret
+; 100382
+
+Function100382: ; 100382
+ ld a, [$cd27]
+ ld hl, $444e
+ rst JumpTable
+ ret
+; 10038a
+
+Function10038a: ; 10038a
+ ld hl, $ccb4
+ ld a, $2e
+ call Function3e32
+ ret
+; 100393
+
+Function100393: ; 100393
+ ld hl, $cc60
+ ld a, $3a
+ call Function3e32
+ ret
+; 10039c
+
+Function10039c: ; 10039c
+ ld hl, $cc60
+ ld de, $d000
+ ld bc, $0054
+ ld a, $3
+ call Function306b
+ ret
+; 1003ab
+
+INCBIN "baserom.gbc", $1003ab, $1003ba - $1003ab
+
+
+Function1003ba: ; 1003ba
+ ld hl, $ccb4
+ ld de, $d080
+ ld bc, $0054
+ ld a, $3
+ call Function306b
+ ret
+; 1003c9
+
+Function1003c9: ; 1003c9
+ ld hl, $d080
+ ld de, $ccb4
+ ld bc, $0054
+ ld a, $3
+ call Function306b
+ ret
+; 1003d8
+
+Function1003d8: ; 1003d8
+ ld hl, $ccb4
+ ld a, [hli]
+ ld c, a
+ ld b, $0
+ push hl
+ add hl, bc
+ ld a, [BGMapPalBuffer]
+ ld [hl], a
+ pop hl
+ inc bc
+ call Function10043a
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, c
+ add $2
+ ld [$ccb4], a
+ ret
+; 1003f5
+
+Function1003f5: ; 1003f5
+ ld a, [$cc60]
+ sub $3
+ ld [$cc60], a
+ ld a, [$ccb4]
+ sub $3
+ ld [$ccb4], a
+ ret
+; 100406
+
+Function100406: ; 100406
+ ld a, [$cc60]
+ sub $2
+ ld c, a
+ ld b, $0
+ ld hl, $cc61
+ call Function10043a
+ add hl, bc
+ ld a, [hli]
+ cp e
+ jr nz, .asm_100426
+ ld a, [hld]
+ cp d
+ jr nz, .asm_100426
+ dec hl
+ ld a, [BGMapPalBuffer]
+ cp [hl]
+ jr nz, .asm_10042d
+ xor a
+ ret
+
+.asm_100426
+ ld a, $f4
+ ld [$cd2b], a
+ jr .asm_100432
+
+.asm_10042d
+ ld a, $f3
+ ld [$cd2b], a
+
+.asm_100432
+ push hl
+ ld hl, $cd7c
+ inc [hl]
+ pop hl
+ scf
+ ret
+; 10043a
+
+Function10043a: ; 10043a
+ push hl
+ push bc
+ ld de, $0000
+.asm_10043f
+ ld a, [hli]
+ add e
+ ld e, a
+ ld a, d
+ adc $0
+ ld d, a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_10043f
+ pop bc
+ pop hl
+ ret
+; 10044e
+
+INCBIN "baserom.gbc", $10044e, $10046a - $10044e
+
+
+Function10046a: ; 10046a
+ ld hl, BGMapPalBuffer
+ inc [hl]
+ call Function1003d8
+ call Function1003ba
+ ld a, [$cd27]
+ inc a
+ ld [$cd27], a
+ ret
+; 10047c
+
+Function10047c: ; 10047c
+ call Function100337
+ ret c
+ ret z
+ cp $2
+ jr z, .asm_100487
+ jr .asm_10048d
+
+.asm_100487
+ ld a, $8
+ ld [$cd27], a
+ ret
+
+.asm_10048d
+ ld a, $2
+ ld [$cd27], a
+ ret
+; 100493
+
+Function100493: ; 100493
+ jr .asm_100497
+
+ jr .asm_100497
+
+.asm_100497
+ call Function100337
+ ret c
+ ret z
+ ld a, [$cd27]
+ inc a
+ ld [$cd27], a
+ ret
+; 1004a4
+
+Function1004a4: ; 1004a4
+ call Function100406
+ jr c, .asm_1004b8
+ call Function1003c9
+ call Function1003f5
+ ld a, [$cd27]
+ set 7, a
+ ld [$cd27], a
+ ret
+
+.asm_1004b8
+ scf
+ ret
+; 1004ba
+
+Function1004ba: ; 1004ba
+ call Function10038a
+ and a
+ jr nz, .asm_1004c8
+ ld a, [$cd27]
+ inc a
+ ld [$cd27], a
+ ret
+
+.asm_1004c8
+ ld a, $8
+ ld [$cd27], a
+ ret
+; 1004ce
+
+Function1004ce: ; 1004ce
+ call Function100337
+ ret c
+ ret z
+ cp $2
+ ret nz
+ ld a, [$cd27]
+ inc a
+ ld [$cd27], a
+ ret
+; 1004de
+
+Function1004de: ; 1004de
+ call Function100393
+ ld a, [$cd27]
+ inc a
+ ld [$cd27], a
+ ret
+; 1004e9
+
+Function1004e9: ; 1004e9
+ call Function10038a
+ ld a, [$cd27]
+ inc a
+ ld [$cd27], a
+ ret
+; 1004f4
+
+Function1004f4: ; 1004f4
+ call Function100337
+ ret c
+ ret z
+ ld a, [$cd27]
+ inc a
+ ld [$cd27], a
+ call Function10039c
+ ret
+; 100504
+
+INCBIN "baserom.gbc", $100504, $10062d - $100504
+
+
+Function10062d: ; 10062d
+ push bc
+ call Function10064e
+ pop bc
+ ld a, [$cd44]
+ cp b
+ jr nc, .asm_10063a
+ and a
+ ret
+
+.asm_10063a
+ ld a, $fa
+ ld [$cd2b], a
+ scf
+ ret
+; 100641
+
+Function100641: ; 100641
+ xor a
+ ld [$cd44], a
+ ld [$cd45], a
+ ld [$cd46], a
+ ret
+; 10064c
+
+INCBIN "baserom.gbc", $10064c, $10064e - $10064c
+
+
+Function10064e: ; 10064e
+ ld hl, $cd46
+ ld a, [hl]
+ add c
+ cp $3c
+ jr c, .asm_100658
+ xor a
+
+.asm_100658
+ ld [hld], a
+ ret c
+ ld a, [hl]
+ inc a
+ cp $3c
+ jr c, .asm_100661
+ xor a
+
+.asm_100661
+ ld [hld], a
+ ret c
+ inc [hl]
+ ret
+; 100665
+
+INCBIN "baserom.gbc", $100665, $1006dc - $100665
+
+
+Function1006dc: ; 1006dc
+ ld a, [hld]
+ ld c, a
+ ld a, [hSeconds]
+ sub c
+ jr nc, .asm_1006e5
+ add $3c
+
+.asm_1006e5
+ ld [de], a
+ dec de
+ ld a, [hld]
+ ld c, a
+ ld a, [hMinutes]
+ sbc c
+ jr nc, .asm_1006f0
+ add $3c
+
+.asm_1006f0
+ ld [de], a
+ dec de
+ ld a, [hl]
+ ld c, a
+ ld a, [hHours]
+ sbc c
+ jr nc, .asm_1006fb
+ add $18
+
+.asm_1006fb
+ ld [de], a
+ ret
+; 1006fd
+
+INCBIN "baserom.gbc", $1006fd, $10079c - $1006fd
+
+
+Function10079c: ; 10079c
+ ld a, [$cd21]
+ cp $1
+ jr nz, .asm_1007f4
+ ld hl, $cd2a
+ bit 5, [hl]
+ jr nz, .asm_1007f4
+ ld hl, $cd2a
+ bit 6, [hl]
+ jr nz, .asm_1007f4
+ ld a, [$cd6a]
+ add c
+ cp $3c
+ jr nc, .asm_1007be
+ ld [$cd6a], a
+ and a
+ ret
+
+.asm_1007be
+ sub $3c
+ ld [$cd6a], a
+ ld d, b
+ push de
+ call Function1007f6
+ pop de
+ jr c, .asm_1007e5
+ ld a, c
+ and a
+ jr nz, .asm_1007e5
+ ld a, b
+ cp $a
+ jr nc, .asm_1007e5
+ ld a, d
+ and a
+ ret z
+ ld a, [$cd6b]
+ cp b
+ ret z
+ ld a, b
+ ld [$cd6b], a
+ call Function1008e0
+ and a
+ ret
+
+.asm_1007e5
+ call Function1008e0
+ ld hl, $cd2a
+ set 4, [hl]
+ ld a, $fc
+ ld [$cd2b], a
+ scf
+ ret
+
+.asm_1007f4
+ and a
+ ret
+; 1007f6
+
+Function1007f6: ; 1007f6
+ call UpdateTime
+ ld hl, $cd74
+ ld de, $cd71
+ call Function1006dc
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a802
+ call Function100826
+ call CloseSRAM
+ ld hl, $cd6e
+ call Function100826
+ ld a, [hHours]
+ ld [$cd72], a
+ ld a, [hMinutes]
+ ld [$cd73], a
+ ld a, [hSeconds]
+ ld [$cd74], a
+ ret
+; 100826
+
+Function100826: ; 100826
+ ld a, [$cd71]
+ add [hl]
+ sub $3c
+ jr nc, .asm_100830
+ add $3c
+
+.asm_100830
+ ld [hld], a
+ ccf
+ ld a, [BGMapBufferPtrs]
+ adc [hl]
+ sub $3c
+ jr nc, .asm_10083c
+ add $3c
+
+.asm_10083c
+ ld [hld], a
+ ld b, a
+ ccf
+ ld a, [$cd6f]
+ adc [hl]
+ ld [hl], a
+ ld c, a
+ ret
+; 100846
+
+INCBIN "baserom.gbc", $100846, $1008e0 - $100846
+
+
+Function1008e0: ; 1008e0
+ ld a, [hBGMapMode]
+ ld b, a
+ ld a, [$ff9e]
+ ld c, a
+ push bc
+ xor a
+ ld [hBGMapMode], a
+ ld a, $3
+ ld [$ff9e], a
+ call Function100970
+ call Function100902
+ call Function100989
+ call DelayFrame
+ pop bc
+ ld a, c
+ ld [$ff9e], a
+ ld a, b
+ ld [hBGMapMode], a
+ ret
+; 100902
+
+Function100902: ; 100902
+ ld hl, $c56b
+ ld b, $1
+ ld c, $b
+ call TextBox
+ ld a, [$cd6d]
+ ld c, a
+ ld a, $a
+ sub c
+ ld [StringBuffer2], a
+ jr z, .asm_10093f
+ ld de, .string_100966
+ ld hl, $c580
+ call PlaceString
+ ld hl, $c584
+ ld bc, $0102
+ ld de, StringBuffer2
+ call PrintNum
+ ld de, SFX_TWO_PC_BEEPS
+ call StartSFX
+ callba Function104061
+ ld c, $3c
+ call DelayFrames
+ ret
+
+.asm_10093f
+ ld de, .string_10095a
+ ld hl, $c580
+ call PlaceString
+ ld de, SFX_4_NOTE_DITTY
+ call StartSFX
+ callba Function104061
+ ld c, $78
+ call DelayFrames
+ ret
+; 10095a
+
+.string_10095a ; 10095a
+ db "たいせん しゅうりょう@"
+.string_100966 ; 100966
+ db "のこり ふん", $e7, "@"
+; 100970
+
+
+Function100970: ; 100970
+ ld hl, TileMap
+ ld de, $dc00
+ call Function1009a5
+ ld hl, AttrMap
+ ld de, $dd68
+ call Function1009a5
+ call Function1009d2
+ call Function1009ae
+ ret
+; 100989
+
+Function100989: ; 100989
+ ld hl, $dc00
+ ld de, TileMap
+ call Function1009a5
+ call Function1009ae
+ callba Function104061
+ ld hl, $dd68
+ ld de, AttrMap
+ call Function1009a5
+ ret
+; 1009a5
+
+Function1009a5: ; 1009a5
+ ld bc, $0168
+ ld a, $3
+ call Function306b
+ ret
+; 1009ae
+
+Function1009ae: ; 1009ae
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, $d800
+ ld de, AttrMap
+ ld c, $14
+ ld b, $12
+.asm_1009bf
+ push bc
+.asm_1009c0
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_1009c0
+ ld bc, $000c
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_1009bf
+ pop af
+ ld [rSVBK], a
+ ret
+; 1009d2
+
+Function1009d2: ; 1009d2
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, $d800
+ ld de, VBGMap0
+ ld bc, $0324
+ call Get2bpp
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 1009f3
+
+Function1009f3: ; 1009f3
+ ld a, [hJoyDown]
+ and $5
+ cp $5
+ jr nz, .asm_100a07
+ ld hl, $cd2a
+ set 4, [hl]
+ ld a, $f8
+ ld [$cd2b], a
+ scf
+ ret
+
+.asm_100a07
+ xor a
+ ret
+; 100a09
+
+Function100a09: ; 100a09
+ call Function100a2e
+ ld [$d431], a
+ callba Function4000
+ ld a, [InLinkBattle]
+ cp $4
+ jr nz, .asm_100a2a
+ call Function100a87
+ call Function100da5
+ ld a, $f
+ ld hl, $6e27
+ rst FarCall
+ jr .asm_100a2d
+
+.asm_100a2a
+ call Function100a53
+
+.asm_100a2d
+ ret
+; 100a2e
+
+Function100a2e: ; 100a2e
+ ld a, [$d0ec]
+ and a
+ jr nz, .asm_100a48
+ ld a, [CurPlayerMove]
+ ld b, $e
+ cp $a5
+ jr z, .asm_100a4f
+ ld b, $d
+ cp $ff
+ jr z, .asm_100a4f
+ ld a, [CurMoveNum]
+ jr .asm_100a50
+
+.asm_100a48
+ ld a, [CurPartyMon]
+ add $4
+ jr .asm_100a50
+
+.asm_100a4f
+ ld a, b
+
+.asm_100a50
+ and $f
+ ret
+; 100a53
+
+Function100a53: ; 100a53
+ ld a, [$d431]
+ ld [$cf56], a
+ ld a, $ff
+ ld [$cf52], a
+.asm_100a5e
+ call Function8c1
+ call DelayFrame
+ ld a, [$cf52]
+ inc a
+ jr z, .asm_100a5e
+ ld b, $a
+.asm_100a6c
+ call DelayFrame
+ call Function8c1
+ dec b
+ jr nz, .asm_100a6c
+ ld b, $a
+.asm_100a77
+ call DelayFrame
+ call Function908
+ dec b
+ jr nz, .asm_100a77
+ ld a, [$cf52]
+ ld [$d430], a
+ ret
+; 100a87
+
+Function100a87: ; 100a87
+ call Function100acf
+ call Function100641
+ ld a, $0
+ ld [$cd27], a
+.asm_100a92
+ call DelayFrame
+ call GetJoypadPublic
+ ld a, $40
+ ld hl, $4382
+ rst FarCall
+ ld c, $1
+ ld b, $3
+ push bc
+ call Function10062d
+ pop bc
+ jr c, .asm_100ac7
+ ld b, $1
+ call Function10079c
+ jr c, .asm_100ac7
+ call Function1009f3
+ jr c, .asm_100ac7
+ ld a, [$cd2b]
+ and a
+ jr nz, .asm_100ac7
+ ld a, [$cd27]
+ bit 7, a
+ jr z, .asm_100a92
+ call Function100ae7
+ jr .asm_100ace
+
+.asm_100ac7
+ ld a, $f
+ ld [$d430], a
+ jr .asm_100ace
+
+.asm_100ace
+ ret
+; 100acf
+
+Function100acf: ; 100acf
+ ld de, $4b0a
+ ld hl, $ccb5
+ ld a, [$d431]
+ ld [hli], a
+ ld c, $1
+.asm_100adb
+ ld a, [de]
+ inc de
+ ld [hli], a
+ inc c
+ and a
+ jr nz, .asm_100adb
+ ld a, c
+ ld [$ccb4], a
+ ret
+; 100ae7
+
+Function100ae7: ; 100ae7
+ ld de, $4b0a
+ ld hl, $cc62
+.asm_100aed
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_100af8
+ cp [hl]
+ jr nz, .asm_100aff
+ inc hl
+ jr .asm_100aed
+
+.asm_100af8
+ ld a, [$cc61]
+ ld [$d430], a
+ ret
+
+.asm_100aff
+ ld a, $f
+ ld [$d430], a
+ ld a, $f1
+ ld [$cd2b], a
+ ret
+; 100b0a
+
+INCBIN "baserom.gbc", $100b0a, $100b12 - $100b0a
+
+
+Function100b12: ; 100b12
+ call Function100dd8
+ ret c
+ ld hl, $4f2c
+ ld a, $9
+ ld de, LoadMenuDataHeader
+ call FarJpDe
+ ld a, $9
+ ld [$cf94], a
+ ld a, [$d0d2]
+ ld [$cf88], a
+ call Function100e72
+ call Function100b45
+ callba Function8e85
+ call Function100ed4
+ ld a, [$cf88]
+ ld [$d0d2], a
+ call Function1c07
+ ret
+; 100b45
+
+Function100b45: ; 100b45
+ call Function100b7a
+.asm_100b48
+ call Function100dd2
+ callba Function241ba
+ push bc
+ callba Function10402d
+ call Function100e2d
+ pop bc
+ jr c, .asm_100b6b
+ ld a, [$cfa8]
+ and c
+ jr z, .asm_100b48
+ ld a, $9
+ ld hl, $4098
+ rst FarCall
+ ret
+
+.asm_100b6b
+ ld a, [$cfa4]
+ ld c, a
+ ld a, [$cfa3]
+ call SimpleMultiply
+ ld [$cf88], a
+ and a
+ ret
+; 100b7a
+
+Function100b7a: ; 100b7a
+ ld hl, Function1c66
+ ld a, [$cf94]
+ rst FarCall
+ callba Function24085
+ callba MobileTextBorder
+ call Function1ad2
+ call Function321c
+ ld a, $9
+ ld hl, $411a
+ rst FarCall
+ ld hl, $cfa5
+ set 7, [hl]
+ ret
+; 100b9f
+
+Function100b9f: ; 100b9f
+ xor a
+ ld [$d0e3], a
+ ld a, $f
+ ld hl, $6786
+ rst FarCall
+ ret z
+ call Function100dd8
+ jp c, Function2ec8
+ call Function100e72
+ call Function100bc2
+ push af
+ callba Function8e85
+ call Function100ed4
+ pop af
+ ret
+; 100bc2
+
+Function100bc2: ; 100bc2
+ xor a
+ ld [hBGMapMode], a
+ call Function100c74
+ call Function100c98
+ callba MoveInfoBox
+.asm_100bd1
+ call Function100dd2
+ callba Function241ba
+ push bc
+ callba Function10402d
+ call Function100e2d
+ pop bc
+ jr c, .asm_100c25
+ ld a, [$cfa8]
+ and c
+ bit 6, a
+ jp nz, $4bff
+ bit 7, a
+ jp nz, $4c10
+ bit 0, a
+ jr nz, .asm_100c30
+ bit 1, a
+ jr nz, .asm_100c25
+ jr .asm_100bd1
+
+ ld a, [$cfa9]
+ and a
+ jp nz, $4bcb
+ ld a, [$d0eb]
+ inc a
+ ld [$cfa9], a
+ jp $4bcb
+
+ ld a, [$cfa9]
+ ld b, a
+ ld a, [$d0eb]
+ inc a
+ inc a
+ cp b
+ jp nz, $4bcb
+ ld a, $1
+ ld [$cfa9], a
+ jp $4bcb
+
+.asm_100c25
+ ld a, [$cfa9]
+ dec a
+ ld [CurMoveNum], a
+ ld a, $1
+ and a
+ ret
+
+.asm_100c30
+ ld a, [$cfa9]
+ dec a
+ ld [CurMoveNum], a
+ ld a, [$cfa9]
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, BattleMonPPMove1
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ jr z, .asm_100c68
+ ld a, [PlayerDisableCount]
+ swap a
+ and $f
+ dec a
+ cp c
+ jr z, .asm_100c63
+ ld a, [$cfa9]
+ dec a
+ ld c, a
+ ld b, $0
+ ld hl, BattleMonMove1
+ add hl, bc
+ ld a, [hl]
+ ld [CurPlayerMove], a
+ xor a
+ ret
+
+.asm_100c63
+ ld hl, $4c5b
+ jr .asm_100c6b
+
+.asm_100c68
+ ld hl, $4c39
+
+.asm_100c6b
+ call FarBattleTextBox
+ call Function30b4
+ jp Function100bc2
+; 100c74
+
+Function100c74: ; 100c74
+ ld hl, $c540
+ ld b, $8
+ ld c, $8
+ call TextBox
+ ld hl, BattleMonMove1
+ ld de, $d25e
+ ld bc, $0004
+ call CopyBytes
+ ld a, $28
+ ld [MagikarpLength], a
+ ld hl, $c56a
+ ld a, $20
+ call Predef
+ ret
+; 100c98
+
+Function100c98: ; 100c98
+ ld de, $4cad
+ call Function1bb1
+ ld a, [$d0eb]
+ inc a
+ ld [$cfa3], a
+ ld a, [CurMoveNum]
+ inc a
+ ld [$cfa9], a
+ ret
+; 100cad
+
+INCBIN "baserom.gbc", $100cad, $100cb5 - $100cad
+
+
+Function100cb5: ; 100cb5
+ call Function100dd8
+ ret c
+ ld hl, $cfa5
+ set 7, [hl]
+ res 6, [hl]
+.asm_100cc0
+ call Function100dd2
+ ld a, $9
+ ld hl, $41ba
+ rst FarCall
+ push bc
+ callba Function8cf69
+ ld a, $41
+ ld hl, $402d
+ rst FarCall
+ call Function100dfd
+ pop bc
+ jr c, .asm_100d17
+ ld a, [$cfa8]
+ and c
+ jr z, .asm_100cc0
+ call Function1bee
+ ld a, [PartyCount]
+ inc a
+ ld b, a
+ ld a, [$cfa9]
+ cp b
+ jr z, .asm_100d17
+ ld [$d0d8], a
+ ld a, [$ffa9]
+ ld b, a
+ bit 1, b
+ jr nz, .asm_100d17
+ ld a, [$cfa9]
+ dec a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, $0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld de, SFX_READ_TEXT_2
+ call StartSFX
+ call WaitSFX
+ and a
+ ret
+
+.asm_100d17
+ ld de, SFX_READ_TEXT_2
+ call StartSFX
+ call WaitSFX
+ scf
+ ret
+; 100d22
+
+Function100d22: ; 100d22
+ call Function100dd8
+ ret c
+ call Function100d67
+ ld hl, $cfa5
+ set 7, [hl]
+ res 6, [hl]
+.asm_100d30
+ call Function100dd2
+ callba Function241ba
+ push bc
+ callba Function8cf69
+ callba Function10402d
+ call Function100dfd
+ pop bc
+ jr c, .asm_100d54
+ ld a, [$cfa8]
+ and c
+ jr nz, .asm_100d56
+ jr .asm_100d30
+
+.asm_100d54
+ scf
+ ret
+
+.asm_100d56
+ push af
+ ld de, SFX_READ_TEXT_2
+ call StartSFX
+ pop af
+ bit 1, a
+ jr z, .asm_100d65
+ ret z
+ scf
+ ret
+
+.asm_100d65
+ and a
+ ret
+; 100d67
+
+Function100d67: ; 100d67
+ ld hl, $4d88
+ call Function1d3c
+ xor a
+ ld [hBGMapMode], a
+ call Function1cbb
+ call Function1ad2
+ call Function1c89
+ call WaitBGMap
+ call Function1c66
+ call Function1c10
+ ld hl, $cfa5
+ set 6, [hl]
+ ret
+; 100d88
+
+INCBIN "baserom.gbc", $100d88, $100da5 - $100d88
+
+
+Function100da5: ; 100da5
+ ld hl, $cd2a
+ res 3, [hl]
+ ld hl, $cd29
+ res 0, [hl]
+ ret
+; 100db0
+
+Function100db0: ; 100db0
+ ld hl, $cd2a
+ bit 3, [hl]
+ jr nz, .asm_100dbe
+ ld hl, $cd2a
+ set 3, [hl]
+ scf
+ ret
+
+.asm_100dbe
+ xor a
+ ret
+; 100dc0
+
+
+
+Function100dc0: ; 100dc0
+ ld a, [InLinkBattle]
+ cp $4
+ jr nz, .asm_100dd0
+ ld hl, $cd2a
+ bit 3, [hl]
+ jr z, .asm_100dd0
+ scf
+ ret
+
+.asm_100dd0
+ xor a
+ ret
+; 100dd2
+
+Function100dd2: ; 100dd2
+ ld a, $1e
+ ld [OverworldDelay], a
+ ret
+; 100dd8
+
+Function100dd8: ; 100dd8
+ ld c, $1
+ ld b, $3
+ ld a, $40
+ ld hl, $462d
+ rst FarCall
+ jr c, .asm_100dfb
+ ld c, $3c
+ ld b, $1
+ call Function10079c
+ jr c, .asm_100dfb
+ ld a, $40
+ ld hl, $432e
+ rst FarCall
+ ld a, [$cd2b]
+ and a
+ jr nz, .asm_100dfb
+ xor a
+ ret
+
+.asm_100dfb
+ scf
+ ret
+; 100dfd
+
+Function100dfd: ; 100dfd
+ ld a, [OverworldDelay]
+ ld c, a
+ ld a, $1e
+ sub c
+ ld c, a
+ ld b, $3
+ push bc
+ ld a, $40
+ ld hl, $462d
+ rst FarCall
+ pop bc
+ jr c, .asm_100e2b
+ ld b, $1
+ call Function10079c
+ jr c, .asm_100e2b
+ call Function1009f3
+ jr c, .asm_100e2b
+ ld a, $40
+ ld hl, $432e
+ rst FarCall
+ ld a, [$cd2b]
+ and a
+ jr nz, .asm_100e2b
+ xor a
+ ret
+
+.asm_100e2b
+ scf
+ ret
+; 100e2d
+
+Function100e2d: ; 100e2d
+ ld a, [OverworldDelay]
+ ld c, a
+ ld a, $1e
+ sub c
+ ld c, a
+ ld b, $3
+ push bc
+ callba Function10062d
+ pop bc
+ jr c, .asm_100e61
+ ld b, $1
+ call Function10079c
+ jr c, .asm_100e61
+ call Function1009f3
+ jr c, .asm_100e61
+ callba Function10032e
+ ld a, [$cd2b]
+ and a
+ jr nz, .asm_100e61
+ call Function100e63
+ call Function100e84
+ xor a
+ ret
+
+.asm_100e61
+ scf
+ ret
+; 100e63
+
+Function100e63: ; 100e63
+ ld a, e
+ cp $2
+ ret nz
+ call Function100db0
+ ret nc
+ ld de, SFX_ELEVATOR_END
+ call StartSFX
+ ret
+; 100e72
+
+Function100e72: ; 100e72
+ xor a
+ ld hl, $cd29
+ bit 0, [hl]
+ jr z, .asm_100e7c
+ ld a, $a
+
+.asm_100e7c
+ ld [$cd67], a
+ xor a
+ ld [$cd68], a
+ ret
+; 100e84
+
+Function100e84: ; 100e84
+ ld a, [$cd67]
+ ld hl, $4e8c
+ rst JumpTable
+ ret
+; 100e8c
+
+INCBIN "baserom.gbc", $100e8c, $100eae - $100e8c
+
+
+Function100eae: ; 100eae
+ scf
+ call Function100eca
+ jr .asm_100eb8
+
+ and a
+ call Function100eca
+
+.asm_100eb8
+ ld hl, $cd68
+ inc [hl]
+ ld a, [hl]
+ cp $2
+ ret c
+ ld [hl], $0
+ jr .asm_100ec5
+
+ ret
+
+.asm_100ec5
+ ld hl, $cd67
+ inc [hl]
+ ret
+; 100eca
+
+Function100eca: ; 100eca
+ ld a, $2
+ ld hl, $4e8b
+ rst FarCall
+ call Function100ed4
+ ret
+; 100ed4
+
+Function100ed4: ; 100ed4
+ callba Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 100edf
+
+INCBIN "baserom.gbc", $100edf, $10389d - $100edf
+
+
SECTION "bank41",ROMX,BANK[$41]
-INCBIN "baserom.gbc", $104000, $104350 - $104000
+Function104000: ; 104000
+ ld hl, $4006
+ jp Function104177
+; 104006
+INCBIN "baserom.gbc", $104006, $10402d - $104006
+
+
+Function10402d: ; 10402d
+ ld hl, $4033
+ jp Function104177
+; 104033
+
+INCBIN "baserom.gbc", $104033, $104061 - $104033
+
+
+Function104061: ; 104061
+ ld hl, $4067
+ jp Function104177
+; 104067
+
+INCBIN "baserom.gbc", $104067, $104110 - $104067
+
+
+Function104110: ; 104110
+ ld hl, $4116
+ jp Function104177
+; 104116
+
+INCBIN "baserom.gbc", $104116, $104177 - $104116
+
+
+Function104177: ; 104177
+ ld a, [hBGMapMode]
+ push af
+ ld a, [$ffde]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld [$ffde], a
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, [rVBK]
+ push af
+ call Function10419c
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ pop af
+ ld [$ffde], a
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 10419c
+
+Function10419c: ; 10419c
+ jp [hl]
+; 10419d
+
+INCBIN "baserom.gbc", $10419d, $104209 - $10419d
+
+
+Function104209: ; 104209
+ ld b, $7f
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ and $f0
+ ld [rHDMA2], a
+ ld a, d
+ and $1f
+ ld [rHDMA3], a
+ ld a, e
+ and $f0
+ ld [rHDMA4], a
+ ld a, c
+ dec c
+ or $80
+ ld e, a
+ ld a, b
+ sub c
+ ld d, a
+.asm_104225
+ ld a, [rLY]
+ cp d
+ jr nc, .asm_104225
+ di
+.asm_10422b
+ ld a, [rSTAT]
+ and $3
+ jr nz, .asm_10422b
+.asm_104231
+ ld a, [rSTAT]
+ and $3
+ jr z, .asm_104231
+ ld a, e
+ ld [rHDMA5], a
+ ld a, [rLY]
+ inc c
+ ld hl, rLY
+.asm_104240
+ cp [hl]
+ jr z, .asm_104240
+ ld a, [hl]
+ dec c
+ jr nz, .asm_104240
+ ld hl, rHDMA5
+ res 7, [hl]
+ ei
+ ret
+; 10424e
+
+INCBIN "baserom.gbc", $10424e, $104284 - $10424e
+
+
+Function104284: ; 104284
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push bc
+ push hl
+ ld a, b
+ ld l, c
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld b, h
+ ld c, l
+ ld h, d
+ ld l, e
+ ld de, $d000
+ call FarCopyBytes
+ pop hl
+ pop bc
+ push bc
+ call DelayFrame
+ pop bc
+ ld d, h
+ ld e, l
+ ld hl, $d000
+ call Function104209
+ pop af
+ ld [rSVBK], a
+ ret
+; 1042b2
+
+Function1042b2: ; 1042b2
+.asm_1042b2
+ ld a, c
+ cp $10
+ jp c, Function1042d6
+ jp z, Function1042d6
+ push bc
+ push hl
+ push de
+ ld c, $10
+ call Function1042d6
+ pop de
+ ld hl, $0080
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ ld bc, Start
+ add hl, bc
+ pop bc
+ ld a, c
+ sub $10
+ ld c, a
+ jr .asm_1042b2
+; 1042d6
+
+Function1042d6: ; 1042d6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push bc
+ push hl
+ ld a, b
+ ld l, c
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld c, l
+ ld b, h
+ ld h, d
+ ld l, e
+ ld de, $d000
+ call Functiondef
+ pop hl
+ pop bc
+ push bc
+ call DelayFrame
+ pop bc
+ ld d, h
+ ld e, l
+ ld hl, $d000
+ call Function104209
+ pop af
+ ld [rSVBK], a
+ ret
+; 104303
+
+Function104303: ; 104303
+ ld hl, $4309
+ jp Function104177
+; 104309
+
+INCBIN "baserom.gbc", $104309, $104350 - $104309
+
INCBIN "gfx/ow/misc.2bpp"
@@ -23037,8 +69883,81 @@
; 1046c6
-INCBIN "baserom.gbc", $1046c6, $105258 - $1046c6
+INCBIN "baserom.gbc", $1046c6, $10486d - $1046c6
+
+Function10486d: ; 10486d
+ ld hl, OverworldMap
+ ld a, [XCoord]
+ bit 0, a
+ jr nz, .asm_10487d
+ srl a
+ add $1
+ jr .asm_104881
+
+.asm_10487d
+ add $1
+ srl a
+
+.asm_104881
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [$d19f]
+ add $6
+ ld c, a
+ ld b, $0
+ ld a, [YCoord]
+ bit 0, a
+ jr nz, .asm_10489a
+ srl a
+ add $1
+ jr .asm_10489e
+
+.asm_10489a
+ add $1
+ srl a
+
+.asm_10489e
+ call AddNTimes
+ ld a, l
+ ld [$d194], a
+ ld a, h
+ ld [$d195], a
+ ld a, [YCoord]
+ and $1
+ ld [$d196], a
+ ld a, [XCoord]
+ and $1
+ ld [$d197], a
+ ret
+; 1048ba
+
+INCBIN "baserom.gbc", $1048ba, $1050d9 - $1048ba
+
+
+Function1050d9: ; 1050d9
+ call Function105106
+ ld hl, $abe2
+ ld de, $abe4
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ jp CloseSRAM
+; 1050ea
+
+INCBIN "baserom.gbc", $1050ea, $105106 - $1050ea
+
+
+Function105106: ; 105106
+ ld a, $0
+ jp GetSRAMBank
+; 10510b
+
+INCBIN "baserom.gbc", $10510b, $105258 - $10510b
+
MysteryGiftGFX:
INCBIN "gfx/misc/mystery_gift.2bpp"
@@ -23108,7 +70027,7 @@
; everything except 'instead' made redundant in localization
; check obedience
- ld a, [$c6f4]
+ ld a, [AlreadyDisobeyed]
and a
ld hl, UsedMove2Text
ret nz
@@ -23135,7 +70054,7 @@
Function105e10: ; 105e10
; check obedience
- ld a, [$c6f4]
+ ld a, [AlreadyDisobeyed]
and a
jr z, GetMoveNameText
; print "instead,"
@@ -23411,21 +70330,336 @@
HallOfFame2: ; 0x105ef6
ret
-INCBIN "baserom.gbc", $105ef7, $106078 - $105ef7
+INCBIN "baserom.gbc", $105ef7, $106008 - $105ef7
+
+Function106008: ; 106008
+ ret
+; 106009
+
+INCBIN "baserom.gbc", $106009, $106050 - $106009
+
+
+Function106050: ; 106050
+ ret
+; 106051
+
+INCBIN "baserom.gbc", $106051, $10605d - $106051
+
+
+Function10605d: ; 10605d
+ ret
+; 10605e
+
+INCBIN "baserom.gbc", $10605e, $10606a - $10605e
+
+
+Function10606a: ; 10606a
+ ret
+; 10606b
+
+INCBIN "baserom.gbc", $10606b, $106078 - $10606b
+
HallOfFame1: ; 0x106078
ret
-INCBIN "baserom.gbc", $106079, $1060bb - $106079
+INCBIN "baserom.gbc", $106079, $106086 - $106079
+
+Function106086: ; 106086
+ ret
+; 106087
+
+INCBIN "baserom.gbc", $106087, $106094 - $106087
+
+
+Function106094: ; 106094
+ ret
+; 106095
+
+INCBIN "baserom.gbc", $106095, $1060b5 - $106095
+
+Function1060b5: ; 1060b5
+ ret
+; 1060b6
+
+INCBIN "baserom.gbc", $1060b6, $1060bb - $1060b6
+
Function1060bb: ; 1060bb
; commented out
ret
; 1060bc
-INCBIN "baserom.gbc", $1060bc, $106dbc - $1060bc
+INCBIN "baserom.gbc", $1060bc, $1060c1 - $1060bc
+Function1060c1: ; 1060c1
+ ret
+; 1060c2
+INCBIN "baserom.gbc", $1060c2, $1060d3 - $1060c2
+
+
+Function1060d3: ; 1060d3
+ ret
+; 1060d4
+
+INCBIN "baserom.gbc", $1060d4, $1060df - $1060d4
+
+
+Function1060df: ; 1060df
+ ret
+; 1060e0
+
+INCBIN "baserom.gbc", $1060e0, $1060fb - $1060e0
+
+
+Function1060fb: ; 1060fb
+ ret
+; 1060fc
+
+INCBIN "baserom.gbc", $1060fc, $106101 - $1060fc
+
+
+Function106101: ; 106101
+ ret
+; 106102
+
+INCBIN "baserom.gbc", $106102, $106107 - $106102
+
+
+Function106107: ; 106107
+ ret
+; 106108
+
+INCBIN "baserom.gbc", $106108, $106187 - $106108
+
+
+Function106187: ; 106187
+ ld a, $1
+ call GetSRAMBank
+ ld a, [$be3c]
+ push af
+ ld a, $1
+ call GetSRAMBank
+ pop af
+ ld [$be44], a
+ call CloseSRAM
+ ret
+; 10619d
+
+INCBIN "baserom.gbc", $10619d, $1061ef - $10619d
+
+
+Function1061ef: ; 1061ef
+ push bc
+ xor a
+ ld [hProduct], a
+ ld [hMultiplicand], a
+ ld [$ffb5], a
+ ld a, b
+ and $f
+ cp $1
+ jr z, .asm_106212
+ cp $2
+ jr z, .asm_10620e
+ cp $3
+ jr z, .asm_10620a
+ ld a, [de]
+ ld [hProduct], a
+ inc de
+
+.asm_10620a
+ ld a, [de]
+ ld [hMultiplicand], a
+ inc de
+
+.asm_10620e
+ ld a, [de]
+ ld [$ffb5], a
+ inc de
+
+.asm_106212
+ ld a, [de]
+ ld [$ffb6], a
+ inc de
+ push de
+ xor a
+ ld [$ffbb], a
+ ld a, b
+ ld [$ffbc], a
+ ld a, c
+ cp $2
+ jr z, .asm_10626a
+ ld de, $62ae
+ cp $3
+ jr z, .asm_106256
+ ld de, $62aa
+ cp $4
+ jr z, .asm_106256
+ ld de, $62a6
+ cp $5
+ jr z, .asm_106256
+ ld de, $62a2
+ cp $6
+ jr z, .asm_106256
+ ld de, $629e
+ cp $7
+ jr z, .asm_106256
+ ld de, $629a
+ cp $8
+ jr z, .asm_106256
+ ld de, $6296
+ cp $9
+ jr z, .asm_106256
+ ld de, $6292
+
+.asm_106256
+ inc de
+ inc de
+ inc de
+ dec a
+ dec a
+.asm_10625b
+ push af
+ call Function1062b2
+ call Function1062ff
+ inc de
+ inc de
+ inc de
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_10625b
+
+.asm_10626a
+ ld c, $0
+ ld a, [$ffb6]
+.asm_10626e
+ cp $a
+ jr c, .asm_106277
+ sub $a
+ inc c
+ jr .asm_10626e
+
+.asm_106277
+ ld b, a
+ ld a, [$ffbb]
+ or c
+ ld [$ffbb], a
+ jr nz, .asm_106284
+ call $62f7
+ jr .asm_106288
+
+.asm_106284
+ ld a, $f6
+ add c
+ ld [hl], a
+
+.asm_106288
+ call Function1062ff
+ ld a, $f6
+ add b
+ ld [hli], a
+ pop de
+ pop bc
+ ret
+; 106292
+
+INCBIN "baserom.gbc", $106292, $1062b2 - $106292
+
+
+Function1062b2: ; 1062b2
+ ld c, $0
+.asm_1062b4
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [$ffb6]
+ sub b
+ ld [$ffba], a
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [$ffb5]
+ sbc b
+ ld [$ffb9], a
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [hMultiplicand]
+ sbc b
+ ld [hMathBuffer], a
+ ld a, [de]
+ inc de
+ inc de
+ inc de
+ ld b, a
+ ld a, [hProduct]
+ sbc b
+ ld [hMultiplier], a
+ jr c, .asm_1062eb
+ ld a, [hMultiplier]
+ ld [hProduct], a
+ ld a, [hMathBuffer]
+ ld [hMultiplicand], a
+ ld a, [$ffb9]
+ ld [$ffb5], a
+ ld a, [$ffba]
+ ld [$ffb6], a
+ inc c
+ jr .asm_1062b4
+
+.asm_1062eb
+ ld a, [$ffbb]
+ or c
+ jr z, .asm_1062f7
+ ld a, $f6
+ add c
+ ld [hl], a
+ ld [$ffbb], a
+ ret
+
+.asm_1062f7
+ ld a, [$ffbc]
+ bit 7, a
+ ret z
+ ld [hl], $f6
+ ret
+; 1062ff
+
+Function1062ff: ; 1062ff
+ ld a, [$ffbc]
+ bit 7, a
+ jr nz, .asm_10630d
+ bit 6, a
+ jr z, .asm_10630d
+ ld a, [$ffbb]
+ and a
+ ret z
+
+.asm_10630d
+ inc hl
+ ret
+; 10630f
+
+INCBIN "baserom.gbc", $10630f, $106594 - $10630f
+
+
+Function106594: ; 106594
+ ld de, $65ad
+ ld hl, VTiles1
+ ld bc, $4180
+ call Get2bpp
+ ld de, $6dad
+ ld hl, $97f0
+ ld bc, $4101
+ call Get2bpp
+ ret
+; 1065ad
+
+INCBIN "baserom.gbc", $1065ad, $106dbc - $1065ad
+
+
SECTION "bank42",ROMX,BANK[$42]
INCBIN "baserom.gbc", $108000, $109407 - $108000
@@ -23434,8 +70668,147 @@
INCBIN "gfx/intro/logo.lz"
; 10983f
-INCBIN "baserom.gbc", $10983f, $1099aa - $10983f
+INCBIN "baserom.gbc", $10983f, $109847 - $10983f
+
+Function109847: ; 109847
+ bit 6, b
+ ld a, $0
+ jr z, .asm_10984f
+ ld a, $40
+
+.asm_10984f
+ ld [$cf63], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call WhiteBGMap
+ call ClearTileMap
+ call ClearSprites
+ ld hl, $ca00
+ ld c, $80
+ ld de, rJOYP
+.asm_10986a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ dec c
+ jr nz, .asm_10986a
+ ld de, $5c24
+ ld hl, $9200
+ ld bc, $4209
+ call Request2bpp
+ ld de, $4000
+ ld hl, $9600
+ ld bc, $391d
+ call Request2bpp
+ ld de, $7d2e
+ ld hl, $9400
+ ld bc, $3210
+ call Request2bpp
+ ld a, $ff
+ ld [$cf64], a
+ xor a
+ ld [$cf65], a
+ call $5bca
+ ld e, l
+ ld d, h
+ ld hl, VTiles2
+ ld bc, $4210
+ call Request2bpp
+ call $5a95
+ xor a
+ ld [$cf66], a
+ ld hl, $d100
+ ld bc, Start
+ xor a
+ call ByteFill
+ ld a, $43
+ ld [hLCDStatCustom], a
+ call GetCreditsPalette
+ call Function32f9
+ ld a, [$ff9e]
+ push af
+ ld a, $5
+ ld [$ff9e], a
+ ld a, $1
+ ld [$ffaa], a
+ xor a
+ ld [hBGMapMode], a
+ ld [CreditsPos], a
+ ld [$cd21], a
+ ld [CreditsTimer], a
+.asm_1098de
+ call Function109908
+ call Function1098fd
+ jr nz, .asm_1098ee
+ call Function109926
+ call DelayFrame
+ jr .asm_1098de
+
+.asm_1098ee
+ call WhiteBGMap
+ xor a
+ ld [hLCDStatCustom], a
+ ld [hBGMapAddress], a
+ pop af
+ ld [$ff9e], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 1098fd
+
+Function1098fd: ; 1098fd
+ ld a, [hJoypadDown]
+ and $1
+ ret z
+ ld a, [$cf63]
+ bit 7, a
+ ret
+; 109908
+
+Function109908: ; 109908
+ ld a, [hJoypadDown]
+ and $2
+ ret z
+ ld a, [$cf63]
+ bit 6, a
+ ret z
+ ld hl, CreditsPos
+ ld a, [hli]
+ cp $d
+ jr nc, .asm_10991e
+ ld a, [hli]
+ and a
+ ret z
+
+.asm_10991e
+ ld hl, CreditsTimer
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+; 109926
+
+Function109926: ; 109926
+ ld a, [$cf63]
+ and $f
+ ld e, a
+ ld d, $0
+ ld hl, $5937
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 109937
+
+INCBIN "baserom.gbc", $109937, $1099aa - $109937
+
; Credits
INCLUDE "engine/credits.asm"
@@ -23472,12 +70845,12 @@
; Decompress running Suicune gfx
ld hl, TitleSuicuneGFX
- ld de, $8800
- call $0b50
+ ld de, VTiles1
+ call Decompress
; Clear screen palettes
- ld hl, $9800
+ ld hl, VBGMap0
ld bc, $0280
xor a
call ByteFill
@@ -23488,7 +70861,7 @@
; BG Map 1:
; line 0 (copyright)
- ld hl, $9c00
+ ld hl, VBGMap1
ld bc, $0020 ; one row
ld a, 7 ; palette
call ByteFill
@@ -23545,17 +70918,17 @@
; Decompress logo
ld hl, TitleLogoGFX
- ld de, $8800
- call $0b50
+ ld de, VTiles1
+ call Decompress
; Decompress background crystal
ld hl, TitleCrystalGFX
- ld de, $8000
- call $0b50
+ ld de, VTiles0
+ call Decompress
; Clear screen tiles
- ld hl, $9800
+ ld hl, VBGMap0
ld bc, $0800
ld a, $7f
call ByteFill
@@ -23576,10 +70949,10 @@
; Initialize running Suicune?
ld d, $0
- call $6ed2
+ call Function10eed2
; Initialize background crystal
- call $6f06
+ call Function10ef06
; Save WRAM bank
ld a, [rSVBK]
@@ -23646,7 +71019,7 @@
; Reset audio
call ChannelsOff
- call $058a
+ call EnableLCD
; Set sprite size to 8x16
ld a, [rLCDC]
@@ -23655,13 +71028,13 @@
;
ld a, $70
- ld [$ffcf], a
+ ld [hSCX], a
ld a, $8
- ld [$ffd0], a
+ ld [hSCY], a
ld a, $7
- ld [$ffd1], a
+ ld [hWX], a
ld a, $90
- ld [$ffd2], a
+ ld [hWY], a
ld a, $1
ld [hCGBPalUpdate], a
@@ -23670,7 +71043,7 @@
ld [hBGMapMode], a
xor a
- ld [$d002], a
+ ld [DefaultFlypoint], a
; Play starting sound effect
call SFXChannelsOff
@@ -23680,8 +71053,123 @@
ret
; 10eea7
-INCBIN "baserom.gbc", $10eea7, $10ef32 - $10eea7
+Function10eea7: ; 10eea7
+ ld hl, DefaultFlypoint
+ ld a, [hl]
+ ld c, a
+ inc [hl]
+ and $7
+ ret nz
+ ld a, c
+ and $18
+ sla a
+ swap a
+ ld e, a
+ ld d, $0
+ ld hl, $6ece
+ add hl, de
+ ld d, [hl]
+ xor a
+ ld [hBGMapMode], a
+ call Function10eed2
+ ld a, $1
+ ld [hBGMapMode], a
+ ld a, $3
+ ld [hBGMapThird], a
+ ret
+; 10eece
+INCBIN "baserom.gbc", $10eece, $10eed2 - $10eece
+
+
+Function10eed2: ; 10eed2
+ ld hl, $c596
+ ld b, $6
+.asm_10eed7
+ ld c, $8
+.asm_10eed9
+ ld a, d
+ ld [hli], a
+ inc d
+ dec c
+ jr nz, .asm_10eed9
+ ld a, $c
+ add l
+ ld l, a
+ ld a, $0
+ adc h
+ ld h, a
+ ld a, $8
+ add d
+ ld d, a
+ dec b
+ jr nz, .asm_10eed7
+ ret
+; 10eeef
+
+Function10eeef: ; 10eeef
+.asm_10eeef
+ push de
+ push bc
+ push hl
+.asm_10eef2
+ ld a, d
+ ld [hli], a
+ inc d
+ dec c
+ jr nz, .asm_10eef2
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ pop de
+ ld a, e
+ add d
+ ld d, a
+ dec b
+ jr nz, .asm_10eeef
+ ret
+; 10ef06
+
+Function10ef06: ; 10ef06
+ ld hl, Sprites
+ ld d, $de
+ ld e, $0
+ ld c, $5
+.asm_10ef0f
+ push bc
+ call Function10ef1c
+ pop bc
+ ld a, $10
+ add d
+ ld d, a
+ dec c
+ jr nz, .asm_10ef0f
+ ret
+; 10ef1c
+
+Function10ef1c: ; 10ef1c
+ ld c, $6
+ ld b, $40
+.asm_10ef20
+ ld a, d
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ add $8
+ ld b, a
+ ld a, e
+ ld [hli], a
+ inc e
+ inc e
+ ld a, $80
+ ld [hli], a
+ dec c
+ jr nz, .asm_10ef20
+ ret
+; 10ef32
+
+
AnimateTitleCrystal: ; 10ef32
; Move the title screen crystal downward until it's fully visible
@@ -23827,12 +71315,34 @@
SECTION "bank45",ROMX,BANK[$45]
-INCBIN "baserom.gbc", $114000, $117a7f - $114000
+INCBIN "baserom.gbc", $114000, $114243 - $114000
+Function114243: ; 114243
+ ld a, $a
+ ld [$0000], a
+ ld a, [$ff8c]
+ push af
+ push de
+ ld a, [$dc02]
+ add a
+ ld e, a
+ ld d, $0
+ ld hl, $4165
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ jp [hl]
+; 11425c
+
+INCBIN "baserom.gbc", $11425c, $117a7f - $11425c
+
+
; everything from here to the end of the bank is related to the
; Mobile Stadium option from the continue/newgame menu.
; XXX better function names
-Function117a7f: ; 0x117a7f
+MobileStudium: ; 0x117a7f
ld a, [$ffaa]
push af
ld a, $1
@@ -23882,7 +71392,7 @@
; 0x117acd
Function117acd: ; 0x117acd
- call $0a57
+ call Functiona57
ld a, [$cf63]
bit 7, a
jr nz, .asm_117ae2 ; 0x117ad5 $b
@@ -23930,9 +71440,9 @@
dec [hl]
ret nz
ld hl, Data117cbc
- call Function1d35
- call $1cbb
- call $1cfd
+ call LoadMenuDataHeader
+ call Function1cbb
+ call Function1cfd
jp Function117cdd
Function117b28:
@@ -23942,9 +71452,9 @@
Function117b31:
ld hl, Data117cc4
- call Function1d35
- call $1cbb
- call $1cfd
+ call LoadMenuDataHeader
+ call Function1cbb
+ call Function1cfd
ld hl, $c550
ld de, YesNo117ccc
call PlaceString
@@ -24079,7 +71589,7 @@
ld [rSVBK], a
ld a, $7
call GetSRAMBank
- ld hl, $d002
+ ld hl, DefaultFlypoint
ld de, $b000
ld bc, $1000
call CopyBytes
@@ -24090,9 +71600,9 @@
Function117c4a:
ld hl, Data117cbc
- call Function1d35
- call $1cbb
- call $1cfd
+ call LoadMenuDataHeader
+ call Function1cbb
+ call Function1cfd
ld a, $41
ld hl, $4061
rst FarCall
@@ -24205,13 +71715,343 @@
db $0
-INCBIN "baserom.gbc", $118d35, $11bc9e - $118d35
+INCBIN "baserom.gbc", $118d35, $11aa13 - $118d35
+UnknownText_0x11aa13: ; 0x11aa13
+ db $0, "SAVE FILE will be", $4f
+ db "sent.", $57
+; 0x11aa2c
+
+UnknownText_0x11aa2c: ; 0x11aa2c
+ db $0, "Sent SAVE FILE.", $4f
+ db "Reading NEWS…", $57
+; 0x11aa4b
+
+UnknownText_0x11aa4b: ; 0x11aa4b
+ db $0, "Reading NEWS…", $57
+; 0x11aa5a
+
+UnknownText_0x11aa5a: ; 0x11aa5a
+ db $0, "Received NEWS!", $57
+; 0x11aa6a
+
+UnknownText_0x11aa6a: ; 0x11aa6a
+ db $0, "Quit reading NEWS?", $57
+; 0x11aa7e
+
+UnknownText_0x11aa7e: ; 0x11aa7e
+ db $0, "Canceled sending", $4f
+ db "SAVE FILE.", $57
+; 0x11aa9b
+
+UnknownText_0x11aa9b: ; 0x11aa9b
+ db $0, "ODD EGG", $4f
+ db "was received!", $57
+; 0x11aab2
+
+UnknownText_0x11aab2: ; 0x11aab2
+ db $0, "Registering your", $4f
+ db "record…", $57
+; 0x11aacc
+
+UnknownText_0x11aacc: ; 0x11aacc
+ db $0, "One visit per day", $4f
+ db "per BATTLE ROOM!", $57
+; 0x11aaf0
+
+UnknownText_0x11aaf0: ; 0x11aaf0
+ db $0, "A party #MON", $4f
+ db "tops this level.", $57
+; 0x11ab0f
+
+UnknownText_0x11ab0f: ; 0x11ab0f
+ text_from_ram $cd49
+ db $0, " may go", $4f
+ db "only to BATTLE", $51
+ db "ROOMS that are", $4f
+ db "Lv.70 or higher.", $57
+; 0x11ab4a
+
+UnknownText_0x11ab4a: ; 0x11ab4a
+ db $0, "Cancel your BATTLE", $4f
+ db "ROOM challenge?", $57
+; 0x11ab6e
+
+UnknownText_0x11ab6e: ; 0x11ab6e
+ db $0, "Exit GYM LEADER", $4f
+ db "HONOR ROLL?", $57
+; 0x11ab8b
+
+UnknownText_0x11ab8b: ; 0x11ab8b
+ db $0, "Linking with the", $4f
+ db "CENTER…", $57
+; 0x11aba5
+
+UnknownText_0x11aba5: ; 0x11aba5
+ db $0, "What level do you", $4f
+ db "want to challenge?", $57
+; 0x11abcb
+
+UnknownText_0x11abcb: ; 0x11abcb
+ db $0, "Check BATTLE ROOM", $4f
+ db "list by max level?", $57
+; 0x11abf1
+
+UnknownText_0x11abf1: ; 0x11abf1
+ db $0, "Enter which", $4f
+ db "BATTLE ROOM?", $57
+; 0x11ac0b
+
+UnknownText_0x11ac0b: ; 0x11ac0b
+ db $0, "Which BATTLE ROOM?", $57
+; 0x11ac1f
+
+UnknownText_0x11ac1f: ; 0x11ac1f
+ text_from_ram $d099
+ db $0, "'s ROOM", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, "?", $55
+ db "Please wait…", $57
+; 0x11ac3e
+
+INCBIN "baserom.gbc", $11ac3e, $11bc9e - $11ac3e
+
+
SECTION "bank47",ROMX,BANK[$47]
-INCBIN "baserom.gbc", $11c000, $11f686 - $11c000
+Function11c000: ; 11c000
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, $d105
+ ld a, [hl]
+ dec a
+ ld e, a
+ ld d, $0
+ ld hl, $72f0
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_11c026
+ ld a, [hRandomAdd]
+ and $1f
+ cp $19
+ jr c, .asm_11c021
+ sub $19
+.asm_11c021
+ ld hl, $7332
+ jr .asm_11c033
+.asm_11c026
+ ld a, [hRandomAdd]
+ and $f
+ cp $f
+ jr c, .asm_11c030
+ sub $f
+
+.asm_11c030
+ ld hl, $73ce
+
+.asm_11c033
+ ld b, $0
+ dec c
+ jr nz, .asm_11c03d
+ ld [$d200], a
+ jr .asm_11c040
+
+.asm_11c03d
+ ld a, [$d200]
+
+.asm_11c040
+ push af
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld h, a
+ ld l, c
+ pop af
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld l, c
+ ld h, a
+ ld bc, $c5b9
+ pop af
+ ld [rSVBK], a
+ call Function13e5
+ ret
+; 11c05d
+
+INCBIN "baserom.gbc", $11c05d, $11c0c6 - $11c05d
+
+
+Function11c0c6: ; 11c0c6
+ ld a, [$cf63]
+ ld l, a
+ ld a, [$cf64]
+ ld h, a
+ push hl
+ ld hl, $c618
+ ld a, $0
+ ld [hli], a
+ push de
+ xor a
+ ld [$cf63], a
+ ld a, $12
+ ld [$cf64], a
+ ld a, $6
+.asm_11c0e1
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ or e
+ jr z, .asm_11c133
+ push hl
+ push bc
+ call Function11c156
+ call Function11c14a
+ ld e, c
+ pop bc
+ pop hl
+ ld a, e
+ or a
+ jr z, .asm_11c133
+.asm_11c0fa
+ ld a, [$cf64]
+ cp $12
+ jr z, .asm_11c102
+ inc e
+
+.asm_11c102
+ cp e
+ jr nc, .asm_11c11c
+ ld a, [$cf63]
+ inc a
+ ld [$cf63], a
+ ld [hl], $4e
+ rra
+ jr c, .asm_11c113
+ ld [hl], $55
+
+.asm_11c113
+ inc hl
+ ld a, $12
+ ld [$cf64], a
+ dec e
+ jr .asm_11c0fa
+
+.asm_11c11c
+ cp $12
+ jr z, .asm_11c123
+ ld [hl], $7f
+ inc hl
+
+.asm_11c123
+ sub e
+ ld [$cf64], a
+ ld de, EnemyMoveAnimation
+.asm_11c12a
+ ld a, [de]
+ cp $50
+ jr z, .asm_11c133
+ inc de
+ ld [hli], a
+ jr .asm_11c12a
+
+.asm_11c133
+ pop af
+ dec a
+ jr nz, .asm_11c0e1
+ ld [hl], $57
+ pop bc
+ ld hl, $c618
+ call Function13e5
+ pop hl
+ ld a, l
+ ld [$cf63], a
+ ld a, h
+ ld [$cf64], a
+ ret
+; 11c14a
+
+Function11c14a: ; 11c14a
+ ld c, $0
+ ld hl, EnemyMoveAnimation
+.asm_11c14f
+ ld a, [hli]
+ cp $50
+ ret z
+ inc c
+ jr .asm_11c14f
+; 11c156
+
+Function11c156: ; 11c156
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, $50
+ ld hl, EnemyMoveAnimation
+ ld bc, $000b
+ call ByteFill
+ ld a, d
+ and a
+ jr z, .asm_11c19c
+ ld hl, $5aac
+ dec d
+ sla d
+ ld c, d
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ push bc
+ pop hl
+ ld c, e
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ ld bc, $0005
+.asm_11c18f
+ ld de, EnemyMoveAnimation
+ call CopyBytes
+ ld de, EnemyMoveAnimation
+ pop af
+ ld [rSVBK], a
+ ret
+
+.asm_11c19c
+ ld a, e
+ ld [$d265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld bc, $000a
+ jr .asm_11c18f
+; 11c1ab
+
+INCBIN "baserom.gbc", $11c1ab, $11f686 - $11c1ab
+
+
SECTION "bank48",ROMX,BANK[$48]
PicPointers:
@@ -25036,17 +72876,44 @@
SECTION "bank5B",ROMX,BANK[$5B]
-INCBIN "baserom.gbc", $16c000, $16d7fe - $16c000
+INCBIN "baserom.gbc", $16c000, $16d69a - $16c000
+Function16d69a: ; 16d69a
+ ld de, $52c1
+ ld hl, $9760
+ ld bc, $5b08
+ call Get2bpp
+ ret
+; 16d6a7
+
+INCBIN "baserom.gbc", $16d6a7, $16d7fe - $16d6a7
+
+
SECTION "bank5C",ROMX,BANK[$5C]
-INCBIN "baserom.gbc", $170000, $17367f - $170000
+INCBIN "baserom.gbc", $170000, $170923 - $170000
+Function170923: ; 170923
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$aa48], a
+ ld [$aa47], a
+ ld hl, $aa5d
+ ld bc, $0011
+ call ByteFill
+ call CloseSRAM
+ ret
+; 17093c
+
+INCBIN "baserom.gbc", $17093c, $17367f - $17093c
+
+
SECTION "bank5D",ROMX,BANK[$5D]
-INCBIN "baserom.gbc", $174000, $177561 - $174000
+INCLUDE "text/phone/extra3.asm"
SECTION "bank5E",ROMX,BANK[$5E]
@@ -25074,9 +72941,118 @@
SECTION "bank5F",ROMX,BANK[$5F]
-INCBIN "baserom.gbc", $17c000, $17ff6c - $17c000
+Function17c000: ; 17c000
+ call DisableLCD
+ ld hl, VTiles2
+ ld bc, $0310
+ xor a
+ call ByteFill
+ call $0e51
+ call Functione5f
+ ld hl, $4b83
+ ld de, TileMap
+ ld bc, AttrMap
+ ld a, $12
+.asm_17c01e
+ push af
+ ld a, $14
+ push hl
+.asm_17c022
+ push af
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ jr nz, .asm_17c022
+ pop hl
+ push bc
+ ld bc, $0040
+ add hl, bc
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_17c01e
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $4ff3
+ ld de, $d000
+ ld bc, $0080
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ld hl, $4983
+ ld de, $8300
+ ld bc, $0200
+ call CopyBytes
+ ld a, $1
+ ld [rVBK], a
+ ld hl, $4083
+ ld de, VTiles2
+ ld bc, $0800
+ call CopyBytes
+ ld hl, $4883
+ ld de, VTiles1
+ ld bc, Start
+ call CopyBytes
+ xor a
+ ld [rVBK], a
+ call EnableLCD
+ ld a, $41
+ ld hl, $4061
+ rst FarCall
+ ret
+; 17c083
+INCBIN "baserom.gbc", $17c083, $17f036 - $17c083
+
+Function17f036: ; 17f036
+ ld a, $6
+ call GetSRAMBank
+ inc de
+.asm_17f03c
+ call Function17f047
+ jr c, .asm_17f043
+ jr .asm_17f03c
+
+.asm_17f043
+ call CloseSRAM
+ ret
+; 17f047
+
+Function17f047: ; 17f047
+ ld a, [de]
+ inc de
+ cp $50
+ jr z, .asm_17f05f
+ cp $10
+ jr nc, .asm_17f05f
+ dec a
+ push de
+ ld e, a
+ ld d, $0
+ ld hl, $7061
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+.asm_17f05f
+ scf
+ ret
+; 17f061
+
+INCBIN "baserom.gbc", $17f061, $17ff6c - $17f061
+
+
SECTION "bank60",ROMX,BANK[$60]
; Map Scripts XIII
@@ -25378,50 +73354,23 @@
SECTION "bank6F",ROMX,BANK[$6F]
-_FruitBearingTreeText: ; 0x1bc000
- db $0, "It's a fruit-", $4f
- db "bearing tree.", $57
-; 0x1bc01c
+; Common text II
-_HeyItsFruitText: ; 0x1bc01c
- db $0, "Hey! It's", $4f
- db "@"
- text_from_ram StringBuffer3
- db $0, "!", $57
-; 0x1bc02d
+INCLUDE "text/common_2.tx"
-_ObtainedFruitText: ; 0x1bc02d
- db $0, "Obtained", $4f
- db "@"
- text_from_ram StringBuffer3
- db $0, "!", $57
-; 0x1bc03e
-_FruitPackIsFullText: ; 0x1bc03e
- db $0, "But the PACK is", $4f
- db "full…", $57
-; 0x1bc055
-
-_NothingHereText: ; 0x1bc055
- db $0, "There's nothing", $4f
- db "here…", $57
-; 0x1bc06b
-
-INCBIN "baserom.gbc", $1bc06b, $1be08d - $1bc06b
-
-
SECTION "bank70",ROMX,BANK[$70]
-; Common text II
+; Common text III
-INCLUDE "text/common_2.tx"
+INCLUDE "text/common_3.tx"
SECTION "bank71",ROMX,BANK[$71]
-; Common text III
+; Common text IV
-INCLUDE "text/common_3.tx"
+INCLUDE "text/common_4.tx"
SECTION "bank72",ROMX,BANK[$72]
@@ -25498,8 +73447,12 @@
SECTION "bank77",ROMX,BANK[$77]
-INCBIN "baserom.gbc", $1dc000, $1dc5a1 - $1dc000
+UnownFont: ; 1dc000
+INCBIN "gfx/misc/unown_font.2bpp"
+; 1dc1b0
+INCBIN "baserom.gbc", $1dc1b0, $1dc5a1 - $1dc1b0
+
Tileset26GFX: ; 0x1dc5a1
Tileset32GFX: ; 0x1dc5a1
Tileset33GFX: ; 0x1dc5a1
@@ -25519,9 +73472,94 @@
INCBIN "tilesets/26_collision.bin"
; 0x1dd6a9
-INCBIN "baserom.gbc", $1dd6a9, $1de29f - $1dd6a9
+INCBIN "baserom.gbc", $1dd6a9, $1ddf1c - $1dd6a9
+Function1ddf1c: ; 1ddf1c
+ ld hl, $5f33
+ ld de, $9310
+ call Decompress
+ ret
+; 1ddf26
+
+INCBIN "baserom.gbc", $1ddf26, $1de0d7 - $1ddf26
+
+
+Function1de0d7: ; 1de0d7
+ ld hl, $60e1
+ ld de, $a000
+ call Decompress
+ ret
+; 1de0e1
+
+INCBIN "baserom.gbc", $1de0e1, $1de247 - $1de0e1
+
+
+Function1de247: ; 1de247
+ ld a, [hBGMapAddress]
+ ld l, a
+ ld a, [$ffd7]
+ ld h, a
+ push hl
+ inc hl
+ ld a, l
+ ld [hBGMapAddress], a
+ ld a, h
+ ld [$ffd7], a
+ ld hl, $c4b3
+ ld [hl], $66
+ ld hl, $c4c7
+ ld a, $67
+ ld b, $f
+ call Function1de27f
+ ld [hl], $68
+ ld hl, $c607
+ ld [hl], $3c
+ xor a
+ ld b, $12
+ ld hl, $cdec
+ call Function1de27f
+ call Function3200
+ pop hl
+ ld a, l
+ ld [hBGMapAddress], a
+ ld a, h
+ ld [$ffd7], a
+ ret
+; 1de27f
+
+Function1de27f: ; 1de27f
+ push de
+ ld de, $0014
+.asm_1de283
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .asm_1de283
+ pop de
+ ret
+; 1de28a
+
+
+
+Function1de28a: ; 1de28a
+ ld hl, DudeAutoInput_A
+ jr .asm_1de299
+
+ ld hl, DudeAutoInput_RightA
+ jr .asm_1de299
+
+ ld hl, DudeAutoInput_DownA
+ jr .asm_1de299
+
+.asm_1de299
+ ld a, $77
+ call StartAutoInput
+ ret
+; 1de29f
+
+
+
DudeAutoInput_A: ; 1de29f
db NO_INPUT, $50
db BUTTON_A, $00
@@ -25557,9 +73595,35 @@
INCBIN "gfx/misc/pokegear.lz"
; 1de5c7
-INCBIN "baserom.gbc", $1de5c7, $1df238 - $1de5c7
+INCBIN "baserom.gbc", $1de5c7, $1de5c8 - $1de5c7
+Function1de5c8: ; 1de5c8
+ ld c, $0
+ ld hl, $0029
+ add hl, de
+ ld a, [hli]
+ cp $84
+ ret nz
+ ld a, [hli]
+ inc c
+ cp $85
+ ret z
+ inc c
+ cp $86
+ ret z
+ inc c
+ cp $88
+ ret z
+ inc c
+ cp $92
+ ret z
+ ld c, $0
+ ret
+; 1de5e6
+INCBIN "baserom.gbc", $1de5e6, $1df238 - $1de5e6
+
+
SECTION "bank78",ROMX,BANK[$78]
Tileset33Meta: ; 0x1e0000
@@ -25587,7 +73651,7 @@
SECTION "bank7B",ROMX,BANK[$7B]
-INCBIN "baserom.gbc", $1ec000, $1ecf02 - $1ec000
+INCLUDE "text/battle_tower.asm"
SECTION "bank7C",ROMX,BANK[$7C]
@@ -25597,12 +73661,278 @@
SECTION "bank7D",ROMX,BANK[$7D]
-INCBIN "baserom.gbc", $1f4000, $1f636a - $1f4000
+INCBIN "baserom.gbc", $1f4000, $1f4003 - $1f4000
+Function1f4003: ; 1f4003
+ ld a, $6
+ call GetSRAMBank
+ ld hl, $4018
+ ld de, $a000
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 1f4018
+INCBIN "baserom.gbc", $1f4018, $1f636a - $1f4018
+
+
SECTION "bank7E",ROMX,BANK[$7E]
-INCBIN "baserom.gbc", $1f8000, $1fb8a8 - $1f8000
+Function1f8000: ; 1f8000
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ xor a
+ ld hl, $d100
+ ld bc, $00e0
+ call ByteFill
+ ld a, $ff
+ ld [$d10c], a
+ ld [$d147], a
+ ld [$d182], a
+ ld de, $d100
+ ld a, [hRandomAdd]
+ ld b, a
+.asm_1f8022
+ call RNG
+ ld a, [hRandomAdd]
+ add b
+ ld b, a
+ and $1f
+ cp $15
+ jr nc, .asm_1f8022
+ ld b, a
+ ld a, $1
+ call GetSRAMBank
+ ld c, $7
+ ld hl, $be48
+.asm_1f803a
+ ld a, [hli]
+ cp b
+ jr z, .asm_1f8022
+ dec c
+ jr nz, .asm_1f803a
+ ld hl, $be48
+ ld a, [$be46]
+ ld c, a
+ ld a, b
+ ld b, 0
+ add hl, bc
+ ld [hl], a
+ call CloseSRAM
+ push af
+ ld hl, BattleTowerTrainers
+ ld bc, 11
+ call AddNTimes
+ ld bc, 11
+ call CopyBytes
+ call Function1f8081
+ pop af
+ ld hl, Function1f8000
+ ld bc, $0024
+ call AddNTimes
+ ld bc, $0024
+.asm_1f8070
+ ld a, $7c
+ call GetFarByte
+ ld [de], a
+ inc hl
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_1f8070
+ pop af
+ ld [rSVBK], a
+ ret
+; 1f8081
+
+Function1f8081: ; 1f8081
+ ld c, $3
+ push bc
+ ld a, $1
+ call GetSRAMBank
+.asm_1f8089
+ ld a, [$d800]
+ dec a
+ ld hl, BattleTowerMons
+ ld bc, BattleTowerMons2 - BattleTowerMons1
+ call AddNTimes
+
+ ld a, [hRandomAdd]
+ ld b, a
+.asm_1f8099
+ call RNG
+ ld a, [hRandomAdd]
+ add b
+ ld b, a
+ and $1f
+ cp (BattleTowerMons2 - BattleTowerMons1) / ($3b)
+ jr nc, .asm_1f8099
+
+ ld bc, $3b
+ call AddNTimes
+ ld a, [hli]
+ ld b, a
+ ld a, [hld]
+ ld c, a
+ ld a, [$d10b]
+ cp b
+ jr z, .asm_1f8089
+ ld a, [$d10c]
+ cp c
+ jr z, .asm_1f8089
+ ld a, [$d146]
+ cp b
+ jr z, .asm_1f8089
+ ld a, [$d147]
+ cp c
+ jr z, .asm_1f8089
+ ld a, [$d181]
+ cp b
+ jr z, .asm_1f8089
+ ld a, [$d182]
+ cp c
+ jr z, .asm_1f8089
+ ld a, [$be51]
+ cp b
+ jr z, .asm_1f8089
+ ld a, [$be52]
+ cp b
+ jr z, .asm_1f8089
+ ld a, [$be53]
+ cp b
+ jr z, .asm_1f8089
+ ld a, [$be54]
+ cp b
+ jr z, .asm_1f8089
+ ld a, [$be55]
+ cp b
+ jr z, .asm_1f8089
+ ld a, [$be56]
+ cp b
+ jr z, .asm_1f8089
+
+ ld bc, $3b
+ call CopyBytes
+ ld a, [$d265]
+ push af
+ push de
+ ld hl, -$3b
+ add hl, de
+ ld a, [hl]
+ ld [$d265], a
+ ld bc, $0030
+ add hl, bc
+ push hl
+ call GetPokemonName
+ ld h, d
+ ld l, e
+ pop de
+ ld bc, $000b
+ call CopyBytes
+ pop de
+ pop af
+ ld [$d265], a
+ pop bc
+ dec c
+ jp nz, $4083
+ ld a, [$be51]
+ ld [$be54], a
+ ld a, [$be52]
+ ld [$be55], a
+ ld a, [$be53]
+ ld [$be56], a
+ ld a, [$d10b]
+ ld [$be51], a
+ ld a, [$d146]
+ ld [$be52], a
+ ld a, [$d181]
+ ld [$be53], a
+ call CloseSRAM
+ ret
+; 1f814e
+
+BattleTowerTrainers: ; 1f814e
+ 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
+ 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
+; 1f8450
+
+BattleTowerMons: ; 1f8450
+ INCLUDE "stats/battle_tower.asm"
+; 1fb4b6
+
+INCBIN "baserom.gbc", $1fb4b6, $1fb8a8 - $1fb4b6
SECTION "bank7F",ROMX,BANK[$7F]
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -64,6 +64,10 @@
yesorno
iffalse UnknownScript_0x194079
loadmovesprites
+ ; fallthrough
+; 0x194053
+
+WateredWeirdTreeScript: ; 0x194053
loadfont
2writetext UnknownText_0x194290
closetext
--- a/preprocessor.py
+++ b/preprocessor.py
@@ -192,6 +192,7 @@
"ゅ": 0xE1,
"ょ": 0xE2,
"ー": 0xE3,
+"ァ": 0xE9,
"@": 0x50,
"#": 0x54,
--- /dev/null
+++ b/stats/battle_tower.asm
@@ -1,0 +1,5711 @@
+
+
+BattleTowerMons1:
+
+ db JOLTEON
+ db MIRACLEBERRY
+ db THUNDERBOLT, HYPER_BEAM, SHADOW_BALL, ROAR
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 40000
+ bigdw 40000
+ bigdw 35000
+ bigdw 40000
+ db $dd, $bd ; DVs
+ db 15, 5, 15, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 41 ; HP
+ bigdw 41 ; Max HP
+ bigdw 25 ; Atk
+ bigdw 24 ; Def
+ bigdw 37 ; Spd
+ bigdw 34 ; SAtk
+ bigdw 31 ; SDef
+ db "SANDA-SU@@@"
+
+
+ db ESPEON
+ db LEFTOVERS
+ db MUD_SLAP, PSYCHIC_M, PSYCH_UP, TOXIC
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 50000
+ bigdw 35000
+ bigdw 40000
+ bigdw 40000
+ db $ed, $fb ; DVs
+ db 10, 10, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 39 ; HP
+ bigdw 39 ; Max HP
+ bigdw 26 ; Atk
+ bigdw 24 ; Def
+ bigdw 35 ; Spd
+ bigdw 38 ; SAtk
+ bigdw 31 ; SDef
+ db "E-HUi@@@@@@"
+
+
+ db UMBREON
+ db GOLD_BERRY
+ db SHADOW_BALL, IRON_TAIL, PSYCH_UP, TOXIC
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 40000
+ bigdw 45000
+ bigdw 50000
+ bigdw 40000
+ db $db, $ef ; DVs
+ db 15, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 46 ; HP
+ bigdw 46 ; Max HP
+ bigdw 25 ; Atk
+ bigdw 34 ; Def
+ bigdw 26 ; Spd
+ bigdw 25 ; SAtk
+ bigdw 39 ; SDef
+ db "BURAtuKI-@@"
+
+
+ db WOBBUFFET
+ db FOCUS_BAND
+ db COUNTER, MIRROR_COAT, SAFEGUARD, DESTINY_BOND
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $7f, $d7 ; DVs
+ db 20, 20, 25, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 66 ; HP
+ bigdw 66 ; Max HP
+ bigdw 18 ; Atk
+ bigdw 25 ; Def
+ bigdw 19 ; Spd
+ bigdw 18 ; SAtk
+ bigdw 23 ; SDef
+ db "SO-NANSU@@@"
+
+
+ db KANGASKHAN
+ db MIRACLEBERRY
+ db REVERSAL, HYPER_BEAM, EARTHQUAKE, ATTRACT
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 30000
+ bigdw 40000
+ bigdw 30000
+ bigdw 30000
+ db $ef, $cf ; DVs
+ db 15, 5, 10, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 47 ; HP
+ bigdw 47 ; Max HP
+ bigdw 31 ; Atk
+ bigdw 29 ; Def
+ bigdw 29 ; Spd
+ bigdw 20 ; SAtk
+ bigdw 28 ; SDef
+ db "GARU-RA@@@@"
+
+
+ db CORSOLA
+ db SCOPE_LENS
+ db SURF, PSYCHIC_M, RECOVER, ANCIENTPOWER
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 30000
+ bigdw 33300
+ bigdw 30000
+ bigdw 30000
+ db $fe, $fd ; DVs
+ db 15, 10, 20, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 38 ; HP
+ bigdw 38 ; Max HP
+ bigdw 23 ; Atk
+ bigdw 29 ; Def
+ bigdw 19 ; Spd
+ bigdw 24 ; SAtk
+ bigdw 28 ; SDef
+ db "SANI-GO@@@@"
+
+
+ db MILTANK
+ db GOLD_BERRY
+ db BLIZZARD, EARTHQUAKE, HYPER_BEAM, TOXIC
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 35000
+ db $bb, $df ; DVs
+ db 5, 10, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 46 ; HP
+ bigdw 46 ; Max HP
+ bigdw 27 ; Atk
+ bigdw 32 ; Def
+ bigdw 31 ; Spd
+ bigdw 20 ; SAtk
+ bigdw 26 ; SDef
+ db "MIRUTANKU@@"
+
+
+ db AERODACTYL
+ db LEFTOVERS
+ db HYPER_BEAM, SUPERSONIC, EARTHQUAKE, BITE
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $db, $fb ; DVs
+ db 5, 20, 10, 25 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 43 ; HP
+ bigdw 43 ; Max HP
+ bigdw 32 ; Atk
+ bigdw 24 ; Def
+ bigdw 38 ; Spd
+ bigdw 23 ; SAtk
+ bigdw 26 ; SDef
+ db "PUTERA@@@@@"
+
+
+ db LAPRAS
+ db MIRACLEBERRY
+ db BLIZZARD, SURF, THUNDERBOLT, PSYCHIC_M
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $fd, $eb ; DVs
+ db 5, 15, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 52 ; HP
+ bigdw 52 ; Max HP
+ bigdw 29 ; Atk
+ bigdw 27 ; Def
+ bigdw 24 ; Spd
+ bigdw 28 ; SAtk
+ bigdw 30 ; SDef
+ db "RAPURASU@@@"
+
+
+ db SNEASEL
+ db GOLD_BERRY
+ db SLASH, FAINT_ATTACK, SURF, BLIZZARD
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 35000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $fb, $bf ; DVs
+ db 20, 20, 15, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 38 ; HP
+ bigdw 38 ; Max HP
+ bigdw 31 ; Atk
+ bigdw 22 ; Def
+ bigdw 34 ; Spd
+ bigdw 19 ; SAtk
+ bigdw 27 ; SDef
+ db "NIyu-RA@@@@"
+
+
+ db PORYGON2
+ db BRIGHTPOWDER
+ db PSYCHIC_M, BLIZZARD, HYPER_BEAM, TRI_ATTACK
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 40000
+ bigdw 30000
+ bigdw 30000
+ db $fb, $de ; DVs
+ db 10, 5, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 44 ; HP
+ bigdw 44 ; Max HP
+ bigdw 28 ; Atk
+ bigdw 30 ; Def
+ bigdw 23 ; Spd
+ bigdw 33 ; SAtk
+ bigdw 31 ; SDef
+ db "PORIGON2@@@"
+
+
+ db MISDREAVUS
+ db FOCUS_BAND
+ db PERISH_SONG, MEAN_LOOK, PAIN_SPLIT, SHADOW_BALL
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $ef, $df ; DVs
+ db 5, 5, 20, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 37 ; HP
+ bigdw 37 ; Max HP
+ bigdw 24 ; Atk
+ bigdw 24 ; Def
+ bigdw 28 ; Spd
+ bigdw 29 ; SAtk
+ bigdw 29 ; SDef
+ db "MUUMA@@@@@@"
+
+
+ db HOUNDOUR
+ db GOLD_BERRY
+ db FAINT_ATTACK, SOLARBEAM, ROAR, SUNNY_DAY
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 33000
+ bigdw 30000
+ db $fd, $fe ; DVs
+ db 20, 10, 20, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 36 ; HP
+ bigdw 36 ; Max HP
+ bigdw 24 ; Atk
+ bigdw 17 ; Def
+ bigdw 25 ; Spd
+ bigdw 28 ; SAtk
+ bigdw 22 ; SDef
+ db "DERUBIRU@@@"
+
+
+ db GIRAFARIG
+ db KINGS_ROCK
+ db PSYBEAM, MUD_SLAP, SHADOW_BALL, AGILITY
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $ed, $fd ; DVs
+ db 20, 10, 15, 30 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 39 ; HP
+ bigdw 39 ; Max HP
+ bigdw 28 ; Atk
+ bigdw 24 ; Def
+ bigdw 29 ; Spd
+ bigdw 29 ; SAtk
+ bigdw 24 ; SDef
+ db "KIRINRIKI@@"
+
+
+ db BLISSEY
+ db QUICK_CLAW
+ db HEADBUTT, SOLARBEAM, ROLLOUT, STRENGTH
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 32000
+ bigdw 40000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $df, $ce ; DVs
+ db 15, 10, 20, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 77 ; HP
+ bigdw 77 ; Max HP
+ bigdw 14 ; Atk
+ bigdw 14 ; Def
+ bigdw 22 ; Spd
+ bigdw 27 ; SAtk
+ bigdw 39 ; SDef
+ db "HAPINASU@@@"
+
+
+ db SNORLAX
+ db MIRACLEBERRY
+ db HEADBUTT, PROTECT, SNORE, SURF
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $ef, $f7 ; DVs
+ db 15, 10, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 57 ; HP
+ bigdw 57 ; Max HP
+ bigdw 34 ; Atk
+ bigdw 25 ; Def
+ bigdw 18 ; Spd
+ bigdw 23 ; SAtk
+ bigdw 32 ; SDef
+ db "KABIGON@@@@"
+
+
+ db EXEGGUTOR
+ db KINGS_ROCK
+ db TOXIC, GIGA_DRAIN, THIEF, CONFUSION
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $fe, $fe ; DVs
+ db 10, 5, 10, 25 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 45 ; HP
+ bigdw 45 ; Max HP
+ bigdw 31 ; Atk
+ bigdw 29 ; Def
+ bigdw 23 ; Spd
+ bigdw 37 ; SAtk
+ bigdw 25 ; SDef
+ db "NAtuSI-@@@@"
+
+
+ db HERACROSS
+ db GOLD_BERRY
+ db REVERSAL, ENDURE, COUNTER, ROCK_SMASH
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $f7, $f7 ; DVs
+ db 15, 10, 20, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 43 ; HP
+ bigdw 43 ; Max HP
+ bigdw 37 ; Atk
+ bigdw 25 ; Def
+ bigdw 29 ; Spd
+ bigdw 18 ; SAtk
+ bigdw 29 ; SDef
+ db "HERAKUROSU@"
+
+
+ db UNOWN
+ db BERRY
+ db HIDDEN_POWER, NONE, NONE, NONE
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $ff, $ff ; DVs
+ db 15, 0, 0, 0 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 36 ; HP
+ bigdw 36 ; Max HP
+ bigdw 26 ; Atk
+ bigdw 21 ; Def
+ bigdw 21 ; Spd
+ bigdw 26 ; SAtk
+ bigdw 21 ; SDef
+ db "ANNO-N@@@@@"
+
+
+ db TAUROS
+ db KINGS_ROCK
+ db HEADBUTT, SWAGGER, TAIL_WHIP, ICY_WIND
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $65, $57 ; DVs
+ db 15, 15, 30, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 40 ; HP
+ bigdw 40 ; Max HP
+ bigdw 30 ; Atk
+ bigdw 29 ; Def
+ bigdw 32 ; Spd
+ bigdw 18 ; SAtk
+ bigdw 24 ; SDef
+ db "KENTAROSU@@"
+
+
+ db MR__MIME
+ db QUICK_CLAW
+ db TOXIC, PSYCH_UP, FIRE_PUNCH, HEADBUTT
+ dw 0 ; OT ID
+ dt 1000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $73, $67 ; DVs
+ db 10, 10, 15, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 10 ; Level
+ db 0, 0 ; Status
+ bigdw 34 ; HP
+ bigdw 34 ; Max HP
+ bigdw 19 ; Atk
+ bigdw 22 ; Def
+ bigdw 28 ; Spd
+ bigdw 30 ; SAtk
+ bigdw 34 ; SDef
+ db "BARIYA-DO@@"
+
+
+
+
+BattleTowerMons2:
+
+ db UMBREON
+ db LEFTOVERS
+ db PROTECT, TOXIC, MUD_SLAP, ATTRACT
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $cf, $bc ; DVs
+ db 10, 10, 10, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 81 ; HP
+ bigdw 81 ; Max HP
+ bigdw 46 ; Atk
+ bigdw 66 ; Def
+ bigdw 46 ; Spd
+ bigdw 44 ; SAtk
+ bigdw 72 ; SDef
+ db "BURAtuKI-@@"
+
+
+ db STARMIE
+ db GOLD_BERRY
+ db RECOVER, PSYCHIC_M, SURF, PSYCH_UP
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $db, $db ; DVs
+ db 20, 10, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 71 ; HP
+ bigdw 71 ; Max HP
+ bigdw 51 ; Atk
+ bigdw 54 ; Def
+ bigdw 67 ; Spd
+ bigdw 60 ; SAtk
+ bigdw 54 ; SDef
+ db "SUTA-MI-@@@"
+
+
+ db GYARADOS
+ db MIRACLEBERRY
+ db HYPER_BEAM, DRAGON_RAGE, THUNDERBOLT, FIRE_BLAST
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fa, $fd ; DVs
+ db 5, 10, 15, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 83 ; HP
+ bigdw 83 ; Max HP
+ bigdw 72 ; Atk
+ bigdw 51 ; Def
+ bigdw 54 ; Spd
+ bigdw 45 ; SAtk
+ bigdw 61 ; SDef
+ db "GIyaRADOSU@"
+
+
+ db STEELIX
+ db GOLD_BERRY
+ db ROAR, IRON_TAIL, SWAGGER, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 30000
+ bigdw 50000
+ db $ff, $ff ; DVs
+ db 20, 15, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 77 ; HP
+ bigdw 77 ; Max HP
+ bigdw 55 ; Atk
+ bigdw 102 ; Def
+ bigdw 31 ; Spd
+ bigdw 44 ; SAtk
+ bigdw 48 ; SDef
+ db "HAGANE-RU@@"
+
+
+ db ALAKAZAM
+ db BERRY_JUICE
+ db PSYCHIC_M, PSYCH_UP, TOXIC, THUNDERPUNCH
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 30000
+ bigdw 50000
+ bigdw 40000
+ db $fd, $ef ; DVs
+ db 10, 10, 10, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 68 ; HP
+ bigdw 68 ; Max HP
+ bigdw 42 ; Atk
+ bigdw 36 ; Def
+ bigdw 69 ; Spd
+ bigdw 75 ; SAtk
+ bigdw 55 ; SDef
+ db "HU-DEiN@@@@"
+
+
+ db ARCANINE
+ db BRIGHTPOWDER
+ db FLAMETHROWER, ROAR, HYPER_BEAM, IRON_TAIL
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 35000
+ bigdw 45000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $db, $fb ; DVs
+ db 15, 20, 5, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 81 ; HP
+ bigdw 81 ; Max HP
+ bigdw 64 ; Atk
+ bigdw 52 ; Def
+ bigdw 60 ; Spd
+ bigdw 60 ; SAtk
+ bigdw 52 ; SDef
+ db "UINDEi@@@@@"
+
+
+ db HERACROSS
+ db FOCUS_BAND
+ db ENDURE, REVERSAL, MEGAHORN, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 30000
+ bigdw 45000
+ bigdw 30000
+ bigdw 45000
+ db $df, $de ; DVs
+ db 10, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 78 ; HP
+ bigdw 78 ; Max HP
+ bigdw 68 ; Atk
+ bigdw 51 ; Def
+ bigdw 52 ; Spd
+ bigdw 37 ; SAtk
+ bigdw 59 ; SDef
+ db "HERAKUROSU@"
+
+
+ db EXEGGUTOR
+ db LEFTOVERS
+ db HYPER_BEAM, PSYCHIC_M, TOXIC, DREAM_EATER
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 45000
+ db $fd, $eb ; DVs
+ db 5, 10, 10, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 83 ; HP
+ bigdw 83 ; Max HP
+ bigdw 60 ; Atk
+ bigdw 55 ; Def
+ bigdw 43 ; Spd
+ bigdw 70 ; SAtk
+ bigdw 46 ; SDef
+ db "NAtuSI-@@@@"
+
+
+ db AERODACTYL
+ db GOLD_BERRY
+ db REST, HYPER_BEAM, EARTHQUAKE, DRAGON_RAGE
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 45000
+ db $fb, $bb ; DVs
+ db 10, 5, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 78 ; HP
+ bigdw 78 ; Max HP
+ bigdw 64 ; Atk
+ bigdw 45 ; Def
+ bigdw 72 ; Spd
+ bigdw 44 ; SAtk
+ bigdw 50 ; SDef
+ db "PUTERA@@@@@"
+
+
+ db BLISSEY
+ db BRIGHTPOWDER
+ db PSYCHIC_M, SUBMISSION, SOFTBOILED, COUNTER
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 30000
+ bigdw 30000
+ bigdw 50000
+ db $bd, $fe ; DVs
+ db 10, 25, 10, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 148 ; HP
+ bigdw 148 ; Max HP
+ bigdw 24 ; Atk
+ bigdw 22 ; Def
+ bigdw 41 ; Spd
+ bigdw 51 ; SAtk
+ bigdw 75 ; SDef
+ db "HAPINASU@@@"
+
+
+ db LAPRAS
+ db GOLD_BERRY
+ db PSYCHIC_M, THUNDERBOLT, BLIZZARD, CONFUSE_RAY
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 30000
+ bigdw 40000
+ bigdw 55000
+ bigdw 30000
+ db $fe, $d7 ; DVs
+ db 10, 15, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 98 ; HP
+ bigdw 98 ; Max HP
+ bigdw 53 ; Atk
+ bigdw 52 ; Def
+ bigdw 45 ; Spd
+ bigdw 50 ; SAtk
+ bigdw 54 ; SDef
+ db "RAPURASU@@@"
+
+
+ db PIKACHU
+ db LIGHT_BALL
+ db THUNDERBOLT, THUNDER_WAVE, STRENGTH, TOXIC
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ db $fc, $fe ; DVs
+ db 15, 20, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 58 ; HP
+ bigdw 58 ; Max HP
+ bigdw 44 ; Atk
+ bigdw 32 ; Def
+ bigdw 58 ; Spd
+ bigdw 41 ; SAtk
+ bigdw 37 ; SDef
+ db "PIKATIyuU@@"
+
+
+ db SCIZOR
+ db FOCUS_BAND
+ db STEEL_WING, SLASH, TOXIC, SANDSTORM
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 45000
+ bigdw 40000
+ bigdw 45000
+ bigdw 50000
+ db $fd, $fe ; DVs
+ db 25, 20, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 73 ; HP
+ bigdw 73 ; Max HP
+ bigdw 73 ; Atk
+ bigdw 60 ; Def
+ bigdw 47 ; Spd
+ bigdw 43 ; SAtk
+ bigdw 53 ; SDef
+ db "HAtuSAMU@@@"
+
+
+ db HITMONCHAN
+ db GOLD_BERRY
+ db THUNDERPUNCH, ICE_PUNCH, FIRE_PUNCH, MEGA_PUNCH
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 35000
+ bigdw 50000
+ bigdw 30000
+ db $fb, $fd ; DVs
+ db 15, 15, 15, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 67 ; HP
+ bigdw 67 ; Max HP
+ bigdw 63 ; Atk
+ bigdw 50 ; Def
+ bigdw 52 ; Spd
+ bigdw 32 ; SAtk
+ bigdw 62 ; SDef
+ db "EBIWARA-@@@"
+
+
+ db TAUROS
+ db BRIGHTPOWDER
+ db THUNDERBOLT, EARTHQUAKE, HYPER_BEAM, BLIZZARD
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 30000
+ bigdw 30000
+ db $fb, $ef ; DVs
+ db 15, 10, 5, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 76 ; HP
+ bigdw 76 ; Max HP
+ bigdw 61 ; Atk
+ bigdw 58 ; Def
+ bigdw 63 ; Spd
+ bigdw 35 ; SAtk
+ bigdw 47 ; SDef
+ db "KENTAROSU@@"
+
+
+ db AZUMARILL
+ db MYSTIC_WATER
+ db SURF, BLIZZARD, ATTRACT, RAIN_DANCE
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ db $ed, $f7 ; DVs
+ db 15, 5, 15, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 82 ; HP
+ bigdw 82 ; Max HP
+ bigdw 40 ; Atk
+ bigdw 52 ; Def
+ bigdw 41 ; Spd
+ bigdw 37 ; SAtk
+ bigdw 49 ; SDef
+ db "MARIRURI@@@"
+
+
+ db MILTANK
+ db KINGS_ROCK
+ db EARTHQUAKE, THUNDER, ATTRACT, SURF
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ db $df, $fe ; DVs
+ db 10, 10, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 83 ; HP
+ bigdw 83 ; Max HP
+ bigdw 52 ; Atk
+ bigdw 63 ; Def
+ bigdw 61 ; Spd
+ bigdw 36 ; SAtk
+ bigdw 48 ; SDef
+ db "MIRUTANKU@@"
+
+
+ db WIGGLYTUFF
+ db GOLD_BERRY
+ db HYPER_BEAM, BLIZZARD, FIRE_BLAST, ATTRACT
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ db $c7, $fe ; DVs
+ db 5, 5, 5, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 98 ; HP
+ bigdw 98 ; Max HP
+ bigdw 47 ; Atk
+ bigdw 35 ; Def
+ bigdw 39 ; Spd
+ bigdw 50 ; SAtk
+ bigdw 40 ; SDef
+ db "PUKURIN@@@@"
+
+
+ db WIGGLYTUFF
+ db PINK_BOW
+ db PSYCHIC_M, SWAGGER, PSYCH_UP, HEADBUTT
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $c7, $77 ; DVs
+ db 10, 15, 10, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 97 ; HP
+ bigdw 97 ; Max HP
+ bigdw 46 ; Atk
+ bigdw 34 ; Def
+ bigdw 34 ; Spd
+ bigdw 46 ; SAtk
+ bigdw 36 ; SDef
+ db "PUKURIN@@@@"
+
+
+ db NIDOKING
+ db BERRY
+ db BLIZZARD, EARTHQUAKE, SURF, THUNDERPUNCH
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $56, $46 ; DVs
+ db 5, 10, 15, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 74 ; HP
+ bigdw 74 ; Max HP
+ bigdw 52 ; Atk
+ bigdw 46 ; Def
+ bigdw 49 ; Spd
+ bigdw 50 ; SAtk
+ bigdw 46 ; SDef
+ db "NIDOKINGU@@"
+
+
+ db QUAGSIRE
+ db QUICK_CLAW
+ db AMNESIA, EARTHQUAKE, SURF, RAIN_DANCE
+ dw 0 ; OT ID
+ dt 8000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $55, $47 ; DVs
+ db 20, 10, 15, 5 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 20 ; Level
+ db 0, 0 ; Status
+ bigdw 81 ; HP
+ bigdw 81 ; Max HP
+ bigdw 49 ; Atk
+ bigdw 49 ; Def
+ bigdw 29 ; Spd
+ bigdw 42 ; SAtk
+ bigdw 42 ; SDef
+ db "NUO-@@@@@@@"
+
+
+
+
+BattleTowerMons3:
+
+ db JOLTEON
+ db MIRACLEBERRY
+ db THUNDERBOLT, THUNDER_WAVE, ROAR, MUD_SLAP
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 55000
+ db $db, $ed ; DVs
+ db 15, 20, 20, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 103 ; HP
+ bigdw 103 ; Max HP
+ bigdw 68 ; Atk
+ bigdw 64 ; Def
+ bigdw 107 ; Spd
+ bigdw 96 ; SAtk
+ bigdw 87 ; SDef
+ db "SANDA-SU@@@"
+
+
+ db POLIWRATH
+ db BRIGHTPOWDER
+ db DOUBLE_TEAM, SURF, FISSURE, SUBMISSION
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 55000
+ bigdw 55000
+ bigdw 55000
+ bigdw 50000
+ db $dd, $fb ; DVs
+ db 15, 15, 5, 25 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 119 ; HP
+ bigdw 119 ; Max HP
+ bigdw 81 ; Atk
+ bigdw 87 ; Def
+ bigdw 73 ; Spd
+ bigdw 70 ; SAtk
+ bigdw 82 ; SDef
+ db "NIyoROBON@@"
+
+
+ db STARMIE
+ db LEFTOVERS
+ db THUNDER_WAVE, PSYCHIC_M, RECOVER, SURF
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $ff, $ff ; DVs
+ db 20, 10, 20, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 101 ; HP
+ bigdw 101 ; Max HP
+ bigdw 75 ; Atk
+ bigdw 81 ; Def
+ bigdw 99 ; Spd
+ bigdw 90 ; SAtk
+ bigdw 81 ; SDef
+ db "SUTA-MI-@@@"
+
+
+ db JYNX
+ db GOLD_BERRY
+ db BLIZZARD, LOVELY_KISS, DREAM_EATER, ATTRACT
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 30000
+ bigdw 50000
+ db $fb, $ee ; DVs
+ db 5, 10, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 102 ; HP
+ bigdw 102 ; Max HP
+ bigdw 60 ; Atk
+ bigdw 49 ; Def
+ bigdw 83 ; Spd
+ bigdw 98 ; SAtk
+ bigdw 86 ; SDef
+ db "RU-ZIyuRA@@"
+
+
+ db DUGTRIO
+ db KINGS_ROCK
+ db EARTHQUAKE, SLUDGE_BOMB, SLASH, MUD_SLAP
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 30000
+ bigdw 50000
+ bigdw 50000
+ db $ef, $ff ; DVs
+ db 10, 10, 20, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 81 ; HP
+ bigdw 81 ; Max HP
+ bigdw 77 ; Atk
+ bigdw 56 ; Def
+ bigdw 102 ; Spd
+ bigdw 60 ; SAtk
+ bigdw 72 ; SDef
+ db "DAGUTORIO@@"
+
+
+ db BELLOSSOM
+ db BRIGHTPOWDER
+ db GIGA_DRAIN, SUNNY_DAY, SOLARBEAM, DOUBLE_TEAM
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 45000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $df, $db ; DVs
+ db 5, 5, 10, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 109 ; HP
+ bigdw 109 ; Max HP
+ bigdw 76 ; Atk
+ bigdw 81 ; Def
+ bigdw 60 ; Spd
+ bigdw 82 ; SAtk
+ bigdw 88 ; SDef
+ db "KIREIHANA@@"
+
+
+ db BLISSEY
+ db LEFTOVERS
+ db TOXIC, REFLECT, SOFTBOILED, PROTECT
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 30000
+ bigdw 45000
+ bigdw 30000
+ bigdw 45000
+ db $fb, $ed ; DVs
+ db 10, 20, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 217 ; HP
+ bigdw 217 ; Max HP
+ bigdw 32 ; Atk
+ bigdw 33 ; Def
+ bigdw 59 ; Spd
+ bigdw 73 ; SAtk
+ bigdw 109 ; SDef
+ db "HAPINASU@@@"
+
+
+ db HOUNDOOM
+ db CHARCOAL
+ db FLAMETHROWER, CRUNCH, SHADOW_BALL, DREAM_EATER
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 45000
+ db $fd, $ed ; DVs
+ db 15, 15, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 108 ; HP
+ bigdw 108 ; Max HP
+ bigdw 84 ; Atk
+ bigdw 59 ; Def
+ bigdw 86 ; Spd
+ bigdw 94 ; SAtk
+ bigdw 76 ; SDef
+ db "HERUGA-@@@@"
+
+
+ db MACHAMP
+ db MIRACLEBERRY
+ db CROSS_CHOP, ICE_PUNCH, EARTHQUAKE, FIRE_BLAST
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 45000
+ db $fd, $be ; DVs
+ db 5, 15, 10, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 118 ; HP
+ bigdw 118 ; Max HP
+ bigdw 108 ; Atk
+ bigdw 75 ; Def
+ bigdw 61 ; Spd
+ bigdw 68 ; SAtk
+ bigdw 80 ; SDef
+ db "KAIRIKI-@@@"
+
+
+ db CROBAT
+ db GOLD_BERRY
+ db ATTRACT, CONFUSE_RAY, TOXIC, WING_ATTACK
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 30000
+ bigdw 30000
+ bigdw 50000
+ db $ef, $dc ; DVs
+ db 15, 10, 10, 35 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 111 ; HP
+ bigdw 111 ; Max HP
+ bigdw 83 ; Atk
+ bigdw 74 ; Def
+ bigdw 103 ; Spd
+ bigdw 70 ; SAtk
+ bigdw 76 ; SDef
+ db "KUROBAtuTO@"
+
+
+ db PORYGON2
+ db BRIGHTPOWDER
+ db PSYCHIC_M, RECOVER, HYPER_BEAM, TRI_ATTACK
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 30000
+ bigdw 40000
+ bigdw 55000
+ bigdw 30000
+ db $df, $db ; DVs
+ db 10, 20, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 117 ; HP
+ bigdw 117 ; Max HP
+ bigdw 73 ; Atk
+ bigdw 83 ; Def
+ bigdw 66 ; Spd
+ bigdw 87 ; SAtk
+ bigdw 81 ; SDef
+ db "PORIGON2@@@"
+
+
+ db MAROWAK
+ db THICK_CLUB
+ db EARTHQUAKE, RETURN, HYPER_BEAM, BONEMERANG
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 30000
+ db $dd, $eb ; DVs
+ db 10, 20, 5, 10 ; PP
+ db 255 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 99 ; HP
+ bigdw 99 ; Max HP
+ bigdw 77 ; Atk
+ bigdw 94 ; Def
+ bigdw 56 ; Spd
+ bigdw 54 ; SAtk
+ bigdw 72 ; SDef
+ db "GARAGARA@@@"
+
+
+ db ELECTRODE
+ db BRIGHTPOWDER
+ db LIGHT_SCREEN, THUNDERBOLT, PROTECT, THUNDER
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 45000
+ bigdw 40000
+ bigdw 45000
+ bigdw 50000
+ db $bd, $ef ; DVs
+ db 30, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 98 ; HP
+ bigdw 98 ; Max HP
+ bigdw 57 ; Atk
+ bigdw 69 ; Def
+ bigdw 113 ; Spd
+ bigdw 78 ; SAtk
+ bigdw 78 ; SDef
+ db "MARUMAIN@@@"
+
+
+ db LAPRAS
+ db LEFTOVERS
+ db RAIN_DANCE, WATER_GUN, ICY_WIND, STRENGTH
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 35000
+ bigdw 50000
+ bigdw 30000
+ db $fd, $eb ; DVs
+ db 5, 25, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 142 ; HP
+ bigdw 142 ; Max HP
+ bigdw 80 ; Atk
+ bigdw 74 ; Def
+ bigdw 65 ; Spd
+ bigdw 75 ; SAtk
+ bigdw 81 ; SDef
+ db "RAPURASU@@@"
+
+
+ db LANTURN
+ db GOLD_BERRY
+ db RAIN_DANCE, THUNDER, SURF, FLAIL
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 30000
+ bigdw 30000
+ db $dd, $eb ; DVs
+ db 5, 10, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 139 ; HP
+ bigdw 139 ; Max HP
+ bigdw 62 ; Atk
+ bigdw 64 ; Def
+ bigdw 66 ; Spd
+ bigdw 70 ; SAtk
+ bigdw 70 ; SDef
+ db "RANTA-N@@@@"
+
+
+ db ESPEON
+ db MIRACLEBERRY
+ db CONFUSION, SWIFT, TOXIC, PSYCH_UP
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $ef, $f7 ; DVs
+ db 25, 20, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 99 ; HP
+ bigdw 99 ; Max HP
+ bigdw 68 ; Atk
+ bigdw 66 ; Def
+ bigdw 96 ; Spd
+ bigdw 103 ; SAtk
+ bigdw 82 ; SDef
+ db "E-HUi@@@@@@"
+
+
+ db TENTACRUEL
+ db KINGS_ROCK
+ db WRAP, TOXIC, SLUDGE_BOMB, BUBBLEBEAM
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 47000
+ bigdw 45000
+ db $fe, $fe ; DVs
+ db 20, 10, 10, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 110 ; HP
+ bigdw 110 ; Max HP
+ bigdw 71 ; Atk
+ bigdw 68 ; Def
+ bigdw 90 ; Spd
+ bigdw 77 ; SAtk
+ bigdw 101 ; SDef
+ db "DOKUKURAGE@"
+
+
+ db GENGAR
+ db GOLD_BERRY
+ db THIEF, LICK, NIGHT_SHADE, GIGA_DRAIN
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $f7, $f7 ; DVs
+ db 10, 30, 15, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 101 ; HP
+ bigdw 101 ; Max HP
+ bigdw 68 ; Atk
+ bigdw 61 ; Def
+ bigdw 96 ; Spd
+ bigdw 103 ; SAtk
+ bigdw 70 ; SDef
+ db "GENGA-@@@@@"
+
+
+ db URSARING
+ db GOLD_BERRY
+ db HEADBUTT, PROTECT, ROAR, LEER
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $77, $45 ; DVs
+ db 15, 10, 20, 30 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 114 ; HP
+ bigdw 114 ; Max HP
+ bigdw 100 ; Atk
+ bigdw 67 ; Def
+ bigdw 53 ; Spd
+ bigdw 65 ; SAtk
+ bigdw 65 ; SDef
+ db "RINGUMA@@@@"
+
+
+ db FEAROW
+ db BRIGHTPOWDER
+ db MIRROR_MOVE, PURSUIT, PECK, SWIFT
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $67, $77 ; DVs
+ db 20, 20, 35, 20 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 96 ; HP
+ bigdw 96 ; Max HP
+ bigdw 75 ; Atk
+ bigdw 61 ; Def
+ bigdw 82 ; Spd
+ bigdw 58 ; SAtk
+ bigdw 58 ; SDef
+ db "ONIDORIRU@@"
+
+
+ db PRIMEAPE
+ db MIRACLEBERRY
+ db LOW_KICK, KARATE_CHOP, REVERSAL, FOCUS_ENERGY
+ dw 0 ; OT ID
+ dt 27000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $77, $67 ; DVs
+ db 20, 25, 15, 30 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 30 ; Level
+ db 0, 0 ; Status
+ bigdw 99 ; HP
+ bigdw 99 ; Max HP
+ bigdw 85 ; Atk
+ bigdw 58 ; Def
+ bigdw 78 ; Spd
+ bigdw 58 ; SAtk
+ bigdw 64 ; SDef
+ db "OKORIZARU@@"
+
+
+
+
+BattleTowerMons4:
+
+ db TAUROS
+ db GOLD_BERRY
+ db RETURN, HYPER_BEAM, EARTHQUAKE, IRON_TAIL
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fd, $fe ; DVs
+ db 20, 5, 10, 15 ; PP
+ db 255 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 143 ; HP
+ bigdw 143 ; Max HP
+ bigdw 119 ; Atk
+ bigdw 113 ; Def
+ bigdw 127 ; Spd
+ bigdw 70 ; SAtk
+ bigdw 94 ; SDef
+ db "KENTAROSU@@"
+
+
+ db KINGDRA
+ db LEFTOVERS
+ db SURF, DRAGONBREATH, HYPER_BEAM, BLIZZARD
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fd, $ef ; DVs
+ db 15, 20, 5, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 142 ; HP
+ bigdw 142 ; Max HP
+ bigdw 115 ; Atk
+ bigdw 113 ; Def
+ bigdw 106 ; Spd
+ bigdw 115 ; SAtk
+ bigdw 115 ; SDef
+ db "KINGUDORA@@"
+
+
+ db SNORLAX
+ db QUICK_CLAW
+ db ATTRACT, BODY_SLAM, PSYCH_UP, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $ed, $dd ; DVs
+ db 15, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 205 ; HP
+ bigdw 205 ; Max HP
+ bigdw 126 ; Atk
+ bigdw 89 ; Def
+ bigdw 61 ; Spd
+ bigdw 89 ; SAtk
+ bigdw 125 ; SDef
+ db "KABIGON@@@@"
+
+
+ db LAPRAS
+ db LEFTOVERS
+ db THUNDERBOLT, ICE_BEAM, CONFUSE_RAY, SURF
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fd, $eb ; DVs
+ db 15, 10, 10, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 186 ; HP
+ bigdw 186 ; Max HP
+ bigdw 107 ; Atk
+ bigdw 101 ; Def
+ bigdw 86 ; Spd
+ bigdw 103 ; SAtk
+ bigdw 111 ; SDef
+ db "RAPURASU@@@"
+
+
+ db STEELIX
+ db GOLD_BERRY
+ db SANDSTORM, IRON_TAIL, EARTHQUAKE, TOXIC
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $ef, $db ; DVs
+ db 10, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 137 ; HP
+ bigdw 137 ; Max HP
+ bigdw 106 ; Atk
+ bigdw 199 ; Def
+ bigdw 61 ; Spd
+ bigdw 79 ; SAtk
+ bigdw 87 ; SDef
+ db "HAGANE-RU@@"
+
+
+ db ALAKAZAM
+ db KINGS_ROCK
+ db PSYCHIC_M, THUNDERPUNCH, RECOVER, FIRE_PUNCH
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $dd, $ef ; DVs
+ db 10, 15, 20, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 126 ; HP
+ bigdw 126 ; Max HP
+ bigdw 76 ; Atk
+ bigdw 73 ; Def
+ bigdw 135 ; Spd
+ bigdw 147 ; SAtk
+ bigdw 107 ; SDef
+ db "HU-DEiN@@@@"
+
+
+ db STARMIE
+ db LEFTOVERS
+ db BLIZZARD, THUNDERBOLT, SURF, PSYCHIC_M
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 45000
+ db $fd, $be ; DVs
+ db 5, 15, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 131 ; HP
+ bigdw 131 ; Max HP
+ bigdw 99 ; Atk
+ bigdw 104 ; Def
+ bigdw 127 ; Spd
+ bigdw 117 ; SAtk
+ bigdw 105 ; SDef
+ db "SUTA-MI-@@@"
+
+
+ db WOBBUFFET
+ db GOLD_BERRY
+ db COUNTER, MIRROR_COAT, SAFEGUARD, DESTINY_BOND
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $bf, $e7 ; DVs
+ db 20, 20, 25, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 233 ; HP
+ bigdw 233 ; Max HP
+ bigdw 62 ; Atk
+ bigdw 85 ; Def
+ bigdw 64 ; Spd
+ bigdw 59 ; SAtk
+ bigdw 79 ; SDef
+ db "SO-NANSU@@@"
+
+
+ db GOLEM
+ db FOCUS_BAND
+ db EXPLOSION, EARTHQUAKE, MEGA_PUNCH, ROCK_SLIDE
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 45000
+ db $dd, $ed ; DVs
+ db 5, 10, 20, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 145 ; HP
+ bigdw 145 ; Max HP
+ bigdw 125 ; Atk
+ bigdw 139 ; Def
+ bigdw 74 ; Spd
+ bigdw 80 ; SAtk
+ bigdw 88 ; SDef
+ db "GORO-NIya@@"
+
+
+ db SCIZOR
+ db SCOPE_LENS
+ db SLASH, STEEL_WING, PURSUIT, HYPER_BEAM
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ db $bd, $fe ; DVs
+ db 20, 25, 20, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 139 ; HP
+ bigdw 139 ; Max HP
+ bigdw 139 ; Atk
+ bigdw 117 ; Def
+ bigdw 89 ; Spd
+ bigdw 82 ; SAtk
+ bigdw 102 ; SDef
+ db "HAtuSAMU@@@"
+
+
+ db DUGTRIO
+ db KINGS_ROCK
+ db EARTHQUAKE, HYPER_BEAM, SLUDGE_BOMB, MUD_SLAP
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fe, $bb ; DVs
+ db 10, 5, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 108 ; HP
+ bigdw 108 ; Max HP
+ bigdw 103 ; Atk
+ bigdw 78 ; Def
+ bigdw 131 ; Spd
+ bigdw 75 ; SAtk
+ bigdw 91 ; SDef
+ db "DAGUTORIO@@"
+
+
+ db SLOWBRO
+ db MIRACLEBERRY
+ db SURF, PSYCHIC_M, EARTHQUAKE, BLIZZARD
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ db $bf, $cf ; DVs
+ db 15, 10, 10, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 157 ; HP
+ bigdw 157 ; Max HP
+ bigdw 95 ; Atk
+ bigdw 126 ; Def
+ bigdw 60 ; Spd
+ bigdw 119 ; SAtk
+ bigdw 103 ; SDef
+ db "YADORAN@@@@"
+
+
+ db PORYGON2
+ db NO_ITEM
+ db CONVERSION2, CONVERSION, PSYBEAM, THIEF
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $bc, $ef ; DVs
+ db 30, 30, 20, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 147 ; HP
+ bigdw 147 ; Max HP
+ bigdw 99 ; Atk
+ bigdw 108 ; Def
+ bigdw 86 ; Spd
+ bigdw 123 ; SAtk
+ bigdw 115 ; SDef
+ db "PORIGON2@@@"
+
+
+ db ARCANINE
+ db CHARCOAL
+ db FLAME_WHEEL, LEER, BODY_SLAM, ROAR
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fe, $bb ; DVs
+ db 25, 30, 15, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 152 ; HP
+ bigdw 152 ; Max HP
+ bigdw 127 ; Atk
+ bigdw 102 ; Def
+ bigdw 111 ; Spd
+ bigdw 115 ; SAtk
+ bigdw 99 ; SDef
+ db "UINDEi@@@@@"
+
+
+ db FORRETRESS
+ db LEFTOVERS
+ db RAPID_SPIN, PROTECT, TOXIC, SANDSTORM
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fa, $7f ; DVs
+ db 40, 10, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 140 ; HP
+ bigdw 140 ; Max HP
+ bigdw 111 ; Atk
+ bigdw 147 ; Def
+ bigdw 64 ; Spd
+ bigdw 87 ; SAtk
+ bigdw 87 ; SDef
+ db "HUoRETOSU@@"
+
+
+ db OMASTAR
+ db GOLD_BERRY
+ db CURSE, WATER_GUN, ANCIENTPOWER, ROCK_SMASH
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $ef, $f7 ; DVs
+ db 10, 25, 5, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 133 ; HP
+ bigdw 133 ; Max HP
+ bigdw 86 ; Atk
+ bigdw 139 ; Def
+ bigdw 83 ; Spd
+ bigdw 124 ; SAtk
+ bigdw 88 ; SDef
+ db "OMUSUTA-@@@"
+
+
+ db CHARIZARD
+ db KINGS_ROCK
+ db FIRE_SPIN, DRAGON_RAGE, FLY, SLASH
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fe, $fe ; DVs
+ db 15, 10, 15, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 142 ; HP
+ bigdw 142 ; Max HP
+ bigdw 106 ; Atk
+ bigdw 100 ; Def
+ bigdw 119 ; Spd
+ bigdw 125 ; SAtk
+ bigdw 106 ; SDef
+ db "RIZA-DON@@@"
+
+
+ db EXEGGUTOR
+ db BRIGHTPOWDER
+ db EGG_BOMB, STOMP, PSYCH_UP, CONFUSION
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $f7, $e7 ; DVs
+ db 10, 20, 10, 25 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 158 ; HP
+ bigdw 158 ; Max HP
+ bigdw 115 ; Atk
+ bigdw 100 ; Def
+ bigdw 82 ; Spd
+ bigdw 132 ; SAtk
+ bigdw 84 ; SDef
+ db "NAtuSI-@@@@"
+
+
+ db HYPNO
+ db BRIGHTPOWDER
+ db CONFUSION, THUNDERPUNCH, HEADBUTT, DISABLE
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $77, $7a ; DVs
+ db 25, 15, 15, 20 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 146 ; HP
+ bigdw 146 ; Max HP
+ bigdw 86 ; Atk
+ bigdw 83 ; Def
+ bigdw 81 ; Spd
+ bigdw 88 ; SAtk
+ bigdw 122 ; SDef
+ db "SURI-PA-@@@"
+
+
+ db MUK
+ db QUICK_CLAW
+ db SCREECH, TOXIC, SLUDGE, HARDEN
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $75, $6b ; DVs
+ db 40, 10, 20, 30 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 161 ; HP
+ bigdw 161 ; Max HP
+ bigdw 111 ; Atk
+ bigdw 86 ; Def
+ bigdw 67 ; Spd
+ bigdw 83 ; SAtk
+ bigdw 111 ; SDef
+ db "BETOBETON@@"
+
+
+ db ELECTABUZZ
+ db KINGS_ROCK
+ db LIGHT_SCREEN, THUNDERPUNCH, SWIFT, SNORE
+ dw 0 ; OT ID
+ dt 64000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $65, $77 ; DVs
+ db 30, 15, 20, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 40 ; Level
+ db 0, 0 ; Status
+ bigdw 124 ; HP
+ bigdw 124 ; Max HP
+ bigdw 93 ; Atk
+ bigdw 71 ; Def
+ bigdw 111 ; Spd
+ bigdw 103 ; SAtk
+ bigdw 95 ; SDef
+ db "EREBU-@@@@@"
+
+
+
+
+BattleTowerMons5:
+
+ db KINGDRA
+ db GOLD_BERRY
+ db SURF, HYPER_BEAM, BLIZZARD, DRAGONBREATH
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 55000
+ bigdw 60000
+ bigdw 50000
+ bigdw 55000
+ db $dd, $ff ; DVs
+ db 15, 5, 5, 20 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 179 ; HP
+ bigdw 179 ; Max HP
+ bigdw 142 ; Atk
+ bigdw 143 ; Def
+ bigdw 132 ; Spd
+ bigdw 144 ; SAtk
+ bigdw 144 ; SDef
+ db "KINGUDORA@@"
+
+
+ db HOUNDOOM
+ db MIRACLEBERRY
+ db REST, CRUNCH, DREAM_EATER, FLAMETHROWER
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 50000
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ db $dd, $fc ; DVs
+ db 10, 15, 15, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 178 ; HP
+ bigdw 178 ; Max HP
+ bigdw 135 ; Atk
+ bigdw 98 ; Def
+ bigdw 145 ; Spd
+ bigdw 157 ; SAtk
+ bigdw 127 ; SDef
+ db "HERUGA-@@@@"
+
+
+ db SHUCKLE
+ db LEFTOVERS
+ db SANDSTORM, REST, TOXIC, WRAP
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ bigdw 55000
+ db $fd, $cf ; DVs
+ db 10, 10, 10, 20 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 123 ; HP
+ bigdw 123 ; Max HP
+ bigdw 60 ; Atk
+ bigdw 278 ; Def
+ bigdw 52 ; Spd
+ bigdw 59 ; SAtk
+ bigdw 279 ; SDef
+ db "TUBOTUBO@@@"
+
+
+ db SNORLAX
+ db LEFTOVERS
+ db HYPER_BEAM, EARTHQUAKE, SURF, PSYCH_UP
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 60000
+ bigdw 55000
+ bigdw 55000
+ bigdw 60000
+ bigdw 55000
+ db $fd, $ef ; DVs
+ db 5, 10, 15, 10 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 263 ; HP
+ bigdw 263 ; Max HP
+ bigdw 159 ; Atk
+ bigdw 112 ; Def
+ bigdw 79 ; Spd
+ bigdw 114 ; SAtk
+ bigdw 159 ; SDef
+ db "KABIGON@@@@"
+
+
+ db LAPRAS
+ db GOLD_BERRY
+ db THUNDERBOLT, SURF, CONFUSE_RAY, BLIZZARD
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 60000
+ bigdw 60000
+ bigdw 55000
+ bigdw 60000
+ db $dd, $dd ; DVs
+ db 15, 15, 10, 5 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 234 ; HP
+ bigdw 234 ; Max HP
+ bigdw 133 ; Atk
+ bigdw 128 ; Def
+ bigdw 107 ; Spd
+ bigdw 133 ; SAtk
+ bigdw 143 ; SDef
+ db "RAPURASU@@@"
+
+
+ db JOLTEON
+ db KINGS_ROCK
+ db THUNDERBOLT, THUNDER_WAVE, SHADOW_BALL, HIDDEN_POWER
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 60000
+ bigdw 57000
+ bigdw 55000
+ bigdw 55000
+ db $ed, $ff ; DVs
+ db 15, 20, 15, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 161 ; HP
+ bigdw 161 ; Max HP
+ bigdw 114 ; Atk
+ bigdw 107 ; Def
+ bigdw 179 ; Spd
+ bigdw 159 ; SAtk
+ bigdw 144 ; SDef
+ db "SANDA-SU@@@"
+
+
+ db SCIZOR
+ db LEFTOVERS
+ db HYPER_BEAM, SLASH, AGILITY, METAL_CLAW
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 45000
+ db $df, $ed ; DVs
+ db 5, 20, 30, 35 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 169 ; HP
+ bigdw 169 ; Max HP
+ bigdw 175 ; Atk
+ bigdw 145 ; Def
+ bigdw 111 ; Spd
+ bigdw 99 ; SAtk
+ bigdw 124 ; SDef
+ db "HAtuSAMU@@@"
+
+
+ db SLOWKING
+ db MINT_BERRY
+ db REST, SURF, PSYCHIC_M, AMNESIA
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 40000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ db $df, $de ; DVs
+ db 10, 15, 10, 20 ; PP
+ db 15 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 196 ; HP
+ bigdw 196 ; Max HP
+ bigdw 118 ; Atk
+ bigdw 126 ; Def
+ bigdw 75 ; Spd
+ bigdw 146 ; SAtk
+ bigdw 156 ; SDef
+ db "YADOKINGU@@"
+
+
+ db MACHAMP
+ db GOLD_BERRY
+ db CROSS_CHOP, EARTHQUAKE, FIRE_BLAST, THUNDERPUNCH
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 45000
+ bigdw 50000
+ bigdw 40000
+ bigdw 44000
+ db $ff, $ec ; DVs
+ db 5, 10, 5, 15 ; PP
+ db 13 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 187 ; HP
+ bigdw 187 ; Max HP
+ bigdw 176 ; Atk
+ bigdw 127 ; Def
+ bigdw 99 ; Spd
+ bigdw 108 ; SAtk
+ bigdw 128 ; SDef
+ db "KAIRIKI-@@@"
+
+
+ db STARMIE
+ db SCOPE_LENS
+ db THUNDER_WAVE, RECOVER, THUNDERBOLT, SURF
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 44000
+ bigdw 40000
+ bigdw 45000
+ bigdw 40000
+ db $ff, $ff ; DVs
+ db 20, 20, 15, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 161 ; HP
+ bigdw 161 ; Max HP
+ bigdw 121 ; Atk
+ bigdw 130 ; Def
+ bigdw 161 ; Spd
+ bigdw 145 ; SAtk
+ bigdw 130 ; SDef
+ db "SUTA-MI-@@@"
+
+
+ db DUGTRIO
+ db KINGS_ROCK
+ db EARTHQUAKE, SLASH, HYPER_BEAM, SLUDGE_BOMB
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 40000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ db $f7, $fe ; DVs
+ db 10, 20, 5, 10 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 135 ; HP
+ bigdw 135 ; Max HP
+ bigdw 125 ; Atk
+ bigdw 89 ; Def
+ bigdw 166 ; Spd
+ bigdw 96 ; SAtk
+ bigdw 116 ; SDef
+ db "DAGUTORIO@@"
+
+
+ db ELECTRODE
+ db MIRACLEBERRY
+ db THUNDERBOLT, EXPLOSION, MIRROR_COAT, REST
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 54000
+ bigdw 40000
+ bigdw 50000
+ db $7d, $fe ; DVs
+ db 15, 5, 20, 10 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 161 ; HP
+ bigdw 161 ; Max HP
+ bigdw 88 ; Atk
+ bigdw 117 ; Def
+ bigdw 185 ; Spd
+ bigdw 126 ; SAtk
+ bigdw 126 ; SDef
+ db "MARUMAIN@@@"
+
+
+ db AERODACTYL
+ db KINGS_ROCK
+ db HYPER_BEAM, EARTHQUAKE, FIRE_BLAST, IRON_TAIL
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 45000
+ db $fd, $dd ; DVs
+ db 5, 10, 5, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 181 ; HP
+ bigdw 181 ; Max HP
+ bigdw 152 ; Atk
+ bigdw 110 ; Def
+ bigdw 174 ; Spd
+ bigdw 104 ; SAtk
+ bigdw 119 ; SDef
+ db "PUTERA@@@@@"
+
+
+ db CROBAT
+ db LEFTOVERS
+ db CONFUSE_RAY, ATTRACT, HYPER_BEAM, TOXIC
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 40000
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ db $ef, $ff ; DVs
+ db 10, 15, 5, 10 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 178 ; HP
+ bigdw 178 ; Max HP
+ bigdw 134 ; Atk
+ bigdw 127 ; Def
+ bigdw 175 ; Spd
+ bigdw 117 ; SAtk
+ bigdw 127 ; SDef
+ db "KUROBAtuTO@"
+
+
+ db ZAPDOS
+ db MIRACLEBERRY
+ db DRILL_PECK, THUNDERBOLT, THUNDER_WAVE, HYPER_BEAM
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 45000
+ bigdw 40000
+ bigdw 50000
+ db $fd, $de ; DVs
+ db 20, 15, 20, 5 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 190 ; HP
+ bigdw 190 ; Max HP
+ bigdw 137 ; Atk
+ bigdw 129 ; Def
+ bigdw 143 ; Spd
+ bigdw 171 ; SAtk
+ bigdw 136 ; SDef
+ db "SANDA-@@@@@"
+
+
+ db SKARMORY
+ db GOLD_BERRY
+ db SANDSTORM, FLY, STEEL_WING, TOXIC
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 40000
+ db $d7, $ed ; DVs
+ db 10, 15, 25, 10 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 164 ; HP
+ bigdw 164 ; Max HP
+ bigdw 125 ; Atk
+ bigdw 179 ; Def
+ bigdw 116 ; Spd
+ bigdw 83 ; SAtk
+ bigdw 113 ; SDef
+ db "EA-MUDO@@@@"
+
+
+ db FORRETRESS
+ db LEFTOVERS
+ db SANDSTORM, TOXIC, EXPLOSION, SWAGGER
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 55000
+ bigdw 45000
+ bigdw 40000
+ db $cf, $dd ; DVs
+ db 10, 10, 5, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 169 ; HP
+ bigdw 169 ; Max HP
+ bigdw 134 ; Atk
+ bigdw 189 ; Def
+ bigdw 84 ; Spd
+ bigdw 103 ; SAtk
+ bigdw 103 ; SDef
+ db "HUoRETOSU@@"
+
+
+ db STEELIX
+ db MIRACLEBERRY
+ db SANDSTORM, IRON_TAIL, REST, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 40000
+ bigdw 45000
+ db $dd, $dd ; DVs
+ db 10, 15, 10, 10 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 176 ; HP
+ bigdw 176 ; Max HP
+ bigdw 130 ; Atk
+ bigdw 245 ; Def
+ bigdw 73 ; Spd
+ bigdw 99 ; SAtk
+ bigdw 109 ; SDef
+ db "HAGANE-RU@@"
+
+
+ db GIRAFARIG
+ db SCOPE_LENS
+ db DREAM_EATER, CRUNCH, PSYCHIC_M, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ db $45, $56 ; DVs
+ db 15, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 161 ; HP
+ bigdw 161 ; Max HP
+ bigdw 114 ; Atk
+ bigdw 100 ; Def
+ bigdw 120 ; Spd
+ bigdw 126 ; SAtk
+ bigdw 101 ; SDef
+ db "KIRINRIKI@@"
+
+
+ db GYARADOS
+ db MIRACLEBERRY
+ db HYPER_BEAM, SURF, RAIN_DANCE, ZAP_CANNON
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ db $75, $65 ; DVs
+ db 5, 15, 5, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 193 ; HP
+ bigdw 193 ; Max HP
+ bigdw 162 ; Atk
+ bigdw 114 ; Def
+ bigdw 117 ; Spd
+ bigdw 95 ; SAtk
+ bigdw 135 ; SDef
+ db "GIyaRADOSU@"
+
+
+ db ARTICUNO
+ db GOLD_BERRY
+ db BLIZZARD, HYPER_BEAM, ROAR, ICY_WIND
+ dw 0 ; OT ID
+ dt 125000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ bigdw 40000
+ db $45, $56 ; DVs
+ db 5, 5, 20, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 50 ; Level
+ db 0, 0 ; Status
+ bigdw 181 ; HP
+ bigdw 181 ; Max HP
+ bigdw 119 ; Atk
+ bigdw 135 ; Def
+ bigdw 120 ; Spd
+ bigdw 131 ; SAtk
+ bigdw 161 ; SDef
+ db "HURI-ZA-@@@"
+
+
+
+
+BattleTowerMons6:
+
+ db KINGDRA
+ db LEFTOVERS
+ db DRAGONBREATH, SURF, HYPER_BEAM, BLIZZARD
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 55000
+ bigdw 50000
+ bigdw 60000
+ bigdw 60000
+ db $dd, $fe ; DVs
+ db 20, 15, 5, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 211 ; HP
+ bigdw 211 ; Max HP
+ bigdw 169 ; Atk
+ bigdw 167 ; Def
+ bigdw 161 ; Spd
+ bigdw 172 ; SAtk
+ bigdw 172 ; SDef
+ db "KINGUDORA@@"
+
+
+ db TYRANITAR
+ db GOLD_BERRY
+ db CRUNCH, EARTHQUAKE, ROCK_SLIDE, HYPER_BEAM
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 60000
+ bigdw 55000
+ bigdw 60000
+ bigdw 55000
+ db $fd, $ed ; DVs
+ db 15, 10, 10, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 240 ; HP
+ bigdw 240 ; Max HP
+ bigdw 220 ; Atk
+ bigdw 187 ; Def
+ bigdw 131 ; Spd
+ bigdw 169 ; SAtk
+ bigdw 175 ; SDef
+ db "BANGIRASU@@"
+
+
+ db HOUNDOOM
+ db MIRACLEBERRY
+ db FLAMETHROWER, CRUNCH, DREAM_EATER, REST
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 60000
+ bigdw 55000
+ bigdw 55000
+ bigdw 60000
+ bigdw 55000
+ db $fb, $ef ; DVs
+ db 15, 15, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 212 ; HP
+ bigdw 212 ; Max HP
+ bigdw 165 ; Atk
+ bigdw 113 ; Def
+ bigdw 172 ; Spd
+ bigdw 189 ; SAtk
+ bigdw 153 ; SDef
+ db "HERUGA-@@@@"
+
+
+ db PORYGON2
+ db LEFTOVERS
+ db BLIZZARD, RECOVER, TOXIC, PSYCHIC_M
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 55000
+ db $dd, $de ; DVs
+ db 5, 20, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 223 ; HP
+ bigdw 223 ; Max HP
+ bigdw 149 ; Atk
+ bigdw 161 ; Def
+ bigdw 125 ; Spd
+ bigdw 182 ; SAtk
+ bigdw 170 ; SDef
+ db "PORIGON2@@@"
+
+
+ db MACHAMP
+ db QUICK_CLAW
+ db FIRE_PUNCH, CROSS_CHOP, THUNDERPUNCH, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ db $fd, $ef ; DVs
+ db 15, 5, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 226 ; HP
+ bigdw 226 ; Max HP
+ bigdw 212 ; Atk
+ bigdw 148 ; Def
+ bigdw 120 ; Spd
+ bigdw 134 ; SAtk
+ bigdw 158 ; SDef
+ db "KAIRIKI-@@@"
+
+
+ db ZAPDOS
+ db MINT_BERRY
+ db REST, DRILL_PECK, THUNDERBOLT, THUNDER_WAVE
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $dd, $fd ; DVs
+ db 10, 20, 15, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 229 ; HP
+ bigdw 229 ; Max HP
+ bigdw 160 ; Atk
+ bigdw 155 ; Def
+ bigdw 177 ; Spd
+ bigdw 203 ; SAtk
+ bigdw 161 ; SDef
+ db "SANDA-@@@@@"
+
+
+ db WOBBUFFET
+ db GOLD_BERRY
+ db COUNTER, MIRROR_COAT, DESTINY_BOND, SAFEGUARD
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 45000
+ db $fd, $ed ; DVs
+ db 20, 20, 5, 25 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 346 ; HP
+ bigdw 346 ; Max HP
+ bigdw 95 ; Atk
+ bigdw 122 ; Def
+ bigdw 94 ; Spd
+ bigdw 92 ; SAtk
+ bigdw 122 ; SDef
+ db "SO-NANSU@@@"
+
+
+ db AERODACTYL
+ db LEFTOVERS
+ db HYPER_BEAM, SUPERSONIC, EARTHQUAKE, BITE
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 45000
+ db $fd, $dd ; DVs
+ db 5, 20, 10, 25 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 215 ; HP
+ bigdw 215 ; Max HP
+ bigdw 182 ; Atk
+ bigdw 131 ; Def
+ bigdw 208 ; Spd
+ bigdw 124 ; SAtk
+ bigdw 142 ; SDef
+ db "PUTERA@@@@@"
+
+
+ db DRAGONITE
+ db MIRACLEBERRY
+ db HYPER_BEAM, ICY_WIND, THUNDERBOLT, SURF
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 45000
+ db $dd, $fd ; DVs
+ db 5, 15, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 229 ; HP
+ bigdw 229 ; Max HP
+ bigdw 214 ; Atk
+ bigdw 164 ; Def
+ bigdw 152 ; Spd
+ bigdw 172 ; SAtk
+ bigdw 172 ; SDef
+ db "KAIRIyu-@@@"
+
+
+ db UMBREON
+ db GOLD_BERRY
+ db MUD_SLAP, MOONLIGHT, PSYCHIC_M, FAINT_ATTACK
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fd, $ef ; DVs
+ db 10, 5, 10, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 232 ; HP
+ bigdw 232 ; Max HP
+ bigdw 134 ; Atk
+ bigdw 185 ; Def
+ bigdw 132 ; Spd
+ bigdw 128 ; SAtk
+ bigdw 212 ; SDef
+ db "BURAtuKI-@@"
+
+
+ db ARCANINE
+ db CHARCOAL
+ db FLAMETHROWER, CRUNCH, EXTREMESPEED, IRON_TAIL
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 50000
+ bigdw 40000
+ bigdw 55000
+ bigdw 50000
+ db $fd, $ed ; DVs
+ db 15, 15, 5, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 228 ; HP
+ bigdw 228 ; Max HP
+ bigdw 188 ; Atk
+ bigdw 146 ; Def
+ bigdw 170 ; Spd
+ bigdw 173 ; SAtk
+ bigdw 149 ; SDef
+ db "UINDEi@@@@@"
+
+
+ db SKARMORY
+ db MIRACLEBERRY
+ db STEEL_WING, FLY, TOXIC, PROTECT
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ db $fb, $eb ; DVs
+ db 25, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 196 ; HP
+ bigdw 196 ; Max HP
+ bigdw 152 ; Atk
+ bigdw 218 ; Def
+ bigdw 138 ; Spd
+ bigdw 99 ; SAtk
+ bigdw 135 ; SDef
+ db "EA-MUDO@@@@"
+
+
+ db BLISSEY
+ db LEFTOVERS
+ db SOFTBOILED, TOXIC, PROTECT, PSYCHIC_M
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ db $fb, $cd ; DVs
+ db 10, 10, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 424 ; HP
+ bigdw 424 ; Max HP
+ bigdw 66 ; Atk
+ bigdw 63 ; Def
+ bigdw 117 ; Spd
+ bigdw 143 ; SAtk
+ bigdw 215 ; SDef
+ db "HAPINASU@@@"
+
+
+ db SNORLAX
+ db PINK_BOW
+ db ROCK_SLIDE, SURF, BODY_SLAM, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fa, $fc ; DVs
+ db 10, 15, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 307 ; HP
+ bigdw 307 ; Max HP
+ bigdw 186 ; Atk
+ bigdw 128 ; Def
+ bigdw 92 ; Spd
+ bigdw 130 ; SAtk
+ bigdw 184 ; SDef
+ db "KABIGON@@@@"
+
+
+ db HERACROSS
+ db FOCUS_BAND
+ db REVERSAL, MEGAHORN, EARTHQUAKE, COUNTER
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $df, $ed ; DVs
+ db 15, 10, 10, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 214 ; HP
+ bigdw 214 ; Max HP
+ bigdw 200 ; Atk
+ bigdw 146 ; Def
+ bigdw 156 ; Spd
+ bigdw 101 ; SAtk
+ bigdw 167 ; SDef
+ db "HERAKUROSU@"
+
+
+ db JYNX
+ db MIRACLEBERRY
+ db BLIZZARD, PSYCHIC_M, SHADOW_BALL, ICY_WIND
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $ff, $eb ; DVs
+ db 5, 10, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 196 ; HP
+ bigdw 196 ; Max HP
+ bigdw 116 ; Atk
+ bigdw 98 ; Def
+ bigdw 168 ; Spd
+ bigdw 189 ; SAtk
+ bigdw 165 ; SDef
+ db "RU-ZIyuRA@@"
+
+
+ db BLASTOISE
+ db GOLD_BERRY
+ db SURF, EARTHQUAKE, RAPID_SPIN, BLIZZARD
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fe, $fe ; DVs
+ db 15, 10, 40, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 209 ; HP
+ bigdw 209 ; Max HP
+ bigdw 155 ; Atk
+ bigdw 174 ; Def
+ bigdw 149 ; Spd
+ bigdw 156 ; SAtk
+ bigdw 180 ; SDef
+ db "KAMEtuKUSU@"
+
+
+ db RHYDON
+ db QUICK_CLAW
+ db EARTHQUAKE, SURF, IRON_TAIL, ROCK_SLIDE
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fb, $fa ; DVs
+ db 10, 15, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 245 ; HP
+ bigdw 245 ; Max HP
+ bigdw 212 ; Atk
+ bigdw 195 ; Def
+ bigdw 104 ; Spd
+ bigdw 104 ; SAtk
+ bigdw 104 ; SDef
+ db "SAIDON@@@@@"
+
+
+ db SANDSLASH
+ db SCOPE_LENS
+ db EARTHQUAKE, SLASH, HYPER_BEAM, SNORE
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $b7, $67 ; DVs
+ db 10, 20, 5, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 201 ; HP
+ bigdw 201 ; Max HP
+ bigdw 164 ; Atk
+ bigdw 171 ; Def
+ bigdw 116 ; Spd
+ bigdw 93 ; SAtk
+ bigdw 105 ; SDef
+ db "SANDOPAN@@@"
+
+
+ db PARASECT
+ db GOLD_BERRY
+ db SPORE, GIGA_DRAIN, HYPER_BEAM, SLUDGE_BOMB
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $66, $5f ; DVs
+ db 15, 5, 5, 10 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 171 ; HP
+ bigdw 171 ; Max HP
+ bigdw 152 ; Atk
+ bigdw 134 ; Def
+ bigdw 72 ; Spd
+ bigdw 120 ; SAtk
+ bigdw 144 ; SDef
+ db "PARASEKUTO@"
+
+
+ db GOLEM
+ db BRIGHTPOWDER
+ db EXPLOSION, EARTHQUAKE, FIRE_PUNCH, FRUSTRATION
+ dw 0 ; OT ID
+ dt 216000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $76, $57 ; DVs
+ db 5, 10, 15, 20 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 60 ; Level
+ db 0, 0 ; Status
+ bigdw 205 ; HP
+ bigdw 205 ; Max HP
+ bigdw 171 ; Atk
+ bigdw 194 ; Def
+ bigdw 90 ; Spd
+ bigdw 105 ; SAtk
+ bigdw 117 ; SDef
+ db "GORO-NIya@@"
+
+
+
+
+BattleTowerMons7:
+
+ db JOLTEON
+ db MIRACLEBERRY
+ db THUNDERBOLT, HYPER_BEAM, SHADOW_BALL, ROAR
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 60000
+ bigdw 56000
+ bigdw 55000
+ bigdw 50000
+ bigdw 60000
+ db $fb, $ef ; DVs
+ db 15, 5, 15, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 231 ; HP
+ bigdw 231 ; Max HP
+ bigdw 158 ; Atk
+ bigdw 145 ; Def
+ bigdw 245 ; Spd
+ bigdw 222 ; SAtk
+ bigdw 201 ; SDef
+ db "SANDA-SU@@@"
+
+
+ db VAPOREON
+ db LEFTOVERS
+ db BLIZZARD, SHADOW_BALL, SURF, MUD_SLAP
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 60000
+ bigdw 60000
+ bigdw 50000
+ db $bf, $ef ; DVs
+ db 5, 15, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 318 ; HP
+ bigdw 318 ; Max HP
+ bigdw 149 ; Atk
+ bigdw 152 ; Def
+ bigdw 158 ; Spd
+ bigdw 218 ; SAtk
+ bigdw 197 ; SDef
+ db "SIyaWA-ZU@@"
+
+
+ db UMBREON
+ db GOLD_BERRY
+ db FAINT_ATTACK, MOONLIGHT, PSYCH_UP, TOXIC
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 54000
+ bigdw 60000
+ bigdw 55000
+ bigdw 50000
+ bigdw 58000
+ db $dd, $dd ; DVs
+ db 20, 5, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 274 ; HP
+ bigdw 274 ; Max HP
+ bigdw 156 ; Atk
+ bigdw 217 ; Def
+ bigdw 152 ; Spd
+ bigdw 149 ; SAtk
+ bigdw 247 ; SDef
+ db "BURAtuKI-@@"
+
+
+ db BLISSEY
+ db GOLD_BERRY
+ db COUNTER, SOFTBOILED, SHADOW_BALL, THUNDERBOLT
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 55000
+ bigdw 55000
+ bigdw 58000
+ bigdw 50000
+ db $df, $ed ; DVs
+ db 20, 10, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 495 ; HP
+ bigdw 495 ; Max HP
+ bigdw 77 ; Atk
+ bigdw 80 ; Def
+ bigdw 143 ; Spd
+ bigdw 166 ; SAtk
+ bigdw 250 ; SDef
+ db "HAPINASU@@@"
+
+
+ db SNORLAX
+ db LEFTOVERS
+ db ROCK_SLIDE, EARTHQUAKE, BLIZZARD, SHADOW_BALL
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 55000
+ bigdw 60000
+ bigdw 55000
+ bigdw 50000
+ db $dd, $dd ; DVs
+ db 10, 10, 5, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 365 ; HP
+ bigdw 365 ; Max HP
+ bigdw 217 ; Atk
+ bigdw 156 ; Def
+ bigdw 105 ; Spd
+ bigdw 152 ; SAtk
+ bigdw 215 ; SDef
+ db "KABIGON@@@@"
+
+
+ db HOUNDOOM
+ db KINGS_ROCK
+ db CRUNCH, FLAMETHROWER, FAINT_ATTACK, ROAR
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 58000
+ bigdw 50000
+ bigdw 55000
+ bigdw 60000
+ bigdw 55000
+ db $dd, $cd ; DVs
+ db 15, 15, 20, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 245 ; HP
+ bigdw 245 ; Max HP
+ bigdw 187 ; Atk
+ bigdw 133 ; Def
+ bigdw 197 ; Spd
+ bigdw 217 ; SAtk
+ bigdw 175 ; SDef
+ db "HERUGA-@@@@"
+
+
+ db TYRANITAR
+ db LEFTOVERS
+ db EARTHQUAKE, CRUNCH, ROCK_SLIDE, HYPER_BEAM
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 45000
+ bigdw 50000
+ bigdw 45000
+ db $db, $df ; DVs
+ db 10, 15, 10, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 279 ; HP
+ bigdw 279 ; Max HP
+ bigdw 247 ; Atk
+ bigdw 211 ; Def
+ bigdw 147 ; Spd
+ bigdw 196 ; SAtk
+ bigdw 203 ; SDef
+ db "BANGIRASU@@"
+
+
+ db ZAPDOS
+ db GOLD_BERRY
+ db THUNDERBOLT, DRILL_PECK, THUNDER_WAVE, HYPER_BEAM
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 45000
+ db $db, $df ; DVs
+ db 15, 20, 20, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 264 ; HP
+ bigdw 264 ; Max HP
+ bigdw 187 ; Atk
+ bigdw 177 ; Def
+ bigdw 200 ; Spd
+ bigdw 238 ; SAtk
+ bigdw 189 ; SDef
+ db "SANDA-@@@@@"
+
+
+ db EXEGGUTOR
+ db MIRACLEBERRY
+ db REST, EXPLOSION, PSYCHIC_M, GIGA_DRAIN
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 45000
+ db $dd, $ed ; DVs
+ db 10, 5, 10, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 268 ; HP
+ bigdw 268 ; Max HP
+ bigdw 194 ; Atk
+ bigdw 177 ; Def
+ bigdw 140 ; Spd
+ bigdw 235 ; SAtk
+ bigdw 151 ; SDef
+ db "NAtuSI-@@@@"
+
+
+ db UMBREON
+ db GOLD_BERRY
+ db MOONLIGHT, FAINT_ATTACK, PSYCHIC_M, SHADOW_BALL
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 45000
+ bigdw 50000
+ db $fd, $eb ; DVs
+ db 5, 20, 10, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 269 ; HP
+ bigdw 269 ; Max HP
+ bigdw 155 ; Atk
+ bigdw 214 ; Def
+ bigdw 152 ; Spd
+ bigdw 142 ; SAtk
+ bigdw 240 ; SDef
+ db "BURAtuKI-@@"
+
+
+ db GYARADOS
+ db BRIGHTPOWDER
+ db SURF, THUNDERBOLT, HYPER_BEAM, ROAR
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 45000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $db, $ef ; DVs
+ db 15, 15, 5, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 271 ; HP
+ bigdw 271 ; Max HP
+ bigdw 235 ; Atk
+ bigdw 169 ; Def
+ bigdw 178 ; Spd
+ bigdw 148 ; SAtk
+ bigdw 204 ; SDef
+ db "GIyaRADOSU@"
+
+
+ db QUAGSIRE
+ db MIRACLEBERRY
+ db EARTHQUAKE, SURF, SLUDGE_BOMB, IRON_TAIL
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ db $de, $dd ; DVs
+ db 10, 15, 10, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 266 ; HP
+ bigdw 266 ; Max HP
+ bigdw 180 ; Atk
+ bigdw 180 ; Def
+ bigdw 110 ; Spd
+ bigdw 152 ; SAtk
+ bigdw 152 ; SDef
+ db "NUO-@@@@@@@"
+
+
+ db URSARING
+ db SCOPE_LENS
+ db SLASH, EARTHQUAKE, HYPER_BEAM, THUNDERPUNCH
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ db $fd, $ed ; DVs
+ db 20, 10, 5, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 262 ; HP
+ bigdw 262 ; Max HP
+ bigdw 245 ; Atk
+ bigdw 166 ; Def
+ bigdw 138 ; Spd
+ bigdw 166 ; SAtk
+ bigdw 166 ; SDef
+ db "RINGUMA@@@@"
+
+
+ db MR__MIME
+ db KINGS_ROCK
+ db REFLECT, FIRE_PUNCH, PSYCHIC_M, ENCORE
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ db $bd, $fb ; DVs
+ db 20, 15, 10, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 195 ; HP
+ bigdw 195 ; Max HP
+ bigdw 120 ; Atk
+ bigdw 151 ; Def
+ bigdw 190 ; Spd
+ bigdw 198 ; SAtk
+ bigdw 226 ; SDef
+ db "BARIYA-DO@@"
+
+
+ db PRIMEAPE
+ db QUICK_CLAW
+ db CROSS_CHOP, ICE_PUNCH, THUNDERPUNCH, ROCK_SLIDE
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $bd, $ef ; DVs
+ db 5, 15, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 227 ; HP
+ bigdw 227 ; Max HP
+ bigdw 202 ; Atk
+ bigdw 145 ; Def
+ bigdw 196 ; Spd
+ bigdw 148 ; SAtk
+ bigdw 162 ; SDef
+ db "OKORIZARU@@"
+
+
+ db GIRAFARIG
+ db GOLD_BERRY
+ db AGILITY, BATON_PASS, CRUNCH, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fe, $fd ; DVs
+ db 30, 40, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 231 ; HP
+ bigdw 231 ; Max HP
+ bigdw 176 ; Atk
+ bigdw 154 ; Def
+ bigdw 183 ; Spd
+ bigdw 187 ; SAtk
+ bigdw 152 ; SDef
+ db "KIRINRIKI@@"
+
+
+ db HITMONLEE
+ db FOCUS_BAND
+ db REVERSAL, ENDURE, BODY_SLAM, MEGA_KICK
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fe, $fe ; DVs
+ db 15, 10, 15, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 202 ; HP
+ bigdw 202 ; Max HP
+ bigdw 232 ; Atk
+ bigdw 137 ; Def
+ bigdw 186 ; Spd
+ bigdw 112 ; SAtk
+ bigdw 217 ; SDef
+ db "SAWAMURA-@@"
+
+
+ db HERACROSS
+ db BRIGHTPOWDER
+ db REVERSAL, ENDURE, MEGAHORN, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $f7, $f7 ; DVs
+ db 15, 10, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 251 ; HP
+ bigdw 251 ; Max HP
+ bigdw 239 ; Atk
+ bigdw 158 ; Def
+ bigdw 183 ; Spd
+ bigdw 109 ; SAtk
+ bigdw 186 ; SDef
+ db "HERAKUROSU@"
+
+
+ db VENUSAUR
+ db BRIGHTPOWDER
+ db SUNNY_DAY, SOLARBEAM, SYNTHESIS, HYPER_BEAM
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $76, $44 ; DVs
+ db 5, 10, 5, 5 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 233 ; HP
+ bigdw 233 ; Max HP
+ bigdw 159 ; Atk
+ bigdw 159 ; Def
+ bigdw 152 ; Spd
+ bigdw 180 ; SAtk
+ bigdw 180 ; SDef
+ db "HUSIGIBANA@"
+
+
+ db CHARIZARD
+ db SCOPE_LENS
+ db SLASH, EARTHQUAKE, HYPER_BEAM, FLAMETHROWER
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $56, $44 ; DVs
+ db 20, 10, 5, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 230 ; HP
+ bigdw 230 ; Max HP
+ bigdw 159 ; Atk
+ bigdw 152 ; Def
+ bigdw 180 ; Spd
+ bigdw 193 ; SAtk
+ bigdw 159 ; SDef
+ db "RIZA-DON@@@"
+
+
+ db BLASTOISE
+ db QUICK_CLAW
+ db HYDRO_PUMP, ICE_PUNCH, HYPER_BEAM, IRON_TAIL
+ dw 0 ; OT ID
+ dt 343000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $76, $64 ; DVs
+ db 5, 15, 5, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 70 ; Level
+ db 0, 0 ; Status
+ bigdw 231 ; HP
+ bigdw 231 ; Max HP
+ bigdw 161 ; Atk
+ bigdw 183 ; Def
+ bigdw 152 ; Spd
+ bigdw 159 ; SAtk
+ bigdw 187 ; SDef
+ db "KAMEtuKUSU@"
+
+
+
+
+BattleTowerMons8:
+
+ db JOLTEON
+ db MIRACLEBERRY
+ db THUNDER_WAVE, THUNDERBOLT, IRON_TAIL, ROAR
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 60000
+ bigdw 55000
+ bigdw 60000
+ bigdw 55000
+ bigdw 55000
+ db $fd, $eb ; DVs
+ db 20, 15, 15, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 263 ; HP
+ bigdw 263 ; Max HP
+ bigdw 179 ; Atk
+ bigdw 170 ; Def
+ bigdw 281 ; Spd
+ bigdw 245 ; SAtk
+ bigdw 221 ; SDef
+ db "SANDA-SU@@@"
+
+
+ db SNORLAX
+ db LEFTOVERS
+ db REST, BELLY_DRUM, SNORE, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 60000
+ bigdw 55000
+ bigdw 50000
+ bigdw 55500
+ bigdw 60000
+ db $db, $ed ; DVs
+ db 10, 10, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 415 ; HP
+ bigdw 415 ; Max HP
+ bigdw 248 ; Atk
+ bigdw 170 ; Def
+ bigdw 121 ; Spd
+ bigdw 178 ; SAtk
+ bigdw 250 ; SDef
+ db "KABIGON@@@@"
+
+
+ db HOUNDOOM
+ db MINT_BERRY
+ db REST, CRUNCH, FLAMETHROWER, SUNNY_DAY
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 50000
+ bigdw 55000
+ bigdw 55000
+ bigdw 55000
+ db $fd, $db ; DVs
+ db 10, 15, 15, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 280 ; HP
+ bigdw 280 ; Max HP
+ bigdw 217 ; Atk
+ bigdw 152 ; Def
+ bigdw 224 ; Spd
+ bigdw 245 ; SAtk
+ bigdw 197 ; SDef
+ db "HERUGA-@@@@"
+
+
+ db TAUROS
+ db GOLD_BERRY
+ db EARTHQUAKE, BODY_SLAM, IRON_TAIL, HYPER_BEAM
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 30000
+ bigdw 50000
+ db $fd, $de ; DVs
+ db 10, 15, 15, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 276 ; HP
+ bigdw 276 ; Max HP
+ bigdw 233 ; Atk
+ bigdw 221 ; Def
+ bigdw 236 ; Spd
+ bigdw 135 ; SAtk
+ bigdw 183 ; SDef
+ db "KENTAROSU@@"
+
+
+ db LAPRAS
+ db MINT_BERRY
+ db REST, SURF, CONFUSE_RAY, PSYCHIC_M
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $df, $db ; DVs
+ db 10, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 366 ; HP
+ bigdw 366 ; Max HP
+ bigdw 205 ; Atk
+ bigdw 201 ; Def
+ bigdw 168 ; Spd
+ bigdw 202 ; SAtk
+ bigdw 218 ; SDef
+ db "RAPURASU@@@"
+
+
+ db TYRANITAR
+ db MIRACLEBERRY
+ db REST, CRUNCH, EARTHQUAKE, ROCK_SLIDE
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $df, $db ; DVs
+ db 10, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 318 ; HP
+ bigdw 318 ; Max HP
+ bigdw 286 ; Atk
+ bigdw 249 ; Def
+ bigdw 169 ; Spd
+ bigdw 218 ; SAtk
+ bigdw 226 ; SDef
+ db "BANGIRASU@@"
+
+
+ db GENGAR
+ db NO_ITEM
+ db THUNDERBOLT, SHADOW_BALL, CONFUSE_RAY, THIEF
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 55000
+ bigdw 50000
+ db $de, $dd ; DVs
+ db 15, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 247 ; HP
+ bigdw 247 ; Max HP
+ bigdw 173 ; Atk
+ bigdw 165 ; Def
+ bigdw 248 ; Spd
+ bigdw 277 ; SAtk
+ bigdw 189 ; SDef
+ db "GENGA-@@@@@"
+
+
+ db FORRETRESS
+ db LEFTOVERS
+ db EXPLOSION, TOXIC, SOLARBEAM, SWAGGER
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ db $fd, $ed ; DVs
+ db 5, 10, 10, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 273 ; HP
+ bigdw 273 ; Max HP
+ bigdw 217 ; Atk
+ bigdw 293 ; Def
+ bigdw 133 ; Spd
+ bigdw 165 ; SAtk
+ bigdw 165 ; SDef
+ db "HUoRETOSU@@"
+
+
+ db KINGDRA
+ db MINT_BERRY
+ db REST, SURF, BLIZZARD, DRAGONBREATH
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 40000
+ bigdw 55000
+ bigdw 50000
+ db $fb, $ed ; DVs
+ db 10, 15, 5, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 273 ; HP
+ bigdw 273 ; Max HP
+ bigdw 225 ; Atk
+ bigdw 214 ; Def
+ bigdw 209 ; Spd
+ bigdw 221 ; SAtk
+ bigdw 221 ; SDef
+ db "KINGUDORA@@"
+
+
+ db DRAGONITE
+ db GOLD_BERRY
+ db THUNDER_WAVE, SURF, THUNDERBOLT, OUTRAGE
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ db $dd, $dd ; DVs
+ db 20, 15, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 303 ; HP
+ bigdw 303 ; Max HP
+ bigdw 284 ; Atk
+ bigdw 221 ; Def
+ bigdw 197 ; Spd
+ bigdw 228 ; SAtk
+ bigdw 228 ; SDef
+ db "KAIRIyu-@@@"
+
+
+ db PORYGON2
+ db LEFTOVERS
+ db PSYCHIC_M, RECOVER, HYPER_BEAM, TRI_ATTACK
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 50000
+ bigdw 40000
+ bigdw 55000
+ bigdw 50000
+ db $df, $ed ; DVs
+ db 10, 20, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 293 ; HP
+ bigdw 293 ; Max HP
+ bigdw 197 ; Atk
+ bigdw 213 ; Def
+ bigdw 169 ; Spd
+ bigdw 237 ; SAtk
+ bigdw 221 ; SDef
+ db "PORIGON2@@@"
+
+
+ db JYNX
+ db QUICK_CLAW
+ db LOVELY_KISS, BLIZZARD, DREAM_EATER, PSYCHIC_M
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ db $df, $df ; DVs
+ db 10, 5, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 264 ; HP
+ bigdw 264 ; Max HP
+ bigdw 149 ; Atk
+ bigdw 127 ; Def
+ bigdw 221 ; Spd
+ bigdw 257 ; SAtk
+ bigdw 225 ; SDef
+ db "RU-ZIyuRA@@"
+
+
+ db MANTINE
+ db GOLD_BERRY
+ db SURF, CONFUSE_RAY, BLIZZARD, WING_ATTACK
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 40000
+ bigdw 45000
+ bigdw 40000
+ bigdw 45000
+ bigdw 50000
+ db $df, $dc ; DVs
+ db 15, 10, 5, 35 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 256 ; HP
+ bigdw 256 ; Max HP
+ bigdw 132 ; Atk
+ bigdw 181 ; Def
+ bigdw 180 ; Spd
+ bigdw 196 ; SAtk
+ bigdw 292 ; SDef
+ db "MANTAIN@@@@"
+
+
+ db SKARMORY
+ db QUICK_CLAW
+ db STEEL_WING, FLY, MUD_SLAP, TOXIC
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 35000
+ bigdw 50000
+ bigdw 50000
+ db $dd, $ef ; DVs
+ db 25, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 258 ; HP
+ bigdw 258 ; Max HP
+ bigdw 196 ; Atk
+ bigdw 286 ; Def
+ bigdw 183 ; Spd
+ bigdw 137 ; SAtk
+ bigdw 185 ; SDef
+ db "EA-MUDO@@@@"
+
+
+ db MOLTRES
+ db CHARCOAL
+ db FLAMETHROWER, SKY_ATTACK, STEEL_WING, HYPER_BEAM
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ db $dd, $fe ; DVs
+ db 15, 5, 25, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 300 ; HP
+ bigdw 300 ; Max HP
+ bigdw 225 ; Atk
+ bigdw 213 ; Def
+ bigdw 213 ; Spd
+ bigdw 271 ; SAtk
+ bigdw 207 ; SDef
+ db "HUaIYA-@@@@"
+
+
+ db AERODACTYL
+ db MIRACLEBERRY
+ db HYPER_BEAM, REST, EARTHQUAKE, ROAR
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ db $ff, $ed ; DVs
+ db 5, 10, 10, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 282 ; HP
+ bigdw 282 ; Max HP
+ bigdw 237 ; Atk
+ bigdw 177 ; Def
+ bigdw 275 ; Spd
+ bigdw 165 ; SAtk
+ bigdw 189 ; SDef
+ db "PUTERA@@@@@"
+
+
+ db ELECTRODE
+ db KINGS_ROCK
+ db THUNDERBOLT, EXPLOSION, MIRROR_COAT, TOXIC
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 40000
+ bigdw 40000
+ bigdw 50000
+ db $ff, $ef ; DVs
+ db 15, 5, 20, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 250 ; HP
+ bigdw 250 ; Max HP
+ bigdw 153 ; Atk
+ bigdw 181 ; Def
+ bigdw 291 ; Spd
+ bigdw 201 ; SAtk
+ bigdw 201 ; SDef
+ db "MARUMAIN@@@"
+
+
+ db DUGTRIO
+ db SCOPE_LENS
+ db SLASH, EARTHQUAKE, THIEF, MUD_SLAP
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 40000
+ db $fd, $dd ; DVs
+ db 20, 10, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 214 ; HP
+ bigdw 214 ; Max HP
+ bigdw 201 ; Atk
+ bigdw 145 ; Def
+ bigdw 261 ; Spd
+ bigdw 145 ; SAtk
+ bigdw 177 ; SDef
+ db "DAGUTORIO@@"
+
+
+ db VICTREEBEL
+ db QUICK_CLAW
+ db GIGA_DRAIN, SLUDGE_BOMB, HYPER_BEAM, TOXIC
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $65, $65 ; DVs
+ db 5, 10, 5, 10 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 260 ; HP
+ bigdw 260 ; Max HP
+ bigdw 217 ; Atk
+ bigdw 151 ; Def
+ bigdw 161 ; Spd
+ bigdw 207 ; SAtk
+ bigdw 143 ; SDef
+ db "UTUBOtuTO@@"
+
+
+ db PINSIR
+ db GOLD_BERRY
+ db HYPER_BEAM, SUBMISSION, STRENGTH, TOXIC
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $74, $64 ; DVs
+ db 5, 25, 15, 10 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 241 ; HP
+ bigdw 241 ; Max HP
+ bigdw 250 ; Atk
+ bigdw 205 ; Def
+ bigdw 185 ; Spd
+ bigdw 133 ; SAtk
+ bigdw 157 ; SDef
+ db "KAIROSU@@@@"
+
+
+ db GRANBULL
+ db BRIGHTPOWDER
+ db ROAR, SHADOW_BALL, HYPER_BEAM, THUNDERPUNCH
+ dw 0 ; OT ID
+ dt 512000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $76, $57 ; DVs
+ db 20, 15, 5, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 80 ; Level
+ db 0, 0 ; Status
+ bigdw 286 ; HP
+ bigdw 286 ; Max HP
+ bigdw 242 ; Atk
+ bigdw 169 ; Def
+ bigdw 119 ; Spd
+ bigdw 146 ; SAtk
+ bigdw 146 ; SDef
+ db "GURANBURU@@"
+
+
+
+
+BattleTowerMons9:
+
+ db UMBREON
+ db KINGS_ROCK
+ db FAINT_ATTACK, MUD_SLAP, MOONLIGHT, CONFUSE_RAY
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 60000
+ bigdw 60000
+ bigdw 55000
+ bigdw 60000
+ bigdw 55000
+ db $fd, $ed ; DVs
+ db 20, 10, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 349 ; HP
+ bigdw 349 ; Max HP
+ bigdw 203 ; Atk
+ bigdw 278 ; Def
+ bigdw 202 ; Spd
+ bigdw 188 ; SAtk
+ bigdw 314 ; SDef
+ db "BURAtuKI-@@"
+
+
+ db DRAGONITE
+ db QUICK_CLAW
+ db FIRE_BLAST, HYPER_BEAM, OUTRAGE, BLIZZARD
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 65000
+ bigdw 50000
+ bigdw 56000
+ bigdw 60000
+ bigdw 60000
+ db $fd, $ed ; DVs
+ db 5, 5, 15, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 343 ; HP
+ bigdw 343 ; Max HP
+ bigdw 322 ; Atk
+ bigdw 252 ; Def
+ bigdw 229 ; Spd
+ bigdw 263 ; SAtk
+ bigdw 263 ; SDef
+ db "KAIRIyu-@@@"
+
+
+ db STARMIE
+ db LEFTOVERS
+ db RECOVER, THUNDERBOLT, SURF, PSYCHIC_M
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ bigdw 55000
+ bigdw 60000
+ db $df, $dd ; DVs
+ db 20, 15, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 289 ; HP
+ bigdw 289 ; Max HP
+ bigdw 218 ; Atk
+ bigdw 239 ; Def
+ bigdw 287 ; Spd
+ bigdw 263 ; SAtk
+ bigdw 236 ; SDef
+ db "SUTA-MI-@@@"
+
+
+ db CLOYSTER
+ db LEFTOVERS
+ db EXPLOSION, BLIZZARD, SURF, ICY_WIND
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $db, $df ; DVs
+ db 5, 5, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 266 ; HP
+ bigdw 266 ; Max HP
+ bigdw 248 ; Atk
+ bigdw 398 ; Def
+ bigdw 203 ; Spd
+ bigdw 234 ; SAtk
+ bigdw 162 ; SDef
+ db "PARUSIeN@@@"
+
+
+ db CROBAT
+ db GOLD_BERRY
+ db WING_ATTACK, HAZE, HYPER_BEAM, GIGA_DRAIN
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fd, $cf ; DVs
+ db 35, 30, 5, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 325 ; HP
+ bigdw 325 ; Max HP
+ bigdw 243 ; Atk
+ bigdw 221 ; Def
+ bigdw 310 ; Spd
+ bigdw 207 ; SAtk
+ bigdw 225 ; SDef
+ db "KUROBAtuTO@"
+
+
+ db PORYGON2
+ db QUICK_CLAW
+ db TOXIC, PSYCHIC_M, RECOVER, PROTECT
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $fd, $ed ; DVs
+ db 10, 10, 20, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 325 ; HP
+ bigdw 325 ; Max HP
+ bigdw 223 ; Atk
+ bigdw 239 ; Def
+ bigdw 190 ; Spd
+ bigdw 266 ; SAtk
+ bigdw 248 ; SDef
+ db "PORIGON2@@@"
+
+
+ db KINGDRA
+ db LEFTOVERS
+ db DRAGONBREATH, SURF, HYPER_BEAM, BLIZZARD
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ bigdw 45000
+ db $df, $de ; DVs
+ db 20, 15, 5, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 309 ; HP
+ bigdw 309 ; Max HP
+ bigdw 248 ; Atk
+ bigdw 255 ; Def
+ bigdw 230 ; Spd
+ bigdw 248 ; SAtk
+ bigdw 248 ; SDef
+ db "KINGUDORA@@"
+
+
+ db TYRANITAR
+ db QUICK_CLAW
+ db HYPER_BEAM, CRUNCH, EARTHQUAKE, ROCK_SLIDE
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ db $df, $de ; DVs
+ db 5, 15, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 354 ; HP
+ bigdw 354 ; Max HP
+ bigdw 321 ; Atk
+ bigdw 279 ; Def
+ bigdw 185 ; Spd
+ bigdw 250 ; SAtk
+ bigdw 259 ; SDef
+ db "BANGIRASU@@"
+
+
+ db LAPRAS
+ db MINT_BERRY
+ db REST, SURF, THUNDERBOLT, PSYCHIC_M
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 55000
+ db $bd, $ef ; DVs
+ db 10, 15, 15, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 405 ; HP
+ bigdw 405 ; Max HP
+ bigdw 227 ; Atk
+ bigdw 221 ; Def
+ bigdw 187 ; Spd
+ bigdw 237 ; SAtk
+ bigdw 255 ; SDef
+ db "RAPURASU@@@"
+
+
+ db ESPEON
+ db GOLD_BERRY
+ db PSYCHIC_M, SHADOW_BALL, SUNNY_DAY, MORNING_SUN
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 50000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $dd, $fe ; DVs
+ db 10, 15, 5, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 294 ; HP
+ bigdw 294 ; Max HP
+ bigdw 194 ; Atk
+ bigdw 185 ; Def
+ bigdw 282 ; Spd
+ bigdw 313 ; SAtk
+ bigdw 250 ; SDef
+ db "E-HUi@@@@@@"
+
+
+ db MACHAMP
+ db QUICK_CLAW
+ db CROSS_CHOP, VITAL_THROW, FIRE_BLAST, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 55000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $dd, $ed ; DVs
+ db 5, 10, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 337 ; HP
+ bigdw 337 ; Max HP
+ bigdw 314 ; Atk
+ bigdw 221 ; Def
+ bigdw 181 ; Spd
+ bigdw 194 ; SAtk
+ bigdw 230 ; SDef
+ db "KAIRIKI-@@@"
+
+
+ db SNORLAX
+ db MIRACLEBERRY
+ db FIRE_BLAST, SURF, EARTHQUAKE, HYPER_BEAM
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ bigdw 50000
+ db $fe, $fd ; DVs
+ db 5, 15, 10, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 455 ; HP
+ bigdw 455 ; Max HP
+ bigdw 279 ; Atk
+ bigdw 199 ; Def
+ bigdw 135 ; Spd
+ bigdw 194 ; SAtk
+ bigdw 275 ; SDef
+ db "KABIGON@@@@"
+
+
+ db ARCANINE
+ db MINT_BERRY
+ db SUNNY_DAY, FLAMETHROWER, EXTREMESPEED, REST
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 45000
+ bigdw 55000
+ db $df, $de ; DVs
+ db 5, 15, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 336 ; HP
+ bigdw 336 ; Max HP
+ bigdw 274 ; Atk
+ bigdw 225 ; Def
+ bigdw 247 ; Spd
+ bigdw 262 ; SAtk
+ bigdw 226 ; SDef
+ db "UINDEi@@@@@"
+
+
+ db BLISSEY
+ db LEFTOVERS
+ db SOLARBEAM, SUNNY_DAY, SOFTBOILED, FIRE_BLAST
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $bd, $fe ; DVs
+ db 10, 5, 10, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 633 ; HP
+ bigdw 633 ; Max HP
+ bigdw 90 ; Atk
+ bigdw 95 ; Def
+ bigdw 180 ; Spd
+ bigdw 214 ; SAtk
+ bigdw 322 ; SDef
+ db "HAPINASU@@@"
+
+
+ db HOUNDOOM
+ db BRIGHTPOWDER
+ db FLAMETHROWER, CRUNCH, SUNNY_DAY, SOLARBEAM
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $db, $fe ; DVs
+ db 15, 15, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 309 ; HP
+ bigdw 309 ; Max HP
+ bigdw 235 ; Atk
+ bigdw 164 ; Def
+ bigdw 252 ; Spd
+ bigdw 277 ; SAtk
+ bigdw 223 ; SDef
+ db "HERUGA-@@@@"
+
+
+ db SKARMORY
+ db QUICK_CLAW
+ db SANDSTORM, STEEL_WING, TOXIC, RETURN
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $ef, $f7 ; DVs
+ db 10, 25, 10, 20 ; PP
+ db 255 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 279 ; HP
+ bigdw 279 ; Max HP
+ bigdw 223 ; Atk
+ bigdw 333 ; Def
+ bigdw 207 ; Spd
+ bigdw 139 ; SAtk
+ bigdw 193 ; SDef
+ db "EA-MUDO@@@@"
+
+
+ db SHUCKLE
+ db LEFTOVERS
+ db TOXIC, WRAP, PROTECT, ENCORE
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fe, $fe ; DVs
+ db 10, 20, 10, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 203 ; HP
+ bigdw 203 ; Max HP
+ bigdw 99 ; Atk
+ bigdw 493 ; Def
+ bigdw 90 ; Spd
+ bigdw 97 ; SAtk
+ bigdw 493 ; SDef
+ db "TUBOTUBO@@@"
+
+
+ db FLAREON
+ db MINT_BERRY
+ db HYPER_BEAM, FLAMETHROWER, SHADOW_BALL, ROAR
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $f7, $f7 ; DVs
+ db 5, 15, 15, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 293 ; HP
+ bigdw 293 ; Max HP
+ bigdw 315 ; Atk
+ bigdw 175 ; Def
+ bigdw 198 ; Spd
+ bigdw 238 ; SAtk
+ bigdw 265 ; SDef
+ db "BU-SUTA-@@@"
+
+
+ db MILTANK
+ db LEFTOVERS
+ db MILK_DRINK, EARTHQUAKE, ATTRACT, BODY_SLAM
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $47, $57 ; DVs
+ db 10, 10, 15, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 322 ; HP
+ bigdw 322 ; Max HP
+ bigdw 194 ; Atk
+ bigdw 245 ; Def
+ bigdw 232 ; Spd
+ bigdw 128 ; SAtk
+ bigdw 182 ; SDef
+ db "MIRUTANKU@@"
+
+
+ db TAUROS
+ db PINK_BOW
+ db THUNDERBOLT, HYPER_BEAM, ATTRACT, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $65, $76 ; DVs
+ db 15, 5, 15, 10 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 284 ; HP
+ bigdw 284 ; Max HP
+ bigdw 234 ; Atk
+ bigdw 223 ; Def
+ bigdw 254 ; Spd
+ bigdw 126 ; SAtk
+ bigdw 180 ; SDef
+ db "KENTAROSU@@"
+
+
+ db MUK
+ db QUICK_CLAW
+ db TOXIC, SLUDGE_BOMB, ATTRACT, GIGA_DRAIN
+ dw 0 ; OT ID
+ dt 729000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $54, $44 ; DVs
+ db 10, 10, 15, 5 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 90 ; Level
+ db 0, 0 ; Status
+ bigdw 342 ; HP
+ bigdw 342 ; Max HP
+ bigdw 241 ; Atk
+ bigdw 185 ; Def
+ bigdw 140 ; Spd
+ bigdw 167 ; SAtk
+ bigdw 230 ; SDef
+ db "BETOBETON@@"
+
+
+
+
+BattleTowerMons10:
+
+ db HOUNDOOM
+ db MINT_BERRY
+ db CRUNCH, FLAMETHROWER, ROAR, REST
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ db $fd, $ed ; DVs
+ db 15, 15, 20, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 347 ; HP
+ bigdw 347 ; Max HP
+ bigdw 276 ; Atk
+ bigdw 192 ; Def
+ bigdw 284 ; Spd
+ bigdw 312 ; SAtk
+ bigdw 252 ; SDef
+ db "HERUGA-@@@@"
+
+
+ db MACHAMP
+ db QUICK_CLAW
+ db CROSS_CHOP, EARTHQUAKE, HYPER_BEAM, VITAL_THROW
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ db $fd, $ef ; DVs
+ db 5, 10, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 377 ; HP
+ bigdw 377 ; Max HP
+ bigdw 356 ; Atk
+ bigdw 252 ; Def
+ bigdw 204 ; Spd
+ bigdw 226 ; SAtk
+ bigdw 266 ; SDef
+ db "KAIRIKI-@@@"
+
+
+ db KINGDRA
+ db LEFTOVERS
+ db SURF, DRAGONBREATH, REST, TOXIC
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ bigdw 60000
+ db $df, $fe ; DVs
+ db 15, 20, 10, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 349 ; HP
+ bigdw 349 ; Max HP
+ bigdw 282 ; Atk
+ bigdw 286 ; Def
+ bigdw 266 ; Spd
+ bigdw 284 ; SAtk
+ bigdw 284 ; SDef
+ db "KINGUDORA@@"
+
+
+ db JOLTEON
+ db BRIGHTPOWDER
+ db THUNDERBOLT, ROAR, THUNDER_WAVE, IRON_TAIL
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 30000
+ bigdw 50000
+ db $fd, $fe ; DVs
+ db 15, 20, 20, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 323 ; HP
+ bigdw 323 ; Max HP
+ bigdw 220 ; Atk
+ bigdw 206 ; Def
+ bigdw 338 ; Spd
+ bigdw 308 ; SAtk
+ bigdw 278 ; SDef
+ db "SANDA-SU@@@"
+
+
+ db TAUROS
+ db KINGS_ROCK
+ db HYPER_BEAM, EARTHQUAKE, IRON_TAIL, THUNDERBOLT
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fd, $ef ; DVs
+ db 5, 10, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 341 ; HP
+ bigdw 341 ; Max HP
+ bigdw 290 ; Atk
+ bigdw 276 ; Def
+ bigdw 308 ; Spd
+ bigdw 170 ; SAtk
+ bigdw 230 ; SDef
+ db "KENTAROSU@@"
+
+
+ db ARCANINE
+ db LEFTOVERS
+ db FLAMETHROWER, EXTREMESPEED, IRON_TAIL, HYPER_BEAM
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 50000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $dd, $ef ; DVs
+ db 15, 5, 15, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 374 ; HP
+ bigdw 374 ; Max HP
+ bigdw 306 ; Atk
+ bigdw 246 ; Def
+ bigdw 281 ; Spd
+ bigdw 290 ; SAtk
+ bigdw 250 ; SDef
+ db "UINDEi@@@@@"
+
+
+ db CHARIZARD
+ db SCOPE_LENS
+ db FLAMETHROWER, EARTHQUAKE, SLASH, FLY
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 55000
+ bigdw 55000
+ bigdw 55000
+ db $fe, $df ; DVs
+ db 15, 10, 20, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 343 ; HP
+ bigdw 343 ; Max HP
+ bigdw 258 ; Atk
+ bigdw 247 ; Def
+ bigdw 289 ; Spd
+ bigdw 311 ; SAtk
+ bigdw 263 ; SDef
+ db "RIZA-DON@@@"
+
+
+ db ELECTRODE
+ db BRIGHTPOWDER
+ db THUNDER_WAVE, THUNDERBOLT, EXPLOSION, MIRROR_COAT
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ bigdw 45000
+ db $fb, $ef ; DVs
+ db 20, 15, 5, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 309 ; HP
+ bigdw 309 ; Max HP
+ bigdw 190 ; Atk
+ bigdw 222 ; Def
+ bigdw 366 ; Spd
+ bigdw 248 ; SAtk
+ bigdw 248 ; SDef
+ db "MARUMAIN@@@"
+
+
+ db RHYDON
+ db MIRACLEBERRY
+ db SURF, EARTHQUAKE, HYPER_BEAM, ROCK_SLIDE
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ bigdw 45000
+ db $fd, $ef ; DVs
+ db 15, 10, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 404 ; HP
+ bigdw 404 ; Max HP
+ bigdw 350 ; Atk
+ bigdw 329 ; Def
+ bigdw 168 ; Spd
+ bigdw 178 ; SAtk
+ bigdw 178 ; SDef
+ db "SAIDON@@@@@"
+
+
+ db STEELIX
+ db LEFTOVERS
+ db EARTHQUAKE, HYPER_BEAM, SWAGGER, CRUNCH
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 55000
+ bigdw 60000
+ bigdw 50000
+ db $fd, $de ; DVs
+ db 10, 5, 15, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 343 ; HP
+ bigdw 343 ; Max HP
+ bigdw 260 ; Atk
+ bigdw 489 ; Def
+ bigdw 152 ; Spd
+ bigdw 198 ; SAtk
+ bigdw 218 ; SDef
+ db "HAGANE-RU@@"
+
+
+ db FEAROW
+ db KINGS_ROCK
+ db DRILL_PECK, STEEL_WING, HYPER_BEAM, MUD_SLAP
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 55000
+ bigdw 50000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ db $fd, $cf ; DVs
+ db 20, 25, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 324 ; HP
+ bigdw 324 ; Max HP
+ bigdw 270 ; Atk
+ bigdw 216 ; Def
+ bigdw 287 ; Spd
+ bigdw 212 ; SAtk
+ bigdw 212 ; SDef
+ db "ONIDORIRU@@"
+
+
+ db MISDREAVUS
+ db FOCUS_BAND
+ db PERISH_SONG, MEAN_LOOK, PAIN_SPLIT, SHADOW_BALL
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 45000
+ bigdw 50000
+ bigdw 55000
+ bigdw 50000
+ bigdw 55000
+ db $bd, $ef ; DVs
+ db 5, 5, 20, 15 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 309 ; HP
+ bigdw 309 ; Max HP
+ bigdw 202 ; Atk
+ bigdw 209 ; Def
+ bigdw 258 ; Spd
+ bigdw 263 ; SAtk
+ bigdw 263 ; SDef
+ db "MUUMA@@@@@@"
+
+
+ db SNEASEL
+ db SCOPE_LENS
+ db SLASH, BLIZZARD, DREAM_EATER, FAINT_ATTACK
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 48000
+ bigdw 45000
+ bigdw 50000
+ db $fd, $ef ; DVs
+ db 20, 5, 15, 20 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 301 ; HP
+ bigdw 301 ; Max HP
+ bigdw 280 ; Atk
+ bigdw 195 ; Def
+ bigdw 316 ; Spd
+ bigdw 160 ; SAtk
+ bigdw 240 ; SDef
+ db "NIyu-RA@@@@"
+
+
+ db SCIZOR
+ db QUICK_CLAW
+ db STEEL_WING, HYPER_BEAM, SLASH, TOXIC
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 45000
+ db $fb, $fe ; DVs
+ db 25, 5, 20, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 333 ; HP
+ bigdw 333 ; Max HP
+ bigdw 350 ; Atk
+ bigdw 282 ; Def
+ bigdw 220 ; Spd
+ bigdw 196 ; SAtk
+ bigdw 246 ; SDef
+ db "HAtuSAMU@@@"
+
+
+ db BLISSEY
+ db LEFTOVERS
+ db THUNDERBOLT, BLIZZARD, FIRE_BLAST, SOFTBOILED
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 40000
+ bigdw 50000
+ bigdw 30000
+ bigdw 30000
+ db $dd, $fe ; DVs
+ db 15, 5, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 703 ; HP
+ bigdw 703 ; Max HP
+ bigdw 101 ; Atk
+ bigdw 106 ; Def
+ bigdw 188 ; Spd
+ bigdw 226 ; SAtk
+ bigdw 346 ; SDef
+ db "HAPINASU@@@"
+
+
+ db PILOSWINE
+ db MINT_BERRY
+ db REST, BLIZZARD, HYPER_BEAM, EARTHQUAKE
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fe, $f7 ; DVs
+ db 10, 5, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 387 ; HP
+ bigdw 387 ; Max HP
+ bigdw 290 ; Atk
+ bigdw 248 ; Def
+ bigdw 190 ; Spd
+ bigdw 194 ; SAtk
+ bigdw 194 ; SDef
+ db "INOMU-@@@@@"
+
+
+ db EXEGGUTOR
+ db QUICK_CLAW
+ db PSYCHIC_M, TOXIC, EXPLOSION, GIGA_DRAIN
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fe, $fe ; DVs
+ db 10, 10, 5, 5 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 375 ; HP
+ bigdw 375 ; Max HP
+ bigdw 280 ; Atk
+ bigdw 258 ; Def
+ bigdw 200 ; Spd
+ bigdw 338 ; SAtk
+ bigdw 218 ; SDef
+ db "NAtuSI-@@@@"
+
+
+ db OMASTAR
+ db LEFTOVERS
+ db SURF, ANCIENTPOWER, BLIZZARD, TOXIC
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ bigdw 50000
+ db $fb, $e7 ; DVs
+ db 15, 5, 5, 10 ; PP
+ db 100 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 331 ; HP
+ bigdw 331 ; Max HP
+ bigdw 210 ; Atk
+ bigdw 332 ; Def
+ bigdw 198 ; Spd
+ bigdw 304 ; SAtk
+ bigdw 214 ; SDef
+ db "OMUSUTA-@@@"
+
+
+ db GOLEM
+ db BRIGHTPOWDER
+ db EXPLOSION, EARTHQUAKE, ROCK_SLIDE, FIRE_BLAST
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $74, $46 ; DVs
+ db 5, 10, 10, 5 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 329 ; HP
+ bigdw 329 ; Max HP
+ bigdw 282 ; Atk
+ bigdw 316 ; Def
+ bigdw 146 ; Spd
+ bigdw 170 ; SAtk
+ bigdw 190 ; SDef
+ db "GORO-NIya@@"
+
+
+ db HITMONCHAN
+ db FOCUS_BAND
+ db COUNTER, FIRE_PUNCH, THUNDERPUNCH, ICE_PUNCH
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $67, $76 ; DVs
+ db 20, 15, 15, 15 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 265 ; HP
+ bigdw 265 ; Max HP
+ bigdw 270 ; Atk
+ bigdw 220 ; Def
+ bigdw 214 ; Spd
+ bigdw 130 ; SAtk
+ bigdw 280 ; SDef
+ db "EBIWARA-@@@"
+
+
+ db LANTURN
+ db QUICK_CLAW
+ db SURF, RAIN_DANCE, ZAP_CANNON, CONFUSE_RAY
+ dw 0 ; OT ID
+ dt 1000000 ; Exp
+ ; Stat exp
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ bigdw 30000
+ db $76, $57 ; DVs
+ db 15, 5, 5, 10 ; PP
+ db 0 ; Happiness
+ db 0, 0, 0 ; Pokerus, Caught data
+ db 100 ; Level
+ db 0, 0 ; Status
+ bigdw 425 ; HP
+ bigdw 425 ; Max HP
+ bigdw 178 ; Atk
+ bigdw 176 ; Def
+ bigdw 192 ; Spd
+ bigdw 214 ; SAtk
+ bigdw 214 ; SDef
+ db "RANTA-N@@@@"
+
+
+
--- /dev/null
+++ b/text/battle_tower.asm
@@ -1,0 +1,616 @@
+
+UnknownText_0x1ec000: ; 0x1ec000
+ db $0, "Hello, glad to", $4f
+ db "meet you!", $51
+ db "I do hope we have", $4f
+ db "a good battle.", $57
+; 0x1ec03b
+
+UnknownText_0x1ec03b: ; 0x1ec03b
+ db $0, "Thank you! A most", $4f
+ db "enjoyable battle!", $57
+; 0x1ec060
+
+UnknownText_0x1ec060: ; 0x1ec060
+ db $0, "Thank you. You are", $4f
+ db "formidable.", $57
+; 0x1ec080
+
+UnknownText_0x1ec080: ; 0x1ec080
+ db $0, "Work, work, work…", $4f
+ db "I'm always busy!", $57
+; 0x1ec0a3
+
+UnknownText_0x1ec0a3: ; 0x1ec0a3
+ db $0, "But, I work hard", $4f
+ db "in battle too!", $57
+; 0x1ec0c4
+
+UnknownText_0x1ec0c4: ; 0x1ec0c4
+ db $0, "I'm too busy to be", $4f
+ db "battling!", $57
+; 0x1ec0e1
+
+UnknownText_0x1ec0e1: ; 0x1ec0e1
+ db $0, "Brace yourself for", $4f
+ db "my all-out attack!", $57
+; 0x1ec108
+
+UnknownText_0x1ec108: ; 0x1ec108
+ db $0, "What a cakewalk!", $4f
+ db "You're too easy!", $57
+; 0x1ec12a
+
+UnknownText_0x1ec12a: ; 0x1ec12a
+ db $0, "I won't lose next", $4f
+ db "time, all right?", $57
+; 0x1ec14d
+
+UnknownText_0x1ec14d: ; 0x1ec14d
+ db $0, "Heh, your #MON", $4f
+ db "look pretty cool.", $57
+; 0x1ec16f
+
+UnknownText_0x1ec16f: ; 0x1ec16f
+ db $0, "Hey, hey, no way!", $4f
+ db "You won't win!", $57
+; 0x1ec190
+
+UnknownText_0x1ec190: ; 0x1ec190
+ db $0, "You serious?", $4f
+ db "This is brutal!", $57
+; 0x1ec1ae
+
+UnknownText_0x1ec1ae: ; 0x1ec1ae
+ db $0, "#MON every day!", $4f
+ db "I love battling!", $57
+; 0x1ec1d0
+
+UnknownText_0x1ec1d0: ; 0x1ec1d0
+ db $0, "I'm on top of my", $4f
+ db "game, but not you!", $57
+; 0x1ec1f4
+
+UnknownText_0x1ec1f4: ; 0x1ec1f4
+ db $0, "I don't care that", $4f
+ db "I lost, really!", $57
+; 0x1ec216
+
+UnknownText_0x1ec216: ; 0x1ec216
+ db $0, "Hi, there! Let's", $4f
+ db "keep this clean!", $57
+; 0x1ec238
+
+UnknownText_0x1ec238: ; 0x1ec238
+ db $0, "Whoops, sorry for", $4f
+ db "that wipeout!", $57
+; 0x1ec259
+
+UnknownText_0x1ec259: ; 0x1ec259
+ db $0, "Whoops! Come on,", $4f
+ db "let me win one!", $57
+; 0x1ec27b
+
+UnknownText_0x1ec27b: ; 0x1ec27b
+ db $0, "Do you want to see", $4f
+ db "my battle level?", $57
+; 0x1ec2a0
+
+UnknownText_0x1ec2a0: ; 0x1ec2a0
+ db $0, "Hehehe, I know", $4f
+ db "your level now!", $57
+; 0x1ec2c0
+
+UnknownText_0x1ec2c0: ; 0x1ec2c0
+ db $0, "Ouch… I'm just too", $4f
+ db "weak…", $57
+; 0x1ec2d9
+
+UnknownText_0x1ec2d9: ; 0x1ec2d9
+ db $0, "Hey, let's battle.", $4f
+ db "I'm your opponent.", $57
+; 0x1ec2fe
+
+UnknownText_0x1ec2fe: ; 0x1ec2fe
+ db $0, "Wow, you're not", $4f
+ db "serious about it!", $57
+; 0x1ec320
+
+UnknownText_0x1ec320: ; 0x1ec320
+ db $0, "…Urgh… Nothing", $4f
+ db "positive here…", $57
+; 0x1ec33f
+
+UnknownText_0x1ec33f: ; 0x1ec33f
+ db $0, "I'm your", $4f
+ db "opponent.", $51
+ db "Get ready to be", $4f
+ db "hammered.", $57
+; 0x1ec36c
+
+UnknownText_0x1ec36c: ; 0x1ec36c
+ db $0, "Hahah! That was a", $4f
+ db "pushover!", $57
+; 0x1ec389
+
+UnknownText_0x1ec389: ; 0x1ec389
+ db $0, "No way! There has", $4f
+ db "to be a mistake!", $57
+; 0x1ec3ad
+
+UnknownText_0x1ec3ad: ; 0x1ec3ad
+ db $0, "Hah!", $4f
+ db "Let's get rolling!", $57
+; 0x1ec3c5
+
+UnknownText_0x1ec3c5: ; 0x1ec3c5
+ db $0, "Wahahaha! Didn't", $4f
+ db "break a sweat!", $57
+; 0x1ec3e5
+
+UnknownText_0x1ec3e5: ; 0x1ec3e5
+ db $0, "Tough! I'm no", $4f
+ db "match for you!", $57
+; 0x1ec402
+
+UnknownText_0x1ec402: ; 0x1ec402
+ db $0, $56, $56, $56, $4f
+ db $56, $56, "Battle?", $57
+; 0x1ec411
+
+UnknownText_0x1ec411: ; 0x1ec411
+ db $0, $56, $56, $56, $4f
+ db $56, $56, "I won?", $57
+; 0x1ec41f
+
+UnknownText_0x1ec41f: ; 0x1ec41f
+ db $0, $56, $56, $56, $4f
+ db $56, $56, "I lost?", $57
+; 0x1ec42e
+
+UnknownText_0x1ec42e: ; 0x1ec42e
+ db $0, "You want to be a", $4f
+ db "leader?", $51
+ db "Let me battle you,", $4f
+ db "then!", $57
+; 0x1ec461
+
+UnknownText_0x1ec461: ; 0x1ec461
+ db $0, "You need another", $4f
+ db "ten years of", $51
+ db "training to get", $4f
+ db "better, I'd say.", $57
+; 0x1ec4a0
+
+UnknownText_0x1ec4a0: ; 0x1ec4a0
+ db $0, "You're incredibly", $4f
+ db "talented.", $51
+ db "No one can touch", $4f
+ db "you now!", $57
+; 0x1ec4d6
+
+UnknownText_0x1ec4d6: ; 0x1ec4d6
+ db $0, "Today, I'm going", $4f
+ db "to whomp you.", $57
+; 0x1ec4f5
+
+UnknownText_0x1ec4f5: ; 0x1ec4f5
+ db $0, "I knew I'd win.", $4f
+ db "I'm so great!", $57
+; 0x1ec512
+
+UnknownText_0x1ec512: ; 0x1ec512
+ db $0, "Uh? My plans are", $4f
+ db "out of whack…", $57
+; 0x1ec532
+
+UnknownText_0x1ec532: ; 0x1ec532
+ db $0, "I bet you can't", $4f
+ db "beat me!", $57
+; 0x1ec54b
+
+UnknownText_0x1ec54b: ; 0x1ec54b
+ db $0, "Those #MON", $4f
+ db "aren't enough!", $57
+; 0x1ec565
+
+UnknownText_0x1ec565: ; 0x1ec565
+ db $0, "I want your", $4f
+ db "#MON. Please?", $57
+; 0x1ec580
+
+UnknownText_0x1ec580: ; 0x1ec580
+ db $0, "I'll show you a", $4f
+ db "real battle!", $57
+; 0x1ec59d
+
+UnknownText_0x1ec59d: ; 0x1ec59d
+ db $0, "This battle…", $4f
+ db "I'm bored!", $57
+; 0x1ec5b5
+
+UnknownText_0x1ec5b5: ; 0x1ec5b5
+ db $0, "…I won't turn tail", $4f
+ db "in battle!", $57
+; 0x1ec5d3
+
+UnknownText_0x1ec5d3: ; 0x1ec5d3
+ db $0, "Let's go!", $4f
+ db "No holds barred!", $57
+; 0x1ec5ee
+
+UnknownText_0x1ec5ee: ; 0x1ec5ee
+ db $0, "Sorry! I wanted", $4f
+ db "the win more!", $57
+; 0x1ec60d
+
+UnknownText_0x1ec60d: ; 0x1ec60d
+ db $0, "Wahah! Congrats!", $4f
+ db "I can't do better!", $57
+; 0x1ec631
+
+UnknownText_0x1ec631: ; 0x1ec631
+ db $0, "My #MON skills", $4f
+ db "are phenomenal!", $57
+; 0x1ec651
+
+UnknownText_0x1ec651: ; 0x1ec651
+ db $0, "You've got a long", $4f
+ db "way to go.", $51
+ db "Well, keep trying!", $4f
+ db "Best of luck!", $57
+; 0x1ec68f
+
+UnknownText_0x1ec68f: ; 0x1ec68f
+ db $0, "Aww… Don't lose", $4f
+ db "after beating me.", $57
+; 0x1ec6b1
+
+UnknownText_0x1ec6b1: ; 0x1ec6b1
+ db $0, "Who are you?", $4f
+ db "I don't know you…", $57
+; 0x1ec6d0
+
+UnknownText_0x1ec6d0: ; 0x1ec6d0
+ db $0, "I must've imagined", $4f
+ db "that.", $51
+ db "There seems to be", $4f
+ db "no one here…", $57
+; 0x1ec708
+
+UnknownText_0x1ec708: ; 0x1ec708
+ db $0, "Who am I?", $4f
+ db "I don't know…", $57
+; 0x1ec720
+
+UnknownText_0x1ec720: ; 0x1ec720
+ db $0, "Um… Are you that…", $4f
+ db "um…person?", $57
+; 0x1ec73e
+
+UnknownText_0x1ec73e: ; 0x1ec73e
+ db $0, "It doesn't appear", $4f
+ db "to be you…", $57
+; 0x1ec75b
+
+UnknownText_0x1ec75b: ; 0x1ec75b
+ db $0, "Then you really", $4f
+ db "are the legendary…", $57
+; 0x1ec77f
+
+UnknownText_0x1ec77f: ; 0x1ec77f
+ db $0, "I heard that", $4f
+ db "you're hot!", $57
+; 0x1ec798
+
+UnknownText_0x1ec798: ; 0x1ec798
+ db $0, "Not bad. I was", $4f
+ db "just a bit better.", $57
+; 0x1ec7bb
+
+UnknownText_0x1ec7bb: ; 0x1ec7bb
+ db $0, "Eh, you're not", $4f
+ db "that special.", $57
+; 0x1ec7d8
+
+UnknownText_0x1ec7d8: ; 0x1ec7d8
+ db $0, "I'm scared about", $4f
+ db "what might happen.", $51
+ db "My #MON are way", $4f
+ db "too strong.", $57
+; 0x1ec818
+
+UnknownText_0x1ec818: ; 0x1ec818
+ db $0, "See? My #MON", $4f
+ db "were too strong.", $57
+; 0x1ec837
+
+UnknownText_0x1ec837: ; 0x1ec837
+ db $0, "Graa! My #MON", $4f
+ db "were total wimps!", $57
+; 0x1ec858
+
+UnknownText_0x1ec858: ; 0x1ec858
+ db $0, "Hey, there!", $4f
+ db "I'll take you on!", $57
+; 0x1ec876
+
+UnknownText_0x1ec876: ; 0x1ec876
+ db $0, "Don't you have a", $4f
+ db "better strategy?", $57
+; 0x1ec898
+
+UnknownText_0x1ec898: ; 0x1ec898
+ db $0, "You've got decent", $4f
+ db "style!", $57
+; 0x1ec8b1
+
+UnknownText_0x1ec8b1: ; 0x1ec8b1
+ db $0, "I wonder if I can", $4f
+ db "battle properly…", $57
+; 0x1ec8d5
+
+UnknownText_0x1ec8d5: ; 0x1ec8d5
+ db $0, "Um… Sorry…", $4f
+ db "I think I won.", $57
+; 0x1ec8f0
+
+UnknownText_0x1ec8f0: ; 0x1ec8f0
+ db $0, "I guess I'm not", $4f
+ db "good enough yet…", $57
+; 0x1ec911
+
+UnknownText_0x1ec911: ; 0x1ec911
+ db $0, "Wrrooar!", $4f
+ db "I won't lose!", $57
+; 0x1ec928
+
+UnknownText_0x1ec928: ; 0x1ec928
+ db $0, "Wrrooar! I knew", $4f
+ db "I was a genius!", $57
+; 0x1ec949
+
+UnknownText_0x1ec949: ; 0x1ec949
+ db $0, "Arrooh! I hate it", $4f
+ db "when I lose!", $57
+; 0x1ec969
+
+UnknownText_0x1ec969: ; 0x1ec969
+ db $0, "Sorry, but I'm", $4f
+ db "going to win.", $57
+; 0x1ec986
+
+UnknownText_0x1ec986: ; 0x1ec986
+ db $0, "Yeah! My #MON", $4f
+ db "rule!", $57
+; 0x1ec99b
+
+UnknownText_0x1ec99b: ; 0x1ec99b
+ db $0, "Oh, close! I lost", $4f
+ db "by just a bit!", $57
+; 0x1ec9bd
+
+UnknownText_0x1ec9bd: ; 0x1ec9bd
+ db $0, "OK, I'm not", $4f
+ db "fooling around!", $57
+; 0x1ec9d9
+
+UnknownText_0x1ec9d9: ; 0x1ec9d9
+ db $0, "Yay! Too easy!", $4f
+ db "Like, no way!", $57
+; 0x1ec9f7
+
+UnknownText_0x1ec9f7: ; 0x1ec9f7
+ db $0, "No!", $4f
+ db "Like, no way!", $57
+; 0x1eca0a
+
+UnknownText_0x1eca0a: ; 0x1eca0a
+ db $0, "Look! My #MON", $4f
+ db "are really cute!", $57
+; 0x1eca2a
+
+UnknownText_0x1eca2a: ; 0x1eca2a
+ db $0, "Aren't they really", $4f
+ db "adorable?", $57
+; 0x1eca47
+
+UnknownText_0x1eca47: ; 0x1eca47
+ db $0, "I'm sorry, it's", $4f
+ db "all my fault!", $57
+; 0x1eca64
+
+UnknownText_0x1eca64: ; 0x1eca64
+ db $0, "Let's get our", $4f
+ db "battle started!", $57
+; 0x1eca82
+
+UnknownText_0x1eca82: ; 0x1eca82
+ db $0, "Was I too strong", $4f
+ db "for you?", $57
+; 0x1eca9d
+
+UnknownText_0x1eca9d: ; 0x1eca9d
+ db $0, "Ooh, you're in a", $4f
+ db "different class.", $57
+; 0x1ecabf
+
+UnknownText_0x1ecabf: ; 0x1ecabf
+ db $0, "Are we going to", $4f
+ db "battle? Let's!", $57
+; 0x1ecade
+
+UnknownText_0x1ecade: ; 0x1ecade
+ db $0, "Oh, you're too", $4f
+ db "weak. Shame.", $57
+; 0x1ecafa
+
+UnknownText_0x1ecafa: ; 0x1ecafa
+ db $0, "Wow! Are you quite", $4f
+ db "satisfied?", $57
+; 0x1ecb19
+
+UnknownText_0x1ecb19: ; 0x1ecb19
+ db $0, "Oh, you have some", $4f
+ db "rare #MON.", $57
+; 0x1ecb37
+
+UnknownText_0x1ecb37: ; 0x1ecb37
+ db $0, "May I have one of", $4f
+ db "your #MON?", $57
+; 0x1ecb55
+
+UnknownText_0x1ecb55: ; 0x1ecb55
+ db $0, "…I want one of", $4f
+ db "your #MON.", $57
+; 0x1ecb70
+
+UnknownText_0x1ecb70: ; 0x1ecb70
+ db $0, "Want to hear about", $4f
+ db "my cute #MON?", $57
+; 0x1ecb92
+
+UnknownText_0x1ecb92: ; 0x1ecb92
+ db $0, "What do you think", $4f
+ db "about my cuties?", $57
+; 0x1ecbb6
+
+UnknownText_0x1ecbb6: ; 0x1ecbb6
+ db $0, "Oh! My! You're a", $4f
+ db "dreadful trainer!", $57
+; 0x1ecbd9
+
+UnknownText_0x1ecbd9: ; 0x1ecbd9
+ db $0, "Battle? Sure!", $4f
+ db "Right now!", $57
+; 0x1ecbf3
+
+UnknownText_0x1ecbf3: ; 0x1ecbf3
+ db $0, "Oh, I love it!", $4f
+ db "Battling is wild!", $57
+; 0x1ecc15
+
+UnknownText_0x1ecc15: ; 0x1ecc15
+ db $0, "Oh, how rude! Wait", $4f
+ db "till next time!", $57
+; 0x1ecc39
+
+UnknownText_0x1ecc39: ; 0x1ecc39
+ db $0, "Please let me win!", $4f
+ db "Please?", $57
+; 0x1ecc55
+
+UnknownText_0x1ecc55: ; 0x1ecc55
+ db $0, "Wow, thank you!", $4f
+ db "You're so nice!", $57
+; 0x1ecc75
+
+UnknownText_0x1ecc75: ; 0x1ecc75
+ db $0, "You're mean!", $4f
+ db "I hate meanies!", $57
+; 0x1ecc92
+
+UnknownText_0x1ecc92: ; 0x1ecc92
+ db $0, "Well, can we", $4f
+ db "begin?", $57
+; 0x1ecca7
+
+UnknownText_0x1ecca7: ; 0x1ecca7
+ db $0, "Well, I beg your", $4f
+ db "pardon…", $57
+; 0x1eccc1
+
+UnknownText_0x1eccc1: ; 0x1eccc1
+ db $0, "Sob… That's not", $4f
+ db "fair!", $57
+; 0x1eccd7
+
+UnknownText_0x1eccd7: ; 0x1eccd7
+ db $0, "I'm good!", $4f
+ db "You can't win.", $57
+; 0x1eccef
+
+UnknownText_0x1eccef: ; 0x1eccef
+ db $0, "Giving up? You're", $4f
+ db "pretty weak!", $57
+; 0x1ecd0e
+
+UnknownText_0x1ecd0e: ; 0x1ecd0e
+ db $0, "I won't accept", $4f
+ db "this… No way!", $57
+; 0x1ecd2b
+
+UnknownText_0x1ecd2b: ; 0x1ecd2b
+ db $0, "Are you treating", $4f
+ db "this seriously?", $57
+; 0x1ecd4d
+
+UnknownText_0x1ecd4d: ; 0x1ecd4d
+ db $0, "Oh, sorry! Looks", $4f
+ db "like I won!", $57
+; 0x1ecd6b
+
+UnknownText_0x1ecd6b: ; 0x1ecd6b
+ db $0, "Oh, how nasty!", $4f
+ db "You were serious!", $57
+; 0x1ecd8d
+
+UnknownText_0x1ecd8d: ; 0x1ecd8d
+ db $0, "Ahahah! I'll take", $4f
+ db "it easy on you!", $57
+; 0x1ecdaf
+
+UnknownText_0x1ecdaf: ; 0x1ecdaf
+ db $0, "Oops, sorry! But", $4f
+ db "I'm happy too!", $57
+; 0x1ecdcf
+
+UnknownText_0x1ecdcf: ; 0x1ecdcf
+ db $0, "Oh, oh, I lost!", $4f
+ db "Thanks. Bye!", $57
+; 0x1ecded
+
+UnknownText_0x1ecded: ; 0x1ecded
+ db $0, "BATTLE TOWER is a", $4f
+ db "tough place!", $57
+; 0x1ece0d
+
+UnknownText_0x1ece0d: ; 0x1ece0d
+ db $0, "You might have a", $4f
+ db "hard time.", $57
+; 0x1ece2a
+
+UnknownText_0x1ece2a: ; 0x1ece2a
+ db $0, "Ooh, you might", $4f
+ db "make a run here!", $57
+; 0x1ece4b
+
+UnknownText_0x1ece4b: ; 0x1ece4b
+ db $0, "I want to see your", $4f
+ db "style in action!", $57
+; 0x1ece70
+
+UnknownText_0x1ece70: ; 0x1ece70
+ db $0, "Every battle is a", $4f
+ db "drama!", $57
+; 0x1ece8a
+
+UnknownText_0x1ece8a: ; 0x1ece8a
+ db $0, "Oh… Want to trade", $4f
+ db "something?", $57
+; 0x1ecea8
+
+UnknownText_0x1ecea8: ; 0x1ecea8
+ db $0, "OK, here goes!", $4f
+ db "I have momentum!", $57
+; 0x1ecec9
+
+UnknownText_0x1ecec9: ; 0x1ecec9
+ db $0, "See, I rolled", $4f
+ db "right over you!", $57
+; 0x1ecee8
+
+UnknownText_0x1ecee8: ; 0x1ecee8
+ db $0, "No! This did not", $4f
+ db "happen!", $57
+; 0x1ecf02
--- a/text/common_2.asm
+++ b/text/common_2.asm
@@ -1,1553 +1,1842 @@
-UnknownText_0x1c0000: ; 1c0000
- db $0, "Oh, no picture?", $4f
- db "Come again, OK?", $57
-; 1c0021
+_FruitBearingTreeText: ; 0x1bc000
+ db $0, "It's a fruit-", $4f
+ db "bearing tree.", $57
+; 0x1bc01c
-UnknownText_0x1c0021: ; 1c0021
- db $0, "An EGG? My talent", $4f
- db "is worth more…", $57
-; 1c0043
+_HeyItsFruitText: ; 0x1bc01c
+ db $0, "Hey! It's", $4f
+ db "@"
+ text_from_ram StringBuffer3
+ db $0, "!", $57
+; 0x1bc02d
-UnknownText_0x1c0043: ; 1c0043
- db $0, "Hello, hello! I'm", $4f
- db "the NAME RATER.", $51
- db "I rate the names", $4f
- db "of #MON.", $51
- db "Would you like me", $4f
- db "to rate names?", $57
-; 1c00a0
+_ObtainedFruitText: ; 0x1bc02d
+ db $0, "Obtained", $4f
+ db "@"
+ text_from_ram StringBuffer3
+ db $0, "!", $57
+; 0x1bc03e
-UnknownText_0x1c00a0: ; 1c00a0
- db $0, "Which #MON's", $4f
- db "nickname should I", $55
- db "rate for you?", $58
-; 1c00cd
+_FruitPackIsFullText: ; 0x1bc03e
+ db $0, "But the PACK is", $4f
+ db "full…", $57
+; 0x1bc055
-UnknownText_0x1c00cd: ; 1c00cd
- db $0, "Hm… @"
- text_from_ram $d073
- db $0, "…", $4f
- db "That's a fairly", $55
- db "decent name.", $51
- db "But, how about a", $4f
- db "slightly better", $55
- db "nickname?", $51
- db "Want me to give it", $4f
- db "a better name?", $57
-; 1c0142
+_NothingHereText: ; 0x1bc055
+ db $0, "There's nothing", $4f
+ db "here…", $57
+; 0x1bc06b
-UnknownText_0x1c0142: ; 1c0142
- db $0, "All right. What", $4f
- db "name should we", $55
- db "give it, then?", $58
-; 1c0171
+UnknownText_0x1bc06b: ; 0x1bc06b
+ db $0, "Which APRICORN", $4f
+ db "should I use?", $57
+; 0x1bc089
-UnknownText_0x1c0171: ; 1c0171
- db $0, "That's a better", $4f
- db "name than before!", $51
- db "Well done!", $57
-; 1c019e
+UnknownText_0x1bc089: ; 0x1bc089
+ db $0, "How many should I", $4f
+ db "make?", $57
+; 0x1bc0a2
-UnknownText_0x1c019e: ; 1c019e
- db $0, "OK, then. Come", $4f
- db "again sometime.", $57
-; 1c01be
-
-UnknownText_0x1c01be: ; 1c01be
- db $0, "Hm… @"
+UnknownText_0x1bc0a2: ; 0x1bc0a2
text_from_ram $d073
- db $0, "?", $4f
- db "What a great name!", $55
- db "It's perfect.", $51
- db "Treat @"
- text_from_ram $d073
db $0, $4f
- db "with loving care.", $57
-; 1c0208
+ db "recovered @"
+ deciram $d1f3, $23
+ db $0, "HP!", $57
+; 0x1bc0bb
-UnknownText_0x1c0208: ; 1c0208
- db $0, "Whoa… That's just", $4f
- db "an EGG.", $57
-; 1c0222
+UnknownText_0x1bc0bb: ; 0x1bc0bb
+ text_from_ram $d073
+ db $0, "'s", $4f
+ db "cured of poison.", $57
+; 0x1bc0d2
-UnknownText_0x1c0222: ; 1c0222
- db $0, "It might look the", $4f
- db "same as before,", $51
- db "but this new name", $4f
- db "is much better!", $51
- db "Well done!", $57
-; 1c0272
+UnknownText_0x1bc0d2: ; 0x1bc0d2
+ text_from_ram $d073
+ db $0, "'s", $4f
+ db "rid of paralysis.", $57
+; 0x1bc0ea
-UnknownText_0x1c0272: ; 1c0272
- db $0, "All right. This", $4f
- db "#MON is now", $55
- db "named @"
+UnknownText_0x1bc0ea: ; 0x1bc0ea
text_from_ram $d073
- db $0, ".", $58
-; 1c029c
+ db $0, "'s", $4f
+ db "burn was healed.", $57
+; 0x1bc101
-UnknownText_0x1c029c: ; 1c029c
+UnknownText_0x1bc101: ; 0x1bc101
text_from_ram $d073
- db $0, " gained@"
- db "@"
-; 1c02a9
+ db $0, $4f
+ db "was defrosted.", $57
+; 0x1bc115
-UnknownText_0x1c02a9: ; 1c02a9
+UnknownText_0x1bc115: ; 0x1bc115
+ text_from_ram $d073
db $0, $4f
- db "a boosted", $55
- db "@"
- deciram $d086, $24
- db $0, " EXP. Points!", $58
-; 1c02c9
+ db "woke up.", $57
+; 0x1bc123
-UnknownText_0x1c02c9: ; 1c02c9
+UnknownText_0x1bc123: ; 0x1bc123
+ text_from_ram $d073
+ db $0, "'s", $4f
+ db "health returned.", $57
+; 0x1bc13a
+
+UnknownText_0x1bc13a: ; 0x1bc13a
+ text_from_ram $d073
db $0, $4f
+ db "is revitalized.", $57
+; 0x1bc14f
+
+UnknownText_0x1bc14f: ; 0x1bc14f
+ text_from_ram $d073
+ db $0, " grew to", $4f
+ db "level @"
+ deciram $d143, $13
+ db $0, "!@"
+ sound0
+ text_waitbutton
db "@"
- deciram $d086, $24
- db $0, " EXP. Points!", $58
-; 1c02df
+; 0x1bc16d
-UnknownText_0x1c02df: ; 1c02df
- db $0, "Go! @"
+UnknownText_0x1bc16d: ; 0x1bc16d
db "@"
-; 1c02e6
+; 0x1bc16e
-UnknownText_0x1c02e6: ; 1c02e6
- db $0, "Do it! @"
+UnknownText_0x1bc16e: ; 0x1bc16e
+ text_from_ram $d073
+ db $0, " came", $4f
+ db "to its senses.", $57
+; 0x1bc187
+
+UnknownText_0x1bc187: ; 0x1bc187
+ db $0, "Please enter any", $4f
+ db "four-digit number.", $57
+; 0x1bc1ac
+
+UnknownText_0x1bc1ac: ; 0x1bc1ac
+ db $0, "Enter the same", $4f
+ db "number to confirm.", $57
+; 0x1bc1cf
+
+UnknownText_0x1bc1cf: ; 0x1bc1cf
+ db $0, "That's not the", $4f
+ db "same number.", $57
+; 0x1bc1eb
+
+UnknownText_0x1bc1eb: ; 0x1bc1eb
+ db $0, "Your PASSCODE has", $4f
+ db "been set.", $51
+ db "Enter this number", $4f
+ db "next time to open", $55
+ db "the CARD FOLDER.", $51
+ db $57
+; 0x1bc23e
+
+UnknownText_0x1bc23e: ; 0x1bc23e
+ db $0, "0000 is invalid!", $51
+ db $57
+; 0x1bc251
+
+UnknownText_0x1bc251: ; 0x1bc251
+ db $0, "Enter the CARD", $4e, "FOLDER PASSCODE.", $57
+; 0x1bc272
+
+UnknownText_0x1bc272: ; 0x1bc272
+ db $0, "Incorrect", $4f
+ db "PASSCODE!", $51
+ db $57
+; 0x1bc288
+
+UnknownText_0x1bc288: ; 0x1bc288
+ db $0, "CARD FOLDER open.@"
db "@"
-; 1c02f0
+; 0x1bc29c
-UnknownText_0x1c02f0: ; 1c02f0
- db $0, "Go for it,", $4f
+UnknownText_0x1bc29c: ; 0x1bc29c
+ db $0, $56, $56, $56, $56, $56, $56, $4f
+ db $56, $56, $56, $56, $56, $56, $51
+ db "Zzz… Hm? Wha…?", $4f
+ db "You woke me up!", $51
+ db "Will you check the", $4f
+ db "clock for me?", $58
+; 0x1bc2eb
+
+UnknownText_0x1bc2eb: ; 0x1bc2eb
+ db $0, "What time is it?", $57
+; 0x1bc2fd
+
+UnknownText_0x1bc2fd: ; 0x1bc2fd
+ db $0, "What?@"
db "@"
- db "@"
-; 1c02fe
+; 0x1bc305
-UnknownText_0x1c02fe: ; 1c02fe
- db $0, "Your foe's weak!", $4f
- db "Get'm, @"
+UnknownText_0x1bc305: ; 0x1bc305
+ db $0, "?", $57
+; 0x1bc308
+
+UnknownText_0x1bc308: ; 0x1bc308
+ db $0, "How many minutes?", $57
+; 0x1bc31b
+
+UnknownText_0x1bc31b: ; 0x1bc31b
+ db $0, "Whoa!@"
db "@"
-; 1c0317
+; 0x1bc323
-UnknownText_0x1c0317: ; 1c0317
- text_from_ram $c621
- db $0, "!", $57
-; 1c031d
+UnknownText_0x1bc323: ; 0x1bc323
+ db $0, "?", $57
+; 0x1bc326
-UnknownText_0x1c031d: ; 1c031d
- text_from_ram $c621
- db $0, ",@"
+UnknownText_0x1bc326: ; 0x1bc326
+ db $0, "!", $4f
+ db "I overslept!", $57
+; 0x1bc336
+
+UnknownText_0x1bc336: ; 0x1bc336
+ db $0, "!", $4f
+ db "Yikes! I over-", $55
+ db "slept!", $57
+; 0x1bc34f
+
+UnknownText_0x1bc34f: ; 0x1bc34f
+ db $0, "!", $4f
+ db "No wonder it's so", $55
+ db "dark!", $57
+; 0x1bc369
+
+UnknownText_0x1bc369: ; 0x1bc369
+ db $0, "What day is it?", $57
+; 0x1bc37a
+
+UnknownText_0x1bc37a: ; 0x1bc37a
+ db $0, ", is it?", $57
+; 0x1bc384
+
+UnknownText_0x1bc384: ; 0x1bc384
+ db $0, "There is nothing", $4f
+ db "connected.", $57
+; 0x1bc3a1
+
+UnknownText_0x1bc3a1: ; 0x1bc3a1
+ db $0, "Check cell phone", $4f
+ db "adapter.", $57
+; 0x1bc3bc
+
+UnknownText_0x1bc3bc: ; 0x1bc3bc
+ db $0, "Check CDMA", $4f
+ db "adapter.", $57
+; 0x1bc3d1
+
+UnknownText_0x1bc3d1: ; 0x1bc3d1
+ db $0, "Check DOCOMO PHS", $4f
+ db "adapter.", $57
+; 0x1bc3ec
+
+UnknownText_0x1bc3ec: ; 0x1bc3ec
+ db $0, "Check DDI PHS", $4f
+ db "adapter.", $57
+; 0x1bc404
+
+UnknownText_0x1bc404: ; 0x1bc404
+ db $0, "Check unlimited", $4f
+ db "battle mobile", $55
+ db "adapter.", $57
+; 0x1bc42c
+
+UnknownText_0x1bc42c: ; 0x1bc42c
+ db $0, "The password is:", $4f
+ db $57
+; 0x1bc43f
+
+UnknownText_0x1bc43f: ; 0x1bc43f
+ db $0, "Is this OK?", $57
+; 0x1bc44c
+
+UnknownText_0x1bc44c: ; 0x1bc44c
+ db $0, "Enter the", $4f
+ db "ID no.", $57
+; 0x1bc45e
+
+UnknownText_0x1bc45e: ; 0x1bc45e
+ db $0, "Enter the", $4f
+ db "amount.", $57
+; 0x1bc471
+
+UnknownText_0x1bc471: ; 0x1bc471
+ db $0, "There's nothing to", $4f
+ db "choose.", $58
+; 0x1bc48c
+
+UnknownText_0x1bc48c: ; 0x1bc48c
+ db $0, "Which side do you", $4f
+ db "want to put it on?", $57
+; 0x1bc4b2
+
+UnknownText_0x1bc4b2: ; 0x1bc4b2
+ db $0, "Which side do you", $4f
+ db "want to put away?", $57
+; 0x1bc4d7
+
+UnknownText_0x1bc4d7: ; 0x1bc4d7
+ db $0, "Put away the", $4f
db "@"
-; 1c0324
+ text_from_ram $d099
+ db $0, ".", $58
+; 0x1bc4ec
-UnknownText_0x1c0324: ; 1c0324
- db $0, " that's", $4f
- db "enough! Come back!@"
+UnknownText_0x1bc4ec: ; 0x1bc4ec
+ db $0, "There's nothing to", $4f
+ db "put away.", $58
+; 0x1bc509
+
+UnknownText_0x1bc509: ; 0x1bc509
+ db $0, "Set up the", $4f
db "@"
-; 1c0340
+ text_from_ram $d099
+ db $0, ".", $58
+; 0x1bc51c
-UnknownText_0x1c0340: ; 1c0340
- db $0, " OK!", $4f
- db "Come back!@"
+UnknownText_0x1bc51c: ; 0x1bc51c
+ db $0, "Put away the", $4f
db "@"
-; 1c0352
+ text_from_ram $d099
+ db $0, $51
+ db "and set up the", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, ".", $58
+; 0x1bc546
-UnknownText_0x1c0352: ; 1c0352
- db $0, " good!", $4f
- db "Come back!@"
+UnknownText_0x1bc546: ; 0x1bc546
+ db $0, "That's already set", $4f
+ db "up.", $58
+; 0x1bc55d
+
+UnknownText_0x1bc55d: ; 0x1bc55d
+ db $0, "It's the TOWN MAP.", $57
+; 0x1bc570
+
+UnknownText_0x1bc570: ; 0x1bc570
+ db $0, "It's a poster of a", $4f
+ db "cute PIKACHU.", $57
+; 0x1bc591
+
+UnknownText_0x1bc591: ; 0x1bc591
+ db $0, "It's a poster of a", $4f
+ db "cute CLEFAIRY.", $57
+; 0x1bc5b3
+
+UnknownText_0x1bc5b3: ; 0x1bc5b3
+ db $0, "It's a poster of a", $4f
+ db "cute JIGGLYPUFF.", $57
+; 0x1bc5d7
+
+UnknownText_0x1bc5d7: ; 0x1bc5d7
+ db $0, "It's an adorable", $4f
db "@"
-; 1c0366
+ text_from_ram $d099
+ db $0, ".", $57
+; 0x1bc5ef
-UnknownText_0x1c0366: ; 1c0366
- db $0, " come", $4f
- db "back!", $57
-; 1c0373
+UnknownText_0x1bc5ef: ; 0x1bc5ef
+ db $0, "A giant doll! It's", $4f
+ db "fluffy and cuddly.", $57
+; 0x1bc615
-UnknownText_0x1c0373: ; 1c0373
- db $0, "Booted up a TM.", $58
-; 1c0384
+UnknownText_0x1bc615: ; 0x1bc615
+ db $0, "Hi, ", $52, "!", $4f
+ db "How are you?", $58
+; 0x1bc62a
-UnknownText_0x1c0384: ; 1c0384
- db $0, "Booted up an HM.", $58
-; 1c0396
+UnknownText_0x1bc62a: ; 0x1bc62a
+ db $0, "I found a useful", $4f
+ db "item shopping, so", $58
+; 0x1bc64e
-UnknownText_0x1c0396: ; 1c0396
- db $0, "It contained", $4f
+UnknownText_0x1bc64e: ; 0x1bc64e
+ db $0, "I bought it with", $4f
+ db "your money. Sorry!", $58
+; 0x1bc673
+
+UnknownText_0x1bc673: ; 0x1bc673
+ db $0, "It's in your PC.", $4f
+ db "You'll like it!", $57
+; 0x1bc693
+
+UnknownText_0x1bc693: ; 0x1bc693
+ db $0, "While shopping", $4f
+ db "today, I saw this", $55
+ db "adorable doll, so", $58
+; 0x1bc6c7
+
+UnknownText_0x1bc6c7: ; 0x1bc6c7
+ db $0, "It's in your room.", $4f
+ db "You'll love it!", $57
+; 0x1bc6e9
+
+UnknownText_0x1bc6e9: ; 0x1bc6e9
+ text_from_ram $c6d1
+ db $0, " was", $4f
+ db "sent to @"
+ text_from_ram $c719
+ db $0, ".", $57
+; 0x1bc701
+
+UnknownText_0x1bc701: ; 0x1bc701
+ db $0, $57
+; 0x1bc703
+
+UnknownText_0x1bc703: ; 0x1bc703
+ text_from_ram $c719
+ db $0, " bids", $4f
+ db "farewell to", $57
+; 0x1bc719
+
+UnknownText_0x1bc719: ; 0x1bc719
+ text_from_ram $c703
+ db $0, ".", $57
+; 0x1bc71f
+
+UnknownText_0x1bc71f: ; 0x1bc71f
+ db $0, "Take good care of", $4f
db "@"
- text_from_ram $d086
- db $0, ".", $51
- db "Teach @"
- text_from_ram $d086
- db $0, $4f
- db "to a #MON?", $57
-; 1c03c2
+ text_from_ram $c703
+ db $0, ".", $57
+; 0x1bc739
-UnknownText_0x1c03c2: ; 1c03c2
- text_from_ram $d086
- db $0, " is", $4f
- db "not compatible", $55
- db "with @"
- text_from_ram $d073
- db $0, ".", $51
- db "It can't learn", $4f
+UnknownText_0x1bc739: ; 0x1bc739
+ db $0, "For @"
+ text_from_ram $c6e7
+ db $0, "'s", $4f
db "@"
- text_from_ram $d086
- db $0, ".", $58
-; 1c03fa
+ text_from_ram $c6d1
+ db $0, ",", $57
+; 0x1bc74c
-UnknownText_0x1c03fa: ; 1c03fa
- db $0, "You have no room", $4f
- db "for any more", $55
+UnknownText_0x1bc74c: ; 0x1bc74c
+ text_from_ram $c719
+ db $0, " sends", $4f
db "@"
- text_from_ram $d073
- db $0, "S.", $58
-; 1c0421
+ text_from_ram $c703
+ db $0, ".", $57
+; 0x1bc75e
-UnknownText_0x1c0421: ; 1c0421
- db $0, "You received", $4f
+UnknownText_0x1bc75e: ; 0x1bc75e
+ text_from_ram $c719
+ db $0, " will", $4f
+ db "trade @"
+ text_from_ram $c703
db "@"
- text_from_ram $d073
- db $0, "!", $58
-; 1c0436
+; 0x1bc773
-UnknownText_0x1c0436: ; 1c0436
- db $0, "The link has been", $4f
- db "cancelled.", $58
-; 1c0454
+UnknownText_0x1bc773: ; 0x1bc773
+ db "@"
+; 0x1bc774
-UnknownText_0x1c0454: ; 1c0454
- db $0, "Communication", $4f
- db "error.", $58
-; 1c046a
+UnknownText_0x1bc774: ; 0x1bc774
+ db $0, "for @"
+ text_from_ram $c6e7
+ db $0, "'s", $4f
+ db "@"
+ text_from_ram $c6d1
+ db $0, ".", $57
+; 0x1bc787
-UnknownText_0x1c046a: ; 1c046a
- db $0, "Must retrieve GIFT", $4f
- db "at #MON CENTER.", $58
-; 1c048e
+UnknownText_0x1bc787: ; 0x1bc787
+ text_from_ram $c6e7
+ db $0, " will", $4f
+ db "trade @"
+ text_from_ram $c6d1
+ db "@"
+; 0x1bc79c
-UnknownText_0x1c048e: ; 1c048e
- db $0, "Your friend isn't", $4f
- db "ready.", $58
-; 1c04a7
+UnknownText_0x1bc79c: ; 0x1bc79c
+ db "@"
+; 0x1bc79d
-UnknownText_0x1c04a7: ; 1c04a7
- db $0, "Sorry--only five", $4f
- db "GIFTS a day.", $58
-; 1c04c6
+UnknownText_0x1bc79d: ; 0x1bc79d
+ db $0, "for @"
+ text_from_ram $c719
+ db $0, "'s", $4f
+ db "@"
+ text_from_ram $c703
+ db $0, ".", $57
+; 0x1bc7b0
-UnknownText_0x1c04c6: ; 1c04c6
- db $0, "Sorry. One GIFT", $4f
- db "a day per person.", $58
-; 1c04e9
+UnknownText_0x1bc7b0: ; 0x1bc7b0
+ text_from_ram $c6e7
+ db $0, "'s", $4f
+ db "@"
+ text_from_ram $c6d1
+ db $0, " trade…", $57
+; 0x1bc7c3
-UnknownText_0x1c04e9: ; 1c04e9
- text_from_ram $c903
- db $0, " sent", $4f
+UnknownText_0x1bc7c3: ; 0x1bc7c3
+ db $0, "Take good care of", $4f
db "@"
- text_from_ram $d073
- db $0, ".", $58
-; 1c04fa
+ text_from_ram $c703
+ db $0, ".", $57
+; 0x1bc7dd
-UnknownText_0x1c04fa: ; 1c04fa
- text_from_ram $c903
- db $0, " sent", $4f
+UnknownText_0x1bc7dd: ; 0x1bc7dd
+ text_from_ram $c6e7
+ db $0, "'s", $4f
db "@"
- text_from_ram $d073
- db $0, $55
- db "to @"
- text_from_ram $c953
- db $0, "'s home.", $58
-; 1c051a
+ text_from_ram $c6d1
+ db $0, " trade…", $57
+; 0x1bc7f0
-UnknownText_0x1c051a: ; 1c051a
- db $0, "Received", $4f
+UnknownText_0x1bc7f0: ; 0x1bc7f0
+ db $0, "Take good care of", $4f
db "@"
- text_from_ram $c850
- db $0, "'s CARD.", $58
-; 1c0531
+ text_from_ram $c703
+ db $0, ".", $57
+; 0x1bc80a
-UnknownText_0x1c0531: ; 1c0531
- text_from_ram $c850
- db $0, "'s CARD was", $4f
- db "listed as no.@"
- deciram $d265, $12
- db $0, ".", $58
-; 1c0555
+UnknownText_0x1bc80a: ; 0x1bc80a
+ text_from_ram $c703
+ db $0, " came", $4f
+ db "back!", $57
+; 0x1bc81a
-UnknownText_0x1c0555: ; 1c0555
- db $0, "The CARD was not", $4f
- db "registered.", $58
-; 1c0573
+UnknownText_0x1bc81a: ; 0x1bc81a
+ db $0, $4f
+ db "MARY: PROF.OAK'S", $57
+; 0x1bc82d
-UnknownText_0x1c0573: ; 1c0573
- db $0, "The link has been", $4f
- db "cancelled.", $58
-; 1c0591
+UnknownText_0x1bc82d: ; 0x1bc82d
+ db $0, $4f
+ db "#MON TALK!", $57
+; 0x1bc83a
-UnknownText_0x1c0591: ; 1c0591
- db $0, "Communication", $4f
- db "error.", $58
-; 1c05a7
+UnknownText_0x1bc83a: ; 0x1bc83a
+ db $0, $4f
+ db "With me, MARY!", $57
+; 0x1bc84b
-_BadgeRequiredText: ; 1c05a7
- db $0, "Sorry! A new BADGE", $4f
- db "is required.", $58
-; 1c05c8
+UnknownText_0x1bc84b: ; 0x1bc84b
+ db $0, $4f
+ db "OAK: @"
+ text_from_ram $d050
+ db "@"
+; 0x1bc857
-UnknownText_0x1c05c8: ; 1c05c8
- db $0, "Can't use that", $4f
- db "here.", $58
-; 1c05dd
+UnknownText_0x1bc857: ; 0x1bc857
+ db "@"
+; 0x1bc858
-UnknownText_0x1c05dd: ; 1c05dd
- text_from_ram $d086
- db $0, " used", $4f
- db "CUT!", $58
-; 1c05ec
+UnknownText_0x1bc858: ; 0x1bc858
+ db $0, $4f
+ db "may be seen around", $57
+; 0x1bc86d
-UnknownText_0x1c05ec: ; 1c05ec
- db $0, "There's nothing to", $4f
- db "CUT here.", $58
-; 1c0609
-
-UnknownText_0x1c0609: ; 1c0609
- db $0, "A blinding FLASH", $4f
- db "lights the area!@"
- text_waitbutton
+UnknownText_0x1bc86d: ; 0x1bc86d
+ db $0, $4f
db "@"
-; 1c062e
+ text_from_ram $d073
+ db $0, ".", $57
+; 0x1bc876
-UnknownText_0x1c062e: ; 1c062e
- db "@"
-; 1c062f
+UnknownText_0x1bc876: ; 0x1bc876
+ db $0, $4f
+ db "MARY: @"
+ text_from_ram $d073
+ db $0, "'s", $57
+; 0x1bc885
-_UsedSurfText: ; 1c062f
- text_from_ram $d086
- db $0, " used", $4f
- db "SURF!", $57
-; 1c063f
+UnknownText_0x1bc885: ; 0x1bc885
+ db $0, $4f
+ db "sweet and adorably", $57
+; 0x1bc89a
-_CantSurfText: ; 1c063f
- db $0, "You can't SURF", $4f
- db "here.", $58
-; 1c0654
+UnknownText_0x1bc89a: ; 0x1bc89a
+ db $0, $4f
+ db "wiggly and slickly", $57
+; 0x1bc8af
-_AlreadySurfingText: ; 1c0654
- db $0, "You're already", $4f
- db "SURFING.", $58
-; 1c066c
+UnknownText_0x1bc8af: ; 0x1bc8af
+ db $0, $4f
+ db "aptly named and", $57
+; 0x1bc8c1
-_AskSurfText: ; 1c066c
- db $0, "The water is calm.", $4f
- db "Want to SURF?", $57
-; 1c068e
+UnknownText_0x1bc8c1: ; 0x1bc8c1
+ db $0, $4f
+ db "undeniably kind of", $57
+; 0x1bc8d6
-UnknownText_0x1c068e: ; 1c068e
- text_from_ram $d086
- db $0, " used", $4f
- db "WATERFALL!", $57
-; 1c06a3
+UnknownText_0x1bc8d6: ; 0x1bc8d6
+ db $0, $4f
+ db "so, so unbearably", $57
+; 0x1bc8ea
-UnknownText_0x1c06a3: ; 1c06a3
- db $0, "Wow, it's a huge", $4f
- db "waterfall.", $57
-; 1c06bf
+UnknownText_0x1bc8ea: ; 0x1bc8ea
+ db $0, $4f
+ db "wow, impressively", $57
+; 0x1bc8fe
-UnknownText_0x1c06bf: ; 1c06bf
- db $0, "Do you want to use", $4f
- db "WATERFALL?", $57
-; 1c06de
+UnknownText_0x1bc8fe: ; 0x1bc8fe
+ db $0, $4f
+ db "almost poisonously", $57
+; 0x1bc913
-UnknownText_0x1c06de: ; 1c06de
- text_from_ram $d086
- db $0, " used", $4f
- db "DIG!", $57
-; 1c06ed
+UnknownText_0x1bc913: ; 0x1bc913
+ db $0, $4f
+ db "ooh, so sensually", $57
+; 0x1bc927
-UnknownText_0x1c06ed: ; 1c06ed
- db $0, $52, " used an", $4f
- db "ESCAPE ROPE.", $57
-; 1c0705
+UnknownText_0x1bc927: ; 0x1bc927
+ db $0, $4f
+ db "so mischievously", $57
+; 0x1bc93a
-UnknownText_0x1c0705: ; 1c0705
- db $0, "Can't use that", $4f
- db "here.", $57
-; 1c071a
+UnknownText_0x1bc93a: ; 0x1bc93a
+ db $0, $4f
+ db "so very topically", $57
+; 0x1bc94e
-UnknownText_0x1c071a: ; 1c071a
- db $0, "Return to the last", $4f
- db "#MON CENTER.", $57
-; 1c073b
+UnknownText_0x1bc94e: ; 0x1bc94e
+ db $0, $4f
+ db "sure addictively", $57
+; 0x1bc961
-UnknownText_0x1c073b: ; 1c073b
- db $0, "Can't use that", $4f
- db "here.", $51
- db $57
-; 1c0751
+UnknownText_0x1bc961: ; 0x1bc961
+ db $0, $4f
+ db "looks in water is", $57
+; 0x1bc975
-UnknownText_0x1c0751: ; 1c0751
- db $0, "A #MON is using", $4f
- db "STRENGTH already.", $58
-; 1c0774
+UnknownText_0x1bc975: ; 0x1bc975
+ db $0, $4f
+ db "evolution must be", $57
+; 0x1bc989
-UnknownText_0x1c0774: ; 1c0774
- text_from_ram $d086
- db $0, " used", $4f
- db "STRENGTH!", $57
-; 1c0788
+UnknownText_0x1bc989: ; 0x1bc989
+ db $0, $4f
+ db "provocatively", $57
+; 0x1bc999
-UnknownText_0x1c0788: ; 1c0788
- text_from_ram $d073
- db $0, " can", $4f
- db "move boulders.", $58
-; 1c07a0
+UnknownText_0x1bc999: ; 0x1bc999
+ db $0, $4f
+ db "so flipped out and", $57
+; 0x1bc9ae
-UnknownText_0x1c07a0: ; 1c07a0
- db $0, "A #MON may be", $4f
- db "able to move this.", $51
- db "Want to use", $4f
- db "STRENGTH?", $57
-; 1c07d8
+UnknownText_0x1bc9ae: ; 0x1bc9ae
+ db $0, $4f
+ db "heart-meltingly", $57
+; 0x1bc9c0
-UnknownText_0x1c07d8: ; 1c07d8
- db $0, "Boulders may now", $4f
- db "be moved!", $57
-; 1c07f4
+UnknownText_0x1bc9c0: ; 0x1bc9c0
+ db $0, $4f
+ db "cute.", $57
+; 0x1bc9c8
-UnknownText_0x1c07f4: ; 1c07f4
- db $0, "A #MON may be", $4f
- db "able to move this.", $57
-; 1c0816
+UnknownText_0x1bc9c8: ; 0x1bc9c8
+ db $0, $4f
+ db "weird.", $57
+; 0x1bc9d1
-UnknownText_0x1c0816: ; 1c0816
- text_from_ram $d086
- db $0, " used", $4f
- db "WHIRLPOOL!", $58
-; 1c082b
+UnknownText_0x1bc9d1: ; 0x1bc9d1
+ db $0, $4f
+ db "pleasant.", $57
+; 0x1bc9dd
-UnknownText_0x1c082b: ; 1c082b
- db $0, "It's a vicious", $4f
- db "whirlpool!", $51
- db "A #MON may be", $4f
- db "able to pass it.", $57
-; 1c0864
+UnknownText_0x1bc9dd: ; 0x1bc9dd
+ db $0, $4f
+ db "bold, sort of.", $57
+; 0x1bc9ee
-UnknownText_0x1c0864: ; 1c0864
- db $0, "A whirlpool is in", $4f
- db "the way.", $51
- db "Want to use", $4f
- db "WHIRLPOOL?", $57
-; 1c0897
+UnknownText_0x1bc9ee: ; 0x1bc9ee
+ db $0, $4f
+ db "frightening.", $57
+; 0x1bc9fd
-UnknownText_0x1c0897: ; 1c0897
- text_from_ram $d086
- db $0, " did a", $4f
- db "HEADBUTT!", $58
-; 1c08ac
+UnknownText_0x1bc9fd: ; 0x1bc9fd
+ db $0, $4f
+ db "suave & debonair!", $57
+; 0x1bca11
-UnknownText_0x1c08ac: ; 1c08ac
- db $0, "Nope. Nothing…", $57
-; 1c08bc
+UnknownText_0x1bca11: ; 0x1bca11
+ db $0, $4f
+ db "powerful.", $57
+; 0x1bca1d
-UnknownText_0x1c08bc: ; 1c08bc
- db $0, "A #MON could be", $4f
- db "in this tree.", $51
- db "Want to HEADBUTT", $4f
- db "it?", $57
-; 1c08f0
+UnknownText_0x1bca1d: ; 0x1bca1d
+ db $0, $4f
+ db "exciting.", $57
+; 0x1bca29
-UnknownText_0x1c08f0: ; 1c08f0
- text_from_ram $d086
- db $0, " used", $4f
- db "ROCK SMASH!", $58
-; 1c0906
+UnknownText_0x1bca29: ; 0x1bca29
+ db $0, $4f
+ db "groovy!", $57
+; 0x1bca33
-UnknownText_0x1c0906: ; 1c0906
- db $0, "Maybe a #MON", $4f
- db "can break this.", $57
-; 1c0924
+UnknownText_0x1bca33: ; 0x1bca33
+ db $0, $4f
+ db "inspiring.", $57
+; 0x1bca40
-UnknownText_0x1c0924: ; 1c0924
- db $0, "This rock looks", $4f
- db "breakable.", $51
- db "Want to use ROCK", $4f
- db "SMASH?", $57
-; 1c0958
+UnknownText_0x1bca40: ; 0x1bca40
+ db $0, $4f
+ db "friendly.", $57
+; 0x1bca4c
-UnknownText_0x1c0958: ; 1c0958
- db $0, "Oh!", $4f
- db "A bite!", $58
-; 1c0965
+UnknownText_0x1bca4c: ; 0x1bca4c
+ db $0, $4f
+ db "hot, hot, hot!", $57
+; 0x1bca5d
-UnknownText_0x1c0965: ; 1c0965
- db $0, "Not even a nibble!", $58
-; 1c0979
+UnknownText_0x1bca5d: ; 0x1bca5d
+ db $0, $4f
+ db "stimulating.", $57
+; 0x1bca6c
-UnknownText_0x1c0979: ; 1c0979
- db $0, "Looks like there's", $4f
- db "nothing here.", $58
-; 1c099a
+UnknownText_0x1bca6c: ; 0x1bca6c
+ db $0, $4f
+ db "guarded.", $57
+; 0x1bca77
-UnknownText_0x1c099a: ; 1c099a
- db $0, "You can't get off", $4f
- db "here!", $57
-; 1c09b2
+UnknownText_0x1bca77: ; 0x1bca77
+ db $0, $4f
+ db "lovely.", $57
+; 0x1bca81
-UnknownText_0x1c09b2: ; 1c09b2
- db $0, $52, " got on the", $4f
+UnknownText_0x1bca81: ; 0x1bca81
+ db $0, $4f
+ db "speedy.", $57
+; 0x1bca8b
+
+UnknownText_0x1bca8b: ; 0x1bca8b
+ db $0, "#MON", $57
+; 0x1bca91
+
+UnknownText_0x1bca91: ; 0x1bca91
+ db $0, $4f
db "@"
- text_from_ram $d086
- db $0, ".", $57
-; 1c09c7
+ text_from_ram $d073
+ db "@"
+; 0x1bca98
-UnknownText_0x1c09c7: ; 1c09c7
- db $0, $52, " got off", $4f
- db "the @"
- text_from_ram $d086
- db $0, ".", $57
-; 1c09dd
+UnknownText_0x1bca98: ; 0x1bca98
+ db "@"
+; 0x1bca99
-UnknownText_0x1c09dd: ; 1c09dd
- db $0, "This tree can be", $4f
- db "CUT!", $51
- db "Want to use CUT?", $57
-; 1c0a05
+UnknownText_0x1bca99: ; 0x1bca99
+ db $0, $4f
+ db "BEN: #MON MUSIC", $57
+; 0x1bcaab
-UnknownText_0x1c0a05: ; 1c0a05
- db $0, "This tree can be", $4f
- db "CUT!", $57
-; 1c0a1c
+UnknownText_0x1bcaab: ; 0x1bcaab
+ db $0, $4f
+ db "CHANNEL!", $57
+; 0x1bcab6
-UnknownText_0x1c0a1c: ; 1c0a1c
- db $0, $52, " found", $4f
- db "@"
- text_from_ram $d099
- db $0, "!", $57
-; 1c0a2c
+UnknownText_0x1bcab6: ; 0x1bcab6
+ db $0, $4f
+ db "It's me, DJ BEN!", $57
+; 0x1bcac8
-UnknownText_0x1c0a2c: ; 1c0a2c
- db $0, "But ", $52, " can't", $4f
- db "carry any more", $55
- db "items.", $57
-; 1c0a4e
+UnknownText_0x1bcac8: ; 0x1bcac8
+ db $0, $4f
+ db "FERN: #MUSIC!", $57
+; 0x1bcad8
-UnknownText_0x1c0a4e: ; 1c0a4e
- db $0, $52, " is out of", $4f
- db "useable #MON!", $51
- db $52, " whited", $4f
- db "out!", $57
-; 1c0a77
+UnknownText_0x1bcad8: ; 0x1bcad8
+ db $0, $4f
+ db "With DJ FERN!", $57
+; 0x1bcae8
-UnknownText_0x1c0a77: ; 1c0a77
- db $0, "Yes! ITEMFINDER", $4f
- db "indicates there's", $55
- db "an item nearby.", $58
-; 1c0aa9
+UnknownText_0x1bcae8: ; 0x1bcae8
+ db $0, $4f
+ db "Today's @"
+ current_day
+ db $0, ",", $57
+; 0x1bcaf6
-UnknownText_0x1c0aa9: ; 1c0aa9
- db $0, "Nope! ITEMFINDER", $4f
- db "isn't responding.", $58
-; 1c0acc
+UnknownText_0x1bcaf6: ; 0x1bcaf6
+ db $0, $4f
+ db "so let us jam to", $57
+; 0x1bcb09
-UnknownText_0x1c0acc: ; 1c0acc
- text_from_ram $d099
+UnknownText_0x1bcb09: ; 0x1bcb09
db $0, $4f
- db "fainted!", $58
-; 1c0ada
+ db "so chill out to", $57
+; 0x1bcb1b
-UnknownText_0x1c0ada: ; 1c0ada
- db $0, $52, " is out of", $4f
- db "useable #MON!", $51
- db $52, " whited", $4f
- db "out!", $58
-; 1c0b03
+UnknownText_0x1bcb1b: ; 0x1bcb1b
+ db $0, $4f
+ db "#MON March!", $57
+; 0x1bcb29
-UnknownText_0x1c0b03: ; 1c0b03
- text_from_ram $d099
- db $0, " used", $4f
- db "SWEET SCENT!", $57
-; 1c0b1a
+UnknownText_0x1bcb29: ; 0x1bcb29
+ db $0, $4f
+ db "#MON Lullaby!", $57
+; 0x1bcb39
-UnknownText_0x1c0b1a: ; 1c0b1a
- db $0, "Looks like there's", $4f
- db "nothing here…", $57
-; 1c0b3b
+UnknownText_0x1bcb39: ; 0x1bcb39
+ db $0, $4f
+ db "REED: Yeehaw! How", $57
+; 0x1bcb4d
-UnknownText_0x1c0b3b: ; 1c0b3b
- db $0, $52, " sprinkled", $4f
- db "water.", $51
- db "But nothing", $4f
- db "happened…", $57
-; 1c0b65
+UnknownText_0x1bcb4d: ; 0x1bcb4d
+ db $0, $4f
+ db "y'all doin' now?", $57
+; 0x1bcb60
-UnknownText_0x1c0b65: ; 1c0b65
- db $0, $52, "'s #MON", $4f
- db "were all healed!", $57
-; 1c0b7f
+UnknownText_0x1bcb60: ; 0x1bcb60
+ db $0, $4f
+ db "Whether you're up", $57
+; 0x1bcb73
-UnknownText_0x1c0b7f: ; 1c0b7f
- db $0, "An EGG can't hold", $4f
- db "an item.", $58
-; 1c0b9a
+UnknownText_0x1bcb73: ; 0x1bcb73
+ db $0, $4f
+ db "or way down low,", $57
+; 0x1bcb86
-UnknownText_0x1c0b9a: ; 1c0b9a
- db $0, "No items.", $57
-; 1c0ba5
+UnknownText_0x1bcb86: ; 0x1bcb86
+ db $0, $4f
+ db "don't you miss the", $57
+; 0x1bcb9a
-UnknownText_0x1c0ba5: ; 1c0ba5
- db $0, "Throw away how", $4f
- db "many?", $57
-; 1c0bbb
+UnknownText_0x1bcb9a: ; 0x1bcb9a
+ db $0, $4f
+ db "LUCKY NUMBER SHOW!", $57
+; 0x1bcbaf
-UnknownText_0x1c0bbb: ; 1c0bbb
- db $0, "Throw away @"
- deciram $d10c, $12
+UnknownText_0x1bcbaf: ; 0x1bcbaf
db $0, $4f
- db "@"
- text_from_ram $d086
- db $0, "(S)?", $57
-; 1c0bd8
+ db "This week's Lucky", $57
+; 0x1bcbc2
-UnknownText_0x1c0bd8: ; 1c0bd8
- db $0, "Threw away", $4f
- db "@"
- text_from_ram $d086
- db $0, "(S).", $58
-; 1c0bee
+UnknownText_0x1bcbc2: ; 0x1bcbc2
+ db $0, $4f
+ db "Number is @"
+ interpret_data
+ text_from_ram $d073
+ db $0, "!", $57
+; 0x1bcbd6
-UnknownText_0x1c0bee: ; 1c0bee
- db $0, "OAK: ", $52, "!", $4f
- db "This isn't the", $55
- db "time to use that!", $58
-; 1c0c17
+UnknownText_0x1bcbd6: ; 0x1bcbd6
+ db $0, $4f
+ db "I'll repeat that!", $57
+; 0x1bcbe9
+
+UnknownText_0x1bcbe9: ; 0x1bcbe9
+ db $0, $4f
+ db "Match it and go to", $57
+; 0x1bcbfe
-UnknownText_0x1c0c17: ; 1c0c17
- db $0, "You don't have a", $4f
- db "#MON!", $58
-; 1c0c2e
+UnknownText_0x1bcbfe: ; 0x1bcbfe
+ db $0, $4f
+ db "the RADIO TOWER!", $57
+; 0x1bcc11
-UnknownText_0x1c0c2e: ; 1c0c2e
- db $0, "Registered the", $4f
- db "@"
- text_from_ram $d086
- db $0, ".", $58
-; 1c0c45
+UnknownText_0x1bcc11: ; 0x1bcc11
+ db $0, $4f
+ db "…Repeating myself", $57
+; 0x1bcc25
-UnknownText_0x1c0c45: ; 1c0c45
- db $0, "You can't register", $4f
- db "that item.", $58
-; 1c0c63
+UnknownText_0x1bcc25: ; 0x1bcc25
+ db $0, $4f
+ db "gets to be a drag…", $57
+; 0x1bcc3a
-UnknownText_0x1c0c63: ; 1c0c63
- db $0, "Where should this", $4f
- db "be moved to?", $57
-; 1c0c83
+UnknownText_0x1bcc3a: ; 0x1bcc3a
+ db $0, $4f
+ db "PLACES AND PEOPLE!", $57
+; 0x1bcc4f
-UnknownText_0x1c0c83: ; 1c0c83
- db $0, $57
-; 1c0c85
+UnknownText_0x1bcc4f: ; 0x1bcc4f
+ db $0, $4f
+ db "Brought to you by", $57
+; 0x1bcc63
-UnknownText_0x1c0c85: ; 1c0c85
- db $0, "You can't use it", $4f
- db "in a battle.", $58
-; 1c0ca3
+UnknownText_0x1bcc63: ; 0x1bcc63
+ db $0, $4f
+ db "me, DJ LILY!", $57
+; 0x1bcc72
-UnknownText_0x1c0ca3: ; 1c0ca3
- db $0, "Are you a boy?", $4f
- db "Or are you a girl?", $57
-; 1c0cc6
-
-UnknownText_0x1c0cc6: ; 1c0cc6
- db $0, $5a, "'s", $4f
+UnknownText_0x1bcc72: ; 0x1bcc72
+ db $0, $4f
db "@"
text_from_ram $d086
+ db $0, " @"
+ text_from_ram $d073
db "@"
-; 1c0ccf
+; 0x1bcc7f
-UnknownText_0x1c0ccf: ; 1c0ccf
+UnknownText_0x1bcc7f: ; 0x1bcc7f
db "@"
-; 1c0cd0
+; 0x1bcc80
-UnknownText_0x1c0cd0: ; 1c0cd0
- interpret_data
- db $0, $4c, "went way up!", $58
-; 1c0ce0
+UnknownText_0x1bcc80: ; 0x1bcc80
+ db $0, $4f
+ db "is cute.", $57
+; 0x1bcc8b
-UnknownText_0x1c0ce0: ; 1c0ce0
- db $0, " went up!", $58
-; 1c0ceb
+UnknownText_0x1bcc8b: ; 0x1bcc8b
+ db $0, $4f
+ db "is sort of lazy.", $57
+; 0x1bcc9e
-UnknownText_0x1c0ceb: ; 1c0ceb
- db $0, $59, "'s", $4f
- db "@"
- text_from_ram $d086
- db "@"
-; 1c0cf4
+UnknownText_0x1bcc9e: ; 0x1bcc9e
+ db $0, $4f
+ db "is always happy.", $57
+; 0x1bccb1
-UnknownText_0x1c0cf4: ; 1c0cf4
- db "@"
-; 1c0cf5
+UnknownText_0x1bccb1: ; 0x1bccb1
+ db $0, $4f
+ db "is quite noisy.", $57
+; 0x1bccc3
-UnknownText_0x1c0cf5: ; 1c0cf5
- interpret_data
- db $0, $4c, "sharply fell!", $58
-; 1c0d06
+UnknownText_0x1bccc3: ; 0x1bccc3
+ db $0, $4f
+ db "is precocious.", $57
+; 0x1bccd4
-UnknownText_0x1c0d06: ; 1c0d06
- db $0, " fell!", $58
-; 1c0d0e
+UnknownText_0x1bccd4: ; 0x1bccd4
+ db $0, $4f
+ db "is somewhat bold.", $57
+; 0x1bcce8
-UnknownText_0x1c0d0e: ; 1c0d0e
- db $0, $5a, "@"
- db "@"
-; 1c0d12
+UnknownText_0x1bcce8: ; 0x1bcce8
+ db $0, $4f
+ db "is too picky!", $57
+; 0x1bccf8
-UnknownText_0x1c0d12: ; 1c0d12
+UnknownText_0x1bccf8: ; 0x1bccf8
db $0, $4f
- db "made a whirlwind!", $58
-; 1c0d26
+ db "is sort of OK.", $57
+; 0x1bcd09
-UnknownText_0x1c0d26: ; 1c0d26
+UnknownText_0x1bcd09: ; 0x1bcd09
db $0, $4f
- db "took in sunlight!", $58
-; 1c0d3a
+ db "is just so-so.", $57
+; 0x1bcd1a
-UnknownText_0x1c0d3a: ; 1c0d3a
+UnknownText_0x1bcd1a: ; 0x1bcd1a
db $0, $4f
- db "lowered its head!", $58
-; 1c0d4e
+ db "is actually great.", $57
+; 0x1bcd2f
-UnknownText_0x1c0d4e: ; 1c0d4e
+UnknownText_0x1bcd2f: ; 0x1bcd2f
db $0, $4f
- db "is glowing!", $58
-; 1c0d5c
+ db "is just my type.", $57
+; 0x1bcd42
-UnknownText_0x1c0d5c: ; 1c0d5c
+UnknownText_0x1bcd42: ; 0x1bcd42
db $0, $4f
- db "flew up high!", $58
-; 1c0d6c
+ db "is so cool, no?", $57
+; 0x1bcd54
-UnknownText_0x1c0d6c: ; 1c0d6c
+UnknownText_0x1bcd54: ; 0x1bcd54
db $0, $4f
- db "dug a hole!", $58
-; 1c0d7a
+ db "is inspiring!", $57
+; 0x1bcd64
-_ActorNameText: ; 1c0d7a
- db $0, $5a, "@"
- db "@"
-; 1c0d7e
+UnknownText_0x1bcd64: ; 0x1bcd64
+ db $0, $4f
+ db "is kind of weird.", $57
+; 0x1bcd78
-_UsedMove1Text: ; 1c0d7e
+UnknownText_0x1bcd78: ; 0x1bcd78
db $0, $4f
- db "used @"
- db "@"
-; 1c0d87
+ db "is right for me?", $57
+; 0x1bcd8b
-_UsedMove2Text: ; 1c0d87
+UnknownText_0x1bcd8b: ; 0x1bcd8b
db $0, $4f
- db "used @"
- db "@"
-; 1c0d90
+ db "is definitely odd!", $57
+; 0x1bcda0
-_UsedInsteadText: ; 1c0d90
- db $0, "instead,", $55
+UnknownText_0x1bcda0: ; 0x1bcda0
+ db $0, $4f
db "@"
+ text_from_ram $d073
db "@"
-; 1c0d9c
+; 0x1bcda7
-_MoveNameText: ; 1c0d9c
- text_from_ram StringBuffer2
+UnknownText_0x1bcda7: ; 0x1bcda7
db "@"
-; 1c0da0
+; 0x1bcda8
-UnknownText_0x1c0da0: ; 1c0da0
- db "@"
-; 1c0da1
+UnknownText_0x1bcda8: ; 0x1bcda8
+ db $0, $4f
+ db "… …Ahem, we are", $57
+; 0x1bcdba
-_EndUsedMove1Text: ; 1c0da1
- db $0, "!", $57
-; 1c0da4
+UnknownText_0x1bcdba: ; 0x1bcdba
+ db $0, $4f
+ db "TEAM ROCKET!", $57
+; 0x1bcdc9
-_EndUsedMove2Text: ; 1c0da4
- db $0, "!", $57
-; 1c0da7
+UnknownText_0x1bcdc9: ; 0x1bcdc9
+ db $0, $4f
+ db "After three years", $57
+; 0x1bcddd
-_EndUsedMove3Text: ; 1c0da7
- db $0, "!", $57
-; 1c0daa
+UnknownText_0x1bcddd: ; 0x1bcddd
+ db $0, $4f
+ db "of preparation, we", $57
+; 0x1bcdf2
-_EndUsedMove4Text: ; 1c0daa
- db $0, "!", $57
-; 1c0dad
+UnknownText_0x1bcdf2: ; 0x1bcdf2
+ db $0, $4f
+ db "have risen again", $57
+; 0x1bce05
-_EndUsedMove5Text: ; 1c0dad
- db $0, "!", $57
-; 1c0db0
+UnknownText_0x1bce05: ; 0x1bce05
+ db $0, $4f
+ db "from the ashes!", $57
+; 0x1bce17
-UnknownText_0x1c0db0: ; 1c0db0
- db $0, "Huh?", $51
- db "@"
- db "@"
-; 1c0db8
+UnknownText_0x1bce17: ; 0x1bce17
+ db $0, $4f
+ db "GIOVANNI! @"
+ interpret_data
+ db $0, "Can you", $57
+; 0x1bce2e
-UnknownText_0x1c0db8: ; 1c0db8
- db $0, $57
-; 1c0dba
+UnknownText_0x1bce2e: ; 0x1bce2e
+ db $0, $4f
+ db "hear?@"
+ interpret_data
+ db $0, " We did it!", $57
+; 0x1bce44
-UnknownText_0x1c0dba: ; 1c0dba
- text_from_ram StringBuffer1
- db $0, " came", $4f
- db "out of its EGG!@"
- sound0x02
- text_waitbutton
+UnknownText_0x1bce44: ; 0x1bce44
+ db $0, $4f
db "@"
-; 1c0dd7
+ interpret_data
+ db $0, "Where is our boss?", $57
+; 0x1bce5c
-UnknownText_0x1c0dd7: ; 1c0dd7
+UnknownText_0x1bce5c: ; 0x1bce5c
+ db $0, $4f
db "@"
-; 1c0dd8
+ interpret_data
+ db $0, "Is he listening?", $57
+; 0x1bce72
-UnknownText_0x1c0dd8: ; 1c0dd8
- db $0, "Give a nickname to", $4f
+UnknownText_0x1bce72: ; 0x1bce72
+ db $0, $4f
+ db "BUENA: BUENA here!", $57
+; 0x1bce87
+
+UnknownText_0x1bce87: ; 0x1bce87
+ db $0, $4f
+ db "Today's password!", $57
+; 0x1bce9a
+
+UnknownText_0x1bce9a: ; 0x1bce9a
+ db $0, $4f
+ db "Let me think… It's", $57
+; 0x1bceae
+
+UnknownText_0x1bceae: ; 0x1bceae
+ db $0, $4f
db "@"
- text_from_ram StringBuffer1
- db $0, "?", $57
-; 1c0df3
+ text_from_ram $d073
+ db $0, "!", $57
+; 0x1bceb7
-UnknownText_0x1c0df3: ; 1c0df3
- db $0, "It's @"
- text_from_ram $df2f
+UnknownText_0x1bceb7: ; 0x1bceb7
db $0, $4f
- db "that was left with", $55
- db "the DAY-CARE LADY.", $57
-; 1c0e24
+ db "Don't forget it!", $57
+; 0x1bcec9
-UnknownText_0x1c0e24: ; 1c0e24
- db $0, "It's @"
- text_from_ram $def6
+UnknownText_0x1bcec9: ; 0x1bcec9
db $0, $4f
- db "that was left with", $55
- db "the DAY-CARE MAN.", $57
-; 1c0e54
+ db "I'm in GOLDENROD's", $57
+; 0x1bcedc
-UnknownText_0x1c0e54: ; 1c0e54
- db $0, "It's brimming with", $4f
- db "energy.", $58
-; 1c0e6f
+UnknownText_0x1bcedc: ; 0x1bcedc
+ db $0, $4f
+ db "RADIO TOWER!", $57
+; 0x1bceeb
-UnknownText_0x1c0e6f: ; 1c0e6f
- db $0, "It has no interest", $4f
- db "in @"
- text_from_ram $d073
- db $0, ".", $58
-; 1c0e8d
+UnknownText_0x1bceeb: ; 0x1bceeb
+ db $0, $4f
+ db "BUENA: Oh my…", $57
+; 0x1bcefb
-UnknownText_0x1c0e8d: ; 1c0e8d
- db $0, "It appears to care", $4f
- db "for @"
- text_from_ram $d073
- db $0, ".", $58
-; 1c0eac
+UnknownText_0x1bcefb: ; 0x1bcefb
+ db $0, $4f
+ db "It's midnight! I", $57
+; 0x1bcf0d
-UnknownText_0x1c0eac: ; 1c0eac
- db $0, "It's friendly with", $4f
- db "@"
- text_from_ram $d073
- db $0, ".", $58
-; 1c0ec6
+UnknownText_0x1bcf0d: ; 0x1bcf0d
+ db $0, $4f
+ db "have to shut down!", $57
+; 0x1bcf22
-UnknownText_0x1c0ec6: ; 1c0ec6
- db $0, "It shows interest", $4f
- db "in @"
- text_from_ram $d073
- db $0, ".", $58
-; 1c0ee3
+UnknownText_0x1bcf22: ; 0x1bcf22
+ db $0, $4f
+ db "Thanks for tuning", $57
+; 0x1bcf36
-_EmptyMailboxText: ; 1c0ee3
- db $0, "There's no MAIL", $4f
- db "here.", $58
-; 1c0ef9
+UnknownText_0x1bcf36: ; 0x1bcf36
+ db $0, $4f
+ db "in to the end! But", $57
+; 0x1bcf4b
-ClearedMailPutAwayText: ; 1c0ef9
- db $0, "The cleared MAIL", $4f
- db "was put away.", $58
-; 1c0f19
+UnknownText_0x1bcf4b: ; 0x1bcf4b
+ db $0, $4f
+ db "don't stay up too", $57
+; 0x1bcf5e
-MailPackFullText: ; 1c0f19
- db $0, "The PACK is full.", $58
-; 1c0f2c
+UnknownText_0x1bcf5e: ; 0x1bcf5e
+ db $0, $4f
+ db "late! Presented to", $57
+; 0x1bcf73
-MailMessageLostText: ; 1c0f2c
- db $0, "The MAIL's message", $4f
- db "will be lost. OK?", $57
-; 1c0f51
+UnknownText_0x1bcf73: ; 0x1bcf73
+ db $0, $4f
+ db "you by DJ BUENA!", $57
+; 0x1bcf86
-MailAlreadyHoldingItemText: ; 1c0f51
- db $0, "It's already hold-", $4f
- db "ing an item.", $58
-; 1c0f71
+UnknownText_0x1bcf86: ; 0x1bcf86
+ db $0, "I'm outta here!", $57
+; 0x1bcf96
-MailEggText: ; 1c0f71
- db $0, "An EGG can't hold", $4f
- db "any MAIL.", $58
-; 1c0f8d
+UnknownText_0x1bcf96: ; 0x1bcf96
+ db $0, "…", $57
+; 0x1bcf99
-MailMovedFromBoxText: ; 1c0f8d
- db $0, "The MAIL was moved", $4f
- db "from the MAILBOX.", $58
-; 1c0fb3
+UnknownText_0x1bcf99: ; 0x1bcf99
+ db $0, $4f
+ db $57
+; 0x1bcf9c
-UnknownText_0x1c0fb3: ; 1c0fb3
- db $0, "Yes", $58
-; 1c0fb8
+UnknownText_0x1bcf9c: ; 0x1bcf9c
+ db $0, $3f, $4f
+ db "withdrew", $55
+ db "@"
+ text_from_ram $c616
+ db $0, "!", $58
+; 0x1bcfaf
-UnknownText_0x1c0fb8: ; 1c0fb8
- db $0, "No", $58
-; 1c0fbc
+UnknownText_0x1bcfaf: ; 0x1bcfaf
+ db $0, $3f, $4f
+ db "used @"
+ text_from_ram $d050
+ db $0, $55
+ db "on @"
+ text_from_ram $c616
+ db $0, "!", $58
+; 0x1bcfc7
-UnknownText_0x1c0fbc: ; 1c0fbc
- deciram $cf64, $13
- db $0, " @"
+UnknownText_0x1bcfc7: ; 0x1bcfc7
+ db $0, "That can't be used", $4f
+ db "right now.", $58
+; 0x1bcfe5
+
+UnknownText_0x1bcfe5: ; 0x1bcfe5
+ db $0, "That item can't be", $4f
+ db "put in the PACK.", $57
+; 0x1bd009
+
+UnknownText_0x1bd009: ; 0x1bd009
+ db $0, "The @"
text_from_ram $d073
db $0, $4f
- db "Animation type @"
- text_from_ram $d086
+ db "was put in the", $55
+ db "PACK.", $57
+; 0x1bd029
+
+UnknownText_0x1bd029: ; 0x1bd029
+ db $0, "Remaining Time", $57
+; 0x1bd039
+
+UnknownText_0x1bd039: ; 0x1bd039
+ db $0, "Your #MON's HP", $4f
+ db "was healed.", $58
+; 0x1bd054
+
+UnknownText_0x1bd054: ; 0x1bd054
+ db $0, "Warping…", $57
+; 0x1bd05e
+
+UnknownText_0x1bd05e: ; 0x1bd05e
+ db $0, "Which number", $4f
+ db "should be changed?", $57
+; 0x1bd07f
+
+UnknownText_0x1bd07f: ; 0x1bd07f
+ db $0, "Will you play with", $4f
db "@"
-; 1c0fdc
+ text_from_ram $d086
+ db $0, "?", $57
+; 0x1bd09a
-UnknownText_0x1c0fdc: ; 1c0fdc
+UnknownText_0x1bd09a: ; 0x1bd09a
+ db $0, "You need two #-", $4f
+ db "MON for breeding.", $58
+; 0x1bd0bd
+
+UnknownText_0x1bd0bd: ; 0x1bd0bd
+ db $0, "Breeding is not", $4f
+ db "possible.", $58
+; 0x1bd0d8
+
+UnknownText_0x1bd0d8: ; 0x1bd0d8
+ db $0, "The compatibility", $4f
+ db "is @"
+ deciram $d265, $13
+ db $0, ".", $55
+ db "Should they breed?", $57
+; 0x1bd109
+
+UnknownText_0x1bd109: ; 0x1bd109
+ db $0, "There is no EGG.", $4f
+ db $58
+; 0x1bd11c
+
+UnknownText_0x1bd11c: ; 0x1bd11c
+ db $0, "It's going to", $4f
+ db "hatch!", $58
+; 0x1bd131
+
+UnknownText_0x1bd131: ; 0x1bd131
+ db $0, "Test event", $4f
db "@"
-; 1c0fdd
+ deciram $d086, $12
+ db $0, "?", $57
+; 0x1bd145
-UnknownText_0x1c0fdd: ; 1c0fdd
- db $0, "#MON number?", $57
-; 1c0feb
+UnknownText_0x1bd145: ; 0x1bd145
+ db $0, "Start!", $57
+; 0x1bd14d
-UnknownText_0x1c0feb: ; 1c0feb
- text_from_ram $d073
- db $0, " was", $4f
- db "sent to BILL's PC.", $58
-; 1c1006
+UnknownText_0x1bd14d: ; 0x1bd14d
+ db $0, "End!", $57
+; 0x1bd153
-UnknownText_0x1c1006: ; 1c1006
- db $0, "You gotta have", $4f
- db "#MON to call!", $58
-; 1c1024
+UnknownText_0x1bd153: ; 0x1bd153
+ db $0, "For a boy!", $57
+; 0x1bd15f
-UnknownText_0x1c1024: ; 1c1024
- db $0, "What?", $57
-; 1c102b
+UnknownText_0x1bd15f: ; 0x1bd15f
+ db $0, "For a girl!", $57
+; 0x1bd16c
-UnknownText_0x1c102b: ; 1c102b
- db $0, "There is a #MON", $4f
- db "holding MAIL.", $51
- db "Please remove the", $4f
- db "MAIL.", $58
-; 1c1062
+UnknownText_0x1bd16c: ; 0x1bd16c
+ db $0, "This doesn't", $4f
+ db "concern a boy!", $57
+; 0x1bd188
-UnknownText_0x1c1062: ; 1c1062
- db $0, "You don't have a", $4f
- db "single #MON!", $58
-; 1c1080
+UnknownText_0x1bd188: ; 0x1bd188
+ db $0, "The BOX is full!", $57
+; 0x1bd19a
-UnknownText_0x1c1080: ; 1c1080
- db $0, "You can't deposit", $4f
- db "your last #MON!", $58
-; 1c10a2
+UnknownText_0x1bd19a: ; 0x1bd19a
+ db $0, "A new CARD arrived", $4f
+ db "from @"
+ text_from_ram $d086
+ db $0, ".", $57
+; 0x1bd1ba
-UnknownText_0x1c10a2: ; 1c10a2
- db $0, "You can't take any", $4f
- db "more #MON.", $58
-; 1c10c0
+UnknownText_0x1bd1ba: ; 0x1bd1ba
+ db $0, "Put this CARD in", $4f
+ db "the CARD FOLDER?", $57
+; 0x1bd1dd
-UnknownText_0x1c10c0: ; 1c10c0
- db $0, "Caught @"
- text_from_ram $d073
- db $0, "!", $58
-; 1c10cf
+UnknownText_0x1bd1dd: ; 0x1bd1dd
+ text_from_ram $d086
+ db $0, "'s CARD was", $4f
+ db "listed as no.@"
+ deciram $d073, $12
+ db $0, ".", $58
+; 0x1bd201
-UnknownText_0x1c10cf: ; 1c10cf
- db $0, "Switch #MON?", $57
-; 1c10dd
+UnknownText_0x1bd201: ; 0x1bd201
+ db $0, "Starting link.", $57
+; 0x1bd211
-UnknownText_0x1c10dd: ; 1c10dd
- db $0, "You already caught", $4f
- db "a @"
+UnknownText_0x1bd211: ; 0x1bd211
+ db $0, "Link terminated.", $57
+; 0x1bd223
+
+UnknownText_0x1bd223: ; 0x1bd223
+ db $0, "Closing link.", $57
+; 0x1bd232
+
+UnknownText_0x1bd232: ; 0x1bd232
+ db $0, "Clear the time", $4f
+ db "limit?", $57
+; 0x1bd249
+
+UnknownText_0x1bd249: ; 0x1bd249
+ db $0, "The time limit was", $4f
+ db "cleared.", $57
+; 0x1bd266
+
+UnknownText_0x1bd266: ; 0x1bd266
+ db $0, "Pick which packet", $4f
+ db "as an error?", $57
+; 0x1bd286
+
+UnknownText_0x1bd286: ; 0x1bd286
+ db $0, "Trading @"
+ text_from_ram $d086
+ db $0, $4f
+ db "for @"
text_from_ram $d073
- db $0, ".", $58
-; 1c10fa
+ db $0, "…", $57
+; 0x1bd2a0
-UnknownText_0x1c10fa: ; 1c10fa
- db $0, "This Bug-Catching", $4f
- db "Contest winner is@"
- interpret_data
- db $0, "…", $51
+UnknownText_0x1bd2a0: ; 0x1bd2a0
+ db $0, "Obtained the", $4f
+ db "VOLTORBBADGE!", $57
+; 0x1bd2bc
+
+UnknownText_0x1bd2bc: ; 0x1bd2bc
+ db $0, "Which floor?", $57
+; 0x1bd2ca
+
+UnknownText_0x1bd2ca: ; 0x1bd2ca
+ db $0, "ANNOUNCER: BEEEP!", $51
+ db "Time's up!", $57
+; 0x1bd2e7
+
+UnknownText_0x1bd2e7: ; 0x1bd2e7
+ db $0, "ANNOUNCER: The", $4f
+ db "Contest is over!", $57
+; 0x1bd308
+
+UnknownText_0x1bd308: ; 0x1bd308
+ db $0, "REPEL's effect", $4f
+ db "wore off.", $57
+; 0x1bd321
+
+UnknownText_0x1bd321: ; 0x1bd321
+ db $0, $52, " found", $4f
db "@"
- text_from_ram $d016
- db $0, ",", $4f
- db "who caught a", $55
- db "@"
+ text_from_ram $d099
+ db $0, "!", $57
+; 0x1bd331
+
+UnknownText_0x1bd331: ; 0x1bd331
+ db $0, "But ", $52, " has", $4f
+ db "no space left…", $57
+; 0x1bd34b
+
+UnknownText_0x1bd34b: ; 0x1bd34b
+ db $0, "I just saw some", $4f
+ db "rare @"
text_from_ram $d073
- db $0, "!@"
+ db $0, " in", $55
db "@"
-; 1c113f
+ text_from_ram $d086
+ db $0, ".", $51
+ db "I'll call you if I", $4f
+ db "see another rare", $55
+ db "#MON, OK?", $58
+; 0x1bd39e
-UnknownText_0x1c113f: ; 1c113f
- db $0, $51
- db "The winning score", $4f
- db "was @"
- deciram $d004, $23
- db $0, " points!", $58
-; 1c1166
+UnknownText_0x1bd39e: ; 0x1bd39e
+ db $0, "SAVING RECORD…", $4f
+ db "DON'T TURN OFF!", $57
+; 0x1bd3be
-UnknownText_0x1c1166: ; 1c1166
- db $0, "Placing second was", $4f
+UnknownText_0x1bd3be: ; 0x1bd3be
+ text_from_ram $d47d
+ db $0, " received", $4f
db "@"
- text_from_ram $d016
- db $0, ",", $51
- db "who caught a", $4f
- db "@"
text_from_ram $d073
db $0, "!@"
+ sound0x0F
+ text_waitbutton
db "@"
-; 1c1196
+; 0x1bd3d6
-UnknownText_0x1c1196: ; 1c1196
- db $0, $51
- db "The score was", $4f
+UnknownText_0x1bd3d6: ; 0x1bd3d6
db "@"
- deciram $d008, $23
- db $0, " points!", $58
-; 1c11b5
+; 0x1bd3d7
-UnknownText_0x1c11b5: ; 1c11b5
- db $0, "Placing third was", $4f
+UnknownText_0x1bd3d7: ; 0x1bd3d7
+ db $0, "You have no coins.", $58
+; 0x1bd3eb
+
+UnknownText_0x1bd3eb: ; 0x1bd3eb
+ db $0, "You don't have a", $4f
+ db "COIN CASE.", $58
+; 0x1bd407
+
+UnknownText_0x1bd407: ; 0x1bd407
+ db $0, "OK, connect the", $4f
+ db "Game Link Cable.", $58
+; 0x1bd429
+
+UnknownText_0x1bd429: ; 0x1bd429
+ db $0, $52, " traded", $4f
db "@"
- text_from_ram $d016
- db $0, ",", $51
- db "who caught a", $4f
+ text_from_ram $d050
+ db $0, " for", $55
db "@"
- text_from_ram $d073
- db $0, "!@"
+ text_from_ram $d086
+ db $0, ".@"
db "@"
-; 1c11e4
+; 0x1bd445
-UnknownText_0x1c11e4: ; 1c11e4
- db $0, $51
- db "The score was", $4f
+UnknownText_0x1bd445: ; 0x1bd445
+ sound0x0A
+ interpret_data
db "@"
- deciram $d00c, $23
- db $0, " points!", $58
-; 1c1203
+; 0x1bd448
-UnknownText_0x1c1203: ; 1c1203
- db $0, "Let me measure", $4f
- db "that MAGIKARP.", $51
- db "…Hm, it measures", $4f
+UnknownText_0x1bd448: ; 0x1bd448
db "@"
- text_from_ram $d073
- db $0, ".", $58
-; 1c123a
+; 0x1bd449
-UnknownText_0x1c123a: ; 1c123a
- db $0, "CURRENT RECORD", $51
+UnknownText_0x1bd449: ; 0x1bd449
+ db $0, "I collect #MON.", $4f
+ db "Do you have", $55
db "@"
text_from_ram $d073
- db $0, " caught by", $4f
- db "@"
- text_from_ram $dfea
- text_waitbutton
- db "@"
-; 1c1260
+ db $0, "?", $51
+ db "Want to trade it", $4f
+ db "for my @"
+ text_from_ram $d086
+ db $0, "?", $57
+; 0x1bd48c
-UnknownText_0x1c1260: ; 1c1260
- db "@"
-; 1c1261
+UnknownText_0x1bd48c: ; 0x1bd48c
+ db $0, "You don't want to", $4f
+ db "trade? Aww…", $57
+; 0x1bd4aa
-UnknownText_0x1c1261: ; 1c1261
- db $0, "Congratulations!", $51
- db "We have a match", $4f
- db "with the ID number", $51
- db "of @"
+UnknownText_0x1bd4aa: ; 0x1bd4aa
+ db $0, "Huh? That's not", $4f
+ db "@"
text_from_ram $d073
- db $0, " in", $4f
- db "your party.", $58
-; 1c12ae
+ db $0, ". ", $55
+ db "What a letdown…", $57
+; 0x1bd4d2
-UnknownText_0x1c12ae: ; 1c12ae
- db $0, "Congratulations!", $51
- db "We have a match", $4f
- db "with the ID number", $51
- db "of @"
+UnknownText_0x1bd4d2: ; 0x1bd4d2
+ db $0, "Yay! I got myself", $4f
+ db "@"
text_from_ram $d073
- db $0, " in", $4f
- db "your PC BOX.", $58
-; 1c12fc
+ db $0, "!", $55
+ db "Thanks!", $57
+; 0x1bd4f4
-UnknownText_0x1c12fc: ; 1c12fc
- db $0, "Give a nickname to", $4f
- db "the @"
- text_from_ram $d073
- db $0, " you", $55
- db "received?", $57
-; 1c1328
+UnknownText_0x1bd4f4: ; 0x1bd4f4
+ db $0, "Hi, how's my old", $4f
+ db "@"
+ text_from_ram $d086
+ db $0, " doing?", $57
+; 0x1bd512
-UnknownText_0x1c1328: ; 1c1328
- db $0, "Bzzzzt! You must", $4f
- db "have a #MON to", $55
- db "use this!", $58
-; 1c1353
-
-UnknownText_0x1c1353: ; 1c1353
- db $0, $52, " turned on", $4f
- db "the PC.", $58
-; 1c1368
-
-UnknownText_0x1c1368: ; 1c1368
- db $0, "What do you want", $4f
- db "to do?", $57
-; 1c1381
-
-_KrissPCHowManyWithdrawText: ; 1c1381
- db $0, "How many do you", $4f
- db "want to withdraw?", $57
-; 1c13a4
-
-_KrissPCWithdrewItemsText: ; 1c13a4
- db $0, "Withdrew @"
- deciram $d10c, $12
- db $0, $4f
+UnknownText_0x1bd512: ; 0x1bd512
+ db $0, "Hi, I'm looking", $4f
+ db "for this #MON.", $51
+ db "If you have", $4f
db "@"
+ text_from_ram $d073
+ db $0, ", would", $51
+ db "you trade it for", $4f
+ db "my @"
text_from_ram $d086
- db $0, "(S).", $58
-; 1c13bf
+ db $0, "?", $57
+; 0x1bd565
-_KrissPCNoRoomWithdrawText: ; 1c13bf
- db $0, "There's no room", $4f
- db "for more items.", $58
-; 1c13df
+UnknownText_0x1bd565: ; 0x1bd565
+ db $0, "You don't have", $4f
+ db "one either?", $51
+ db "Gee, that's really", $4f
+ db "disappointing…", $57
+; 0x1bd5a1
-UnknownText_0x1c13df: ; 1c13df
- db $0, "No items here!", $58
-; 1c13ef
+UnknownText_0x1bd5a1: ; 0x1bd5a1
+ db $0, "You don't have", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, "? That's", $55
+ db "too bad, then.", $57
+; 0x1bd5cc
-_KrissPCHowManyDepositText: ; 1c13ef
- db $0, "How many do you", $4f
- db "want to deposit?", $57
-; 1c1411
+UnknownText_0x1bd5cc: ; 0x1bd5cc
+ db $0, "Great! Thank you!", $51
+ db "I finally got", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, ".", $57
+; 0x1bd5f4
-_KrissPCDepositItemsText: ; 1c1411
- db $0, "Deposited @"
- deciram $d10c, $12
+UnknownText_0x1bd5f4: ; 0x1bd5f4
+ db $0, "Hi! The @"
+ text_from_ram $d050
db $0, $4f
+ db "you traded me is", $55
+ db "doing great!", $57
+; 0x1bd621
+
+UnknownText_0x1bd621: ; 0x1bd621
+ text_from_ram $d050
+ db $0, "'s cute,", $4f
+ db "but I don't have", $51
+ db "it. Do you have", $4f
db "@"
+ text_from_ram $d073
+ db $0, "?", $51
+ db "Want to trade it", $4f
+ db "for my @"
text_from_ram $d086
- db $0, "(S).", $58
-; 1c142d
+ db $0, "?", $57
+; 0x1bd673
-_KrissPCNoRoomDepositText: ; 1c142d
- db $0, "There's no room to", $4f
- db "store items.", $58
-; 1c144d
+UnknownText_0x1bd673: ; 0x1bd673
+ db $0, "You don't want to", $4f
+ db "trade? Oh, darn…", $57
+; 0x1bd696
-UnknownText_0x1c144d: ; 1c144d
- db $0, $52, " turned on", $4f
- db "the PC.", $58
-; 1c1462
+UnknownText_0x1bd696: ; 0x1bd696
+ db $0, "That's not", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, ".", $51
+ db "Please trade with", $4f
+ db "me if you get one.", $57
+; 0x1bd6cd
-UnknownText_0x1c1462: ; 1c1462
- db $0, "Access whose PC?", $57
-; 1c1474
+UnknownText_0x1bd6cd: ; 0x1bd6cd
+ db $0, "Wow! Thank you!", $4f
+ db "I always wanted", $55
+ db "@"
+ text_from_ram $d050
+ db $0, "!", $57
+; 0x1bd6f5
-UnknownText_0x1c1474: ; 1c1474
- db $0, "BILL's PC", $4f
- db "accessed.", $51
- db "#MON Storage", $4f
- db "System opened.", $58
-; 1c14a4
-
-UnknownText_0x1c14a4: ; 1c14a4
- db $0, "Accessed own PC.", $51
- db "Item Storage", $4f
- db "System opened.", $58
-; 1c14d2
-
-UnknownText_0x1c14d2: ; 1c14d2
- db $0, "PROF.OAK's PC", $4f
- db "accessed.", $51
- db "#DEX Rating", $4f
- db "System opened.", $58
-; 1c1505
-
-UnknownText_0x1c1505: ; 1c1505
- db $0, "…", $4f
- db "Link closed…", $57
-; 1c1515
-
-_OakPCText1: ; 1c1515
- db $0, "Want to get your", $4f
- db "#DEX rated?", $57
-; 1c1533
-
-_OakPCText2: ; 1c1533
- db $0, "Current #DEX", $4f
- db "completion level:", $58
-; 1c1553
-
-_OakPCText3: ; 1c1553
- text_from_ram $d099
- db $0, " #MON seen", $4f
+UnknownText_0x1bd6f5: ; 0x1bd6f5
+ db $0, "How is that", $4f
db "@"
- text_from_ram $d0ac
- db $0, " #MON owned", $51
- db "PROF.OAK's", $4f
- db "Rating:", $57
-; 1c1585
+ text_from_ram $d086
+ db $0, " I", $55
+ db "traded you doing?", $51
+ db "Your @"
+ text_from_ram $d050
+ db $0, "'s", $4f
+ db "so cute!", $57
+; 0x1bd731
-_OakRating01: ; 1c1585
- db $0, "Look for #MON", $4f
- db "in grassy areas!", $57
-; 1c15a5
+UnknownText_0x1bd731: ; 0x1bd731
+ db $0, "Uh? What happened?", $57
+; 0x1bd745
-_OakRating02: ; 1c15a5
- db $0, "Good. I see you", $4f
- db "understand how to", $55
- db "use # BALLS.", $57
-; 1c15d5
+UnknownText_0x1bd745: ; 0x1bd745
+ db $0, "Trading is so odd…", $51
+ db "I still have a lot", $4f
+ db "to learn about it.", $57
+; 0x1bd77f
-_OakRating03: ; 1c15d5
- db $0, "You're getting", $4f
- db "good at this.", $51
- db "But you have a", $4f
- db "long way to go.", $57
-; 1c1611
+UnknownText_0x1bd77f: ; 0x1bd77f
+ db $0, "Wow, that's a cute", $4f
+ db "#MON.", $51
+ db "Where did you get", $4f
+ db "it?", $51
+ db "…", $51
+ db "So, you're leaving", $4f
+ db "on an adventure…", $51
+ db "OK!", $4f
+ db "I'll help too.", $51
+ db "But what can I do", $4f
+ db "for you?", $51
+ db "I know! I'll save", $4f
+ db "money for you.", $51
+ db "On a long journey,", $4f
+ db "money's important.", $51
+ db "Do you want me to", $4f
+ db "save your money?", $57
+; 0x1bd868
-_OakRating04: ; 1c1611
- db $0, "You need to fill", $4f
- db "up the #DEX.", $51
- db "Catch different", $4f
- db "kinds of #MON!", $57
-; 1c164f
+UnknownText_0x1bd868: ; 0x1bd868
+ db $0, "OK, I'll take care", $4f
+ db "of your money.", $51
+ db $56, $56, $56, $58
+; 0x1bd88e
-_OakRating05: ; 1c164f
- db $0, "You're trying--I", $4f
- db "can see that.", $51
- db "Your #DEX is", $4f
- db "coming together.", $57
-; 1c168c
+UnknownText_0x1bd88e: ; 0x1bd88e
+ db $0, "Be careful.", $51
+ db "#MON are your", $4f
+ db "friends. You need", $55
+ db "to work as a team.", $51
+ db "Now, go on!", $57
+; 0x1bd8da
-_OakRating06: ; 1c168c
- db $0, "To evolve, some", $4f
- db "#MON grow,", $51
- db "others use the", $4f
- db "effects of STONES.", $57
-; 1c16ca
+UnknownText_0x1bd8da: ; 0x1bd8da
+ db $0, "Hi! Welcome home!", $4f
+ db "You're trying very", $55
+ db "hard, I see.", $51
+ db "I've kept your", $4f
+ db "room tidy.", $51
+ db "Or is this about", $4f
+ db "your money?", $57
+; 0x1bd942
-_OakRating07: ; 1c16ca
- db $0, "Have you gotten a", $4f
- db "fishing ROD? You", $51
- db "can catch #MON", $4f
- db "by fishing.", $57
-; 1c1709
+UnknownText_0x1bd942: ; 0x1bd942
+ db $0, "What do you want", $4f
+ db "to do?", $57
+; 0x1bd95b
-_OakRating08: ; 1c1709
- db $0, "Excellent! You", $4f
- db "seem to like col-", $55
- db "lecting things!", $57
-; 1c173b
+UnknownText_0x1bd95b: ; 0x1bd95b
+ db $0, "How much do you", $4f
+ db "want to save?", $57
+; 0x1bd97a
-_OakRating09: ; 1c173b
- db $0, "Some #MON only", $4f
- db "appear during", $51
- db "certain times of", $4f
- db "the day.", $57
-; 1c1773
+UnknownText_0x1bd97a: ; 0x1bd97a
+ db $0, "How much do you", $4f
+ db "want to take?", $57
+; 0x1bd999
-_OakRating10: ; 1c1773
- db $0, "Your #DEX is", $4f
- db "filling up. Keep", $55
- db "up the good work!", $57
-; 1c17a4
+UnknownText_0x1bd999: ; 0x1bd999
+ db $0, "Do you want to", $4f
+ db "save some money?", $57
+; 0x1bd9ba
-_OakRating11: ; 1c17a4
- db $0, "I'm impressed.", $4f
- db "You're evolving", $51
- db "#MON, not just", $4f
- db "catching them.", $57
-; 1c17e0
+UnknownText_0x1bd9ba: ; 0x1bd9ba
+ db $0, "You haven't saved", $4f
+ db "that much.", $58
+; 0x1bd9d7
-_OakRating12: ; 1c17e0
- db $0, "Have you met KURT?", $4f
- db "His custom BALLS", $55
- db "should help.", $57
-; 1c1812
+UnknownText_0x1bd9d7: ; 0x1bd9d7
+ db $0, "You can't take", $4f
+ db "that much.", $58
+; 0x1bd9f1
-_OakRating13: ; 1c1812
- db $0, "Wow. You've found", $4f
- db "more #MON than", $51
- db "the last #DEX", $4f
- db "research project.", $57
-; 1c1853
+UnknownText_0x1bd9f1: ; 0x1bd9f1
+ db $0, "You don't have", $4f
+ db "that much.", $58
+; 0x1bda0b
-_OakRating14: ; 1c1853
- db $0, "Are you trading", $4f
- db "your #MON?", $51
- db "It's tough to do", $4f
- db "this alone!", $57
-; 1c188b
+UnknownText_0x1bda0b: ; 0x1bda0b
+ db $0, "You can't save", $4f
+ db "that much.", $58
+; 0x1bda25
-_OakRating15: ; 1c188b
- db $0, "Wow! You've hit", $4f
- db "200! Your #DEX", $55
- db "is looking great!", $57
-; 1c18bc
+UnknownText_0x1bda25: ; 0x1bda25
+ db $0, "OK, I'll save your", $4f
+ db "money. Trust me!", $51
+ db $52, ", stick", $4f
+ db "with it!", $57
+; 0x1bda5b
-_OakRating16: ; 1c18bc
- db $0, "You've found so", $4f
- db "many #MON!", $51
- db "You've really", $4f
- db "helped my studies!", $57
-; 1c18f7
+UnknownText_0x1bda5b: ; 0x1bda5b
+ db $0, "Your money's safe", $4f
+ db "here! Get going!", $57
+; 0x1bda7e
-_OakRating17: ; 1c18f7
- db $0, "Magnificent! You", $4f
- db "could become a", $51
- db "#MON professor", $4f
- db "right now!", $57
-; 1c1932
+UnknownText_0x1bda7e: ; 0x1bda7e
+ db $0, $52, ", don't", $4f
+ db "give up!", $57
+; 0x1bda90
-_OakRating18: ; 1c1932
- db $0, "Your #DEX is", $4f
- db "amazing! You're", $51
- db "ready to turn", $4f
- db "professional!", $57
-; 1c196b
+UnknownText_0x1bda90: ; 0x1bda90
+ db $0, "Just do what", $4f
+ db "you can.", $57
+; 0x1bdaa7
-_OakRating19: ; 1c196b
- db $0, "Whoa! A perfect", $4f
- db "#DEX! I've", $51
- db "dreamt about this!", $4f
- db "Congratulations!", $57
-; 1c19aa
+UnknownText_0x1bdaa7: ; 0x1bdaa7
+ db $0, $57
+; 0x1bdaa9
-_OakPCText4: ; 1c19aa
- db $0, "The link to PROF.", $4f
- db "OAK's PC closed.", $57
-; 1c19cd
+UnknownText_0x1bdaa9: ; 0x1bdaa9
+ db $0, "I'm the DAY-CARE", $4f
+ db "MAN. Want me to", $55
+ db "raise a #MON?", $57
+; 0x1bdad8
-UnknownText_0x1c19cd: ; 1c19cd
- db $0, "Triple-theme", $4f
- db "trainer ranking!", $51
- db "The SAVE file you", $4f
- db "just sent might", $55
- db "make the rankings!", $51
- db $57
-; 1c1a22
+UnknownText_0x1bdad8: ; 0x1bdad8
+ db $0, "I'm the DAY-CARE", $4f
+ db "MAN. Do you know", $55
+ db "about EGGS?", $51
+ db "I was raising", $4f
+ db "#MON with my", $55
+ db "wife, you see.", $51
+ db "We were shocked to", $4f
+ db "find an EGG!", $51
+ db "How incredible is", $4f
+ db "that?", $51
+ db "So, want me to", $4f
+ db "raise a #MON?", $57
+; 0x1bdb85
-UnknownText_0x1c1a22: ; 1c1a22
- db $0, "There is no", $4f
- db "ranking data.", $51
- db "Link to obtain", $4f
- db "ranking data.", $51
- db $57
-; 1c1a5b
+UnknownText_0x1bdb85: ; 0x1bdb85
+ db $0, "I'm the DAY-CARE", $4f
+ db "LADY.", $51
+ db "Should I raise a", $4f
+ db "#MON for you?", $57
+; 0x1bdbbb
-UnknownText_0x1c1a5b: ; 1c1a5b
- db $0, " , yeah!", $57
-; 1c1a65
+UnknownText_0x1bdbbb: ; 0x1bdbbb
+ db $0, "I'm the DAY-CARE", $4f
+ db "LADY. Do you know", $55
+ db "about EGGS?", $51
+ db "My husband and I", $4f
+ db "were raising some", $55
+ db "#MON, you see.", $51
+ db "We were shocked to", $4f
+ db "find an EGG!", $51
+ db "How incredible", $4f
+ db "could that be?", $51
+ db "Should I raise a", $4f
+ db "#MON for you?", $57
+; 0x1bdc79
-UnknownText_0x1c1a65: ; 1c1a65
- db $0, "Darn…", $57
-; 1c1a6c
+UnknownText_0x1bdc79: ; 0x1bdc79
+ db $0, "What should I", $4f
+ db "raise for you?", $58
+; 0x1bdc97
-UnknownText_0x1c1a6c: ; 1c1a6c
- db $0, "Would you like to", $4f
- db "end the Contest?", $57
-; 1c1a90
+UnknownText_0x1bdc97: ; 0x1bdc97
+ db $0, "Oh? But you have", $4f
+ db "just one #MON.", $58
+; 0x1bdcb8
-UnknownText_0x1c1a90: ; 1c1a90
- db $0, "Toss out how many", $4f
- db "@"
- text_from_ram $d086
- db $0, "(S)?", $57
-; 1c1aad
+UnknownText_0x1bdcb8: ; 0x1bdcb8
+ db $0, "Sorry, but I can't", $4f
+ db "accept an EGG.", $58
+; 0x1bdcda
-UnknownText_0x1c1aad: ; 1c1aad
- db $0, "Throw away @"
- deciram $d10c, $12
- db $0, $4f
- db "@"
- text_from_ram $d086
- db $0, "(S)?", $57
-; 1c1aca
+UnknownText_0x1bdcda: ; 0x1bdcda
+ db $0, "Remove MAIL before", $4f
+ db "you come see me.", $58
+; 0x1bdcff
-UnknownText_0x1c1aca: ; 1c1aca
- db $0, "Discarded", $4f
- db "@"
- text_from_ram $d073
- db $0, "(S).", $58
-; 1c1adf
+UnknownText_0x1bdcff: ; 0x1bdcff
+ db $0, "If you give me", $4f
+ db "that, what will", $55
+ db "you battle with?", $58
+; 0x1bdd30
-UnknownText_0x1c1adf: ; 1c1adf
- db $0, "That's too impor-", $4f
- db "tant to toss out!", $58
-; 1c1b03
-
-UnknownText_0x1c1b03: ; 1c1b03
- db $0, "OAK: ", $52, "!", $4f
- db "This isn't the", $55
- db "time to use that!", $57
-; 1c1b2c
-
-UnknownText_0x1c1b2c: ; 1c1b2c
- db $0, "Took @"
- text_from_ram $d050
- db $0, "'s", $4f
- db "@"
+UnknownText_0x1bdd30: ; 0x1bdd30
+ db $0, "OK. I'll raise", $4f
+ db "your @"
text_from_ram $d073
- db $0, " and", $51
- db "made it hold", $4f
- db "@"
- text_from_ram $d086
db $0, ".", $58
-; 1c1b57
+; 0x1bdd4b
-UnknownText_0x1c1b57: ; 1c1b57
- db $0, "Made @"
- text_from_ram $d050
- db $0, $4f
- db "hold @"
- text_from_ram $d086
- db $0, ".", $58
-; 1c1b6f
+UnknownText_0x1bdd4b: ; 0x1bdd4b
+ db $0, "Come back for it", $4f
+ db "later.", $57
+; 0x1bdd64
-UnknownText_0x1c1b6f: ; 1c1b6f
- db $0, "Please remove the", $4f
- db "MAIL first.", $58
-; 1c1b8e
+UnknownText_0x1bdd64: ; 0x1bdd64
+ db $0, "Are we geniuses or", $4f
+ db "what? Want to see", $55
+ db "your @"
+ text_from_ram $d073
+ db $0, "?", $57
+; 0x1bdd96
-UnknownText_0x1c1b8e: ; 1c1b8e
- text_from_ram $d050
- db $0, " isn't", $4f
- db "holding anything.", $58
-; 1c1baa
-
-UnknownText_0x1c1baa: ; 1c1baa
- db $0, "Item storage space", $4f
- db "full.", $58
-; 1c1bc4
-
-UnknownText_0x1c1bc4: ; 1c1bc4
- db $0, "Took @"
+UnknownText_0x1bdd96: ; 0x1bdd96
+ db $0, "Your @"
text_from_ram $d073
db $0, $4f
- db "from @"
- text_from_ram $d050
- db $0, ".", $58
-; 1c1bdc
+ db "has grown a lot.", $51
+ db "By level, it's", $4f
+ db "grown by @"
+ deciram $d087, $13
+ db $0, ".", $51
+ db "If you want your", $4f
+ db "#MON back, it", $55
+ db "will cost ¥@"
+ deciram $d088, $34
+ db $0, ".", $57
+; 0x1bde04
-UnknownText_0x1c1bdc: ; 1c1bdc
- text_from_ram $d050
- db $0, " is", $4f
- db "already holding", $51
- db "@"
- text_from_ram $d073
- db $0, ".", $4f
- db "Switch items?", $57
-; 1c1c09
+UnknownText_0x1bde04: ; 0x1bde04
+ db $0, "Perfect! Here's", $4f
+ db "your #MON.", $58
+; 0x1bde1f
-UnknownText_0x1c1c09: ; 1c1c09
- db $0, "This item can't be", $4f
- db "held.", $58
-; 1c1c22
-
-UnknownText_0x1c1c22: ; 1c1c22
- db $0, "The MAIL will lose", $4f
- db "its message. OK?", $57
-; 1c1c47
-
-UnknownText_0x1c1c47: ; 1c1c47
- db $0, "MAIL detached from", $4f
+UnknownText_0x1bde1f: ; 0x1bde1f
+ db $0, $52, " got back", $4f
db "@"
text_from_ram $d073
db $0, ".", $58
-; 1c1c62
+; 0x1bde32
-UnknownText_0x1c1c62: ; 1c1c62
- db $0, "There's no space", $4f
- db "for removing MAIL.", $58
-; 1c1c86
+UnknownText_0x1bde32: ; 0x1bde32
+ db $0, "Huh? Back already?", $4f
+ db "Your @"
+ text_from_ram $d073
+ db $0, $51
+ db "needs a little", $4f
+ db "more time with us.", $51
+ db "If you want your", $4f
+ db "#MON back, it", $55
+ db "will cost ¥100.", $57
+; 0x1bdea2
-UnknownText_0x1c1c86: ; 1c1c86
- db $0, "Send the removed", $4f
- db "MAIL to your PC?", $57
-; 1c1ca9
+UnknownText_0x1bdea2: ; 0x1bdea2
+ db $0, "You have no room", $4f
+ db "for it.", $58
+; 0x1bdebc
-UnknownText_0x1c1ca9: ; 1c1ca9
- db $0, "Your PC's MAILBOX", $4f
- db "is full.", $58
-; 1c1cc4
+UnknownText_0x1bdebc: ; 0x1bdebc
+ db $0, "You don't have", $4f
+ db "enough money.", $58
+; 0x1bded9
-UnknownText_0x1c1cc4: ; 1c1cc4
- db $0, "The MAIL was sent", $4f
- db "to your PC.", $58
-; 1c1ce3
+UnknownText_0x1bded9: ; 0x1bded9
+ db $0, "Oh, fine then.", $58
+; 0x1bdee9
-UnknownText_0x1c1ce3: ; 1c1ce3
- db $0, "Not enough HP!", $58
-; 1c1cf3
+UnknownText_0x1bdee9: ; 0x1bdee9
+ db $0, "Come again.", $57
+; 0x1bdef6
-UnknownText_0x1c1cf3: ; 1c1cf3
- db $0, "An item in your", $4f
- db "PACK may be", $51
- db "registered for use", $4f
- db "on SELECT Button.", $57
-; 1c1d35
+UnknownText_0x1bdef6: ; 0x1bdef6
+ db $0, "Not yet…", $57
+; 0x1bdf00
-_OakText1: ; 1c1d35
- db $0, "Hello! Sorry to", $4f
- db "keep you waiting!", $51
- db "Welcome to the", $4f
- db "world of #MON!", $51
- db "My name is OAK.", $51
- db "People call me the", $4f
- db "#MON PROF.", $58
-; 1c1da4
+UnknownText_0x1bdf00: ; 0x1bdf00
+ db $0, "Ah, it's you!", $51
+ db "We were raising", $4f
+ db "your #MON, and", $51
+ db "my goodness, were", $4f
+ db "we surprised!", $51
+ db "Your #MON had", $4f
+ db "an EGG!", $51
+ db "We don't know how", $4f
+ db "it got there, but", $51
+ db "your #MON had", $4f
+ db "it. You want it?", $57
+; 0x1bdfa5
-_OakText2: ; 1c1da4
- db $0, "This world is in-", $4f
- db "habited by crea-", $55
- db "tures that we call", $55
- db "#MON.@"
- db "@"
-; 1c1de2
+UnknownText_0x1bdfa5: ; 0x1bdfa5
+ db $0, $52, " received", $4f
+ db "the EGG!", $57
+; 0x1bdfba
-_OakText3: ; 1c1de2
- text_waitbutton
- db "@"
-; 1c1de4
+UnknownText_0x1bdfba: ; 0x1bdfba
+ db $0, "Take good care of", $4f
+ db "it.", $57
+; 0x1bdfd1
-UnknownText_0x1c1de4: ; 1c1de4
- db "@"
-; 1c1de5
+UnknownText_0x1bdfd1: ; 0x1bdfd1
+ db $0, "Well then, I'll", $4f
+ db "keep it. Thanks!", $57
+; 0x1bdff2
-_OakText4: ; 1c1de5
- db $0, "People and #MON", $4f
- db "live together by", $51
- db "supporting each", $4f
- db "other.", $51
- db "Some people play", $4f
- db "with #MON, some", $55
- db "battle with them.", $58
-; 1c1e51
+UnknownText_0x1bdff2: ; 0x1bdff2
+ db $0, "You have no room", $4f
+ db "in your party.", $55
+ db "Come back later.", $57
+; 0x1be024
-_OakText5: ; 1c1e51
- db $0, "But we don't know", $4f
- db "everything about", $55
- db "#MON yet.", $51
- db "There are still", $4f
- db "many mysteries to", $55
- db "solve.", $51
- db "That's why I study", $4f
- db "#MON every day.", $58
-; 1c1ec9
+UnknownText_0x1be024: ; 0x1be024
+ db $0, "Which #MON", $4f
+ db "should I photo-", $55
+ db "graph?", $58
+; 0x1be047
+
+UnknownText_0x1be047: ; 0x1be047
+ db $0, "All righty. Hold", $4f
+ db "still for a bit.", $58
+; 0x1be06a
+
+UnknownText_0x1be06a: ; 0x1be06a
+ db $0, "Presto! All done.", $4f
+ db "Come again, OK?", $57
+; 0x1be08d
--- a/text/common_3.asm
+++ b/text/common_3.asm
@@ -1,1455 +1,1553 @@
-_OakText6: ; 0x1c4000
- db $0, "Now, what did you", $4f
- db "say your name was?", $58
-; 0x1c4026
+UnknownText_0x1c0000: ; 1c0000
+ db $0, "Oh, no picture?", $4f
+ db "Come again, OK?", $57
+; 1c0021
-_OakText7: ; 0x1c4026
- db $0, $52, ", are you", $4f
- db "ready?", $51
- db "Your very own", $4f
- db "#MON story is", $55
- db "about to unfold.", $51
- db "You'll face fun", $4f
- db "times and tough", $55
- db "challenges.", $51
- db "A world of dreams", $4f
- db "and adventures", $51
- db "with #MON", $4f
- db "awaits! Let's go!", $51
- db "I'll be seeing you", $4f
- db "later!", $57
-; 0x1c40e6
+UnknownText_0x1c0021: ; 1c0021
+ db $0, "An EGG? My talent", $4f
+ db "is worth more…", $57
+; 1c0043
-UnknownText_0x1c40e6: ; 0x1c40e6
- db $0, "The clock's time", $4f
- db "may be wrong.", $51
- db "Please reset the", $4f
- db "time.", $58
-; 0x1c411c
+UnknownText_0x1c0043: ; 1c0043
+ db $0, "Hello, hello! I'm", $4f
+ db "the NAME RATER.", $51
+ db "I rate the names", $4f
+ db "of #MON.", $51
+ db "Would you like me", $4f
+ db "to rate names?", $57
+; 1c00a0
-UnknownText_0x1c411c: ; 0x1c411c
- db $0, "Set with the", $4f
- db "Control Pad.", $51
- db "Confirm: A Button", $4f
- db "Cancel: B Button", $57
-; 0x1c415b
+UnknownText_0x1c00a0: ; 1c00a0
+ db $0, "Which #MON's", $4f
+ db "nickname should I", $55
+ db "rate for you?", $58
+; 1c00cd
-UnknownText_0x1c415b: ; 0x1c415b
- db $0, "Is this OK?", $57
-; 0x1c4168
+UnknownText_0x1c00cd: ; 1c00cd
+ db $0, "Hm… @"
+ text_from_ram $d073
+ db $0, "…", $4f
+ db "That's a fairly", $55
+ db "decent name.", $51
+ db "But, how about a", $4f
+ db "slightly better", $55
+ db "nickname?", $51
+ db "Want me to give it", $4f
+ db "a better name?", $57
+; 1c0142
-UnknownText_0x1c4168: ; 0x1c4168
- db $0, "The clock has been", $4f
- db "reset.", $57
-; 0x1c4183
+UnknownText_0x1c0142: ; 1c0142
+ db $0, "All right. What", $4f
+ db "name should we", $55
+ db "give it, then?", $58
+; 1c0171
-UnknownText_0x1c4183: ; 0x1c4183
- db $0, "Too much time has", $4f
- db "elapsed. Please", $55
- db "try again.", $58
-; 0x1c41b1
+UnknownText_0x1c0171: ; 1c0171
+ db $0, "That's a better", $4f
+ db "name than before!", $51
+ db "Well done!", $57
+; 1c019e
-UnknownText_0x1c41b1: ; 0x1c41b1
- db $0, "If you trade that", $4f
- db "#MON, you won't", $55
- db "be able to battle.", $58
-; 0x1c41e6
+UnknownText_0x1c019e: ; 1c019e
+ db $0, "OK, then. Come", $4f
+ db "again sometime.", $57
+; 1c01be
-UnknownText_0x1c41e6: ; 0x1c41e6
- db $0, "Your friend's", $4f
- db "@"
+UnknownText_0x1c01be: ; 1c01be
+ db $0, "Hm… @"
text_from_ram $d073
- db $0, " appears", $55
- db "to be abnormal!", $58
-; 0x1c4212
-
-UnknownText_0x1c4212: ; 0x1c4212
- db $0, "Trade @"
- text_from_ram $d004
- db $0, $4f
- db "for @"
+ db $0, "?", $4f
+ db "What a great name!", $55
+ db "It's perfect.", $51
+ db "Treat @"
text_from_ram $d073
- db $0, "?", $57
-; 0x1c422a
+ db $0, $4f
+ db "with loving care.", $57
+; 1c0208
-UnknownText_0x1c422a: ; 0x1c422a
- db $0, "To enter a mobile", $4f
- db "battle, you must", $51
- db "pick a team of", $4f
- db "three #MON.", $51
- db "Is that OK?", $57
-; 0x1c4275
+UnknownText_0x1c0208: ; 1c0208
+ db $0, "Whoa… That's just", $4f
+ db "an EGG.", $57
+; 1c0222
-UnknownText_0x1c4275: ; 0x1c4275
- db $0, "Need more info on", $4f
- db "mobile battles?", $57
-; 0x1c4298
+UnknownText_0x1c0222: ; 1c0222
+ db $0, "It might look the", $4f
+ db "same as before,", $51
+ db "but this new name", $4f
+ db "is much better!", $51
+ db "Well done!", $57
+; 1c0272
-UnknownText_0x1c4298: ; 0x1c4298
- db $0, "For a mobile", $4f
- db "battle, choose", $55
- db "three #MON.", $51
- db "The maximum daily", $4f
- db "play time is ten", $51
- db "minutes for each", $4f
- db "linked player.", $51
- db "If a battle isn't", $4f
- db "finished within", $51
- db "the time limit,", $4f
- db "the player with", $51
- db "the fewest fainted", $4f
- db "#MON wins.", $51
- db "If tied, the team", $4f
- db "that lost the", $51
- db "least amount of HP", $4f
- db "wins.", $57
-; 0x1c439c
+UnknownText_0x1c0272: ; 1c0272
+ db $0, "All right. This", $4f
+ db "#MON is now", $55
+ db "named @"
+ text_from_ram $d073
+ db $0, ".", $58
+; 1c029c
-UnknownText_0x1c439c: ; 0x1c439c
- db $0, "Today's remaining", $4f
- db "time is @"
- deciram $d086, $12
- db $0, " min.", $51
- db "Would you like to", $4f
- db "battle?", $57
-; 0x1c43dc
+UnknownText_0x1c029c: ; 1c029c
+ text_from_ram $d073
+ db $0, " gained@"
+ db "@"
+; 1c02a9
-UnknownText_0x1c43dc: ; 0x1c43dc
- db $0, "There are only @"
- deciram $d086, $12
+UnknownText_0x1c02a9: ; 1c02a9
db $0, $4f
- db "min. left today.", $51
- db "Want a quick", $4f
- db "battle?", $57
-; 0x1c4419
+ db "a boosted", $55
+ db "@"
+ deciram $d086, $24
+ db $0, " EXP. Points!", $58
+; 1c02c9
-UnknownText_0x1c4419: ; 0x1c4419
- db $0, "There is only", $4f
- db "1 min. left today!", $51
- db "Want to rush", $4f
- db "through a battle?", $57
-; 0x1c445a
+UnknownText_0x1c02c9: ; 1c02c9
+ db $0, $4f
+ db "@"
+ deciram $d086, $24
+ db $0, " EXP. Points!", $58
+; 1c02df
-UnknownText_0x1c445a: ; 0x1c445a
- db $0, "There is less than", $4f
- db "1 min. left today!", $51
- db "Please try again", $4f
- db "tomorrow.", $57
-; 0x1c449c
+UnknownText_0x1c02df: ; 1c02df
+ db $0, "Go! @"
+ db "@"
+; 1c02e6
-UnknownText_0x1c449c: ; 0x1c449c
- db $0, "Try again using", $4f
- db "the same settings?", $57
-; 0x1c44c0
+UnknownText_0x1c02e6: ; 1c02e6
+ db $0, "Do it! @"
+ db "@"
+; 1c02f0
-UnknownText_0x1c44c0: ; 0x1c44c0
- db $0, "There is less than", $4f
- db "1 min. left today!", $57
-; 0x1c44e7
+UnknownText_0x1c02f0: ; 1c02f0
+ db $0, "Go for it,", $4f
+ db "@"
+ db "@"
+; 1c02fe
-UnknownText_0x1c44e7: ; 0x1c44e7
- db $0, "No time left for", $4f
- db "linking today.", $57
-; 0x1c4508
+UnknownText_0x1c02fe: ; 1c02fe
+ db $0, "Your foe's weak!", $4f
+ db "Get'm, @"
+ db "@"
+; 1c0317
-UnknownText_0x1c4508: ; 0x1c4508
- db $0, "Pick three #MON", $4f
- db "for battle.", $57
-; 0x1c4525
+UnknownText_0x1c0317: ; 1c0317
+ text_from_ram $c621
+ db $0, "!", $57
+; 1c031d
-UnknownText_0x1c4525: ; 0x1c4525
- db $0, "Today's remaining", $4f
- db "time is @"
- deciram $d086, $12
- db $0, " min.", $57
-; 0x1c454b
+UnknownText_0x1c031d: ; 1c031d
+ text_from_ram $c621
+ db $0, ",@"
+ db "@"
+; 1c0324
-UnknownText_0x1c454b: ; 0x1c454b
- db $0, "Would you like to", $4f
- db "save the game?", $57
-; 0x1c456d
+UnknownText_0x1c0324: ; 1c0324
+ db $0, " that's", $4f
+ db "enough! Come back!@"
+ db "@"
+; 1c0340
-UnknownText_0x1c456d: ; 0x1c456d
- db $0, "SAVING… DON'T TURN", $4f
- db "OFF THE POWER.", $57
-; 0x1c4590
+UnknownText_0x1c0340: ; 1c0340
+ db $0, " OK!", $4f
+ db "Come back!@"
+ db "@"
+; 1c0352
-UnknownText_0x1c4590: ; 0x1c4590
- db $0, $52, " saved", $4f
- db "the game.", $57
-; 0x1c45a3
+UnknownText_0x1c0352: ; 1c0352
+ db $0, " good!", $4f
+ db "Come back!@"
+ db "@"
+; 1c0366
-UnknownText_0x1c45a3: ; 0x1c45a3
- db $0, "There is already a", $4f
- db "save file. Is it", $55
- db "OK to overwrite?", $57
-; 0x1c45d9
+UnknownText_0x1c0366: ; 1c0366
+ db $0, " come", $4f
+ db "back!", $57
+; 1c0373
-UnknownText_0x1c45d9: ; 0x1c45d9
- db $0, "There is another", $4f
- db "save file. Is it", $55
- db "OK to overwrite?", $57
-; 0x1c460d
+UnknownText_0x1c0373: ; 1c0373
+ db $0, "Booted up a TM.", $58
+; 1c0384
-UnknownText_0x1c460d: ; 0x1c460d
- db $0, "The save file is", $4f
- db "corrupted!", $58
-; 0x1c462a
+UnknownText_0x1c0384: ; 1c0384
+ db $0, "Booted up an HM.", $58
+; 1c0396
-UnknownText_0x1c462a: ; 0x1c462a
- db $0, "When you change a", $4f
- db "#MON BOX, data", $55
- db "will be saved. OK?", $57
-; 0x1c465f
+UnknownText_0x1c0396: ; 1c0396
+ db $0, "It contained", $4f
+ db "@"
+ text_from_ram $d086
+ db $0, ".", $51
+ db "Teach @"
+ text_from_ram $d086
+ db $0, $4f
+ db "to a #MON?", $57
+; 1c03c2
-UnknownText_0x1c465f: ; 0x1c465f
- db $0, "Each time you move", $4f
- db "a #MON, data", $55
- db "will be saved. OK?", $57
-; 0x1c4693
+UnknownText_0x1c03c2: ; 1c03c2
+ text_from_ram $d086
+ db $0, " is", $4f
+ db "not compatible", $55
+ db "with @"
+ text_from_ram $d073
+ db $0, ".", $51
+ db "It can't learn", $4f
+ db "@"
+ text_from_ram $d086
+ db $0, ".", $58
+; 1c03fa
-UnknownText_0x1c4693: ; 0x1c4693
- db $0, "The window save", $4f
- db "area was exceeded.", $57
-; 0x1c46b7
+UnknownText_0x1c03fa: ; 1c03fa
+ db $0, "You have no room", $4f
+ db "for any more", $55
+ db "@"
+ text_from_ram $d073
+ db $0, "S.", $58
+; 1c0421
-UnknownText_0x1c46b7: ; 0x1c46b7
- db $0, "No windows avail-", $4f
- db "able for popping.", $57
-; 0x1c46dc
+UnknownText_0x1c0421: ; 1c0421
+ db $0, "You received", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, "!", $58
+; 1c0436
-UnknownText_0x1c46dc: ; 0x1c46dc
- db $0, "Corrupted event!", $58
-; 0x1c46ee
+UnknownText_0x1c0436: ; 1c0436
+ db $0, "The link has been", $4f
+ db "cancelled.", $58
+; 1c0454
-_ObjectEventText: ; 0x1c46ee
- db $0, "Object event", $57
-; 0x1c46fc
+UnknownText_0x1c0454: ; 1c0454
+ db $0, "Communication", $4f
+ db "error.", $58
+; 1c046a
-UnknownText_0x1c46fc: ; 0x1c46fc
- db $0, "BG event", $57
-; 0x1c4706
+UnknownText_0x1c046a: ; 1c046a
+ db $0, "Must retrieve GIFT", $4f
+ db "at #MON CENTER.", $58
+; 1c048e
-UnknownText_0x1c4706: ; 0x1c4706
- db $0, "Coordinates event", $57
-; 0x1c4719
+UnknownText_0x1c048e: ; 1c048e
+ db $0, "Your friend isn't", $4f
+ db "ready.", $58
+; 1c04a7
-UnknownText_0x1c4719: ; 0x1c4719
- db $0, $52, " received", $4f
- db "@"
- text_from_ram $d0ac
- db $0, ".", $57
-; 0x1c472c
+UnknownText_0x1c04a7: ; 1c04a7
+ db $0, "Sorry--only five", $4f
+ db "GIFTS a day.", $58
+; 1c04c6
-UnknownText_0x1c472c: ; 0x1c472c
- db $0, $52, " put the", $4f
+UnknownText_0x1c04c6: ; 1c04c6
+ db $0, "Sorry. One GIFT", $4f
+ db "a day per person.", $58
+; 1c04e9
+
+UnknownText_0x1c04e9: ; 1c04e9
+ text_from_ram $c903
+ db $0, " sent", $4f
db "@"
text_from_ram $d073
- db $0, " in", $55
- db "the @"
- text_from_ram $d099
db $0, ".", $58
-; 0x1c474b
+; 1c04fa
-UnknownText_0x1c474b: ; 0x1c474b
- db $0, "The @"
- text_from_ram $d099
- db $0, $4f
- db "is full…", $58
-; 0x1c475f
+UnknownText_0x1c04fa: ; 1c04fa
+ text_from_ram $c903
+ db $0, " sent", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, $55
+ db "to @"
+ text_from_ram $c953
+ db $0, "'s home.", $58
+; 1c051a
-UnknownText_0x1c475f: ; 0x1c475f
- db $0, "I see all.", $4f
- db "I know all…", $51
- db "Certainly, I know", $4f
- db "of your #MON!", $57
-; 0x1c4797
+UnknownText_0x1c051a: ; 1c051a
+ db $0, "Received", $4f
+ db "@"
+ text_from_ram $c850
+ db $0, "'s CARD.", $58
+; 1c0531
-UnknownText_0x1c4797: ; 0x1c4797
- db $0, "Whaaaat? I can't", $4f
- db "tell a thing!", $51
- db "How could I not", $4f
- db "know of this?", $57
-; 0x1c47d4
+UnknownText_0x1c0531: ; 1c0531
+ text_from_ram $c850
+ db $0, "'s CARD was", $4f
+ db "listed as no.@"
+ deciram $d265, $12
+ db $0, ".", $58
+; 1c0555
-UnknownText_0x1c47d4: ; 0x1c47d4
- db $0, "Hm… I see you met", $4f
- db "@"
- text_from_ram $d003
- db $0, " here:", $55
- db "@"
- text_from_ram $d00e
- db $0, "!", $58
-; 0x1c47fa
+UnknownText_0x1c0555: ; 1c0555
+ db $0, "The CARD was not", $4f
+ db "registered.", $58
+; 1c0573
-UnknownText_0x1c47fa: ; 0x1c47fa
- db $0, "The time was", $4f
- db "@"
- text_from_ram $d01f
- db $0, "!", $51
- db "Its level was @"
- text_from_ram $d036
- db $0, "!", $51
- db "Am I good or what?", $58
-; 0x1c4837
+UnknownText_0x1c0573: ; 1c0573
+ db $0, "The link has been", $4f
+ db "cancelled.", $58
+; 1c0591
-UnknownText_0x1c4837: ; 0x1c4837
- db $0, "Hm… @"
- text_from_ram $d003
- db $0, $4f
- db "came from @"
- text_from_ram $d02a
- db $0, $55
- db "in a trade?", $51
- db "@"
- text_from_ram $d00e
- db $0, $4f
- db "was where @"
- text_from_ram $d02a
- db $0, $55
- db "met @"
- text_from_ram $d003
- db $0, "!", $58
-; 0x1c487f
+UnknownText_0x1c0591: ; 1c0591
+ db $0, "Communication", $4f
+ db "error.", $58
+; 1c05a7
-UnknownText_0x1c487f: ; 0x1c487f
- db $0, "What!? Incredible!", $51
- db "I don't understand", $4f
- db "how, but it is", $51
- db "incredible!", $4f
- db "You are special.", $51
- db "I can't tell where", $4f
- db "you met it, but it", $55
- db "was at level @"
- text_from_ram $d036
- db $0, ".", $51
- db "Am I good or what?", $58
-; 0x1c491d
+_BadgeRequiredText: ; 1c05a7
+ db $0, "Sorry! A new BADGE", $4f
+ db "is required.", $58
+; 1c05c8
-UnknownText_0x1c491d: ; 0x1c491d
- db $0, "Hey!", $51
- db "That's an EGG!", $51
- db "You can't say that", $4f
- db "you've met it yet…", $57
-; 0x1c4955
+UnknownText_0x1c05c8: ; 1c05c8
+ db $0, "Can't use that", $4f
+ db "here.", $58
+; 1c05dd
-UnknownText_0x1c4955: ; 0x1c4955
- db $0, "Fufufu! I saw that", $4f
- db "you'd do nothing!", $57
-; 0x1c497a
+UnknownText_0x1c05dd: ; 1c05dd
+ text_from_ram $d086
+ db $0, " used", $4f
+ db "CUT!", $58
+; 1c05ec
-UnknownText_0x1c497a: ; 0x1c497a
- db $0, "Incidentally…", $51
- db "It would be wise", $4f
- db "to raise your", $51
- db "#MON with a", $4f
- db "little more care.", $57
-; 0x1c49c6
+UnknownText_0x1c05ec: ; 1c05ec
+ db $0, "There's nothing to", $4f
+ db "CUT here.", $58
+; 1c0609
-UnknownText_0x1c49c6: ; 0x1c49c6
- db $0, "Incidentally…", $51
- db "It seems to have", $4f
- db "grown a little.", $51
+UnknownText_0x1c0609: ; 1c0609
+ db $0, "A blinding FLASH", $4f
+ db "lights the area!@"
+ text_waitbutton
db "@"
- text_from_ram $d003
- db $0, " seems", $4f
- db "to be becoming", $55
- db "more confident.", $57
-; 0x1c4a21
+; 1c062e
-UnknownText_0x1c4a21: ; 0x1c4a21
- db $0, "Incidentally…", $51
+UnknownText_0x1c062e: ; 1c062e
db "@"
- text_from_ram $d003
- db $0, " has", $4f
- db "grown. It's gained", $55
- db "much strength.", $57
-; 0x1c4a5b
+; 1c062f
-UnknownText_0x1c4a5b: ; 0x1c4a5b
- db $0, "Incidentally…", $51
- db "It certainly has", $4f
- db "grown mighty!", $51
- db "This @"
- text_from_ram $d003
- db $0, $4f
- db "must have come", $51
- db "through numerous", $4f
- db "#MON battles.", $51
- db "It looks brimming", $4f
- db "with confidence.", $57
-; 0x1c4ae5
+_UsedSurfText: ; 1c062f
+ text_from_ram $d086
+ db $0, " used", $4f
+ db "SURF!", $57
+; 1c063f
-UnknownText_0x1c4ae5: ; 0x1c4ae5
- db $0, "Incidentally…", $51
- db "I'm impressed by", $4f
- db "your dedication.", $51
- db "It's been a long", $4f
- db "time since I've", $51
- db "seen a #MON as", $4f
- db "mighty as this", $55
- db "@"
- text_from_ram $d003
- db $0, ".", $51
- db "I'm sure that", $4f
- db "seeing @"
- text_from_ram $d003
- db $0, $51
- db "in battle would", $4f
- db "excite anyone.", $57
-; 0x1c4b92
+_CantSurfText: ; 1c063f
+ db $0, "You can't SURF", $4f
+ db "here.", $58
+; 1c0654
-UnknownText_0x1c4b92: ; 0x1c4b92
- db $0, "Congratulations!", $4f
- db "Your @"
+_AlreadySurfingText: ; 1c0654
+ db $0, "You're already", $4f
+ db "SURFING.", $58
+; 1c066c
+
+_AskSurfText: ; 1c066c
+ db $0, "The water is calm.", $4f
+ db "Want to SURF?", $57
+; 1c068e
+
+UnknownText_0x1c068e: ; 1c068e
text_from_ram $d086
- db $50
-; 0x1c4bae
+ db $0, " used", $4f
+ db "WATERFALL!", $57
+; 1c06a3
-UnknownText_0x1c4bae: ; 0x1c4bae
- db $50
-; 0x1c4baf
+UnknownText_0x1c06a3: ; 1c06a3
+ db $0, "Wow, it's a huge", $4f
+ db "waterfall.", $57
+; 1c06bf
-UnknownText_0x1c4baf: ; 0x1c4baf
- db $0, $51
- db "evolved into", $4f
- db "@"
- text_from_ram $d073
- db $0, "!", $57
-; 0x1c4bc5
+UnknownText_0x1c06bf: ; 1c06bf
+ db $0, "Do you want to use", $4f
+ db "WATERFALL?", $57
+; 1c06de
-UnknownText_0x1c4bc5: ; 0x1c4bc5
- db $0, "Huh? @"
+UnknownText_0x1c06de: ; 1c06de
text_from_ram $d086
- db $0, $4f
- db "stopped evolving!", $58
-; 0x1c4be3
+ db $0, " used", $4f
+ db "DIG!", $57
+; 1c06ed
-UnknownText_0x1c4be3: ; 0x1c4be3
- db $0, "What? @"
- text_from_ram $d086
- db $0, $4f
- db "is evolving!", $57
-; 0x1c4bfd
+UnknownText_0x1c06ed: ; 1c06ed
+ db $0, $52, " used an", $4f
+ db "ESCAPE ROPE.", $57
+; 1c0705
-UnknownText_0x1c4bfd: ; 0x1c4bfd
- db $0, "How many?", $57
-; 0x1c4c08
+UnknownText_0x1c0705: ; 1c0705
+ db $0, "Can't use that", $4f
+ db "here.", $57
+; 1c071a
-UnknownText_0x1c4c08: ; 0x1c4c08
- deciram $d10c, $12
- db $0, " @"
+UnknownText_0x1c071a: ; 1c071a
+ db $0, "Return to the last", $4f
+ db "#MON CENTER.", $57
+; 1c073b
+
+UnknownText_0x1c073b: ; 1c073b
+ db $0, "Can't use that", $4f
+ db "here.", $51
+ db $57
+; 1c0751
+
+UnknownText_0x1c0751: ; 1c0751
+ db $0, "A #MON is using", $4f
+ db "STRENGTH already.", $58
+; 1c0774
+
+UnknownText_0x1c0774: ; 1c0774
text_from_ram $d086
- db $0, "(S)", $4f
- db "will be ¥@"
- deciram $ffc3, $36
- db $0, ".", $57
-; 0x1c4c28
+ db $0, " used", $4f
+ db "STRENGTH!", $57
+; 1c0788
-UnknownText_0x1c4c28: ; 0x1c4c28
- db $0, "Hello, dear.", $51
- db "I sell inexpensive", $4f
- db "herbal medicine.", $51
- db "They're good, but", $4f
- db "a trifle bitter.", $51
- db "Your #MON may", $4f
- db "not like them.", $51
- db "Hehehehe…", $57
-; 0x1c4ca3
+UnknownText_0x1c0788: ; 1c0788
+ text_from_ram $d073
+ db $0, " can", $4f
+ db "move boulders.", $58
+; 1c07a0
-UnknownText_0x1c4ca3: ; 0x1c4ca3
- db $0, "How many?", $57
-; 0x1c4cae
+UnknownText_0x1c07a0: ; 1c07a0
+ db $0, "A #MON may be", $4f
+ db "able to move this.", $51
+ db "Want to use", $4f
+ db "STRENGTH?", $57
+; 1c07d8
-UnknownText_0x1c4cae: ; 0x1c4cae
- deciram $d10c, $12
- db $0, " @"
+UnknownText_0x1c07d8: ; 1c07d8
+ db $0, "Boulders may now", $4f
+ db "be moved!", $57
+; 1c07f4
+
+UnknownText_0x1c07f4: ; 1c07f4
+ db $0, "A #MON may be", $4f
+ db "able to move this.", $57
+; 1c0816
+
+UnknownText_0x1c0816: ; 1c0816
text_from_ram $d086
- db $0, "(S)", $4f
- db "will be ¥@"
- deciram $ffc3, $36
- db $0, ".", $57
-; 0x1c4cce
+ db $0, " used", $4f
+ db "WHIRLPOOL!", $58
+; 1c082b
-UnknownText_0x1c4cce: ; 0x1c4cce
- db $0, "Thank you, dear.", $4f
- db "Hehehehe…", $57
-; 0x1c4cea
+UnknownText_0x1c082b: ; 1c082b
+ db $0, "It's a vicious", $4f
+ db "whirlpool!", $51
+ db "A #MON may be", $4f
+ db "able to pass it.", $57
+; 1c0864
-UnknownText_0x1c4cea: ; 0x1c4cea
- db $0, "Oh? Your PACK is", $4f
- db "full, dear.", $57
-; 0x1c4d08
+UnknownText_0x1c0864: ; 1c0864
+ db $0, "A whirlpool is in", $4f
+ db "the way.", $51
+ db "Want to use", $4f
+ db "WHIRLPOOL?", $57
+; 1c0897
-UnknownText_0x1c4d08: ; 0x1c4d08
- db $0, "Hehehe… You don't", $4f
- db "have the money.", $57
-; 0x1c4d2a
+UnknownText_0x1c0897: ; 1c0897
+ text_from_ram $d086
+ db $0, " did a", $4f
+ db "HEADBUTT!", $58
+; 1c08ac
-UnknownText_0x1c4d2a: ; 0x1c4d2a
- db $0, "Come again, dear.", $4f
- db "Hehehehe…", $57
-; 0x1c4d47
+UnknownText_0x1c08ac: ; 1c08ac
+ db $0, "Nope. Nothing…", $57
+; 1c08bc
-UnknownText_0x1c4d47: ; 0x1c4d47
- db $0, "Hiya! Care to see", $4f
- db "some bargains?", $51
- db "I sell rare items", $4f
- db "that nobody else", $51
- db "carries--but only", $4f
- db "one of each item.", $57
-; 0x1c4db0
+UnknownText_0x1c08bc: ; 1c08bc
+ db $0, "A #MON could be", $4f
+ db "in this tree.", $51
+ db "Want to HEADBUTT", $4f
+ db "it?", $57
+; 1c08f0
-UnknownText_0x1c4db0: ; 0x1c4db0
+UnknownText_0x1c08f0: ; 1c08f0
text_from_ram $d086
- db $0, " costs", $4f
- db "¥@"
- deciram $ffc3, $36
- db $0, ". Want it?", $57
-; 0x1c4dcd
+ db $0, " used", $4f
+ db "ROCK SMASH!", $58
+; 1c0906
-UnknownText_0x1c4dcd: ; 0x1c4dcd
- db $0, "Thanks.", $57
-; 0x1c4dd6
+UnknownText_0x1c0906: ; 1c0906
+ db $0, "Maybe a #MON", $4f
+ db "can break this.", $57
+; 1c0924
-UnknownText_0x1c4dd6: ; 0x1c4dd6
- db $0, "Uh-oh, your PACK", $4f
- db "is chock-full.", $57
-; 0x1c4df7
+UnknownText_0x1c0924: ; 1c0924
+ db $0, "This rock looks", $4f
+ db "breakable.", $51
+ db "Want to use ROCK", $4f
+ db "SMASH?", $57
+; 1c0958
-UnknownText_0x1c4df7: ; 0x1c4df7
- db $0, "You bought that", $4f
- db "already. I'm all", $55
- db "sold out of it.", $57
-; 0x1c4e28
+UnknownText_0x1c0958: ; 1c0958
+ db $0, "Oh!", $4f
+ db "A bite!", $58
+; 1c0965
-UnknownText_0x1c4e28: ; 0x1c4e28
- db $0, "Uh-oh, you're", $4f
- db "short on funds.", $57
-; 0x1c4e46
+UnknownText_0x1c0965: ; 1c0965
+ db $0, "Not even a nibble!", $58
+; 1c0979
-UnknownText_0x1c4e46: ; 0x1c4e46
- db $0, "Come by again", $4f
- db "sometime.", $57
-; 0x1c4e5f
+UnknownText_0x1c0979: ; 1c0979
+ db $0, "Looks like there's", $4f
+ db "nothing here.", $58
+; 1c099a
-UnknownText_0x1c4e5f: ; 0x1c4e5f
- db $0, "What's up? Need", $4f
- db "some medicine?", $57
-; 0x1c4e7e
+UnknownText_0x1c099a: ; 1c099a
+ db $0, "You can't get off", $4f
+ db "here!", $57
+; 1c09b2
-UnknownText_0x1c4e7e: ; 0x1c4e7e
- db $0, "How many?", $57
-; 0x1c4e89
+UnknownText_0x1c09b2: ; 1c09b2
+ db $0, $52, " got on the", $4f
+ db "@"
+ text_from_ram $d086
+ db $0, ".", $57
+; 1c09c7
-UnknownText_0x1c4e89: ; 0x1c4e89
- deciram $d10c, $12
- db $0, " @"
+UnknownText_0x1c09c7: ; 1c09c7
+ db $0, $52, " got off", $4f
+ db "the @"
text_from_ram $d086
- db $0, "(S)", $4f
- db "will cost ¥@"
- deciram $ffc3, $36
db $0, ".", $57
-; 0x1c4eab
+; 1c09dd
-UnknownText_0x1c4eab: ; 0x1c4eab
- db $0, "Thanks much!", $57
-; 0x1c4eb9
+UnknownText_0x1c09dd: ; 1c09dd
+ db $0, "This tree can be", $4f
+ db "CUT!", $51
+ db "Want to use CUT?", $57
+; 1c0a05
-UnknownText_0x1c4eb9: ; 0x1c4eb9
- db $0, "You don't have any", $4f
- db "more space.", $57
-; 0x1c4ed8
+UnknownText_0x1c0a05: ; 1c0a05
+ db $0, "This tree can be", $4f
+ db "CUT!", $57
+; 1c0a1c
-UnknownText_0x1c4ed8: ; 0x1c4ed8
- db $0, "Huh? That's not", $4f
- db "enough money.", $57
-; 0x1c4ef6
+UnknownText_0x1c0a1c: ; 1c0a1c
+ db $0, $52, " found", $4f
+ db "@"
+ text_from_ram $d099
+ db $0, "!", $57
+; 1c0a2c
-UnknownText_0x1c4ef6: ; 0x1c4ef6
- db $0, "All right.", $4f
- db "See you around.", $57
-; 0x1c4f12
+UnknownText_0x1c0a2c: ; 1c0a2c
+ db $0, "But ", $52, " can't", $4f
+ db "carry any more", $55
+ db "items.", $57
+; 1c0a4e
-UnknownText_0x1c4f12: ; 0x1c4f12
- db $0, "You don't have", $4f
- db "anything to sell.", $58
-; 0x1c4f33
+UnknownText_0x1c0a4e: ; 1c0a4e
+ db $0, $52, " is out of", $4f
+ db "useable #MON!", $51
+ db $52, " whited", $4f
+ db "out!", $57
+; 1c0a77
-UnknownText_0x1c4f33: ; 0x1c4f33
- db $0, "How many?", $57
-; 0x1c4f3e
+UnknownText_0x1c0a77: ; 1c0a77
+ db $0, "Yes! ITEMFINDER", $4f
+ db "indicates there's", $55
+ db "an item nearby.", $58
+; 1c0aa9
-UnknownText_0x1c4f3e: ; 0x1c4f3e
- db $0, "I can pay you", $4f
- db "¥@"
- deciram $ffc3, $36
- db $0, ".", $51
- db "Is that OK?", $57
-; 0x1c4f62
+UnknownText_0x1c0aa9: ; 1c0aa9
+ db $0, "Nope! ITEMFINDER", $4f
+ db "isn't responding.", $58
+; 1c0acc
-UnknownText_0x1c4f62: ; 0x1c4f62
- db $0, "Welcome! How may I", $4f
- db "help you?", $57
-; 0x1c4f80
+UnknownText_0x1c0acc: ; 1c0acc
+ text_from_ram $d099
+ db $0, $4f
+ db "fainted!", $58
+; 1c0ada
-UnknownText_0x1c4f80: ; 0x1c4f80
- db $0, "Here you are.", $4f
- db "Thank you!", $57
-; 0x1c4f9a
+UnknownText_0x1c0ada: ; 1c0ada
+ db $0, $52, " is out of", $4f
+ db "useable #MON!", $51
+ db $52, " whited", $4f
+ db "out!", $58
+; 1c0b03
-UnknownText_0x1c4f9a: ; 0x1c4f9a
- db $0, "You don't have", $4f
- db "enough money.", $57
-; 0x1c4fb7
+UnknownText_0x1c0b03: ; 1c0b03
+ text_from_ram $d099
+ db $0, " used", $4f
+ db "SWEET SCENT!", $57
+; 1c0b1a
-UnknownText_0x1c4fb7: ; 0x1c4fb7
- db $0, "You can't carry", $4f
- db "any more items.", $57
-; 0x1c4fd7
+UnknownText_0x1c0b1a: ; 1c0b1a
+ db $0, "Looks like there's", $4f
+ db "nothing here…", $57
+; 1c0b3b
-UnknownText_0x1c4fd7: ; 0x1c4fd7
- db $0, "Sorry, I can't buy", $4f
- db "that from you.", $58
-; 0x1c4ff9
+UnknownText_0x1c0b3b: ; 1c0b3b
+ db $0, $52, " sprinkled", $4f
+ db "water.", $51
+ db "But nothing", $4f
+ db "happened…", $57
+; 1c0b65
-UnknownText_0x1c4ff9: ; 0x1c4ff9
- db $0, "Please come again!", $57
-; 0x1c500d
+UnknownText_0x1c0b65: ; 1c0b65
+ db $0, $52, "'s #MON", $4f
+ db "were all healed!", $57
+; 1c0b7f
-UnknownText_0x1c500d: ; 0x1c500d
- db $0, "Can I do anything", $4f
- db "else for you?", $57
-; 0x1c502e
+UnknownText_0x1c0b7f: ; 1c0b7f
+ db $0, "An EGG can't hold", $4f
+ db "an item.", $58
+; 1c0b9a
-UnknownText_0x1c502e: ; 0x1c502e
- db $0, "Got ¥@"
- deciram $ffc3, $36
- db $0, " for", $4f
+UnknownText_0x1c0b9a: ; 1c0b9a
+ db $0, "No items.", $57
+; 1c0ba5
+
+UnknownText_0x1c0ba5: ; 1c0ba5
+ db $0, "Throw away how", $4f
+ db "many?", $57
+; 1c0bbb
+
+UnknownText_0x1c0bbb: ; 1c0bbb
+ db $0, "Throw away @"
+ deciram $d10c, $12
+ db $0, $4f
db "@"
text_from_ram $d086
- db $0, "(S).", $57
-; 0x1c5049
+ db $0, "(S)?", $57
+; 1c0bd8
-UnknownText_0x1c5049: ; 0x1c5049
- db $0, "Bet how many", $4f
- db "coins?", $57
-; 0x1c505e
+UnknownText_0x1c0bd8: ; 1c0bd8
+ db $0, "Threw away", $4f
+ db "@"
+ text_from_ram $d086
+ db $0, "(S).", $58
+; 1c0bee
-UnknownText_0x1c505e: ; 0x1c505e
- db $0, "Start!", $57
-; 0x1c5066
+UnknownText_0x1c0bee: ; 1c0bee
+ db $0, "OAK: ", $52, "!", $4f
+ db "This isn't the", $55
+ db "time to use that!", $58
+; 1c0c17
-UnknownText_0x1c5066: ; 0x1c5066
- db $0, "Not enough", $4f
- db "coins.", $58
-; 0x1c5079
+UnknownText_0x1c0c17: ; 1c0c17
+ db $0, "You don't have a", $4f
+ db "#MON!", $58
+; 1c0c2e
-UnknownText_0x1c5079: ; 0x1c5079
- db $0, "Darn… Ran out of", $4f
- db "coins…", $57
-; 0x1c5092
+UnknownText_0x1c0c2e: ; 1c0c2e
+ db $0, "Registered the", $4f
+ db "@"
+ text_from_ram $d086
+ db $0, ".", $58
+; 1c0c45
-UnknownText_0x1c5092: ; 0x1c5092
- db $0, "Play again?", $57
-; 0x1c509f
+UnknownText_0x1c0c45: ; 1c0c45
+ db $0, "You can't register", $4f
+ db "that item.", $58
+; 1c0c63
-UnknownText_0x1c509f: ; 0x1c509f
- db $0, "lined up!", $4f
- db "Won @"
- text_from_ram $d086
- db $0, " coins!", $57
-; 0x1c50bb
+UnknownText_0x1c0c63: ; 1c0c63
+ db $0, "Where should this", $4f
+ db "be moved to?", $57
+; 1c0c83
-UnknownText_0x1c50bb: ; 0x1c50bb
- db $0, "Darn!", $57
-; 0x1c50c2
+UnknownText_0x1c0c83: ; 1c0c83
+ db $0, $57
+; 1c0c85
-_MobileStadiumEntryText: ; 0x1c50c2
- db $0, "Data for use in", $4f
- db "the MOBILE STADIUM", $51
- db "of the N64 #MON", $4f
- db "STADIUM 2 can be", $55
- db "read here.", $51
- db "Read the data?", $57
-; 0x1c5121
+UnknownText_0x1c0c85: ; 1c0c85
+ db $0, "You can't use it", $4f
+ db "in a battle.", $58
+; 1c0ca3
-_MobileStadiumSuccessText: ; 0x1c5121
- db $0, "Data transfer is", $4f
- db "complete.", $51
- db "We hope you enjoy", $4f
- db "MOBILE STADIUM", $51
- db "battles in the N64", $4f
- db "#MON STADIUM 2.", $51
- db $57
-; 0x1c5182
+UnknownText_0x1c0ca3: ; 1c0ca3
+ db $0, "Are you a boy?", $4f
+ db "Or are you a girl?", $57
+; 1c0cc6
-UnknownText_0x1c5182: ; 0x1c5182
- db $0, "Clock time unknown", $57
-; 0x1c5196
+UnknownText_0x1c0cc6: ; 1c0cc6
+ db $0, $5a, "'s", $4f
+ db "@"
+ text_from_ram $d086
+ db "@"
+; 1c0ccf
-UnknownText_0x1c5196: ; 0x1c5196
- db $0, "Delete the saved", $4f
- db "LOG-IN PASSWORD?", $57
-; 0x1c51b9
+UnknownText_0x1c0ccf: ; 1c0ccf
+ db "@"
+; 1c0cd0
-UnknownText_0x1c51b9: ; 0x1c51b9
- db $0, "Deleted the LOG-IN", $4f
- db "PASSWORD.", $57
-; 0x1c51d7
+UnknownText_0x1c0cd0: ; 1c0cd0
+ interpret_data
+ db $0, $4c, "went way up!", $58
+; 1c0ce0
-UnknownText_0x1c51d7: ; 0x1c51d7
- db $0, "Pick three #MON", $4f
- db "for battle.", $58
-; 0x1c51f4
+UnknownText_0x1c0ce0: ; 1c0ce0
+ db $0, " went up!", $58
+; 1c0ceb
-UnknownText_0x1c51f4: ; 0x1c51f4
- text_from_ram $d006
- db $0, ",", $4f
+UnknownText_0x1c0ceb: ; 1c0ceb
+ db $0, $59, "'s", $4f
db "@"
- text_from_ram $d00c
- db $0, " and", $55
+ text_from_ram $d086
db "@"
- text_from_ram $d012
- db $0, ".", $51
- db "Use these three?", $57
-; 0x1c521c
+; 1c0cf4
-UnknownText_0x1c521c: ; 0x1c521c
- db $0, "Only three #MON", $4f
- db "may enter.", $58
-; 0x1c5238
+UnknownText_0x1c0cf4: ; 1c0cf4
+ db "@"
+; 1c0cf5
-UnknownText_0x1c5238: ; 0x1c5238
- db $0, "The CARD FOLDER", $4f
- db "stores your and", $51
- db "your friends'", $4f
- db "CARDS.", $51
- db "A CARD contains", $4f
- db "information like", $51
- db "the person's name,", $4f
- db "phone number and", $55
- db "profile.", $51
- db $57
-; 0x1c52bc
+UnknownText_0x1c0cf5: ; 1c0cf5
+ interpret_data
+ db $0, $4c, "sharply fell!", $58
+; 1c0d06
-UnknownText_0x1c52bc: ; 0x1c52bc
- db $0, "This is your CARD.", $51
- db "Once you've", $4f
- db "entered your phone", $51
- db "number, you can", $4f
- db "trade CARDS with", $55
- db "your friends.", $51
- db $57
-; 0x1c531e
+UnknownText_0x1c0d06: ; 1c0d06
+ db $0, " fell!", $58
+; 1c0d0e
-UnknownText_0x1c531e: ; 0x1c531e
- db $0, "If you have your", $4f
- db "friend's CARD, you", $51
- db "can use it to make", $4f
- db "a call from a", $51
- db "mobile phone on", $4f
- db "the 2nd floor of a", $55
- db "#MON CENTER.", $51
- db $57
-; 0x1c5394
+UnknownText_0x1c0d0e: ; 1c0d0e
+ db $0, $5a, "@"
+ db "@"
+; 1c0d12
-UnknownText_0x1c5394: ; 0x1c5394
- db $0, "To safely store", $4f
- db "your collection of", $51
- db "CARDS, you must", $4f
- db "set a PASSCODE for", $55
- db "your CARD FOLDER.", $51
- db $57
-; 0x1c53ee
+UnknownText_0x1c0d12: ; 1c0d12
+ db $0, $4f
+ db "made a whirlwind!", $58
+; 1c0d26
-UnknownText_0x1c53ee: ; 0x1c53ee
- db $0, "If the CARD FOLDER", $4f
- db "is deleted, all", $51
- db "its CARDS and the", $4f
- db "PASSCODE will also", $55
- db "be deleted.", $51
- db "Beware--a deleted", $4f
- db "CARD FOLDER can't", $55
- db "be restored.", $51
- db "Want to delete", $4f
- db "your CARD FOLDER?", $57
-; 0x1c5494
+UnknownText_0x1c0d26: ; 1c0d26
+ db $0, $4f
+ db "took in sunlight!", $58
+; 1c0d3a
-UnknownText_0x1c5494: ; 0x1c5494
- db $0, "Are you sure you", $4f
- db "want to delete it?", $57
-; 0x1c54b9
+UnknownText_0x1c0d3a: ; 1c0d3a
+ db $0, $4f
+ db "lowered its head!", $58
+; 1c0d4e
-UnknownText_0x1c54b9: ; 0x1c54b9
- db $0, "The CARD FOLDER", $4f
- db "has been deleted.", $51
- db $57
-; 0x1c54dd
+UnknownText_0x1c0d4e: ; 1c0d4e
+ db $0, $4f
+ db "is glowing!", $58
+; 1c0d5c
-UnknownText_0x1c54dd: ; 0x1c54dd
- db $0, "There is an older", $4f
- db "CARD FOLDER from a", $55
- db "previous journey.", $51
- db "Do you want to", $4f
- db "open it?", $57
-; 0x1c552d
+UnknownText_0x1c0d5c: ; 1c0d5c
+ db $0, $4f
+ db "flew up high!", $58
+; 1c0d6c
-UnknownText_0x1c552d: ; 0x1c552d
- db $0, "Delete the old", $4f
- db "CARD FOLDER?", $57
-; 0x1c554a
+UnknownText_0x1c0d6c: ; 1c0d6c
+ db $0, $4f
+ db "dug a hole!", $58
+; 1c0d7a
-UnknownText_0x1c554a: ; 0x1c554a
- db $0, "Finish registering", $4f
- db "CARDS?", $57
-; 0x1c5565
+_ActorNameText: ; 1c0d7a
+ db $0, $5a, "@"
+ db "@"
+; 1c0d7e
-UnknownText_0x1c5565: ; 0x1c5565
- db $0, "Huh? Sorry, wrong", $4f
- db "number!", $57
-; 0x1c5580
+_UsedMove1Text: ; 1c0d7e
+ db $0, $4f
+ db "used @"
+ db "@"
+; 1c0d87
-UnknownText_0x1c5580: ; 0x1c5580
- db $0, "Click!", $57
-; 0x1c5588
+_UsedMove2Text: ; 1c0d87
+ db $0, $4f
+ db "used @"
+ db "@"
+; 1c0d90
-UnknownText_0x1c5588: ; 0x1c5588
- db $0, $56, $57
-; 0x1c558b
+_UsedInsteadText: ; 1c0d90
+ db $0, "instead,", $55
+ db "@"
+ db "@"
+; 1c0d9c
-UnknownText_0x1c558b: ; 0x1c558b
- db $0, "That number is out", $4f
- db "of the area.", $57
-; 0x1c55ac
+_MoveNameText: ; 1c0d9c
+ text_from_ram StringBuffer2
+ db "@"
+; 1c0da0
-UnknownText_0x1c55ac: ; 0x1c55ac
- db $0, "Just go talk to", $4f
- db "that person!", $57
-; 0x1c55ca
+UnknownText_0x1c0da0: ; 1c0da0
+ db "@"
+; 1c0da1
-UnknownText_0x1c55ca: ; 0x1c55ca
- db $0, "Thank you!", $57
-; 0x1c55d6
+_EndUsedMove1Text: ; 1c0da1
+ db $0, "!", $57
+; 1c0da4
-UnknownText_0x1c55d6: ; 0x1c55d6
- db $0, " :", $57
-; 0x1c55db
+_EndUsedMove2Text: ; 1c0da4
+ db $0, "!", $57
+; 1c0da7
-UnknownText_0x1c55db: ; 0x1c55db
- db $0, "Password OK.", $4f
- db "Select CONTINUE &", $55
- db "reset settings.", $58
-; 0x1c560b
+_EndUsedMove3Text: ; 1c0da7
+ db $0, "!", $57
+; 1c0daa
-UnknownText_0x1c560b: ; 0x1c560b
- db $0, "Wrong password!", $58
-; 0x1c561c
+_EndUsedMove4Text: ; 1c0daa
+ db $0, "!", $57
+; 1c0dad
-UnknownText_0x1c561c: ; 0x1c561c
- db $0, "Reset the clock?", $57
-; 0x1c562e
+_EndUsedMove5Text: ; 1c0dad
+ db $0, "!", $57
+; 1c0db0
-UnknownText_0x1c562e: ; 0x1c562e
- db $0, "Please enter the", $4f
- db "password.", $57
-; 0x1c564a
+UnknownText_0x1c0db0: ; 1c0db0
+ db $0, "Huh?", $51
+ db "@"
+ db "@"
+; 1c0db8
-UnknownText_0x1c564a: ; 0x1c564a
- db $0, "Clear all save", $4f
- db "data?", $57
-; 0x1c5660
+UnknownText_0x1c0db8: ; 1c0db8
+ db $0, $57
+; 1c0dba
-UnknownText_0x1c5660: ; 0x1c5660
- text_from_ram $d050
- db $0, " learned", $4f
- db "@"
- text_from_ram $d086
- db $0, "!@"
- sound0
+UnknownText_0x1c0dba: ; 1c0dba
+ text_from_ram StringBuffer1
+ db $0, " came", $4f
+ db "out of its EGG!@"
+ sound0x02
text_waitbutton
- db $50
-; 0x1c5677
+ db "@"
+; 1c0dd7
-UnknownText_0x1c5677: ; 0x1c5677
- db $50
-; 0x1c5678
+UnknownText_0x1c0dd7: ; 1c0dd7
+ db "@"
+; 1c0dd8
-UnknownText_0x1c5678: ; 0x1c5678
- db $0, "Which move should", $4e, "be forgotten?", $57
-; 0x1c5699
-
-UnknownText_0x1c5699: ; 0x1c5699
- db $0, "Stop learning", $4f
+UnknownText_0x1c0dd8: ; 1c0dd8
+ db $0, "Give a nickname to", $4f
db "@"
- text_from_ram $d086
+ text_from_ram StringBuffer1
db $0, "?", $57
-; 0x1c56af
+; 1c0df3
-UnknownText_0x1c56af: ; 0x1c56af
- text_from_ram $d050
+UnknownText_0x1c0df3: ; 1c0df3
+ db $0, "It's @"
+ text_from_ram $df2f
db $0, $4f
- db "did not learn", $55
- db "@"
- text_from_ram $d086
- db $0, ".", $58
-; 0x1c56c9
+ db "that was left with", $55
+ db "the DAY-CARE LADY.", $57
+; 1c0e24
-UnknownText_0x1c56c9: ; 0x1c56c9
- text_from_ram $d050
- db $0, " is", $4f
- db "trying to learn", $55
- db "@"
- text_from_ram $d086
- db $0, ".", $51
- db "But @"
- text_from_ram $d050
+UnknownText_0x1c0e24: ; 1c0e24
+ db $0, "It's @"
+ text_from_ram $def6
db $0, $4f
- db "can't learn more", $55
- db "than four moves.", $51
- db "Delete an older", $4f
- db "move to make room", $55
- db "for @"
- text_from_ram $d086
- db $0, "?", $57
-; 0x1c5740
+ db "that was left with", $55
+ db "the DAY-CARE MAN.", $57
+; 1c0e54
-UnknownText_0x1c5740: ; 0x1c5740
- db $0, "1, 2 and…@"
- interpret_data
- db $50
-; 0x1c574d
+UnknownText_0x1c0e54: ; 1c0e54
+ db $0, "It's brimming with", $4f
+ db "energy.", $58
+; 1c0e6f
-UnknownText_0x1c574d: ; 0x1c574d
- db $50
-; 0x1c574e
+UnknownText_0x1c0e6f: ; 1c0e6f
+ db $0, "It has no interest", $4f
+ db "in @"
+ text_from_ram $d073
+ db $0, ".", $58
+; 1c0e8d
-UnknownText_0x1c574e: ; 0x1c574e
- db $0, " Poof!@"
- interpret_data
- db $0, $51
+UnknownText_0x1c0e8d: ; 1c0e8d
+ db $0, "It appears to care", $4f
+ db "for @"
+ text_from_ram $d073
+ db $0, ".", $58
+; 1c0eac
+
+UnknownText_0x1c0eac: ; 1c0eac
+ db $0, "It's friendly with", $4f
db "@"
- text_from_ram $d050
- db $0, " forgot", $4f
- db "@"
text_from_ram $d073
- db $0, ".", $51
- db "And…", $58
-; 0x1c5772
+ db $0, ".", $58
+; 1c0ec6
-UnknownText_0x1c5772: ; 0x1c5772
- db $0, "HM moves can't be", $4f
- db "forgotten now.", $58
-; 0x1c5793
+UnknownText_0x1c0ec6: ; 1c0ec6
+ db $0, "It shows interest", $4f
+ db "in @"
+ text_from_ram $d073
+ db $0, ".", $58
+; 1c0ee3
-UnknownText_0x1c5793: ; 0x1c5793
- db $0, "Play with three", $4f
- db "coins?", $57
-; 0x1c57ab
+_EmptyMailboxText: ; 1c0ee3
+ db $0, "There's no MAIL", $4f
+ db "here.", $58
+; 1c0ef9
-UnknownText_0x1c57ab: ; 0x1c57ab
- db $0, "Not enough coins…", $58
-; 0x1c57be
+ClearedMailPutAwayText: ; 1c0ef9
+ db $0, "The cleared MAIL", $4f
+ db "was put away.", $58
+; 1c0f19
-UnknownText_0x1c57be: ; 0x1c57be
- db $0, "Choose a card.", $57
-; 0x1c57ce
+MailPackFullText: ; 1c0f19
+ db $0, "The PACK is full.", $58
+; 1c0f2c
-UnknownText_0x1c57ce: ; 0x1c57ce
- db $0, "Place your bet.", $57
-; 0x1c57df
+MailMessageLostText: ; 1c0f2c
+ db $0, "The MAIL's message", $4f
+ db "will be lost. OK?", $57
+; 1c0f51
-UnknownText_0x1c57df: ; 0x1c57df
- db $0, "Want to play", $4f
- db "again?", $57
-; 0x1c57f4
+MailAlreadyHoldingItemText: ; 1c0f51
+ db $0, "It's already hold-", $4f
+ db "ing an item.", $58
+; 1c0f71
-UnknownText_0x1c57f4: ; 0x1c57f4
- db $0, "The cards have", $4f
- db "been shuffled.", $58
-; 0x1c5813
+MailEggText: ; 1c0f71
+ db $0, "An EGG can't hold", $4f
+ db "any MAIL.", $58
+; 1c0f8d
-UnknownText_0x1c5813: ; 0x1c5813
- db $0, "Yeah!", $57
-; 0x1c581a
+MailMovedFromBoxText: ; 1c0f8d
+ db $0, "The MAIL was moved", $4f
+ db "from the MAILBOX.", $58
+; 1c0fb3
-UnknownText_0x1c581a: ; 0x1c581a
- db $0, "Darn…", $57
-; 0x1c5821
+UnknownText_0x1c0fb3: ; 1c0fb3
+ db $0, "Yes", $58
+; 1c0fb8
-UnknownText_0x1c5821: ; 0x1c5821
- current_day
- db $50
-; 0x1c5823
+UnknownText_0x1c0fb8: ; 1c0fb8
+ db $0, "No", $58
+; 1c0fbc
-UnknownText_0x1c5823: ; 0x1c5823
- db $50
-; 0x1c5824
+UnknownText_0x1c0fbc: ; 1c0fbc
+ deciram $cf64, $13
+ db $0, " @"
+ text_from_ram $d073
+ db $0, $4f
+ db "Animation type @"
+ text_from_ram $d086
+ db "@"
+; 1c0fdc
-UnknownText_0x1c5824: ; 0x1c5824
- db $0, $56, $57
-; 0x1c5827
+UnknownText_0x1c0fdc: ; 1c0fdc
+ db "@"
+; 1c0fdd
-UnknownText_0x1c5827: ; 0x1c5827
- db $0, "You're out of the", $4f
- db "service area.", $58
-; 0x1c5847
+UnknownText_0x1c0fdd: ; 1c0fdd
+ db $0, "#MON number?", $57
+; 1c0feb
-UnknownText_0x1c5847: ; 0x1c5847
- db $0, "Whom do you want", $4f
- db "to call?", $57
-; 0x1c5862
+UnknownText_0x1c0feb: ; 1c0feb
+ text_from_ram $d073
+ db $0, " was", $4f
+ db "sent to BILL's PC.", $58
+; 1c1006
-UnknownText_0x1c5862: ; 0x1c5862
- db $0, "Press any button", $4f
- db "to exit.", $57
-; 0x1c587d
+UnknownText_0x1c1006: ; 1c1006
+ db $0, "You gotta have", $4f
+ db "#MON to call!", $58
+; 1c1024
-UnknownText_0x1c587d: ; 0x1c587d
- db $0, "Delete this stored", $4f
- db "phone number?", $57
-; 0x1c589f
+UnknownText_0x1c1024: ; 1c1024
+ db $0, "What?", $57
+; 1c102b
-UnknownText_0x1c589f: ; 0x1c589f
- db $0, "Which prize would", $4f
- db "you like?", $57
-; 0x1c58bc
+UnknownText_0x1c102b: ; 1c102b
+ db $0, "There is a #MON", $4f
+ db "holding MAIL.", $51
+ db "Please remove the", $4f
+ db "MAIL.", $58
+; 1c1062
-UnknownText_0x1c58bc: ; 0x1c58bc
+UnknownText_0x1c1062: ; 1c1062
+ db $0, "You don't have a", $4f
+ db "single #MON!", $58
+; 1c1080
+
+UnknownText_0x1c1080: ; 1c1080
+ db $0, "You can't deposit", $4f
+ db "your last #MON!", $58
+; 1c10a2
+
+UnknownText_0x1c10a2: ; 1c10a2
+ db $0, "You can't take any", $4f
+ db "more #MON.", $58
+; 1c10c0
+
+UnknownText_0x1c10c0: ; 1c10c0
+ db $0, "Caught @"
text_from_ram $d073
- db $0, "?", $4f
- db "Is that right?", $57
-; 0x1c58d1
+ db $0, "!", $58
+; 1c10cf
-UnknownText_0x1c58d1: ; 0x1c58d1
- db $0, "Here you go!", $51
- db $57
-; 0x1c58e0
+UnknownText_0x1c10cf: ; 1c10cf
+ db $0, "Switch #MON?", $57
+; 1c10dd
-UnknownText_0x1c58e0: ; 0x1c58e0
- db $0, "You don't have", $4f
- db "enough points.", $51
- db $57
-; 0x1c58ff
+UnknownText_0x1c10dd: ; 1c10dd
+ db $0, "You already caught", $4f
+ db "a @"
+ text_from_ram $d073
+ db $0, ".", $58
+; 1c10fa
-UnknownText_0x1c58ff: ; 0x1c58ff
- db $0, "You have no room", $4f
- db "for it.", $51
- db $57
-; 0x1c591a
+UnknownText_0x1c10fa: ; 1c10fa
+ db $0, "This Bug-Catching", $4f
+ db "Contest winner is@"
+ interpret_data
+ db $0, "…", $51
+ db "@"
+ text_from_ram $d016
+ db $0, ",", $4f
+ db "who caught a", $55
+ db "@"
+ text_from_ram $d073
+ db $0, "!@"
+ db "@"
+; 1c113f
-UnknownText_0x1c591a: ; 0x1c591a
- db $0, "Oh. Please come", $4f
- db "back again!", $57
-; 0x1c5937
+UnknownText_0x1c113f: ; 1c113f
+ db $0, $51
+ db "The winning score", $4f
+ db "was @"
+ deciram $d004, $23
+ db $0, " points!", $58
+; 1c1166
-UnknownText_0x1c5937: ; 0x1c5937
- db $0, "Excuse me!", $51
- db $57
-; 0x1c5944
+UnknownText_0x1c1166: ; 1c1166
+ db $0, "Placing second was", $4f
+ db "@"
+ text_from_ram $d016
+ db $0, ",", $51
+ db "who caught a", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, "!@"
+ db "@"
+; 1c1196
-UnknownText_0x1c5944: ; 0x1c5944
- db $0, "Excuse me.", $4f
- db "You're not ready.", $51
- db $57
-; 0x1c5962
+UnknownText_0x1c1196: ; 1c1196
+ db $0, $51
+ db "The score was", $4f
+ db "@"
+ deciram $d008, $23
+ db $0, " points!", $58
+; 1c11b5
-UnknownText_0x1c5962: ; 0x1c5962
- db $0, "Please return when", $4f
- db "you're ready.", $57
-; 0x1c5983
+UnknownText_0x1c11b5: ; 1c11b5
+ db $0, "Placing third was", $4f
+ db "@"
+ text_from_ram $d016
+ db $0, ",", $51
+ db "who caught a", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, "!@"
+ db "@"
+; 1c11e4
-UnknownText_0x1c5983: ; 0x1c5983
- db $0, "You need at least", $4f
- db "three #MON.", $51
- db $57
-; 0x1c59a3
+UnknownText_0x1c11e4: ; 1c11e4
+ db $0, $51
+ db "The score was", $4f
+ db "@"
+ deciram $d00c, $23
+ db $0, " points!", $58
+; 1c1203
-UnknownText_0x1c59a3: ; 0x1c59a3
- db $0, "Sorry, an EGG", $4f
- db "doesn't qualify.", $51
- db $57
-; 0x1c59c3
+UnknownText_0x1c1203: ; 1c1203
+ db $0, "Let me measure", $4f
+ db "that MAGIKARP.", $51
+ db "…Hm, it measures", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, ".", $58
+; 1c123a
-UnknownText_0x1c59c3: ; 0x1c59c3
- db $0, "Only three #MON", $4f
- db "may be entered.", $51
- db $57
-; 0x1c59e5
+UnknownText_0x1c123a: ; 1c123a
+ db $0, "CURRENT RECORD", $51
+ db "@"
+ text_from_ram $d073
+ db $0, " caught by", $4f
+ db "@"
+ text_from_ram $dfea
+ text_waitbutton
+ db "@"
+; 1c1260
-UnknownText_0x1c59e5: ; 0x1c59e5
- db $0, "The @"
- text_from_ram $d086
- db $0, " #MON", $4f
- db "must all be", $55
- db "different kinds.", $51
- db $57
-; 0x1c5a13
+UnknownText_0x1c1260: ; 1c1260
+ db "@"
+; 1c1261
-UnknownText_0x1c5a13: ; 0x1c5a13
- db $0, "The @"
- text_from_ram $d086
- db $0, " #MON", $4f
- db "must not hold the", $55
- db "same items.", $51
- db $57
-; 0x1c5a42
+UnknownText_0x1c1261: ; 1c1261
+ db $0, "Congratulations!", $51
+ db "We have a match", $4f
+ db "with the ID number", $51
+ db "of @"
+ text_from_ram $d073
+ db $0, " in", $4f
+ db "your party.", $58
+; 1c12ae
-UnknownText_0x1c5a42: ; 0x1c5a42
- db $0, "You can't take an", $4f
- db "EGG!", $51
- db $57
-; 0x1c5a5a
+UnknownText_0x1c12ae: ; 1c12ae
+ db $0, "Congratulations!", $51
+ db "We have a match", $4f
+ db "with the ID number", $51
+ db "of @"
+ text_from_ram $d073
+ db $0, " in", $4f
+ db "your PC BOX.", $58
+; 1c12fc
-UnknownText_0x1c5a5a: ; 0x1c5a5a
- db $0, "It dodged the", $4f
- db "thrown BALL!", $51
- db "This #MON", $4f
- db "can't be caught!", $58
-; 0x1c5a90
+UnknownText_0x1c12fc: ; 1c12fc
+ db $0, "Give a nickname to", $4f
+ db "the @"
+ text_from_ram $d073
+ db $0, " you", $55
+ db "received?", $57
+; 1c1328
-UnknownText_0x1c5a90: ; 0x1c5a90
- db $0, "You missed the", $4f
- db "#MON!", $58
-; 0x1c5aa6
+UnknownText_0x1c1328: ; 1c1328
+ db $0, "Bzzzzt! You must", $4f
+ db "have a #MON to", $55
+ db "use this!", $58
+; 1c1353
-UnknownText_0x1c5aa6: ; 0x1c5aa6
- db $0, "Oh no! The #MON", $4f
- db "broke free!", $58
-; 0x1c5ac3
+UnknownText_0x1c1353: ; 1c1353
+ db $0, $52, " turned on", $4f
+ db "the PC.", $58
+; 1c1368
-UnknownText_0x1c5ac3: ; 0x1c5ac3
- db $0, "Aww! It appeared", $4f
- db "to be caught!", $58
-; 0x1c5ae3
+UnknownText_0x1c1368: ; 1c1368
+ db $0, "What do you want", $4f
+ db "to do?", $57
+; 1c1381
-UnknownText_0x1c5ae3: ; 0x1c5ae3
- db $0, "Aargh!", $4f
- db "Almost had it!", $58
-; 0x1c5afa
+_KrissPCHowManyWithdrawText: ; 1c1381
+ db $0, "How many do you", $4f
+ db "want to withdraw?", $57
+; 1c13a4
-UnknownText_0x1c5afa: ; 0x1c5afa
- db $0, "Shoot! It was so", $4f
- db "close too!", $58
-; 0x1c5b17
+_KrissPCWithdrewItemsText: ; 1c13a4
+ db $0, "Withdrew @"
+ deciram $d10c, $12
+ db $0, $4f
+ db "@"
+ text_from_ram $d086
+ db $0, "(S).", $58
+; 1c13bf
-UnknownText_0x1c5b17: ; 0x1c5b17
- db $0, "Gotcha! @"
- text_from_ram $c616
+_KrissPCNoRoomWithdrawText: ; 1c13bf
+ db $0, "There's no room", $4f
+ db "for more items.", $58
+; 1c13df
+
+UnknownText_0x1c13df: ; 1c13df
+ db $0, "No items here!", $58
+; 1c13ef
+
+_KrissPCHowManyDepositText: ; 1c13ef
+ db $0, "How many do you", $4f
+ db "want to deposit?", $57
+; 1c1411
+
+_KrissPCDepositItemsText: ; 1c1411
+ db $0, "Deposited @"
+ deciram $d10c, $12
db $0, $4f
- db "was caught!@"
- sound0x02
- db $50
-; 0x1c5b34
+ db "@"
+ text_from_ram $d086
+ db $0, "(S).", $58
+; 1c142d
-UnknownText_0x1c5b34: ; 0x1c5b34
- db $50
-; 0x1c5b35
+_KrissPCNoRoomDepositText: ; 1c142d
+ db $0, "There's no room to", $4f
+ db "store items.", $58
+; 1c144d
-UnknownText_0x1c5b35: ; 0x1c5b35
- text_waitbutton
- db $50
-; 0x1c5b37
+UnknownText_0x1c144d: ; 1c144d
+ db $0, $52, " turned on", $4f
+ db "the PC.", $58
+; 1c1462
-UnknownText_0x1c5b37: ; 0x1c5b37
- db $50
-; 0x1c5b38
+UnknownText_0x1c1462: ; 1c1462
+ db $0, "Access whose PC?", $57
+; 1c1474
-UnknownText_0x1c5b38: ; 0x1c5b38
- text_from_ram $d050
- db $0, " was", $4f
- db "sent to BILL's PC.", $58
-; 0x1c5b53
+UnknownText_0x1c1474: ; 1c1474
+ db $0, "BILL's PC", $4f
+ db "accessed.", $51
+ db "#MON Storage", $4f
+ db "System opened.", $58
+; 1c14a4
-UnknownText_0x1c5b53: ; 0x1c5b53
- text_from_ram $c616
- db $0, "'s data", $4f
- db "was newly added to", $55
- db "the #DEX.@"
- sound0x2C
- text_waitbutton
- db $50
-; 0x1c5b7e
+UnknownText_0x1c14a4: ; 1c14a4
+ db $0, "Accessed own PC.", $51
+ db "Item Storage", $4f
+ db "System opened.", $58
+; 1c14d2
-UnknownText_0x1c5b7e: ; 0x1c5b7e
- db $50
-; 0x1c5b7f
+UnknownText_0x1c14d2: ; 1c14d2
+ db $0, "PROF.OAK's PC", $4f
+ db "accessed.", $51
+ db "#DEX Rating", $4f
+ db "System opened.", $58
+; 1c1505
-UnknownText_0x1c5b7f: ; 0x1c5b7f
- db $0, "Give a nickname to", $4f
- db "@"
- text_from_ram $d073
- db $0, "?", $57
-; 0x1c5b9a
+UnknownText_0x1c1505: ; 1c1505
+ db $0, "…", $4f
+ db "Link closed…", $57
+; 1c1515
-UnknownText_0x1c5b9a: ; 0x1c5b9a
- text_from_ram $d073
- db $0, "'s", $4f
+_OakPCText1: ; 1c1515
+ db $0, "Want to get your", $4f
+ db "#DEX rated?", $57
+; 1c1533
+
+_OakPCText2: ; 1c1533
+ db $0, "Current #DEX", $4f
+ db "completion level:", $58
+; 1c1553
+
+_OakPCText3: ; 1c1553
+ text_from_ram $d099
+ db $0, " #MON seen", $4f
db "@"
- text_from_ram $d086
- db $0, " rose.", $58
-; 0x1c5bac
+ text_from_ram $d0ac
+ db $0, " #MON owned", $51
+ db "PROF.OAK's", $4f
+ db "Rating:", $57
+; 1c1585
-UnknownText_0x1c5bac: ; 0x1c5bac
- db $0, "That can't be used", $4f
- db "on this #MON.", $58
-; 0x1c5bcd
+_OakRating01: ; 1c1585
+ db $0, "Look for #MON", $4f
+ db "in grassy areas!", $57
+; 1c15a5
-UnknownText_0x1c5bcd: ; 0x1c5bcd
- db $0, "The REPEL used", $4f
- db "earlier is still", $55
- db "in effect.", $58
-; 0x1c5bf9
+_OakRating02: ; 1c15a5
+ db $0, "Good. I see you", $4f
+ db "understand how to", $55
+ db "use # BALLS.", $57
+; 1c15d5
-UnknownText_0x1c5bf9: ; 0x1c5bf9
- db $0, "Played the #", $4f
- db "FLUTE.", $51
- db "Now, that's a", $4f
- db "catchy tune!", $58
-; 0x1c5c28
+_OakRating03: ; 1c15d5
+ db $0, "You're getting", $4f
+ db "good at this.", $51
+ db "But you have a", $4f
+ db "long way to go.", $57
+; 1c1611
-UnknownText_0x1c5c28: ; 0x1c5c28
- db $0, "All sleeping", $4f
- db "#MON woke up.", $58
-; 0x1c5c44
+_OakRating04: ; 1c1611
+ db $0, "You need to fill", $4f
+ db "up the #DEX.", $51
+ db "Catch different", $4f
+ db "kinds of #MON!", $57
+; 1c164f
-UnknownText_0x1c5c44: ; 0x1c5c44
- db $0, $52, " played the", $4f
- db "# FLUTE.@"
- text_waitbutton
- db $50
-; 0x1c5c5d
+_OakRating05: ; 1c164f
+ db $0, "You're trying--I", $4f
+ db "can see that.", $51
+ db "Your #DEX is", $4f
+ db "coming together.", $57
+; 1c168c
-UnknownText_0x1c5c5d: ; 0x1c5c5d
- db $50
-; 0x1c5c5e
+_OakRating06: ; 1c168c
+ db $0, "To evolve, some", $4f
+ db "#MON grow,", $51
+ db "others use the", $4f
+ db "effects of STONES.", $57
+; 1c16ca
-UnknownText_0x1c5c5e: ; 0x1c5c5e
- db $0, "You now have", $4f
- db "@"
- deciram $dc4b, $12
- db $0, " points.", $57
-; 0x1c5c7b
+_OakRating07: ; 1c16ca
+ db $0, "Have you gotten a", $4f
+ db "fishing ROD? You", $51
+ db "can catch #MON", $4f
+ db "by fishing.", $57
+; 1c1709
-UnknownText_0x1c5c7b: ; 0x1c5c7b
- db $0, "Coins:", $4f
- db "@"
- deciram $d855, $24
- db $50
-; 0x1c5c89
+_OakRating08: ; 1c1709
+ db $0, "Excellent! You", $4f
+ db "seem to like col-", $55
+ db "lecting things!", $57
+; 1c173b
-UnknownText_0x1c5c89: ; 0x1c5c89
- db $50
-; 0x1c5c8a
+_OakRating09: ; 1c173b
+ db $0, "Some #MON only", $4f
+ db "appear during", $51
+ db "certain times of", $4f
+ db "the day.", $57
+; 1c1773
-UnknownText_0x1c5c8a: ; 0x1c5c8a
- db $0, "Raise the PP of", $4f
- db "which move?", $57
-; 0x1c5ca7
+_OakRating10: ; 1c1773
+ db $0, "Your #DEX is", $4f
+ db "filling up. Keep", $55
+ db "up the good work!", $57
+; 1c17a4
-UnknownText_0x1c5ca7: ; 0x1c5ca7
- db $0, "Restore the PP of", $4f
- db "which move?", $57
-; 0x1c5cc6
+_OakRating11: ; 1c17a4
+ db $0, "I'm impressed.", $4f
+ db "You're evolving", $51
+ db "#MON, not just", $4f
+ db "catching them.", $57
+; 1c17e0
-UnknownText_0x1c5cc6: ; 0x1c5cc6
- text_from_ram $d086
- db $0, "'s PP", $4f
- db "is maxed out.", $58
-; 0x1c5cdd
+_OakRating12: ; 1c17e0
+ db $0, "Have you met KURT?", $4f
+ db "His custom BALLS", $55
+ db "should help.", $57
+; 1c1812
-UnknownText_0x1c5cdd: ; 0x1c5cdd
- text_from_ram $d086
- db $0, "'s PP", $4f
- db "increased.", $58
-; 0x1c5cf1
+_OakRating13: ; 1c1812
+ db $0, "Wow. You've found", $4f
+ db "more #MON than", $51
+ db "the last #DEX", $4f
+ db "research project.", $57
+; 1c1853
-UnknownText_0x1c5cf1: ; 0x1c5cf1
- db $0, "PP was restored.", $58
-; 0x1c5d03
+_OakRating14: ; 1c1853
+ db $0, "Are you trading", $4f
+ db "your #MON?", $51
+ db "It's tough to do", $4f
+ db "this alone!", $57
+; 1c188b
-UnknownText_0x1c5d03: ; 0x1c5d03
- db $0, "There was a trophy", $4f
- db "inside!@"
- sound0
- db $0, $51
- db "@"
- text_from_ram PlayerName
- db $0, " sent the", $4f
- db "trophy home.", $58
-; 0x1c5d3e
+_OakRating15: ; 1c188b
+ db $0, "Wow! You've hit", $4f
+ db "200! Your #DEX", $55
+ db "is looking great!", $57
+; 1c18bc
-UnknownText_0x1c5d3e: ; 0x1c5d3e
- db $0, "It looks bitter…", $58
-; 0x1c5d50
+_OakRating16: ; 1c18bc
+ db $0, "You've found so", $4f
+ db "many #MON!", $51
+ db "You've really", $4f
+ db "helped my studies!", $57
+; 1c18f7
-UnknownText_0x1c5d50: ; 0x1c5d50
- db $0, "That can't be used", $4f
- db "on an EGG.", $58
-; 0x1c5d6e
+_OakRating17: ; 1c18f7
+ db $0, "Magnificent! You", $4f
+ db "could become a", $51
+ db "#MON professor", $4f
+ db "right now!", $57
+; 1c1932
-UnknownText_0x1c5d6e: ; 0x1c5d6e
- db $0, "OAK: ", $52, "!", $4f
- db "This isn't the", $55
- db "time to use that!", $58
-; 0x1c5d97
+_OakRating18: ; 1c1932
+ db $0, "Your #DEX is", $4f
+ db "amazing! You're", $51
+ db "ready to turn", $4f
+ db "professional!", $57
+; 1c196b
-UnknownText_0x1c5d97: ; 0x1c5d97
- db $0, "That belongs to", $4f
- db "someone else!", $58
-; 0x1c5db6
+_OakRating19: ; 1c196b
+ db $0, "Whoa! A perfect", $4f
+ db "#DEX! I've", $51
+ db "dreamt about this!", $4f
+ db "Congratulations!", $57
+; 1c19aa
-UnknownText_0x1c5db6: ; 0x1c5db6
- db $0, "It won't have any", $4f
- db "effect.", $58
-; 0x1c5dd0
+_OakPCText4: ; 1c19aa
+ db $0, "The link to PROF.", $4f
+ db "OAK's PC closed.", $57
+; 1c19cd
-UnknownText_0x1c5dd0: ; 0x1c5dd0
- db $0, "The trainer", $4f
- db "blocked the BALL!", $58
-; 0x1c5def
+UnknownText_0x1c19cd: ; 1c19cd
+ db $0, "Triple-theme", $4f
+ db "trainer ranking!", $51
+ db "The SAVE file you", $4f
+ db "just sent might", $55
+ db "make the rankings!", $51
+ db $57
+; 1c1a22
-UnknownText_0x1c5def: ; 0x1c5def
- db $0, "Don't be a thief!", $58
-; 0x1c5e01
+UnknownText_0x1c1a22: ; 1c1a22
+ db $0, "There is no", $4f
+ db "ranking data.", $51
+ db "Link to obtain", $4f
+ db "ranking data.", $51
+ db $57
+; 1c1a5b
-UnknownText_0x1c5e01: ; 0x1c5e01
- db $0, "Cycling isn't", $4f
- db "allowed here.", $58
-; 0x1c5e1d
+UnknownText_0x1c1a5b: ; 1c1a5b
+ db $0, " , yeah!", $57
+; 1c1a65
-UnknownText_0x1c5e1d: ; 0x1c5e1d
- db $0, "Can't get on your", $4f
+UnknownText_0x1c1a65: ; 1c1a65
+ db $0, "Darn…", $57
+; 1c1a6c
+
+UnknownText_0x1c1a6c: ; 1c1a6c
+ db $0, "Would you like to", $4f
+ db "end the Contest?", $57
+; 1c1a90
+
+UnknownText_0x1c1a90: ; 1c1a90
+ db $0, "Toss out how many", $4f
db "@"
+ text_from_ram $d086
+ db $0, "(S)?", $57
+; 1c1aad
+
+UnknownText_0x1c1aad: ; 1c1aad
+ db $0, "Throw away @"
+ deciram $d10c, $12
+ db $0, $4f
+ db "@"
+ text_from_ram $d086
+ db $0, "(S)?", $57
+; 1c1aca
+
+UnknownText_0x1c1aca: ; 1c1aca
+ db $0, "Discarded", $4f
+ db "@"
text_from_ram $d073
- db $0, " now.", $58
-; 0x1c5e3a
+ db $0, "(S).", $58
+; 1c1adf
-UnknownText_0x1c5e3a: ; 0x1c5e3a
- db $0, "The #MON BOX", $4f
- db "is full. That", $55
- db "can't be used now.", $58
-; 0x1c5e68
+UnknownText_0x1c1adf: ; 1c1adf
+ db $0, "That's too impor-", $4f
+ db "tant to toss out!", $58
+; 1c1b03
-UnknownText_0x1c5e68: ; 0x1c5e68
- db $0, $52, " used the@"
- text_dunno1
- text_from_ram $d086
- db $0, ".", $57
-; 0x1c5e7b
+UnknownText_0x1c1b03: ; 1c1b03
+ db $0, "OAK: ", $52, "!", $4f
+ db "This isn't the", $55
+ db "time to use that!", $57
+; 1c1b2c
-UnknownText_0x1c5e7b: ; 0x1c5e7b
- db $0, $52, " got on the@"
- text_dunno1
+UnknownText_0x1c1b2c: ; 1c1b2c
+ db $0, "Took @"
+ text_from_ram $d050
+ db $0, "'s", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, " and", $51
+ db "made it hold", $4f
+ db "@"
text_from_ram $d086
db $0, ".", $58
-; 0x1c5e90
+; 1c1b57
-UnknownText_0x1c5e90: ; 0x1c5e90
- db $0, $52, " got off@"
- text_dunno1
- db $0, "the @"
+UnknownText_0x1c1b57: ; 1c1b57
+ db $0, "Made @"
+ text_from_ram $d050
+ db $0, $4f
+ db "hold @"
text_from_ram $d086
db $0, ".", $58
-; 0x1c5ea8
+; 1c1b6f
-UnknownText_0x1c5ea8: ; 0x1c5ea8
+UnknownText_0x1c1b6f: ; 1c1b6f
+ db $0, "Please remove the", $4f
+ db "MAIL first.", $58
+; 1c1b8e
+
+UnknownText_0x1c1b8e: ; 1c1b8e
+ text_from_ram $d050
+ db $0, " isn't", $4f
+ db "holding anything.", $58
+; 1c1baa
+
+UnknownText_0x1c1baa: ; 1c1baa
+ db $0, "Item storage space", $4f
+ db "full.", $58
+; 1c1bc4
+
+UnknownText_0x1c1bc4: ; 1c1bc4
+ db $0, "Took @"
text_from_ram $d073
- db $0, " knows", $4f
- db "@"
- text_from_ram $d086
+ db $0, $4f
+ db "from @"
+ text_from_ram $d050
db $0, ".", $58
-; 0x1c5eba
+; 1c1bdc
-UnknownText_0x1c5eba: ; 0x1c5eba
- db $0, "That #MON knows", $4f
- db "only one move.", $57
-; 0x1c5eda
-
-UnknownText_0x1c5eda: ; 0x1c5eda
- db $0, "Oh, make it forget", $4f
+UnknownText_0x1c1bdc: ; 1c1bdc
+ text_from_ram $d050
+ db $0, " is", $4f
+ db "already holding", $51
db "@"
text_from_ram $d073
- db $0, "?", $57
-; 0x1c5ef5
+ db $0, ".", $4f
+ db "Switch items?", $57
+; 1c1c09
-UnknownText_0x1c5ef5: ; 0x1c5ef5
- db $0, "Done! Your #MON", $4f
- db "forgot the move.", $57
-; 0x1c5f17
+UnknownText_0x1c1c09: ; 1c1c09
+ db $0, "This item can't be", $4f
+ db "held.", $58
+; 1c1c22
-UnknownText_0x1c5f17: ; 0x1c5f17
- db $0, "An EGG doesn't", $4f
- db "know any moves!", $57
-; 0x1c5f36
+UnknownText_0x1c1c22: ; 1c1c22
+ db $0, "The MAIL will lose", $4f
+ db "its message. OK?", $57
+; 1c1c47
-UnknownText_0x1c5f36: ; 0x1c5f36
- db $0, "No? Come visit me", $4f
- db "again.", $57
-; 0x1c5f50
+UnknownText_0x1c1c47: ; 1c1c47
+ db $0, "MAIL detached from", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, ".", $58
+; 1c1c62
-UnknownText_0x1c5f50: ; 0x1c5f50
- db $0, "Which move should", $4f
- db "it forget, then?", $58
-; 0x1c5f74
+UnknownText_0x1c1c62: ; 1c1c62
+ db $0, "There's no space", $4f
+ db "for removing MAIL.", $58
+; 1c1c86
-UnknownText_0x1c5f74: ; 0x1c5f74
- db $0, "Um… Oh, yes, I'm", $4f
- db "the MOVE DELETER.", $51
- db "I can make #MON", $4f
- db "forget moves.", $51
- db "Shall I make a", $4f
- db "#MON forget?", $57
-; 0x1c5fd1
+UnknownText_0x1c1c86: ; 1c1c86
+ db $0, "Send the removed", $4f
+ db "MAIL to your PC?", $57
+; 1c1ca9
-UnknownText_0x1c5fd1: ; 0x1c5fd1
- db $0, "Which #MON?", $58
-; 0x1c5fde
+UnknownText_0x1c1ca9: ; 1c1ca9
+ db $0, "Your PC's MAILBOX", $4f
+ db "is full.", $58
+; 1c1cc4
-UnknownText_0x1c5fde: ; 0x1c5fde
- db $0, " DST,", $4f
- db "is that OK?", $57
-; 0x1c5ff1
+UnknownText_0x1c1cc4: ; 1c1cc4
+ db $0, "The MAIL was sent", $4f
+ db "to your PC.", $58
+; 1c1ce3
-UnknownText_0x1c5ff1: ; 0x1c5ff1
- db $0, ",", $4f
- db "is that OK?", $57
-; 0x1c6000
+UnknownText_0x1c1ce3: ; 1c1ce3
+ db $0, "Not enough HP!", $58
+; 1c1cf3
-UnknownText_0x1c6000: ; 0x1c6000
- db $0, "Do you want to", $4f
- db "switch to Daylight", $55
- db "Saving Time?", $57
-; 0x1c6030
+UnknownText_0x1c1cf3: ; 1c1cf3
+ db $0, "An item in your", $4f
+ db "PACK may be", $51
+ db "registered for use", $4f
+ db "on SELECT Button.", $57
+; 1c1d35
-UnknownText_0x1c6030: ; 0x1c6030
- db $0, "I set the clock", $4f
- db "forward by one", $55
- db "hour.", $58
-; 0x1c6056
+_OakText1: ; 1c1d35
+ db $0, "Hello! Sorry to", $4f
+ db "keep you waiting!", $51
+ db "Welcome to the", $4f
+ db "world of #MON!", $51
+ db "My name is OAK.", $51
+ db "People call me the", $4f
+ db "#MON PROF.", $58
+; 1c1da4
-UnknownText_0x1c6056: ; 0x1c6056
- db $0, "Is Daylight Saving", $4f
- db "Time over?", $57
-; 0x1c6075
+_OakText2: ; 1c1da4
+ db $0, "This world is in-", $4f
+ db "habited by crea-", $55
+ db "tures that we call", $55
+ db "#MON.@"
+ db "@"
+; 1c1de2
-UnknownText_0x1c6075: ; 0x1c6075
- db $0, "I put the clock", $4f
- db "back one hour.", $58
-; 0x1c6095
+_OakText3: ; 1c1de2
+ text_waitbutton
+ db "@"
+; 1c1de4
-UnknownText_0x1c6095: ; 0x1c6095
- db $0, "Do you want to", $4f
- db "adjust your clock", $51
- db "for Daylight", $4f
- db "Saving Time?", $57
-; 0x1c60d1
+UnknownText_0x1c1de4: ; 1c1de4
+ db "@"
+; 1c1de5
-UnknownText_0x1c60d1: ; 0x1c60d1
- db $0, "I lost the in-", $4f
- db "struction booklet", $55
- db "for the #GEAR.", $51
- db "Come back again in", $4f
- db "a while.", $58
-; 0x1c611e
+_OakText4: ; 1c1de5
+ db $0, "People and #MON", $4f
+ db "live together by", $51
+ db "supporting each", $4f
+ db "other.", $51
+ db "Some people play", $4f
+ db "with #MON, some", $55
+ db "battle with them.", $58
+; 1c1e51
+_OakText5: ; 1c1e51
+ db $0, "But we don't know", $4f
+ db "everything about", $55
+ db "#MON yet.", $51
+ db "There are still", $4f
+ db "many mysteries to", $55
+ db "solve.", $51
+ db "That's why I study", $4f
+ db "#MON every day.", $58
+; 1c1ec9
--- /dev/null
+++ b/text/common_4.asm
@@ -1,0 +1,1455 @@
+_OakText6: ; 0x1c4000
+ db $0, "Now, what did you", $4f
+ db "say your name was?", $58
+; 0x1c4026
+
+_OakText7: ; 0x1c4026
+ db $0, $52, ", are you", $4f
+ db "ready?", $51
+ db "Your very own", $4f
+ db "#MON story is", $55
+ db "about to unfold.", $51
+ db "You'll face fun", $4f
+ db "times and tough", $55
+ db "challenges.", $51
+ db "A world of dreams", $4f
+ db "and adventures", $51
+ db "with #MON", $4f
+ db "awaits! Let's go!", $51
+ db "I'll be seeing you", $4f
+ db "later!", $57
+; 0x1c40e6
+
+UnknownText_0x1c40e6: ; 0x1c40e6
+ db $0, "The clock's time", $4f
+ db "may be wrong.", $51
+ db "Please reset the", $4f
+ db "time.", $58
+; 0x1c411c
+
+UnknownText_0x1c411c: ; 0x1c411c
+ db $0, "Set with the", $4f
+ db "Control Pad.", $51
+ db "Confirm: A Button", $4f
+ db "Cancel: B Button", $57
+; 0x1c415b
+
+UnknownText_0x1c415b: ; 0x1c415b
+ db $0, "Is this OK?", $57
+; 0x1c4168
+
+UnknownText_0x1c4168: ; 0x1c4168
+ db $0, "The clock has been", $4f
+ db "reset.", $57
+; 0x1c4183
+
+UnknownText_0x1c4183: ; 0x1c4183
+ db $0, "Too much time has", $4f
+ db "elapsed. Please", $55
+ db "try again.", $58
+; 0x1c41b1
+
+UnknownText_0x1c41b1: ; 0x1c41b1
+ db $0, "If you trade that", $4f
+ db "#MON, you won't", $55
+ db "be able to battle.", $58
+; 0x1c41e6
+
+UnknownText_0x1c41e6: ; 0x1c41e6
+ db $0, "Your friend's", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, " appears", $55
+ db "to be abnormal!", $58
+; 0x1c4212
+
+UnknownText_0x1c4212: ; 0x1c4212
+ db $0, "Trade @"
+ text_from_ram $d004
+ db $0, $4f
+ db "for @"
+ text_from_ram $d073
+ db $0, "?", $57
+; 0x1c422a
+
+UnknownText_0x1c422a: ; 0x1c422a
+ db $0, "To enter a mobile", $4f
+ db "battle, you must", $51
+ db "pick a team of", $4f
+ db "three #MON.", $51
+ db "Is that OK?", $57
+; 0x1c4275
+
+UnknownText_0x1c4275: ; 0x1c4275
+ db $0, "Need more info on", $4f
+ db "mobile battles?", $57
+; 0x1c4298
+
+UnknownText_0x1c4298: ; 0x1c4298
+ db $0, "For a mobile", $4f
+ db "battle, choose", $55
+ db "three #MON.", $51
+ db "The maximum daily", $4f
+ db "play time is ten", $51
+ db "minutes for each", $4f
+ db "linked player.", $51
+ db "If a battle isn't", $4f
+ db "finished within", $51
+ db "the time limit,", $4f
+ db "the player with", $51
+ db "the fewest fainted", $4f
+ db "#MON wins.", $51
+ db "If tied, the team", $4f
+ db "that lost the", $51
+ db "least amount of HP", $4f
+ db "wins.", $57
+; 0x1c439c
+
+UnknownText_0x1c439c: ; 0x1c439c
+ db $0, "Today's remaining", $4f
+ db "time is @"
+ deciram $d086, $12
+ db $0, " min.", $51
+ db "Would you like to", $4f
+ db "battle?", $57
+; 0x1c43dc
+
+UnknownText_0x1c43dc: ; 0x1c43dc
+ db $0, "There are only @"
+ deciram $d086, $12
+ db $0, $4f
+ db "min. left today.", $51
+ db "Want a quick", $4f
+ db "battle?", $57
+; 0x1c4419
+
+UnknownText_0x1c4419: ; 0x1c4419
+ db $0, "There is only", $4f
+ db "1 min. left today!", $51
+ db "Want to rush", $4f
+ db "through a battle?", $57
+; 0x1c445a
+
+UnknownText_0x1c445a: ; 0x1c445a
+ db $0, "There is less than", $4f
+ db "1 min. left today!", $51
+ db "Please try again", $4f
+ db "tomorrow.", $57
+; 0x1c449c
+
+UnknownText_0x1c449c: ; 0x1c449c
+ db $0, "Try again using", $4f
+ db "the same settings?", $57
+; 0x1c44c0
+
+UnknownText_0x1c44c0: ; 0x1c44c0
+ db $0, "There is less than", $4f
+ db "1 min. left today!", $57
+; 0x1c44e7
+
+UnknownText_0x1c44e7: ; 0x1c44e7
+ db $0, "No time left for", $4f
+ db "linking today.", $57
+; 0x1c4508
+
+UnknownText_0x1c4508: ; 0x1c4508
+ db $0, "Pick three #MON", $4f
+ db "for battle.", $57
+; 0x1c4525
+
+UnknownText_0x1c4525: ; 0x1c4525
+ db $0, "Today's remaining", $4f
+ db "time is @"
+ deciram $d086, $12
+ db $0, " min.", $57
+; 0x1c454b
+
+UnknownText_0x1c454b: ; 0x1c454b
+ db $0, "Would you like to", $4f
+ db "save the game?", $57
+; 0x1c456d
+
+UnknownText_0x1c456d: ; 0x1c456d
+ db $0, "SAVING… DON'T TURN", $4f
+ db "OFF THE POWER.", $57
+; 0x1c4590
+
+UnknownText_0x1c4590: ; 0x1c4590
+ db $0, $52, " saved", $4f
+ db "the game.", $57
+; 0x1c45a3
+
+UnknownText_0x1c45a3: ; 0x1c45a3
+ db $0, "There is already a", $4f
+ db "save file. Is it", $55
+ db "OK to overwrite?", $57
+; 0x1c45d9
+
+UnknownText_0x1c45d9: ; 0x1c45d9
+ db $0, "There is another", $4f
+ db "save file. Is it", $55
+ db "OK to overwrite?", $57
+; 0x1c460d
+
+UnknownText_0x1c460d: ; 0x1c460d
+ db $0, "The save file is", $4f
+ db "corrupted!", $58
+; 0x1c462a
+
+UnknownText_0x1c462a: ; 0x1c462a
+ db $0, "When you change a", $4f
+ db "#MON BOX, data", $55
+ db "will be saved. OK?", $57
+; 0x1c465f
+
+UnknownText_0x1c465f: ; 0x1c465f
+ db $0, "Each time you move", $4f
+ db "a #MON, data", $55
+ db "will be saved. OK?", $57
+; 0x1c4693
+
+UnknownText_0x1c4693: ; 0x1c4693
+ db $0, "The window save", $4f
+ db "area was exceeded.", $57
+; 0x1c46b7
+
+UnknownText_0x1c46b7: ; 0x1c46b7
+ db $0, "No windows avail-", $4f
+ db "able for popping.", $57
+; 0x1c46dc
+
+UnknownText_0x1c46dc: ; 0x1c46dc
+ db $0, "Corrupted event!", $58
+; 0x1c46ee
+
+_ObjectEventText: ; 0x1c46ee
+ db $0, "Object event", $57
+; 0x1c46fc
+
+UnknownText_0x1c46fc: ; 0x1c46fc
+ db $0, "BG event", $57
+; 0x1c4706
+
+UnknownText_0x1c4706: ; 0x1c4706
+ db $0, "Coordinates event", $57
+; 0x1c4719
+
+UnknownText_0x1c4719: ; 0x1c4719
+ db $0, $52, " received", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, ".", $57
+; 0x1c472c
+
+UnknownText_0x1c472c: ; 0x1c472c
+ db $0, $52, " put the", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, " in", $55
+ db "the @"
+ text_from_ram $d099
+ db $0, ".", $58
+; 0x1c474b
+
+UnknownText_0x1c474b: ; 0x1c474b
+ db $0, "The @"
+ text_from_ram $d099
+ db $0, $4f
+ db "is full…", $58
+; 0x1c475f
+
+UnknownText_0x1c475f: ; 0x1c475f
+ db $0, "I see all.", $4f
+ db "I know all…", $51
+ db "Certainly, I know", $4f
+ db "of your #MON!", $57
+; 0x1c4797
+
+UnknownText_0x1c4797: ; 0x1c4797
+ db $0, "Whaaaat? I can't", $4f
+ db "tell a thing!", $51
+ db "How could I not", $4f
+ db "know of this?", $57
+; 0x1c47d4
+
+UnknownText_0x1c47d4: ; 0x1c47d4
+ db $0, "Hm… I see you met", $4f
+ db "@"
+ text_from_ram $d003
+ db $0, " here:", $55
+ db "@"
+ text_from_ram $d00e
+ db $0, "!", $58
+; 0x1c47fa
+
+UnknownText_0x1c47fa: ; 0x1c47fa
+ db $0, "The time was", $4f
+ db "@"
+ text_from_ram $d01f
+ db $0, "!", $51
+ db "Its level was @"
+ text_from_ram $d036
+ db $0, "!", $51
+ db "Am I good or what?", $58
+; 0x1c4837
+
+UnknownText_0x1c4837: ; 0x1c4837
+ db $0, "Hm… @"
+ text_from_ram $d003
+ db $0, $4f
+ db "came from @"
+ text_from_ram $d02a
+ db $0, $55
+ db "in a trade?", $51
+ db "@"
+ text_from_ram $d00e
+ db $0, $4f
+ db "was where @"
+ text_from_ram $d02a
+ db $0, $55
+ db "met @"
+ text_from_ram $d003
+ db $0, "!", $58
+; 0x1c487f
+
+UnknownText_0x1c487f: ; 0x1c487f
+ db $0, "What!? Incredible!", $51
+ db "I don't understand", $4f
+ db "how, but it is", $51
+ db "incredible!", $4f
+ db "You are special.", $51
+ db "I can't tell where", $4f
+ db "you met it, but it", $55
+ db "was at level @"
+ text_from_ram $d036
+ db $0, ".", $51
+ db "Am I good or what?", $58
+; 0x1c491d
+
+UnknownText_0x1c491d: ; 0x1c491d
+ db $0, "Hey!", $51
+ db "That's an EGG!", $51
+ db "You can't say that", $4f
+ db "you've met it yet…", $57
+; 0x1c4955
+
+UnknownText_0x1c4955: ; 0x1c4955
+ db $0, "Fufufu! I saw that", $4f
+ db "you'd do nothing!", $57
+; 0x1c497a
+
+UnknownText_0x1c497a: ; 0x1c497a
+ db $0, "Incidentally…", $51
+ db "It would be wise", $4f
+ db "to raise your", $51
+ db "#MON with a", $4f
+ db "little more care.", $57
+; 0x1c49c6
+
+UnknownText_0x1c49c6: ; 0x1c49c6
+ db $0, "Incidentally…", $51
+ db "It seems to have", $4f
+ db "grown a little.", $51
+ db "@"
+ text_from_ram $d003
+ db $0, " seems", $4f
+ db "to be becoming", $55
+ db "more confident.", $57
+; 0x1c4a21
+
+UnknownText_0x1c4a21: ; 0x1c4a21
+ db $0, "Incidentally…", $51
+ db "@"
+ text_from_ram $d003
+ db $0, " has", $4f
+ db "grown. It's gained", $55
+ db "much strength.", $57
+; 0x1c4a5b
+
+UnknownText_0x1c4a5b: ; 0x1c4a5b
+ db $0, "Incidentally…", $51
+ db "It certainly has", $4f
+ db "grown mighty!", $51
+ db "This @"
+ text_from_ram $d003
+ db $0, $4f
+ db "must have come", $51
+ db "through numerous", $4f
+ db "#MON battles.", $51
+ db "It looks brimming", $4f
+ db "with confidence.", $57
+; 0x1c4ae5
+
+UnknownText_0x1c4ae5: ; 0x1c4ae5
+ db $0, "Incidentally…", $51
+ db "I'm impressed by", $4f
+ db "your dedication.", $51
+ db "It's been a long", $4f
+ db "time since I've", $51
+ db "seen a #MON as", $4f
+ db "mighty as this", $55
+ db "@"
+ text_from_ram $d003
+ db $0, ".", $51
+ db "I'm sure that", $4f
+ db "seeing @"
+ text_from_ram $d003
+ db $0, $51
+ db "in battle would", $4f
+ db "excite anyone.", $57
+; 0x1c4b92
+
+UnknownText_0x1c4b92: ; 0x1c4b92
+ db $0, "Congratulations!", $4f
+ db "Your @"
+ text_from_ram $d086
+ db $50
+; 0x1c4bae
+
+UnknownText_0x1c4bae: ; 0x1c4bae
+ db $50
+; 0x1c4baf
+
+UnknownText_0x1c4baf: ; 0x1c4baf
+ db $0, $51
+ db "evolved into", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, "!", $57
+; 0x1c4bc5
+
+UnknownText_0x1c4bc5: ; 0x1c4bc5
+ db $0, "Huh? @"
+ text_from_ram $d086
+ db $0, $4f
+ db "stopped evolving!", $58
+; 0x1c4be3
+
+UnknownText_0x1c4be3: ; 0x1c4be3
+ db $0, "What? @"
+ text_from_ram $d086
+ db $0, $4f
+ db "is evolving!", $57
+; 0x1c4bfd
+
+UnknownText_0x1c4bfd: ; 0x1c4bfd
+ db $0, "How many?", $57
+; 0x1c4c08
+
+UnknownText_0x1c4c08: ; 0x1c4c08
+ deciram $d10c, $12
+ db $0, " @"
+ text_from_ram $d086
+ db $0, "(S)", $4f
+ db "will be ¥@"
+ deciram $ffc3, $36
+ db $0, ".", $57
+; 0x1c4c28
+
+UnknownText_0x1c4c28: ; 0x1c4c28
+ db $0, "Hello, dear.", $51
+ db "I sell inexpensive", $4f
+ db "herbal medicine.", $51
+ db "They're good, but", $4f
+ db "a trifle bitter.", $51
+ db "Your #MON may", $4f
+ db "not like them.", $51
+ db "Hehehehe…", $57
+; 0x1c4ca3
+
+UnknownText_0x1c4ca3: ; 0x1c4ca3
+ db $0, "How many?", $57
+; 0x1c4cae
+
+UnknownText_0x1c4cae: ; 0x1c4cae
+ deciram $d10c, $12
+ db $0, " @"
+ text_from_ram $d086
+ db $0, "(S)", $4f
+ db "will be ¥@"
+ deciram $ffc3, $36
+ db $0, ".", $57
+; 0x1c4cce
+
+UnknownText_0x1c4cce: ; 0x1c4cce
+ db $0, "Thank you, dear.", $4f
+ db "Hehehehe…", $57
+; 0x1c4cea
+
+UnknownText_0x1c4cea: ; 0x1c4cea
+ db $0, "Oh? Your PACK is", $4f
+ db "full, dear.", $57
+; 0x1c4d08
+
+UnknownText_0x1c4d08: ; 0x1c4d08
+ db $0, "Hehehe… You don't", $4f
+ db "have the money.", $57
+; 0x1c4d2a
+
+UnknownText_0x1c4d2a: ; 0x1c4d2a
+ db $0, "Come again, dear.", $4f
+ db "Hehehehe…", $57
+; 0x1c4d47
+
+UnknownText_0x1c4d47: ; 0x1c4d47
+ db $0, "Hiya! Care to see", $4f
+ db "some bargains?", $51
+ db "I sell rare items", $4f
+ db "that nobody else", $51
+ db "carries--but only", $4f
+ db "one of each item.", $57
+; 0x1c4db0
+
+UnknownText_0x1c4db0: ; 0x1c4db0
+ text_from_ram $d086
+ db $0, " costs", $4f
+ db "¥@"
+ deciram $ffc3, $36
+ db $0, ". Want it?", $57
+; 0x1c4dcd
+
+UnknownText_0x1c4dcd: ; 0x1c4dcd
+ db $0, "Thanks.", $57
+; 0x1c4dd6
+
+UnknownText_0x1c4dd6: ; 0x1c4dd6
+ db $0, "Uh-oh, your PACK", $4f
+ db "is chock-full.", $57
+; 0x1c4df7
+
+UnknownText_0x1c4df7: ; 0x1c4df7
+ db $0, "You bought that", $4f
+ db "already. I'm all", $55
+ db "sold out of it.", $57
+; 0x1c4e28
+
+UnknownText_0x1c4e28: ; 0x1c4e28
+ db $0, "Uh-oh, you're", $4f
+ db "short on funds.", $57
+; 0x1c4e46
+
+UnknownText_0x1c4e46: ; 0x1c4e46
+ db $0, "Come by again", $4f
+ db "sometime.", $57
+; 0x1c4e5f
+
+UnknownText_0x1c4e5f: ; 0x1c4e5f
+ db $0, "What's up? Need", $4f
+ db "some medicine?", $57
+; 0x1c4e7e
+
+UnknownText_0x1c4e7e: ; 0x1c4e7e
+ db $0, "How many?", $57
+; 0x1c4e89
+
+UnknownText_0x1c4e89: ; 0x1c4e89
+ deciram $d10c, $12
+ db $0, " @"
+ text_from_ram $d086
+ db $0, "(S)", $4f
+ db "will cost ¥@"
+ deciram $ffc3, $36
+ db $0, ".", $57
+; 0x1c4eab
+
+UnknownText_0x1c4eab: ; 0x1c4eab
+ db $0, "Thanks much!", $57
+; 0x1c4eb9
+
+UnknownText_0x1c4eb9: ; 0x1c4eb9
+ db $0, "You don't have any", $4f
+ db "more space.", $57
+; 0x1c4ed8
+
+UnknownText_0x1c4ed8: ; 0x1c4ed8
+ db $0, "Huh? That's not", $4f
+ db "enough money.", $57
+; 0x1c4ef6
+
+UnknownText_0x1c4ef6: ; 0x1c4ef6
+ db $0, "All right.", $4f
+ db "See you around.", $57
+; 0x1c4f12
+
+UnknownText_0x1c4f12: ; 0x1c4f12
+ db $0, "You don't have", $4f
+ db "anything to sell.", $58
+; 0x1c4f33
+
+UnknownText_0x1c4f33: ; 0x1c4f33
+ db $0, "How many?", $57
+; 0x1c4f3e
+
+UnknownText_0x1c4f3e: ; 0x1c4f3e
+ db $0, "I can pay you", $4f
+ db "¥@"
+ deciram $ffc3, $36
+ db $0, ".", $51
+ db "Is that OK?", $57
+; 0x1c4f62
+
+UnknownText_0x1c4f62: ; 0x1c4f62
+ db $0, "Welcome! How may I", $4f
+ db "help you?", $57
+; 0x1c4f80
+
+UnknownText_0x1c4f80: ; 0x1c4f80
+ db $0, "Here you are.", $4f
+ db "Thank you!", $57
+; 0x1c4f9a
+
+UnknownText_0x1c4f9a: ; 0x1c4f9a
+ db $0, "You don't have", $4f
+ db "enough money.", $57
+; 0x1c4fb7
+
+UnknownText_0x1c4fb7: ; 0x1c4fb7
+ db $0, "You can't carry", $4f
+ db "any more items.", $57
+; 0x1c4fd7
+
+UnknownText_0x1c4fd7: ; 0x1c4fd7
+ db $0, "Sorry, I can't buy", $4f
+ db "that from you.", $58
+; 0x1c4ff9
+
+UnknownText_0x1c4ff9: ; 0x1c4ff9
+ db $0, "Please come again!", $57
+; 0x1c500d
+
+UnknownText_0x1c500d: ; 0x1c500d
+ db $0, "Can I do anything", $4f
+ db "else for you?", $57
+; 0x1c502e
+
+UnknownText_0x1c502e: ; 0x1c502e
+ db $0, "Got ¥@"
+ deciram $ffc3, $36
+ db $0, " for", $4f
+ db "@"
+ text_from_ram $d086
+ db $0, "(S).", $57
+; 0x1c5049
+
+UnknownText_0x1c5049: ; 0x1c5049
+ db $0, "Bet how many", $4f
+ db "coins?", $57
+; 0x1c505e
+
+UnknownText_0x1c505e: ; 0x1c505e
+ db $0, "Start!", $57
+; 0x1c5066
+
+UnknownText_0x1c5066: ; 0x1c5066
+ db $0, "Not enough", $4f
+ db "coins.", $58
+; 0x1c5079
+
+UnknownText_0x1c5079: ; 0x1c5079
+ db $0, "Darn… Ran out of", $4f
+ db "coins…", $57
+; 0x1c5092
+
+UnknownText_0x1c5092: ; 0x1c5092
+ db $0, "Play again?", $57
+; 0x1c509f
+
+UnknownText_0x1c509f: ; 0x1c509f
+ db $0, "lined up!", $4f
+ db "Won @"
+ text_from_ram $d086
+ db $0, " coins!", $57
+; 0x1c50bb
+
+UnknownText_0x1c50bb: ; 0x1c50bb
+ db $0, "Darn!", $57
+; 0x1c50c2
+
+_MobileStadiumEntryText: ; 0x1c50c2
+ db $0, "Data for use in", $4f
+ db "the MOBILE STADIUM", $51
+ db "of the N64 #MON", $4f
+ db "STADIUM 2 can be", $55
+ db "read here.", $51
+ db "Read the data?", $57
+; 0x1c5121
+
+_MobileStadiumSuccessText: ; 0x1c5121
+ db $0, "Data transfer is", $4f
+ db "complete.", $51
+ db "We hope you enjoy", $4f
+ db "MOBILE STADIUM", $51
+ db "battles in the N64", $4f
+ db "#MON STADIUM 2.", $51
+ db $57
+; 0x1c5182
+
+UnknownText_0x1c5182: ; 0x1c5182
+ db $0, "Clock time unknown", $57
+; 0x1c5196
+
+UnknownText_0x1c5196: ; 0x1c5196
+ db $0, "Delete the saved", $4f
+ db "LOG-IN PASSWORD?", $57
+; 0x1c51b9
+
+UnknownText_0x1c51b9: ; 0x1c51b9
+ db $0, "Deleted the LOG-IN", $4f
+ db "PASSWORD.", $57
+; 0x1c51d7
+
+UnknownText_0x1c51d7: ; 0x1c51d7
+ db $0, "Pick three #MON", $4f
+ db "for battle.", $58
+; 0x1c51f4
+
+UnknownText_0x1c51f4: ; 0x1c51f4
+ text_from_ram $d006
+ db $0, ",", $4f
+ db "@"
+ text_from_ram $d00c
+ db $0, " and", $55
+ db "@"
+ text_from_ram $d012
+ db $0, ".", $51
+ db "Use these three?", $57
+; 0x1c521c
+
+UnknownText_0x1c521c: ; 0x1c521c
+ db $0, "Only three #MON", $4f
+ db "may enter.", $58
+; 0x1c5238
+
+UnknownText_0x1c5238: ; 0x1c5238
+ db $0, "The CARD FOLDER", $4f
+ db "stores your and", $51
+ db "your friends'", $4f
+ db "CARDS.", $51
+ db "A CARD contains", $4f
+ db "information like", $51
+ db "the person's name,", $4f
+ db "phone number and", $55
+ db "profile.", $51
+ db $57
+; 0x1c52bc
+
+UnknownText_0x1c52bc: ; 0x1c52bc
+ db $0, "This is your CARD.", $51
+ db "Once you've", $4f
+ db "entered your phone", $51
+ db "number, you can", $4f
+ db "trade CARDS with", $55
+ db "your friends.", $51
+ db $57
+; 0x1c531e
+
+UnknownText_0x1c531e: ; 0x1c531e
+ db $0, "If you have your", $4f
+ db "friend's CARD, you", $51
+ db "can use it to make", $4f
+ db "a call from a", $51
+ db "mobile phone on", $4f
+ db "the 2nd floor of a", $55
+ db "#MON CENTER.", $51
+ db $57
+; 0x1c5394
+
+UnknownText_0x1c5394: ; 0x1c5394
+ db $0, "To safely store", $4f
+ db "your collection of", $51
+ db "CARDS, you must", $4f
+ db "set a PASSCODE for", $55
+ db "your CARD FOLDER.", $51
+ db $57
+; 0x1c53ee
+
+UnknownText_0x1c53ee: ; 0x1c53ee
+ db $0, "If the CARD FOLDER", $4f
+ db "is deleted, all", $51
+ db "its CARDS and the", $4f
+ db "PASSCODE will also", $55
+ db "be deleted.", $51
+ db "Beware--a deleted", $4f
+ db "CARD FOLDER can't", $55
+ db "be restored.", $51
+ db "Want to delete", $4f
+ db "your CARD FOLDER?", $57
+; 0x1c5494
+
+UnknownText_0x1c5494: ; 0x1c5494
+ db $0, "Are you sure you", $4f
+ db "want to delete it?", $57
+; 0x1c54b9
+
+UnknownText_0x1c54b9: ; 0x1c54b9
+ db $0, "The CARD FOLDER", $4f
+ db "has been deleted.", $51
+ db $57
+; 0x1c54dd
+
+UnknownText_0x1c54dd: ; 0x1c54dd
+ db $0, "There is an older", $4f
+ db "CARD FOLDER from a", $55
+ db "previous journey.", $51
+ db "Do you want to", $4f
+ db "open it?", $57
+; 0x1c552d
+
+UnknownText_0x1c552d: ; 0x1c552d
+ db $0, "Delete the old", $4f
+ db "CARD FOLDER?", $57
+; 0x1c554a
+
+UnknownText_0x1c554a: ; 0x1c554a
+ db $0, "Finish registering", $4f
+ db "CARDS?", $57
+; 0x1c5565
+
+UnknownText_0x1c5565: ; 0x1c5565
+ db $0, "Huh? Sorry, wrong", $4f
+ db "number!", $57
+; 0x1c5580
+
+UnknownText_0x1c5580: ; 0x1c5580
+ db $0, "Click!", $57
+; 0x1c5588
+
+UnknownText_0x1c5588: ; 0x1c5588
+ db $0, $56, $57
+; 0x1c558b
+
+UnknownText_0x1c558b: ; 0x1c558b
+ db $0, "That number is out", $4f
+ db "of the area.", $57
+; 0x1c55ac
+
+UnknownText_0x1c55ac: ; 0x1c55ac
+ db $0, "Just go talk to", $4f
+ db "that person!", $57
+; 0x1c55ca
+
+UnknownText_0x1c55ca: ; 0x1c55ca
+ db $0, "Thank you!", $57
+; 0x1c55d6
+
+UnknownText_0x1c55d6: ; 0x1c55d6
+ db $0, " :", $57
+; 0x1c55db
+
+UnknownText_0x1c55db: ; 0x1c55db
+ db $0, "Password OK.", $4f
+ db "Select CONTINUE &", $55
+ db "reset settings.", $58
+; 0x1c560b
+
+UnknownText_0x1c560b: ; 0x1c560b
+ db $0, "Wrong password!", $58
+; 0x1c561c
+
+UnknownText_0x1c561c: ; 0x1c561c
+ db $0, "Reset the clock?", $57
+; 0x1c562e
+
+UnknownText_0x1c562e: ; 0x1c562e
+ db $0, "Please enter the", $4f
+ db "password.", $57
+; 0x1c564a
+
+UnknownText_0x1c564a: ; 0x1c564a
+ db $0, "Clear all save", $4f
+ db "data?", $57
+; 0x1c5660
+
+UnknownText_0x1c5660: ; 0x1c5660
+ text_from_ram $d050
+ db $0, " learned", $4f
+ db "@"
+ text_from_ram $d086
+ db $0, "!@"
+ sound0
+ text_waitbutton
+ db $50
+; 0x1c5677
+
+UnknownText_0x1c5677: ; 0x1c5677
+ db $50
+; 0x1c5678
+
+UnknownText_0x1c5678: ; 0x1c5678
+ db $0, "Which move should", $4e, "be forgotten?", $57
+; 0x1c5699
+
+UnknownText_0x1c5699: ; 0x1c5699
+ db $0, "Stop learning", $4f
+ db "@"
+ text_from_ram $d086
+ db $0, "?", $57
+; 0x1c56af
+
+UnknownText_0x1c56af: ; 0x1c56af
+ text_from_ram $d050
+ db $0, $4f
+ db "did not learn", $55
+ db "@"
+ text_from_ram $d086
+ db $0, ".", $58
+; 0x1c56c9
+
+UnknownText_0x1c56c9: ; 0x1c56c9
+ text_from_ram $d050
+ db $0, " is", $4f
+ db "trying to learn", $55
+ db "@"
+ text_from_ram $d086
+ db $0, ".", $51
+ db "But @"
+ text_from_ram $d050
+ db $0, $4f
+ db "can't learn more", $55
+ db "than four moves.", $51
+ db "Delete an older", $4f
+ db "move to make room", $55
+ db "for @"
+ text_from_ram $d086
+ db $0, "?", $57
+; 0x1c5740
+
+UnknownText_0x1c5740: ; 0x1c5740
+ db $0, "1, 2 and…@"
+ interpret_data
+ db $50
+; 0x1c574d
+
+UnknownText_0x1c574d: ; 0x1c574d
+ db $50
+; 0x1c574e
+
+UnknownText_0x1c574e: ; 0x1c574e
+ db $0, " Poof!@"
+ interpret_data
+ db $0, $51
+ db "@"
+ text_from_ram $d050
+ db $0, " forgot", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, ".", $51
+ db "And…", $58
+; 0x1c5772
+
+UnknownText_0x1c5772: ; 0x1c5772
+ db $0, "HM moves can't be", $4f
+ db "forgotten now.", $58
+; 0x1c5793
+
+UnknownText_0x1c5793: ; 0x1c5793
+ db $0, "Play with three", $4f
+ db "coins?", $57
+; 0x1c57ab
+
+UnknownText_0x1c57ab: ; 0x1c57ab
+ db $0, "Not enough coins…", $58
+; 0x1c57be
+
+UnknownText_0x1c57be: ; 0x1c57be
+ db $0, "Choose a card.", $57
+; 0x1c57ce
+
+UnknownText_0x1c57ce: ; 0x1c57ce
+ db $0, "Place your bet.", $57
+; 0x1c57df
+
+UnknownText_0x1c57df: ; 0x1c57df
+ db $0, "Want to play", $4f
+ db "again?", $57
+; 0x1c57f4
+
+UnknownText_0x1c57f4: ; 0x1c57f4
+ db $0, "The cards have", $4f
+ db "been shuffled.", $58
+; 0x1c5813
+
+UnknownText_0x1c5813: ; 0x1c5813
+ db $0, "Yeah!", $57
+; 0x1c581a
+
+UnknownText_0x1c581a: ; 0x1c581a
+ db $0, "Darn…", $57
+; 0x1c5821
+
+UnknownText_0x1c5821: ; 0x1c5821
+ current_day
+ db $50
+; 0x1c5823
+
+UnknownText_0x1c5823: ; 0x1c5823
+ db $50
+; 0x1c5824
+
+UnknownText_0x1c5824: ; 0x1c5824
+ db $0, $56, $57
+; 0x1c5827
+
+UnknownText_0x1c5827: ; 0x1c5827
+ db $0, "You're out of the", $4f
+ db "service area.", $58
+; 0x1c5847
+
+UnknownText_0x1c5847: ; 0x1c5847
+ db $0, "Whom do you want", $4f
+ db "to call?", $57
+; 0x1c5862
+
+UnknownText_0x1c5862: ; 0x1c5862
+ db $0, "Press any button", $4f
+ db "to exit.", $57
+; 0x1c587d
+
+UnknownText_0x1c587d: ; 0x1c587d
+ db $0, "Delete this stored", $4f
+ db "phone number?", $57
+; 0x1c589f
+
+UnknownText_0x1c589f: ; 0x1c589f
+ db $0, "Which prize would", $4f
+ db "you like?", $57
+; 0x1c58bc
+
+UnknownText_0x1c58bc: ; 0x1c58bc
+ text_from_ram $d073
+ db $0, "?", $4f
+ db "Is that right?", $57
+; 0x1c58d1
+
+UnknownText_0x1c58d1: ; 0x1c58d1
+ db $0, "Here you go!", $51
+ db $57
+; 0x1c58e0
+
+UnknownText_0x1c58e0: ; 0x1c58e0
+ db $0, "You don't have", $4f
+ db "enough points.", $51
+ db $57
+; 0x1c58ff
+
+UnknownText_0x1c58ff: ; 0x1c58ff
+ db $0, "You have no room", $4f
+ db "for it.", $51
+ db $57
+; 0x1c591a
+
+UnknownText_0x1c591a: ; 0x1c591a
+ db $0, "Oh. Please come", $4f
+ db "back again!", $57
+; 0x1c5937
+
+UnknownText_0x1c5937: ; 0x1c5937
+ db $0, "Excuse me!", $51
+ db $57
+; 0x1c5944
+
+UnknownText_0x1c5944: ; 0x1c5944
+ db $0, "Excuse me.", $4f
+ db "You're not ready.", $51
+ db $57
+; 0x1c5962
+
+UnknownText_0x1c5962: ; 0x1c5962
+ db $0, "Please return when", $4f
+ db "you're ready.", $57
+; 0x1c5983
+
+UnknownText_0x1c5983: ; 0x1c5983
+ db $0, "You need at least", $4f
+ db "three #MON.", $51
+ db $57
+; 0x1c59a3
+
+UnknownText_0x1c59a3: ; 0x1c59a3
+ db $0, "Sorry, an EGG", $4f
+ db "doesn't qualify.", $51
+ db $57
+; 0x1c59c3
+
+UnknownText_0x1c59c3: ; 0x1c59c3
+ db $0, "Only three #MON", $4f
+ db "may be entered.", $51
+ db $57
+; 0x1c59e5
+
+UnknownText_0x1c59e5: ; 0x1c59e5
+ db $0, "The @"
+ text_from_ram $d086
+ db $0, " #MON", $4f
+ db "must all be", $55
+ db "different kinds.", $51
+ db $57
+; 0x1c5a13
+
+UnknownText_0x1c5a13: ; 0x1c5a13
+ db $0, "The @"
+ text_from_ram $d086
+ db $0, " #MON", $4f
+ db "must not hold the", $55
+ db "same items.", $51
+ db $57
+; 0x1c5a42
+
+UnknownText_0x1c5a42: ; 0x1c5a42
+ db $0, "You can't take an", $4f
+ db "EGG!", $51
+ db $57
+; 0x1c5a5a
+
+UnknownText_0x1c5a5a: ; 0x1c5a5a
+ db $0, "It dodged the", $4f
+ db "thrown BALL!", $51
+ db "This #MON", $4f
+ db "can't be caught!", $58
+; 0x1c5a90
+
+UnknownText_0x1c5a90: ; 0x1c5a90
+ db $0, "You missed the", $4f
+ db "#MON!", $58
+; 0x1c5aa6
+
+UnknownText_0x1c5aa6: ; 0x1c5aa6
+ db $0, "Oh no! The #MON", $4f
+ db "broke free!", $58
+; 0x1c5ac3
+
+UnknownText_0x1c5ac3: ; 0x1c5ac3
+ db $0, "Aww! It appeared", $4f
+ db "to be caught!", $58
+; 0x1c5ae3
+
+UnknownText_0x1c5ae3: ; 0x1c5ae3
+ db $0, "Aargh!", $4f
+ db "Almost had it!", $58
+; 0x1c5afa
+
+UnknownText_0x1c5afa: ; 0x1c5afa
+ db $0, "Shoot! It was so", $4f
+ db "close too!", $58
+; 0x1c5b17
+
+UnknownText_0x1c5b17: ; 0x1c5b17
+ db $0, "Gotcha! @"
+ text_from_ram $c616
+ db $0, $4f
+ db "was caught!@"
+ sound0x02
+ db $50
+; 0x1c5b34
+
+UnknownText_0x1c5b34: ; 0x1c5b34
+ db $50
+; 0x1c5b35
+
+UnknownText_0x1c5b35: ; 0x1c5b35
+ text_waitbutton
+ db $50
+; 0x1c5b37
+
+UnknownText_0x1c5b37: ; 0x1c5b37
+ db $50
+; 0x1c5b38
+
+UnknownText_0x1c5b38: ; 0x1c5b38
+ text_from_ram $d050
+ db $0, " was", $4f
+ db "sent to BILL's PC.", $58
+; 0x1c5b53
+
+UnknownText_0x1c5b53: ; 0x1c5b53
+ text_from_ram $c616
+ db $0, "'s data", $4f
+ db "was newly added to", $55
+ db "the #DEX.@"
+ sound0x2C
+ text_waitbutton
+ db $50
+; 0x1c5b7e
+
+UnknownText_0x1c5b7e: ; 0x1c5b7e
+ db $50
+; 0x1c5b7f
+
+UnknownText_0x1c5b7f: ; 0x1c5b7f
+ db $0, "Give a nickname to", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, "?", $57
+; 0x1c5b9a
+
+UnknownText_0x1c5b9a: ; 0x1c5b9a
+ text_from_ram $d073
+ db $0, "'s", $4f
+ db "@"
+ text_from_ram $d086
+ db $0, " rose.", $58
+; 0x1c5bac
+
+UnknownText_0x1c5bac: ; 0x1c5bac
+ db $0, "That can't be used", $4f
+ db "on this #MON.", $58
+; 0x1c5bcd
+
+UnknownText_0x1c5bcd: ; 0x1c5bcd
+ db $0, "The REPEL used", $4f
+ db "earlier is still", $55
+ db "in effect.", $58
+; 0x1c5bf9
+
+UnknownText_0x1c5bf9: ; 0x1c5bf9
+ db $0, "Played the #", $4f
+ db "FLUTE.", $51
+ db "Now, that's a", $4f
+ db "catchy tune!", $58
+; 0x1c5c28
+
+UnknownText_0x1c5c28: ; 0x1c5c28
+ db $0, "All sleeping", $4f
+ db "#MON woke up.", $58
+; 0x1c5c44
+
+UnknownText_0x1c5c44: ; 0x1c5c44
+ db $0, $52, " played the", $4f
+ db "# FLUTE.@"
+ text_waitbutton
+ db $50
+; 0x1c5c5d
+
+UnknownText_0x1c5c5d: ; 0x1c5c5d
+ db $50
+; 0x1c5c5e
+
+UnknownText_0x1c5c5e: ; 0x1c5c5e
+ db $0, "You now have", $4f
+ db "@"
+ deciram $dc4b, $12
+ db $0, " points.", $57
+; 0x1c5c7b
+
+UnknownText_0x1c5c7b: ; 0x1c5c7b
+ db $0, "Coins:", $4f
+ db "@"
+ deciram $d855, $24
+ db $50
+; 0x1c5c89
+
+UnknownText_0x1c5c89: ; 0x1c5c89
+ db $50
+; 0x1c5c8a
+
+UnknownText_0x1c5c8a: ; 0x1c5c8a
+ db $0, "Raise the PP of", $4f
+ db "which move?", $57
+; 0x1c5ca7
+
+UnknownText_0x1c5ca7: ; 0x1c5ca7
+ db $0, "Restore the PP of", $4f
+ db "which move?", $57
+; 0x1c5cc6
+
+UnknownText_0x1c5cc6: ; 0x1c5cc6
+ text_from_ram $d086
+ db $0, "'s PP", $4f
+ db "is maxed out.", $58
+; 0x1c5cdd
+
+UnknownText_0x1c5cdd: ; 0x1c5cdd
+ text_from_ram $d086
+ db $0, "'s PP", $4f
+ db "increased.", $58
+; 0x1c5cf1
+
+UnknownText_0x1c5cf1: ; 0x1c5cf1
+ db $0, "PP was restored.", $58
+; 0x1c5d03
+
+UnknownText_0x1c5d03: ; 0x1c5d03
+ db $0, "There was a trophy", $4f
+ db "inside!@"
+ sound0
+ db $0, $51
+ db "@"
+ text_from_ram PlayerName
+ db $0, " sent the", $4f
+ db "trophy home.", $58
+; 0x1c5d3e
+
+UnknownText_0x1c5d3e: ; 0x1c5d3e
+ db $0, "It looks bitter…", $58
+; 0x1c5d50
+
+UnknownText_0x1c5d50: ; 0x1c5d50
+ db $0, "That can't be used", $4f
+ db "on an EGG.", $58
+; 0x1c5d6e
+
+UnknownText_0x1c5d6e: ; 0x1c5d6e
+ db $0, "OAK: ", $52, "!", $4f
+ db "This isn't the", $55
+ db "time to use that!", $58
+; 0x1c5d97
+
+UnknownText_0x1c5d97: ; 0x1c5d97
+ db $0, "That belongs to", $4f
+ db "someone else!", $58
+; 0x1c5db6
+
+UnknownText_0x1c5db6: ; 0x1c5db6
+ db $0, "It won't have any", $4f
+ db "effect.", $58
+; 0x1c5dd0
+
+UnknownText_0x1c5dd0: ; 0x1c5dd0
+ db $0, "The trainer", $4f
+ db "blocked the BALL!", $58
+; 0x1c5def
+
+UnknownText_0x1c5def: ; 0x1c5def
+ db $0, "Don't be a thief!", $58
+; 0x1c5e01
+
+UnknownText_0x1c5e01: ; 0x1c5e01
+ db $0, "Cycling isn't", $4f
+ db "allowed here.", $58
+; 0x1c5e1d
+
+UnknownText_0x1c5e1d: ; 0x1c5e1d
+ db $0, "Can't get on your", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, " now.", $58
+; 0x1c5e3a
+
+UnknownText_0x1c5e3a: ; 0x1c5e3a
+ db $0, "The #MON BOX", $4f
+ db "is full. That", $55
+ db "can't be used now.", $58
+; 0x1c5e68
+
+UnknownText_0x1c5e68: ; 0x1c5e68
+ db $0, $52, " used the@"
+ text_dunno1
+ text_from_ram $d086
+ db $0, ".", $57
+; 0x1c5e7b
+
+UnknownText_0x1c5e7b: ; 0x1c5e7b
+ db $0, $52, " got on the@"
+ text_dunno1
+ text_from_ram $d086
+ db $0, ".", $58
+; 0x1c5e90
+
+UnknownText_0x1c5e90: ; 0x1c5e90
+ db $0, $52, " got off@"
+ text_dunno1
+ db $0, "the @"
+ text_from_ram $d086
+ db $0, ".", $58
+; 0x1c5ea8
+
+UnknownText_0x1c5ea8: ; 0x1c5ea8
+ text_from_ram $d073
+ db $0, " knows", $4f
+ db "@"
+ text_from_ram $d086
+ db $0, ".", $58
+; 0x1c5eba
+
+UnknownText_0x1c5eba: ; 0x1c5eba
+ db $0, "That #MON knows", $4f
+ db "only one move.", $57
+; 0x1c5eda
+
+UnknownText_0x1c5eda: ; 0x1c5eda
+ db $0, "Oh, make it forget", $4f
+ db "@"
+ text_from_ram $d073
+ db $0, "?", $57
+; 0x1c5ef5
+
+UnknownText_0x1c5ef5: ; 0x1c5ef5
+ db $0, "Done! Your #MON", $4f
+ db "forgot the move.", $57
+; 0x1c5f17
+
+UnknownText_0x1c5f17: ; 0x1c5f17
+ db $0, "An EGG doesn't", $4f
+ db "know any moves!", $57
+; 0x1c5f36
+
+UnknownText_0x1c5f36: ; 0x1c5f36
+ db $0, "No? Come visit me", $4f
+ db "again.", $57
+; 0x1c5f50
+
+UnknownText_0x1c5f50: ; 0x1c5f50
+ db $0, "Which move should", $4f
+ db "it forget, then?", $58
+; 0x1c5f74
+
+UnknownText_0x1c5f74: ; 0x1c5f74
+ db $0, "Um… Oh, yes, I'm", $4f
+ db "the MOVE DELETER.", $51
+ db "I can make #MON", $4f
+ db "forget moves.", $51
+ db "Shall I make a", $4f
+ db "#MON forget?", $57
+; 0x1c5fd1
+
+UnknownText_0x1c5fd1: ; 0x1c5fd1
+ db $0, "Which #MON?", $58
+; 0x1c5fde
+
+UnknownText_0x1c5fde: ; 0x1c5fde
+ db $0, " DST,", $4f
+ db "is that OK?", $57
+; 0x1c5ff1
+
+UnknownText_0x1c5ff1: ; 0x1c5ff1
+ db $0, ",", $4f
+ db "is that OK?", $57
+; 0x1c6000
+
+UnknownText_0x1c6000: ; 0x1c6000
+ db $0, "Do you want to", $4f
+ db "switch to Daylight", $55
+ db "Saving Time?", $57
+; 0x1c6030
+
+UnknownText_0x1c6030: ; 0x1c6030
+ db $0, "I set the clock", $4f
+ db "forward by one", $55
+ db "hour.", $58
+; 0x1c6056
+
+UnknownText_0x1c6056: ; 0x1c6056
+ db $0, "Is Daylight Saving", $4f
+ db "Time over?", $57
+; 0x1c6075
+
+UnknownText_0x1c6075: ; 0x1c6075
+ db $0, "I put the clock", $4f
+ db "back one hour.", $58
+; 0x1c6095
+
+UnknownText_0x1c6095: ; 0x1c6095
+ db $0, "Do you want to", $4f
+ db "adjust your clock", $51
+ db "for Daylight", $4f
+ db "Saving Time?", $57
+; 0x1c60d1
+
+UnknownText_0x1c60d1: ; 0x1c60d1
+ db $0, "I lost the in-", $4f
+ db "struction booklet", $55
+ db "for the #GEAR.", $51
+ db "Come back again in", $4f
+ db "a while.", $58
+; 0x1c611e
+
--- /dev/null
+++ b/text/phone/extra.asm
@@ -1,0 +1,1448 @@
+
+UnknownText_0x64000: ; 0x64000
+ db $0, "I hate having to", $4f
+ db "hang up on you!", $51
+ db "Call you later!", $57
+; 0x64032
+
+UnknownText_0x64032: ; 0x64032
+ db $0, $14, ", have you", $4f
+ db "heard?", $51
+ db "GOLDENROD's RADIO", $4f
+ db "TOWER has been", $51
+ db "taken over by TEAM", $4f
+ db "ROCKET!", $51
+ db "…Um… What's TEAM", $4f
+ db "ROCKET?", $57
+; 0x64099
+
+UnknownText_0x64099: ; 0x64099
+ db $0, $14, ", I heard!", $51
+ db "You defeated that", $4f
+ db "WHITNEY?", $51
+ db "It makes me proud", $4f
+ db "to be your friend!", $57
+; 0x640e6
+
+UnknownText_0x640e6: ; 0x640e6
+ db $0, "Hey, I heard about", $4f
+ db "you!", $51
+ db "You saved that", $4f
+ db "#MON at the", $51
+ db "LIGHTHOUSE, didn't", $4f
+ db "you?", $51
+ db $14, ", I wish", $4f
+ db "you'd come see me", $51
+ db "when I'm sick in", $4f
+ db "bed with a cold!", $57
+; 0x6416d
+
+UnknownText_0x6416d: ; 0x6416d
+ db $0, "I heard, I heard,", $4f
+ db "I heard!", $51
+ db "You smashed TEAM", $4f
+ db "ROCKET's hideout!", $51
+ db "You're like a", $4f
+ db "movie hero, even!", $51
+ db "But um… What was", $4f
+ db "TEAM ROCKET?", $57
+; 0x641e8
+
+UnknownText_0x641e8: ; 0x641e8
+ db $0, "I heard, I heard,", $4f
+ db "I heard!", $51
+ db "About your heroic", $4f
+ db "liberation of the", $51
+ db "RADIO TOWER! You", $4f
+ db "rock so hard!", $57
+; 0x64247
+
+UnknownText_0x64247: ; 0x64247
+ db $0, "I saw, I saw!", $51
+ db "I saw you go into", $4f
+ db "the DRAGON'S DEN!", $51
+ db "I'm certain you", $4f
+ db "passed! Aww, no", $51
+ db "need to be modest!", $4f
+ db "You can't fail!", $57
+; 0x642bb
+
+UnknownText_0x642bb: ; 0x642bb
+ db $0, "Yesterday, I went", $4f
+ db "out to NEW BARK", $51
+ db "TOWN. There was a", $4f
+ db "lady who looked a", $51
+ db "lot like you,", $4f
+ db $14, ".", $51
+ db "What? That lady", $4f
+ db "was your mom?", $51
+ db "Aww, I should've", $4f
+ db "introduced myself!", $51
+ db "I bet your mom's", $4f
+ db "really proud of", $51
+ db "all that you've", $4f
+ db "accomplished.", $51
+ db "Heh, put it this", $4f
+ db "way. I'd be proud", $51
+ db "if I were your", $4f
+ db "mom, believe me!", $57
+; 0x643d4
+
+UnknownText_0x643d4: ; 0x643d4
+ db $0, "I saw, I saw,", $4f
+ db "I saw!", $51
+ db "You striding onto", $4f
+ db "a ship, ", $14, "!", $51
+ db "I can't get over", $4f
+ db "how good you look", $51
+ db "with the sea as", $4f
+ db "your backdrop!", $57
+; 0x64448
+
+UnknownText_0x64448: ; 0x64448
+ db $0, "I heard, I heard!", $51
+ db "You got a MAGNET", $4f
+ db "TRAIN PASS!", $51
+ db "When I saw you", $4f
+ db "departing on the", $51
+ db "ship, I felt sad", $4f
+ db "that I wouldn't be", $51
+ db "able to see you", $4f
+ db "for a while.", $51
+ db "But since you have", $4f
+ db "that PASS, you can", $51
+ db "zip back anytime!", $4f
+ db "That's reassuring!", $51
+ db "What? You can FLY", $4f
+ db "back anytime?", $51
+ db "What do you mean", $4f
+ db "by FLY?", $57
+; 0x6455b
+
+UnknownText_0x6455b: ; 0x6455b
+ db $0, "I saw, I saw!", $51
+ db "You waking up", $4f
+ db "SNORLAX!", $51
+ db "I was watching you", $4f
+ db "from afar, so I", $51
+ db "couldn't tell what", $4f
+ db "you did exactly.", $51
+ db "Did you play a", $4f
+ db "flute to wake it?", $51
+ db "Wow! That's like", $4f
+ db "magic!", $57
+; 0x645ff
+
+UnknownText_0x645ff: ; 0x645ff
+ db $0, "I hear rumors", $4f
+ db "about you all over", $55
+ db "the place.", $51
+ db "It just makes me", $4f
+ db "sigh, ", $14, ".", $51
+ db "How did you get so", $4f
+ db "strong?", $51
+ db "Go for the world", $4f
+ db "championship now!", $51
+ db "I'll always be", $4f
+ db "cheering you on!", $57
+; 0x646a3
+
+UnknownText_0x646a3: ; 0x646a3
+ db $0, "Hehe, I called", $4f
+ db "right away!", $51
+ db "I think we can be", $4f
+ db "good friends!", $57
+; 0x646df
+
+UnknownText_0x646df: ; 0x646df
+ db $0, "I saw, I heard!", $51
+ db "You beat MORTY of", $4f
+ db "ECRUTEAK GYM!", $51
+ db "Th-that's just", $4f
+ db "incredible!", $51
+ db "I actually went to", $4f
+ db "the GYM's entrance", $51
+ db "to cheer you on.", $4f
+ db "Did you know that?", $51
+ db "But everyone was", $4f
+ db "floating, and", $51
+ db "there were ghosts", $4f
+ db "all over! So I", $51
+ db "chickened out and", $4f
+ db "took off for home…", $57
+; 0x647d8
+
+UnknownText_0x647d8: ; 0x647d8
+ db $0, $14, ", I heard!", $51
+ db "You're kicking up", $4f
+ db "a mighty ruckus", $51
+ db "over in KANTO!", $4f
+ db "What a glorious", $51
+ db "rampage it must", $4f
+ db "be!", $51
+ db "You so rock!", $57
+; 0x64846
+
+UnknownText_0x64846: ; 0x64846
+ db $0, "Hearing about your", $4f
+ db "escapades rocks my", $51
+ db "soul!", $4f
+ db "It sure does!", $57
+; 0x64881
+
+UnknownText_0x64881: ; 0x64881
+ db $0, "I'm so glad you", $4f
+ db "called!", $51
+ db "I was just about", $4f
+ db "to call you too!", $51
+ db "I guess we must be", $4f
+ db "a good match!", $57
+; 0x648dc
+
+UnknownText_0x648dc: ; 0x648dc
+ db $0, "How are you?", $51
+ db "What are you", $4f
+ db "doing?", $51
+ db "Where are you?", $51
+ db "How many BADGES do", $4f
+ db "you have now?", $51
+ db "How much money", $4f
+ db "have you saved?", $51
+ db "How's your mom?", $51
+ db "Have you got lots", $4f
+ db "of #MON?", $51
+ db "Is it going to be", $4f
+ db "sunny tomorrow?", $51
+ db "Arrgh, there's so", $4f
+ db "much I want to", $51
+ db "chat about! This", $4f
+ db "is going nowhere!", $57
+; 0x649dc
+
+UnknownText_0x649dc: ; 0x649dc
+ db $0, "I'm always with my", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, "!", $51
+ db "It's so cute!", $4f
+ db "I just love it!", $57
+; 0x64a13
+
+UnknownText_0x64a13: ; 0x64a13
+ db $0, "Changing the topic", $4f
+ db "here, I saw this", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " for the", $4f
+ db "first time.", $51
+ db "It was easy to", $4f
+ db "beat, actually.", $57
+; 0x64a71
+
+UnknownText_0x64a71: ; 0x64a71
+ db $0, "I was wondering,", $4f
+ db "do you happen to", $55
+ db "have @"
+ text_from_ram $d0ac
+ db $0, "?", $51
+ db "I can't seem to", $4f
+ db "catch one. What is", $51
+ db "its weakness, I", $4f
+ db "wonder.", $57
+; 0x64ada
+
+UnknownText_0x64ada: ; 0x64ada
+ db $0, "Hey, let's battle", $4f
+ db "our #MON!", $51
+ db "I won't lose to", $4f
+ db "you battling or in", $51
+ db "the Bug-Catching", $4f
+ db "Contest!", $51
+ db "I'll be here on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x64b48
+
+UnknownText_0x64b48: ; 0x64b48
+ db $0, "Let's talk again,", $4f
+ db "huh?", $57
+; 0x64b5f
+
+UnknownText_0x64b5f: ; 0x64b5f
+ db $0, "Boy, am I glad I", $4f
+ db "caught you!", $51
+ db "A whole bunch of", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, " have", $51
+ db "appeared around", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $51
+ db "You have to see", $4f
+ db "this!", $57
+; 0x64bc6
+
+UnknownText_0x64bc6: ; 0x64bc6
+ db $0, "I haven't had any", $4f
+ db "luck seeing rare", $55
+ db "#MON lately…", $51
+ db "But I know they're", $4f
+ db "out there!", $57
+; 0x64c13
+
+UnknownText_0x64c13: ; 0x64c13
+ db $0, "Hey, where are you", $4f
+ db "now?", $51
+ db "Let's battle. I'll", $4f
+ db "be waiting for you", $55
+ db "on @"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x64c5a
+
+UnknownText_0x64c5a: ; 0x64c5a
+ db $0, "Hello? Are you", $4f
+ db "coming or what?", $51
+ db "You're missing out", $4f
+ db "on seeing YANMA!", $51
+ db "Get down to ROUTE", $4f
+ db "35 right now!", $57
+; 0x64cbd
+
+UnknownText_0x64cbd: ; 0x64cbd
+ db $0, "My @"
+ text_from_ram $d0ac
+ db $0, "'s", $4f
+ db "getting stronger,", $51
+ db "exactly as I", $4f
+ db "calculated!", $57
+; 0x64cf3
+
+UnknownText_0x64cf3: ; 0x64cf3
+ db $0, "By the way, we", $4f
+ db "knocked out a wild", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " just", $4f
+ db "the other day.", $51
+ db "Studying up in", $4f
+ db "advance worked!", $57
+; 0x64d4f
+
+UnknownText_0x64d4f: ; 0x64d4f
+ db $0, "By the way, a wild", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, " escaped", $55
+ db "on me yesterday.", $51
+ db "A computational", $4f
+ db "error on my part…", $57
+; 0x64da4
+
+UnknownText_0x64da4: ; 0x64da4
+ db $0, "I've studied quite", $4f
+ db "a bit since then,", $51
+ db "and I've gotten a", $4f
+ db "lot better!", $51
+ db "I'm hanging out on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "Can you come down", $4f
+ db "for a battle?", $57
+; 0x64e1f
+
+UnknownText_0x64e1f: ; 0x64e1f
+ db $0, "See you later!", $57
+; 0x64e2f
+
+UnknownText_0x64e2f: ; 0x64e2f
+ db $0, "Hehehe, I picked", $4f
+ db "up something nice!", $51
+ db "You can have it!", $4f
+ db "Why don't you come", $51
+ db "to @"
+ text_from_ram $d0bf
+ db $0, $4f
+ db "and pick it up?", $57
+; 0x64e90
+
+UnknownText_0x64e90: ; 0x64e90
+ db $0, "I haven't picked", $4f
+ db "up anything yet.", $51
+ db "I'll call you if I", $4f
+ db "find something.", $57
+; 0x64ed4
+
+UnknownText_0x64ed4: ; 0x64ed4
+ db $0, "If we don't battle", $4f
+ db "soon, I'll forget", $55
+ db "my strategy!", $51
+ db "I'm waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x64f1a
+
+UnknownText_0x64f1a: ; 0x64f1a
+ db $0, "I have to do my", $4f
+ db "homework, so can", $51
+ db "you come get your", $4f
+ db "gift right away?", $51
+ db "I'm waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x64f74
+
+UnknownText_0x64f74: ; 0x64f74
+ db $0, "My @"
+ text_from_ram $d0ac
+ db $0, " is", $4f
+ db "getting prettier!", $51
+ db "I've been taking", $4f
+ db "photos galore!", $57
+; 0x64fb2
+
+UnknownText_0x64fb2: ; 0x64fb2
+ db $0, "It took only an", $4f
+ db "instant to KO a", $55
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "It must be because", $4f
+ db "you gave me some", $51
+ db "battling tips last", $4f
+ db "time.", $57
+; 0x6501c
+
+UnknownText_0x6501c: ; 0x6501c
+ db $0, "You know what?", $4f
+ db "A wild @"
+ text_from_ram $d0ac
+ db $0, $51
+ db "got away from me", $4f
+ db "again.", $51
+ db "It was so close!", $4f
+ db "Really, just a", $51
+ db "little bit more,", $4f
+ db "and I would've…", $57
+; 0x65091
+
+UnknownText_0x65091: ; 0x65091
+ db $0, "Right now, I'm on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "If you're close", $4f
+ db "by, let's battle!", $51
+ db "I'll be waiting", $4f
+ db "for you!", $57
+; 0x650e2
+
+UnknownText_0x650e2: ; 0x650e2
+ db $0, "See you!", $57
+; 0x650ec
+
+UnknownText_0x650ec: ; 0x650ec
+ db $0, "You know what?", $4f
+ db "I got a good gift!", $51
+ db "As I promised,", $4f
+ db "it's yours!", $51
+ db "I'm sure you'd", $4f
+ db "like it. Come get", $51
+ db "it! I'm waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x65161
+
+UnknownText_0x65161: ; 0x65161
+ db $0, "Oh! You wanted a", $4f
+ db "gift, right?", $51
+ db "I got one, but I", $4f
+ db "want to keep this.", $51
+ db "Can you wait a bit", $4f
+ db "longer?", $57
+; 0x651bf
+
+UnknownText_0x651bf: ; 0x651bf
+ db $0, "Hi! You haven't", $4f
+ db "forgotten about", $51
+ db "your promise to", $4f
+ db "battle me?", $51
+ db "I'm waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x6520f
+
+UnknownText_0x6520f: ; 0x6520f
+ db $0, "Hello?", $51
+ db "If you don't come", $4f
+ db "get your present", $51
+ db "soon, I'll give it", $4f
+ db "to someone else.", $51
+ db "I'm waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x65271
+
+UnknownText_0x65271: ; 0x65271
+ db $0, "I recently began", $4f
+ db "observing wild", $55
+ db "@"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "I've been learning", $4f
+ db "all sorts of new", $51
+ db "things through my", $4f
+ db "observations.", $51
+ db "I wish I could", $4f
+ db "become a #MON", $51
+ db "researcher like", $4f
+ db "PROF.OAK soon.", $57
+; 0x65318
+
+UnknownText_0x65318: ; 0x65318
+ db $0, "Oh yes, I managed", $4f
+ db "to knock out a", $51
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, " a", $4f
+ db "while back.", $51
+ db "Well, considering", $4f
+ db "all the studying I", $51
+ db "do every day, it", $4f
+ db "was inevitable.", $57
+; 0x65399
+
+UnknownText_0x65399: ; 0x65399
+ db $0, "Oh yes, I came", $4f
+ db "close to catching", $51
+ db "a wild @"
+ text_from_ram $d0ac
+ db $0, ",", $4f
+ db "but it got away.", $51
+ db "For the longest", $4f
+ db "time, I've been", $51
+ db "wanting to observe", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, ". Rats…", $57
+; 0x65419
+
+UnknownText_0x65419: ; 0x65419
+ db $0, "Want to battle?", $4f
+ db "I have to battle", $51
+ db "every so often to", $4f
+ db "avoid rusting out.", $51
+ db "I'll be on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x65471
+
+UnknownText_0x65471: ; 0x65471
+ db $0, "See you later!", $57
+; 0x65481
+
+UnknownText_0x65481: ; 0x65481
+ db $0, "Do you know BLUE?", $51
+ db "He's PROF.OAK's", $4f
+ db "grandson and a", $51
+ db "former #MON", $4f
+ db "LEAGUE CHAMPION!", $51
+ db "He's one super", $4f
+ db "#MON trainer!", $57
+; 0x654ea
+
+UnknownText_0x654ea: ; 0x654ea
+ db $0, "PROF.OAK has a", $4f
+ db "granddaughter", $55
+ db "named DAISY.", $51
+ db "When she's around,", $4f
+ db "even the most", $51
+ db "ferocious #MON", $4f
+ db "calm right down.", $57
+; 0x65555
+
+UnknownText_0x65555: ; 0x65555
+ db $0, "Everyone's talking", $4f
+ db "about PROF.ELM.", $51
+ db "He used to be an", $4f
+ db "assistant to the", $55
+ db "great PROF.OAK!", $51
+ db "That is so cool!", $4f
+ db "I envy him!", $57
+; 0x655c7
+
+UnknownText_0x655c7: ; 0x655c7
+ db $0, "PROF.OAK's dream", $4f
+ db "is to compile a", $51
+ db "comprehensive", $4f
+ db "#DEX.", $51
+ db "I envy you for", $4f
+ db "taking part in", $55
+ db "that project…", $57
+; 0x65628
+
+UnknownText_0x65628: ; 0x65628
+ db $0, "Do you know KURT,", $4f
+ db "the BALL creator?", $51
+ db "He and PROF.OAK go", $4f
+ db "back a long way.", $51
+ db "I guess great", $4f
+ db "people attract one", $55
+ db "another!", $57
+; 0x6569b
+
+UnknownText_0x6569b: ; 0x6569b
+ db $0, "#MON LEAGUE is", $4f
+ db "the great gather-", $55
+ db "ing place for all", $51
+ db "trainers who wish", $4f
+ db "to become CHAMP.", $51
+ db "PROF.OAK acts as", $4f
+ db "an advisor to the", $51
+ db "#MON LEAGUE's", $4f
+ db "headquarters.", $51
+ db "He really is a", $4f
+ db "great man.", $57
+; 0x6574a
+
+UnknownText_0x6574a: ; 0x6574a
+ db $0, "PROF.OAK'S #MON", $4f
+ db "TALK is a popular", $55
+ db "radio show, right?", $51
+ db "Did you know that", $4f
+ db "he was going to", $51
+ db "turn down the show", $4f
+ db "at first?", $51
+ db "But MARY's energy", $4f
+ db "and persistence", $55
+ db "wore him down.", $51
+ db "So we have MARY to", $4f
+ db "thank for it!", $57
+; 0x65810
+
+UnknownText_0x65810: ; 0x65810
+ db $0, "PROF.OAK used to", $4f
+ db "be a trainer a", $55
+ db "long time ago.", $51
+ db "But rather than", $4f
+ db "battling, he found", $51
+ db "#MON themselves", $4f
+ db "to be interesting.", $51
+ db "So he abandoned", $4f
+ db "his training to", $51
+ db "focus on becoming", $4f
+ db "a researcher.", $57
+; 0x658c6
+
+UnknownText_0x658c6: ; 0x658c6
+ db $0, "PROF.OAK has a", $4f
+ db "granddaughter", $55
+ db "named DAISY.", $51
+ db "She has tea every", $4f
+ db "day for an hour", $51
+ db "from three in the", $4f
+ db "afternoon.", $51
+ db "I wish I could", $4f
+ db "join her for tea", $51
+ db "and chat about", $4f
+ db "PROF.OAK.", $57
+; 0x65969
+
+UnknownText_0x65969: ; 0x65969
+ db $0, "Did you know?", $4f
+ db "PROF.OAK traveled", $51
+ db "all over the world", $4f
+ db "when he was young.", $51
+ db "While traveling,", $4f
+ db "he must've learned", $51
+ db "about #MON", $4f
+ db "naturally.", $51
+ db "I envy him…", $4f
+ db "I'd like to travel", $51
+ db "and learn about", $4f
+ db "things too…", $57
+; 0x65a23
+
+UnknownText_0x65a23: ; 0x65a23
+ db $0, "I'm going to study", $4f
+ db "hard so PROF.OAK", $51
+ db "will make me his", $4f
+ db "assistant!", $57
+; 0x65a63
+
+UnknownText_0x65a63: ; 0x65a63
+ db $0, "Do you remember", $4f
+ db "about our battle?", $51
+ db "The place is", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "Hurry over--I'm", $4f
+ db "waiting.", $57
+; 0x65ab2
+
+UnknownText_0x65ab2: ; 0x65ab2
+ db $0, "Listen to this.", $4f
+ db "My @"
+ text_from_ram $d0ac
+ db $0, $51
+ db "grins happily when", $4f
+ db "I pinch its cheek.", $51
+ db "But it never grins", $4f
+ db "for anyone else.", $51
+ db "I must be special.", $57
+; 0x65b29
+
+UnknownText_0x65b29: ; 0x65b29
+ db $0, "Oh, and recently,", $4f
+ db "my PIKACHU beat a", $55
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, "!", $51
+ db "A wild @"
+ text_from_ram $d0ac
+ db $0, ",", $4f
+ db "I tell you!", $51
+ db "Don't you think", $4f
+ db "that's astounding?", $51
+ db "My PIKACHU is", $4f
+ db "awesome!", $51
+ db "My PIKACHU is the", $4f
+ db "greatest!", $57
+; 0x65bc8
+
+UnknownText_0x65bc8: ; 0x65bc8
+ db $0, "Oh, and I saw a", $4f
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, " a", $55
+ db "little while ago.", $51
+ db "But it wasn't very", $4f
+ db "cute, so I left", $51
+ db "it…", $4f
+ db "#MON have to be", $51
+ db "cute. They're no", $4f
+ db "good otherwise.", $57
+; 0x65c4e
+
+UnknownText_0x65c4e: ; 0x65c4e
+ db $0, "Well, let's talk", $4f
+ db "again!", $57
+; 0x65c66
+
+UnknownText_0x65c66: ; 0x65c66
+ db $0, "Did you remember?", $4f
+ db "The Bug-Catching", $55
+ db "Contest is today.", $51
+ db "You're going to", $4f
+ db "go, aren't you?", $51
+ db "I think I'll", $4f
+ db "participate with", $51
+ db "PIKACHU to show", $4f
+ db "off its cuteness.", $57
+; 0x65cf9
+
+UnknownText_0x65cf9: ; 0x65cf9
+ db $0, "I'd like you to", $4f
+ db "have a NUGGET.", $51
+ db "My PIKACHU just", $4f
+ db "loves it.", $51
+ db "I'm certain your", $4f
+ db "PIKACHU will love", $55
+ db "it too!", $57
+; 0x65d5c
+
+UnknownText_0x65d5c: ; 0x65d5c
+ db $0, "How is your", $4f
+ db "PIKACHU doing?", $51
+ db "Let's get together", $4f
+ db "and brag about our", $55
+ db "PIKACHU!", $57
+; 0x65da6
+
+UnknownText_0x65da6: ; 0x65da6
+ db $0, "What's wrong?", $51
+ db "I'm waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "Come pick this up", $4f
+ db "anytime.", $57
+; 0x65de4
+
+UnknownText_0x65de4: ; 0x65de4
+ db $0, "My @"
+ text_from_ram $d0ac
+ db $0, " has", $4f
+ db "grown again.", $51
+ db "It was only about", $4f
+ db "so big when I", $51
+ db "caught it, but now", $4f
+ db "it's way bigger.", $57
+; 0x65e42
+
+UnknownText_0x65e42: ; 0x65e42
+ db $0, "Oh yeah, I KO'd a", $4f
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "It was huge, like", $4f
+ db "this big even.", $51
+ db "Heh, I guess you", $4f
+ db "can't tell over", $55
+ db "the phone…", $57
+; 0x65eac
+
+UnknownText_0x65eac: ; 0x65eac
+ db $0, "Oh yeah, I lost a", $4f
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "It was huge, like", $4f
+ db "this big even.", $51
+ db "Heh, I guess you", $4f
+ db "can't tell over", $55
+ db "the phone…", $57
+; 0x65f17
+
+UnknownText_0x65f17: ; 0x65f17
+ db $0, "We should get a", $4f
+ db "battle going!", $51
+ db "I'll be fishing on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "Swing by if you", $4f
+ db "have the time.", $57
+; 0x65f6e
+
+UnknownText_0x65f6e: ; 0x65f6e
+ db $0, "Well, I'll be", $4f
+ db "seeing you.", $57
+; 0x65f88
+
+UnknownText_0x65f88: ; 0x65f88
+ db $0, "I picked up a good", $4f
+ db "little thing at", $55
+ db "the water's edge.", $51
+ db "Like I promised,", $4f
+ db "it's yours.", $51
+ db "I'll be waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x65ff2
+
+UnknownText_0x65ff2: ; 0x65ff2
+ db $0, "Have I found", $4f
+ db "anything good?", $51
+ db "Nope, not yet.", $51
+ db "It's like fishing,", $4f
+ db "you need patience.", $57
+; 0x66043
+
+UnknownText_0x66043: ; 0x66043
+ db $0, "Yup, TULLY here…", $51
+ db $14, "? What?", $4f
+ db "You're lost?", $51
+ db "Our battle will be", $4f
+ db "on @"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x66087
+
+UnknownText_0x66087: ; 0x66087
+ db $0, "I've got something", $4f
+ db "good for you.", $51
+ db "Hustle over to", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x660be
+
+UnknownText_0x660be: ; 0x660be
+ db $0, "Oh yeah, I got an", $4f
+ db "extremely rare", $51
+ db "#MON in a trade", $4f
+ db "a while back.", $51
+ db "Do you want to", $4f
+ db "know what it is?", $51
+ db "Hehe, I'm keeping", $4f
+ db "it a secret!", $57
+; 0x6613c
+
+UnknownText_0x6613c: ; 0x6613c
+ db $0, "Oh yeah, I took", $4f
+ db "down this wild", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, ".", $4f
+ db "It wasn't rare", $51
+ db "enough to bother", $4f
+ db "catching.", $57
+; 0x6618c
+
+UnknownText_0x6618c: ; 0x6618c
+ db $0, "Oh yeah, I saw a", $4f
+ db "rare #MON about", $55
+ db "an hour ago.", $51
+ db "It was my first", $4f
+ db "sighting. But I", $51
+ db "didn't have any", $4f
+ db "# BALLS…", $51
+ db "Would BILL laugh", $4f
+ db "at my mistakes?", $57
+; 0x66214
+
+UnknownText_0x66214: ; 0x66214
+ db $0, "You've got time", $4f
+ db "like usual, right?", $51
+ db "Feel like having a", $4f
+ db "battle?", $51
+ db "It'll be a chance", $4f
+ db "to see my rare", $51
+ db "#MON. It'll be", $4f
+ db "worth your time!", $51
+ db "You know where--", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x662a9
+
+UnknownText_0x662a9: ; 0x662a9
+ db $0, "So that's it then.", $57
+; 0x662bc
+
+UnknownText_0x662bc: ; 0x662bc
+ db $0, "Did you know…?", $4f
+ db "BILL's father is", $51
+ db "supposed to be a", $4f
+ db "great #MANIAC.", $57
+; 0x662fc
+
+UnknownText_0x662fc: ; 0x662fc
+ db $0, "Did you know…?", $4f
+ db "Apparently BILL's", $51
+ db "grandpa isn't a", $4f
+ db "#MANIAC.", $57
+; 0x66335
+
+UnknownText_0x66335: ; 0x66335
+ db $0, "Did you know…?", $4f
+ db "BILL's originally", $55
+ db "from GOLDENROD.", $57
+; 0x66366
+
+UnknownText_0x66366: ; 0x66366
+ db $0, "Did you know…?", $4f
+ db "BILL evidently", $51
+ db "lives on ROUTE 25", $4f
+ db "in KANTO.", $57
+; 0x663a1
+
+UnknownText_0x663a1: ; 0x663a1
+ db $0, "Did you know…?", $4f
+ db "ABRA was the first", $51
+ db "#MON that BILL", $4f
+ db "ostensibly caught.", $57
+; 0x663e6
+
+UnknownText_0x663e6: ; 0x663e6
+ db $0, "Did you know…?", $4f
+ db "BILL's younger", $51
+ db "sister apparently", $4f
+ db "can't wink.", $57
+; 0x66421
+
+UnknownText_0x66421: ; 0x66421
+ db $0, "Did you know…?", $4f
+ db "BILL supposedly", $51
+ db "hates milk and", $4f
+ db "can't drink it.", $57
+; 0x6645f
+
+UnknownText_0x6645f: ; 0x6645f
+ db $0, "Did you know…?", $4f
+ db "Evidently, BILL", $51
+ db "isn't very good at", $4f
+ db "battling.", $57
+; 0x6649b
+
+UnknownText_0x6649b: ; 0x6649b
+ db $0, "Did you know…?", $4f
+ db "BILL appears to", $51
+ db "like the lady at", $4f
+ db "the FLOWER SHOP.", $57
+; 0x664dd
+
+UnknownText_0x664dd: ; 0x664dd
+ db $0, "Did you know…?", $4f
+ db "BILL's mother is", $51
+ db "said to have been", $4f
+ db "a KIMONO GIRL.", $57
+; 0x6651e
+
+UnknownText_0x6651e: ; 0x6651e
+ db $0, "You wanted to hear", $4f
+ db "about BILL?", $51
+ db "Sorry, but I'm too", $4f
+ db "busy for you.", $51
+ db "I'll call when I", $4f
+ db "have time.", $57
+; 0x66579
+
+UnknownText_0x66579: ; 0x66579
+ db $0, "You want to see my", $4f
+ db "rare #MON.", $51
+ db "Hurry over to", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x665ad
+
+UnknownText_0x665ad: ; 0x665ad
+ db $0, "My @"
+ text_from_ram $d0ac
+ db $0, "'s", $4f
+ db "adorable, don't", $51
+ db "you think so?", $4f
+ db "I always sleep", $51
+ db "with it--it's so", $4f
+ db "fluffy and warm!", $57
+; 0x66605
+
+UnknownText_0x66605: ; 0x66605
+ db $0, "Oh, and we had to", $4f
+ db "battle a wild", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " a while", $4f
+ db "ago…", $51
+ db "My CLEFAIRY came", $4f
+ db "close to fainting!", $51
+ db "Isn't that awful?", $51
+ db "I hate those nasty", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, "!", $57
+; 0x66688
+
+UnknownText_0x66688: ; 0x66688
+ db $0, "Oh, and we had to", $4f
+ db "battle a wild", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " a while", $4f
+ db "ago…", $51
+ db "My CLEFAIRY got", $4f
+ db "frightened, so we", $51
+ db "ran away as fast", $4f
+ db "as we could!", $51
+ db "I just can't help", $4f
+ db "feeling protective", $55
+ db "of my CLEFAIRY.", $57
+; 0x66730
+
+UnknownText_0x66730: ; 0x66730
+ db $0, "I know this might", $4f
+ db "surprise you, but", $51
+ db "would you like to", $4f
+ db "battle?", $51
+ db "I'll be waiting", $4f
+ db "with CLEFAIRY on", $55
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x66796
+
+UnknownText_0x66796: ; 0x66796
+ text_from_ram $d0ac
+ db $0, "!", $51
+ db "It's awful.", $4f
+ db "My CLEFAIRY…", $51
+ db "Huh? ", $14, "?", $51
+ db "Oh, sorry! I was", $4f
+ db "in a hurry, and I…", $51
+ db "I have to go!", $4f
+ db "Bye-bye!", $57
+; 0x667f7
+
+UnknownText_0x667f7: ; 0x667f7
+ db $0, "Bye-bye!", $57
+; 0x66801
+
+UnknownText_0x66801: ; 0x66801
+ db $0, "I bought some PINK", $4f
+ db "BOWS at GOLDENROD", $51
+ db "DEPT.STORE for my", $4f
+ db "CLEFAIRY.", $51
+ db "I got too many, so", $4f
+ db "I'll give you one!", $51
+ db "Come collect it on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x66882
+
+UnknownText_0x66882: ; 0x66882
+ db $0, "I love dressing up", $4f
+ db "my CLEFAIRY!", $57
+; 0x668a3
+
+UnknownText_0x668a3: ; 0x668a3
+ db $0, "What's wrong?", $4f
+ db "Can't you visit?", $51
+ db "CLEFAIRY got tired", $4f
+ db "and fell asleep.", $51
+ db "I'm not sure if I", $4f
+ db "can wake it up…", $51
+ db "Please hurry to", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x6691d
+
+UnknownText_0x6691d: ; 0x6691d
+ db $0, "What's wrong?", $4f
+ db "Can't you visit?", $51
+ db "I'm sure this will", $4f
+ db "look good on your", $55
+ db "CLEFAIRY.", $51
+ db "Please hurry to", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x66980
+
+UnknownText_0x66980: ; 0x66980
+ db $0, "My @"
+ text_from_ram $d0ac
+ db $0, "'s", $4f
+ db "become tougher.", $51
+ db "We've achieved", $4f
+ db "liftoff!", $57
+; 0x669b2
+
+UnknownText_0x669b2: ; 0x669b2
+ db $0, "We can easily beat", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, "!", $51
+ db "…Huh? You too?", $4f
+ db "Isn't that great?", $57
+; 0x669ed
+
+UnknownText_0x669ed: ; 0x669ed
+ db $0, "But get this, a", $4f
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, $51
+ db "just barely eluded", $4f
+ db "us.", $51
+ db "I wanted to FLY", $4f
+ db "after it…", $57
+; 0x66a3a
+
+UnknownText_0x66a3a: ; 0x66a3a
+ db $0, "Right now, I'm on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "You know, where I", $4f
+ db "first met you?", $51
+ db "Want to battle?", $4f
+ db "I'll wait here.", $57
+; 0x66a93
+
+UnknownText_0x66a93: ; 0x66a93
+ db $0, "OK, bye for now!", $57
+; 0x66aa5
+
+UnknownText_0x66aa5: ; 0x66aa5
+ db $0, "I'll be looking", $4f
+ db "forward to our", $55
+ db "next battle!", $57
+; 0x66ad1
+
+UnknownText_0x66ad1: ; 0x66ad1
+ db $0, "Oh, ", $14, "!", $4f
+ db "Hurry, hurry!", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $4f
+ db "FLY over now!", $57
+; 0x66afc
+
+UnknownText_0x66afc: ; 0x66afc
+ db $0, "My @"
+ text_from_ram $d0ac
+ db $0, "'s", $4f
+ db "grown impressive!", $51
+ db "My fishing skills", $4f
+ db "have improved too!", $57
+; 0x66b3e
+
+UnknownText_0x66b3e: ; 0x66b3e
+ db $0, "We beat a wild", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, "…", $51
+ db "You know, I have", $4f
+ db "more fun fishing", $51
+ db "than beating wild", $4f
+ db "#MON.", $57
+; 0x66b8f
+
+UnknownText_0x66b8f: ; 0x66b8f
+ db $0, "But a while back,", $4f
+ db "we came this close", $51
+ db "to landing a wild", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "I tell you, it was", $4f
+ db "huge. Believe me.", $57
+; 0x66bf3
+
+UnknownText_0x66bf3: ; 0x66bf3
+ db $0, "I'm fishing on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ",", $51
+ db "but nothing's", $4f
+ db "biting today.", $51
+ db "Help me while my", $4f
+ db "time away, come", $55
+ db "over for a battle.", $57
+; 0x66c58
+
+UnknownText_0x66c58: ; 0x66c58
+ db $0, "All right, later.", $57
+; 0x66c6b
+
+UnknownText_0x66c6b: ; 0x66c6b
+ db $0, "I snagged an item", $4f
+ db "while fishing.", $51
+ db "Come pick it up on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x66ca7
+
+UnknownText_0x66ca7: ; 0x66ca7
+ db $0, "Nah, I haven't", $4f
+ db "found anything", $51
+ db "that's worth your", $4f
+ db "time.", $51
+ db "You have to have", $4f
+ db "patience.", $57
+; 0x66cf7
+
+UnknownText_0x66cf7: ; 0x66cf7
+ db $0, "Sigh…", $4f
+ db "They're not biting", $51
+ db "like before on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "…", $51
+ db "You have to come", $4f
+ db "for a battle!", $57
+; 0x66d45
+
+UnknownText_0x66d45: ; 0x66d45
+ db $0, "Don't you want", $4f
+ db "this item?", $51
+ db "Hah? You don't", $4f
+ db "know where?", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, "…", $4f
+ db "Just head from", $51
+ db "MAHOGANY toward", $4f
+ db "BLACKTHORN!", $57
+; 0x66dab
+
+UnknownText_0x66dab: ; 0x66dab
+ db $0, "Anyway, we'll chat", $4f
+ db "again!", $57
+; 0x66dc5
+
+UnknownText_0x66dc5: ; 0x66dc5
+ db $0, "Are you still on", $4f
+ db "your journey?", $51
+ db "I remain dedicated", $4f
+ db "to my training.", $51
+ db "Oooooaaarrrgh!", $57
+; 0x66e17
+
+UnknownText_0x66e17: ; 0x66e17
+ db $0, "I'm in training", $4f
+ db "now. I apologize,", $51
+ db "but call me back", $4f
+ db "another time.", $51
+ db "Oooooaaarrrgh!", $57
+; 0x66e67
+
+UnknownText_0x66e67: ; 0x66e67
+ db $0, "I apologize, but I", $4f
+ db "don't have time to", $51
+ db "chat while I am in", $4f
+ db "training!", $51
+ db "I'll have time to", $4f
+ db "chat tomorrow!", $51
+ db "Yiiihah!", $57
+; 0x66ed3
+
+UnknownText_0x66ed3: ; 0x66ed3
+ db $0, "I plan to take a", $4f
+ db "lunch break, so", $51
+ db "come see me then!", $4f
+ db "Ayiiiyah!", $57
+; 0x66f11
+
+UnknownText_0x66f11: ; 0x66f11
+ db $0, "I'm taking a break", $4f
+ db "on ROUTE 45!", $51
+ db "Why not drop by if", $4f
+ db "you are free?", $57
+; 0x66f52
+
+UnknownText_0x66f52: ; 0x66f52
+ db $0, "I rested up over", $4f
+ db "my lunch break.", $51
+ db "Now it's time to", $4f
+ db "resume training!", $51
+ db "Oooryaah!", $57
+; 0x66f9f
+
+UnknownText_0x66f9f: ; 0x66f9f
+ db $0, "Nothing can match", $4f
+ db "my @"
+ text_from_ram $d0ac
+ db $0, " now.", $57
+; 0x66fc0
+
+UnknownText_0x66fc0: ; 0x66fc0
+ db $0, "Yeah, we KO'd a", $4f
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, "!", $51
+ db "That was OK, but I", $4f
+ db "wanted to get it…", $57
+; 0x67001
+
+UnknownText_0x67001: ; 0x67001
+ db $0, "And yesterday, we", $4f
+ db "spotted a wild", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, ".", $4f
+ db "We were debating", $51
+ db "whether to catch", $4f
+ db "it or beat it.", $51
+ db "When along came", $4f
+ db "another guy who", $51
+ db "caught it!", $4f
+ db "How about that!", $57
+; 0x67096
+
+UnknownText_0x67096: ; 0x67096
+ db $0, "You're thinking", $4f
+ db "you'd like to", $51
+ db "battle me. Am I", $4f
+ db "right or what?", $51
+ db "Yep! We'll meet on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x670eb
+
+UnknownText_0x670eb: ; 0x670eb
+ db $0, "OK, give me a call", $4f
+ db "again!", $57
+; 0x67106
+
+UnknownText_0x67106: ; 0x67106
+ db $0, "You'll battle with", $4f
+ db "me again, right?", $57
+; 0x6712a
+
+UnknownText_0x6712a: ; 0x6712a
+ db $0, "Haven't you gotten", $4f
+ db "to @"
+ text_from_ram $d0bf
+ db $0, "?", $51
+ db "Waiting here isn't", $4f
+ db "bad, but I'd sure", $55
+ db "like to battle!", $57
+; 0x6717a
+
+UnknownText_0x6717a: ; 0x6717a
+ text_from_ram $d099
+ db $0, "'s @"
+ text_from_ram $d0ac
+ db $0, $4f
+ db "is much stronger", $55
+ db "than before!", $57
+; 0x671a4
+
+UnknownText_0x671a4: ; 0x671a4
+ db $0, "And, and…", $4f
+ db "I just battled and", $55
+ db "beat @"
+ text_from_ram $d0ac
+ db $0, "!", $51
+ db "I've raised my", $4f
+ db "#MON properly!", $57
+; 0x671eb
+
+UnknownText_0x671eb: ; 0x671eb
+ db $0, "But, but…", $51
+ db "A wild @"
+ text_from_ram $d0ac
+ db $0, $4f
+ db "got away from me", $51
+ db "again. It's just", $4f
+ db "not fair!", $57
+; 0x6722e
+
+UnknownText_0x6722e: ; 0x6722e
+ db $0, "I'm ERIN. Want to", $4f
+ db "battle me again?", $51
+ db "I won't lose this", $4f
+ db "time!", $51
+ db "I'll be waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x67281
+
+UnknownText_0x67281: ; 0x67281
+ db $0, "See you. Bye-bye!", $57
+; 0x67294
+
+UnknownText_0x67294: ; 0x67294
+ db $0, "I'm working hard", $4f
+ db "to raise my", $55
+ db "#MON!", $51
+ db "Come back for", $4f
+ db "another battle!", $57
+; 0x672d5
+
+UnknownText_0x672d5: ; 0x672d5
+ db $0, "Oh, ", $14, "!", $4f
+ db "Come battle ERIN!", $51
+ db "I'll be waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x67308
--- /dev/null
+++ b/text/phone/extra2.asm
@@ -1,0 +1,951 @@
+
+UnknownText_0xa4000: ; 0xa4000
+ db $0, "By the way, I'm a", $4f
+ db "HIKER, so I often", $51
+ db "go to mountains", $4f
+ db "and caves.", $51
+ db "I occasionally see", $4f
+ db "rare #MON.", $51
+ db "I could call you", $4f
+ db "the next time I", $55
+ db "see one.", $51
+ db "Feel like swapping", $4f
+ db "phone numbers?", $57
+; 0xa40a9
+
+UnknownText_0xa40a9: ; 0xa40a9
+ db $0, "I could call you", $4f
+ db "when I see some", $55
+ db "rare #MON.", $51
+ db "Feel like swapping", $4f
+ db "phone numbers?", $57
+; 0xa40f8
+
+UnknownText_0xa40f8: ; 0xa40f8
+ db $0, "Be patient. I'll", $4f
+ db "find some rare", $55
+ db "#MON for you!", $57
+; 0xa4126
+
+UnknownText_0xa4126: ; 0xa4126
+ db $0, "You're cold. I may", $4f
+ db "as well head to", $55
+ db "the mountains…", $57
+; 0xa4158
+
+UnknownText_0xa4158: ; 0xa4158
+ db $0, "Your phone's full.", $51
+ db "It can't register", $4f
+ db "my phone number.", $57
+; 0xa418d
+
+UnknownText_0xa418d: ; 0xa418d
+ db $0, "All righty, then!", $51
+ db "My #MON and I", $4f
+ db "are raring to go!", $57
+; 0xa41c0
+
+UnknownText_0xa41c0: ; 0xa41c0
+ db $0, "From here, I can", $4f
+ db "see GOLDENROD's", $51
+ db "DEPT.STORE. They", $4f
+ db "have bargain sales", $51
+ db "up on the rooftop", $4f
+ db "every so often.", $51
+ db "Could I get your", $4f
+ db "phone number?", $51
+ db "I'll call you when", $4f
+ db "they have a sale.", $57
+; 0xa426a
+
+UnknownText_0xa426a: ; 0xa426a
+ db $0, "If you give me", $4f
+ db "your number, I'll", $51
+ db "call you when they", $4f
+ db "have a sale.", $57
+; 0xa42ab
+
+UnknownText_0xa42ab: ; 0xa42ab
+ db $0, "I check GOLDENROD", $4f
+ db "DEPT.STORE every", $51
+ db "day, so I know", $4f
+ db "when there's a", $55
+ db "sale.", $57
+; 0xa42f2
+
+UnknownText_0xa42f2: ; 0xa42f2
+ db $0, "Anyway…", $51
+ db "If you're short on", $4f
+ db "money, take down", $55
+ db "my number.", $51
+ db "I'll call you when", $4f
+ db "there's a sale.", $57
+; 0xa434a
+
+UnknownText_0xa434a: ; 0xa434a
+ db $0, "Your phone doesn't", $4f
+ db "have enough memory", $55
+ db "for more numbers.", $57
+; 0xa4382
+
+UnknownText_0xa4382: ; 0xa4382
+ db $0, "I waited for you!", $4f
+ db "I even cut back my", $51
+ db "shopping to raise", $4f
+ db "my #MON better!", $57
+; 0xa43ca
+
+UnknownText_0xa43ca: ; 0xa43ca
+ db $0, "Shopping under the", $4f
+ db "sky!", $51
+ db "It feels so nice", $4f
+ db "up on a rooftop.", $57
+; 0xa4405
+
+UnknownText_0xa4405: ; 0xa4405
+ db $0, "Whenever I see a", $4f
+ db "strong trainer, I", $51
+ db "want to be their", $4f
+ db "cheerleader.", $51
+ db "When I'm on my", $4f
+ db "walk, I sometimes", $55
+ db "pick up items.", $51
+ db "If I get anything,", $4f
+ db "you can have it!", $51
+ db "Want to give me", $4f
+ db "your number?", $51
+ db "I'll call as soon", $4f
+ db "as I get anything.", $57
+; 0xa44db
+
+UnknownText_0xa44db: ; 0xa44db
+ db $0, "If I find an item,", $4f
+ db "you can have it!", $51
+ db "Want to give me", $4f
+ db "your number?", $57
+; 0xa451d
+
+UnknownText_0xa451d: ; 0xa451d
+ db $0, "I'll call as soon", $4f
+ db "as I get anything!", $57
+; 0xa4542
+
+UnknownText_0xa4542: ; 0xa4542
+ db $0, "Is that so? Well,", $4f
+ db "I'll still be", $55
+ db "rooting for you!", $57
+; 0xa4573
+
+UnknownText_0xa4573: ; 0xa4573
+ db $0, "But your phone is", $4f
+ db "all filled up!", $57
+; 0xa4595
+
+UnknownText_0xa4595: ; 0xa4595
+ db $0, "I've been waiting!", $51
+ db "I've gotten a bit", $4f
+ db "better at this!", $57
+; 0xa45c9
+
+UnknownText_0xa45c9: ; 0xa45c9
+ db $0, "So you're finally", $4f
+ db "here!", $51
+ db "I think this will", $4f
+ db "make you happy.", $57
+; 0xa4603
+
+UnknownText_0xa4603: ; 0xa4603
+ db $0, "Your PACK looks", $4f
+ db "completely full.", $51
+ db "I'll have to hold", $4f
+ db "on to this.", $57
+; 0xa4642
+
+UnknownText_0xa4642: ; 0xa4642
+ db $0, "You're the best", $4f
+ db "I've ever battled!", $51
+ db "Huh? You're the", $4f
+ db "one who saved all", $55
+ db "the SLOWPOKE?", $51
+ db "Well, no wonder I", $4f
+ db "couldn't beat you!", $51
+ db "Would it be OK to", $4f
+ db "get your number?", $51
+ db "I don't want to", $4f
+ db "miss anything you", $55
+ db "do from now on!", $57
+; 0xa470b
+
+UnknownText_0xa470b: ; 0xa470b
+ db $0, "You will tell me", $4f
+ db "your phone number?", $57
+; 0xa4730
+
+UnknownText_0xa4730: ; 0xa4730
+ db $0, "Wow! Gee, thanks!", $4f
+ db "Now I can call you", $51
+ db "anytime, whether", $4f
+ db "anything's up or", $51
+ db "not. You know,", $4f
+ db "just to chat!", $57
+; 0xa4794
+
+UnknownText_0xa4794: ; 0xa4794
+ db $0, "Oh, but…", $4f
+ db "I'm not dangerous!", $51
+ db "I just want to", $4f
+ db "call and chat", $51
+ db "about everything", $4f
+ db "and nothing!", $57
+; 0xa47eb
+
+UnknownText_0xa47eb: ; 0xa47eb
+ db $0, "Your phone list is", $4f
+ db "already full…", $51
+ db "You must be really", $4f
+ db "popular…", $57
+; 0xa4829
+
+UnknownText_0xa4829: ; 0xa4829
+ db $0, "Do you get the", $4f
+ db "feeling that there", $51
+ db "are more rare", $4f
+ db "#MON around?", $51
+ db "I'm positive there", $4f
+ db "are, so I look all", $55
+ db "the time.", $51
+ db "If I find one, I", $4f
+ db "want to share the", $51
+ db "good news with", $4f
+ db "everyone I know.", $51
+ db "I know! Give me", $4f
+ db "your phone number.", $57
+; 0xa48fc
+
+UnknownText_0xa48fc: ; 0xa48fc
+ db $0, "I want to let", $4f
+ db "people know if I", $55
+ db "see rare #MON.", $51
+ db "Please give me", $4f
+ db "your phone number!", $57
+; 0xa494d
+
+UnknownText_0xa494d: ; 0xa494d
+ db $0, "If I spot any", $4f
+ db "awesome #MON,", $51
+ db "I'll be sure to", $4f
+ db "give you a call!", $57
+; 0xa498a
+
+UnknownText_0xa498a: ; 0xa498a
+ db $0, "Aww! I want to", $4f
+ db "tell someone about", $55
+ db "my discoveries!", $57
+; 0xa49bd
+
+UnknownText_0xa49bd: ; 0xa49bd
+ db $0, "There's no space", $4f
+ db "for my number.", $51
+ db "If you make room,", $4f
+ db "register me!", $57
+; 0xa49fc
+
+UnknownText_0xa49fc: ; 0xa49fc
+ db $0, "It's my turn to", $4f
+ db "win now!", $51
+ db "I've turned over a", $4f
+ db "new leaf!", $57
+; 0xa4a31
+
+UnknownText_0xa4a31: ; 0xa4a31
+ db $0, "Reading textbooks", $4f
+ db "is worthwhile", $55
+ db "every so often.", $51
+ db "When I'm reading", $4f
+ db "and walking, I", $55
+ db "have to look down.", $51
+ db "So I notice items", $4f
+ db "on the ground.", $51
+ db "Next time I find", $4f
+ db "something, I'll", $55
+ db "give it to you.", $51
+ db "May I have your", $4f
+ db "phone number?", $57
+; 0xa4b03
+
+UnknownText_0xa4b03: ; 0xa4b03
+ db $0, "If I find some-", $4f
+ db "thing, it's yours.", $51
+ db "So may I have your", $4f
+ db "phone number?", $57
+; 0xa4b47
+
+UnknownText_0xa4b47: ; 0xa4b47
+ db $0, "I'll call you as", $4f
+ db "soon as I find", $51
+ db "something. You can", $4f
+ db "count on it!", $57
+; 0xa4b87
+
+UnknownText_0xa4b87: ; 0xa4b87
+ db $0, "Oh… I thought it", $4f
+ db "would be a good", $51
+ db "break to call you", $4f
+ db "when I'm studying…", $57
+; 0xa4bcd
+
+UnknownText_0xa4bcd: ; 0xa4bcd
+ db $0, "There's no room", $4f
+ db "for my number.", $57
+; 0xa4bec
+
+UnknownText_0xa4bec: ; 0xa4bec
+ db $0, "I waited around", $4f
+ db "for you!", $51
+ db "I'm thoroughly", $4f
+ db "prepared today!", $57
+; 0xa4c24
+
+UnknownText_0xa4c24: ; 0xa4c24
+ db $0, "This, this! This", $4f
+ db "is yours! Ta-da!", $57
+; 0xa4c47
+
+UnknownText_0xa4c47: ; 0xa4c47
+ db $0, "Whoops!", $51
+ db "You can't carry", $4f
+ db "any more items!", $51
+ db "I'll hold it until", $4f
+ db "next time.", $57
+; 0xa4c8c
+
+UnknownText_0xa4c8c: ; 0xa4c8c
+ db $0, "You're really good", $4f
+ db "at #MON!", $51
+ db "Boys give me items", $4f
+ db "after battles, but", $51
+ db "sometimes they", $4f
+ db "give me too much.", $51
+ db "Next time, I can", $4f
+ db "share some if you", $51
+ db "want. Let me get", $4f
+ db "your phone number.", $57
+; 0xa4d36
+
+UnknownText_0xa4d36: ; 0xa4d36
+ db $0, "I'll share my", $4f
+ db "gifts with you.", $51
+ db "Let me get your", $4f
+ db "phone number.", $57
+; 0xa4d72
+
+UnknownText_0xa4d72: ; 0xa4d72
+ db $0, "Next time a boy", $4f
+ db "gives me something", $51
+ db "after a battle,", $4f
+ db "I'll share some!", $51
+ db "Does that make me", $4f
+ db "bad?", $57
+; 0xa4dcd
+
+UnknownText_0xa4dcd: ; 0xa4dcd
+ db $0, "Aww, you don't", $4f
+ db "want anything?", $51
+ db "But it's all for", $4f
+ db "free…", $57
+; 0xa4e01
+
+UnknownText_0xa4e01: ; 0xa4e01
+ db $0, "But your phone's", $4f
+ db "out of memory!", $57
+; 0xa4e21
+
+UnknownText_0xa4e21: ; 0xa4e21
+ db $0, "You're really", $4f
+ db "late!", $51
+ db "I'm eager to get", $4f
+ db "going!", $57
+; 0xa4e4c
+
+UnknownText_0xa4e4c: ; 0xa4e4c
+ db $0, "Hi! Are you here", $4f
+ db "for your gift?", $51
+ db "This should really", $4f
+ db "make your day!", $57
+; 0xa4e8f
+
+UnknownText_0xa4e8f: ; 0xa4e8f
+ db $0, "Where are you", $4f
+ db "going to put this?", $51
+ db "I'll keep it, so", $4f
+ db "come get it later!", $57
+; 0xa4ed4
+
+UnknownText_0xa4ed4: ; 0xa4ed4
+ db $0, "Huh? Is that thing", $4f
+ db "a #DEX? Have", $55
+ db "you met PROF.OAK?", $51
+ db "Huh? You have? ", $4f
+ db "That's way cool!", $51
+ db "I have a dream of", $4f
+ db "becoming a #MON", $51
+ db "researcher like", $4f
+ db "PROF.OAK.", $51
+ db "May I please have", $4f
+ db "your phone number?", $51
+ db "We should chat", $4f
+ db "about PROF.OAK.", $51
+ db "I'm sure it will", $4f
+ db "be loads of fun!", $57
+; 0xa4fc8
+
+UnknownText_0xa4fc8: ; 0xa4fc8
+ db $0, "May I please have", $4f
+ db "your phone number?", $51
+ db "We should chat", $4f
+ db "about PROF.OAK.", $51
+ db "I'm sure it will", $4f
+ db "be loads of fun!", $57
+; 0xa502e
+
+UnknownText_0xa502e: ; 0xa502e
+ db $0, "You must listen to", $4f
+ db "PROF.OAK'S #MON", $55
+ db "TALK, right?", $57
+; 0xa505f
+
+UnknownText_0xa505f: ; 0xa505f
+ db $0, "Oh… I wish I had a", $4f
+ db "chance to meet", $55
+ db "PROF.OAK…", $57
+; 0xa508c
+
+UnknownText_0xa508c: ; 0xa508c
+ db $0, "Your phone list is", $4f
+ db "completely full!", $57
+; 0xa50b1
+
+UnknownText_0xa50b1: ; 0xa50b1
+ db $0, "I've been waiting!", $4f
+ db "Let's battle now!", $57
+; 0xa50d5
+
+UnknownText_0xa50d5: ; 0xa50d5
+ db $0, "Oh, wow! PIKACHU!", $4f
+ db "It's so soft and", $55
+ db "furry! How cute!", $51
+ db "Let's be friends!", $4f
+ db "PIKACHU-lovers are", $55
+ db "never bad people!", $51
+ db "Let's chat about", $4f
+ db "PIKACHU!", $51
+ db "Can I get your", $4f
+ db "phone number?", $57
+; 0xa5175
+
+UnknownText_0xa5175: ; 0xa5175
+ db $0, "Let's chat about", $4f
+ db "PIKACHU!", $51
+ db "Can I get your", $4f
+ db "phone number?", $57
+; 0xa51ac
+
+UnknownText_0xa51ac: ; 0xa51ac
+ db $0, "PIKACHU is the", $4f
+ db "one! If anything", $51
+ db "comes up, I'll", $4f
+ db "give you a jingle.", $57
+; 0xa51ee
+
+UnknownText_0xa51ee: ; 0xa51ee
+ db $0, "You…", $51
+ db "I bet you don't", $4f
+ db "even like PIKACHU…", $57
+; 0xa5216
+
+UnknownText_0xa5216: ; 0xa5216
+ db $0, "Wait a sec! Your", $4f
+ db "phone list's full!", $57
+; 0xa523a
+
+UnknownText_0xa523a: ; 0xa523a
+ db $0, "I've been looking", $4f
+ db "for you! Here, see", $55
+ db "this? This is it!", $51
+ db "I'm certain your", $4f
+ db "PIKACHU will love", $55
+ db "my gift too!", $57
+; 0xa52a0
+
+UnknownText_0xa52a0: ; 0xa52a0
+ db $0, "Uh-oh, too bad.", $4f
+ db "You don't have any", $51
+ db "room. Be sure to", $4f
+ db "get it later.", $57
+; 0xa52e2
+
+UnknownText_0xa52e2: ; 0xa52e2
+ db $0, "Hey, you're trying", $4f
+ db "to be the ultimate", $51
+ db "trainer too? Then", $4f
+ db "we're comrades!", $51
+ db "If I find any more", $4f
+ db "items by the", $51
+ db "water, I'll give", $4f
+ db "you some.", $51
+ db "Just give me your", $4f
+ db "phone number.", $57
+; 0xa5383
+
+UnknownText_0xa5383: ; 0xa5383
+ db $0, "If I find any more", $4f
+ db "items by the", $51
+ db "water, I'll give", $4f
+ db "you some.", $51
+ db "Just give me your", $4f
+ db "phone number.", $57
+; 0xa53de
+
+UnknownText_0xa53de: ; 0xa53de
+ db $0, "You'll be hearing", $4f
+ db "from me if I find", $55
+ db "something good.", $57
+; 0xa5412
+
+UnknownText_0xa5412: ; 0xa5412
+ db $0, "Is that so? Then", $4f
+ db "I'll just have to", $55
+ db "use them myself.", $57
+; 0xa5446
+
+UnknownText_0xa5446: ; 0xa5446
+ db $0, "Your phone list is", $4f
+ db "all filled up.", $51
+ db "Come back if you", $4f
+ db "make room for me.", $57
+; 0xa548c
+
+UnknownText_0xa548c: ; 0xa548c
+ db $0, "I've been doing", $4f
+ db "more than just", $51
+ db "fishing since we", $4f
+ db "last met.", $51
+ db "You're in for a", $4f
+ db "big surprise!", $57
+; 0xa54e3
+
+UnknownText_0xa54e3: ; 0xa54e3
+ db $0, "Hey, there you", $4f
+ db "are!", $51
+ db "Here's a gift, as", $4f
+ db "promised!", $57
+; 0xa5513
+
+UnknownText_0xa5513: ; 0xa5513
+ db $0, "Your PACK's full?", $51
+ db "Come back later--", $4f
+ db "that'll do it.", $57
+; 0xa5545
+
+UnknownText_0xa5545: ; 0xa5545
+ db $0, "By the way, you're", $4f
+ db "a #MANIAC…", $51
+ db "I can tell.", $4f
+ db "Yes, you are.", $51
+ db "But your knowledge", $4f
+ db "is shallow still!", $51
+ db "Do you know BILL?", $4f
+ db "He's an incredible", $51
+ db "#MANIAC.", $4f
+ db "I revere him.", $51
+ db "I'll teach you all", $4f
+ db "I know about BILL,", $51
+ db "so leave me your", $4f
+ db "phone number.", $57
+; 0xa5621
+
+UnknownText_0xa5621: ; 0xa5621
+ db $0, "I'll teach you all", $4f
+ db "I know about BILL,", $51
+ db "so leave me your", $4f
+ db "phone number.", $57
+; 0xa5666
+
+UnknownText_0xa5666: ; 0xa5666
+ db $0, "BILL--he's more", $4f
+ db "than amazing!", $51
+ db "To be a #MANIAC", $4f
+ db "like him someday…", $51
+ db "That's my dream.", $57
+; 0xa56b6
+
+UnknownText_0xa56b6: ; 0xa56b6
+ db $0, "You're going to", $4f
+ db "regret it…", $51
+ db "And I won't care…", $57
+; 0xa56e2
+
+UnknownText_0xa56e2: ; 0xa56e2
+ db $0, "Huh? Your phone", $4f
+ db "list's full.", $51
+ db "A #MANIAC has", $4f
+ db "to be more tidy!", $57
+; 0xa571e
+
+UnknownText_0xa571e: ; 0xa571e
+ db $0, "I've been waiting.", $51
+ db "Look, check out my", $4f
+ db "#MON!", $57
+; 0xa574a
+
+UnknownText_0xa574a: ; 0xa574a
+ db $0, "Hi! You like", $4f
+ db "CLEFAIRY too?", $51
+ db "They're so very", $4f
+ db "cute, aren't they?", $51
+ db "I think we can be", $4f
+ db "good friends!", $51
+ db "I want to know", $4f
+ db "your phone number!", $51
+ db "Let's talk about", $4f
+ db "CLEFAIRY!", $57
+; 0xa57e3
+
+UnknownText_0xa57e3: ; 0xa57e3
+ db $0, "I want to know", $4f
+ db "your phone number!", $51
+ db "Let's talk about", $4f
+ db "CLEFAIRY!", $57
+; 0xa5820
+
+UnknownText_0xa5820: ; 0xa5820
+ db $0, "Isn't my CLEFAIRY", $4f
+ db "super-adorable?", $57
+; 0xa5842
+
+UnknownText_0xa5842: ; 0xa5842
+ db $0, "Aww… Oh well.", $4f
+ db "Look for me if you", $51
+ db "want to talk about", $4f
+ db "CLEFAIRY.", $57
+; 0xa5881
+
+UnknownText_0xa5881: ; 0xa5881
+ db $0, "Oh? Your phone", $4f
+ db "registry is full.", $57
+; 0xa58a3
+
+UnknownText_0xa58a3: ; 0xa58a3
+ db $0, "There you are!", $51
+ db "CLEFAIRY, I want", $4f
+ db "you to try hard!", $57
+; 0xa58d5
+
+UnknownText_0xa58d5: ; 0xa58d5
+ db $0, "You took a long", $4f
+ db "time. See this?", $51
+ db "Isn't it cute?", $4f
+ db "It's a PINK BOW.", $57
+; 0xa5914
+
+UnknownText_0xa5914: ; 0xa5914
+ db $0, "Uh-oh. Your PACK", $4f
+ db "is crammed full.", $57
+; 0xa5937
+
+UnknownText_0xa5937: ; 0xa5937
+ db $0, "You know, you are", $4f
+ db "really strong.", $51
+ db "But I don't want", $4f
+ db "to just slink off…", $51
+ db "I know! Could I", $4f
+ db "get your number?", $51
+ db "Let's meet up for", $4f
+ db "more battles!", $57
+; 0xa59bc
+
+UnknownText_0xa59bc: ; 0xa59bc
+ db $0, "I want to battle", $4f
+ db "tough trainers as", $55
+ db "often as I can!", $51
+ db "Could I get your", $4f
+ db "number?", $51
+ db "Let's meet up for", $4f
+ db "more battles!", $57
+; 0xa5a28
+
+UnknownText_0xa5a28: ; 0xa5a28
+ db $0, "Don't forget to", $4f
+ db "come see me when I", $55
+ db "challenge you!", $57
+; 0xa5a5a
+
+UnknownText_0xa5a5a: ; 0xa5a5a
+ db $0, "A bird-user friend", $4f
+ db "isn't a bad thing", $55
+ db "to have, I think…", $51
+ db "Won't you", $4f
+ db "reconsider?", $57
+; 0xa5aa6
+
+UnknownText_0xa5aa6: ; 0xa5aa6
+ db $0, "Your phone's out", $4f
+ db "of memory. Delete", $55
+ db "a number for me!", $57
+; 0xa5ada
+
+UnknownText_0xa5ada: ; 0xa5ada
+ db $0, "Am I happy to see", $4f
+ db "you! I won't lose!", $57
+; 0xa5aff
+
+UnknownText_0xa5aff: ; 0xa5aff
+ db $0, "Oh, too bad. You", $4f
+ db "don't have room.", $51
+ db "I'll give it to", $4f
+ db "you next time!", $57
+; 0xa5b3f
+
+UnknownText_0xa5b3f: ; 0xa5b3f
+ db $0, "You are really,", $4f
+ db "really strong!", $51
+ db "Thanks for taking", $4f
+ db "me on so often--I", $51
+ db "learned a whole", $4f
+ db "lot from you.", $51
+ db "I know! This will", $4f
+ db "do as my thanks!", $57
+; 0xa5bc4
+
+UnknownText_0xa5bc4: ; 0xa5bc4
+ db $0, "Eh, our battle was", $4f
+ db "fun, I'd say…", $51
+ db "When I'm fishing,", $4f
+ db "I sometimes snag", $51
+ db "items that people", $4f
+ db "have dropped.", $51
+ db "Do you want them?", $4f
+ db "What's the number?", $57
+; 0xa5c4b
+
+UnknownText_0xa5c4b: ; 0xa5c4b
+ db $0, "If I snag an item", $4f
+ db "while I'm fishing,", $51
+ db "it's yours. What's", $4f
+ db "your number?", $57
+; 0xa5c8e
+
+UnknownText_0xa5c8e: ; 0xa5c8e
+ db $0, "If I snag anything", $4f
+ db "good, I'll be sure", $55
+ db "to let you know.", $57
+; 0xa5cc5
+
+UnknownText_0xa5cc5: ; 0xa5cc5
+ db $0, "All right… Come", $4f
+ db "back if you have a", $55
+ db "change of heart.", $57
+; 0xa5cfa
+
+UnknownText_0xa5cfa: ; 0xa5cfa
+ db $0, "You can't register", $4f
+ db "another number.", $57
+; 0xa5d1d
+
+UnknownText_0xa5d1d: ; 0xa5d1d
+ db $0, "Argh! You startled", $4f
+ db "POLIWAG into", $55
+ db "fleeing again!", $57
+; 0xa5d4d
+
+UnknownText_0xa5d4d: ; 0xa5d4d
+ db $0, "So here you are.", $51
+ db "See this?", $4f
+ db "I snagged it just", $51
+ db "a little while", $4f
+ db "ago. It's yours.", $57
+; 0xa5d9a
+
+UnknownText_0xa5d9a: ; 0xa5d9a
+ db $0, "Your PACK's full?", $51
+ db "I'll give it to", $4f
+ db "you later.", $57
+; 0xa5dc6
+
+UnknownText_0xa5dc6: ; 0xa5dc6
+ db $0, "Our battle was", $4f
+ db "remarkable!", $51
+ db "I wish for some-", $4f
+ db "thing to remember", $55
+ db "you by!", $51
+ db "Perhaps your phone", $4f
+ db "number will do?", $51
+ db "My training makes", $4f
+ db "it impossible to", $55
+ db "chat much, but…", $57
+; 0xa5e63
+
+UnknownText_0xa5e63: ; 0xa5e63
+ db $0, "My training makes", $4f
+ db "chatting tough,", $51
+ db "but will you take", $4f
+ db "down my number?", $57
+; 0xa5ea8
+
+UnknownText_0xa5ea8: ; 0xa5ea8
+ db $0, "I must train", $4f
+ db "harder to become", $55
+ db "the mightiest!", $57
+; 0xa5ed6
+
+UnknownText_0xa5ed6: ; 0xa5ed6
+ db $0, "If you decide you", $4f
+ db "want my number,", $55
+ db "come see me.", $57
+; 0xa5f06
+
+UnknownText_0xa5f06: ; 0xa5f06
+ db $0, "Your phone appears", $4f
+ db "to be full.", $51
+ db "Come back later!", $57
+; 0xa5f37
+
+UnknownText_0xa5f37: ; 0xa5f37
+ db $0, "I wish to thank", $4f
+ db "you, ", $52, "!", $51
+ db "I've been training", $4f
+ db "all alone…", $51
+ db "I was happy that", $4f
+ db "you cared to call…", $51
+ db "I want you to have", $4f
+ db "this!", $57
+; 0xa5faa
+
+UnknownText_0xa5faa: ; 0xa5faa
+ db $0, "Your strength will", $4f
+ db "not let you carry", $51
+ db "another thing!", $4f
+ db "I will hold this", $51
+ db "till you lighten", $4f
+ db "your PACK!", $57
+; 0xa600c
+
+UnknownText_0xa600c: ; 0xa600c
+ db $0, "Sheesh, the way", $4f
+ db "you attacked! That", $51
+ db "was something! We", $4f
+ db "should meet again!", $51
+ db "How about giving", $4f
+ db "me your number?", $57
+; 0xa6076
+
+UnknownText_0xa6076: ; 0xa6076
+ db $0, "So you want to", $4f
+ db "register my phone", $51
+ db "number for a re-", $4f
+ db "match, huh?", $57
+; 0xa60b5
+
+UnknownText_0xa60b5: ; 0xa60b5
+ db $0, "I'll call you", $4f
+ db "whenever I feel", $55
+ db "like battling!", $57
+; 0xa60e2
+
+UnknownText_0xa60e2: ; 0xa60e2
+ db $0, "No? That's fine.", $51
+ db "A definite no is", $4f
+ db "easy to take!", $51
+ db "I'll be right here", $4f
+ db "when you're ready", $55
+ db "for a rematch.", $57
+; 0xa6144
+
+UnknownText_0xa6144: ; 0xa6144
+ db $0, "Oh? There's no", $4f
+ db "room to register", $55
+ db "my phone number.", $57
+; 0xa6175
+
+UnknownText_0xa6175: ; 0xa6175
+ db $0, "Hey, here comes", $4f
+ db "the kid! Let's go!", $51
+ db "Ready for my usual", $4f
+ db "no-brainer, all-", $55
+ db "out offense?", $57
+; 0xa61c9
+
+UnknownText_0xa61c9: ; 0xa61c9
+ db $0, "Your PACK looks", $4f
+ db "stuffed full!", $51
+ db "You can't have", $4f
+ db "this now.", $57
+; 0xa6200
+
+UnknownText_0xa6200: ; 0xa6200
+ db $0, "Well, you're", $4f
+ db "special all right.", $51
+ db "If only I'd begun", $4f
+ db "#MON when I was", $55
+ db "a tad younger…", $51
+ db "I want you to work", $4f
+ db "and succeed for", $51
+ db "the both of us.", $4f
+ db "So take this, OK?", $57
+; 0xa6295
+
+UnknownText_0xa6295: ; 0xa6295
+ db $0, "It really made me", $4f
+ db "angry to lose.", $51
+ db "I'll have to train", $4f
+ db "much harder…", $51
+ db "Here's my number.", $4f
+ db "I'm ERIN--don't", $51
+ db "forget! Want to", $4f
+ db "battle me again?", $57
+; 0xa6316
+
+UnknownText_0xa6316: ; 0xa6316
+ db $0, "I want to battle", $4f
+ db "with you again.", $51
+ db "Do you want to", $4f
+ db "exchange numbers?", $57
+; 0xa6359
+
+UnknownText_0xa6359: ; 0xa6359
+ db $0, "I'll remember to", $4f
+ db "call when I want", $55
+ db "to battle again!", $57
+; 0xa638c
+
+UnknownText_0xa638c: ; 0xa638c
+ db $0, "Oh… I'm sad…", $4f
+ db "If you do want to", $51
+ db "battle, come see", $4f
+ db "ERIN--that's me!", $57
+; 0xa63cc
+
+UnknownText_0xa63cc: ; 0xa63cc
+ db $0, "Oh no. Your phone", $4f
+ db "is all filled up.", $57
+; 0xa63f1
+
+UnknownText_0xa63f1: ; 0xa63f1
+ db $0, "Yay! I waited!", $4f
+ db "Let's start now!", $57
+; 0xa6411
+
+UnknownText_0xa6411: ; 0xa6411
+ db $0, "That's too bad!", $4f
+ db "You have no room…", $51
+ db "I'll give it to", $4f
+ db "you another time.", $57
+; 0xa6454
+
+UnknownText_0xa6454: ; 0xa6454
+ db $0, "Aww… I lost again!", $51
+ db "I wonder how many", $4f
+ db "times that is…", $51
+ db "Thanks for coming!", $4f
+ db "Here's a present!", $57
+; 0xa64ad
--- /dev/null
+++ b/text/phone/extra3.asm
@@ -1,0 +1,1474 @@
+
+UnknownText_0x174000: ; 0x174000
+ db $0, "Hi, ", $14, "!", $4f
+ db "Our BICYCLE sales", $51
+ db "have gone through", $4f
+ db "the roof!", $51
+ db "We owe it all to", $4f
+ db "your advertising", $51
+ db "by riding around", $4f
+ db "on our BICYCLE.", $51
+ db "As our way of say-", $4f
+ db "ing thanks, please", $51
+ db "keep that BICYCLE.", $4f
+ db "Thanks again!", $57
+; 0x1740c0
+
+UnknownText_0x1740c0: ; 0x1740c0
+ db $0, "My @"
+ text_from_ram $d0ac
+ db $0, "'s", $4f
+ db "intelligence keeps", $51
+ db "rising. It might", $4f
+ db "be smarter than", $55
+ db "yours!", $57
+; 0x174106
+
+UnknownText_0x174106: ; 0x174106
+ db $0, "The other day, I", $4f
+ db "easily defeated a", $55
+ db "@"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "I think swapping", $4f
+ db "tips with you is", $55
+ db "starting to help.", $57
+; 0x174165
+
+UnknownText_0x174165: ; 0x174165
+ db $0, "Oh, and listen.", $4f
+ db "I missed catching", $51
+ db "a @"
+ text_from_ram $d0ac
+ db $0, " by", $4f
+ db "just a tiny bit.", $51
+ db "If I'd been a bit", $4f
+ db "more informed, I'm", $51
+ db "sure I would've", $4f
+ db "caught it…", $57
+; 0x1741e1
+
+UnknownText_0x1741e1: ; 0x1741e1
+ db $0, "Do you want to", $4f
+ db "battle? I'll show", $51
+ db "you how to battle", $4f
+ db "logically.", $51
+ db "I'll be in", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "Give me a shout if", $4f
+ db "you're nearby.", $57
+; 0x174251
+
+UnknownText_0x174251: ; 0x174251
+ db $0, "See you later!", $57
+; 0x174261
+
+UnknownText_0x174261: ; 0x174261
+ db $0, "Did you know?", $51
+ db "When it's raining,", $4f
+ db "THUNDER is sure to", $55
+ db "strike.", $57
+; 0x17429d
+
+UnknownText_0x17429d: ; 0x17429d
+ db $0, "Did you know…?", $51
+ db "If you use DEFENSE", $4f
+ db "CURL, ROLLOUT's", $51
+ db "power goes way up", $4f
+ db "past normal.", $57
+; 0x1742ee
+
+UnknownText_0x1742ee: ; 0x1742ee
+ db $0, "Did you know…?", $51
+ db "If the sunlight is", $4f
+ db "harsh, SOLARBEAM", $51
+ db "doesn't need to be", $4f
+ db "charged up.", $57
+; 0x174340
+
+UnknownText_0x174340: ; 0x174340
+ db $0, "Did you know…?", $51
+ db "If the opponent", $4f
+ db "uses MINIMIZE,", $51
+ db "your STOMP becomes", $4f
+ db "more powerful.", $57
+; 0x174391
+
+UnknownText_0x174391: ; 0x174391
+ db $0, "Did you know…?", $51
+ db "If your opponent", $4f
+ db "is FLYing, your", $51
+ db "GUST becomes much", $4f
+ db "more powerful.", $57
+; 0x1743e3
+
+UnknownText_0x1743e3: ; 0x1743e3
+ db $0, "Did you know…?", $51
+ db "If your opponent", $4f
+ db "is FLYing, your", $51
+ db "TWISTER becomes", $4f
+ db "more powerful.", $57
+; 0x174433
+
+UnknownText_0x174433: ; 0x174433
+ db $0, "Did you know…?", $51
+ db "If your opponent", $4f
+ db "uses DIG, your", $51
+ db "EARTHQUAKE becomes", $4f
+ db "more powerful.", $57
+; 0x174485
+
+UnknownText_0x174485: ; 0x174485
+ db $0, "Did you know…?", $51
+ db "If your opponent", $4f
+ db "uses DIG, your", $51
+ db "MAGNITUDE becomes", $4f
+ db "more powerful.", $57
+; 0x1744d6
+
+UnknownText_0x1744d6: ; 0x1744d6
+ db $0, "Did you know…?", $51
+ db "The rock, ground", $4f
+ db "and steel types", $51
+ db "can't be hurt by", $4f
+ db "SANDSTORM.", $57
+; 0x174522
+
+UnknownText_0x174522: ; 0x174522
+ db $0, "Did you know…?", $51
+ db "If the sunlight is", $4f
+ db "harsh, water-type", $51
+ db "moves become much", $4f
+ db "weaker.", $57
+; 0x174571
+
+UnknownText_0x174571: ; 0x174571
+ db $0, "Did you know…?", $51
+ db "When it's raining,", $4f
+ db "fire-type moves", $51
+ db "become much weaker", $4f
+ db "than usual.", $57
+; 0x1745c2
+
+UnknownText_0x1745c2: ; 0x1745c2
+ db $0, "My friend heard", $4f
+ db "some great tips.", $51
+ db "He's going to let", $4f
+ db "me in on some.", $51
+ db "When he tells me,", $4f
+ db "I'll call right", $55
+ db "away and tell you.", $57
+; 0x174638
+
+UnknownText_0x174638: ; 0x174638
+ db $0, "Hey, ", $14, "!", $51
+ db "Do you remember", $4f
+ db "your promise?", $51
+ db "We have to battle", $4f
+ db "soon!", $51
+ db "I'll be at", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x174688
+
+UnknownText_0x174688: ; 0x174688
+ db $0, "I fancied up my", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, " and", $51
+ db "made it even cuter", $4f
+ db "than before!", $57
+; 0x1746c3
+
+UnknownText_0x1746c3: ; 0x1746c3
+ db $0, "I happened to come", $4f
+ db "across a wild", $55
+ db "SNUBBULL recently.", $51
+ db "My SNUBBULL, I", $4f
+ db "assure you, was", $51
+ db "far cuter than the", $4f
+ db "wild one.", $57
+; 0x174734
+
+UnknownText_0x174734: ; 0x174734
+ db $0, "I happened to see", $4f
+ db "a wild MARILL the", $51
+ db "other day.", $4f
+ db "Or so I thought.", $51
+ db "A closer look", $4f
+ db "showed it was", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, ". I was", $4f
+ db "quite miffed.", $57
+; 0x1747ac
+
+UnknownText_0x1747ac: ; 0x1747ac
+ db $0, "You can expect a", $4f
+ db "call from me.", $57
+; 0x1747cc
+
+UnknownText_0x1747cc: ; 0x1747cc
+ db $0, "My husband got", $4f
+ db "some NUGGETS.", $51
+ db "If you'd like, you", $4f
+ db "could have one as", $51
+ db "thanks for helping", $4f
+ db "me out.", $51
+ db "I'll be at", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "Please come see me", $4f
+ db "when you can.", $57
+; 0x17485b
+
+UnknownText_0x17485b: ; 0x17485b
+ db $0, "Are your #MON", $4f
+ db "in prime form?", $51
+ db "Let's chat about", $4f
+ db "#MON again.", $57
+; 0x174895
+
+UnknownText_0x174895: ; 0x174895
+ db $0, "Pardon?", $4f
+ db "Oh, the NUGGET?", $51
+ db "There's no need to", $4f
+ db "hurry. Come see me", $51
+ db "in @"
+ text_from_ram $d0bf
+ db $0, $4f
+ db "when you can.", $57
+; 0x1748ea
+
+UnknownText_0x1748ea: ; 0x1748ea
+ db $0, "Hey, I challenge", $4f
+ db "you to a battle!", $51
+ db "It won't be like", $4f
+ db "last time!", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, "'s", $4f
+ db "where I'm waiting", $51
+ db "for you. Hustle", $4f
+ db "over here pronto!", $57
+; 0x174962
+
+UnknownText_0x174962: ; 0x174962
+ db $0, "See ya!", $57
+; 0x17496b
+
+UnknownText_0x17496b: ; 0x17496b
+ db $0, "We have to battle", $4f
+ db "again sometime.", $51
+ db "You can bet I'm", $4f
+ db "going to keep", $51
+ db "challenging you", $4f
+ db "till I win.", $57
+; 0x1749c7
+
+UnknownText_0x1749c7: ; 0x1749c7
+ db $0, "Hey, you'd better", $4f
+ db "not have forgotten", $55
+ db "about our battle!", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $51
+ db "Hustle over quick!", $4f
+ db "I'm waiting!", $57
+; 0x174a24
+
+UnknownText_0x174a24: ; 0x174a24
+ db $0, "My @"
+ text_from_ram $d0ac
+ db $0, $4f
+ db "might be greater", $55
+ db "than I imagined.", $51
+ db "I doubt I'll see a", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, " that's", $55
+ db "better than mine.", $57
+; 0x174a80
+
+UnknownText_0x174a80: ; 0x174a80
+ db $0, "Oh, and I managed", $4f
+ db "to barely defeat", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " the", $4f
+ db "other day.", $51
+ db "I've never seen a", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, " get", $55
+ db "that strong…", $51
+ db "You shouldn't let", $4f
+ db "your guard down,", $51
+ db "even against a", $4f
+ db "#MON you're", $55
+ db "used to seeing.", $57
+; 0x174b2d
+
+UnknownText_0x174b2d: ; 0x174b2d
+ db $0, "And a while back,", $4f
+ db "I tried to catch a", $55
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "But it managed to", $4f
+ db "elude me.", $51
+ db "One wrong decision", $4f
+ db "could mean total", $51
+ db "failure… You ought", $4f
+ db "to be careful too.", $57
+; 0x174bc5
+
+UnknownText_0x174bc5: ; 0x174bc5
+ db $0, "Let's battle!", $51
+ db "I'll be waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "Give me a shout", $4f
+ db "when you're close.", $57
+; 0x174c0e
+
+UnknownText_0x174c0e: ; 0x174c0e
+ db $0, "OK, I'll talk to", $4f
+ db "you soon!", $57
+; 0x174c29
+
+UnknownText_0x174c29: ; 0x174c29
+ db $0, "I obsess over how", $4f
+ db "to beat you.", $57
+; 0x174c49
+
+UnknownText_0x174c49: ; 0x174c49
+ db $0, $14, ", why", $4f
+ db "aren't you here?", $51
+ db "I'll take you down", $4f
+ db "with @"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x174c7f
+
+UnknownText_0x174c7f: ; 0x174c7f
+ db $0, "Do you remember my", $4f
+ db "sweet @"
+ text_from_ram $d0ac
+ db $0, "?", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " runs", $4f
+ db "very fast.", $51
+ db "It's exhilarating", $4f
+ db "to ride on its", $51
+ db "back when it", $4f
+ db "really gets going.", $57
+; 0x174cf6
+
+UnknownText_0x174cf6: ; 0x174cf6
+ db $0, "Oh, have you ever", $4f
+ db "seen a @"
+ text_from_ram $d0ac
+ db $0, $55
+ db "before?", $51
+ db "I just battled", $4f
+ db "one…", $51
+ db "It was much faster", $4f
+ db "than I expected.", $51
+ db "I was a little", $4f
+ db "shocked.", $51
+ db "I still won, of", $4f
+ db "course.", $57
+; 0x174d86
+
+UnknownText_0x174d86: ; 0x174d86
+ db $0, "Oh, I just saw a", $4f
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "I was trying to", $4f
+ db "catch it when I", $51
+ db "noticed that I was", $4f
+ db "all out of #", $55
+ db "BALLS.", $51
+ db "If you don't check", $4f
+ db "your items, you", $51
+ db "may run out at the", $4f
+ db "worst time.", $51
+ db "I hope you learn", $4f
+ db "from my mistake.", $57
+; 0x174e4e
+
+UnknownText_0x174e4e: ; 0x174e4e
+ db $0, "Do you want to", $4f
+ db "battle? I'm going", $55
+ db "to win this time!", $51
+ db "I'll be waiting", $4f
+ db "for you around", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $4f
+ db "Look for me, OK?", $57
+; 0x174eb7
+
+UnknownText_0x174eb7: ; 0x174eb7
+ db $0, "OK, bye-bye!", $57
+; 0x174ec5
+
+UnknownText_0x174ec5: ; 0x174ec5
+ db $0, "Let's battle again", $4f
+ db "sometime!", $57
+; 0x174ee2
+
+UnknownText_0x174ee2: ; 0x174ee2
+ db $0, "Um… ", $14, "?", $4f
+ db "What's wrong?", $51
+ db "Did you forget our", $4f
+ db "deal?", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "That's where I'm", $4f
+ db "waiting.", $57
+; 0x174f2f
+
+UnknownText_0x174f2f: ; 0x174f2f
+ db $0, "Hey listen, my", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, "'s stick", $51
+ db "has this really", $4f
+ db "delicious aroma.", $51
+ db "That aroma gets my", $4f
+ db "appetite going!", $57
+; 0x174f90
+
+UnknownText_0x174f90: ; 0x174f90
+ db $0, "A while ago, my", $4f
+ db "FARFETCH'D KO'd", $55
+ db "this @"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "You should have", $4f
+ db "seen FARFETCH'D", $51
+ db "wield that stick.", $4f
+ db "Amazing stuff!", $57
+; 0x174ffd
+
+UnknownText_0x174ffd: ; 0x174ffd
+ db $0, "I ran into a wild", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, "…", $51
+ db "I was trying to", $4f
+ db "catch it, but it", $51
+ db "took off faster", $4f
+ db "than I thought it", $51
+ db "would. It was a", $4f
+ db "bit disappointing.", $57
+; 0x17507d
+
+UnknownText_0x17507d: ; 0x17507d
+ db $0, "Want to battle", $4f
+ db "again?", $51
+ db "For some reason,", $4f
+ db "my FARFETCH'D is", $51
+ db "all worked up and", $4f
+ db "raring to go.", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, "'s", $4f
+ db "where I'm at.", $51
+ db "Keep an eye out", $4f
+ db "for me, OK?", $57
+; 0x175106
+
+UnknownText_0x175106: ; 0x175106
+ db $0, "Be seeing you!", $57
+; 0x175116
+
+UnknownText_0x175116: ; 0x175116
+ db $0, "My FARFETCH'D had", $4f
+ db "something pretty", $55
+ db "in its beak.", $51
+ db "Like I promised,", $4f
+ db "you can have it.", $51
+ db "Catch up to me on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ",", $51
+ db "and I'll let you", $4f
+ db "have it.", $57
+; 0x17519b
+
+UnknownText_0x17519b: ; 0x17519b
+ db $0, "I haven't gotten", $4f
+ db "what I promised", $55
+ db "you yet.", $51
+ db "I'll call you as", $4f
+ db "soon as I get it,", $51
+ db "so could you wait", $4f
+ db "a little longer?", $57
+; 0x17520a
+
+UnknownText_0x17520a: ; 0x17520a
+ db $0, $14, ", could you", $4f
+ db "hurry over?", $51
+ db "FARFETCH'D is", $4f
+ db "agitated.", $51
+ db "If you don't come", $4f
+ db "soon, it might", $51
+ db "smack me with its", $4f
+ db "stick!", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $51
+ db "Please come as", $4f
+ db "soon as you can!", $57
+; 0x17529c
+
+UnknownText_0x17529c: ; 0x17529c
+ db $0, "What's wrong?", $51
+ db "Don't you want", $4f
+ db "this gift?", $51
+ db "Catch up to me on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ",", $51
+ db "and I'll let you", $4f
+ db "have it.", $57
+; 0x1752f5
+
+UnknownText_0x1752f5: ; 0x1752f5
+ db $0, "Listen, dear…", $51
+ db "Do you recall my", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, "?", $51
+ db "Yes, exactly. That", $4f
+ db "lovely @"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "Wouldn't you agree", $4f
+ db "it's a perfect", $55
+ db "match for me?", $57
+; 0x17536b
+
+UnknownText_0x17536b: ; 0x17536b
+ db $0, "Have I ever faced", $4f
+ db "a wild @"
+ text_from_ram $d0ac
+ db $0, "?", $51
+ db "You need to ask?", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " I've", $4f
+ db "beaten on numerous", $55
+ db "occasions!", $57
+; 0x1753c5
+
+UnknownText_0x1753c5: ; 0x1753c5
+ db $0, "Have I ever failed", $4f
+ db "to catch a wild", $55
+ db "#MON?", $51
+ db "You need to ask?", $51
+ db "I would never fail", $4f
+ db "to catch a wild", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, "…", $4f
+ db "Oh! Never mind!", $57
+; 0x17543a
+
+UnknownText_0x17543a: ; 0x17543a
+ db $0, "We are going to", $4f
+ db "battle!", $51
+ db "The place shall be", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $51
+ db "Don't make me", $4f
+ db "wait! Got it?", $57
+; 0x175488
+
+UnknownText_0x175488: ; 0x175488
+ db $0, "Fine, you may go.", $57
+; 0x17549b
+
+UnknownText_0x17549b: ; 0x17549b
+ db $0, "Don't be too proud", $4f
+ db "just because you", $51
+ db "happened to beat", $4f
+ db "me… ", $51
+ db "It was a fluke!", $57
+; 0x1754e5
+
+UnknownText_0x1754e5: ; 0x1754e5
+ db $0, "What are you", $4f
+ db "doing?", $51
+ db "I told you that", $4f
+ db "the place was", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $4f
+ db "Don't try to run!", $57
+; 0x175530
+
+UnknownText_0x175530: ; 0x175530
+ db $0, "My @"
+ text_from_ram $d0ac
+ db $0, "'s", $4f
+ db "looking sharper", $55
+ db "than before!", $51
+ db "I doubt there's a", $4f
+ db "#MON as cool as", $51
+ db "this guy in your", $4f
+ db "party!", $57
+; 0x175591
+
+UnknownText_0x175591: ; 0x175591
+ db $0, "Oh yeah, I took", $4f
+ db "down a @"
+ text_from_ram $d0ac
+ db $0, $51
+ db "in the wild the", $4f
+ db "other day.", $51
+ db "It was a cakewalk.", $4f
+ db "Well, I guess it", $51
+ db "can't be helped,", $4f
+ db "us being so tough.", $57
+; 0x175611
+
+UnknownText_0x175611: ; 0x175611
+ db $0, "Oh yeah, I saw a", $4f
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, "!", $51
+ db "I thought about", $4f
+ db "going for it, but", $51
+ db "I decided to work", $4f
+ db "with my one-and-", $51
+ db "only right to the", $4f
+ db "extreme end.", $57
+; 0x175693
+
+UnknownText_0x175693: ; 0x175693
+ db $0, "Let's get together", $4f
+ db "and battle!", $51
+ db "I promise things", $4f
+ db "will be different!", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, "'s", $4f
+ db "where I'll be.", $51
+ db "Give me a shout", $4f
+ db "when you come.", $57
+; 0x17570a
+
+UnknownText_0x17570a: ; 0x17570a
+ db $0, "All right. Later!", $57
+; 0x17571d
+
+UnknownText_0x17571d: ; 0x17571d
+ db $0, "I'm checking out", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, "'s moves", $51
+ db "and devising some", $4f
+ db "strategies.", $51
+ db "When I come up", $4f
+ db "with a good one,", $55
+ db "let's battle!", $57
+; 0x175786
+
+UnknownText_0x175786: ; 0x175786
+ db $0, "What's keeping", $4f
+ db "you, ", $52, "!", $51
+ db "Let's get down and", $4f
+ db "battle already!", $51
+ db "I'm waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x1757d4
+
+UnknownText_0x1757d4: ; 0x1757d4
+ db $0, "Are your #MON", $4f
+ db "growing?", $51
+ db "My #MON are", $4f
+ db "growing a bit too", $51
+ db "quickly for me.", $4f
+ db "It's overwhelming!", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, "'s grow-", $4f
+ db "ing especially", $51
+ db "quickly. I think", $4f
+ db "it'll get tough.", $57
+; 0x175869
+
+UnknownText_0x175869: ; 0x175869
+ db $0, "Oh yeah, we KO'd a", $4f
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, $51
+ db "with one hit a", $4f
+ db "while back.", $51
+ db "It went down so", $4f
+ db "easily, I felt a", $51
+ db "little sorry for", $4f
+ db "the poor thing.", $57
+; 0x1758e4
+
+UnknownText_0x1758e4: ; 0x1758e4
+ db $0, "Oh yeah, a wild", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, " got", $51
+ db "away from me at", $4f
+ db "the last second.", $51
+ db "I know it's a", $4f
+ db "common #MON…", $51
+ db "But it does annoy", $4f
+ db "me that it got", $51
+ db "away when I almost", $4f
+ db "had it.", $57
+; 0x175976
+
+UnknownText_0x175976: ; 0x175976
+ db $0, "Do you feel like a", $4f
+ db "#MON battle?", $51
+ db "It won't be like", $4f
+ db "last time!", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, "'s", $4f
+ db "where I'll be.", $51
+ db "Let me know when", $4f
+ db "you get there.", $57
+; 0x1759e7
+
+UnknownText_0x1759e7: ; 0x1759e7
+ db $0, "See you later!", $57
+; 0x1759f7
+
+UnknownText_0x1759f7: ; 0x1759f7
+ db $0, "The Bug-Catching", $4f
+ db "Contest is at the", $51
+ db "NATIONAL PARK", $4f
+ db "today.", $51
+ db "Are you going,", $4f
+ db $14, "?", $51
+ db "I'm trying to make", $4f
+ db "up my mind.", $57
+; 0x175a60
+
+UnknownText_0x175a60: ; 0x175a60
+ db $0, "I found all kinds", $4f
+ db "of BERRIES. If you", $51
+ db "want, I'll share", $4f
+ db "some with you.", $51
+ db "I'll be waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x175abe
+
+UnknownText_0x175abe: ; 0x175abe
+ db $0, "Huh? BERRIES?", $51
+ db "Sorry, I haven't", $4f
+ db "found any yet.", $51
+ db "I'll call you if I", $4f
+ db "find any. Will you", $55
+ db "please wait?", $57
+; 0x175b1e
+
+UnknownText_0x175b1e: ; 0x175b1e
+ db $0, "Let's battle", $4f
+ db "already!", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, " is", $4f
+ db "where I am.", $51
+ db "Please get here as", $4f
+ db "soon as you can!", $57
+; 0x175b6d
+
+UnknownText_0x175b6d: ; 0x175b6d
+ db $0, "How come you're", $4f
+ db "not here yet?", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, " is", $4f
+ db "where I am.", $51
+ db "Please get here as", $4f
+ db "soon as you can!", $57
+; 0x175bc4
+
+UnknownText_0x175bc4: ; 0x175bc4
+ db $0, "I've been spending", $4f
+ db "more time with my", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " than I", $4f
+ db "have with my kids.", $51
+ db "That's a bit sad,", $4f
+ db "actually.", $57
+; 0x175c24
+
+UnknownText_0x175c24: ; 0x175c24
+ db $0, "I just beat a wild", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "I told my kid, but", $4f
+ db "he scoffed that he", $51
+ db "could do the same", $4f
+ db "thing easily.", $51
+ db "Boy, has he gotten", $4f
+ db "cocky…", $57
+; 0x175c9f
+
+UnknownText_0x175c9f: ; 0x175c9f
+ db $0, "Yesterday a wild", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, " slipped", $51
+ db "away from me, in", $4f
+ db "front of my kid.", $51
+ db "I was feeling down", $4f
+ db "about it until he", $51
+ db "shared his #", $4f
+ db "BALLS with me.", $51
+ db "Hahah, that sure", $4f
+ db "made my day!", $57
+; 0x175d40
+
+UnknownText_0x175d40: ; 0x175d40
+ db $0, "What do you say to", $4f
+ db "a battle with me?", $51
+ db "Good, you're going", $4f
+ db "to do it!", $51
+ db "For a kid, you're", $4f
+ db "quite agreeable.", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, " is", $4f
+ db "the spot!", $57
+; 0x175db7
+
+UnknownText_0x175db7: ; 0x175db7
+ db $0, "You call your mom", $4f
+ db "sometimes too!", $57
+; 0x175dd9
+
+UnknownText_0x175dd9: ; 0x175dd9
+ db $0, "Listen, I… Yowch!", $51
+ db "Uh, sorry! See,", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, " are", $51
+ db "biting like there", $4f
+ db "is no tomorrow", $51
+ db "over here on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $51
+ db "Aiyee! Ouch!", $4f
+ db "One jabbed me!", $51
+ db "Heh, they're some", $4f
+ db "kind of feisty!", $51
+ db $14, ", you have", $4f
+ db "to see this rare", $51
+ db "sight! Get ready", $4f
+ db "to fish!", $57
+; 0x175eaf
+
+UnknownText_0x175eaf: ; 0x175eaf
+ db $0, "Yeah, I know.", $51
+ db "You're looking for", $4f
+ db "rare #MON.", $51
+ db "Recently, all I've", $4f
+ db "been catching are", $55
+ db "MAGIKARP, though…", $57
+; 0x175f11
+
+UnknownText_0x175f11: ; 0x175f11
+ db $0, "So where are you?", $4f
+ db "I'm waiting for", $51
+ db "you to show up on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "You shouldn't make", $4f
+ db "your elders wait!", $57
+; 0x175f70
+
+UnknownText_0x175f70: ; 0x175f70
+ db $0, "Hey, what's the", $4f
+ db "matter with you?", $51
+ db "Aren't you coming", $4f
+ db "over to fish for", $55
+ db "QWILFISH?", $51
+ db "I'm on ROUTE 32,", $4f
+ db "so hurry up!", $57
+; 0x175fda
+
+UnknownText_0x175fda: ; 0x175fda
+ db $0, "Oh, you have to", $4f
+ db "hear this.", $51
+ db "My @"
+ text_from_ram $d0ac
+ db $0, " is", $4f
+ db "so adorable!", $51
+ db "It always wants to", $4f
+ db "nuzzle me!", $57
+; 0x17602d
+
+UnknownText_0x17602d: ; 0x17602d
+ db $0, "And, and! Um…", $51
+ db "We beat a wild", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, " with", $51
+ db "just one hit a", $4f
+ db "little while ago.", $51
+ db "We felt sorry for", $4f
+ db "it, though.", $57
+; 0x176095
+
+UnknownText_0x176095: ; 0x176095
+ db $0, "And, and! Uh…", $51
+ db "We just saw a", $4f
+ db "really gorgeous", $55
+ db "@"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "But I was on the", $4f
+ db "phone, so it got", $51
+ db "away. It made us", $4f
+ db "really angry!", $57
+; 0x17610a
+
+UnknownText_0x17610a: ; 0x17610a
+ db $0, "Hi! Do you have", $4f
+ db "some free time?", $51
+ db "I've got all sorts", $4f
+ db "of time. If you're", $51
+ db "free, would you", $4f
+ db "like to battle?", $51
+ db "I'll be waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "Let me know when", $4f
+ db "you get here!", $57
+; 0x1761a7
+
+UnknownText_0x1761a7: ; 0x1761a7
+ db $0, "Hi, TANIA. How are", $4f
+ db "you? This is LIZ.", $51
+ db "I'm fine, but I'm", $4f
+ db "bored silly!", $51
+ db "Huh… Wrong number?", $4f
+ db "Oops! Sorry!", $57
+; 0x17620a
+
+UnknownText_0x17620a: ; 0x17620a
+ db $0, "OK, I'll call you", $4f
+ db "later!", $57
+; 0x176223
+
+UnknownText_0x176223: ; 0x176223
+ db $0, "Listen, listen!", $51
+ db "I was listening to", $4f
+ db "the radio in the", $51
+ db "RUINS OF ALPH when", $4f
+ db "an odd broadcast", $51
+ db "suddenly cut it on", $4f
+ db "the regular show.", $51
+ db "I wonder what it", $4f
+ db "was. So strange!", $57
+; 0x1762c3
+
+UnknownText_0x1762c3: ; 0x1762c3
+ db $0, "Listen, listen!", $51
+ db "Don't you think", $4f
+ db "FALKNER of VIOLET", $51
+ db "GYM is cool and", $4f
+ db "handsome?", $51
+ db "But they say his", $4f
+ db "dad, who's out", $51
+ db "training on the", $4f
+ db "road, is even more", $51
+ db "cool and handsome", $4f
+ db "than FALKNER.", $51
+ db "I wish I could", $4f
+ db "meet him!", $57
+; 0x17638a
+
+UnknownText_0x17638a: ; 0x17638a
+ db $0, "Listen, listen!", $51
+ db "Do you know EARL,", $4f
+ db "the teacher who", $51
+ db "runs the #MON", $4f
+ db "ACADEMY in VIOLET?", $51
+ db "I saw him doing", $4f
+ db "pirouettes while", $51
+ db "he was running. It", $4f
+ db "was wildly funny!", $57
+; 0x176424
+
+UnknownText_0x176424: ; 0x176424
+ db $0, "Listen, listen!", $51
+ db "I collect #MON", $4f
+ db "plush dolls.", $51
+ db "But I can't seem", $4f
+ db "to get a hold of a", $51
+ db "SURF PIKACHU DOLL.", $4f
+ db "None of my friends", $51
+ db "have it. It must", $4f
+ db "be totally rare!", $51
+ db "You could really", $4f
+ db "brag about it if", $55
+ db "you had one.", $57
+; 0x1764eb
+
+UnknownText_0x1764eb: ; 0x1764eb
+ db $0, "Listen, listen!", $51
+ db "Do you know about", $4f
+ db "MOOMOO MILK?", $51
+ db "You can buy it at", $4f
+ db "MOOMOO FARM.", $51
+ db "It's supposed to", $4f
+ db "be good for health", $51
+ db "and beauty.", $4f
+ db "I really want to", $51
+ db "try some. I bet", $4f
+ db "it's delicious!", $57
+; 0x176599
+
+UnknownText_0x176599: ; 0x176599
+ db $0, "Listen, listen!", $51
+ db "There's a #MON", $4f
+ db "SALON in GOLDENROD", $51
+ db "that's run by two", $4f
+ db "brothers.", $51
+ db "The older brother", $4f
+ db "is good, but the", $51
+ db "younger one really", $4f
+ db "isn't.", $51
+ db "But sometimes the", $4f
+ db "younger one does a", $51
+ db "better job than", $4f
+ db "his brother.", $51
+ db "Every time I go, I", $4f
+ db "have a hard time", $51
+ db "trying to decide", $4f
+ db "whom I should use…", $57
+; 0x1766ac
+
+UnknownText_0x1766ac: ; 0x1766ac
+ db $0, "Listen, listen!", $51
+ db "GOLDENROD GYM's", $4f
+ db "WHITNEY began", $51
+ db "battling only a", $4f
+ db "little while ago!", $51
+ db "But the #MON", $4f
+ db "LEAGUE chose her", $55
+ db "as a GYM LEADER!", $51
+ db "I bet she must be", $4f
+ db "totally talented.", $57
+; 0x17674f
+
+UnknownText_0x17674f: ; 0x17674f
+ db $0, "Listen, listen!", $51
+ db "Have you ever", $4f
+ db "taken part in a", $51
+ db "Bug-Catching", $4f
+ db "Contest at the", $55
+ db "NATIONAL PARK?", $51
+ db "I did once, but", $4f
+ db "all I could catch", $55
+ db "was a CATERPIE.", $51
+ db "But guess what!", $51
+ db "I won with that", $4f
+ db "CATERPIE. Isn't", $55
+ db "that great?", $57
+; 0x176816
+
+UnknownText_0x176816: ; 0x176816
+ db $0, "Listen, listen!", $51
+ db "I saw a beautiful", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, "!", $51
+ db "I wish I could", $4f
+ db "become a beautiful", $55
+ db "@"
+ text_from_ram $d0ac
+ db $0, " too.", $57
+; 0x17686d
+
+UnknownText_0x17686d: ; 0x17686d
+ db $0, "Listen, listen!", $51
+ db "Uh… Um… Whoops!", $51
+ db "I forgot what I", $4f
+ db "was going to say!", $57
+; 0x1768b0
+
+UnknownText_0x1768b0: ; 0x1768b0
+ db $0, "Listen, listen!", $51
+ db "My @"
+ text_from_ram $d0ac
+ db $0, "…", $4f
+ db "it… so pretty…", $51
+ db "and… giggle… so", $4f
+ db "awesome… yes… but…", $51
+ db "very much… eeek!", $4f
+ db "And… lovely…", $51
+ db "Just ravishing…", $4f
+ db "Oh, too much!", $51
+ db "…Hug it… sleeping…", $4f
+ db "That's right…", $51
+ db "pretty… sigh… So", $4f
+ db "nice… Cute…", $51
+ db "…Oops! Look at the", $4f
+ db "time! I chatted", $55
+ db "too long!", $51
+ db "I'm sorry I took", $4f
+ db "so much of your", $51
+ db "time!", $4f
+ db "I love chatting!", $57
+; 0x1769da
+
+UnknownText_0x1769da: ; 0x1769da
+ db $0, "I've got too much", $4f
+ db "time on my hands!", $51
+ db "Let's battle right", $4f
+ db "away!", $51
+ db "I'll be waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x176a2f
+
+UnknownText_0x176a2f: ; 0x176a2f
+ db $0, "The other day, I", $4f
+ db "was watching my", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " eat", $4f
+ db "some BERRIES.", $51
+ db "It looked like it", $4f
+ db "was enjoying its", $51
+ db "meal, so I decided", $4f
+ db "to try some.", $51
+ db "I'm not sure if", $4f
+ db "people should eat", $51
+ db "that stuff, but it", $4f
+ db "was delicious!", $57
+; 0x176aef
+
+UnknownText_0x176aef: ; 0x176aef
+ db $0, "Lately, I've been", $4f
+ db "running across", $51
+ db "wild @"
+ text_from_ram $d0ac
+ db $0, $4f
+ db "quite often.", $51
+ db "They're easily", $4f
+ db "taken care of.", $57
+; 0x176b45
+
+UnknownText_0x176b45: ; 0x176b45
+ db $0, "Oh yeah, I was", $4f
+ db "battling this", $51
+ db "@"
+ text_from_ram $d0ac
+ db $0, " the", $4f
+ db "other day…", $51
+ db "It took off when I", $4f
+ db "got distracted by", $55
+ db "a passing BEAUTY.", $51
+ db "Learn from my", $4f
+ db "mistake--always", $51
+ db "stay focused on", $4f
+ db "the job at hand!", $57
+; 0x176bee
+
+UnknownText_0x176bee: ; 0x176bee
+ db $0, "Come on--let's", $4f
+ db "battle right now!", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, " is", $4f
+ db "where I am.", $51
+ db "Come on down if", $4f
+ db "you feel up to it!", $57
+; 0x176c47
+
+UnknownText_0x176c47: ; 0x176c47
+ db $0, "All right then!", $4f
+ db "Be good!", $57
+; 0x176c61
+
+UnknownText_0x176c61: ; 0x176c61
+ db $0, $52, "! It's", $4f
+ db "mind-blowing!", $51
+ db "I took a hike in", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, $55
+ db "yesterday, see?", $51
+ db "Well, there were", $4f
+ db "tons of @"
+ text_from_ram $d0ac
+ db $0, $51
+ db "around! You have", $4f
+ db "to see it!", $51
+ db "I get this feeling", $4f
+ db "that @"
+ text_from_ram $d0ac
+ db $0, $51
+ db "may be timid.", $4f
+ db "I didn't see any", $51
+ db "where there are", $4f
+ db "strong #MON.", $57
+; 0x176d32
+
+UnknownText_0x176d32: ; 0x176d32
+ db $0, "Rare #MON?", $51
+ db "Hey, sorry! I was", $4f
+ db "too focused on my", $51
+ db "hike, so I wasn't", $4f
+ db "paying attention.", $57
+; 0x176d85
+
+UnknownText_0x176d85: ; 0x176d85
+ db $0, "Hello! You haven't", $4f
+ db "forgotten about", $51
+ db "our battle, have", $4f
+ db "you?", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $4f
+ db "I'm waiting!", $57
+; 0x176dd1
+
+UnknownText_0x176dd1: ; 0x176dd1
+ db $0, "Hello? What? Where", $4f
+ db "is DUNSPARCE?", $51
+ db "DARK CAVE! Hurry!", $51
+ db "I know I've said", $4f
+ db "it before, but", $51
+ db "DUNSPARCE don't", $4f
+ db "appear when there", $51
+ db "are strong #MON", $4f
+ db "around.", $57
+; 0x176e5d
+
+UnknownText_0x176e5d: ; 0x176e5d
+ db $0, "My @"
+ text_from_ram $d0ac
+ db $0, " is", $4f
+ db "looking more and", $51
+ db "more like me. It's", $4f
+ db "getting cuter!", $57
+; 0x176e9c
+
+UnknownText_0x176e9c: ; 0x176e9c
+ db $0, "And, you know?", $51
+ db "Now we can KO", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, " easily.", $51
+ db "I should challenge", $4f
+ db "the GOLDENROD GYM.", $57
+; 0x176eee
+
+UnknownText_0x176eee: ; 0x176eee
+ db $0, "And, you know?", $4f
+ db "We just failed to", $51
+ db "beat @"
+ text_from_ram $d0ac
+ db $0, " by", $4f
+ db "a tiny margin.", $51
+ db "I'm guessing my", $4f
+ db "#MON's levels", $51
+ db "aren't high enough", $4f
+ db "yet…", $57
+; 0x176f60
+
+UnknownText_0x176f60: ; 0x176f60
+ db $0, "You must be a lot", $4f
+ db "better now, huh?", $51
+ db "How about showing", $4f
+ db "me your technique", $51
+ db "in a real battle", $4f
+ db "with me?", $51
+ db "I'll be waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x176fdb
+
+UnknownText_0x176fdb: ; 0x176fdb
+ db $0, "See you later!", $57
+; 0x176feb
+
+UnknownText_0x176feb: ; 0x176feb
+ db $0, "This is it--the", $4f
+ db "one we've all been", $55
+ db "waiting for!", $51
+ db "GOLDENROD DEPT.", $4f
+ db "STORE's bargain", $55
+ db "sale is on now!", $51
+ db "Want it cheap?", $4f
+ db "Want it lots?", $51
+ db "Don't miss this", $4f
+ db "GOLDENROD chance!", $51
+ db "Huh? I sound like", $4f
+ db "a huckster?", $51
+ db "Well, yeah. I was", $4f
+ db "mimicking them…", $51
+ db "Anyway, you've got", $4f
+ db "to get there as", $55
+ db "soon as you can!", $57
+; 0x1770fb
+
+UnknownText_0x1770fb: ; 0x1770fb
+ db $0, "I'm saving up for", $4f
+ db "the next bargain", $51
+ db "sale. When's the", $4f
+ db "next one?", $57
+; 0x177138
+
+UnknownText_0x177138: ; 0x177138
+ db $0, "Where are you?", $51
+ db "Let's have our", $4f
+ db "battle soon!", $51
+ db "I'll be waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $57
+; 0x17717c
+
+UnknownText_0x17717c: ; 0x17717c
+ db $0, "Haven't you gone", $4f
+ db "to GOLDENROD DEPT.", $51
+ db "STORE? I've scoped", $4f
+ db "it out already!", $51
+ db "They had some real", $4f
+ db "bargains.", $51
+ db "You should get", $4f
+ db "there quickly.", $57
+; 0x1771fd
+
+UnknownText_0x1771fd: ; 0x1771fd
+ db $0, "My @"
+ text_from_ram $d0ac
+ db $0, " and", $4f
+ db "I are getting more", $51
+ db "in sync with each", $4f
+ db "other.", $57
+; 0x177237
+
+UnknownText_0x177237: ; 0x177237
+ db $0, "We battled a wild", $4f
+ db "@"
+ text_from_ram $d0ac
+ db $0, " and", $51
+ db "managed to drop it", $4f
+ db "in a close match.", $51
+ db "We're getting into", $4f
+ db "the groove!", $57
+; 0x177297
+
+UnknownText_0x177297: ; 0x177297
+ db $0, "But, you know?", $51
+ db "I still haven't", $4f
+ db "caught @"
+ text_from_ram $d0ac
+ db $0, ".", $51
+ db "It's getting past", $4f
+ db "frustrating…", $57
+; 0x1772e2
+
+UnknownText_0x1772e2: ; 0x1772e2
+ db $0, "Would you be my", $4f
+ db "practice partner", $55
+ db "again sometime?", $51
+ db "I'll be waiting on", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, ".", $51
+ db "…Could you take it", $4f
+ db "a little easier on", $55
+ db "me next time?", $57
+; 0x177361
+
+UnknownText_0x177361: ; 0x177361
+ db $0, "Bye! Let's chat", $4f
+ db "again!", $57
+; 0x177378
+
+UnknownText_0x177378: ; 0x177378
+ db $0, "Have you heard", $4f
+ db "about TEAM ROCKET?", $51
+ db "They've taken over", $4f
+ db "the RADIO TOWER in", $55
+ db "GOLDENROD.", $51
+ db "Are the people", $4f
+ db "inside safe?", $57
+; 0x1773e7
+
+UnknownText_0x1773e7: ; 0x1773e7
+ db $0, "I picked up some-", $4f
+ db "thing nice today.", $51
+ db "I want you to have", $4f
+ db "it, so I called!", $51
+ db "You will come for", $4f
+ db "it, won't you?", $51
+ db "@"
+ text_from_ram $d0bf
+ db $0, " is", $4f
+ db "where I am.", $57
+; 0x177465
+
+UnknownText_0x177465: ; 0x177465
+ db $0, "Sorry, I haven't", $4f
+ db "found anything", $51
+ db "useful yet…", $4f
+ db "I promise, if I", $51
+ db "find anything, you", $4f
+ db "can have it!", $57
+; 0x1774c1
+
+UnknownText_0x1774c1: ; 0x1774c1
+ db $0, "Oh, ", $14, "!", $4f
+ db "How soon can I", $51
+ db "expect to see you", $4f
+ db "for our battle?", $51
+ db "Don't forget,", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x17750e
+
+UnknownText_0x17750e: ; 0x17750e
+ db $0, "I'm getting really", $4f
+ db "impatient, waiting", $51
+ db "to give you my", $4f
+ db "present!", $51
+ db "Hurry over to", $4f
+ db "@"
+ text_from_ram $d0bf
+ db $0, "!", $57
+; 0x177561
--- a/tilesets/31_metatiles.bin
+++ b/tilesets/31_metatiles.bin
@@ -1,1 +1,1 @@
- ,-./<=>?**** ,-./<=>? ***&'&'6767&'67&'&'6767&'67&'67***&'67&'67(9&'8:67&'67&'&'6767&'&'6767&'67&'&'6767&'67&'67&'67&'67)**********+** !!! !!! !!!!!!!!!!!!!!!!!!"!!!"!!!"02 !!!0111#$$$#$!!!!1111$$$$$$!!!"1112$$$%$%#$$$#$$$#$34#$$$#$$$#$$$3444$$$$$$$$$$$$4444$$$%$$$%$$$%4445}PP }PP}PPPPPPPP}PP}P&}P,}PPP2}P8}PP@}PPPPH}PPPN}PT}PPY}Pa}Pe}Pk}Pp}Py}P�}P�}PP�}PP�}PP�}PP�}P�}PP�}P�}PPP�}�}P�}P�}P�}P�}PP�}�}P�}PPP�}P�}PPP�}�}P�}P�}~~ ~P~PPP~~PPP#~PPP&~P)~PPPP,~P2~P8~<~PPP>~PPPPC~PPJ~PPQ~PPX~P^~Pe~Pi~PPo~Ps~y~�~�~P�~P�~PPP�~P�~P�~PP�~PP
\ No newline at end of file
+ ,-./<=>?**** ,-./<=>? ***&'&'6767&'67&'&'6767&'67&'67***&'67&'67(9&'8:67&'67&'&'6767&'&'6767&'67&'&'6767&'67&'67&'67&'67)**********+** !!! !!! !!!!!!!!!!!!!!!!!!"!!!"!!!"02 !!!0111#$$$#$!!!!1111$$$$$$!!!"1112$$$%$%#$$$#$$$#$34#$$$#$$$#$$$3444$$$$$$$$$$$$4444$$$%$$$%$$$%4445
\ No newline at end of file
--- a/wram.asm
+++ b/wram.asm
@@ -370,6 +370,7 @@
; bit 3: vram bank (cgb only)
; bit 2-0: pal # (cgb only)
ds 160
+SpritesEnd
TileMap: ; c4a0
; 20x18 grid of 8x8 tiles
@@ -786,8 +787,8 @@
ds 12
SECTION "gfx2",WRAM0[$cd20]
-BGMapBuffer:
-CreditsPos: ; cd20
+CreditsPos:
+BGMapBuffer: ; cd20
ds 2
CreditsTimer: ; cd22
ds 1
@@ -833,16 +834,11 @@
MenuSelection:; cf74
ds 1
- ds 14
-TileY: ; cf82
- ds 1
-TileX: ; cf83
- ds 1
-
-
-SECTION "VBlank",WRAM0[$cfb2]
+SECTION "VBlank",WRAM0[$cfb1]
+OverworldDelay: ; cfb1
+ ds 1
TextDelayFrames: ; cfb2
ds 1
VBlankOccurred: ; cfb3
@@ -929,6 +925,7 @@
CurFruit: ; d03f
ds 1
+MartPointer: ; d040
ds 2
MovementAnimation: ; d042
@@ -984,8 +981,14 @@
; flickers when climbing waterfall
ds 1
- ds 24
+ ds 2
+CurMart: ; d0f0
+ ds 16
+CurMartEnd
+
+ ds 6
+
CurItem: ; d106
ds 1
@@ -1083,8 +1086,13 @@
UsedSprites: ; d154
ds 32
-SECTION "connections",WRAMX[$d1a9],BANK[1]
+SECTION "map",WRAMX[$d1a3],BANK[1]
+MapEventBank: ; d1a3
+ ds 1
+
+ ds 5
+
MapConnections:
NorthMapConnection: ; d1a9
@@ -1195,8 +1203,8 @@
ds 1
-Buffer1:
-MagikarpLength: ; d1ea
+MagikarpLength:
+Buffer1: ; d1ea
ds 1
MovementType:
Buffer2: ; d1eb
@@ -1531,9 +1539,11 @@
ScriptFlags: ; d434
SCRIPT_RUNNING EQU 2
ds 1
+ScriptFlags2: ; d435
+ ds 1
+ScriptFlags3: ; d436
+ ds 1
- ds 2
-
ScriptMode: ; d437
SCRIPT_OFF EQU 0
SCRIPT_READ EQU 1
@@ -1561,17 +1571,19 @@
ds 8
PlayerID: ; d47b
ds 2
+
PlayerName: ; d47d
ds 11
-PlayerNameEnd: ; d488
-
+MomsName: ; d488
ds 11
-
-WRivalName: ; d493
+RivalName: ; d493
ds 11
-WRivalNameEnd: ; d49e
+RedsName: ; d49e
+ ds 11
+GreensName: ; d4a9
+ ds 11
- ds 24
+ ds 2
; init time set at newgame
StartDay: ; d4b6
@@ -1608,8 +1620,10 @@
SATURDAY EQU 6
ds 1
- ds 12
+ ds 10
+ ds 2
+
PlayerSprite: ; d4d8
ds 1
@@ -1695,21 +1709,25 @@
SECTION "Items",WRAMX[$d859],BANK[1]
TMsHMs: ; d859
ds 57
+TMsHMsEnd
NumItems: ; d892
ds 1
Items: ; d893
ds 41
+ItemsEnd
NumKeyItems: ; d8bc
ds 1
KeyItems: ; d8bd
ds 26
+KeyItemsEnd
NumBalls: ; d8d7
ds 1
Balls: ; d8d8
ds 25
+BallsEnd
SECTION "overworld",WRAMX[$d95b],BANK[1]
WhichRegisteredItem: ; d95b