Difference between revisions of "BCWAV"
Jump to navigation
Jump to search
(bcwav file...) |
|||
Line 3: | Line 3: | ||
The structure is very similar to Microsoft's Wave file. | The structure is very similar to Microsoft's Wave file. | ||
+ | |||
+ | Banner CWAV total channels must be 2, and the length of the audio in seconds must be 3 seconds or less. | ||
=== Overview === | === Overview === | ||
Line 57: | Line 59: | ||
| 0x004 || 4 || Length | | 0x004 || 4 || Length | ||
|- | |- | ||
− | | 0x008 || 4 || Type | + | | 0x008 || 4 || Type (must be less than 4) |
|- | |- | ||
| 0x00C || 4 || Sample Rate | | 0x00C || 4 || Sample Rate | ||
Line 63: | Line 65: | ||
| 0x010 || 4 || Unknown 1 | | 0x010 || 4 || Unknown 1 | ||
|- | |- | ||
− | | 0x014 || 4 || | + | | 0x014 || 4 || Total samples |
|- | |- | ||
| 0x018 || 4 || Unknown 2 | | 0x018 || 4 || Unknown 2 | ||
|- | |- | ||
− | | 0x01C || 4 || Channels | + | | 0x01C || 4 || Total Channels |
|- | |- | ||
| 0x020 || X || The Channels' Data Pointers | | 0x020 || X || The Channels' Data Pointers |
Revision as of 19:02, 31 March 2012
This document is about the format of Banner's CTR Wave files (BCWAV).
The structure is very similar to Microsoft's Wave file.
Banner CWAV total channels must be 2, and the length of the audio in seconds must be 3 seconds or less.
Overview
Microsoft's Wave structure is RIFF Header which defines the data inside which is WAVE.
then the media player expects "fmt " chunk and a "data" chunk.
Nintendo's format uses a CWAV Header (no need for a general structure for media, only wave)
Which points to an INFO struct (the equivalent to fmt) and a DATA struct (the equivalent to data).
Header
OFFSET | SIZE | DESCRIPTION |
---|---|---|
0x000 | 4 | Magic (CWAV) |
0x004 | 2 | Endianess (0xFEFF=LE / 0xFFFE=BE) |
0x006 | 2 | Struct Length |
0x008 | 4 | Unknown 0 |
0x00C | 4 | File's size |
0x010 | 4 | Number of chunks (= 2 (INFO & DATA)) |
0x014 | 4 | Info Chunk Flags (0x7000) |
0x018 | 4 | Info Chunk Offset |
0x01C | 4 | Info Chunk Length |
0x020 | 4 | Data Chunk Flags (0x7000) |
0x024 | 4 | Data Chunk Offset |
0x028 | 4 | Data Chunk Length |
0x02C | 0x20 | Reserved (for more chunks offsets) |
INFO Header
OFFSET | SIZE | DESCRIPTION |
---|---|---|
0x000 | 4 | Magic (INFO) |
0x004 | 4 | Length |
0x008 | 4 | Type (must be less than 4) |
0x00C | 4 | Sample Rate |
0x010 | 4 | Unknown 1 |
0x014 | 4 | Total samples |
0x018 | 4 | Unknown 2 |
0x01C | 4 | Total Channels |
0x020 | X | The Channels' Data Pointers |
X | X | The Channels' Data |
* The channels data pointers are pointers to another struct that points to the actual data (this stucture has flags as well)
OFFSET | SIZE | DESCRIPTION |
---|---|---|
0x000 | 4 | Flags |
0x004 | 4 | Offset (from 0x5C, INFO's channels field) |
* The channels data are pointers to the actual data (this stucture has flags as well)
OFFSET | SIZE | DESCRIPTION |
---|---|---|
0x000 | 4 | Flags |
0x004 | 4 | Offset (inside the DATA block data) |
0x008 | 4 | FFs (0xFFFFFFFF) |
0x00C | 4 | Padding (Zero) |
DATA Header
OFFSET | SIZE | DESCRIPTION |
---|---|---|
0x000 | 4 | Magic (DATA) |
0x004 | 4 | Length |