Arcana/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
(Expanded on several stats and elaborated on equipped weapon vs weapon inventory.)
 
(5 intermediate revisions by 3 users not shown)
Line 3: Line 3:
: The list corresponds to RAM variables used by the game engine. They are generally accessed by LDA and STA instructions.
: The list corresponds to RAM variables used by the game engine. They are generally accessed by LDA and STA instructions.


==Main Loop==
* $1049: Pointer to indirect function calls (JMP [$1049])
* $1E10: Event pointer, used for reading most of the game's code (LDA [$10]) (long ptr)
* $1E14: Event pointer stack, stores return addresses during function calls
==Temporary Arrays==
Typically these are accessed i.e. LDA $09C7,x where the x register is determined at runtime.
* $0643-065B: Enemies in battle (Enemy ID + 18), set to FFFF when killed
* $09A3-09BB: ??
* $09C7-09DF: Miscellaneous return values (i.e. type of treasure contents, item/spell/enemy chosen)
* $09EB-0A03: Current selection (Attacker ID, caster ID, whose turn is it etc)
* $0A0F-0A27: Target (ID being attacked, treasure chest being opened)
* $0B9F,x: Stores function results (0=failure)
* $0CB3,x: Stores function results (0=failure)


==Battle==
==Battle==
* $0624-$0626: Active spirit's HP (Format: BCD)
* $062D: Offset*2 used with $11F3
* $0643-065x: Enemies in battle (Enemy ID + 18), set to FFFF when killed
* $06F9: X position of cursor
* $071D: Y position of cursor
* $09CB: Turn status (02: not turning, 00: turning left, 01: turning right)
* $09D3-DA: Item/Spell/Enemy chosen (Items: 00-??) (Spells: 00-0C) (Enemy target: 14, 16, 18, 1A, 1C) (Party target: 00, 01, 02, 03) (Rooks $D3-D4, Spirit $D5-D6, Guest1 $D7-D8, Guest2 $D9-DA)
* $09ED: Whose turn is it (Allies 0-3, enemies 4+) (May have other uses)
* $0A15: Offset for treasure chest opened
* $0A7F: Compass heading (00: N, 02: NE, 04: E, 06: SE... 0E: NW) (Tracks diagonals unlike $16FB)
* $0A87-$0A8E: Current selected battle command (2 bytes per character)
* $0A87-$0A8E: Current selected battle command (2 bytes per character)
** #$0001: Main menu
** #$0001: Main menu
Line 21: Line 25:
** #$0005: Weapons
** #$0005: Weapons
** #$0008: Attack
** #$0008: Attack
* $0B9F,x: Stores function results (0=failure)
* $1121: Attacker
* $0CB3,x: Stores function results (0=failure)
* $1123: Target
* $1049: Code pointer
* $1127: Spell ID
* $105A: Caches which H-DMA channels to run
* $11C1: Battle state (00=not fighting/can move, 02=battle poses, )
* $1064: Current music
* $11C3: Status/Condition (a series of words in the order: Rooks, Spirit, Guest1, Guest2, Enemies 1-8)
* $1066: Current sfx
* $10EB-C: ASCII values for number being displayed
* $1123: Used for asm x offsets
* $11B9: Current page# in item list
* $11C3: Party condition (a series of words in the order: Rooks, Spirit, Guest1, Guest2, Enemies 1-8)
** Odd byte:
** Odd byte:
*** #$00: Satisfactory
*** #$00: Satisfactory
Line 46: Line 45:
** #$0003: Lower right
** #$0003: Lower right


