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

From Data Crystal
Jump to: navigation, search
(Added some PPU stuff, palette locations for Link sprite after spells (tunic, outline, not skin), various palettes used, and corrected information for experience point types)
(Sound Data: Added music routine entry points. This is useful for hacks that would wish to replace the entire music engine.)
 
(94 intermediate revisions by 27 users not shown)
Line 1: Line 1:
<div id="catlinks">[[Image:Chip_tiny.png]]The following article is a [[ROM map]] for [[Zelda II: The Adventure of Link]].</div>
+
{{rommap|game=Zelda II: The Adventure of Link}}
{{clear}}
 
<includeonly>[[Category:ROM map]][[Category:Zelda II: The Adventure of Link|ROM map]]</includeonly>
 
---------------------------------------------------------------------
 
  
Overworld
+
==Other Documentation==
 +
* [[Zelda II: The Adventure of Link:Character Data|Character Data]]
 +
* [[Zelda II: The Adventure of Link:Enemy Data|Enemy Data]]
  
0x0007B3 - 0x0007B6 - PPU data for Towns
+
==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
  
0x0007B7 - 0x0007BA - PPU data for Caves
+
==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
  
0x0007BB - 0x0007BE - PPU data for Palaces
+
==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
  
0x0007BF - 0x0007C2 - PPU data for Bridges
+
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.")
  
0x0007C3 - 0x0007C6 - PPU data for Desert
+
==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
  
0x0007C7 - 0x0007CA - PPU data for Grass Areas
+
==PPU Data==
  
0x0007CB - 0x0007CE - PPU data for Forests
+
===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
  
0x0007CF - 0x0007D2 - PPU data for Swamps
+
===Western Hyrule===
 +
044EB - 044EE - PPU data for Grass on Battlefield
  
0x0007D3 - 0x0007D6 - PPU data for Graveyards
+
===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
  
0x0007D7 - 0x0007DA - PPU data for Trails
+
===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
  
0x0007DB - 0x0007DE - PPU data for Lava Areas
+
==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
  
0x0007DF - 0x0007E2 - PPU data for Mountains
+
===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
  
0x0007E3 - 0x0007E6 - PPU data for Water
+
===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
  
0x0007E7 - 0x0007EA - PPU data for Walkable Water
+
== Overworld ==
  
0x0007EB - 0x0007EE - PPU data for Rocks/Roadblocks
+
=== Overworld Map Data ===
  
0x0007EF - 0x0007F2 - PPU data for River Devil
+
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
  
0x000D8B - 0x000D92 - Amount of Magic needed for Shield
+
Table of Tile Types:
  
0x000D93 - 0x000D9A - Amount of Magic needed for Jump
+
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
  
0x000D9B - 0x000DA2 - Amount of Magic needed for Life
 
  
0x000DA3 - 0x000DAA - Amount of Magic needed for Fairy
+
Data Structure Example from West Hyrule (first four bytes starting at 0x506C):
  
0x000DAB - 0x000DB2 - Amount of Magic needed for Fire
+
<pre>BB DC 74 FC ...</pre>
  
0x000DB3 - 0x000DBA - Amount of Magic needed for Reflect
+
* BB - 12 (B + 1) Mountain (B) Tiles
 +
[[File:Zelda2-WestHyruleByte1.png]]
  
0x000DBB - 0x000DC2 - Amount of Magic needed for Spell
+
* DC - 14 (D + 1) Water (C) Tiles
 +
[[File:Zelda2-WestHyruleByte2.png]]
  
0x000DC3 - 0x000DCA - Amount of Magic needed for Thunder
+
* 74 - 8 (7 + 1) Desert (4) Tiles
 +
[[File:Zelda2-WesthyruleByte3.png]]
  
Uses bits (multiple spell effects for one!)
+
* FC - 16 (F + 1) Water (C) Tiles
 +
[[File:Zelda2-WestHyruleByte4.png]]
  
0x000DCB - Spell effects for Shield
+
* BB DC 74 FC
 +
[[File:Zelda2-WestHyrule4Bytes.png]]
  
0x000DCC - Spell effects for Jump
+
=== Overworld in RAM ===
  
0x000DCD - Spell effects for Life
+
The compressed Overworld map is copied to Cartridge RAM to allow the game to modify the map. Data is stored between 0x7C00 and 0x7FFF.
  
0x000DCE - Spell effects for Fairy
+
=== Palace Pointers ===
  
0x000DCF - Spell effects for Fire
+
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.
  
0x000DD0 - Spell effects for Reflect
+
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)
  
0x000DD1 - Spell effects for Spell
+
=== Overworld Areas ===
  
