Dragon Warrior/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
(removed values, started basic table formatting)
 
(17 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{rammap|game=Dragon Warrior}}
{{rammap}}
<br>
{{stub}}
 
=Main=


{| border="1" cellpadding="1"  
{| class="wikitable"
|'''RAM'''  || '''Function''' || '''Details'''
|-
!  RAM  !!  Function  !!  Details
|-
| 0x000E || Unused
|-
| 0x0011 || Map horizontal offset || Modifying this offset seems to shift map tiles horizontally?
|-
| 0x0012 || Map load information || Modifying this causes other maps to load entirely, but does not impact NPCs
|-
| 0x0013-14 || Tiles, linked || Both bytes are always the same and differ on each map. Setting the bytes to 9 will cause the world map to become entirely water.
|-
| 0x0015 || Exterior Tile || Changing this changes the tile that is displayed on the border of maps. 0 is grass, 15 is water, 16 in caves, 21 in the throne room
|-
| 0x0016 || Terrain Offset || $20 for caves, $10 for most towns, $00 for world map.
The game uses this to determine which slate of background "squares" is utilized by the current area map.
|-
| 0x0037 || A-reg value stored here during BRK interrupt.
|-
| 0x0038 || X-reg value stored here during BRK interrupt.
|-
| 0x0039 || Y-reg value stored here during BRK interrupt.
|-
|-
| 0x003A || Player X Position || X position on current map. Map not redrawn on direct change.
| 0x003A || Player X Position || X position on current map. Map not redrawn on direct change.
Line 11: Line 33:
| 0x003E || Player V-position on Overworld Map || #00 = Horizontal Strip two rows north of Garinham.
| 0x003E || Player V-position on Overworld Map || #00 = Horizontal Strip two rows north of Garinham.
|-
|-
| 0x0042 || Player H-position on Overworld Map || #00 = Verticalal Strip two columns west of Garinham.
| 0x0042 || Player H-position on Overworld Map || #00 = Vertical Strip two columns west of Garinham.
|-
| 0x0045 || Map ID ||
{| border="1" cellpadding="1"
| '''Value''' || '''Map''' || || '''Value''' || '''Map'''
|-
| 01 || World Map || || 10 || Dragonlord B2
|-
| 02 || Charlock Castle || || 11 || Dragonlord B3
|-
| 03 || Ruins of Hauksness || || 12 || Dragonlord B4
|-
| 04 || Tantegel Castle || || 13 || Dragonlord B5
|-
| 05 || Throne Room || || 14 || Dragonlord B6
|-
| 06 || Dragonlord's Lair || || 15 || Swamp Cave
|-
| 07 || Kol || || 16 || Mountain Cave B1
|-
| 08 || Breconary || || 17 || Mountain Cave B2
|-
| 09 || Garinham || || 18 || Garin's Grave B1
|-
| 0A || Cantlin || || 19 || Garin's Grave B2
|-
| 0B || Rimuldar || || 1A || Garin's Grave B3
|-
| 0C || Sun Shrine || || 1B || Garin's Grave B4
|-
| 0D || Rain Shrine || ||1C || Erdrick's Cave B1
|-
| 0E || Magic Temple || || 1D || Erdrick's Cave B2
|-
| 0F || Dragonlord B1 || || ||
|-
 
|}
|-
|-
| 0x0047 || Button(s) pressed || Uses binary processing. Here are the values:
| 0x0047 || Button(s) pressed || Uses binary processing. Here are the values:
Line 30: Line 89:
|-
|-
| 0x004F || Countup Clock on Overworld || Activates small status window in upper-left corner when player doesn't move.
| 0x004F || Countup Clock on Overworld || Activates small status window in upper-left corner when player doesn't move.
|-
| 0x0050 || Countup Clock (to what?) || Increments by #08.
|-
| 0x0051-8C || Series of twenty, three-byte segments for NPC's (townsfolk, guards, etc.):||
{| border="1" cellpadding="1"
| '''Byte/Bits''' || '''Controls''' || '''Data'''
|-
| 1, d7-d5 || NPC Type || 000 = Man; 001 = Red Soldier; 010 = Grey Soldier; 011 = Merchant; 100 = King; 101 = Old Man; 110 = Woman; 111 = Stationary Guard
|-
| 1, d4-d0 || x-pos || simple grid coords
|-
| 2, d7 || frame? ||
|-
| 2, d6-d5 || Direction Faced || 00 = north; 01 = east; 10 = south; 11 = west
|-
| 2, d4-d0 || y-pos || simple grid coords
|-
| 3, all bits? || movement ||
|-
|}
|-
|-
| 0x0090-91 || Player X Position (Sprite) || Increments of 0x10 for major position. Relates to NPCs. Should match with 0x003A to ensure NPCs are in correct location on the map.  
| 0x0090-91 || Player X Position (Sprite) || Increments of 0x10 for major position. Relates to NPCs. Should match with 0x003A to ensure NPCs are in correct location on the map.  
Line 37: Line 118:
| 0x0094-95 || Random Number generator state || 0x95 is used for the random value; influenced by 0x94.  
| 0x0094-95 || Random Number generator state || 0x95 is used for the random value; influenced by 0x94.  
|-
|-
| 0x00BA-BB || Experience || Raw experience amount.  Level and other stats are generated from this value (eventually reverting changes wihtin 0x00C5-CD)
| 0x00BA-BB || Experience || Raw experience amount.  Level and other stats are generated from this value (eventually reverting changes within 0x00C5-CD)
|-
| 0x00BC-BD || Gold || Gold
|-
|-
| 0x00BE || Equipment || This byte contains your current equipment. It's compiled from the three values for your sword, your armor, and your shield. Values are below.
| 0x00BE || Equipment || This byte contains your current equipment. It's compiled from the three values for your sword, your armor, and your shield. Values are below.
|-
| 0x00BC-BD || Gold || Gold
|-
|-
| 0x00BF || Magic Keys || Set $00-$0A for that amount of keys. $0A will not show a number. $0B=1, $0C=2, etc.
| 0x00BF || Magic Keys || Set $00-$0A for that amount of keys. $0A will not show a number. $0B=1, $0C=2, etc.
Line 105: Line 186:


|-
|-
| 0x00CF || More Spells || The first two bits are used for spells, the latter 6 bits are unused/unknown:
| 0x00CF || More Spells / Quest Progress || This byte is used for the last two spells, two plot events, and four equipment pieces.


{| border="1" cellpadding="1"  
{| border="1" cellpadding="1"  
Line 113: Line 194:
|-
|-
| *2 || Hurtmore
| *2 || Hurtmore
|-
| *4 || Secret Stairs in Dragonlord's Castle
|-
| *8 || Rainbow Bridge Constructed
|-
| *16 || Dragon's Scale Equipped
|-
| *32 || Fighter's Ring Equipped
|-
| *64 || Cursed Belt Equipped
|-
| *128 || Death Necklace Equipped
|-
|-
|}
|}
Line 124: Line 217:
|-
|-
| 0x00da || Light timer || Set by Radiant spell and counts down. When it reaches 0, light radius is decreased.  
| 0x00da || Light timer || Set by Radiant spell and counts down. When it reaches 0, light radius is decreased.  
|-
| 0x00db || Repel timer || Set by Repel spell to FF and counts down by 2. When it reaches 0, repel wears off.
|-
| 0x00DF || Quest / Combat Progress? || 1-bit = rescued princess, 2-bit = returned princess, 8-bit = left the first room. If you are asleep in combat, the 128-bit is set. When you wake up, it is cleared. 16-bit, 32-bit, 64-bit, 128-bit all cleared when you enter combat.
|-
|-
| 0x00e0 || Terrain / Enemy pointer || In battle, is a pointer to the current enemy type. Out of battle, is a pointer to the current terrain type. Enemy list below.
| 0x00e0 || Terrain / Enemy pointer || In battle, is a pointer to the current enemy type. Out of battle, is a pointer to the current terrain type. Enemy list below.
|-
|-
| 0x00e2 || Enemy HP
| 0x00e2 || Enemy HP || Does not get reset after battle.
|-
| 0x00e4 || Quest Progress || 2-bit = killed Golem, 4-bit = killed Dragonlord, 64-bit = killed Green Dragon
|-  
|-  
| 0x00e6-e7 || Music Track 1 position || Pointer
| 0x00e6-e7 || Music Track 1 position || Pointer
|-
|-
| 0x00ea-eb || Music Track 2 position || Pointer
| 0x00ea-eb || Music Track 2 position || Pointer
|-
|-
| 0x00f4 || Music note delay timer (drum/track 1) || rowspan=2 | Timers for two independent music sources.  If set to 00, that track is paused.  
| 0x00f4 || Music note delay timer (drum/track 1) || rowspan=2 | Timers for two independent music sources.  If set to 00, that track is paused.  
Line 139: Line 238:
| 0x00fc || Music tempo || 00=off, ff=full
| 0x00fc || Music tempo || 00=off, ff=full
|-
|-
| 0x6003 || In battle or not? || 03=in battle, 02=not in battle.
| 0x0112-1CF || Unused stack space
|-
|-
| 0x0200-2FF || OAM (sprite table)
|-
| 0x0400-7BF || Copy of UI/Text layer
|-
| 0x6002 || CHR-ROM page 0 (background) || 00 = Title Screen; 01; Everything Else
|-
| 0x6003 || CHR-ROM page 1 (sprites) || 02 = Non-Battle; 03 = In-Battle
|}


|}
=Related=
<br>
<br>