* $120B: Rooks' Element/Race
* $120B: Rooks' [[Arcana:Mechanics|Element/Race]]
* $120D: Spirit's Element/Race
* $120D: Spirit's [[Arcana:Mechanics|Element/Race]]
* $120F: Guest1's Element/Race
* $120F: Guest1's [[Arcana:Mechanics|Element/Race]]
* $1212: Guest2's Element/Race
* $1211: Guest2's [[Arcana:Mechanics|Element/Race]]
* $1214: Enemy1's Element/Race
* $1213: Enemy1's [[Arcana:Mechanics|Element/Race]]
** Bytes continue with Enemy2-8 in order
* $1215: Enemy2's [[Arcana:Mechanics|Element/Race]]
* $1217: Enemy3's [[Arcana:Mechanics|Element/Race]]
* $1219: Enemy4's [[Arcana:Mechanics|Element/Race]]
* $121B: Enemy5's [[Arcana:Mechanics|Element/Race]]
* $121D: Enemy6's [[Arcana:Mechanics|Element/Race]]
* $121F: Enemy7's [[Arcana:Mechanics|Element/Race]]
* $1221: Enemy8's [[Arcana:Mechanics|Element/Race]]
* $1223: Rooks' Strength
* $1223: Rooks' Strength
* $1225: Spirit's Strength
* $1225: Spirit's Strength
* $1227: Guest1's Strength
* $1227: Guest1's Strength
* $1229: Guest2's Strength
* $1229: Guest2's Strength
* $122B: Enemy1's Strength (table offset?)
* $122B: Enemy1's Strength
** Bytes continue with Enemy2-8 in order
* $122D: Enemy2's Strength
* $123B: Rooks' Intelligence (reduces magic damage taken)
* $122F: Enemy3's Strength
* $1231: Enemy4's Strength
* $1233: Enemy5's Strength
* $1235: Enemy6's Strength
* $1237: Enemy7's Strength
* $1239: Enemy8's Strength
* $123B: Rooks' Intelligence (reduces magic damage taken, increases magic damage, affects magic evade)
* $123D: Spirit's Intelligence
* $123D: Spirit's Intelligence
* $123F: Guest1's Intelligence
* $123F: Guest1's Intelligence
* $1241: Guest2's Intelligence
* $1241: Guest2's Intelligence
* $1243: Monsters' Intelligence (affects spell damage)
* $1243: Enemy1's Intelligence
** Bytes continue with Enemy2-8 in order
* $1245: Enemy2's Intelligence
* $1247: Enemy3's Intelligence
* $1249: Enemy4's Intelligence
* $124B: Enemy5's Intelligence
* $124D: Enemy6's Intelligence
* $124F: Enemy7's Intelligence
* $1251: Enemy8's Intelligence
* $1253: Rooks' Endurance (reduces physical damage taken)
* $1253: Rooks' Endurance (reduces physical damage taken)
* $1255: Spirit's Endurance
* $1255: Spirit's Endurance
Line 69: Line 86:
* $1259: Guest2's Endurance
* $1259: Guest2's Endurance
* $125B: Enemy1's Endurance
* $125B: Enemy1's Endurance
** Bytes continue with Enemy2-8 in order
* $125D: Enemy2's Endurance
* $126B: Rooks' Alertness (affects accuracy, evasion and critical hits)
* $125F: Enemy3's Endurance
* $1261: Enemy4's Endurance
* $1263: Enemy5's Endurance
* $1265: Enemy6's Endurance
* $1267: Enemy7's Endurance
* $1269: Enemy8's Endurance
* $126B: Rooks' Alertness (affects accuracy, evasion, critical hits and chance for extra turn)
* $126D: Spirit's Alertness
* $126D: Spirit's Alertness
* $126F: Guest1's Alertness
* $126F: Guest1's Alertness
* $1271: Guest2's Alertness
* $1271: Guest2's Alertness
* $1273: Enemy1's Alertness
* $1273: Enemy1's Alertness
** Bytes continue with Enemy2-8 in order
* $1275: Enemy2's Alertness
 
* $1277: Enemy3's Alertness
* $1283: Equipped weapons
* $1279: Enemy4's Alertness
** Two bytes each, in order of Rooks, Guest 1 and Guest 2.
* $127B: Enemy5's Alertness
* $127D: Enemy6's Alertness
* $127F: Enemy7's Alertness
* $1281: Enemy8's Alertness
* $1283: Equipped weapon, Rooks
** This actually affects your stats.
** Two bytes each, in order of Rooks, Spirit, Guest 1 and Guest 2.
*** [[Arcana:Equipment|item ID]] / "Equipped by" flag
*** [[Arcana:Equipment|item ID]] / "Equipped by" flag
** "Equipped by" flags:
** "Equipped by" flags:
Line 86: Line 115:
*** #$07: Darwin
*** #$07: Darwin
*** #$08: Axs
*** #$08: Axs
* $129B: Equipped armors
* $1285: Equipped weapon, Spirit (unused)
* $12B3: Equipped shields/accessories
* $1287: Equipped weapon, Guest1
* $12CB: Equipped rings
* $1289: Equipped weapon, Guest2
 
