Asura Engine ASR RSCF RSFL: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks No edit summary |
imported>Trololp (Added information about RSFL chunk, corrected some information.) |
||
| Line 14: | Line 14: | ||
== Format Specifications == | == Format Specifications == | ||
<pre> | <pre> | ||
// | // Chunk signatures... | ||
// RSCF (Resource File) | // 'RSCF' (Resource File) | ||
// fmvs (Subtitles) | // 'fmvs' (Subtitles) | ||
// FNFO ( | // 'FNFO' (File info) | ||
// FNTK (Font Description | // 'FNTK' (Font Description | ||
// FONT (Font) | // 'FONT' (Font) | ||
// HTXT (Text Strings) | // 'HTXT' (Text Strings) | ||
// LTXT (Text Strings) | // 'LTXT' (Text Strings) | ||
// PTXT (Text Strings) | // 'PTXT' (Text Strings) | ||
// TTXT (Text Strings) | // 'TTXT' (Text Strings) | ||
// RSFL (Resource File List) | // 'RSFL' (Resource File List) | ||
// RUDE (Rude Words List) | // 'RUDE' (Rude Words List) | ||
// many more ... | |||
// ARCHIVE HEADER | // ARCHIVE HEADER | ||
8 - | 8 bytes (char) - not packed archive signature ("Asura ") | ||
// FILE DATA | // FILE DATA | ||
// for each file | // for each file | ||
4 - | 4 bytes (uint32) - Chunk Signature | ||
4 - | 4 bytes (uint32) - Chunk Length // from start of Header | ||
4 - Version | 4 bytes (uint32) - Version | ||
4 - | 4 bytes (uint32) - Subversion | ||
if ( | if (Signature == "RSCF"){ | ||
// Resource File - a file in the archive | // Resource File - a file in the archive | ||
4 - | 4 bytes (uint32) - Resource Type | ||
4 - | 4 bytes (uint32) - Resource Type2 | ||
4 - | 4 bytes (uint32) - Resource Data Length | ||
X - Filename | X bytes (char) - Filename | ||
1 - null Filename Terminator | 1 byte - null Filename Terminator | ||
0-3 - null Padding to a multiple of 4 bytes | 0-3 bytes - null Padding to a multiple of 4 bytes | ||
X - File | X - Resource Data | ||
// RSCF types for "Aliens vs. Predator 2010" in other games can mean something else. | |||
// Type, Type2 | |||
// 0, 0x7 - Grass carpet | |||
// 0, 0x8 - Botanicals | |||
// 0, 0xB - Enviroment data (map geometry) | |||
// 0, 0xC - Material Response Texture | |||
// 0, 0xD - Static Decals | |||
// 0, 0xE - Material response pixel shaders | |||
// 0, 0xF - Model | |||
// 2, 0x0 - Image | |||
// 3, 0x0 - Sound | |||
} | |||
else if (Signature == "RSFL") { | |||
// Resource File list. list of imports? | |||
4 bytes (uint32) - Count of RSFL entries | |||
// RSFL_ENTRY | |||
X bytes (char) - file_name // can contain path | |||
1 byte - null file_name Terminator | |||
0-3 bytes - null Padding to a multiple of 4 bytes | |||
4 bytes (uint32) - offset | |||
4 bytes (uint32) - file_size | |||
4 bytes (uint32) - unk // always 1 | |||
// Note: to obtain offset to file from start of decompressed ASR archive. | |||
// Use this formula: File_offset = RSFL_ENTRY[i].offset + rsfl_chunk_size | |||
} | } | ||
else { | else { | ||
// | // other chunks | ||
} | } | ||
// Padded end | |||
16 bytes - nulls | |||
</pre> | </pre> | ||
<br /><br /> | <br /><br /> | ||
| Line 65: | Line 96: | ||
<br /><br /> | <br /><br /> | ||
[[Category:Program_Game_Extractor | Program: Game Extractor]] | [[Category:Program_Game_Extractor | Program: Game Extractor]] | ||
* [https://github.com/Trololp/Small-utils/blob/main/RSFL_ASR/RSFL_ASR.cpp RSFL_ASR] (dont tested on asura engines after 2010) | |||
== Notes == | == Notes == | ||
Revision as of 08:15, 6 May 2021
Contents: GRAFs page - All - 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - Edit
Format Type: Archive
Extensions: asr
Platforms: unknown
Endian Order: Little Endian
Format Specifications
// Chunk signatures...
// 'RSCF' (Resource File)
// 'fmvs' (Subtitles)
// 'FNFO' (File info)
// 'FNTK' (Font Description
// 'FONT' (Font)
// 'HTXT' (Text Strings)
// 'LTXT' (Text Strings)
// 'PTXT' (Text Strings)
// 'TTXT' (Text Strings)
// 'RSFL' (Resource File List)
// 'RUDE' (Rude Words List)
// many more ...
// ARCHIVE HEADER
8 bytes (char) - not packed archive signature ("Asura ")
// FILE DATA
// for each file
4 bytes (uint32) - Chunk Signature
4 bytes (uint32) - Chunk Length // from start of Header
4 bytes (uint32) - Version
4 bytes (uint32) - Subversion
if (Signature == "RSCF"){
// Resource File - a file in the archive
4 bytes (uint32) - Resource Type
4 bytes (uint32) - Resource Type2
4 bytes (uint32) - Resource Data Length
X bytes (char) - Filename
1 byte - null Filename Terminator
0-3 bytes - null Padding to a multiple of 4 bytes
X - Resource Data
// RSCF types for "Aliens vs. Predator 2010" in other games can mean something else.
// Type, Type2
// 0, 0x7 - Grass carpet
// 0, 0x8 - Botanicals
// 0, 0xB - Enviroment data (map geometry)
// 0, 0xC - Material Response Texture
// 0, 0xD - Static Decals
// 0, 0xE - Material response pixel shaders
// 0, 0xF - Model
// 2, 0x0 - Image
// 3, 0x0 - Sound
}
else if (Signature == "RSFL") {
// Resource File list. list of imports?
4 bytes (uint32) - Count of RSFL entries
// RSFL_ENTRY
X bytes (char) - file_name // can contain path
1 byte - null file_name Terminator
0-3 bytes - null Padding to a multiple of 4 bytes
4 bytes (uint32) - offset
4 bytes (uint32) - file_size
4 bytes (uint32) - unk // always 1
// Note: to obtain offset to file from start of decompressed ASR archive.
// Use this formula: File_offset = RSFL_ENTRY[i].offset + rsfl_chunk_size
}
else {
// other chunks
}
// Padded end
16 bytes - nulls
MultiEx BMS Script
No BMS script
Supported Programs
- RSFL_ASR (dont tested on asura engines after 2010)
Notes
- File format is used by games made on Asura Engine.
Games
- Alien vs Predator (2010)
- Many more...
See Also