RAS (File Format): Difference between revisions
From Wexos's Wiki
Jump to navigationJump to search
(Created page with "'''RAS''' is a streamable audio file format used in Donkey Kong Country Returns. = File Format = == Header == The file starts with the following header: {|class="wikitable" ! Offset !! Type !! Description |- | 0x00 || Char[4] || '''File magic'''. Always ''RAS_'' (0x5241535F) in ASCII. |- | 0x04 || UInt32 || {{Unknown-left|'''Unknown'''.}} |- | 0x08 || UInt32 || {{Unknown-left|'''Unknown'''.}} |- | 0x0C || UInt32 || {{Unknown-left|'''Unknown'''.}} |- | 0x10 || UInt...") |
No edit summary |
||
| Line 1: | Line 1: | ||
'''RAS''' is a streamable audio file format used in [[Donkey Kong Country Returns]]. | '''RAS''' ('''R'''etroStudio '''A'''udio '''S'''tream?) is a streamable audio file format used in [[Donkey Kong Country Returns]]. | ||
= File Format = | = File Format = | ||
| Line 11: | Line 11: | ||
| 0x00 || Char[4] || '''File magic'''. Always ''RAS_'' (0x5241535F) in ASCII. | | 0x00 || Char[4] || '''File magic'''. Always ''RAS_'' (0x5241535F) in ASCII. | ||
|- | |- | ||
| 0x04 || UInt32 || {{Unknown-left|'''Unknown'''.}} | | 0x04 || UInt32 || {{Unknown-left|'''Unknown''', possibly number of channels or format.}} | ||
|- | |- | ||
| 0x08 || UInt32 || {{Unknown-left|'''Unknown'''.}} | | 0x08 || UInt32 || {{Unknown-left|'''Unknown''', possibly number of channels or format.}} | ||
|- | |- | ||
| 0x0C || UInt32 || {{Unknown-left|'''Unknown'''.}} | | 0x0C || UInt32 || {{Unknown-left|'''Unknown'''.}} | ||
|- | |- | ||
| 0x10 || UInt32 || {{Unknown-left|'''Unknown''' | | 0x10 || UInt32 || {{Unknown-left|'''Unknown'''.}} | ||
|- | |- | ||
| 0x14 || UInt32 || '''Sample rate''' in Hz. | | 0x14 || UInt32 || '''Sample rate''' in Hz. | ||
|- | |||
| 0x18 || UInt32 || '''Sound data offset'''. | |||
|- | |||
| 0x1C || UInt32 || '''Sound data size''' in bytes. | |||
|- | |||
| 0x20 || UInt32 || '''Block size''' in bytes. | |||
|- | |||
| 0x24 || UInt32 || '''Number of blocks''' per channel. | |||
|- | |||
| 0x28 || UInt32 || {{Unknown-left|'''Unknown'''.}} | |||
|- | |||
| 0x2C || UInt32 || {{Unknown-left|Possibly number of samples in the last block.}} | |||
|- | |||
| 0x30 || UInt32 || '''Loop start block''' index. | |||
|- | |||
| 0x34 || UInt32 || '''Loop start sample''' into the loop start block specified above. | |||
|- | |||
| 0x38 || UInt32 || '''Loop end block''' index. | |||
|- | |||
| 0x3C || UInt32 || '''Loop end sample''' into the loop end block specified above. | |||
|} | |} | ||
== DSP ADPCM Channel Info == | |||
After the header there is a DSP ADPCM channel info data structure, one per channel. It has the following structure: | |||
{| class="wikitable" | |||
! Offset !! Type !! Description | |||
|- | |||
| 0x00 || Int16[8][2] || 16-bit Coefficients. | |||
|- | |||
| 0x20 || UInt16 || Gain. | |||
|- | |||
| 0x22 || UInt16 || Pred scale. | |||
|- | |||
| 0x24 || Int16 || Yn 1. | |||
|- | |||
| 0x26 || Int16 || Yn 2. | |||
|- | |||
| 0x28 || UInt16 || Loop pred scale. | |||
|- | |||
| 0x2A || Int16 || Loop Yn 1. | |||
|- | |||
| 0x2C || Int16 || Loop Yn 2. | |||
|- | |||
| 0x2E || byte[2] || '''Padding'''. | |||
|} | |||
== Sound Data == | |||
The sound data is stored in DSP ADPCM format. The header may allow specifying other formats, but it is currently unknown if that is the case. | |||
= Tools = | |||
The following tools can handle RAS files: | |||
* [https://github.com/vgmstream/vgmstream vgmstream] | |||
[[Category:Donkey Kong Country Returns File Formats]] | [[Category:Donkey Kong Country Returns File Formats]] | ||
Revision as of 14:51, 11 July 2025
RAS (RetroStudio Audio Stream?) is a streamable audio file format used in Donkey Kong Country Returns.
File Format
Header
The file starts with the following header:
| Offset | Type | Description |
|---|---|---|
| 0x00 | Char[4] | File magic. Always RAS_ (0x5241535F) in ASCII. |
| 0x04 | UInt32 | Unknown, possibly number of channels or format. |
| 0x08 | UInt32 | Unknown, possibly number of channels or format. |
| 0x0C | UInt32 | Unknown. |
| 0x10 | UInt32 | Unknown. |
| 0x14 | UInt32 | Sample rate in Hz. |
| 0x18 | UInt32 | Sound data offset. |
| 0x1C | UInt32 | Sound data size in bytes. |
| 0x20 | UInt32 | Block size in bytes. |
| 0x24 | UInt32 | Number of blocks per channel. |
| 0x28 | UInt32 | Unknown. |
| 0x2C | UInt32 | Possibly number of samples in the last block. |
| 0x30 | UInt32 | Loop start block index. |
| 0x34 | UInt32 | Loop start sample into the loop start block specified above. |
| 0x38 | UInt32 | Loop end block index. |
| 0x3C | UInt32 | Loop end sample into the loop end block specified above. |
DSP ADPCM Channel Info
After the header there is a DSP ADPCM channel info data structure, one per channel. It has the following structure:
| Offset | Type | Description |
|---|---|---|
| 0x00 | Int16[8][2] | 16-bit Coefficients. |
| 0x20 | UInt16 | Gain. |
| 0x22 | UInt16 | Pred scale. |
| 0x24 | Int16 | Yn 1. |
| 0x26 | Int16 | Yn 2. |
| 0x28 | UInt16 | Loop pred scale. |
| 0x2A | Int16 | Loop Yn 1. |
| 0x2C | Int16 | Loop Yn 2. |
| 0x2E | byte[2] | Padding. |
Sound Data
The sound data is stored in DSP ADPCM format. The header may allow specifying other formats, but it is currently unknown if that is the case.
Tools
The following tools can handle RAS files: