Step Routes

Introduction

One of the potentially most annoying parts of any attempted speedrun of Final Fantasy IV is the prospect of random encounters. They are rarely actually fought, and the potential for a back attack or surprise attack means precious seconds lost. The routes listed on this page serve to minimize the amount of time wasted on random encounters.

Essentially, a step route is a series of extra steps or alternate paths taken while running the game with the goal of decreasing the total amount of time the run takes. This page provides ready-to-use step routes for the original US SNES release of Final Fantasy IV (originally released as Final Fantasy II). Routes for other releases may also be available at some point.

If you use any of the routes and something goes wrong, please let me know and link me to a video so I can attempt to investigate the problem. It could simply be a mistake in execution or a misinterpretation of the instructions, but it could also be a problem with the route generation or with this site.

Tutorial

For an introduction to step routing, I recommend reading the Step Routing Basics guide. If you have suggestions or comments regarding that guide, please contact me.

In addition, each route has its own individual Tutorial tab which should help newcomers.

In order to find your seed during a run, I recommend using my Seed Finder tool.

Optimization Status

All modern routes are now available with tutorial and summary data and are twin safe. The next step is adding more recovery options.

Standard Routes

These are the standard routes people are most likely to use.

RouteTwin Seed SafeOptimization Status
Paladin%Optimal
Any% NoCWOptimal
Any% No64 (Rosa)Optimal
Any% No64 (Rosa) (Safe)Optimal
Any% No64 (Rosa) (Marathon)Optimal
Any% No64 (Edge+Excalbur)Optimal
Any% No64 (Edge+Excalbur) (Marathon)Optimal
Any% GlitchlessNear Optimal (Optimal Estimate: Early 2023)
Any% Glitchless (No Seed Manipulation)Suboptimal (Optimal Estimate: Mid to Late 2023)

Recovery Routes

These routes are intended to be used to recover a step route in case the original one was permanently lost.

RouteTwin Seed SafeOptimization Status
Any% No64 (Rosa) (Marathon) (Recovery: FuSoYa)Optimal
Any% No64 (Rosa) (Marathon) (Recovery: Paladin)Optimal
Any% No64 (Edge+Excalbur) (Marathon) (Recovery: FuSoYa)Optimal
Any% No64 (Edge+Excalbur) (Marathon) (Recovery: Paladin)Optimal

Alternate Routes

These routes are uncommon alternate routes that are unlikely to be used during a run. They currently have no summary or tutorial data. None of these routes is twin seed safe.

RouteTwin Seed SafeOptimization Status
Pre-Mist ClipOptimal

Archived Routes

These routes are archived from the old version of the site. They have not been updated to the new data structure, and their optimization status is unknown (though they should be near optimal relative to their input data). There is no associated tutorial or summary data. Eventually, I would like to convert them to the new structure, but this is not a high priority. These routes are not guaranteed to be twin seed safe (though some of them may be).

RouteOptimization Status
SFC Any% NoCWUnknown
SFC Any% NoCW (Toru_1988)Unknown
Any% No64 (Edge+Drain)Unknown
Octomamm% (Cecil+Kain+Darkness)Unknown
Paladin% Single SegmentUnknown
Any% No64 Single Segment (Edge+Excalbur)Unknown
Any% No64 (Edge+Drain) Marathon Safe (AGDQ 2016)Unknown
Any% No64 (Edge+Excalbur) Marathon Safe (AGDQ 2016)Unknown
Any% No64 (Edge+Excalbur) Extra Bosses Marathon Safe (AGDQ 2016)Unknown
Unprecedented Crisis v2.1 Any% No Major SkipsUnknown
Unprecedented Crisis v3.1 Any% No Major Skips (riversmccown)Unknown
Unprecedented Crisis v3.1 Any% (Mist Clip%)Unknown
The Darkness Within v1.07b Any%Unknown

Theory

