A set of commandline utilities designed to work with Gust (Koei/Tecmo) PC game assets such as the ones from Atelier series, Nights of Azure series, Blue Reflection, Fairy Tail, Fatal Frame ...
gust_pak
: Unpack or repack a Gust.pak
archive.gust_elixir
: Unpack or repack a Gust.elixir[.gz]
archive.gust_gmpk
: Unpack or repack a Gust.gmpk
archive.gust_g1t
: Unpack or repack a Gust.g1t
texture archive.gust_enc
: Encode or decode a Gust.e
archive.gust_ebm
: Convert a.ebm
message file to or from an editable JSON file.
gust_pak
is designed to replace both A17_Decrypt
and A18_Decrypt
, as it automatically detects "A17" (32-bit) and "A18" (64-bit) formats.
It should therefore works with all of the Atelier PC ports (including Atelier Sophie) as well as Blue Reflection archives.
gust_enc
only works on the games where for which the scrambling seeds are known. See gust_enc.json
for details.
You can find a primer on the .e
format, as well as what gust_enc
does here.
In most cases, the repacking of an archive relies on a corresponding .json
to have been created during unpacking.
You will not be able to recreate an archive if a .json
file does not exist for it, either in the directory (.elixir
, .g1t
)
or at the root level (.pak
).
If you have Visual Studio 2022 installed, just open the .sln
file or run build.cmd
.
Otherwise (Linux, MinGW) just issue make
.
On Windows, you can just drop the file or directory you want to unpack/repack or decode/encode on top of the executable.
Otherwise, you can invoke: <gust_utility> <file or directory>
.
When invoking gust_enc
, you may specify the game ID to use for the encryption seeds (e.g. -BR
for Blue Reflection,
-A17
for Atelier Sophie). If not specified, then the default ID from gust_enc.json
is be used.
For recreating a .pak
, you must pass the .json
that was created during extraction to gust_pak
rather than the directory.
IMPORTANT: YOU SHOULD BACK UP ALL GAME ARCHIVES AND FOLDERS BEFORE RUNNING THE UNPACKER
Most Gust game executables are designed to use either packed assets, if a .pak
archive is present, or the extracted assets, if
a matching directory bearing the same name as the .pak
is found. For that to work, you must however make sure that the .pak
is not seen, as it has precedence over the directory.
For instance, if you want to alter character assets (textures, models, ...) for the game Blue Reflection:
- Go to
<GAME_DIR>\DATA\
and copygust_pak.exe
there. - Drop
PACK00_02.pak
on top ofgust_pak.exe
. This will extract all the content into adata\
subdirectory. - Move the content from
data\x64\
tox64\
(in this case, that should only be one folder namedcharacter
). This is needed because in this case<GAME_DIR>\DATA\x64
is the location where Blue Reflection expects extracted game assets, not<GAME_DIR>\DATA\data\x64
. - Rename
PACK00_02.pak
toPACK00_02.old
so that the game assets you just extracted are used.
Happy modding! 😄
GPLv3 or later.
- Yuri Hime/Lily/shizukachan and everyone who helped with
A17_Decrypt
/A18_Decrypt
. - Admiral Curtiss for HyoutaTools and Semory for
Steven's Gas Machine (a.k.a. "xentax"), where we picked some
inspiration on how to unpack the
.elixir
and.g1t
formats. - Rich Geldreich and others for the miniz inflate/deflate library.
- Krzysztof Gabis for the parson JSON parsing library.
- Gust, for making games that are interesting enough to make one want to crack their custom compression and encryption schemes. 😁