Final Fantasy Tactics A2: Grimoire of the Rift

From Final Fantasy Hacktics Wiki
Jump to: navigation, search

Please note that everything comes from the US version of the game.

ROM Addresses

All address ranges are inclusive.

Special Unit Graphics:

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 Details
0x00 2 uint16 Portrait

The unit's portrait.

  • Overridden by unique characters.
  • Refer to the portraits list for values.
0x02 2 uint16 Enemy Portrait

The unit's portrait if on the opposing team.

  • Overridden by unique characters.
  • Refer to the portraits list for values.
0x04 2 uint16 Sprite

Map sprite of the character.

  • Does not change the sprite on the top screen.
  • Overridden by unique characters.
  • Refer to the sprite list for values.
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.
  • Overridden by unique characters.
  • Refer to the sprite list for values. Identical to friendly sprite value.
0x0A 2 uint16 Unknown

Seems to have no effect on sprites.

0x0C 1 uint8 Palette
  • Overridden by unique characters.

Value:

  • 0x00 = Friendly/Monster
  • 0x01 = Enemy/Monster
  • 0x02 = Monster
  • 0x03 = Monster
  • 0x04 = Monster
  • 0x05 = Monster
0x0D 1 uint8 Enemy Palette
  • Overridden by unique characters.

Value:

  • 0x00 = Friendly/Monster
  • 0x01 = Enemy/Monster
  • 0x02 = Monster
  • 0x03 = Monster
  • 0x04 = Monster
  • 0x05 = Monster
0x0E 1 uint8 Race

Value:

  • 0x00 = None
  • 0x01 = Hume
  • 0x02 = Bangaa
  • 0x03 = Nu Mou
  • 0x04 = Viera
  • 0x05 = Moogle
  • 0x06 = Seeq
  • 0x07 = Gria
  • 0x08 - 0x28 = Monsters
0x0F 1 uint8 Move Type

