Difference between revisions of "Template:GRAFTemplate1"

From XentaxWiki
Jump to: navigation, search
(Notes and Comments)
(try this instead)
 
(27 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Format_Navigation}}
+
{{GRAFPageHeader}}
  
[[GRAFs|Back to index]]
+
== {{{file_extension}}} ==
 +
{{GRAFPageMisc{{ {{{|subst:}}}#if: {{{format_type|}}} | {{{{{|subst:}}}!}}{{{format_type}}} }}{{ {{{|subst:}}}#if: {{{endian_order|}}} | {{{{{|subst:}}}!}}{{{endian_order}}} }}}}
  
== {{{file_extension}}} ==
+
=== Format Specifications ===
 
+
{{GRAFPageFormat|1=<nowiki/>
''' Format Type: ''' &nbsp; {{{format_type}}} <br>
 
''' [http://en.wikipedia.org/wiki/Endianness Endian Order]: ''' &nbsp; {{{endian_order}}} <br>
 
''' Date Posted: ''' &nbsp; {{{date_posted}}}
 
 
 
=== Format Specifications ===  
 
<tt><b>
 
 
{{{format_specifications}}}
 
{{{format_specifications}}}
</b></tt>
+
}}
 
 
 
 
=== Notes and Comments ===
 
'''Notes by Gregory''':
 
  
1.
+
=== Notes and Comments ===
In the version 24, the file names are encrypted as XOR 0xBE.
+
{{{notes}}}
  
2.
+
=== MultiEx BMS Script ===
"BXP" + (byte) in all headers: In the version 24, the (byte)=3. 
 
 
 
3.
 
// ARCHIVE INDEX
 
    char {8}    - Header ("BXP" + (byte)2 + "INDX")
 
    uint64 {8}  - Unknown  '''<-----  this shuld be relative offset to the first "BXP.FILE"'''
 
I have used folloxing piece of C++ code:
 
  ArchiveOffset = 0x00;
 
  IndexOffset = 0x20;
 
  TreeOffset = 0x60;
 
  DirOffset = 0x80;
 
  DataOffset = DirOffset + (__int64*) &buffer[TreeOffset + 8];
 
  FileOffset = DirOffset + (__int64*) &buffer[IndexOffset + 8];
 
 
 
4.
 
There are some directories containing both files and sub-directories. In such case, the files are listed prior to the sub-directories.
 
I guess that the structure of directory is:
 
  {
 
    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}  - Unknown (1)    // or (0) - a switch?
 
      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
 
    }
 
  }
 
 
 
5. I have successfuly extracted all files from the archive. Sound (*.ogg) files play well, however some other files (scripts) seems to be encrypted. Further I am wholly confused with CRCs, HASHs and Paddings for now, so I can not build an modified archive.
 
 
 
=== MultiEx BMS Script ===  
 
 
{{{bms_script}}}
 
{{{bms_script}}}
  
=== Supported by Programs ===  
+
=== Supported by Programs ===
 
{{{programs}}}
 
{{{programs}}}
 
  
 
=== Documentation ===
 
=== Documentation ===
 
{{{documentation}}}
 
{{{documentation}}}
 
  
 
=== Games ===
 
=== Games ===
 
{{{games}}}
 
{{{games}}}
 +
 +
{{GRAFPageFooter}}<noinclude>[[Category:Templates|GRAFTemplate1]]</noinclude>

Latest revision as of 05:24, 22 October 2011

Back to index | Edit this page

{{{file_extension}}}

{{GRAFPageMisc{{ subst:#if: | {{subst:!}}{{{format_type}}} }}{{ subst:#if: | {{subst:!}}{{{endian_order}}} }}}}

Format Specifications

{{{format_specifications}}}

Notes and Comments

{{{notes}}}

MultiEx BMS Script

{{{bms_script}}}

Supported by Programs

{{{programs}}}

Documentation

{{{documentation}}}

Games

{{{games}}}

Navigation

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