Aug. 2nd, 2023

First I did Final Fantasy, then Final Fantasy V, then Final Fantasy III, then Final Fantasy VI, then Final Fantasy Tactics, then Final Fantasy Legend II...
Now it's time to play Final Fantasy II with a "classic", trope-derived, strict party of knight, thief, white mage, black mage.

This one is going to be sloppy. It would be somewhat weird for you to be reading this article without some basic understanding of Final Fantasy II's mechanics, but here's a short version: this is a Kawazu game. It eschews the traditional RPG "levelling" system and instead uses something like the SaGa series, where you have a chance in each battle to randomly gain statistics based on the actions you take. Although this might suggest that it makes sense to specialize characters, most players don't... at least not completely. It makes too much sense for characters to have at least a Cure spell and some basic offensive spells.

In the earliest versions of Final Fantasy II, the specialization was encouraged (perhaps a bit heavy-handedly) by making it so you might lose strength when you gain intelligence, or lose intelligence when you gain spirit... so a truly powerful character was usually powerful in just one or two regards. This feature was removed in more modern versions, including the 2004 GBA "Dawn of Souls" version that I'm using. This and a few other conveniences have made newer versions of the game considerably simpler.

There are a few ways I could've forced this game to work with class archetypes, and I seriously considered (in the analysis phase, which was mostly in 2017) just doing this on the honor system by restricting characters' equipment and spells and playing normally. The sticky part of this is that FF2 has a partially rotating party setup and new party members join with their own specializations and such. And it's not like my semi-practiced hacking abilities were going to re-write these systems.

However, in all of my FF1 scripting to enhance the UI, I got pretty good at using Lua to interact with emulation and reading memory values. I just needed to ensure I could find and write to memory values to force certain values and statistics. And although the script is (currently?) far from perfect, it works. I may have taken it to an extreme, actually. The script can be found at https://github.com/FreshFeeling/Final-Fantasy-II-GBA-Classic-Jobs . It is going to constantly force the party into their class roles.

Here's how the classes work.


Knight
Identity: Scott - he seemed the knightliest, based on his behaviours, his known background, his appearance, and his specialty equipment in the Soul of Rebirth sub-game.
Equipment: Swords, shields, and heavy armor.
Spells: Scott will only have access to the Protect spell, which is in character and sort of represents the knight's traditional defensive capabilities and Cover feature.
Statistics:
  • HP: Minimum 100 (based on early game characters), always highest
  • MP: Minimum 1, below average
  • Strength: Minimum 15, always highest
  • Spirit: Minimum 9, maximum 80, not lowest, not highest (thus, somewhere in the middle)
  • Intelligence: Minimum 3, maximum 60, always lowest
  • Stamina: Minimum 12, maximum 90, always highest
  • Agility: Minimum 6, maximum 70, always lowest (FF knights are typically rather slow)
  • Magic: Minimum 3, maximum 60, not lowest, not highest

Thief
Identity: Leila - she's a pirate who uses daggers. Seems a pretty good fit!
Equipment: Daggers, light armor, maybe a buckler.
Spells: None. I would've given her some kind of "escape" magic or something but that doesn't exist in this game.
Statistics:
  • HP: Minimum 35, not lowest, not highest (so somewhere in the middle)
  • MP: Always 0
  • Strength: Minimum 9, maximum 80, not lowest, not highest
  • Spirit: Minimum 3, maximum 60, always lowest
  • Intelligence: Minimum 6, maximum 70, not lowest, not highest
  • Stamina: Minimum 6, maximum 70, not lowest, not highest
  • Agility: Minimum 15, always highest
  • Magic: Always 1

White Mage
Identity: Minwu - he's a white mage through-and-through and openly referred to as such.
Equipment: Staves/maces, light armor, no shields.
Spells: All white magic, starting with just Cure. The actual definition of white magic is a bit weird in this game; it's based around the spirit statistic but otherwise not really indicated in game. I may allow Minwu access to Haste since that's traditionally a white magic spell in Final Fantasy games.
Statistics:
  • HP: Minimum 25, not lowest, not highest (so somewhere in the middle)
  • MP: Minimum 40, always above average
  • Strength: Minimum 6, maximum 70, always below average
  • Spirit: Minimum 15, always highest
  • Intelligence: Minimum 12, maximum 90, not lowest, not highest
  • Stamina: Minimum 9, maximum 80, not lowest, not highest
  • Agility: Minimum 9, maximum 80, not lowest, not highest
  • Magic: Minimum 12, maximum 90, always above average

