BCSAR: Difference between revisions
m BCSAR View added to the Tools |
|||
(5 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
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. | |||
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, 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 37: | ||
| 0x14 | | 0x14 | ||
| 0x4 | | 0x4 | ||
| | | STRG partition reference ID? (Always 0x2000) | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
Line 52: | Line 49: | ||
| 0x20 | | 0x20 | ||
| 0x4 | | 0x4 | ||
| | | INFO partition reference ID? (Always 0x2001) | ||
|- | |- | ||
| 0x24 | | 0x24 | ||
Line 61: | Line 58: | ||
| 0x4 | | 0x4 | ||
| Length of INFO partition | | Length of INFO partition | ||
|- | |||
| 0x2C | |||
| 0x4 | |||
| Main FILE partition reference ID? (Always 0x2002) | |||
|- | |- | ||
| 0x30 | | 0x30 | ||
Line 237: | Line 238: | ||
| 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 355: | Line 356: | ||
| 0x0 | | 0x0 | ||
| 0x4 | | 0x4 | ||
| Sound ID | | First Sound ID in this sequence set | ||
|- | |- | ||
| 0x4 | | 0x4 | ||
| 0x4 | | 0x4 | ||
| | | Last Sound ID in this sequence set | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
Line 414: | Line 415: | ||
| 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 435: | Line 466: | ||
| Length of FILE partition (also in CSAR header) | | Length of FILE partition (also in CSAR header) | ||
|- | |- | ||
| 0x8 | |||
| 0x24 | |||
| Padding | |||
|} | |} | ||
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 | |||
* [https://github.com/thane98/BCSAR-View BCSAR View] | |||
* [https://github.com/Gota7/Citric-Composer Citric Composer] | |||
[[Category:File formats]] |