Skip to content

Latest commit

 

History

History
599 lines (583 loc) · 49.6 KB

File metadata and controls

599 lines (583 loc) · 49.6 KB

Version 1.7.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.7.0`.

🌋 IMPORTANT CHANGES 🌋

  • We have enabled -Werror -Wall in the Makefile. These flags show warnings for undefined behaviors in the old compiler (agbcc), and sets all warnings as errors. As such, we have updated the codebase so that all warnings that gcc 13 throws are handled:
    • CI now uses devkitarm container to run a more modern gcc by @SBird1337 in rh-hideout#3429
    • Fixed -Wall -Werror errors on Modern by @DizzyEggg in rh-hideout#3412
    • Fixed warnings introduced by gcc 13 by @SBird1337 in rh-hideout#3428
      • -Warray-bounds
      • -Waddress
      • -Warray-parameter
    • Fixed -Wmaybe-uninitialized for ModifyPersonalityForNature test by @SBird1337 in rh-hideout#3457
  • Modern compiler may raise the following errors for code introduced from outside the expansion, so we recommend solving those errors:
    • unused-function. To solve it, add UNUSED to the function definition.
      -static void Function(void)
      +static void UNUSED Function(void)
    • unused-variable. To solve it, remove the unused variable.
      static void Function(void)
      {
      -   u8 unused;
          u8 used;
      ...
    • unused-but-set-variable. To solve it, add UNUSED to the variable definition.
      static void Function(void)
      {
      -   u8 unused;
      +   u8 UNUSED unused;
          u8 used;
          unused = DoSomething();
      ...
  • Updated modern compiler install instructions by @hedara90 in rh-hideout#3527
  • You may still use agbcc by adding agbcc to your make command to finish the update process before fixing these errors.
    • eg. make -j8 agbcc.
    • We may drop support for it in the future, so we recommend updating the code to support the new compilers.
    • This will generate pokeemerald_agbcc.gba, while modern will generate pokeemerald.gba by @Bassoonian in rh-hideout#3462

🧬 General 🧬

Added

  • Incorporated @TheXaman's HGSS Style Pokédex by @AaghatIsLive in rh-hideout#3288
  • Incorporated @DizzyEggg's nature color branch by @Bassoonian in rh-hideout#3582
    • Shows nature stat modifiers in summary screen.
    • Added SUMMARY_SCREEN_NATURE_COLORS config to disable it.
    • Updates stat reduction to blue to align with official implementation.
  • Added I_SELL_VALUE_FRACTION config that changes selling factor of items to 1/4th when set to Gen 9 by @kittenchilly in rh-hideout#3315
  • Added P_FRIENDSHIP_EVO_THRESHOLD config to update the Friendship evolution threshold to Gen8+'s standard by @kittenchilly in rh-hideout#3376
  • Debug Menu
    • Added ROM Space Utility option to check ROM space by @mrgriffin in rh-hideout#3453
    • Added Toggle Match Call Flag option to toggle Match Call by @AsparagusEduardo in rh-hideout#3489
    • Added Move Reminder option by @Bassoonian in rh-hideout#3707
    • Moved Party/Boxes related functions to their own menu by @Bassoonian in rh-hideout#3707
  • Added expansion Rom Header by @mrgriffin in rh-hideout#3454
    • Added defines for Expansion version number.
    • Added option to see the version number in debug menu.
  • Added option to restore Japan-only Walda PC backgrounds by @fdeblasio in rh-hideout#3550
  • Added BATTLE_PYRAMID_RANDOM_ENCOUNTERS config to enable Battle Pyramid Wild Encounter randomization by @ghoulslash in rh-hideout#2581
  • Added a GetSpeciesPreEvolution function by @LOuroboros in rh-hideout#3696

Changed

  • Converted Get(Box)MonData2 to proper functions by @AsparagusEduardo in rh-hideout#3416
  • Added src/data/map_group_count.h to .gitignore by @LOuroboros in rh-hideout#3423
  • Cheat Start option now gives all badges and enables all Fly locations. Fly to... option no longer enables all Fly locations by @AsparagusEduardo in rh-hideout#3489
  • Better documentation for Type Effectiveness table by @AsparagusEduardo in rh-hideout#3374
  • Generational defines now start at GEN_1 instead of GEN_3 by @Bassoonian in rh-hideout#3628

Fixed

  • Fixed potential Fly and Badge mismatch when using debug options by @AsparagusEduardo in rh-hideout#3489
  • Fixed Pokémon Animation debug menu ignoring animation delay by @AsparagusEduardo in rh-hideout#3562
  • Fixed IS_DITTO macro by @LOuroboros in rh-hideout#3558
  • Added RTC failsafe to Debug menu's Cheat Start option by @ravepossum in rh-hideout#3561

🐉 Pokémon 🐉

Added

  • Added Generation 9 species up to Teal Mask by @leo60228, @AlexOn1ine, @katykat5099, @kittenchilly and @AsparagusEduardo in rh-hideout#3249
    • IMPORTANT: Enabling Gen 9 species currently break saves. If you don't want to use them, you can disable P_GEN_9_POKEMON in include/config/species_enabled.h.
    • Updated UIs to support 4-digit Dex numbers.
    • Added Dunsparce and Tandemaus evolution methods by @fdeblasio in rh-hideout#3547
      • Tandemaus still does the evolution cutscene for now.
    • Ported newer PokéCommunity sprites by @AlexOn1ine in rh-hideout#3643 and rh-hideout#3646
    • Fixes and cleanup
  • Adjusted Pokemon sprites and palettes - Part 2 by @CyanSMP64 in rh-hideout#3612
    • From Magnemite to Tangela + Hitmontop + Nidoking adjustment by MrDollSteak.
    • Corrected sprite sizes and elevations
    • Further palette adjustments by @CyanSMP64 in rh-hideout#3744
      • Pidgeotto, Tentacruel, Feraligatr, Furret, Flaaffy, Marill, Azumarill and Miltank.
  • Added missing Alcremie forms by @AsparagusEduardo in rh-hideout#3469
    • Previously, only Strawberry Sweet forms were available
    • Missing: Icons for non-Ruby Cream forms.
    • Cleanup by @Bassoonian in rh-hideout#3488
  • Added species define synonyms for base forms with form names by @AsparagusEduardo in rh-hideout#3248
    • Eg. SPECIES_GIRATINA_ALTERED is equal to SPECIES_GIRATINA.
    • The original defines can be used in combination of GET_BASE_SPECIES_ID(species) to check for the whole species instead of specific forms.
  • Added Gen 7 Pokémon 2nd frames and animations by @katykat5099 in rh-hideout#3426
    • Rowlet family
    • Pikipek family
    • Cutiefly family
    • Rockruff family
    • Oranguru
    • Passimian
      • Fixed its shiny palette.
    • Togedemaru
    • Drampa
    • Jangmo-O family
  • Added Gen 6 Pokémon 2nd frames and animations by @katykat5099 in rh-hideout#3543
    • Chespin
    • Bunnelby
    • Fletchling family
    • Floette family
      • Added missing 2nd frame for Eternal Flower Form.
    • Amaura
  • Added mising World Cap Pikachu icon by @kittenchilly in rh-hideout#3401
  • Added P_CUSTOM_GENDER_DIFF_ICONS config to use custom female icon sprites for Pikachu and Wobbuffet by @kittenchilly in rh-hideout#3506
    • Removed P_HIPPO_GENDER_DIFF_ICONS in favor of Hippopotas and Hippowdon to use this new config.
  • Added P_UPDATED_FRIENDSHIP config that updates Pokémon base friendship to Gen 8+ standards by @kittenchilly in rh-hideout#3491

Changed

  • Species Simplifier™ (Parts 1, 2 and 3)
    • Moved most data from multiple arrays to new fields in gSpeciesInfo
      • gSpeciesNames array -> speciesName field.
      • gLevelUpLearnsets array -> levelUpLearnset field.
      • gTeachableLearnsets array -> teachableLearnset field.
      • gEvolutionTable array -> evolutions field.
      • gFormSpeciesIdTables array -> formSpeciesIdTable field.
      • gFormChangeTablePointers array -> formChangeTable field.
      • Refactored Cry tables to simplify the process of adding new cries.
        • Now there's a single entry in the table per cry, and species are asigned cry IDs in gSpeciesInfo's cryId field.
      • Graphical data now have their pointers in gSpeciesInfo (Sprites, palettes and animations)
        • Removed all files in src/data/pokemon_graphics/ with the exception of front_pic_anims.h.
          • gMonBackPicCoords array -> backPicSize field.
          • gMonBackPicTable array -> backPic field.
            • gMonBackPicTableFemale array -> backPicFemale field.
          • gMonFrontPicCoords array -> frontPicSize field.
          • gMonFrontPicTable array -> frontPic field.
            • gMonFrontPicTableFemale array -> frontPicFemale field.
          • gMonPaletteTableFemale array -> palette field.
            • gMonPaletteTableFemale array -> paletteFemale field.
          • gMonShinyPaletteTable array -> shinyPalette field.
            • gMonShinyPaletteTableFemale array -> shinyPaletteFemale field.
          • gEnemyMonElevation array -> enemyMonElevation field.
          • gMonIconPaletteIndices array -> iconPalIndex field.
            • gMonIconPaletteIndicesFemale array -> iconPalIndexFemale field.
        • Removed unused 2nd animations.
      • Dex Entries
        • Individual form information is visible in the HGSS Pokédex (Vanilla Dex TBD)
        • National Dex numbers are assigned to the species in gSpeciesInfo, removing the need of sSpeciesToHoennPokedexNum and sSpeciesToNationalPokedexNum arrays.
        • Height and Weight are now saved separately per form, so weight in battle is now more accurate.
          • Pokédex size page proportions are also separate.
        • Pokédex descriptions are now saved as compound strings in gSpeciesInfo and differ by form. Shared entries are at the top of src/data/pokemon/species_info.h.
    • Added toggles to disable specific family groups of species
      • Located in include/config/species_enabled.h.
        • Moved the original P_GEN_x_POKEMON configs to this file.
      • Options to disable groups of species:
        • Battle-gimmick forms (Megas, Primals, etc.)
        • Regional Forms (Includes evolutions of those species, such as Sirfetch'd)
        • Pikachu extra forms.
        • Cross-Generation Evolutions
          • Also added separate option to add cross-evolutions to the Regional Dex.
      • Generation 1-3 families can now be disabled.
      • Pokémon will not evolve into species that have been disabled.
      • Pokémon will produce offspring of species that have been disabled.
      • Pokémon will not change form into forms that have been disabled.
      • Fixes and cleanup
    • Grouped data by species family.
    • Converted species flags to gcc flags.
    • Converted P_UPDATED_STATS "ifdef blocks" to ternaries.
    • Added Mega Evolution hidden ability failsafes.
    • Separated gSpeciesInfo by Generation by @AsparagusEduardo in rh-hideout#3729
    • Fixes and cleanup
  • Updated P_UPDATED_ABILITIES Gen 9's config for Piplup's line, Gallade and Shiftry by @Bassoonian in rh-hideout#3353
    • Shiftry's 2nd regular ability was changed from Early Bird to Wind Rider.
    • Piplup, Prinplup and Empoleon's Hidden abilities were changed from Defiant to Competitive.
    • Gallade was given Sharpness as a 2nd regular ability.
  • Updated Legends Arceus Pokémon data and Level Up learnsets to Scarlet/Violet's by @kittenchilly in rh-hideout#3458
  • Applied missing uses of PLACEHOLDER_ANIM_SINGLE_FRAME by @AsparagusEduardo in rh-hideout#3562
  • Renamed PLACEHOLDER_TWO_FRAME_ANIMATION to PLACEHOLDER_ANIM_TWO_FRAMES by @AsparagusEduardo in rh-hideout#3562
  • Removed Old Unown Level Up Learnsets by @AsparagusEduardo in rh-hideout#3562
  • Added FORM_CHANGE_TIME_OF_DAY form change that automatically changes Form during times of day (used by Shaymin to revert to Land Forme at night) by @AsparagusEduardo in rh-hideout#1690
  • Added FORM_CHANGE_STATUS form change that triggers when they adquire status condition (used by Shaymin to revert to Land Forme when frozen) by @Bassoonian in rh-hideout#3734
    • Currently it doesn't:
      • Prevent Shaymin from changing into Sky Forme when frozen.
      • Change Form in the Battle Pike.
  • Evolutions now call for GetTimeOfDay instead of checking the times directly by @fdeblasio in rh-hideout#3369

Fixed

  • Fixed Koffing and Weezing's abilities ignoring P_UPDATED_ABILITIES config and always using Gen8's config by @Bassoonian in rh-hideout#3353
  • Fixed Pumpkaboo macro typo by @AlexOn1ine in rh-hideout#3541
  • Multiple fixes by @AsparagusEduardo in rh-hideout#3544
    • Fixed Mega Gardevoir/Gallade not having their updated Egg Groups.
    • Fixed mon not having their appropiate items.
      • Alolan Sandlash (Grip Claw, Rare)
      • Alolan Muk (Black Sludge, Common)
      • Alolan Golem (Cell Battery, Common)
      • Alolan Marowak (Thick Club, Rare)
      • Alolan Ninetales (Snowball, Rare)
    • Fixed missing species flags.
      • Giratina Origin (Legendary flag)
      • Deoxys Attack (Mythical flag)
      • Deoxys Defense (Mythical flag)
      • Deoxys Speed (Mythical flag)
      • Shaymin Sky (Mythical flag)
    • Fixed Aegislash Blade giving the wrong EV yield.
    • Fixed Zygarde 10% with Power Construct having the same stats as Zygarde 50%.
    • Fixed Galarian Weezing having inproper noFlip property.
  • Fixed Stantler not evolving when P_GEN_9_POKEMON is set to FALSE by @fdeblasio in rh-hideout#3548
  • Fixes Hisuian Sneasel's type order by @Bassoonian in rh-hideout#3706

⚔️ Battle General ⚔️

Added

  • Dynamax by @AgustinGDLV and @AsparagusEduardo in rh-hideout#2417 + Tests
    • Requires a Dynamax Band in the bag and for the B_FLAG_DYNAMAX_BATTLE flag to be assigned and set.
      • Pokémon holding a Mega Stone or Z-Crystal can't Dynamax.
    • Gigantamax forms.
      • G-Max Moves.
      • Forms determined using the Form Change tables.
      • P_GIGANTAMAX_FORMS config to disable those forms.
    • Since we currently don't modify the BoxPokemon struct:
      • Dynamax levels are set to 0 (1.5x HP increase)
      • Species always change into their Gigantamax Forms.
    • AI Dynamaxes the last Pokémon left in their party.
    • Instances where HP/Max HP percentages are used now use GetNonDynamaxHP and GetNonDynamaxMaxHP respectively.
    • Trainer slide-in messages by @Bassoonian in rh-hideout#3581
    • Fixes and cleanup
  • Added support for Sky Battles by @pkmnsnfrn in rh-hideout#2950
    • Requires both B_FLAG_SKY_BATTLE and B_VAR_SKY_BATTLE to be assigned.
    • Use the TrySkyBattle special in scripts to check if the player can participate in a Sky Battle and readies the party if it's succesful. Saves the result in VAR_RESULT.
      Route123_EventScript_Alberto_Battle_Event_Script:
          msgbox Route123_EventScript_Alberto_Text_AskSkyBattle, MSGBOX_YESNO
          compare VAR_RESULT, NO
          goto_if_eq Route123_EventScript_Alberto_DenySkyBattle
          special TrySkyBattle
          compare VAR_RESULT, TRUE
          goto_if_eq Route123_EventScript_Alberto_StartBattle
          msgbox Route123_EventScript_Alberto_Text_No_Flying_Pokemon
          closemessage
          release
          end
      
    • The B_SKY_BATTLE_STRICT_ELIGIBILITY config will restrict certain Pokémon from participating based on XY's list when enabled. By default is disabled and allows all Pokémon that are Flying-type and/or have Levitate as their ability.
    • Banned moves are defined by the skyBattleBanned flag. Besides moves banned officially in XY, Gen7+ moves are added via B_EXTRAPOLATED_MOVE_FLAGS config by @AsparagusEduardo in rh-hideout#3714
    • Effects that interact with grounded battlers do not happen in Sky Battles.
    • Fix by @pkmnsnfrn in rh-hideout#3617
    • Cleanup by @AlexOn1ine in rh-hideout#3621
  • Added B_TOXIC_REVERSAL config to revert bad poison to regular poison at the end of battles by @Bassoonian in rh-hideout#3605
  • Added B_SANDSTORM_SPDEF_BOOST config to disable Sandstorm's Sp. Defense boost for Rock-type Pokémon when set to GEN_3 or less by @Petuuuhhh in rh-hideout#3387
  • Added B_QUICK_MOVE_CURSOR_TO_RUN config to allow a B Button shortcut for moving the cursor to the run option in Wild Battles by @voloved in rh-hideout#3362
  • Added B_TRY_CATCH_TRAINER_BALL config to disable losing the Poké Ball used to try to catch a Trainer's Pokémon by @Bassoonian in rh-hideout#3684
  • Added P_CATCH_CURVE config that updates catch calculations to Gen 6+ by @AtariDreams in rh-hideout#3685
  • Added Snow weather animation by @kittenchilly in rh-hideout#3440
  • Added a flushtextbox macro to flush the text box in battles by @LOuroboros in rh-hideout#3442

Changed

  • Removed redundant Battle Types by @AgustinGDLV in rh-hideout#2417
    • BATTLE_TYPE_KYOGRE_GROUDON
    • BATTLE_TYPE_REGI
    • BATTLE_TYPE_GROUDON
    • BATTLE_TYPE_KYOGRE
    • BATTLE_TYPE_RAYQUAZA
    • Intros, terrain and music determined by the species itself.
      • Regigigas, Regieleki and Regidrago play MUS_VS_REGI.
  • Converted most battle preproc #if blocks to C ifs by @AsparagusEduardo in rh-hideout#3392
  • Removed pointless for loop in CB2_InitBattleInternal by @LOuroboros in rh-hideout#3422
  • Refactored Battle Frontier bans to check the base species by @Bassoonian in rh-hideout#3465
    • Better support for adding new species.
    • Also adds Gen4+ Special Pokémon to the list.
  • Obedience levels now increase per badge by @kittenchilly in rh-hideout#3475
    • Also sets B_OBEDIENCE_MECHANICS's default config to GEN_LATEST, where obedience restrictions also apply to non-outsider Pokémon, albeit based on their level met rather than actual level.
    • Thanks to combination of the added obedience levels matching ORAS' with vanilla Emerald's encounter levels, there's not a single instance were players need to worry about caught Pokémon not obeying as soon as they are caught.
  • Decoupled Affection values from Friendship rater thresholds, making them occur less often than what they used to by @kittenchilly in rh-hideout#3495
    • Because of the lessened frequency, they have been turned on by default.
  • Added HITMARKER_DISABLE_ANIMATION to temporarily disable animations (used in Bug Bite's berry consumption) by @ghoulslash in rh-hideout#3607

Fixed

  • Fixed Psychic Terrain blocking moves that target all battler or all opponents by @DizzyEggg in rh-hideout#3521
  • Fixed issue with "Cycle through Poké Balls" feature not working properly by @fdeblasio in rh-hideout#3534
  • Fixed Burmy not transforming at the end of battle if it didn't switch in during a Single Battle by @benicioneto in rh-hideout#3728
  • Fixed Player Partner not playing its Shiny animation by @ghoulslash in rh-hideout#3757

🤹 Moves 🤹

Added

  • Added Teal Mask Moves by @AlexOn1ine in rh-hideout#3402 + Tests
  • Added Glaive Rush's effect by @AlexOn1ine in rh-hideout#3476
  • Added Raging Bull's effect by @AlexOn1ine in rh-hideout#3552
  • Added Chilly Reception's effect by @RapidNutcracker in rh-hideout#3379
  • Added Rage Fist's effect by @AlexOn1ine in rh-hideout#3573
  • Added define synonyms (eg. MOVE_VICE_GRIP vs the current MOVE_VISE_GRIP) by @Bassoonian in rh-hideout#3580
  • Added combined Pledge move effects by @AlexOn1ine, @Skeli789 and @LOuroboros in rh-hideout#3336
    • Status animations by @SonikkuA-DatH
  • Added B_WIDE_GUARD and B_QUICK_GUARD configs for Wide Guard and Quick Guard to fail when used consecutively in Gen 5 by @AlexOn1ine in rh-hideout#3614
  • Added B_IMPRISON config that makes Imprison not fail if opposin Pokémon don't have any moves that the user knows from Gen 5 onwards by @AlexOn1ine in rh-hideout#3710

Changed

  • Added B_EXTRAPOLATED_MOVE_FLAGS config to extend move flag for moves removed in Gen8+.
    • Razor Wind, Silver Wind and Ominous Wind are given the windMove flag.
    • Dynamax Cannon, Behemoth Blade and Behemoth Blade are given the assistBanned flag.
    • Bitter Blade and Matcha Gotcha are given the healBlockBanned flag.
  • Added new move flags by @kittenchilly in rh-hideout#3425
    • twoTurnMove (replaces IsTwoTurnsMove)
    • forcePressure (for self-targeted moves that are affected by Pressure)
    • cantUseTwice (replaces EFFECT_GIGATON_HAMMER)
    • healBlockBanned (replaces an EFFECT_x switch in IsHealBlockPreventingMove)
    • encoreBanned (replaces if chain in Cmd_trysetencore)
    • assistBanned (originally used copycatBanned + EFFECT_SEMI_INVULNERABLE and EFFECT_SKY_DROP)
    • parentalBondBanned
  • Updated missing move flags for every move by @kittenchilly in rh-hideout#3425
  • Updated Grassy Glide's power from 60 to 55 when B_UPDATED_MOVE_DATA is set to GEN_9 or later (Teal Mask) by @kittenchilly in rh-hideout#3425
  • Simplified Octolock script and converted its various to callnative by @AlexOn1ine in rh-hideout#3437
  • Added CanAbilityPreventStatLoss to centralize stat lowering immunities by @AlexOn1ine in rh-hideout#3437
    • Fixed multiple abilities not showing the ability name in their message.
  • Renamed EFFECT_SMELLINGSALT to EFFECT_SMELLING_SALTS by @AlexOn1ine in rh-hideout#3504
  • New move animations by @Captain-Ford and @AlexOn1ine in rh-hideout#3529
    • Phantom Force
    • Trick or Treat
    • Acrobatics
    • Head Smash
    • Psyshock
    • Charge Beam
  • Plasma Fists now setup STATUS_FIELD_ION_DELUGE instead of having their own STATUS4 by @AlexOn1ine in rh-hideout#3476
  • Battle Dome points are now based on move data instead of being arbitrarily assigned by @Bassoonian in rh-hideout#3596

Fixed

  • Multiple Relic Song fixes by @AlexOn1ine in rh-hideout#3476
  • Fixed Acid and Crunch move descriptions being updated by B_UPDATED_MOVE_DATA alongside their effects by @fdeblasio in rh-hideout#3586
  • Fixed Howl buffing the user's ally if they have Soundproof by @AlexOn1ine in rh-hideout#3593
  • Fixed Floral Healing not increasing its effect on Grassy Terrain + Tests by @AlexOn1ine in rh-hideout#3604
  • Fixed Spirit Shackle/Anchor Shot not trapping the targets by @AlexOn1ine in rh-hideout#3668
  • Fixed Defog not consuming PP if the foe has -6 evasion by @AlexOn1ine in rh-hideout#3668
  • Fixed Mirror Coat being able to reflect Pain Split damage by @AlexOn1ine in rh-hideout#3668
  • Fixed incorrect Fling damage calculation due to the item being removed before them by @AlexOn1ine in rh-hideout#3670
  • Fixed Z-Moves using the base move's priority by @AlexOn1ine in rh-hideout#3690
  • Fixed Metal Burst, Trump Card and Comeuppance not being considered as damaging moves by @AlexOn1ine in rh-hideout#3697
  • Fixed Fiery Wrath animation bug that caused the user to flip upside down by @AlexOn1ine in rh-hideout#3739
  • Fixed Baton Pass not passing Embargo's remaining turns by @DizzyEggg in rh-hideout#3745
  • Fixed Raging Fury not causing rampage on user by @AsparagusEduardo in rh-hideout#3754

🎭 Abilities 🎭

Added

  • Added Opportunist + Tests by @ghoulslash in rh-hideout#2994
  • Added Zero to Hero + Tests by @AlexOn1ine in rh-hideout#3542
  • Added B_ILLUMINATE_EFFECT config for Illuminate's Gen9 effect by @Bassoonian in rh-hideout#3482
  • Added B_WEAK_ARMOR_SPEED config for Weak Armor's Gen 5-6 effect by @AsparagusEduardo in rh-hideout#3498
  • Added B_PROTEAN_LIBERO config for Protean/Libero only triggering once per switch-in as of Gen 9 by @AlexOn1ine in rh-hideout#3614
  • Added B_INTREPID_SWORD and B_DAUNTLESS_SHIELD configs for Intrepid Sword and Dauntless Sword only triggering once per battle by @AlexOn1ine in rh-hideout#3614
  • Added configs for disabling ability overworld effects as of Gen 9 by @Bassoonian in rh-hideout#3480
    • Synchronize, Compound Eyes, Super Luck, Cute Charm, Illuminate, Infiltrator, Harvest, Lightning Rod, Storm Drain, Flash Fire, Magnet Pull and Static.
  • Àbility data (not yet functional) by @kittenchilly in rh-hideout#3349
    • Hospitality
    • Mind's Eye
    • Embody Aspect (one ability per effect)
    • Toxic Chain
    • Supersweet Syrup

Changed

  • Pickup Table has been changed so that their percentages can be customized more easily, by @kittenchilly and @AsparagusEduardo in rh-hideout#3351
    • The data has been changed to Sword & Shield's.
  • Moved B_SYNCHRONIZE_NATURE to include/config/overworld.h and renamed it to OW_SYNCHRONIZE_NATURE by @Bassoonian in rh-hideout#3480

Fixed

  • Fixed Synchronize not working with Gift Pokémon and scripted Wild Battles by @Bassoonian in rh-hideout#3480
  • Fixed Anger Shell being triggered multiple times by multi-hit moves by @DizzyEggg in rh-hideout#3508
  • Fixed Absorbing abilities not cancelling multi-hit moves + Tests (eg. Sap Sipper vs Bullet Seed) by @DizzyEggg in rh-hideout#3516
  • Fixed issue that caused Shadow Tag to not work by @fdeblasio in rh-hideout#3549
  • Fixed assumption that gLastUsedAbility is u8 by @Bassoonian in rh-hideout#3569
  • Fixes Protosynthesis and Quark Drive ability pop up appearing more than once by @AlexOn1ine in rh-hideout#3595
  • Fixed Trace not triggering when switching in by secondary effects like U-Turn, Eject Pack or Explosion by @LOuroboros in rh-hideout#3623
  • Fixed Defiant not being triggered by Cotton Down interaction by @AlexOn1ine in rh-hideout#3657
  • Fixed self-targeted moves triggering Stamina, like Substitute by @AlexOn1ine in rh-hideout#3669
  • Fixed Quick Draw not working properly by @AlexOn1ine in rh-hideout#3724
  • Fixed Neutraling Gas switch-out combined with Electric Surge causing a visual glitch by @DizzyEggg in rh-hideout#3746
  • Fixed Innards Out damaging Pokémon with Magic Guard by @DizzyEggg in rh-hideout#3758
  • Fixed Innards Out damaging Pokémon despite being suppressed by Gastro Acid by @DizzyEggg in rh-hideout#3758

🧶 Items 🧶

Added

  • Repeated Medicine usage by @Bassoonian in rh-hideout#3005
    • You can use multiple medicine items in a row without going back to the bag menu. Supports Rare and Exp. Candies.
  • Added B_LIGHT_BALL_ATTACK_BOOST config to disable Light Ball's Pshycal Attack boost when set to GEN_3 or less by @Petuuuhhh in rh-hideout#3387
  • Added Teal Mask items by @kittenchilly in rh-hideout#3349
    • Sprites (except for Fairy Feather) by @hedara90 in rh-hideout#3527
    • Fairy Feather by @kittenchilly in rh-hideout#3520
      • Sprite by Anarlaurendil on Deviantart.
      • Despite being introduced in Gen 9, it's still affected by the I_TYPE_BOOST_POWER config to be consistent with other type items (10% boost when set to Gen 3).
    • Evolution items
      • Syrupy Apple
      • Unremarkable Teacup
      • Masterpiece Teacup
    • Form change items
      • Cornerstone Mask
      • Wellspring Mask
      • Hearthflame Mask
    • EV modifier items
      • Health Mochi
      • Muscle Mochi
      • Resist Mochi
      • Genius Mochi
      • Clever Mochi
      • Swift Mochi
      • Fresh Start Mochi
    • Glimmering Charm
      • Since there's no raids, it currently does nothing.
  • Implemented Rotom Catalog and Zygarde Cube by @kittenchilly in rh-hideout#3284
    • Zygarde Cube follows Gen 8 functionality, where it allows to change Form and Ability but not teach moves.
    • Rotom Catalog follows non-BDSP functionality, where all forms don't need to be unlocked.
    • Cleanup by @AsparagusEduardo in rh-hideout#3700
  • Implemented support for Fusion items by @TeamAquasHideout and @kittenchilly in rh-hideout#3274
    • Items:
      • DNA Splicers
      • N-Solarizer
      • N-Lunarizer
      • Reins of Unity
    • Fused mon are stored at the end of in PokemonStorage.
    • Fixes by @Bassoonian in rh-hideout#3602
    • Fixes and cleanup
  • Ported pokefirered's Vs. Seeker by @Jaizu @pkmnsnfrn in rh-hideout#3256
    • Requires I_VS_SEEKER_CHARGING flag to be assigned.
    • Cleanup by @GraionDilach in rh-hideout#3718
  • Added define synonyms (eg. ITEM_STICK vs the current ITEM_LEEK) by @Bassoonian in rh-hideout#3580

Changed

  • Removed unused holdEffectParam for items that double the amount of money gained in battle by @LOuroboros in rh-hideout#3528
  • Using the name Parcel instead of Oak's Parcel by @Bassoonian in rh-hideout#3580
  • Repel/Lure menu improvements @Jaizu and @pkmnsnfrn in rh-hideout#3594
    • If VAR_LAST_REPEL_LURE_USED is enabled and a spray runs out:
      • It will show the name of the spray that ran out.
      • If it was the last item of its type and strength, it will ask the player if they want to use a different one of the same type.
    • B can now be pressed to cancel the menu.

Fixed

🤖 Battle AI 🤖

  • Added AI Tests
    • By @DizzyEggg in rh-hideout#3361
      • AI prefers Bubble over Water Gun if it's slower (both are power 40).
      • AI prefers Water Gun over Bubble if it knows that foe has Contrary.
      • AI prefers moves with better accuracy, but only if they both require the same number of hits to KO.
      • AI prefers moves which deal more damage instead of moves which are super-effective but deal less damage.
      • AI prefers Earthquake over Drill Run if both require the same number of hits to KO.
      • AI chooses the safest option to faint the target, taking into account accuracy and move effect.
      • AI won't use ground type attacks against flying type Pokémon unless Gravity is in effect.
      • AI will not switch in a Pokémon which is slower and gets 1HKOed after fainting.
      • AI switches if Perish Song is about to kill.
      • AI won't use a Weather changing move if partner already chose such move.
      • AI will not use Helping Hand if partner does not have any damage moves.
      • AI will not use a status move if partner already chose Helping Hand.
      • AI without any flags chooses moves at random.
    • By @AlexOn1ine in rh-hideout#3382
      • AI prefers a weaker moves over one with a downside effect if both require the same number of hits to KO.
      • AI prefers moves with the best possible score, chosen randomly if tied.
      • AI can choose a status move that boosts the attack by two.
    • By @AlexOn1ine in rh-hideout#3515
      • AI won't use Solar Beam if there is no Sun up or the user is not holding Power Herb.
    • By @AlexOn1ine in rh-hideout#3583
      • AI chooses moves with secondary effect that have a 100% chance to trigger
    • Cleanup by @DizzyEggg in rh-hideout#3748
  • Smarter SwitchAI Mon Choices + HasBadOdds Switch Check by @Pawkkie in rh-hideout#3253
    • Use AI_FLAG_SMART_MON_CHOICES to enable smarter decisions when choosing which mon gets sent out
    • HasBadOdds expands AI_FLAG_SMART_SWITCHING to switch out in cases where a mon has a bad matchup and lots of HP remaining
  • Extend AI_FLAG_SMART_SWITCHING for Encore / hazards / lowered attacking stats + Tests by @Pawkkie in rh-hideout#3557

Changed

Fixed

  • Fixed AI randomly choosing moves if they're both super effective by @DizzyEggg in rh-hideout#3361

🧹 Other Cleanup 🧹

  • Remove all trailing whitespace (upcoming) by @kittenchilly in rh-hideout#3473
  • Debug menu cleanup and documentation by @AsparagusEduardo and @sphericalice in rh-hideout#3390
  • Removed powerfulMoveEffects array by @AlexOn1ine in rh-hideout#3515
  • Added -Woverride-init Makefile flag that agbcc has by default by @AsparagusEduardo in rh-hideout#3535
  • Fixed static variable names by @Bassoonian in rh-hideout#3637
  • Fixed config descriptions
  • Fixed mistmatching gBattleTextBuff3 definitions by @GraionDilach in rh-hideout#3719

🧪 Test Runner 🧪

Added

  • Added support for wild battle tests by @DizzyEggg in rh-hideout#3342
  • Added support for AI battle tests by @DizzyEggg in rh-hideout#3361
  • Experience tests by @DizzyEggg in rh-hideout#3342
    • Catching Pokémon gives experience.
    • Higher leveled Pokémon give more experience.
    • Lucky Egg boosts gained exp points by 50%.
    • Exp is scaled to player and opponent's levels.
    • Large exp gains are supported
    • Held Exp. Share gives Experience to mons which did not participate in battle
  • Added additional damage formula test by @AlexOn1ine in rh-hideout#3437
  • Added Octolock tests by @AlexOn1ine in rh-hideout#3437
  • Added Defiant/Sticky Web interaction test by @DizzyEggg in rh-hideout#3516
  • Added Embargo tests by @LOuroboros in rh-hideout#3555
  • Added missing Hyper Cutter tests by @AlexOn1ine in rh-hideout#3437
  • Added missing Anger Shell tests by @DizzyEggg in rh-hideout#3508
  • Added missing White Herb tests by @AlexOn1ine in rh-hideout#3611
  • Added SpeciesInfo integrity tests by @mrgriffin in rh-hideout#3688

Changed

  • Moved battle tests off the heap by @mrgriffin in rh-hideout#3413
  • Automatic ASSUMPTION_FAIL in tests when used species are disabled.
    • Because of this, instances of ASSUME(P_GEN_x_POKEMON == TRUE) have been removed.
  • Updated Gen 9-mon-exclusive ability tests to use Gen 9 mon by @AsparagusEduardo in rh-hideout#3733

Fixed

  • Fixed VSCode error shenanigans when viewing tests by @AsparagusEduardo in rh-hideout#3383
  • Fixed broken move animations in test replays by @DizzyEggg in rh-hideout#3398
  • Performance improvement for test name matching by @jiangzhengwenjz in rh-hideout#3559
  • Fixed Ice Heal test name typo by @AtariDreams in rh-hideout#3676

📦 Pret merges 📦

  • 2023-10-02 by @AsparagusEduardo in rh-hideout#3372
    • Slight RTC documentation + Evolution times constants (pret#1925)
    • Add friendship evo threshold constant (pret#1928)
    • Solved a bunch of -Wall errors on modern (pret#1926)
  • 2023-10-27 by @AsparagusEduardo in rh-hideout#3471
    • Add some task/sprite data defines (pret#1915)
    • Fix mini_printf encoded string -Werror=pointer-sign warning (pret#1938)
    • Remove all trailing whitespace (pret#1937)
    • Use BUGFIX in assembly files (pret#1935)
  • 2023-12-10 by @AsparagusEduardo in rh-hideout#3675
    • Delete the redundant files generated after running build (pret#1944)
    • Rename EGG_GROUP_UNDISCOVERED egg group to EGG_GROUP_NO_EGGS_DISCOVERED (pret#1939)
    • Renamed SendMonToPC to CopyMonToPC (pret#1940)
    • Document datahpupdate (pret#1936)
    • Renamed HITMARKER_IGNORE_SAFEGUARD to HITMARKER_STATUS_ABILITY_EFFECT (pret#1959)
    • Moved files (pret#1953)
      • Spinda Spots
      • JP Fonts
      • redyellowgreen_frame.bin
    • [Build System Rewrite] Linkerscript now tracks RAM/ROM usage (pret#1952)
      • Fixed ld_script.ld artifact from a previous pret version by @AsparagusEduardo in rh-hideout#3731
    • Updated the size of the struct InGameTrade's otName variable (pret#1962)

New Contributors

Full Changelog: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.6.2...expansion/1.7.0