0x000DD2 - Spell effects for Thunder
+
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:
  
 +
<pre>Byte 0
  
 +
.xxx xxxx - Y position
 +
x... .... - External to this world
  
0x000E7A - Amount of Life to restore with Life Spell
+
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)
  
0x000E9E - Color to turn Link's Tunic for Shield Spell
+
..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
 +
</pre>
  
0x0010EA - Color to turn Link's Tunic after casting a spell (besides Shield)
+
====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====
  
0x001480 - High Jump height standing still
+
from  to
 +
----  --
 +
610C - 614A - Areas Y position
 +
614B - 6189 - Areas X position
 +
618A - 61C8 - Areas map number
 +
61C9 - 6207 - Areas world number
  
0x001481 - High Jump height while running
+
====East Hyrule====
  
0x001482 - Regular jump height standing still
+
from  to
 +
----  --
 +
862F - 866D - Areas Y position
 +
866E - 86AC - Areas X position
 +
86AD - 86EB - Areas map number
 +
86EC - 8727 - Areas world number
  
0x001483 - Regular jump height while running
+
====Maze Island====
  
0x001484 - High Jump "gravity" standing still
+
from  to
 +
----  --
 +
A10C - A14A - Areas Y position
 +
A14B - A189 - Areas X position
 +
A18A - A1C8 - Areas map number
 +
A1C9 - A207 - Areas world number
  
0x001485 - High Jump "gravity" while running
+
[[Zelda_II:_The_Adventure_of_Link:List_of_areas|Click here]] for an extensive list of all areas with descriptions.
  
0x001486 - Regular jump "gravity" standing still
+
==Level Data==
  
0x001487 - Regular jump "gravity" while running
+
04C4C - 04C67 - Grass Area level data
 +
04C64 - 04C78 - Forest Area level data
 +
04C8C - 04CA6 - 50 point bag level data
  
 +
=Unsorted Information=
  
0x001669 - Experience for Attack to level 2 (add 255)
 
  
0x001681 - Experience for Attack to level 2 (000-255)
+
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
  
0x00166A - Experience for Attack to level 3 (add 255)
+
==Dwedit's documents (unsorted)==
  
0x001682 - Experience for Attack to level 3 (000-255)
+
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.
  
0x00166B - Experience for Attack to level 4 (add 255)
+
<pre>Zelda 2 sideview information
  
0x001683 - Experience for Attack to level 4 (000-255)
+
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.
  
0x00166C - Experience for Attack to level 5 (add 255)
+
Sometimes pointers point to areas other than $8000-$BFFF, such as the SRAM area $6000-$7FFF.
  
0x001684 - Experience for Attack to level 5 (000-255)
+
--------------
 +
Rom or Ram?
 +
--------------
 +
This game was originally an FDS game, so it relies on lots of data being writable.
  
0x00166D - Experience for Attack to level 6 (add 255)
+
Enemies are stored in SRAM starting at $7000
 +
Compressed overworld maps are stored in SRAM starting at $7C00.
  
0x001685 - Experience for Attack to level 6 (000-255)
+
--------------
 +
Number of Maps
 +
--------------
 +
Each area has 63 maps, 0-62, map #63 is an invalid map number indicating that the destination is outside.
  
0x00166E - Experience for Attack to level 7 (add 255)
+
---------
 +
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.
  
0x001686 - Experience for Attack to level 7 (000-255)
+
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
  
0x00166F - Experience for Attack to level 8 (add 255)
+
----------------------------
 +
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.
  
0x001687 - Experience for Attack to level 8 (000-255)
+
Information for the second set of maps/enemies comes $1ADD later.
  
0x001670 - Experience for extra life (add 255)
+
Enemy data for all 126 maps is copied from $88A0 to $7000.  (length unknown?)
  
0x001688 - Experience for extra life (000-255)
+
For the first set of 63 maps:
 +
$8523 - map pointers
 +
$85A1 - enemy pointers
  
0x001671 - Experience for Magic to level 2 (add 255)
+
For the second set of 63 maps:
 +
$A000 - map pointers
 +
$A07E - enemy pointers
  