Value:

  • 0x00 = Null (Doesn't mean immobile)
  • 0x01 = Walk
  • 0x02 = Fly
  • 0x03 = Teleport
0x10 1 uint8 Stand Type

Value:

  • 0x00 = Null
  • 0x01 = Short (Can't enter water)
  • 0x02 = Normal (Enters but sinks in water)
  • 0x03 = Crawl (Malboros and alike)
  • 0x04 = Float (Fairies and alike)
0x11 1 uint8 Move

Unknown maximum.

0x12 1 uint8 Jump

Unknown maximum.

0x13 14 uint8 Stats

Offsets:

  • 0x00: HP Base
  • 0x01: HP Growth
  • 0x02: MP Base
  • 0x03: MP Growth
  • 0x04: Speed Base
  • 0x05: Speed Growth
  • 0x06: Attack Base
  • 0x07: Attack Growth
  • 0x08: Defense Base
  • 0x09: Defense Growth
  • 0x0A: Magick Base
  • 0x0B: Magick Growth
  • 0x0C: Resistance Base
  • 0x0D: Resistance Growth

See notes on stats.

0x21 8 uint8 Affinities

Offsets:

  • 0x00: Fire
  • 0x01: Air
  • 0x02: Earth
  • 0x03: Water
  • 0x04: Ice
  • 0x05: Thunder
  • 0x06: Holy
  • 0x07: Dark

Value:

  • 0x00 = Weak
  • 0x01 = Neutral
  • 0x02 = Resist
  • 0x03 = Nullify
  • 0x04 = Absorb
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 1 uint8 Unknown

Seems to match with race.

0x32 1 uint8 Unknown

Value:

  • 0x00 = Everyone not mentioned below
  • 0x01 = Goblins, Lamia, Werewolves, Antlions, Shellings,...,Drakes
  • 0x02 = Yowie, Rafflesia, Demon Wall, Neukhia and bros, Crushatrice, Upsilon
0x33 1 uint8 Gender

Value:

  • 0x00 = Ambigious/Androgynous
  • 0x01 = Female
  • 0x02 = Male
0x34 11  ? Unknown

Lots of stuff.

0x3A 1 uint8 Top Screen Sprite

The sprite which appears in the top screen indicating turn order.

0x40 1 uint8 Enemy Top Screen Sprite

The sprite for enemies in the top screen.

0x41 1 uint8 Unknown
0x42 1 bin Properties

A big endian binary array of properties. Offset:

  • 0x00:
  • 0x01:
  • 0x02: Can change to another job
  • 0x03: Undead
  • 0x04: 0 for everything except the thing after Neukhia Wisp
  • 0x05: Always 1?
  • 0x06: Has Items ability (Alchemist)
  • 0x07: Tonberry, Magick Pot, bosses
0x43 5 bin 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

Ability Sets

Offset Length Type Name Details
0x00 2 uint16 First Ability

The first ability in the set (eg. First Aid in Arts of War). Every ability between and including this and the last ability is included in this set.

  • See ability set list.
0x02 2 uint16 Last Ability

The last ability in the set (eg. Gauge in Arts of War).

  • See ability set list.
0x04 8  ? Unknown

Ability Table

Offset Length Type Name Details
0x00 2 uint16 Ability

Index of the ability.

  • See ability list.
0x02 7  ? Unknown
0x09 1 uint8 Maximum AP

AP required to Master the skill.

Ability Data

Offset Length Type Name Details
0x00 2 uint16 Unknown
0x02 1 uint8 Element

Value:

  • 0x00 = Neutral
  • 0x01 = Fire
  • 0x02 = Air
  • 0x03 = Earth
  • 0x04 = Water
  • 0x05 = Ice
  • 0x06 = Thunder
  • 0x07 = Holy
  • 0x08 = Dark
0x03 1 uint8 MP Cost
0x04 2 uint8? Unknown
0x06 2 uint16 Damage Bonus

Fixed damage value added on top of Attack/Magick.

0x08 2 uint16 Weapon Required

Not too sure about this one.

Values (Big Endian):

  • 0x0000 = Anything?
  • 0x8000 = Anything?
  • 0x8200 = Bladed Weapons Only
  • 0x1300 = Cannons Only
  • 0x1A00 = Shield Only
  • 0x1100 = ? (Reckless Abandon only)
0x0A 1 uint8 Other Requirements

Again, not too sure.

Value:

  • 0x00 = None
  • 0x01 = Standing in water
  • 0x02 = Standing on a 'natural' tile
  • 0x03 = Standing on an 'artificial' tile
  • 0x04 = Standing on a grassy tile
  • 0x05 = Standing on a barren tile
  • 0x06 = Clear weather.
  • 0x07 = Rainy weather.
  • 0x08 = Snowy weather.
  • 0x09 = Misty weather.
  • 0x0A = On a Chocobo (Chocobo Knights)
  • 0x0B = Prime'd (Flintlocks)
  • 0x16 - 0x2D = One for every Beastmaster skill
0x0B 1 uint8 Target Type

Works in tandem with range and radius. Not too sure what certain combinations are capable of doing.

Value:

  • 0x00 = Normal
  • 0x01 = Linear both ways (Chocobo Rush)
  • 0x02 = Linear (Earth Render)
  • 0x04 = Surrounding 4 tiles
  • 0x05 = All units
  • 0x06 = Fan shape (Dragoon's breath attacks)
  • 0x07 = Weapon Based (range and AoE)
  • 0x08 = Self

Other values are buggy/for monsters.

0x0C 1 uint8 Range

Having zero range is usually combined with certain target types.

0x0D 1 uint8 Radius

Value:

  • 0x00 = Used with certain target types
  • 0x01 = Single tile
  • 0x05 = Black Magick sized diamond
  • 0x0D = Summoning Magick sized diamond

Other values seem to have no effect.

0x0E 1 uint8 Unknown

Something to do with the 'tier' of the ability?

0x0F 1 uint8 Extra Menu/Command?

Value:

  • 0x00 = Normal?
  • 0x01 = Resurrection Abilities
  • 0x02 = Magick Frenzy
  • 0x03 = Natural Selection
  • 0x04 = Unused
  • 0x05 = ?
  • 0x06 = Weapon Toss/Throw
  • 0x07 = Gil Toss
  • 0x08 = Mirror Items
  • 0x09 = Doublecast
  • 0x0A = Beastmaster Skills
0x10 16 uint16/8 Effects

There are four effect slots, each one 4 bytes long. Each effect consists of a 2 byte indicator (ie. Poison) and two 1 byte modifiers (ie. half accuracy). Still need to decode what values mean what. Empty slots are filled with 0s.

0x20 2 bin Properties

Big endian binary array containing booleans for random properties. Maybe some law stuff mixed in. Offset:

  • 0x00: Shining Flare, Nature's Embrace, Shadow Stalk
  • 0x01: Can target self
  • 0x02: Inverted effects on Undead
  • 0x03: 00 = Physical, 01 = Magickal (applies to damage calculation)
  • 0x04: Learnable by Blue Magick
  • 0x05: Counterable
  • 0x06: Bypasses R Abilities
  • 0x07: Reflectable + Magick Counterable?
  • 0x08:
  • 0x09:
  • 0x0A:
  • 0x0B: Deals damage?
  • 0x0C:
  • 0x0D: Can be caught with Sticky Fingers
  • 0x0E:
  • 0x0F:
0x22 1 uint8 Unknown
0x23 1 uint8 Unknown
0x24 16 uint8 Current AP Index

There are eight slots. Each slot has 1 byte corresponding with race and 1 byte corresponding with the index at which the current AP amount is stored in the RAM. For example, First Aid has 01 98 02 6E, meaning for the Hume race it's AP is stored at '98' and for the Bangaa race it's AP is stored at '6E'. Anyone who has tried race swapping knows that AP data is shared between races. Empty slots are filled with 0s.