Final Fantasy IV uses a relatively simple system for determining when encounters occur. There are 256 possible seeds. For any given seed and encounter rate, the step numbers where encounters occur is fixed. By following the path through the game, we can determine exactly when encounters will occur and what formations they will be.

There are two ways we can adjust our route:

Optional Steps
Not every tile will increment the step counter. On certain maps, by choosing to walk in certain ways, we can increase the step counter by a different number of steps, even as we move across the same number of tiles. For historical reasons, these are called optional steps (because the increase in the step counter is optional).
Extra Steps
We can simply take extra steps, mostly by pacing back and forth.

Including healing time, an encounter will waste anywhere from 5.6 to 32.0 seconds. The overall average is somewhere between 8 and 10 seconds per encounter. Knowing this, there are three primary ways taking extra steps can actually be beneficial:

Fewer Encounters
By taking extra steps in areas where the encounter rate is zero (or simply lower than the rate in the next area), we can directly skip encounters that would otherwise occur.
Faster Encounters
Not all enemy formations are created equal. Some are easier to run from, and some have fewer or shorter enemy attacks in the event of a surprise or back attack. We can take extra steps to move encounters from one area to another, potentially changing the enemy formation to a more favorable one.
Guaranteed Encounters
In certain cases, we actually want to have a particular encounter. (The primary example of this is searching for the grind fight in the No64 run.) By manipulating our encounters throughout the game, we can ensure that this formation appears exactly when we need it to. This saves us from a potentially lengthy save and reset cycle or from walking around aimlessly searching for the required formation.

All of this sounds wonderful, of course, but as I'm sure you can imagine, trying to figure this all out in your head would probably be a fool's errand. Instead, we use a computer to solve the problem. Specifically, I use a tool I've written called Rosa to generate the routes.

Twin Seeds

Definition

For the standard routes, the first place there is an option to take extra steps is the Watery Pass-South Save Room. In most cases, any two seeds can be told apart by the time you reach this room. However, there are several pairs that cannot. These pairs have been named twin seeds. These can roughly be divided into two groups:

Seeds Distinguished by Formation

The following pairs, while indistinguishable solely by encounter steps, can be distinguished by the encountered formations. For this reason, when using the Seed Finder, it is highly recommended to choose formations as you go. In fact, twin seed-safety is only guaranteed if you do select formations.

Indistinguishable Seeds

The follow pairs of seeds are completely indistinguishable by the time you reach the Save Room. If using the Seed Finder with a twin seed-safe route, if you get one of these pairs, you will be given instructions on how to proceed to identify your seed. Alternately, you can load both routes, and follow one as long as encounters match exactly. If at some point it doesn't match, you switch to the other. That said, this option produces a much higher workload.

Adjustment Notes

This section documents the effects of changes made to routes to ensure twin safety. Any unlisted pairs required no adjustment and were safe by default.

Paladin%

14 and 15
Recalculated seed 15 with no time loss.
30 and 31
Recalculated seed 30 with a 6.600 second time loss.
68 and 69
Recalculated seed 69 with a 9.202 second time loss.
132 and 133
Recalculated route 132 with a 0.135 second time loss.
143 and 144
Recalculated route 143 with a 1.204 second time loss.
247 and 248
Recalculated route 247 with a 2.379 second time loss.

Any% NoCW

14 and 15
Recalculated seed 15 with no time loss.
30 and 31
Recalculated seed 30 with a 6.447 second time loss.
68 and 69
Recalculated seed 68 with no time loss.
78 and 79
Recalculated seed 78 with a 0.026 second time loss and seed 79 with no time loss.
143 and 144
Recalculated seed 143 with no time loss.
183 and 184
Recalculated seed 183 with a 5.719 second time loss and seed 184 with no time loss.
247 and 248
Recalculated seed 247 with a 1.579 second time loss.

Any% No64 (Rosa)

