Overview

The BCSAR (CTR Sound ARchive) format is the 3DS's equivalent of the Wii's BRSAR format. They're not the same structures, though, but they do have the same purpose.

BCSAR are located in the RomFS and store various audio formats, such as CSTM, CWSD, and CWAV.

Format

OFFSET SIZE DESCRIPTION
0x0 0x4 MAGIC "CSAR"
0x4 0x2 Byte order mark?
0x6 0x1 Length of BCSAR header
0xB 0x1 Version?
0xC 0x4 Length of the entire BCSAR (starting from 0x0)
0x10 0x1 Amount of partitions in the BCSAR? [STRG + INFO + FILE = 0x03 (= 3)]
0x15 0x1 Partition header length? [same for each partition? (ie STRG,INFO,and FILE header lengths)]
0x18 0x4 Location of STRG partition
0x1C 0x4 Length of STRG partition
0x24 0x4 Location of INFO partition
0x28 0x4 Length of INFO partition
0x30 0x4 Location of FILE partition
0x34 0x4 Length of FILE partition
0x38 0x4 Reserved for 4th partition location?
0x3C 0x4 Reserved for 4th partition length?

Partitions

STRG

STRG contains the names of the audio files in the BCWAV.

For now I only know information in the header for this partition, but I'm working on figuring the rest out.

OFFSET SIZE DESCRIPTION
0x0 0x4 MAGIC "STRG"
0x4 0x4 Length of STRG partition (also in CSAR header)

INFO

INFO presumably contains information on the audio files? Possibly used to connect names from STRG to data from FILE?

For now I only know information in the header for this partition, but I'm working on figuring the rest out.

OFFSET SIZE DESCRIPTION
0x0 0x4 MAGIC "INFO"
0x4 0x4 Length of INFO partition (also in CSAR header)

FILE

FILE contains all of the audio data in the BCSAR.

OFFSET SIZE DESCRIPTION
0x0 0x4 MAGIC "FILE"
0x4 0x4 Length of FILE partition (also in CSAR header)

There isn't a whole lot else I can document about the FILE partition, since the data in it will most definitely vary depending on the game. (since audio is more than likely to change in each game) There is no table in FILE so a different partition (presumably INFO) must be used to connect the data in FILE with the names from STRG.