From ZeldaHacking Wiki
Jump to: navigation, search

VRAM Layouts

Here are some general layouts for the structure of VRAM in various scenarios.

Inventory menu

Bank 0
Address range Graphics
8000-82ff gfx_inventory_hud_1
8300-83ff gfx_present_past_symbols
8400-85ff gfx_quest_items_5
8600-867f gfx_save
8680-87ff gfx_map_compass_keys_bookofseals (first quarter not visible)
8800-89ff gfx_blank
8a00-8dff gfx_rings
8e00-8fff gfx_inventory_hud_2
9000-97ff Unused
Bank 1
Address range Graphics
8000-81ff gfx_item_icons_1_spr
8200-83ff gfx_item_icons_2
8400-85ff gfx_item_icons_3
8600-877f gfx_essences
8780-87ff A and B button item graphics (dynamically changing)
8800-89ff gfx_quest_items_1
8a00-8bff gfx_quest_items_2
8c00-8dff gfx_quest_items_3
8e00-8fff gfx_quest_items_4
9000-91ff Unused
9200-93ff Text (in the bar at the bottom of the screen)
9400-97ff Unused

Graphics file list

The disassembly has two folders with graphics, the "gfx" folder and the "gfx_compressible" folder. Files in the "gfx_compressible" folder are, of course, compressible, while files in the "gfx" folder are not. Most graphics are compressible, but there are certain cases where it's advantageous to store graphics uncompressed.

There are three types of graphics files:

  • gfx_: Graphics data that can be edited with software like YY-CHR or TLP.
  • map_: A tilemap which specifies where to draw which tiles. Usually has a corresponding "flg_".
  • flg_: "Flag" or "attribute" data that determines which palettes to use, whether to flip the tile, etc. (These won't be listed since they always correspond to a "map_".)

This is a list of some files in these folders. It isn't complete; it just lists some of the most important graphics, or the ones that aren't self-explanitory.

gfx folder

Filename Description
gfx_animations_* These are tiles used for animating the background layer (ie. water, lava, waterfalls).
gfx_dungeon_sprites Graphics for various objects (minecarts, moving platforms, etc).
gfx_font This is the font used in textboxes and whatnot. Unlike most other graphics, it's stored in 1bpp format. The first 14 characters are ignored.
gfx_font_jp This file contains mostly kanji, so it's not used much in the english version. It also contains a triangle symbol, though, which is used. 1bpp format.
gfx_font_tradeitems These are trade item icons used in textboxes. 2bpp format.
gfx_item_icons_[1,2,3] These are item icons. They're used in the inventory screen (but the A/B buttons always use sprites; see "gfx_item_icons_1_spr" in the "gfx_compressible" folder.)
gfx_link You know it.
gfx_past_chest This file overwrites the chest graphics whenever Link is in the past. This is helpful for indoor areas that use the same tileset in both the past and the present.
gfx_past_sign Same idea as gfx_past_chest.
map_rings Each 8 bytes of this file defines the tilemap and the attributes needed to display each ring.

gfx_compressible folder

Filename Description
gfx_blurb_* A graphic to show when opening the map in each dungeon.
gfx_common_items Graphics for the most common item drops (rupees, hearts, fairies, seeds, etc).
gfx_common_sprites Graphics for many common sprites (explosions, somaria block, etc). Always loaded in address 1:8000 during normal gameplay.
gfx_dungeon_map_tiles Graphics for the dungeon map, as well as the cursor (which is also used on the overworld map).
gfx_hud Status bar tiles (plus arrow tiles used for textboxes). Usually loaded at 0:9000.
gfx_inventory_hud Tiles used in the inventory and the ring list screen.
gfx_item_icons_1_spr This is analagous to "gfx_item_icons_1" in the "gfx" folder, except it's formatted slightly differently to be usable as sprites. Item icons are sprites when on the A or B buttons; otherwise, they're on the background layer.

(gfx_item_icons_2 and 3 don't have sprite versions; apparently, they can be used on both the background and sprite layers already.)

gfx_map_icons Icons that appear when you hover over certain areas of the map; and other miscellaneous things (arrows and sparkles for the time portal)
gfx_map_tiles_common Tiles used for both the past and present overworld maps.
gfx_map_tiles_[present,past]_* Tiles used specifically for the present or past overworld maps.
map_inventory_[1-3] Tilemaps for each of the three subscreens of the inventory.