Difference between revisions of "Final Fantasy VI:RAM map"

From Data Crystal
Jump to navigation Jump to search
(→‎Magic and skills acquired: some corrections, added veldt formations and morph time)
(Adding link to new page covering $7E5000 - $7E7C62 while code/data decompressed from $C2686C - $C28A60 is active)
 
(12 intermediate revisions by 9 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.
  
==Magic and skills acquired==
+
==Miscellaneous==
*1A69-1A6C: espers
+
* $1860-$1862: Gil.
*1A6D: ???
+
* $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)
  
*1A6E-1AA3: magic, actor 1
+
==Party==
*1AA3-1AD9: magic, actor 2
+
* $69-$6C: Characters in actual party.
*1ADA-1B0F: magic, actor 3
+
* $1A6D: Active party.
*1B10-1B45: magic, actor 4
+
* $1EDE-1EDF: Gained characters.
*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 spell, value within [0x01,0x63] for % learning, value 0xFF = learned.
 
  
*1CF6: '''(to be verified)''' terra's morph time
+
==Misc==
*1CF7: sword techniques
+
* $628A: Game is in Flashback Mode (#$00 = no, #$01 = yes)
*1CF8-1D27: '''(to be verified)''' sword techniques names in japanese game, 6 bytes per name
+
* $62AB: Game is paused (#$00 = no, #$01 = yes)
*1D28: blitz
 
*1D29-1D2B: lores
 
*1D2C-1D4B: rages
 
*1D4C: dances
 
*1DDD-1E1C: [[Final Fantasy VI:Digits#Monster formation digits|monster formations]] available on veldt (bits correspond to formations 0-511 on list)
 
  
*1EBA-1EBC: rare items
+
==$7E5000==
 +
[[Final_Fantasy_VI:7E5000_from_C2686C|$7E5000 - $7E7C62 (while code/data decompressed from $C2686C - $C28A60 is active)]]

Latest revision as of 12:40, 13 February 2016

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)