If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working at any time.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Arcana/RAM map: Difference between revisions
< Arcana
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 211: | Line 211: | ||
* $1579: Encounter related | * $1579: Encounter related | ||
* $157B: Graphics related | * $157B: Graphics related | ||
* $1580-16DF: Current display | * $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 225: | Line 225: | ||
* $18CD: Current Chapter # (01-05) | * $18CD: Current Chapter # (01-05) | ||
* $18DA: Pointer used for encounters? | * $18DA: Pointer used for encounters? | ||
* $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) | ||
* $18FF: Event pointer | |||
** 05: Started Chapter 2 | |||
** 0A: Started Chapter 3 | |||
** 0E: Started Chapter 4 | |||
** 18: Started Chapter 5 | |||
* $1E10: Pointer to current data being processed ([10]) | * $1E10: Pointer to current data being processed ([10]) |
Revision as of 20:06, 14 November 2020
(Back to Main page)
- The list corresponds to RAM variables used by the game engine. They are generally accessed by LDA and STA instructions.
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)
- #$0001: Main menu
- #$0003: Items/Magic
- #$0004: Cards
- #$0005: Weapons
- #$0008: Attack
- $0B9F,x: Stores function results (0=failure)
- $0CB3,x: Stores function results (0=failure)
- $1049: Code pointer
- $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
- $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:
- #$00: Satisfactory
- #$01: Deceased
- #$02: Not Here
- #$03: Paralyzed
- #$04: Petrified
- #$05: Confused
- #$06: Sleeping
- Even byte: #$01 indicates a party member
- Odd byte:
- $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
- $1212: Guest2's Element/Race
- $1214: Enemy1's Element/Race
- Bytes continue with Enemy2-8 in order
- $1223: Rooks' Strength
- $1225: Spirit's Strength
- $1227: Guest1's Strength
- $1229: Guest2's Strength
- $122B: Enemy1's Strength (table offset?)
- Bytes continue with Enemy2-8 in order
- $123B: Rooks' Intelligence (reduces magic damage taken)
- $123D: Spirit's Intelligence
- $123F: Guest1's Intelligence
- $1241: Guest2's Intelligence
- $1243: Monsters' Intelligence (affects spell damage)
- Bytes continue with Enemy2-8 in order
- $1253: Rooks' Endurance (reduces physical damage taken)
- $1255: Spirit's Endurance
- $1257: Guest1's Endurance
- $1259: Guest2's Endurance
- $125B: Enemy1's Endurance
- Bytes continue with Enemy2-8 in order
- $126B: Rooks' Alertness (affects accuracy, evasion and critical hits)
- $126D: Spirit's Alertness
- $126F: Guest1's Alertness
- $1271: Guest2's Alertness
- $1273: Enemy1's Alertness
- Bytes continue with Enemy2-8 in order
- $1283: Equipped weapons
- Two bytes each, in order of Rooks, Guest 1 and Guest 2.
- item ID / "Equipped by" flag
- "Equipped by" flags:
- #$00: Rooks
- #$05: Teefa
- #$06: Salah
- #$07: Darwin
- #$08: Axs
- Two bytes each, in order of Rooks, Guest 1 and Guest 2.
- $129B: Equipped armors
- $12B3: Equipped shields/accessories
- $12CB: Equipped rings
- $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
- $12E7: Evasion modifier (concerns Dodge All and Offense Impair) (same flags)
- $12EB: Attack modifier (concerns Stomp All and Attack Impair) (same flags)
- $12EF: Defense modifier (concerns Wall All and Defense Impair) (same flags)
- $12F3: HP, Rooks
- $12F5: HP, Spirit
- $12F7: HP, Guest1
- $12F9: HP, Guest2
- $12FB: HP, Enemy1
- Bytes continue with Enemy2-8 in order
- $1323: MP, Rooks
- $1325: MP, Spirit
- $1327: MP, Guest1
- $1329: MP, Guest2
- $132B: MP, Enemy1
- Bytes continue with Enemy2-8 in order
- $1393: Max HP, Rooks
- $1395: Max HP, Spirit
- $1397: Max HP, Guest1
- $1399: Max HP, Guest2
- (Next byte is Rooks' Max HP -> Enemies have no max HP/MP stat)
- $139B: Max MP, Rooks
- $139D: Max MP, Spirit
- $139F: Max MP, Guest1
- $13A1: Max MP, Guest2
- $13A9: Card inventory (Two bytes each, eight entries)
- (item ID / quantity)
- $13B9: Item inventory (Two bytes each, 48 entries)
- (item ID / quantity)
- $1419: Equipment inventory (Two bytes each, 48 entries)
- (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
- $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: Suspected dungeon progress
- $17BF: Suspected dungeon progress
- $18CD: Current Chapter # (01-05)
- $18DA: Pointer used for encounters?
- $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)
- $18FF: Event pointer
- 05: Started Chapter 2
- 0A: Started Chapter 3
- 0E: Started Chapter 4
- 18: Started Chapter 5
- $1E10: Pointer to current data being processed ([10])