Asura Engine ASR RSCF RSFL

From XentaxWiki
Jump to: navigation, search

Back to index | Edit this page

ASR


Format Specifications

// Asura Engine
// ASR file format

// 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 ...

// little endian

// ARCHIVE HEADER
  8 bytes (char) - not packed archive signature ("Asura   ")

// FILE DATA
  // for each file
    4 bytes (char) - Chunk Signature  // e.g. "RSFL"
    4 bytes (uint32) - Chunk Length // from start of Header
    4 bytes (uint32) - Version  // e.g. 1
    4 bytes (uint32) - Subversion // e.g. 0
  
    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

Not written yet.

QuickBMS Script

Notes and Comments

  • File format is used by games made on Asura Engine.
  • In "Aliens vs. Predator: Requiem" some of the ASR archives have extension *.EN, *.GUI and *.PSP. Format of this archives starts with FNFO chunk.

Games

List of games using this file format:

  • Aliens vs. Predator: Requiem (PSP) (*.ASR)
  • Alien vs Predator (2010)
  • Battlezone (2017)
  • Evil Genius 2: World Domination
  • Guard Shield
  • Judge Dredd: Dredd vs. Death
  • NeverDead
  • Prism: Guard Shield
  • Rogue Trooper
  • Rogue Trooper Redux
  • Rogue Warrior
  • Shellshock 2: Blood Trails
  • Sniper Elite
  • Sniper Elite V2
  • Sniper Elite: Nazi Zombie Army
  • Sniper Elite: Nazi Zombie Army 2
  • Sniper Elite III
  • Sniper Elite 4
  • Strange Brigade
  • World War Zero: Iron Storm
  • Zombie Army Trilogy
  • Zombie Army 4: Dead War

Compatible Programs

See Also