Haven's Unofficial Build Of Leon's Dynamic Pokemon Expansion Complete FireRed Upgrade Rombase - haven1433/HexManiacAdvance GitHub Wiki
Haven's Unofficial Build Of Leon's Dynamic Pokemon Expansion / Complete FireRed Upgrade Rombase
(hubol dpe/cfru for short)
If you open an unedited BPRE0 rom in HexManiacAdvance, you can apply HUBOL DPE/CFRU from the Utilities menu. As the name implies, this is an unofficial build of Leon's DPE/CFRU rombase. It's the fastest way to get started using DPE/CFRU. After applying the patch, you can make changes to your game in HMA as usual.
What changes are made compared to Leon's Rom Base?
- Shortened item 370/371 names (MysticTicket / AuroraTicket) since they were too long.
- Trainers that have either (or both) of auto-items or auto-moves for their Pokémon can now give their Pokémon IVs. The IVs can be any value between 0 and 255 (normal vanilla limit is 31), and the value will be applied to all IVs. Pokémon that use both custom moves and custom items still utilize the trainers-with-evs table instead (called
data.trainers.evs
in HMA).
Using Included Features
Using Trainers with EVs
A new table, data.trainers.evs
, lets you customize trainer Pokémon much more than you could before. If you set a Pokémon trainer to use custom moves and custom items, its "IVs" value will pull from this table.
For example, if you set Brock to use both custom moves and custom items, and then set his first Geodude IVs = 10, then:
Customize | Example |
---|---|
Nature | Geodude will be Modest |
IVs | Geodude will have 31 IVs in each stat |
EVs | Geodude will have 6 hp, 252 Special Attack, and 252 Special Defense EVs |
Ball | It will use Brock's class-based ball |
Ability | It will have a Random ability (from among the 2 abilities it could normally have). |
Go check data.traieners.evs
for more info, or to customize what each slot does. Note that expanding this table after insertion is not safe.
Feature Flags
Use setflag
and clearflag
in scripts in your game to turn these features on/off.
Battle Flags:
Name | Flag | Description | Clears After Battle? |
---|---|---|---|
Inverse | 0x900 |
Enable Inverse Battles | Yes |
Sky | 0x901 |
Enable Sky Battles | Yes |
No Catching | 0x902 |
Cannot catch Pokémon during this battle | Yes |
No Running | 0x903 |
Cannot run away during this battle | Yes |
No Catching/Running | 0x904 |
Cannot catch Pokémon or run away during this battle | Yes |
Trainer Catching | 0x905 |
Can catch trainer Pokémon during this trainer battle | Yes |
Exp Share | 0x906 |
All Pokémon gain experience after the battle | |
Double Battle | 0x907 |
The next battle will be a double battle, if possible | |
Smart Wild | 0x90C |
The next wild Pokémon you face will use AI instead of random moves. | Yes |
Scale Wild Pokémon | 0x90D |
Wild Pokémon levels will match your team's lowest level | |
Scale Trainer Pokémon | 0x90E |
Trainer Pokémon levels will match your team's highest level | |
Hidden Ability | 0x90F |
The next wild Pokémon (or givepokemon ) will have its Hidden Ability |
Yes |
Gigantamax | 0x928 |
The next wild Pokémon (or givepokemon ) will be able to Gigantamax, if it has an evolution that supports it |
Yes |
Wild Double | 0x910 |
The next wild battle will be a double | Yes |
Shiny | 0x913 |
The next wild Pokémon (or givepokemon ) will be shiny |
Yes |
No Bag | 0x915 |
No bag items in battle | |
Dynamax | 0x918 |
If you have the Dynamax Band item, you can Dynamax in battle |
|
Fast Battle Messages | 0x925 |
Battle Messages won't pause | |
Reset Consumables | 0x927 |
Consumable Hold Items (like berries / gems) are reset after the battle | Yes |
Species Randomizer | 0x940 |
Use random Pokémon for wild, trainers, and givepokemon | |
Learnset Randomizer | 0x941 |
Learn random moves during levelup | |
Ability Randomizer | 0x942 |
Have random Abilities for Pokémon |
You can also use the macro cfru.wild.moves
in scripts to set the moves of the next wild Pokémon you fight:
cfru.wild.moves SURF "ICE BEAM" SING EARTHQUAKE
Menu Flags:
Name | Flag | Description |
---|---|---|
Hide Bag | 0x91B |
Don't show 'Bag' in the menu |
Hide Player | 0x91C |
Don't show 'Player' in the menu |
Hide Save | 0x91D |
Don't show 'Save' in the menu |
Show DexNav | 0x91E |
Show Tools in the menu. The Tools menu replaces Pokédex, and lets you access both the Pokédex and the DevNav. Do not give the player the DexNav until they have the Pokédex. |
Other Flags:
Name | Flag | Description |
---|---|---|
No Random Encounters | 0x911 |
No wild encounters from grass/caves/surfing. You can still get encounters from fishing / smashing rocks / sweet scent. |
Enable Running | 0x82F |
If not set, the player cannot run |
Move Relearner Any Level | 0x916 |
Move Relearner teaches moves of any level |
Egg Relearner | 0x917 |
Move Relearner teaches egg moves |
Daily Events | 0xE00 - 0xEFF |
Use these flags however you like. They will be automatically cleared every day. |
Regional Pokedex
The DPE introduces a new table, called data.pokedex.kanto
, to store the order of the regional dex. The default regional dex table always holds the hoenn region's order, because that's how GameFreak programmed it.
You can still use HMA's utility to reorder the national dex. But to reorder/expand the regional dex, you have to edit the data.pokedex.kanto
table.
- Entry 0 of the table is the number of pokemon you want in the dex. It's shown as a pokemon, but really it's just the number that matters. If you want 151 pokemon in your regional dex, set this value to 151.
- The remaining entries show you which pokemon will appear in each slot of the regional dex. So if you want the 7th pokemon to be Pikachu, set
data.pokedex.kanto/7
to Pikachu. This table is safe to expand, but make sure you update entry 0 to match.
Roaming Pokémon
As with vanilla, you can edit the roaming maps using data.maps.roaming.sets
. Roaming Pokémon always appear in maps from bank 3, so you use the table to specify which maps from bank 3 are in each set. When you change maps, the roaming Pokémon will usually change to another map in the same set, but will occasionally switch to another set. There are 25 sets, and you should not expand them.
You can setup Roaming Pokémon using the cfru.init.roamer
macro, like this:
cfru.init.roamer Charizard 50 OnLand NotWater
- You can only have one roaming Pokémon of each species. If you try to add another, the
result
variable (0x800D) will be set to 0. - You can only have up to 10 roaming Pokémon at once. If you try to add another, the
result
variable (0x800D) will be set to 0. - When you successfully add a new roaming Pokémon, the
result
variable (0x800D) will be set to 1. - If you choose to customize
data.maps.roaming.sets
, make sure to keep at least 2 different maps in each set, and at least one set with a different first map. Otherwise, roaming Pokémon have a 1/16 chance of hanging your game every time they change maps while on your map (usually because you failed to catch them).
How to use Mega Evolutions
Mega Evolution will be available in battle if you have the key item Mega Ring in your inventory. If you don't have the ring, you won't be able to Mega Evolve. Additionally, your Pokémon needs to meet the criteria for one of its mega evolutions from the evolution table. This usually means holding a Mega Stone such as Venasaurite, but could mean having a specific learned move or holding a primal reversion item.
When setting up a custom Mega Evolution on a new Pokémon, remember that you need to give the mega evolved form an entry in its evolution table to let it turn back into the normal form. Look at an existing Mega-Pokémon's evolution table to see how to set this up.
Mega-Evolve by pressing START while selecting a Pokémon move in battle.
How to use Z-Moves
Z-Moves will be available in battle if you have the key item Z Power Ring in your inventory. If you don't have the ring, you won't be able to use Z moves. Additionally, your Pokémon needs to be holding a Z Crystal, such as Normalium Z, and have a Normal-Type move.
Use Z-Moves by pressing START while selecting a Pokémon move in battle.
How to use Dynamax
Dynamax will be available in battle when you set flag 0x918
. Additionally, you need to have the key item Dynamax Band in your inventory. If you don't have the band, or if the flag isn't set, you won't be able to Dynamax.
When setting up a custom Gigantamax on a new Pokémon, remember that you need to give the Gigantamaxed form an entry in its evolution table to let it turn back into the normal form. Look at an existing Gigantamax's evolution table to see how to set this up.
Dynamax by pressing START while selecting a Pokémon move in battle. Mega Evolutions / Z Moves take precedence over Dynamax, so be careful about what items your Pokémon hold in battle.
How to Make Dynamax Raids
Raid battles are started with special 0x118
. Flag 0x91A
is used to avoid forcing the end to a raid battle, and also disables catching the Raid Boss. No other documentation about the CFRU's Dynamax Raids exists.
Other Included Features
There's nothing you need to do to interact with these features. They're just changes you get by using this rombase.
- Experience points after catching a Pokémon
- Day/Night
- Additional Pokémon, Abilities (+ Hidden Abilities), Moves, Tutors, OWs, TMs, and Items
- Buy 10 Pokéballs to get a Premier Ball
- Save File: More PC Boxes / Flags / Vars
- Fix for the "GameFreak Presents" intro screen
- Gender Text Color
- Faster New Game (skip controls tutorial)
- Decapitalization
- Sideways Stairs
- Various battle engine improvements
- Ability popups in battle
- Press L on a move in battle for info about that move
- Indicate which moves are not effective / super effective
Using your own DPE/CFRU
Both DPE/CFRU and Leon's base for it are designed to be customizable. Use those instead of HUBOL if you're interested in turning some of the features on/off for yourself. If you follow the official steps of applying Leon's patches, then the DPE, then the CFRU, HMA should still be able to pick up most of the data in the game. However, any CFRU-specific tables (such as the trainers-with-evs table, or class-specific Pokéball table) probably won't be found automatically.
Links to the full documentation
- Leon's DPE + CFRU ROM Base
- Pyxal's Complete FireRed Upgrade Guidebook (Recommended guide from Leon)
- Dynamic Pokémon Expansion
- Complete FireRed Upgrade
- Complete FireRed Upgrade Documentation (Official Guide by Skeli)
- Unbound Discord Server (For asking questions about DPE/CFRU)