SARC: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
imported>Leoetlino
imported>BravelyPeculiar
Line 12: Line 12:
The following extensions are specific to the game:
The following extensions are specific to the game:
* pack
* pack
* bactorpack
* [[bactorpack]]
* bmodelsh
* bmodelsh
* beventpack
* [[beventpack]]
* stera
* stera
* stats
* stats

Revision as of 00:21, 7 September 2018

SARCs are archives that are used in many recent Nintendo games such as Breath of the Wild.

Structure

The basic structure of SARC files is documented on the MK8 wiki.

Usage in Breath of the Wild

SARCs are used extensively in Breath of the Wild to keep related data in memory and minimise loading times.

Extensions

Archives have a wide range of extensions. However, the file format is completely the same regardless of the extension.

The following extensions are specific to the game:

The following extensions are used by Nintendo libraries that are included in the game (non exhaustive list):

  • sarc
  • bgenv
  • genvb
  • blarc

Data alignment

Some files have specific alignment requirements (e.g. for GPU data). Because Nintendo's SARC library returns file data by giving pointers to the data section directly, special care must be taken to pack files in a way that satisfies all alignment requirements.

Nintendo libraries do not use BotW's resource system and expect files to be properly aligned. This is the case for layout archives (blarc) and agl environment files (Pack/Bootup.pack/Env/env.genvb).

However unlike most other Nintendo games, for files that are managed by the game's resource system, aligning archive file data is usually unnecessary because the system will automatically allocate an aligned buffer and copy the archive data into it.

Tools

Because of the alignment problem and file size limitations due to Breath of the Wild's resource system, only the following tools are recommended: