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

Submission #6209: Lil_Gecko's PSX Final Fantasy VII in 6:48:29.66

Console: Sony PlayStation
Game name: Final Fantasy VII
Game version: USA
ROM filename: Final Fantasy VII (USA) (Disc 1).bin / Final Fantasy VII (USA) (Disc 2).bin : Final Fantasy VII (USA) (Disc 3).bin
Emulator: Bizhawk 2.3
Movie length: 6:48:29.66
FrameCount: 1453248
Re-record count: 413717
Author's real name: Steven B.
Author's nickname: Lil_Gecko
Submitter: Lil_Gecko
Submitted at: 2018-12-28 09:48:20
Text last edited at: 2019-09-13 11:45:28
Text last edited by: ThunderAxe31
Download: Download (98604 bytes)
Status: decision: cancelled
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:
Final Fantasy VII is a 1997 RPG developed by Square. The game's story follows Cloud Strife, a mercenary who joins an eco-terrorist organization to stop a world-controlling megacorporation from using the planet's life essence as an energy source. Events send Cloud and his allies in pursuit of Sephiroth, a superhuman intent on destroying their planet. During the journey, Cloud builds close friendships with his party members, including Aerith Gainsborough, who holds the secret to saving their world.

(Link to video)

Game objectives :

Emulator used: Bizhawk 2.3

Uses Slots

Doesn't switch CDs except when asked for

Heavy Luck Manipulation

Comments :

Doesn't switch CDs except when asked for :

It is possible to greatly reduce the length of FMV or even skip them by swaping Discs and tricking the game into loading the wrong one. However by TASVideos rules : "For games that consist of multiple images that are intended to be used in a specific order, inserting a new image is only allowed when the game explicitly prompts for it, and the intended order must be respected."

Slots :

Caith Sith Level 2 Limit is called Slots. The reels determine what various effects will occur, depending on the combination of the six symbols. Getting three Caith Sith triggers a move called "Game Over" that kills instantly the enemy (including Boss). This is very powerful and warrant two separate categories in the RTA community. As a first TAS, I went with the fastest way, which is using Slots.

Naming Characters :

As Dialog boxes don't load instantly, renaming our characters to one letter name sometimes saves a few frames by reducing the length of the dialog. Aerith is the only one we can't rename since we will skip this part, but the gain of the skip outweights it greatly.

ATB : Wait or Active ?

We nearly always want Wait because this allows us to manipulate the RNG to our favour. When a command is selected, all ATBs freeze. This can delay enemies' attacks, or make us wait for a better spot without the fear of the enemy attacking. There is one exception. We put Active before Bottomswell, because this makes Poison act way more frequently.

RNG in battle :

Changes every four frames. Is used for Damage, Attack chosen, Critical Hits, Miss, Steal,...

RNG in the field :

Changes every input-frame. Is used for Starting ATB, mini-games,...

Stats boost :

Every time a character gains a level, its stats can get boosted. This is determined by the RNG at the end of the fight. We can manipulate the boosts to our liking by simply delaying the final blow.

Critical Hits :

A Critical may occur based on Luck Stat and Levels from both you and the enemy. While we have very little maneuver on the Levels, we can increase Luck to the Max at every Stat Boost. Having 17 Luck for Guard Scorpion is the most desirable. Reaching the 22 mark for Jenova birth doubles our odds to Critical.

Weird Level Up :

By beating Heli-Gunner, Cloud also gets a Level Up, even if he is not in the party. This includes his Stat Boost and should be manipulated.

Field "Random" Encounters :

While in the field, there is 2 important values to keep track of. The StepID and the Danger value. StepID : 0x9c540 (1 byte) Danger : 0x7173c (2 bytes)

For every StepID there is a limit, which if the Danger is above, triggers a battle. Those values are set in stone and are the same everytime you start the game, which makes the encounters not really random. Every field has its own Danger stat, which is the value that gets added to the Danger everytime there is a check. Some are very low (32), some are very high (170). This value can get divided by 4 if you are walking on the frame of the Check. A check is performed every 16 frames of movement (at 60fps) on field with possible encounters. At this point, StepID is increased by 2 and Danger is increased by Danger stat. There is also a value that keeps track of how many times, StepID reaches 256 and roll over back to 0, so values of the StepID limits are different on each loop.

Now that we know that, how to efficiently reduce the number of encounters.

As we said, the game only checks every 16 frames and walking on a check reduces the increase by 4 times. So we can actually run for 14 frames and walk for 2 and get the same result as walking 16 frames, except covering more distance. This is called Stutter-Step.

Menu Glitch. If you press Menu on the frame a battle is suppose to start, you will effectively skip it. The game register that you got a battle but the Danger Value is not reset. This also has a downside. If there is no "random" encounter between a Menu Glitch and a mandatory battle, the latter gets to happen twice, resulting in a huge time loss. On the plus side, it only costs 80ish frames and if you have to go to the menu anyway, you can combine both.

Reseting the Danger Value. There is no other way around than accepting a battle and escape. As mentionned above, this has to be done before a mandatory fight if there was a Menu Glitch before. If one of our characters gets to act before all the enemies, he can freeze all ATBs and unfreeze it at the appropriate time for an instant escape.

Here is my Steps route for the whole TAS :


Keep in mind, that I have no programming algorythm knowledge, and I tried most of those by hand, so there is a 99% probability that there exists a faster route.

World Map Random Encounters :

Those are not fixed and can be easily avoided by changing direction or rotating the camera for one or several frames.

World Map movement :

The fastest way of travel is diagonally. If I do anything else, it's most likely for RNG manipulation purpose.

Dodge paralysis :

Activating two events at the same time (usually by talking to someone on the same frame you trigger the first one), results most of the time in keeping control of the character during an usual paralysis. It allows to exit the screen and ending the event without watching it, or to keep doing things while you're not supposed to.

Early game strategy :

At the beginning, our characters don't have strong moves even with Critical, but we can buy Grenades that do a lot of damage. It's by far the fastest way a dealing with enemies at this point.

Tsunaskip :

Found very recently by Tsunamods, this skip is done by clipping into the guards and getting past them to reach Wall Market right after the 7th Heaven. It saves a tremendous amount of time !

Boss Battle and StepID :

Some bosses are on a field with random encounters. For those one, you can manipulate the start of the fight and the StepID at the same time. Doing so, we can start the fight in Preemptive (used for Aps and Jenova Birth)

The Ether outside Aerith' house :

We unfortunately have to pick it up, as it will net us enough money to buy more Grenades.

Shinra HQ Elevator :

Very simple, the floor you end up on is determined by RNG. Since it changes every input-frame, very little manipulation is done to get the perfect outcome. 1 fight against 2 enemies and 3 Shinra employees.

Mayor Domino's Password :

We have to guess the password on the second try to get rewarded with an Elixir. We will need it later and this is by a huge margin the fastest way to get one.

Midgar Zolom skips :

Depending on your position in the swamp, it is possible to not get chased by the Zolom right away, which combining with diagonal movement, makes it possible to cross unarmed with very little manipulation. Right after, opening the menu on the right frame skips an event.

Junon :

We refill Grenades one last time. During the CPR mini-game, you need to reach a value of 41. The maximum you can get per turn is supposed to be 10, but if you press on the last frame possible you get 11. So you can get 41 in 4 turns instead of 5. During the parade, we don't want to aim for the maximum reward. We do need the 6 Ethers which will come very handy later. During the reception, I tried every single delay possible, and this is the fastest outcome I could get. It is possible to have better RNG, but it would require a slower preface, which wouldn't be worth it. We also need the Force Stealer Reward.

Bridge to North Corel :

We need to fight a Bomb, to steal a Right Arm from it. This item will one shot a boss later.

North Corel :

Little bit of shopping. We have now access to Tranquilizer and Hyper to respectively, reduce damage and boost Limit Gauge filling. We can also get Molotov, to replace the Grenades for the next couple of fights.

Corel Prison :

We now have Caith Sith who's gonna be the main killer for the rest of the run. In order to gain Slots, he needs to kill 40 enemies by himself. The 9 enemies from Prison are going to be dealt with Molotov which are slightly faster than Ifrit. If Cloud attacks inbetween, it is to freeze enemies' ATB while Caith Sith' one fills.

Dyne :

This is why we steal a Right Arm. Dyne is dealt with in a blink of an eye. Little manipulation so he doesn't counter upon death.

Chocobo race :

As it ends when the second place arrives, we need an opponent's Chocobo to be fast and to use its sprint at the beginning. Then we can push him a tiny bit each time by bumping into him until the end, where we finally get first place.

World Map :

We encounter an Harpy to learn Aqualung and we need to use a Tranquilizer to survive. Due to Harpy's AI, it cannot start with Aqualung, so it is a bit faster to manipulate it with Tifa to do it instead of waiting for the second turn. Caith Sith deals the final blow to increase his kill count to 10. Then we encounter two fights on purpose and make use of our newly acquired skill. As you can see, Aqualung requires a lot of MP, which is the reason we needed to win Ether in Junon.

Stinger skip :

You can avoid the two mandatory battles in Gi Cave, by triggering a battle on the same frame you hit the spider web. However you have to go to the menu one time beforehand or it won't work. If I run back a little bit before exiting the screen, it is to increase my StepID while the Danger stat is lower than it will be. This will avoid a "random" encounter later.

Gi Nattack :

The Elixir the mayor Domino gaves us kills him instantly. Caith Sith' kill count is at 27 after this fight.

World Map :

2 additionnal enemies are fought, because we can only get 11 in Mount Nibel.

Mount Nibel :

Caith Sith kills his 40th enemy before Materia Keeper and learns Slots. Now is just a matter of Caith Sith getting hit to fill his gauge (helped by Hyper) and use Game Over.

Tiny Bronco to Gold Saucer :

By moving diagonally, we could have saved around 50 frames from this trip. However, there is a framerule in the gondola ride which cancel this time save. BUT, how fast Aerith starts to speak after the framerule scene is based on RNG. By saving those 50ish frames earlier, we would lose more than 100 here. Whereas this pattern is optimal in total.

Note that it is not possible to date Barret with the Tsunaskip because we need to push barrels at Aerith in the church to lower her affection.

Temple of Ancients :

It is faster to get hit twice by an encounter than getting a hit from Demons Gate.

Bone Village :

We need to buy Hi-Potions for Caith Sith, but we also need to have a very low amount of Gil to save time later. So we buy 70 as well as a couple Phoenix Down to revive Caith Sith after Schizo. Pressing Confirm at the right time after digging gets you the Lunar Harp without having to open the chest.

Forgotten Capital :

We can open the chest from one floor above at the same time than starting to rest. This allows us to keep control of our character and skip one event. Don't exit the house too early or the glitch will not have effect and it will still be daytime.

Icicle Inn :

When Elena tries to punch you, dodge to the right. Then press Confirm at the right time, so you interrupt the Soldier from running and get a little skip.

Gaea’s Cliff :

Getting hit by Bio2 or getting 2 Blood Suck are about even, though Blood Suck requires more manipulation. We only need 3 Icicles down to proceed. Cloud gets the Dragon Armlet and a Tranquilizer to survive the next boss. Caith Sith gets Wizard Bracelet to enhance Aqualung. Caith Sith can survive Schizo, but this would require an extra menuing and lose time overall compare to just revive him afterwards.

Whirlwind Maze :

Getting hit by the wind triggers a battle. Once again, it is faster to get hit twice by an encounter than getting hit by Jenova Death, though not by much.

Junon 2 :

FMV Skip. After the cannon has fired, in the computers room, you actually have control over Barret despite his model being invisible. Which means you can exit the screen by the bottom and skip a whole bunch of FMV. Scarlet Slaping game. Despite looking way cooler, slaping Scarlet five times in a row is slightly slower than accepting your fate :(

Mideel :

A team of Red XIII and Caith Sith get the fastest dialogs.

Fort Condor :

This is why we had to spend a lot of Gil in Bone Village. You can set up a Tristoner for 1000 Gil and immediately destroy it. Once you don't have enough Gil anymore, the mini-game stops and you get a battle. Every 1000 Gil extra you have at the start of the mini-game, gets you an extra Tristoner and lose 70ish frames. Losing the battle puts us back at the entrance and we can proceed.

Train to North Corel :

The third enemy is too slow in hiting Caith Sith. Getting the Limit ready on the second fight is faster overall.

North Corel 2 :

Dodge Paralysis to skip an event. However we cannot exit by the right just yet. We have to go towards the Gold Saucer and back.

Mideel 2 and Cloud's Past :

There is absolutely nothing going on here... Very boring part imo...

Junon 3 :

Having Cid in the party for Junon increases the loading screens' length by 10-15 frames. Which means that it is faster to take Red XIII and switch to Cid after than getting Cid all the way. Getting attacked from both side. During those fights, we can abuse the fact that a Limit gauge being filled increase significantly the speed of the ATB right away. Thanks to that and combining with Wait, Caith Sith can act twice in a row and skip the Soldier's second turn.

Rocket Town 2 :

Switching Red XIII with Cid as Cid will be mandatory. Cloud gets his Power Wrist back to help one fight. Senior Grunt cannot be one-hit killed by Aqualung, so we have to find a way for its reminding HP. First one is done with a Critical Braver from Cloud. Second one gets 2 S-Mine.

Midgar Skip Glitch :

Hold Down+Right+Run before seeing Hojo and you will trigger the sequence battle instead of the normal event. This saves a lot of time too. Unfortunately, this glitches the music for the rest of the run...

Hojo :

Cloud needs to attack Caith Sith at the end to wake him up. Not much to add.

North Crater :

Save Crystal glitch. Take out the Save Crystal on the same frame you climb down and you get another dodge paralysis. This skips a lot of dialogs when spliting the party. In one of the field, we have to spend an extra 13 seconds to put the seed for a 0 encounter Final Descent in the right spot.

Safer Sephiroth :

Unfortunately Caith Sith can't survive his first attack, so somebody else has to get sacrificed. However, with Gigas Armlet and Defend, in addition to Jem Ring to avoid being paralyzed, he'll survive the second and boom... The End...


Thanks to : antd and BrutalAl especially for a lot of their work (RNG, Critical Hits, Random Encounter, Early boss fights, dodge paralysis, Final Descent manipulation,...). This TAS couldn't have been done without them.

ThunderAxe31: Judging.

ThunderAxe31: Setting to delayed, in light of a possible improvement.

Similar submissions (by title and categories where applicable):