0x001689 - Experience for Magic to level 2 (000-255)
+
For the "behind this map" maps (1-7) specified by header byte 3 (there is no back map #0):
 +
$8000 - map pointers
  
0x001672 - Experience for Magic to level 3 (add 255)
 
  
0x00168A - Experience for Magic to level 3 (000-255)
+
----------------------
 +
Room connectivity data
 +
----------------------
 +
Begins at $871B, 4 bytes per entry
 +
Begins at $A1F8 for second set of 63 maps
  
0x001673 - Experience for Magic to level 4 (add 255)
+
xxxxxx.. = Destination map number (63 to go outside)
 +
......xx = Starting X coordinate on destination (times 256)
  
0x00168B - Experience for Magic to level 4 (000-255)
+
Order of bytes:
 +
Left exit
 +
Down exit
 +
Up exit
 +
Right exit
  
0x001674 - Experience for Magic to level 5 (add 255)
+
===================
 +
Sideview Map Format
 +
===================
 +
----------------------
 +
First 4 bytes (header)
 +
----------------------
  
0x00168C - Experience for Magic to level 5 (000-255)
+
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.
  
0x001675 - Experience for Magic to level 6 (add 255)
+
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:
 +
------------
  
0x00168D - Experience for Magic to level 6 (000-255)
+
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)
 +
  
0x001676 - Experience for Magic to level 7 (add 255)
+
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.
  
0x00168E - Experience for Magic to level 7 (000-255)
 
  
0x001677 - Experience for Magic to level 8 (add 255)
+
-----------
 +
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.
  
0x00168F - Experience for Magic to level 8 (000-255)
 
  
0x001678 - Experience for extra life (add 255)
+
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
  
0x001690 - Experience for extra life (000-255)
+
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 = ?
  
0x001679 - Experience for Life to level 2 (add 255)
+
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
  
0x001691 - Experience for Life to level 2 (000-255)
+
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
  
0x00167A - Experience for Life to level 3 (add 255)
+
============
 +
Enemy Format
 +
============
  
0x001692 - Experience for Life to level 3 (000-255)
+
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
  
0x00167B - Experience for Life to level 4 (add 255)
+
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)
  
0x001693 - Experience for Life to level 4 (000-255)
+
-----------
 +
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
  
0x00167C - Experience for Life to level 5 (add 255)
+
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
 +
</pre>
  
0x001694 - Experience for Life to level 5 (000-255)
+
Information about overworld locations, kinda overlaps with the information there, but made by someone who actually understatnds bitfields :) [But does he ''understand'' them???]
  
0x00167D - Experience for Life to level 6 (add 255)
+
<pre>
 +
----------------------------
 +
"Browse Around" information
 +
----------------------------
 +
locations of towns and caves and such:
 +
base addresses
  
0x001695 - Experience for Life to level 6 (000-255)
+
0x462F  west hyrule
 +
0x610C  death mtn
 +
0x862F  east hyrule
 +
0xA10C  maze island
  
0x00167E - Experience for Life to level 7 (add 255)
+
Base address is for "Y"
 +
Add 3F to get "X"
 +
Add 7E to get "Z"
 +
Add BD to get "W"
  
0x001696 - Experience for Life to level 7 (000-255)
+
"Y":
 +
.xxxxxxx - Y position
 +
x....... - Is external to this world?
  
0x00167F - Experience for Life to level 8 (add 255)
+
"X":
 +
..xxxxxx - X position
 +
.x...... - Is second part of a cave?
 +
x....... - ???
  
0x001697 - Experience for Life to level 8 (000-255)
+
"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?
  
0x001680 - Experience for extra life (add 255)
+
"W":
 +
...xxxxx - "world number"?
 +
xxx..... - "flags"?
 +
</pre>
  
0x001698 - Experience for extra life (000-255)
+
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}}
0x002A0B - Brown color for Link after casting spells (Overworld)
 
 
 
 
 
0x0044EB - 0x0044EE - PPU data for Grass on Battlefield (Western Hyrule)
 
 
 
 
 
 
 
0x00462F - Y position for Zelda's castle
 
 
 
0x004630 - Y position for Trophy cave
 
 
 
0x004631 - Y position for forest with 50 exp. bag and Aches
 
 
 
0x004632 - Y position for 1st Magic Container cave
 
 
 
0x004633 - Y position for forest with 100 exp. bag and Megmets
 
 
 
0x004634 - Y position for 1st Heart Container area
 
 
 
0x004635 - Y position for Lost Woods
 
 
 
0x004636 - Y position for Bubble path to 1st Heart Container
 
 
 
0x004637 - Y position for 1-up doll in swamp
 
 
 
0x004638 - Y position for Red Magic Jar in grave yard
 
 
 
0x004639 - Y position for Northern exit of cave to Palace 1
 
 
 
0x00463A - Y position for Southern exit of cave to Palace 1
 
 
 
0x00463B - Y position for Northern exit of Western Mt. caves
 
 
 
0x00463C - Y position for Southern exit of Western Mt. caves
 
 
 
0x00463D - Y position for Megmet caves and 200 exp. bag
 
 
 
