GRAF:UnrealArchive
U, UAX, UKX, UMX, USX, UTX, UVX
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
byte {4} - Header (-63,-125,42,-98)
uint32 {4} - Version
uint32 {4} - Package Flags
uint32 {4} - Number Of Names
uint32 {4} - Name Directory Offset
uint32 {4} - Number Of Files
uint32 {4} - Directory Offset
uint32 {4} - Number Of Imported Files
uint32 {4} - Imported File Directory Offset
byte {16} - Package ID
// Name Directory
- // for each file
- byte {1} - Filename Length (including null byte)
- char {X} - Filename
- byte {1} - null Filename Terminator
- byte {1} - Filename Length (including null byte)
// Directory
- // for each file
- byte {1-5} - File Type ID
- byte {1-5} - Parent Object ID
- uint32 {4} - Group ID
- byte {1-5} - Filename ID
- uint32 {4} - Flags
- byte {1-5} - File Length
- byte {1-5} - File Offset
- byte {1-5} - File Type ID
// Import Directory
- // for each file
- byte {1-5} - File Type Filename ID
- byte {1-5} - File Type ID
- uint32 {4} - Package Filename ID
- byte {1-5} - Filename ID
- byte {1-5} - File Type Filename ID
byte {X} - File Data
MultiEx BMS Script
Not written yet
Notes and Comments
- The fields with size 1-5 use a special technique for reading the values, called Compact Indexes. It involves reading each byte 1 at a time, and checking the bits of the byte to see whether more bytes need to be read.
The structure of the 5 bytes are as follows...
sDxxxxxx Dxxxxxxx Dxxxxxxx Dxxxxxxx xxxxxxxx
The most significant bit (bit 7) of the first byte indicates whether the value is positive or negative
Bit 6 of the first byte tells you whether you will need to read an additional byte. If the value is 1, you would then read the second byte. Similarly, if any of the D values are 1, you read the next byte.
All the x values form part of the number being stored in the field.
This is a very rough overview - you should search on the net for more detailed information on this (there is a lot of it)
Compatible Programs
Other Games
These games use this file format
- Adventure Pinball: Forgotten Island *.u*
- Advent Rising *.u*
- Americas Army Operations *.u*
- Brothers In Arms *.u*
- Clive Barker's Undying *.u*
- Dead Mans Hand *.u*
- Desert Thunder *.u*
- Deus Ex *.u*
- Devastation *.u*
- Dr Brain's Thinking Games: Action Reaction *.u*
- Duke Nukem Forever *.u*
- Ghost Recon *.u*
- Harry Potter And The Chamber Of Secrets *.u*
- Harry Potter And The Sorcerers Stone *.u*
- Heavy Gunner *.u*
- Hoopworld *.u*
- Lineage 2 *.u*
- Magic The Gathering: Battlegrounds *.u*
- Men of Valor: Vietnam *.u*
- Mobile Forces *.u*
- Nerf Arena Blast *.u*
- New Legends *.u*
- Pariah *.u*
- Postal 2 *.u*
- Rainbow Six 3: Athena Sword *.u*
- Rainbow Six: Raven Shield *.u*
- Rune *.u*
- Sephiroth: 3rd Episode Of The Crusade *.u*
- Shadow Ops: Red Mercury *.u*
- Splinter Cell *.u*
- Splinter Cell: Chaos Theory *.u*
- Splinter Cell: Pandora Tomorrow *.u*
- Star Trek: Deep Space Nine - The Fallen *.u*
- Star Trek: The Next Generation: Klingon Honor Guard *.u*
- Star Wars: Republic Commando *.u*
- SWAT 4 *.u*
- Tactical Ops: Assault On Terror *.u*
- Thief 3: Deadly Shadows *.u*
- TNN Outdoors Pro Hunter *.u*
- Tribes Vengeance *.u*
- Twin Caliber *.u*
- Unreal *.u*
- Unreal 2 *.u*
- Unreal Championship *.u*
- Unreal Championship 2 *.u*
- Unreality *.u*
- Unreal Tournament *.u*
- Unreal Tournament 2003 *.u*
- Unreal Tournament 2004 *.u*
- Virtual Reality Notre Dame *.u*
- Wheel Of Time *.u*
- X-Com Enforcer *.u*
- XIII *.u*