Black Mage
Identity: Maria - there's no character that particularly fits the offensive caster archetype in any way in this game, but Maria at least has initial stats that befit that role.
Equipment: Staves and knives, light armor, no shields.
Spells: All black magic, starting with Fire, Thunder and Blizzard. As with white magic, the exact spells that count as black magic aren't perfectly clear. In general she'll have damaging and status-inflicting spells, but none of this game's buffs.
Statistics:
  • HP: Minimum 20, always lowest
  • MP: Minimum 40, always highest
  • Strength: Minimum 3, maximum 60, always lowest
  • Spirit: Minimum 6, maximum 70, not highest, not lowest (so, somewhere in the middle)
  • Intelligence: Minimum 15, always highest
  • Stamina: Minimum 3, maximum 60, always lowest
  • Agility: Minimum 9, maximum 80, not lowest, not highest
  • Magic: Minimum 15, always highest
 

What the script is actually doing is periodically - but rapidly! - checking each of these statistics and if it finds a value outside of these ranges, it fixes it. If the knight's HP isn't highest, it set the knight's HP to the highest HP + 1. If the white mage's magic isn't above average, it sets the white mage's magic to the average magic + 1. If the thief's spirit isn't the lowest, it sets the thief's spirit to the lowest spirit - 1.

It also has a feature for checking "has this character's identity changed?" in which case it reverts to a recent, previous stored "copy" of the character. Thus, when a character leaves or joins the party because of the flow of the game's plot, the party actually stays the same. (This does present with some... foibles.)

Another interesting aspect of this script is just generally getting to mix-and-match FF2's characters, as this game completely prescribes the first three characters and forces the fourth slot as you progress through the game. In typical gameplay, Minwu and Leila would never coexist! And Scott didn't even exist in the game's original release.

Okay, let's get down to it. We started on July 31, 2023.

There were some flubs getting the script started on a new save file, and the gameplay doesn't really start until about the 12 minute mark because of these flubs. At that point, our party changes from this:
Party with Firion, Maria, Minwu and a second Maria...
...into this:
The actual party! Scott, Leila, Minwu and Maria.

I started with a short grind. 20 HP, while not outlandish for the start of this game, is pretty low. I've seen recommendations that to truly get underway in this game, ensure the party has 100 max HP. I didn't quite go that long, but I wandered back and forth and had the team strike themselves a bit to make them more survivable. I also kept armor off, even for Scott the knight, since that helps the team build HP, agility and stamina.

Using Maria's spells multi-target on the team was a pretty good way to get those stat gains in the early going; they'd all get harmed, causing potential HP and stamina gains, as well as Maria having a chance to gain MP, magic, intelligence and spell experience for casting black magic.

Every so often I would stop to check the stats. 
Some sample early game stats, featuring Maria the black mage.
I didn't find that the constraints that forced character stats into certain thresholds (e.g. "highest", "lowest", "not lowest", "above average", etc.) were really affecting things much. Everything was just sort of balanced, and suitable to the characters' roles. And this makes sense, honestly. If characters are only taking actions that correspond to their job / archetype, those will be the stats they gain. It's almost like the script is proving that Akitoshi Kawazu isn't crazy!

Eventually, we proceeded with the game and went to Fynn to meet Scott - the real Scott. We got to see our first of many humorously screwed-up cutscenes.
Scott and Leila watch Scott die, while Minwu looks away, as Maria walks on Scott's dying body.
Pictured: Scott and Leila watch Scott die, and Minwu looks away, while Maria walks on Scott's dying body.

We didn't encounter any of the higher-level encounters in the Fynn area and everything has seemed pretty simple so far, except for a short and very unsuccessful trip to see if we could handle monsters from the Mysidia region.
Mysidian monsters are tough.

This is the part of the game where Minwu normally joins you for the first time.
Here's what the cutscene looks like after Minwu joins.
For a moment, an initialized version of Minwu with his normal statistics joined the team, only to be overwritten by my script within a second or two. This worked normally and was quite encouraging, except that this impostor Minwu's spirit and MP statistics were so high that they drove up the statistics of other party members. I decided to just accept this; it is, after all, caused by the actual party member that the game actually inserts into your team. If the game expects a character with almost 50 spirit at this point, then that's what we get!
Minwu has very high spirit now
This is also an indication that future NPCs being added to the team may influence our statistics somewhat, although Minwu is kind of overpowered in the game by default so this is probably the single most dramatic instance of this phenomenon we'll see.

We went to Salamand, getting spellbooks for Protect, Shell, Blink, and Life along the way and then went into the Semitt Falls cave. Nothing was particularly challenging here although I was at least a little bit wary of wasting MP. Scott still had his armor off, too, since I figured him taking some hits would make him stronger.

