Unity Assets

From XentaxWiki
Jump to: navigation, search

Contents: GRAFs page - All - 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - Edit

Format Type: Archive
Extensions: assets
Platforms: optionally + *.assets.resS or + *.resource or both
Endian Order: Little Endian



Format Specifications (Version 8)

// Unity3D Engine

// File Type Codes... (copied from Fallout Shelter *.assets - looks to be correct...)
// 1 = *.dir (Folder Structure) ???
// 4 = *.ref (File-to-File Mappings) ???
// 15 = ???
// 21 = *.mat (Material)
// 23 = *.matref (Material Reference)
// 28 = *.tex (Texture)
// 33 = *.mshref (Mesh Reference)
// 43 = *.msh (Mesh)
// 48 = *.shader (Shader)
// 49 = *.txt (Document - sometimes plain text, sometimes XML, sometimes HTML, sometimes JSON)...
// 65 = ???
// 74 = *.ani (Animation)
// 82 = ???
// 83 = *.snd (Sound) (can be ogg, wav, mp3, aif, etc)
// 89 = *.ctx (Context) ???
// 114 = ???
// 115 = *.script (Script)
// 128 = *.ttf (Font)
// 150 = *.bin
// 152 = *.ogm
// 156 = *.ter (Terrain)
// 184 = *.sbam
// 194 = *.tes
// 198 = ???
// 199 = ???


// ARCHIVE HEADER (X bytes)
  4 - File Details Directory Length (BIG ENDIAN) 
  4 - Archive Length (BIG ENDIAN)
  4 - Version Number (8) (BIG ENDIAN)
  4 - null
  
  // FileDetailsDirectoryOffset = ArchiveLength - FileDetailsDirectoryLength
  
// FILE DATA
  // for each file
    4 - Filename Length
    X - Filename
    0-3 - null Padding to a multiple of 4 bytes
    X - File Data
  
// FILE DETAILS DIRECTORY
  1 - null
  X - Version String (3.3.0f4)
  1 - null Terminator
  4 - Unknown (5)
  8 - null
  4 - Number of Files
  
  // for each file (20 bytes per entry)
    4 - ID Number (incremental from 1)
    4 - File Offset (points to the FilenameLength field for each file)
    4 - File Size
    4 - File Type Code
    4 - File Type Code
    
// LINKED RESOURCE DIRECTORY
  4 - Number of Linked Resources

  // for each linked resource
    21 - Unknown
    X - Linked Resource Name
    1 - null Name Terminator
    
1 - null


// SND FORMAT
4 - Unknown (2)
4 - Audio Format? (14=OGG, 20=WAV)
4 - Unknown (1)
4 - Unknown (1)
4 - Sound Data Length
X - File Data


// TEX FORMAT
4 - Width/Height? (1024)
4 - Width/Height? (1024/512)
4 - File Size
4 - Image Format Code
2 - Unknown (1)
2 - Unknown (1)
4 - Unknown (1)
4 - Unknown (2)
4 - Unknown (2/1)
4 - Unknown (1/0)
4 - null
4 - null
4 - Unknown (3/0)
4 - Image Data Length
X - Image Data

// IMAGE FORMAT CODES...
// Image pixels are upside-down in all cases!

// THESE ARE TESTED/PROVEN
// 1 = A8 (8 bits per pixel)
// 2 = ARGB4444 (16 bits per pixel - 4 bits per color)
// 3 = RGB24 (24 bits per pixel - 8 bits per color)
// 4 = RGBA32 (32 bits per pixel - 8 bits per color)
// 5 = ARGB32 (32 bits per pixel - 8 bits per color)
// 7 = RGB565 (16 bits per pixel)
// 10 = DXT1 (4 bits per pixel)
// 12 = DXT5 (8 bits per pixel)

