Final Fantasy VI/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
 
(15 intermediate revisions by 11 users not shown)
Line 1: Line 1:
[[Category:Final Fantasy VI|RAM map]]
{{rammap|game=Final Fantasy VI}}
{{rammap|game=[[Final Fantasy VI]]}}
*11E0-11E1: encountered [[Final Fantasy VI:Digits#Monster formation digits|monster formation]]
*11E2: battle background


==Actors main characteristics==
: The list corresponds to RAM variables used by the game engine. They are generally accessed by LDA and STA instructions.
'''First actor''' (default: Terra)
*1600: [[Final Fantasy VI:Digits#Actor digits|actor]]
*1601: character sprite
*1602-1607: name, 1st letter to 6th letter
*1608: level
*1609-160A: current HP
*160B-160C: max HP
*160D-160E: current MP
*160F-1610: max MP
*1611-1613: experience
*1614-1615: non-battle [[Final Fantasy VI:Digits#Status ailment digits|status ailment]] (bytes 1 and 4)
*1616-1619: [[Final Fantasy VI:Digits#Battle command digits|battle command]], slot 1 to slot 4
*161A: vigor
*161B: speed
*161C: stamina
*161D: magic power
*161E: equipped esper
*161F: [[Final Fantasy VI:Digits#Item digits|item]] equipped on right hand
*1620: [[Final Fantasy VI:Digits#Item digits|item]] equipped on left hand
*1621: [[Final Fantasy VI:Digits#Item digits|item]] equipped on head
*1622: [[Final Fantasy VI:Digits#Item digits|item]] equipped on body
*1623: [[Final Fantasy VI:Digits#Item digits|item]] equipped on relic slot 1
*1624: [[Final Fantasy VI:Digits#Item digits|item]] equipped on relic slot 2


'''The codes go in sequence for all 14 prime actors slots and then continue on for the 2 guest character slots.<br>
==Actors==
'''Add 0x25 from a [[Final Fantasy VI:Digits#Actor digits|actor]] to the following.
* $1600-$184F: Actors block (#$10 blocks, #$25 bytes/block)
** $1600,X: Actor identifier. See [[Final Fantasy VI:Digits#Actor digits|Actor]].
** $1601,X: Actor graphics.
** $1602,X-$1607,X: Name.
** $1608,X: Level.
** $1609,X-$160A,X: Current HP.
** $160B,X-$160C,X: Max HP.
** $160D,X-$160E,X: Current MP.
** $160F,X-$1610,X: Max MP.
** $1611,X-$1613,X: Experience.
** $1614,X: Non-battle status 1. See [[Final Fantasy VI:Digits#Status ailment digits|Status ailment]].
** $1615,X: Non-battle status 4. See [[Final Fantasy VI:Digits#Status ailment digits|Status ailment]].
** $1616,X-$1619,X: Battle commands. See [[Final Fantasy VI:Digits#Battle command digits|battle command]].
** $161A,X: Vigor.
** $161B,X: Speed.
** $161C,X: Stamina.
** $161D,X: Magic power.
** $161E,X: Equipped esper.
** $161F,X: Item equipped on right hand. See [[Final Fantasy VI:Digits#Item digits|Item]].
** $1620,X: Item equipped on left hand. See [[Final Fantasy VI:Digits#Item digits|Item]].
** $1621,X: Item equipped on head. See [[Final Fantasy VI:Digits#Item digits|Item]].
** $1622,X: Item equipped on body. See [[Final Fantasy VI:Digits#Item digits|Item]].
** $1623,X: Item equipped on relic (slot #$00). See [[Final Fantasy VI:Digits#Item digits|Item]].
** $1624,X: Item equipped on relic (slot #$01). See [[Final Fantasy VI:Digits#Item digits|Item]].
** Repeat for all blocks. The block index corresponds to the character.


*1625-184F: actors caracteristics from slot 2 to slot 16
* $1850-$185F: Multi-party block. (#$10 blocks, #$01 bytes/block)
*1850-185F: actors location
** #$07: Party identifier.
{| class = "bordered" cellpadding = "4" border = "1" style = "text-align: center"
** #$18: Party slot (0-3).
! TEAMS || T1 || T2 || T3
** #$20: Row.
|-
** #$40: Availability.
| '''slot 1''' || 0xE1 || 0xE2 || 0xE3
** #$80: Leader of party.
|-
** Repeat for all blocks. The block index corresponds to the character.
| '''slot 2''' || 0xE9 || 0xEA || 0xEB
 
|-
==Attack==
| '''slot 3''' || 0xF1 || 0xF2 || 0xF3
* $11A1: Elemental type
|-
** #$01: Fire
| '''slot 4''' || 0xF9 || 0xFA || 0xFB
** #$02: Ice
|}
** #$04: Bolt
*1860-1862: gils
** #$08: Poison
*1863-1865: play time (hours-minutes-seconds)
** #$10: Wind
*1866-1868: steps count
** #$20: Pearl
** #$40: Earth
** #$80: Water
 
* $11A2: Attack flags
** #$01: Physical or magical damage
** #$02: Miss if target immune to death
** #$04: Only target dead or undead targets
** #$08: Make heal spells damage undead
** #$10: Randomize target
** #$20: Ignore defense
** #$40: Don't split damage in multi-target spells
** #$80: Abort on allies
 
* $11A3: Attack flags
** #$01: Spell is usable outside battle
** #$02: Ignore reflect
** #$04: Can learn as Lore
** #$08: Enable Runic
** #$10: Quick/Warp flag
** #$20: Re-target if target is dead
** #$40: Caster dies after attack
** #$80: Concern MP
 
* $11A4: Attack flags
** #$01: Heal damage
** #$02: Redirection
** #$04: Lift status
** #$08: Toggle status
** #$10: Stamina used in defense
** #$20: Can't dodge attack
** #$40: Use evasion as Lv X Spells
** #$80: Use HP fraction
 
* $11A5: Spell cost
* $11A6: Spell power
 
* $11A7: Attack flags
** #$01: Miss if immune to status
** #$02: Show text is attack hits
 
* $11A8: Hit rate
* $11A9: Special effect
 
* $11AA: Status
** #$01: Dark
** #$02: Zombie
** #$04: Poison
** #$08: Magitek
** #$10: Clear
** #$20: Imp
** #$40: Petrify
** #$80: Death
 
* $11AB: Status
** #$01: Condemned
** #$02: Near fatal
** #$04: Image
** #$08: Mute
** #$10: Berserk
** #$20: Muddle
** #$40: Seizure
** #$80: Sleep
 
* $11AC: Status
** #$01: Dance
** #$02: Regen
** #$04: Slow
** #$08: Haste
** #$10: Stop
** #$20: Shell
** #$40: Safe
** #$80: Reflect
 
* $11AD: Status
** #$01: Rage
** #$02: Freeze
** #$04: Life 3
** #$08: Morph
** #$10: Chant
** #$20: Disappear
** #$40: Dog block
** #$80: Float
 
* $11AE: (Vigor * 2) if physical or (Magic Power) if magical
* $11AF: Level of attacker
* $11B0-$11B1: Damage
 
==Battle==
* $11E0-$11E1: Encountered monster formation. See [[Final Fantasy VI:Digits#Monster formation digits|monster formation]].
* $11E2: Battle background.
* $1DDD-$1E1C: Monster formations available on veldt.


==Items==
==Items==
*1869-1968: [[Final Fantasy VI:Digits#Item digits|item]], slot 1 to slot 256
* $1869-$1968: Item identifier. See [[Final Fantasy VI:Digits#Item digits|Item]].
*1969-1A68: quantity, slot 1 to slot 256
* $1969-$1A68: Item quantity.
Note: item in slot 256 doesn't appear in the inventory
* $1EBA-$1EBD: Rare items. See [[Final Fantasy VI:Digits#Rare item flags|Rare items]].
 
==Magic and skills==
* $1A69-$1A6C: gained Espers.
* $1A6E-$1CF5: gained spells block. (#$0C blocks, #$36 bytes/block)
* $1CF6: Morphy supply.
* $1CF7: gained Sword Tech levels.
* $1D28: gained Blitz levels.
* $1D29-$1D2B: gained Lores.
* $1D2C-$1D4B: gained Rages.
* $1D4C: gained Dances.
 
==Miscellaneous==
* $1860-$1862: Gil.
* $1863-$1865: Play time. (hours/minutes/seconds)
* $1866-$1868: Number of steps.
* $1CF8-$1D27: Sword Tech names. Unused in USA version. (#$08 blocks, #$06 bytes/block)
 
==Party==
* $69-$6C: Characters in actual party.
* $1A6D: Active party.
* $1EDE-1EDF: Gained characters.


==Magic and skills acquired==
==Misc==
*1A69-1A6C: espers
* $628A: Game is in Flashback Mode (#$00 = no, #$01 = yes)
*1A6D: ???
* $62AB: Game is paused (#$00 = no, #$01 = yes)
*1A6E-1AA3: magic, actor 1
*1AA3-1AD9: magic, actor 2
*1ADA-1B0F: magic, actor 3
*1B10-1B45: magic, actor 4
*1B46-1B7B: magic, actor 5
*1B7C-1BB1: magic, actor 6
*1BB2-1BE7: magic, actor 7
*1BE8-1C1D: magic, actor 8
*1C1E-1C53: magic, actor 9
*1C54-1C89: magic, actor 10
*1C8A-1CBF: magic, actor 11
*1CC0-1CF5: magic, actor 12
Note: 1 byte per magic, value within [0x01,0x62] for % learning, value 0xFF = learned.
*1CF6: ???
*1CF7: sword techniques
*1CF8-1D27: '''(to be verified)''' sword techniques names in japanese game, 6 bytes per name
*1D28: blitz
*1D29-1D2A: lores
*1D2C-1D2D: ???
*1D2E-1D4A: rages
*1D4B: ???
*1D4C: dances


==$7E5000==
[[Final Fantasy VI:7E5000 from C2686C|$7E5000 - $7E7C62 (while code/data decompressed from $C2686C - $C28A60 is active)]]


*1EBA-1EBC: rare items
{{Internal Data}}

Latest revision as of 14:31, 24 January 2024

Chip tiny.png The following article is a RAM map for Final Fantasy VI.

The list corresponds to RAM variables used by the game engine. They are generally accessed by LDA and STA instructions.

Actors

  • $1600-$184F: Actors block (#$10 blocks, #$25 bytes/block)
    • $1600,X: Actor identifier. See Actor.
    • $1601,X: Actor graphics.
    • $1602,X-$1607,X: Name.
    • $1608,X: Level.
    • $1609,X-$160A,X: Current HP.
    • $160B,X-$160C,X: Max HP.
    • $160D,X-$160E,X: Current MP.
    • $160F,X-$1610,X: Max MP.
    • $1611,X-$1613,X: Experience.
    • $1614,X: Non-battle status 1. See Status ailment.
    • $1615,X: Non-battle status 4. See Status ailment.
    • $1616,X-$1619,X: Battle commands. See battle command.
    • $161A,X: Vigor.
    • $161B,X: Speed.
    • $161C,X: Stamina.
    • $161D,X: Magic power.
    • $161E,X: Equipped esper.
    • $161F,X: Item equipped on right hand. See Item.
    • $1620,X: Item equipped on left hand. See Item.
    • $1621,X: Item equipped on head. See Item.
    • $1622,X: Item equipped on body. See Item.
    • $1623,X: Item equipped on relic (slot #$00). See Item.
    • $1624,X: Item equipped on relic (slot #$01). See Item.
    • Repeat for all blocks. The block index corresponds to the character.
  • $1850-$185F: Multi-party block. (#$10 blocks, #$01 bytes/block)
    • #$07: Party identifier.
    • #$18: Party slot (0-3).
    • #$20: Row.
    • #$40: Availability.
    • #$80: Leader of party.
    • Repeat for all blocks. The block index corresponds to the character.

Attack

  • $11A1: Elemental type
    • #$01: Fire
    • #$02: Ice
    • #$04: Bolt
    • #$08: Poison
    • #$10: Wind
    • #$20: Pearl
    • #$40: Earth
    • #$80: Water
  • $11A2: Attack flags
    • #$01: Physical or magical damage
    • #$02: Miss if target immune to death
    • #$04: Only target dead or undead targets
    • #$08: Make heal spells damage undead
    • #$10: Randomize target
    • #$20: Ignore defense
    • #$40: Don't split damage in multi-target spells
    • #$80: Abort on allies
  • $11A3: Attack flags
    • #$01: Spell is usable outside battle
    • #$02: Ignore reflect
    • #$04: Can learn as Lore
    • #$08: Enable Runic
    • #$10: Quick/Warp flag
    • #$20: Re-target if target is dead
    • #$40: Caster dies after attack
    • #$80: Concern MP
  • $11A4: Attack flags
    • #$01: Heal damage
    • #$02: Redirection
    • #$04: Lift status
    • #$08: Toggle status
    • #$10: Stamina used in defense
    • #$20: Can't dodge attack
    • #$40: Use evasion as Lv X Spells
    • #$80: Use HP fraction
  • $11A5: Spell cost
  • $11A6: Spell power
  • $11A7: Attack flags
    • #$01: Miss if immune to status
    • #$02: Show text is attack hits
  • $11A8: Hit rate
  • $11A9: Special effect
  • $11AA: Status
    • #$01: Dark
    • #$02: Zombie
    • #$04: Poison
    • #$08: Magitek
    • #$10: Clear
    • #$20: Imp
    • #$40: Petrify
    • #$80: Death
  • $11AB: Status
    • #$01: Condemned
    • #$02: Near fatal
    • #$04: Image
    • #$08: Mute
    • #$10: Berserk
    • #$20: Muddle
    • #$40: Seizure
    • #$80: Sleep
  • $11AC: Status
    • #$01: Dance
    • #$02: Regen
    • #$04: Slow
    • #$08: Haste
    • #$10: Stop
    • #$20: Shell
    • #$40: Safe
    • #$80: Reflect
  • $11AD: Status
    • #$01: Rage
    • #$02: Freeze
    • #$04: Life 3
    • #$08: Morph
    • #$10: Chant
    • #$20: Disappear
    • #$40: Dog block
    • #$80: Float
  • $11AE: (Vigor * 2) if physical or (Magic Power) if magical
  • $11AF: Level of attacker
  • $11B0-$11B1: Damage

Battle

  • $11E0-$11E1: Encountered monster formation. See monster formation.
  • $11E2: Battle background.
  • $1DDD-$1E1C: Monster formations available on veldt.

Items

  • $1869-$1968: Item identifier. See Item.
  • $1969-$1A68: Item quantity.
  • $1EBA-$1EBD: Rare items. See Rare items.

Magic and skills

  • $1A69-$1A6C: gained Espers.
  • $1A6E-$1CF5: gained spells block. (#$0C blocks, #$36 bytes/block)
  • $1CF6: Morphy supply.
  • $1CF7: gained Sword Tech levels.
  • $1D28: gained Blitz levels.
  • $1D29-$1D2B: gained Lores.
  • $1D2C-$1D4B: gained Rages.
  • $1D4C: gained Dances.

Miscellaneous

  • $1860-$1862: Gil.
  • $1863-$1865: Play time. (hours/minutes/seconds)
  • $1866-$1868: Number of steps.
  • $1CF8-$1D27: Sword Tech names. Unused in USA version. (#$08 blocks, #$06 bytes/block)

Party

  • $69-$6C: Characters in actual party.
  • $1A6D: Active party.
  • $1EDE-1EDF: Gained characters.

Misc

  • $628A: Game is in Flashback Mode (#$00 = no, #$01 = yes)
  • $62AB: Game is paused (#$00 = no, #$01 = yes)

$7E5000

$7E5000 - $7E7C62 (while code/data decompressed from $C2686C - $C28A60 is active)