FR/LG Fishing Encounter Manip
Overview
This guide will cover Fishing RNG manipulation in FireRed and LeafGreen. The focus will be on acquiring Shiny Pokemon, without concern for competitive Natures or IVs.
This is Intermediate-Level because Fishing has extra elements of randomness introduced compared to standard Static or Sweet Scent encounters.
The first element of randomness is the fishing process itself. You cannot always get a fish on your first cast, and every additional cast adds extra RNG advances.
The second element of randomness is in the levels of the caught Pokemon. Fishing encounters have very wide level ranges for each Encounter Slot so it can make identifying the caught Pokemon less straightforward than Sweet Scent, where levels are fixed.
Fishing in FireRed and LeafGreen has quite a few exclusive species.
Both Games:
- Goldeen\Seaking
- Horsea\Seadra
- Poliwag\Poliwhirl
- Krabby\Kingler
FireRed Only:
- Shellder\Cloyster
- Qwilfish
LeafGreen Only:
- Staryu\Starmie
- Remoraid\Octillery
We will be going for Shiny Grimer which is an often forgotten Rare spawn with the Super Rod at the pond in Celadon City.
You must know your Secret ID to find viable targets, which would be done during the Shiny Starter RNG process. If you are on a completed save and DO NOT know your Secret ID, there are methods to deduce it using a previously caught Shiny, using glitches to read it from a Pokemon, or view it via extracting Save Data and using a tool like PkHex.
Recommended Setup
Hardware Requirements:
-
Pokemon Fire Red/Leaf Green (any language)
-
GameBoy Advance, Nintendo DS or DS Lite, Nintendo 3DS w/ open_agb_firm
-
Windows / Mac OS / Ubuntu PC
In-game Requirements:
-
Save in front of the body of water used to Fish
-
The Fishing Rod required for your target, registered to the SELECT button
-
Pick up all Items on the ground in the area (they can cause extra RNG advances)
-
At least one free space in your party
-
Pokeballs to capture it
-
Pokémon to aid in capture, such as a false swipe user or a spore user.
- Master Ball (optional, but recommended for quick capture/stat calculation)
- At least one Rare Candy (5+ is helpful, but not required)
Tools Used
Video Examples
- N/A
The Guide
Finding a Shiny Target
To get started, open Lincoln's G3 Calibration here
Select your Game, and then leave the Sound, L, A, and Held Button settings on the default values of Mono, L=A, A, and None. Make sure to select your System, as the boot-up times and frame-rates are slightly different based on the console, and the tool accounts for those.

Open the settings in-game, and change Sound and Button Mode to match these settings in the tool.
Make sure to SAVE after confirming these settings!

Leave the default Target Seed (hex) and Seed +\-.
Set Advance Range to 1000 to 5000. This means your maximum wait time will be ~2 minutes.
Set Encounter Method to Wild 1.
Set Encounter Type to Old Rod / Good Rod / Super Rod.
Select Star/Square from the Shiny Filter. This will filter to all
possible Shiny targets.
Square Shiny is only relevant if sending to Sword/Shield, but the option is there.
Set Nature Filter to Any. (OPTIONAL: Select a desired Nature)
Leave the IV Ranges as 0 ~ 31. (OPTIONAL: Increase minimum values for desirable stats)

Once these settings are correct, click Submit to search for all the potential Shiny Pokemon you could attempt to RNG.
NOTE: Your Browser might freeze momentarily while calculating, just wait. If anything pops up click "Wait" or "Continue".

When the search is complete, there should be a table of potential Shiny Seeds and Advances.
Since this is Wild RNG, we'll also need to identify the Encounter Slot of our target.
With Old Rod, there is only 0 and 1, and it's always **Magikarp.
**With Good Rod, it ranges from 0 to 2.
With Super Rod, it ranges from 0 to 4.
You can identify the species of the Shiny using the Slot column in the search results.
You can easily look these up using the Encounter Slot tables for each game.
Our Target Grimer is Slot 4 using the Super Rod in Celadon City.

Keep this tab open, because we'll also need it to look up which Pokemon we actually hit during RNG attempts!
There might not be any Shiny results that match the Encounter Slot you're searching for, especially for the rarest encounters using Super Rod.
Encounter Slot | Rarity |
---|---|
Slot 0 | 40% |
Slot 1 | 40% |
Slot 2 | 15% |
Slot 3 | 4% |
Slot 4 | 1% |
In this case, you can either increase the Seed +/- to 50 (which will increase maximum wait time on the Title Screen) OR alter the settings above to a different SOUND or BUTTON MODE, and Submit the search again. Remember to update those settings in-game as well!
NOTE: Changing "A Button" or "Held Button" in G3 Calibration
For general purposes, changing only SOUND or BUTTON MODE should provide a sufficient variety of Shiny targets. However, if using particularly strict Nature or IV filters and receiving no results, you can change "A Button" and "Held Button" to check even more seeds.
"A Button" refers to the final A press on the Title Screen. This can be changed to either START or L (L=A).
START would mean pressing and holding START on the Title Screen instead of the A Button.
L (L=A) only works when BUTTON MODE is L=A, and means pressing and holding L on the Title Screen.
"Held Button" refers to optional buttons that can be held during the boot-up sequence and intro cutscene.
For beginners, STARTUP SELECT is the only option that requires no special timing.
START UP A and the BLACKOUT Held Buttons will be covered in an ADVANCED guide.
STARTUP SELECT means holding SELECT before booting the game, and holding it until the File Load screen appears. You must continue holding it, even while doing your final button press & hold on the Title Screen.
Once you've chosen your desired target Shiny, change the Target Seed (hex) to match the Seed, and update the Advance Range to 500 advances above and below your target.

In our example, we found an Encounter Slot 4 Shiny on seed A372 and Advance 4014. Which means the Advance Range becomes 3514 to 4514.
Now we update EonTimer for this target as well.
Timer Setup
Open EonTimer 3.0.0-RC6, and switch over to the Custom Tab (C).
Click the (+) button at the bottom, and add two timer sections.
Make the Unit of the first timer ms, and the second timer Advances.
Enter the ms value from the Seed into the first Target box.
Enter the Advances value of the Shiny into the second Target box.

Then click the gear icon in the bottom left, and make sure your console setting is correct.
GBA, GameBoy Player and GBI use the "GBA" setting.
DS and 3DS (open_agb_firm) use the "NDS - Slot 2" setting.
The tools are now set up for...
The First Attempt
Position your character in front of the body of water you wish to Fish in.
Make sure the Fishing Rod required for your Target is registered to SELECT in the KEY ITEMS menu.

Open your in-game settings and double check that they match the SOUND and BUTTON MODE settings for the target Seed at the top of G3 Calibration.
Save your game, and then Power Off the system.
The startup sequence is slightly different depending on the console being used.
Reference the following Boot method for your system of choice.
Boot Methods:
NDS: Press A on "Start GBA Game" from the DS Home Screen
OFFICIAL GAMEBOY PLAYER: Press the "Change Game Pak" button, and confirm to Hard Reset
3DS OPEN_AGB_FIRM: Press A to boot the Fire Red/Leaf Green ROM file
GAMEBOY INTERFACE (GBI): Hold and Release the RESET button, or use Hard Reset Button Combo
(Note: GBI boot times and frame-rate are identical to real GBA, so use GBA in the system selector)
GBA: Flick the Power Switch
GBA users might find this difficult. In this case, you can add a 3rd section to EonTimer's Custom tab at the top, and set it to 5000ms. This creates what we call a pre-timer that will count down 5 seconds, ending in 6 beeps before the actual seed timer starts. Using a pre-timer allows you to time your power-switch flip with the 6th beep, removing the need to coordinate a switch-flip and button press.
The general flow of each attempt is as follows:
- Boot the game and click Start on EonTimer at the same time.
2. Wait for the ENTIRE Introduction to play, DO NOT PRESS ANY BUTTONS or SKIP. Your first timer should be long enough to make it to the Title Screen.
3. When the timer is close to completion, you will hear the 1st of 6 beeps.
4. ON THE 6TH BEEP, PRESS and HOLD the A Button.
5. Once the File Load screen appears, you can release all buttons and press A to load your save.
6. Mash B to skip past any "Previously on..." screens.
7. Mash SELECT to pull out your Fishing Rod.
8a. Wait for the dots to pass, and if it says "A POKéMON's on the hook!" then WAIT HERE
8b. Wait for the dots to pass, and if it says "Not even a nibble..." then RESET
9. When the second timer is close to completion, you will hear the 1st of 6 beeps.
10. ON THE 6TH BEEP PRESS A to Reel in the Pokemon.
11. Capture the Pokemon
Note: Why RESET after the first cast? Why not just keep casting?
Every cast of the Fishing Rod introduces extra RNG advances. Calibrating to Pokemon caught on anything other than the first cast will skew Advances results and lead to inconsistency.
Unfortunately Sticky Hold and Suction Cups didn't gain the benefit of increasing fishing hook likelihood until Emerald, so FireRed and LeafGreen are stuck with the base odds of getting a hook on first cast.
It's not impossible to use casts beyond the first for general calibration, but be aware that the Advances number won't be entirely accurate. Ultimately once you're close to your target, you'll only want to use first casts to guarantee consistent results on the Advances hit.
Initial Calibration
After catching, open the Pokemon's summary and look at the Nature and Stats.

