Asobo Studio DPC DPS
What Is a Asobo Archive File?
Asobo Archive files used in Asobo games are asset archives that contain serialized class objects such as textures, models, animations, sounds, particle systems, etc.
History of the Asobo Archive File
The DPC file extension is used across Asobo’s catalog liberally; the structure of these files may change dramatically from title to title or not at all for several years. For example, the DPC files found in FUEL have special considerations for the asset streaming capabilities of ACE (Asobo Conception Engine), such as lazy loading of object data and parallel loading procedures at launch. ACE was specially created for the development of Grand Raid Off-road, the original title of what would eventually become FUEL, and as a result similarities between FUEL’s DPCs and other DPCs are expected to be minimal. While FUEL was released in 2009, its development began in 2005 as evidenced by many date artifacts in the DPCs and the project being referred to as “offroad” throughout the codebase and assets. Many of the assets were created and compiled around 2007. The PC release gold master was built in 2008 according to the version string present in the language files. Keep this timeline in mind if you intend to investigate other Asobo games for additional information.
DPC, DPS, DXB, DPP, DRV, D36
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
Version 1.19
// Sitting Ducks (PS2)
// DPS archive file format
//little endian
//Note: padding is set to multiplication of 1024 bytes.
//header (2048 bytes)
48 bytes (char) - version clob // "v1.19 - Asobo Studio - Internal Cross Technology"
1 byte - null
207 bytes - padding // "\xCD\xCD\xCD\xCD..."
4 bytes (uint32) - next folder offset - 2048
4 bytes (uint32) - unknown // always "214"
4 bytes (uint32) - unknown // always "74"
4 bytes (uint32) - unknown // always "59"
1776 bytes - padding // "\xCD\xCD\xCD\xCD..."
//data
num_of_folders *
{
4 bytes (uint32) - number of files in folder
num_of_files *
{
4 bytes (uint32) - file size + 4
x bytes - file data
}
x bytes - padding // "\xCD\xCD\xCD\xCD..."
}
Version 1.51
This file format is the same as in version 1.19 Only version string is different: "v1.51 - Asobo Studio - Internal Cross Technology".
Version 1.81
// CT Special Forces: Fire for effect (PC)
// DPC archive file format
// Archives are compressesed
// with custom compression algorithm
//header
256 bytes - version clob // "v1.81 - Asobo Studio - Internal Cross Technology"
4 bytes - number of files
24 bytes - unknown
//file info (24 bytes per entry)
num_of_files *
{
4 bytes - dummy
4 bytes - xsize / uncompressed size
4 bytes - size / compressed size
4 bytes - unknwon
4 bytes - some CRC?
4 bytes - unknown
}
x bytes - padding
//file data
num_of_files *
{
x bytes - file data
x bytes - padding
}
Version 1.06.63.06
// Ratatouille (PS2)
// DPS archive file format
// Files inside archive are compressesed
// with custom compression algorithm
//little endian
//header
256 bytes - version clob // "v1.06.63.06 - Asobo Studio - Internal Cross Technology"
4 bytes (uint32) - number of folders?
4 bytes (uint32)- number of files
24 bytes - unknown
//file info (24 bytes per entry)
num_of_files *
{
4 bytes - dummy
4 bytes - xsize / uncompressed size
4 bytes - size / compressed size
4 bytes - unknwon
4 bytes - some CRC?
4 bytes - unknown
}
x bytes - padding
//file data
num_of_files *
{
x bytes - file data
x bytes - padding
}
Version 1.08.40.02
// Garfield 2 (PC)
// DPC archive file format
// little endian
// Note: Files inside archive are
// compressed wih unknown compression
//header
256 bytes - version clob // "v1.08.40.02 - Asobo Studio - Internal Cross Technology"
4 bytes (uint32) - number of entries
4 bytes (uint32) - unknown
4 bytes (uint32) - unknown
4 bytes (uint32) - file_size - header_size
4 bytes (uint32) - unknown // always "222"
4 bytes (uint32) - unknown // always "139"
4 bytes (uint32) - unknown // always "39"
4 bytes (uint32) - number of files?
//entries table (24 bytes per entry)
num_of_entries *
{
4 bytes (uint32) - data block size (data+padding?)
4 bytes (uint32) - data size
4 bytes (uint32) - padding size?
4 bytes (uint32) - CRC1?
4 bytes (uint32) - CRC2?
4 bytes (uint32) - data block ID?
}
x bytes - padding1 (up to offset=1820) // "\x00\x00\x00\x00..."
x bytes - padding2 (up to offset=2048) // "\xFF\xFF\xFF\xFF..."
//data
num_of_entries *
{
x bytes - data block
}
Version 1.291.03.07
This file format is the same as in version 1.06.63.06 Only version string is different: "v1.291.03.07 - Asobo Studio - Internal Cross Technology".
QuickBMS Script
MultiEx BMS Script
IDString 0 "v1.381.67.09 - Asobo Studio - Internal Cross Technology" ; GoTo 260 0 ; Get FileNum Long 0 ; GoTo 284 0 ; Set FNS String "file" ; Set EXT String ".bin" ; Set OFF Long 2048 ; For T = 1 To FileNum ; Get U1 Long 0 ; Get U2 Long 0 ; Get PSize Long 0 ; Get RSize Long 0 ; Get U3 Long 0 ; Get U4 Long 0 ; Set FN String FNS ; String FN += T ; String FN += EXT ; Log FN OFF RSize 0 0 ; Math OFF += PSize ; Next T ;
Notes and Comments
- Archives may be compressesed with custom compression algorithm. Implementation from FUEL toolkit may be found here.
- Archives may use custom CRC32 hashing function.
- File format is shared with many "Asobo Studio" games.
- Extensions may be described as follows: DPS = "Data PlayStation", DPC = "Data PC", DXB = "Data Xbox", DPP = "Data PSP", DRV = "Data Wii", D36 = "Data Xbox 360".
- In "Garfield 2" PC game there are also *.NPC and *.LAYOUT files which contains filenames and database entries for *.DPC archives.
In "FUEL" PC game there are some *.IWR files which also contains some database entries.
In Monopoly Plus PC game there are NPC and LPC files with database entries. - In "Racket Sports Party" Wii game there is string "x:\Datas\$$$IncrediBuilder$$$\X##DATAS#_MASTER#RACKET_DATAS\KIT-WII\" in every *.DRV archive
which may suggest that archives were build with IncrediBuild software. - Archive version numbering suggests that Asobo Engine has been rewritten in 2006.
Games
List of games sharing same file format:
| Release Year | Game Title | Platform | Archive Version | Extension | Compression |
|---|---|---|---|---|---|
| 2003 | Super Farm | PS2 | v1.09 | .*DPS | Custom LZ? |
| 2004 | Sitting Ducks | PS2 / PC | v1.19 / v1.22 | .*DPS / .*DPC | None |
| 2004 | The Mummy: The Animated Series | PS2 / PC | v1.51 / v1.54 | .*DPS / .*DPC | None |
| 2005 | CT Special Forces: Fire for effect (Nemesis Strike) | PC / XBOX / PS2 | v1.81 | .*DPC / .*DXB / .*DPS | Custom LZ |
| 2006 | Garfield: A Tail of Two Kitties (Garfield 2) | PC / PS2 | v1.08.40.02 / v1.08.40.04 | .*DPC / .*DPS | Custom LZ? |
| 2007 | Ratatouille | PS2 | v1.06.63.06 | .*DPS | Custom LZ? |
| 2008 | WALL-E | PS2 | v1.291.03.07 | .*DPS | ? |
| 2009 | Fuel | PC | [v1.220.50.07, v1.381.67.09] | .*DPC | Custom LZSS |
| 2009 | Up | PSP | v1.530.62.01 | .*DPS | ? |
| 2010 | Toy Story 3 | PSP | v1.634.78.15 | .*DPP | ? |
| 2010 | Racquet Sports / Racket Sports / Racket Sports Party | WII | v1.796.75.01 | .*DRV | Custom LZ? |
| 2012 | Kinect Rush: A Disney-Pixar Adventure | PC / X360 | v1.2000.31.11 | .*DPC / .*D36 | ? |
| 2014 | Monopoly Plus | PC / X360 | v1.2000.77.18 | .*DPC / .*D36 | ? |
| 2016 | Fragments – HoloLens | PC | ? | ? | Custom LZ |
| 2016 | Young Conker – HoloLens | PC | ? | ? | ? |
| 2016 | ReCore | PC / XONE | ? | ? | ? |
| 2016 | Quantum Break | PC / XONE | ? | ? | ? |
| 2017 | Disneyland Adventures | PC / XONE | ? | ? | ? |
| 2017 | Zoo Tycoon: Ultimate Animal Collection | PC / XONE | ? | ? | ? |
| 2019 | A Plague Tale: Innocence | PC | v2.128.92.19 | .*DPC | LZ4 |
| 2020 | Microsoft Flight Simulator | PC / XONE | v2.256.97.19 | .*DPC | ? |
Compatible Programs
See Also