0x00463E - Y position for Water of Life caves
 
 
 
0x00463F - Y position for 2nd Heart Container caves
 
 
 
0x004640 - Y position for Hole to Palace 3 caves
 
 
 
0x004641 - Y position for Caves on Palace 3's island
 
 
 
0x004642 - Y position for North and South bridge to island before Death Mt.
 
 
 
0x004643 - Y position for East and West bridge to island before Death Mt.
 
 
 
0x004644 - Y position for West exit of bridge after Death Mt.
 
 
 
0x004645 - Y position for East exit of bridge after Death Mt.
 
 
 
0x004646 - Y position for forest with Fairy after Western Mt. caves
 
 
 
0x004647 - Y position for Red Magic Jar in swamp
 
 
 
0x004648 - Y position for forest with Fairy East of island before Death Mt.
 
 
 
0x004649 - Y position for Lost Woods
 
 
 
0x00464A - Y position for Lost Woods
 
 
 
0x00464B - Y position for Lost Woods
 
 
 
0x00464C - Y position for Lost Woods
 
 
 
0x00464D - Y position for Red Magic Jar on beach
 
 
 
0x00464E - Y position for Red Magic Jar on beach (not used?)
 
 
 
0x00464F - Y position for 1-up doll on beach
 
 
 
0x004650 ~ 0x004656 - Y position for Alt Zelda's castle (not used?)
 
 
 
 
 
 
 
0x00465C - Y position for Rauru
 
 
 
 
 
 
 
0x00465E - Y position for Ruto
 
 
 
0x00465F - Y position for Southern Saria
 
 
 
0x004660 - Y position for Northern Saria
 
 
 
0x004661 - Y position for Baju's Cabin
 
 
 
0x004662 - Y position for Mido
 
 
 
0x004663 - Y position for Parapa Palace
 
 
 
0x004664 - Y position for Swamp Palace
 
 
 
0x004665 - Y position for Island Palace
 
 
 
 
 
 
 
0x00466E - X position for Zelda's castle
 
 
 
0x00466F - X position for Trophy cave
 
 
 
0x004670 - X position for forest with 50 exp. bag and Aches
 
 
 
0x004671 - X position for 1st Magic Container cave
 
 
 
0x004672 - X position for forest with 100 exp. bag and Megmets
 
 
 
0x004673 - X position for 1st Heart Container area
 
 
 
0x004674 - X position for Lost Woods
 
 
 
0x004675 - X position for Bubble path to 1st Heart Container
 
 
 
0x004676 - X position for 1-up doll in swamp
 
 
 
0x004677 - X position for Red Magic Jar in grave yard
 
 
 
0x004678 - X position for Northern exit for cave to Palace 1
 
 
 
0x004679 - X position for Southern exit for cave to Palace 1
 
 
 
0x00467A - X position for Northern exit of Western Mt. caves
 
 
 
0x00467B - X position for Southern exit of Western Mt. caves
 
 
 
0x00467C - X position for Megmet caves and 200 exp. bag
 
 
 
0x00467D - X position for Water of Life caves
 
 
 
0x00467E - X position for 2nd Heart Container caves
 
 
 
0x00467F - X position for Hole to Palace 3 caves
 
 
 
0x004680 - X position for Caves on Palace 3's island
 
 
 
0x004681 - X position for North and South bridge to island before Death Mt.
 
 
 
0x004682 - X position for East and West bridge to island before Death Mt.
 
 
 
0x004683 - X position for West exit of bridge after Death Mt.
 
 
 
0x004684 - X position for East exit of bridge after Death Mt.
 
 
 
0x004685 - X position for forest with Fairy after Western Mt. caves
 
 
 
0x004686 - X position for Red Magic Jar in swamp
 
 
 
0x004687 - X position for forest with fairy East of island before Death Mt.
 
 
 
0x004688 - X position for Lost Woods
 
 
 
0x004689 - X position for Lost Woods
 
 
 
0x00468A - X position for Lost Woods
 
 
 
0x00468B - X position for Lost Woods
 
 
 
0x00468C - X position for Red Magic Jar on beach
 
 
 
0x00468D - X position for Red Magic Jar on beach (not used?)
 
 
 
0x00468E - X position for 1-up doll on beach
 
 
 
0x00468F ~ 0x004695 - X position for Alt Zelda's castle (not used?)
 
 
 
 
 
 
 
0x00469B - X position for Rauru
 
 
 
 
 
 
 
0x00469D - X position for Ruto
 
 
 
0x00469E - X position for Southern Saria
 
 
 
0x00469F - X position for Northern Saria
 
 
 