* $128B: Equipped weapon, Enemy1 (affects their attack animation)
* $128D: Equipped weapon, Enemy2
* $128F: Equipped weapon, Enemy3
* $1291: Equipped weapon, Enemy4
* $1293: Equipped weapon, Enemy5
* $1295: Equipped weapon, Enemy6
* $1297: Equipped weapon, Enemy7
* $1299: Equipped weapon, Enemy8
* $129B: Equipped armor, Rooks
* $129D: Equipped armor, Spirit (unused)
* $129F: Equipped armor, Guest1
* $12A1: Equipped armor, Guest2
* $12A3: Equipped armor, Enemy1 (affects their defense)
* $12A5: Equipped armor, Enemy2
* $12A7: Equipped armor, Enemy3
* $12A9: Equipped armor, Enemy4
* $12AB: Equipped armor, Enemy5
* $12AD: Equipped armor, Enemy6
* $12AF: Equipped armor, Enemy7
* $12B1: Equipped armor, Enemy8
* $12B3: Equipped amulet, Rooks
* $12B5: Equipped amulet, Spirit (unused)
* $12B7: Equipped amulet, Guest1
* $12B9: Equipped amulet, Guest2
* $12BB: Equipped amulet, Enemy1 (probably affects defense and magic defense)
* $12BD: Equipped amulet, Enemy2
* $12BF: Equipped amulet, Enemy3
* $12C1: Equipped amulet, Enemy4
* $12C3: Equipped amulet, Enemy5
* $12C5: Equipped amulet, Enemy6
* $12C7: Equipped amulet, Enemy7
* $12C9: Equipped amulet, Enemy8
* $12CB: Equipped ring, Rooks (unused)
* $12CD: Equipped ring, Spirit (unused)
* $12CF: Equipped ring, Guest1 (unused)
* $12D1: Equipped ring, Guest2 (unused)
* $12D3: Equipped ring, Enemy1 (unused)
* $12D5: Equipped ring, Enemy2 (unused)
* $12D7: Equipped ring, Enemy3 (unused)
* $12D9: Equipped ring, Enemy4 (unused)
* $12DB: Equipped ring, Enemy5 (unused)
* $12DD: Equipped ring, Enemy6 (unused)
* $12DF: Equipped ring, Enemy7 (unused)
* $12E1: Equipped ring, Enemy8 (unused)
* $12E3: Accuracy modifier (concerns Acc. Increase All and Accuracy Impair)
* $12E3: Accuracy modifier (concerns Acc. Increase All and Accuracy Impair)
** There are 3 possible states: StatDown, Normal and StatUp. StatUp and StatDown cancel each other out.
** There are 3 possible states: StatDown, Normal and StatUp. StatUp and StatDown cancel each other out.
Line 101: Line 173:
*** #$20: Guest1's accuracy down
*** #$20: Guest1's accuracy down
*** #$80: Guest2's accuracy down
*** #$80: Guest2's accuracy down
* $12E5: Accuracy modifier (enemies)
* $12E7: Evasion modifier (concerns Dodge All and Offense Impair) (same flags)
* $12E7: Evasion modifier (concerns Dodge All and Offense Impair) (same flags)
* $12E9: Evasion modifier (enemies)
* $12EB: Attack modifier (concerns Stomp All and Attack Impair) (same flags)
* $12EB: Attack modifier (concerns Stomp All and Attack Impair) (same flags)
* $12ED: Attack modifier (enemies)
* $12EF: Defense modifier (concerns Wall All and Defense Impair) (same flags)
* $12EF: Defense modifier (concerns Wall All and Defense Impair) (same flags)
 
* $12F1: Defense modifier (enemies)
* $12F3: HP, Rooks
* $12F3: Current HP, Rooks
* $12F5: HP, Spirit
* $12F5: Current HP, Spirit
* $12F7: HP, Guest1
* $12F7: Current HP, Guest1
* $12F9: HP, Guest2
* $12F9: Current HP, Guest2
* $12FB: HP, Enemy1
* $12FB: Current HP, Enemy1
** Bytes continue with Enemy2-8 in order
* $12FD: Current HP, Enemy2
* $1323: MP, Rooks
* $12FF: Current HP, Enemy3
* $1325: MP, Spirit
* $1301: Current HP, Enemy4
* $1327: MP, Guest1
* $1303: Current HP, Enemy5
* $1329: MP, Guest2
* $1305: Current HP, Enemy6
* $132B: MP, Enemy1
* $1307: Current HP, Enemy7
** Bytes continue with Enemy2-8 in order
* $1309: Current HP, Enemy8
* $130B: Copy of Current HP, Rooks
* $130D: Copy of Current HP, Spirit
* $130F: Copy of Current HP, Guest1
* $1311: Copy of Current HP, Guest2
* $1313: Copy of Current HP, Enemy1
* $1315: Copy of Current HP, Enemy2
* $1317: Copy of Current HP, Enemy3
* $1319: Copy of Current HP, Enemy4
* $131B: Copy of Current HP, Enemy5
* $131D: Copy of Current HP, Enemy6
* $131F: Copy of Current HP, Enemy7
* $1321: Copy of Current HP, Enemy8
* $1323: Current MP (Magic Points), Rooks
* $1325: Current MP, Spirit
* $1327: Current MP, Guest1
* $1329: Current MP, Guest2
* $132B: Current MP, Enemy1 (Enemies don't actually use MP, so these values just stay at 5555)
* $132D: Current MP, Enemy2
* $132F: Current MP, Enemy3
* $1331: Current MP, Enemy4
* $1333: Current MP, Enemy5
* $1335: Current MP, Enemy6
* $1337: Current MP, Enemy7
* $1339: Current MP, Enemy8
* $133B: Copy of Current MP (Magic Points), Rooks
* $133D: Copy of Current MP, Spirit
* $133F: Copy of Current MP, Guest1
* $1341: Copy of Current MP, Guest2
* $1343: Copy of Current MP, Enemy1 (Enemies don't actually use MP, so these values just stay at 5555)
* $1345: Copy of Current MP, Enemy2
* $1347: Copy of Current MP, Enemy3
* $1349: Copy of Current MP, Enemy4
* $134B: Copy of Current MP, Enemy5
* $134D: Copy of Current MP, Enemy6
* $134F: Copy of Current MP, Enemy7
* $1351: Copy of Current MP, Enemy8
* $1353: Current HP, Sylph
* $1355: Current HP, Dao
* $1357: Current HP, Marid
* $1359: Current HP, Efrite
* $135B: Current MP, Sylph
* $135D: Current MP, Dao
* $135F: Current MP, Marid
* $1361: Current MP, Efrite
* $1363: EXP to next level, Rooks
* $1365: EXP to next level, Spirit (Unused? Seems to stay at 0258)
* $1367: EXP to next level, Guest1
* $1369: EXP to next level, Guest2
* $136B: EXP award, Enemy1 (The EXP you get for beating this enemy. Unclaimed enemy slots are FFFF)
* $136D: EXP award, Enemy2
* $136F: EXP award, Enemy3
* $1371: EXP award, Enemy4
* $1373: EXP award, Enemy5
* $1375: EXP award, Enemy6
* $1377: EXP award, Enemy7
* $1379: EXP award, Enemy8
* $137B: Level, Rooks
* $137D: Level, Spirit (Shares Rooks' level)
* $137F: Level, Guest1
* $1381: Level, Guest2
* $1383: Level, Enemy1 (Affects run chance)
* $1385: Level, Enemy2
* $1387: Level, Enemy3
* $1389: Level, Enemy4
* $138B: Level, Enemy5
* $138D: Level, Enemy6
* $138F: Level, Enemy7
* $1391: Level, Enemy8
* $1393: Max HP, Rooks
* $1393: Max HP, Rooks
* $1395: Max HP, Spirit
* $1395: Max HP, Spirit
* $1397: Max HP, Guest1
* $1397: Max HP, Guest1
* $1399: Max HP, Guest2
* $1399: Max HP, Guest2
** (Next byte is Rooks' Max HP -> Enemies have no max HP/MP stat)
** (Next byte is Rooks' Max MP -> Enemies have no max HP/MP stat)
* $139B: Max MP, Rooks
* $139B: Max MP, Rooks
* $139D: Max MP, Spirit
* $139D: Max MP, Spirit
* $139F: Max MP, Guest1
* $139F: Max MP, Guest1
* $13A1: Max MP, Guest2
* $13A1: Max MP, Guest2
* $13A3: Temp EXP (A running total collected through battle)
* $13A5: Temp GP
* $13A7: Spirits not owned (Bit flags: xxxx EMDS) (Example: 6 -> 0110 -> missing Marid/Dao)
* $13A9: Card inventory (Two bytes each, eight entries)
* $13A9: Card inventory (Two bytes each, eight entries)
** ([[Arcana:Equipment|item ID]] / quantity)
** ([[Arcana:Equipment|item ID]] / quantity)
Line 131: Line 277:
** ([[Arcana:Equipment|item ID]] / quantity)
** ([[Arcana:Equipment|item ID]] / quantity)
* $1419: Equipment inventory (Two bytes each, 48 entries)
* $1419: Equipment inventory (Two bytes each, 48 entries)
** Doesn't affect your stats, just tracks whose name is next to which equipment.
** ([[Arcana:Equipment|item ID]] / quantity)
** ([[Arcana:Equipment|item ID]] / quantity)
* $1459: Rooks' spell list (Two bytes each, 32 entries)
* $1459: Rooks' spell list (Two bytes each, 32 entries)
Line 178: Line 325:
** #$10: Moon Oil
** #$10: Moon Oil
** #$11: Enchanted Jewel (dummied)
** #$11: Enchanted Jewel (dummied)
* $1419-1458: [[Arcana:Equipment|Equipment]] inventory (2 bytes per slot, $20 slots: ID then Equipped By)
* $1419–1458: [[Arcana:Equipment|Equipment]] inventory (2 bytes per slot, $20 slots: ID then Equipped By)
** Equipped by flags:
** Equipped by flags:
** #$00: Rooks
** #$00: Rooks
Line 188: Line 335:


==Actors Continued==
==Actors Continued==
* $1459-$1398: Rooks' spell list (2 bytes per entry, [[Arcana:Spells|Spell ID]] followed by #$00)
* $1459–$1398: Rooks' spell list (2 bytes per entry, [[Arcana:Spells|Spell ID]] followed by #$00)
* $1499-14D8: Spirit's spell list
* $1499–14D8: Spirit's spell list
* $14D9-1518: Guest1's spell list
* $14D9-1518: Guest1's spell list
* $1519-1558: Guest2's spell list
* $1519–1558: Guest2's spell list
* $155D: Active spirit
* $155D: Active spirit
** $01: Sylph
** $01: Sylph
Line 207: Line 354:


==Miscellaneous==
==Miscellaneous==
* $0624-$0626: Active spirit's HP (Format: BCD)
* $062D: Offset*2 used with $11F3
* $06F9: X position of cursor
* $071D: Y position of cursor
* $09CB: Turn status (02: not turning, 00: turning left, 01: turning right)
* $0A7F: Compass heading (00: N, 02: NE, 04: E, 06: SE... 0E: NW) (Tracks diagonals unlike $16FB)
* $105A: Caches which H-DMA channels to run
* $1064: Current music
* $1066: Current sfx
* $10EB-C: ASCII values for number being displayed
* $1123: Used for asm x offsets
* $11B5: Tracks progress in intro crawl
* $11B9: Current page# in item list
* $1573: ?? (Checked before changing music)
* $1573: ?? (Checked before changing music)
* $1577: Window color (Bit depth: 0BBB B0GG GG0R RRR0)
* $1577: Window color (Bit depth: 0BBB B0GG GG0R RRR0)
* $1579: Encounter related
* $1579: Encounter related
* $157B: Graphics related
* $157B: Graphics related
* $1580-16DF: Current display buffer
* $1580–16DF: Current display buffer
** For spells, names are preceded by 06 0D (white) if usable and 06 0E (grayed) if not.
** For spells, names are preceded by 06 0D (white) if usable and 06 0E (grayed) if not.
* $16DB: Temp var (Attack power, battle damage, )
* $16DB: Temp var (Attack power, battle damage, )
Line 221: Line 381:
* $16FB: Current direction (#$00 North, #$02 East, #$04 South, #$06 West)
* $16FB: Current direction (#$00 North, #$02 East, #$04 South, #$06 West)
* $16FD: Related to random encounters (usually 0)
* $16FD: Related to random encounters (usually 0)
* $16FF: Suspected dungeon progress
* $16FF: Map progress
* $17BF: Suspected dungeon progress
* $17BF: Map progress (mirror)
* $1885: Shop selection (i.e. Card shop uses values 0-6)
* $1895: Torn spirits (4 entries, 2b each: Sylph = 2)
* $18C5: Spell type
* $18C9: Temp MP
* $18CD: Current Chapter # (01-05)
* $18CD: Current Chapter # (01-05)
* $18DA: Pointer used for encounters?
* $18CF: Weather fx (Used in the intro)
* $18D5: Stage select counter (adds 2 for every correct button press until $1C)
* $18D7: Encounter layout (long ptr)
* $18DA: Encounter enemy list (long ptr)
* $18DF: Bosses defeated? (0=Ch2 start, 1=Cyclops killed)
* $18DF: Bosses defeated? (0=Ch2 start, 1=Cyclops killed)
* $18E1: Temp var for Boss encounter (6 = Cyclops)
* $18E1: Temp var for Boss encounter (6 = Cyclops)
* $18E3-$18E8: Treasure chest flags (each chest has its own bit)
* $18E3-$18E8: Treasure chest flags (each chest has its own bit)
* $18F3: Decompression entry (long ptr)
* $18F8: Decompression start (long ptr)
* $18FF: Event pointer
* $18FF: Event pointer
** 05: Started Chapter 2
** 05: Started Chapter 2
Line 233: Line 402:
** 0E: Started Chapter 4
** 0E: Started Chapter 4
** 18: Started Chapter 5
** 18: Started Chapter 5
* $1E10: Pointer to current data being processed ([10])
 
{{Internal Data}}

Latest revision as of 17:16, 12 August 2024

Chip tiny.png The following article is a RAM map for Arcana.

(Back to Main page)

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

Main Loop

  • $1049: Pointer to indirect function calls (JMP [$1049])
  • $1E10: Event pointer, used for reading most of the game's code (LDA [$10]) (long ptr)
  • $1E14: Event pointer stack, stores return addresses during function calls

Temporary Arrays

Typically these are accessed i.e. LDA $09C7,x where the x register is determined at runtime.

  • $0643-065B: Enemies in battle (Enemy ID + 18), set to FFFF when killed
  • $09A3-09BB: ??
  • $09C7-09DF: Miscellaneous return values (i.e. type of treasure contents, item/spell/enemy chosen)
  • $09EB-0A03: Current selection (Attacker ID, caster ID, whose turn is it etc)
  • $0A0F-0A27: Target (ID being attacked, treasure chest being opened)
  • $0B9F,x: Stores function results (0=failure)
  • $0CB3,x: Stores function results (0=failure)

Battle

  • $0A87-$0A8E: Current selected battle command (2 bytes per character)
    • #$0001: Main menu
    • #$0003: Items/Magic
    • #$0004: Cards
    • #$0005: Weapons
    • #$0008: Attack
  • $1121: Attacker
  • $1123: Target
  • $1127: Spell ID
  • $11C1: Battle state (00=not fighting/can move, 02=battle poses, )
  • $11C3: Status/Condition (a series of words in the order: Rooks, Spirit, Guest1, Guest2, Enemies 1-8)
    • Odd byte:
      • #$00: Satisfactory
      • #$01: Deceased
      • #$02: Not Here
      • #$03: Paralyzed
      • #$04: Petrified
      • #$05: Confused
      • #$06: Sleeping
    • Even byte: #$01 indicates a party member
  • $11F3-11FA: Order that spells hit the party (2 bytes per character)
    • #$0000: Upper left
    • #$0001: Upper right
    • #$0002: Lower left
    • #$0003: Lower right
  • $120B: Rooks' Element/Race
  • $120D: Spirit's Element/Race
  • $120F: Guest1's Element/Race
  • $1211: Guest2's Element/Race
  • $1213: Enemy1's Element/Race
  • $1215: Enemy2's Element/Race
  • $1217: Enemy3's Element/Race
  • $1219: Enemy4's Element/Race
  • $121B: Enemy5's Element/Race
  • $121D: Enemy6's Element/Race
  • $121F: Enemy7's Element/Race
  • $1221: Enemy8's Element/Race
  • $1223: Rooks' Strength
  • $1225: Spirit's Strength
  • $1227: Guest1's Strength
  • $1229: Guest2's Strength
  • $122B: Enemy1's Strength
  • $122D: Enemy2's Strength
  • $122F: Enemy3's Strength
  • $1231: Enemy4's Strength
  • $1233: Enemy5's Strength
  • $1235: Enemy6's Strength
  • $1237: Enemy7's Strength
  • $1239: Enemy8's Strength
  • $123B: Rooks' Intelligence (reduces magic damage taken, increases magic damage, affects magic evade)
  • $123D: Spirit's Intelligence
  • $123F: Guest1's Intelligence
  • $1241: Guest2's Intelligence
  • $1243: Enemy1's Intelligence
  • $1245: Enemy2's Intelligence
  • $1247: Enemy3's Intelligence
  • $1249: Enemy4's Intelligence
  • $124B: Enemy5's Intelligence
  • $124D: Enemy6's Intelligence
  • $124F: Enemy7's Intelligence
  • $1251: Enemy8's Intelligence
  • $1253: Rooks' Endurance (reduces physical damage taken)
  • $1255: Spirit's Endurance
  • $1257: Guest1's Endurance
  • $1259: Guest2's Endurance
  • $125B: Enemy1's Endurance
  • $125D: Enemy2's Endurance
  • $125F: Enemy3's Endurance
  • $1261: Enemy4's Endurance
  • $1263: Enemy5's Endurance
  • $1265: Enemy6's Endurance
  • $1267: Enemy7's Endurance
  • $1269: Enemy8's Endurance
  • $126B: Rooks' Alertness (affects accuracy, evasion, critical hits and chance for extra turn)
  • $126D: Spirit's Alertness
  • $126F: Guest1's Alertness
  • $1271: Guest2's Alertness
  • $1273: Enemy1's Alertness
  • $1275: Enemy2's Alertness
  • $1277: Enemy3's Alertness
  • $1279: Enemy4's Alertness
  • $127B: Enemy5's Alertness
  • $127D: Enemy6's Alertness
  • $127F: Enemy7's Alertness
  • $1281: Enemy8's Alertness
  • $1283: Equipped weapon, Rooks
    • This actually affects your stats.
    • Two bytes each, in order of Rooks, Spirit, Guest 1 and Guest 2.
    • "Equipped by" flags:
      • #$00: Rooks
      • #$05: Teefa
      • #$06: Salah
      • #$07: Darwin
      • #$08: Axs
  • $1285: Equipped weapon, Spirit (unused)
  • $1287: Equipped weapon, Guest1
  • $1289: Equipped weapon, Guest2
  • $128B: Equipped weapon, Enemy1 (affects their attack animation)
  • $128D: Equipped weapon, Enemy2
  • $128F: Equipped weapon, Enemy3
  • $1291: Equipped weapon, Enemy4
  • $1293: Equipped weapon, Enemy5
  • $1295: Equipped weapon, Enemy6
  • $1297: Equipped weapon, Enemy7
  • $1299: Equipped weapon, Enemy8
  • $129B: Equipped armor, Rooks
  • $129D: Equipped armor, Spirit (unused)
  • $129F: Equipped armor, Guest1
  • $12A1: Equipped armor, Guest2
  • $12A3: Equipped armor, Enemy1 (affects their defense)
  • $12A5: Equipped armor, Enemy2
  • $12A7: Equipped armor, Enemy3
  • $12A9: Equipped armor, Enemy4
  • $12AB: Equipped armor, Enemy5
  • $12AD: Equipped armor, Enemy6
  • $12AF: Equipped armor, Enemy7
  • $12B1: Equipped armor, Enemy8
  • $12B3: Equipped amulet, Rooks
  • $12B5: Equipped amulet, Spirit (unused)
  • $12B7: Equipped amulet, Guest1
  • $12B9: Equipped amulet, Guest2
  • $12BB: Equipped amulet, Enemy1 (probably affects defense and magic defense)
  • $12BD: Equipped amulet, Enemy2
  • $12BF: Equipped amulet, Enemy3
  • $12C1: Equipped amulet, Enemy4
  • $12C3: Equipped amulet, Enemy5
  • $12C5: Equipped amulet, Enemy6
  • $12C7: Equipped amulet, Enemy7
  • $12C9: Equipped amulet, Enemy8
  • $12CB: Equipped ring, Rooks (unused)
  • $12CD: Equipped ring, Spirit (unused)
  • $12CF: Equipped ring, Guest1 (unused)
  • $12D1: Equipped ring, Guest2 (unused)
  • $12D3: Equipped ring, Enemy1 (unused)
  • $12D5: Equipped ring, Enemy2 (unused)
  • $12D7: Equipped ring, Enemy3 (unused)
  • $12D9: Equipped ring, Enemy4 (unused)
  • $12DB: Equipped ring, Enemy5 (unused)
  • $12DD: Equipped ring, Enemy6 (unused)
  • $12DF: Equipped ring, Enemy7 (unused)
  • $12E1: Equipped ring, Enemy8 (unused)
  • $12E3: Accuracy modifier (concerns Acc. Increase All and Accuracy Impair)
    • There are 3 possible states: StatDown, Normal and StatUp. StatUp and StatDown cancel each other out.
    • Byte values are as follows:
      • #$01: Rooks' accuracy up
      • #$04: Spirit's accuracy up
      • #$10: Guest1's accuracy up
      • #$40: Guest2's accuracy up
      • #$02: Rooks' accuracy down
      • #$08: Spirit's accuracy down
      • #$20: Guest1's accuracy down
      • #$80: Guest2's accuracy down
  • $12E5: Accuracy modifier (enemies)
  • $12E7: Evasion modifier (concerns Dodge All and Offense Impair) (same flags)
  • $12E9: Evasion modifier (enemies)
  • $12EB: Attack modifier (concerns Stomp All and Attack Impair) (same flags)
  • $12ED: Attack modifier (enemies)
  • $12EF: Defense modifier (concerns Wall All and Defense Impair) (same flags)
  • $12F1: Defense modifier (enemies)
  • $12F3: Current HP, Rooks
  • $12F5: Current HP, Spirit
  • $12F7: Current HP, Guest1
  • $12F9: Current HP, Guest2
  • $12FB: Current HP, Enemy1
  • $12FD: Current HP, Enemy2
  • $12FF: Current HP, Enemy3
  • $1301: Current HP, Enemy4
  • $1303: Current HP, Enemy5
  • $1305: Current HP, Enemy6
  • $1307: Current HP, Enemy7
  • $1309: Current HP, Enemy8
  • $130B: Copy of Current HP, Rooks
  • $130D: Copy of Current HP, Spirit
  • $130F: Copy of Current HP, Guest1
  • $1311: Copy of Current HP, Guest2
  • $1313: Copy of Current HP, Enemy1
  • $1315: Copy of Current HP, Enemy2
  • $1317: Copy of Current HP, Enemy3
  • $1319: Copy of Current HP, Enemy4
  • $131B: Copy of Current HP, Enemy5
  • $131D: Copy of Current HP, Enemy6
  • $131F: Copy of Current HP, Enemy7
  • $1321: Copy of Current HP, Enemy8
  • $1323: Current MP (Magic Points), Rooks
  • $1325: Current MP, Spirit
  • $1327: Current MP, Guest1
  • $1329: Current MP, Guest2
  • $132B: Current MP, Enemy1 (Enemies don't actually use MP, so these values just stay at 5555)
  • $132D: Current MP, Enemy2
  • $132F: Current MP, Enemy3
  • $1331: Current MP, Enemy4
  • $1333: Current MP, Enemy5
  • $1335: Current MP, Enemy6
  • $1337: Current MP, Enemy7
  • $1339: Current MP, Enemy8
  • $133B: Copy of Current MP (Magic Points), Rooks
  • $133D: Copy of Current MP, Spirit
  • $133F: Copy of Current MP, Guest1
  • $1341: Copy of Current MP, Guest2
  • $1343: Copy of Current MP, Enemy1 (Enemies don't actually use MP, so these values just stay at 5555)
  • $1345: Copy of Current MP, Enemy2
  • $1347: Copy of Current MP, Enemy3
  • $1349: Copy of Current MP, Enemy4
  • $134B: Copy of Current MP, Enemy5
  • $134D: Copy of Current MP, Enemy6
  • $134F: Copy of Current MP, Enemy7
  • $1351: Copy of Current MP, Enemy8
  • $1353: Current HP, Sylph
  • $1355: Current HP, Dao
  • $1357: Current HP, Marid
  • $1359: Current HP, Efrite
  • $135B: Current MP, Sylph
  • $135D: Current MP, Dao
  • $135F: Current MP, Marid
  • $1361: Current MP, Efrite
  • $1363: EXP to next level, Rooks
  • $1365: EXP to next level, Spirit (Unused? Seems to stay at 0258)
  • $1367: EXP to next level, Guest1
  • $1369: EXP to next level, Guest2
  • $136B: EXP award, Enemy1 (The EXP you get for beating this enemy. Unclaimed enemy slots are FFFF)
  • $136D: EXP award, Enemy2
  • $136F: EXP award, Enemy3
  • $1371: EXP award, Enemy4
  • $1373: EXP award, Enemy5
  • $1375: EXP award, Enemy6
  • $1377: EXP award, Enemy7
  • $1379: EXP award, Enemy8
  • $137B: Level, Rooks
  • $137D: Level, Spirit (Shares Rooks' level)
  • $137F: Level, Guest1
  • $1381: Level, Guest2
  • $1383: Level, Enemy1 (Affects run chance)
  • $1385: Level, Enemy2
  • $1387: Level, Enemy3
  • $1389: Level, Enemy4
  • $138B: Level, Enemy5
  • $138D: Level, Enemy6
  • $138F: Level, Enemy7
  • $1391: Level, Enemy8
  • $1393: Max HP, Rooks
  • $1395: Max HP, Spirit
  • $1397: Max HP, Guest1
  • $1399: Max HP, Guest2
    • (Next byte is Rooks' Max MP -> Enemies have no max HP/MP stat)
  • $139B: Max MP, Rooks
  • $139D: Max MP, Spirit
  • $139F: Max MP, Guest1
  • $13A1: Max MP, Guest2
  • $13A3: Temp EXP (A running total collected through battle)
  • $13A5: Temp GP
  • $13A7: Spirits not owned (Bit flags: xxxx EMDS) (Example: 6 -> 0110 -> missing Marid/Dao)
  • $13A9: Card inventory (Two bytes each, eight entries)
  • $13B9: Item inventory (Two bytes each, 48 entries)
  • $1419: Equipment inventory (Two bytes each, 48 entries)
    • Doesn't affect your stats, just tracks whose name is next to which equipment.
    • (item ID / quantity)
  • $1459: Rooks' spell list (Two bytes each, 32 entries)
  • $1499: Spirit's spell list (Two bytes each, 32 entries?)
  • $14D9: Guest1's spell list (Two bytes each, 32 entries?)
  • $1519: Guest2's spell list (Two bytes each, 32 entries?)
  • $1559: Current GP
  • $155B: Current party (Two bytes each)
    • #$00: Rooks
    • #$01: Sylph
    • #$02: Marid
    • #$03: Dao
    • #$04: Efrite
    • #$05: Teefa
    • #$06: Salah
    • #$07: Darwin
    • #$08: Axs
    • #$09: (Empty slot)

Inventory

  • $13A9-$13B7: Card inventory (2 bytes per slot, ID then quantity)
    • #$00: Empty slot
    • #$01: Wind Card
    • #$02: Earth Card
    • #$03: Water Card
    • #$04: Fire Card
    • #$05: Null Card
    • #$06: Fog Card
    • #$07: Call Amulet
    • #$08: Mirror Card (bugged)
  • $13B9-$1418: Item inventory (2 bytes per slot, $30 slots: ID then #$00)
    • #$01: Return Ring
    • #$02: Water of Life (dummied)
    • #$03: Sleeping Bag
    • #$04: Tent
    • #$05: Strength Honey
    • #$06: Intelligence Honey
    • #$07: Endurance Honey
    • #$08: Agility Honey
    • #$09: Restore Honey
    • #$0A: MP Honey
    • #$0B: Herbs
    • #$0C: Medicine
    • #$0D: Silver Flask
    • #$0E: Gold Flask
    • #$0F: Maiden's Tears
    • #$10: Moon Oil
    • #$11: Enchanted Jewel (dummied)
  • $1419–1458: Equipment inventory (2 bytes per slot, $20 slots: ID then Equipped By)
    • Equipped by flags:
    • #$00: Rooks
    • #$05: Teefa
    • #$06: Salah
    • #$07: Darwin
    • #$08: Axs
    • #$FF: Nobody

Actors Continued

  • $1459–$1398: Rooks' spell list (2 bytes per entry, Spell ID followed by #$00)
  • $1499–14D8: Spirit's spell list
  • $14D9-1518: Guest1's spell list
  • $1519–1558: Guest2's spell list
  • $155D: Active spirit
    • $01: Sylph
    • $02: Dao
    • $03: Marid
    • $04: Efrite
    • $09: none
  • $155F: Guest1
  • $1561: Guest2
    • $05: Teefa
    • $06: Salah
    • $07: Darwin
    • $08: Axs
    • $09: none

Miscellaneous

  • $0624-$0626: Active spirit's HP (Format: BCD)
  • $062D: Offset*2 used with $11F3
  • $06F9: X position of cursor
  • $071D: Y position of cursor
  • $09CB: Turn status (02: not turning, 00: turning left, 01: turning right)
  • $0A7F: Compass heading (00: N, 02: NE, 04: E, 06: SE... 0E: NW) (Tracks diagonals unlike $16FB)
  • $105A: Caches which H-DMA channels to run
  • $1064: Current music
  • $1066: Current sfx
  • $10EB-C: ASCII values for number being displayed
  • $1123: Used for asm x offsets
  • $11B5: Tracks progress in intro crawl
  • $11B9: Current page# in item list
  • $1573: ?? (Checked before changing music)
  • $1577: Window color (Bit depth: 0BBB B0GG GG0R RRR0)
  • $1579: Encounter related
  • $157B: Graphics related
  • $1580–16DF: Current display buffer
    • For spells, names are preceded by 06 0D (white) if usable and 06 0E (grayed) if not.
  • $16DB: Temp var (Attack power, battle damage, )
  • $16DD: Temp var (Defense power)
  • $16F3: #$01 if in motion, #$00 if standing still
  • $16F5: Current floor tile value
  • $16F7: Dungeon X position
  • $16F9: Dungeon Y position
  • $16FB: Current direction (#$00 North, #$02 East, #$04 South, #$06 West)
  • $16FD: Related to random encounters (usually 0)
  • $16FF: Map progress
  • $17BF: Map progress (mirror)
  • $1885: Shop selection (i.e. Card shop uses values 0-6)
  • $1895: Torn spirits (4 entries, 2b each: Sylph = 2)
  • $18C5: Spell type
  • $18C9: Temp MP
  • $18CD: Current Chapter # (01-05)
  • $18CF: Weather fx (Used in the intro)
  • $18D5: Stage select counter (adds 2 for every correct button press until $1C)
  • $18D7: Encounter layout (long ptr)
  • $18DA: Encounter enemy list (long ptr)
  • $18DF: Bosses defeated? (0=Ch2 start, 1=Cyclops killed)
  • $18E1: Temp var for Boss encounter (6 = Cyclops)
  • $18E3-$18E8: Treasure chest flags (each chest has its own bit)
  • $18F3: Decompression entry (long ptr)
  • $18F8: Decompression start (long ptr)
  • $18FF: Event pointer
    • 05: Started Chapter 2
    • 0A: Started Chapter 3
    • 0E: Started Chapter 4
    • 18: Started Chapter 5