If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Development:The Legend of Zelda: Ocarina of Time/File Select Map

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of Development:The Legend of Zelda: Ocarina of Time.

Overview

OoT Leak-Course Vertex Map.png
Hmmm...
To do:
Write more about this early map select. Compare it to that SGI demo.

This early course map is present in the final game as a F3DEX display list called z_select_static. (Ocarina of Time uses microcode derived from F3DEX2, which makes the F3DEX format of this file stand out, as its older format makes it impossible to display in-game.) It is an uncompressed file loaded by z_select, the Map Select game state. Despite going to the trouble of loading it up, the game does nothing further with it.

It is first mentioned in a 1997/04/03 commit log message written by chief programmer Kenzō Hayakawa in z_ocarina2/src/spec.segment reading "Course Map Test".

The associated files still present in the leak are below:

  • z_ocarina2/data/shape2/course_map_s.o
  • z_ocarina2/src/course_map.c.vtx

Other references to this course map are found in z_majora/data/shape/a, which, despite its filepath, is actually a list of assets from Ocarina of Time.

egrep -n 'hi_light_txt,' ./course_mapx1/course_map.c b
egrep -n 'hi_light_txt,' ./course_mapx1/course_map_orig.c b
egrep -n 'hi_light_txt,' ./course_mapx1/course_map_s.c b

No corresponding files remain in the Zelda folders, but the following relevant files can be found in the Doubutsu no Mori source leak, which includes some assets from the Zelda series:

  • forest/data/shape/course_map_s.c
  • forest/data/shape/course_map_s.o <-- The compiled version of the C file above.

It is also commented out of the spec.segment file found in Majora's Mask, while there is no equivalent commented out portion in the version belonging to Ocarina of Time:

#if 0
/*
 * 
 */
/*DefSegX("z_select_static", 	STATIC_SEGMENT,				"$(ZELDA_DATA)/shape/map/course_mapx1/course_map_s.o")*/
DefSegX("z_select_static", 	STATIC_SEGMENT,				"$(ZELDA_DATA)/shape/course_mapx1/course_map_s.o")
#endif

The Map

Map w/ Field Numbers Added

The model found within z_ocarina2/data/shape2/course_map_s.o appears to be a color-coded visual map select screen with maps represented by green squares and red hexagons connected together by white rectangular lines representing shared map exits. There are 24 green squares and 7 red hexagons in total.

Symbols in this file refer to the display lists in the model as field01 through field31, with "field" meaning an overworld map (as it does in gameplay_field_keep, a file full of assets intended for overworld maps only), and the numbers likely representing the maps' IDs. This indicates that this map select likely only lead to overworld maps and not directly to dungeons or interior maps.

Map w/ Speculative Colors Showing Contiguous Regions Added

Visualizing the map with the probable map IDs given by the display list names reveals field01 in the center of the map, with 4 exits coming from it leading to all other parts of the map. From this central point, map IDs increment rather continuously, with each map generally connecting to a map with an ID either one above or one below its own. However, there are breaks in this pattern, and grouping maps together based on if they have contiguous map IDs reveals probable map regions in the overworld.

Most notable about these supposed regions is that each contains only one map represented by a hexagon. It is uncertain what, exactly, the maps represented by red hexagons were meant to be.

Vertices in Blender Edit to Resemble course_map_s
OoT Leak-Course Map Vertices.png OoT Leak-Course Vertex Map old.png

Within course_map.c.vtx is a list of vertices that make up a primitive representation of the course map seen in course_map_s.o. Each vertex has an associated comment labeling what group it is a part of, with the groups being named f01 through f31. These groups vary in the number of vertices they have, ranging from having one vertex to five vertices. Plotting the vertices out reveals that each vertex group represents a map in the game, and the number of vertices in the group represents the number of exits the map has. Build logs reveal that each vertex group appears to have belonged to display lists named field01 through field31 in the same vein as the display lists found in course_map_s.o.