BCSAR: Difference between revisions
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 | ||
| | | STRG partition reference ID? (Always 0x2000) | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
Line 52: | Line 52: | ||
| 0x20 | | 0x20 | ||
| 0x4 | | 0x4 | ||
| | | 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 | ||
| | | Audio Table Reference ID (0x2100) | ||
|- | |- | ||
| 0xC | | 0xC | ||
| 0x4 | | 0x4 | ||
| This + 8 points to | | This + 8 points to the Audio Table | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
| 0x4 | | 0x4 | ||
| | | Set Table Reference ID (0x2104) | ||
|- | |- | ||
| 0x14 | | 0x14 | ||
| 0x4 | | 0x4 | ||
| This + 8 points to | | This + 8 points to the Set Table | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
| 0x4 | | 0x4 | ||
| | | Bank Table Reference ID (0x2101) | ||
|- | |- | ||
| 0x1C | | 0x1C | ||
| 0x4 | | 0x4 | ||
| This + 8 points to | | This + 8 points to the Bank Table | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| 0x4 | | 0x4 | ||
| | | WAV Archive Table Reference ID (0x2103) | ||
|- | |- | ||
| 0x24 | | 0x24 | ||
| 0x4 | | 0x4 | ||
| This + 8 points to | | This + 8 points to the WAV Archive Table | ||
|- | |- | ||
| 0x28 | | 0x28 | ||
| 0x4 | | 0x4 | ||
| | | Group Table Reference ID (0x2105) | ||
|- | |- | ||
| 0x2C | | 0x2C | ||
| 0x4 | | 0x4 | ||
| This + 8 points to | | This + 8 points to the Group Table | ||
|- | |- | ||
| 0x30 | | 0x30 | ||
| 0x4 | | 0x4 | ||
| | | Player Table Reference ID (0x2102) | ||
|- | |- | ||
| 0x34 | | 0x34 | ||
| 0x4 | | 0x4 | ||
| This + 8 points to | | This + 8 points to Player Table | ||
|- | |- | ||
| 0x38 | | 0x38 | ||
| 0x4 | | 0x4 | ||
| | | FILE Table Reference ID (0x2106) | ||
|- | |- | ||
| 0x3C | | 0x3C | ||
| 0x4 | | 0x4 | ||
| This + 8 points to | | This + 8 points to the FILE Table | ||
|- | |- | ||
| 0x40 | | 0x40 | ||
| 0x4 | | 0x4 | ||
| Unknown | | 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 |