Dragon Warrior/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
m (Clarified zp$16's purpose.)
m (Clarified bitfields of zp$51, $54, etc.)
Line 94: Line 94:
| '''Byte/Bits''' || '''Controls''' || '''Data'''
| '''Byte/Bits''' || '''Controls''' || '''Data'''
|-
|-
| 1, all bits? || x-pos || simple grid coords
| 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, d7 || frame? ||  

Revision as of 22:42, 1 October 2013

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


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
0x6002 CHR-ROM page 0 (background) 00 = Title Screen; 01; Everything Else
0x6003 CHR-ROM page 1 (sprites) 02 = Non-Battle; 03 = In-Battle


Enemy IDs:
00 = slime
01 = red slime
02 = drakee
03 = ghost
04 = magician
05 = magidrakee
06 = scorpion
07 = druin
08 = poltergeist
09 = droll
0a = drameema
0b = skeleton
0c = warlock
0d = metal scorpion
0e = wolf
0f = wraith
10 = metal slime
11 = specter
12 = wolflord
13 = druinlord
14 = drollmagi
15 = wyvern
16 = rogue scorpion
17 = wraith knight
18 = golem
19 = goldman
1a = knight
1b = magiwyvern
1c = demon knight
1d = werewolf
1e = green dragon
1f = starwyvern
20 = wizard
21 = axe knight
22 = blue dragon
23 = stoneman
24 = armored knight
25 = red dragon
26 = dragonlord form 1
27 = dragonlord form 2 * setting this outside of battle will freeze all NPCs, make movement impossible, black out parts of the screen, etc.

Equipment values:
Swords:
Bamboo Pole: 0x20
Club: 0x40
Copper Sword: 0x60
Hand Axe: 0x80
Broad Sword: 0xA0
Flame Sword: 0xC0
Erdrick's Sword: 0xE0

Armor:
Clothes: 0x04
Leather Armor: 0x08
Chain Mail: 0x0C
Half Plate Armor: 0x10
Full Plate Armor: 0x14
Magic Armor: 0x18
Erdrick's Armor: 0x1C

Shields:
Small Shield: 0x01
Large Shield: 0x02
Silver Shield: 0x03

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