# Version 1.9.0

```md
## How to update
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
- Once you have your remote set up, run the command `git pull RHH expansion/1.9.0`.
```

## 🌋 *REFACTORS* 🌋
📜 = Has a migration script.
* [agbcc has been deprecated](#agbcc-has-been-deprecated-by-mrgriffin-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4989)
* [Added migration script README](#added-migration-script-readme-by-bassoonian-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4719)
* [Removed Gen 9 settings for out-of-battle abilities](#removed-gen-9-settings-for-out-of-battle-abilities-by-asparaguseduardo-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4282)
* 📜[Customizable Frontier Pokémon sets](#customizable-frontier-pokémon-sets-by-ghoulslash-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4313)
* [Replaced VARARG_8 uses with recursive macros](#replaced-vararg_8-uses-with-recursive-macros-by-cfmnephrite-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4232)
* 📜[Competitive-formatted parties](#competitive-formatted-parties-by-mrgriffin-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull3545)
* [Terastallization](#terastallization-by-agustingdlv-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4110)
* [Combined weather set commands](#combined-weather-set-commands-by-alexon1ine-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4434)
* [Full official GF names for species/items/moves/types](#full-official-gf-names-for-speciesitemsmovestypes-by-mrgriffin-znogyrop-and-cfmnephrite-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4241)
* [Automatically display TM/HM icons based on their move](#automatically-display-tmhm-icons-based-on-their-move-by-sneed69-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4452)
* [Set `GiveBoxMonIntialMoveset_Fast` as default](#set-giveboxmonintialmoveset_fast-as-default-by-alexon1ine-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4470)
* [Changed Battle Frontier validation to species flag](#changed-battle-frontier-validation-to-species-flag-by-kittenchilly-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4341)
* [Replaced HP checks with `IsBattlerAlive`](#replaced-hp-checks-with-isbattleralive-by-ghoulslash-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4429)
* [Removed redundant `MOVE_EFFECT_SP_ATK_TWO_DOWN`](#removed-redundant-move_effect_sp_atk_two_down-by-sneed69-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4557)
* 📜[Removed `gItemIconTable`](#removed-gitemicontable-by-kittenchilly-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4579)
* 📜[Egg Move Refactor](#egg-move-refactor-by-bassoonian-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4534)
* [Adjusted Ate-Ability code a bit to make it more readable](#adjusted-ate-ability-code-a-bit-to-make-it-more-readable-by-alexon1ine-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4640)
* [Type Info refactors](#type-info-refactors-by-asparaguseduardo-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4462)
* [merrp/aarant's Followers](#merrpaarants-followers)
* [Refactored residual damage to be more readable and less prone to bugs](#refactored-residual-damage-to-be-more-readable-and-less-prone-to-bugs-by-alexon1ine-in-httpsgithubcomrh-hideoutpokeemerald-expansionpull4945)

## 🧬 General 🧬
### Added
* #### Added migration script README by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4719
* #### Customizable Frontier Pokémon sets by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4313
    * `FacilityMon` has been removed in favor of using regular `TrainerMon`.
    * Removed `BATTLE_FRONTIER_ITEM_x` item constants in favor of using regular `ITEM_x` constants.
    * New `CreateFacilityMon` to handle duplicated code.
        * Added `FLAG_FRONTIER_MON_FACTORY` that replaces Return for Frustration and sets frienship to 0. Used in the Battle Factory.
    * Converted data in `src/data/battle_frontier/battle_frontier_mons.h` and `src/data/battle_frontier/battle_tent.h`, for example:
        * `.itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND,` -> `.heldItem = ITEM_CHOICE_BAND,`
        * `.evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK,` -> `.ev = TRAINER_PARTY_EVS(0, 252, 0, 252, 0, 0),`
    * Migration script available in `migration_scripts/egg_move_refactor.py` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/5040
* Added documentation to `STATIC_ASSERTS` used by the `BoxPokemon` after 1.8.0 by @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4294
* #### Competitive-formatted parties by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3545
    * Can be disabled by setting `COMPETITIVE_PARTY_SYNTAX` to `FALSE` in `include/config/general.h`. If migrating from 1.8, remove the first and last lines from `src/data/trainers.h` (`const struct Trainer gTrainers[] = {` and `};` respectively).
    * Introduces `trainerproc`, a tool which converts Competitive-formatted parties into Trainer Control-formatted parties.
    * If you made custom changes to the following files and want to use this new format, ***Do not accept the incoming changes for them.*** Instead, use the migration script present in `migration_scripts/convert_parties.py`:
        - `src/data/trainers.h`
        - `src/data/trainer_parties.h`
        - `src/data/battle_partners.h`
        - `src/data/partner_parties.h`
    * Before:
        ```c
        static const struct TrainerMon sTestParty1[] =
        {
            {
                .species = SPECIES_WOBBUFFET,
                .ball = ITEM_MASTER_BALL,
                .ability = ABILITY_TELEPATHY,
                .friendship = 42,
                .gender = TRAINER_MON_FEMALE,
                .heldItem = ITEM_ASSAULT_VEST,
                .isShiny = TRUE,
                .iv = TRAINER_PARTY_IVS(25,26,27,28,29,30),
                .ev = TRAINER_PARTY_EVS(252, 0, 0, 252, 4, 0),
                .lvl = 67,
                .moves = {MOVE_AIR_SLASH, MOVE_BARRIER, MOVE_SOLAR_BEAM, MOVE_EXPLOSION},
                .nature = NATURE_HASTY,
                .nickname = COMPOUND_STRING("Bubbles")
            },
            {
                .species = SPECIES_WOBBUFFET,
                .ability = ABILITY_SHADOW_TAG,
                .lvl = 5,
            },
        };

        static const struct Trainer sTestTrainer1 =
        {
            .trainerName = _("Test1"),
            .party = TRAINER_PARTY(sTestParty1),
        };
        ```
        After:
        ```
        === 0 ===
        Name: Test1

        Bubbles (Wobbuffet) (F) @ Assault Vest
        Hasty Nature
        Level: 67
        Ability: Telepathy
        IVs: 25 HP / 26 Atk / 27 Def / 29 SpA / 30 SpD / 28 Spe
        EVs: 252 HP / 4 SpA / 252 Spe
        Happiness: 42
        Shiny: Yes
        Ball: Master Ball
        - Air Slash
        - Barrier
        - Solar Beam
        - Explosion

        Wobbuffet
        Level: 5
        Ability: Shadow Tag
        ```
    * You can add comments by using `//` or `/* ... */`, like in C.
    * You're allowed to write `SPECIES_PIKACHU` instead of `Pikachu` (etc etc) if you want.
    * In addition to the migration script described above, you can add the following to at the top of the `src/data/trainers.party` file to change how the tool interprets the file:
        - `#pragma trainerproc ivs explicit` — requires an `IVs:` line for every Pokémon instead of defaulting to 31s.
        - `#pragma trainerproc ivs <IVs>` — changes the default IVs.
        - `#pragma trainerproc level explicit` — requires a `Level:` line for every Pokémon instead of defaulting to 100.
        - `#pragma trainerproc level <level>` — changes the default level.
        - During the merge you could choose to keep your original `src/data/trainers.h` and `src/data/trainer_parties.h` and then run the conversion script to update the `src/data/trainers.party`, `make`, then check in all three files. Alternatively don't run the conversion script and turn off `COMPETITIVE_PARTY_SYNTAX` in `include/config.h`.
    * Added synonyms for competitive/CFRU species defines, eg:
        * `SPECIES_PONYTA_GALAR` for `SPECIES_PONYTA_GALARIAN`
        * `SPECIES_MAUSHOLD_FOUR` for `SPECIES_MAUSHOLD_FAMILY_OF_FOUR`
        * `SPECIES_CHARIZARD_GMAX` for `SPECIES_CHARIZARD_GIGANTAMAX`
        * And so.
    * ***TODO***:
        - Support `Hidden Power:` to set IVs appropriate for a particular Hidden Power type.
        - Consider case-insensitivity in the parser.
    * Cleanup and bugfixes:
        * By @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/4362
        * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4366
        * By @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4374
        * By @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/4397
        * By @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4421
        * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4431
        * By @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/4442
        * By @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/4830
        * By @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/4969
        * By @hedara90 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4734
        * By @innocenthedgehog in https://github.com/rh-hideout/pokeemerald-expansion/pull/4988
        * By @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/4990
        * By @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/5035
* Added `OW_PC_MOVE_ORDER` config to use future generation's menu order for the Pokémon Storage System by @pkmnsnfrn and @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4348
    * `GEN_1/2/3`: Widthraw -> Deposit -> Move.
    * `GEN_4/5/6_XY`: Deposit -> Widthraw -> Move.
    * `GEN_6_ORAS/7/8/9`: Move -> Deposit -> Widthraw.
* Added `OW_HIDE_REPEAT_MAP_POPUP` config that doesn't show the Map Popup when transitioning bewteen maps within the same Map Section by Anon822 from Pokécommunity and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4370
* Multiple Fishing Enhancements by @ghoulslash and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4343
    * Added `I_FISHING_CHAIN` config to enable XY's chain fishing.
    * Added `I_FISHING_PROXIMITY` config to enable XY's proximity mechanic, where fishing away from NPCs increases the chance of a Pokémon being hooked.
    * Added `I_FISHING_MINIGAME` config to change between minigame versions.
        * `GEN_1/2` will not require a minigame, and instead automatically hook the Pokémon.
        * All other settings use RSE's minigame. FRLG/Gen4+'s minigame will be implemented in the future.
    * Cleanup and bugfixes:
        * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4412
        * By @cawtds in https://github.com/rh-hideout/pokeemerald-expansion/pull/4906
        * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4718
        * By @cawtds and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/5031
* #### Full official GF names for species/items/moves/types by @mrgriffin, @ZnogyroP and @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/4241
    * 8-character type names.
    * 12-character Pokémon names (and nicknames)
    * 16-character Move names.
    * 20-character item names.
    * This is done by introducing 3 new fonts that automatically change the size of the name in vanilla interfaces:
        * `FONT_NARROWER`, `FONT_SMALL_NARROWER` and `FONT_SHORT_NARROW`.
    * If the hack has changed fonts—e.g. to the FrLg ones—then they probably want to create their own versions of the new fonts.
    * If the hack has introduced more UIs that render names they probably want to use `GetFontIdToFit`—see this PR's changes for examples of that.
    * If the hack has introduced names in list menus they can use `.fontIdMayNarrow = TRUE` on the list template.
    * Types, species, moves, and items all have individual commits which enable support in the UI and turn on longer names by default. These can be reverted by downstream projects if they really want to.
    * Cleanup
        * By @Nopinou in https://github.com/rh-hideout/pokeemerald-expansion/pull/4473
        * By @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4588
        * By @iriv24 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4979
* Added `OW_PC_RELEASE_ITEM` config that gives back items from released Pokémon by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4577
    * If the bag is full, the item is lost, however.
    * Cleanup by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4844
* Added `P_EGG_CYCLE_LENGTH` config that updates the amount of steps required to complete an egg cycle by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4596
* Added `trainerbattle_two_trainers` macro to trigger a 1 player vs 2 NPC battle by @aarant and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4741
* Added `createmon` Script Command and macro by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4688
    * This allows to set up wild enemy parties with the same versatility as `givemon` (IVs, EVs, abilities, moves, etc).
* Added `setwilddoubleflag` macro to set `sIsScriptedWildDouble` and allow 2 player vs 1 enemy wild battles by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4688
* Added support for multiple Roaming Pokémon at once by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4762
    * By default, `ROAMER_COUNT` is set to 1 to keep save compatibility. Increase it to add more roamers (though this breaks saves).
* Added `OW_IGNORE_EGGS_ON_HEAL`, which makes it such that eggs are not counted in the Pokémon Center's heal animation by @ghoulslash @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4888
* Added support for fake RTC by Anon822 from PokéCommunity and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4910
    * When `OW_USE_FAKE_RTC` is `TRUE`, time runs at a different rate from real time, like in Legends: Arceus or Scarlet and Violet.
    * Use `OW_ALTERED_TIME_RATIO` to set the amount of "time" passing every 60 frames (1 real time second):
        * `GEN_8_PLA`: 1 minute.
        * `GEN_9`: 20 seconds.
        * All other settings make the game synced with real life.
    * You may also set a flag to pause the RTC (`OW_FLAG_PAUSE_TIME`), and the script commands `pausefakertc`, `resumefakertc` and `togglefakertc` by @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4954
    * Cleanup by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4965
* Added B2W2-style map pop-Ups by @ravepossum, @nielsmittertreiner and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4396
    * Change `OW_POPUP_GENERATION` to `GEN_5` to switch existing map popups.
    * You may choose between Black or White themes via `OW_POPUP_BW_COLOR` (`OW_POPUP_BW_COLOR_BLACK` or `OW_POPUP_BW_COLOR_WHITE`).
    * You may choose to display the current time in the pop-up using `OW_POPUP_BW_TIME_MODE`.
        * `OW_POPUP_BW_TIME_NONE`: Disables time in pop-up.
        * `OW_POPUP_BW_TIME_12_HR`: Shows 12-hour time in pop-up
        * `OW_POPUP_BW_TIME_24_HR`: Shows 24-hour time in pop-up
    * You may enable alpha blending via `OW_POPUP_BW_ALPHA_BLEND` (mainly designed around the Black theme).
    * Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4752
* Allowed flags to be used in trigger scripts instead of vars by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4900
### Changed
* #### agbcc has been deprecated by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/4989
    * You technically still use `make agbcc` by disabling the error thrown when using it, but it will be removed completely for version 1.10.
* #### Moved general config file to the config folder by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4805
    * `config.h` -> `config/general.h`
    * Cleanup by @hedara90 in https://github.com/rh-hideout/pokeemerald-expansion/pull/5026
* #### Set `GiveBoxMonIntialMoveset_Fast` as default by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4470
* #### Changed Battle Frontier validation to species flag by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4341
    * Added `isFrontierBanned` flag and removed `gFrontierBannedSpecies`.
    * Renamed `isParadoxForm` -> `isParadox`.
* #### Unified Nature info by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/4562
    * All data is now found on `gNaturesInfo` in `src/pokemon.c`
    * Names, Stat Up/Down, Back Sprite animation, Pokéblock animation, Nature Girl message and Battle Palace data.
    * Cleanup by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4598
* #### Type Info refactors by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4462
    * Added `src/data/types_info.h` file for `gTypesInfo` instead of `src/battle_main.c`.
        * Moved `sTypeEffectivenessTable` here file as well (and renamed it to `gTypeEffectivenessTable`)
    * `TYPE_NONE` duplicates graphics from `TYPE_MYSTERY` due to limitations with `graphics_file_rules.mk`.
    * Damage Categories for `B_PHYSICAL_SPECIAL_SPLIT`'s pre-Gen4 setting can now be specified in this `gTypesInfo`'s `damageCategory` field instead of depending on the type's order.
* Consolidated Lilycove Contest Lady's values into one struct (`sContestLadyValues`) by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/4951
* Applied the Pokémon Sprite Visualizer name officially by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4745
* Don't specify `sDexSearchTypeOptions` array size by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4820
    * Prevents Type search in the dex from breaking when non-conventional types are added.
* Only call RNG once when generating IVs in some cases by @tertu-m in https://github.com/rh-hideout/pokeemerald-expansion/pull/4876
### Fixed
* Fixed potential Wireless Adapter desynchronization by @AtariDreams in https://github.com/rh-hideout/pokeemerald-expansion/pull/3730
* Fixed `ListItemTemplate` UB in the Pokémon Center by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4725
* Fixed `src/data/map_group_count.h` not being ignored in `.gitignore` properly by @rayrobdod in https://github.com/rh-hideout/pokeemerald-expansion/pull/4727
* Fixed double battles not occuring with only one Pokemon by talking to the trainers despite `OW_DOUBLE_APPROACH_WITH_ONE_MON` being set `TRUE` by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/4848
* Fixed unused `B_TRANSITION_SHRED_SPLIT` from softlocking the game by @Lunos, @griffinr and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4919

## ✨ Feature Branches ✨
### ***merrp/aarant's Followers***
* Integrated @aarant's followers branch by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4022
    * This includes Dynamic Overworld Palettes and Expanded Overworld IDs.
    * This does ***not*** include the `lighting` branch yet, but will be included in a future version.
    * Updated up to the latest version of the branch (11th of July) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4944
    * Cleanup
        * By @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4782
        * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4937
#### Changes from the original branch
* Follower Pokémon can be enabled using the `OW_FOLLOWERS_ENABLED` config.
* Pokémon NPCs can be added to a map [independently](https://github.com/rh-hideout/pokeemerald-expansion/pull/4761) from the Followers config. Keep in mind, this requires `OW_POKEMON_OBJECT_EVENTS` to be enabled in order to add the graphics to the ROM.
    * Eg: use `OBJ_EVENT_GFX_SPECIES(CHARIZARD)` where the graphic ID would go (`OBJ_EVENT_GFX_SPECIES_SHINY()` for shiny version).
    * May also use `OBJ_EVENT_GFX_SPECIES_SHINY(CHARIZARD)` to make them shiny by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/5049
* Moved original configs from `include/constants/event_objects.h` to `include/config/overworld.h` and renamed them:
    * `OW_MON_BOBBING` -> `OW_FOLLOWERS_BOBBING`
    * `LARGE_OW_SUPPORT` -> `OW_LARGE_OW_SUPPORT`
    * `OW_MON_POKEBALLS` -> `OW_FOLLOWERS_POKEBALLS`
* Added follower Pokémon sprites from Gen 4-8
    * Credits to @Eemeliri and Gerben BSc
* Moved `OW_GFX_COMPRESS` from `include/global.h` to `include/config/overworld.h`.
* Added `OW_SUBSTITUTE_PLACEHOLDER` config to hide followers if they don't have a follower sprite instead of using a placeholder Substitute sprite by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4765
* Follower graphics are shown in the Pokémon Sprite Visualizer.
* Follower graphics have been moved to the respective species graphics folder instead of all being grouped in `graphics/object_events/pics/pokemon`.
    * Eg: `graphics/object_events/pics/pokemon/abomasnow.png` was moved to `graphics/pokemon/abomasnow/follower.png`.
* Follower data has been moved to `gSpeciesInfo`
    * Their palettes are separate from the battle sprite palettes
        * Can be enabled using `OW_FOLLOWERS_SHARE_PALETTE`, but requires manual sprite adjustements. For now, it's recommended to keep this `FALSE`. (They don't use much space anyway)
* Updated `GetTypeEffectiveness` used by follower messages to account for new abilities with type immunities.
* Cleaned up code style to match pret/expansion's.
* Reverted Regi's sprite to vanilla's.
* Follower PicTables use `overworld_ascending_frames` macro.
* Removed unneeded calls to `bufferspeciesname`.
* Removed `MON_DATA_NATURE`.
* Removed debug functions like `IsAccurateGBA`.
* Removed `ScrCmd_callfunc` to use `callnative`s instead

## 🐉 Pokémon 🐉
### Added
* Added `EVO_ITEM_COUNT_999` evolution method (used by Gimmighoul) by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4261
    * Requires level up while carrying 999 of the specified item in the bag, which will be consumed.
    * Uses new `EVO_MODE_CANT_STOP` mode, which is a clone of `EVO_MODE_NORMAL` but prevents evolution from being canceled.
* Added `EVO_DEFEAT_THREE_WITH_ITEM` evolution method (used by Bisharp) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4768
    * Requires level up after defeating 3 Pokémon of the same species holding the specified item.
        * Eg: Bisharp defeating 3 other Bisharp holding Leader Crests.
    * Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/5046
* Added `EVO_OVERWORLD_STEPS` evolution method (used by Pawmo, Bramblin and Rellor) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4758
    * Requires level up after walking the specified amount of steps with that Pokémon as the first member in the party without switching.
    * Switching the party leader resets the steps.
    * Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/5047
* Added `FORM_CHANGE_DAYS_PASSED` form change (used by Furfrou and Hoopa) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4778
    * Adds `MON_DATA_DAYS_SINCE_FORM_CHANGE`, which is a timer to automatically changes forms at midnight once it runs out. It is set after a different form change has been made (currently only added to Form Change items, including Prison Bottle)
* Added unique icons for all of Arceus's forms via config (`P_ARCEUS_UNIQUE_FORM_ICONS`) by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4329
* Added `P_TWO_FRAME_FRONT_SPRITES` config to allow disabling 2-frame front animations by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4750
* Added `P_CRIES_ENABLED` config to disable species cries and stop them from being included in the ROM by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4791
* Added configs to prevent unobtainable Pokemon from being shiny by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/4735
    * `P_ONLY_OBTAINABLE_SHINIES`: Prevents shinies from generating in the Battle Pyramid.
    * `P_NO_SHINIES_WITHOUT_POKEBALLS`: Prevents shinies from generating if the player has no Poké Balls.
* Added `P_CAN_FORGET_HIDDEN_MOVE` config allow Pokémon to forget HM moves by @pkmnsnfrn and @Lunos in https://github.com/rh-hideout/pokeemerald-expansion/pull/4968
### Changed
* Renamed evolution methods the were labeled as evo level by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4607
    * `EVO_LEVEL_MOVE_TWENTY_TIMES` -> `EVO_MOVE_TWENTY_TIMES`
    * `EVO_LEVEL_RECOIL_DAMAGE_MALE` -> `EVO_RECOIL_DAMAGE_MALE`
    * `EVO_LEVEL_RECOIL_DAMAGE_FEMALE` -> `EVO_RECOIL_DAMAGE_FEMALE`
    * Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4644
* Evolution tracker is now by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4758
* #### Replaced VARARG_8 uses with recursive macros by @cfmnephrite in https://github.com/rh-hideout/pokeemerald-expansion/pull/4232
* #### Egg Move Refactor by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4534
    * Egg Moves are now formatted like Teachable learnsets and their pointers are stored in `gSpeciesInfo`, as opposed to having one big array.
        * Only offspring require these tables.
    * Migration script available in `migration_scripts/egg_move_refactor.py`.

## ⚔️ Battle General ⚔️ ##
### Added
* Added option to increase Experience bar speed via `B_FAST_EXP_GROW` by @SonikkuA-DatH and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4335
* Added Gen 4's Fog battle weather by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4359
    * Uses Haze's animation.
    * Changes `B_FOG_TERRAIN` (TRUE/FALSE config) into `B_OVERWORLD_FOG` (Generational config).
        * `GEN_4`: Uses this battle weather in maps with `WEATHER_FOG_DIAGONAL` and `WEATHER_FOG_HORIZONTAL`.
        * `GEN_8` onwards: Sets permanent Misty Terrain.
        * All others disable them.
* #### Terastallization by @AgustinGDLV in https://github.com/rh-hideout/pokeemerald-expansion/pull/4110
    * Tera Type automatically assigned to existing Pokémon based on their personality value.
        * Can get and set Tera Types in scripts for party members using `checkteratype` and `setteratype` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4460
    * To activate, it requires:
        * `ITEM_TERA_ORB` to be in the player's bag.
        * `B_FLAG_TERA_ORB_CHARGED` to be set up to an unused flag. It¿s automatically set when `HealPlayerParty` is called.
    * Added `ignoreTera` argument added to `GetBattlerType`
    * Added Tera Blast's effect.
        * Changes type shown in battle screen if the mon is Terastalized or about to by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4447
    * Added Stellar Type.
    * Added `teraType` option for Trainers (also supported by Competitive Format Parties)
    * Added Tera Starstorm's effect by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4447
    * Terastallization animation by @Pokabbie in https://github.com/rh-hideout/pokeemerald-expansion/pull/4507
    * Added `forceTeraType` field for `gSpeciesInfo`, which forces the Pokémon to have a specific Tera Type (used by Terapagos and Ogerpon) by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4438
    * Added `FORM_CHANGE_BATTLE_TERASTALLIZATION` by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4438
        * It uses a Pokémon's Tera Type to choose which form to switch to upon Terastallizing.
    * Bugfixes:
        * By @AgustinGDLV in https://github.com/rh-hideout/pokeemerald-expansion/pull/4435
        * By @AgustinGDLV in https://github.com/rh-hideout/pokeemerald-expansion/pull/4440
        * By @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4513
        * By @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4515
        * By @WillKolada in https://github.com/rh-hideout/pokeemerald-expansion/pull/4529
        * By @iriv24 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4975
* Added Gen 1 type matchups by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4508
    * Renamed `B_STEEL_RESISTANCES` -> `B_UPDATED_TYPE_MATCHUPS` to reflect this change.
    * Added defines to cleanup `sTypeEffectivenessTable`.
* Added Move Descriptions in battle by @Bassoonian, @TheXaman, @Pawkkie and @ravepossum in https://github.com/rh-hideout/pokeemerald-expansion/pull/4152
    * Press L before selecting a move to see their category, power, accuracy and description.
        * This can be changed to R by using the `B_MOVE_DESCRIPTION_BUTTON` config by @fakuzatsu in https://github.com/rh-hideout/pokeemerald-expansion/pull/4860
    * Cleanup
        * By @AGSMGMaster64 and @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4678
* Added ball throwing configs by セケツ from PokéCommunity and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4953
    * `B_ENEMY_THROW_BALLS`: When set to `GEN_6` or higher, it changes the opposing trainer's ball animation so they throw their Pokéballs instead of already starting on the floor.
    * `B_PLAYER_THROW_BALLS_SOUND`: When set to `GEN_5` or higher, it plays `SE_BALL_THROW` as part of the player's ball throw animation.
    * `B_ENEMY_THROW_BALLS_SOUND`: When set to `GEN_5` or higher, it plays `SE_BALL_THROW` as part of the enemy's ball throw animation.
* Added `RandomChance` macro for battle/test randomization by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4829
* #### Gimmick Refactor by @AgustinGDLV in https://github.com/rh-hideout/pokeemerald-expansion/pull/4449
    * Unifies generational mechanics into `gGimmicksInfo` struct (Mega, Z-Moves, Ultra Burst, Dynamax, Terastallization).
        * Contains triggers, indicator, condition and function to execute when triggered.
    * Around ~500-1000 lines of redundant / duplicate code removed!
    * Cleanup
        * By @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4927
        * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4962
        * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4863
        * By @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4960
* Allow users to increase `MAX_MONEY` dynamically by @DizzyEggg and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4943
* Added `AUTO_LOWERCASE_KEYBOARD` by @Jaizu and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4976
    * Automatically changes to to lowercase if the first character inputted is uppercase.
### Changed
* Improved HP drain when enabling `B_FAST_HP_DRAIN` by @pkmnsnfrn and @SonikkuA-DatH in https://github.com/rh-hideout/pokeemerald-expansion/pull/4335
* #### Combined weather set commands by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4434
    * `setrain` -> `setfieldweather ENUM_WEATHER_RAIN`.
    * `setsandstorm` -> `setfieldweather ENUM_WEATHER_SANDSTORM`.
    * `setsunny` -> `setfieldweather ENUM_WEATHER_SUN`.
    * `sethail` -> `setfieldweather ENUM_WEATHER_HAIL`.
    * `setsnow` -> `setfieldweather ENUM_WEATHER_SNOW`.
* #### Replaced HP checks with `IsBattlerAlive` by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4429
* #### Removed redundant `MOVE_EFFECT_SP_ATK_TWO_DOWN` by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4557
* Added stack for saved targets and attackers by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4061
    * This avoids the need to overwriting battler IDs during scripts and cause potential issues.
    * Several scripts have been updated to use these.
    * Cleanup and fixes
        * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4653
        * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4668
* #### Adjusted Ate-Ability code a bit to make it more readable by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4640
* Added global constants for damage rolls by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4663
    ```c
    // Lowest and highest percentages used for damage roll calculations
    #define DMG_ROLL_PERCENT_LO 85
    #define DMG_ROLL_PERCENT_HI 100
    ```
* #### Refactored residual damage to be more readable and less prone to bugs by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4945
    * Cleanup by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4993
* Clarified some cases of `ChangeStatBuffs` usage by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4826
* Moved EWRAM variables from battle controller player file to gBattleStruct by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4840
    * `sDescriptionSubmenu`, `sAckBallUseBtn` and `sBallSwapped`.
### Fixed
* Fixed Dynamax data not clearing when a battler faints by @WillKolada in https://github.com/rh-hideout/pokeemerald-expansion/pull/4672
* Multiple Z-Move fixes by @AgustinGDLV in https://github.com/rh-hideout/pokeemerald-expansion/pull/4449
    * Fixed Z-Moves not working in Link Battles, recorded battles and tests.
    * Fixed `Z_EFFECT_ALL_STATS_UP` functionality.
    * Fixed Z-Nature Power, Z-Copycat, Z-Me First, and Z-Sleep Talk incorrectly using a normal move and not a Z-Move, ~~which had not been raised as an issue yet.~~ (some of these were caught recently!)
    * Fixed Breakneck Blitz incorrectly being affected by -ate abilities, which had not been raised as an issue yet.
    * Fixed Instruct incorrectly not failing if the target last used a Z-Move, which had not been raised as an issue yet.
    * Fixed Guardian of Alola incorrectly doing 50% of the target's HP instead of 75%.
* Fixed Enemy Data not clearing at the end of battles by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4867

## 🤹 Moves 🤹
### Added
* Expanded Freeze Dry's effect to use `argument` field and allow custom moves to use the effect to be super effective to any specific type by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4312
    * Renamed `EFFECT_FREEZE_DRY` to `EFFECT_SUPER_EFFECTIVE_ON_ARG`.
* Expanded `EFFECT_BODY_PRESS` to use category of defense stats for calculation based on the move's own damage category by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4312
    * Eg: In vanilla, Body Press uses the user's Defense and its stat changes instead of Attack. Now, if we were to change its `category` in `gMovesInfo`, it'll use Sp. Defense and its stat changes instead of Sp. Attack.
* Expanded Photon Geyser and Shell Side Arm (restored) effects so that they also work for physical moves by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4923
* Added Knock Off's Gen 5+ effect with config (`B_KNOCK_OFF_REMOVAL`) by @AgustinGDLV in https://github.com/rh-hideout/pokeemerald-expansion/pull/4333
    * Items are removed outright instead of making them unusable.
* Added Heal Bell/Soundproof Gen 5-8+ interactions with `B_HEAL_BELL_SOUNDPROOF` config by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4732
    * Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/5060
* Added Spicy Extract's effect by @AlexOn1ine, @Skeli789, @kittenchilly and @ZnogyroP in https://github.com/rh-hideout/pokeemerald-expansion/pull/4211
* Added `B_RETURN_STOLEN_NPC_ITEMS` config for Covet/Thief not being able to steal from NPCs by @moostoet and @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4605
* Added Dragon Darts effect (CFRU port) by @AlexOn1ine, @Skeli789 and @BuffelSaft in https://github.com/rh-hideout/pokeemerald-expansion/pull/4612
    * Animation by @hedara90 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4620
### Changed
* `EFFECT_TRIPLE_KICK`'s base power uses the move's `strikeCount` instead of a constant by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4608
    * This allows users to create "Quadruple Kick" and similar moves.
* Migrated move animation pointers to `gMovesInfo` by @cawtds in https://github.com/rh-hideout/pokeemerald-expansion/pull/4683
    * This removes the need for `gBattleAnims_Moves` which had potential ordering issues if not kept in line with move IDs.
        * If `battleAnimScript` is not defined for a move, it defaults to Tackle's animation.
    * Migration script available in `migration_scripts/battle_anim_moves_refactor.py`
### Fixed
* Multiple Ally Switch fixes by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4451
    * Shadows no longer disappear + safety checks.
    * Corrected animation for opponents.
* Fixed Avalanche's target by @TheLastMudkip in https://github.com/rh-hideout/pokeemerald-expansion/pull/4581
* Fixed Feint and Feint Attack's descriptions by @lhearachel in https://github.com/rh-hideout/pokeemerald-expansion/pull/4617
* Fixed Mud Sport/Water Sport reducing damage by 77% instead of 67% in Gen5+ by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/4874

## 🎭 Abilities 🎭
### Added
* Added Poison Puppeteer's effect by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4416
* Added Tera Shift, Tera Shell, and Teraform Zero by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4418
    * `FORM_CHANGE_BATTLE_SWITCH` now has ability as optional parameter.
    * Cleanup by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4742
* Added Toxic Chain's effect by @PhallenTree in https://github.com/rh-hideout/pokeemerald-expansion/pull/4823
    * Cleanup by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4843
* Added `B_ABILITY_TRIGGER_CHANCE` config to update trigger chances of abilities to Gen4+ by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4829
    * Shed Skin, Cute Charm, Flame Body, Static and Poison Point have a 30% chance to trigger in Gen4+ instead of 1/3 in Gen3.
    * Effect Spore has an 11%, 10% and 9% chance of triggering Sleep, Paralysis and Poison in Gen4+ instead of equal 10% each in Gen3.
### Changed
* #### Removed Gen 9 settings for out-of-battle abilities by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4282
    * These configs no longer disable out-of-battle ability effects when set to `GEN_9`.
        * `OW_SUPER_LUCK`.
        * `OW_INFILTRATOR`.
        * `OW_HARVEST`.
        * `OW_LIGHTNING_ROD`.
        * `OW_STORM_DRAIN`.
        * `OW_FLASH_FIRE`.
    * These configs have been removed
        * `OW_COMPOUND_EYES`.
        * `OW_CUTE_CHARM`.
        * `OW_ILLUMINATE`.
        * `OW_MAGNET_PULL`.
        * `OW_STATIC`.
### Fixed
* Fixed Mirror Armor bouncing Sticky Web's stat reduction to the opponent by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4713
* Effect Spore now uses `B_POWDER_GRASS` to toggle Grass-type Pokémon immunity to it by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4829

## 🧶 Items 🧶
### Added
* Added Booster Energy's effect by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4337
    * Cleanup
        * By @PCG06 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4354
        * By @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4804
### Changed
* #### Removed `gItemIconTable` by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4579
    * Sprite and palette pointers have been moved to `gItemsInfo` as `iconPic` and `iconPalette` respectively.
    * Migration script available in `migration_scripts/convert_item_icons.py`
    * Cleanup
        * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4591
        * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4658
* #### Automatically display TM/HM icons based on their move by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4452
    * TM palettes are now stored in `gTypesInfo` in the `paletteTMHM` field.
    * Cleanup by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4487

## 🤖 Battle AI 🤖
### Added
* Added `AI_GetBattlerAbility` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4555
* Added `AI_FLAG_CONSERVATIVE` flag by @Pawkkie and @iriv24 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4615
    * AI will assume low damage rolls for its `calculationsDamage` roll selection in `AI_CalcDamage`
    * Cleanup
        * By @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4663
* Added `AI_FLAG_SEQUENCE_SWITCHING` flag by @Pawkkie, Kasen, @pkmnsnfrn and @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4878
    * AI will keep their party order consistently with switches.
* Added `setdynamicaifunc`, which allows to setup custom AI functions before a battle besides the predetermined ones used by AI Flags @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4908
    * Eg:
        ```
        setdynamicaifunc AI_TagBattlePreferFoe
        multi_2_vs_2 TRAINER_MAXIE_MOSSDEEP, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand, TRAINER_TABITHA_MOSSDEEP, MossdeepCity_SpaceCenter_Text_TabithaDefeat, PARTNER_STEVEN
        ```
        Where `AI_TagBattlePreferFoe` prioritizes attacking the opposite battler index.
### Changed
* AI now calculates and stores minimum possible move damage and uses it with `AI_FLAG_TRY_TO_FAINT` by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4760
    * This allows AI to prefer guaranteed KO moves over highest expected damage move.
    * Cleanup by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4808
* AI Revenge Killer switching factors in Trick Room by @Shadowzlmao and @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/4794
* AI Smarter Choice AI for Status Moves by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/4872
    * Better behavior for AI under Choice Item effects.
    * Cleanup by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/4911
* AI Smarter Focus Punch and Substitute handling by @Pawkkie, @Kasenn and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4952
* Moved `RestoreBattlerData` out of `Ai_CalcDmg` and added `SaveBattlerData` Protections by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4156
    * Cleanup
        * By @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4586
* Made AI see Loaded Dice hold effect for multi hit moves that strike 5 times by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4622
* `AI_FLAG_RISKY` Improvements by @Pawkkie, @AlexOn1ine and @iriv24 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4648
    * Check the PR for in depth details.
    * Cleanup
        * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4790
        * By @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/5032
* Removed temporary scores in `AI_CalcMoveEffectScores` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4655
* Changed `AI_IS_SLOWER` and `AI_IS_FASTER` comparisons into `AI_IsFaster` and `AI_IsSlower` functions by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4671
    * `AI_STRIKES_FIRST` is also replaced by `AI_IsFaster`.
* Switch AI uses trapping abilities aggressively by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/4669
* Use 9th roll instead of average in AI calcs by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4679
* Use `AI_DATA->abilities` in more places by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4729
* Minor switch AI cleanup by @Pawkkie, @DizzyEggg, @AlexOn1ine and @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4849
* Removed `SetBattlerData` from `AI_CalcDamage` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4881
* Removed unused `AI_FLAG_HELP_PARTNER` by @pkmnsnfrn and @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/4918
* Added missing `ADJUST_SCORE`s by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4925
* Reduced `AI_WhoStrikesFirst` to the most essential parts by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4978
* Changed score adjustments to `tempScore` increases by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4987
### Fixed
* Minor AI flag fixes/cleanup by @Pawkkie, @AlexOn1ine and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/4924

## 🧹 Other Cleanup 🧹
### Changed
* Corrected species info struct hex comments by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4798
    * Cleanup by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4800

## 🧪 Test Runner 🧪
### Added
* Added missing weather tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4434
* Added missing Gale Wings test by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/4694
* Added `SWITCH_OUT_MESSAGE` and `SEND_IN_MESSAGE` macros to avoid tests from failing based on changing switch out/in messages by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4717
    * Usage: `SEND_IN_MESSAGE("Wobbuffet");`
    * Tests have been updated to use these new macros.
* Added missing Hidden Power test by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4462
* Added some Terastallization tests by @hedara90 in https://github.com/rh-hideout/pokeemerald-expansion/pull/5020
### Changed
* Cleaned up Frisk test by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/4441
* Renamed `MgbaPrintf_` to `Test_MgbaPrintf` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4642
* AI tests have been moved to their own folder by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/4898
* Species are now always included in tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4810
* Added Battle Anim Debug Check to see if animations aren't cleared by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/4930
* Test battlers always have their forced abilities to prevent them from changing during a test by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4707
### Fixed
* Test runner uses Set mode to avoid an issue where tests prompted switching and caused a timeout by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/4661

## New Contributors
* @Pokabbie made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/4507
* @TheLastMudkip made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/4581
* @moostoet made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/4605
* @rayrobdod made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/4727
* @innocenthedgehog made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/4988

**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.8.6...expansion/1.9.0

<!--Last PR: 5060-->
