Skip to content

Latest commit

 

History

History
556 lines (538 loc) · 48.1 KB

1.9.0.md

File metadata and controls

556 lines (538 loc) · 48.1 KB

Version 1.9.0

## 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.

🧬 General 🧬

Added

  • Added migration script README by @Bassoonian in rh-hideout/pokeemerald-expansion#4719

  • Customizable Frontier Pokémon sets by @ghoulslash in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#5040
  • Added documentation to STATIC_ASSERTS used by the BoxPokemon after 1.8.0 by @pkmnsnfrn in rh-hideout/pokeemerald-expansion#4294
  • Competitive-formatted parties by @mrgriffin in rh-hideout/pokeemerald-expansion#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:
      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:
  • Added OW_PC_MOVE_ORDER config to use future generation's menu order for the Pokémon Storage System by @pkmnsnfrn and @AsparagusEduardo in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#4370
  • Multiple Fishing Enhancements by @ghoulslash and @pkmnsnfrn in rh-hideout/pokeemerald-expansion#4343
  • Full official GF names for species/items/moves/types by @mrgriffin, @ZnogyroP and @cfmnephrite in rh-hideout/pokeemerald-expansion#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
  • Added OW_PC_RELEASE_ITEM config that gives back items from released Pokémon by @Bassoonian in rh-hideout/pokeemerald-expansion#4577
  • Added P_EGG_CYCLE_LENGTH config that updates the amount of steps required to complete an egg cycle by @Bassoonian in rh-hideout/pokeemerald-expansion#4596
  • Added trainerbattle_two_trainers macro to trigger a 1 player vs 2 NPC battle by @aarant and @AlexOn1ine in rh-hideout/pokeemerald-expansion#4741
  • Added createmon Script Command and macro by @ghoulslash in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#4688
  • Added support for multiple Roaming Pokémon at once by @Bassoonian in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#4888
  • Added support for fake RTC by Anon822 from PokéCommunity and @pkmnsnfrn in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#4954
    • Cleanup by @Bassoonian in rh-hideout/pokeemerald-expansion#4965
  • Added B2W2-style map pop-Ups by @ravepossum, @nielsmittertreiner and @pkmnsnfrn in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#4752
  • Allowed flags to be used in trigger scripts instead of vars by @DizzyEggg in rh-hideout/pokeemerald-expansion#4900

Changed

Fixed

✨ Feature Branches ✨

merrp/aarant's Followers

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 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 rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#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 callnatives instead

🐉 Pokémon 🐉

Added

  • Added EVO_ITEM_COUNT_999 evolution method (used by Gimmighoul) by @kittenchilly in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#5046
  • Added EVO_OVERWORLD_STEPS evolution method (used by Pawmo, Bramblin and Rellor) by @Bassoonian in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#5047
  • Added FORM_CHANGE_DAYS_PASSED form change (used by Furfrou and Hoopa) by @Bassoonian in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#4329
  • Added P_TWO_FRAME_FRONT_SPRITES config to allow disabling 2-frame front animations by @Bassoonian in rh-hideout/pokeemerald-expansion#4750
  • Added P_CRIES_ENABLED config to disable species cries and stop them from being included in the ROM by @AsparagusEduardo in rh-hideout/pokeemerald-expansion#4791
  • Added configs to prevent unobtainable Pokemon from being shiny by @fdeblasio in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#4968

Changed

⚔️ Battle General ⚔️

Added

Changed

Fixed

  • Fixed Dynamax data not clearing when a battler faints by @WillKolada in rh-hideout/pokeemerald-expansion#4672
  • Multiple Z-Move fixes by @AgustinGDLV in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#4867

🤹 Moves 🤹

Added

Changed

  • EFFECT_TRIPLE_KICK's base power uses the move's strikeCount instead of a constant by @Sneed69 in rh-hideout/pokeemerald-expansion#4608
    • This allows users to create "Quadruple Kick" and similar moves.
  • Migrated move animation pointers to gMovesInfo by @cawtds in rh-hideout/pokeemerald-expansion#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

🎭 Abilities 🎭

Added

Changed

  • Removed Gen 9 settings for out-of-battle abilities by @AsparagusEduardo in rh-hideout/pokeemerald-expansion#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

🧶 Items 🧶

Added

Changed

🤖 Battle AI 🤖

Added

  • Added AI_GetBattlerAbility by @AlexOn1ine in rh-hideout/pokeemerald-expansion#4555
  • Added AI_FLAG_CONSERVATIVE flag by @Pawkkie and @iriv24 in rh-hideout/pokeemerald-expansion#4615
  • Added AI_FLAG_SEQUENCE_SWITCHING flag by @Pawkkie, Kasen, @pkmnsnfrn and @DizzyEggg in rh-hideout/pokeemerald-expansion#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 rh-hideout/pokeemerald-expansion#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

Fixed

🧹 Other Cleanup 🧹

Changed

🧪 Test Runner 🧪

Added

Changed

Fixed

New Contributors

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