CSNG (File Format): Difference between revisions
>Aruki mNo edit summary |
imported>Jackoalan |
||
Line 24: | Line 24: | ||
| 0x4 | | 0x4 | ||
| 4 | | 4 | ||
| ''' | | '''MIDI Setup ID''' | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| 4 | | 4 | ||
| ''' | | '''SongGroup ID''' | ||
|- | |- | ||
| 0xC | | 0xC | ||
Line 36: | Line 36: | ||
| 0x10 | | 0x10 | ||
| 4 | | 4 | ||
| '''File Length''' | | '''SON File Length''' | ||
|- | |- | ||
| 0x14 | | 0x14 |
Revision as of 08:15, 18 May 2016
The CSNG format contains MIDI data. It appears in Metroid Prime 1 and 2. It is essentially MusyX's SON music format, with a custom header.
This file format needs a lot of research Nothing is known about this format. |
Format
All offsets are relative to the start of the main header (after the custom header).
Custom Header
This 0x14-byte header isn't part of the MusyX format; it appears at the start of the file. After parsing this the rest of the file is copied into a buffer and then passed to the MusyX functions.
Offset | Size | Description |
---|---|---|
0x0 | 4 | Magic; (always 0x2) |
0x4 | 4 | MIDI Setup ID |
0x8 | 4 | SongGroup ID |
0xC | 4 | AGSC ID |
0x10 | 4 | SON File Length |
0x14 | MusyX data starts |
Header
Offset | Size | Description |
---|---|---|
0x0 | 4 | Voice Header Table Offset (start of MusyX SON data) |
0x4 | 4 | Voice Sequence Offsets Table Offset |
0x8 | 4 | Wave Index Table Offset |
0xC | 4 | Unknown; (always 0...probably another offset) |
0x10 | 4 | Initial BPM Rate; AKA Tempo (always 0x78 = 120 beats per minute) |
WIP |
Data
The data in the files is very similar to MIDI, however it is formatted by word, rather than MIDI's byte formatting.
After the data for the instruments are defined, there is a table of offsets for data through out the SON data. Each chunk of data starts with a long 0x8, usually followed by another absolute offset that points to the end of the chunk.
Notes durations are controlled by 96 ticks per beat.