Zelda II: The Adventure of Link/ROM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
m (rv spam)
m (Xkeeper moved page Zelda II: The Adventure of Link:ROM map to Zelda II: The Adventure of Link/ROM map: normalize subpages and titles)
 
(20 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{rommap|game=Zelda II: The Adventure of Link}}
{{rommap|game=Zelda II: The Adventure of Link}}
---------------------------------------------------------------------


==Other Documentation==
* [[Zelda II: The Adventure of Link:Character Data|Character Data]]
* [[Zelda II: The Adventure of Link:Character Data|Character Data]]
* [[Zelda II: The Adventure of Link:Enemy Data|Enemy Data]]
* [[Zelda II: The Adventure of Link:Enemy Data|Enemy Data]]


==Main Menu==
==Main Menu==
* 0x017339 - Y position for cursor on Save Slot 1
17339 - Y position for cursor on Save Slot 1
* 0x017351 - Y position for cursor on Save Slot 2
17351 - Y position for cursor on Save Slot 2
* 0x017369 - Y position for cursor on Save Slot 3
17369 - Y position for cursor on Save Slot 3
* 0x01737F - Y position for cursor on Register Your Name
1737F - Y position for cursor on Register Your Name
* 0x017391 - Y position for cursor on Elimation Mode
17391 - Y position for cursor on Elimation Mode
* 0x017395 - X position for cursor
17395 - X position for cursor


==Beginning Values==
==Beginning Values==
* 0x017AF7 - Begin with Shield Magic
17AF7 - Begin with Shield Magic
* 0x017AF8 - Begin with Jump Magic
17AF8 - Begin with Jump Magic
* 0x017AF9 - Begin with Life Magic
17AF9 - Begin with Life Magic
* 0x017AFA - Begin with Fairy Magic
17AFA - Begin with Fairy Magic
* 0x017AFB - Begin with Fire Magic
17AFB - Begin with Fire Magic
* 0x017AFC - Begin with Reflect Magic
17AFC - Begin with Reflect Magic
* 0x017AFD - Begin with Spell Magic
17AFD - Begin with Spell Magic
* 0x017AFE - Begin with Thunder Magic
17AFE - Begin with Thunder Magic
* 0x017AFF - Number of Magic Containers to begin game
17AFF - Number of Magic Containers to begin game
* 0x017B00 - Number of Heart Containers to begin game
17B00 - Number of Heart Containers to begin game
* 0x017B01 - Begin with Candle
17B01 - Begin with Candle
* 0x017B02 - Begin with Power Glove
17B02 - Begin with Power Glove
* 0x017B03 - Begin with Raft
17B03 - Begin with Raft
* 0x017B04 - Begin with Boots
17B04 - Begin with Boots
* 0x017B05 - Begin with Flute
17B05 - Begin with Flute
* 0x017B06 - Begin with Cross
17B06 - Begin with Cross
* 0x017B07 - Begin with Hammer
17B07 - Begin with Hammer
* 0x017B08 - Begin with Magic Key
17B08 - Begin with Magic Key
* 0x017B10 - Number of Crystals to begin game
17B10 - Number of Crystals to begin game
* 0x017B12 - Techs (Downward Thrust 10) (Upward Thrust 04) (Both 14)
17B12 - Techs (Downward Thrust 10) (Upward Thrust 04) (Both 14)
* 0x017B1D - 0x017B24 - Letter Values when blanking a name out
17B1D - 0x017B24 - Letter Values when blanking a name out
* 0x017B25 - 0x017C04 - Bit defaults for sprites (keys, items, etc.)
17B25 - 0x017C04 - Bit defaults for sprites (keys, items, etc.)
* 0x01C369 - Number of lives to begin game
1C369 - Number of lives to begin game
 
==Magic Spell Effect Pointers==
from    to
----    ----
00E58 - 00E59 - Shield
00E5A - 00E5B - Jump
00E5C - 00E5D - Life
00E5E - 00E5F - Fairy
00E60 - 00E61 - Fire
00E62 - 00E63 - Reflect
00E64 - 00E65 - Spell
00E66 - 00E67 - Thunder
 
It's possible to alter the order in which Link "learns" magic spells by re-arranging the data from [$E58-$E67]. (For example, to make Thunder the first spell Link acquires, replace the data at [$E58-$E59] with that from [$E66-$E67]. Note, however, that the spell will still be under the first slot and named "Shield.")
 
==Sound Data==
18000  Music Engine Entry Point, Title Screen (Replace with 'RTS' to disable the music engine)
19000  Music Engine Entry Point, Rest of the Game (Replace with 'RTS' to disable the music engine)
1A01A  Overworld music string
1A027  Battleground music string
1A02C  "Got a Heart/Item/Etc." music string


==PPU Data==
==PPU Data==


===Overworld===
===Overworld===
* 0x0007B3 - 0x0007B6 - PPU data for Towns
from    to
* 0x0007B7 - 0x0007BA - PPU data for Caves
----    ----
* 0x0007BB - 0x0007BE - PPU data for Palaces
007B3 - 007B6 - PPU data for Towns
* 0x0007BF - 0x0007C2 - PPU data for Bridges
007B7 - 007BA - PPU data for Caves
* 0x0007C3 - 0x0007C6 - PPU data for Desert
007BB - 007BE - PPU data for Palaces
* 0x0007C7 - 0x0007CA - PPU data for Grass Areas
007BF - 007C2 - PPU data for Bridges
* 0x0007CB - 0x0007CE - PPU data for Forests
007C3 - 007C6 - PPU data for Desert
* 0x0007CF - 0x0007D2 - PPU data for Swamps
007C7 - 007CA - PPU data for Grass Areas
* 0x0007D3 - 0x0007D6 - PPU data for Graveyards
007CB - 007CE - PPU data for Forests
* 0x0007D7 - 0x0007DA - PPU data for Trails
007CF - 007D2 - PPU data for Swamps
* 0x0007DB - 0x0007DE - PPU data for Lava Areas
007D3 - 007D6 - PPU data for Graveyards
* 0x0007DF - 0x0007E2 - PPU data for Mountains
007D7 - 007DA - PPU data for Trails
* 0x0007E3 - 0x0007E6 - PPU data for Water
007DB - 007DE - PPU data for Lava Areas
* 0x0007E7 - 0x0007EA - PPU data for Walkable Water
007DF - 007E2 - PPU data for Mountains
* 0x0007EB - 0x0007EE - PPU data for Rocks/Roadblocks
007E3 - 007E6 - PPU data for Water
* 0x0007EF - 0x0007F2 - PPU data for River Devil
007E7 - 007EA - PPU data for Walkable Water
007EB - 007EE - PPU data for Rocks/Roadblocks
007EF - 007F2 - PPU data for River Devil


===Western Hyrule===
===Western Hyrule===
* 0x0044EB - 0x0044EE - PPU data for Grass on Battlefield
044EB - 044EE - PPU data for Grass on Battlefield


===Eastern Hyrule===
===Eastern Hyrule===
* 0x0084DF - 0x0084E2 - PPU data for Leaves of Trees on Battlefield
from    to
* 0x0084E3 - 0x0084E6 - PPU data for Hanging Leaves on Battlefield
----    ----
* 0x0084EB - 0x0084EE - PPU data for Grass on Battlefield
084DF - 084E2 - PPU data for Leaves of Trees on Battlefield
084E3 - 084E6 - PPU data for Hanging Leaves on Battlefield
084EB - 084EE - PPU data for Grass on Battlefield


===Towns===
===Towns===
* 0x00C3F6 - 0x00C3F9 - PPU data for Top of Exterior Windows
from    to
* 0x00C3FA - 0x00C3FD - PPU data for Bottom of Exterior Windows
----    ----
* 0x00C44E - 0x00C451 - PPU data for left side of Clouds
0C3F6 - 0C3F9 - PPU data for Top of Exterior Windows
* 0x00C452 - 0x00C455 - PPU data for right side of Larger Clouds
0C3FA - 0C3FD - PPU data for Bottom of Exterior Windows
* 0x00C456 - 0x00C459 - PPU data for right side of Smaller Clouds
0C44E - 0C451 - PPU data for left side of Clouds
* 0x00C45A - 0x00C45D - PPU data for angle of tunnel right
0C452 - 0C455 - PPU data for right side of Larger Clouds
* 0x00C45E - 0x00C461 - PPU data for tunnel wall right
0C456 - 0C459 - PPU data for right side of Smaller Clouds
* 0x00C4E2 - 0x00C4E5 - PPU data for floors inside buildings
0C45A - 0C45D - PPU data for angle of tunnel right
* 0x00C6B2 - 0x00C6B5 - PPU data for Sky
0C45E - 0C461 - PPU data for tunnel wall right
* 0x00C6BA - 0x00C6BD - PPU data for background of Basements
0C4E2 - 0C4E5 - PPU data for floors inside buildings
* 0x00C6C6 - 0x00C6C9 - PPU data for Bushs
0C6B2 - 0C6B5 - PPU data for Sky
* 0x00C6FE - 0x00C701 - PPU data for Ground
0C6BA - 0C6BD - PPU data for background of Basements
* 0x00C706 - 0x00C709 - PPU data for Walls in Basements
0C6C6 - 0C6C9 - PPU data for Bushs
0C6FE - 0C701 - PPU data for Ground
0C706 - 0C709 - PPU data for Walls in Basements


