Merge remote-tracking branch 'yenatch/merge-kanzure-again' into master

This commit is contained in:
Bryan Bishop 2013-08-26 11:50:30 -05:00
commit c61b3d42ad
42 changed files with 68341 additions and 4598 deletions

View File

@ -6850,7 +6850,7 @@ Function0x365d7: ; 365d7
ld a, $5
call Function0x3661d
ld hl, $6d45
ld hl, BadgeStatBoosts
call CallBankF
call SwitchTurn
@ -8385,7 +8385,7 @@ BattleCommand98: ; 36f25
; 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 @@ BattleCommand99: ; 36f2f
; doubleundergrounddamage
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call CleanGetBattleVarPair
bit 5, a ; underground
bit SUBSTATUS_UNDERGROUND, a
ret z
; fallthrough
@ -10623,11 +10623,7 @@ BattleCommand6d: ; 37be8
ld a, [AttackMissed]
and a
ret nz
ld a, $3e
ld hl, $7ced
rst FarCall
callba GetHiddenPower
ret
; 37bf4

108
battle/hidden_power.asm Normal file
View File

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

View File

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

View File

@ -36,6 +36,12 @@ dn: MACRO
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_FLAG EQU $03
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
@ -247,6 +268,20 @@ 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
STEP_SLOW EQU 0
STEP_WALK EQU 1

View File

@ -149,7 +149,7 @@ SFX_POKEFLUTE EQU $26
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_MORNING_SUN EQU $8f
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

367
engine/decompress.asm Normal file
View File

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

225
engine/init.asm Normal file
View File

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

View File

@ -103,7 +103,7 @@ Joypad: ; 935
; 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

829
engine/movement.asm Normal file
View File

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

View File

