Emerald Starter Manip

Overview

The first step of learning to manipulate the RNG of Pokémon Emerald begins with the Starter.

Once successful, you'll have both a Shiny Starter Pokémon and know your Secret ID for manipulating future Shiny Pokémon. It should be noted that you cannot control your TID or SID with this method, but instead are using your TID and a Shiny Starter to deduce your Secret ID.

  • Pokémon Emerald (any language)
  • GameBoy Advance, Nintendo DS or DS Lite
  • Windows 10/11 PC

Tools Used

Video Examples

The Guide

Step 1: New Game Timer

The first step to getting a shiny starter is to start a New Game, and get to the Name Entry screen.

After entering your desired name, open EonTimer, click the Gen 3 tab, make sure Calibration is 0 and Timer is set to 950 frames.

You should also click the gear icon, and make sure your console setting is correct.

GBA and NDS-GBA have slightly different frame rates.

GBA: 59.7275 fps
NDS-GBA: 59.6555 fps

Having it set incorrectly will make longer timers inconsistent relative to the actual game.

If you're playing on unofficial hardware or emulator, stick with GBA as this is usually the default.

Pretimer is optional.

When set to 0, clicking Start on EonTimer will immediately start the 950 frame timer.

Setting this to 5000 will create a 5 second countdown allowing you to time the A-press to leave the naming screen.

Once everything is set up correctly, advance to the next screen and start EonTimer at the same time.

The goal is to press A with the 6th beep on this text box:


This will cause the game to advance to the Inside of the Truck, at which point, you can open your Trainer Card and check your Trainer ID.

Step 2: Finding Potential SIDs

The Trainer ID was set immediately upon leaving the Naming Screen.

Emerald used this Trainer ID to seed the RNG, which then determines your Secret ID.

Upon pressing A at the final text box of the intro cutscene, the Secret ID is locked in 50 RNG advances later.

Note: Frames Vs Advances

Frames and Advances are often used interchangeably across RNG documentation, guides, and tools.

Frames is a commonly used term to describe game-state intervals in Speedrunning and Fighting Games. Updating video game logic every visual frame is a common practice, and this is generally how it works Generation 3, but not always

However, in later games this isn’t always the case. The frames you visually see might be completely separate from the game’s logic. RNG Advances accurately describes what’s happening, no matter the situation.


By setting EonTimer's Target Frame to 950, the goal is landing on the Secret ID exactly 1000 Frames after the TID was set.

We can view all of these potential SIDs using the Researcher tool in PokéFinder.

There are many options in this tool, but in order to view Secret ID results you must match the following settings.

The Researcher needs a Hexadecimal input for Seed, so we must convert TID from Decimal to Hexadecimal.

For example, a Trainer ID of 16804 becomes 41A4 in Hexadecimal.

To do this, type your Trainer ID into the box below and hit convert. It will switch it to a Hexadecimal Number.



Once the Hexadecimal Seed is entered into Researcher, click Generate. The given settings will generate all of the potential Secret IDs in the "Custom 1" column from Advance 990 onward.

Advance 1000 was our target so, assuming your last A-press on the intro sequence was frame perfect, this would be your Secret ID.

Before exiting this window, it's a good idea to screenshot the list of Secret IDs from 995 to 1005 as shown above. In the event you didn't hit the Secret ID on Advance 1000, then you can check the others.

In our example, Advance 1000 would be SID 05610. The next step is attempting to RNG a Shiny Starter Pokémon, assuming this Secret ID is correct.

Step 3: Starter Timer

Now that we know our first potential Trainer ID and Secret ID, we'll be using PokéFinder and EonTimer together.

Go back to PokéFinder's main menu, and select Gen 3 tab, and click Static.

This will open the Gen 3 Static window, and you'll first want to go to the top where it says Profile and click Manager.

We need to create a profile for our new Emerald save data, and input the Trainer ID and Secret ID.

Remember to select your profile from the dropdown on the Gen 3 Static window, after creating the profile.

We now need to find the closest Shiny Starter available using this TID and SID, and this is done within the Gen 3 Static window by using these settings.


Seed
is blank, which is the same as entering 0000. This is because Emerald's RNG is coded incorrectly.

During the New Game process, our Trainer ID was also the RNG seed. However, after resetting, it always defaults back to seed 0000.

Unlike Ruby & Sapphire, this has nothing to do with the cartridge's battery, it is a coding error.

Initial Advances is set to 0, but getting past the title screen and loading into the game will always take at least 10 seconds. This means any Shiny below 600 is likely impossible to hit.

Max Advances is set to 10,000, which takes 166.67 seconds or just under 3 minutes of waiting. You can increase this number if you get no results.

Shiny is set to Star/Square, which will show every potential Shiny. Star vs. Square doesn't matter in any game other than Sword & Shield, but Pokémon transferred from Gen 3 up to those games will retain their Star/Square Shiny status.

