Overworld Areas
This is a subpage of Overworld
See also: Standard Notation
Outdoor areas (also known as the Overworld) come in two flavors: Normal and special. Normal outdoor areas (the Light world and the Dark world) are mirrored 8×8 grids of 512×512-pixel cells for a total of 64 cells and a 4096×4096-pixel area in size. Normal outdoor grid cells can be quadruple in size (1024×1024 pixels), in which case their indices represent their top-left quadrants and the indices for the other three quadrants they occupy do not occur. Special outdoor areas (such as Zora's Domain) are separate individual mini-areas on their own.
Contents
Area Index
In WRAM, there is a byte which indicates whether or not the player is currently in an indoor or outdoor area, and when the player is in an outdoor area, there is a word which contains the index of the outdoor area the player is currently in.
- $7E001B[$1]
- 0 while player is outside
- 1 while player is inside
- $7E008A[$2]
- the current area index while player is outside
- invalid while player is inside
Player Coordinates
See also: Player Position
Let A be the current area index, (Px,Py) be the current absolute player coordinates, and (Lx,Ly) be the local coordinates of the player within the current area.
When the player is in the Light world (area index $00..$3F), the player's coordinates originate at the top-left corner of area $00, and the coordinates can be calculated as follows.
Lx = Px - ( A % 8 ) * 512 Ly = Py - ( A / 8 ) * 512
When the player is in the Dark world (area index $40..$7F), the player's coordinates originate at the top-left corner of area $40, and the coordinates can be calculated as follows.
Lx = Px - ( ( A - $40 ) % 8 ) * 512 Ly = Py - ( ( A - $40 ) / 8 ) * 512
When the player is in a special area (area index $80 and up), the player's coordinates originate at the top-left corner of the current special area. There are two special areas: $80 combines the Master Sword area and the area under the bridge east of the player's house, and $81 is Zora's Domain. Local coordinates within the Master Sword area and within Zora's Domain are equal to the absolute coordinates. The player is in the area under the bridge when their X coordinate is 256 or greater, and their local X coordinate is simply their absolute X coordinate minus 256.
The Light World and the Dark World
The Light world and Dark world mirror each other: Any area index in the Light world refers to an area index in the Dark world of the same size and at the same location, except the Dark world index is increased by $40. The following table lists the areas of both worlds by their Light world name for simplicity.
Index (Light World) | Index (Dark World) | Size (a×a) | Description (for Light World) |
---|---|---|---|
$00 (0) | $40 (64) | 1024 | Lost Woods |
$02 (2) | $42 (66) | 512 | Lumberjacks |
$03 (3) | $43 (67) | 1024 | Western Death Mountain |
$05 (5) | $45 (69) | 1024 | Eastern Death Mountain |
$07 (7) | $47 (71) | 512 | Turtle Rock |
$0A (10) | $4A (74) | 512 | Entrance to Death Mountain |
$0F (15) | $4F (79) | 512 | Entrance to Zora's Domain |
$10 (16) | $50 (80) | 512 | Path Between Kakariko Village and Lost Woods |
$11 (17) | $51 (81) | 512 | Kakariko Village Fortune Teller |
$12 (18) | $52 (82) | 512 | Pond Between Kakariko Village Fortune Teller and Sanctuary |
$13 (19) | $53 (83) | 512 | Sanctuary |
$14 (20) | $54 (84) | 512 | Graveyard |
$15 (21) | $55 (85) | 512 | River Between Graveyard and Witch's Hut |
$16 (22) | $56 (86) | 512 | Witch's Hut |
$17 (23) | $57 (87) | 512 | East of Witch's Hut |
$18 (24) | $58 (88) | 1024 | Kakariko Village |
$1A (26) | $5A (90) | 512 | Forest Between Kakariko Village and Hyrule Castle |
$1B (27) | $5B (91) | 1024 | Hyrule Castle |
$1D (29) | $5D (93) | 512 | Bridge Between Graveyard and Witch's Hut |
$1E (30) | $5E (94) | 1024 | Eastern Palace |
$22 (34) | $62 (98) | 512 | Smithy |
$25 (37) | $65 (101) | 512 | Path Between Hyrule Castle and Eastern Palace}} (top) |
$28 (40) | $68 (104) | 512 | Kakariko Village Maze Race |
$29 (41) | $69 (105) | 512 | Kakariko Village Library |
$2A (42) | $6A (106) | 512 | Haunted Grove |
$2B (43) | $6B (107) | 512 | Forest Between Haunted Grove and Link's House |
$2C (44) | $6C (108) | 512 | Link's House |
$2D (45) | $6D (109) | 512 | Path Between Hyrule Castle and Eastern Palace}} (bottom) |
$2E (46) | $6E (110) | 512 | Caves South of Eastern Palace (left) |
$2F (47) | $6F (111) | 512 | Caves South of Eastern Palace (right) |
$30 (48) | $70 (112) | 1024 | Desert of Mystery |
$32 (50) | $72 (114) | 512 | South of Haunted Grove |
$33 (51) | $73 (115) | 512 | Northwestern Great Swamp |
$34 (52) | $74 (116) | 512 | Northeastern Great Swamp |
$35 (53) | $75 (117) | 1024 | Lake Hylia |
$37 (55) | $77 (119) | 512 | Ice Cave |
$3A (58) | $7A (122) | 512 | Path Between Desert of Mystery and Great Swamp |
$3B (59) | $7B (123) | 512 | Southwestern Great Swamp |
$3C (60) | $7C (124) | 512 | Southeastern Great Swamp |
$3F (63) | $7F (127) | 512 | Path Between Lake Hylia and Ice Cave |
Special Areas
- $80 ― 512×512
- Master Sword area ― (0,0) to (255,511)
- Area under the bridge ― (256,0) to (511,255)
- $81 ― 512×512
- Zora's Domain
How maps are stored
Compression
The background is composed of 32×32 blocks and are LZ1 compressed.
Map32 to Map16 Conversion Values
- 0x18000 = Upper leftcorners //end with $FF at 0x1B3FF
- 0x1B400 = Upper right corners //end with $FF at 0x1E7FF
- 0x20000 = Lower leftcorners //end with $FF at 0x233FF
- 0x23400 = Lower right corners //end with $FF at 0x267EF
Theses value come in pack of 4 bytes, followed by 2 bytes. The 2 bytes are 4 nibble value that are the extension of the 4 first
You have theses bytes:
05 06 07 08 30 1A
- 05 become $305
- 06 stays $06
- 07 become $107
- 08 become $A08
Map8 to Map16 Conversion Values
- 0x78000 = Map8 to Map16 conversion values (8 bytes per tile16), 2 byte each tile8
- vhopppcc cccccccc
- v = mirror vertical
- h = mirror horizontal
- o = ???
- p = priority tile
- c = tile index
Map Size
- 0x12844 = 1byte each map
- $00 = 512x512pixel map
- $20 = 1024x1024 pixel map
Compressed tile arragement
- 0x1794D = LONGPointers all tiles of maps [High] (mapid3)
- 0x17B2D = LONGPointers all tiles of maps [Low](mapid3)
Data leading to is compressed using the LZ2 compression 0x05D97 tiles gfx to load the map (correspond to GFX# in HM) surprisingly overworld only use 32 to 47 LW, 48 to 63 DW, 4 bytes per gfx
Table of Contents |
---|