0x0046A0 - X position for Baju's Cabin
 
 
 
0x0046A1 - X position for Mido
 
 
 
0x0046A2 - X position for Parapa Palace
 
 
 
0x0046A3 - X position for Swamp Palace
 
 
 
0x0046A4 - X position for Island Palace
 
 
 
 
 
 
 
 
 
0x004C4C - 0x004C67 - Grass Area level data
 
 
 
0x004C64 - 0x004C78 - Forest Area level data
 
 
 
 
 
 
 
0x004C8C - 0x004CA6 - 50 point bag level data
 
 
 
 
 
Western Hyrule
 
 
 
0x005435 - HP for Bot (blue)
 
 
 
0x005436 - HP for Bit (red)
 
 
 
 
 
 
 
0x005438 - HP for blue bat
 
 
 
0x00543E - HP for red spider
 
 
 
0x005442 - HP for red Octoroks
 
 
 
0x005445 - HP for Orange Spea Throwing Moblins
 
 
 
0x00544B - HP for boomerang guy (red)
 
 
 
0x00544D - HP for Shell creature in caves
 
 
 
0x005451 - HP for White Stalk Demon in desert
 
 
 
0x0055FA - 0x0055FB - Tiles for bottom of Darias frame 1
 
 
 
0x0055FC - 0x0055FD - Tiles for bottom of Darias frame 1
 
 
 
0x0055FE - 0x0055FF - Tiles for top of Darias frame 2
 
 
 
0x005600 - 0x005601 - Tiles for bottom of Darias frame 2
 
 
 
 
 
 
 
0x00561A - 0x00561B - Tiles for top of Moblin frame 1
 
 
 
0x00561C - 0x00561D - Tiles for bottom of Moblin frame 1
 
 
 
 
 
 
 
0x005620 - 0x005621 - Tiles for Lowders frame 1
 
 
 
0x005622 - 0x005623 - Tiles for Lowders frame 2
 
 
 
0x005624 - 0x005625 - Tiles for Megmets frame 1
 
 
 
0x005626 - 0x005627 - Tiles for Megmets frame 2
 
 
 
0x005628 - 0x005629 - Tiles for Moby frame 1
 
 
 
0x00562A - 0x00562B - Tiles for Moby frame 2
 
 
 
0x00562C - 0x00462D - Tiles for Spear
 
 
 
 
 
0x0084DF - 0x0084E2 - PPU data for Leaves of Trees on Battlefield (East)
 
 
 
0x0084E3 - 0x0084E6 - PPU data for Hanging Leaves on Battlefield (East)
 
 
 
0x0084EB - 0x0084EE - PPU data for Grass on Battlefield (East)
 
 
 
 
 
Eastern Hyrule
 
 
 
0x00943F - HP for Blue Spider
 
 
 
0x009440 - HP for Jumping Skeleton Fish
 
 
 
0x009447 - HP for Leever
 
 
 
0x00944A - HP for Scorpion
 
 
 
0x00944B - HP for Red Lizard Warrior with Club
 
 
 
0x00944C - HP for Orange Lizard Warrior with Spear
 
 
 
 
 
 
 
0x00C3F6 - 0x00C3F9 - PPU data for Top of Exterior Windows in Towns
 
 
 
0x00C3FA - 0x00C3FD - PPU data for Bottom of Exterior Windows in Towns
 
 
 
0x00C44E - 0x00C451 - PPU data for left side of Clouds in Towns
 
 
 
0x00C452 - 0x00C455 - PPU data for right side of Larger Clouds in Towns
 
 
 
0x00C456 - 0x00C459 - PPU data for right side of Smaller Clouds in Towns
 
 
 
0x00C45A - 0x00C45D - PPU data for angle of tunnel right in Towns
 
 
 
0x00C45E - 0x00C461 - PPU data for tunnel wall right in Towns
 
 
 
0x00C4E2 - 0x00C4E5 - PPU data for floors inside buildings
 
 
 
0x00C6B2 - 0x00C6B5 - PPU data for Sky in Towns
 
 
 
0x00C6BA - 0x00C6BD - PPU data for background of Basements of Towns
 
 
 
0x00C6C6 - 0x00C6C9 - PPU data for Bushs in Towns
 
 
 
0x00C6FE - 0x00C701 - PPU data for Ground in Towns
 
 
 
0x00C706 - 0x00C709 - PPU data for Walls in Basements of Towns
 
 
 
 
 
 
 
0x00D437 - HP for Invisible Purple Eye Ghost
 
 
 
 
 
 
 
Temples (Type A)
 
 
 
0x011435 - HP for Bot (blue) inside Temple
 
 
 
