Releases: rh-hideout/pokeemerald-expansion
Releases · rh-hideout/pokeemerald-expansion
Release list
Expansion 1.16.3
## 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.16.3
`.🧬 General 🧬
Changed
- refactor: unified trainer slide and script comparison operators by @pkmnsnfrn in #10323
- This does not unify
CMP_EQUALand the like.
- This does not unify
- cleanup: remove comment with incorrect time labels by @pkmnsnfrn in #10437
- fix(cleanup): remove unused variables by @miriamlefae in #10442
- Cleanup debug.inc by @RubyRaven6 in #10469
Fixed
- Fix sprite fill function by @hedara90 in #10349
- Existing sprite fills starting on a pixel that's not a multiple of 4 might have to be adjusted
- Fix sprite fills being broken in some cases by @hedara90 in #10392
- Fix FRLG Magikarp and Heracross size units by @Cle-bit in #10385
- Fix buffer overrun in ReformatItemDescription by @plish-plash in #10301
- Add Zero-Width-Space and fix some line break handling by @hedara90 in #10429
🗺️ Overworld 🗺️
Fixed
- Fix debug time scripts leaving followers frozen by @Cle-bit in #10382
- fix(overworld): fix tod blend settings getting updated every frame by @miriamlefae in #10343
- fix chooseboxmon blending when returning from summary screen (#10403) by @Eemeliri in #10417
- assert trainer script that needs an object event by @FosterProgramming in #10410
- Fix Box ID Var not being updated when opening Move Relearner from Summary Screen by @PCG06 in #10445
🐉 Pokémon 🐉
Changed
- Even More Gen VII Animation Data + Gen VIII Clean Up by @Tacobell24 in #10270
- PokeCommunity sprites batch (June 2026) by @kittenchilly in #10346
- Alolan and Mega Form Animation Frames by @Tacobell24 in #10414
Fixed
- Fix duplicate CANCEL entry in move relearner list after replacing a move by @thalescd in #10368
- Remove text encoding error in
za.jsonby @PCG06 in #10387 - Fix ANIM_RAPID_H_HOPS freezing the game when opponent is wild shiny by @hedara90 in #10397
- update mega magearna pokedex entry by @FosterProgramming in #10535
⚔️ Battle General ⚔️
Changed
- Fix Orichalcum Pulse and Hadron Engine Activation Messages by @Cle-bit in #10395
- Fix outdated move data by @Cle-bit in #10428
Fixed
- Fix some Mirror Armor issues by @AlexOn1ine in #10350
- Fix Commander edge cases with Multi Battles, switching, and gimmicks by @Cle-bit in #10317
- Fix single-target moves hitting all foes in the shared shadow animation by @thalescd in #10369
- Fix Orichalcum Pulse and Hadron Engine Ability Flags by @Cle-bit in #10366
- Fixes bounced moves not activating some effects by @PhallenTree in #10386
- Fix Unseen Fist / Mummy interaction by @AlexOn1ine in #10389
- Fix Aromatherapy not being blocked by Sap Sipper by @AlexOn1ine in #10388
- Intrepid and Dauntless futureproofing by @bassforte123 in #10406
- Fix Illusion party search range for two-opponent trainers by @thalescd in #10415
- Fix frlg old man text by @FosterProgramming in #10432
- New config for transformed pokemon properties by @FosterProgramming in #10298
- Fix send mon text in frlg first battle by @FosterProgramming in #10436
- Fix in which gens B_TRANSFORM_BATTLE_REWARDS effects apply by @FosterProgramming in #10441
- Fix Struggle recoil damage not using standard rounding by @LinathanZel in #10448
- Fix Court Change hazard count swapping by @Cle-bit in #10476
- Fix Opportunist and Mirror Herb not triggering during the end turn by @AlexOn1ine in #10433
- Fix Misty Terrain grounding check by @Cle-bit in #10477
- Fix Rage Fist Hit counter overflow by @Cle-bit in #10514
🤹 Moves 🤹
Fixed
🎭 Abilities 🎭
Changed
🧶 Items 🧶
Fixed
- Fix bag list truncation when tossing a whole stack in berry pocket by @montmoguri in #10423
🤖 Battle AI 🤖
Changed
- Renaming + reworking Can Use All Moves to Values Moves Over Splash. by @surskitty in #10381
Fixed
- Fix invalid switch in if ace flag is present by @AlexOn1ine in #10399
- fix(ai): reset move data between switch-in calculations by @moostoet in #10412
- fix(ai): avoid rewarding Levitate ally immunity (#10394) by @moostoet in #10411
- Fixed doubles AI overvaluing Ground-type spread moves solely because its ally has Levitate.
- Fix AI Binding Band check for Wrap damage by @PhallenTree in #10424
- Fix AI running Focus Punch checks on Present and Fixed HP dmg moves by @grintoul1 in #10425
- Fix AI target filtering and debug score highlighting by @Cle-bit in #10409
🧹 Other Cleanup 🧹
- Fix incorrect changelog in 1.16.2 by @hedara90 in #10364
- refactor: unified trainer slide and script comparison operators by @pkmnsnfrn in #10323
- This does not unify
CMP_EQUALand the like.
- This does not unify
- Dynamic Multichoice Tutorial by @RubyRaven6 in #10199
- Fix outdated move data by @Cle-bit in #10428
- cleanup: remove comment with incorrect time labels by @pkmnsnfrn in #10437
- fix(cleanup): remove unused variables by @miriamlefae in #10442
- Cleanup debug.inc by @RubyRaven6 in #10469
🧪 Test Runner 🧪
Changed
- Renaming + reworking Can Use All Moves to Values Moves Over Splash. by @surskitty in #10381
Fixed
- Fix Commander edge cases with Multi Battles, switching, and gimmicks by @Cle-bit in #10317
- Fix inverse battle matchup parametrization by @Cle-bit in #10379
- Fix Known Fails Passing showing
and 0 more+ add additional print modes by @grintoul1 in #10390 - Fix AI running Focus Punch checks on Present and Fixed HP dmg moves by @grintoul1 in #10425
📚 Documentation 📚
- Dynami...
Expansion 1.16.2
## 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.16.2
`.🧬 General 🧬
Added
- fatal_assertf by @mrgriffin in #10156
Changed
- Fix excessive indentation in trainer_pools.c by @hedara90 in #10332
- Update how to pokemon by @hedara90 in #10353
Fixed
- Check if species is disabled when filling pc boxes by @FosterProgramming in #10194
- Fix declaration after label errors by @hedara90 in #10210
- Fix off by one error in randomweightedIndex by @FosterProgramming in #10241
🗺️ Overworld 🗺️
Fixed
- Fix event mon stat calculate without ivs by @FosterProgramming in #10191
- Fix icon tags for eggs and female icons not being properly cleared by @FosterProgramming in #10195
- fix(spots): add arguments to incgfx and check for isEgg by @miriamlefae in #10247
- Fix checking item id instead of hold effect for hold_effect_repel by @FosterProgramming in #10242
- Bugfix: Added missing spritesheet rules to frlg maniac ow by @Bivurnum in #10281
- Fix GetRandomDifferentSpeciesSeenByPlayer issues with disabled species by @FosterProgramming in #10230
- Fix flicker when moving pokemon from box to party by @TixoRebel in #10313
- fix(sprite): handle weather blending for BLEND_IMMUNE_FLAG by @miriamlefae in #10322
- fix(trainer-see): fix trainer type SEE_ALL_DIRECTIONS not facing player by @miriamlefae in #10329
🐉 Pokémon 🐉
Changed
- Add new data from Champions Regulation M-B by @kittenchilly in #10250
- Fix Ursaluna Bloodmoon and Pikachu forms overworld sprites by @TixoRebel in #10327
⚔️ Battle General ⚔️
Fixed
- Fix Strong Winds interactions with Weather Ball and healing moves by @Cle-bit in #10132
- Fix effectiveness message order and Psychic Terrain/Magic Bounce interaction by @AlexOn1ine in #10144
- Fixes Future Sight attacker in party issues by @AlexOn1ine in #10161
- Fixes Toxic Poison counter not being incremented on Poison Heal by @AlexOn1ine in #10169
- Fixes Supreme Overlord and Last Respects wrong faint counter by @AlexOn1ine in #10186
- Fix Bad Dreams leaving
ABILITY_POPUPstuck open by @Cle-bit in #10207 - Fixes Smack Down not clearing correct values by @AlexOn1ine in #10213
- Fixes Curse wrong animation being played by @PhallenTree in #10216
- Fix Sea of Fire damage immunities by @Cle-bit in #10227
- Fix dynamic Fire-type moves not thawing frozen targets by @Cle-bit in #10228
- Fix OHKO moves ignoring Glaive Rush accuracy bypass by @Cle-bit in #10229
- Fix Psycho Shift status transfer interactions by @Cle-bit in #10226
- Fix Emergency Exit being skipped after Shell Bell recovery by @Cle-bit in #10231
- Fix incorrect style flagging for Battle Factory by @ds-colo in #10219
- Fixes Mirror Herb erroneous activations by @AlexOn1ine in #10185
- Fixes TARGET_FIELD moves failing when partner is not on the field by @AlexOn1ine in #10263
- Fix Mimikyu Busted and Eiscue Noice reverting when revived by @Cle-bit in #10272
- Fixes Totem aura message mentioning wrong battler by @PhallenTree in #10287
- Fixes Binding Band no longer affecting bound battler's hp decrease when nullified by @PhallenTree in #10289
- Fixes Pursuit activating Eject Button on switching foe by @PhallenTree in #10288
- Fix Incinerate item handling and Core Enforcer targeting by @Cle-bit in #10278
- Fix Target Failure for Ally by @AlexOn1ine in #10175
- Fix Eerie Spell PP reduction for Max Moves by @Cle-bit in #10306
- Fix Mental Herb leaving volatile status timers uncleared by @Cle-bit in #10307
- Fix Commander simultaneous switch and unintended Dondozo switch-outs by @Cle-bit in #10295
- Fix moveanim being played after hitanim and healthbarupdate by @AlexOn1ine in #10309
- Fixes Dragon Darts after hit messages by @PhallenTree in #10315
- Fix Symbiosis not triggering after Cheek Pouch by @Cle-bit in #10325
- Fix Future Sight triggering reactive items and abilities by @Cle-bit in #10344
- Fix Thousand Arrows not grounding both targets by @AlexOn1ine in #10354
- Fix Commander suppression and overwrite flags by @Cle-bit in #10357
🤹 Moves 🤹
Changed
- Fix Twister using Secret Power's animation by @ScottehMax in #10189
Fixed
- Fix Trick Room animation playing on wrong battler by @grintoul1 in #10262
- fix(battle-anim): fix gust colour cycling animation by @miriamlefae in #10345
🧶 Items 🧶
Changed
Fixed
- Fix checking item id instead of hold effect for hold_effect_repel by @FosterProgramming in #10242
🤖 Battle AI 🤖
Fixed
- Fix AI partner seeing all moves bad on dead adjacent opponent battler by @grintoul1 in #10302
- Fix move effect ai stat change check by @AlexOn1ine in #10285
- Fix reversed AI battlerAtk and battlerDef usage by @Cle-bit in #10342
🧹 Other Cleanup 🧹
- Remove the preproc around Strange Ball OW graphic by @PCG06 in #10225
- Fix excessive indentation in trainer_pools.c by @hedara90 in #10332
🧪 Test Runner 🧪
Added
- Add test support for inventory management in battle by @FosterProgramming in #9642
- In battle tests, ITEM_USE will now adds item to the bag and items are consumed during the battle
Changed
- Test Runner: Replace :L hack by @mrgriffin in #10155
- Battle Test: Failure Suggestions by @mrgriffin in #9807
Fixed
- Fixes Supreme Overlord and Last Respects wrong faint counter by @AlexOn1ine in #10186
- Fix incorrect Mummy and Doodle ability tests by @Cle-bit in #10358
📚 Documentation 📚
- Changes to mapjson.cpp and how_to_frlg.md by @RubyRaven6 in [#10198](#10198...
Expansion 1.16.1
## 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.16.1
`.🧬 General 🧬
Added
- Add
if_comptimeby @mrgriffin in #10130
Changed
- Cleanup 'message 0x0' by @mrgriffin in #10110
- Fix Trainer Party Pool documentation by @RubyRaven6 in #10122
- Remove deprecated
HQ_RANDOMconfig by @Bassoonian in #10131
Fixed
- chore(credits): change kildemal to miriam in credits by @miriamlefae in #10123
- Misc Fixes/Cleanups by @mrgriffin in #9892
- Fix HGSS Dex Form Strings by @HashtagMarky in #10147
🗺️ Overworld 🗺️
Changed
- assertf for NULL goto/call by @mrgriffin in #10111
Fixed
- Fix colosseum warps frlg by @Viperio19 in #10100
🐉 Pokémon 🐉
Changed
⚔️ Battle General ⚔️
Changed
- feat (battle): improve gimmick triggers' graphics by @mudskipper13 in #10129
Fixed
- Fixes stat change queue having erroneous stats stored by @AlexOn1ine in #10088
- Fixes Acupressure timeout in doubles by @AlexOn1ine in #10091
- Fixes Random Move from disobedience by @AlexOn1ine in #10093
- Fix link singles and doubles using incorrect parties by @Viperio19 in #10102
- Fix player's hp display showing 0 max hp for p2 in link battles after taking damage by @Viperio19 in #10105
- Fix generic ability ineffective battle message misuse by @Cle-bit in #10149
🧶 Items 🧶
Changed
- Add missing item sort types by @Cle-bit in #10104
- SanitizeBagItemId, TryTakeMonItemResult by @mrgriffin in #10109
Fixed
🤖 Battle AI 🤖
Fixed
- Prevent AI illegally targeting itself in doubles by @grintoul1 in #10139
🧹 Other Cleanup 🧹
- Add missing item sort types by @Cle-bit in #10104
- Cleanup 'message 0x0' by @mrgriffin in #10110
- SanitizeBagItemId, TryTakeMonItemResult by @mrgriffin in #10109
- feat (battle): improve gimmick triggers' graphics by @mudskipper13 in #10129
- assertf for NULL goto/call by @mrgriffin in #10111
- Remove deprecated
HQ_RANDOMconfig by @Bassoonian in #10131 - Fix Beat Up typeless damage test effectiveness check by @Cle-bit in #10103
🧪 Test Runner 🧪
Changed
Fixed
- Prevent AI illegally targeting itself in doubles by @grintoul1 in #10139
📚 Documentation 📚
- Fix Trainer Party Pool documentation by @RubyRaven6 in #10122
- Fix broken/old links in CREDITS.md by @ThePeeps191 in #10120
📦 Branch Synchronisation 📦
pret
- 1st of June, 2026 in #10113
- Implicit waitstate for special/specialvars by @mrgriffin in pret#2200
New Contributors
- @Viperio19 made their first contribution in #10100
Full Changelog: expansion/1.16.0...expansion/1.16.1
Expansion 1.16.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.16.0
`.🌋 REFACTORS 🌋
📜 = Uses a migration script.
- Fling Refactor by @AlexOn1ine in #9176
- Refactor synchronize and cure berry timing by @AlexOn1ine in #9446
- Refactor Sky Drop and rampage confusion by @AlexOn1ine in #9249
- 📜 Remove loadspritegfx by @hedara90 in #8497
- Instead of having to load assets used in move animations manually, they're loaded by the commands that use them instead.
loadspritegfxhad an implicitdelay 1in it, if downstream animations depended on that, an explicitdelay 1needs to be added manually.- Has migration script, run
python migration_scripts/1.15/remove_loadspritegfx.py
- Minor IsBattlerWeatherAffected refactor by @AlexOn1ine in #9510
- gBerries refactor + untangling berry indices from item IDs by @cfmnephrite in #7305
- Makes Poltergeist and Fling messages into a pre attack effect by @PhallenTree in #9610
- Rework special trainer IDs by @FosterProgramming in #9269
- Adds queued switches for Move End switches by @PhallenTree in #9494
- Non-forced switches in Move End are now queued, like in-game.
- Refactor Battle Messages by @LinathanZel in #9655
- Refactor/trainer pic info by @cawtds in #9475
- Magic Bounce / Magic Coat/ Snatch refactor by @AlexOn1ine in #9674
- Unify AI prediction handling by @Pawkkie in #9575
- Make End Turn events use BattleScriptCall (return instead of end2) by @PhallenTree in #9680
- Changed end of turn scripts to use
returninstead ofend2. end2scripts may still be used, but it's recommended to switch them toreturnscripts
- Changed end of turn scripts to use
- Move relearner refactor by @FosterProgramming in #9006
- Calling the move relearner from a script ignores config
- Move Relearner warns you if a TM will be used
- When the move relearner is called from a menu, it doesn't quit the move relearner automatically, you can learn as many moves as you want before leaving
- The function
RedrawListMenunow properly calls themoveCursorFunccallback the same way it is done when the list is drawn for the first time
- Automate regional Pokedex orders by @fdeblasio in #8930
- Adds queued switches for EndTurn switches by @PhallenTree in #9717
- End of turn switches are now queued.
- Emergency Exit and Wimp Out now activate at the end of the turn after an event left the ability user under 50% HP if it wasn't healed by a healing item in that event.
- Adds AreMultiPartiesFullTeams and Test_BattlersShareParty handling to tests by @grintoul1 in #9751
- Shouldswitch refactor to use
SwitchContextby @Pawkkie in #9847 - Adds CalcValue struct to MoveEnd by @AlexOn1ine in #9859
- Stat Change Refactor by @AlexOn1ine in #9730
- Customizeable Pledge Moves by @AlexOn1ine in #9918
🧬 General 🧬
Added
- feat(debug): add quickstart from titlescreen by @miriamlefae in #9641
Changed
- Remove unnecessary EWRAM allocation for cable car animation by @hedara90 in #9207
- Cleaned up Match Call by @fdeblasio in #8816
- Add Instructions on how to build FRLG by default by @HunarPG in #9415
- Random EWRAM and IWRAM savings by @estellarc in #9231
- Typeless enums for OBJ_EVENT_GFX, Multichoice Ids, and Facility Classes by @grintoul1 in #9066
- preproc: (shared) COMPOUND_STRING by @mrgriffin in #9086
- Removes unused files by @FosterProgramming in #9420
- pr adding telekinesis ban list to species data by @Meister-anon in #9410
- Change
TrainersMon's ball fromu8toenum PokeBallby @estellarc in #9467 - Converted script_menu.h strings to COMPOUND_STRINGs by @fdeblasio in #9051
- Clean up boolean comparisons by @Bassoonian in #9376
- Fix enum usage by @Bassoonian in #9466
- Master merge 2026-03-14 by @AsparagusEduardo in #9522
- Some bool cleanup by @FosterProgramming in #9539
- Replace MAX_GIFT_RIBBONS with NUM_GIFT_RIBBONS by @FosterProgramming in #9542
- Remove PARTNER_DUMMY need by adding additional difficulty when TESTING by @grintoul1 in #9562
GenConfignaming cleanup by @Pawkkie in #9529- fix(pokedex_plus_hgss): revert incorrect usage of species enum by @miriamlefae in #9570
- Remove leftover DebugPrintfs by @mrgriffin in #8213
- Fix Kanto object event graphic names by @fdeblasio in #9537
- Consolidated Battle Tower classes and object events by @fdeblasio in #9241
- Rework special trainer IDs by @FosterProgramming in #9269
- identified deprecated values by @Meister-anon in #9578
- Removed STRINGID_PKMNISGLOWING by @fdeblasio in #9634
- 📜 Consolidate decoration values by @fdeblasio in #9624
- Process for running migrations script
- Keep your modified
src/data/decorations/description.handsrc/data/decorations/icon.hwhen resolving conflicts - Run migration script
- Remove
src/data/decorations/description.handsrc/data/decorations/icon.h
- Convert move description variables into COMPOUND_STRINGs by @fdeblasio in #9667
- Converted move animation magic numbers to defines by @fdeblasio in #9677
- Move relearner refactor by @FosterProgramming in #9006
- Calling the move relearner from a script ignores config
- Move Relearner warns you if a TM will be used
- When the move relearner is called from a menu, it doesn't quit the move relearner automatically, you can learn as many moves as you want before leaving
- The function
RedrawListMenunow properly calls themoveCursorFunccallback the same way it is done when the list is drawn for the first time
- Remove hex values from BattlePokemon by @AlexOn1ine in #9711
- Support non-contiguous SE/MUS IDs in debug menu by @mrgriffin in #9713
- Fix multi_do multiple-definition error by @mrgriffin in #9725
- Automate regional Pokedex orders by @fdeblasio in #8930
- Learnset Helper: Remove unnecessary order-only dependencies by @mrgriffin in #9721
- Fix spaces, spelling, and grammar by @fdeblasio in #9761
- Revert an overzealous find-replace by @rayrobdod in #9780
- Improve
FillSpriteRectperformance by @estellarc in [#98...
Expansion 1.15.3
## 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.15.3
`.🧬 General 🧬
Changed
- Expansion 1.15.2 release by @hedara90 in #9900
- chore: removed old changelog file by @pkmnsnfrn in #9915
- Various Follower Sprite Fixes from issue #5135 by @Liamjd14 in #9990
- chore(credits): change kildemal to miriam in credits by @miriamlefae in #10078
Fixed
- fix(debug_menu): fix flicker when used when map pop-up active by @miriamlefae in #9872
- Cleanup of Dexnav checks by @hedara90 in #9913
- Fix font shadow not being cleared in safari healthbox by @FosterProgramming in #9912
- Fixes double battle rematches being single battles by @luuma in #9963
- Fix
FillSpriteRectwrongly triggering an assert by @estellarc in #9973 - Prevent error in title screen cinematic if Kyogre/Groudon are disabled by @fisham33 in #9995
- Fix incorrect action handler being set after rearranging moves in Emerald tutorial battle by @hedara90 in #10015
- mapjson assume undefined layout and maps match the compiled version by @FosterProgramming in #9949
- 📜 Migration script for pret#2200 by @mrgriffin in #10061
🗺️ Overworld 🗺️
Fixed
- fix (namebox): back 2 back namebox no longer flickers by @mudskipper13 in #9905
- Fix move relearner from summary screen from pc by @FosterProgramming in #9903
- Prevent reflection tag palette collisions by @moostoet in #9925
- Fixed incorrect overworld reflection palettes when shiny and non-shiny Pokemon object events are loaded near water at the same time.
- Fix FRLG player sprite glitch when fishing after surfing by @moostoet in #9930
- Bug fix: On-step scripts now only happen once the FNPC out of door task is complete by @Bivurnum in #9991
🐉 Pokémon 🐉
Changed
- Garchomp Mega Z Sprites by @Liamjd14 in #9945
- Updated Gen VII animations by @Tacobell24 in #9974
- BoxPokemon: Less error-prone "static asserts" by @mrgriffin in #10071
Fixed
⚔️ Battle General ⚔️
Changed
- Align outdated move descriptions with current mechanics by @Cle-bit in #10011
- Align wind move flags with current mechanics by @Cle-bit in #10016
Fixed
- Fix Ruin abilities respecting each other even if deactivated by @AlexOn1ine in #9901
- Fix Aroma Veil not blocking Destiny Knot infatuation by @Cle-bit in #9921
- Fix incorrect ability battle history recording by @Cle-bit in #9917
- Correct status move miss messaging by @moostoet in #9929
- Fix Air Balloon not popping when damaging moves hit a Substitute by @Cle-bit in #9943
- Fix Eject Pack switch when the holder is trapped by @moostoet in #9946
- Fix Fling Berry effects not being blocked by Covert Cloak and Shield Dust by @Cle-bit in #9951
- Fix Air Balloon not popping when holder faints from a damaging hit by @Cle-bit in #9952
- Fix stale hit state after multihit moves miss mid-sequence by @Cle-bit in #9937
- Future Sight fixes and tests by @AlexOn1ine in #9942
- Preserve Encore target last move after flinch by @moostoet in #9940
- Fix Guard Dog activating when Intimidate is blocked or cannot lower Attack by @Cle-bit in #9954
- Fix Red Card activating when attacker faints by @Cle-bit in #9976
- Fix Utility Umbrella interactions with Weather Ball in sun/rain by @Cle-bit in #9975
- Fix Toxic Debris checking Toxic Spikes cap on the wrong side by @Cle-bit in #10002
- Fix Infiltrator bypassing ally Safeguard for confusion effects by @Cle-bit in #10007
- Fix King’s Rock flinch chance with Serene Grace and rainbow by @Cle-bit in #10028
- Fix incorrect Loaded Dice priority over Skill Link for Population Bomb by @Cle-bit in #10003
- Fix gLastMoves and where it's set by @LinathanZel in #9999
- Fix Strength Sap activation on miss by @AlexOn1ine in #10035
- Fix Poison Puppeteer target tracking by @Cle-bit in #10047
- Fix Teraform activations timing by @AlexOn1ine in #10040
- Fix Syrup Bomb end-turn stat drop source for Defiant and Competitive by @Cle-bit in #10042
- Fix Symbiosis triggering after Eject items consumed by @Cle-bit in #10038
- Fix Illusion reveal on fainting without attack damage by @Cle-bit in #10030
- Fix end-turn form changes for fainted battlers by @Cle-bit in #10029
🤖 Battle AI 🤖
Fixed
- Fix AI partner incorrectly having flags set to Battler1 instead of Battler2 by @grintoul1 in #10006
🧹 Other Cleanup 🧹
- Update maintainer list by @pkmnsnfrn in #9909
- chore: removed old changelog file by @pkmnsnfrn in #9915
- Align outdated move descriptions with current mechanics by @Cle-bit in #10011
- Align wind move flags with current mechanics by @Cle-bit in #10016
- BoxPokemon: Less error-prone "static asserts" by @mrgriffin in #10071
🧪 Test Runner 🧪
Changed
- Add EFFECTIVENESS_SE for tests by @ghoulslash in #7360
- Add test for Curse + Baton Pass interaction by @hedara90 in #10000
- Set higher HP in Gem Damage calculation test fixing gen5 config result by @grintoul1 in #10017
Fixed
- Fix failing Dream Eater test when target is behind Substitute (Gen 5+) by @Cle-bit in #9977
- Fix AI partner incorrectly having flags set to Battler1 instead of Battler2 by @grintoul1 in #10006
- Fix Electrify status move test expectations by @Cle-bit in #10021
📚 Documentation 📚
- Update maintainer list by @pkmnsnfrn in #9909
- chore: removed old changelog file by @pkmnsnfrn in #9915
- Updated expansion scope to include Champions by @pkmnsnfrn in #10054
- updated DNS tutorial to be more clear by @pkmnsnfrn in [#10067](https:/...
Expansion 1.15.2
## 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.15.2
`.Instructions for the INCGGFX changes
- After pulling or merging the intended target branch, keep your version of
spritesheet_rules.mk.
git checkout --ours spritesheet_rules.mk
git checkout --ours graphics_file_rules.mk- Follow your normal process for merges: fix conflicts, run tests, etc.
- Run the migration script that converts the use of spritesheet rules to instead use
INCGGFX.
make clean && git ls-files | grep 'src/.*\.[ch]$' | xargs grep -l INCBIN | xargs python3 migration_scripts/1.15/migrate_incgfx.py- Run the same tests in step 2 to make sure nothing is broken.
- Once testing is complete, you'll accept the incoming versions of
spritesheet_rules.mkandgraphics_file_rules.mk. If you have your own custom spritesheet or graphics rules, you will need to personally port them to the new .mk files OR delete them.
git checkout --theirs spritesheet_rules.mk
git checkout --theirs graphics_file_rules.mk- Create a commit. You're done!
🧬 General 🧬
Changed
- docs: codify position on LLM usage by @pkmnsnfrn in #9672
- ci: Do not install recommended packages by @lhearachel in #9679
- Pret merge (8th of April, 2026) by @mrgriffin in #9724
- Change gBattlerCount assertion to MAX_BATTLERS_COUNT by @AlexOn1ine in #9409
- Allow STR_VAR_# arguments in
bufferlivemonnicknameby @HashtagMarky in #9752 - Missing enums in inline battler, side, and move functions by @grintoul1 in #9743
- Add errorf to sprite creation when at MAX_SPRITES by @hedara90 in #9766
- Add helper function to find what function a reported address from assertf corresponds to by @hedara90 in #9823
- Use with
python tools/find_func/find_func.py pokeemerald.elf 0x08YYYYYYwhere0x08YYYYYYis the address reported by theassertfblue-screen
- Use with
- Merge pret#2283 by @mrgriffin in #9881
- Migration script for
INCGFXavailable inmigration_scripts/1.15/migrate_incgfx.py. Run it from clean (e.g.make clean && git ls-files | grep 'src/.*\.[ch]$' | xargs grep -l INCBIN | xargs python3 migration_scripts/1.15/migrate_incgfx.py). - Expansion was migrated to
INCGFXexplicitly in 9f23b87 rather than as part of the merge. This should allow downstreams to revert just that change. - See pret#2283 for more details.
- Migration script for
Fixed
- Fix issue when looking at invalid value for no bag var in debug menu by @FosterProgramming in #9666
- Fixed debug warping allowing player movement in the middle of warp by @LinathanZel in #9653
- fix(makefile): use correct OBJ_DIR_NAME for tidydebug by @kildemal in #9702
- Remove test-specific CFLAGS by @mrgriffin in #9723
- Revert erroneous changes to trainer pic handling in historical migration scripts by @grintoul1 in #9749
- Fix frlg intro trying to create too many sprites by @hedara90 in #9822
- Fix fishing chain behaviour on shiny encounter by @hedara90 in #9845
- Improve error handling of smol compressor by @hedara90 in #9870
- Move animation fixes by @hedara90 in #9855
- Fix compiling with -O0 by @cawtds in #9888
- Safari fixes by @FosterProgramming in #9882
🗺️ Overworld 🗺️
Changed
- Allow STR_VAR_# arguments in
bufferlivemonnicknameby @HashtagMarky in #9752 - Add every missing asymmetrical overworld sprite for gens 1 - 7 by @kittenchilly in #9792
- Fix area screen data having dependence on player's current location, rather than the map header by @luuma in #9727
Fixed
- Fix player gain control during warp by @FosterProgramming in #9673
- Fix Bead and Dream Mail by @luuma in #9760
- Fix Dexnav
assertfs by @HashtagMarky in #9775 - Fix missing string buffer in the ingame_trade macro by @FosterProgramming in #9803
- Fix forced shiny eggs losing shininess on hatch by @moostoet in #9842
- Fix egg from daycare not receiving default moveset by @FosterProgramming in #9844
- Fix wrong param getting passed by @cawtds in #9848
- Move follower check before trainer hill check whene selecting script by @FosterProgramming in #9883
🐉 Pokémon 🐉
Changed
- resample, add, and fix cries by @amiosi in #8919
- PokeCommunity sprites batch (April 2026) by @kittenchilly in #9705
- Add every missing asymmetrical overworld sprite for gens 1 - 7 by @kittenchilly in #9792
⚔️ Battle General ⚔️
Changed
- Align Rock Blast Bulletproof ballistic flag threshold to Gen 7 by @Cle-bit in #9669
- Change gBattlerCount assertion to MAX_BATTLERS_COUNT by @AlexOn1ine in #9409
Fixed
- Fix Rest failing behavior under Sweet Veil by @Cle-bit in #9670
- Fix weight modifier order by @Cle-bit in #9684
- Fix Parental Bond handling for OHKO moves and Uproar by @Cle-bit in #9685
- Fix Slow Start applying to special moves by @Cle-bit in #9683
- Fix Disguise HP bar desync on double spread moves by @Cle-bit in #9691
- Fix Neutralizing Gas exit reactivating abilities for fainted battlers by @Cle-bit in #9699
- Fix Power Herb semi-invulnerable moves remaining untargetable by @Cle-bit in #9698
- Fix Seed Sower not activating when the user faints from an attack by @Cle-bit in #9701
- Fix Unburden activation and reset when items are recycled by @Cle-bit in #9726
- Fix Sturdy incorrectly taking priority over OHKO level check in Gen 5+ by @Cle-bit in #9750
- Fix Defiant/Competitive forcing positive stat changes to use single stat anims by @PhallenTree in #9758
- Fix gBattlerAttacker usage by @AlexOn1ine in #9778
- Fix Ring Target interactions with Ground immunity and grounded status by @Cle-bit in #9772
- Fix Sand Spit falling under B_ABILITY_WEATHER by @AlexOn1ine in #9776
- Fix Fling using White Herb or Mental Herb incorrectly removing the target’s held item by @Cle-bit in #9782
- Fix Zoom Lens and Core Enforcer affecting switch-in targets by @Cle-bit in #9783
- Fix Synchronize status immunity ability check by @Cle-bit in #9756
- Fix Blunder Policy activation for OHKO and multi-hit moves by @Cle-bit in #9790
- Fix Effect Spore RNG trigger order for non-contact turns by @Cle-bit in #9791
- Fix Toxic Spikes falsely applying Corrosion during switch-in poison checks by @Cle-bit in [#9802](https://github.com/rh-hideout/pok...
Expansion 1.15.1
## 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.15.1
`.🧬 General 🧬
Changed
- Make trainerproc-generated files depend on trainerproc by @rayrobdod in #9414
- Update event_objects.h hex values by @shachar700 in #9418
- Remove need to run make clean when switching between frlg and emerald by @grintoul1 in #9406
- Parallelize CI jobs and cache build tools by @TrevorEdris in #9528
- fix(preproc): Remove unused private field m_scriptData by @lhearachel in #9581
- fix(learnset_helpers): Harden regex-patterns for preproc directives by @lhearachel in #9582
- Silence Makefile map_version message by @grintoul1 in #9590
- docs: added note about BoxPokemon encryption works test by @pkmnsnfrn in #9619
- Pret merge (29th of March, 2026) by @hedara90 in #9658
Fixed
- Fix FRLG party menu Oak support message window by @montmoguri in #9412
- Fix free match call compile fail by @FosterProgramming in #9416
- Fix GetSpeciesPreEvolution triggering assertf with disabled species by @hedara90 in #9455
- Adds missing include in intro_frlg.c by @grintoul1 in #9483
- Fix battle type doubles for debug battle by @FosterProgramming in #9486
- Fix trailing newline failing tests by @cawtds in #9495
- Fix newlines not working with sprite printing by @hedara90 in #9502
- Fix money amount printed on whiteout by @FosterProgramming in #9517
- Fix assert hits when species are disabled by @cawtds in #9520
- Fix Some HGSS Dex Visuals by @HashtagMarky in #9534
- Fix assert failure on disabled species in Sprite Visualizer by @hedara90 in #9422
- Fix FREE_ENIGMA_BERRY breaking GF Rom Header by @AsparagusEduardo in #9599
- Fix tile allocation for unique egg and species sprite in PC by @hedara90 in #9613
- Split region map layouts by map by @AsparagusEduardo in #9580
- Fix flipped FakeRTC check by @hedara90 in #9597
- Allow make release and check for FRLG by using the BUILD variable by @FosterProgramming in #9465
- Fix dex absences for cross gen configs by @luuma in #9337
- fix: set printer type for AddTextPrinterParameterized6 by @mudskipper13 in #9628
- Fix all-contributors by @hedara90 in #9659
🗺️ Overworld 🗺️
Fixed
- Fix tutor_moves.h files containing duplicates by @FosterProgramming in #9423
- Version specific tweaks of post whiteout script by @FosterProgramming in #9521
- Fix Berry Mutation Chance by @ghoulslash in #9530
- Fixes debug menu Fly Flags toggle by @grintoul1 in #9607
- Corrects music for FRLG maps and some functions by @grintoul1 in #9606
- Fix fateful encounter starting battle with 0 hp by @FosterProgramming in #9621
- Fix timing and structure of Apricorn Tree messages by @BluSunrize in #9650
🐉 Pokémon 🐉
Changed
Fixed
- Fix custom eggs displaying as regular eggs on Storage System by @AsparagusEduardo in #9603
- Fix shininess of form changed battle mon after reshowing battle screen by @cawtds in #9524
- Fixed Kanto dex cross-gen evolutions by @fdeblasio in #9617
- Fix disabled species appearing in evolution struct by @hedara90 in #9574
⚔️ Battle General ⚔️
Changed
- Clean unused function from header by @AsparagusEduardo in #9541
- Fallthrough instead break after ordering by speed by @AlexOn1ine in #9633
Fixed
- Fix ability reference in Steadfast message by @PhallenTree in #9389
- Fixes U-turn not reseting targetsDone flag by @AlexOn1ine in #9411
- Fix Unseen Fist triggering protection move side effects by @Cle-bit in #9428
- Partial fix to incorrect Throat Spray behaviour, with a fix to summary_screen config that no longer works by @luuma in #9426
- Fix ally targeting moves crashing in single battles by @PhallenTree in #9433
- Fix weatherform change when primal weather leaves the field by @AlexOn1ine in #9424
- Fixes Trump Card's power calculation using its own PP when called by another move by @PhallenTree in #9445
- Missing shouldAbilityTrigger by @AlexOn1ine in #9447
- Fix Lightning Rod activation on fainted mon by @AlexOn1ine in #9434
- Fixes abilities that grant type immunities not outputting battle messages by @LinathanZel in #9470
- Fix order of failure for spread moves by @AlexOn1ine in #9472
- Fixes Knock Off / Ogerpon behavior by @AlexOn1ine in #9478
- Fixes Critical Hit message being printed on fixed damage moves by @AlexOn1ine in #9489
- Fixes Secret Power Terrain effects not being applied by @PhallenTree in #9492
- Fix various stuff not working when hitting substitutes by @hedara90 in #9487
- Fix Magic Bounce reflecting Hazards from a semi-invulnerable position by @AlexOn1ine in #9501
- Fixes Lock On by @AlexOn1ine in #9496
- Fix Magic Coat activation if in Semi-Invulnerable state by @AlexOn1ine in #9503
- Fixes Dancer original attacker/target being overwritten by @PhallenTree in #9515
- Fix Magic Guard activation against Rough Skin by @AlexOn1ine in #9516
- Fix visual glicth during critical capture by @FosterProgramming in #9538
- Fix SafeguardProtected script by @AlexOn1ine in #9559
- Fix duplicate Trick Room end message when used again by @Cle-bit in #9546
- Fix Commander cleanup to only clear STATE_COMMANDER semi-invulnerability for partners by @Cle-bit in #9598
- Fix Commander forced-switch blocking after swallowed Tatsugiri faints, plus Commander tests cleanup by @Cle-bit in #9609
- Fix Mirror Move failing when the target is immune to the copied move by @Cle-bit in [#9604](https:/...
Expansion 1.15.0
PLEASE READ: MERGING THIS RELEASE
It is strongly recommended to do the 1.15.0 merge in parts.
git fetch RHH # Run this first
git merge e80ae569039786564381723fca22aac07afc3503 # Run this next to get all the commits before FRLG
git merge 97e83ebe6a2328b21000f9d17053660bd5a0c56e # Run this next to get the commit with FRLG.
git pull RHH expansion/1.15.0 # This will merge the rest of 1.15.0🌋 REFACTORS 🌋
📜 = Uses a migration script.
- Switch-in Events Refactor by @AlexOn1ine in #8128
- Updated Focus Punch failure check and moved to attackcanceler by @PhallenTree in #8360
- Move crit calculation into the damage calc by @AlexOn1ine in #8365
- Trainerbattle Type Differentiation by @u8-Salem in #6424
- for multi battles:
partnerIdis no longer set inmulti_*macros but instead bysetmultitrainerbattle
- for multi battles:
- Make Glaive Rush a MOVE_EFFECT_GLAIVE_RUSH by @AlexOn1ine in #8351
- Refactor Fury Cutter and Rollout by @AlexOn1ine in #8375
- Refactor Multi Hit moves to use a flag instead of effect by @AlexOn1ine in #8379
- Decouples BattlerHasAi from battle positions to instead be determined by battler Battle Controller by @grintoul1 in #8247
- Allow Starting Statuses beyond 15 by @AsparagusEduardo in #8485
- You may now define if a Trainer's starting status is temporary or not, by adding "Temporary" at the end (eg. "Electric Terrain Temporary")
B_VAR_STARTING_STATUSandB_VAR_STARTING_STATUS_TIMERhave been replaced withsetstartingstatusand the timer functionality has been removed in favor of defining temporary and permanent versions of each starting status. Eg.
has been replaced withsetvar B_VAR_STARTING_STATUS STARTING_STATUS_PSYCHIC_TERRAIN | STARTING_STATUS_RAINBOW_OPPONENT setvar B_VAR_STARTING_STATUS_TIMER 5They can be stacked on top of each other.setstartingstatus STATUS_PSYCHIC_TERRAIN_TEMPORARY setstartingstatus STARTING_STATUS_RAINBOW_OPPONENT - AI
ShouldPivotOverhaul by @Pawkkie in #8486 - Move disable struct members to battle mon volatiles by @AlexOn1ine in #8540
- Refactor switchin candidates to use
battlerby @Pawkkie in #8546 - Switchin calcs leverage saving / restoring
AiLogicDataby @Pawkkie in #8556 - Move target type refactor by @AlexOn1ine in #8513
- Counter/Mirror Coat/Metal Burst refactor by @PhallenTree in #8604
EFFECT_COUNTER,EFFECT_MIRROR_COATandEFFECT_METAL_BURSThave been combined intoEFFECT_REFLECT_DAMAGE- These now use
BattleScript_EffectHitand their damage is calculated inDoFixedDamageMoveCalc
- Refactor Endeavor to use DoFixedDamageMoveCalc func by @AlexOn1ine in #8618
- Move Explosion to attackcanceler and Terrain Boost effect by @AlexOn1ine in #8612
- Refactoring the way teachable learnsets are generated by @FosterProgramming in #8027
src/data/pokemon/teachable_learnsets.hhas been removed from the repo- If your config P_LEARNSET_HELPER_TEACHABLE is set to false, open your
.gitignorefile and remove thesrc/data/pokemon/teachable_learnsets.hline, commit your.gitignoreandsrc/data/pokemon/teachable_learnsets.hfiles then continue like before. - If your config P_LEARNSET_HELPER_TEACHABLE is set to true, it will be created again when you use
make. Documentation about the way the file is generated can be found indocs/tutorials/teachable_learnsets.md. Also the filesrc/data/pokemon/all_learnables.jsonis now replacing the porymoves files as the proper way to edit teachables sets. To your old teachables sets, runmake clean-teachablesand the file will be recreated based on the porymoves files when you runmake
- Add Move End Faint Block by @PhallenTree in #8673
- Further weather consolidation by @AlexOn1ine in #8161
- enum TrainerPicID to replace defines for TRAINER_PIC_XXXX and TRAINER_BACK_PIC_XXXX by @grintoul1 in #8789
- Requires a
make cleanprior to make so that all trainer and battle partner front and back pic defines are refreshed by trainerproc
- Requires a
- Refactor mon generation by @FosterProgramming in #8204
- Reworked the functions that generate Pokemon, it should not affect most users but please read
docs/tutorials/mon_generation.mdif you want to know more or have difficulties adapting custom code that used to rely on the changed functions - Synchronize and Cute Charm update: both of these overworld abilities now better match their cartridge behavior in regards to which pokemon are affected by the effect (use the
OW_SYNCHRONIZE_NATUREconfig to choose the version) and can be more easily customized by changing the data insrc/ow_abilities.c - OW_SYNCHRONIZE_NATURE now defaults to GEN_LATEST(gen 9) where Synchronize has no overworld effect
- Reworked the functions that generate Pokemon, it should not affect most users but please read
- Consolidate battle anim particles by @fdeblasio in #8797
- Refactor move relearner and small #8027 follow-up by @PCG06 in #8675
- Refactor protect failure to match vanilla by @AlexOn1ine in #8832
- Capture odds refactor and new catch rate modifiers by @FosterProgramming in #8682
- Added new configs for catch rate modifiers: B_INCAPACITATED_CATCH_BONUS, B_LOW_LEVEL_CATCH_BONUS, B_MISSING_BADGE_CATCH_MALUS
- B_MISSING_BADGE_CATCH_MALUS default config may reduce catch rate in your hack
- Add new CATCHING_CHANCE macro to the test engine that allow to record the catching chance to more easily test capture parameters
- Add setpreattackadditionaleffect and use it for brick break / spectra… by @AlexOn1ine in #8719
- Refactor move target failure by @AlexOn1ine in #8696
- Refactor multi test system trainer party allocation and adds enum BattleTrainer by @grintoul1 in #8908
- Cleanup healthbox printing by @hedara90 in #8958
- Refactor Lilycove quiz and favor ladies by @fdeblasio in #8929
- Move adjustdamage to the damage calc by @AlexOn1ine in #8948
- Refactor OHKO Moves by @AlexOn1ine in #8916
- Refactor chooseboxmon by @FosterProgramming in #8491
- WARNING: In Game trade have been modified and previous script might be broken, we recommend replacing you trade script by using the new macro
- Add a new macro for ingame trade:
ingame_trade tradeId:req wantTradeMsg:req, declineTradeJump:req, wrongMonJump:req, tradeCompleteMsg:req - Add a new macro for move tutor:
move_tutor moveId:req, wantTeachingMsg:req, monSelectMsg:req, declinedJmp:req, taughtJmp:req, flagId=0. flagId is optional, if it is present the move tutor can only be used once (it checks if the flag is unset and sets the flag after teaching the move). If it is not present, the move tutor can be used as many times as you want - Adds a new config
OW_CHOOSE_FROM_PC_AND_PARTYinccofig/overworld.hto select if you want npc (daycare, move tutors, trade npc, ...) to let you pick a pokemon from the storage system (pc boxes+party) or just the party (defaults to TRUE allowing to choose mon from pc boxes - Adds a filter to show which mons are valid when picking a mon from PC
- Even more battle environment updates by @fdeblasio in #8835
- Adds CancelerSetTargets and improves Pre Attack Effects by @PhallenTree in #9178
- Setting targets for moves has been refactored:
gBattleStruct->battlerState[gBattlerAttacker]->targetsDone[target]is set toTRUEiftargetisn't targeted by the move;- Moves now properly check failures against all targets when applicable. If it fails for all targets, it plays the same battle script as before; if it fails for some but not all targets, it will say "It doesn't affect target!", similar to Synchronoise.
- Additional effects that occur before the move ...
expansion/1.14.4
## 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.14.4
`.🧬 General 🧬
Changed
- docs(dns): add nighttime palette user guide by @izrofid in #9158
Fixed
sPlayerAvatarGfxToStateFlag's graphics id tou16by @estellarc in #9101- Fix migration script output from move anim documentation by @hedara90 in #9140
- Show ability num instead of ability id whn picking ability with debug givemon by @FosterProgramming in #9225
- Fix setting the wall clock crashing with OW_USE_FAKE_RTC set to FALSE and LTO=1 by @hedara90 in #9299
🗺️ Overworld 🗺️
Fixed
- NO_WHITEOUT now prevent forfeits from B_RUN_TRAINER_BATTLE by @pkmnsnfrn in #9112
- Make sure grass effect palette ignore fog when time blended by @FosterProgramming in #9235
- Fix batle dome streak thresholds by @FosterProgramming in #9257
🐉 Pokémon 🐉
Fixed
- Allow Power Construct Animation by @KnightGallade in #9298
⚔️ Battle General ⚔️
Changed
- Use direct config names instead of enum names by @AsparagusEduardo in #8824
GetConfigandWITH_CONFIGnow use the actual config define. Eg,B_STURDYinstead ofCONFIG_STURDY. However, in scripts, usingjumpifgenconfiglowerthanin scripts would use the full name ofCONFIG_B_STURDY.
Fixed
- NO_WHITEOUT now prevent forfeits from B_RUN_TRAINER_BATTLE by @pkmnsnfrn in #9112
- Fix Leppa Berry PP restore target under forced-consumption effects by @Cle-bit in #9108
- Fix Instruct failing improperly when the instructed move isn't in the target's moveset by @Cle-bit in #9113
- Fix Aroma Veil target-side check for ally-targeted limiting moves by @Cle-bit in #9157
- Fix immunity ability status sync to avoid persisting Toxic counter when only volatile conditions are cured by @Cle-bit in #9156
- Fix Instruct Missing Checks for Focus Punch, Beak Blast, Shell Trap, and Sky Drop by @Cle-bit in #9152
- Fix Aqua Ring reuse failure check and add Aqua Ring/Ingrain tests by @Cle-bit in #9174
- Fix Transform fail conditions with gen-specific checks by @Cle-bit in #9070
- Fix Taunt to not block Me First in Gen 5+ by @Cle-bit in #9069
- Fix Present heal miss-flag handling and enforce Telepathy blocking by @Cle-bit in #9170
- Fix Commander cleanup after Volt Switch switch-in by @Cle-bit in #9141
- Fixes Gulp Missile crash on targets that can be statused by @AlexOn1ine in #9179
- Fix multi battle switch checks for Eject items by @Cle-bit in #9190
- Fix incorrect player berry animation on opponent’s low-HP heal at battle start by @Cle-bit in #9198
- Fixes Protective Pads preventing Poison Touch activation by @PhallenTree in #9222
- Fix tera icon palettes by @grintoul1 in #9208
- Running from trainer battles properly handles whiteouts by @pkmnsnfrn in #9228
- Prevents
seteffectprimaryandseteffectsecondaryfrom softlocking by @PhallenTree in #9236 - Fixes Throat Chop timer being reset with every use of the move by @PhallenTree in #9246
- Fix incorrect Adaptability interaction with non Tera type moves after Terastalization by @Cle-bit in #9272
- Fix Ability Shield exemption when Neutralizing Gas ends by @Cle-bit in #9273
- Fix Tickle to be blocked by Substitute in Gen 4+ by @Cle-bit in #9288
- Fix Venom Drench bypassing Substitute by @Cle-bit in #9289
- Fix Assist to account for temporarily changed moves in Gen 5+ by @Cle-bit in #9287
- Fixes Minior not appearing in Meteor form when encountered in the wild by @luuma in #9282
- Fix Eviolite to use original species after Transform by @Cle-bit in #9285
- Fix Sucker Punch to succeed against Me First targets by @Cle-bit in #9284
- Fixes plasma fists and several let's go and max move effects which should occur even when fainting a foe by @luuma in #9262
- Fix Paradox stat selection under Wonder Room by @Cle-bit in #9356
- Fix illegal switch due to hazards by @AlexOn1ine in #9361
- Fix Trapping Persisting after KO in doubles by @ChrispyChris27 in #9380
- Fix Baton Pass to clear Mean Look trapping on the target in Gen 5+ by @Cle-bit in #9378
- Fix Meloetta not reverting forms on switch and remove deprecated Lunar Dance string ID by @Meister-anon in #9379
- Corrects battler used in STRINGID_ATTACKERABILITYSTATRAISE by @grintoul1 in #9383
🤹 Moves 🤹
Changed
- fix(bttl-anim): remove unused battle selector to silence warning by @izrofid in #9218
Fixed
🧶 Items 🧶
Fixed
🤖 Battle AI 🤖
Fixed
- Add missing weather checks for AI sandstorm/hail damage helpers by @Cle-bit in #9155
- Fix AI semi-invulnerable move handling and simplify switching logic by @Cle-bit in #9180
- Fix AI Sheer Force checks to allow Order Up’s Commander stat boost by @Cle-bit in #9250
🧹 Other Cleanup 🧹
- fix(bttl-anim): remove unused battle selector to silence warning by @izrofid in #9218
🧪 Test Runner 🧪
Changed
- Adds Parabolic Charge spread damage healing test by @AlexOn1ine in #9094
- Use direct config names instead of enum names by @AsparagusEduardo in #8824
GetConfigandWITH_CONFIGnow use the actual config define. Eg,B_STURDYinstead ofCONFIG_STURDY. However, in scripts, usingjumpifgenconfiglowerthanin scripts would use the full name ofCONFIG_B_STURDY.
- Added Weight battle tests by @AsparagusEduardo in #9202
- Add tests for Hadron Engine and Psyblade by @Cle-bit in #9314
- Add tests for Future Sight interaction with Ally Switch by @Cle-bit in #9300
Fixed
- Fix Aqua Ring reuse failure check and add Aqua Ring/Ingrain tests by @Cle-bit in #9174
- Fixes Protective Pads preventing Poison Touch activation by @PhallenTree in #9222
- Fix tera icon palettes by @grintoul1 in #9208
- Fix Meloetta not reverting forms on switch and remove deprecated Lunar Dance string ID by @Meister-anon in #9379
📚 ...
Expansion 1.14.3
## 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.14.3
`.🧬 General 🧬
Changed
- Misc style and whitespace cleanup by @grintoul1 in #8681
- Disable L button config (throw ball shortcut or move description) when there is overlap with L=A option by @FosterProgramming in #8332
- Update CONTRIBUTING.md by @pkmnsnfrn in #8879
- Deleted unnecessary files by @Bassoonian in #8899
- Fix Metronome bans by @amiosi in #8834
- Move CMD_ARGS to battle_script_commands by @hedara90 in #8974
CMD_ARGSfor battle scripts now only exist insrc/battle_script_commands.c
- Pret merge (20th of January, 2026) by @hedara90 in #8973
- Remove trailing whitespace - Master by @AsparagusEduardo in #9011
- fix: updated rulings about big feature label by @pkmnsnfrn in #9027
- Add aif2pcm to gitignore by @hedara90 in #9077
Fixed
- Add check to warn of a non-working config setup by @FosterProgramming in #8686
- Various sprite visualizer fixes if configs disabled by @kittenchilly in #8697
- Fix trade evo with partner by @FosterProgramming in #8857
- Fixed Acc value shadow cut off when Accuracy = 100 by @montmoguri in #8886
- Fix vivillon icy snow icon by @FosterProgramming in #8970
- Fix premier ball wrong data size by @FosterProgramming in #8979
- Fixes creation of certain overworld sprites in object_event_pic_tables_followers.h by @ChrispyChris27 in #9065
🗺️ Overworld 🗺️
Fixed
- Fix teleport location by @cawtds in #8941
- Fix substitute follower appearing with dead party by @FosterProgramming in #9028
- Fix berry tree spawning with max yield when OW_BERRY_ALWAYS_WATERABLE is active by @FosterProgramming in #8976
- Fix debug menu using female icon with male palette by @FosterProgramming in #9092
🐉 Pokémon 🐉
Changed
Fixed
- Fix in-battle form changes always reverting by @AsparagusEduardo in #8810
- Fix typo in Salazzle form species ID table reference by @ostomachion in #8904
- Mega Gardevoir should always be Fairy-type by @amiosi in #8955
⚔️ Battle General ⚔️
Changed
- Add enum for battle script commands by @AlexOn1ine in #8778
- Miscellaneous fixes to configs and other values by @amiosi in #8662
- Updating IsNonVolatileStatusBlocked by @bassforte123 in #8728
Fixed
- Fix berry activation timing for Yawn sleep and Leech Seed damage by @moostoet in #8776
- Fix Chesto/Sitrus berry activation timing for status and damage
- Fix Cheek Pouch not activating for Bug Bite, Pluck, and Fling berry effects by @Cle-bit in #8782
- Fix wrongly getting a battler position in the type effectiveness functions by @Bassoonian in #8787
- fix crash damage implementation and incorrect memento generation by @amiosi in #8804
- Fix Sticky Hold blocking user's own Trick or Bestow by @Cle-bit in #8860
- Fixes Nightmare not affecting Comatose and adds various missing tests by @Cle-bit in #8859
- Fix Protosynthesis/Quark Drive defensive boost calculation by @hedara90 in #8875
- Fix wrong cases of DamageContext by @Bassoonian in #8895
- Fix misaligned shadows of transformed mons when
B_ENEMY_MON_SHADOW_STYLE <= GEN_3by @estellarc in #8887 - fix ITEM_NONE being considered a form change item by DoesSpeciesUseHoldItemToChangeForm by @phexmiau in #8915
- Fix Memento and Block regressions by @amiosi in #8942
- Fixed several issues with Parting Shot by @Cle-bit in #8928
- Align Crafty Shield with wiki and refine IsAllyProtectingFromMove by @Cle-bit in #8990
- Fixes Hyperspace Fury not breaking protection by @PhallenTree in #8999
- Fix Magnetic Flux target handling in singles by @Cle-bit in #9007
- fix: IsDoubleBattle() return value by @khbsd in #9012
- Remove player party shiny bit setting in CreateFrontierBrainPokemon by @grintoul1 in #9022
- Fix Foresight/Miracle Eye repeated-use behavior by @Cle-bit in #9025
- Fix Crafty Shield consecutive-use failure by @Cle-bit in #9023
- Fixes Beak Blast burning attacker when charging 2 turn move by @PhallenTree in #9026
- Fix Synchronoise typeless behavior in Gen7+ by @Cle-bit in #9031
- Fix Psych Up wrong battler message and Gen 6+ crit ratio copying by @Cle-bit in #9015
- Add accuracy check to BattleScript_EffectNightmare by @AlexOn1ine in #9032
- Fixes to Commander and Emergency Exit by @AlexOn1ine in #9040
- Fixes Fling being usable with reusable TMs by @PhallenTree in #8906
- Fix Forewarn edge cases and random selection by @Cle-bit in #9049
- Fix Pickpocket moveend target checks and Thief/Covet handoff by @Cle-bit in #9037
- Fixes Infiltrator and adds config for Substitute interaction by @PhallenTree in #9073
- Fix Tranformed mon changing forms when fainting by @AsparagusEduardo in #9106
- Prevent Incinerate from burning items under Sticky Hold by @Cle-bit in #9068
🤹 Moves 🤹
Changed
- Corrected Stone Axe and Ceaseless Edge descriptions by @fdeblasio in #9062
Fixed
- Fix Hyper Beam animation by @hedara90 in #8872
- Fixed instances of COMBO_STARTER_CHARGE used incorrectly by @fdeblasio in #9034
🧶 Items 🧶
Changed
- Miscellaneous Item Changes by @amiosi in #8461
- add the type boost value for gen 3 sea incense by @amiosi in #8826
- Changes to Item icons and palettes by @amiosi in #8614