diff options
author | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
---|---|---|
committer | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
commit | 670fef77ac4d9116d5fdc28c0da40622919a062b (patch) | |
tree | 61c0e925f059404473826ac775305ba5e2706ab1 /constants |
first commit
Diffstat (limited to 'constants')
-rw-r--r-- | constants/battle.inc | 101 | ||||
-rw-r--r-- | constants/battle_move_constants.inc | 15 | ||||
-rw-r--r-- | constants/battle_text.inc | 352 | ||||
-rw-r--r-- | constants/berry_constants.inc | 6 | ||||
-rw-r--r-- | constants/constants.inc | 12 | ||||
-rw-r--r-- | constants/contest_constants.inc | 68 | ||||
-rw-r--r-- | constants/contest_move_effects.inc | 49 | ||||
-rw-r--r-- | constants/gba_constants.inc | 490 | ||||
-rw-r--r-- | constants/item_data_constants.inc | 5 | ||||
-rw-r--r-- | constants/m4a_constants.inc | 199 | ||||
-rw-r--r-- | constants/misc_constants.inc | 51 | ||||
-rw-r--r-- | constants/pokemon_data_constants.inc | 78 | ||||
-rw-r--r-- | constants/trainer_constants.inc | 243 | ||||
-rw-r--r-- | constants/type_constants.inc | 18 | ||||
-rw-r--r-- | constants/variables.inc | 6 | ||||
-rw-r--r-- | constants/version.inc | 91 |
16 files changed, 1784 insertions, 0 deletions
diff --git a/constants/battle.inc b/constants/battle.inc new file mode 100644 index 000000000..94b7a6d48 --- /dev/null +++ b/constants/battle.inc @@ -0,0 +1,101 @@ +@ status 1 +.equiv SLP, 0x07 +.equiv PSN, 0x08 +.equiv BRN, 0x10 +.equiv FRZ, 0x20 +.equiv PAR, 0x40 +.equiv TOX, 0x80 + +@ status 2 +.equiv S_CONFUSED, 0x00000007 +.equiv S_CONTINUE, 0x00001000 +.equiv S_TEMP_TRAP, 0x0000E000 @ Wrap, Bind, etc. +.equiv S_INFATUATED, 0x000F0000 +.equiv S_FOCUS_ENERGY, 0x00100000 +.equiv S_SUBSTITUTE, 0x01000000 +.equiv S_MEAN_LOOK, 0x04000000 +.equiv S_NIGHTMARE, 0x08000000 +.equiv S_CURSED, 0x10000000 +.equiv S_FORESIGHT, 0x20000000 +.equiv S_TORMENT, 0x80000000 + +@ status 3 +.equiv S_LEECH_SEED, 0x00000004 +.equiv S_ALWAYS_HIT, 0x00000010 +.equiv S_PERISH_SONG, 0x00000020 +.equiv S_ROOTED, 0x00000400 +.equiv S_YAWN, 0x00001800 +.equiv S_IMPRISONED, 0x00002000 +.equiv S_MUD_SPORT, 0x00010000 +.equiv S_WATER_SPORT, 0x00020000 + +@ status 4 +.equiv S_REFLECT, 0x0001 +.equiv S_LIGHT_SCREEN, 0x0002 +.equiv S_SPIKES, 0x0010 +.equiv S_SAFEGUARD, 0x0020 +.equiv S_FUTURE_SIGHT, 0x0040 +.equiv S_MIST, 0x0100 + +.equiv TARGET, 0 +.equiv USER, 1 + +.equiv WEATHER_SUN, 0 +.equiv WEATHER_RAIN, 1 +.equiv WEATHER_SANDSTORM, 2 +.equiv WEATHER_HAIL, 3 + + enum_start 1 + enum ATTACK + enum DEFENSE + enum SPEED + enum SP_ATTACK + enum SP_DEFENSE + enum ACCURACY + enum EVASION + +@ status animation table +.equiv B_ANIM_STATUS_PSN, 0x0 +.equiv B_ANIM_STATUS_CONFUSION, 0x1 +.equiv B_ANIM_STATUS_BRN, 0x2 +.equiv B_ANIM_STATUS_INFATUATION, 0x3 +.equiv B_ANIM_STATUS_SLP, 0x4 +.equiv B_ANIM_STATUS_PRZ, 0x5 +.equiv B_ANIM_STATUS_FRZ, 0x6 +.equiv B_ANIM_STATUS_CURSED, 0x7 +.equiv B_ANIM_STATUS_NIGHTMARE, 0x8 +.equiv B_ANIM_STATUS_WRAPPED, 0x9 + +@ general animation table +.equiv B_ANIM_CASTFORM_CHANGE, 0x0 +.equiv B_ANIM_STATS_CHANGE, 0x1 +.equiv B_ANIM_SUBSTITUTE_FADE, 0x2 +.equiv B_ANIM_SUBSTITUTE_APPEAR, 0x3 +.equiv B_ANIM_POKEBLOCK_THROW, 0x4 +.equiv B_ANIM_ITEM_KNOCKOFF, 0x5 +.equiv B_ANIM_TURN_TRAP, 0x6 +.equiv B_ANIM_ITEM_EFFECT, 0x7 +.equiv B_ANIM_SMOKEBALL_ESCAPE, 0x8 +.equiv B_ANIM_HANGED_ON, 0x9 +.equiv B_ANIM_RAIN_CONTINUES, 0xA +.equiv B_ANIM_SUN_CONTINUES, 0xB +.equiv B_ANIM_SANDSTORM_CONTINUES, 0xC +.equiv B_ANIM_HAIL_CONTINUES, 0xD +.equiv B_ANIM_LEECH_SEED_DRAIN, 0xE +.equiv B_ANIM_MON_HIT, 0xF +.equiv B_ANIM_ITEM_STEAL, 0x10 +.equiv B_ANIM_SNATCH_MOVE, 0x11 +.equiv B_ANIM_FUTURE_SIGHT_HIT, 0x12 +.equiv B_ANIM_DOOM_DESIRE_HIT, 0x13 +.equiv B_ANIM_FOCUS_PUNCH_SET_UP, 0x14 +.equiv B_ANIM_INGRAIN_HEAL, 0x15 +.equiv B_ANIM_WISH_HEAL, 0x16 + +@ special animation table +.equiv B_ANIM_LVL_UP, 0x0 +.equiv B_ANIM_SWITCH_OUT_PLAYER_MON, 0x1 +.equiv B_ANIM_SWITCH_OUT_OPPONENT_MON, 0x2 +.equiv B_ANIM_BALL_THROW, 0x3 +.equiv B_ANIM_SAFARI_BALL_THROW, 0x4 +.equiv B_ANIM_SUBSTITUTE_TO_MON, 0x5 +.equiv B_ANIM_MON_TO_SUBSTITUTE, 0x6 diff --git a/constants/battle_move_constants.inc b/constants/battle_move_constants.inc new file mode 100644 index 000000000..a05da3db3 --- /dev/null +++ b/constants/battle_move_constants.inc @@ -0,0 +1,15 @@ + .set TARGET_SELECTED_POKEMON, 0 + + .set F_TARGET_SPECIAL, 1 << 0 + .set F_TARGET_RANDOM, 1 << 2 + .set F_TARGET_BOTH_ENEMIES, 1 << 3 + .set F_TARGET_USER, 1 << 4 + .set F_TARGET_ALL_EXCEPT_USER, 1 << 5 + .set F_TARGET_ENEMY_SIDE, 1 << 6 + + .set F_MAKES_CONTACT, 1 << 0 + .set F_AFFECTED_BY_PROTECT, 1 << 1 + .set F_AFFECTED_BY_MAGIC_COAT, 1 << 2 + .set F_AFFECTED_BY_SNATCH, 1 << 3 + .set F_MIRROR_MOVE_COMPATIBLE, 1 << 4 + .set F_AFFECTED_BY_KINGS_ROCK, 1 << 5 diff --git a/constants/battle_text.inc b/constants/battle_text.inc new file mode 100644 index 000000000..f7025f68f --- /dev/null +++ b/constants/battle_text.inc @@ -0,0 +1,352 @@ + enum_start 12 + enum BATTLE_TEXT_UnknownString + enum BATTLE_TEXT_GainExpPoints + enum BATTLE_TEXT_GrewLevel + enum BATTLE_TEXT_LearnedMove + enum BATTLE_TEXT_TryingToLearnMove + enum BATTLE_TEXT_CantLearnMore + enum BATTLE_TEXT_DeleteMove + enum BATTLE_TEXT_DeletedMove + enum BATTLE_TEXT_StopLearning + enum BATTLE_TEXT_DidNotLearn + enum BATTLE_TEXT_LearnedMove2 + enum BATTLE_TEXT_AttackMissed + enum BATTLE_TEXT_ProtectedItself + enum BATTLE_TEXT_StatNoHigher + enum BATTLE_TEXT_AvoidedDamage + enum BATTLE_TEXT_DoesntAffect + enum BATTLE_TEXT_AttackingFainted + enum BATTLE_TEXT_DefendingFainted + enum BATTLE_TEXT_WinningPrize + enum BATTLE_TEXT_OutOfUsablePoke + enum BATTLE_TEXT_WhitedOut + enum BATTLE_TEXT_PreventEscape + enum BATTLE_TEXT_HitMulti + enum BATTLE_TEXT_FellAsleep + enum BATTLE_TEXT_MadeAsleep + enum BATTLE_TEXT_DefendingAsleep + enum BATTLE_TEXT_AttackingAsleep + enum BATTLE_TEXT_WasntAffected + enum BATTLE_TEXT_Poisoned + enum BATTLE_TEXT_Poisoned2 + enum BATTLE_TEXT_PoisonHurt + enum BATTLE_TEXT_AlreadyPoisoned + enum BATTLE_TEXT_BadlyPoisoned + enum BATTLE_TEXT_EnergyDrained + enum BATTLE_TEXT_Burned + enum BATTLE_TEXT_Burned2 + enum BATTLE_TEXT_BurnHurt + enum BATTLE_TEXT_Frozen + enum BATTLE_TEXT_Frozen2 + enum BATTLE_TEXT_FrozenSolid + enum BATTLE_TEXT_DefendingDefrosted + enum BATTLE_TEXT_AttackingDefrosted + enum BATTLE_TEXT_Defrosted + enum BATTLE_TEXT_Paralyzed + enum BATTLE_TEXT_Paralyzed2 + enum BATTLE_TEXT_Paralyzed3 + enum BATTLE_TEXT_AlreadyParalyzed + enum BATTLE_TEXT_ParalysisHealed + enum BATTLE_TEXT_DreamEaten + enum BATTLE_TEXT_AttackingStatNoHigher + enum BATTLE_TEXT_DefendingStatNoHigher + enum BATTLE_TEXT_StoppedWorking + enum BATTLE_TEXT_StoppedWorking2 + enum BATTLE_TEXT_Confused + enum BATTLE_TEXT_ConfusionSnapOut + enum BATTLE_TEXT_BecameConfused + enum BATTLE_TEXT_AlreadyConfused + enum BATTLE_TEXT_FellLove + enum BATTLE_TEXT_InLoveWith + enum BATTLE_TEXT_ImmobilizedBy + enum BATTLE_TEXT_BlownAway + enum BATTLE_TEXT_TypeTransform + enum BATTLE_TEXT_Flinched + enum BATTLE_TEXT_RegainedHealth + enum BATTLE_TEXT_HPFull + enum BATTLE_TEXT_RaisedSpDef + enum BATTLE_TEXT_RaisedDefense + enum BATTLE_TEXT_CoveredVeil + enum BATTLE_TEXT_SafeguardActive + enum BATTLE_TEXT_SafeguardFaded + enum BATTLE_TEXT_WentToSleep + enum BATTLE_TEXT_SpeltHealthy + enum BATTLE_TEXT_WhipWhirlwind + enum BATTLE_TEXT_TookSunlight + enum BATTLE_TEXT_LoweredHead + enum BATTLE_TEXT_IsGlowing + enum BATTLE_TEXT_FlewHigh + enum BATTLE_TEXT_DugHole + enum BATTLE_TEXT_SqueezedBind + enum BATTLE_TEXT_TrappedVortex + enum BATTLE_TEXT_Wrapped + enum BATTLE_TEXT_Clamped + enum BATTLE_TEXT_HurtBy + enum BATTLE_TEXT_FreedFrom + enum BATTLE_TEXT_KeptGoingCrash + enum BATTLE_TEXT_MistShroud + enum BATTLE_TEXT_MistProtect + enum BATTLE_TEXT_GetPumped + enum BATTLE_TEXT_HitRecoil + enum BATTLE_TEXT_ProtectedItself2 + enum BATTLE_TEXT_SandBuffeted + enum BATTLE_TEXT_HailStricken + enum BATTLE_TEXT_WasSeeded + enum BATTLE_TEXT_EvadedAttack + enum BATTLE_TEXT_HealthSapped + enum BATTLE_TEXT_FastAsleep + enum BATTLE_TEXT_WokeUp + enum BATTLE_TEXT_UproarAwake + enum BATTLE_TEXT_UproarWoke + enum BATTLE_TEXT_UproarCaused + enum BATTLE_TEXT_UproarMaking + enum BATTLE_TEXT_CalmedDown + enum BATTLE_TEXT_UproarCantSleep + enum BATTLE_TEXT_Stockpiled + enum BATTLE_TEXT_StockpiledCant + enum BATTLE_TEXT_UproarCantSleep2 + enum BATTLE_TEXT_UproarKeptAwake + enum BATTLE_TEXT_StayedAwake + enum BATTLE_TEXT_StoringEnergy + enum BATTLE_TEXT_UnleashedEnergy + enum BATTLE_TEXT_FatigueConfuse + enum BATTLE_TEXT_PickedUpYen + enum BATTLE_TEXT_Unaffected + enum BATTLE_TEXT_Transformed + enum BATTLE_TEXT_SubMade + enum BATTLE_TEXT_SubAlready + enum BATTLE_TEXT_SubTookDamage + enum BATTLE_TEXT_SubFaded + enum BATTLE_TEXT_MustRecharge + enum BATTLE_TEXT_RageBuilding + enum BATTLE_TEXT_MoveWasDisabled + enum BATTLE_TEXT_MoveIsDisabled + enum BATTLE_TEXT_DisabledNoMore + enum BATTLE_TEXT_EncoreGot + enum BATTLE_TEXT_EncoreEnded + enum BATTLE_TEXT_TookAim + enum BATTLE_TEXT_SketchedMove + enum BATTLE_TEXT_DestinyBondTake + enum BATTLE_TEXT_DestinyBondTaken + enum BATTLE_TEXT_ReducedBy + enum BATTLE_TEXT_StoleSomething + enum BATTLE_TEXT_CantEscapeNow + enum BATTLE_TEXT_NightmareStart + enum BATTLE_TEXT_NightmareLock + enum BATTLE_TEXT_CurseLay + enum BATTLE_TEXT_CurseAfflict + enum BATTLE_TEXT_SpikesScattered + enum BATTLE_TEXT_SpikesHurt + enum BATTLE_TEXT_IdentifiedPoke + enum BATTLE_TEXT_PerishSongFell + enum BATTLE_TEXT_BracedItself + enum BATTLE_TEXT_EnduredHit + enum BATTLE_TEXT_MagnitudeCount + enum BATTLE_TEXT_CutHPMaxATK + enum BATTLE_TEXT_CopyStatChanges + enum BATTLE_TEXT_GotFreeFrom + enum BATTLE_TEXT_LeechShed + enum BATTLE_TEXT_SpikesBlownAway + enum BATTLE_TEXT_FledBattle + enum BATTLE_TEXT_ForesawAttack + enum BATTLE_TEXT_TookAttack + enum BATTLE_TEXT_PokeAttack + enum BATTLE_TEXT_CenterAttention + enum BATTLE_TEXT_ChargingPower + enum BATTLE_TEXT_NaturePower + enum BATTLE_TEXT_StatusNormal + enum BATTLE_TEXT_NoMovesLeft + enum BATTLE_TEXT_TormentSubject + enum BATTLE_TEXT_TormentNoUse + enum BATTLE_TEXT_TightenFocus + enum BATTLE_TEXT_TauntFell + enum BATTLE_TEXT_TauntNoUse + enum BATTLE_TEXT_ReadyToHelp + enum BATTLE_TEXT_SwitchedItems + enum BATTLE_TEXT_CopiedObject + enum BATTLE_TEXT_WishMade + enum BATTLE_TEXT_WishTrue + enum BATTLE_TEXT_PlantedRoots + enum BATTLE_TEXT_AbsorbNutrients + enum BATTLE_TEXT_AnchoredItself + enum BATTLE_TEXT_DrowsyMade + enum BATTLE_TEXT_KnockedOffItem + enum BATTLE_TEXT_AbilitySwap + enum BATTLE_TEXT_SealedMove + enum BATTLE_TEXT_SealedNoUse + enum BATTLE_TEXT_GrudgeBear + enum BATTLE_TEXT_GrudgeLosePP + enum BATTLE_TEXT_ShroudedItself + enum BATTLE_TEXT_MagicCoatBounce + enum BATTLE_TEXT_AwaitMove + enum BATTLE_TEXT_SnatchedMove + enum BATTLE_TEXT_RainMade + enum BATTLE_TEXT_SpeedRisen + enum BATTLE_TEXT_ProtectedBy + enum BATTLE_TEXT_PreventedBy + enum BATTLE_TEXT_HPRestoredUsing + enum BATTLE_TEXT_MadeType + enum BATTLE_TEXT_PreventedPara + enum BATTLE_TEXT_PreventedRomance + enum BATTLE_TEXT_PreventedPoison + enum BATTLE_TEXT_PreventedConfusion + enum BATTLE_TEXT_RaisedFirePower + enum BATTLE_TEXT_AnchorsItself + enum BATTLE_TEXT_CutsAttack + enum BATTLE_TEXT_PreventedStatLoss + enum BATTLE_TEXT_HurtOther + enum BATTLE_TEXT_Traced + enum BATTLE_TEXT_Sharply + enum BATTLE_TEXT_Rose + enum BATTLE_TEXT_Harshly + enum BATTLE_TEXT_Fell + enum BATTLE_TEXT_UnknownString7 + enum BATTLE_TEXT_UnknownString3 + enum BATTLE_TEXT_UnknownString5 + enum BATTLE_TEXT_UnknownString6 + enum BATTLE_TEXT_Critical + enum BATTLE_TEXT_GrandSlam + enum BATTLE_TEXT_MoveForget123 + enum BATTLE_TEXT_MoveForgetAnd + enum BATTLE_TEXT_NotEffective + enum BATTLE_TEXT_SuperEffective + enum BATTLE_TEXT_GotAwaySafely + enum BATTLE_TEXT_FledWild + enum BATTLE_TEXT_NoRunning + enum BATTLE_TEXT_CantEscape2 + enum BATTLE_TEXT_BirchDontLeaveMe + enum BATTLE_TEXT_Nothing + enum BATTLE_TEXT_Failed + enum BATTLE_TEXT_HurtItself + enum BATTLE_TEXT_MirrorFail + enum BATTLE_TEXT_RainStart + enum BATTLE_TEXT_PourStart + enum BATTLE_TEXT_RainCont1 + enum BATTLE_TEXT_PourCont + enum BATTLE_TEXT_RainStop + enum BATTLE_TEXT_SandBrewed + enum BATTLE_TEXT_SandRages + enum BATTLE_TEXT_SandSubsided + enum BATTLE_TEXT_SunBright + enum BATTLE_TEXT_SunStrong + enum BATTLE_TEXT_SunFaded + enum BATTLE_TEXT_HailStart + enum BATTLE_TEXT_HailCont + enum BATTLE_TEXT_HailStop + enum BATTLE_TEXT_SpitUpFail + enum BATTLE_TEXT_SwallowFail + enum BATTLE_TEXT_WindHeatWave + enum BATTLE_TEXT_StatElim + enum BATTLE_TEXT_CoinScatter + enum BATTLE_TEXT_SubWeak + enum BATTLE_TEXT_PainSplit + enum BATTLE_TEXT_BellChime + enum BATTLE_TEXT_PerishSong + enum BATTLE_TEXT_NoPP1 + enum BATTLE_TEXT_NoPP2 + enum BATTLE_TEXT_Used1 + enum BATTLE_TEXT_TutorialUsed + enum BATTLE_TEXT_BlockBall + enum BATTLE_TEXT_DontBeAThief + enum BATTLE_TEXT_DodgeBall + enum BATTLE_TEXT_MissPoke + enum BATTLE_TEXT_BallBrokeOhNo + enum BATTLE_TEXT_BallBrokeAppeared + enum BATTLE_TEXT_BallBrokeAlmost + enum BATTLE_TEXT_BallBrokeSoClose + enum BATTLE_TEXT_BallCaught1 + enum BATTLE_TEXT_BallCaught2 + enum BATTLE_TEXT_GiveNickname + enum BATTLE_TEXT_SentToPC + enum BATTLE_TEXT_AddedToDex + enum BATTLE_TEXT_Raining + enum BATTLE_TEXT_Sandstorm + enum BATTLE_TEXT_CantEscape + enum BATTLE_TEXT_IgnoredOrdersSLP + enum BATTLE_TEXT_IgnoredOrders + enum BATTLE_TEXT_BeganNap + enum BATTLE_TEXT_LoafingAround + enum BATTLE_TEXT_WontObey + enum BATTLE_TEXT_TurnedAway + enum BATTLE_TEXT_NotNotice + enum BATTLE_TEXT_WillSwitch + enum BATTLE_TEXT_CreptCloser + enum BATTLE_TEXT_CantGetCloser + enum BATTLE_TEXT_WatchingCarefully + enum BATTLE_TEXT_CuriousAbout + enum BATTLE_TEXT_EnthralledBy + enum BATTLE_TEXT_IgnoredThing + enum BATTLE_TEXT_ThrewBlock + enum BATTLE_TEXT_SafariOver + enum BATTLE_TEXT_CuredParalysis + enum BATTLE_TEXT_CuredPoison + enum BATTLE_TEXT_CuredBurn + enum BATTLE_TEXT_CuredFreeze + enum BATTLE_TEXT_CuredSleep + enum BATTLE_TEXT_CuredConfusion + enum BATTLE_TEXT_CuredStatus + enum BATTLE_TEXT_RestoredHealth + enum BATTLE_TEXT_RestoredPP + enum BATTLE_TEXT_RestoredStatus + enum BATTLE_TEXT_RestoredHPLittle + enum BATTLE_TEXT_ChoiceBand + enum BATTLE_TEXT_FocusSash + enum BATTLE_TEXT_Terminator2 @ terminator? + enum BATTLE_TEXT_PreventedBurn + enum BATTLE_TEXT_BlocksOther + enum BATTLE_TEXT_RestoredHPByItem + enum BATTLE_TEXT_WhipSandstorm + enum BATTLE_TEXT_PreventedLoss + enum BATTLE_TEXT_InfatuatedPoke + enum BATTLE_TEXT_MadeIneffective + enum BATTLE_TEXT_CuredProblem + enum BATTLE_TEXT_OozeSuckup + enum BATTLE_TEXT_Transformed2 + enum BATTLE_TEXT_ElecWeakened + enum BATTLE_TEXT_FireWeakened + enum BATTLE_TEXT_HidUnderwater + enum BATTLE_TEXT_SprangUp + enum BATTLE_TEXT_CantForgetHM + enum BATTLE_TEXT_FoundOne + enum BATTLE_TEXT_PlayerDefeatedTrainer2 + enum BATTLE_TEXT_SoothingAroma + enum BATTLE_TEXT_CantUseItems + enum BATTLE_TEXT_UnknownString2 + enum BATTLE_TEXT_UnknownString4 + enum BATTLE_TEXT_HustleUse + enum BATTLE_TEXT_MadeUseless + enum BATTLE_TEXT_SandTombTrapped @ sand tomb + enum BATTLE_TEXT_Terminator + enum BATTLE_TEXT_BoostedExp + enum BATTLE_TEXT_SunIntensified + enum BATTLE_TEXT_GroundMoveNegate + enum BATTLE_TEXT_WallyBall + enum BATTLE_TEXT_TookAttack2 + enum BATTLE_TEXT_ChoseDestiny + enum BATTLE_TEXT_LostFocus + enum BATTLE_TEXT_UseNext + enum BATTLE_TEXT_FledUsingItem + enum BATTLE_TEXT_FledUsingOther + enum BATTLE_TEXT_DraggedOut + enum BATTLE_TEXT_PreventedOther + enum BATTLE_TEXT_NormalizedStatus + enum BATTLE_TEXT_Used2 + enum BATTLE_TEXT_BoxFull + enum BATTLE_TEXT_AvoidedAttack + enum BATTLE_TEXT_MadeIneffective2 + enum BATTLE_TEXT_PreventedFlinching + enum BATTLE_TEXT_AlreadyBurned + enum BATTLE_TEXT_StatNoLower + enum BATTLE_TEXT_BlocksOther2 + enum BATTLE_TEXT_WoreOff + enum BATTLE_TEXT_RaisedDefenseLittle + enum BATTLE_TEXT_RaisedSpDefLittle + enum BATTLE_TEXT_BrokeWall + enum BATTLE_TEXT_PreventedOther2 + enum BATTLE_TEXT_CuredOfProblem + enum BATTLE_TEXT_AttackingCantEscape + enum BATTLE_TEXT_Obtained1 + enum BATTLE_TEXT_Obtained2 + enum BATTLE_TEXT_Obtained3 + enum BATTLE_TEXT_NoEffect + enum BATTLE_TEXT_NoEffectOn diff --git a/constants/berry_constants.inc b/constants/berry_constants.inc new file mode 100644 index 000000000..2ecd7ac36 --- /dev/null +++ b/constants/berry_constants.inc @@ -0,0 +1,6 @@ + .set BERRY_FIRMNESS_UNKNOWN, 0 + .set BERRY_FIRMNESS_VERY_SOFT, 1 + .set BERRY_FIRMNESS_SOFT, 2 + .set BERRY_FIRMNESS_HARD, 3 + .set BERRY_FIRMNESS_VERY_HARD, 4 + .set BERRY_FIRMNESS_SUPER_HARD, 5 diff --git a/constants/constants.inc b/constants/constants.inc new file mode 100644 index 000000000..1ec25462f --- /dev/null +++ b/constants/constants.inc @@ -0,0 +1,12 @@ + .include "constants/gba_constants.inc" + .include "constants/misc_constants.inc" + .include "constants/type_constants.inc" + .include "constants/contest_constants.inc" + .include "constants/item_data_constants.inc" + .include "constants/battle_move_constants.inc" + .include "constants/trainer_constants.inc" + .include "constants/berry_constants.inc" + .include "constants/version.inc" + .include "constants/battle.inc" + .include "constants/battle_text.inc" + .include "constants/contest_move_effects.inc" diff --git a/constants/contest_constants.inc b/constants/contest_constants.inc new file mode 100644 index 000000000..e971764d6 --- /dev/null +++ b/constants/contest_constants.inc @@ -0,0 +1,68 @@ + .set CONTEST_COOL, 0x00 + .set CONTEST_BEAUTY, 0x01 + .set CONTEST_CUTE, 0x02 + .set CONTEST_SMART, 0x03 + .set CONTEST_TOUGH, 0x04 + + .set COMBO_STARTER_RAIN_DANCE, 0x01 + .set COMBO_STARTER_RAGE, 0x02 + .set COMBO_STARTER_FOCUS_ENERGY, 0x03 + .set COMBO_STARTER_HYPNOSIS, 0x04 + .set COMBO_STARTER_ENDURE, 0x05 + .set COMBO_STARTER_HORN_ATTACK, 0x06 + .set COMBO_STARTER_SWORDS_DANCE, 0x07 + .set COMBO_STARTER_STOCKPILE, 0x08 + .set COMBO_STARTER_SUNNY_DAY, 0x09 + .set COMBO_STARTER_REST, 0x0A + .set COMBO_STARTER_VICE_GRIP, 0x0B + .set COMBO_STARTER_DEFENSE_CURL, 0x0C + .set COMBO_STARTER_CHARGE, 0x0D + .set COMBO_STARTER_ROCK_THROW, 0x0E + .set COMBO_STARTER_YAWN, 0x0F + .set COMBO_STARTER_SCARY_FACE, 0x10 + .set COMBO_STARTER_POWDER_SNOW, 0x11 + .set COMBO_STARTER_LOCK_ON, 0x12 + .set COMBO_STARTER_SOFT_BOILED, 0x13 + .set COMBO_STARTER_MEAN_LOOK, 0x14 + .set COMBO_STARTER_SCRATCH, 0x15 + .set COMBO_STARTER_GROWTH, 0x16 + .set COMBO_STARTER_HAIL, 0x17 + .set COMBO_STARTER_SANDSTORM, 0x18 + .set COMBO_STARTER_BELLY_DRUM, 0x19 + .set COMBO_STARTER_MIND_READER, 0x1A + .set COMBO_STARTER_DRAGON_BREATH, 0x1B + .set COMBO_STARTER_DRAGON_RAGE, 0x1C + .set COMBO_STARTER_DRAGON_DANCE, 0x1D + .set COMBO_STARTER_SURF, 0x1E + .set COMBO_STARTER_DIVE, 0x1F + .set COMBO_STARTER_STRING_SHOT, 0x20 + .set COMBO_STARTER_LEER, 0x21 + .set COMBO_STARTER_TAUNT, 0x22 + .set COMBO_STARTER_CHARM, 0x23 + .set COMBO_STARTER_HARDEN, 0x24 + .set COMBO_STARTER_SING, 0x25 + .set COMBO_STARTER_EARTHQUAKE, 0x26 + .set COMBO_STARTER_DOUBLE_TEAM, 0x27 + .set COMBO_STARTER_CURSE, 0x28 + .set COMBO_STARTER_SWEET_SCENT, 0x29 + .set COMBO_STARTER_SLUDGE, 0x2A + .set COMBO_STARTER_SLUDGE_BOMB, 0x2B + .set COMBO_STARTER_THUNDER_PUNCH, 0x2C + .set COMBO_STARTER_FIRE_PUNCH, 0x2D + .set COMBO_STARTER_ICE_PUNCH, 0x2E + .set COMBO_STARTER_PECK, 0x2F + .set COMBO_STARTER_METAL_SOUND, 0x30 + .set COMBO_STARTER_MUD_SPORT, 0x31 + .set COMBO_STARTER_WATER_SPORT, 0x32 + .set COMBO_STARTER_BONE_CLUB, 0x33 + .set COMBO_STARTER_BONEMERANG, 0x34 + .set COMBO_STARTER_BONE_RUSH, 0x35 + .set COMBO_STARTER_SAND_ATTACK, 0x36 + .set COMBO_STARTER_MUD_SLAP, 0x37 + .set COMBO_STARTER_FAKE_OUT, 0x38 + .set COMBO_STARTER_PSYCHIC, 0x39 + .set COMBO_STARTER_KINESIS, 0x3A + .set COMBO_STARTER_CONFUSION, 0x3B + .set COMBO_STARTER_POUND, 0x3C + .set COMBO_STARTER_SMOG, 0x3D + .set COMBO_STARTER_CALM_MIND, 0x3E diff --git a/constants/contest_move_effects.inc b/constants/contest_move_effects.inc new file mode 100644 index 000000000..b19e05004 --- /dev/null +++ b/constants/contest_move_effects.inc @@ -0,0 +1,49 @@ + enum_start + enum CONTEST_EFFECT_HIGHLY_APPEALING @ 0 + enum CONTEST_EFFECT_USER_MORE_EASILY_STARTLED @ 1 + enum CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES @ 2 + enum CONTEST_EFFECT_REPETITION_NOT_BORING @ 3 + enum CONTEST_EFFECT_AVOID_STARTLE_ONCE @ 4 + enum CONTEST_EFFECT_AVOID_STARTLE @ 5 + enum CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY @ 6 + enum CONTEST_EFFECT_USER_LESS_EASILY_STARTLED @ 7 + enum CONTEST_EFFECT_STARTLE_FRONT_MON @ 8 + enum CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS @ 9 + enum CONTEST_EFFECT_STARTLE_PREV_MON @ 10 + enum CONTEST_EFFECT_STARTLE_PREV_MONS @ 11 + enum CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON @ 12 + enum CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS @ 13 + enum CONTEST_EFFECT_STARTLE_PREV_MON_2 @ 14 + enum CONTEST_EFFECT_STARTLE_PREV_MONS_2 @ 15 + enum CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION @ 16 + enum CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION @ 17 + enum CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN @ 18 + enum CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL @ 19 + enum CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL @ 20 + enum CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL @ 21 + enum CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL @ 22 + enum CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL @ 23 + enum CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL @ 24 + enum CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS @ 25 + enum CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS @ 26 + enum CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS @ 27 + enum CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION @ 28 + enum CONTEST_EFFECT_BETTER_IF_FIRST @ 29 + enum CONTEST_EFFECT_BETTER_IF_LAST @ 30 + enum CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES @ 31 + enum CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE @ 32 + enum CONTEST_EFFECT_BETTER_WHEN_LATER @ 33 + enum CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING @ 34 + enum CONTEST_EFFECT_BETTER_IF_SAME_TYPE @ 35 + enum CONTEST_EFFECT_BETTER_IF_DIFF_TYPE @ 36 + enum CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL @ 37 + enum CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS @ 38 + enum CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION @ 39 + enum CONTEST_EFFECT_NEXT_APPEAL_EARLIER @ 40 + enum CONTEST_EFFECT_NEXT_APPEAL_LATER @ 41 + enum CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER @ 42 + enum CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER @ 43 + enum CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST @ 44 + enum CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS @ 45 + enum CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED @ 46 + enum CONTEST_EFFECT_DONT_EXCITE_AUDIENCE @ 47 diff --git a/constants/gba_constants.inc b/constants/gba_constants.inc new file mode 100644 index 000000000..9d59c8fcd --- /dev/null +++ b/constants/gba_constants.inc @@ -0,0 +1,490 @@ + .set PSR_USR_MODE, 0x00000010 + .set PSR_FIQ_MODE, 0x00000011 + .set PSR_IRQ_MODE, 0x00000012 + .set PSR_SVC_MODE, 0x00000013 + .set PSR_ABT_MODE, 0x00000017 + .set PSR_UND_MODE, 0x0000001b + .set PSR_SYS_MODE, 0x0000001f + .set PSR_MODE_MASK, 0x0000001f + .set PSR_T_BIT, 0x00000020 + .set PSR_F_BIT, 0x00000040 + .set PSR_I_BIT, 0x00000080 + + .set EWRAM_START, 0x02000000 + .set EWRAM_END, EWRAM_START + 0x40000 + .set IWRAM_START, 0x03000000 + .set IWRAM_END, IWRAM_START + 0x8000 + + .set PLTT, 0x5000000 + .set BG_PLTT, PLTT + .set OBJ_PLTT, PLTT + 0x200 + + .set VRAM, 0x6000000 + .set BG_VRAM, VRAM + .set OBJ_VRAM0, VRAM + 0x10000 @ text-mode BG + .set OBJ_VRAM1, VRAM + 0x14000 @ bitmap-mode BG + + .set OAM, 0x7000000 + + .set SOUND_INFO_PTR, 0x3007FF0 + .set INTR_CHECK, 0x3007FF8 + .set INTR_VECTOR, 0x3007FFC + + .set INTR_FLAG_VBLANK, 1 << 0 + .set INTR_FLAG_HBLANK, 1 << 1 + .set INTR_FLAG_VCOUNT, 1 << 2 + .set INTR_FLAG_TIMER0, 1 << 3 + .set INTR_FLAG_TIMER1, 1 << 4 + .set INTR_FLAG_TIMER2, 1 << 5 + .set INTR_FLAG_TIMER3, 1 << 6 + .set INTR_FLAG_SERIAL, 1 << 7 + .set INTR_FLAG_DMA0, 1 << 8 + .set INTR_FLAG_DMA1, 1 << 9 + .set INTR_FLAG_DMA2, 1 << 10 + .set INTR_FLAG_DMA3, 1 << 11 + .set INTR_FLAG_KEYPAD, 1 << 12 + .set INTR_FLAG_GAMEPAK, 1 << 13 + + .set VCOUNT_VBLANK, 160 + .set TOTAL_SCANLINES, 228 + + .set REG_BASE, 0x4000000 @ I/O register base address + +@ I/O register offsets + .set OFFSET_REG_DISPCNT, 0x0 + .set OFFSET_REG_DISPSTAT, 0x4 + .set OFFSET_REG_VCOUNT, 0x6 + .set OFFSET_REG_BG0CNT, 0x8 + .set OFFSET_REG_BG1CNT, 0xa + .set OFFSET_REG_BG2CNT, 0xc + .set OFFSET_REG_BG3CNT, 0xe + .set OFFSET_REG_BG0HOFS, 0x10 + .set OFFSET_REG_BG0VOFS, 0x12 + .set OFFSET_REG_BG1HOFS, 0x14 + .set OFFSET_REG_BG1VOFS, 0x16 + .set OFFSET_REG_BG2HOFS, 0x18 + .set OFFSET_REG_BG2VOFS, 0x1a + .set OFFSET_REG_BG3HOFS, 0x1c + .set OFFSET_REG_BG3VOFS, 0x1e + .set OFFSET_REG_BG2PA, 0x20 + .set OFFSET_REG_BG2PB, 0x22 + .set OFFSET_REG_BG2PC, 0x24 + .set OFFSET_REG_BG2PD, 0x26 + .set OFFSET_REG_BG2X_L, 0x28 + .set OFFSET_REG_BG2X_H, 0x2a + .set OFFSET_REG_BG2Y_L, 0x2c + .set OFFSET_REG_BG2Y_H, 0x2e + .set OFFSET_REG_BG3PA, 0x30 + .set OFFSET_REG_BG3PB, 0x32 + .set OFFSET_REG_BG3PC, 0x34 + .set OFFSET_REG_BG3PD, 0x36 + .set OFFSET_REG_BG3X_L, 0x38 + .set OFFSET_REG_BG3X_H, 0x3a + .set OFFSET_REG_BG3Y_L, 0x3c + .set OFFSET_REG_BG3Y_H, 0x3e + .set OFFSET_REG_WIN0H, 0x40 + .set OFFSET_REG_WIN1H, 0x42 + .set OFFSET_REG_WIN0V, 0x44 + .set OFFSET_REG_WIN1V, 0x46 + .set OFFSET_REG_WININ, 0x48 + .set OFFSET_REG_WINOUT, 0x4a + .set OFFSET_REG_MOSAIC, 0x4c + .set OFFSET_REG_BLDCNT, 0x50 + .set OFFSET_REG_BLDALPHA, 0x52 + .set OFFSET_REG_BLDY, 0x54 + + .set OFFSET_REG_SOUND1CNT, 0x60 + .set OFFSET_REG_SOUND1CNT_L, 0x60 + .set OFFSET_REG_NR10, 0x60 + .set OFFSET_REG_SOUND1CNT_H, 0x62 + .set OFFSET_REG_NR11, 0x62 + .set OFFSET_REG_NR12, 0x63 + .set OFFSET_REG_SOUND1CNT_X, 0x64 + .set OFFSET_REG_NR13, 0x64 + .set OFFSET_REG_NR14, 0x65 + .set OFFSET_REG_SOUND2CNT, 0x68 + .set OFFSET_REG_SOUND2CNT_L, 0x68 + .set OFFSET_REG_NR21, 0x68 + .set OFFSET_REG_NR22, 0x69 + .set OFFSET_REG_SOUND2CNT_H, 0x6c + .set OFFSET_REG_NR23, 0x6c + .set OFFSET_REG_NR24, 0x6d + .set OFFSET_REG_SOUND3CNT, 0x70 + .set OFFSET_REG_SOUND3CNT_L, 0x70 + .set OFFSET_REG_NR30, 0x70 + .set OFFSET_REG_SOUND3CNT_H, 0x72 + .set OFFSET_REG_NR31, 0x72 + .set OFFSET_REG_NR32, 0x73 + .set OFFSET_REG_SOUND3CNT_X, 0x74 + .set OFFSET_REG_NR33, 0x74 + .set OFFSET_REG_NR34, 0x75 + .set OFFSET_REG_SOUND4CNT, 0x78 + .set OFFSET_REG_SOUND4CNT_L, 0x78 + .set OFFSET_REG_NR41, 0x78 + .set OFFSET_REG_NR42, 0x79 + .set OFFSET_REG_SOUND4CNT_H, 0x7c + .set OFFSET_REG_NR43, 0x7c + .set OFFSET_REG_NR44, 0x7d + .set OFFSET_REG_SOUNDCNT, 0x80 + .set OFFSET_REG_SOUNDCNT_L, 0x80 + .set OFFSET_REG_NR50, 0x80 + .set OFFSET_REG_NR51, 0x81 + .set OFFSET_REG_SOUNDCNT_H, 0x82 + .set OFFSET_REG_SOUNDCNT_X, 0x84 + .set OFFSET_REG_NR52, 0x84 + .set OFFSET_REG_SOUNDBIAS, 0x88 + .set OFFSET_REG_WAVE_RAM, 0x90 + .set OFFSET_REG_WAVE_RAM0, 0x90 + .set OFFSET_REG_WAVE_RAM0_L, 0x90 + .set OFFSET_REG_WAVE_RAM0_H, 0x92 + .set OFFSET_REG_WAVE_RAM1, 0x94 + .set OFFSET_REG_WAVE_RAM1_L, 0x94 + .set OFFSET_REG_WAVE_RAM1_H, 0x96 + .set OFFSET_REG_WAVE_RAM2, 0x98 + .set OFFSET_REG_WAVE_RAM2_L, 0x98 + .set OFFSET_REG_WAVE_RAM2_H, 0x9a + .set OFFSET_REG_WAVE_RAM3, 0x9c + .set OFFSET_REG_WAVE_RAM3_L, 0x9c + .set OFFSET_REG_WAVE_RAM3_H, 0x9e + .set OFFSET_REG_FIFO, 0xa0 + .set OFFSET_REG_FIFO_A, 0xa0 + .set OFFSET_REG_FIFO_A_L, 0xa0 + .set OFFSET_REG_FIFO_A_H, 0xa2 + .set OFFSET_REG_FIFO_B, 0xa4 + .set OFFSET_REG_FIFO_B_L, 0xa4 + .set OFFSET_REG_FIFO_B_H, 0xa6 + + .set OFFSET_REG_DMA0, 0xb0 + .set OFFSET_REG_DMA0SAD, 0xb0 + .set OFFSET_REG_DMA0SAD_L, 0xb0 + .set OFFSET_REG_DMA0SAD_H, 0xb2 + .set OFFSET_REG_DMA0DAD, 0xb4 + .set OFFSET_REG_DMA0DAD_L, 0xb4 + .set OFFSET_REG_DMA0DAD_H, 0xb6 + .set OFFSET_REG_DMA0CNT, 0xb8 + .set OFFSET_REG_DMA0CNT_L, 0xb8 + .set OFFSET_REG_DMA0CNT_H, 0xba + .set OFFSET_REG_DMA1, 0xbc + .set OFFSET_REG_DMA1SAD, 0xbc + .set OFFSET_REG_DMA1SAD_L, 0xbc + .set OFFSET_REG_DMA1SAD_H, 0xbe + .set OFFSET_REG_DMA1DAD, 0xc0 + .set OFFSET_REG_DMA1DAD_L, 0xc0 + .set OFFSET_REG_DMA1DAD_H, 0xc2 + .set OFFSET_REG_DMA1CNT, 0xc4 + .set OFFSET_REG_DMA1CNT_L, 0xc4 + .set OFFSET_REG_DMA1CNT_H, 0xc6 + .set OFFSET_REG_DMA2, 0xc8 + .set OFFSET_REG_DMA2SAD, 0xc8 + .set OFFSET_REG_DMA2SAD_L, 0xc8 + .set OFFSET_REG_DMA2SAD_H, 0xca + .set OFFSET_REG_DMA2DAD, 0xcc + .set OFFSET_REG_DMA2DAD_L, 0xcc + .set OFFSET_REG_DMA2DAD_H, 0xce + .set OFFSET_REG_DMA2CNT, 0xd0 + .set OFFSET_REG_DMA2CNT_L, 0xd0 + .set OFFSET_REG_DMA2CNT_H, 0xd2 + .set OFFSET_REG_DMA3, 0xd4 + .set OFFSET_REG_DMA3SAD, 0xd4 + .set OFFSET_REG_DMA3SAD_L, 0xd4 + .set OFFSET_REG_DMA3SAD_H, 0xd6 + .set OFFSET_REG_DMA3DAD, 0xd8 + .set OFFSET_REG_DMA3DAD_L, 0xd8 + .set OFFSET_REG_DMA3DAD_H, 0xda + .set OFFSET_REG_DMA3CNT, 0xdc + .set OFFSET_REG_DMA3CNT_L, 0xdc + .set OFFSET_REG_DMA3CNT_H, 0xde + + .set OFFSET_REG_TM0CNT, 0x100 + .set OFFSET_REG_TM0CNT_L, 0x100 + .set OFFSET_REG_TM0CNT_H, 0x102 + .set OFFSET_REG_TM1CNT, 0x104 + .set OFFSET_REG_TM1CNT_L, 0x104 + .set OFFSET_REG_TM1CNT_H, 0x106 + .set OFFSET_REG_TM2CNT, 0x108 + .set OFFSET_REG_TM2CNT_L, 0x108 + .set OFFSET_REG_TM2CNT_H, 0x10a + .set OFFSET_REG_TM3CNT, 0x10c + .set OFFSET_REG_TM3CNT_L, 0x10c + .set OFFSET_REG_TM3CNT_H, 0x10e + + .set OFFSET_REG_SIOCNT, 0x128 + .set OFFSET_REG_SIODATA8, 0x12a + .set OFFSET_REG_SIODATA32, 0x120 + .set OFFSET_REG_SIOMLT_SEND, 0x12a + .set OFFSET_REG_SIOMLT_RECV, 0x120 + .set OFFSET_REG_SIOMULTI0, 0x120 + .set OFFSET_REG_SIOMULTI1, 0x122 + .set OFFSET_REG_SIOMULTI2, 0x124 + .set OFFSET_REG_SIOMULTI3, 0x126 + + .set OFFSET_REG_KEYINPUT, 0x130 + .set OFFSET_REG_KEYCNT, 0x132 + + .set OFFSET_REG_RCNT, 0x134 + + .set OFFSET_REG_JOYCNT, 0x140 + .set OFFSET_REG_JOYSTAT, 0x158 + .set OFFSET_REG_JOY_RECV, 0x150 + .set OFFSET_REG_JOY_RECV_L, 0x150 + .set OFFSET_REG_JOY_RECV_H, 0x152 + .set OFFSET_REG_JOY_TRANS, 0x154 + .set OFFSET_REG_JOY_TRANS_L, 0x154 + .set OFFSET_REG_JOY_TRANS_H, 0x156 + + .set OFFSET_REG_IME, 0x208 + .set OFFSET_REG_IE, 0x200 + .set OFFSET_REG_IF, 0x202 + + .set OFFSET_REG_WAITCNT, 0x204 + +@ I/O register addresses + .set REG_DISPCNT, REG_BASE + OFFSET_REG_DISPCNT + .set REG_DISPSTAT, REG_BASE + OFFSET_REG_DISPSTAT + .set REG_VCOUNT, REG_BASE + OFFSET_REG_VCOUNT + .set REG_BG0CNT, REG_BASE + OFFSET_REG_BG0CNT + .set REG_BG1CNT, REG_BASE + OFFSET_REG_BG1CNT + .set REG_BG2CNT, REG_BASE + OFFSET_REG_BG2CNT + .set REG_BG3CNT, REG_BASE + OFFSET_REG_BG3CNT + .set REG_BG0HOFS, REG_BASE + OFFSET_REG_BG0HOFS + .set REG_BG0VOFS, REG_BASE + OFFSET_REG_BG0VOFS + .set REG_BG1HOFS, REG_BASE + OFFSET_REG_BG1HOFS + .set REG_BG1VOFS, REG_BASE + OFFSET_REG_BG1VOFS + .set REG_BG2HOFS, REG_BASE + OFFSET_REG_BG2HOFS + .set REG_BG2VOFS, REG_BASE + OFFSET_REG_BG2VOFS + .set REG_BG3HOFS, REG_BASE + OFFSET_REG_BG3HOFS + .set REG_BG3VOFS, REG_BASE + OFFSET_REG_BG3VOFS + .set REG_BG2PA, REG_BASE + OFFSET_REG_BG2PA + .set REG_BG2PB, REG_BASE + OFFSET_REG_BG2PB + .set REG_BG2PC, REG_BASE + OFFSET_REG_BG2PC + .set REG_BG2PD, REG_BASE + OFFSET_REG_BG2PD + .set REG_BG2X_L, REG_BASE + OFFSET_REG_BG2X_L + .set REG_BG2X_H, REG_BASE + OFFSET_REG_BG2X_H + .set REG_BG2Y_L, REG_BASE + OFFSET_REG_BG2Y_L + .set REG_BG2Y_H, REG_BASE + OFFSET_REG_BG2Y_H + .set REG_BG3PA, REG_BASE + OFFSET_REG_BG3PA + .set REG_BG3PB, REG_BASE + OFFSET_REG_BG3PB + .set REG_BG3PC, REG_BASE + OFFSET_REG_BG3PC + .set REG_BG3PD, REG_BASE + OFFSET_REG_BG3PD + .set REG_BG3X_L, REG_BASE + OFFSET_REG_BG3X_L + .set REG_BG3X_H, REG_BASE + OFFSET_REG_BG3X_H + .set REG_BG3Y_L, REG_BASE + OFFSET_REG_BG3Y_L + .set REG_BG3Y_H, REG_BASE + OFFSET_REG_BG3Y_H + .set REG_WIN0H, REG_BASE + OFFSET_REG_WIN0H + .set REG_WIN1H, REG_BASE + OFFSET_REG_WIN1H + .set REG_WIN0V, REG_BASE + OFFSET_REG_WIN0V + .set REG_WIN1V, REG_BASE + OFFSET_REG_WIN1V + .set REG_WININ, REG_BASE + OFFSET_REG_WININ + .set REG_WINOUT, REG_BASE + OFFSET_REG_WINOUT + .set REG_MOSAIC, REG_BASE + OFFSET_REG_MOSAIC + .set REG_BLDCNT, REG_BASE + OFFSET_REG_BLDCNT + .set REG_BLDALPHA, REG_BASE + OFFSET_REG_BLDALPHA + .set REG_BLDY, REG_BASE + OFFSET_REG_BLDY + + .set REG_SOUND1CNT, REG_BASE + OFFSET_REG_SOUND1CNT + .set REG_SOUND1CNT_L, REG_BASE + OFFSET_REG_SOUND1CNT_L + .set REG_NR10, REG_BASE + OFFSET_REG_NR10 + .set REG_SOUND1CNT_H, REG_BASE + OFFSET_REG_SOUND1CNT_H + .set REG_NR11, REG_BASE + OFFSET_REG_NR11 + .set REG_NR12, REG_BASE + OFFSET_REG_NR12 + .set REG_SOUND1CNT_X, REG_BASE + OFFSET_REG_SOUND1CNT_X + .set REG_NR13, REG_BASE + OFFSET_REG_NR13 + .set REG_NR14, REG_BASE + OFFSET_REG_NR14 + .set REG_SOUND2CNT, REG_BASE + OFFSET_REG_SOUND2CNT + .set REG_SOUND2CNT_L, REG_BASE + OFFSET_REG_SOUND2CNT_L + .set REG_NR21, REG_BASE + OFFSET_REG_NR21 + .set REG_NR22, REG_BASE + OFFSET_REG_NR22 + .set REG_SOUND2CNT_H, REG_BASE + OFFSET_REG_SOUND2CNT_H + .set REG_NR23, REG_BASE + OFFSET_REG_NR23 + .set REG_NR24, REG_BASE + OFFSET_REG_NR24 + .set REG_SOUND3CNT, REG_BASE + OFFSET_REG_SOUND3CNT + .set REG_SOUND3CNT_L, REG_BASE + OFFSET_REG_SOUND3CNT_L + .set REG_NR30, REG_BASE + OFFSET_REG_NR30 + .set REG_SOUND3CNT_H, REG_BASE + OFFSET_REG_SOUND3CNT_H + .set REG_NR31, REG_BASE + OFFSET_REG_NR31 + .set REG_NR32, REG_BASE + OFFSET_REG_NR32 + .set REG_SOUND3CNT_X, REG_BASE + OFFSET_REG_SOUND3CNT_X + .set REG_NR33, REG_BASE + OFFSET_REG_NR33 + .set REG_NR34, REG_BASE + OFFSET_REG_NR34 + .set REG_SOUND4CNT, REG_BASE + OFFSET_REG_SOUND4CNT + .set REG_SOUND4CNT_L, REG_BASE + OFFSET_REG_SOUND4CNT_L + .set REG_NR41, REG_BASE + OFFSET_REG_NR41 + .set REG_NR42, REG_BASE + OFFSET_REG_NR42 + .set REG_SOUND4CNT_H, REG_BASE + OFFSET_REG_SOUND4CNT_H + .set REG_NR43, REG_BASE + OFFSET_REG_NR43 + .set REG_NR44, REG_BASE + OFFSET_REG_NR44 + .set REG_SOUNDCNT, REG_BASE + OFFSET_REG_SOUNDCNT + .set REG_SOUNDCNT_L, REG_BASE + OFFSET_REG_SOUNDCNT_L + .set REG_NR50, REG_BASE + OFFSET_REG_NR50 + .set REG_NR51, REG_BASE + OFFSET_REG_NR51 + .set REG_SOUNDCNT_H, REG_BASE + OFFSET_REG_SOUNDCNT_H + .set REG_SOUNDCNT_X, REG_BASE + OFFSET_REG_SOUNDCNT_X + .set REG_NR52, REG_BASE + OFFSET_REG_NR52 + .set REG_SOUNDBIAS, REG_BASE + OFFSET_REG_SOUNDBIAS + .set REG_WAVE_RAM, REG_BASE + OFFSET_REG_WAVE_RAM + .set REG_WAVE_RAM0, REG_BASE + OFFSET_REG_WAVE_RAM0 + .set REG_WAVE_RAM0_L, REG_BASE + OFFSET_REG_WAVE_RAM0_L + .set REG_WAVE_RAM0_H, REG_BASE + OFFSET_REG_WAVE_RAM0_H + .set REG_WAVE_RAM1, REG_BASE + OFFSET_REG_WAVE_RAM1 + .set REG_WAVE_RAM1_L, REG_BASE + OFFSET_REG_WAVE_RAM1_L + .set REG_WAVE_RAM1_H, REG_BASE + OFFSET_REG_WAVE_RAM1_H + .set REG_WAVE_RAM2, REG_BASE + OFFSET_REG_WAVE_RAM2 + .set REG_WAVE_RAM2_L, REG_BASE + OFFSET_REG_WAVE_RAM2_L + .set REG_WAVE_RAM2_H, REG_BASE + OFFSET_REG_WAVE_RAM2_H + .set REG_WAVE_RAM3, REG_BASE + OFFSET_REG_WAVE_RAM3 + .set REG_WAVE_RAM3_L, REG_BASE + OFFSET_REG_WAVE_RAM3_L + .set REG_WAVE_RAM3_H, REG_BASE + OFFSET_REG_WAVE_RAM3_H + .set REG_FIFO, REG_BASE + OFFSET_REG_FIFO + .set REG_FIFO_A, REG_BASE + OFFSET_REG_FIFO_A + .set REG_FIFO_A_L, REG_BASE + OFFSET_REG_FIFO_A_L + .set REG_FIFO_A_H, REG_BASE + OFFSET_REG_FIFO_A_H + .set REG_FIFO_B, REG_BASE + OFFSET_REG_FIFO_B + .set REG_FIFO_B_L, REG_BASE + OFFSET_REG_FIFO_B_L + .set REG_FIFO_B_H, REG_BASE + OFFSET_REG_FIFO_B_H + + .set REG_DMA0, REG_BASE + OFFSET_REG_DMA0 + .set REG_DMA0SAD, REG_BASE + OFFSET_REG_DMA0SAD + .set REG_DMA0SAD_L, REG_BASE + OFFSET_REG_DMA0SAD_L + .set REG_DMA0SAD_H, REG_BASE + OFFSET_REG_DMA0SAD_H + .set REG_DMA0DAD, REG_BASE + OFFSET_REG_DMA0DAD + .set REG_DMA0DAD_L, REG_BASE + OFFSET_REG_DMA0DAD_L + .set REG_DMA0DAD_H, REG_BASE + OFFSET_REG_DMA0DAD_H + .set REG_DMA0CNT, REG_BASE + OFFSET_REG_DMA0CNT + .set REG_DMA0CNT_L, REG_BASE + OFFSET_REG_DMA0CNT_L + .set REG_DMA0CNT_H, REG_BASE + OFFSET_REG_DMA0CNT_H + .set REG_DMA1, REG_BASE + OFFSET_REG_DMA1 + .set REG_DMA1SAD, REG_BASE + OFFSET_REG_DMA1SAD + .set REG_DMA1SAD_L, REG_BASE + OFFSET_REG_DMA1SAD_L + .set REG_DMA1SAD_H, REG_BASE + OFFSET_REG_DMA1SAD_H + .set REG_DMA1DAD, REG_BASE + OFFSET_REG_DMA1DAD + .set REG_DMA1DAD_L, REG_BASE + OFFSET_REG_DMA1DAD_L + .set REG_DMA1DAD_H, REG_BASE + OFFSET_REG_DMA1DAD_H + .set REG_DMA1CNT, REG_BASE + OFFSET_REG_DMA1CNT + .set REG_DMA1CNT_L, REG_BASE + OFFSET_REG_DMA1CNT_L + .set REG_DMA1CNT_H, REG_BASE + OFFSET_REG_DMA1CNT_H + .set REG_DMA2, REG_BASE + OFFSET_REG_DMA2 + .set REG_DMA2SAD, REG_BASE + OFFSET_REG_DMA2SAD + .set REG_DMA2SAD_L, REG_BASE + OFFSET_REG_DMA2SAD_L + .set REG_DMA2SAD_H, REG_BASE + OFFSET_REG_DMA2SAD_H + .set REG_DMA2DAD, REG_BASE + OFFSET_REG_DMA2DAD + .set REG_DMA2DAD_L, REG_BASE + OFFSET_REG_DMA2DAD_L + .set REG_DMA2DAD_H, REG_BASE + OFFSET_REG_DMA2DAD_H + .set REG_DMA2CNT, REG_BASE + OFFSET_REG_DMA2CNT + .set REG_DMA2CNT_L, REG_BASE + OFFSET_REG_DMA2CNT_L + .set REG_DMA2CNT_H, REG_BASE + OFFSET_REG_DMA2CNT_H + .set REG_DMA3, REG_BASE + OFFSET_REG_DMA3 + .set REG_DMA3SAD, REG_BASE + OFFSET_REG_DMA3SAD + .set REG_DMA3SAD_L, REG_BASE + OFFSET_REG_DMA3SAD_L + .set REG_DMA3SAD_H, REG_BASE + OFFSET_REG_DMA3SAD_H + .set REG_DMA3DAD, REG_BASE + OFFSET_REG_DMA3DAD + .set REG_DMA3DAD_L, REG_BASE + OFFSET_REG_DMA3DAD_L + .set REG_DMA3DAD_H, REG_BASE + OFFSET_REG_DMA3DAD_H + .set REG_DMA3CNT, REG_BASE + OFFSET_REG_DMA3CNT + .set REG_DMA3CNT_L, REG_BASE + OFFSET_REG_DMA3CNT_L + .set REG_DMA3CNT_H, REG_BASE + OFFSET_REG_DMA3CNT_H + + .set REG_TM0CNT, REG_BASE + OFFSET_REG_TM0CNT + .set REG_TM0CNT_L, REG_BASE + OFFSET_REG_TM0CNT_L + .set REG_TM0CNT_H, REG_BASE + OFFSET_REG_TM0CNT_H + .set REG_TM1CNT, REG_BASE + OFFSET_REG_TM1CNT + .set REG_TM1CNT_L, REG_BASE + OFFSET_REG_TM1CNT_L + .set REG_TM1CNT_H, REG_BASE + OFFSET_REG_TM1CNT_H + .set REG_TM2CNT, REG_BASE + OFFSET_REG_TM2CNT + .set REG_TM2CNT_L, REG_BASE + OFFSET_REG_TM2CNT_L + .set REG_TM2CNT_H, REG_BASE + OFFSET_REG_TM2CNT_H + .set REG_TM3CNT, REG_BASE + OFFSET_REG_TM3CNT + .set REG_TM3CNT_L, REG_BASE + OFFSET_REG_TM3CNT_L + .set REG_TM3CNT_H, REG_BASE + OFFSET_REG_TM3CNT_H + + .set REG_SIOCNT, REG_BASE + OFFSET_REG_SIOCNT + .set REG_SIODATA8, REG_BASE + OFFSET_REG_SIODATA8 + .set REG_SIODATA32, REG_BASE + OFFSET_REG_SIODATA32 + .set REG_SIOMLT_SEND, REG_BASE + OFFSET_REG_SIOMLT_SEND + .set REG_SIOMLT_RECV, REG_BASE + OFFSET_REG_SIOMLT_RECV + .set REG_SIOMULTI0, REG_BASE + OFFSET_REG_SIOMULTI0 + .set REG_SIOMULTI1, REG_BASE + OFFSET_REG_SIOMULTI1 + .set REG_SIOMULTI2, REG_BASE + OFFSET_REG_SIOMULTI2 + .set REG_SIOMULTI3, REG_BASE + OFFSET_REG_SIOMULTI3 + + .set REG_KEYINPUT, REG_BASE + OFFSET_REG_KEYINPUT + .set REG_KEYCNT, REG_BASE + OFFSET_REG_KEYCNT + + .set REG_RCNT, REG_BASE + OFFSET_REG_RCNT + + .set REG_JOYCNT, REG_BASE + OFFSET_REG_JOYCNT + .set REG_JOYSTAT, REG_BASE + OFFSET_REG_JOYSTAT + .set REG_JOY_RECV, REG_BASE + OFFSET_REG_JOY_RECV + .set REG_JOY_RECV_L, REG_BASE + OFFSET_REG_JOY_RECV_L + .set REG_JOY_RECV_H, REG_BASE + OFFSET_REG_JOY_RECV_H + .set REG_JOY_TRANS, REG_BASE + OFFSET_REG_JOY_TRANS + .set REG_JOY_TRANS_L, REG_BASE + OFFSET_REG_JOY_TRANS_L + .set REG_JOY_TRANS_H, REG_BASE + OFFSET_REG_JOY_TRANS_H + + .set REG_IME, REG_BASE + OFFSET_REG_IME + .set REG_IE, REG_BASE + OFFSET_REG_IE + .set REG_IF, REG_BASE + OFFSET_REG_IF + + .set REG_WAITCNT, REG_BASE + OFFSET_REG_WAITCNT + +@ DMA register constants + + .set DMA_DEST_INC, 0x0000 + .set DMA_DEST_DEC, 0x0020 + .set DMA_DEST_FIXED, 0x0040 + .set DMA_DEST_RELOAD, 0x0060 + .set DMA_SRC_INC, 0x0000 + .set DMA_SRC_DEC, 0x0080 + .set DMA_SRC_FIXED, 0x0100 + .set DMA_REPEAT, 0x0200 + .set DMA_16BIT, 0x0000 + .set DMA_32BIT, 0x0400 + .set DMA_DREQ_ON, 0x0800 + .set DMA_START_NOW, 0x0000 + .set DMA_START_VBLANK, 0x1000 + .set DMA_START_HBLANK, 0x2000 + .set DMA_START_SPECIAL, 0x3000 + .set DMA_INTR_ENABLE, 0x4000 + .set DMA_ENABLE, 0x8000 + +@ OAM attribute constants + + .set OAM_OBJ_NORMAL, 0x00000000 + .set OAM_OBJ_BLEND, 0x00000400 + .set OAM_OBJ_WINDOW, 0x00000800 + + .set OAM_AFFINE_NONE, 0x00000000 + .set OAM_AFFINE_NORMAL_SIZE, 0x00000100 + .set OAM_OBJ_DISABLED, 0x00000200 + .set OAM_AFFINE_DOUBLE_SIZE, 0x00000300 + + .set OAM_MOSAIC_OFF, 0x00000000 + .set OAM_MOSAIC_ON, 0x00001000 + + .set OAM_4BPP, 0x00000000 + .set OAM_8BPP, 0x00002000 + + .set OAM_H_FLIP, 0x10000000 + .set OAM_V_FLIP, 0x20000000 + + .set OAM_SQUARE, 0x00000000 + .set OAM_H_RECTANGLE, 0x00004000 + .set OAM_V_RECTANGLE, 0x00008000 + .set OAM_SIZE_0, 0x00000000 + .set OAM_SIZE_1, 0x40000000 + .set OAM_SIZE_2, 0x80000000 + .set OAM_SIZE_3, 0xc0000000 + + .set OAM_SIZE_8x8, OAM_SIZE_0 | OAM_SQUARE + .set OAM_SIZE_16x16, OAM_SIZE_1 | OAM_SQUARE + .set OAM_SIZE_32x32, OAM_SIZE_2 | OAM_SQUARE + .set OAM_SIZE_64x64, OAM_SIZE_3 | OAM_SQUARE + + .set OAM_SIZE_16x8, OAM_SIZE_0 | OAM_H_RECTANGLE + .set OAM_SIZE_32x8, OAM_SIZE_1 | OAM_H_RECTANGLE + .set OAM_SIZE_32x16, OAM_SIZE_2 | OAM_H_RECTANGLE + .set OAM_SIZE_64x32, OAM_SIZE_3 | OAM_H_RECTANGLE + + .set OAM_SIZE_8x16, OAM_SIZE_0 | OAM_V_RECTANGLE + .set OAM_SIZE_8x32, OAM_SIZE_1 | OAM_V_RECTANGLE + .set OAM_SIZE_16x32, OAM_SIZE_2 | OAM_V_RECTANGLE + .set OAM_SIZE_32x64, OAM_SIZE_3 | OAM_V_RECTANGLE diff --git a/constants/item_data_constants.inc b/constants/item_data_constants.inc new file mode 100644 index 000000000..07ceb6e3b --- /dev/null +++ b/constants/item_data_constants.inc @@ -0,0 +1,5 @@ + .set POCKET_ITEMS, 0x01 + .set POCKET_POKE_BALLS, 0x02 + .set POCKET_TM_HM, 0x03 + .set POCKET_BERRIES, 0x04 + .set POCKET_KEY_ITEMS, 0x05 diff --git a/constants/m4a_constants.inc b/constants/m4a_constants.inc new file mode 100644 index 000000000..62ca5bb55 --- /dev/null +++ b/constants/m4a_constants.inc @@ -0,0 +1,199 @@ + .equiv ID_NUMBER, 0x68736d53 + + .equiv PCM_DMA_BUF_SIZE, 1584 + + .equiv TONEDATA_TYPE_CGB, 0x07 + .equiv TONEDATA_TYPE_FIX, 0x08 + .equiv TONEDATA_TYPE_SPL, 0x40 @ key split + .equiv TONEDATA_TYPE_RHY, 0x80 @ rhythm + + .macro struct_begin + .struct 0 + .endm + + .macro struct_field name, size +\name: + .struct \name + \size + .endm + + struct_begin + struct_field o_SoundInfo_ident, 4 + struct_field o_SoundInfo_pcmDmaCounter, 1 + struct_field o_SoundInfo_reverb, 1 + struct_field o_SoundInfo_maxChans, 1 + struct_field o_SoundInfo_masterVolume, 1 + struct_field o_SoundInfo_freq, 1 + struct_field o_SoundInfo_mode, 1 + struct_field o_SoundInfo_c15, 1 + struct_field o_SoundInfo_pcmDmaPeriod, 1 + struct_field o_SoundInfo_maxLines, 1 + struct_field o_SoundInfo_gap, 3 + struct_field o_SoundInfo_pcmSamplesPerVBlank, 4 + struct_field o_SoundInfo_pcmFreq, 4 + struct_field o_SoundInfo_divFreq, 4 + struct_field o_SoundInfo_cgbChans, 4 + struct_field o_SoundInfo_func, 4 + struct_field o_SoundInfo_intp, 4 + struct_field o_SoundInfo_CgbSound, 4 + struct_field o_SoundInfo_CgbOscOff, 4 + struct_field o_SoundInfo_MidiKeyToCgbFreq, 4 + struct_field o_SoundInfo_MPlayJumpTable, 4 + struct_field o_SoundInfo_plynote, 4 + struct_field o_SoundInfo_ExtVolPit, 4 + struct_field o_SoundInfo_gap2, 16 + struct_field o_SoundInfo_chans, 768 + struct_field o_SoundInfo_pcmBuffer, PCM_DMA_BUF_SIZE * 2 + struct_field SoundInfo_size, 0 + + struct_begin + struct_field o_SoundChannel_status, 1 + struct_field o_SoundChannel_type, 1 + struct_field o_SoundChannel_rightVolume, 1 + struct_field o_SoundChannel_leftVolume, 1 + struct_field o_SoundChannel_attack, 1 + struct_field o_SoundChannel_decay, 1 + struct_field o_SoundChannel_sustain, 1 + struct_field o_SoundChannel_release, 1 + struct_field o_SoundChannel_ky, 1 + struct_field o_SoundChannel_ev, 1 + struct_field o_SoundChannel_er, 1 + struct_field o_SoundChannel_el, 1 + struct_field o_SoundChannel_iev, 1 + struct_field o_SoundChannel_iel, 1 + struct_field o_SoundChannel_d1, 1 + struct_field o_SoundChannel_d2, 1 + struct_field o_SoundChannel_gt, 1 + struct_field o_SoundChannel_mk, 1 + struct_field o_SoundChannel_ve, 1 + struct_field o_SoundChannel_pr, 1 + struct_field o_SoundChannel_rp, 1 + struct_field o_SoundChannel_d3, 3 + struct_field o_SoundChannel_ct, 4 + struct_field o_SoundChannel_fw, 4 + struct_field o_SoundChannel_freq, 4 + struct_field o_SoundChannel_wav, 4 + struct_field o_SoundChannel_cp, 4 + struct_field o_SoundChannel_track, 4 + struct_field o_SoundChannel_pp, 4 + struct_field o_SoundChannel_np, 4 + struct_field o_SoundChannel_d4, 4 + struct_field o_SoundChannel_xpi, 2 + struct_field o_SoundChannel_xpc, 2 + struct_field SoundChannel_size, 0 + + struct_begin + struct_field o_MusicPlayerTrack_flags, 1 + struct_field o_MusicPlayerTrack_wait, 1 + struct_field o_MusicPlayerTrack_patternLevel, 1 + struct_field o_MusicPlayerTrack_repN, 1 + struct_field o_MusicPlayerTrack_gateTime, 1 + struct_field o_MusicPlayerTrack_key, 1 + struct_field o_MusicPlayerTrack_velocity, 1 + struct_field o_MusicPlayerTrack_runningStatus, 1 + struct_field o_MusicPlayerTrack_keyM, 1 + struct_field o_MusicPlayerTrack_pitM, 1 + struct_field o_MusicPlayerTrack_keyShift, 1 + struct_field o_MusicPlayerTrack_keyShiftX, 1 + struct_field o_MusicPlayerTrack_tune, 1 + struct_field o_MusicPlayerTrack_pitX, 1 + struct_field o_MusicPlayerTrack_bend, 1 + struct_field o_MusicPlayerTrack_bendRange, 1 + struct_field o_MusicPlayerTrack_volMR, 1 + struct_field o_MusicPlayerTrack_volML, 1 + struct_field o_MusicPlayerTrack_vol, 1 + struct_field o_MusicPlayerTrack_volX, 1 + struct_field o_MusicPlayerTrack_pan, 1 + struct_field o_MusicPlayerTrack_panX, 1 + struct_field o_MusicPlayerTrack_modM, 1 + struct_field o_MusicPlayerTrack_mod, 1 + struct_field o_MusicPlayerTrack_modT, 1 + struct_field o_MusicPlayerTrack_lfoSpeed, 1 + struct_field o_MusicPlayerTrack_lfoSpeedC, 1 + struct_field o_MusicPlayerTrack_lfoDelay, 1 + struct_field o_MusicPlayerTrack_lfoDelayC, 1 + struct_field o_MusicPlayerTrack_priority, 1 + struct_field o_MusicPlayerTrack_echoVolume, 1 + struct_field o_MusicPlayerTrack_echoLength, 1 + struct_field o_MusicPlayerTrack_chan, 4 + struct_field o_MusicPlayerTrack_ToneData_type, 1 + struct_field o_MusicPlayerTrack_ToneData_key, 1 + struct_field o_MusicPlayerTrack_ToneData_length, 1 + struct_field o_MusicPlayerTrack_ToneData_pan_sweep, 1 + struct_field o_MusicPlayerTrack_ToneData_wav, 4 + struct_field o_MusicPlayerTrack_ToneData_attack, 1 + struct_field o_MusicPlayerTrack_ToneData_decay, 1 + struct_field o_MusicPlayerTrack_ToneData_sustain, 1 + struct_field o_MusicPlayerTrack_ToneData_release, 1 + struct_field o_MusicPlayerTrack_gap, 10 + struct_field o_MusicPlayerTrack_unk_3A, 2 + struct_field o_MusicPlayerTrack_unk_3C, 4 + struct_field o_MusicPlayerTrack_cmdPtr, 4 + struct_field o_MusicPlayerTrack_patternStack, 12 + struct_field MusicPlayerTrack_size, 0 + + .equiv o_MusicPlayerTrack_ToneData_keySplitTable, o_MusicPlayerTrack_ToneData_attack + + struct_begin + struct_field o_MusicPlayerInfo_songHeader, 4 + struct_field o_MusicPlayerInfo_status, 4 + struct_field o_MusicPlayerInfo_trackCount, 1 + struct_field o_MusicPlayerInfo_priority, 1 + struct_field o_MusicPlayerInfo_cmd, 1 + struct_field o_MusicPlayerInfo_unk_B, 1 + struct_field o_MusicPlayerInfo_clock, 4 + struct_field o_MusicPlayerInfo_gap, 8 + struct_field o_MusicPlayerInfo_memAccArea, 4 + struct_field o_MusicPlayerInfo_tempoD, 2 + struct_field o_MusicPlayerInfo_tempoU, 2 + struct_field o_MusicPlayerInfo_tempoI, 2 + struct_field o_MusicPlayerInfo_tempoC, 2 + struct_field o_MusicPlayerInfo_fadeOI, 2 + struct_field o_MusicPlayerInfo_fadeOC, 2 + struct_field o_MusicPlayerInfo_fadeOV, 2 + struct_field o_MusicPlayerInfo_padding, 2 + struct_field o_MusicPlayerInfo_tracks, 4 + struct_field o_MusicPlayerInfo_tone, 4 + struct_field o_MusicPlayerInfo_ident, 4 + struct_field o_MusicPlayerInfo_func, 4 + struct_field o_MusicPlayerInfo_intp, 4 + struct_field MusicPlayerInfo_size, 0 + + struct_begin + struct_field o_CgbChannel_sf, 1 + struct_field o_CgbChannel_ty, 1 + struct_field o_CgbChannel_rightVolume, 1 + struct_field o_CgbChannel_leftVolume, 1 + struct_field o_CgbChannel_at, 1 + struct_field o_CgbChannel_de, 1 + struct_field o_CgbChannel_su, 1 + struct_field o_CgbChannel_re, 1 + struct_field o_CgbChannel_ky, 1 + struct_field o_CgbChannel_ev, 1 + struct_field o_CgbChannel_eg, 1 + struct_field o_CgbChannel_ec, 1 + struct_field o_CgbChannel_echoVolume, 1 + struct_field o_CgbChannel_echoLength, 1 + struct_field o_CgbChannel_d1, 1 + struct_field o_CgbChannel_d2, 1 + struct_field o_CgbChannel_gt, 1 + struct_field o_CgbChannel_mk, 1 + struct_field o_CgbChannel_ve, 1 + struct_field o_CgbChannel_pr, 1 + struct_field o_CgbChannel_rp, 1 + struct_field o_CgbChannel_d3, 3 + struct_field o_CgbChannel_d5, 1 + struct_field o_CgbChannel_sg, 1 + struct_field o_CgbChannel_n4, 1 + struct_field o_CgbChannel_pan, 1 + struct_field o_CgbChannel_panMask, 1 + struct_field o_CgbChannel_mo, 1 + struct_field o_CgbChannel_le, 1 + struct_field o_CgbChannel_sw, 1 + struct_field o_CgbChannel_fr, 4 + struct_field o_CgbChannel_wp, 4 + struct_field o_CgbChannel_cp, 4 + struct_field o_CgbChannel_tp, 4 + struct_field o_CgbChannel_pp, 4 + struct_field o_CgbChannel_np, 4 + struct_field o_CgbChannel_d4, 8 + struct_field CgbChannel_size, 0 diff --git a/constants/misc_constants.inc b/constants/misc_constants.inc new file mode 100644 index 000000000..5f4330928 --- /dev/null +++ b/constants/misc_constants.inc @@ -0,0 +1,51 @@ + .set TRUE, 1 + .set FALSE, 0 + + .set NULL, 0 + + .set POKEMON_NAME_LENGTH, 11 + .set MOVE_NAME_LENGTH, 13 + + .set SPRITE_SIZE_8x8, (OAM_SIZE_0 >> 28) | (OAM_SQUARE >> 14) + .set SPRITE_SIZE_16x16, (OAM_SIZE_1 >> 28) | (OAM_SQUARE >> 14) + .set SPRITE_SIZE_32x32, (OAM_SIZE_2 >> 28) | (OAM_SQUARE >> 14) + .set SPRITE_SIZE_64x64, (OAM_SIZE_3 >> 28) | (OAM_SQUARE >> 14) + + .set SPRITE_SIZE_16x8, (OAM_SIZE_0 >> 28) | (OAM_H_RECTANGLE >> 14) + .set SPRITE_SIZE_32x8, (OAM_SIZE_1 >> 28) | (OAM_H_RECTANGLE >> 14) + .set SPRITE_SIZE_32x16, (OAM_SIZE_2 >> 28) | (OAM_H_RECTANGLE >> 14) + .set SPRITE_SIZE_64x32, (OAM_SIZE_3 >> 28) | (OAM_H_RECTANGLE >> 14) + + .set SPRITE_SIZE_8x16, (OAM_SIZE_0 >> 28) | (OAM_V_RECTANGLE >> 14) + .set SPRITE_SIZE_8x32, (OAM_SIZE_1 >> 28) | (OAM_V_RECTANGLE >> 14) + .set SPRITE_SIZE_16x32, (OAM_SIZE_2 >> 28) | (OAM_V_RECTANGLE >> 14) + .set SPRITE_SIZE_32x64, (OAM_SIZE_3 >> 28) | (OAM_V_RECTANGLE >> 14) + + .set OBJ_IMAGE_ANIM_H_FLIP, 1 << 6 + .set OBJ_IMAGE_ANIM_V_FLIP, 1 << 7 + + .equiv DIR_SOUTH, 1 + .equiv DIR_NORTH, 2 + .equiv DIR_WEST, 3 + .equiv DIR_EAST, 4 + + .equiv MALE, 0 + .equiv FEMALE, 1 + + .ifdef ENGLISH + .equiv GAME_LANGUAGE, 2 + .else + .ifdef GERMAN + .equiv GAME_LANGUAGE, 5 + .endif + .endif + + .equiv ENEMY_TYPE1, 0 + .equiv ENEMY_TYPE2, 1 + .equiv PLAYER_TYPE1, 2 + .equiv PLAYER_TYPE2, 3 + .equiv CURRENT_MOVE, 4 + + .equiv LESS_THAN, 0 + .equiv GREATER_THAN, 1 + .equiv EQUAL, 2 diff --git a/constants/pokemon_data_constants.inc b/constants/pokemon_data_constants.inc new file mode 100644 index 000000000..cf5d4df41 --- /dev/null +++ b/constants/pokemon_data_constants.inc @@ -0,0 +1,78 @@ + .set NATURE_HARDY, 0 + .set NATURE_LONELY, 1 + .set NATURE_BRAVE, 2 + .set NATURE_ADAMANT, 3 + .set NATURE_NAUGHTY, 4 + .set NATURE_BOLD, 5 + .set NATURE_DOCILE, 6 + .set NATURE_RELAXED, 7 + .set NATURE_IMPISH, 8 + .set NATURE_LAX, 9 + .set NATURE_TIMID, 10 + .set NATURE_HASTY, 11 + .set NATURE_SERIOUS, 12 + .set NATURE_JOLLY, 13 + .set NATURE_NAIVE, 14 + .set NATURE_MODEST, 15 + .set NATURE_MILD, 16 + .set NATURE_QUIET, 17 + .set NATURE_BASHFUL, 18 + .set NATURE_RASH, 19 + .set NATURE_CALM, 20 + .set NATURE_GENTLE, 21 + .set NATURE_SASSY, 22 + .set NATURE_CAREFUL, 23 + .set NATURE_QUIRKY, 24 + + .set GROWTH_MEDIUM_FAST, 0x00 + .set GROWTH_ERRATIC, 0x01 + .set GROWTH_FLUCTUATING, 0x02 + .set GROWTH_MEDIUM_SLOW, 0x03 + .set GROWTH_FAST, 0x04 + .set GROWTH_SLOW, 0x05 + + .set EGG_GROUP_NONE, 0x00 + .set EGG_GROUP_MONSTER, 0x01 + .set EGG_GROUP_WATER_1, 0x02 + .set EGG_GROUP_BUG, 0x03 + .set EGG_GROUP_FLYING, 0x04 + .set EGG_GROUP_FIELD, 0x05 + .set EGG_GROUP_FAIRY, 0x06 + .set EGG_GROUP_GRASS, 0x07 + .set EGG_GROUP_HUMAN_LIKE, 0x08 + .set EGG_GROUP_WATER_3, 0x09 + .set EGG_GROUP_MINERAL, 0x0a + .set EGG_GROUP_AMORPHOUS, 0x0b + .set EGG_GROUP_WATER_2, 0x0c + .set EGG_GROUP_DITTO, 0x0d + .set EGG_GROUP_DRAGON, 0x0e + .set EGG_GROUP_UNDISCOVERED, 0x0f + + .set BODY_COLOR_RED, 0x00 + .set BODY_COLOR_BLUE, 0x01 + .set BODY_COLOR_YELLOW, 0x02 + .set BODY_COLOR_GREEN, 0x03 + .set BODY_COLOR_BLACK, 0x04 + .set BODY_COLOR_BROWN, 0x05 + .set BODY_COLOR_PURPLE, 0x06 + .set BODY_COLOR_GRAY, 0x07 + .set BODY_COLOR_WHITE, 0x08 + .set BODY_COLOR_PINK, 0x09 + + .set F_SUMMARY_SCREEN_FLIP_SPRITE, 0x80 + + .set EVO_FRIENDSHIP, 0x0001 @ Pokémon levels up with friendship ≥ 220 + .set EVO_FRIENDSHIP_DAY, 0x0002 @ Pokémon levels up during the day with friendship ≥ 220 + .set EVO_FRIENDSHIP_NIGHT, 0x0003 @ Pokémon levels up at night with friendship ≥ 220 + .set EVO_LEVEL, 0x0004 @ Pokémon reaches the specified level + .set EVO_TRADE, 0x0005 @ Pokémon is traded + .set EVO_TRADE_ITEM, 0x0006 @ Pokémon is traded while it's holding the specified item + .set EVO_ITEM, 0x0007 @ specified item is used on Pokémon + .set EVO_LEVEL_ATK_GT_DEF, 0x0008 @ Pokémon reaches the specified level with attack > defense + .set EVO_LEVEL_ATK_EQ_DEF, 0x0009 @ Pokémon reaches the specified level with attack = defense + .set EVO_LEVEL_ATK_LT_DEF, 0x000a @ Pokémon reaches the specified level with attack < defense + .set EVO_LEVEL_SILCOON, 0x000b @ Pokémon reaches the specified level with a Silcoon personality value + .set EVO_LEVEL_CASCOON, 0x000c @ Pokémon reaches the specified level with a Cascoon personality value + .set EVO_LEVEL_NINJASK, 0x000d @ Pokémon reaches the specified level (special value for Ninjask) + .set EVO_LEVEL_SHEDINJA, 0x000e @ Pokémon reaches the specified level (special value for Shedinja) + .set EVO_BEAUTY, 0x000f @ Pokémon levels up with beauty ≥ specified value diff --git a/constants/trainer_constants.inc b/constants/trainer_constants.inc new file mode 100644 index 000000000..48ed3036e --- /dev/null +++ b/constants/trainer_constants.inc @@ -0,0 +1,243 @@ + .set TRAINER_CLASS_AQUA_LEADER, 0 + .set TRAINER_CLASS_TEAM_AQUA_M, 1 + .set TRAINER_CLASS_TEAM_AQUA_F, 2 + .set TRAINER_CLASS_AROMA_LADY, 3 + .set TRAINER_CLASS_RUIN_MANIAC, 4 + .set TRAINER_CLASS_INTERVIEWER, 5 + .set TRAINER_CLASS_TUBER_F, 6 + .set TRAINER_CLASS_TUBER_M, 7 + .set TRAINER_CLASS_COOL_TRAINER_M, 8 + .set TRAINER_CLASS_COOL_TRAINER_F, 9 + .set TRAINER_CLASS_HEX_MANIAC, 10 + .set TRAINER_CLASS_LADY, 11 + .set TRAINER_CLASS_BEAUTY, 12 + .set TRAINER_CLASS_RICH_BOY, 13 + .set TRAINER_CLASS_POKEMANIAC, 14 + .set TRAINER_CLASS_SWIMMER_M, 15 + .set TRAINER_CLASS_BLACK_BELT, 16 + .set TRAINER_CLASS_GUITARIST, 17 + .set TRAINER_CLASS_KINDLER, 18 + .set TRAINER_CLASS_CAMPER, 19 + .set TRAINER_CLASS_BUG_MANIAC, 20 + .set TRAINER_CLASS_PSYCHIC_M, 21 + .set TRAINER_CLASS_PSYCHIC_F, 22 + .set TRAINER_CLASS_GENTLEMAN, 23 + .set TRAINER_CLASS_ELITE_FOUR_M, 24 + .set TRAINER_CLASS_ELITE_FOUR_F, 25 + .set TRAINER_CLASS_LEADER_F, 26 + .set TRAINER_CLASS_LEADER_M, 27 + .set TRAINER_CLASS_LEADER_MF, 28 + .set TRAINER_CLASS_SCHOOL_KID_M, 29 + .set TRAINER_CLASS_SCHOOL_KID_F, 30 + .set TRAINER_CLASS_SR_AND_JR, 31 + .set TRAINER_CLASS_POKEFAN_M, 32 + .set TRAINER_CLASS_POKEFAN_F, 33 + .set TRAINER_CLASS_EXPERT_M, 34 + .set TRAINER_CLASS_EXPERT_F, 35 + .set TRAINER_CLASS_YOUNGSTER, 36 + .set TRAINER_CLASS_CHAMPION, 37 + .set TRAINER_CLASS_FISHERMAN, 38 + .set TRAINER_CLASS_CYCLING_TRIATHLETE_M, 39 + .set TRAINER_CLASS_CYCLING_TRIATHLETE_F, 40 + .set TRAINER_CLASS_RUNNING_TRIATHLETE_M, 41 + .set TRAINER_CLASS_RUNNING_TRIATHLETE_F, 42 + .set TRAINER_CLASS_SWIMMING_TRIATHLETE_M, 43 + .set TRAINER_CLASS_SWIMMING_TRIATHLETE_F, 44 + .set TRAINER_CLASS_DRAGON_TAMER, 45 + .set TRAINER_CLASS_BIRD_KEEPER, 46 + .set TRAINER_CLASS_NINJA_BOY, 47 + .set TRAINER_CLASS_BATTLE_GIRL, 48 + .set TRAINER_CLASS_PARASOL_LADY, 49 + .set TRAINER_CLASS_SWIMMER_F, 50 + .set TRAINER_CLASS_PICNICKER, 51 + .set TRAINER_CLASS_TWINS, 52 + .set TRAINER_CLASS_SAILOR, 53 + .set TRAINER_CLASS_BOARDER_1, 54 + .set TRAINER_CLASS_BOARDER_2, 55 + .set TRAINER_CLASS_COLLECTOR, 56 + .set TRAINER_CLASS_WALLY, 57 + .set TRAINER_CLASS_BRENDAN_1, 58 + .set TRAINER_CLASS_BRENDAN_2, 59 + .set TRAINER_CLASS_BRENDAN_3, 60 + .set TRAINER_CLASS_MAY_1, 61 + .set TRAINER_CLASS_MAY_2, 62 + .set TRAINER_CLASS_MAY_3, 63 + .set TRAINER_CLASS_POKEMON_BREEDER_M, 64 + .set TRAINER_CLASS_POKEMON_BREEDER_F, 65 + .set TRAINER_CLASS_POKEMON_RANGER_M, 66 + .set TRAINER_CLASS_POKEMON_RANGER_F, 67 + .set TRAINER_CLASS_MAGMA_LEADER, 68 + .set TRAINER_CLASS_TEAM_MAGMA_M, 69 + .set TRAINER_CLASS_TEAM_MAGMA_F, 70 + .set TRAINER_CLASS_LASS, 71 + .set TRAINER_CLASS_BUG_CATCHER, 72 + .set TRAINER_CLASS_HIKER, 73 + .set TRAINER_CLASS_YOUNG_COUPLE, 74 + .set TRAINER_CLASS_OLD_COUPLE, 75 + .set TRAINER_CLASS_SIS_AND_BRO, 76 + + .set TRAINER_PIC_BRENDAN, 0 + .set TRAINER_PIC_MAY, 1 + .set TRAINER_PIC_LASS, 2 + .set TRAINER_PIC_YOUNGSTER, 3 + .set TRAINER_PIC_HIKER, 4 + .set TRAINER_PIC_BEAUTY, 5 + .set TRAINER_PIC_FISHERMAN, 6 + .set TRAINER_PIC_LADY, 7 + .set TRAINER_PIC_CYCLING_TRIATHLETE_M, 8 + .set TRAINER_PIC_AQUA_GRUNT_M, 9 + .set TRAINER_PIC_TWINS, 10 + .set TRAINER_PIC_SWIMMER_F, 11 + .set TRAINER_PIC_BUG_CATCHER, 12 + .set TRAINER_PIC_SCHOOL_KID_M, 13 + .set TRAINER_PIC_RICH_BOY, 14 + .set TRAINER_PIC_SR_AND_JR, 15 + .set TRAINER_PIC_BLACK_BELT, 16 + .set TRAINER_PIC_WALLY, 17 + .set TRAINER_PIC_AQUA_GRUNT_F, 18 + .set TRAINER_PIC_TUBER_F, 19 + .set TRAINER_PIC_HEX_MANIAC, 20 + .set TRAINER_PIC_POKEMON_BREEDER_F, 21 + .set TRAINER_PIC_MAGMA_GRUNT_M, 22 + .set TRAINER_PIC_MAGMA_GRUNT_F, 23 + .set TRAINER_PIC_INTERVIEWER, 24 + .set TRAINER_PIC_TUBER_M, 25 + .set TRAINER_PIC_YOUNG_COUPLE, 26 + .set TRAINER_PIC_GUITARIST, 27 + .set TRAINER_PIC_GENTLEMAN, 28 + .set TRAINER_PIC_STEVEN, 29 + .set TRAINER_PIC_MAXIE, 30 + .set TRAINER_PIC_RUNNING_TRIATHLETE_F, 31 + .set TRAINER_PIC_RUNNING_TRIATHLETE_M, 32 + .set TRAINER_PIC_BATTLE_GIRL, 33 + .set TRAINER_PIC_CYCLING_TRIATHLETE_F, 34 + .set TRAINER_PIC_SWIMMER_M, 35 + .set TRAINER_PIC_POKEFAN_F, 36 + .set TRAINER_PIC_EXPERT_M, 37 + .set TRAINER_PIC_EXPERT_F, 38 + .set TRAINER_PIC_SWIMMING_TRIATHLETE_M, 39 + .set TRAINER_PIC_SWIMMING_TRIATHLETE_F, 40 + .set TRAINER_PIC_DRAGON_TAMER, 41 + .set TRAINER_PIC_BIRD_KEEPER, 42 + .set TRAINER_PIC_NINJA_BOY, 43 + .set TRAINER_PIC_PARASOL_LADY, 44 + .set TRAINER_PIC_BUG_MANIAC, 45 + .set TRAINER_PIC_SAILOR, 46 + .set TRAINER_PIC_COLLECTOR, 47 + .set TRAINER_PIC_POKEMON_BREEDER_M, 48 + .set TRAINER_PIC_POKEMON_RANGER_M, 49 + .set TRAINER_PIC_POKEMON_RANGER_F, 50 + .set TRAINER_PIC_MAGMA_ADMIN_M, 51 + .set TRAINER_PIC_MAGMA_ADMIN_F, 52 + .set TRAINER_PIC_AROMA_LADY, 53 + .set TRAINER_PIC_RUIN_MANIAC, 54 + .set TRAINER_PIC_COOL_TRAINER_M, 55 + .set TRAINER_PIC_COOL_TRAINER_F, 56 + .set TRAINER_PIC_POKEMANIAC, 57 + .set TRAINER_PIC_KINDLER, 58 + .set TRAINER_PIC_CAMPER, 59 + .set TRAINER_PIC_PICNICKER, 60 + .set TRAINER_PIC_PSYCHIC_M, 61 + .set TRAINER_PIC_PSYCHIC_F, 62 + .set TRAINER_PIC_SCHOOL_KID_F, 63 + .set TRAINER_PIC_POKEFAN_M, 64 + .set TRAINER_PIC_SIS_AND_BRO, 65 + .set TRAINER_PIC_OLD_COUPLE, 66 + .set TRAINER_PIC_AQUA_ADMIN_M, 67 + .set TRAINER_PIC_AQUA_ADMIN_F, 68 + .set TRAINER_PIC_UNUSED_AQUA, 69 + .set TRAINER_PIC_ARCHIE, 70 + .set TRAINER_PIC_ROXANNE, 71 + .set TRAINER_PIC_BRAWLY, 72 + .set TRAINER_PIC_WATTSON, 73 + .set TRAINER_PIC_FLANNERY, 74 + .set TRAINER_PIC_NORMAN, 75 + .set TRAINER_PIC_WINONA, 76 + .set TRAINER_PIC_TATE_AND_LIZA, 77 + .set TRAINER_PIC_WALLACE, 78 + .set TRAINER_PIC_SIDNEY, 79 + .set TRAINER_PIC_PHOEBE, 80 + .set TRAINER_PIC_GLACIA, 81 + .set TRAINER_PIC_DRAKE, 82 + + .set TRAINER_CLASS_NAME_POKEMON_TRAINER_1, 0 + .set TRAINER_CLASS_NAME_POKEMON_TRAINER_2, 1 + .set TRAINER_CLASS_NAME_AQUA_LEADER, 2 + .set TRAINER_CLASS_NAME_TEAM_AQUA, 3 + .set TRAINER_CLASS_NAME_AQUA_ADMIN, 4 + .set TRAINER_CLASS_NAME_AROMA_LADY, 5 + .set TRAINER_CLASS_NAME_RUIN_MANIAC, 6 + .set TRAINER_CLASS_NAME_INTERVIEWER, 7 + .set TRAINER_CLASS_NAME_TUBER_F, 8 + .set TRAINER_CLASS_NAME_TUBER_M, 9 + .set TRAINER_CLASS_NAME_COOL_TRAINER, 10 + .set TRAINER_CLASS_NAME_HEX_MANIAC, 11 + .set TRAINER_CLASS_NAME_LADY, 12 + .set TRAINER_CLASS_NAME_BEAUTY, 13 + .set TRAINER_CLASS_NAME_RICH_BOY, 14 + .set TRAINER_CLASS_NAME_POKEMANIAC, 15 + .set TRAINER_CLASS_NAME_SWIMMER_M, 16 + .set TRAINER_CLASS_NAME_BLACK_BELT, 17 + .set TRAINER_CLASS_NAME_GUITARIST, 18 + .set TRAINER_CLASS_NAME_KINDLER, 19 + .set TRAINER_CLASS_NAME_CAMPER, 20 + .set TRAINER_CLASS_NAME_BUG_MANIAC, 21 + .set TRAINER_CLASS_NAME_PSYCHIC, 22 + .set TRAINER_CLASS_NAME_GENTLEMAN, 23 + .set TRAINER_CLASS_NAME_ELITE_FOUR, 24 + .set TRAINER_CLASS_NAME_LEADER, 25 + .set TRAINER_CLASS_NAME_SCHOOL_KID, 26 + .set TRAINER_CLASS_NAME_SR_AND_JR, 27 + .set TRAINER_CLASS_NAME_WINSTRATE, 28 + .set TRAINER_CLASS_NAME_POKEFAN, 29 + .set TRAINER_CLASS_NAME_EXPERT, 30 + .set TRAINER_CLASS_NAME_YOUNGSTER, 31 + .set TRAINER_CLASS_NAME_CHAMPION, 32 + .set TRAINER_CLASS_NAME_FISHERMAN, 33 + .set TRAINER_CLASS_NAME_TRIATHLETE, 34 + .set TRAINER_CLASS_NAME_DRAGON_TAMER, 35 + .set TRAINER_CLASS_NAME_BIRD_KEEPER, 36 + .set TRAINER_CLASS_NAME_NINJA_BOY, 37 + .set TRAINER_CLASS_NAME_BATTLE_GIRL, 38 + .set TRAINER_CLASS_NAME_PARASOL_LADY, 39 + .set TRAINER_CLASS_NAME_SWIMMER_F, 40 + .set TRAINER_CLASS_NAME_PICNICKER, 41 + .set TRAINER_CLASS_NAME_TWINS, 42 + .set TRAINER_CLASS_NAME_SAILOR, 43 + .set TRAINER_CLASS_NAME_BOARDER, 44 + .set TRAINER_CLASS_NAME_COLLECTOR, 45 + .set TRAINER_CLASS_NAME_POKEMON_TRAINER_3, 46 + .set TRAINER_CLASS_NAME_POKEMON_BREEDER, 47 + .set TRAINER_CLASS_NAME_POKEMON_RANGER, 48 + .set TRAINER_CLASS_NAME_MAGMA_LEADER, 49 + .set TRAINER_CLASS_NAME_TEAM_MAGMA, 50 + .set TRAINER_CLASS_NAME_MAGMA_ADMIN, 51 + .set TRAINER_CLASS_NAME_LASS, 52 + .set TRAINER_CLASS_NAME_BUG_CATCHER, 53 + .set TRAINER_CLASS_NAME_HIKER, 54 + .set TRAINER_CLASS_NAME_YOUNG_COUPLE, 55 + .set TRAINER_CLASS_NAME_OLD_COUPLE, 56 + .set TRAINER_CLASS_NAME_SIS_AND_BRO, 57 + + .set TRAINER_ENCOUNTER_MUSIC_MALE, 0 @ standard male encounter music + .set TRAINER_ENCOUNTER_MUSIC_FEMALE, 1 @ standard female encounter music + .set TRAINER_ENCOUNTER_MUSIC_GIRL, 2 @ used for male Tubers and Young Couples too + .set TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS, 3 + .set TRAINER_ENCOUNTER_MUSIC_INTENSE, 4 + .set TRAINER_ENCOUNTER_MUSIC_COOL, 5 + .set TRAINER_ENCOUNTER_MUSIC_AQUA, 6 + .set TRAINER_ENCOUNTER_MUSIC_MAGMA, 7 + .set TRAINER_ENCOUNTER_MUSIC_SWIMMER, 8 + .set TRAINER_ENCOUNTER_MUSIC_TWINS, 9 @ used for other trainer classes too + .set TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR, 10 + .set TRAINER_ENCOUNTER_MUSIC_HIKER, 11 @ used for other trainer classes too + .set TRAINER_ENCOUNTER_MUSIC_INTERVIEWER, 12 + .set TRAINER_ENCOUNTER_MUSIC_RICH, 13 @ Rich Boys and Gentlemen + + .set F_TRAINER_FEMALE, 1 << 7 + +@ All trainer parties specify the IV, level, and species for each Pokémon in the +@ party. Some trainer parties also specify held items and custom moves for each +@ Pokémon. + .set F_TRAINER_PARTY_CUSTOM_MOVESET, 1 << 0 + .set F_TRAINER_PARTY_HELD_ITEM, 1 << 1 diff --git a/constants/type_constants.inc b/constants/type_constants.inc new file mode 100644 index 000000000..c6611bd8a --- /dev/null +++ b/constants/type_constants.inc @@ -0,0 +1,18 @@ + .set TYPE_NORMAL, 0x00 + .set TYPE_FIGHTING, 0x01 + .set TYPE_FLYING, 0x02 + .set TYPE_POISON, 0x03 + .set TYPE_GROUND, 0x04 + .set TYPE_ROCK, 0x05 + .set TYPE_BUG, 0x06 + .set TYPE_GHOST, 0x07 + .set TYPE_STEEL, 0x08 + .set TYPE_MYSTERY, 0x09 + .set TYPE_FIRE, 0x0a + .set TYPE_WATER, 0x0b + .set TYPE_GRASS, 0x0c + .set TYPE_ELECTRIC, 0x0d + .set TYPE_PSYCHIC, 0x0e + .set TYPE_ICE, 0x0f + .set TYPE_DRAGON, 0x10 + .set TYPE_DARK, 0x11 diff --git a/constants/variables.inc b/constants/variables.inc new file mode 100644 index 000000000..ab488a97e --- /dev/null +++ b/constants/variables.inc @@ -0,0 +1,6 @@ + .equiv FACING, 0x800C + .equiv RESULT, 0x800D + .equiv ITEM_ID, 0x800E + .equiv LAST_TALKED, 0x800F + .equiv CONTEST_RANK, 0x8010 + .equiv CONTEST_CATEGORY, 0x8011 diff --git a/constants/version.inc b/constants/version.inc new file mode 100644 index 000000000..c93e439f4 --- /dev/null +++ b/constants/version.inc @@ -0,0 +1,91 @@ + .ifdef SAPPHIRE + .equiv GAME_VERSION, 1 + .else + .equiv GAME_VERSION, 2 + .endif + + .ifdef SAPPHIRE + .set BGM_EVIL_TEAM, BGM_AQA_0 + .set BGM_GOOD_TEAM, BGM_MGM0 + .else + .set BGM_EVIL_TEAM, BGM_MGM0 + .set BGM_GOOD_TEAM, BGM_AQA_0 + .endc + + .ifdef SAPPHIRE + .set ITEM_RED_OR_BLUE_ORB, ITEM_BLUE_ORB + .else + .set ITEM_RED_OR_BLUE_ORB, ITEM_RED_ORB + .endif + + .ifdef SAPPHIRE + .set SPECIES_GROUDON_OR_KYOGRE, SPECIES_KYOGRE + .else + .set SPECIES_GROUDON_OR_KYOGRE, SPECIES_GROUDON + .endif + + .ifdef SAPPHIRE + .set SPECIES_LATIAS_OR_LATIOS, SPECIES_LATIOS + .else + .set SPECIES_LATIAS_OR_LATIOS, SPECIES_LATIAS + .endif + + .ifdef SAPPHIRE + .set OPPONENT_PETALBURG_WOODS_GRUNT, OPPONENT_GRUNT_9 + .set OPPONENT_RUSTURF_TUNNEL_GRUNT, OPPONENT_GRUNT_15 + .set OPPONENT_MUSEUM_2F_GRUNT_1, OPPONENT_GRUNT_19 + .set OPPONENT_MUSEUM_2F_GRUNT_2, OPPONENT_GRUNT_20 + .set OPPONENT_514, OPPONENT_HECTOR_1 + .set OPPONENT_MT_CHIMNEY_GRUNT_1, OPPONENT_MATT_2 + .set OPPONENT_MT_CHIMNEY_GRUNT_2, OPPONENT_GRUNT_13 + .set OPPONENT_HIDEOUT_1F_GRUNT, OPPONENT_GRUNT_1 + .set OPPONENT_HIDEOUT_B1F_GRUNT_1, OPPONENT_GRUNT_2 + .set OPPONENT_HIDEOUT_B1F_GRUNT_2, OPPONENT_GRUNT_3 + .set OPPONENT_HIDEOUT_B1F_GRUNT_3, OPPONENT_GRUNT_26 + .set OPPONENT_HIDEOUT_B2F_GRUNT_1, OPPONENT_MATT_1 + .set OPPONENT_HIDEOUT_B2F_GRUNT_2, OPPONENT_GRUNT_4 + .set OPPONENT_HIDEOUT_B2F_GRUNT_3, OPPONENT_GRUNT_27 + .set OPPONENT_SEAFLOOR_CAVERN_GRUNT_1, OPPONENT_GRUNT_5 + .set OPPONENT_SEAFLOOR_CAVERN_GRUNT_2, OPPONENT_GRUNT_6 + .set OPPONENT_SEAFLOOR_CAVERN_GRUNT_3, OPPONENT_SHELLY_2 + .set OPPONENT_SEAFLOOR_CAVERN_GRUNT_4, OPPONENT_GRUNT_7 + .set OPPONENT_SEAFLOOR_CAVERN_GRUNT_5, OPPONENT_ARCHIE_2 + .set OPPONENT_MT_CHIMNEY_GRUNT_3, OPPONENT_ARCHIE_3 + .set OPPONENT_MT_PYRE_SUMMIT_GRUNT_1, OPPONENT_GRUNT_22 + .set OPPONENT_MT_PYRE_SUMMIT_GRUNT_2, OPPONENT_GRUNT_23 + .set OPPONENT_MT_PYRE_SUMMIT_GRUNT_3, OPPONENT_GRUNT_24 + .set OPPONENT_WEATHER_INSTITUTE_GRUNT_1, OPPONENT_GRUNT_16 + .set OPPONENT_WEATHER_INSTITUTE_GRUNT_2, OPPONENT_GRUNT_25 + .set OPPONENT_WEATHER_INSTITUTE_GRUNT_3, OPPONENT_GRUNT_17 + .set OPPONENT_WEATHER_INSTITUTE_GRUNT_4, OPPONENT_GRUNT_18 + .set OPPONENT_WEATHER_INSTITUTE_GRUNT_5, OPPONENT_SHELLY_1 + .else + .set OPPONENT_PETALBURG_WOODS_GRUNT, OPPONENT_GRUNT_36 + .set OPPONENT_RUSTURF_TUNNEL_GRUNT, OPPONENT_GRUNT_42 + .set OPPONENT_MUSEUM_2F_GRUNT_1, OPPONENT_GRUNT_46 + .set OPPONENT_MUSEUM_2F_GRUNT_2, OPPONENT_GRUNT_47 + .set OPPONENT_514, OPPONENT_HECTOR_2 + .set OPPONENT_MT_CHIMNEY_GRUNT_1, OPPONENT_TABITHA_2 + .set OPPONENT_MT_CHIMNEY_GRUNT_2, OPPONENT_GRUNT_40 + .set OPPONENT_HIDEOUT_1F_GRUNT, OPPONENT_GRUNT_28 + .set OPPONENT_HIDEOUT_B1F_GRUNT_1, OPPONENT_GRUNT_29 + .set OPPONENT_HIDEOUT_B1F_GRUNT_2, OPPONENT_GRUNT_30 + .set OPPONENT_HIDEOUT_B1F_GRUNT_3, OPPONENT_GRUNT_53 + .set OPPONENT_HIDEOUT_B2F_GRUNT_1, OPPONENT_TABITHA_1 + .set OPPONENT_HIDEOUT_B2F_GRUNT_2, OPPONENT_GRUNT_31 + .set OPPONENT_HIDEOUT_B2F_GRUNT_3, OPPONENT_GRUNT_54 + .set OPPONENT_SEAFLOOR_CAVERN_GRUNT_1, OPPONENT_GRUNT_32 + .set OPPONENT_SEAFLOOR_CAVERN_GRUNT_2, OPPONENT_GRUNT_33 + .set OPPONENT_SEAFLOOR_CAVERN_GRUNT_3, OPPONENT_COURTNEY_2 + .set OPPONENT_SEAFLOOR_CAVERN_GRUNT_4, OPPONENT_GRUNT_34 + .set OPPONENT_SEAFLOOR_CAVERN_GRUNT_5, OPPONENT_MAXIE_2 + .set OPPONENT_MT_CHIMNEY_GRUNT_3, OPPONENT_MAXIE_3 + .set OPPONENT_MT_PYRE_SUMMIT_GRUNT_1, OPPONENT_GRUNT_49 + .set OPPONENT_MT_PYRE_SUMMIT_GRUNT_2, OPPONENT_GRUNT_50 + .set OPPONENT_MT_PYRE_SUMMIT_GRUNT_3, OPPONENT_GRUNT_51 + .set OPPONENT_WEATHER_INSTITUTE_GRUNT_1, OPPONENT_GRUNT_43 + .set OPPONENT_WEATHER_INSTITUTE_GRUNT_2, OPPONENT_GRUNT_52 + .set OPPONENT_WEATHER_INSTITUTE_GRUNT_3, OPPONENT_GRUNT_44 + .set OPPONENT_WEATHER_INSTITUTE_GRUNT_4, OPPONENT_GRUNT_45 + .set OPPONENT_WEATHER_INSTITUTE_GRUNT_5, OPPONENT_COURTNEY_1 + .endif |