- 24
- Posts
- 11
- Years
- Seen Aug 6, 2024
Github branch:
https://github.com/Sneed69/pokeemerald/tree/RoamersPlus
IMPORTANT:
If using the RHH expansion, my changes to src/battle_ai_script_commands.c instead go into src/battle_ai_main.c
As most of you already know, in Pokemon Emerald, the player hears about the Eon Pokemon on TV and then chooses one of them to appear in the game.
The chosen Pokemon will then roam through certain routes and flee from battles instead of engaging the player in battle.
At its default state the game only allows for one roamer to exist at a time.
This branch allows you to set up as many roamers as you can fit into your saveblocks.
The Saveblock1 size of a Roamer has been reduced from 28 to 24 bytes. Each roamer beyond the first will of course take up an additional 24 bytes.
Other features:
A branch that does not include Persistent Locations can be found here. In this branch the Roamer struct takes up 16 bytes.
I included an example that, at the start of a new game or when InitRoamer() is called, creates the following roamers to showcase these features:
https://github.com/Sneed69/pokeemerald/tree/RoamersPlus
IMPORTANT:
If using the RHH expansion, my changes to src/battle_ai_script_commands.c instead go into src/battle_ai_main.c
As most of you already know, in Pokemon Emerald, the player hears about the Eon Pokemon on TV and then chooses one of them to appear in the game.
The chosen Pokemon will then roam through certain routes and flee from battles instead of engaging the player in battle.
At its default state the game only allows for one roamer to exist at a time.
This branch allows you to set up as many roamers as you can fit into your saveblocks.
The Saveblock1 size of a Roamer has been reduced from 28 to 24 bytes. Each roamer beyond the first will of course take up an additional 24 bytes.
Other features:
- Unbound Roaming
An optional feature that extends roaming to all routes. Normally roamers do not frequent most of the western routes. - Terrestrial Roamers
These roamers cannot be found on water tiles and do not roam on sea routes. Why is that Entei surfing? - Battling Roamers
Choose whether a roamer flees or battles normally. - Stalkers
These "roamers" will always move to your location. They leave the area after battle, but will follow you to the next area. Stalkers are not shown on the Pokedex by default. - Respawning Roamers
Select one of four respawning modes: no respawn, daily, weekly or instant respawn. Respawning roamers will not stop existing until they are caught. - Scaling Roamers
Adding a roamer with a level of 0 will create a scaling roamer. A scaling roamer's level increases based on your highest level party member and a constant modifier.
Includes an optional feature that allows roamers to evolve if they are high enough level.
Roamers will not level down or devolve if encountered with a weaker party. - Save/Load Persistent Locations
Roamer locations are added to SaveBlock1 and thus will not be randomized on game load.
A branch that does not include Persistent Locations can be found here. In this branch the Roamer struct takes up 16 bytes.
I included an example that, at the start of a new game or when InitRoamer() is called, creates the following roamers to showcase these features:
- A basic Latias roamer that respawns weekly
- A terrestrial Pikachu roamer that respawns daily
- A terrestrial Pikachu that does not flee from battle
- A scaling Weedle stalker that does not flee from battle and respawns instantly
Last edited: