The Final Fantasy Legend, also known as Makai Toushi SaGa in Japan, is a Game Boy RPG. It is the first entry in teh long running SaGa series and has a lot of strange and esoteric mechanics. You can form a team of up to four party members consisting of humans, mutants, and monsters. Each character type get stronger by wildly different means. The goal of this movie is to beat the game mostly as intended by getting the 4 Spheres and beat Ashura and the Creator, though there are still a few unintended skips done along the way.
Run notes
- Emulator used: BizHawk 2.6.3
- GBHawk core, GBC mode
- Heavy RNG manipulation
- Uses many soft resets
Background info
I started making this movie when I saw the detailed RNG and run notes by catklaw on the game's SRC board. From there I decided on taking a monster raising approach to handle most of the major fights. Once I started the run I then discovered the TASVideos thread where FatRatKnight and Bobo the King were working on a run that just involves just mutants. Their efforts was what led to how most of the game's RNG works and is what I extensively used to verify if I hit the right RNG values. While their approach for the game involves just using mutants, I stuck with my strategy since there was less inventory and money management that I had to worry about.
Helpful technical resources
Techniques used
Soft reset RNG manipulation
When in-game, resetting on different frames gives different non-battle RNG values. This is frame dependent and might also be hardware dependent. The initial RNG values also differs between Game Boy, Game Boy Color / Game Boy Player, and Super Game Boy, as well as if the palette is changed in Game Boy Color mode. Either way this is abused to get RNG rolls to learn certain mutant abilities and force certain meat drops.
There is one caveat about soft resets. Most battle RNG, aside from enemy targeting, is reset to a static value from a power on or a soft reset. There are limited ways to manipulate this but generally this means that battles generally will play out the same with the same formations.
Human growth and why they're not used
Human stats go up from buying certain items from the store. While this makes them pretty easy to use past the early game for a casual player, this is a big money and time sink that isn't conductive for going fast.
Mutant growth advancement and mutation RNG
Mutants can get stats or abilities after a battle. The mutations gained determined by the RNG and is incremented after every battle per every surviving mutant, from top to bottom. This can be controlled somewhat to get desirable abilities or stat ups, and can be sped up with multiple mutants in the party. The party order is important in how rolls are done. For example, if an ability is to come for the second mutant after battle, it's potentially advantageous to swap around party members so that the desired character gets the ability. This is used to give one mutant both the Telepor and death Gaze abilities.
Monster levels and monster types are used to determine the end result of a monster eating meat. To simplify it, the result type is dependent on the current monster's type and the drop meat's monster type. Then the level of monster is taken by the highest monster level between the two. If the result doesn't find a matching level the game will first check one level above for a valid monster before checking lower levels. This check is utilized as much as possible to get the useful monster abilities for the mandatory fights as soon as possible. The two most critical monsters to get are Cocatris and Warrior for their powerful abilities.
Encounter rates are map and tile dependent. Encounters are tied to a step counter whose initial placement is determined by the RNG upon power on or soft reset. Sometimes there's a little movement in one area to avoid encounters on another map. Soft resets are abused to avoid all unnecessary encounters throughout the run.
Saw glitch
The intended check for Saw's instant death check is if the users Str is greater than or equal to the target's Def. Due to an error in the code this check is reversed, meaning that Saw can take out a lot more targets than intended. This is used to the fullest starting from World 4.
Ability accuracy
Status effect accuracy are dependent on the user's Mana and target's Mana. It will guarantee a hit if:
User Mana >= Target Mana - 4
Saw accuracy is dependent on a base accuracy plus the user's Str stat. The accuracy is capped at 75 Str, but the Warrior's 60 Str is enough to get the first hit on soft reset.
Party composition
While I could have given each character a zero length name, I decided to give them names to make it easier for the viewer to follow along in battles.
Fio - Mutant F
A female mutant is chosen first as the party leader due to both starting with higher Mana than the base recruit and having a Saber that can be sold for a certain set of equipment at the start. The higher Mana means that it will be quicker to get her at 37 Mana for death Gaze to hit the Atom Ants in World 4 without having to worry about missing.
Jeff - Mutant M
A male mutant is recruited mostly as a means to advance the mutation RNG at double the rate. Sometimes he helps in battles but doesn't really do anything past the 1st Tower climb.
Buzz - Monster
While starting as an Albatros that doesn't do too much, Buzz will transform quite a bit to prepare for most situations past world 1. By the start of World 2 they will be a Cocatris with the incredibly potent Petrify skill. Just before World 4 they will transform into a Warrior to handle most mandatory fights for the rest of the game.
OOOO - A haunted spot
OOOO is the game's placeholder name in case the player doesn't fill in all the spots and mostly exists such that the game doesn't break when it has to call this slot's name in dialogue.
Run breakdown
World 1 - Start to Bandit Cave
I first register Fio as the party leader. I then immediately save and have a timed soft reset such that I can get death Gaze in 2 successful fights. I then recruit the rest of the team. I immediately sell the Saber and buy an Ice book, Gold armor, Gold gauntlets, and a Rapier. The rapier is purchased last to do the only minor battle RNG manipulation to keep everyone alive. The book and equipment are put on Fio. After swapping Fio and Jeff the team heads out towards the Bandit Cave. Once they win two fights Fio gets death Gaze at ability slot 3.
After a swap between Fio and Jeff again and a small amount of advancement, a soft reset RNG manipulation is done again to get Telepor at ability slot 1 in 8 successful fights. On the way the first fight is with a simple Goblin just after the forest area, which is more manageable than a Zombie at this moment. This fight also gives a Mana boost to Fio. Once inside the cave there is another party swap after the 1st Zombie fight to move Buzz at the front to keep everyone alive again. After the 2nd Zombie fight the group interacts with the nearby NPC to initiate a fight with a Lizard group with various sizes. This is done 4 times.
After that is done, they meet up with the bandit boss, a P-Frog. This is finished off with Fio death gazing at it, earning her Telepor at ability slot 1. The team is also awarded with the first meat to be eaten, transforming Buzz into an Oni. The team then teleports to the Base Town to save some travel time.
World 1 - Castle Armor and Castle Shield
This is where about half of the important meat eating happens. Each battle is carefully manipulated on the way to important locations to prepare for the rest of the game. While meat drops are happening, the team heads off to Castle Armor for the King armor as their reward clearing out the Bandit Cave. They then teleport back to Base Town and rest up at the inn, recharging death gaze uses. Once that's done the party heads on over to Castle Sword. Buzz's last transformation in this section of the game will be a Catwoman, done on the 2nd floor of Castle Sword. An RNG manipulation and swap between Fio and Jeff is used before the KingSwrd fight to get Fio some more Mana growth. KingSwrd falls immediately to a death gaze and the party gets the King sword. They then teleport back to Base Town again to save time.
World 1 - Castle Shield and the 1st Sphere
On the way to Castle Shield the RNG is manipulated and one last swap between Fio and Jeff is performed for more Mana growth as usual. While the 1st fight could have fewer enemies the fight was fast enough thanks to death gaze and Buzz's sheer strength. Another RNG manipulation is done right before the Steward for even more Mana growth. The Steward fight is incredibly easy since he didn't get a chance to use his gun before getting smacked once. Once the party receives the King shield from him, they move over to the Castle Town statue and use each piece of the armor to receive the 1st Sphere. The party then teleports back to Base Town for the last time which also skips the Gen-Bu fight that would otherwise be triggered by stepping on certain tiles. They heal up once more to recover death gaze charges and finally enter the Tower.
Tower Climb #1
Most of the rest of the meat drops are done here. By the end of the grind Buzz will now be a Cocatris, whose Petrify skill will take care of a huge majority of the game. Otherwise it's a straightforward climb to World 2.
World 2 - Sea World
Sei-Ryu's the only mandatoyr fight in this world so this is mostly just wandering around for progression items. First the party gets the moving item and then gets the Airseed from the middle of the southeast island. With that they can go under the sea and enter the Sea Palace. The Sea Palace introduces an incredibly annoying new RNG factor: NPC movement. I extensively use this to move the NPC away from the room with the Blue Key twice. Another RNG manipulation is done before the Sei-Ryu fight to get another Mana up for Fio. The fight is over with a single Petrify which is the only way to reasonably turn them to stone.
On the way to Ryu-O's place the party does a quick pit stop in the northeast island town. An inn rest is done to replenish ability charges for both Fio and Buzz. After that the last shopping trip is done to buy a Battle sword for Ryo-O's riddle. Once the party reaches and chats with Ryu-O, a quick soft reset is done since it's faster than having to exit and re-enter his place. The party then has both orbs, where they're combined for the 2nd Sphere. The sphere is immediately used and the party teleports to the Tower 5F which is faster than taking the island back.
Tower Climb #2
Nothing interesting really happens here. The party's already set for the next world.
World 3 - Sky World
The bar fight is manipulated to have a single Mosquito, who turns to stone at round start. The team then gets recruited by Byak-Ko to find Jeanne. The Jeanne protection fight takes 2 turns due to there being 3 groups of enemies to deal with. Once that's done the second bit of frustrating NPC movement manipulation is done throughout all of the Sky Palace which at lest doesn't have random encounters. At the end a group of SaberCats are fought, taken out with a death gaze.
Byak-Ko throws them in jail and the team teleports out to Tower 10F to skip a couple of otherwise dangerous fights. They return to the bar to get the glider back to find the moved Sky Palace. After entering and immediately exiting the palace, they're next to where the 3rd Sphere lies. A final RNG manipulation for Mana growth is done which will leave Fio at the targeted 37 Mana. The Byak-Ko fight goes just as expected: get pecked and turned into a statue. The real Sphere reveals itself after the fight, which is immediately used. It's faster to teleport again back to Tower 10F than it is to fly back. This will be the last time teleport is used.
Tower Climb #3
On the way to World 4 a group of Ogres are taken out with a death gaze. They drop a meat to transform Buzz into a Warrior with the game breaking Saw ability. A few steps are taken before entering the world to avoid an encounter at the start of World 4.
World 4 - World of Ruin
The team immediately enters the subway tunnels to find Sayaka. They follow her and defend her from Atom Ants. The Atom Ants do not have enough defense to be sawed to death, which is where Fio's death gaze and 37 Mana gets their final hurrah. She then doesn't have to do anything for the rest of the run.
The rest of the world is mostly just avoiding encounters between mandatory fights. Some of the rubble in the overworld aren't coded to be encounter tiles and are used to keep encounters low. All fights are just gonna be Buzz using saw. Evil Eye, Machine, and Su-Zaku all fall the same way. At the end of this section it's faster to walk back to the Tower rather than teleporting due to the travel being shorter than the teleport animation.
Tower Climb #4
It's just more soft resetting to avoid encounters on the way to Ashura. However, the mysterious hat man is talked to on Tower 22F to trigger one of the 2 event flags for starting the end game. While it's possible to talk to him earlier this is both the most on the way spot and a fairly short text box. Ashura has a hidden pitfall a little in front of him which is walked around, and he also falls to the saw. They then fall for a hidden hole anyways, triggering the end game.
Final Tower Climb
Nothing really that notable aside from being a boss rush. I do interact with each boss on the earliest frame possible which looks neat but is otherwise pointless. At the top the hat man reveals himself to be the Creator. However he is also a jerk so Buzz gets the saw and calls it a day. The last input for the ending sequence is when the final fight text is cleared.
Possible improvements
- A tighter meat chart routing could cut down the number of fights needed for the target monsters.
- Another mutant can speed up the ability learning process but...
- ...getting the other mutants killed so that the one mutant with the abilities lives can speed up battles a little faster.
- It's possible that a lower Mana threshold is good enough to take out the Atom Ants on a soft reset though it's not too hard to hit 37 Mana anyways.
- Getting an ability that targets the user only such as Mirror and ESP for the mutant with death gaze can save a little bit of time in fights where they don't have to do anything.
- Bobo the King and FatRatKnight originally make their routes around just using mutants. There's still a possibility that it's the faster strategy.
- Some better NPC manipulation can save some frames here and there.
- Some extra RNG manipulation could be done to reduce the number of unnecessary meat drops, though a fair number of those come from fights with a higher than normal meat drop rate.
Suggested screenshots
Frames 51300, 82500
Samsara:
Judging! Giving this one to ThunderAxe31!
ThunderAxe31: After a short consultation with feos, we concluded that the currently
published movie and
its predecessor should be labelled as "warp glitch", so now this submission doesn't need anymore a label for denoting that it avoids major skips.
This is a very well made TAS. It makes use of a lot of game-specific knowledge. RNG manipulation, route planning, various exploits... This makes for an interesting and entertaining RPG movie.
Differently from the
current publication, the goal chosen here by the author is beating the game while avoiding usage of major skip glitches, which is an acceptable goal regardless of the entertaining value. As such, accepting this movie as a new branch.