Surreal Software Archive (Riot Engine)
From XentaxWiki
(Redirected from Surreal Software Archive)
Contents
ADU CDU FDU LDU MDU ODU QDU SDU TDU VDU WDU XDU RRC
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications (The Suffering, version 1.1)
// ARCHIVE HEADER
- char {4} - Header (SRSC)
- byte {2} - Version (1,1)
- uint32 {4} - Files Directory Offset
- uint32 {4} - Number Of Files [-1]
// FILE DATA
- // for each file
- byte {X} - File Data
- byte {X} - File Data
// FILES DIRECTORY
- uint32 {4} - Unknown (1026)
- uint16 {2} - null
- uint32 {4} - File Data Length
- uint32 {4} - Unknown (10)
- // for each file (14 bytes per entry)
- uint32 {4} - Unknown
- uint16 {2} - File Type ID?
- uint32 {4} - File Offset
- uint32 {4} - File Size
- uint32 {4} - Unknown
Format Specifications (Drakan, version 0.1)
// Drakan // RRC file format // little endian // header 4 bytes (char) - magic // "SRSC" 2 bytes - version // 0x00 0x01 4 bytes (uint32) - directory offset 2 bytes (uint16) - number of files // data number_of_files * { x bytes - file data } // directory number_of_files * { 2 bytes (uint16) - file type // "0x40 0x00" (64) - texture data // "0x00 0x04" (1024) - encrypted text // "0x01 0x04" (1025) - plain text // etc. etc. 2 bytes (uint16) - file ID 2 bytes (uint16) - group ID 4 bytes (uint32) - file offset 4 bytes (uint32) - file size }
MultiEx BMS
Not written yet.
QuickBMS
Notes and Comments
- This is archive file format used by the Riot Engine by Surreal Software company.
- Some files inside archive may be compressed with ZLIB compression.
Decryption Method
Strings are encrypted with custom XOR algorithm.
Below is Python implementation of decryption method:
def decrypt_data(in_data_str, in_data_len): key = 0x5FDD390D out_data = b'' for i in range(in_data_len): out_data += xore(struct.pack("B", in_data_str[i]) , struct.pack("B", key & 0xFF)) key = (key<<3) | (key>>(32-3)) return out_data
Games
List of games using this file format:
- Drakan: Order of the Flame
- Drakan: The Ancients' Gates
- The Lord of the Rings: The Fellowship of the Ring (needs confirmation!)
- The Suffering
- The Suffering: Ties That Bind
- Gunslinger (cancelled game) (needs confirmation!)
- The Lord of the Rings: The Treason of Isengard (cancelled game) (needs confirmation!)
Supported Programs
- Game Extractor
- opendrakan
- Drakan: Order Of The Flame Level Editor
- Drakan_RRC_Tool.py