This is the specifications for the archive file which is handled by the Game Extractor plugin Archive_RSB_1BSR.

Endian Order:Little Endian
Compression:ZLib
Encryption:None


This format is used by the following Games:
Zuma's Revenge [iOS]*.rsb


This is the format specification information:
 
// ARCHIVE HEADER
  4 - Header (1bsr)
  4 - Unknown (3)
  4 - null
  4 - File Data Offset
  4 - Unknown
  4 - Directory 0 Offset
  8 - null
  4 - Unknown
  4 - Unknown
  4 - Number of Entries in Directory 0
  4 - Directory 3 Offset
  4 - Unknown
  4 - Number of Directory 1 Entries
  4 - Directory 1 Offset
  4 - Directory 1 Entry Size (1156)
  4 - Directory 2 Length
  4 - Directory 2 Offset
  4 - Number of Directory 3 Entries
  4 - Directory 4 Offset
  4 - Directory 4 Entry Size (152)
  4 - Number of Directory 5 Entries
  4 - Directory 5 Offset
  4 - Directory 5 Entry Size (16)
  4 - Directory 6 Offset
  4 - Directory 7 Offset
  
// DIRECTORY 0
  // for each entry in Directory 0
    X - Filename (each character consumes 4 bytes)
    4 - null Filename Terminator
    4 - File ID
  
// DIRECTORY 1
  // for each entry in Directory 1 (1156 bytes per entry)
    128 - Filename (null terminated, filled with nulls)
    4 - File ID (incremental from 0)
    4 - Unknown (320)
    8 - null
    4 - Unknown ID
    4 - Unknown (640)
    8 - null
    4 - Unknown ID
    4 - Unknown (768)
    984 - null
    
// DIRECTORY 2
  // for each entry in Directory 2
    X - Filename (each character consumes 4 bytes)
    4 - null Filename Terminator
    4 - File ID (incremental from 0)
    
// DIRECTORY 3 (RESOURCE GROUPS DIRECTORY)
  // for each entry in Directory 3 (204 bytes per entry)
    128 - Resource Group Name (null terminated, filled with nulls)
    4 - Resource Group Data Offset
    4 - Resource Group Data Length (including Padding)
    4 - Resource Group ID (incremental from 0)
    4 - Unknown (1)
    4 - Header Padding Multiple? (4096)
    4 - Resource Group Data Padding Multiple? (4096)
    12 - null
    4 - Resource Group Data Padding? (4096)
    4 - Compressed Resource Group Data Length (including Padding after the resource group)
    4 - Decompressed Resource Group Data Length
    20 - null
    4 - Unknown (1)
    4 - Resource Group ID (incremental from 0)
    
// DIRECTORY 4
  // for each entry in Directory 4 (152 bytes per entry)
    128 - Filename (null terminated, filled with nulls)
    4 - File Data Padding? (4096)
    4 - Decompressed File Data Length
    4 - Unknown (1)
    12 - null
  
// DIRECTORY 5
  // for each file in Directory 5 (16 bytes per entry)
    4 - Unknown
    4 - Unknown
    4 - Unknown
    4 - Unknown
    
// DIRECTORY 6
  // for each entry in Directory 6
    X - Unknown
    
// DIRECTORY 7
  // for each entry in Directory 7
    X - Unknown
    
// DIRECTORY 8
  // for each entry in Directory 8
    X - Filename (can be null)
    1 - null Filename Terminator
    
X - null Padding to a multiple of 4096 bytes
    
// FILE DATA
  // for each Resource Group (from Directory 3)
    4 - Resource Group Header (pgsr)
    4 - Unknown (3)
    8 - null
    4 - Unknown (1)
    4 - Data Offset? (4096)
    4 - Data Offset? (4096)
    4 - Decompressed Data Length? (null if data is compressed)
    4 - Decompressed Data Length? (null if data is compressed)
    4 - null
    if (compressed){
      4 - File Data Offset (4096) 
      4 - Compressed File Data Length (including Padding after the file)
      4 - Decompressed File Data Length
      }
    else if (not compressed){
      4 - File Data Length (including these headers etc)
      8 - null
      }
    20 - null
    4 - Sub-File Directory Data Length
    4 - Sub-File Directory Offset (relative to the start of this file entry)
    4 - null
    4 - null
    4 - null
  
    // for each file in this Resource Group
      X - Filename (if this is the first file in this resource group, it also includes the directory path) (each character consumes 4 bytes)
      4 - null Filename Terminator
      4 - Compression Flag (1=compressed, 0=uncompressed)
      4 - File Data Offset (relative to the start of the File Data for the files in this resource group)
      if (compressed){
        4 - Decompressed File Data Length
        4 - Unknown (Image Format, if this resource is a PTX image (0=BARG4444, 1=RGB565))
        8 - null
        4 - Unknown (Image Width, if this resource is a PTX image)
        4 - Unknown (Image Height, if this resource is a PTX image)
        }
      else if (not compressed){
        4 - File Data Length
        }

    
    X - Padding to 4096 bytes

  // for each file in this Resource Group
    X - File Data (ZLib Compression)
    X - Padding to a multiple of 4096 bytes


Game Extractor is able to read files of this type, as well as files from thousands of other games. To give it a try, download Game Extractor (Basic Version) for free, and see what it can do.

For further information on this format, refer to the source code on our GitHub repository.