@ -485,11 +485,11 @@ Script_verbosegiveitem: ; 0x96f60
; 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 @@ Script_verbosegiveitem2: ; 0x96f8e
.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 @@ Script_verbosegiveitem2: ; 0x96f8e
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 @@ Script_applymovement: ; 0x971f3
call GetScriptByte
call Unknown_0x971e3
ld c, a
; 971fa
Function971fa: ; 971fa
push bc
ld a, c
ld a, $1
@ -1028,7 +1031,7 @@ Script_applymovement: ; 0x971f3
rst $8
pop bc
push bc
call $7221
call Unknown_0x97221
pop bc
call GetScriptByte
ld l, a
@ -1058,7 +1061,7 @@ Script_applymovement2: ; 0x97228
ld a, [$ffe0]
ld c, a
jp $71fa
jp Function971fa
; 0x9722e
Script_faceplayer: ; 0x9722e
@ -1079,7 +1082,7 @@ Script_faceplayer: ; 0x9722e
ld e, a
ld a, [$ffe0]
ld d, a
call $728b
call Unknown_0x9728b
ret
; 0x97248
@ -1114,7 +1117,7 @@ Script_faceperson: ; 0x97248
add a
ld e, a
ld d, c
call $728b
call Unknown_0x9728b
ret
; 0x97274
@ -1135,7 +1138,7 @@ Script_spriteface: ; 0x97274
add a
add a
ld e, a
call $728b
call Unknown_0x9728b
ret
; 0x9728b
@ -1161,7 +1164,7 @@ Unknown_0x9728b: ; 0x9728b
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_0x9728b: ; 0x9728b
Unknown_0x972bc: ; 0x972bc
call $217a
ld hl, $c4a0
ld hl, TileMap
ld bc, $0168
.asm_972c5
res 7, [hl]
@ -1211,7 +1214,7 @@ Script_appear: ; 0x972dd
call $1956
ld a, [$ffaf]
ld b, $0
call $730b
call Unknown_0x9730b
ret
; 0x972ee
@ -1229,7 +1232,7 @@ Script_disappear: ; 0x972ee
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 @@ Script_returnafterbattle: ; 0x97459
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 @@ Script_random: ; 0x97640
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 @@ Script_checkcode: ; 0x9767d
; variable_id (SingleByteParam)
call GetScriptByte
call $769e
call Unknown_0x9769e
ld a, [de]
ld [$c2dd], a
ret
@ -2039,7 +2040,7 @@ Script_writevarcode: ; 0x97688
; variable_id (SingleByteParam)
call GetScriptByte
call $769e
call Unknown_0x9769e
ld a, [$c2dd]
ld [de], a
ret
@ -2052,7 +2053,7 @@ Script_writecode: ; 0x97693
; value (SingleByteParam)
call GetScriptByte
call $769e
call Unknown_0x9769e
call GetScriptByte
ld [de], a
ret
@ -2096,9 +2097,12 @@ Script_pokenamemem: ; 0x976ae
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 @@ Script_readmoney: ; 0x97732
; 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 @@ Script_readcoins: ; 0x97747
; parameters:
; memory (SingleByteParam)
call $7771
call Unknown_0x97771
ld hl, StringBuffer1
ld de, $d855
ld bc, $4206
@ -2225,7 +2229,7 @@ Script_RAM2MEM: ; 0x9775c
; parameters:
; memory (SingleByteParam)
call $7771
call Unknown_0x97771
ld de, $c2dd
ld hl, StringBuffer1
ld bc, $4103
@ -2372,8 +2376,8 @@ Script_givemoney: ; 0x97829
; 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 @@ Script_takemoney: ; 0x97836
; 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 @@ Script_checkmoney: ; 0x97843
; 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 @@ Script_givecoins: ; 0x97881
; parameters:
; coins (CoinByteParam)
call $78a0
call Function978a0
ld a, $5
ld hl, $606f
rst $8
@ -2463,7 +2467,7 @@ Script_takecoins: ; 0x9788b
; parameters:
; coins (CoinByteParam)
call $78a0
call Function978a0
ld a, $5
ld hl, $608f
rst $8
@ -2475,11 +2479,14 @@ Script_checkcoins: ; 0x97895
; 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 @@ Script_setbit2: ; 0x979bb
call GetScriptByte
ld d, a
ld b, $1
call $79ee
call Unknown_0x979ee
ret
; 0x979c9
@ -2732,7 +2739,7 @@ Script_clearbit2: ; 0x979c9
call GetScriptByte
ld d, a
ld b, $0
call $79ee
call Unknown_0x979ee
ret
; 0x979d7
@ -2746,7 +2753,7 @@ Script_checkbit2: ; 0x979d7
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 @@ Script_writecmdqueue: ; 0x97a8b
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 @@ Script_delcmdqueue: ; 0x97a9e
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 @@ Script_warpcheck: ; 0x97af6
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_newloadmap: ; 0x97b08
Script_reloadandreturn: ; 0x97b16
; script command 0x92
call $7b08
call Script_newloadmap
jp Script_end
; 0x97b1c
@ -3203,8 +3202,9 @@ Script_credits: ; 0x97bf3
ld hl, $6455
rst $8
; fallthrough
DisplayCredits:
call $7bc0
call Script_resetfuncs
ld a, $3
call $261b
call StopScript

1229
engine/text.asm Normal file

File diff suppressed because it is too large Load Diff

View File

@ -71,31 +71,31 @@ VBlank0: ; 2b1
; 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 @@ VBlank0: ; 2b1
.doneframeaction
; oam update off?
ld a, [$ffd8]
ld a, [hOAMUpdate]
and a
jr nz, .vblankoccurred
@ -146,12 +146,12 @@ VBlank0: ; 2b1
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 @@ VBlank0: ; 2b1
rst Bankswitch ; restore bank
;
ld a, [$ff98]
ld a, [hSeconds]
ld [$ffe3], a
ret
@ -183,7 +183,7 @@ VBlank2: ; 325
; sound only
; save bank
ld a, [$ff9d]
ld a, [hROMBank]
ld [$ff8a], a
; update sound
@ -211,15 +211,15 @@ VBlank1: ; 337
; 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 @@ UpdatePals: ; 37f
; update pals for either dmg or cgb
; check cgb
ld a, [$ffe6]
ld a, [hCGB]
and a
jp nz, UpdateCGBPals
@ -319,18 +319,18 @@ VBlank3: ; 396
; 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 @@ VBlank4: ; 3df
; sound
; save bank
ld a, [$ff9d]
ld a, [hROMBank]
ld [$ff8a], a
call UpdateBGMap
@ -451,11 +451,11 @@ VBlank5: ; 400
;
; 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 @@ VBlank6: ; 436
; sound
; save bank
ld a, [$ff9d]
ld a, [hROMBank]
ld [$ff8a], a
; inc frame counter

