❗ All new developments are happening in https://github.com/widberg/bff
Tar analogous utility to work with the BigFile format from Asobo Studio games.
This repository is a relative of the main FMTK repository.
While the tool is named DPC it works with BigFiles from other platforms too.
All versions listed have full support. The bold versions are the version that the respective game is equipped to load. Unstable games are games that may be processed by the tool using the --unsafe
option but do not have a dedicated DPC backend.
Since most people being pointed towards this tool don't even know how to run a command line utility, here is a quick rundown for the uninitiated. First, download the dpc program from the releases tab of this repository. Download the latest file matching your operating system. Once downloaded, unzip it with 7-zip or a similar utility. Once it is unzipped, open a command prompt in the folder you unzipped it to. If you have never used a command line tool before, please read How to Use the Command Line. Now we can begin using the tool.
To extract a BigFile run the command
dpc -g fuel -eulf -i "path/to/BIGFILE.DPC" -o "path/to/BIGFILE.DPC.d"
where path/to/BIGFILE.DPC
is the path of the bigfile on disk. This will create a directory path/to/BIGFILE.DPC.d
next to the BigFile you extracted containing the extracted data.
When you are done messing around with the extracted data you may want to turn it back into a BigFile. This can be done with the command.
dpc -g fuel -culf -i "path/to/BIGFILE.DPC.d" -o "path/to/NEW_BIGFILE.DPC"
where path/to/BIGFILE.DPC.d
is the path of the extracted folder on disk. This will create a BigFile path/to/NEW_BIGFILE.DPC
next to the extracted folder.
Note that while the command contains the name of the game FUEL, these commands will work with the other "unstable" games. This is because the formats are similar enough between these games that we can piggyback off the FUEL support even if each individual game has not been considered.
Once the BigFile is extracted you may want to modify the objects inside of it. Modifying them with a hex editor may change the size information so it is best to use the dpc tool's capabilities to ensure that valid objects are created. Since the object formats vary much more than the BigFile format does between versions, this is only recommended for stable games.
To extract an object run the command
dpc fmt -g fuel -e -i path/to/object.UserDefine_Z -o path/to/object.UserDefine_Z.d
where path/to/object.UserDefine_Z
is the path of the object on disk. This will create a directory path/to/object.UserDefine_Z.d
next to the object you extracted containing the extracted data. In the case of UserDefine_Z
this directory will contain a data.txt
file with the contents of the UserDefine_Z
. This text file can be safely modified.
When you are done messing around with the extracted data you may want to turn it back into an object. This can be done with the command.
dpc fmt -g fuel -c -i path/to/object.UserDefine_Z.d -o path/to/new_object.UserDefine_Z
where path/to/object.UserDefine_Z.d
is the path of the extracted folder on disk. This will create an object path/to/new_object.UserDefine_Z
next to the extracted folder.
This tutorial covers the most basic use case that 90% of people want this tool for; in actuality, the tool is far more powerful. To learn about the other options and subcommand, run the command dpc --help
for more information.
dpc version 0.1.5;c12d4143e64e51f381196ac5c223d3ea326f2557;x86_64-pc-windows-msvc
widberg <https://github.com/widberg>
Work with DPC files
USAGE:
dpc [FLAGS] [OPTIONS] --game <GAME> [-- <CUSTOM_ARGS>]
dpc <SUBCOMMAND>
FLAGS:
-c, --create directory -> DPC
-e, --extract DPC -> directory
-f, --force Don't ask about existing folder
-l, --lz Apply Asobo LZ compression/deflation when appropriate
-O, --optimization Optimize the DPC
-q, --quiet No console output
-r, --recursive extract the dpc and all objects
-u, --unsafe Don't check the version string for compatibility
-v, --validate Checks if your DPC is valid
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-g, --game <GAME> The game the dpc should be compatible with [possible values: fuel]
-i, --input <INPUT> The input DPC file
-o, --output <OUTPUT> The output directory
ARGS:
<CUSTOM_ARGS> Supply arguments directly to the dpc backend
SUBCOMMANDS:
crc32 generate name files
fmt Used to format object files
help Prints this message or the help of the given subcommand(s)
lz Used to compress raw files
obj Used to compress/split object files
EXAMPLES:
-g fuel -- -h
-cflO -g fuel -i BIKE.DPC.d -o BIKE.DPC
-ef -g fuel -i /FUEL/**/*.DPC
git clone https://github.com/widberg/dpc.git
cd dpc
cargo build --release