Formula Hacking

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search

After determining where to load stats depending on the unit's ID in battle, the game loads the information with this list.

Stats list

  • 0x0000 Character Identity
    • 0x80 Generic Male
    • 0x81 Generic Female
    • 0x82 Monster
    • 0xXX Special Character With Base Job XX
  • 0x0001 0xFF Unit doesn't exist
  • 0x0002 Unit index on Formation screen(?)
  • 0x0003 Current Job
    • 0x0004 Palette
      • 0x0 Default
      • 0x1 Hokuten
      • 0x2 Nanten
      • 0x3 Death Corps
      • 0x4 Glabados Church
      • 0x5 shadows
    • 0x0005=
      • 0x80 Team
      • 0x40 Team
      • 0x20 Always Present
      • 0x10 Randomly Present
      • 0x08 Control
      • 0x04 Immortal
      • 0x02
      • 0x01 (if both 01 and 02, then immune to knockback)
    • 0x0006=
      • 0x80 Male
      • 0x40 Female
      • 0x20 Monster
      • 0x10 Join After Event
      • 0x08 Load Formation
      • 0x04 ??? Stats
      • 0x02
      • 0x01 Save Formation
    • 0x0007 Death Counter (3 for living units, unit becomes crystal/chest at zero)
    • 0x0009=
      • 0xF0 =
      • 0xE0 =
      • 0xD0 =
      • 0xC0 = Serpentarius (neutral to all signs)
      • 0xB0 = Pisces
      • 0xA0 = Aquarius
      • 0x90 = Capricorn
      • 0x80 = Sagittarius
      • 0x70 = Scorpio
      • 0x60 = Libra
      • 0x50 = Virgo
      • 0x40 = Leo
      • 0x30 = Cancer
      • 0x20 = Gemini
      • 0x10 = Taurus
      • 0x00 = Aries
  • 0x000A Innate Ability #1
  • 0x000C Innate Ability #2
  • 0x000E Innate Ability #3
  • 0x0010 Innate Ability #4
  • 0x0012 Primary Skillset
  • 0x0013 Secondary Skillset
  • 0x0014 Reaction Ability
  • 0x0016 Support Ability
  • 0x0018 Movement Abilty
  • 0x001A Head
  • 0x001B Body
  • 0x001C Accessory
  • 0x001D Right Hand Weapon
  • 0x001E Right Hand Shield
  • 0x001F Left Hand Weapon
  • 0x0020 Left Hand Shield
  • 0x0021 Experience
  • 0x0022 Level
  • 0x0023 Original Brave
  • 0x0024 Brave
  • 0x0025 Original Faith
  • 0x0026 Faith
  • 0x0027 CT
  • 0x0028 HP
  • 0x002A Max HP
  • 0x002C MP
  • 0x002E Max MP
  • 0x0030 Original PA
  • 0x0031 Original MA
  • 0x0032 Original SP
  • 0x0033 PA bonus from items & ?? (?)
  • 0x0034 MA bonus from items & ?? (?)
  • 0x0035 SP bonus from items & ?? (?)
  • 0x0036 PA
  • 0x0037 MA
  • 0x0038 SP
  • 0x003A Move
  • 0x003B Jump
  • 0x003C Displayed Right-Hand WP
  • 0x003D Displayed Left-Hand WP
  • 0x003E Displayed Right-Hand W-EV
  • 0x003F Displayed Left-Hand W-EV
  • 0x0040 A-EV (physical)
  • 0x0042 S-EV (physical)
  • 0x0043 C-EV
  • 0x0044 A-EV (magical)
  • 0x0045 S-EV (magical)
  • 0x0047 X Coordinate
  • 0x0048 Y Coordinate
    • 0x0049
      • 0x80 Higher Elevation
      • 0x40
      • 0x20
      • 0x10
      • 0x08
      • 0x04
      • 0x03 Facing Direction
  • Equip Bytes (?)
    • 0x004A
      • 0x80 (nothing)
      • 0x40 Dagger
      • 0x20 Ninja Sword
      • 0x10 Sword
      • 0x08 Knight Sword
      • 0x04 Katana
      • 0x02 Axe
      • 0x01 Rod
    • 0x004B
      • 0x80 Staff
      • 0x40 Flail
      • 0x20 Gun
      • 0x10 Crossbow
      • 0x08 Longbow
      • 0x04 Harp
      • 0x02 Book
      • 0x01 Spear
    • 0x004C
      • 0x80 Stick
      • 0x40 Bag
      • 0x20 Carpet
      • 0x10 Shield
      • 0x08 Helmet
      • 0x04 Hat
      • 0x02 Ribbon
      • 0x01 Armor
    • 0x004D
      • 0x80 Clothes
      • 0x40 Robe
      • 0x20 Shoes
      • 0x10 Armguard
      • 0x08 Ring
      • 0x04 Armlet
      • 0x02 Cloak
      • 0x01 Perfume
  • Auto-Status(as the normal statuses below)
    • 0x004E
    • 0x004F
    • 0x0050
    • 0x0051
    • 0x0052
  • Status Immunity (as the normal statuses below)
    • 0x0053
    • 0x0054
    • 0x0055
    • 0x0056
    • 0x0057
  • Statuses
    • 0x0058
      • 0x80
      • 0x40 Crystal
      • 0x20 Dead
      • 0x10 Undead
      • 0x08 Charging
      • 0x04 Jump
      • 0x02 Defending
      • 0x01 Performing
    • 0x0059
      • 0x80 Petrify
      • 0x40 Invite
      • 0x20 Darkness
      • 0x10 Confusion
      • 0x08 Silence
      • 0x04 Blood Suck
      • 0x02 Cursed
      • 0x01 Treasure
    • 0x005A
      • 0x80 Oil
      • 0x40 Float
      • 0x20 Reraise
      • 0x10 Transparent
      • 0x08 Berserk
      • 0x04 Chicken
      • 0x02 Frog
      • 0x01 Critical
    • 0x005B
      • 0x80 Poison
      • 0x40 Regen
      • 0x20 Protect
      • 0x10 Shell
      • 0x08 Haste
      • 0x04 Slow
      • 0x02 Stop
      • 0x01 Wall
    • 0x005C
      • 0x80 Faith
      • 0x40 Innocent
      • 0x20 Charm
      • 0x10 Sleep
      • 0x08 Don't Move
      • 0x04 Don't Act
      • 0x02 Reflect
      • 0x01 Death Sentence
    • 0x005D Poison CT
    • 0x005E Regen CT
    • 0x005F Protect CT
    • 0x0060 Shell CT
    • 0x0061 Haste CT
    • 0x0062 Slow CT
    • 0x0063 Stop CT
    • 0x0064 Wall CT
    • 0x0065 Faith CT
    • 0x0066 Innocent CT
    • 0x0067 Charm CT
    • 0x0068 Sleep CT
    • 0x0069 Don't Move CT
    • 0x006A Don't Act CT
    • 0x006B Reflect CT
    • 0x006C Death Sentence CT
  • 0x006D Elemental Absorb
  • 0x006E Elemental Cancel
  • 0x006F Elemental Half
  • 0x0070 Elemental Weak
  • 0x0071 Elemental Strengthen
  • 0x0072 Raw HP
  • 0x0075 Raw MP
  • 0x0078 Raw SP
  • 0x007B Raw PA
  • 0x007E Raw MA
  • 0x0081 HPC
  • 0x0082 HPM
  • 0x0083 MPC
  • 0x0084 MPM
  • 0x0085 SPC
  • 0x0086 SPM
  • 0x0087 PAC
  • 0x0088 PAM
  • 0x0089 MAC
  • 0x008A MAM
  • Reaction abilities
    • 0x008B:
      • 0x80 = A Save
      • 0x40 = MA Save
      • 0x20 = Speed Save
      • 0x10 = Sunken State
      • 0x08 = Caution
      • 0x04 = Dragon Spirit
      • 0x02 = Regenerator
      • 0x01 = Brave Up
    • 0x008C:
      • 0x80 = Face Up
      • 0x40 = HP Restore
      • 0x20 = MP Restore
      • 0x10 = Critical Quick
      • 0x08 = Meatbone Slash
      • 0x04 = Counter Magic
      • 0x02 = Counter Tackle
      • 0x01 = Counter Flood
    • 0x008D:
      • 0x80 = Absorb Used MP
      • 0x40 = Gilgame Heart
      • 0x20 = Reflect
      • 0x10 = Auto Potion
      • 0x08 = Counter
      • 0x04 =
      • 0x02 = Distribute
      • 0x01 = MP Switch
    • 0x008E:
      • 0x80 = Damage Split
      • 0x40 = Weapon Guard
      • 0x20 = Finger Guard
      • 0x10 = Abandon
      • 0x08 = Catch
      • 0x04 = Blade Grasp
      • 0x02 = Arrow Guard
      • 0x01 = Hamedo
  • Support abilities
    • 0x008F:
      • 0x80 = Equip Armor
      • 0x40 = Equip Shield
      • 0x20 = Equip Sword
      • 0x10 = Equip Katana
      • 0x08 = Equip Crossbow
      • 0x04 = Equip Spear
      • 0x02 = Equip Axe
      • 0x01 = Equip Gun
    • 0x0090:
      • 0x80 = Half of MP
      • 0x40 = Gained JP-UP
      • 0x20 = Gained EXP-UP
      • 0x10 = Attack Up
      • 0x08 = Defense Up
      • 0x04 = Magic Attack Up
      • 0x02 = Magic Defense Up
      • 0x01 = Concentrate
    • 0x0091:
      • 0x80 = Train
      • 0x40 = Secret Hunt
      • 0x20 = Martial Arts
      • 0x10 = Monster Talk
      • 0x08 = Throw Item
      • 0x04 = Maintenance
      • 0x02 = Two Hands
      • 0x01 = Two Swords
    • 0x0092:
      • 0x80 = Monster Skill
      • 0x40 = Defend
      • 0x20 = Equip Change
      • 0x10 =
      • 0x08 = Short Charge
      • 0x04 = Non-charge
      • 0x02 =
      • 0x01 =
  • Movement abilities
    • 0x0093:
      • 0x80 = Move +1
      • 0x40 = Move +2
      • 0x20 = Move +3
      • 0x10 = Jump +1
      • 0x08 = Jump +2
      • 0x04 = Jump +3
      • 0x02 = Ignore Height
      • 0x01 = Move-HP Up
    • 0x0094:
      • 0x80 = Move-MP Up
      • 0x40 = Move-Get Exp
      • 0x20 = Move-Get Jp
      • 0x10 = Cannot enter water
      • 0x08 = Teleport
      • 0x04 = Teleport 2
      • 0x02 = Any Weather
      • 0x01 = Any Ground
    • 0x0095:
      • 0x80 = Move in Water (yes, this should be named Walk on Water)
      • 0x40 = Walk on Water (yes, this should be named Move in Water)
      • 0x20 = Move on Lava
      • 0x10 = Move Underwater
      • 0x08 = Float
      • 0x04 = Fly
      • 0x02 = Silent Walk
      • 0x01 = Move-Find Item
  • 0x0096 Unlocked Jobs 1-8
  • 0x0097 Unlocked Jobs 9-16
  • 0x0098 Unlocked Jobs 17-20
  • 0x0099 Base Action Abilities 1-8
  • 0x009A Base Action Abilities 7-16
  • 0x009B Base R/S/M 1-6
  • 0x009C Chemist Action Abilities 1-8
  • 0x009D Chemist Action Abilities 7-16
  • 0x009E Chemist R/S/M 1-6
  • 0x009F Knight Action Abilities 1-8
  • 0x00A0 Knight Action Abilities 7-16
  • 0x00A1 Knight R/S/M 1-6
  • 0x00A2 Archer Action Abilities 1-8
  • 0x00A3 Archer Action Abilities 7-16
  • 0x00A4 Archer R/S/M 1-6
  • 0x00A5 Monk Action Abilities 1-8
  • 0x00A6 Monk Action Abilities 7-16
  • 0x00A7 Monk R/S/M 1-6
  • 0x00A8 Priest Action Abilities 1-8
  • 0x00A9 Priest Action Abilities 7-16
  • 0x00AA Priest R/S/M 1-6
  • 0x00AB Wizard Action Abilities 1-8
  • 0x00AC Wizard Action Abilities 7-16
  • 0x00AD Wizard R/S/M 1-6
  • 0x00AE Time Mage Action Abilities 1-8
  • 0x00AF Time Mage Action Abilities 7-16
  • 0x00B0 Time Mage R/S/M 1-6
  • 0x00B1 Summoner Action Abilities 1-8
  • 0x00B2 Summoner Action Abilities 7-16
  • 0x00B3 Summoner R/S/M 1-6
  • 0x00B4 Thief Action Abilities 1-8
  • 0x00B5 Thief Action Abilities 7-16
  • 0x00B6 Thief R/S/M 1-6
  • 0x00B7 Mediator Action Abilities 1-8
  • 0x00B8 Mediator Action Abilities 7-16
  • 0x00B9 Mediator R/S/M 1-6
  • 0x00BA Oracle Action Abilities 1-8
  • 0x00BB Oracle Action Abilities 7-16
  • 0x00BC Oracle R/S/M 1-6
  • 0x00BD Geomancer Action Abilities 1-8
  • 0x00BE Geomancer Action Abilities 7-16
  • 0x00BF Geomancer R/S/M 1-6
  • 0x00C0 Lancer Action Abilities 1-8
  • 0x00C1 Lancer Action Abilities 7-16
  • 0x00C2 Lancer R/S/M 1-6
  • 0x00C3 Samurai Action Abilities 1-8
  • 0x00C4 Samurai Action Abilities 7-16
  • 0x00C5 Samurai R/S/M 1-6
  • 0x00C6 Ninja Action Abilities 1-8
  • 0x00C7 Ninja Action Abilities 7-16
  • 0x00C8 Ninja R/S/M 1-6
  • 0x00C9 Calculator Action Abilities 1-8
  • 0x00CA Calculator Action Abilities 7-16
  • 0x00CB Calculator R/S/M 1-6
  • 0x00CC Bard Action Abilities 1-8
  • 0x00CD Bard Action Abilities 7-16
  • 0x00CE Bard R/S/M 1-6
  • 0x00CF Dancer Action Abilities 1-8
  • 0x00D0 Dancer Action Abilities 7-16
  • 0x00D1 Dancer R/S/M 1-6
  • 0x00D2 Base/Chemist Job Level
  • 0x00D3 Knight/Archer Job Level
  • 0x00D4 Monk/Priest Job Level
  • 0x00D5 Wizard/Time Mage Job Level
  • 0x00D6 Summoner/Thief Job Level
  • 0x00D7 Mediator/Oracle Job Level
  • 0x00D8 Geomancer/Lancer Job Level
  • 0x00D9 Samurai/Ninja Job Level
  • 0x00DA Calculator/Bard Job Level
  • 0x00DB Dancer/Mime Job Level
  • 0x00DC Base Job JP
  • 0x00DE Chemist Job JP
  • 0x00E0 Knight Job JP
  • 0x00E2 Archer Job JP
  • 0x00E4 Monk Job JP
  • 0x00E6 Priest Job JP
  • 0x00E8 Wizard Job JP
  • 0x00EA Time Mage Job JP
  • 0x00EC Summoner Job JP
  • 0x00EE Thief Job JP
  • 0x00F0 Mediator Job JP
  • 0x00F2 Oracle Job JP
  • 0x00F4 Geomancer Job JP
  • 0x00F6 Lancer Job JP
  • 0x00F8 Samurai Job JP
  • 0x00FA Ninja Job JP
  • 0x00FC Calculator Job JP
  • 0x00FE Bard Job JP
  • 0x0100 Dancer Job JP
  • 0x0102 Mime Job JP
  • 0x0104 Total Base Job JP
  • 0x0106 Total Chemist Job JP
  • 0x0108 Total Knight Job JP
  • 0x010A Total Archer Job JP
  • 0x010C Total Monk Job JP
  • 0x010E Total Priest Job JP
  • 0x0110 Total Wizard Job JP
  • 0x0112 Total Time Mage Job JP
  • 0x0114 Total Summoner Job JP
  • 0x0116 Total Thief Job JP
  • 0x0118 Total Mediator Job JP
  • 0x011A Total Oracle Job JP
  • 0x011C Total Geomancer Job JP
  • 0x011E Total Lancer Job JP
  • 0x0120 Total Samurai Job JP
  • 0x0122 Total Ninja Job JP
  • 0x0124 Total Calculator Job JP
  • 0x0126 Total Bard Job JP
  • 0x0128 Total Dancer Job JP
  • 0x012A Total Mime Job JP
  • 0x012C-0x013B Unit Name
  • 0x013C-0x0149 Job Name
  • 0x0170 Currently Charging/Performing Action
  • 0x017A
    • 0x10 = Stepping Stone
    • 0x01 = Walkable
  • 0x0182 0x80 = Unit ID of ridden Unit
  • 0x0187 0x01 = Movement Taken
  • 0x0188 0x01 = Action Taken
  • 0x018C Temporary Battle Offsets