Enemy IDs:<br/>
{{Internal Data}}
00 = slime<br/>
01 = red slime<br/>
02 = drakee<br/>
03 = ghost<br/>
04 = magician<br/>
05 = magidrakee<br/>
06 = scorpion<br/>
07 = druin<br/>
08 = poltergeist<br/>
09 = droll<br/>
0a = drameema<br/>
0b = skeleton<br/>
0c = warlock<br/>
0d = metal scorpion<br/>
0e = wolf<br/>
0f = wraith<br/>
10 = metal slime<br/>
11 = specter<br/>
12 = wolflord<br/>
13 = druinlord<br/>
14 = drollmagi<br/>
15 = wyvern<br/>
16 = rogue scorpion<br/>
17 = wraith knight<br/>
18 = golem<br/>
19 = goldman<br/>
1a = knight<br/>
1b = magiwyvern<br/>
1c = demon knight<br/>
1d = werewolf<br/>
1e = green dragon<br/>
1f = starwyvern<br/>
20 = wizard<br/>
21 = axe knight<br/>
22 = blue dragon<br/>
23 = stoneman<br/>
24 = armored knight<br/>
25 = red dragon<br/>
26 = dragonlord form 1<br/>
27 = dragonlord form 2 * setting this outside of battle will freeze all NPCs, make movement impossible, black out parts of the screen, etc.<br/><br/>
 
