36 Feature Branches
Bivurnum edited this page 2024-08-25 03:07:26 -05:00

The following branches maintained by contributors can be a good starting point for your hack, or can be merged into an existing codebase. Please visit each page, wiki, post, etc. to see information on how to give credit!

For tutorials, smaller modifications, and other useful features, please see the Tutorials / Mods Wiki Page. Good luck and happy hacking!

Table of Contents

How to apply a feature branch

  1. Add the repository as a remote on git: git remote add <name of your choice> <repository url>

    The URL you use is the same one you use when cloning the repository (so it should have .git at the end).

  2. Pull the specific branch you want: git pull <remote name you gave earlier> <branch_name>

pokeemerald Expansion

Maintainers: ROM Hacking Hideout

More of a hack base than a "feature branch". The Expansion overhauls and expands pokeemerald with many modern features, including:

  • An overhaul and upgrade of pokeemerald's battle engine with newer gen features and mechanics, such as:
    • Physical/Special Split
    • New and Updated Move Effects, Abilities and Item Effects
    • Fairy Type, Mega Evolution
    • Double Wild Battles, Custom multi-battles, Smarter AI
    • Ability pop-up messages
    • Mid-battle trainer messages
    • And more!

  • Pokemon from future games backported to pokeemerald.
    • Most Pokemon have two frames of animation
    • 6 colors in icon palettes instead of 3
    • Base stats, forms, and evolution data, including new evolution methods
    • Hidden abilities
    • Updated Pokedex, entries, Cries for Pokemon
    • TM/HM and Move Tutor compatibility

  • Most items from future games backported to pokeemerald.
    • All new berries
    • All new Poke Balls, including throw animations, descriptions, pics, catch rates, etc.
    • Evolution stones and Gen 7 potions
  • Many many many Configuration options for all of the above

Note: previously had three separate branches (battle_engine, pokemon_expansion, and item_expansion), but recently shifted to working only on the combined master branch and implemented a semvar versioning scheme.

For more information see pokeemerald Expansion's wiki.

follow_me

Maintainers: ghoulslash

Enables NPCs to follow you in the overworld.

For more information, see this Pokecommunity post.

There are also updated branches for the more recent versions of pokeemerald (follow-me), as well as rh-hideout's pokeemerald-expansion (follow-me-expansion).

sideways_stairs

Maintainers: ghoulslash

Adds sideways stairs to pokeemerald.

For more info see this Pokecommunity post.

BetterBag

Maintainers: AsparagusEduardo

Adds the following new pockets to the bag:

  • Medicine (HP, PP and status recovery items)
  • Power-Up (Vitamins, Rare Candy and evolution items)
  • Battle Items (X items, Pokédoll/FluffyTail and hold items with battle effects)

For more info see this Pokecommunity post.

overworld-expansion

Increases the number of maximum object events in the game from 255 to 65535. This is done by converting the ID from a u8 to a u16.

free_saveblock

Maintainers: ghoulslash

Free up some saveblock space by removing superfluous saveblock data.

For more info see this Pokecommunity post.

To free up some more saveblock space, see this tutorial.

dexnav

Maintainers: ghoulslash

Adds a simplified DexNav, complete with Search and Detector modes, creeping up to wild Pokemon, and chaining.

For more info, see this Pokecommunity post.

Improved RNG

Maintainers: Kurausukun

Improves Emerald's RNG function drastically by using a full 32-bit RNG with 64-bit state based on the PCG family of PRNGs. The implementation of PCG used here was written by ax6 in handwritten assembly in order to ensure performance since the RNG function runs once per frame. This branch also includes the fix to seed the RNG from the RTC, as well as reverting trainer ID generation to the R/S method (Emerald kept the method used in FRLG, which uses hardware timers rather than the RTC).

Credits: ax6, Kurausukun

dynamic-ow-pals

Maintainers: ExpoSeed

Adds a system to load and unload overworld palettes based on what is on screen, instead of keeping all overworld palettes loaded at once. This enables you to be much more flexible about overworld palettes.

Credits: Slawter666, Xhyzi, ShantyTown, ExpoSeed, UltimaSoul, ShinyDragonHunter

Day Night Systems

Multiple people have implemented day night systems, and with various levels of fidelity and complexity.

Sierraffinity's DNS

(TODO: Add gif of player character waiting for nightfall in Rustboro)
Originally implemented for Crystal Dust, this system features hourly lighting changes (similar to Crystal), expanded encounter tables for nighttime encounters, and per-tileset palette overrides for window lighting. It only affects the overworld.

Merrp's DNS

(TODO: Add gif of player character waiting for nightfall in Rustboro)
This system is the highest fidelity of these three, with semi-transparent shadows under every overworld object, inter-frame blending for glowing light effects, and per-color overriding for window lights. However, it is also the most complex system, and is still in active development.
Note: As of 2023/10/29 the just-lighting branch excludes followers and retains commit history.

DNS based on Merrp's DNS

Based on Merrp's DNS, I have removed HGSS-style Pokemon followers, retaining only a dynamic overworld palette system and including backward-compatible 16-bit graphics IDs for object events. I also updated the light at PC and Market in some maps and added the palette when you battle at night.

Note: I removed other modifications and kept only DNS.

Unbound Quest Menu

Maintainers: Psf

This feature branch inspired by the quest system of Skeli789's Pokémon Unbound and based on an initial implementation written by Ghoulslash introduces a quest system to the game complemented with quest rewards, very customizable and easy to use.

Click here to check out its documentation.

Credits: Psf, Ghoulslash, Skeli789, HN, Karathan, Mcboy, Greenphx, BSBob, & MM

Experience Per Catch

Maintainers: Lunos

This feature branch implements a feature introduced in Pokémon X/Y into Pokeemerald, through which the action of catching a Pokémon gives EXP. points to your own Pokémon.

It's worth pointing out that this implementation is slightly different than the one presented in this tutorial.

Credits: DizzyEggg, ROM Hacking Hideout, Lunos

QoL Field Moves

Maintainers: psf

This branch allows developers to make the use of Field Moves more convenient.
This is a combination of the features "Surfboard instead of HM Surf" by Pyredrid, and "HM Items" by NobodySociety.

QoL Field Moves Example

Thank you very much to Archie for their contribution. Please read more about their contributions and support their projects!

Credits: psf, Pyredrid, NobodySociety, archie#5000