BCSAR: Difference between revisions
Specified which vgmtoolbox tool to use to extract BCWAVs |
|||
Line 86: | Line 86: | ||
STRG contains the names of the audio files in the BCSAR. | STRG contains the names of the audio files in the BCSAR. | ||
Header | ==== Header ==== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 101: | Line 101: | ||
| 0x4 | | 0x4 | ||
| Length of STRG partition (also in CSAR header) | | Length of STRG partition (also in CSAR header) | ||
|- | |||
| 0x8 | |||
| 0x4 | |||
| Version? (always 0x2400) | |||
|- | |||
| 0xC | |||
| 0x4 | |||
| Offset to root node (always 0x10) | |||
|- | |||
| 0x10 | |||
| 0x4 | |||
| Root node type (always 0x2401) | |||
|- | |||
| 0x14 | |||
| 0x4 | |||
| This + 8 points to some kind of descriptor table | |||
|- | |- | ||
| 0x18 | | 0x18 | ||
Line 108: | Line 124: | ||
|} | |} | ||
==== Node struct ==== | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 118: | Line 134: | ||
| 0x0 | | 0x0 | ||
| 0x4 | | 0x4 | ||
| Type of the | | Type of the node? | ||
|- | |- | ||
| 0x4 | | 0x4 | ||
| 0x4 | | 0x4 | ||
| Offset | | Offset to node data? | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| 0x4 | | 0x4 | ||
| | | Length of some data based on node type | ||
|- | |- | ||
|} | |} | ||
==== Nodes ==== | |||
===== Root node (0x2401) ===== | |||
* Offset + 8 points to some unknown data. | |||
* Length specifies how many nodes after this node belong to this node. | |||
===== File node(?) (0x1F01) ===== | |||
* Offset + 0x18 points to the file's name | |||
* Length specifies the file name buffer size, including the NUL terminator. | |||
Then every filename is rawly setted. You can set up a dictionary that contains, using a simple counter, the size of every filename in order. Then, using the same type of counter, get the values of the size of the filename in a correct order. | Then every filename is rawly setted. You can set up a dictionary that contains, using a simple counter, the size of every filename in order. Then, using the same type of counter, get the values of the size of the filename in a correct order. | ||
=== INFO === | === INFO === | ||