pokeplatinum/docs/maps
Kuruyia c1c1cd09ba Add reference to NSBTP in Markdown docs
This adds a reference to where to find documentation about NSBTP files
in the maps Markdown docs, and adds that this file format can be
encountered in the map prop animations NARC.

Signed-off-by: Kuruyia <github@kuruyia.net>
2025-03-31 20:38:56 +02:00
..
bdhc.md Start Markdown documentation of the maps system 2025-03-16 21:40:56 +01:00
dynamic_map_features.md Start Markdown documentation for dynamic map features 2025-03-31 20:38:53 +02:00
file_format_specifications.md Add reference to NSBTP in Markdown docs 2025-03-31 20:38:56 +02: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 Add reference to NSBTP in Markdown docs 2025-03-31 20:38:56 +02: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/NSBTP/NSBTA: file formats 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
  • dynamic_map_features.md: a description of the dynamic map features system used to make dynamic maps

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)