// THESE ARE UNTESTED (Reference --> https://github.com/HearthSim/UnityPack/blob/master/unitypack/engine/texture.py)
// RGBA4444 = 13
// BGRA32 = 14
// DXT1Crunched = 28
// DXT5Crunched = 29
// PVRTC_RGB2 = PVRTC_2BPP_RGB = 30
// PVRTC_RGBA2 = PVRTC_2BPP_RGBA = 31
// PVRTC_RGB4 = PVRTC_4BPP_RGB = 32
// PVRTC_RGBA4 = PVRTC_4BPP_RGBA = 33
// ETC_RGB4 = 34
// ATC_RGB4 = 35
// ATC_RGBA8 = 36
// ATF_RGB_DXT1 = 38
// ATF_RGBA_JPG = 39
// ATF_RGB_JPG = 40
// EAC_R = 41
// EAC_R_SIGNED = 42
// EAC_RG = 43
// EAC_RG_SIGNED = 44
// ETC2_RGB = 45
// ETC2_RGBA1 = 46
// ETC2_RGBA8 = 47
// ASTC_RGB_4x4 = 48
// ASTC_RGB_5x5 = 49
// ASTC_RGB_6x6 = 50
// ASTC_RGB_8x8 = 51
// ASTC_RGB_10x10 = 52
// ASTC_RGB_12x12 = 53
// ASTC_RGBA_4x4 = 54
// ASTC_RGBA_5x5 = 55
// ASTC_RGBA_6x6 = 56
// ASTC_RGBA_8x8 = 57
// ASTC_RGBA_10x10 = 58
// ASTC_RGBA_12x12 = 59

// File Type 1 seems to be folder mapping structures or something?

// 1 FORMAT
4 - Number of Referenced Files
4 - Unknown (4)

// for each referenced file...
  4 - null
  4 - File ID of Referenced File
  4 - File Type of Referenced File (4/23/33/82/114) ???

4 - Folder Name Length
X - Folder Name
0-3 - null Padding to 4 bytes

Format Specifications (Version 15)

Unity3D Engine
*.resS and/or *.resource contains the file data (for big files), *.assets contains the directory (and file data for small files)
The filenames are <filename>.assets and <filename>.assets.resS and <filename>.resource
File Type Codes... (not a complete list)
1 = *.dir (Folder Structure) ???
4 = *.ref (File-to-File Mappings) ???
15 = ???
21 = *.mat (Material)
23 = *.matref (Material Reference)
28 = *.tex (Texture)
33 = *.mshref (Mesh Reference)
43 = *.msh (Mesh)
48 = *.shader (Shader)
49 = *.txt (Document - sometimes plain text, sometimes XML, sometimes HTML, sometimes JSON)...
65 = ???
74 = *.ani (Animation)
82 = ???
83 = *.snd (Sound) (can be ogg, wav, mp3, aif, etc)
89 = *.ctx (Context) ???
114 = ???
115 = *.script (Script)
128 = *.ttf (Font)
150 = *.bin
152 = *.ogm
156 = *.ter (Terrain)
184 = *.sbam
194 = *.tes
198 = ???
199 = ???
ARCHIVE HEADER (X bytes)
  uint32 {4}       - Data Directory Offset [+14 + VersionStringLength] (BIG ENDIAN)
  uint32 {4}       - Size of Assets file (BIG ENDIAN)
  uint32 {4}       - Version Number (also Number Of Small Offsets) (15) (BIG ENDIAN)
  uint32 {4}       - Data Directory Offset (BIG ENDIAN)
  uint32 {4}       - null
  byte {X}         - Version String (5.4.1f1)
  byte {1}         - null Terminator
  uint32 {4}       - Unknown
  byte {1}         - null
  uint32 {4}       - Number of Bases?

BASES DIRECTORY
  for each Base...
    uint32 {4}       - ID Number?
    if (IDNumber is negative){
      byte {32}        - Base Name (encrypted)
      }

    else if (IDNumber is positive){
      byte {16}        - Base Name (encrypted)
      }

uint32 {4}       - Number of Files
byte {3}         - null
FILES DIRECTORY
  for each file (28 bytes per entry)
    uint32 {4}       - ID Number (incremental from 1)
    uint32 {4}       - null
    uint32 {4}       - File Offset (relative to the start of the Data Directory)
    uint32 {4}       - File Size
    uint32 {4}       - File Type Code
    uint16 {2}       - File Type Code
    uint16 {2}       - Unknown (-1)
    uint32 {4}       - null

