Slot 2 Mapping Flat Code in $00000 - $07fff [1] and $1c000 - $1ffff

The Dragon Crystal Shrine by Dammit9x provided an excellent starting point for many of the player status and inventory variables before. (A FAQ by the same user is available at GameFAQs and elsewhere, containing much of the same information.)

A disassembly of the game (in progress) is available on Github. See Dragon Crystal Exploration and Disassembly for further work.

RAM

Gameplay Variables

VariableLocationNotes
Autoplay$C00600 is off, 01 during play goes to title screen, above that plays during game- demo played through autodemo- enable autoplay during game with PAR code 00C0:0602
AutoplayDirection$C007high bit 1 is button 1 2 is button 2, low bit 1 is up 2 is down 4 is left 8 is right
AutoplayCountdown$C008-$C009
Autoplay?$C00Apossibly randomly generated number- seems active during autoplay
ControllerDirection$C00C
Modal$C01101 = pause menu or death screen. 00/02 alternate rapidly during normal play- keeps touching it to check state? This is also an index to a jump table at $1D1
TitleScreenCounter$C012-$C013
RNGSeed$C016The RNG function is the exact same as the code snippet given from Phantasy Star in the Development section
"World Modifier"$C01AThis hex address is listed as "world modifier" in this list of PAR codes, but the byte to write is given as ??- I haven't been able to generate any particular effect with obvious values like $00, $FF, or random values yet though, nor does anything seem to reference this address directly in the disassembly
Floor$C01C
ModalState$C0A0Seems to take away control from player eg during animations while turn is processing or while menu is open- also an index to a jump table at $4ED
PlayerSpeed$C0CFAlso controls animation speed?
Player coordinate?$C105-C106 
PlayerSprite$C540

Player Status

VariableLocationNotes
WeaponHit$C617
WeaponPW$C618
ArmorEvd$C619
ArmorAC$C61A
CharacterLevel$C61FAlso determines Dragon state- seems to be checked continuously
Food$C620
CurrentHP$C621-$C622
MaxHP$C623-$C624
Experience$C625-$C626
NextLevel$C628-$C629
Money$C62B,$C62C,$C62DBinary-coded decimal
BasePW$C62F
BaseAC$C630
?$C631written every floor to 00
ParalysisTicksLeft$C632
SluggishTicksLeft$C633
PoisonTicksLeft$C634
BlindnessTicksLeft$C635
DizzinessTicksLeft$C636
FoodTimer$C63C
HealTimer$C63D
ContinuesSpent$C63EDefault max continues is $03

Equipment Slots

VariableLocationNotes
Swords$C900-$C907
Armor$C908-$C90F
Scrolls$C910-$C917
Rods$C918-$C91F
Potions$C920-$C927
RingFirst$C928-$C92F
Player Currently Cursed?$C930
Cursed Item$C931Possibly just the item currently being used

TODO Copy item tables here

Sound

VariableLocationNotes
Sound handling$DD00+appears to have some overall information and then the same data structure repeated for each channel
MusicTempo$DD02
SongSelect$DD03This is an index for a jump table; editing the value in memory changes the song
Music?$DD40
Music?$DD70
Music?$DDA0
Music?$DDD0
Music?$DE30
Music?$DE60
Music?$DD0E
Music?$DD0F
Music?$DE00
Music?$DD0C

Possible Data Structures

VariableLocationNotes
?$C400Loaded into IX
?$C100Loaded into IX; turn handling? Seems to stick turn on
?$C3E0Loaded into IX; Editing causes graphic corruption
?$C140Loaded into IY
?$C638Loaded into IY
Level Map?$D300+Appears to show walls, empty floor, and items, not player or monsters?
Fog of war?$D700+Seems to change as areas are uncovered

ROM

Text

VariableLocationNotes
Ending text$160F-$16F1
HUD$1990-$19BFFL HP PW AC GOLD FOOD
Player Levels/Classes$19C0-$1B1F
Item Names$E150-$E976Both revealed names and color names (eg MAUVE RING)
Equip menu$E9CB-$E9EFEQUIP THROW DROP
Use menu$EA11-$EA35USE THROW DROP
Battle messages$EB40-$F128Both attack results and item use messages
Game over menu$1EE33-$1EE5DOVER GOLD CONTINUE YES NO
Game over messages$1EEA1-$1F008Monster names, starvation, etc- possibly unused message, "I KILLED MYSELF"?
Credits$1F249-$1F848Lots of padding

Table

Character Table
58=
59=A
5A=B
5B=C
5C=D
5D=E
5E=F
5F=G
60=H
61=I
62=J
63=K
64=L
65=M
66=N
67=O
68=P
69=Q
6A=R
6B=S
6C=T
6D=U
6E=V
6F=W
70=X
71=Y
72=Z
74=!
75=.
7D='

  1. ^ All address ranges on this page are inclusive.



Return to top
0.259s