Equipment values:<br/>
    Swords:<br/>
      Bamboo Pole:      0x20<br/>
      Club:            0x40<br/>
      Copper Sword:    0x60<br/>
      Hand Axe:        0x80<br/>
      Broad Sword:      0xA0<br/>
      Flame Sword:      0xC0<br/>
      Erdrick's Sword:  0xE0<br/><br/>
   
    Armor:<br/>
      Clothes:          0x04<br/>
      Leather Armor:    0x08<br/>
      Chain Mail:      0x0C<br/>
      Half Plate Armor: 0x10<br/>
      Full Plate Armor: 0x14<br/>
      Magic Armor:      0x18<br/>
      Erdrick's Armor:  0x1C<br/><br/>
   
    Shields:<br/>
      Small Shield:    0x01<br/>
      Large Shield:    0x02<br/>
      Silver Shield:    0x03
 
 
{{stub}}

Latest revision as of 03:53, 25 May 2024

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

So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?

Main

RAM Function Details
0x000E Unused
0x0011 Map horizontal offset Modifying this offset seems to shift map tiles horizontally?
0x0012 Map load information Modifying this causes other maps to load entirely, but does not impact NPCs
0x0013-14 Tiles, linked Both bytes are always the same and differ on each map. Setting the bytes to 9 will cause the world map to become entirely water.
0x0015 Exterior Tile Changing this changes the tile that is displayed on the border of maps. 0 is grass, 15 is water, 16 in caves, 21 in the throne room
0x0016 Terrain Offset $20 for caves, $10 for most towns, $00 for world map.

The game uses this to determine which slate of background "squares" is utilized by the current area map.