uint32 {4}       - Unknown (256)
uint32 {4}       - null
SMALL OFFSETS DIRECTORY
  for each small offset
    uint32 {4}       - Unknown Relative Offset
    uint32 {4}       - null
    uint32 {4}       - Type? (1)

uint32 {4}       - Number of Linked Resources
LINKED RESOURCE DIRECTORY
  for each linked resource
    byte {21}        - Unknown
    byte {X}         - Linked Resource Name
    byte {1}         - null Name Terminator

uint16 {2}       - null
DATA DIRECTORY
  for each file
    uint32 {4}       - Filename Length
    byte {X}         - Filename
    byte {0-3}       - null Padding to 4 bytes
    byte {X}         - File Data

If the fileType == *.snd and the fileSize <= 76, then the *.snd file is a pointer to an external archive (eg *.resS or *.resource)...
SND FORMAT
uint32 {4}       - Unknown (0/1)
uint32 {4}       - Number of Channels? (1/2)
uint32 {4}       - Sample Rate? (44100)
uint32 {4}       - Bitrate? (16)
uint32 {4}       - Unknown
uint32 {4}       - null
uint32 {4}       - null
uint16 {2}       - Unknown (1)
uint16 {2}       - Unknown (1)
uint32 {4}       - External Archive Filename Length
byte {X}         - External Archive Filename
byte {0-3}       - null Padding to 4 bytes
uint32 {4}       - File Offset
uint32 {4}       - null
uint32 {4}       - File Length
uint32 {4}       - null
uint32 {4}       - Unknown (1)
If the fileType == *.tex and the fileSize <= 96, then the *.tex file is a pointer to an external archive (eg *.resS or *.resource)...
TEX FORMAT
uint32 {4}       - Width/Height? (1024)
uint32 {4}       - Width/Height? (1024/512)
uint32 {4}       - File Size
uint32 {4}       - Image Format Code
uint32 {4}       - Mipmap Count
uint32 {4}       - Unknown (256)
uint32 {4}       - Unknown (1)
uint32 {4}       - Unknown (2)
uint32 {4}       - Unknown (2/1)
uint32 {4}       - Unknown (1/0)
uint32 {4}       - null
uint32 {4}       - Unknown (1)
uint32 {4}       - null
uint32 {4}       - Unknown (1)
uint32 {4}       - null
uint32 {4}       - File Offset
uint32 {4}       - File Size
uint32 {4}       - External Archive Filename Length
byte {X}         - External Archive Filename
byte {0-3}       - null Padding to 4 bytes
IMAGE FORMAT CODES...
Image pixels are upside-down in all cases!
THESE ARE TESTED/PROVEN
1 = A8 (8 bits per pixel)
2 = ARGB4444 (16 bits per pixel - 4 bits per color)
3 = RGB24 (24 bits per pixel - 8 bits per color)
4 = RGBA32 (32 bits per pixel - 8 bits per color)
5 = ARGB32 (32 bits per pixel - 8 bits per color)
7 = RGB565 (16 bits per pixel)
10 = DXT1 (4 bits per pixel)
12 = DXT5 (8 bits per pixel)
THESE ARE UNTESTED (Reference --> https://github.com/HearthSim/UnityPack/blob/master/unitypack/engine/texture.py)
RGBA4444 = 13
BGRA32 = 14
DXT1Crunched = 28
DXT5Crunched = 29
PVRTC_RGB2 = PVRTC_2BPP_RGB = 30
PVRTC_RGBA2 = PVRTC_2BPP_RGBA = 31
PVRTC_RGB4 = PVRTC_4BPP_RGB = 32
PVRTC_RGBA4 = PVRTC_4BPP_RGBA = 33
ETC_RGB4 = 34
ATC_RGB4 = 35
ATC_RGBA8 = 36
ATF_RGB_DXT1 = 38
ATF_RGBA_JPG = 39
ATF_RGB_JPG = 40
EAC_R = 41
EAC_R_SIGNED = 42
EAC_RG = 43
EAC_RG_SIGNED = 44
ETC2_RGB = 45
ETC2_RGBA1 = 46
ETC2_RGBA8 = 47
ASTC_RGB_4x4 = 48
ASTC_RGB_5x5 = 49
ASTC_RGB_6x6 = 50
ASTC_RGB_8x8 = 51
ASTC_RGB_10x10 = 52
ASTC_RGB_12x12 = 53
ASTC_RGBA_4x4 = 54
ASTC_RGBA_5x5 = 55
ASTC_RGBA_6x6 = 56
ASTC_RGBA_8x8 = 57
ASTC_RGBA_10x10 = 58
ASTC_RGBA_12x12 = 59
File Types 1 and 4 seem to be folder mapping structures or something?
1 FORMAT
uint32 {4}       - Number of Referenced Files
for each referenced file...
  uint32 {4}       - File Type of Referenced File (4/23/33/82/114)
  uint32 {4}       - null
  uint32 {4}       - File ID of Referenced File
  uint32 {4}       - null

uint32 {4}       - null
uint32 {4}       - Folder Name Length
byte {X}         - Folder Name
byte {0-3}       - null Padding to 4 bytes
uint16 {2}       - null
byte {1}         - Unknown (1)
4 FORMAT
uint32 {4}       - null
uint32 {4}       - File ID of Referenced 1 File
uint32 {4}       - null
uint32 {4}       - null
uint32 {4}       - Unknown BIG (0/128)
uint32 {4}       - Unknown BIG (0/128)
uint32 {4}       - Unknown BIG (32831)
uint32 {4}       - Unknown (or null)
uint32 {4}       - Unknown (or null)
uint32 {4}       - Unknown (or null)
uint32 {4}       - Unknown BIG (32831)
uint32 {4}       - Unknown BIG (32831)
uint32 {4}       - Unknown BIG (32831)
uint32 {4}       - Number of Related Type 4 Files
for each Related Type 4 File
  uint32 {4}       - null
  uint32 {4}       - File ID of Related Type 4 File
  uint32 {4}       - null

byte {X}         - nulls to fill rest of file size
23 FORMAT (Material Reference)
uint32 {4}       - null
uint32 {4}       - File ID of Referenced 1 File
uint32 {4}       - null
uint32 {4}       - Unknown
uint32 {4}       - Unknown (256)
uint32 {4}       - Unknown (-1)
uint32 {4}       - Unknown BIG (32831)
uint32 {4}       - Unknown BIG (32831)
uint32 {4}       - null
uint32 {4}       - null
uint32 {4}       - Unknown BIG (32831)
uint32 {4}       - Unknown BIG (32831)
uint32 {4}       - null
uint32 {4}       - null
uint32 {4}       - Number of Material References
for each Material Reference
  uint32 {4}       - null
  uint32 {4}       - ID of 21 File (material file)
  uint32 {4}       - null

byte {X}         - nulls to fill rest of file size
33 FORMAT (Mesh Reference)
uint32 {4}       - null
uint32 {4}       - File ID of Referenced 1 File
uint32 {4}       - null
uint32 {4}       - Unknown (0/3)
uint32 {4}       - ID of 43 File (mesh file) (if previous field is null) (if previous field is =3)
uint32 {4}       - null
114 FORMAT (Level?)
uint32 {4}       - null
uint32 {4}       - File ID of Referenced 1 File
uint32 {4}       - null
uint32 {4}       - Unknown (1)
uint32 {4}       - Unknown (1)
uint32 {4}       - Unknown
uint32 {4}       - null
uint32 {4}       - Folder Name Length
if (nameLength != 0){
  byte {X}         - Folder Name
  byte {0-3}       - null Padding to 4 Bytes
  }

byte {X}         - Unknown



Format Specifications (Version 17)

SIMILAR TO Fallout Shelter *.assets (but a newer version)
File Type Codes - same as Fallout Shelter, however are mapped in the Bases Directory.
If you read the Base ID Number and it matches one of the File Type Codes from Fallout Shelter, this file type
is mapped to the current Base ID (starting from 0).
An example...
If you read the first Base ID Number, and it equals 28, this means that all files in this archive with type
"0" (as this is the first Base ID Number we've read), they are actually files of type "28"
If you read the second Base ID Number, and it equals 4, this means that all files in this archive with type
"1" (as this is the second Base ID Number we've read), they are actually files of type "4"
ARCHIVE HEADER (X bytes)
  uint32 {4}       - Data Directory Offset [+14 + VersionStringLength] (BIG ENDIAN)
  uint32 {4}       - Size of Assets file (BIG ENDIAN)
  uint32 {4}       - Version Number (also Number Of Small Offsets) (17) (BIG ENDIAN)
  uint32 {4}       - Data Directory Offset (BIG ENDIAN)
  uint32 {4}       - null
  byte {X}         - Version String (5.6.0p1)
  byte {1}         - null Terminator
  uint32 {4}       - Unknown
  byte {1}         - null
  uint32 {4}       - Number of Bases

BASES DIRECTORY
  for each Base...
    uint32 {4}       - ID Number
    if (IDNumber = 114){
      byte {35}        - Base Name (encrypted)
      }

    else if (IDNumber is positive){
      byte {19}        - Base Name (encrypted)
      }

uint32 {4}       - Number of Files
byte {0-3}       - null to a multiple of 4 bytes
FILES DIRECTORY
  for each file (20 bytes per entry)
    uint32 {4}       - ID Number (incremental from 1)
    uint32 {4}       - null
    uint32 {4}       - File Offset (relative to the start of the Data Directory)
    uint32 {4}       - File Size
    uint32 {4}       - File Type Code

the rest is the same as Fallout Shelter
"DIR" FORMAT
uint32 {4}       - Number of Referenced Files
for each referenced file...
  uint32 {4}       - null
  uint32 {4}       - File ID of Referenced File
  uint32 {4}       - null

uint32 {4}       - null
uint32 {4}       - Folder Name Length
byte {X}         - Folder Name
byte {0-3}       - null Padding to 4 bytes
uint32 {4}       - Unknown (65536)
If the fileType == *.snd and the fileSize <= 76, then the *.snd file is a pointer to an external archive (eg *.resS or *.resource)...
"SND" FORMAT
--> Same as Fallout Shelter
If the fileType == *.tex and the fileSize <= 96, then the *.tex file is a pointer to an external archive (eg *.resS or *.resource)...
"TEX" FORMAT
--> Same as Fallout Shelter
If the fileType == *.ctx and the fileSize <= 176, then the *.ctx file is a pointer to an external archive (eg *.resS or *.resource)...
"CTX" FORMAT
uint32 {4}       - Unknown (32)
uint32 {4}       - Unknown (32)
uint32 {4}       - Unknown (1392)
uint32 {4}       - Unknown (24)
uint32 {4}       - Unknown (6)
uint32 {4}       - null
uint32 {4}       - Unknown (6)
uint32 {4}       - Unknown (2)
uint32 {4}       - Unknown (2)
uint32 {4}       - null
uint32 {4}       - null
uint32 {4}       - Unknown (1)
uint32 {4}       - null
uint32 {4}       - null
uint32 {4}       - null
uint32 {4}       - File Offset
uint32 {4}       - File Length
uint32 {4}       - External Archive Filename Length
byte {X}         - External Archive Filename
byte {0-3}       - null Padding to 4 bytes
uint32 {4}       - Unknown (6)
byte {76}        - null



MultiEx BMS Script

No BMS script

Supported Programs



Notes

No additional notes

Games

  • Animation Throwdown: The Quest for Cards
  • BeanVR
  • Creativerse
  • Fallout Shelter
  • Iron Defense
  • Might and Mayhem
  • OVIVO
  • Phantasma
  • Pixel Worlds
  • Primal Reign
  • Return to Planet X
  • Ripple Effect
  • RoBros
  • Sonic Fan Remix
  • Stayin Alive
  • Tech Ships: Waves of Victory
  • The Elder Scrolls: Legends
  • Unity3D Engine
  • Wishmere



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