Formula Hacking

From Final Fantasy Hacktics Wiki
Jump to: navigation, 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
    • 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