14 and 15
Recalculated seeds 14 and 15 with no time loss.
30 and 31
Recalculated seed 30 with a 6.815 second time loss.
47 and 48
Recalculated seed 47 with a 0.188 second time loss.
68 and 69
Recalculated seed 68 with a 2.580 second time loss.
78 and 79
Recalculated seed 78 with a 0.026 second time loss.
132 and 133
Recalculated seed 132 with no time loss.
143 and 144
Recalculated seed 143 with no time loss.
183 and 184
Recalculated seed 184 with a 14.407 second time loss.
247 and 248
Recalculated seed 247 with no time loss.

Any% No64 (Rosa) (Safe)

14 and 15
Recalculated seed 14 with a 0.364 second time loss.
30 and 31
Recalculated seed 30 with a 2.553 second time loss.
47 and 48
Recalculated seed 47 with a 0.188 second time loss.
68 and 69
Recalculated seed 68 with a 2.580 second time loss.
78 and 79
Recalculated seed 78 with a 0.264 second time loss.
143 and 144
Recalculated seed 143 with no time loss.
183 and 184
Recalculated seed 184 with a 0.763 second time loss.
247 and 248
Recalculated seed 247 with a 1.943 second time loss.

Any% No64 (Rosa) (Marathon)

14 and 15
Recalculated seed 15 with a 1.046 second time loss.
30 and 31
Recalculated seed 31 with a 5.265 second time loss.
63 and 64
Recalculated seed 64 with a 0.355 second time loss.
68 and 69
Recalculated seed 68 with a 4.336 second time loss.
78 and 79
Recalculated seed 79 with a 7.934 second time loss.
143 and 144
Recalculated seed 143 with no time loss.
183 and 184
Recalculated seed 183 with a 0.404 second time loss and 184 with a 1.512 second time loss.
247 and 248
Recalculated seed 247 with no time loss.

Any% No64 (Edge+Excalbur)

The Excalbur routes are currently highly suboptimal, so there's no point recording the exact modifications done in the name of twin seed safety. The situation should be rectified by Fall 2020 or so.

14 and 15
Recalculated seed 15 with no time loss.
30 and 31
Recalculated seed 30 with a 8.788 second time loss.
68 and 69
Recalculated seed 68 with no time loss.
78 and 79
Recalculated seed 78 with a 0.264 second time loss.
143 and 144
Recalculated seed 143 with no time loss.
175 and 176
Recalculated seed 176 with a 5.126 second time loss.
183 and 184
Recalculated seed 183 with a 3.183 second time loss and seed 184 with no time loss.
247 and 248
Recalculated seed 248 with a 6.725 second time loss.

Acknowledgements

I don't know exactly what his contribution was, but some early work on the concepts of step routing was done by the_roth, who is one of the top runners of FF4 in the world.

I'd also like to thank Myself086 for his instrumental work in the development of FF4 step routes. His pioneering work used a truly optimal solver, though it operated on a simplified model that didn't take individual encounter times into account and did not optimize the final descent. His routes were originally used to seed the generation of my own.

Later on, many of the routes were optimized with encounter timings using an optimizer written by fcoughlin. I've since enhanced the timing information even further to change based on the current party, so we can no longer use his optimizer. Until I wrote my own optimal solver, the routes available here were descended from optimal routes generated by his software.

My previous optimizer, Spoony, as I've hinted above, did not generate truly optimal routes as it used a stochastic optimization algorithm. However, testing has indicated that it gets very close.

The routes are now generated by my truly optimal solver, Rosa. However, the routes have become significantly more complicated since the time of Myself086 and fcoughlin, so the process is more time consuming. (For example, no64-excalbur had 56 variables at the time. Today, it has over 200. Suffice it to say that the relationship between number of variables and time to complete is not linear. Paladin% currently has 45 variables and processes something like 180 times faster than no64-excalbur.) Anyway, they'll be done eventually.

Contact

If you have any questions, comments, suggestions or any other feedback, please send me an e-mail or message me on Twitch.