View File

@ -270,6 +270,7 @@ jap_chars.update({
0xE1: "",
0xE2: "",
0xE3: "",
0xE9: "",
})
#some of the japanese characters can probably fit into the english table

View File

@ -1993,7 +1993,7 @@ movement_command_bases = {
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",

View File

@ -1,25 +1,36 @@
# -*- 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
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']))
def make_sym_from_mapfile(filename = '../pokecrystal.sym', mapfile = '../mapfile.txt'):
# todo: sort label definitions by address
output = ''
# get label definitions
with open(mapfile,'r') as map:
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:
sym.write(output)
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:
@ -27,20 +38,51 @@ def make_sym_from_mapfile(filename = '../pokecrystal.sym', mapfile = '../mapfile
# label definition
elif '=' in line:
thing = line.split('=')
spacing = ' ' * 11 # arbitrary
addr = int(thing[0].lstrip(spacing)[1:5],16)
address, label = line.split('=')
address = int(address.lstrip().replace('$','0x'), 16)
label = label.strip()
# 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
# 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 = ''
labels = read_mapfile()
# convert to sym format (bank:addr label)
label = thing[1].strip('\n')
output += hex(cur_bank)[2:] + ':' + hex(addr)[2:] + ' ' + label + '\n'
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:
@ -48,7 +90,11 @@ def make_sym_from_mapfile(filename = '../pokecrystal.sym', mapfile = '../mapfile
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()

BIN
gfx/frames/1.1bpp Normal file

Binary file not shown.

BIN
gfx/frames/2.1bpp Normal file

Binary file not shown.

BIN
gfx/frames/3.1bpp Normal file

Binary file not shown.

BIN
gfx/frames/4.1bpp Normal file

Binary file not shown.

BIN
gfx/frames/5.1bpp Normal file

Binary file not shown.

BIN
gfx/frames/6.1bpp Normal file

Binary file not shown.

BIN
gfx/frames/7.1bpp Normal file

Binary file not shown.

BIN
gfx/frames/8.1bpp Normal file

Binary file not shown.

BIN
gfx/frames/9.1bpp Normal file

Binary file not shown.

BIN
gfx/misc/copyright.2bpp Normal file

Binary file not shown.

BIN
gfx/misc/johto.bin Normal file

Binary file not shown.

BIN
gfx/misc/kanto.bin Normal file

Binary file not shown.

View File

@ -41,6 +41,11 @@ hMathBuffer EQU $ffb8
hLCDStatCustom EQU $ffc6
hSCX EQU $ffcf
hSCY EQU $ffd0
hWX EQU $ffd1
hWY EQU $ffd2
hBGMapMode EQU $ffd4
hBGMapThird EQU $ffd5
hBGMapAddress EQU $ffd6

View File

@ -402,7 +402,7 @@ ParkBall: ; e8a2
pop hl
ld de, StringBuffer1
call InitString
call InitName
jp $6be2
@ -466,7 +466,7 @@ ParkBall: ; e8a2
ld hl, $b082
ld de, StringBuffer1
call InitString
call InitName
call CloseSRAM
@ -754,6 +754,7 @@ Function_0xed12: ; ed12
ld a, [TempBattleMonSpecies]
cp c
ret nz
push bc
ld a, [TempBattleMonSpecies]
ld [CurPartySpecies], a
@ -764,14 +765,13 @@ Function_0xed12: ; ed12
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 @@ Function_0xed12: ; ed12
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
jr c, .asm_ed62
sla b
ret nc
.asm_ed62
ld b, $ff
ret
@ -1657,34 +1654,25 @@ INCBIN "baserom.gbc", $f652, $f73e - $f652
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

51462
main.asm

File diff suppressed because it is too large Load Diff

View File

@ -64,6 +64,10 @@ UnknownScript_0x19404a: ; 0x19404a
yesorno
iffalse UnknownScript_0x194079
loadmovesprites
; fallthrough
; 0x194053
WateredWeirdTreeScript: ; 0x194053
loadfont
2writetext UnknownText_0x194290
closetext

View File

@ -192,6 +192,7 @@ chars = {
"": 0xE1,
"": 0xE2,
"": 0xE3,
"": 0xE9,
"@": 0x50,
"#": 0x54,

5711
stats/battle_tower.asm Normal file

File diff suppressed because it is too large Load Diff

616
text/battle_tower.asm Normal file
View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1455
text/common_4.asm Normal file

File diff suppressed because it is too large Load Diff

1448
text/phone/extra.asm Normal file

File diff suppressed because it is too large Load Diff

951
text/phone/extra2.asm Normal file
View File

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

1474
text/phone/extra3.asm Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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<50>PP迎PP図PP扶PP孺P。}PP、}Pォ}PPPー}カ}Pシ}Pテ}Pヌ}Pヘ}PPム}ヤ}Pラ}PPPン}P繃PPP<50><7F>P<50>P<50>}~~ ~P~PPP~~PPP#~PPP&~P)~PPPP,~P2~P8~<~PPP>~PPPPC~PPJ~PPQ~PPX~P^~Pe~Pi~PPo~Ps~y~€~нP樫P厨PPP欲P<50>~P「~PPェ~PP
,-./<=>?**** ,-./<=>? ***&'&'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

