Arcana/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Data rush! Added what I have for the RAM map.)
 
(Expanded on several stats and elaborated on equipped weapon vs weapon inventory.)
 
(13 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{rammap|game=Arcana}}
{{rammap|game=Arcana}}
(Back to [[Arcana|Main page]])
: 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)
* $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 12: Line 25:
** #$0005: Weapons
** #$0005: Weapons
** #$0008: Attack
** #$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)
* $11F3-11FA: Order that spells hit the party (2 bytes per character)
** #$0000: Upper left
** #$0000: Upper left
Line 18: Line 45:
** #$0003: Lower right
** #$0003: Lower right


* $120B: Rooks' Element
* $120B: Rooks' [[Arcana:Mechanics|Element/Race]]
* $120D: Spirit's Element
* $120D: Spirit's [[Arcana:Mechanics|Element/Race]]
* $120F: Guest1's Element
* $120F: Guest1's [[Arcana:Mechanics|Element/Race]]
* $1212: Guest2's Element
* $1211: Guest2's [[Arcana:Mechanics|Element/Race]]
* $1213: Enemy1's [[Arcana:Mechanics|Element/Race]]
* $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
* $123B: Rooks' Intelligence (reduces magic damage taken)
* $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
* $123D: Spirit's Intelligence
* $123F: Guest1's Intelligence
* $123F: Guest1's Intelligence
* $1241: Guest2's Intelligence
* $1241: Guest2's Intelligence
* $1243-$124D: Monsters' Intelligence (affects spell damage)
* $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)
* $1253: Rooks' Endurance (reduces physical damage taken)
* $1255: Spirit's Endurance
* $1255: Spirit's Endurance
* $1257: Guest1's Endurance
* $1257: Guest1's Endurance
* $1259: Guest2's Endurance
* $1259: Guest2's Endurance
* $126B: Rooks' Alertness (affects accuracy and evasion)
* $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
* $126D: Spirit's Alertness
* $126F: Guest1's Alertness
* $126F: Guest1's Alertness
* $1271: Guest2's Alertness
* $1271: Guest2's Alertness
 
* $1273: Enemy1's Alertness
* $1280-$12BF: Equipped items lists
* $1275: Enemy2's Alertness
** Spaces are allocated for Rooks, Guest 1 and Guest 2. Two bytes per area, for [[Arcana:Equipment|item ID]] and character ID.
* $1277: Enemy3's Alertness
** Equipped by flags:
* $1279: Enemy4's Alertness
** #$00: Rooks
* $127B: Enemy5's Alertness
** #$05: Teefa
* $127D: Enemy6's Alertness
** #$06: Salah
* $127F: Enemy7's Alertness
** #$07: Darwin
* $1281: Enemy8's Alertness
** #$08: Axs
* $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
** "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)
* $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.
** #$01: Rooks' accuracy up
** Byte values are as follows:
** #$04: Spirit's accuracy up
*** #$01: Rooks' accuracy up
** #$10: Guest1's accuracy up
*** #$04: Spirit's accuracy up
** #$40: Guest2's accuracy up
*** #$10: Guest1's accuracy up
** #$02: Rooks' accuracy down
*** #$40: Guest2's accuracy up
** #$08: Spirit's accuracy down
*** #$02: Rooks' accuracy down
** #$20: Guest1's accuracy down
*** #$08: Spirit's accuracy down
** #$80: Guest2'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)
* $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
* $1323: MP, Rooks
* $12FB: Current HP, Enemy1
* $1325: MP, Spirit
* $12FD: Current HP, Enemy2
* $1327: MP, Guest1
* $12FF: Current HP, Enemy3
* $1329: MP, Guest2
* $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
* $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 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)
** ([[Arcana:Equipment|item ID]] / quantity)
* $13B9: Item inventory (Two bytes each, 48 entries)
** ([[Arcana:Equipment|item ID]] / quantity)
* $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)
* $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==
==Inventory==
Line 109: 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 119: 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 138: Line 354:


==Miscellaneous==
==Miscellaneous==
* $15AF: Text being displayed
* $0624-$0626: Active spirit's HP (Format: BCD)
* $16F7: X position on map
* $062D: Offset*2 used with $11F3
* $16F9: Y position on map
* $06F9: X position of cursor
* $16FB: Facing (#$00 North, #$02 East, #$04 South, #$06 West)
* $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)
* $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
{{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