Tool-assisted game movies
When human skills are just not enough

Submission #4715: samurai goroh's SNES Final Fantasy V in 3:25:57.13

Console: Super NES
Game name: Final Fantasy V
Game version: JPN
ROM filename: Final Fantasy V (J).smc
Emulator: Bizhawk 1.9.4
Movie length: 3:25:57.13
FrameCount: 742649
Re-record count: 25656
Author's real name: Erick Guillen
Author's nickname: samurai goroh
Submitter: samurai goroh
Submitted at: 2015-06-05 22:23:22
Text last edited at: 2015-06-15 18:46:49
Text last edited by: Spikestuff
Download: Download (90509 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

Game Objectives

  • Emulator used: Bizhawk 1.9.4
  • Takes damage to save time
  • Uses death as shortcut
  • Manipulates luck
  • Abuses programming errors


This run is very similar to the Dual Run made by neo_omegon but with improvements when it was possible. For planning of route and boss strategies you can check the walkthough plan

So, what's new? You can learn Goblin Punch from a random battle which saves some time avoiding entering the Beginner's House (although you'll lack a phoenix down to sell). You can cast Old with the Ancient Sword on Halicarnaso (you'll have 1/3 of whatever chance you had before, but in a TAS it doesn't matter), so Mua Village is skipped (and so is buying Haste 2). Step manipulation is similar too, but it stops being alike in the Barrier Tower (avoided a battle there). No running like crazy in Mua Forest due to step manipulation, sorry. I also bought more items on Karnak in order to have some magic evasion early on.


  • How is lag compared with the last run on SNES9x?
In Bizhawk the game lags a lot more, just by opening the game the comparison is 198 (Snes9x 1.43) vs 215 (Bizhawk 1.9.4) of lag frames; 753 vs 826 when you gain control & it will keep adding as the game goes on. Battles take like 4 extra lag frames just to load and there's quite some "lag" (just delay and not lag frames) if the enemy has to perform a command. Also notice that 1 frame in Snes9x is not exactly the same as 1 frame in Bizhawk (if I understood is close to 60 vs 60.1), so you cannot compare them as being the same.

  • How does step manipulation works?
Tiles have some danger value, which amounts can be 0x0000 (safe zone, such as save points and squares where events happen), 0x0010 (sea), 0x0040 (which I label as "Ghost Town"), 0x00E0 (Dungeon), 0x0100 (World Map), 0x0180 (Special, like Moogle Sands) or 0x0200 (not sure if there's a map with this info, but the value does exist in the ROM. I think the GBA uses this on the new dungeon but haven't checked it). This danger will constantly keep adding and comparing to a random number taken from a LUT (which ranges from 0 to 255 in a random order). A random battle will trigger when the upper byte of the danger is bigger than such value. This video that I made to explain how to avoid random battles should demonstrate it a bit (although is just World Map): Avoid Random Encounters

  • With step manipulation, is it possible to avoid all random encounters?
Short answer is no. The reason is that the LUT containing the random numbers are sorted in a way that dungeons with, say more than say 50 steps to the next door, is impossible to get a pattern that allows you to walk that much. However, in the (US) GBA version, you can also reset the danger with a quick-save, so in that version it is possible to evade all random battles. (There are long rooms with danger step danger of 0x0040, which you could walk like 70 steps w/o getting a battle, but I'm just making a general example as most of the time you'll have danger steps of 0x00E0 or 0x0100)

  • Changing rows to escape quicker
While is true that is 8 frames faster to escape from back row than in the front row, you must remember that opening the menu takes "a lot" of frames (around 96 frames in world map from pressing X until you regain control). So is only feasible to do so if you have another reason to open the menu, like for changing jobs or using an item (which is faster than using it in the battlefield).

  • Taking or skipping walking into save points.
Apart from the first save point in Wind Shrine, there are 6 more that are in your way (Map ID: 006E, 00D0, 0057, 00D3, 0149, 0114). The event explaining how they work will always trigger the first time you step into one (doesn't matter which one). The save point in Karnak Castle is laggy, so it's always skipped. If you were to skip those other 5, it means 10 extra steps (~10x8 frames) which in the end results in ~22 frames slower than simple triggering the text and then walking straight into the save points. However, in map 006E (Tower of Walse) you can manipulate steps, so is possible (and I actually did in my run) to evade it in order to take +2 steps. Still it should be about ~6 frames faster to trigger the explanation anyways.

  • Why don't you evade all random battles in the world map?
The reason is that I need sometimes for the group formation to advance in order to trigger an specific formation later on.

Tips & Tricks

  • Saving steps
You can save steps (as in avoiding the counter to increase) in a few ways. First is in the world map you can open the menu while the walking animation hasn't ended. You can also ride on a transport on the first frame you reach it & will not count such step. The other option is to walk into tiles that doesn't register danger (which are placed where events can/had happened).

  • Manipulating RNG before a battle
One frame before the screen goes black (and lags while loading the battle info), if you press any combination of buttons you may alter some values (e.g. Enemy speed, Pre-Emptive, Back Attack, RNG counters A & B, etc). Note that there are 12 buttons on the SNES, the combination of buttons pressed is 4096 (2^12), but plenty of times meaningful addresses (enemies speed, RNG counters A & B) will be the same so no need to test that much, covering up to 2 buttons pressed covers most cases & will suffice.

  • Avoid random battles
You can avoid random battles most of the time by resetting the danger meter (Exception goes when there a 0 to compare next step and you're in the world map or walking into the Moogle Sands as 1 step will always be higher than 0).

  • Infinite Items Stolen
Here's a video that explains it, Infinite Item Stolen


Considering that lag is higher in Bizhawk than it was in Snes9x 1.47 (and frames are not measured the same), there can't be a direct comparison with the last runs. However, using the times with the memory address 7E094A XXXXXXXX (In-game timer, in frames) can still give you some feedback (That address stops when in battle, so is easy to obtain its values).

Location Current TAS Dual TAS Old TAS Notes
WingRaptor 55446 55291 55416 Avoiding Breath Wing saves quite some time
Karlabos 90666 91885 91755
Siren 114184 115348 115352
Magissa 125602 126624 127594 Using an item before the battle is a bit faster (specially if you had to open the menu anyways)
Galura 138560 139798 142831 Saved 1 command by making Lenna equipping the Mythril Knife
Liquid Flame 174109 175347 178549
Iron Claw 187392 188381 193612 Trying to run away while the Sargent speaks affects in no way, just did it to use the dead time on something
Ifrit 198346 199354 203534 Pre-Emptive
Byblos 204647 205693 209870
Sand Worm 246947 248373 252218 Not sure if all 6 counters can realistically be evaded (due to RNG nature), so I was only able to do half.
Cray Claw 268065 269930 278450
Adamantium 278899 280725 289301 I was able to stand 1 attack which is faster than parrying it
Sol Cannon 290201 292875 301956 Combination of Blue Mage + Ninja w/Black was faster (because of their speed), still uses the same number of turns
Archeoavis 299288 302420 310442 Better combination of magic damage left Archaeavis with 1 hp left to die from the leak, so I skipped changing battle speed
Puroboros 332920 344347 355190 Killing them on the first command instead of the 3rd saved some time
Titan 335744 340886 351179
Chimera Brain 339841 336994 347361 Saved 1 turn
World 2 344838 348654 359556
Abductor 348526 352332 363238 Timer doesn't refresh when you die. Also next scene animation is quicker when dead than alive.
Gilgamesh 357678 362171
Gilgamesh 362102 366781 378447 In the Big Bridge I take a different route than intended, as I get no battles where I supposed to do
Tyrasaurus 373963 378493 392430
Abductor 403105 407454 427224 Evading his magical attack was faster than receiving damage
HiryuuPlant 424918 429430 450195
Gilgamesh 458609 463146 479218
Atomos 470882 475368 492300 Most likely lost that much because of the enemy performing 3 "attacks"
Seal Guardians 507653 513516 530868 Despite no Haste, I ended being faster, maybe due to having only 3 enemies attack on the first round & haste animation being "slow"
Exdeath 517731 523577 540919 Timer doesn't refresh when you die.
Exdeath 545735 553658 569336 Someone can die as you don't receive exp nor ABP
World 3 548951 556844 572553
Antlion 568227 575982 591837
Gargoyle 594853 602275 619458 Due to jobs, I can't kill one of them before they attack
Mummy 597887 605539 623385
Merugene 613776 621797 639604
Calofisteri 635520 660870
Apanda 638353 663647
Catastroph 643242 668014
Halicarnaso 646305 671343
Twin Tania 647555 673113 Skipped his dialogue transforming
Ex-Death 665253 691214 No Neo Exdeath, like in first run

Improvements / Blunders

  • Even better luck manipulation.
Understanding what exactly determines outcomes (like enemies commands or steal attempts) would be useful for improving this run. While addresses 7E003A, 7E003B are helpful, I still had to test manually as I don't know their meaning. Finding addresses for your attacks (they are not based on those addresses).

  • NPC movements
Lost some time chasing the Black Chocobo as he went upwards and not downwards to me. Also had bad luck with the Aspis (but was minor). There was a NPC in Karnak Town blocking me, but passing through was slower than surrounding him. Omega would had also be in my way, but luckily I needed extra steps, so it was irrelevant.

  • Avoid taking extra steps in world map to manipulate step encounter if possible.
Walking in the world map is slower than in dungeons where you can dash. Exception is the first time you gain control as for some reason the counter will move despite using a transport (and the Chocobo moves at 8 frames per square, just like dashing).

  • Command inputs during battle animations
neo_omegon said it was faster than inputs done ASAP. Either I was just not able to get it to work properly or it is just not faster (However, it is still useful even if it weren't). There was a strange behavior though, it seemed that not always doing an input ASAP would end the battle the quickest.

  • Taking extra steps to reduce encounter battles
You have to take into account that by taking extra steps, you're losing time. Triggering a battle can be slower or not depending on how many steps you needed to take. However, notice that sometimes you want to advance the group encounter in order to trigger an specific monster formation later on (or in a Speedrun, avoid it), so you must trigger it.

  • Plan a new route
You can avoid some battles on the Shipwreck and then move the enemy formation forward on Karnak Castle, so that you can get specific battle encounters later on. I think is possible to fight only 2 formations of Statue x5 and have Butz learn Combine just before Gilgamesh at Zeza's fleet, then later on have it learned on Galuf. At the Void, I think it might be faster to take 1 Ribbon instead of the Hermes Shoes, it would make 3 battles slower, but it won't detour from the path saving some time.

  • Reset to get a new RNG
Personally I don't like resets on games, but with it you can get different RNG depending on how long you take to choose which file to load. Consider though that it takes quite some time, so is not that easy to find a useful way to implement it.

Thanks to

  • Everyone mentioned in my prior TAS
  • neo_omegon for his dual run, in which I based on that route to make this TAS
  • Omnigamer for the RNG addresses which were extremely useful
  • ffbin site for dungeon encounter ROM address
  • My brother for gifting me a Super Famicom cartridge of Final Fantasy V from Japan, which got me interested in playing this game again.

Suggested Screenshot

Don't have anything in mind, although it will need a new one as it won't be the same settings as the one used on the past run.

Temporary Encode

This is a temporary encode I made for the TAS:

(Link to video)

BTW, I uploaded the Lua files I used on that video here: Lua script

turska: Judging.
turska: Nice improvement. Accepting for publication.

Spikestuff: Publishing.

Similar submissions (by title and categories where applicable):