View File

@ -370,6 +370,7 @@ Sprites: ; c400
; 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 @@ OverworldMapEnd:
ds 12
SECTION "gfx2",WRAM0[$cd20]
BGMapBuffer:
CreditsPos: ; cd20
CreditsPos:
BGMapBuffer: ; cd20
ds 2
CreditsTimer: ; cd22
ds 1
@ -833,16 +834,11 @@ CurSpecies: ; cf60
MenuSelection:; cf74
ds 1
ds 14
TileY: ; cf82
SECTION "VBlank",WRAM0[$cfb1]
OverworldDelay: ; cfb1
ds 1
TileX: ; cf83
ds 1
SECTION "VBlank",WRAM0[$cfb2]
TextDelayFrames: ; cfb2
ds 1
VBlankOccurred: ; cfb3
@ -929,6 +925,7 @@ EngineBuffer1: ; d03e
CurFruit: ; d03f
ds 1
MartPointer: ; d040
ds 2
MovementAnimation: ; d042
@ -984,7 +981,13 @@ VramState: ; d0ed
; flickers when climbing waterfall
ds 1
ds 24
ds 2
CurMart: ; d0f0
ds 16
CurMartEnd
ds 6
CurItem: ; d106
ds 1
@ -1083,7 +1086,12 @@ SECTION "UsedSprites",WRAMX[$d154],BANK[1]
UsedSprites: ; d154
ds 32
SECTION "connections",WRAMX[$d1a9],BANK[1]
SECTION "map",WRAMX[$d1a3],BANK[1]
MapEventBank: ; d1a3
ds 1
ds 5
MapConnections:
@ -1195,8 +1203,8 @@ EvolvableFlags: ; d1e8
ds 1
Buffer1:
MagikarpLength: ; d1ea
MagikarpLength:
Buffer1: ; d1ea
ds 1
MovementType:
Buffer2: ; d1eb
@ -1531,8 +1539,10 @@ SECTION "Scripting",WRAMX[$d434],BANK[1]
ScriptFlags: ; d434
SCRIPT_RUNNING EQU 2
ds 1
ds 2
ScriptFlags2: ; d435
ds 1
ScriptFlags3: ; d436
ds 1
ScriptMode: ; d437
SCRIPT_OFF EQU 0
@ -1561,17 +1571,19 @@ PlayerGender: ; d472
ds 8
PlayerID: ; d47b
ds 2
PlayerName: ; d47d
ds 11
PlayerNameEnd: ; d488
MomsName: ; d488
ds 11
RivalName: ; d493
ds 11
RedsName: ; d49e
ds 11
GreensName: ; d4a9
ds 11
WRivalName: ; d493
ds 11
WRivalNameEnd: ; d49e
ds 24
ds 2
; init time set at newgame
StartDay: ; d4b6
@ -1608,7 +1620,9 @@ FRIDAY EQU 5
SATURDAY EQU 6
ds 1
ds 12
ds 10
ds 2
PlayerSprite: ; d4d8
ds 1
@ -1695,21 +1709,25 @@ KantoBadges: ; d858
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