BCSAR: Difference between revisions

Oreo639 (talk | contribs)
Update names
Line 2: Line 2:
== Overview ==
== 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.
The BCSAR (Binary 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, this is usually stored under "romfs:/sound/<name>.bcsar". This contains various audio formats, such as CSTM, CWSD, and CWAV.
BCSAR are located in the RomFS, this is usually stored under "romfs:/sound/<name>.bcsar". This contains various audio formats, such as CSTM, CWSD, CSEQ, and CWAV.


== BCSAR Header ==
== BCSAR Header ==
Line 40: Line 40:
|  0x14
|  0x14
|  0x4
|  0x4
Partition header length [same for each partition? (ie STRG,INFO,and FILE header lengths)]
STRG partition reference ID? (Always 0x2000)
|-
|-
|  0x18
|  0x18
Line 52: Line 52:
|  0x20
|  0x20
|  0x4
|  0x4
Unknown (always 0x01200000?)
INFO partition reference ID? (Always 0x2001)
|-
|-
|  0x24
|  0x24
Line 61: Line 61:
|  0x4
|  0x4
|  Length of INFO partition
|  Length of INFO partition
|-
|  0x2C
|  0x4
|  Main FILE partition reference ID? (Always 0x2002)
|-
|-
|  0x30
|  0x30
Line 237: Line 241:
|  0x8
|  0x8
|  0x4
|  0x4
Unknown magic 0x2100
Audio Table Reference ID (0x2100)
|-
|-
|  0xC
|  0xC
|  0x4
|  0x4
|  This + 8 points to unknown
|  This + 8 points to the Audio Table
|-
|-
|  0x10
|  0x10
|  0x4
|  0x4
Unknown magic 0x2104
Set Table Reference ID (0x2104)
|-
|-
|  0x14
|  0x14
|  0x4
|  0x4
|  This + 8 points to unknown
|  This + 8 points to the Set Table
|-
|-
|  0x18
|  0x18
|  0x4
|  0x4
Unknown magic 0x2101
Bank Table Reference ID (0x2101)
|-
|-
|  0x1C
|  0x1C
|  0x4
|  0x4
|  This + 8 points to unknown
|  This + 8 points to the Bank Table
|-
|-
|  0x20
|  0x20
|  0x4
|  0x4
Unknown magic 0x2103
WAV Archive Table Reference ID (0x2103)
|-
|-
|  0x24
|  0x24
|  0x4
|  0x4
|  This + 8 points to unknown
|  This + 8 points to the WAV Archive Table
|-
|-
|  0x28
|  0x28
|  0x4
|  0x4
Unknown magic 0x2105
Group Table Reference ID (0x2105)
|-
|-
|  0x2C
|  0x2C
|  0x4
|  0x4
|  This + 8 points to unknown
|  This + 8 points to the Group Table
|-
|-
|  0x30
|  0x30
|  0x4
|  0x4
Unknown magic 0x2102
Player Table Reference ID (0x2102)
|-
|-
|  0x34
|  0x34
|  0x4
|  0x4
|  This + 8 points to unknown
|  This + 8 points to Player Table
|-
|-
|  0x38
|  0x38
|  0x4
|  0x4
Unknown magic 0x2106
FILE Table Reference ID (0x2106)
|-
|-
|  0x3C
|  0x3C
|  0x4
|  0x4
|  This + 8 points to unknown
|  This + 8 points to the FILE Table
|-
|-
|  0x40
|  0x40
|  0x4
|  0x4
|  Unknown magic 0x220B
|  Unknown Table Reference ID (0x220B)
|-
|-
|  0x44
|  0x44
Line 414: Line 418:
|  0x4
|  0x4
|  Unknown
|  Unknown
|-
|}
===== Table IDs =====
{| class="wikitable" border="1"
|-
!  ID
!  NAME
|-
|  0x2200
|  Audio Table
|-
|  0x2204
|  Set Table
|-
|  0x2206
|  Bank Table
|-
|  0x2207
|  WAV Archive Table
|-
|  0x2208
|  Group Table
|-
|  0x2208
|  Player Table
|-
|  0x220A
|  FILE Table
|-
|-
|}
|}
Line 445: Line 479:
== Tools ==
== Tools ==
* vgmtoolbox's Advanced Cutter/Offset Finder tool can extract BCWAVs without filenames
* vgmtoolbox's Advanced Cutter/Offset Finder tool can extract BCWAVs without filenames
* [https://github.com/soneek/3DSUSoundArchiveTool 3DSUSoundArchiveTool] reference implementation of CSAR extraction