0x011437 - HP for Slow Magic Stealing Skulls
 
 
 
0x011449 - HP for Orange Darknuckle
 
 
 
0x01144F - HP for Hooded Arch Club Thrower
 
 
 
0x011450 - HP for Red Skeleton
 
 
 
0x011451 - HP for Horse Head Boss
 
 
 
 
 
 
 
Temples (Type B)
 
 
 
0x012937 - HP for Slow Magic Stealing Skulls
 
 
 
0x012938 - HP for Red Flame Dropping Ghost Eye
 
 
 
0x01293F - HP for Fast Magic Stealing Skulls
 
 
 
0x01294B - HP for Throwing Sword Blue Knight
 
 
 
0x01294F - HP for Blue Axe Thrower
 
 
 
0x012950 - HP for Riding Blue Knight
 
 
 
0x012954 - HP for Masked Blue Skeleton
 
 
 
 
 
0x01163A - 0x01163B - Tiles for sword stab of Iron Knuckle
 
 
 
0x01163C - 0x01163D - Tiles for head of Horse Head frame 1
 
 
 
0x01163E - 0x01163F - Tiles for body of Horse Head frame 1
 
 
 
0x011640 - 0x011641 - Tiles for feet of Horse Head frame 1
 
 
 
0x011642 - 0x011643 - Tiles for head of Horse Head frame 2
 
 
 
0x011644 - 0x011645 - Tiles for body of Horse Head frame 2
 
 
 
0x011646 - 0x011647 - Tiles for feet of Horse Head frame 2
 
 
 
0x011648 - 0x011649 - Tiles for Preparing to swing club of Horse Head
 
 
 
0x01164A - 0x01164B - Tiles for club when preparing of Horse Head
 
 
 
0x01164C - 0x01164D - Tiles for Swinging the club of Horse Head
 
 
 
0x01164E - 0x01164F - Tiles for the club of Horse Head
 
 
 
0x011650 - 0x011651 - Tiles for top of Armored Boss frame 1
 
 
 
0x011652 - 0x011653 - Tiles for bottom of Armored Boss frame 1
 
 
 
0x011654 - 0x011655 - Tiles for top of Armored Boss frame 2
 
 
 
0x011656 - 0x011657 - Tiles for bottom of Armored Boss frame 2
 
 
 
0x01165E - 0x01165F - Tiles for top of Rat Head frame 1
 
 
 
0x011660 - 0x011661 - Tiles for bottom of Rat Head frame 1
 
 
 
0x011662 - 0x011663 - Tiles for top of Rat Head frame 2
 
 
 
0x011664 - 0x011665 - Tiles for bottom of Rat Head frame 2
 
 
 
 
 
0x013F10 - 0x013F6F - Palettes for the 6 Palaces Interiors
 
 
 
 
 
0x017339 - Y position for cursor on Save Slot 1
 
 
 
0x017351 - Y position for cursor on Save Slot 2
 
 
 
0x017369 - Y position for cursor on Save Slot 3
 
 
 
0x01737F - Y position for cursor on Register Your Name
 
 
 
0x017391 - Y position for cursor on Elimation Mode
 
 
 
0x017395 - X position for cursor
 
 
 
 
 
 
 
Beginning Values--
 
0x017AF7 - Begin with Shield Magic
 
 
 
0x017AF8 - Begin with Jump Magic
 
 
 
0x017AF9 - Begin with Life Magic
 
 
 
0x017AFA - Begin with Fairy Magic
 
 
 
0x017AFB - Begin with Fire Magic
 
 
 
0x017AFC - Begin with Reflect Magic
 
 
 
0x017AFD - Begin with Spell Magic
 
 
 
0x017AFE - Begin with Thunder Magic
 
 
 
0x017AFF - Number of Magic Containers to begin game
 
 
 
0x017B00 - Number of Heart Containers to begin game
 
 
 
0x017B01 - Begin with Candle
 
 
 
0x017B02 - Begin with Power Glove
 
 
 
0x017B03 - Begin with Raft
 
 
 
0x017B04 - Begin with Boots
 
 
 
0x017B05 - Begin with Flute
 
 
 
0x017B06 - Begin with Cross
 
 
 
0x017B07 - Begin with Hammer
 
 
 
0x017B08 - Begin with Magic Key
 
 
 
 
 
 
 
0x017B10 - Number of Crystals to begin game
 
 
 
 
 
 
 
0x017B12 - Techs (Downward Thrust 10) (Upward Thrust 04) (Both 14)
 
 
 
 
 
 
 
0x017B1D - 0x017B24 - Letter Values when blanking a name out
 
 
 
 
 
 
 