The game writes and reads to these addresses while inflicting status, etc.

  • 0x18C (Hit/Miss--01 is hit/00 is miss)
  • 0x18D (Critical Hit--01 is crit/00 is regular)
  • 0x18E (Miss Type--00 is hit/01 is guarded/02 is guarded [some other kind]/05 is nullified/06 is miss/07 is Catch)
  • 0x18F (Item Lost--Potions/Break/Steal/Draw Out)
  • 0x190 (HP Damage Halfword)
  • 0x192 (HP Healing Halfword)
  • 0x194 (MP Damage Halfword)
  • 0x196 (MP Healing Halfword)
  • 0x198 (Gil Stolen/Lost Signed Halfword)
  • 0x19A (Reaction ID Halfword)
  • 0x19C (Special Effect Halfword--for steal/murbol/Level UP/Level DOWN/Break/Elemental Null/Absorb/Weakness/Switch Team/Golem)
  • 0x19E (SP Change Byte)
  • 0x19F (CT Change Byte)
  • 0x1A0 (PA Change Byte)
  • 0x1A1 (MA Change Byte)
  • 0x1A2 (Br Change Byte)
  • 0x1A3 (Fa Change Byte)
  • 0x1A4 (Status Change?)
  • 0x1A5 (Equipment Destroyed Slot--FE means triggers weapon attack by default)
  • 0x1A6 (???)
  • 0x1A7-B (Attack Status Infliction)
  • 0x1AC-1B0 (Attack Status Removal)
  • 0x1B1 (Attack Type--HP/MP Damage/Healing or Status/Stats and Pseudo-Status)
  • 0x1B2 (Last Received Attack [for Counter Magic] or weapon [for Catch] Halfword)
  • 0x1B4 (EXP Change from Steal EXP)
  • 0x1B5 (???)
  • 0x1B6 (Attack Accuracy)
  • 0x1B7 (???)
  • 0x1B8 (???)
  • 0x1B9 (???)
  • 0x1BA (Copy of 0x0006--used in invite)
  • 0x1BB (Inflicted Statii--factors in Random/Separate/All or Nothing/Immunities/Accuracy)
  • 0x1BF Last byte of unit's data
  • 0x1C0 First byte of next unit's data