Final Fantasy Tactics A2: Grimoire of the Rift
Please note that everything comes from the US version of the game.
ROM Addresses
All address ranges are inclusive.
Special Units: 0x053D5BEC - 0x053D6863 (0x1C bytes long)
Job Data: 0x053D6864 - 0x053D963B (0x48 bytes long)
Ability Sets: 0x053D963C - 0x053D9ABB (0x0C bytes long)
Ability Table: 0x053D9ABC - 0x053DBC93 (0x0C bytes long)
Ability Data 0x053DBC94 - 0x053E638B (0x34 bytes long)
Ability Animations: 0x053E638C - 0x053EB09B (0x18 bytes long)
Equipment Data: 0x053FB748 - 0x053FF7A7 (0x28 bytes long)
Job Data
Offset | Length | Type | Name | Description |
---|---|---|---|---|
0x00 | 2 | uint16 | Portrait |
The unit's portrait.
|
0x02 | 2 | uint16 | Enemy Portrait |
The unit's portrait if on the opposing team.
|
0x04 | 2 | uint16 | Sprite |
Map sprite of the character.
|
0x06 | 2 | uint16 | Unknown |
Seems to have no effect on sprites. |
0x08 | 2 | uint16 | Enemy Sprite |
Map sprite of enemy characters. Does not change the sprite on the top screen.
|
0x0A | 2 | uint16 | Unknown |
Seems to have no effect on sprites. |
0x0C | 1 | uint8 | Palette |
Value:
|
0x0D | 1 | uint8 | Enemy Palette |
Value:
|
0x0E | 1 | uint8 | Race |
Value:
|
0x0F | 1 | uint8 | Move Type |
Value:
|
0x10 | 1 | uint8 | Stand Type |
Value:
|
0x11 | 1 | uint8 | Move |
Unknown maximum. |
0x12 | 1 | uint8 | Jump |
Unknown maximum. |
0x13 | 14 | uint8 | Stats |
Offsets:
See notes on stats. |
0x21 | 8 | uint8 | Affinities |
Offsets:
Values:
|
0x29 | 1 | uint8 | Evasion |
Evasion = 100% - [Value] |
0x2A | 1 | uint8 | Unknown |
Divisible by 5, varies between 10 and 30. |
0x2B | 1 | uint8 | Unknown | |
0x2C | 1 | uint8 | Unknown | |
0x2D | 1 | uint8 | Resilience |
Resilience = 100% - [Value] |
0x2E | 2 | uint16 | Ability Set |
The job's corresponding ability set (eg. Arts of War). |
0x30 | 1 | uint8 | Unarmed Bonus |
This is not divided by 4 and added as is. |
0x31 | 4 | pointer? | Unknown |
Seems to match with race. |
0x35 | 13 | ? | Unknown |
Lots of stuff. |
0x42 | 1 | uint8 | Unknown |
Seems to have something to do with playability/job switchable? |
0x43 | 5 | uint8 | Equipment |
See notes on equipment. |
Notes on Stats
Base stats are given on recruitment and never change. A character at level 1 has base stats, growths apply when it levels. Stat growths are applied with every level up in that job, with variance (random chance of less or more growths). Stats cap at 999. Stats displayed in-game are quartered and rounded down.
Base speed is 50 + [value]. This means that 50 is the minimum base speed possible. The maximum speed is 149. Speed growth is stored as a percentage representing the chance of gaining 1 speed per level in that job.
Notes on Equipment The five bytes represents a big-endian binary array. For example...
84 00 00 EC 0E = 00100001 00000000 00000000 00110111 01110000
Each bit represents whether the corresponded equipment type can be equipped by that job.
Index | Equip Type |
---|---|
0x00 | None |
0x01 | Knives |
0x02 | Swords |
0x03 | Blades |
0x04 | Sabers |
0x05 | Knightswords |
0x06 | Rapiers |
0x07 | Greatswords |
0x08 | Broadswords |
0x09 | Katana |
0x0A | Spears |
0x0B | Rods |
0x0C | Staves |
0x0D | Poles |
0x0E | Knuckles |
0x0F | Bows |
0x10 | Greatbows |
0x11 | Guns |
0x12 | Instruments |
0x13 | Cannons |
0x14 | ? |
0x15 | Axes |
0x16 | Hammers |
0x17 | Maces |
0x18 | Cards |
0x19 | Books |
0x1A | Shields |
0x1B | Helmets |
0x1C | Ribbons |
0x1D | Hats |
0x1E | Heavy Armor |
0x1F | Light Armor |
0x20 | Cloth Armor |
0x21 | Shoes |
0x22 | Armguards |
0x23 | Accessories |