Once you've matched these settings in the Gen 3 Static window, click Generate.

For our example TID\SID, the nearest Shiny starter is 8131 RNG advances after the game starts, and so we can set Target Frame in EonTimer to 8131.

Step 4: First Attempt

We're now ready to progress the story in-game, up until the point where your character is standing in front of the Starter bag.

Save the game right here in this spot, and then use A+B+START+SELECT to Soft Reset and Start EonTimer. (If using PreTimer, then you'll do the Soft Reset after the 5 second countdown.)

Skip past all of the intro cutscenes as fast as possible, and then wait on this screen for your desired starter Pokémon.

The final A-press is on YES. Wait until the 6th Beep in EonTimer, press A, and then go to POKéMON in battle to open the Summary of your Pokémon and check the Stats and Nature.

The next step is to plug these stats into PokéFinder and determine how close the attempt was to the target RNG Advance of 8131.

Step 5: Adjustment

Input the Nature and Gender of the Pokémon, and then set the Shiny dropdown to Any,
then click the IV Calculator button.

This will open the IV Calculator window, and this lets you plug in the in-game Stats and Nature, and calculate ranges for the Individual Values or IVs, which range from 0 to 31.

After entering all the necessary information, click Find IVs, and the Filters section of the main Gen 3 Static window will update accordingly.

From here, head over to the RNG Info section of the Gen 3 Static window, and change the Initial Advances to approximately 50 before your target.

In the example, I was aiming for 8131 and set Initial Advances to 8100.
Finally, set Max Advances to 100. Which means we are searching from RNG Advance 8100 to 8200.

This ensures that you don't get too many matches, and are only searching for Pokémon near your target. Since the Starter is only Level 5, searching too large of a range will result in false positives that aren't actually the Pokémon you hit.

Once the settings are correct, click Generate to check for matches. If you don't get any matches, then gradually expand the range by lowering Initial Advances, and increasing Max Advances.


The Bashful Mudkip received on the first attempt was 8129, which is 2 advances early compared to the target of 8131. EonTimer's Calibration function allows us to automatically adjust the timer for this difference.

Enter 8129 into the Frame Hit box, and click Update.

Calibration will update with a number of milliseconds equal to the difference between your Target Frame and the Frame Hit. In the example, Calibration becomes 33 after clicking update, because we were 2 frames early. At 60 frames per second, each frame lasts 16.66667 milliseconds.

From here, the goal is to try again using this timer, until you've hit the Starter on your Target Frame.

As a rule of thumb, once you start being off by 1 advance either above-or-below the target you can stop adjusting EonTimer. 16.666 milliseconds is a very small amount of time, and well within the margins of human error.

Eventually, you'll hit the Target Frame and the IVs and Nature will match, but it will not be Shiny.


This means that you were not frame perfect on your Secret ID A-Press when exiting the Intro Cutscene earlier, and that's okay! In our example, this means our Secret ID was not 05610.

This is why it's recommended to save the list of potential Secret IDs that are near 1000.

Rather than starting a New Game and trying to hit Advance 1000 again, you can instead change your profile to one of the nearby Secret IDs. In the example, I moved to Advance 1001, which is Secret ID 23976.

The process for checking this Secret ID is the same as the first. You'll want to reset the Gen 3 Static window back to how it was when searching for the nearest Shiny Advance.

With the new Secret ID of 23976 in place, the next potential Shiny Starter is on Advance 3138.

Repeat the cycle of:

  1. Change Profile to New SID
  2. Search for Nearest Shiny Starter
  3. Make Attempt and Calculate Stats
  4. Adjust EonTimer
  5. Repeat Attempts Until Stats \ Nature Match
  6. If not Shiny, return to Step 1...
    Until...

Step 6: Failure Conditions

It's absolutely possible to get your Shiny Starter after checking only 1 or 2 SIDs. However, it entirely depends on how accurately the timer was hit during the intro cutscene, and whether or not errors were made.

It's fairly common for first timers to check 5 or more SIDs without seeing a Shiny. It can be frustrating, but DON'T GIVE UP.

However,
as a general rule, I don't recommend checking beyond the range of 995 to 1005. If the Intro portion is done correctly, it's very unlikely to be more than 5 advances off.

In the event you've verified your Secret ID is definitely not between 995 to 1005, it's a good idea to start a New Game and try hitting Advance 1000 on a new Trainer ID.

It's a bit of a gamble either way. You could be one extra SID check away from your Shiny, or you might have made a mistake in the Intro Sequence and wind up checking 20 SIDs with no Shiny.

Whatever you choose to do, once you see a Shiny Starter and your Secret ID is confirmed, RNG manipulating the rest of the game is now available to you.

Next Steps...

Beginner: Sweet Scent RNG Manipulation
Beginner: Stationary RNG Manipulation