==Palace Data==
==Palace Data==
* 0x010480 - 0x0104DF - Palettes for Outside the 6 Palaces
from    to
* 0x013F10 - 0x013F6F - Palettes for the 6 Palaces Interiors
----    ----
* 0x01C46B - 0x01C47A - Palette for Overworld
10480 - 104DF - Palettes for Outside the 6 Palaces
* 0x01C47B - 0x01C48A - Sprite pallet set for Overworld
13F10 - 13F6F - Palettes for the 6 Palaces Interiors
1C46B - 1C47A - Palette for Overworld
1C47B - 1C48A - Sprite pallet set for Overworld


===Graphics Set===
===Graphics Set===
* 0x01CD3A - Graphics Set for Palace 1
1CD3A - Graphics Set for Palace 1
* 0x01CD3B - Graphics Set for Palace 2
1CD3B - Graphics Set for Palace 2
* 0x01CD3C - Graphics Set for Palace 3
1CD3C - Graphics Set for Palace 3
* 0x01CD3E - Graphics Set for Palace 4
1CD3E - Graphics Set for Palace 4
* 0x01CD42 - Graphics Set for Palace 5
1CD42 - Graphics Set for Palace 5
* 0x01CD43 - Graphics Set for Palace 6
1CD43 - Graphics Set for Palace 6
* 0x01CD44 - Graphics Set for Great Palace
1CD44 - Graphics Set for Great Palace


===Palette Pointers===
===Palette Pointers===
* 0x01CD45 - Palette Pointer for Palace 1
1CD45 - Palette Pointer for Palace 1
* 0x01CD46 - Palette Pointer for Palace 2
1CD46 - Palette Pointer for Palace 2
* 0x01CD47 - Palette Pointer for Palace 3
1CD47 - Palette Pointer for Palace 3
* 0x01CD49 - Palette Pointer for Palace 4
1CD49 - Palette Pointer for Palace 4
* 0x01CD4D - Palette Pointer for Palace 5
1CD4D - Palette Pointer for Palace 5
* 0x01CD4E - Palette Pointer for Palace 6
1CD4E - Palette Pointer for Palace 6
* 0x01CD4F - Palette Pointer for Great Palace
1CD4F - Palette Pointer for Great Palace


==Overworld Data==
== Overworld ==


===Overworld Map===
=== Overworld Map Data ===


The overworld maps of the two main continents are on a tilemap, 64 wide by 75 tall spaces. Although the Death Mountain/Maze Island map is 64 x 41, there is a considerable amount of unused space at the end. This allows for a significant amount of vertical expansion.
506C - 538C - West Hyrule
665C - 6942 - Death Mountain
9056 - 936F - East Hyrule
A65C - A942 - Maze Island


The tilemaps are encoded in an RLE (Run Length Encoding) format. Each byte in these ranges codes for a horizontal strip of land.  The most significant hex-digit (first hex digit) determines which of the sixteen land types will be used for the strip, while the second hex-digit controls the size of the strip, then add 1.  In this latter case, the size will always be one space more than the digit used to program it. In other words, a seven will code for a strip eight spaces long, an F will code for a strip sixteen spaces long, a zero will code for a single space, etc.
The 4 Overworld maps are 64 tiles wide, and their respective heights are variable. Overworld data is encoded in an RLE (Run Length Encoding) format. Each byte codes for a horizontal strip of terrain, as follows:


Or in other words:
  xxxx .... - Length (add 1)
  xxxx.... - Tile Type
  .... xxxx - Type
  ....xxxx - Length of strip (add 1 afterwards)


The tile values are assigned as follows:  
Table of Tile Types:


* 0 = Town  
0   Town
* 1 = Cave  
1   Cave
* 2 = Palace  
2   Palace
* 3 = Bridge  
3   Bridge
* 4 = Desert  
4   Desert
* 5 = Grass  
5   Grass
* 6 = Forest  
6   Forest
* 7 = Swamp  
7   Swamp
* 8 = Graveyard  
8   Graveyard
* 9 = Plains (safe yellow ground)
9   Road
* A = Lava (when used in West Hyrule, touching an enemy will trigger a grassland battleground)
A   Lava
* B = Mountain  
B   Mountain
* C = Water  
C   Water
* D = Walkable Water  
D   Water (walkable)
* E = Obstacle Stone
E   Rock
* F = Black Devil (flute may not remove in West Hyrule)
F   Spider


====Overworld in RAM====
The compressed overworld map is copied to RAM to allow the game to modify the map.  Tiles which can be modified (Roadblock, River Devil, Hidden location) must not be part of another horizontal strip, they must be their own byte, and have length 0.
The overworld is stored in NES RAM at 0x7C00.


=====Rock Pointers=====
Data Structure Example from West Hyrule (first four bytes starting at 0x506C):
These control which byte in ram gets turned into a single rock (B0) after beating a palace.
Keep in mind that the data here is RAM pointers, the base is 0x7C00, and the offset is how many bytes into the compressed map.
* 0x479F - First palace (in west hyrule)
* 0x47A1 - Second palace
* 0x47A3 - Third palace
* 0x47A5 - Fourth Palace (in Death Mountain, probably not used)
* 0x1879F - Fifth Palace (in east hyrule)
* 0x187A1 - Sixth Palace
* 0x187A5 - Fourth Palace (in Maze Island)


====Overworld Data Locations ====
<pre>BB DC 74 FC ...</pre>


* 0x00506C - 0x00538C - Western Hyrule
* BB - 12 (B + 1) Mountain (B) Tiles
* 0x009056 - 0x00936F - Eastern Hyrule
[[File:Zelda2-WestHyruleByte1.png]]
* 0x00665C - 0x0068F7 - Death Mountain and Maze Island (Used for Death Mountain)
* 0x00A65C - 0x00A8F7 - Death Mountain and Maze Island (Used for Maze Island)


* DC - 14 (D + 1) Water (C) Tiles
[[File:Zelda2-WestHyruleByte2.png]]


* 74 - 8 (7 + 1) Desert (4) Tiles
[[File:Zelda2-WesthyruleByte3.png]]


===Area Pointers - General Information===
* FC - 16 (F + 1) Water (C) Tiles
[[File:Zelda2-WestHyruleByte4.png]]


There appear to be two layers of pointer coordinates for the overworld maps. The reason for this is still being researched, but it appears to give the game greater lattitude in distinguishing certain types of side-scrolling areas (single-entrance caves, single-screen fairy encounters, etc.) from others (palaces, towns, etc.). Failure to code new pointer coordinates with respect to their intrinsic HI/LOW status can result in junk areas being loaded, winding up in the original pointer location upon exiting an area, etc.  
* BB DC 74 FC
[[File:Zelda2-WestHyrule4Bytes.png]]


In both Eastern and Western Hyrule, the horizontal (X-axis) pointers range from 00 through 3F. Simultaneously, a second layer of X-axis pointers ranges from 40 through 7F. These "HI" values (always $40 more than their corresponding "LOW" values) tend to be used for towns and certain caves. Similarly, the vertical (Y-axis) pointers range from 1E to 68, top-to-bottom. The "HI" level pointers range from 9E to E8 (always $80 higher than their corresponding "LOW" values). The Y-axis "HI" values seem to be associated with towns, palaces and transition points to other maps.
=== Overworld in RAM ===


In the following tables, each pointer will be identified as either "HI" or "LOW". Note that the HI/LOW status of a pointer on one axis has no relation to its status on the other; there are plenty of pointers with a mixed orientation such as HI-X / LOW-Y and vice versa.
The compressed Overworld map is copied to Cartridge RAM to allow the game to modify the map. Data is stored between 0x7C00 and 0x7FFF.


