pokeplatinum/docs/maps
Kuruyia 67bf6c7eee Small fixes in the area light Markdown doc
This fixes the following related to area light in the file format
specifications Markdown document:

- change the name of the area light NARC file from `area_light.narc` to
  `arealight.narc` to reflect its real name in the repo
- change the "light enabled" parameter to "light valid", as documented
  in area light-related code.

Signed-off-by: Kuruyia <github@kuruyia.net>
2025-03-19 13:24:56 +01:00
..
bdhc.md Start Markdown documentation of the maps system 2025-03-16 21:40:56 +01:00
file_format_specifications.md Small fixes in the area light Markdown doc 2025-03-19 13:24:56 +01:00
loading_maps.md Start Markdown documentation of the maps system 2025-03-16 21:40:56 +01:00
maps.md Start Markdown documentation of the maps system 2025-03-16 21:40:56 +01:00
README.md Start Markdown documentation of the maps system 2025-03-16 21:40:56 +01:00

Map documentation

This section of the documentation aims to provide an overview of the different map-related subsystems, the interaction between them, and how they load their data from the ROM so that, in the end, the game can seamlessly render a world in which the player moves.

Glossary

  • Area: a collection of maps that load the same set of textures and map prop models.
  • BDHC: contains data used to calculate the height of the terrain. Used for collision detection and the map objects height, for example.
  • Map: a 2D grid of 32x32 tiles that form part of the game's world.
  • Map header: a structure that contains metadata about a map, such as its music, its name, whether cycling is allowed, etc. Each map is associated with a map header, and has a specific, well-known ID.
  • Map matrix: a 2D array of maps that form a playable area. This system allows the game to dynamically load and unload maps as the player moves around the world. The overworld is one such example of a map matrix, containing 30x30 maps.
  • Map object: an entity that is placed on the map. Examples include the player and NPCs.
  • Map prop: a 3D model that is placed on the map. Examples include the various buildings encountered throughout the game, but also interior furniture, honey trees, etc.
  • NARC: Nitro ARChive, a file format used by Nintendo DS games to store files. (think archive as in a .tar file, a file that contains files)
  • NSBCA/NSBTA: a file format used to store animations for 3D models for the Nintendo DS. See apicula's documentation for more information.
  • NSBMD: a file format used to store 3D models, textures and palettes for the Nintendo DS. See apicula's documentation for more information.
  • NSBTX: a file format used to store textures and palettes for the Nintendo DS. See apicula's documentation for more information.

What's in this directory?

  • maps.md: a general overview of maps
  • bdhc.md: an overview of the BDHC subsystem, which is used to provide height information on maps
  • loading_maps.md: an overview of how maps are loaded by the game
  • file_format_specifications.md: a more technical description of the different files and their data structures that are used to store map data

Credits

  • Mikelan98 and HumanGamer for their initial work on BDHC (here and here)
  • HiroTDK for their comprehensive documentation on the file formats used in HeartGold and SoulSilver (here)
  • scurest for their work on apicula and the associated documentation (linked above)