0x017B25 - 0x017C04 - Bit defaults for sprites (keys, items, etc.)
 
--End of beginning data
 
 
 
 
 
 
 
0x018027 - 0x01811E - Note Tables
 
 
 
 
 
0x01C46B - 0x01C47A - Palette for Overworld
 
0x01C47B - 0x01C48A - Sprite pallet set for Overworld
 
 
 
 
 
0x01C369 - Number of lives to begin game
 
 
 
 
 
0x01CD3A - Graphics Set for Palace 1
 
 
 
0x01CD3B - Graphics Set for Palace 2
 
 
 
0x01CD3C - Graphics Set for Palace 3
 
 
 
0x01CD3E - Graphics Set for Palace 4
 
 
 
0x01CD42 - Graphics Set for Palace 5
 
 
 
0x01CD43 - Graphics Set for Palace 6
 
 
 
0x01CD44 - Graphics Set for Great Palace
 
 
 
 
 
 
 
0x01CD45 - Palette for Palace 1
 
 
 
0x01CD46 - Palette for Palace 2
 
 
 
0x01CD47 - Palette for Palace 3
 
 
 
0x01CD49 - Palette for Palace 4
 
 
 
0x01CD4D - Palette for Palace 5
 
 
 
0x01CD4E - Palette for Palace 6
 
 
 
0x01CD4F - Palette for Great Palace
 
 
 
 
 
 
 
0x01D4B0 - Number of experience to lose from certain enemies
 
 
 
 
 
 
 
Enemies that give no experience
 
 
 
0x01DD5C - Show  no  experience points (part 1)
 
 
 
0x01DD6C - Show  no  experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 2 experience
 
 
 
0x01DD5D - Show  no  experience points (part 1)
 
 
 
0x01DD6D - Show "2" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 3 experience
 
 
 
0x01DD5E - Show  no  experience points (part 1)
 
 
 
0x01DD6E - Show "3" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 5 experience
 
 
 
0x01DD5F - Show  no  experience points (part 1)
 
 
 
0x01DD6F - Show "5" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 10 experience
 
 
 
0x01DD60 - Show no experience points (part 1)
 
 
 
0x01DD70 - Show "10" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 20 experience
 
 
 
0x01DD61 - Show "2" experience points (part 1)
 
 
 
0x01DD71 - Show "0" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 30 experience
 
 
 
0x01DD62 - Show "3" experience points (part 1)
 
 
 
0x01DD72 - Show "0" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 50 experience
 
 
 
0x01DD63 - Show "5" experience points (part 1)
 
 
 
0x01DD73 - Show "0" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 70 experience
 
 
 
0x01DD64 - Show "7" experience points (part 1)
 
 
 
0x01DD74 - Show "0" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 100 experience
 
 
 
0x01DD65 - Show "10" experience points (part 1)
 
 
 
0x01DD75 - Show "0" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 150 experience
 
 
 
0x01DD66 - Show "15" experience points (part 1)
 
 
 
0x01DD76 - Show "0" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 200 experience
 
 
 
0x01DD67 - Show "2" experience points (part 1)
 
 
 
0x01DD77 - Show "00" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 300 experience
 
 
 
0x01DD68 - Show "3" experience points (part 1)
 
 
 
0x01DD78 - Show "00" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 500 experience
 
 
 
0x01DD69 - Show "5" experience points (part 1)
 
 
 
0x01DD79 - Show "00" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 700 experience
 
 
 
0x01DD6A - Show "7" experience points (part 1)
 
 
 
0x01DD7A - Show "00" experience points (part 2)
 
 
 
 
 
 
 
Enemies that give 1000 experience
 
 
 
0x01DD6B - Show "10" experience points (part 1)
 
 
 
0x01DD7B - Show "00" experience points (part 2)
 
 
 
 
 
0x01DDD0 - Low byte Experience Points Type 01 (0000)
 
 
 
0x01DDD1 - Low byte Experience Points Type 02 (0002)
 
 
 
0x01DDD2 - Low byte Experience Points Type 03 (0003)
 
 
 
0x01DDD3 - Low byte Experience Points Type 04 (0005)
 
 
 
0x01DDD4 - Low byte Experience Points Type 05 (0010)
 
 
 
0x01DDD5 - Low byte Experience Points Type 06 (0020)
 
 
 
0x01DDD6 - Low byte Experience Points Type 07 (0030)
 
 
 
0x01DDD7 - Low byte Experience Points Type 08 (0050)
 
 
 
0x01DDD8 - Low byte Experience Points Type 09 (0070)
 
 
 
0x01DDD9 - Low byte Experience Points Type 10 (0100)
 
 
 
0x01DDDA - Low byte Experience Points Type 11 (0150)
 
 
 
0x01DDDB - Low byte Experience Points Type 12 (0200)
 
 
 
0x01DDDC - Low byte Experience Points Type 13 (0300)
 
 
 
0x01DDDD - Low byte Experience Points Type 14 (0500)
 
 
 
0x01DDDE - Low byte Experience Points Type 15 (0700)
 
 
 
0x01DDEA - Low byte Experience Points Type 16 (1000)
 
 
 
0x01DDEC - High byte Experience Points Type 01 (0000)
 
 
 
0x01DDED - High byte Experience Points Type 02 (0002)
 
 
 
0x01DDEE - High byte Experience Points Type 03 (0003)
 
 
 
0x01DDEF - High byte Experience Points Type 04 (0005)
 
 
 
0x01DDF0 - High byte Experience Points Type 05 (0010)
 
 
 
0x01DDF1 - High byte Experience Points Type 06 (0020)
 
 
 
0x01DDF2 - High byte Experience Points Type 07 (0030)
 
 
 
0x01DDF3 - High byte Experience Points Type 08 (0050)
 
 
 
0x01DDF4 - High byte Experience Points Type 09 (0070)
 
 
 
0x01DDF5 - High byte Experience Points Type 10 (0100)
 
 
 
0x01DDF6 - High byte Experience Points Type 11 (0150)
 
 
 
0x01DDF7 - High byte Experience Points Type 12 (0200)
 
 
 
0x01DDF8 - High byte Experience Points Type 13 (0300)
 
 
 
0x01DDF9 - High byte Experience Points Type 14 (0500)
 
 
 
0x0DDDFA - High byte Experience Points Type 15 (0700)
 
 
 
0x01DDFB - High byte Experience Points Type 16 (1000)
 
 
 
 
 
 
 
 
 
 
 
0x01E8B0 - Number of enemies to defeat for exp. bag or magic jar
 
 
 
 
 
 
 
0x01E910 - Type of vulnarablity Bit (red) has
 
 
 
0x01E911 - Type of vulnarability Bot (blue) has
 
 
 
 
 
 
 
0x01EB35 ~ 0x01EB3A - Tiles to use for Walking Link Sprite (00)
 
 
 
0x01EB3B ~ 0x01EB40 - Tiles to use for Walking Link Sprite (01)
 
 
 
0x01EB41 ~ 0x01EB46 - Tiles to use for Walking Link Sprite (02)
 
 
 
0x01EB47 ~ 0x01EB4C - Tiles to use for Ducking Link Sprite (06)
 
 
 
0x01EB4D ~ 0x01EB52 - Tiles to use for Standing Link Sprite (03)
 
 
 
0x01EB53 ~ 0x01EB58 - Tiles to use for Preparing to Stab Link Sprite (04)
 
 
 
0x01EB59 ~ 0x01EB5E - Tiles to use for Stabbing Link Sprite (05)
 
 
 
 
 
 
 
0x01EE61 - 0x01EE62 - Tiles for Defeated enemy frame 1
 
 
 
0x01EE63 - 0x01EE64 - Tiles for Defeated enemy frame 2
 
 
 
 
 
 
 
0x01EB65 ~ 0x01EB6A - Tiles to use for Ducking Stabbing Link Sprite (07)
 
 
 
0x01EB6B ~ 0x01EB70 - Tiles to use for Upward Thrust Link Sprite (08)
 
 
 
 
 
 
 
0x01EE67 - 0x01EE68 - Tiles for Left side of elevator
 
 
 
 
 
 
 
0x01EE71 - 0x01EE72 - Tiles for Deelers
 
 
 
0x01EE73 - 0x01EE74 - Tiles for Octoroks frame 1
 
 
 
0x01EE75 - 0x01EE76 - Tiles for Octoroks frame 2
 
 
 
0x01EE77 - 0x01EE78 - Tiles for Aches frame 1
 
 
 
0x01EE79 - 0x01EE7A - Tiles for Aches frame 2
 
 
 
0x01EE7B - 0x01EE7C - Tiles for top of Achemen
 
 
 
0x01EE7D - 0x01EE7E - Tiles for bottom of Achemen
 
 
 
 
 
 
 
0x01EE87 - 0x01EE88 - Tiles for Bit/Bots frame 1
 
 
 
0x01EE89 - 0x01EE8A - Tiles for Bit/Bots frame 2
 

Latest revision as of 21:00, 26 April 2020

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)


Internal Data for Zelda II: The Adventure of Link

ROM MapRAM MapText TableNotesTutorials