===Area Pointers - West Hyrule===
=== Palace Pointers ===
* 0x00462F - Y position for Zelda's castle [LOW]
* 0x004630 - Y position for Trophy cave [LOW]
* 0x004631 - Y position for Forest with 50 exp. bag and Aches [LOW]
* 0x004632 - Y position for 1st Magic Container cave [LOW]
* 0x004633 - Y position for Forest with 100 exp. bag and Megmets [LOW]
* 0x004634 - Y position for 1st Heart Container area [LOW]
* 0x004635 - Y position for Lost Woods [LOW]
* 0x004636 - Y position for Bubble path to 1st Heart Container [LOW]
* 0x004637 - Y position for 1-up doll in swamp [LOW]
* 0x004638 - Y position for Red Magic Jar in graveyard [LOW]
* 0x004639 - Y position for Northern exit of cave to Palace 1 [LOW]
* 0x00463A - Y position for Southern exit of cave to Palace 1 [LOW]
* 0x00463B - Y position for Northern exit of Western Mt. caves [LOW]
* 0x00463C - Y position for Southern exit of Western Mt. caves [LOW]
* 0x00463D - Y position for Megmet cave and 200 exp. bag [LOW]
* 0x00463E - Y position for Water of Life cave [LOW]
* 0x00463F - Y position for 2nd Heart Container cave [LOW]
* 0x004640 - Y position for Hole to Palace 3 cave [LOW]
* 0x004641 - Y position for Caves on Palace 3's island [LOW]
* 0x004642 - Y position for North and South bridge to island before Death Mt. [LOW]
* 0x004643 - Y position for East and West bridge to island before Death Mt. [LOW]
* 0x004644 - Y position for West exit of bridge after Death Mt. [LOW]
* 0x004645 - Y position for East exit of bridge after Death Mt. [LOW]
* 0x004646 - Y position for Forest with Fairy after Western Mt. cave [LOW]
* 0x004647 - Y position for Red Magic Jar in swamp [LOW]
* 0x004648 - Y position for forest with Fairy East of island before Death Mt. [LOW]
* 0x004649 - Y position for Lost Woods [LOW]
* 0x00464A - Y position for Lost Woods [LOW]
* 0x00464B - Y position for Lost Woods [LOW]
* 0x00464C - Y position for Lost Woods [LOW]
* 0x00464D - Y position for Red Magic Jar on trail, in swamp [LOW]
* 0x00464E - Y position for Extra Red Magic Jar, on beach (not used) [LOW?]
* 0x00464F - Y position for 1-up doll on beach [LOW]
* 0x004658 - Y position for Raft Dock to East Hyrule [HI]
* 0x004659 - Y position for Cave entrance to Death Mountain [HI]
* 0x00465A - Y position for Cave exit to Death Mountain [HI]
* 0x00465B - Y position for King's Tomb [HI]
* 0x00465C - Y position for Rauru [HI]
* 0x00465E - Y position for Ruto [HI]
* 0x00465F - Y position for Southern Saria [HI]
* 0x004660 - Y position for Northern Saria [HI]
* 0x004661 - Y position for Bagu's Cabin [HI]
* 0x004662 - Y position for Mido [HI]
* 0x004663 - Y position for Parapa Palace [HI]
* 0x004664 - Y position for Swamp Palace [HI]
* 0x004665 - Y position for Island Palace [HI]
---------------
* 0x00466E - X position for Zelda's castle [LOW]
* 0x00466F - X position for Trophy cave [LOW]
* 0x004670 - X position for Forest with 50 exp. bag and Aches [LOW]
* 0x004671 - X position for 1st Magic Container cave [LOW]
* 0x004672 - X position for Forest with 100 exp. bag and Megmets [LOW]
* 0x004673 - X position for 1st Heart Container area [LOW]
* 0x004674 - X position for Lost Woods [LOW]
* 0x004675 - X position for Bubble path to 1st Heart Container [LOW]
* 0x004676 - X position for 1-up doll in swamp [LOW]
* 0x004677 - X position for Red Magic Jar in grave yard [LOW]
* 0x004678 - X position for Northern exit for cave to Palace 1 [LOW]
* 0x004679 - X position for Southern exit for cave to Palace 1 [HI]
* 0x00467A - X position for Northern exit of Western Mt. cave [LOW]
* 0x00467B - X position for Southern exit of Western Mt. cave [HI]
* 0x00467C - X position for Megmet caves and 200 exp. bag [LOW]
* 0x00467D - X position for Water of Life cave [LOW]
* 0x00467E - X position for 2nd Heart Container cave [LOW]
* 0x00467F - X position for Hole to Palace 3 cave [LOW]
* 0x004680 - X position for Caves on Palace 3's island [HI]
* 0x004681 - X position for North and South bridge to island before Death Mt. [LOW]
* 0x004682 - X position for East and West bridge to island before Death Mt. [LOW]
* 0x004683 - X position for West exit of bridge after Death Mt. [LOW]
* 0x004684 - X position for East exit of bridge after Death Mt. [HI]
* 0x004685 - X position for forest with Fairy after Western Mt. cave [LOW]
* 0x004686 - X position for Red Magic Jar in swamp [LOW]
* 0x004687 - X position for forest with fairy East of island before Death Mt. [LOW]
* 0x004688 - X position for Lost Woods [LOW]
* 0x004689 - X position for Lost Woods [LOW]
* 0x00468A - X position for Lost Woods [LOW]
* 0x00468B - X position for Lost Woods [LOW]
* 0x00468C - X position for Red Magic Jar on trail, in swamp [LOW]
* 0x00468D - X position for Extra Red Magic Jar, on beach (not used) [LOW?]
* 0x00468E - X position for 1-up doll on beach [LOW]
* 0x004697 - X position for Raft Dock to East Hyrule [LOW]
* 0x004698 - X position for Cave entrance to Death Mountain [LOW]
* 0x004699 - X position for Cave exit to Death Mountain [LOW]
* 0x00469A - X position for King's Tomb [LOW]
* 0x00469B - X position for Rauru [HI]
* 0x00469D - X position for Ruto [HI]
* 0x00469E - X position for Southern Saria [LOW]
* 0x00469F - X position for Northern Saria [HI]
* 0x0046A0 - X position for Bagu's Cabin [LOW]
* 0x0046A1 - X position for Mido [HI]
* 0x0046A2 - X position for Parapa Palace [LOW]
* 0x0046A3 - X position for Swamp Palace [LOW]
* 0x0046A4 - X position for Island Palace [LOW]


===Area Pointers - East Hyrule===
These control which byte in Cartridge RAM gets turned into a single rock (0B) after completing a palace.
* 0x00862f - Y position for Forest with 500 Exp. bag, west of Nabooru [LOW]
Data is Cartridge RAM pointers, the base is 0x7C00, and the offset is how many bytes into the compressed map.
* 0x008630 - Y position for Forest with 500 Exp. bag, north of 3-Eye Rock [LOW]
* 0x008631 - Y position for 1st Forced battle scene, after River Devil [LOW]
* 0x008632 - Y position for 2nd Forced battle scene, after River Devil [LOW]
* 0x008633 - Y position for 3rd Forced battle scene, after River Devil [LOW]
* 0x008634 - Y position for Forced battle scene, entering Path of Fire [LOW]
* 0x008635 - Y position for Bridge North of Old Kasuto [LOW]
* 0x008636 - Y position for Bridge East of Old Kasuto [LOW]
* 0x008637 - Y position for 2nd battle scene, before Darunia [LOW]
* 0x008638 - Y position for 1st battle scene, before Darunia [LOW]
* 0x008639 - Y position for Heart Container in Ocean [LOW]
* 0x00863A - Y position for south cave, north of Nabooru [LOW]
* 0x00863B - Y position for north cave, north of Nabooru [LOW]
* 0x00863C - Y position for Cave with 500 exp. bag, south of Nabooru [LOW]
* 0x00863D - Y position for Cave with 500 exp. bag, North of Old Kasuto [LOW]
* 0x00863E - Y position for west cave, near New Kasuto [LOW]
* 0x00863F - Y position for east cave, near New Kasuto [LOW]
* 0x008640 - Y position for Cave C, on the way to Great Palace [LOW]
* 0x008641 - Y position for Cave D, on the way to Great Palace [LOW]
* 0x008642 - Y position for CAve B, on the way to Great Palace [LOW]
* 0x008643 - Y position for Cave A, on the way to Great Palace [LOW]
* 0x008644 - Y position for 1-up in swamp [LOW]
* 0x008645 - Y position for Extra battle scene(Same spot as 0x00864B) [LOW]
* 0x008646 - Y position for 500 exp. bag on beach, near 5th Palace [LOW]
* 0x008647 - Y position for Red Magic Jar on beach, near Nabooru [LOW]
* 0x008648 - Y position for 1-up on beach [LOW]
* 0x008649 - Y position for Heart Container on beach, east of 3-Eye Rock [LOW]
* 0x00864A - Y position for Forest with fairy, southwest of Nabooru [LOW]
* 0x00864B - Y position for 500 exp. bag in Path of Fire [LOW]
* 0x00864C - Y position for Red Magic Jar in Path of Fire [LOW]
* 0x00864D - Y position for 3rd Forced Battle scene in the Path of Fire [LOW]
* 0x00864E - Y position for 2nd Forced Battle scene in the Path of Fire [LOW]
* 0x00864F - Y position for 1st Forced Battle scene in the Path of Fire [LOW]
* 0x008657 - Y position for Bridge to Maze Island [HI]
* 0x008658 - Y position for Raft dock, back to West Hyrule [HI]
* 0x00865C - Y position for Nabooru [HI]
* 0x00865E - Y position for Darunia [HI]
* 0x008660 - Y position for New Kasuto† [HI]
* 0x008662 - Y position for Old Kasuto [HI]
* 0x008663 - Y position for 5th Palace [HI]
* 0x008664 - Y position for 6th Palace‡ [HI]
* 0x008665 - Y position for Great Palace [HI]


