Final Fantasy II Classic Jobs Part I
Aug. 2nd, 2023 10:30 amFirst 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:
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:
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:
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:
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:

...into this:

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.

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.

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.

This is the part of the game where Minwu normally joins you for the first time.

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!

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 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.

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 >
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:

...into this:

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.

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.

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.

This is the part of the game where Minwu normally joins you for the first time.

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!

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 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.

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 >