World Map Manipulation

From Final Fantasy VII Speedrun Wiki
Jump to navigation Jump to search

World Map Manipulation is the act of controlling World Map RNG to get particular results such as a long stretch of movement without an encounter or an encounter with a specific formation, for example.

For examples of manipulations, see the World Map Manipulation Directory.

Seeding[edit | edit source]

World Map Manipulations always begin by controlling, or at least knowing, how RNG is seeded. When the World Map is loaded, RNG will be seeded based on the current In-Game Time. Notably, this seeding happens shortly before the World Map becomes visible, as opposed to immediately after exiting the current field or battle to enter the world map. For a particular manipulation, the IGT value that is used to seed the RNG will be referred to as the seeding IGT.

Of course, in order to actually seed the world map at a certain time, in most circumstances it will be necessary to time an action that ultimately leads to exiting to the world map at a slightly later time, such as timing closing the menu and running out of the current field at a certain IGT. This IGT will be some amount of time before the seeding IGT, as some time must pass in order to enter and fully load the world map. The IGT that is used to time this action will be called the action IGT. The offset between a particular manipulation's action IGT and its seeding IGT will vary based on platform and the specific manipulation, but there a couple of common scenarios.

Typical Seeding Offsets[edit | edit source]

The most common scenarios involve having the menu open next to a loading zone leading to the world map. On PC and HD Console, the offset here should be 0 seconds, since the world map can load instantly on these versions.

On PlayStation Disc, If the world map is cached in memory (which is most of the time), the offset is 3 seconds. If the world map is not cached (Corel Desert to World Map), the offset is 5 seconds.

Seeding Techniques[edit | edit source]

Predicting IGT[edit | edit source]

It is often useful to be able to approximate the IGT that will be hit to have time to identify a range of manipulation times to prepare to use. The most common way to do this is to offset the current real time of run. However, due to IGT running slower than real time, the value of this offset can be dependent on the exact range of time that is expected to be hit. Some common offsets are listed with their respective manipulations in the World Map Manipulation Directory.

Seeding Without Direct Access to IGT[edit | edit source]

In some instances, it won't be possible or optimal to use a direct seeding offset between the last time the menu is visible and when the world map loads. One instance of this is performing a manipulation from loading into the world map with the Buggy for the first time after defeating Dyne in Corel Prison and winning the Chocobo Race. In this case, the menu was last opened before Dyne, and there is no opportunity to open the menu between the start of the Chocobo Race (which takes a variable amount of time) and loading into the World Map.

In this situation, it is possible to synchronize a timer with the IGT timer when the menu is open before Dyne, and that timer can instead be used to time closing the Party Select menu after winning the Chocobo Race.

Seeding a Save FIle[edit | edit source]

In some instances, notably in All Bosses (Warps), it is ideal to create a save file on the world map saved to a specific IGT that results in being able to seed a manipulation by simply loading the file. This is usually done by clicking "Save" on the menu at a certain IGT, then mashing Circle/OK to save the file over the 1-1 slot. Doing so will save the file with an IGT that is 2 seconds after when "Save" is clicked.

Chain Manipulation[edit | edit source]

Chain Manipulation is seeding an RNG manipulation by loading the world map by timing closing the rewards screen from a previous battle, often from a previously manipulated battle.

Since the player cannot see the game's current IGT while in the battle rewards screen, an external timer is needed to time exiting the rewards screen.

World Map Pre-loading[edit | edit source]

During the battle rewards screen, the game pre-loads some of the world map. This takes some time, and the game can't load the world map faster than this pre-loading. As such, closing out of this screen within the first couple of seconds after the battle concludes will result in the same seeding IGT. As such, it is necessary to wait at least a few seconds on this screen before closing it.

Manipulation Concepts[edit | edit source]

L/R[edit | edit source]

While the player character is controllable, every frame of pressing any of Left, Right, L1, or R1 will result in RNG being called a single time on that frame. The value generated by this RNG call is not used for anything, but it advances RNG on each frame if at least one of these are input.

L/R Normalization[edit | edit source]

By continuously holding L1 and/or R1, so long as the player keeps moving, it no longer matters if they move left/right or not left/right, as RNG will still increase each frame.

