* Made gBattleMoves handle the InGame name and description of battle moves No more multiple arrays in separate, individual files. Note: -Keep an eye on Task_LearnedMove. * Reintroduced move names Misc: -Fixed Trick-or-Treat and Light of Ruin's expanded names. -Introduced a new field for Z-Move names, and a constant for their name length. -Added a few TODOs to GetBattleMoveName. -Updated GetMaxMoveName and GetZMoveName. There's no reason not to let GetBattleMoveName handle everything on its own. * Updated GetBattleMoveName to handle Z-Move Names Misc: -Removed pointless TODO about MOVE_NAME_LENGTH. -The compiler doesn't allow to have a move name with a value higher than MOVE_NAME_LENGTH, therefore it's pointless to worry about it. * Fixed a couple of expanded move names * Removed zMoveName variable of struct BattleMove and extended the name variable's size * Ditched no longer used MOVE_NAME_LENGTH constant * Corrected the names of the max moves I should have done this after updating the size of the name variable of the struct BattleMove, but I didn't think about it at all until Cancer Fairy indirectly gave me the idea. * Fixed U-turn's name * Brought back MOVE_NAME_LENGTH I think it doesn't make sense to have a Z_MOVE_NAME_LENGTH because the length in question is used for all battle moves, not just the Z-Moves. * Introduced a union for Move/Z-Move names in the struct BattleMove * Fixed the union for gBattleMoves move names Also updated GetBattleMoveName to properly handle Max Move names. Also also renamed the "zMoveName" variable to "bigMoveName" which better reflects its purpose. Z-Move names weren't the only thing it covered, since it also handles Max Move names. * Removed deprecated GetZMoveName and GetMaxMoveName * Reintroduced mention to gMoveNames in sGFRomHeader * Fixed move names and ported move descriptions * Fused the struct ContestMove into the struct BattleMove * Removed no longer used Z_MOVE_NAME_LENGTH constant * Renamed the struct BattleMove's bigMoveName variable and introduced macros to prettify move names * Reintroduced the contest parameters for Pokémon moves * Renamed gBattleMoves to gMovesInfo This is consistent with gSpeciesInfo, the array that contains most of the species data. * Renamed the BattleMove struct to MovesInfo This is consistent with the struct SpeciesInfo, which contains the variables used by the gSpeciesInfo array. * Removed empty lines separating battle params from contest params in gMovesInfo * Renamed MovesInfo to MoveInfo * Added Cancer Fairy's HANDLE_EXPANDED_MOVE_NAME macro Used to handle moves with expanded names in a more comfortable manner. Also fixed Trick-or-Treat's expanded name. * Renamed GetBattleMoveName to GetMoveName * Added a comment pointing out that the shared move descriptions are shared move descriptions * Re-aligned one of the escape characters of CHECK_MOVE_FLAG * Renamed the battle_moves.h file to moves_info.h instead for consistency's sake * Applied Eduardo's adjustments * Using compound string for regular move names as well, saving 1180 bytes and making their use consistent * Move description formatting * Updated Pursuit test after merge * Renamed the BATTLE_CATEGORY constants to DAMAGE_CATEGORY --------- Co-authored-by: Nephrite <thechurchofcage@gmail.com> Co-authored-by: Bassoonian <iasperbassoonian@gmail.com> Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
pokeemerald-expansion
What is pokeemerald-expansion?
pokeemerald-expansion is a decomp hack base project based off pret's pokeemerald decompilation project. It's recommended that any new projects that plan on using it, to clone this repository instead of pret's vanilla repository, as we regurlarly incorporate pret's documentation changes. This is NOT a standalone romhack, and as such, most features will be unavailable and/or unbalanced if played as is.
If you use pokeemerald-expansion in your hack, please add RHH (Rom Hacking Hideout) to your credits list. Optionally, you can list the version used, so it can help players know what features to expect. You can phrase it as the following:
Based off RHH's pokeemerald-expansion v1.7.2 https://github.com/rh-hideout/pokeemerald-expansion/
What features are included?
- IMPORTANT❗❗ Read through these to learn what features you can toggle:
- Upgraded battle engine.
- Gen5+ damage calculation.
- 2v2 Wild battles support.
- 1v2/2v1 battles support.
- Fairy Type (configurable).
- Physical/Special/Status Category (configurable).
- New moves and abilities up to Scarlet and Violet.
- Custom Contest data up to SwSh, newer moves are WIP. (source)
- Mega Evolution
- Primal Reversion
- Ultra Burst
- Z-Moves
- Gen 8+ damaging moves are given power extrapolated from Gen 7.
- Gen 8+ status moves have no additional effects, like Healing Wish.
- Dynamax
- Gigantamax forms
- Initial battle parameters
- Queueing stat boosts (aka, Totem Boosts)
- Setting Terrains.
- Mid-turn speed recalculation.
- Quick Poké Ball selection in Wild Battles
- Press
Rto use last selected Poké Ball. - Hold
Rto change selection with the D-Pad.
- Press
- Run option shortcut
- Faster battle intro
- Message and animation/cry happens at the same time.
- Faster HP drain.
- Battle Debug menu.
- Accessed by pressing
Selecton the "Fight/Bag/Pokémon/Run" menu.
- Accessed by pressing
- Option to use AI flags in wild Pokémon battles.
- FRLG/Gen4+ whiteout money calculation.
- Configurable experience settings
- Experience on catch.
- Splitting experience.
- Trainer experience.
- Scaled experience.
- Unevolved experience boost.
- Frostbite.
- Doesn't replace freezing unless a config is enabled, so you can mix and match.
- Critical capture.
- Removed badge boosts (configurable).
- Recalculating stats at the end of every battle.
- Level 100 Pokémon can earn EVs.
- Inverse battle support.
- TONS of other features listed here.
- Full Trainer customization
- Nickname, EVs, IVs, moves, ability, ball, friendship, nature, gender, shininess.
- Custom tag battle support (teaming up an NPC in a double battle).
- Sliding trainer messages.
- Upgraded Trainer AI
- Considers newer move effects.
- New flag options to let you customize the intelligence of your trainers.
- Faster calculations.
- Specify Poké Balls by Trainer class.
- Pokémon Species from Generations 1-9.
- Simplified process to add new Pokémon.
- Option to disable unwanted families.
- Updated sprites to DS style.
- Updated stats, types, abilities and egg groups (configurable).
- Updated Hoenn's Regional Dex to match ORAS' (configurable).
- Updated National Dex incorporating the new species.
- Sprite and animation visualizer.
- Accesible by pressing
Selecton a Pokémon's Summary screen.
- Accesible by pressing
- Gen4+ evolution methods, with some changes:
- Mossy Rock, Icy Rock and Magnetic Field locations match ORAS'.
- Leaf, Ice and Thunder Stones may also be used.
- Inkay just needs level 30 to evolve.
- You can't physically have both the RTC and gyroscope, so we skip this requirement.
- Sylveon uses Gen8+'s evolution method (friendship + Fairy Move).
- Option to use hold evolution items directly like stones.
- Mossy Rock, Icy Rock and Magnetic Field locations match ORAS'.
- Hidden Abilities.
- Available via Ability Patch.
- Compatible with Ghoul's DexNav branch.
- All gender differences.
- Custom female icons for female Hippopotas Hippowdon, Pikachu and Wobbufett
- 3 Perfect IVs on Legendaries, Mythicals and Ultra Beasts.
- Customizable form change tables. Full list of methods here.
- Item holding (eg. Giratina/Arceus)
- Item using (eg. Oricorio)
- Time of day option for Shaymin
- Fainting
- Battle begin and end (eg. Xerneas)
- Move change option for Zacian/Zamazenta
- Battle end in terrains (eg. Burmy)
- Switched in battle (eg. Palafin)
- HP Threshold (eg. Darmanitan)
- Weather (eg. Castform)
- End of turn (eg. Morpeko)
- Time of day (Shaymin)
- Breeding Improvements
- Incense Baby Pokémon now happen automatically (configurable).
- Level 1 eggs (configurable).
- Poké Ball inheriting (configurable).
- Egg Move Transfer, including Mirror Herb (configurable).
- Nature inheriting 100% of the time with Everstone (configurable)
- Gen6+ Ability inheriting (configurable).
- Items from newer Generations. Full list here.
- Gen 6+ Exp. Share (configurable)
- Berserk Gene
- Most battle items from Gen 4+
- Existing item data but missing effects:
- Mints
- Dynamax Candy
- Mulches
- Gimmighoul Coin
- Booster Energy
- Tera Shards
- Tera Orb
- Feature branches incorporated (with permission):
- RHH intro credits by @Xhyzi.
- A small signature from all of us to show the collective effort in the project :)
- Overworld debug by @TheXaman
- May be disabled.
- Accesible by pressing
R + Startin the overworld by default. - Additional features:
- Clear Boxes: cleans every Pokémon from the Boxes.
- Hatch an Egg: lets you choose an Egg in your party and immediatly hatch it.
- HGSS Pokédex by @TheXaman
- May be disabled.
- Additional features:
- Support for new evolution methods.
- Dark Mode.
- Nature Colors in summary screen by @DizzyEggg
- Dynamic Multichoice by @SBird1337
- RHH intro credits by @Xhyzi.
- Other features
- Pressing B while holding a Pokémon drops them like in modern games (configurable).
- Running indoors (configurable).
- Configurable overworld poison damage.
- Configurable flags for disabling Wild encounters and Trainer battles.
- Configurable flags for forcing or disabling Shinies.
- Reusable TM (configurable).
- B2W2+ Repel system that also supports LGPE's Lures
- Gen6+'s EV cap.
- All bugfixes from pret included.
- Fixed overworld snow effect.
There are some mechanics, moves and abilities that are missing and being developed. Check the project's milestones to see which ones.
Documentation on features can be found here
If I already have a project based on regular pokeemerald, can I use pokeemerald-expansion?
Yes! Keep in mind that we keep up with pret's documentation of pokeemerald, which means that if your project a bit old, you might get merge conflicts that you need to solve manually.
- 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 master.
With this, you'll get the latest version of pokeemerald-expansion, plus a couple of bugfixes that haven't been released into the next patch version :)
How do I update my version of pokeemerald-expansion?
- 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.2.
Please consider crediting the entire list of contributors in your project, as they have all worked hard to develop this project :)
There's a bug in the project. How do I let you guys know?
Please submit any issues with the project here. Make sure that the issue wasn't reported by someone else by searching using the filters.
Can I contribute even if I'm not a member of ROM Hacking Hideout?
Yes! Contributions are welcome via Pull Requests and they will be reviewed by maintainers. Don't feel discouraged if we take a bit to review your PR, we'll get to it.
Who maintains the project?
The project was originally started by DizzyEgg alongside other contributors.
The project has now gotten larger and DizzyEgg is now maintaining the project as part of the ROM Hacking Hideout community. Some members of this community are taking on larger roles to help maintain the project.
What is the ROM Hacking Hideout?
A Discord-based ROM hacking community that has many members who hack using the disassembly and decompilation projects for Pokémon. Quite a few contributors to the original feature branches by DizzyEgg were members of ROM Hacking Hideout. You can call it RHH for short!