† Because New Kasuto is hidden, the Y-value is stored as 00. The town can be "forced out of hiding" by replacing this value with D1. (The town still won't be visible on the overworld map.)  
West Hyrule / Death Mountain
479F - Palace 1
47A1 - Palace 2
47A3 - Palace 3
47A5 - Palace 4 (in Death Mountain)
East Hyrule / Maze Island
879F - Palace 5
87A1 - Palace 6
87A5 - Invalid pointer
87A7 - Palace 4 (in Maze Island)


‡ Again, the hidden nature of the 6th Palace results in a stored Y-value of 00. To bring the palace out of hiding (making it eligible for re-positioning elsewhere), replace this value with E6.
=== Overworld Areas ===


-------------------
Each area has 4 bytes that define various informations, like position on the Overworld, destination map number, destination world number, where Link starts in the side view mode, etc. Each byte is formatted as follows:
* 0x00866E - X position for Forest with 500 Exp. bag, west of Nabooru [LOW]
* 0x00866F - X position for Forest with 500 Exp. bag, north of 3-Eye Rock [LOW]
* 0x008670 - X position for 1st Forced battle scene, after River Devil [LOW]
* 0x008671 - X position for 2nd Forced battle scene, after River Devil [LOW]
* 0x008672 - X position for 3rd Forced battle scene, after River Devil [LOW]
* 0x008673 - X position for Forced battle scene, entering Path of Fire [LOW]
* 0x008674 - X position for Bridge North of Old Kasuto [LOW]
* 0x008675 - X position for Bridge East of Old Kasuto [LOW]
* 0x008676 - X position for 2nd battle scene, before Darunia [LOW]
* 0x008677 - X position for 1st battle scene, before Darunia [LOW]
* 0x008678 - X position for Heart Container in Ocean [LOW]
* 0x008679 - X position for south cave, north of Nabooru [LOW]
* 0x00867A - X position for north cave, north of Nabooru [HI]
* 0x00867B - X position for Cave with 500 exp. bag, south of Nabooru [LOW]
* 0x00867C - X position for Cave with 500 exp. bag, North of Old Kasuto [LOW]
* 0x00867D - X position for west cave, near New Kasuto [LOW]
* 0x00867E - X position for east cave, near New Kasuto [HI]
* 0x00867F - X position for Cave C, on the way to Great Palace [LOW]
* 0x008680 - X position for Cave D, on the way to Great Palace [HI]
* 0x008681 - X position for CAve B, on the way to Great Palace [LOW]
* 0x008682 - X position for Cave A, on the way to Great Palace [HI]
* 0x008683 - X position for 1-up in swamp [LOW]
* 0x008684 - X position for Extra battle scene(Same spot as 0x00868A) [LOW]
* 0x008685 - X position for 500 exp. bag on beach, near 5th Palace [LOW]
* 0x008686 - X position for Red Magic Jar on beach, near Nabooru [LOW]
* 0x008687 - X position for 1-up on beach [LOW]
* 0x008688 - X position for Heart Container on beach, east of 3-Eye Rock [LOW]
* 0x008689 - X position for Forest with fairy, southwest of Nabooru [LOW]
* 0x00868A - X position for 500 exp. bag in Path of Fire [LOW]
* 0x00868B - X position for Red Magic Jar in Path of Fire [LOW]
* 0x00868C - X position for 3rd Forced Battle scene in the Path of Fire [LOW]
* 0x00868D - X position for 2nd Forced Battle scene in the Path of Fire [LOW]
* 0x00868E - X position for 1st Forced Battle scene in the Path of Fire [LOW]
* 0x008696 - X position for Bridge to Maze Island [LOW]
* 0x008697 - X position for Raft dock, back to West Hyrule [LOW]
* 0x00869B - X position for Nabooru [HI]
* 0x00869D - X position for Darunia [HI]
* 0x00869F - X position for New Kasuto [LOW]
* 0x0086A1 - X position for Old Kasuto [HI]
* 0x0086A2 - X position for 5th Palace [LOW]
* 0x0086A3 - X position for 6th Palace [LOW]
* 0x0086A4 - X position for Great Palace [LOW]


===Area Pointers - Death Mountain===
<pre>Byte 0
Use these maps as references.


[http://www.rpgclassics.com/shrines/nes/zelda2/west.shtml Death Mountain].
.xxx xxxx - Y position
x... .... - External to this world


[http://www.rpgclassics.com/shrines/nes/zelda2/east.shtml Maze Island].
Byte 1 (offset 3F bytes from Byte 0)


-------------
..xx xxxx - X position
* 0x00610C - Y position for Cave B West Exit
xx.. .... - On exit, appear at the location of area index minus this value (0-3)
* 0x00610D - Y position for Cave B East Exit
* 0x00610E - Y position for Cave C West Exit
* 0x00610F - Y position for Cave C East Exit
* 0x006110 - Y position for Cave E South Exit
* 0x006111 - Y position for Cave E North Exit
* 0x006112 - Y position for Cave D West Exit
* 0x006113 - Y position for Cave D East Exit
* 0x006114 - Y position for Cave F West Exit
* 0x006115 - Y position for Cave F East Exit
* 0x006116 - Y position for Cave J West Exit
* 0x006117 - Y position for Cave J East Exit
* 0x006118 - Y position for Cave I North Exit
* 0x006119 - Y position for Cave I South Exit
* 0x00611A - Y position for Cave L North Exit
* 0x00611B - Y position for Cave L South Exit
* 0x00611C - Y position for Cave O North Exit
* 0x00611D - Y position for Cave O South Exit
* 0x00611E - Y position for Cave M West Exit
* 0x00611F - Y position for Cave M East Exit
* 0x006120 - Y position for Cave P West Exit
* 0x006121 - Y position for Cave P East Exit
* 0x006122 - Y position for Cave Q West Exit
* 0x006123 - Y position for Cave Q East Exit
* 0x006124 - Y position for Cave R South Exit
* 0x006125 - Y position for Cave R North Exit
* 0x006126 - Y position for Cave N South Exit
* 0x006127 - Y position for Cave N North Exit
* 0x006128 - Y position for Hammer Cave
* 0x006129 - Y position for Elevator Cave G West Exit (Bottom left)
* 0x00612A - Y position for Elevator Cave G East Exit (Bottom right)
* 0x00612B - Y position for Elevator Cave G West Exit (Top left)
* 0x00612C - Y position for Elevator Cave G East Exit (Top Right)
* 0x00612D - Y position for Elevator Cave H West Exit (Top left)
* 0x00612E - Y position for Elevator Cave H East Exit (Top Right)
* 0x00612F - Y position for Elevator Cave H North Exit (Bottom left)
* 0x006130 - Y position for Elevator Cave H South Exit (Bottom right)
* 0x006131 - Y position for Maze Island Forced Battle Scene 2
* 0x006132 - Y position for Maze Island Forced Battle Scene 1
* 0x006133 - Y position for Maze Island's Magic Container
* 0x006134 - Y position for Bridge back to East Hyrule
* 0x006136 - Y position for Cave A back to West Hyrule
* 0x006137 - Y position for Cave K back to West Hyrule
* 0x006140 - Y position for 4th Palace
* 0x006143 - Y position for Maze Island Child
* 0x006144 - Y position for Death Mountain's Magic Container
* 0x006145 - Y position for Maze Island Forced Battle Scene 3
* 0x006146 - Y position for Maze Island Forced Battle Scene 7
* 0x006147 - Y position for Maze Island Forced Battle Scene 4
* 0x006148 - Y position for Maze Island Forced Battle Scene 5
* 0x006149 - Y position for Maze Island Forced Battle Scene 6
-----------------------
* 0x00614B - X position for Cave B West Exit
* 0x00614C - X position for Cave B East Exit
* 0x00614D - X position for Cave C West Exit
* 0x00614E - X position for Cave C East Exit
* 0x00614F - X position for Cave E South Exit
* 0x006150 - X position for Cave E North Exit
* 0x006151 - X position for Cave D West Exit
* 0x006152 - X position for Cave D East Exit
* 0x006153 - X position for Cave F West Exit
* 0x006154 - X position for Cave F East Exit
* 0x006155 - X position for Cave J West Exit
* 0x006156 - X position for Cave J East Exit
* 0x006157 - X position for Cave I North Exit
* 0x006158 - X position for Cave I South Exit
* 0x006159 - X position for Cave L North Exit
* 0x00615A - X position for Cave L South Exit
* 0x00615B - X position for Cave O North Exit
* 0x00615C - X position for Cave O South Exit
* 0x00615D - X position for Cave M West Exit
* 0x00615E - X position for Cave M East Exit
* 0x00615F - X position for Cave P West Exit
* 0x006160 - X position for Cave P East Exit
* 0x006161 - X position for Cave Q West Exit
* 0x006162 - X position for Cave Q East Exit
* 0x006163 - X position for Cave R South Exit
* 0x006164 - X position for Cave R North Exit
* 0x006165 - X position for Cave N South Exit
* 0x006166 - X position for Cave N North Exit
* 0x006167 - X position for Hammer Cave
* 0x006168 - X position for Elevator Cave G West Exit (Bottom left)
* 0x006169 - X position for Elevator Cave G East Exit (Bottom right)
* 0x00616A - X position for Elevator Cave G West Exit (Top left)
* 0x00616B - X position for Elevator Cave G East Exit (Top Right)
* 0x00616C - X position for Elevator Cave H West Exit (Top left)
* 0x00616D - X position for Elevator Cave H East Exit (Top Right)
* 0x00616E - X position for Elevator Cave H North Exit (Bottom left)
* 0x00616F - X position for Elevator Cave H South Exit (Bottom right)
* 0x006170 - X position for Maze Island Forced Battle Scene 2
* 0x006171 - X position for Maze Island Forced Battle Scene 1
* 0x006172 - X position for Maze Island's Magic Container
* 0x006173 - X position for Bridge back to East Hyrule
* 0x006175 - X position for Cave A back to West Hyrule
* 0x006176 - X position for Cave K back to West Hyrule
* 0x00617F - X position for 4th Palace
* 0x006182 - X position for Maze Island Child
* 0x006183 - X position for Death Mountain's Magic Container
* 0x006184 - X position for Maze Island Forced Battle Scene 3
* 0x006185 - X position for Maze Island Forced Battle Scene 7
* 0x006186 - X position for Maze Island Forced Battle Scene 4
* 0x006187 - X position for Maze Island Forced Battle Scene 5
* 0x006188 - X position for Maze Island Forced Battle Scene 6


===Area Pointers - Maze Island===
Byte 2 (offset 7E bytes from Byte 0)
Use these maps as references.


[http://www.rpgclassics.com/shrines/nes/zelda2/west.shtml Death Mountain].
..xx xxxx - Map number
xx.. .... - Horizontal position to enter within map
    0 = enter from the left
    1 = enter at x=256 or from the right for 2 screens maps
    2 = enter at x=512 or from the right for 3 screens maps
    3 = enter from the right for 4 screens maps


[http://www.rpgclassics.com/shrines/nes/zelda2/east.shtml Maze Island].
Byte 3 (offset BD bytes from Byte 0)


-------------
...x xxxx - World number
* 0x00A10C - Y position for Cave B West Exit
..x. .... - Forced enter from the right edge of screen
* 0x00A10D - Y position for Cave B East Exit
.x.. .... - Pass through
* 0x00A10E - Y position for Cave C West Exit
x... .... - Fall in hole
* 0x00A10F - Y position for Cave C East Exit
</pre>
* 0x00A110 - Y position for Cave E South Exit
* 0x00A111 - Y position for Cave E North Exit
* 0x00A112 - Y position for Cave D West Exit
* 0x00A113 - Y position for Cave D East Exit
* 0x00A114 - Y position for Cave F West Exit
* 0x00A115 - Y position for Cave F East Exit
* 0x00A116 - Y position for Cave J West Exit
* 0x00A117 - Y position for Cave J East Exit
* 0x00A118 - Y position for Cave I North Exit
* 0x00A119 - Y position for Cave I South Exit
* 0x00A11A - Y position for Cave L North Exit
* 0x00A11B - Y position for Cave L South Exit
* 0x00A11C - Y position for Cave O North Exit
* 0x00A11D - Y position for Cave O South Exit
* 0x00A11E - Y position for Cave M West Exit
* 0x00A11F - Y position for Cave M East Exit
* 0x00A120 - Y position for Cave P West Exit
* 0x00A121 - Y position for Cave P East Exit
* 0x00A122 - Y position for Cave Q West Exit
* 0x00A123 - Y position for Cave Q East Exit
* 0x00A124 - Y position for Cave R South Exit
* 0x00A125 - Y position for Cave R North Exit
* 0x00A126 - Y position for Cave N South Exit
* 0x00A127 - Y position for Cave N North Exit
* 0x00A128 - Y position for Hammer Cave
* 0x00A129 - Y position for Elevator Cave G West Exit (Bottom left)
* 0x00A12A - Y position for Elevator Cave G East Exit (Bottom right)
* 0x00A12B - Y position for Elevator Cave G West Exit (Top left)
* 0x00A12C - Y position for Elevator Cave G East Exit (Top Right)
* 0x00A12D - Y position for Elevator Cave H West Exit (Top left)
* 0x00A12E - Y position for Elevator Cave H East Exit (Top Right)
* 0x00A12F - Y position for Elevator Cave H North Exit (Bottom left)
* 0x00A130 - Y position for Elevator Cave H South Exit (Bottom right)
* 0x00A131 - Y position for Maze Island Forced Battle Scene 2
* 0x00A132 - Y position for Maze Island Forced Battle Scene 1
* 0x00A133 - Y position for Maze Island's Magic Container
* 0x00A134 - Y position for Bridge back to East Hyrule
* 0x00A136 - Y position for Cave A back to West Hyrule
* 0x00A137 - Y position for Cave K back to West Hyrule
* 0x00A140 - Y position for 4th Palace
* 0x00A143 - Y position for Maze Island Child
* 0x00A144 - Y position for Death Mountain's Magic Container
* 0x00A145 - Y position for Maze Island Forced Battle Scene 3
* 0x00A146 - Y position for Maze Island Forced Battle Scene 7
* 0x00A147 - Y position for Maze Island Forced Battle Scene 4
* 0x00A148 - Y position for Maze Island Forced Battle Scene 5
* 0x00A149 - Y position for Maze Island Forced Battle Scene 6
-----------------------
* 0x00A14B - X position for Cave B West Exit
* 0x00A14C - X position for Cave B East Exit
* 0x00A14D - X position for Cave C West Exit
* 0x00A14E - X position for Cave C East Exit
* 0x00A14F - X position for Cave E South Exit
* 0x00A150 - X position for Cave E North Exit
* 0x00A151 - X position for Cave D West Exit
* 0x00A152 - X position for Cave D East Exit
* 0x00A153 - X position for Cave F West Exit
* 0x00A154 - X position for Cave F East Exit
* 0x00A155 - X position for Cave J West Exit
* 0x00A156 - X position for Cave J East Exit
* 0x00A157 - X position for Cave I North Exit
* 0x00A158 - X position for Cave I South Exit
* 0x00A159 - X position for Cave L North Exit
* 0x00A15A - X position for Cave L South Exit
* 0x00A15B - X position for Cave O North Exit
* 0x00A15C - X position for Cave O South Exit
* 0x00A15D - X position for Cave M West Exit
* 0x00A15E - X position for Cave M East Exit
* 0x00A15F - X position for Cave P West Exit
* 0x00A160 - X position for Cave P East Exit
* 0x00A161 - X position for Cave Q West Exit
* 0x00A162 - X position for Cave Q East Exit
* 0x00A163 - X position for Cave R South Exit
* 0x00A164 - X position for Cave R North Exit
* 0x00A165 - X position for Cave N South Exit
* 0x00A166 - X position for Cave N North Exit
* 0x00A167 - X position for Hammer Cave
* 0x00A168 - X position for Elevator Cave G West Exit (Bottom left)
* 0x00A169 - X position for Elevator Cave G East Exit (Bottom right)
* 0x00A16A - X position for Elevator Cave G West Exit (Top left)
* 0x00A16B - X position for Elevator Cave G East Exit (Top Right)
* 0x00A16C - X position for Elevator Cave H West Exit (Top left)
* 0x00A16D - X position for Elevator Cave H East Exit (Top Right)
* 0x00A16E - X position for Elevator Cave H North Exit (Bottom left)
* 0x00A16F - X position for Elevator Cave H South Exit (Bottom right)
* 0x00A170 - X position for Maze Island Forced Battle Scene 2
* 0x00A171 - X position for Maze Island Forced Battle Scene 1
* 0x00A172 - X position for Maze Island's Magic Container
* 0x00A173 - X position for Bridge back to East Hyrule
* 0x00A175 - X position for Cave A back to West Hyrule
* 0x00A176 - X position for Cave K back to West Hyrule
* 0x00A17F - X position for 4th Palace
* 0x00A182 - X position for Maze Island Child
* 0x00A183 - X position for Death Mountain's Magic Container
* 0x00A184 - X position for Maze Island Forced Battle Scene 3
* 0x00A185 - X position for Maze Island Forced Battle Scene 7
* 0x00A186 - X position for Maze Island Forced Battle Scene 4
* 0x00A187 - X position for Maze Island Forced Battle Scene 5
* 0x00A188 - X position for Maze Island Forced Battle Scene 6


==Level Data==
====West Hyrule====
from  to
----  ----
462F - 466D - Areas Y position
466E - 46AC - Areas X position
46AD - 46EB - Areas map number
46EC - 472A - Areas world number
 
====Death Mountain====
 
from  to
----  --
610C - 614A - Areas Y position
614B - 6189 - Areas X position
618A - 61C8 - Areas map number
61C9 - 6207 - Areas world number
 
====East Hyrule====
 
from  to
----  --
862F - 866D - Areas Y position
866E - 86AC - Areas X position
86AD - 86EB - Areas map number
86EC - 8727 - Areas world number
 
====Maze Island====


* 0x004C4C - 0x004C67 - Grass Area level data
from  to
* 0x004C64 - 0x004C78 - Forest Area level data
----  --
* 0x004C8C - 0x004CA6 - 50 point bag level data
A10C - A14A - Areas Y position
A14B - A189 - Areas X position
A18A - A1C8 - Areas map number
A1C9 - A207 - Areas world number


=Needs Sorting Still=
[[Zelda_II:_The_Adventure_of_Link:List_of_areas|Click here]] for an extensive list of all areas with descriptions.


==Level Data==


0x018027 - 0x01811E - Note Tables
04C4C - 04C67 - Grass Area level data
04C64 - 04C78 - Forest Area level data
04C8C - 04CA6 - 50 point bag level data


0x01E8B0 - Number of enemies to defeat for exp. bag or magic jar
=Unsorted Information=




0x01E910 - Type of vulnarablity Bit (red) has
18027 - 1811E - Note Tables
0x01E911 - Type of vulnarability Bot (blue) has
1E8B0        - Number of enemies to defeat for exp. bag or magic jar
1E910        - Type of vulnarablity Bit (red) has
1E911        - Type of vulnarability Bot (blue) has


==Dwedit's documents (unsorted)==
==Dwedit's documents (unsorted)==
Line 1,176: Line 872:
</pre>
</pre>


Information about overworld locations, kinda overlaps with the information there, but made by someone who actually understatnds bitfields :)
Information about overworld locations, kinda overlaps with the information there, but made by someone who actually understatnds bitfields :) [But does he ''understand'' them???]


<pre>
<pre>
Line 1,216: Line 912:
xxx..... - "flags"?
xxx..... - "flags"?
</pre>
</pre>
0x0106B4 - 0x0106EE - side view map area for the map with elevator in center of room with windows on each side and exit on each side (first underground room of Level 1 Palace)
{{Internal Data|game=Zelda II: The Adventure of Link}}

Latest revision as of 02:42, 24 January 2024

Chip tiny.png The following article is a ROM map for Zelda II: The Adventure of Link.

Other Documentation

Main Menu

17339 - Y position for cursor on Save Slot 1
17351 - Y position for cursor on Save Slot 2
17369 - Y position for cursor on Save Slot 3
1737F - Y position for cursor on Register Your Name
17391 - Y position for cursor on Elimation Mode
17395 - X position for cursor

Beginning Values

17AF7 - Begin with Shield Magic
17AF8 - Begin with Jump Magic
17AF9 - Begin with Life Magic
17AFA - Begin with Fairy Magic
17AFB - Begin with Fire Magic
17AFC - Begin with Reflect Magic
17AFD - Begin with Spell Magic
17AFE - Begin with Thunder Magic
17AFF - Number of Magic Containers to begin game
17B00 - Number of Heart Containers to begin game
17B01 - Begin with Candle
17B02 - Begin with Power Glove
17B03 - Begin with Raft
17B04 - Begin with Boots
17B05 - Begin with Flute
17B06 - Begin with Cross
17B07 - Begin with Hammer
17B08 - Begin with Magic Key
17B10 - Number of Crystals to begin game
17B12 - Techs (Downward Thrust 10) (Upward Thrust 04) (Both 14)
17B1D - 0x017B24 - Letter Values when blanking a name out
17B25 - 0x017C04 - Bit defaults for sprites (keys, items, etc.)
1C369 - Number of lives to begin game

Magic Spell Effect Pointers

from    to
----    ----
00E58 - 00E59 - Shield 
00E5A - 00E5B - Jump 
00E5C - 00E5D - Life 
00E5E - 00E5F - Fairy 
00E60 - 00E61 - Fire 
00E62 - 00E63 - Reflect 
00E64 - 00E65 - Spell 
00E66 - 00E67 - Thunder 

It's possible to alter the order in which Link "learns" magic spells by re-arranging the data from [$E58-$E67]. (For example, to make Thunder the first spell Link acquires, replace the data at [$E58-$E59] with that from [$E66-$E67]. Note, however, that the spell will still be under the first slot and named "Shield.")

Sound Data

18000   Music Engine Entry Point, Title Screen (Replace with 'RTS' to disable the music engine)
19000   Music Engine Entry Point, Rest of the Game (Replace with 'RTS' to disable the music engine)
1A01A   Overworld music string
1A027   Battleground music string
1A02C   "Got a Heart/Item/Etc." music string

PPU Data

Overworld

from    to 
----    ----
007B3 - 007B6 - PPU data for Towns
007B7 - 007BA - PPU data for Caves
007BB - 007BE - PPU data for Palaces
007BF - 007C2 - PPU data for Bridges
007C3 - 007C6 - PPU data for Desert
007C7 - 007CA - PPU data for Grass Areas
007CB - 007CE - PPU data for Forests
007CF - 007D2 - PPU data for Swamps
007D3 - 007D6 - PPU data for Graveyards
007D7 - 007DA - PPU data for Trails
007DB - 007DE - PPU data for Lava Areas
007DF - 007E2 - PPU data for Mountains
007E3 - 007E6 - PPU data for Water
007E7 - 007EA - PPU data for Walkable Water
007EB - 007EE - PPU data for Rocks/Roadblocks
007EF - 007F2 - PPU data for River Devil

Western Hyrule

044EB - 044EE - PPU data for Grass on Battlefield

Eastern Hyrule

from    to
----    ----
084DF - 084E2 - PPU data for Leaves of Trees on Battlefield
084E3 - 084E6 - PPU data for Hanging Leaves on Battlefield
084EB - 084EE - PPU data for Grass on Battlefield

Towns

from    to
----    ----
0C3F6 - 0C3F9 - PPU data for Top of Exterior Windows
0C3FA - 0C3FD - PPU data for Bottom of Exterior Windows
0C44E - 0C451 - PPU data for left side of Clouds
0C452 - 0C455 - PPU data for right side of Larger Clouds
0C456 - 0C459 - PPU data for right side of Smaller Clouds
0C45A - 0C45D - PPU data for angle of tunnel right
0C45E - 0C461 - PPU data for tunnel wall right
0C4E2 - 0C4E5 - PPU data for floors inside buildings
0C6B2 - 0C6B5 - PPU data for Sky
0C6BA - 0C6BD - PPU data for background of Basements
0C6C6 - 0C6C9 - PPU data for Bushs
0C6FE - 0C701 - PPU data for Ground
0C706 - 0C709 - PPU data for Walls in Basements

Palace Data

from    to
----    ----
10480 - 104DF - Palettes for Outside the 6 Palaces
13F10 - 13F6F - Palettes for the 6 Palaces Interiors
1C46B - 1C47A - Palette for Overworld
1C47B - 1C48A - Sprite pallet set for Overworld

Graphics Set

1CD3A - Graphics Set for Palace 1
1CD3B - Graphics Set for Palace 2
1CD3C - Graphics Set for Palace 3
1CD3E - Graphics Set for Palace 4
1CD42 - Graphics Set for Palace 5
1CD43 - Graphics Set for Palace 6
1CD44 - Graphics Set for Great Palace

Palette Pointers

1CD45 - Palette Pointer for Palace 1
1CD46 - Palette Pointer for Palace 2
1CD47 - Palette Pointer for Palace 3
1CD49 - Palette Pointer for Palace 4
1CD4D - Palette Pointer for Palace 5
1CD4E - Palette Pointer for Palace 6
1CD4F - Palette Pointer for Great Palace

Overworld

Overworld Map Data

506C - 538C - West Hyrule
665C - 6942 - Death Mountain
9056 - 936F - East Hyrule
A65C - A942 - Maze Island

The 4 Overworld maps are 64 tiles wide, and their respective heights are variable. Overworld data is encoded in an RLE (Run Length Encoding) format. Each byte codes for a horizontal strip of terrain, as follows:

xxxx .... - Length (add 1)
.... xxxx - Type

Table of Tile Types:

0    Town
1    Cave
2    Palace
3    Bridge
4    Desert
5    Grass
6    Forest
7    Swamp
8    Graveyard
9    Road
A    Lava
B    Mountain
C    Water
D    Water (walkable)
E    Rock
F    Spider


Data Structure Example from West Hyrule (first four bytes starting at 0x506C):

BB DC 74 FC ...
  • BB - 12 (B + 1) Mountain (B) Tiles

Zelda2-WestHyruleByte1.png

  • DC - 14 (D + 1) Water (C) Tiles

Zelda2-WestHyruleByte2.png

  • 74 - 8 (7 + 1) Desert (4) Tiles

Zelda2-WesthyruleByte3.png

  • FC - 16 (F + 1) Water (C) Tiles

Zelda2-WestHyruleByte4.png

  • BB DC 74 FC

Zelda2-WestHyrule4Bytes.png

Overworld in RAM

The compressed Overworld map is copied to Cartridge RAM to allow the game to modify the map. Data is stored between 0x7C00 and 0x7FFF.

Palace Pointers

These control which byte in Cartridge RAM gets turned into a single rock (0B) after completing a palace. Data is Cartridge RAM pointers, the base is 0x7C00, and the offset is how many bytes into the compressed map.

West Hyrule / Death Mountain

479F - Palace 1
47A1 - Palace 2
47A3 - Palace 3
47A5 - Palace 4 (in Death Mountain)

East Hyrule / Maze Island

879F - Palace 5
87A1 - Palace 6
87A5 - Invalid pointer
87A7 - Palace 4 (in Maze Island)

Overworld Areas

Each area has 4 bytes that define various informations, like position on the Overworld, destination map number, destination world number, where Link starts in the side view mode, etc. Each byte is formatted as follows:

Byte 0

.xxx xxxx - Y position
x... .... - External to this world

Byte 1 (offset 3F bytes from Byte 0)

..xx xxxx - X position
xx.. .... - On exit, appear at the location of area index minus this value (0-3)

Byte 2 (offset 7E bytes from Byte 0)

..xx xxxx - Map number
xx.. .... - Horizontal position to enter within map
    0 = enter from the left
    1 = enter at x=256 or from the right for 2 screens maps
    2 = enter at x=512 or from the right for 3 screens maps
    3 = enter from the right for 4 screens maps

Byte 3 (offset BD bytes from Byte 0)

...x xxxx - World number
..x. .... - Forced enter from the right edge of screen
.x.. .... - Pass through
x... .... - Fall in hole

West Hyrule

from   to
----   ----
462F - 466D - Areas Y position
466E - 46AC - Areas X position
46AD - 46EB - Areas map number
46EC - 472A - Areas world number

Death Mountain

from   to
----   --
610C - 614A - Areas Y position
614B - 6189 - Areas X position
618A - 61C8 - Areas map number
61C9 - 6207 - Areas world number

East Hyrule

from   to
----   --
862F - 866D - Areas Y position
866E - 86AC - Areas X position
86AD - 86EB - Areas map number
86EC - 8727 - Areas world number

Maze Island

from   to
----   --
A10C - A14A - Areas Y position
A14B - A189 - Areas X position
A18A - A1C8 - Areas map number
A1C9 - A207 - Areas world number

Click here for an extensive list of all areas with descriptions.

Level Data

04C4C - 04C67 - Grass Area level data
04C64 - 04C78 - Forest Area level data
04C8C - 04CA6 - 50 point bag level data

Unsorted Information

18027 - 1811E - Note Tables
1E8B0         - Number of enemies to defeat for exp. bag or magic jar
1E910         - Type of vulnarablity Bit (red) has
1E911         - Type of vulnarability Bot (blue) has

Dwedit's documents (unsorted)

I just made a full document of what I know about Zelda 2's side-view areas, and copy-pasted it into datacrystal, I figure someone else can sort it out later. Haven't tested or verified it yet, so there may be a few mistakes. I just went by my level editor.

Zelda 2 sideview information

Address convention:
I don't want to bother explaining NES memory pointers.
I'll be using addresses as they reside in NES memory.  $8000-$BFFF is where data rom banks are mapped in NES memory.
When I say $XXXX in rom bank Y, that means a file address of ($XXXX-$8000) + Y*$4000, + $10.  So a NES memory address $8123 on bank 4 means a .nes file address of $10133.

Sometimes pointers point to areas other than $8000-$BFFF, such as the SRAM area $6000-$7FFF.

--------------
Rom or Ram?
--------------
This game was originally an FDS game, so it relies on lots of data being writable.

Enemies are stored in SRAM starting at $7000
Compressed overworld maps are stored in SRAM starting at $7C00.

--------------
Number of Maps
--------------
Each area has 63 maps, 0-62, map #63 is an invalid map number indicating that the destination is outside.

---------
Rom Banks
---------
A "Rom Bank" is 16k (4000) bytes long.
Each rom bank has two sets of 63 maps, except for 3 and 5, which only have one set.

bank 1 contains west hyrule/death mountain
bank 2 contains east hyrule/maze island
bank 3 contains towns
bank 4 contains palaces 1,2,5, then palaces 3,4,6.
bank 5 contains the great palace

----------------------------
Map and Enemy Pointer Tables
----------------------------
Map pointers point to ROM in the $8000-$BFFF range.
Enemy pointers point to SRAM in the $7000-$7xxx range, this is so the game can keep track of defeated enemies.

Information for the second set of maps/enemies comes $1ADD later.

Enemy data for all 126 maps is copied from $88A0 to $7000.  (length unknown?)

For the first set of 63 maps:
$8523 - map pointers
$85A1 - enemy pointers

For the second set of 63 maps:
$A000 - map pointers
$A07E - enemy pointers

For the "behind this map" maps (1-7) specified by header byte 3 (there is no back map #0):
$8000 - map pointers


----------------------
Room connectivity data
----------------------
Begins at $871B, 4 bytes per entry
Begins at $A1F8 for second set of 63 maps

xxxxxx.. = Destination map number (63 to go outside)
......xx = Starting X coordinate on destination (times 256)

Order of bytes:
	Left exit
	Down exit
	Up exit
	Right exit

===================
Sideview Map Format
===================
----------------------
First 4 bytes (header)
----------------------

Things may vary, most of this info applies to overworld sideview maps, some may not apply for towns and palaces, some numbers may be different for those.

0 - Size of level in bytes, including header
1 - Flags
	x....... - Which Object Set - This determines which objects can appear on this map!
	.xx..... - Width of level (in screens, add 1)
	...x.... - ?
	....x... - "Grass", when set, adds grass tiles to map row #9
	.....x.. - "bushes", when set, adds bushes tiles to map row #10
	......xx - ?
2 - Ground Graphics / initial floor/ceiling position
The levels are made up of objects, and ground tiles.  This byte selects initial floor/ceiling position, and set of ground tiles to be used by the level.
	x....... - "no ceiling",  top 2 rows of the map are set to background tile, this overrides all
	.xxx.... - Sets which set of tiles assigned to the Ground tiles
		0 = cave
		1 = forest
		2 = lava/death water
		3 = swamp
		4 = sand/grass
		5 = volcano (cave with brighter wall)
		6 = North Castle
		7 = Cave with clear wall (rocks outside)
	....xxxx - Initial position of floor/ceiling
		0-7 = Floor at 2-9 (from bottom), Ceiling at 1 from top
		8-14 = Ceiling at 2-8 (from top)
		15 = Filled in with wall tile
3 - Palette and back tiles byte
	xx...... - Palette for sprites
		0 = black borders
		1 = dark colored borders
		2,3 = not used by game, give weird colors
	..xxx... - Background Palette
		0 = north castle
		1 = cave palette (dark without candle for overworld maps)
		2 = desert
		3 = grass
		4 = forest
		5 = swamp
		6 = graveyard
		7 = "water" palette
	.....xxx - Map to load behind map
		0 = nothing
		1 = clouds
		2 = forest (3 wide)
		3 = forest (4 wide)
		4 = forest (single tree)
		5 = Dead-end caves
		6 = long cave, dead end
		7 = ???
------------
Level bytes:
------------

0 - 
	xxxx.... - Y position
	....xxxx - Advance cursor X this many tiles after the object ("X space")
1 -
	xxxxxxxx - Object number
	If Object number = 15, and Y position < 13, then this is a 3 byte object (collectable item)
2 - (3 byte objects only)
	xxxxxxxx - For 3 byte objects only, object number (0-21, 22+ are not used)
	

Special Y posisitons:
	13 - Set new ground
		Sets the floor and ceiling to new values, just like header byte 2
		x....... - "no ceiling",  top 2 rows of the map are set to background tile
		.xxx.... - Not used, you can't change tiles for ground
		....xxxx - New position of floor/ceiling
			0-7 = Floor at 2-9 (from bottom), Ceiling at 1 from top
			8-14 = Ceiling at 2-8 (from top)
			15 = Filled in with wall tile
	14 - "Skip"
		Sets the cursor X directly to "x space" * 16.  Does not advance the cursor after this object as normal.
	15 - Extra objects, including lava and cactuses.  These have fixed-y coordinates.


-----------
Map Objects
-----------
This part really could be done much better, instead of hard-specifying everything, see how the game handles them, see what tiles it selects, see how it assembles the structures, etc.


Objects: (For Overworld sideview maps)
	00001111 - 3 byte object (collectable)
	0000xxxx - 16 different small objects
	xxxx.... - Object type
	....xxxx - Size of object (1-16)
	Small objects:
		00 = headstone
		01 = cross
		02 = angled cross
		03 = tree stump
		04 = stone table, ("stonehenge")
		05 = locked door (always at Y position 8)
		06 = sleeping princess Zelda
		07 = sleeping princess Zelda
		08 = Pit (extends to ground?)
		09-0E = Cloud
		0F = crash
	Big objects for Object set 0
		0x = small objects
		1x = crash
		2x = forest ceiling, two high
		3x = forest ceiling, two high
		4x = curtains, two high
		5x = forest ceiling, one high
		6x = sword-destroyable blocks, one high
		7x = horizontal pit, one high
		8x = single weed, one high
		9x = two weeds, one high
		Ax = north castle steps (background), one high
		Bx = background bricks, used in north castle and ruins, one high
		Cx = strip of volcano background, one high
		Dx = sword-destroyable blocks, one wide
		Ex = background tree trunk, one wide
		Fx = column, one wide
	Big objects for Object set 1
		0x = small objects
		1x = crash
		2x = wide rock floor, two high
		3x = wide rock ceiling, two high
		4x = bridge, two high
		5x = cave blocks, one high
		6x = sword-destroyable blocks, one high
		7x = bridge that falls apart, one high
		8x = single weed, one high
		9x = two weeds, one high
		Ax = horizontal pit, one high
		Bx = background bricks, used in north castle and ruins, one high
		Cx = strip of volcano background, one high
		Dx = sword-destroyable blocks, one wide
		Ex = tall rock floor, one wide
		Fx = stone spire
	Extra objects (Y position 15):
		0x = crash
		1x = crash
		2x = Lava at bottom of screen, three high
		3x = Cactus at Y position 9, grows upwards, one wide
		4x = Cactus with stem at Y position 9, one wide, two high
		5x = Elevator?
		60-FF = crash

Objects: (for towns)
	Small Objects:
		00 = closed door with grass at bottom, 4 high 1 wide
		01 = open door with grass at bottom
		02 = open door with bricks at bottom
		03 = open door with vertical bricks at bottom
		04 = stonehenge
		05 = chair
		06 = ?
		07 = cloud
		08 = table
		09 = bench
		0A = cross
		0B-0E = cloud
		0F = crash
	Big objects for Object Set 0
		0x = small objects
		1x = crash
		2x = cross hatched roof, two high
		3x = gray vertical brick roof, two high
		4x = green vertical brick roof, two high
		5x = brick building, extends to ground
		6x = white small brick building, extends to ground
		7x = grass building, extends to ground
		8x = white brick wall, extends to ground
		9x = log building, extends to ground
		Ax = brown square windows, one wide, Two tall. One tile Gap between windows.  Repeats vertically
		Bx = gray windows, round on top...
		Cx = brown windows, round on top
		Dx = Underground blue bricks, two high
		Ex = Column
		Fx = castle background bricks
	Effects of Object Set 1 unknown
	Extra Objects (Y position 15)
		00 = Door to left
		01 = Door to right
		02 = Wall to left
		03 = wall to right
		04 = fireplace
		05 = fountain
		06 = sign
		07 = headstone one above ground
		08-0F = ?
		1x = single bush
		2x = background wall at Y pos 4, 3 wide, x tall
		3x = ?
		4x = ?
		5x = ?
		6x = bridge
		7x = water/lava
		80-FF = ?

Objects: (for Palaces)
	Small Objects
		00 = Window
		01 = Rightward unicorn head
		02 = leftward wolf head
		03,04 = crystal return statue
		05,06 = locked door
		07 = cloud
		08 = small cloud
		09 = ironknuckle statue
		0A-0E = small cloud
		0F = crash
	Large Objects (set 0)
		0x = small objects
		1x = Horizontal Pit, one high
		2x = horizontal bricks, one high
		3x = breakable blocks, one high
		4x = steel blocks, one high
		5x = breaking bridge, one high
		6x = breakable blocks, one high
		7x = horizontal bricks, two high
		8x = curtains, two high
		9x = breakable blocks, two high
		Ax = walk-thru bricks, two high
		Bx = breakable blocks, one wide
		Cx = Column, one wide
		Dx = Bridge, two high
		Ex = Pit, one wide
		Fx = Horizontal Pit, extends to bottom of screen
	Extra Objects
		1x = Lava

Objects: (for Great Palace)
	Great palace contains tiles for the "north castle" used in ending
	Same as above, except:
		09 = Zelda
		0A = Ironknuckle Statue
		1x = Canopy (for final boss room)
		5x = North Castle bricks
		6x = North Castle Steps
		7x = breakable bridge
		8x = bridge, two high
		9x = bricks, two high
		Ax = curtains, two high
		Bx = Walk-thru bricks, two high
		Cx = breakable blocks, two high
		Dx = breakable blocks, one wide
		Ex = electric barrier
		Fx = column

============
Enemy Format
============

Header:
Byte 0 - Length of enemy data
When selecting "Strong Enemy" for random overworld battles, advance that many bytes, data for "strong enemy" follows the first enemy set.  Non-random battles do not have "strong enemy" information

Bytes for enemy data:
0 -
	....xxxx = X coordinate (in tiles)
	xxxx.... = Y coordinate (in tiles)
		Y coordinate 0 maps to row 1, otherwise maps to row 2+x
1 -
	xx...... = Upper bits of X coordinate
	..xxxxxx = Enemy number (0-63)

-----------
Enemy lists
-----------
West Hyrule, Death Mountain:
	00 - Fairy
	01 - Red Jar
	02 - Locked Door
	03 - Myu
	04 - Bot (blue)
	05 - Bit (red)
	06 - Moa
	07 - Ache
	08 - crash
	09 - crash
	0A - Acheman
	0B - Bubble generator
	0C - Rock Generator
	0D - Red Deeler
	0E - Blue Deeler
	0F - Bago Bago Generator
	10 - Bago Bago
	11 - Red Octoroc (Jumping Only)
	12 - Red Octorock (Moving and Jumping)
	13 - Elevator
	14 - Orange Moblin
	15 - Red Moblin
	16 - Blue Moblin
	17 - Orange Diara
	18 - Red Diara
	19 - Orange Goryia
	1A - Red Goryia
	1B - Blue Goryia
	1C - Lowder
	1D - Moby generator
	1E - Moby
	1F - Megmet
	20 - Geldarm
	21 - Dumb Moblin Generator
	22 - Dumb Moblin
	23-FF crash
East Hyrule, Maze Island
	00 - Fairy
	01 - Red Magic Jar
	02 - Locked Door
	03 - Myu
	04 - Bot (blue)
	05 - Bit (red)
	06 - Moa
	07 - Ache
	08 - ???
	09 - ???
	0A - Acheman
	0B - Bubble Generator
	0C - Rock Generator (messed up link-doll sprite in east hyrule)
	0D - Red Deeler
	0E - Blue Deeler
	0F - Bago Bago Generator
	10 - Bago Bago
	11 - Blue Octoroc (Jumping Only)
	12 - Blue Octorock (Moving and Jumping)
	13 - Elevator
	14 - Tektite
	15 - Eye
	16 - Leever
	17 - Boon
	18 - Basilisk
	19 - Scorpion
	1A - Red Lizalfo
	1B - Orange Lizalfo
	1C - Blue Lizalfo
	1D - Boulder Tossing Lizalfos 
	1E-FF - Crash
Towns
	00 - Fairy
	01 - Candle
	02 - Locked Door
	03 - Purple Kees
	04 - Purple Bot
	05 - Bit
	06 - Purple Moa
	07 - Purple Kees (again?)
	08 - Gold colored girl, crashes game if you talk to her
	09-24 - Various townspeople
Palace 1,2,5
	00 - Fairy
	01 - Item in Palace Sprite
	02 - Locked Door
	03 - Myu
	04 - Bot
	05 - Strike for Red Jar
	06 - Slow Magic Stealing Skull
	07 - Orange Moa
	08 - Falling Block Generator
	09 - Single falling block
	0A - Blue Skull Head
	0B - Rathead Generator
	0C - Rathead
	0D - Dripping Column
	0E - Fast Magic Stealing Skull
	0F - Bago Bago Generator
	10 - Bago Bago
	11 - Rope Jumping Only
	12 - Rope Jumping and Moving
	13 - Elevator
	14 - Crystal Slot
	15 - Crystal
	16 - Energy ball shooter (to down-right)
	17 - Energy ball shooter (to down-left)
	18 - Orange Iron Knuckle
	19 - Red Iron Knuckle
	1A - Blue Iron Knuckle
	1B - Wolf Head Generator
	1C - Wolf Head
	1D - Mago
	1E - Hammer Thrower
	1F - Red Stalfos
	20 - Horse Head
	21 - Helmethead/Gooma (5th Palace Boss) 
	22 - Helmethead's floating head
	23 - Blue Stalfos
	24-FF crash
Palace 3,4,6
	00 - Fairy
	01 - Item in Palace sprite
	02 - Locked Door
	03 - Myu
	04 - Bot
	05 - Strike for Red Jar/Ironknuckle
	06 - Slow Magic Stealing Skulls
	07 - Orange Moa
	08 - Falling Blocks Generator
	09 - Single falling block
	0A - Blue Skull Head
	0B - Rathead Generator
	0C - Rathead
	0D - Dripping Column
	0E - Fast Magic Stealing Skulls
	0F - ???
	10 - Flame
	11 - Rope
	12 - ???
	13 - Elevator
	14 - Crystal Slot
	15 - Crystal
	16 - Energy ball shooter (to down-right)
	17 - Energy ball shooter (to down-left)
	18 - Orange Iron Knuckle
	19 - Red Iron Knuckle
	1A - Blue Iron Knuckle
	1B - Wolf Head Generator
	1C - Wolf Head
	1D - Wizrobe
	1E - Red Stalfos Knight
	1F - Doomknocker
	20 - Blue Iron Knuckle on horse
	21 - Dragon (6th palace boss)
	22 - Wizard (4th palace boss)
	23 - Blue Stalfos Knight

	00 - Fairy
	01 - Candle
	02 - Door
	03 - Myu
	04 - Bot
	05 - Strike for Red Jar/Ironknuckle
	06 - Bubble
	07 - Orange Moa
	08 - Falling blocks
	09 - Single falling block
	0A - Unicorn Head
	0B - Rat Head generator
	0C - Rat Head
	0D - Column dripper
	0E - Fast bubble
	0F - ? nothing
	10 - Fire
	11 - snake/octorock thingy
	12 - ? nothing
	13 - elevator
	14 - crystal return
	15 - crystal
	16 - unicorn head shooter (to down-right)
	17 - unicorn head shooter (to down-left)
	18 - Orange Ironknuckle
	19 - Red Ironknuckle
	1A - Blue Ironknuckle
	1B - red wolf head generator
	1C - wolf head
	1D - reflect wizrobe
	1E - Red stalfos
	1F - blue boomerang-club thing
	20 - Ironknuckle on horse
	21 - 6th palace boss
	22 - 4th palace boss
	23 - Blue stalfos
	24-FF crash
Great Palace (NOT VERIFED!)
	00 - Fairy
	01 - Red Magic Jar
	02 - Locked Door
	03 - Myu
	04 - Bot (blue)
	05 - Bit (red)
	06 - Moa
	07 - Ache
	08 - ???
	09 - ???
	0A - Acheman
	0B - Bubble Generator
	0C - Rock Generator
	0D - Red Deeler
	0E - Blue Deeler
	0F - Fire Bago Bago Generator
	10 - Fire Bago Bago
	11 - Fire Rope Jumping Only
	12 - Fire Rope Jumping and Moving
	13 - Elevator
	14 - Slow Magic Stealing Skull
	15 - Fast Magic Stealing Skull
	16 - Orange Skull Head
	17 - Large Magic Stealing Skull
	18 - Orange Dreadhawk
	19 - Red Dreadhawk
	1A - Blue Dreadhawk
	1B - ???
	1C - ???
	1D - Firebird
	1E - King Bot
	1F - ???
	20 - Barrier for Grand Palace
	21 - ???
	22 - Thunder Bird Boss
	23 - Trigger for Dark Link battle 
	24-FF crash

Information about overworld locations, kinda overlaps with the information there, but made by someone who actually understatnds bitfields :) [But does he understand them???]

----------------------------
"Browse Around" information
----------------------------
locations of towns and caves and such:
base addresses

0x462F  west hyrule
0x610C  death mtn
0x862F  east hyrule
0xA10C  maze island

Base address is for "Y"
Add 3F to get "X"
Add 7E to get "Z"
Add BD to get "W"

"Y":
.xxxxxxx - Y position
x....... - Is external to this world?

"X":
..xxxxxx - X position
.x...... - Is second part of a cave?
x....... - ???

"Z":
..xxxxxx - Map number
xx...... - Horizontal position to enter within map
	00 = leftmost
	01 = enter at x=256? or rightmost for 512 pixel wide maps?
	10 = enter at x=512? or rightmost for 768 pixel wide maps?
	11 = enter at rightmost for 1024 pixel wide maps?

"W":
...xxxxx - "world number"?
xxx..... - "flags"?

0x0106B4 - 0x0106EE - side view map area for the map with elevator in center of room with windows on each side and exit on each side (first underground room of Level 1 Palace)