Difference between revisions of "Template:GRAFTemplate1"

From XentaxWiki
Jump to: navigation, search
(Notes and Comments)
Line 16: Line 16:
  
 
=== Notes and Comments ===  
 
=== Notes and Comments ===  
{{{notes}}}
+
6. "uint32 {4}  - Unknown (1)" is a switch: 0="file is not compressed" 1="file is compressed"; compression method is zlib (*.gz). The same switch is in the  "BXP.FILE" section.
 +
I suguest that to modify the structure of "BXP.SDIR" to:
 +
 
 +
{
 +
  char {8}    - Header ("BXP" + (byte)2 + "SDIR")
 +
  uint64 {8}  - Unknown Length/Offset
 +
  byte {16}    - null
 +
  uint32 {4}  - Number Of Sub-Directories in this directory
 +
  uint32 {4}  - Number Of Files in this directory
 +
  uint64 {8}  - Length Of Filename Directory Component (length of subDirName+null + fileNames+nulls)
 +
  byte {16}    - null
 +
  for (each file)
 +
  {
 +
    uint64 {8}  - Filename Offset (relative to the start of the filename directory)
 +
    uint64 {8}  - null
 +
    byte {16}    - CRC?
 +
    uint32 {4}  - null
 +
    uint32 {4}  - A switch indicating if the file is compressed. 0=no, 1=yes //compression method: zlib (*.gz)
 +
    uint64 {8}  - null
 +
    uint64 {8}  - File Length (not including the file header fields?)
 +
    uint64 {8}  - File Offset (relative to the start of the file data)
 +
  }
 +
  for (each sub-directory)
 +
  {
 +
    uint32 {4}  - null  // Filename Offset (relative to the start of the filename directory)
 +
    uint32 {4}  - Relative Offset To This Directory? (32) (relative to the start of this subDirEntry)
 +
  }
 +
  for (each entry)            // entry is file or sub-directory
 +
  {
 +
    uint32 {4}  -  Hash? 
 +
  }
 +
  for (each entry)
 +
  {
 +
    char {X}    - Filename                        // XOR 0xBE      in version 24
 +
    byte {1}    - null Filename Terminator        // 0xBE          in version 24
 +
  }
 +
}
 +
 
 +
 
 +
7. First 32 bytes of each file if "File Data" is a header of checksum, which is not necessary for file extraction.
 +
 
 +
  {
 +
    // FILE DATA
 +
    char {8}    - Header ("BXP" + (byte)2 + "DATA")
 +
    uint64 {8}  - Total Length Of File Data (length of everything in "// for each file")
 +
    uint64 {8}  - Padding (88,39,255,135,206,225,196,1)
 +
    uint64 {8}  - null
 +
 
 +
    for (each file)
 +
    {
 +
        char {8}    - Header ("BXP" + (byte)2 + "FILE")
 +
        uint64 {8}  - File Length (length of "X - File Data" only) [+30]
 +
        uint64 {8}  - CRC?
 +
        uint32 {4}  - null
 +
        uint32 {4}  - A switch indicating if the file is compressed. 0=no, 1=yes //compression method: zlib (*.gz)
 +
        byte (16)    - A header or check-sum?
 +
        byte (16)    - For uncompressed file the same as previous byte (16), for copressed different. Maybe check-sum of decompressed file?
 +
        byte {X}    - File Data
 +
        byte {X}     - null Padding to a multiple of 32 bytes
 +
    }
 +
  }
 +
 
 +
*** by Gregory
  
 
=== MultiEx BMS Script ===  
 
=== MultiEx BMS Script ===  

Revision as of 08:36, 1 July 2006

Jump to a listing by...
All Formats - Common Formats - Standard Formats - Malformed Pages
Platforms
Microsoft:
Xbox
Xbox 360
Nintendo:
GameCube
DS
Desktop:
PC
Sega:
Dreamcast
Sony:
PlayStation
PlayStation 2
PlayStation 3
PlayStation Portable
Type
Animation - Archive - Audio - Image - Mesh - Miscellaneous - Model - Video
Endianness
Little-endian - Big-endian
BMS Scripts
Pages Without a BMS Script

All Pages with Scripts:
Recently Added Scripts

Program Support
No Known Support

MultiEx Commander - Game Extractor

Format Specification Completion
Work in Progress - Almost Done - Completed
Compression and Encryption
No Compression or Encryption Used - Unknown Compression or Encryption Used

One or Both Used:
Compression Used - Both Compression and Encryption Used

Back to index

{{{file_extension}}}

Format Type:   {{{format_type}}}
Endian Order:   {{{endian_order}}}
Date Posted:   {{{date_posted}}}

Format Specifications

{{{format_specifications}}}


Notes and Comments

6. "uint32 {4} - Unknown (1)" is a switch: 0="file is not compressed" 1="file is compressed"; compression method is zlib (*.gz). The same switch is in the "BXP.FILE" section. I suguest that to modify the structure of "BXP.SDIR" to:

{
  char {8}     - Header ("BXP" + (byte)2 + "SDIR")
  uint64 {8}   - Unknown Length/Offset
  byte {16}    - null
  uint32 {4}   - Number Of Sub-Directories in this directory
  uint32 {4}   - Number Of Files in this directory
  uint64 {8}   - Length Of Filename Directory Component (length of subDirName+null + fileNames+nulls)
  byte {16}    - null 
  for (each file)
  {
    uint64 {8}   - Filename Offset (relative to the start of the filename directory)
    uint64 {8}   - null
    byte {16}    - CRC?
    uint32 {4}   - null
    uint32 {4}   - A switch indicating if the file is compressed. 0=no, 1=yes //compression method: zlib (*.gz)
    uint64 {8}   - null
    uint64 {8}   - File Length (not including the file header fields?)
    uint64 {8}   - File Offset (relative to the start of the file data) 
  }
  for (each sub-directory)
  {
    uint32 {4}   - null   // Filename Offset (relative to the start of the filename directory)
    uint32 {4}   - Relative Offset To This Directory? (32) (relative to the start of this subDirEntry)
  }
  for (each entry)            // entry is file or sub-directory
  {
    uint32 {4}   -   Hash?  
  } 
  for (each entry)
  {
    char {X}     - Filename                         // XOR 0xBE      in version 24
    byte {1}     - null Filename Terminator         // 0xBE          in version 24
  }
}


7. First 32 bytes of each file if "File Data" is a header of checksum, which is not necessary for file extraction.

 {
   // FILE DATA
   char {8}     - Header ("BXP" + (byte)2 + "DATA")
   uint64 {8}   - Total Length Of File Data (length of everything in "// for each file")
   uint64 {8}   - Padding (88,39,255,135,206,225,196,1)
   uint64 {8}   - null
   for (each file)
   {
       char {8}     - Header ("BXP" + (byte)2 + "FILE")
       uint64 {8}   - File Length (length of "X - File Data" only) [+30]
       uint64 {8}   - CRC?
       uint32 {4}   - null
       uint32 {4}   - A switch indicating if the file is compressed. 0=no, 1=yes //compression method: zlib (*.gz)
       byte (16)    - A header or check-sum?
       byte (16)    - For uncompressed file the same as previous byte (16), for copressed different. Maybe check-sum of decompressed file?
       byte {X}     - File Data
       byte {X}     - null Padding to a multiple of 32 bytes 
   }
 }
      • by Gregory

MultiEx BMS Script

{{{bms_script}}}

Supported by Programs

{{{programs}}}


Documentation

{{{documentation}}}


Games

{{{games}}}