0x0037 A-reg value stored here during BRK interrupt.
0x0038 X-reg value stored here during BRK interrupt.
0x0039 Y-reg value stored here during BRK interrupt.
0x003A Player X Position X position on current map. Map not redrawn on direct change.
0x003B Player Y Position Y position on current map.
0x003E Player V-position on Overworld Map #00 = Horizontal Strip two rows north of Garinham.
0x0042 Player H-position on Overworld Map #00 = Vertical Strip two columns west of Garinham.
0x0045 Map ID
Value Map Value Map
01 World Map 10 Dragonlord B2
02 Charlock Castle 11 Dragonlord B3
03 Ruins of Hauksness 12 Dragonlord B4
04 Tantegel Castle 13 Dragonlord B5
05 Throne Room 14 Dragonlord B6
06 Dragonlord's Lair 15 Swamp Cave
07 Kol 16 Mountain Cave B1
08 Breconary 17 Mountain Cave B2
09 Garinham 18 Garin's Grave B1
0A Cantlin 19 Garin's Grave B2
0B Rimuldar 1A Garin's Grave B3
0C Sun Shrine 1B Garin's Grave B4
0D Rain Shrine 1C Erdrick's Cave B1
0E Magic Temple 1D Erdrick's Cave B2
0F Dragonlord B1
0x0047 Button(s) pressed Uses binary processing. Here are the values:
Value Button Value Button
*1 A 1* Up
*2 B 2* Down
*4 Select 4* Left
*8 Start 8* Right
0x004F Countup Clock on Overworld Activates small status window in upper-left corner when player doesn't move.
0x0050 Countup Clock (to what?) Increments by #08.
0x0051-8C Series of twenty, three-byte segments for NPC's (townsfolk, guards, etc.):
Byte/Bits Controls Data
1, d7-d5 NPC Type 000 = Man; 001 = Red Soldier; 010 = Grey Soldier; 011 = Merchant; 100 = King; 101 = Old Man; 110 = Woman; 111 = Stationary Guard
1, d4-d0 x-pos simple grid coords
2, d7 frame?
2, d6-d5 Direction Faced 00 = north; 01 = east; 10 = south; 11 = west
2, d4-d0 y-pos simple grid coords
3, all bits? movement
0x0090-91 Player X Position (Sprite) Increments of 0x10 for major position. Relates to NPCs. Should match with 0x003A to ensure NPCs are in correct location on the map.
0x0092-93 Player Y Position (Sprite) Increments of 0x10 for major position. Relates to NPCs. Should match with 0x003B to ensure NPCs are in correct location on the map.
0x0094-95 Random Number generator state 0x95 is used for the random value; influenced by 0x94.
0x00BA-BB Experience Raw experience amount. Level and other stats are generated from this value (eventually reverting changes within 0x00C5-CD)
0x00BC-BD Gold Gold
0x00BE Equipment This byte contains your current equipment. It's compiled from the three values for your sword, your armor, and your shield. Values are below.
0x00BF Magic Keys Set $00-$0A for that amount of keys. $0A will not show a number. $0B=1, $0C=2, etc.
0x00C0 Amount of Herbs
0x00C1-0x00C4 Items Each nybble represents an item for a total of 8 items (not counting Magic Keys) in your inventory:
Value Item Value Item
0 Nothing 8 Gwaelin's Love
1 Torch 9 Cursed Belt
2 Fairy Water A Silver Harp
3 Wings B Death Necklace
4 Dragon's Scale C Stones of Sunlight
5 Fairy Flute D Staff of Rain
6 Fighter's Ring E Rainbow Drop
7 Erdrick's Token F Herb
0x00C5 Player HP
0x00C6 Player MP
0x00C7 Player LV
0x00C8 Player Strength
0x00C9 Player Agility
0x00CA Player Max HP
0x00CB Player Max MP
0x00CC Player Attack Power
0x00CD Player Defense Power
0x00CE Spells Uses binary processing. Here are the values:
Value Spell Value Spell
*1 Heal 1* Stopspell
*2 Hurt 2* Outside
*4 Sleep 4* Return
*8 Radiant 8* Repel
0x00CF More Spells / Quest Progress This byte is used for the last two spells, two plot events, and four equipment pieces.
Value Spell
*1 Healmore
*2 Hurtmore
*4 Secret Stairs in Dragonlord's Castle
*8 Rainbow Bridge Constructed
*16 Dragon's Scale Equipped
*32 Fighter's Ring Equipped
*64 Cursed Belt Equipped
*128 Death Necklace Equipped
0x00d0 Light radius Used to determine vision within dungons. Valid values are 01, 03, 05, 07. Can be set to 16, but values that high don't necessarily update the screen outside the centered 7x7 grid.
0x00d8 Menu horiz ptr Horizontal position pointer for battle menu
0x00d9 Menu vert ptr Vertical position pointer for battle menu
0x00da Light timer Set by Radiant spell and counts down. When it reaches 0, light radius is decreased.
0x00db Repel timer Set by Repel spell to FF and counts down by 2. When it reaches 0, repel wears off.
0x00DF Quest / Combat Progress? 1-bit = rescued princess, 2-bit = returned princess, 8-bit = left the first room. If you are asleep in combat, the 128-bit is set. When you wake up, it is cleared. 16-bit, 32-bit, 64-bit, 128-bit all cleared when you enter combat.
0x00e0 Terrain / Enemy pointer In battle, is a pointer to the current enemy type. Out of battle, is a pointer to the current terrain type. Enemy list below.
0x00e2 Enemy HP Does not get reset after battle.
0x00e4 Quest Progress 2-bit = killed Golem, 4-bit = killed Dragonlord, 64-bit = killed Green Dragon
0x00e6-e7 Music Track 1 position Pointer
0x00ea-eb Music Track 2 position Pointer
0x00f4 Music note delay timer (drum/track 1) Timers for two independent music sources. If set to 00, that track is paused.
0x00f8 Music note delay timer (flute/track 2)
0x00fc Music tempo 00=off, ff=full
0x0112-1CF Unused stack space
0x0200-2FF OAM (sprite table)
0x0400-7BF Copy of UI/Text layer
0x6002 CHR-ROM page 0 (background) 00 = Title Screen; 01; Everything Else
0x6003 CHR-ROM page 1 (sprites) 02 = Non-Battle; 03 = In-Battle

Related