Deprecated: Function get_magic_quotes_gpc() is deprecated in /home2/jludwig/public_html/finalfantasy/hacking/textpattern/lib/constants.php on line 29
Final Fantasy GBA Hacking Notes: Armor
JeffLudwig.com
GOG.com

Armor

The Armor List, by ID

Here is the exhaustive list of armor in FF1-DoS. There are a total of 70 armor types, denoted as 0×01 through 0×46.

0×01 Clothes Leather Armor Chain Mail Iron Armor
0×05 Knight’s Armor Mythril Mail Flame Mail Ice Armor
0×09 Diamond Armor Dragon Mail Copper Armlet Silver Armlet
0×0d Ruby Armlet Diamond Armlet White Robe Black Robe
0×11 Crystal Mail Thief’s Armlet Black Garb Kenpogi
0×15 Power Vest Red Jacket Sage’s Surplice Light Robe
0×19 Gaia Gear Bard’s Tunic Genji Armor Leather Shield
0×1d Iron Shield Mythril Shield Flame Shield Ice Shield
0×21 Diamond Shield Aegis Shield Buckler Protect Cloak
0×25 Genji Shield Crystal Shield Hero’s Shield Zephyr Cape
0×29 Elven Cloak Leather Cap Helm Great Helm
0×2d Mythril Helm Diamond Helm Healing Helm Ribbon
0×31 Genji Helm Crystal Helm Black Cowl Twist Headband
0×35 Tiger Mask Feathered Cap Red Cap Wizard’s Hat
0×39 Sage’s Mitre Leather Gloves Bronze Gloves Steel Gloves
0×3d Mythril Gloves Gauntlets Giant’s Gloves Diamond Gloves
0×41 Protect Ring Crystal Gloves Thief’s Gloves Crystal Ring
0×45 Angel’s Ring Genji Gloves    

Armor Data

Table location: 0×19fa760×1a021b.

Data structure size: 28 bytes

Example: White Robe

Bytes 1-16 02 00 00 10 18 02 00 18 18 00 00 00 00 00 00 00
  ??? Who equips Defense Evade Penalty Evade+ Spell effect (ID) Resists Str Vit Agil Int HP+ (%) MP+ (%)
Bytes 16-28 00 00 00 00 a8 61 00 00 01 00 00 00
  ??? Purchase cost Selling price

Decoding various bytes of information

The (two) Equip bytes

In our example, the White Robe, these bytes are 00 10. The first byte concerns initial character classes, and the second byte governs promoted classes:

04 = 0 0 0 0   0 0 0 0
  —- —- Black Mage White Mage   Red Mage Monk Thief Warrior

So, it’s easy to see that the White Robe cannot be used by any starting characters.

10 = 0 0 0 1   0 0 0 0
  —- —- Black Wizard White Wizard   Red Wizard Master Ninja Knight

This proves that the White Wizard is the only one proficient in the use of the White Robe.

The (two) Resist bytes…

The Resist bytes for the White Robe shows that it has a few interesting defensive properties. Observe, 18 00 breaks down as follows:

Byte 1— 18 = 0 0 0 1   1 0 0 0
  Quake Lightning Ice Fire   Death Time Stone Stun
Byte 2— 00 = 0 0 0 0   0 0 0 0
  —- —- Mind Confuse   Silence Sleep Blind Poison

Therefore, the White Robe protects against Fire and Death attacks.

Other information that may not be obvious

The bytes Evade+, Str, Vit, Agl, Int are all signed 8-bit integers. I assume this follows for HP+% and MP+%. That means if you want a weapon to lower Strength by 3, make its Str byte fd, as that would resolve to -3 rather than 253.

HP+% and MP+% are named as such because their bonus is applied as an additional percentage over the user’s maximum, and not as a straight bonus like attribute bonuses are applied.

The Spell effect byte is 00 if the weapon does not have a special effect when used. If it is not 00, then it calls the spell ID specified. See the Spell List to find the IDs of all the spells in the game.

It is important to note that I have not figured out all the information that there is to know about armor. So there’s an avenue for intrepid hackers to possibly learn something new.

ludmeister

Date published: 2011-12-01

Leave a comment ->