Manipulation Techniques[edit | edit source]

Menuing[edit | edit source]

When the menu is opened while moving left or right, fractions will not move on the frame the menu is opened, but the player will still move and the L/R RNG increment will still occur. This has the effect of putting one more RNG increment between two encounter checks on movement that is primarily L/R.

Taps[edit | edit source]

During primarily L/R movement, individual frames of non-L/R movement (usually single frames of up/down) can be added to reduce the amount of RNG calls between two encounter checks by 1 per tap.

Manipulating Formations[edit | edit source]

Oftentimes, the world map is manipulated in order to control which battle formation is encountered in order to get a fight with specific enemies or to get a specific formation. This is used in the 100% speedrun to obtain several items from specific enemies or in the Any% Warps run to obtain specific formations used for wrong warping.

Yuffie[edit | edit source]

Yuffie only spawns in the world after the Yuffie flag has been enabled, which happens at three locations: after the Turks cutscene in Mythril Mines, after Jenova∙BIRTH, and after Cosmo Canyon.

Chocobos[edit | edit source]

If the player is standing on a triangle flagged to spawn Chocobos when an encounter happens and their Chocobo Lure value is greater than 0, then the game attempts to generate an encounter from the Chocobo encounter table. The chances for these encounters are dependent on the current Chocobo Lure value. Note that a certain IGT may not generate the expected Chcocobo encounter if your Chocobo Lure value is too low OR if it is too high.

Bumping[edit | edit source]

When determining what encounter formation to generate, if the formation is generated from the Standard encounter table (as opposed to the Special table) and the formation is equal to the previously generated Standard encounter formation, the formation is re-rolled exactly once, and that formation is then always used. This is important to consider when repeatedly manipulating the same formation or set of formations, or if it is possible to have just encountered that formation.

This will not happen with encounters from the Special table, Chocobo encounters, or Yuffie: they do not compare against the last encounter formation, and they do not set the last encounter formation.

The previous encounter value used for the World Map is distinct from the one used for Field encounters. This value persists between world map loads and is saved to and loaded from file.

Zolom[edit | edit source]

A rendering of the triangles of the World Map with the Zolom Box outlined in white
A rendering of the World Map with the Zolom Box outlined in white

The Zolom roams the marsh between the Chocobo Ranch and the Mythril Mines. It uses World Map RNG as a part of its behavior, and it therefore affects the state of World Map RNG while active.

The Zolom has two states of activity: a passive movement state that occurs while the player is within the Zolom Box, and an active chasing state when the player is also on a triangle with the Marsh ground type (7).

Zolom Box[edit | edit source]

The Zolom Box is an 8x8-chunk square. When the player is within the Zolom Box and is not on a Marsh triangle, the zolom passively rotates with a chosen angle, and a timer counts down. When it reaches zero, RNG is used to choose a new random angle and RNG is also used to re-initialize the timer.

Marsh Behavior[edit | edit source]

The exact nature of the Zolom's behavior and how it interfaces with World Map RNG while the player is on a Marsh square is currently not well understood.

Things that call RNG[edit | edit source]

Zolom[edit | edit source]

While the player is within the Zolom Box and is not standing on the marsh, Zolom calls RNG twice periodically to determine some aspect of its movement and the value of the counter that determines how long until it calls RNG again.

Ultimate Weapon[edit | edit source]

If it is to spawn, loading into the World Map results in Ultimate Weapon calling RNG immediately on spawn a single time to determine its initial facing and movement direction.

Ultimate Weapon periodically calls RNG as it flies around the world map to determine its next movement angle. This call should be performed every 70 frames.

When it is hit five times, Ultiamte Weapon calls RNG to determine where it will end up, out of 7 possibilities.

Advice: Do not attempt to manipulate the world map while Ultimate Weapon exists.

Ruby Weapon[edit | edit source]

If it is to spawn, loading into the World Map results in Ruby Weapon calling RNG immediately on spawn a single time to determine its spawning location out of 3 possibilities.

Emerald Weapon[edit | edit source]

If it is to spawn, loading into the underwater World Map results in Emerald Weapon calling RNG immediately on spawn a single time to determine its spawning location and movement pattern out of 9 possibilities.