We actually equipped some armor as we got deeper into the cave, as I knew the battle with the Sergeant was coming up. For the Sergeant, Scott and Minwu spent a couple of rounds buffing with Protect and Blink. Black mage Maria cast some spells and Leila, without other options, attempted to pierce the Sergeant's defenses (which didn't work super well). This game has pretty cool boss music... but the battle was quick.
We defeated the Sergeant.

We also wandered over to the monster-in-a-box chest with the Teleport tome, which is useful for a few reasons. I thought the Land Turtle there was also supposed to be a boss, which I guess I had confused with the Adamantoise we encounter shortly... although both appear as random enemies later. I prepared for the Land Turtle like a boss, with buffs, but in fact it was taken down in one turn by Maria's powerful Blizzard spell.
Frozen turtle.

I forgot that the Teleport spell, for whatever reason, knocks the caster down to critical HP. Easy fix though, just surprising.

We took our mythril back to Altair and bought some goodies with it, including new weapons all around, then we wandered up to Bafsk. We grabbed spellbooks for Basuna and Esuna. Next, we'll visit the tunnels under the town.

Index | Next >
This second session of forcing job archetypes into Final Fantasy II was played on August 1, 2013.


We did start with some issues out of the gate. Most of my testing of my job-forcing script had never taken place through the title screens, so I really ought to have anticipated that this might not work well. I restored my progress from a save state and it worked well. We were truckin' by about the 3-minute mark.

The Bafsk tunnels are pretty simple. Every so often I would still have my party members attack themselves to boost their HP and stamina. I felt like our HP was doing okay with the exception of Maria, who was still just over 100 HP.

The next part wasn't great; I was completely stuck not knowing what to do when I returned to Altair, going back and forth between Altair, Salamand and Kashuan Keep some three or four times looking for Scott or someone to help me get the torch for the Sunfire but I couldn't trigger the way forward.
This stupid door.
I forgot that the king in Altair - and only the king - offered any hint of what to do next, and I had thought the king was unconscious. There's kind of a long segment of me frustratingly travelling around and fighting very low-levelled encounters with little in the way of gains before I actually looked it up. I don't actually make real progress after the Bafsk tunnels until about an hour into the stream.

Eventually, the king tipped us off to the Goddess Bell, and we went to Salamand. We recruited Josef - but not really - and this didn't seem to impact the party's statistics at all the way that Minwu had earlier. We got the snowcraft and went to the snow cave or whatever it's called. It was nice to see some new enemies, including the really cool sprites for Icicles and Dual Heads.
Dual Heads look really cool.

Treasure in this game so far pretty much sucks. It's almost always something that was buyable already, in some cases quite a while ago. I kept going for treasure chests and it was usually pretty disappointing. Ah well. At least the inventory is essentially unlimited in this version of the game, and it's things I can sell to profit from later. This cave does give us something interesting in the Ancient Sword, though; this was quite useful against some high-defense enemies.

Deep in the snow cave, I got to see another delightfully screwed-up cutscene, courtesy of the parts of my script that set character identities:
A picture of Guy saying, "Minwu speak beaver."
This makes about the same amount of sense as the original. It's one of my favourite parts of this game.

From there, it was on to the Adamantoise. As with the Land Turtle previously, Scott and Minwu buffed, Leila kind of tried to attack, and Maria did the real work with spells.
Beat Adamantoise.

Not long after that, we encounter the second boss of this dungeon, Borghen. We approached that fight pretty much the same way, but given his lack of huge elemental weakness and his tendency to cure himself it took slightly longer.
We beat Borghen.

With the Goddess Bell, I went back to Kashuan Keep. I met Gordon (who certainly didn't alter my stats), and collected lots of pretty nice treasure for a change. Minwu really liked acquiring the Werebuster! The music is really good here, and the battles were a touch more challenging and interesting. There are quite a few large formations and high-defense enemies (e.g. Land Turtles and Adamantoise as normal encounters), so Maria used up all of her MP by the time we got to the boss. I was really grateful that rather than being one of the "highly resistant to physical attack" bosses like maybe every boss so far, it was essentially the opposite.

I was trying to conserve MP by the end and attempted to run from battles, but I never actually succeeded. At all. I even used a Blizzard tome from my inventory as an item to cast against an Adamantoise toward the end to find a way to end that battle. I didn't think running from a turtle would be hard.

I won some tomes from enemies here, including a Warp tome and a Sleep tome, so those were spells I was finally able to teach Maria. I don't really think either will be particularly useful.

Note Maria's MP total having defeated the Red Soul:
We beat the Red Soul.

We teleported out and re-entered to light our newfound torch. With the Sunfire attached to Egil's Torch, we're now able to go and destroy the Dreadnaught. I saved in Altair.

< Previous | Index | Next >

Profile

freshfeeling: (Default)
freshfeeling

July 2025

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 15th, 2025 07:34 am
Powered by Dreamwidth Studios