Open the G3 Calibration tool, set Shiny back to Any, select your caught Species, select the Nature and then enter Stats into the IV Calculator in the following order: LEVEL HP ATK DEF SPA SPD SPE
Then click Calculate IVs.

This should automatically populate the Stat ranges with the best guess possible given the inputted data.
Clicking Submit will search for all the potential Pokemon this could be.
Super Rod Pokemon are a high enough level that you should get a clear result or no result, but Good Rod or Old Rod might be low enough to yield multiple results. Use a Rare Candy to gain a level and refine the IV calculations.
If the first search yields no results, this is expected sometimes. Fishing Pokemon in FireRed and LeafGreen can be generated using different Encounter Methods.
NOTE: What are Methods?
Methods result in different sets of IVs for a Pokemon, from the same RNG Advance. However, they have the same PID, which means they will still be Shiny and have the same Nature.
Which Method you get on a Wild Pokemon is out of the player's control in FireRed and LeafGreen. Method 1 is the most common, but it's possible to hit Method 2 or Method 4 instead-- so it's important to check all three for Wild RNG manipulation.

Our Level 23 Magikarp lines up with Wild 1, Encounter Slot 2 for Celadon City Super Rod. So we can confidently say the first attempt hit Seed A372 and Advance 3923.
If you get NO results on ANY METHOD, then increase Advance Range to 1000 advances above and below target, and increase Seed +/- to 50. Increase levels with Rare Candy as necessary. If this still yields no results, there was an error in the attempt and you must check all your settings and try again. Double check in-game settings match the settings in the g3 calibration tool, and that the timers match your target seed/advance.
Now that Exeggcute has been confirmed, we can enter the millisecond and Advance values from the result that matches our Encounter Slot into EonTimer and then click Update.

The values in Calibration should update accordingly, and you can now turn off your game and begin a second attempt.
Attempts & Adjustment
Repeat the same steps of:
-
Performing the startup sequence with EonTimer
-
Capturing the Pokemon
-
Entering Stats, Checking Methods, and Leveling Up as needed to reach a single search result
-
Inputting the Seed ms, and Advance into EonTimer and clicking Update
Fishing can make it very difficult to calibrate, especially in areas like Celadon City, because the different Encounter Slots can share Species and Level Ranges.
In this example, I have no possible way of knowing which Advance this Magikarp came from because all of these results share the same Species, Level Range, PID and IVs.

In cases like this, it's best to just reset and try again without doing a calibration update.
Eventually you should get a result that can confidently be narrowed down to a single Advance, and those can be used to Update EonTimer.

Once your calibration is within the range of +/- 50ms for the Seed, and +/- 3 for Advances you can confidently narrow the search range in G3 Calibration to speed up attempts.
Lower Seed +/- to 10 and Advance Range to 20 advances below and above your target.

With this smaller search range, you should be able to get a single result after only inputting the stats of the Pokemon. If you still get two or more results, use Rare Candy and Encounter Slots to narrow it down again.
At this point, you must repeat attempts until you successfully hit your Target Seed and Advance.
This requires two frame perfect inputs, so it can be difficult.
Only Update the calibration of EonTimer, if you notice you are consistently hitting early or late over multiple attempts. The optimal Calibration will have you landing sometimes early, sometimes late.
Now it's a matter of overcoming human error to succeed.
Eventually, you will hit your Shiny!

Next Steps...
Our final intermediate course will be the Roaming Pokemon! It's the most tedious basic manip you can do thanks to difficulty in capture & seed verification.
Safari Zone & Fishing should've given you enough practice to tackle it, so good luck!
Get the Pokemon you wanted? Consider supporting us on Ko-fi & keep us ad free!